From 42ddadd3d9dc45d768409462c6b0e33d45a3d2cc Mon Sep 17 00:00:00 2001 From: Tim Speckhals Date: Mon, 3 Sep 2018 00:16:44 +0200 Subject: [PATCH] Initial commit (1.0) --- .gitignore | 4 + LICENSE | 21 + README.md | 6 + eco.php | 6 + src/Tests.java | 58 + src/sh/hell/compactchess/game/Opening.java | 3552 ++++++++++++++++++++ 6 files changed, 3647 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 eco.php create mode 100644 src/Tests.java create mode 100644 src/sh/hell/compactchess/game/Opening.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e37bb3f --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.idea/ +out/ +*.iml +eco.json diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..46f5ae3 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Hellsh + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..05f9486 --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# CompactChessOpenings + +CompactChessOpenings is an open-source Java 7+ library which adds all ECO openings to CompactChess. + +- [More information](https://hell.sh/CompactChess/openings) +- [Downloads](https://github.com/hell-sh/CompactChessOpenings/releases) (dependencies not included) diff --git a/eco.php b/eco.php new file mode 100644 index 0000000..f119f1f --- /dev/null +++ b/eco.php @@ -0,0 +1,6 @@ +f); + echo "openings.add(new Opening(\"{$opening->c}\", \"{$opening->n}\", \"{$cfen}\"));\n"; +} diff --git a/src/Tests.java b/src/Tests.java new file mode 100644 index 0000000..fa8f2d9 --- /dev/null +++ b/src/Tests.java @@ -0,0 +1,58 @@ +import org.junit.Test; +import sh.hell.compactchess.exceptions.ChessException; +import sh.hell.compactchess.game.Game; +import sh.hell.compactchess.game.Opening; + +import static junit.framework.TestCase.assertEquals; + +public class Tests +{ + @Test(timeout = 1000L) + public void openings() throws ChessException + { + System.out.println("Openings\n"); + final Game game = Game.fromPGN("1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 18.a4 Qh5 19. axb5").get(0); + Opening.insertInto(game, false, true); + System.out.println(game.toPGN()); + assertEquals("Ruy Lopez: Marshall, Main Line, Spassky Variation", game.tags.get("Opening")); + assertEquals("C89", game.tags.get("ECO")); + int i = 0; + assertEquals("B00 King's Pawn", game.moves.get(i++).getAnnotation()); + assertEquals("C20 King's Pawn Game", game.moves.get(i++).getAnnotation()); + assertEquals("C40 King's Knight Opening", game.moves.get(i++).getAnnotation()); + assertEquals("C44 King's Knight Opening: Normal Variation", game.moves.get(i++).getAnnotation()); + assertEquals("C60 Ruy Lopez", game.moves.get(i++).getAnnotation()); + assertEquals("C70 Ruy Lopez", game.moves.get(i++).getAnnotation()); + assertEquals("C68 Ruy Lopez: Columbus Variation", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("C78 Ruy Lopez: Morphy Defense", game.moves.get(i++).getAnnotation()); + assertEquals("C84 Ruy Lopez: Closed Variations", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("C88 Ruy Lopez: Closed", game.moves.get(i++).getAnnotation()); + assertEquals("C88 Ruy Lopez: Closed, 7... O-O", game.moves.get(i++).getAnnotation()); + assertEquals("C88 Ruy Lopez: Closed, 8. c3", game.moves.get(i++).getAnnotation()); + assertEquals("C89 Ruy Lopez: Marshall Attack", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("C89 Ruy Lopez: Marshall Attack, Modern Variation", game.moves.get(i++).getAnnotation()); + assertEquals("C89 Ruy Lopez: Marshall Attack, Main Line", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("C89 Ruy Lopez: Marshall Attack, Modern Main Line", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i++).getAnnotation()); + assertEquals("C89 Ruy Lopez: Marshall, Main Line, Spassky Variation", game.moves.get(i++).getAnnotation()); + assertEquals("", game.moves.get(i).getAnnotation()); + } +} diff --git a/src/sh/hell/compactchess/game/Opening.java b/src/sh/hell/compactchess/game/Opening.java new file mode 100644 index 0000000..1680a67 --- /dev/null +++ b/src/sh/hell/compactchess/game/Opening.java @@ -0,0 +1,3552 @@ +package sh.hell.compactchess.game; + +import sh.hell.compactchess.exceptions.ChessException; + +import java.util.ArrayList; + +@SuppressWarnings({"WeakerAccess", "UnusedReturnValue", "unused"}) +public class Opening +{ + public final String eco; + public final String name; + public final String fen; + + private Opening(String eco, String name, String fen) + { + this.eco = eco; + this.name = name; + this.fen = fen; + } + + // Openings sourced from https://github.com/niklasf/eco + + public static ArrayList all() + { + final ArrayList openings = new ArrayList<>(); + openings.addAll(all_1()); + openings.addAll(all_2()); + return openings; + } + + public static ArrayList fromECO(String eco) + { + final ArrayList openings = new ArrayList<>(); + for(Opening opening : Opening.all()) + { + if(opening.eco.equals(eco)) + { + openings.add(opening); + } + } + return openings; + } + + public static ArrayList fromName(String name) + { + final ArrayList openings = new ArrayList<>(); + for(Opening opening : Opening.all()) + { + if(opening.name.equalsIgnoreCase(name)) + { + openings.add(opening); + } + } + return openings; + } + + public static Opening fromFEN(String fen) + { + String[] arr = fen.split(" "); + if(arr.length > 2) + { + fen = arr[0].replace("/", "") + " " + arr[1] + " " + arr[2]; + for(Opening opening : Opening.all()) + { + if(opening.fen.equals(fen)) + { + return opening; + } + } + } + return null; + } + + public static void insertInto(Game game) throws ChessException + { + Opening.insertInto(game, false, false); + } + + public static void insertInto(Game game, boolean noAnnotations) throws ChessException + { + Opening.insertInto(game, noAnnotations, false); + } + + public static void insertInto(Game game, boolean noAnnotations, boolean tooManyAnnotations) throws ChessException + { + Move lastMove = null; + String lastOpening = null; + int ply = 0; + for(Move move : game.moves) + { + Opening opening = Opening.fromFEN(move.commitInCopy(false, false).getPositionalFEN(true)); + if(opening != null) + { + String openingName = opening.eco + " " + opening.name; + if(lastOpening == null || !lastOpening.equals(openingName)) + { + lastOpening = opening.eco + " " + opening.name; + if(!noAnnotations) + { + if(tooManyAnnotations) + { + move.annotate(lastOpening); + } + else + { + lastMove = move; + } + } + } + } + if(++ply > 36) // The longest opening is C89 Ruy Lopez: Marshall, Main Line, Spassky Variation with 36 plies. + { + break; + } + } + if(lastOpening != null) + { + game.tags.put("ECO", lastOpening.substring(0, 3)); + game.tags.put("Opening", lastOpening.substring(4)); + if(!noAnnotations && !tooManyAnnotations) + { + lastMove.annotate(lastOpening); + } + } + } + + private static ArrayList all_1() + { + final ArrayList openings = new ArrayList<>(); + openings.add(new Opening("A00", "Amar Opening", "rnbqkbnrpppppppp8887NPPPPPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A00", "Amar Gambit", "rn1qkbnrppp2ppp83p45p26PBPPPPP2PRNBQK2R w KQkq")); + openings.add(new Opening("A00", "Amar Opening: Gent Gambit", "rn1qkbnrppp2ppp83p486PBPPPPP3RNBQ1RK1 b kq")); + openings.add(new Opening("A00", "Amar Opening: Paris Gambit", "rnbqkbnrppp2ppp83pp35P26PNPPPPP2PRNBQKB1R b KQkq")); + openings.add(new Opening("A00", "Amsterdam Attack", "r1bqkb1rppp2ppp2np1n24p32P51PN1P3P2P1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("A00", "Anderssen Opening", "rnbqkbnrpppppppp888P71PPPPPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Anderssen Opening: Polish Gambit", "rnbqkbnr1ppppppp8p71P6P72PPPPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Barnes Opening: Fool's Mate", "rnb1kbnrpppp1ppp84p36Pq5P2PPPPP2PRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Barnes Opening: Gedult Gambit", "rnbqkbnrppp1pp1p6p183Pp32P2P2PP4PPRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Barnes Opening: Gedult Gambit", "rnbqkbnrppppp1pp884p32N2P2PPPP2PPR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Barnes Opening: Hammerschlag", "rnbqkbnrpppp1ppp84p385P2PPPPPKPPRNBQ1BNR b kq")); + openings.add(new Opening("A00", "Barnes Opening: Walkerling", "rnbqkb1rpppp1ppp5n24p32B1P35P2PPPP2PPRNBQK1NR b KQkq")); + openings.add(new Opening("A00", "Clemenz Opening", "rnbqkbnrpppppppp8887PPPPPPPP1RNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Clemenz Opening: Spike Lee Gambit", "rnbqkbnrppppppp187p6P17PPPPPPP2RNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Crab Opening", "rnbqkbnrpppp1ppp84p3P6P81PPPPPP1RNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Creepy Crawly Formation: Classical Defense", "rnbqkbnrppp2ppp83pp38P6P1PPPPPP1RNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Formation: Cabbage Attack", "r1bq1rk1ppp2ppp2nb1n23pp3P71PP1P1P11B1P1P1PRN1QKBNR b KQ")); + openings.add(new Opening("A00", "Formation: Hippopotamus Attack", "r1bq1rk1ppp2ppp2nb1n23pp38PPPPPPP17PRNBQKBNR b KQ")); + openings.add(new Opening("A00", "Formation: Shy Attack", "r1bq1rk1ppp2ppp2nb1n23pp38P2PP1PP1PPN1PB1R1BQK1NR b KQ")); + openings.add(new Opening("A00", "Gedult's Opening", "rnbqkbnrpppppppp8885P2PPPPP1PPRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Global Opening", "rnbqkbnrpppp1ppp84p38P6P1PPPPPP1RNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Grob Opening", "rnbqkbnrpppppppp886P18PPPPPP1PRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Grob Opening: Alessi Gambit", "rnbqkbnrppppp1pp85p26P18PPPPPP1PRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Grob Opening: Double Grob", "rnbqkbnrpppppp1p86p16P18PPPPPP1PRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Grob Opening: Double Grob, Coca-Cola Gambit", "rnbqkbnrpppppp1p86p15PP18PPPPP2PRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Grob Opening: Grob Gambit", "rnbqkbnrppp1pppp83p46P18PPPPPPBPRNBQK1NR b KQkq")); + openings.add(new Opening("A00", "Grob Opening: Grob Gambit Declined", "rnbqkbnrpp2pppp2p53p46P18PPPPPPBPRNBQK1NR w KQkq")); + openings.add(new Opening("A00", "Grob Opening: Grob Gambit, Basman Gambit", "rnbqkbnrppp1ppp183p3P88PPPPPPBPRNBQK1NR b KQkq")); + openings.add(new Opening("A00", "Grob Opening: Grob Gambit, Fritz Gambit", "rn1qkbnrppp1pppp83p42P3b18PP1PPPBPRNBQK1NR b KQkq")); + openings.add(new Opening("A00", "Grob Opening: Grob Gambit, Fritz Gambit, Romford Countergambit", "q3kbnrp1pnpppp882Pp2b18PP1PPP1PRNBQK1NR w KQk")); + openings.add(new Opening("A00", "Grob Opening: Grob Gambit, Keres Gambit", "rnbqkbnrppp2ppp83p43p2P12P5PP2PPBPRNBQK1NR b KQkq")); + openings.add(new Opening("A00", "Grob Opening: Grob Gambit, Richter-Grob Gambit", "rnbqkbnrpp2pppp2p582p3P11P6P2PPPBPRNBQK1NR b KQkq")); + openings.add(new Opening("A00", "Grob Opening: Keene Defense", "rnbqkbnrpp3ppp2p53pp36P17PPPPPPPB1RNBQK1NR w KQkq")); + openings.add(new Opening("A00", "Grob Opening: Keene Defense, Main Line", "rnbqk2rpp2nppp2pb43p42PPp1P12N4PPP2PPB1R1BQK1NR w KQkq")); + openings.add(new Opening("A00", "Grob Opening: London Defense", "r1bqkbnrpppp1ppp2n54p36P17PPPPPPP2RNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Grob Opening: Romford Countergambit", "rn1qkbnrppp1pppp882Pp2b18PP1PPPBPRNBQK1NR w KQkq")); + openings.add(new Opening("A00", "Grob Opening: Spike Attack", "rnbqkbnrpp2pppp2p53p2P188PPPPPPBPRNBQK1NR b KQkq")); + openings.add(new Opening("A00", "Grob Opening: Spike, Hurst Attack", "rnbqkbnrppp2ppp83pp32P3P18PP1PPPBPRNBQK1NR b KQkq")); + openings.add(new Opening("A00", "Grob Opening: Zilbermints Gambit", "rnbqkbnrppp1pppp884p1P12N5PPPP1P1PR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Grob Opening: Zilbermints Gambit, Schiller Defense", "rnbqkbnrppp1ppp187p4p1P12N5PPPP1P1PR1BQKBNR w KQkq")); + openings.add(new Opening("A00", "Grob Opening: Zilbermints Gambit, Zilbermints-Hartlaub Gambit", "rnbqkbnrppp2ppp84p34p1P12NP4PPP2P1PR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Hungarian Opening", "rnbqkbnrpppppppp8886P1PPPPPP1PRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Asten Gambit", "r1bqkbnrppp3pp2n54Pp23pN36P1PPP1PP1PR1BQKBNR w KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Buecker Gambit", "rnbqkbnrppp2ppp83pp31P66P1P1PPPPBPRNBQK1NR b KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Burk Gambit", "rnbqk1nrppp1bppp83p44p2NP2P2P11PP1PP1PRNBQKB1R b KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Catalan Formation", "rnbqkbnrppp2ppp4p33p486P1PPPPPPBPRNBQK1NR w KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Dutch Defense", "rnbqkbnrppppp1pp85p286P1PPPPPP1PRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Indian Defense", "rnbqkb1rpppppppp5n2886P1PPPPPP1PRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Myers Defense", "rnbqkbnrpppppp1p86p186P1PPPPPP1PRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Pachman Gambit", "rnbqkbnrppppp2p6p17Q4p36P1PPPP1P1PRNB1KBNR w KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Paris Gambit", "rn1qkbnrppp2ppp83p45p26PBPPPPP2PRNBQ1RK1 b kq")); + openings.add(new Opening("A00", "Hungarian Opening: Reversed Alekhine", "rnbqkbnrpppp1ppp84p385NP1PPPPPP1PRNBQKB1R b KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Reversed Brooklyn Defense, Brooklyn Benko Gambit", "rnbqkb1rpppp1ppp5n281P2p36P1P1PPPP1PRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Reversed Modern Defense", "rnbqkbnrpp2pppp82pp486P1PPPPPPBPRNBQK1NR w KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Reversed Norwegian Defense", "rnbqkbnrpppp1ppp884p2N6P1PPPPPP1PRNBQKB1R b KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Sicilian Invitation", "rnbqkbnrpp1ppppp82p586P1PPPPPP1PRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Slav Formation", "rnbqkbnrpp2pppp2p53p486P1PPPPPPBPRNBQK1NR w KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Symmetrical Variation", "rnbqkbnrpppppp1p6p1886P1PPPPPP1PRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Van Kuijk Gambit", "rnbqkbnrppppppp1887p5NP1PPPPPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Wiedenhagen-Beta Gambit", "rnbqkbnrppp1pp1p83p2p185NP1PPPPPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A00", "Hungarian Opening: Winterberg Gambit", "rnbqkbnrppp2ppp84p32p51P4P1P2PPPBPRNBQK1NR b KQkq")); + openings.add(new Opening("A00", "Kadas Opening", "rnbqkbnrpppppppp887P8PPPPPPP1RNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Kadas Opening: Beginner's Trap", "rnbqkbnrppp1pppp83p47P7RPPPPPPP1RNBQKBN1 b Qkq")); + openings.add(new Opening("A00", "Kadas Opening: Kadas Gambit", "rnbqkbnrpp1ppppp82p51P5P8P1PPPPP1RNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Kadas Opening: Kadas Gambit", "rnbqkbnrpp2pppp83p43p3P2P2N2PP2PPP1RNBQKB1R b KQkq")); + openings.add(new Opening("A00", "Kadas Opening: Kadas Gambit", "rnbqkbnrpppp1ppp883p3P2P5PP2PPP1RNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Kadas Opening: Myers Variation", "rnbqkbnrpp2pppp82pp43PP2P8PPP2PP1RNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Kadas Opening: Schneider Gambit", "rnbqkbnrpppppp1p86p17P8PPPPPPP1RNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Kadas Opening: Steinbok Gambit", "rnbqkbnrppppp1pp884p2P3P4PPP2PP1RNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Lasker Simul Special", "rnbqkbnrppppppp187p86P1PPPPPP1PRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Mieses Opening", "rnbqkbnrpppppppp8883P4PPP1PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Mieses Opening: Myers Spike Attack", "rnbqkbnrpppppp1p6p186P13P4PPP1PP1PRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Mieses Opening: Reversed Rat", "rnbqkbnrpppp1ppp84p383P4PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Nimzo-Larsen Attack: Graz Attack", "rnbqkbnrppp1pppp83p48BP6P1PPPPPPRN1QKBNR b KQkq")); + openings.add(new Opening("A00", "Polish Opening", "rnbqkbnrpppppppp881P68P1PPPPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Polish Opening: Baltic Defense", "rn1qkbnrppp1pppp83p1b21P68PBPPPPPPRN1QKBNR w KQkq")); + openings.add(new Opening("A00", "Polish Opening: Birmingham Gambit", "rnbqkbnrpp1ppppp82p51P68P1PPPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Polish Opening: Bugayev Advance Variation", "rnbqkbnrpppp2pp5p21P2p388PBPPPPPPRN1QKBNR b KQkq")); + openings.add(new Opening("A00", "Polish Opening: Bugayev Attack", "rnbqkbnrpppp1ppp84p31P6P72PPPPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Polish Opening: Czech Defense", "rnbqkbnrppp2ppp3p44p31P68PBPPPPPPRN1QKBNR w KQkq")); + openings.add(new Opening("A00", "Polish Opening: Dutch Defense", "rnbqkbnrppppp1pp85p21P68P1PPPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Polish Opening: German Defense", "rnb1kbnrppp1pppp3q43p41P68PBPPPPPPRN1QKBNR w KQkq")); + openings.add(new Opening("A00", "Polish Opening: Grigorian Variation", "r1bqkbnrpppppppp2n581P68P1PPPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Polish Opening: Karniewski Variation", "rnbqkb1rpppppppp7n81P68P1PPPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Polish Opening: King's Indian Variation", "rnbqkb1rpppppp1p5np181P68PBPPPPPPRN1QKBNR w KQkq")); + openings.add(new Opening("A00", "Polish Opening: King's Indian Variation, Schiffler Attack", "rnbqkb1rpppppp1p5np181P2P38PBPP1PPPRN1QKBNR b KQkq")); + openings.add(new Opening("A00", "Polish Opening: King's Indian Variation, Sokolsky Attack", "rnbq1rk1ppp1ppbp3p1np181PPP44PN2PB3PPPRN1QKB1R b KQ")); + openings.add(new Opening("A00", "Polish Opening: Myers Variation", "rnbqkbnrpp2pppp2p53p4PP681BPPPPPPRN1QKBNR b KQkq")); + openings.add(new Opening("A00", "Polish Opening: Orangutan-Diemer Gambit", "rnb1kbnrppp2ppp3q44p31P2p3P4P21BPP2PPRN1QKBNR b KQkq")); + openings.add(new Opening("A00", "Polish Opening: Orangutan-Hartlaub Gambit", "rnbqkb1r1p3ppp2p1pn2P2p44P3P2P41BP2PPPRN1QKBNR b KQkq")); + openings.add(new Opening("A00", "Polish Opening: Outflank Variation", "rnbqkbnrpp1ppppp2p581P68P1PPPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Polish Opening: Queen's Indian Variation", "rnbqkb1rp1pp1ppp1p2pn21P688PBPPPPPPRN1QKBNR w KQkq")); + openings.add(new Opening("A00", "Polish Opening: Queenside Defense", "rnbqkb1r1ppp1pppp3pn21P688PBPPPPPPRN1QKBNR w KQkq")); + openings.add(new Opening("A00", "Polish Opening: Rooks Swap Line", "1nbqkb1r1ppp1ppp4pn21P6882PPPPPPBN1QKBNR b Kk")); + openings.add(new Opening("A00", "Polish Opening: Schiffler-Sokolsky Variation", "rnbqkb1rppp2ppp4pn21P1p484P3PBPP1PPPRN1QKBNR b KQkq")); + openings.add(new Opening("A00", "Polish Opening: Schuehler Gambit", "rnbqkbnr1p1ppppp8pp64P38PBPP1PPPRN1QKBNR b KQkq")); + openings.add(new Opening("A00", "Polish Opening: Symmetrical Variation", "rnbqkbnrp1pppppp81p61P68P1PPPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A00", "Polish Opening: Tartakower Gambit", "rnbqkbnrpppp2pp5p24p31P2P38PBPP1PPPRN1QKBNR b KQkq")); + openings.add(new Opening("A00", "Polish Opening: Tartakower Gambit, Brinckmann Variation", "r1b1k1nrppppq2p2n2pp14pP21bB1P38PBPP2PPRN1QK1NR w KQkq")); + openings.add(new Opening("A00", "Polish Opening: Wolferts Gambit", "rnbqkbnrpp1p1ppp82p1p31P68PBPPPPPPRN1QKBNR w KQkq")); + openings.add(new Opening("A00", "Saragossa Opening", "rnbqkbnrpppppppp8882P5PP1PPPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Sodium Attack", "rnbqkbnrpppppppp888N7PPPPPPPPR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Sodium Attack: Celadon Variation", "rnbqk1nrpp3ppp82ppp38P2PP3P1P2PPP1RBQKBNR b Kkq")); + openings.add(new Opening("A00", "Sodium Attack: Chenoboskion Variation", "rnbqkbnrpppppp1p6p186P1N7PPPPPP1PR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Sodium Attack: Durkin Gambit", "r1bqkbnrpppp2pp2n54pp22N1P38PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("A00", "Valencia Opening", "rnbqkbnrpppp1ppp84p383P4PPPNPPPPR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening", "rnbqkbnrpppppppp8882N5PPPPPPPPR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Battambang Variation", "rnbqkbnrpppp1ppp84p38P1N51PPPPPPPR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Berlin Gambit", "r1bqkbnrppp1pppp2n53P44p32N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Billockus-Johansen Gambit", "rnbqk1nrpppp1ppp82b1p382N2N2PPPPPPPPR1BQKB1R w KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Damhaug Gambit", "rnbqkbnrppp2ppp83pp35P22N5PPPPP1PPR1BQKBNR w KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Dougherty Gambit", "rnbqkbnrppp1pppp884p32N2P2PPPP2PPR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Duesseldorf Gambit", "rnbqkbnrpp1ppppp82p51P62N5P1PPPPPPR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Dunst-Perrenet Gambit", "rnbqkbnrppp1pppp884p32NP4PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Gladbacher Gambit", "rnbqkbnrppp2ppp84p34p31PNP4P1P2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Grünfeld Defense", "rnbqkbnrppp2ppp84p34N38PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Grünfeld Defense, Steiner Gambit", "rnbqkbnrppp2ppp84p34NP28PPPP2PPR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Hector Gambit", "rnbqkbnrppp1pppp882B1p32N5PPPP1PPPR1BQK1NR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Hergert Gambit", "r1bqkbnrppp2ppp2np44P382N5PPPPP1PPR1BQKBNR w KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Hulsemann Gambit", "rn1qkbnrppp2ppp4b33pp2Q82N1P3PPPP1PPPR1B1KBNR w KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Jendrossek Gambit", "rnbqkb1rpp2p1pp5n22p2p21P1p1P25N2P1PPPNPPR1BQKB1R b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Kluever Gambit", "rnbqkbnrppppp1pp884p32NP4PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Laroche Gambit", "rnbqkbnrp1pppppp81p682N5PPPPPPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Liebig Gambit", "rnbqkb1rppp2ppp5n23pp2Q82N1P3PPPP1PPPR1B1KBNR w KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Melleby Gambit", "rnbqkbnrpp2pppp82p53pNP28PPPPP1PPR1BQKBNR w KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Myers Attack", "rnbqkbnrpppppp1p6p187P2N5PPPPPPP1R1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Napoleon Attack", "r1bqkbnrpppp1ppp2n54p33P42N2N2PPP1PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Novosibirsk Variation", "r1bqkbnrpp1ppppp2n587Q2N5PPP1PPPPR1B1KBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Nowokunski Gambit", "rnbqkbnrpppp1ppp884Pp22N5PPPP2PPR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Pfeiffer Gambit", "rnbqkbnrppp2ppp84p33pNP28PPPPP1PPR1BQKBNR w KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Pfeiffer Gambit, Sleipnir Countergambit", "rnbqkbnrppp2ppp84p33pNP25N2PPPPP1PPR1BQKB1R b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Reversed Nimzowitsch", "rnbqkbnrpppp1ppp84p382N5PPPPPPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Reversed Scandinavian", "r1bqkbnrpppp1ppp2n58Q72N5PPP1PPPPR1B1KBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Sicilian Two Knights", "r1bqkbnrpp1ppppp2n583N42N5PPP1PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Sleipnir Gambit", "rnbqk1nrppp2ppp83pp31b1P42N1P3PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Tuebingen Gambit", "rnbqkb1rpppppppp5n286P12N5PPPPPP1PR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Twyble Attack", "rnbqkbnrpp1ppppp82p582N5PPPPPPPP1RBQKBNR b Kkq")); + openings.add(new Opening("A00", "Van Geet Opening: Venezolana Variation", "rnbqkb1rppp1pppp5n23p482NP2P1PPP1PP1PR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Van Geet Opening: Warsteiner Gambit", "rnbqkbnrppp1pp1p83p2p15P22N5PPPPP1PPR1BQKBNR w KQkq")); + openings.add(new Opening("A00", "Van't Kruijs Opening", "rnbqkbnrpppppppp8884P3PPPP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Van't Kruijs Opening: Bouncing Bishop Variation", "rnbqkbnrp1pp1ppp81p2p381B2P3PPPP1PPPRNBQK1NR b KQkq")); + openings.add(new Opening("A00", "Van't Kruijs Opening: Keoni-Hiva Gambit Delayed", "rnbqkb1rppp2ppp5n23p45p2P1N1PN21PPP2PPR1BQKB1R b KQkq")); + openings.add(new Opening("A00", "Van't Kruijs Opening: Keoni-Hiva Gambit, Akahi Variation", "rnbqkb1rpppp1ppp5n285p22N1PN2PPPP2PPR1BQKB1R b KQkq")); + openings.add(new Opening("A00", "Van't Kruijs Opening: Keoni-Hiva Gambit, Alua Variation", "r1bqkbnrpppp1ppp2n585p22N1PN2PPPP2PPR1BQKB1R b KQkq")); + openings.add(new Opening("A00", "Van't Kruijs Opening: Keoni-Hiva Gambit, Ekolu Variation", "rnbqkbnrppp2ppp83p45p22N1PN2PPPP2PPR1BQKB1R b KQkq")); + openings.add(new Opening("A00", "Venezolana Opening", "r1bqkbnrpp1ppppp2n52p582NP2P1PPP1PP1PR1BQKBNR b KQkq")); + openings.add(new Opening("A00", "Ware Opening", "rnbqkbnrpppppppp88P781PPPPPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Ware Opening: Cologne Gambit", "r1bqkbnrp1pnpppp1p63p4P2P42N51PP1PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A00", "Ware Opening: Meadow Hay Trap", "rnbqkbnrpppp1ppp84p3P7R71PPPPPPP1NBQKBNR b Kkq")); + openings.add(new Opening("A00", "Ware Opening: Ware Gambit", "rnbqkbnrppp3ppP73ppp284P31PPP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("A00", "Ware Opening: Wing Gambit", "rn1qkbnrpbpppppp81P6881PPPPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack", "rnbqkbnrpppppppp8881P6P1PPPPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack: Classical Variation", "rnbqkbnrppp1pppp83p481P6P1PPPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack: Dutch Variation", "rnbqkbnrppppp1pp85p281P6P1PPPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack: English Variation", "rnbqkbnrpp1ppppp82p581P6P1PPPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack: Indian Variation", "rnbqkb1rpppppppp5n2881P6P1PPPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack: Modern Variation", "rnbqkbnrpppp1ppp84p381P6P1PPPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack: Modern Variation", "rnbqkbnrpppp1ppp84p381P6PBPPPPPPRN1QKBNR b KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack: Modern Variation", "r1bqkbnrpppp1ppp2n54p381P6PBPPPPPPRN1QKBNR w KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack: Modern Variation", "r1bqkbnrpppp1ppp2n54p381P2P3PBPP1PPPRN1QKBNR b KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack: Norfolk Gambit", "rnbqkb1rpp2pppp5n22pp44P31P3N2PBPP1PPPRN1QKB1R b KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack: Norfolk Gambit", "rnbqkbnrpp2pppp82pp44P31P3N2P1PP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack: Pachman Gambit", "r1bqkbnrpppp1ppp2n54p35P21P6PBPPP1PPRN1QKBNR b KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack: Ringelbach Gambit", "rnbqkbnrpppp2pp4p35p24P31P6PBPP1PPPRN1QKBNR b KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack: Spike Variation", "rnbqkb1rpppppp1p5np186P11P6PBPPPP1PRN1QKBNR b KQkq")); + openings.add(new Opening("A01", "Nimzo-Larsen Attack: Symmetrical Variation", "rnbqkbnrp1pppppp1p6881P6P1PPPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A01", "Nimzowitsch-Larsen Attack: Polish Variation", "rnbqkbnrp1pppppp81p681P6P1PPPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A02", "Bird Opening", "rnbqkbnrpppppppp885P28PPPPP1PPRNBQKBNR b KQkq")); + openings.add(new Opening("A02", "Bird Opening: Batavo-Polish Attack", "rnbqkb1rpppppp1p5np181P3P25N2P1PPP1PPRNBQKB1R b KQkq")); + openings.add(new Opening("A02", "Bird Opening: Dutch Variation, Batavo Gambit", "rnbqkbnrpp2pppp82p54pP25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("A02", "Bird Opening: Dutch Variation, Dudweiler Gambit", "rnbqkbnrppp1pppp83p45PP18PPPPP2PRNBQKBNR b KQkq")); + openings.add(new Opening("A02", "Bird Opening: From's Gambit", "rnbqkbnrpppp1ppp84p35P28PPPPP1PPRNBQKBNR w KQkq")); + openings.add(new Opening("A02", "Bird Opening: From's Gambit, Bahr Gambit", "rnbqkbnrpppp1ppp84p35P22N5PPPPP1PPR1BQKBNR b KQkq")); + openings.add(new Opening("A02", "Bird Opening: From's Gambit, Langheld Gambit", "rnbqkb1rppp2ppp3P1n2888PPPPP1PPRNBQKBNR w KQkq")); + openings.add(new Opening("A02", "Bird Opening: From's Gambit, Lasker Variation", "rnbqk1nrppp2p1p3b46p185N2PPPPP1PPRNBQKB1R w KQkq")); + openings.add(new Opening("A02", "Bird Opening: From's Gambit, Lipke Variation", "rnbqk2rppp2ppp3b3n83P45N2PPP1P1PPRNBQKB1R b KQkq")); + openings.add(new Opening("A02", "Bird Opening: Hobbs Gambit", "rnbqkbnrpppppp1p86p15P28PPPPP1PPRNBQKBNR w KQkq")); + openings.add(new Opening("A02", "Bird Opening: Hobbs-Zilbermints Gambit", "rnbqkbnrpppppp27p6p15P25N2PPPPP1PPRNBQKB1R w KQkq")); + openings.add(new Opening("A02", "Bird Opening: Lasker Gambit", "rnbqkbnrpppp2pp5p24P388PPPPP1PPRNBQKBNR w KQkq")); + openings.add(new Opening("A02", "Bird Opening: Myers Defense", "rnbqkbnrp1pppppp81p65P28PPPPP1PPRNBQKBNR w KQkq")); + openings.add(new Opening("A02", "Bird Opening: Platz Gambit", "rnbqkb1rppppnppp84P388PPPPP1PPRNBQKBNR w KQkq")); + openings.add(new Opening("A02", "Bird Opening: Schlechter Gambit", "r1bqkbnrpppp1ppp2n54P388PPPPP1PPRNBQKBNR w KQkq")); + openings.add(new Opening("A02", "Bird Opening: Siegener Gambit", "rnbqkbnrpp1p1ppp82p53p1P22P2N2PP2P1PPRNBQKB1R b KQkq")); + openings.add(new Opening("A02", "Bird Opening: Sturm Gambit", "rnbqkbnrppp1pppp83p42P2P28PP1PP1PPRNBQKBNR b KQkq")); + openings.add(new Opening("A02", "Bird Opening: Swiss Gambit", "rnbqkb1rppppp1pp5n284pPP12N5PPPP3PR1BQKBNR b KQkq")); + openings.add(new Opening("A02", "Bird Opening: Thomas Gambit", "rnbqkb1rpp2pppp5n22p53p1P21P2PN2PBPP2PPRN1QKB1R b KQkq")); + openings.add(new Opening("A02", "Bird Opening: Wagner-Zwitersch Gambit", "rnbqkbnrppppp1pp85p24PP28PPPP2PPRNBQKBNR b KQkq")); + openings.add(new Opening("A02", "Bird Opening: Williams Gambit", "rnbqkb1rppp1pppp5n284pP22N5PPPPQ1PPR1B1KBNR b KQkq")); + openings.add(new Opening("A02", "Bird Opening: Williams-Zilbermints Gambit", "rnbqkb1rppp1pppp5n284pP22N5PPPPN1PPR1BQKB1R b KQkq")); + openings.add(new Opening("A02", "System: Double Duck Formation", "rnbqkbnrppp1p1pp83p1p23P1P28PPP1P1PPRNBQKBNR w KQkq")); + openings.add(new Opening("A03", "Bird Opening", "rnbqkb1rpppppppp5n285P28PPPPP1PPRNBQKBNR w KQkq")); + openings.add(new Opening("A03", "Bird Opening: Dutch Variation", "rnbqkbnrppp1pppp83p45P28PPPPP1PPRNBQKBNR w KQkq")); + openings.add(new Opening("A03", "Bird Opening: Horsefly Defense", "rnbqkb1rpppppppp7n85P28PPPPP1PPRNBQKBNR w KQkq")); + openings.add(new Opening("A03", "Bird Opening: Lasker Variation", "rnbqkb1rpp2pppp5n22pp45P24PN2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("A03", "Bird Opening: Mujannah", "rnbqkb1rpppppppp5n282P2P28PP1PP1PPRNBQKBNR b KQkq")); + openings.add(new Opening("A03", "Bird Opening: Williams Gambit", "rnbqkbnrppp1pppp83p44PP28PPPP2PPRNBQKBNR b KQkq")); + openings.add(new Opening("A04", "Polish Opening: Zukertort System", "rnbqkb1rpppppppp5n281P65N2P1PPPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A04", "Réti Opening", "rnbqkbnrpppppppp8885N2PPPPPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A04", "Réti Opening", "rnbqkb1rpppppppp5n2885N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Defense: Drunken Cavalry Variation", "r1bqkb1rppppppppn6n84P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Defense: Kingside Variation", "rnbqkb1rpppppp1p6pn83P45N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Defense: Sicilian Knight Variation", "r1bqkbnrpp1pppppn72p54P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening", "r1bqkb1rpppppppp2n2n2882N2N2PPPPPPPPR1BQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Arctic Defense", "rnbqkbnrppppp1pp5p2885N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Arctic Defense, Drunken Knight Variation", "rnbqkb1rpppppnpp5p283PP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Basman Defense", "rnbqkbnrppppppp17p885N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Black Mustang Defense", "r1bqkbnrpppppppp2n5885N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Dutch Variation", "rnbqkbnrppppp1pp85p285N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Herrstrom Gambit", "rnbqkbnrpppppp1p86p185N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Kingside Fianchetto", "rnbqkbnrpppppp1p6p1885N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Lemberger Gambit", "rnbqkb1rpppppppp5n284P35N2PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Lisitsyn Gambit", "rnbqkbnrppppp1pp85p24P35N2PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Lisitsyn Gambit Deferred", "rnbqkb1rppppp1pp5n25p24P33P1N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Myers Polish Attack", "rnbqkb1rpppppp1p5np18PP65N22PPPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Nimzo-Larsen Variation", "rnbqkb1rpppppppp5n2881P3N2P1PPPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Pachman Gambit", "rnbqkbnrpp2pppp82p52p51P2PN2P2P1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Pirc Invitation", "rnbqkbnrppp1pppp3p4885N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Polish Defense", "rnbqkbnrp1pppppp81p685N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Queen's Gambit Invitation", "rnbqkbnrpppp1ppp4p3885N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Queenside Fianchetto Variation", "rnbqkbnrp1pppppp1p6885N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Quiet System", "rnbqkb1rpppppppp5n2884PN2PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Regina-Nu Gambit", "rnbqkbnrpp2pppp82p52p51PN2N2P2PPPPPR1BQKB1R b KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Ross Gambit", "rnbqkbnrpppp1ppp84p385N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Shabalov Gambit", "rnbqkbnr3p1pppp3p31pp52P52N2NP1PP1PPP1PR1BQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Sicilian Invitation", "rnbqkbnrpp1ppppp82p585N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Slav Invitation", "rnbqkbnrpp1ppppp2p5885N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Speelsmet Gambit", "rnbqkbnrpp1ppppp883p44PN2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: St. George Defense", "rnbqkbnr1pppppppp7885N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: The Walrus", "r1bqkbnrppp2ppp2p5888PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Vos Gambit", "rnbqkbnrppp2ppp3p44p33P45N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Wade Defense", "rn1qkbnrppp1pppp3p484P1b15N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("A04", "Zukertort Opening: Ware Defense", "rnbqkbnr1ppppppp8p785N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A05", "King's Indian Attack: Smyslov Variation", "rnbqkb1rpppppp1p5np181P65NP1P1PPPP1PRNBQKB1R b KQkq")); + openings.add(new Opening("A05", "King's Indian Attack: Spassky Variation", "rnbqkb1rp1pppppp5n21p685NP1PPPPPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A05", "King's Indian Attack: Symmetrical Defense", "rnbqkb1rpppppp1p5np1885NP1PPPPPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A05", "King's Indian Attack: Wahls Defense", "rnbq1rk1ppp1ppbp5np13p483P1NP1PPP1PPBPRNBQ1RK1 w -")); + openings.add(new Opening("A06", "Nimzo-Larsen Attack: Classical Variation", "rnbqkbnrppp1pppp83p481P3N2P1PPPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A06", "Réti Opening", "rnbqkbnrppp1pppp83p485N2PPPPPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A06", "Zukertort Opening: Ampel Variation", "rnbqkbnrppp1pppp83p485N2PPPPPPPPRNBQKBR1 b Qkq")); + openings.add(new Opening("A06", "Zukertort Opening: Old Indian Attack", "rnbqkbnrppp1pppp83p483P1N2PPP1PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A06", "Zukertort Opening: Reversed Mexican Defense", "rnbqkbnrppp1pppp83p482N2N2PPPPPPPPR1BQKB1R b KQkq")); + openings.add(new Opening("A06", "Zukertort Opening: Santasiere's Folly", "rnbqkbnrppp1pppp83p41P65N2P1PPPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A06", "Zukertort Opening: Tennison Gambit", "rnbqkbnrppp1pppp83p44P35N2PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("A06", "Zukertort Opening: The Potato", "rnbqkbnrppp1pppp83p4P75N21PPPPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A07", "King's Indian Attack", "rnbqkbnrppp1pppp83p485NP1PPPPPP1PRNBQKB1R b KQkq")); + openings.add(new Opening("A07", "King's Indian Attack: Double Fianchetto", "rnbqkbnrppp1pp1p6p13p485NP1PPPPPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A07", "King's Indian Attack: Keres Variation", "r2qkbnrpppnpppp83p46b15NP1PPPPPPBPRNBQK2R w KQkq")); + openings.add(new Opening("A07", "King's Indian Attack: Keres Variation", "rn1qkbnrppp1pppp83p46b15NP1PPPPPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A07", "King's Indian Attack: Omega-Delta Gambit", "rnbqkbnrppp2ppp83pp385NP1PPPPPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A07", "King's Indian Attack: Pachman System", "rnbqk2rppp1npbp6p13pp383P1NP1PPP1PPBPRNBQ1RK1 w kq")); + openings.add(new Opening("A07", "King's Indian Attack: Sicilian Variation", "rnbqkbnrpp2pppp82pp485NP1PPPPPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A07", "King's Indian Attack: Yugoslav Variation", "rn1qkb1rpp2pppp2p2n23p46b15NP1PPPPPPBPRNBQ1RK1 w kq")); + openings.add(new Opening("A08", "King's Indian Attack", "rnbqkb1rppp1pppp5n23p485NP1PPPPPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A08", "King's Indian Attack: French Variation", "r1bqkbnrpp2pppp2n52pp485NP1PPPPPPBPRNBQK2R w KQkq")); + openings.add(new Opening("A08", "King's Indian Attack: Sicilian Variation", "rnbqkbnrpp2pppp82pp485NP1PPPPPPBPRNBQK2R b KQkq")); + openings.add(new Opening("A08", "King's Indian Attack: Sicilian Variation", "r1bq1rk1pp2bppp2n1pn22pp44P33P1NP1PPPN1PBPR1BQR1K1 b -")); + openings.add(new Opening("A09", "Réti Opening", "rnbqkbnrppp1pppp83p42P55N2PP1PPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A09", "Réti Opening: Advance Variation", "rnbqkbnrppp1pppp882Pp45N2PP1PPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A09", "Réti Opening: Advance Variation, Michel Gambit", "rnbqkbnrpp2pppp82p51PPp45N2P2PPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A09", "Réti Opening: Penguin Variation", "rnbqkbnrppp1pppp882Pp45N2PP1PPPPPRNBQKBR1 b Qkq")); + openings.add(new Opening("A09", "Réti Opening: Réti Accepted", "rnbqkbnrppp1pppp882p55N2PP1PPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A09", "Réti Opening: Réti Gambit, Keres Variation", "rn1qkbnrppp1pppp4b382p54PN2PP1P1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("A09", "Réti Opening: Reversed Blumenfeld Gambit", "rnbqkbnrpp2pppp82p51PPp44PN2P2P1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("A09", "Réti Opening: Zilbermints Gambit", "rnbqkbnrp1p1pppp81p1p42P55N2PP1PPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A10", "English Opening", "rnbqkbnrpppppppp882P58PP1PPPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A10", "English Opening: 2. g4", "rnbqkb1rpppppppp5n282P3P18PP1PPP1PRNBQKBNR b KQkq")); + openings.add(new Opening("A10", "English Opening: Achilles-Omega Gambit", "rnbqkb1rpppppppp5n282P1P38PP1P1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("A10", "English Opening: Adorjan Defense", "rnbqkbnrpppp1p1p6p14p32P1P38PP1P1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("A10", "English Opening: Anglo-Dutch Defense", "rnbqkbnrppppp1pp85p22P58PP1PPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A10", "English Opening: Anglo-Dutch Defense, Hickmann Gambit", "rnbqkbnrppppp1pp85p22P1P38PP1P1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("A10", "English Opening: Anglo-Dutch Variation, Chabanon Gambit", "rnbqkbnrppp1p1pp3p45p22P1P35N2PP1P1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("A10", "English Opening: Anglo-Dutch Variation, Ferenc Gambit", "rnbqkb1rppppp1pp5n25p22P1P32N5PP1P1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A10", "English Opening: Anglo-Lithuanian Variation", "r1bqkbnrpppppppp2n582P58PP1PPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A10", "English Opening: Anglo-Scandinavian Defense", "rnbqkbnrppp1pppp83p42P58PP1PPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A10", "English Opening: Anglo-Scandinavian Defense, Loehn Gambit", "rnbqkbnrppp2ppp4p33P488PP1PPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A10", "English Opening: Anglo-Scandinavian Defense, Malvinas Variation", "rnb1kbnrppp1pppp8q782N5PP1PPPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A10", "English Opening: Anglo-Scandinavian Defense, Schulz Gambit", "rnbqkb1rppp1pppp5n23P488PP1PPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A10", "English Opening: Great Snake Variation", "rnbqkbnrpppppp1p6p182P58PP1PPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A10", "English Opening: Jaenisch Gambit", "rnbqkbnrp1pppppp81p62P58PP1PPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A10", "English Opening: Myers Variation", "rnbqk1nrppppppbp86p12PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A10", "English Opening: Porcupine Variation", "rnbqkb1rppppp1pp5n282P1p1P12N5PP1P1P1PR1BQKBNR b KQkq")); + openings.add(new Opening("A10", "English Opening: Wade Gambit", "rnbqkbnrppppp1pp85p22P3P18PP1PPP1PRNBQKBNR b KQkq")); + openings.add(new Opening("A10", "English Opening: Zilbermints Gambit", "rnbqkbnrpppp1p1p84p1p12PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A11", "English Opening: Anglo-Indian Defense, Romanishin Variation", "rnbqkb1r1ppp1pppp3pn282P55NP1PP1PPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A11", "English Opening: Caro-Kann Defensive System", "rnbqkbnrpp1ppppp2p582P58PP1PPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A12", "Réti Opening: Anglo-Slav Variation, Bled Variation", "rnbqkb1rpp2pp1p2p2np13p42P51P3N2PB1PPPPPRN1QKB1R w KQkq")); + openings.add(new Opening("A12", "Réti Opening: Anglo-Slav Variation, Bogoljubov Variation", "rnbqkb1rpp2pppp2p2n23p42P51P3N2PB1PPPPPRN1QKB1R b KQkq")); + openings.add(new Opening("A12", "Réti Opening: Anglo-Slav Variation, Bogoljubov Variation", "rn1qkbnrpp2pppp2p53p42P3b11P3N2P2PPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A12", "Réti Opening: Anglo-Slav Variation, Bogoljubov Variation", "rnbqkbnrpp2pppp2p53p42P51P3N2P2PPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A12", "Réti Opening: Anglo-Slav Variation, Bogoljubov Variation, Stonewall Line", "rnbq1rk1pp2bppp2p1pn23p42P51P3NP1PB1PPPBPRN1Q1RK1 b -")); + openings.add(new Opening("A12", "Réti Opening: Anglo-Slav Variation, Capablanca Variation", "rn1qkb1rpp2pppp2p2n23p42P3b11P3N2PB1PPPPPRN1QKB1R w KQkq")); + openings.add(new Opening("A12", "Réti Opening: Anglo-Slav Variation, London Defensive System", "rn1qkb1rpp2pppp2p2n23p1b22P51P3NP1P2PPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A12", "Réti Opening: Anglo-Slav Variation, New York System", "rn1qkb1rpp2pppp2p2n23p1b22P51P3N2PB1PPPPPRN1QKB1R w KQkq")); + openings.add(new Opening("A12", "Réti Opening: Anglo-Slav Variation, Torre System", "rn1qkb1rpp2pppp2p2n23p42P3b11P3NP1P2PPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A13", "English Opening: Agincourt Defense", "rnbqkbnrpppp1ppp4p382P58PP1PPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A13", "English Opening: Agincourt Defense", "rnbqkbnrppp2ppp4p33p42P55N2PP1PPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A13", "English Opening: Agincourt Defense", "rnbqkbnrpppp1ppp4p382P55N2PP1PPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A13", "English Opening: Agincourt Defense, Bogoljubov Defense", "rnbqk2rppp2ppp3bpn23p42P55NP1PP1PPPBPRNBQK2R w KQkq")); + openings.add(new Opening("A13", "English Opening: Agincourt Defense, Catalan Defense", "rnbqkbnrpp3ppp4p32pp42P55NP1PP1PPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A13", "English Opening: Agincourt Defense, Catalan Defense Accepted", "rnbqkb1rppp2ppp4pn282p55NP1PP1PPPBPRNBQK2R w KQkq")); + openings.add(new Opening("A13", "English Opening: Agincourt Defense, Catalan Defense, Semi-Slav Defense", "rnbqkb1rpp3ppp2p1pn23p42P55NP1PP1PPPBPRNBQK2R w KQkq")); + openings.add(new Opening("A13", "English Opening: Agincourt Defense, Kurajica Defense", "rnbqkbnrpp3ppp2p1p33p42P55NP1PP1PPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A13", "English Opening: Agincourt Defense, Wimpy System", "rnbqkb1rpp3ppp4pn22pp42P51P2PN2PB1P1PPPRN1QKB1R b KQkq")); + openings.add(new Opening("A13", "English Opening: Anglo-Indian Defense, Queen's Indian Formation", "rn1qkb1rpbpp1ppp1p2pn282P55NP1PP1PPPBPRNBQK2R w KQkq")); + openings.add(new Opening("A13", "English Opening: Neo-Catalan", "rnbqkb1rppp2ppp4pn23p42P55NP1PP1PPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A13", "English Opening: Romanishin Gambit", "rnbqkb1r2pp1pppp3pn21p62P55NP1PP1PPPBPRNBQK2R w KQkq")); + openings.add(new Opening("A14", "English Opening: Agincourt Defense, Catalan Defense", "rn1qkbnrpbp2ppp1p2p33p42P55NP1PP1PPPBPRNBQ1RK1 b kq")); + openings.add(new Opening("A14", "English Opening: Agincourt Defense, Keres Defense", "r1bqk2rpp2bppp2n1p32pn482N2NP1PP1PPPBPR1BQ1RK1 w kq")); + openings.add(new Opening("A14", "English Opening: Agincourt Defense, Neo-Catalan Declined", "rnbqk2rppp1bppp4pn23p42P55NP1PP1PPPBPRNBQ1RK1 b kq")); + openings.add(new Opening("A14", "English Opening: Agincourt Defense, Tarrasch Defense", "r1bqk2rpp2bppp2n1pn22pp42P51P3NP1P2PPPBPRNBQ1RK1 w kq")); + openings.add(new Opening("A14", "English Opening: Neo-Catalan Declined", "rnbqk2rppp1bppp4pn23p42P55NP1PP1PPPBPRNBQK2R w KQkq")); + openings.add(new Opening("A15", "English Opening: Anglo-Indian Defense", "rnbqkb1rpppppppp5n282P58PP1PPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A15", "English Opening: Anglo-Indian Defense, Grünfeld Formation", "rnbqkb1rppp1pp1p5np13p42P55NP1PP1PPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A15", "English Opening: Anglo-Indian Defense, King's Indian Formation", "rnbqkb1rpppppp1p5np182P55N2PP1PPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A15", "English Opening: Anglo-Indian Defense, King's Indian Formation, Double Fianchetto", "rn1qkb1rpbpppp1p1p3np182P55NP1PP1PPPBPRNBQK2R w KQkq")); + openings.add(new Opening("A15", "English Opening: Anglo-Indian Defense, King's Knight Variation", "rnbqkb1rpppppppp5n282P55N2PP1PPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A15", "English Opening: Anglo-Indian Defense, Old Indian Formation", "rnbqkb1rppp1pppp3p1n282P55N2PP1PPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A15", "English Opening: Anglo-Indian Defense, Queen's Indian Formation", "rnbqkb1rp1pppppp1p3n282P55N2PP1PPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A15", "English Opening: Anglo-Indian Defense, Scandinavian Defense", "rnbqkb1rppp1pppp5n23p42P55N2PP1PPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A15", "English Opening: Anglo-Indian Defense, Scandinavian Defense, Exchange Variation", "rnbqkb1rppp1pppp83n485N2PP1PPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A15", "English Opening: Anglo-Indian Defense, Slav Formation", "rnbqkb1rpp1ppp1p2p2np182P55NP1PP1PPP1PRNBQKB1R w KQkq")); + openings.add(new Opening("A15", "English Orangutan", "rnbqkb1rpppppppp5n281PP58P2PPPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A16", "English Opening: Anglo-Grünfeld Defense", "rnbqkb1rppp1pppp5n23p42P52N5PP1PPPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A16", "English Opening: Anglo-Grünfeld Defense: Korchnoi Variation", "rnbqk2rppp2pbp6p13np382N2NP1PP1PPPBPR1BQK2R w KQkq")); + openings.add(new Opening("A16", "English Opening: Anglo-Indian Defense, Anglo-Grünfeld Variation", "rnbqkb1rppp1pp1p6p1882n3P1PP1PPPBPR1BQK1NR w KQkq")); + openings.add(new Opening("A16", "English Opening: Anglo-Indian Defense, Anglo-Grünfeld Variation", "rnbqkb1rppp1pp1p1n4p1882N3P1PP1PPPBPR1BQK1NR w KQkq")); + openings.add(new Opening("A16", "English Opening: Anglo-Indian Defense, Anglo-Grünfeld Variation", "rnbqkb1rppp1pppp83n482N2N2PP1PPPPPR1BQKB1R b KQkq")); + openings.add(new Opening("A16", "English Opening: Anglo-Indian Defense, Queen's Knight Variation", "rnbqkb1rpppppppp5n282P52N5PP1PPPPPR1BQKBNR b KQkq")); + openings.add(new Opening("A17", "English Opening: Anglo-Indian Defense, Anti-Anti-Grünfeld", "rnbqk2rppppppbp5np182P1P32N2N2PP1P1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("A17", "English Opening: Anglo-Indian Defense, Hedgehog System", "rnbqkb1rpppp1ppp4pn282P52N5PP1PPPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A17", "English Opening: Anglo-Indian Defense, Nimzo-English", "rnbqk2rpppp1ppp4pn281bP52N2N2PP1PPPPPR1BQKB1R w KQkq")); + openings.add(new Opening("A17", "English Opening: Anglo-Indian Defense, Queen's Indian Formation", "rnbqkb1rp1pp1ppp1p2pn282P52N2N2PP1PPPPPR1BQKB1R w KQkq")); + openings.add(new Opening("A17", "English Opening: Anglo-Indian Defense, Queen's Indian Variation", "rn1qkb1rpbpp1ppp1p2pn282P1P32NB1N2PP1P1PPPR1BQK2R b KQkq")); + openings.add(new Opening("A18", "English Opening: Anglo-Indian Defense, Zvjaginsev-Krasenkow Attack", "rnbqk2rpppp1ppp4pn281bP3P12N2N2PP1PPP1PR1BQKB1R b KQkq")); + openings.add(new Opening("A18", "English Opening: Mikenas-Carls Variation", "rnbqkb1rppp2ppp4pn23pP32P52N5PP1P1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A18", "English Opening: Mikenas-Carls Variation", "rnbqkb1rpppp1ppp4pn282P1P32N5PP1P1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A18", "English Opening: Mikenas-Carls Variation", "r1bqkb1rpppp1ppp2n1pn282P1P32N5PP1P1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("A19", "English Opening: Anglo-Indian Defense, Flohr-Mikenas-Carls Variation, Nei Gambit", "rnbqkbnrpp1p1ppp4p32p1P32P52N5PP1P1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("A19", "English Opening: Mikenas-Carls, Sicilian", "rnbqkb1rpp1p1ppp4pn22p52P1P32N5PP1P1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("A20", "English Opening: Drill Variation", "rnbqkbnrpppp1pp184p2p2P56P1PP1PPP1PRNBQKBNR w KQkq")); + openings.add(new Opening("A20", "English Opening: King's English Variation", "rnbqkbnrpppp1ppp84p32P58PP1PPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A20", "English Opening: King's English Variation, Nimzowitsch Variation", "rnbqkbnrpppp1ppp84p32P55N2PP1PPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A20", "English Opening: King's English Variation, Nimzowitsch-Flohr Variation", "rnbqkbnrpppp1ppp882P1p35N2PP1PPPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A20", "English Openings: King's English, Kahiko-Hula Gambit", "rnbqkb1rpppp1ppp5n282P2p24PN2PP1P2PPRNBQKB1R b KQkq")); + openings.add(new Opening("A21", "English Opening: King's English Variation", "rnbqkbnrppp2ppp3p44p32P52N2N2PP1PPPPPR1BQKB1R b KQkq")); + openings.add(new Opening("A21", "English Opening: King's English Variation, Keres Defense", "rnbqkbnrpp3ppp2pp44p32P52N3P1PP1PPP1PR1BQKBNR w KQkq")); + openings.add(new Opening("A21", "English Opening: King's English Variation, Kramnik-Shirov Counterattack", "rnbqk1nrpppp1ppp84p31bP52N5PP1PPPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A21", "English Opening: King's English Variation, Reversed Sicilian", "rnbqkbnrpppp1ppp84p32P52N5PP1PPPPPR1BQKBNR b KQkq")); + openings.add(new Opening("A21", "English Opening: King's English Variation, Smyslov Defense", "rn1qkbnrppp2ppp3p44p32P3b12N2N2PP1PPPPPR1BQKB1R w KQkq")); + openings.add(new Opening("A21", "English Opening: King's English Variation, Troger Defense", "r2qkbnrppp2ppp2npb34p32P52N3P1PP1PPPBPR1BQK1NR w KQkq")); + openings.add(new Opening("A22", "English Opening: Carls-Bremen System", "rnbqkb1rpppp1ppp5n24p32P52N3P1PP1PPP1PR1BQKBNR b KQkq")); + openings.add(new Opening("A22", "English Opening: King's English Variation, Bellon Gambit", "rnbqkb1rp1pp1ppp5n21p4N12P1p32N5PP1PPPPPR1BQKB1R w KQkq")); + openings.add(new Opening("A22", "English Opening: King's English Variation, Two Knights Variation", "rnbqkb1rpppp1ppp5n24p32P52N5PP1PPPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A22", "English Opening: King's English Variation, Two Knights Variation, Reversed Dragon", "rnbqkb1rppp2ppp5n23pp32P52N3P1PP1PPP1PR1BQKBNR w KQkq")); + openings.add(new Opening("A22", "English Opening: King's English Variation, Two Knights Variation, Smyslov System", "rnbqk2rpppp1ppp5n24p31bP52N3P1PP1PPP1PR1BQKBNR w KQkq")); + openings.add(new Opening("A22", "English Opening: King's English, Erbenheimer Gambit", "rnbqkb1rpppp1ppp86N12P1p1n12N5PP1PPPPPR1BQKB1R w KQkq")); + openings.add(new Opening("A23", "English Opening: King's English Variation, Two Knights Variation, Keres Variation", "rnbqkb1rpp1p1ppp2p2n24p32P52N3P1PP1PPP1PR1BQKBNR w KQkq")); + openings.add(new Opening("A24", "English Opening: King's English Variation, Two Knights Variation, Fianchetto Line", "rnbqkb1rpppp1p1p5np14p32P52N3P1PP1PPP1PR1BQKBNR w KQkq")); + openings.add(new Opening("A25", "English Opening: Closed, 5. Rb1 Taimanov Variation", "r1bqk2rpppp1pbp2n3pn4p32P52N3P1PP1PPPBP1RBQK1NR w Kkq")); + openings.add(new Opening("A25", "English Opening: Closed, Taimanov Variation", "r1bqk2rppp2pbp2np2pn4p32P52N1P1P1PP1PNPBPR1BQK2R w KQkq")); + openings.add(new Opening("A25", "English Opening: King's English Variation, Bremen-Hort Variation", "r2qk1nrppp2pbp2npb1p14p32P52N1P1P1PP1PNPBPR1BQK2R w KQkq")); + openings.add(new Opening("A25", "English Opening: King's English Variation, Closed System", "r1bqk1nrpppp1pbp2n3p14p32P52NP2P1PP2PPBPR1BQK1NR b KQkq")); + openings.add(new Opening("A25", "English Opening: King's English Variation, Hungarian Attack", "r1bqk1nrpppp1pbp2n3p14p32P52N3P1PP1PPPBP1RBQK1NR b Kkq")); + openings.add(new Opening("A25", "English Opening: King's English Variation, Reversed Closed Sicilian", "r1bqkbnrpppp1ppp2n54p32P52N5PP1PPPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A25", "English Opening: King's English Variation, Taimanov Variation", "r1bqk1nrpppp1pbp2n3p14p32P52N3P1PP1PPPBPR1BQK1NR w KQkq")); + openings.add(new Opening("A25", "English Opening: King's English, Mazedonisch", "rnbqkb1rpppp1ppp5n24p32P2P22N5PP1PP1PPR1BQKBNR b KQkq")); + openings.add(new Opening("A26", "English Opening: King's English Variation, Botvinnik System", "r1bqk1nrppp2pbp2np2p14p32P1P32NP2P1PP3PBPR1BQK1NR b KQkq")); + openings.add(new Opening("A26", "English Opening: King's English Variation, Botvinnik System, Prickly Pawn Pass System", "rnbq1rk11p3pbpp1pp1np14p32P1P32NP2P1PP2NPBPR1BQ1RK1 w -")); + openings.add(new Opening("A26", "English Opening: King's English Variation, Closed System, Full Symmetry", "r1bqk1nrppp2pbp2np2p14p32P52NP2P1PP2PPBPR1BQK1NR w KQkq")); + openings.add(new Opening("A27", "English Opening: King's English Variation, Three Knights System", "r1bqkbnrpppp1ppp2n54p32P52N2N2PP1PPPPPR1BQKB1R b KQkq")); + openings.add(new Opening("A28", "English Opening: Four Knights System, Nimzowitsch Variation", "r1bqkb1rpppp1ppp2n2n24p32P1P32N2N2PP1P1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("A28", "English Opening: King's English Variation, Four Knights Variation", "r1bqk2rpppp1pp15n1p4n32PN3B2P5P3PPPPR2QKB1R w KQkq")); + openings.add(new Opening("A28", "English Opening: King's English Variation, Four Knights Variation", "r1bqkb1rpppp1ppp2n2n24p32P52N2N2PP1PPPPPR1BQKB1R w KQkq")); + openings.add(new Opening("A28", "English Opening: King's English Variation, Four Knights Variation, Bradley Beach Variation", "r1bqkb1rpppp1ppp2n2n282PPp32N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("A28", "English Opening: King's English Variation, Four Knights Variation, Flexible Line", "r1bqkb1rpppp1ppp2n2n24p32P52NP1N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("A28", "English Opening: King's English Variation, Four Knights Variation, Korchnoi Line", "r1bqkb1rpppp1ppp2n2n24p32P5P1N2N21P1PPPPPR1BQKB1R b KQkq")); + openings.add(new Opening("A28", "English Opening: King's English Variation, Four Knights Variation, Quiet Line", "r1bqk2rpppp1ppp2n2n24p32P52b1PN2PPQP1PPPR1B1KB1R w KQkq")); + openings.add(new Opening("A28", "English Opening: King's English Variation, Four Knights Variation, Quiet Line", "r1bqr1k1pppp1ppp2n2n23NpQ21bP54PN2PP1P1PPPR1B1KB1R b KQ")); + openings.add(new Opening("A28", "English Opening: King's English Variation, Four Knights Variation, Quiet Line", "r1bqkb1rpppp1ppp2n2n24p32P52N1PN2PP1P1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("A29", "English Opening: King's English Variation, Four Knights Variation, Fianchetto Line", "r1bqkb1rpppp1ppp2n2n24p32P52N2NP1PP1PPP1PR1BQKB1R b KQkq")); + openings.add(new Opening("A30", "English Opening: Symmetrical Variation", "rnbqkbnrpp1ppppp82p52P58PP1PPPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A30", "English Opening: Symmetrical Variation, Hedgehog Defense", "rn1qk2rpb1pbppp1p2pn22p52P52N2NP1PP1PPPBPR1BQ1RK1 w kq")); + openings.add(new Opening("A30", "English Opening: Symmetrical Variation, Napolitano Gambit", "rnbqkb1rpp1ppppp5n22p51PP55N2P2PPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A30", "English Opening: Symmetrical, Hedgehog, Flexible Formation", "r2qk2r1b1nbppppp1ppn282PQ41PN2NP1P3PPBPR1BR2K1 w kq")); + openings.add(new Opening("A30", "English Opening: Wing Gambit", "rnbqkbnrpp1ppppp82p51PP58P2PPPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A31", "English Opening: Symmetrical Variation, Anti-Benoni Variation", "rnbqkb1rpp1ppppp5n22p52PP45N2PP2PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A32", "English Opening: Symmetrical Variation, Anti-Benoni Variation, Spielmann Defense", "rnbqkb1rpp1p1ppp4pn282PN48PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A33", "English Opening: Symmetrical Variation, Anti-Benoni Variation, Geller Variation", "r1b1kb1rpp1p1ppp1qn1pn282PN42N3P1PP2PP1PR1BQKB1R w KQkq")); + openings.add(new Opening("A33", "English Opening: Symmetrical Variation, Anti-Benoni Variation, Spielmann Defense", "r1bqkb1rpp1p1ppp2n1pn282PN42N5PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("A34", "English Opening: Symmetrical Variation, Fianchetto Variation", "rnbqkb1rpp1ppppp5n22p52P52N3P1PP1PPP1PR1BQKBNR b KQkq")); + openings.add(new Opening("A34", "English Opening: Symmetrical Variation, Normal Variation", "rnbqkbnrpp1ppppp82p52P52N5PP1PPPPPR1BQKBNR b KQkq")); + openings.add(new Opening("A34", "English Opening: Symmetrical Variation, Rubinstein Variation", "rnbqkb1rppn1pppp82p582N3P1PP1PPPBPR1BQK1NR w KQkq")); + openings.add(new Opening("A34", "English Opening: Symmetrical Variation, Three Knights Variation", "rnbqkb1rpp2pppp82pn482N2N2PP1PPPPPR1BQKB1R w KQkq")); + openings.add(new Opening("A35", "English Opening: Symmetrical Variation, Four Knights Variation", "r1bqkb1rpp1ppppp2n2n22p52P52N2N2PP1PPPPPR1BQKB1R w KQkq")); + openings.add(new Opening("A35", "English Opening: Symmetrical Variation, Two Knights Variation", "r1bqkbnrpp1ppppp2n52p52P52N5PP1PPPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A36", "English Opening: Symmetrical Variation, Botvinnik System", "r1bqk1nrpp1pppbp2n3p12p52P1P32N3P1PP1P1PBPR1BQK1NR b KQkq")); + openings.add(new Opening("A36", "English Opening: Symmetrical Variation, Botvinnik System Reversed", "r1bqk1nrpp1p1pbp2n3p12p1p32P52N1P1P1PP1P1PBPR1BQK1NR w KQkq")); + openings.add(new Opening("A36", "English Opening: Symmetrical Variation, Fianchetto Variation", "r1bqkbnrpp1ppppp2n52p52P52N3P1PP1PPP1PR1BQKBNR b KQkq")); + openings.add(new Opening("A36", "English Opening: Symmetrical Variation, Symmetrical Variation", "r1bqk1nrpp1pppbp2n3p12p52P52N3P1PP1PPPBPR1BQK1NR w KQkq")); + openings.add(new Opening("A37", "English Opening: Symmetrical Variation, Botvinnik System Reversed", "r1bqk1nrpp1p1pbp2n3p12p1p32P52N2NP1PP1PPPBPR1BQK2R w KQkq")); + openings.add(new Opening("A37", "English Opening: Symmetrical Variation, Two Knights Line", "r1bqk1nrpp1pppbp2n3p12p52P52N2NP1PP1PPPBPR1BQK2R b KQkq")); + openings.add(new Opening("A38", "English Opening: Symmetrical Variation, Double Fianchetto", "r1bq1rk1pp1pppbp2n2np12p52P51PN2NP1P2PPPBPR1BQ1RK1 b -")); + openings.add(new Opening("A38", "English Opening: Symmetrical Variation, Duchamp Variation", "r1bq1rk1pp1pppbp2n2np12p52P52NP1NP1PP2PPBPR1BQ1RK1 b -")); + openings.add(new Opening("A38", "English Opening: Symmetrical Variation, Full Symmetry Line", "r1bqk2rpp1pppbp2n2np12p52P52N2NP1PP1PPPBPR1BQK2R w KQkq")); + openings.add(new Opening("A39", "English Opening: Symmetrical Variation, Mecking Variation", "r1bq1rk1pp1pppbp2n2np12p52PP42N2NP1PP2PPBPR1BQ1RK1 b -")); + openings.add(new Opening("A40", "Australian Defense", "r1bqkbnrppppppppn783P48PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Borg Defense: Borg Gambit", "rnbqkbnrpppppp1p86p13P48PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Caro-Kann Defense: De Bruycker Defense", "r1bqkbnrpp1pppppn1p583PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "English Defense", "rnbqkbnrp1pp1ppp1p2p382PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "English Defense", "rnbqkbnrp1pppppp1p683P48PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "English Defense: Eastbourne Gambit", "rn1qkbnrpbpp1ppp1p64p32PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A40", "English Defense: Hartlaub Gambit Accepted", "rn1qkb1rpbpp2pp1p2pn25P22PP42N5PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("A40", "English Defense: Hartlaub Gambit Declined", "rn1qkbnrpbpp2pp1p2p33P1p22P1P32N5PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A40", "English Defense: Perrin Variation", "r2qkbnrpbpp1ppp1pn1p382PPP33B4PP3PPPRNBQK1NR w KQkq")); + openings.add(new Opening("A40", "English Defense: Poli Gambit", "rn1qkb1rpbpp2pp1p2p2n5P22PP45P2PP4PPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Englund Gambit", "rnbqkbnrpppp1ppp84p33P48PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Englund Gambit Complex Declined", "rnbqkbnrpppp1ppp83Pp388PPP1PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A40", "Englund Gambit Complex Declined, Diemer Counterattack", "rnb1k1nrpppp1ppp82bPp34P2q8PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Englund Gambit Complex: Englund Gambit", "r1b1kbnrppppqppp2n54P385N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A40", "Englund Gambit Complex: Felbecker Gambit", "r1bqk1nrpppp1ppp2n52b1P385N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A40", "Englund Gambit Complex: Hartlaub-Charlick Gambit", "rnbqkbnrppp2ppp3p44P388PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Englund Gambit Complex: Mosquito Gambit", "rnb1kbnrpppp1ppp84P37q8PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Englund Gambit Complex: Soller Gambit", "rnbqkbnrpppp2pp5p24P388PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Englund Gambit Complex: Soller Gambit Deferred", "r1bqkbnrpppp2pp2n2p24P385N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A40", "Englund Gambit Complex: Stockholm Variation", "r1b1kbnrppppqppp2n53QP385N2PPP1PPPPRNB1KB1R b KQkq")); + openings.add(new Opening("A40", "Englund Gambit Complex: Zilbermints Gambit", "r1bqkb1rppppnppp2n54P385N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A40", "Englund Gambit Complex: Zilbermints Gambit", "r1bqkbnrpppp1pp12n4p4P385N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A40", "Englund Gambit Declined, Reversed Alekhine", "rnbqkbnrpppp1ppp84p33P45N2PPP1PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A40", "Englund Gambit Declined, Reversed Brooklyn", "rnbqkbnrpppp1ppp883Pp38PPP1PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A40", "Englund Gambit Declined, Reversed French", "rnbqkbnrpppp1ppp84p33P44P3PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("A40", "Englund Gambit Declined, Reversed Krebs", "rnbqkbnrpppp1ppp883Pp35N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A40", "Englund Gambit Declined, Reversed Mokele Mbembe", "rnbqkbnrpppp1ppp84N33Pp38PPP1PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A40", "Horwitz Defense", "rnbqkbnrpppp1ppp4p383P48PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Horwitz Defense: Zilbermints Gambit", "rnbqkbnrpppp1ppp84p32PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Mikenas Defense", "r1bqkbnrpppppppp2n583P48PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Mikenas Defense: Cannstatter Variation", "r1bqkbnrpppp1ppp83Pp32Pn48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Mikenas Defense: Lithuanian Variation", "r1bqkbnrppppnppp83Pp32P58PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Mikenas Defense: Pozarek Gambit", "r1bqkbnrpppp1ppp882n52N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A40", "Modern Defense", "rnbqkbnrpppppp1p6p183P48PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Modern Defense: Beefeater Variation", "rnbqk1nrpp1pp2p6p12pP1p22P52P5P3PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A40", "Modern Defense: Dunworthy Variation", "rnbqk1nrpp2pp1p2P3p182Pb48PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Modern Defense: Lizard Defense, Pirc-Diemer Gambit", "rnbqkb1rpppppp1p5np17P3P48PPP1PPP1RNBQKBNR b KQkq")); + openings.add(new Opening("A40", "Modern Defense: Semi-Averbakh Variation, Polish Variation", "rnb1k1nrpp1pppbp1q4p12p52PPP35N2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("A40", "Modern Defense: Semi-Averbakh Variation, Pterodactyl Variation", "rnb1k1nrpp1pppbp6p1q1p52PPP35N2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("A40", "Modern Defense: Semi-Averbakh Variation, Pterodactyl Variation Accepted", "rnb1k1nrpp2ppbp3p2p1q1P52P1P35N2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("A40", "Modern Defense: Semi-Averbakh Variation, Pterodactyl Variation Declined", "rnb1k1nrpp2ppbp3p2p1q1p52PPP35N2PP2BPPPRNBQK2R w KQkq")); + openings.add(new Opening("A40", "Montevideo Defense", "rnbqkbnrpppppppp83P488PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Polish Defense", "rnbqkbnrp1pppppp81p63P48PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Polish Defense: Spassky Gambit Accepted", "rn1qkbnrpbpppppp81B63PP38PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("A40", "Pterodactyl Defense: Fianchetto, Queen Benoni Pterodactyl", "rnb1k1nrpp1pppbp6p1q1pP42P52N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A40", "Pterodactyl Defense: Fianchetto, Queen Pteranodon", "rnb1k1nrpp1ppp1p6p1q1pP42P52P5P3PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A40", "Pterodactyl Defense: Fianchetto, Queen Pterodactyl", "rnb1k1nrpp1pppbp6p1q1p53P45NP1PPP1PPBPRNBQK2R w KQkq")); + openings.add(new Opening("A40", "Pterodactyl Defense: Queen Pterodactyl, Quiet Line", "rnbqk1nrpp1pppbp6p12p52PP42N1P3PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A40", "Queen's Pawn", "rnbqkbnrpppppppp883P48PPP1PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A40", "Queen's Pawn Game: Englund Gambit", "r1b1kb1rppppq1pp2n2n23Q485N2PPP1PPPPRNB1KB1R w KQkq")); + openings.add(new Opening("A40", "St. George Defense: St. George Gambit", "rnbqkbnr2pp1ppp4p31p63PP38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("A40", "Ware Defense: Snagglepuss Defense", "r1bqkbnr1ppppppp2n5p73PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("A41", "English Rat: Pounds Gambit", "rn1qkbnrppp2ppp3pb34P32P58PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A41", "Modern Defense", "rnbqk1nrppp1ppbp3p2p182PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A41", "Modern Defense: Averbakh System", "rnbqk1nrppp1ppbp3p2p182PPP32N5PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A41", "Modern Defense: Kotov Variation", "r1bqk1nrppp1ppbp2np2p182PPP32N5PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("A41", "Modern Defense: Neo-Modern Defense", "rnbqk1nrpppp1pbp6p14p32PPP38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("A41", "Modern Defense: Randspringer Variation", "rnbqk1nrppp1p1bp3p2p15p22PPP32N5PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("A41", "Old Indian Defense", "rnbqkbnrppp1pppp3p482PP48PP2PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A41", "Pterodactyl Defense", "rnb1k1nrpp2ppbp3p2p1q1p52PPP32N2N2PP3PPPR1BQKB1R w KQkq")); + openings.add(new Opening("A41", "Queen's Pawn", "rnbqkbnrppp1pppp3p483P48PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A41", "Queen's Pawn Game: Anglo-Slav Opening", "rnbqkbnrpp2pppp2pp482PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A41", "Rat Defense: English Rat", "rnbqkbnrppp2ppp3p44p32PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A41", "Rat Defense: English Rat, Lisbon Gambit", "r1bqkbnrppp2ppp2np44P32P58PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A41", "Robatsch Defense", "rn1qk1nrppp1ppbp3p2p182PPP1b15N2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("A41", "Wade Defense", "rn1qkbnrppp1pppp3p483P2b15N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A41", "Zukertort Opening: Wade Defense, Chigorin Plan", "1r1qkbnrpppnpppp3p482PP2b11Q3N2PP2PPPPRNB1KB1R w KQk")); + openings.add(new Opening("A42", "Modern Defense: Averbakh Variation, Pseudo-Sämisch", "rnbqk2rppp1ppbp3p1np182PPP34BP2PP4PPRN1QKBNR b KQkq")); + openings.add(new Opening("A42", "Sicilian Defense: Hyperaccelerated Fianchetto", "rnbqkbnrpp1ppp1p6p12p53PP35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("A43", "Benoni Defense: Benoni Gambit Accepted", "rnbqkbnrpp1ppppp82P588PPP1PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A43", "Benoni Defense: Benoni Gambit, Schlenker Defense", "r1bqkbnrpp1pppppn72P588PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A43", "Benoni Defense: Benoni-Indian Defense", "rnbqkb1rpp1ppppp5n22pP488PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A43", "Benoni Defense: Benoni-Indian Defense, Kingside Move Order", "rnbqkb1rpp1ppppp5n22pP485N2PPP1PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A43", "Benoni Defense: Benoni-Staunton Gambit", "rnbqkbnrpp1pp1pp82pP1p24P38PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("A43", "Benoni Defense: Cormorant Gambit", "rnbqkbnrp2ppppp1p62P588PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A43", "Benoni Defense: Franco-Sicilian Hybrid", "rnbqk2rpp2npbp3p2p12pP44P32N2N2PP3PPPR1BQKB1R w KQkq")); + openings.add(new Opening("A43", "Benoni Defense: Hawk Variation", "rnbqkb1rpp1ppppp5n23P42p55N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A43", "Benoni Defense: Old Benoni", "rnbqkbnrpp2pppp3p42pP488PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A43", "Benoni Defense: Old Benoni, Schmid Variation", "rnbqkbnrpp2pp1p3p2p12pP482N5PPP1PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A43", "Benoni Defense: Snail Variation", "r1bqkbnrpp1pppppn72pP488PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A43", "Benoni Defense: Woozle", "rnb1kb1rpp1ppppp5n2q1pP482N5PPP1PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A43", "Benoni Defense: Zilbermints-Benoni Gambit", "rnbqkbnrpp1ppppp82p51P1P48P1P1PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A43", "Franco-Benoni Defense", "rnbqkbnrpp1p1ppp4p32pP44P38PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("A43", "Old Benoni Defense", "rnbqkbnrpp1ppppp82p53P48PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A43", "Old Benoni Defense", "rnbqkbnrpp1ppppp82pP488PPP1PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A43", "Old Benoni Defense: Mujannah Formation", "rnbqkbnrpp1pp1pp82pP1p288PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A43", "Queen's Pawn Game: Liedmann Gambit", "rnbqkbnrpp1ppppp882Pp44P3PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("A44", "Old Benoni Defense", "rnbqkbnrpp1p1ppp82pPp388PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A44", "Semi-Benoni", "rnbqkbnrpp3ppp3p42pPp34P38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("A45", "Bronstein Gambit", "rnbqkb1rpppppppp5n283P2P18PPP1PP1PRNBQKBNR b KQkq")); + openings.add(new Opening("A45", "Canard Opening", "rnbqkb1rpppppppp5n283P1P28PPP1P1PPRNBQKBNR b KQkq")); + openings.add(new Opening("A45", "Indian Game", "rnbqkb1rpppppppp5n283P48PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A45", "Indian Game: Gedult Attack, Gedult Attack", "rnbqkb1rppp1pppp5n23p43P2P15P2PPP1P2PRNBQKBNR b KQkq")); + openings.add(new Opening("A45", "Indian Game: Gibbins-Wiedenhagen Gambit Accepted", "rnbqkb1rpppppppp883P2n18PPP1PP1PRNBQKBNR w KQkq")); + openings.add(new Opening("A45", "Indian Game: Gibbins-Wiedenhagen Gambit, Maltese Falcon", "rnbqkb1rpppppppp5n283PP35P2PPP4PRNBQKBNR b KQkq")); + openings.add(new Opening("A45", "Indian Game: Gibbins-Wiedenhagen Gambit, Oshima Defense", "rnbqkb1rpppp1ppp5n24p33P2P18PPP1PP1PRNBQKBNR w KQkq")); + openings.add(new Opening("A45", "Indian Game: Gibbins-Wiedenhagen Gambit, Stummer Gambit", "rnbqkb1rppp1pppp3p1n283PP32N5PPP1BP1PR1BQK1NR b KQkq")); + openings.add(new Opening("A45", "Indian Game: Lazard Gambit", "rnbqkb1rpppp1ppp5n24p33P48PPPNPPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A45", "Indian Game: Maddigan Gambit", "rnbqkb1rpppp1ppp5n24p33P42N5PPP1PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A45", "Indian Game: Omega Gambit", "rnbqkb1rpppppppp5n283PP38PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("A45", "Indian Game: Omega Gambit, Arafat Gambit", "rnbqkb1rpppppppp5n26B13P43B4PPP2PPPRN1QK1NR b KQkq")); + openings.add(new Opening("A45", "Indian Game: Paleface Attack, Blackmar-Diemer Gambit Deferred", "rnbqkb1rppp1pppp5n23p43PP35P2PPP3PPRNBQKBNR b KQkq")); + openings.add(new Opening("A45", "Indian Game: Pawn Push Variation", "rnbqkb1rpppppppp5n23P488PPP1PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A45", "Indian Game: Reversed Chigorin Defense", "rnbqkb1rpp1ppppp5n22p53P42N5PPP1PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A45", "Indian Game: Tartakower Attack", "rnbqkb1rpppppppp5n283P46P1PPP1PP1PRNBQKBNR b KQkq")); + openings.add(new Opening("A45", "Paleface Attack", "rnbqkb1rpppppppp5n283P45P2PPP1P1PPRNBQKBNR b KQkq")); + openings.add(new Opening("A45", "Trompowsky Attack", "rnbqkb1rpppppppp5n26B13P48PPP1PPPPRN1QKBNR b KQkq")); + openings.add(new Opening("A45", "Trompowsky Attack: Borg Variation", "rnbqkb1rpppppp1p86p13PnB28PPP1PPPPRN1QKBNR w KQkq")); + openings.add(new Opening("A45", "Trompowsky Attack: Classical Defense", "rnbqkb1rpppp1ppp4pn26B13P48PPP1PPPPRN1QKBNR w KQkq")); + openings.add(new Opening("A45", "Trompowsky Attack: Classical Defense, Big Center Variation", "rnbqkb1rpppp1ppp4pn26B13PP38PPP2PPPRN1QKBNR b KQkq")); + openings.add(new Opening("A45", "Trompowsky Attack: Edge Variation", "rnbqkb1rpppppppp883Pn2B8PPP1PPPPRN1QKBNR b KQkq")); + openings.add(new Opening("A45", "Trompowsky Attack: Edge Variation, Hergert Gambit", "rn1qkb1rppp1pppp5n23p1b23PP2B2N2P2PPP3PPR2QKBNR b KQkq")); + openings.add(new Opening("A45", "Trompowsky Attack: Edge Variation, Hergert Gambit", "rnb1kb1rpp2pppp2p5q2p43PP2B2P5PP1Q1PPPR3KBNR b KQkq")); + openings.add(new Opening("A45", "Trompowsky Attack: Poisoned Pawn Variation", "rnb1kb1rpp1ppppp1q3n22pP2B182N5PPP1PPPPR2QKBNR b KQkq")); + openings.add(new Opening("A45", "Trompowsky Attack: Raptor Variation", "rnbqkb1rpppppppp86B13Pn2P8PPP1PPP1RN1QKBNR b KQkq")); + openings.add(new Opening("A45", "Trompowsky Attack: Raptor Variation, Hergert Gambit", "rnbqkb1rpppp1ppp84p1P13P48PPP1PPP1RN1QKBNR w KQkq")); + openings.add(new Opening("A46", "Doery Defense", "rnbqkb1rpppppppp883Pn35N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A46", "Indian Game: Czech-Indian", "rnbqkb1rpp1ppppp2p2n283P45N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A46", "Indian Game: Knights Variation", "rnbqkb1rpppppppp5n283P45N2PPP1PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A46", "Indian Game: Knights Variation, Alburt-Miles Variation", "rnbqkb1r1pppppppp4n283P45N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A46", "Indian Game: London System", "rnbqkb1rpppp1ppp4pn283P1B25N2PPP1PPPPRN1QKB1R b KQkq")); + openings.add(new Opening("A46", "Indian Game: Polish Variation", "rnbqkb1rp1pppppp5n21p63P45N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A46", "Indian Game: Pseudo-Benko", "rnbqkb1rp2ppppp5n21ppP485N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A46", "Indian Game: Spielmann-Indian", "rnbqkb1rpp1ppppp5n22p53P45N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A46", "Indian Game: Wade-Tartakower Defense", "rnbqkb1rppp1pppp3p1n283P45N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A46", "Torre Attack", "rnbqkb1rpppp1ppp4pn26B13P45N2PPP1PPPPRN1QKB1R b KQkq")); + openings.add(new Opening("A46", "Torre Attack: Classical Defense, Nimzowitsch Variation", "rnbqkb1rpppp1pp14pn1p6B13P45N2PPP1PPPPRN1QKB1R w KQkq")); + openings.add(new Opening("A46", "Torre Attack: Classical Defense, Petrosian Gambit", "rnbqkb1rp2p1ppp1p2pn22pP2B184PN2PPP2PPPRN1QKB1R b KQkq")); + openings.add(new Opening("A46", "Torre Attack: Wagner Gambit", "rnbqkb1rpp1p1ppp4pn22p3B13PP35N2PPP2PPPRN1QKB1R b KQkq")); + openings.add(new Opening("A46", "Yusupov-Rubinstein System", "rnbqkb1rpppp1ppp4pn283P44PN2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("A47", "Indian Game: Schnepper Gambit", "rnbqkb1rp1pp1ppp1p3n24p33P42P2N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A47", "Marienbad System", "rn1qkb1rpb1ppppp1p3n22p53P45NP1PPP1PPBPRNBQK2R w KQkq")); + openings.add(new Opening("A47", "Queen's Indian Defense", "rnbqkb1rp1pppppp1p3n283P45N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A47", "Queen's Indian Defense: Marienbad System, Berg Variation", "rn1qkb1rpb1ppppp1p3n282PQ45NP1PP2PPBPRNB1K2R b KQkq")); + openings.add(new Opening("A48", "Indian Game: Colle System, King's Indian Variation", "rnbqk2rppp1ppbp3p1np183P43BPN2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("A48", "London System", "rnbqkb1rpppppp1p5np183P1B25N2PPP1PPPPRN1QKB1R b KQkq")); + openings.add(new Opening("A48", "Queen's Pawn Game: Colle System, Grünfeld Formation", "rnbqk2rppp1ppbp5np13p43P43BPN2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("A48", "Torre Attack", "rnbqkb1rpppppp1p5np16B13P45N2PPP1PPPPRN1QKB1R b KQkq")); + openings.add(new Opening("A48", "Torre Attack: Fianchetto Defense, Euwe Variation", "rnbqk2rpp1pppbp5np12p3B13P45N2PPPNPPPPR2QKB1R w KQkq")); + openings.add(new Opening("A49", "East Indian Defense", "rnbqkb1rpppppp1p5np183P45N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A49", "Indian Game: King's Indian Variation, Fianchetto Variation", "rnbqk2rppppppbp5np182PP46P1PP2PPBPRNBQK1NR b KQkq")); + openings.add(new Opening("A49", "Indian Game: Przepiorka Variation", "rnbqkb1rpppppp1p5np183P45NP1PPP1PP1PRNBQKB1R b KQkq")); + openings.add(new Opening("A49", "Zukertort Opening: Double Fianchetto Attack", "rnbq1rk1ppp1ppbp3p1np1881P3NP1PBPPPPBPRN1Q1RK1 b -")); + openings.add(new Opening("A49", "Zukertort Opening: Grünfeld Reversed", "r1bqkbnrpp3ppp2n1p32pp43P45NP1PPP1PPBPRNBQ1RK1 b kq")); + openings.add(new Opening("A50", "English Defense: Blumenfeld-Hiva Gambit", "rnbqkbnrp2p2pp4p31PpP1p24P38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("A50", "Indian Game: Medusa Gambit", "rnbqkb1rpppppp1p5n26p12PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A50", "Indian Game: Normal Variation", "rnbqkb1rpppppppp5n282PP48PP2PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A50", "Indian Game: Pyrenees Gambit", "rnbqkb1rp1pppppp5n21p62PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A50", "Mexican Defense", "r1bqkb1rpppppppp2n2n282PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A50", "Mexican Defense: Horsefly Gambit", "r1bqkb1rpppppppp5n23Pn32P2P28PP2P1PPRNBQKBNR b KQkq")); + openings.add(new Opening("A50", "Queen's Indian Accelerated", "rnbqkb1rp1pppppp1p3n282PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A50", "Slav Indian", "rnbqkb1rpp1ppppp2p2n282PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A50", "Slav Indian: Kudischewitsch Gambit", "rnbqkb1rp2ppppp2p2n21p62PP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A51", "Budapest Defense: Fajarowicz Defense, Bonsdorf Variation", "rnbqkb1rp1pp1ppp1p64P32P1n3P71P2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A51", "Budapest Defense: Fajarowicz Variation", "rnbqkb1rpppp1ppp84P32P1n38PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A51", "Budapest Defense: Fajarowicz-Steiner Variation", "rnbqkb1rpppp1ppp84P32P1n38PPQ1PPPPRNB1KBNR b KQkq")); + openings.add(new Opening("A51", "Indian Game: Budapest Defense", "rnbqkb1rpppp1ppp5n24p32PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A52", "Budapest Defense", "rnbqkb1rpppp1ppp84P32P3n18PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A52", "Budapest Defense: Adler Variation", "rnbqkb1rpppp1ppp84P32P3n15N2PP2PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A52", "Budapest Defense: Alekhine Variation", "rnbqkb1rpppp1ppp84P32P1P1n18PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("A52", "Budapest Defense: Alekhine Variation, Abonyi Variation", "rnbqkb1rpppp1ppp2n582P1PP28PP4PPRNBQKBNR w KQkq")); + openings.add(new Opening("A52", "Budapest Defense: Alekhine Variation, Tartakower Defense", "rnbqkb1rppp2ppp3p44P32P1P1n18PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("A52", "Budapest Defense: Rubinstein Variation", "rnbqkb1rpppp1ppp84P32P2Bn18PP2PPPPRN1QKBNR b KQkq")); + openings.add(new Opening("A53", "Old Indian Defense", "rnbqkb1rppp1pppp3p1n282PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A53", "Old Indian Defense: Janowski Variation", "rn1qkb1rppp1pppp3p1n25b22PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A53", "Old Indian Defense: Janowski Variation, Fianchetto Variation", "rn1qkb1rppp1pppp3p1n25b22PP42N3P1PP2PP1PR1BQKBNR b KQkq")); + openings.add(new Opening("A53", "Old Indian Defense: Janowski Variation, Fianchetto Variation", "rn1qkb1rppp1pppp3p1n25b22PP42N2N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("A53", "Old Indian Defense: Janowski Variation, Grinberg Gambit", "rn1qkb1rppp1pppp3p1n25b22PPP32N5PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A53", "Old Indian Defense: Janowski Variation, Main Line", "rn1qkb1rppp1pppp3p1n25b22PP42N2P2PP2P1PPR1BQKBNR b KQkq")); + openings.add(new Opening("A53", "Old Indian: Aged Gibbon Gambit", "rnbqkb1rppp1pppp3p1n282PP2P18PP2PP1PRNBQKBNR b KQkq")); + openings.add(new Opening("A53", "Old Indian: Czech Variation", "rnbqkb1rpp2pppp2pp1n282PP42N2N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("A53", "Old Indian: Czech Variation, with Nc3", "rnbqkb1rpp2pppp2pp1n282PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A53", "Old Indian: Czech Variation, with Nf3", "rnbqkb1rpp2pppp2pp1n282PP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A54", "Old Indian Defense: Dus-Khotimirsky Variation", "r1bqkb1rpppn1ppp3p1n24p32PP42NBP3PP3PPPR1BQK1NR b KQkq")); + openings.add(new Opening("A54", "Old Indian Defense: Tartakower-Indian", "rn1qkb1rppp1pppp3p1n282PP2b15N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A54", "Old Indian Defense: Two Knights Variation", "rnbqkb1rppp2ppp3p1n24p32PP42N2N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("A54", "Old Indian Defense: Ukrainian Variation", "rnbqkb1rppp2ppp3p1n24p32PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A55", "Old Indian Defense: Normal Variation", "r1bqkb1rpppn1ppp3p1n24p32PPP32N2N2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("A56", "Benoni Defense", "rnbqkb1rpp1ppppp5n22p52PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A56", "Benoni Defense: Czech Benoni Defense", "rnbqkb1rpp1p1ppp5n22pPp32P58PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A56", "Benoni Defense: King's Indian System", "rnbqkb1rpp3p1p3p1np12pPp32P1P32N5PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("A56", "Benoni Defense: Weenink Variation", "rnbqkb1rpp1p1ppp4pn22P52P58PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A56", "Benoni Defense: Zilbermints-Benoni Gambit", "rnbqkbnrpp1ppppp881P1p45N2P1P1PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A56", "Benoni Defense: Zilbermints-Benoni Gambit, Tamarkin Countergambit", "rnbqkbnrpp1p1ppp84p31P1p45N2P1P1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A56", "Vulture Defense", "rnbqkb1rpp1ppppp82pP42P1n38PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A57", "Benko Gambit", "rnbqkb1rp2ppppp5n21ppP42P58PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A57", "Benko Gambit Accepted", "rnbqkb1r3pppppp4n21PpP488PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A57", "Benko Gambit Accepted, Central Storming Variation", "rn1qkb1r3ppp1pb4np12pP45P22N5PP2P1PPR1BQKBNR b KQkq")); + openings.add(new Opening("A57", "Benko Gambit Accepted, Dlugy Variation", "rnbqkb1r3pppppp4n21PpP485P2PP2P1PPRNBQKBNR b KQkq")); + openings.add(new Opening("A57", "Benko Gambit Accepted, Modern Variation", "rnbqkb1r3pppppp4n21PpP484P3PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("A57", "Benko Gambit Accepted, Pawn Return Variation", "rnbqkb1r3ppppppP3n22pP488PP2PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A57", "Benko Gambit Declined, Bishop Attack", "rnbqkb1rp2ppppp5n21ppP2B12P58PP2PPPPRN1QKBNR b KQkq")); + openings.add(new Opening("A57", "Benko Gambit Declined, Hjoerring Countergambit", "rnbqkb1rp2ppppp5n21ppP42P1P38PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("A57", "Benko Gambit Declined, Main Line", "rnbqkb1rp2ppppp5n21ppP42P55N2PP2PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("A57", "Benko Gambit Declined, Pseudo-Sämisch", "rnbqkb1rp2ppppp5n21ppP42P55P2PP2P1PPRNBQKBNR b KQkq")); + openings.add(new Opening("A57", "Benko Gambit Declined, Quiet Line", "rnbqkb1rp2ppppp5n21ppP42P58PP1NPPPPR1BQKBNR b KQkq")); + openings.add(new Opening("A57", "Benko Gambit Declined, Sosonko Variation", "rnbqkb1rp2ppppp5n21ppP4P1P581P2PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A57", "Benko Gambit: Mutkin Countergambit", "rnbqkb1rp2ppppp5n21ppP42P3P18PP2PP1PRNBQKBNR b KQkq")); + openings.add(new Opening("A57", "Benko Gambit: Nescafe Frappe Attack", "rnbqkb1r4pppp3p1n21NpP41pB1P38PP3PPPR1BQK1NR b KQkq")); + openings.add(new Opening("A57", "Benko Gambit: Zaitsev Variation, Nescafe Frappe Attack", "rnbqkb1r3ppppp5n21NpP41p2P38PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A57", "Benoni Defense: Hromádka System", "rnbqkb1rpp2pppp3p1n22pP42P58PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A58", "Benko Gambit Accepted, Fianchetto Variation", "rn1qk2r4ppbpb2p1np12pP482N2NP1PP2PPBPR1BQK2R b KQkq")); + openings.add(new Opening("A58", "Benko Gambit Accepted, Fully Accepted Variation", "rnbqkb1r3pppppP4n22pP488PP2PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A58", "Benko Gambit: Fianchetto Variation", "rn1qkb1r4pp1pb2p1np12pP482N2NP1PP2PP1PR1BQKB1R b KQkq")); + openings.add(new Opening("A58", "Benko Gambit: Nd2 Variation", "rn1qkb1r4pp1pb2p1np12pP482N5PP1NPPPPR1BQKB1R b KQkq")); + openings.add(new Opening("A58", "Benko Gambit: Zaitsev System", "rnbqkb1r3pppppp4n21PpP482N5PP2PPPPR1BQKBNR b KQkq")); + openings.add(new Opening("A59", "Benko Gambit", "rn1qkb1r4pp1p3p1np12pP44P32N3P1PP3P1PR1BQ1KNR b kq")); + openings.add(new Opening("A59", "Benko Gambit Accepted, King Walk Variation", "rn1q1rk14ppbp3p1np12pP44P32N2NP1PP3PKPR1BQ3R b -")); + openings.add(new Opening("A59", "Benko Gambit Accepted, Yugoslav, with Bxf1 and Nge2", "rn1qkb1r4pp1p3p1np12pP44P32N5PP2NPPPR1BQ1K1R b kq")); + openings.add(new Opening("A59", "Benko Gambit Accepted, Yugoslav, without 7... Bxf1", "rn1qkb1r4ppppb2p1n22pP44P32N5PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A60", "Benoni Defense: Modern Variation", "rnbqkb1rpp1p1ppp4pn22pP42P58PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A60", "Benoni Defense: Modern Variation, Snake Variation", "rnbqk2rpp1p1ppp3b1n22pP482N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A61", "Benoni Defense", "rnbqkb1rpp3p1p3p1np12pP482N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("A61", "Benoni Defense: Fianchetto Variation", "rnbqkb1rpp3p1p3p1np12pP482N2NP1PP2PP1PR1BQKB1R b KQkq")); + openings.add(new Opening("A61", "Benoni Defense: Knight's Tour Variation", "rnbqkb1rpp3p1p3p1np12pP482N5PP1NPPPPR1BQKB1R b KQkq")); + openings.add(new Opening("A61", "Benoni Defense: Uhlmann Variation", "rnbqkb1rpp3p1p3p1np12pP2B182N2N2PP2PPPPR2QKB1R b KQkq")); + openings.add(new Opening("A62", "Benoni Defense: Fianchetto Variation", "rnbq1rk1pp3pbp3p1np12pP482N2NP1PP2PPBPR1BQK2R w KQ")); + openings.add(new Opening("A63", "Benoni Defense: Fianchetto Variation, Hastings Defense", "r1bq1rk1pp1n1pbp3p1np12pP482N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("A64", "Benoni Defense: Fianchetto Variation, Hastings Defense, Main Line", "r1bqr1k11p1n1pbpp2p1np12pP4P72N3P11P1NPPBPR1BQ1RK1 w -")); + openings.add(new Opening("A65", "Benoni Defense: King's Pawn Line", "rnbqkb1rpp3ppp3p1n22pP44P32N5PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A66", "Benoni Defense: Mikenas Variation", "rnbqk2rpp3pbp3p1np12pPP35P22N5PP4PPR1BQKBNR b KQkq")); + openings.add(new Opening("A66", "Benoni Defense: Pawn Storm Variation", "rnbqkb1rpp3p1p3p1np12pP44PP22N5PP4PPR1BQKBNR b KQkq")); + openings.add(new Opening("A67", "Benoni Defense: Taimanov Variation", "rnbqk2rpp3pbp3p1np11BpP44PP22N5PP4PPR1BQK1NR b KQkq")); + openings.add(new Opening("A68", "Benoni Defense: Four Pawns Attack", "rnbq1rk1pp3pbp3p1np12pP44PP22N2N2PP4PPR1BQKB1R w KQ")); + openings.add(new Opening("A69", "Benoni Defense: Four Pawns Attack, Main Line", "rnbqr1k1pp3pbp3p1np12pP44PP22N2N2PP2B1PPR1BQK2R w KQ")); + openings.add(new Opening("A70", "Benoni Defense: Classical Variation", "rnbqkb1rpp3p1p3p1np12pP44P32N2N2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("A70", "Benoni Defense: Classical Variation, New York Variation", "rnbqk2rpp3pbp3p1np12pP44P32N2N1PPP3PP1R1BQKB1R b KQkq")); + openings.add(new Opening("A71", "Benoni Defense: Classical Variation, Averbakh-Grivas Attack", "rnbqk2rpp3pbp3p1np12pP2B14P32N2N2PP3PPPR2QKB1R b KQkq")); + openings.add(new Opening("A72", "Benoni Defense: Classical Variation, Traditional Variation", "rnbqk2rpp3pbp3p1np12pP44P32N2N2PP2BPPPR1BQK2R b KQkq")); + openings.add(new Opening("A72", "Benoni Defense: Classical, without 9. O-O", "rnbq1rk1pp3pbp3p1np12pP44P32N2N2PP2BPPPR1BQK2R w KQ")); + openings.add(new Opening("A73", "Benoni Defense: Classical Variation, Main Line", "rnbq1rk1pp3pbp3p1np12pP44P32N2N2PP2BPPPR1BQ1RK1 b -")); + openings.add(new Opening("A74", "Benoni Defense: Classical Variation, Full Line", "rnbq1rk11p3pbpp2p1np12pP4P3P32N2N21P2BPPPR1BQ1RK1 b -")); + openings.add(new Opening("A75", "Benoni Defense: Classical Variation, Argentine Counterattack", "rn1q1rk11p3pbpp2p1np12pP4P3P1b12N2N21P2BPPPR1BQ1RK1 w -")); + openings.add(new Opening("A76", "Benoni Defense: Classical Variation, Czerniak Defense", "rnbqr1k1pp3pbp3p1np12pP44P32N2N2PP2BPPPR1BQ1RK1 w -")); + openings.add(new Opening("A77", "Benoni Defense: Classical Variation, Czerniak Defense, Tal Line", "rnbqr1k1pp3pbp3p1np12pP44P32N5PP1NBPPPR1BQ1RK1 b -")); + openings.add(new Opening("A78", "Benoni Defense: Classical Variation, Czerniak Defense", "r1bqr1k1pp3pbpn2p1np12pP44P32N5PP1NBPPPR1BQ1RK1 w -")); + openings.add(new Opening("A79", "Benoni Defense: Classical Variation, Czerniak Defense", "r1bqr1k1pp3pbpn2p1np12pP44P32N2P2PP1NB1PPR1BQ1RK1 b -")); + openings.add(new Opening("A80", "Dutch Defense", "rnbqkbnrppppp1pp85p23P48PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Alapin Variation", "rnbqkbnrppppp1pp85p23P43Q4PPP1PPPPRNB1KBNR b KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Blackmar's Second Gambit", "rnbqkb1rppppp1pp5n283Pp32N2P2PPP3PPR1BQKBNR b KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Hevendehl Gambit", "rnbqkbnrpppp2pp84pp23P2P18PPP1PP1PRNBQKBNR w KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Hopton Attack", "rnbqkbnrppppp1pp85pB13P48PPP1PPPPRN1QKBNR b KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Janzen-Korchnoi Gambit", "rnbqkb1rppppp1pp5n25p23P2P17PPPP1PP2RNBQKBNR b KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Kingfisher Gambit", "rnbqkbnrppp1p1pp83p1p23PP32N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Korchnoi Attack", "rnbqkbnrppppp1pp85p23P47PPPP1PPP1RNBQKBNR b KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Krejcik Gambit", "rnbqkbnrppppp1pp85p23P2P18PPP1PP1PRNBQKBNR b KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Krejcik Gambit, Tate Gambit", "rnbqkbnrppp1p1pp83p43PP1p12N5PPP2P1PR1BQKBNR b KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Manhattan Gambit, Anti-Classical Line", "rnbqkbnrpppp2pp4p35p23P2P13Q4PPP1PP1PRNB1KBNR b KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Manhattan Gambit, Anti-Leningrad", "rnbqkbnrppppp2p6p15p23P2P13Q4PPP1PP1PRNB1KBNR b KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Manhattan Gambit, Anti-Modern", "rnbqkbnrppp1p1pp3p45p23P2P13Q4PPP1PP1PRNB1KBNR b KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Manhattan Gambit, Anti-Stonewall", "rnbqkbnrppp1p1pp83p1p23P2P13Q4PPP1PP1PRNB1KBNR b KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Omega-Isis Gambit", "rnbqkbnrpppp2pp84pp23P45N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Raphael Variation", "rnbqkbnrppppp1pp85p23P42N5PPP1PPPPR1BQKBNR b KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Senechaud Gambit", "rnbqkbnrpppp2pp4p35p23P1BP18PPP1PP1PRN1QKBNR b KQkq")); + openings.add(new Opening("A80", "Dutch Defense: Spielmann Gambit", "rnbqkb1rppppp1pp5n25p23P2P12N5PPP1PP1PR1BQKBNR b KQkq")); + openings.add(new Opening("A80", "Queen's Pawn Game: Veresov Attack, Dutch System", "rnbqkbnrppp1p1pp83p1p23P42N5PPP1PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A81", "Dutch Defense: Blackburne Variation", "rnbqkb1rpppp2pp4pn25p23P46PNPPP1PPBPRNBQK2R b KQkq")); + openings.add(new Opening("A81", "Dutch Defense: Fianchetto Attack", "rnbqkbnrppppp1pp85p23P46P1PPP1PP1PRNBQKBNR b KQkq")); + openings.add(new Opening("A81", "Dutch Defense: Leningrad Variation, Karlsbad Variation", "rnbqk1nrppppp1bp6p15p23P46PNPPP1PPBPRNBQK2R b KQkq")); + openings.add(new Opening("A81", "Dutch Defense: Leningrad, Basman System", "rnbqk2rpp1pp1bp2p3pn5p23P45NP1PPP1PPBPRNBQ1RK1 w kq")); + openings.add(new Opening("A81", "Dutch Defense: Semi-Leningrad Variation", "rnbqkb1rppppp2p5np15p23P46P1PPP1PPBPRNBQK1NR w KQkq")); + openings.add(new Opening("A82", "Dutch Defense: Staunton Gambit", "rnbqkbnrppppp1pp85p23PP38PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("A82", "Dutch Defense: Staunton Gambit Accepted", "rnbqkbnrppppp1pp883Pp38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("A82", "Dutch Defense: Staunton Gambit, American Attack", "rnbqkbnrppppp1pp883Pp38PPPN1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("A82", "Dutch Defense: Staunton Gambit, Tartakower Variation", "rnbqkb1rppppp1pp5n283Pp1P12N5PPP2P1PR1BQKBNR b KQkq")); + openings.add(new Opening("A83", "Dutch Defense: Staunton Gambit", "rnbqkb1rppppp1pp5n26B13Pp32N5PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("A83", "Dutch Defense: Staunton Gambit, Alekhine Variation", "rnbqkb1rppppp2p5np16B13Pp2P2N5PPP2PP1R2QKBNR b KQkq")); + openings.add(new Opening("A83", "Dutch Defense: Staunton Gambit, Chigorin Variation", "rnbqkb1rpp1pp1pp2p2n26B13Pp32N5PPP2PPPR2QKBNR w KQkq")); + openings.add(new Opening("A83", "Dutch Defense: Staunton Gambit, Lasker Variation", "rnbqkb1rppppp2p5np16B13Pp32N2P2PPP3PPR2QKBNR b KQkq")); + openings.add(new Opening("A83", "Dutch Defense: Staunton Gambit, Nimzowitsch Variation", "rnbqkb1rp1ppp1pp1p3n26B13Pp32N5PPP2PPPR2QKBNR w KQkq")); + openings.add(new Opening("A84", "Dutch Defense", "rnbqkbnrppppp1pp85p22PP48PP2PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("A84", "Dutch Defense: Bladel Variation", "rnbqkb1rppppp2p6pn5p22PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("A84", "Dutch Defense: Classical Variation", "rnbqkbnrpppp2pp4p35p22PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A84", "Dutch Defense: Krause Variation", "r1bqkb1rppp1p1pp2np1n25p22PP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("A84", "Dutch Defense: Normal Variation", "rnbqkb1rppppp1pp5n25p22PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("A84", "Dutch Defense: Rubinstein Variation", "rnbqkbnrpppp2pp4p35p22PP42N5PP2PPPPR1BQKBNR b KQkq")); + openings.add(new Opening("A84", "Horwitz Defense: Dutch Defense, Bellon Gambit", "rnbqkbnrpppp2pp4p35p22PPP38PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("A85", "Dutch Defense: Queen's Knight Variation", "rnbqkb1rppppp1pp5n25p22PP42N5PP2PPPPR1BQKBNR b KQkq")); + openings.add(new Opening("A86", "Dutch Defense: Fianchetto Variation", "rnbqkb1rppppp1pp5n25p22PP46P1PP2PP1PRNBQKBNR b KQkq")); + openings.add(new Opening("A86", "Dutch Defense: Hort-Antoshin System", "rnb1kb1rppq1p1pp2pp1n25p22PP42N3P1PP2PPBPR1BQK1NR w KQkq")); + openings.add(new Opening("A86", "Dutch Defense: Leningrad Variation", "rnbqkb1rppppp2p5np15p22PP46P1PP2PP1PRNBQKBNR w KQkq")); + openings.add(new Opening("A87", "Dutch Defense: Leningrad Variation", "rnbqk2rppppp1bp5np15p22PP45NP1PP2PPBPRNBQK2R b KQkq")); + openings.add(new Opening("A88", "Dutch Defense: Leningrad Variation, Warsaw Variation", "rnbq1rk1pp2p1bp2pp1np15p22PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("A89", "Dutch Defense: Leningrad Variation, Matulovic Variation", "r1bq1rk1ppp1p1bp2np1np15p22PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("A90", "Dutch Defense: Classical Variation", "rnbqkb1rpppp2pp4pn25p22PP46P1PP2PPBPRNBQK1NR b KQkq")); + openings.add(new Opening("A90", "Dutch Defense: Nimzo-Dutch Variation", "rnbqk2rpppp2pp4pn25p21bPP46P1PP2PPBPRNBQK1NR w KQkq")); + openings.add(new Opening("A90", "Dutch Defense: Nimzo-Dutch Variation, Alekhine Variation", "rnbqk2rppppb1pp4pn25p22PP46P1PP1BPPBPRN1QK1NR w KQkq")); + openings.add(new Opening("A90", "Dutch Defense: Stonewall Variation, Modern Variation", "rnbqk2rpp4pp2pbpn23p1p22PP45NP1PP2PPBPRNBQ1RK1 w kq")); + openings.add(new Opening("A91", "Dutch Defense: Classical Variation", "rnbqk2rppppb1pp4pn25p22PP46P1PP2PPBPRNBQK1NR w KQkq")); + openings.add(new Opening("A91", "Dutch Defense: Classical Variation, Blackburne Attack", "rnbqk2rppppb1pp4pn25p22PP46PNPP2PPBPRNBQK2R b KQkq")); + openings.add(new Opening("A92", "Dutch Defense: Alekhine Variation", "rnbq1rk1ppppb1pp4p35p22PPn35NP1PP2PPBPRNBQ1RK1 w -")); + openings.add(new Opening("A92", "Dutch Defense: Classical Variation", "rnbq1rk1ppppb1pp4pn25p22PP45NP1PP2PPBPRNBQK2R w KQ")); + openings.add(new Opening("A92", "Dutch Defense: Stonewall Variation", "rnbq1rk1ppp1b1pp4pn23p1p22PP45NP1PP2PPBPRNBQ1RK1 w -")); + openings.add(new Opening("A92", "Dutch Defense: Stonewall, with Nc3", "rnbq1rk1ppp1b1pp4pn23p1p22PP42N2NP1PP2PPBPR1BQ1RK1 b -")); + openings.add(new Opening("A93", "Dutch Defense: Classical Variation, Stonewall Variation, Botvinnik Variation", "rnbq1rk1ppp1b1pp4pn23p1p22PP41P3NP1P3PPBPRNBQ1RK1 b -")); + openings.add(new Opening("A94", "Dutch Defense: Classical Variation, Stonewall Variation", "rnbq1rk1pp2b1pp2p1pn23p1p22PP4BP3NP1P3PPBPRN1Q1RK1 b -")); + openings.add(new Opening("A95", "Dutch Defense: Classical Variation, Stonewall Variation", "rnbq1rk1pp2b1pp2p1pn23p1p22PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("A95", "Dutch Defense: Stonewall: Chekhover Variation", "rnb1qrk1pp2b1pp2p1pn23p1pB12PP42N2NP1PPQ1PPBPR4RK1 b -")); + openings.add(new Opening("A96", "Dutch Defense: Classical Variation", "rnbq1rk1ppp1b1pp3ppn25p22PP45NP1PP2PPBPRNBQ1RK1 w -")); + openings.add(new Opening("A96", "Dutch Defense: Classical Variation, Buenos Aires Variation", "rnbq1rk11pp1b1pp3ppn2p4p22PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("A96", "Dutch Defense: Classical Variation, Huisl Variation", "rnbq1rk1ppp1b1pp3pp35p22PPn32N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("A97", "Dutch Defense: Classical Variation, Ilyin-Zhenevsky Variation", "rnb1qrk1ppp1b1pp3ppn25p22PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("A97", "Dutch Defense: Ilyin-Zhenevsky, Winter Variation", "rnb1qrk1ppp1b1pp3ppn25p22PP42N2NP1PP2PPBPR1BQR1K1 b -")); + openings.add(new Opening("A98", "Dutch Defense: Classical Variation, Ilyin-Zhenevsky Variation, Alatortsev-Lisitsyn Line", "rnb1qrk1ppp1b1pp3ppn25p22PP42N2NP1PPQ1PPBPR1B2RK1 b -")); + openings.add(new Opening("A99", "Dutch Defense: Classical Variation, Ilyin-Zhenevsky Variation, Modern Main Line", "rnb1qrk1ppp1b1pp3ppn25p22PP41PN2NP1P3PPBPR1BQ1RK1 b -")); + openings.add(new Opening("B00", "Barnes Defense", "rnbqkbnrppppp1pp5p284P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Borg Defense", "rnbqkbnrpppppp1p86p14P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Borg Defense: Borg Gambit", "rnbqk1nrppppppbp86p13PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Borg Defense: Langhorst Gambit", "rnbqkbnrp2p1p1p1p2p32P3p14P32P5PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Borg Defense: Troon Gambit", "rnbqkbnrpppppp27p83PP1pP8PPP2PP1RNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Borg Opening: Zilbermints Gambit", "rnbqkbnrpppp1p1p84p1p13PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Caro-Kann Defense: Hillbilly Attack", "rnbqkbnrpp1ppppp2p582B1P38PPPP1PPPRNBQK1NR b KQkq")); + openings.add(new Opening("B00", "Carr Defense", "rnbqkbnrppppppp17p84P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Carr Defense: Zilbermints Gambit", "rnbqkbnrpppp1pp17p4p33PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Duras Gambit", "rnbqkbnrppppp1pp85p24P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Fried Fox Defense", "rnbq1bnrpppppkpp5p283PP38PPP2PPPRNBQKBNR w KQ")); + openings.add(new Opening("B00", "Goldsmith Defense", "rnbqkbnrppppppp187p4P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Goldsmith Defense: Picklepuss Defense", "rnbqkb1rppppppp15n27p3PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Guatemala Defense", "rn1qkbnrp1ppppppbp683PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Hippopotamus Defense", "rnbqkb1rppppp2p5ppn82PPP38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Hippopotamus Defense", "rnbqkb1rpppppppp7n84P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "King's Pawn", "rnbqkbnrpppppppp884P38PPPP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B00", "King's Pawn Game: Nimzowitsch Defense", "r1bqkbnrpppppppp2n583PP38PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B00", "King's Pawn Game: Nimzowitsch Defense: Wheeler Gambit", "r1bqkbnrpppppppp2n583PP32P5P4PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B00", "Lemming Defense", "r1bqkbnrppppppppn784P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense", "r1bqkbnrpppppppp2n584P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense, Declined Variation", "r1bqkbnrpppppppp2n584P35N2PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Breyer Variation", "r1bqkb1rpppp1ppp2n2n24p33PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: El Columpio Defense", "r1bqkb1rpppppppp2n54P36n15N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: El Columpio Defense, El Columpio Gambit", "r1bqkb1rppp1pppp2npP2n83P45N1PPPP2PP1RNBQKB1R b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: El Columpio Defense, Exchange Variation", "r1bqkb1rppp1pppp2nP3n83P45N1PPPP2PP1RNBQKB1R b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: El Columpio Defense, Pin Variation", "r1bqkb1rppp1pppp2np3n1B2P33P45N1PPPP2PP1RNBQK2R b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Franco-Hiva Gambit", "r1bqkb1rpppp2pp2n1pn25P23P45N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Franco-Hiva Gambit", "r1bqkb1rpppp2pp2n1pn25P23P42N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Franco-Nimzowitsch Variation", "r1bqkbnrpppp1ppp2n1p384P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: French Connection", "r1bqkbnrpppp1ppp2n1p384P32N5PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Hornung Gambit", "r1bqkbnrppp1pppp2n53p43PP34B3PPP2PPPRN1QKBNR b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Kennedy Variation", "r1bqkbnrpppp1ppp2n54p33PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Kennedy Variation, Bielefelder Gambit", "r1bqk1nrpppp1ppp2n52b1P34P38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Kennedy Variation, Hammer Gambit", "r1bqkbnrpppp2pp2n2p24P34P38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Kennedy Variation, Herford Gambit", "r1b1kbnrpppp1ppp2n54P34P2q8PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Kennedy Variation, Keres Attack", "r1bqkbnrpppp1ppp84n34P32N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Kennedy Variation, Linksspringer Variation", "r1bqkbnrpppp1ppp2n53Pp34P38PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Kennedy Variation, Main Line", "r1bqkbnrpppp1ppp6n184PP28PPP3PPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Kennedy Variation, Paulsen Attack", "r1bqkbnrpppp1ppp84n34P35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Kennedy Variation, Riemann Defense", "r1bqkbnrpppp1ppp2n584PP28PPP3PPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Kennedy Variation, de Smet Gambit", "r1bqkbnrppp2ppp2np44P34P38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Lean Variation", "r1bqkbnrppppp1pp2n55p24P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Lean Variation, Colorado Counter Accepted", "r1bqkbnrppppp1pp2n55P285N2PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Mikenas Variation", "r1bqkbnrppp1pppp2np483PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Neo-Mongoloid Defense", "r1bqkbnrppppp1pp2n2p283PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Pirc Connection", "r1bqkbnrpppppp1p2n3p184P32N5PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Pseudo-Spanish Variation", "r1bqkbnrpppppppp2n51B64P38PPPP1PPPRNBQK1NR b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Scandinavian Variation", "r1bqkbnrppp1pppp2n53p43PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Scandinavian Variation, Aachen Gambit", "r1bqkbnrppp1pppp83P41n1P48PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Scandinavian Variation, Advance Variation", "r1bqkbnrppp1pppp2n53pP33P48PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Scandinavian Variation, Bogoljubov Variation", "r1bqkbnrppp1pppp2n53p43PP32N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Scandinavian Variation, Bogoljubov Variation, Brandics Gambit", "r1bqkbnr1pp1ppppp1n53p43PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Scandinavian Variation, Bogoljubov Variation, Erben Gambit", "r1bqkbnrppp1pp1p2n3p13p43PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Scandinavian Variation, Bogoljubov Variation, Heinola-Deppe Gambit", "r1bqkbnrppp2ppp2n53pp33PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Scandinavian Variation, Bogoljubov Variation, Nimzowitsch Gambit", "r1bqkbnrppp1pppp83Pn34p32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Scandinavian Variation, Bogoljubov Variation, Richter Gambit", "rnbqkbnrppp1pppp83P44p32N2P2PPP3PPR1BQKBNR b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Scandinavian Variation, Bogoljubov Variation, Vehre Variation", "r1bqkb1rppp1pppp2n2n23p43PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Scandinavian Variation, Exchange Variation", "r1b1kbnrppp1pppp2n53q43P48PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Scandinavian Variation, Exchange Variation, Marshall Gambit", "r1b1kbnrppp1pppp2n53q43P42N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Wheeler Gambit", "r1bqkbnrpppppppp2n581P2P38P1PP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Williams Variation", "r1bqkbnrppp1pppp2np484P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B00", "Nimzowitsch Defense: Woodchuck Variation", "r1bqkbnr1pppppppp1n583PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Owen Defense", "rnbqkbnrp1pppppp1p684P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Owen Defense: Hekili-Loa Gambit", "r1bqkbnrp2ppppp1pn52P54P38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Owen Defense: Matovinsky Gambit", "rn1qkbnrp1ppp2p1p4p15P1Q3P43B4PPP2PbPRNB1K1NR w KQkq")); + openings.add(new Opening("B00", "Owen Defense: Naselwaus Gambit", "rn1qkbnrpbpppppp1p66B13PP38PPP2PPPRN1QKBNR b KQkq")); + openings.add(new Opening("B00", "Owen Defense: Smith Gambit", "rn1qkbnrpbpppppp1p683PP35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B00", "Owen Defense: Unicorn Variation", "rn1qkbnrpbppp1pp1p3p282PPP38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Owen Defense: Wind Gambit", "rn1qkbnrpbpp1ppp1p64p33PP35P2PPP3PPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "St. George Defense", "rnbqkbnr1pppppppp784P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "St. George Defense: New St. George, Sanky-George Gambit", "rnbqkbnr2pp1pppp3p31p62PPP38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "St. George Defense: New St. George, Three Pawn Attack", "rnbqkbnr1ppp1pppp3p382PPP38PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B00", "St. George Defense: New St. George, Traditional Line", "rn1qkb1r1b1p1pppp3pn21pp53PP32PB1N2PP3PPPRNBQ1RK1 w kq")); + openings.add(new Opening("B00", "St. George Defense: Polish Variation", "rn1qkbnr1bpp1pppp3p31p63PP33B1N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("B00", "St. George Defense: San Jorge Variation", "rn1qk1nr1bp1ppbpp2p2p11p63PP32PB1N2PP3PPPRNBQ1RK1 w kq")); + openings.add(new Opening("B00", "St. George Defense: Zilbermints Gambit", "rnbqkbnr1ppp1pppp74p33PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B00", "Ware Defense", "rnbqkbnr1ppppppp8p74P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense", "rnbqkbnrppp1pppp83p44P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: 2. b3", "rnbqkbnrppp1pppp83p44P31P6P1PP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Anderssen Counterattack", "rnb1kbnrppp2ppp8q3p33P42N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Anderssen Counterattack, Collijn Variation", "rn2kbnrppp2ppp8q3p33P2b12N2N2PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Anderssen Counterattack, Goteborg System", "rnb1kbnrppp2ppp8q3p33P42N2N2PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Anderssen Counterattack, Orthodox Attack", "r1b1k1nrppp2ppp2n5q3P31b62N2N2PPPB1PPPR2QKB1R b KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Blackburne Gambit", "r1bqkbnrpp2pppp2n5888PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Blackburne-Kloosterboer Gambit", "rnbqkbnrpp2pppp2p53P488PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Boehnke Gambit", "rn1qkbnrppp2ppp4b3888PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Bronstein Variation", "rnb1kb1r1pp1ppppp2q1n283P42N2N2PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Classical Variation", "rn2kb1rppp1pppp5n2q4b23P42N2N2PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Grünfeld Variation", "rn2kb1rpp2pppp2p2n2q3Nb23P2P12N5PPP2P1PR1BQKB1R b KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Gubinsky-Melts Defense", "rnb1kbnrppp1pppp3q4882N5PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Icelandic-Palme Gambit", "rnbqkb1rppp2ppp4pn23P42P58PP1P1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Kadas Gambit", "rnbqkb1rpp3ppp2P2n24p33P48PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Kiel Variation", "rnbqkb1rppp1pppp881nPP48PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Kloosterboer Gambit", "rnbqkbnrpp3ppp2P54p388PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Lasker Variation", "rn2kb1rppp1pppp5n2q73P2b12N2N1PPPP2PP1R1BQKB1R b KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Main Line", "rnb1kbnrppp1pppp8q782N5PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Main Line, Leonhardt Gambit", "rnb1kbnrppp1pppp8q71P62N5P1PP1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Main Line, Mieses Variation", "rnb1kb1rppp1pppp5n2q73P42N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Marshall Variation", "rnbqkb1rppp1pppp83n43P48PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Mieses-Kotroc Variation", "rnb1kbnrppp1pppp83q488PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Modern Variation", "rnbqkb1rppp1pppp5n23P43P48PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Modern Variation", "rnbqkb1rppp1pppp5n23P488PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Modern Variation, Gipslis Variation", "rn1qkb1rppp1pppp83n43P2b15N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Modern Variation, Wing Gambit", "rnbqkb1rp1p1pp1p5np11p1P42PP48PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Panov Transfer", "rnbqkb1rpp2pppp2p2n23P42P58PP1P1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Portuguese Variation", "rn1qkb1rppp1pppp5n23P43P2b18PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Portuguese Variation, Portuguese Gambit", "r2qkb1rpppnpppp5n21B1P1b23P45P2PPP3PPRNBQK1NR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Richter Variation", "rnbqkb1rppp1pp1p6p13n43P45N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Richter Variation", "rnbqkb1rppp1pp1p5np13P43P48PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Schiller-Pytel Variation", "rnb1kbnrpp2pppp2pq483P42N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Schiller-Pytel Variation, Modern Variation", "rn2kb1rpp2pppp2p2n25b21qBP1B22N5PPP1NPPPR2QK2R w KQkq")); + openings.add(new Opening("B01", "Scandinavian Defense: Zilbermints Gambit", "rnbqkbnrppp1pppp83p41P2P38P1PP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B02", "Alekhine Defense", "rnbqkb1rpppppppp5n284P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Brooklyn Variation", "rnbqkbnrpppppppp84P388PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Brooklyn Variation, Everglades Variation", "rnbqkbnrppppp1pp84Pp23P48PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Hunt Variation, Lasker Simul Gambit", "rnbqkb1rpppp1ppp4p32PnP32B52N5PP1P1PPPR1BQK1NR b KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Hunt Variation, Matsukevich Gambit", "rnbqkb1rppp1pppp3p42P1P1B182P5PP3PPPR2QKBNR b KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Hunt Variation, Mikenas Gambit", "rnbqkb1rppp2ppp3p42PBP388PP1P1PPPR1BQK1NR b KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Kmoch Variation", "rnbqkb1rpp1ppppp1n62p1P381B1P4PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Krejcik Variation", "rnbqkb1rpppppppp5n282B1P38PPPP1PPPRNBQK1NR b KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Krejcik Variation, Krejcik Gambit", "rnbqkb1rpppppBpp884n38PPPP1PPPRNBQK1NR b KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Maróczy Variation", "rnbqkb1rpppppppp5n284P33P4PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Mokele Mbembe", "rnbqkb1rpppppppp84P34n38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Mokele Mbembe, Modern Line", "rnbqkb1rppppp1pp5p24P33Pn38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Mokele Mbembe, Vavra Defense", "rnbqkb1rpppp1ppp4p34P33Pn38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Normal Variation", "rnbqkb1rpppppppp83nP388PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Sämisch Attack", "rnbqkb1rpppppppp83nP382N5PPPP1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Scandinavian Variation", "rnbqkb1rppp1pppp5n23p44P32N5PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Scandinavian Variation, Geschev Gambit", "rnbqkb1rpp2pppp2p2n23P482N5PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Scandinavian Variation, Myers Gambit", "rnbqkb1rppp1pppp5n26B14p32NP4PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Spielmann Gambit", "rnbqkb1rpppnpppp4P33p482N5PPPP1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Steiner Variation", "rnbqkb1rpppppppp1n64P32P51P6P2P1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: The Squirrel", "rnbqkb1rpppppppp84P32P2n28PP1P1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Two Pawn Attack", "rnbqkb1rpppppppp83nP32P58PP1P1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Two Pawn Attack, Lasker Variation", "rnbqkb1rpppppppp1n62P1P388PP1P1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Two Pawns Attack, Mikenas Variation", "rnbqkb1rppp2ppp3pp32PnP32B52N5PP1P1PPPR1BQK1NR w KQkq")); + openings.add(new Opening("B02", "Alekhine Defense: Welling Variation", "rnbqkb1rpppppppp83nP381P6P1PP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B02", "Zaire Defense", "rnbqkbnrpppppppp83PP388PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B03", "Alekhine Defense", "rnbqkb1rppp1pppp3p43nP33P48PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B03", "Alekhine Defense", "rnbqkb1rpppppppp83nP33P48PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B03", "Alekhine Defense", "rnbqkb1rppp1pppp3p43nP32PP48PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B03", "Alekhine Defense: Balogh Variation", "rnbqkb1rppp1pppp3p43nP32BP48PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("B03", "Alekhine Defense: Buckley Attack", "rnbqkb1rpppppppp83nP38N7PPPP1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B03", "Alekhine Defense: Exchange Variation", "rnbqkb1rppp1pppp1n1P482PP48PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B03", "Alekhine Defense: Exchange Variation, Karpov Variation", "r2q1rk1pp2ppbp1nnp2p15b22PP1B22N2N1PPP2BPP1R2Q1RK1 b -")); + openings.add(new Opening("B03", "Alekhine Defense: Four Pawns Attack", "rnbqkb1rppp1pppp1n1p44P32PP1P28PP4PPRNBQKBNR b KQkq")); + openings.add(new Opening("B03", "Alekhine Defense: Four Pawns Attack, 6... Nc6", "r1bqkb1rppp1pppp1nn54P32PP48PP4PPRNBQKBNR w KQkq")); + openings.add(new Opening("B03", "Alekhine Defense: Four Pawns Attack, Cambridge Gambit", "rnbqkb1rppp1pp1p1n1p44P1p12PP1P28PP4PPRNBQKBNR w KQkq")); + openings.add(new Opening("B03", "Alekhine Defense: Four Pawns Attack, Fianchetto Variation", "rnbqkb1rppp1pp1p1n1p2p14P32PP1P28PP4PPRNBQKBNR w KQkq")); + openings.add(new Opening("B03", "Alekhine Defense: Four Pawns Attack, Ilyin-Zhenevsky Variation", "r2qkb1rppp1p1pp1nn1p32P53P2b15N2PP4PPRNBQKB1R b KQkq")); + openings.add(new Opening("B03", "Alekhine Defense: Four Pawns Attack, Korchnoi Variation", "rn1q1rk1ppp1b1pp1n2pp24Pb22PP42N2N2PP2B1PPR1BQ1RK1 w -")); + openings.add(new Opening("B03", "Alekhine Defense: Four Pawns Attack, Main Line", "r1bqkb1rppp1pppp1nn54P32PP44B3PP4PPRN1QKBNR b KQkq")); + openings.add(new Opening("B03", "Alekhine Defense: Four Pawns Attack, Tartakower Variation", "2kr3rpppqbppp1nn1p34Pb22PP42N1BN2PP2B1PPR2Q1RK1 w -")); + openings.add(new Opening("B03", "Alekhine Defense: Four Pawns Attack, Trifunovic Variation", "rn1qkb1rppp1pppp1n1p44Pb22PP1P28PP4PPRNBQKBNR w KQkq")); + openings.add(new Opening("B03", "Alekhine Defense: Hunt Variation", "rnbqkb1rppp1pppp1n1p42P1P33P48PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B03", "Alekhine Defense: O'Sullivan Gambit", "rnbqkb1rp1pppppp81p1nP33P48PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B04", "Alekhine Defense: Modern Variation", "rnbqkb1rppp1pppp3p43nP33P45N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B04", "Alekhine Defense: Modern Variation, Alburt Variation", "rnbqkb1rppp1pp1p3p2p13nP33P45N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B04", "Alekhine Defense: Modern Variation, Alekhine Gambit", "rn1qkb1rppp1pppp1n1p44P32PP2b15N2PP2BPPPRNBQK2R b KQkq")); + openings.add(new Opening("B04", "Alekhine Defense: Modern Variation, Keres Variation", "rnbqk2rppp1ppbp1n1p2p14P3P2P41B3N21PP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("B04", "Alekhine Defense: Modern Variation, Larsen Variation", "rnbqkb1rppp1pppp83np33P45N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B04", "Alekhine Defense: Modern Variation, Larsen-Haakert Variation", "r1bqkb1rppp1pppp2np43nP33P45N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B04", "Alekhine Defense: Modern Variation, Schmid Variation", "rnbqkb1rppp1pppp1n1p44P33P45N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B05", "Alekhine Defense: Modern Variation, Alekhine Variation", "rn1qkb1rppp1pppp3p43nP32PP2b15N2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B05", "Alekhine Defense: Modern Variation, Main Line", "rn1qkb1rppp1pppp3p43nP33P2b15N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B05", "Alekhine Defense: Modern Variation, Panov Variation", "rn1qkb1rppp1pppp3p43nP33P2b15N1PPPP2PP1RNBQKB1R b KQkq")); + openings.add(new Opening("B05", "Alekhine Defense: Modern, Flohr Variation", "rn1qkb1rpp2pppp2pp43nP33P2b15N2PPP1BPPPRNBQK2R w KQkq")); + openings.add(new Opening("B05", "Alekhine Defense: Modern, Vitolins Attack", "rn1qkb1rppp1pppp1n1p43PP32P3b15N2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B06", "Modern Defense", "rnbqkbnrpppppp1p6p184P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Anti-Modern", "rnbqk1nrpp2ppbp2pp2p182BPP32N5PPP1QPPPR1B1K1NR b KQkq")); + openings.add(new Opening("B06", "Modern Defense: Bishop Attack", "rnbqk1nrppppppbp6p182BPP38PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("B06", "Modern Defense: Bishop Attack, Buecker Gambit", "rnbqk1nrp1ppppbp6p11p62BPP38PPP2PPPRNBQK1NR w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Bishop Attack, Monkey's Bum", "rnbqk1nrpppp1p1p4p1p182BbP35Q2PPP2PPPRNB1K1NR w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Fianchetto Gambit", "rnbqkbnrppppp2p6p15p23PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Geller's System", "rnbqk1nrppp1ppbp3p2p183PP32P2N2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B06", "Modern Defense: Gurgenidze Defense", "rnbqk1nrpp2ppb12p3p13pP2p3P1P22N5PPP3PPR1BQKBNR w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Lizard Defense, Mittenberger Gambit", "rnbqk1nrppp1ppbp6p13p43PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Masur Gambit", "rnbq1rk1ppppp2p6pb5P23P42N5PPP2PPPR2QKBNR w KQ")); + openings.add(new Opening("B06", "Modern Defense: Modern Pterodactyl", "rnbqk1nrpp1pppbp6p12p53PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Mongredien Defense", "rnbqk1nrp1ppppbp1p4p183PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Mongredien Defense", "rnbqk1nrp1ppppbp1p4p183PP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Norwegian Defense", "rnbqkb1rpppppp1p5np183PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Norwegian Defense, Norwegian Gambit", "rnbqkb1rppp1pp1p3p2p14P2n3P48PPP1BPPPRNBQK1NR w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Pseudo-Austrian Attack", "rnbqk1nrppp1ppbp3p2p183PPP22N5PPP3PPR1BQKBNR b KQkq")); + openings.add(new Opening("B06", "Modern Defense: Pterodactyl Variation", "rnb1k1nrpp1pppbp6p1q1p53PP32N2N2PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Standard Defense", "rnbqk1nrppp1ppbp3p2p183PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Standard Line", "rnbqk1nrppppppbp6p183PP32N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B06", "Modern Defense: Three Pawns Attack", "rnbqk1nrppppppbp6p183PPP28PPP3PPRNBQKBNR b KQkq")); + openings.add(new Opening("B06", "Modern Defense: Two Knights Variation", "rnbqk1nrppp1ppbp3p2p183PP32N2N2PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B06", "Modern Defense: Two Knights Variation, Suttles Variation", "rnbqk1nrpp2ppbp2pp2p183PP32N2N2PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Two Knights Variation, Suttles Variation, Tal Gambit", "rnb1k1nrpp2ppbp2pp2p16B13PP32N2N2PqPQ1PPPR3KB1R w KQkq")); + openings.add(new Opening("B06", "Modern Defense: Westermann Gambit", "rnbqk1nrppppppbp6p183PP38PPPB1PPPRN1QKBNR b KQkq")); + openings.add(new Opening("B06", "Modern Defense: Wind Gambit", "rnbqk1nrppppppbp6p183PP33B4PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("B06", "Norwegian Defense", "rnbqkb1rppppppnp6p14P33P2P18PPP2P1PRNBQKBNR w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Austrian, Austriadactylus Western", "rnb1k1nrpp1pppbp6p1q1p53PPP25N2PPP3PPRNBQKB1R w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Austrian, Grand Prix Pterodactyl", "rnb1k1nrpp1pppbp6p1q1p54PP22N2N2PPPP2PPR1BQKB1R w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Austrian, Pteranodon", "rnb1k1nrpp1pppbp6p1q1p53PPP22P5PP4PPRNBQKBNR w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Central, Anhanguera", "rnb1k1nrpp2ppbp3p2p1q1p52PPP32N1B3PP3PPPR2QKBNR w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Central, Benoni Beefeater Pterodactyl", "rnb1k1nrpp2pp1p3p2p1q1pP42P1P32P5P4PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Central, Benoni Pterodactyl", "rnb1k1nrpp1pppbp6p1q1pP42P1P38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Central, Benoni Quetzalcoatlus", "rnb1k1nrpp2ppbp3p2p1q1pP42P1P32N5PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Central, Bogolubovia", "rnb1k1nrpp2ppbp3p2p1q1p52PPP32N5PP2NPPPR1BQKB1R w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Central, Quetzalcoatlus Gambit", "rnb1k1nrpp2ppbp3p2p1q1P52P1P32N5PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Eastern, Anhanguera", "rnbqk1nrpp1pppbp6p12p53PP32N1B3PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Eastern, Benoni", "rnbqk1nrpp1pppbp6p12pP44P32N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Eastern, Benoni Pteranodon", "rnb1k1nrpp1ppp1p6p1q1pP44P32P5P1P2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Eastern, Benoni Pterodactyl", "rnb1k1nrpp1pppbp6p1q1pP44P32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Eastern, Pteranodon", "rnb1k1nrpp1ppp1p6p1q1P54P32P5P1P2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Eastern, Pterodactyl", "rnb1k1nrpp1pppbp6p1q1P54P32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Eastern, Rhamphorhynchus", "rnbqk1nrpp1pppbp6p12P54P32N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Fianchetto, King Pterodactyl", "rnb1k1nrpp1pppbp6p1q1p53PP35NP1PPP2P1PRNBQKB1R w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Fianchetto, Rhamphorhynchus", "rnb1k1nrpp1pppbp6p1q1P54P36P1PPP2P1PRNBQKBNR w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Sicilian, Anhanguera", "rnb1k1nrpp1pppbp6p1q1p53PP32N1BN2PPP2PPPR2QKB1R b KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Sicilian, Benoni Gambit", "rnb1k1nrpp1pppbp6p1q1pP44P32N2N2PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Sicilian, Pteranodon", "rnb1k1nrpp1ppp1p6p1q1P54P32P2N2P1P2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Sicilian, Quetzalcoatlus", "rnb1k1nrpp2ppbp3p2p1q1p53PP32N2N2PPP1BPPPR1BQK2R w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Sicilian, Rhamporhynchus", "rnb1k1nrpp1pppbp6p1q1P54P32N2N2PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Sicilian, Siroccopteryx", "rnb1k1nrpp1pppbp6p1q1p52BPP32N2N2PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Sicilian, Unpin", "rnb1k1nrpp1pppbp6p1q1p53PP32N2N2PPPB1PPPR2QKB1R b KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Western, Anhanguera", "rnb1k1nrpp1pppbp6p1q1p53PP34BN2PPP2PPPRN1QKB1R w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Western, Pterodactyl", "rnb1k1nrpp1pppbp6p1q1p53PP32P2N2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Western, Rhamphorhynchus", "rnb1k1nrpp1pppbp6p1q1P54P35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B06", "Pterodactyl Defense: Western, Siroccopteryx", "rnb1k1nrpp1pppbp6p1q72BNP38PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("B06", "Rat Defense: Spike Attack", "rnbqkbnrppp1pppp3p484P1P18PPPP1P1PRNBQKBNR b KQkq")); + openings.add(new Opening("B06", "Robatsch (Modern) Defense", "rnbqk1nrppppppbp6p183PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B07", "Czech Defense", "rnbqkb1rpp2pppp2pp1n283PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B07", "King's Pawn Game: Maróczy Defense", "rnbqkbnrppp2ppp3p44p33PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B07", "King's Pawn Game: Philidor Gambit", "rn1qkbnrpppb1ppp3p44P34P38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B07", "Lion Defense: Anti-Philidor", "r1bqkb1rpppnpppp3p1n283PPP22N5PPP3PPR1BQKBNR b KQkq")); + openings.add(new Opening("B07", "Lion Defense: Anti-Philidor, Lion's Cave", "r1bqkb1rpppn1ppp3p1n24p33PPP22N5PPP3PPR1BQKBNR w KQkq")); + openings.add(new Opening("B07", "Lion Defense: Anti-Philidor, Lion's Cave, Lion Claw Gambit", "r1bqkb1rpp1n1ppp2p2n23p42BQPP22N2N2PPP3PPR1B1K2R w KQkq")); + openings.add(new Opening("B07", "Lion Defense: Bayonet Attack", "r1bqkb1rpppnpppp3p1n283PP1P12N5PPP2P1PR1BQKBNR b KQkq")); + openings.add(new Opening("B07", "Lion Defense: Lion's Jaw", "rnbqkb1rppp1pppp3p1n283PP35P2PPP3PPRNBQKBNR b KQkq")); + openings.add(new Opening("B07", "Pirc Defense", "rnbqkb1rppp1pppp3p1n283PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B07", "Pirc Defense", "rnbqkb1rppp1pppp3p1n283PP32N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B07", "Pirc Defense", "rnbqkb1rppp1pp1p3p1np183PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B07", "Pirc Defense", "rnbqkbnrppp1pppp3p484P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B07", "Pirc Defense", "rnbqkbnrppp1pppp3p483PP38PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B07", "Pirc Defense: 150 Attack", "rnbqkb1rpp2pp1p2pp1np183PP32N1B3PPPQ1PPPR3KBNR b KQkq")); + openings.add(new Opening("B07", "Pirc Defense: 150 Attack, Inner Doll Defense", "rn1qkb1rpp2pp1p2pp1np183PP1b12N1B3PPPQ1PPPR3KBNR w KQkq")); + openings.add(new Opening("B07", "Pirc Defense: 150 Attack, Sveshnikov-Jansa Attack", "rnbqkb1rpp2pp1p2pp1np183PP32N1B2PPPP2PP1R2QKBNR b KQkq")); + openings.add(new Opening("B07", "Pirc Defense: Bayonet Attack", "rnbqk2rppp1ppbp3p1np183PP2P2N5PPP1BPP1R1BQK1NR b KQkq")); + openings.add(new Opening("B07", "Pirc Defense: Byrne Variation", "rnbqkb1rppp1pp1p3p1np16B13PP32N5PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("B07", "Pirc Defense: Chinese Variation", "rnbqk2rppp1ppbp3p1np183PP1P12N5PPP1BP1PR1BQK1NR b KQkq")); + openings.add(new Opening("B07", "Pirc Defense: Classical Variation", "rnbqkb1rppp1pp1p3p1np183PP32N5PPP1BPPPR1BQK1NR b KQkq")); + openings.add(new Opening("B07", "Pirc Defense: Classical Variation", "rnbqkb1rppp1pp1p3p1np183PP32N2N2PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B07", "Pirc Defense: Kholmov System", "rnbqkb1rppp1pp1p3p1np182BPP32N5PPP2PPPR1BQK1NR b KQkq")); + openings.add(new Opening("B07", "Pirc Defense: Roscher Gambit", "rnbqkb1rppp1pppp3p1n283PP35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B07", "Pirc Defense: Sveshnikov System", "rnbqkb1rppp1pp1p3p1np183PP32N3P1PPP2P1PR1BQKBNR b KQkq")); + openings.add(new Opening("B07", "Rat Defense: Accelerated Gurgenidze", "rnbqkbnrpp2pp1p2pp2p183PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B07", "Rat Defense: Antal Defense", "r1bqkbnrpppnpppp3p483PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B07", "Rat Defense: Balogh Defense", "rnbqkbnrppp1p1pp3p45p23PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B07", "Rat Defense: Fuller Gambit", "rnbqkb1rppp1pppp5n23P45P28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("B07", "Rat Defense: Harmonist", "rnbqkbnrppp1pppp3p484PP28PPPP2PPRNBQKBNR b KQkq")); + openings.add(new Opening("B07", "Rat Defense: Petruccioli Attack", "rnbqkbnrppp1pppp3p484P2P8PPPP1PP1RNBQKBNR b KQkq")); + openings.add(new Opening("B08", "Pirc Defense: Classical Variation", "rnbqk2rppp1ppbp3p1np183PP32N2N2PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B08", "Pirc Defense: Classical Variation, Quiet System", "rnbqk2rppp1ppbp3p1np183PP32N2N2PPP1BPPPR1BQK2R b KQkq")); + openings.add(new Opening("B08", "Pirc Defense: Classical Variation, Quiet System, Chigorin Line", "r1bq1rk1ppp1ppbp2np1np183PP32N2N2PPP1BPPPR1BQ1RK1 w -")); + openings.add(new Opening("B08", "Pirc Defense: Classical Variation, Quiet System, Czech Defense", "rnbq1rk1pp2ppbp2pp1np183PP32N2N2PPP1BPPPR1BQ1RK1 w -")); + openings.add(new Opening("B08", "Pirc Defense: Classical Variation, Quiet System, Parma Defense", "rn1q1rk1ppp1ppbp3p1np183PP1b12N2N2PPP1BPPPR1BQ1RK1 w -")); + openings.add(new Opening("B08", "Pirc Defense: Classical Variation, Schlechter Variation", "rnbqk2rppp1ppbp3p1np183PP32N2N1PPPP2PP1R1BQKB1R b KQkq")); + openings.add(new Opening("B09", "Pirc Defense: Austrian Attack", "rnbqkb1rppp1pp1p3p1np183PPP22N5PPP3PPR1BQKBNR b KQkq")); + openings.add(new Opening("B09", "Pirc Defense: Austrian Attack", "rnbq1rk1ppp1ppbp3p1np183PPP22N2N2PPP3PPR1BQKB1R w KQ")); + openings.add(new Opening("B09", "Pirc Defense: Austrian Attack, Dragon Formation", "rnbqk2rpp2ppbp3p1np12p53PPP22N2N2PPP3PPR1BQKB1R w KQkq")); + openings.add(new Opening("B09", "Pirc Defense: Austrian Attack, Kurajica Variation", "rnbq1rk1ppp1ppbp3p1np183PPP22N1BN2PPP3PPR2QKB1R b KQ")); + openings.add(new Opening("B09", "Pirc Defense: Austrian Attack, Ljubojevic Variation", "rnbqk2rppp1ppbp3p1np182BPPP22N5PPP3PPR1BQK1NR b KQkq")); + openings.add(new Opening("B09", "Pirc Defense: Austrian Attack, Unzicker Attack", "rnbq1rk1ppp1ppbp3p1np14P33P1P22N2N2PPP3PPR1BQKB1R b KQ")); + openings.add(new Opening("B09", "Pirc Defense: Austrian Attack, Unzicker Attack, Bronstein Variation", "rnbq1rk1pppnppbp3p2p14P33P1P1P2N2N2PPP3P1R1BQKB1R b KQ")); + openings.add(new Opening("B09", "Pirc Defense: Austrian Attack, Weiss Variation", "rnbq1rk1ppp1ppbp3p1np183PPP22NB1N2PPP3PPR1BQK2R b KQ")); + openings.add(new Opening("B10", "Caro-Kann Defense", "rnbqkbnrpp1ppppp2p584P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense", "rnbqkbnrpp1ppppp2p584P32N5PPPP1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Accelerated Panov Attack", "rnbqkbnrpp1ppppp2p582P1P38PP1P1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Accelerated Panov Attack", "rnbqkbnrpp2pppp2p53p42P1P38PP1P1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Accelerated Panov Attack, Modern Variation", "rnbqkb1rpp2pppp5n23P488PP1P1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Accelerated Panov Attack, Open Variation", "rnbqkbnrpp1p1ppp2p54p32P1P38PP1P1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Accelerated Panov Attack, Pseudo-Scandinavian", "rnb1kbnrpp2pppp2p53q42P58PP1P1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Accelerated Panov Attack, Van Weersel Attack", "rnbqkbnrpp2pppp83p44P31Q6PP1P1PPPRNB1KBNR b KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Breyer Variation", "rnbqkbnrpp1ppppp2p584P33P4PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Breyer Variation, Stein Attack", "rnbq1rk1pp2npbp2p3p13pp31P2P33P1NP1P1PN1PBPR1BQ1RK1 b -")); + openings.add(new Opening("B10", "Caro-Kann Defense: Euwe Attack", "rnbqkbnrpp1ppppp2p584P31P6P1PP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Euwe Attack, Prins Gambit", "rnbqkbnrpp2pppp82pp44P31P6PBPP1PPPRN1QKBNR b KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Hillbilly Attack, Schaeffer Gambit", "rnbqkbnrpp2pppp2p57Q4p31B6PPPP1PPPRNB1K1NR b KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Labahn Attack", "rnbqkbnrpp1ppppp2p581P2P38P1PP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Labahn Attack, Double Gambit", "rnbqkbnrpp2pppp2p51P1p44P38P1PP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Labahn Attack, Polish Variation", "rnbqkbnrpp1p1ppp2p54p31P2P38PBPP1PPPRN1QKBNR b KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Masi Variation", "rnbqkb1rpp1ppppp2p2n283PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Massachusetts Defense", "rnbqkbnrpp1pp1pp2p55p23PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Scorpion-Horus Gambit", "rnbqkbnrpp2pppp2p56B14p32NP4PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Spike Variation", "rnbqkbnrpp1ppppp2p584P1P18PPPP1P1PRNBQKBNR b KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Spike Variation, Scorpion-Grob Gambit", "rnbqkbnrpp2pppp2p584p1P12NP4PPP2P1PR1BQKBNR b KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Toikkanen Gambit", "rnbqkbnrpp2pppp2p53pP32P58PP1P1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B10", "Caro-Kann Defense: Two Knights Attack", "rnbqkbnrpp2pppp2p53p44P32N2N2PPPP1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B10", "Van Geet Opening: Caro-Kann Variation, St. Patrick's Attack", "rnbqkbnrpp2pppp2p53p44P32N4PPPPP1PP1R1BQKBNR b KQkq")); + openings.add(new Opening("B11", "Caro-Kann Defense", "rnbqkbnrpp2pppp2p53p44P32N5PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B11", "Caro-Kann Defense: Two Knights Attack, Mindeno Variation", "rn1qkbnrpp2pppp2p53p44P1b12N2N2PPPP1PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B11", "Caro-Kann Defense: Two Knights Attack, Mindeno Variation, Exchange Line", "rn1qkbnrpp2pppp2p53p44P32N2b1PPPPP1PP1R1BQKB1R w KQkq")); + openings.add(new Opening("B11", "Caro-Kann Defense: Two Knights Attack, Mindeno Variation, Retreat Line", "rn1qkbnrpp2pppp2p53p3b4P32N2N1PPPPP1PP1R1BQKB1R w KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense", "rnbqkbnrpp1ppppp2p583PP38PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense", "rnbqkbnrpp2pppp2p53p43PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Advance Variation", "rnbqkbnrpp2pppp2p53pP33P48PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Advance Variation, Bayonet Attack", "rn1qkbnrpp2pppp2p53pPb23P2P18PPP2P1PRNBQKBNR b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Advance Variation, Botvinnik-Carls Defense", "rnbqkbnrpp2pppp82ppP33P48PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Advance Variation, Bronstein Variation", "rn1qkbnrpp2pppp2p53pPb23P48PPP1NPPPRNBQKB1R b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Advance Variation, Prins Attack", "rn1qkbnrpp2pppp2p53pPb21P1P48P1P2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Advance Variation, Short Variation", "rn1qkbnrpp2pppp2p53pPb23P45N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Advance Variation, Tal Variation", "rn1qkbnrpp2pppp2p53pPb23P3P8PPP2PP1RNBQKBNR b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Advance Variation, Van der Wiel Attack", "rn1qkbnrpp2pppp2p53pPb23P42N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Advance Variation, Van der Wiel Attack", "rn1qkbnrpp3ppp4p1b12ppP33P2PP2N5PPP1NP2R1BQKB1R b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Advance Variation, Van der Wiel Attack, Dreyev Defense", "rn2kbnrpp2pppp1qp53pPb23P42N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Advance, Short Variation", "rn1qkbnrpp3ppp2p1p33pPb23P42P5PP2BPPPRNBQK1NR b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: De Bruycker Defense", "r1bqkbnrppnppppp2p583PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Edinburgh Variation", "rnb1kbnrpp2pppp1qp53p43PP38PPPN1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Goldman Variation", "rnbqkbnrpp2pppp2p53p44P32N2Q2PPPP1PPPR1B1KBNR b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Hector Gambit", "rnbqkbnrpp2pppp2p56N14p32N5PPPP1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Maróczy Variation", "rnbqkbnrpp2pppp2p53p43PP35P2PPP3PPRNBQKBNR b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Maróczy Variation, Maróczy Gambit", "rnbqkbnrpp3ppp2p582BpP35N2PPP3PPRNBQK2R b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Mieses Attack, Landau Gambit", "rnbqkb1rpp1npppp2p1P33p43P43B4PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Mieses Gambit", "rnbqkbnrpp2pppp2p53p43PP34B3PPP2PPPRN1QKBNR b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Modern Variation", "rnbqkbnrpp2pppp2p53p43PP38PPPN1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B12", "Caro-Kann Defense: Ulysses Gambit", "rnbqkbnrpp2pppp2p56N13Pp38PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B12", "Slav Defense: Diemer Gambit", "rnbqkbnrpp2pppp2p53p42PPP38PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B13", "Caro-Kann Defense: Exchange Variation", "rnbqkbnrpp2pppp2p53P43P48PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B13", "Caro-Kann Defense: Exchange Variation, Bulla Attack", "rnbqkbnrpp2pppp83p43P2P18PPP2P1PRNBQKBNR b KQkq")); + openings.add(new Opening("B13", "Caro-Kann Defense: Exchange Variation, Rubinstein Variation", "r1bqkb1rpp2pppp2n2n23p43P1B22PB4PP3PPPRN1QK1NR b KQkq")); + openings.add(new Opening("B13", "Caro-Kann Defense: Panov Attack", "rnbqkb1rpp2pppp5n23p42PP42N5PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B13", "Caro-Kann Defense: Panov Attack", "rnbqkbnrpp2pppp83p42PP48PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B13", "Caro-Kann Defense: Panov Attack, Fianchetto Defense, Fianchetto Gambit", "rnbqk2rpp2ppbp5np13P43P42N5PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B13", "Caro-Kann Defense: Panov Attack, Gunderam Attack", "rnbqkb1rpp2pppp5n22Pp43P48PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B13", "Caro-Kann Defense: Panov Attack, Modern Defense", "r1bqkb1rpp2pppp2n2n23p42PP42N5PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B13", "Caro-Kann Defense: Panov Attack, Modern Defense, Carlsbad Line", "r1bqkb1rpp3ppp2n1pn23p2B12PP42N5PP3PPPR2QKBNR w KQkq")); + openings.add(new Opening("B13", "Caro-Kann Defense: Panov Attack, Modern Defense, Czerniak Line", "r1b1kb1rpp2pppp2n2n2q2p2B12PP42N5PP3PPPR2QKBNR w KQkq")); + openings.add(new Opening("B13", "Caro-Kann Defense: Panov Attack, Modern Defense, Mieses Line", "r2qkb1rpp2pppp2n2n23p42PP2b12N2N2PP3PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B13", "Caro-Kann Defense: Panov Attack, Modern Defense, Reifir-Spielmann Line", "r1b1kb1rpp2pppp1qn2n23p2B12PP42N5PP3PPPR2QKBNR w KQkq")); + openings.add(new Opening("B13", "Caro-Kann Defense: Panov-Botvinnik, Herzog Defense", "r1bqkb1rpp2pppp5n2n2P2B12p52N5PP3PPPR2QKBNR w KQkq")); + openings.add(new Opening("B14", "Caro-Kann Defense: Panov Attack", "rnbqkb1rpp3ppp4pn23p42PP42N5PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B14", "Caro-Kann Defense: Panov Attack, Fianchetto Defense", "rnbqkb1rpp2pp1p5np13p42PP42N5PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B15", "Caro-Kann Defense", "rnbqkbnrpp2pppp2p53p43PP32N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B15", "Caro-Kann Defense: Alekhine Gambit", "rnbqkb1rpp2pppp2p2n283PN33B4PPP2PPPR1BQK1NR b KQkq")); + openings.add(new Opening("B15", "Caro-Kann Defense: Forgacs Variation", "rnbqkb1rpp3ppp2p2p282BP48PPP2PPPR1BQK1NR b KQkq")); + openings.add(new Opening("B15", "Caro-Kann Defense: Gurgenidze Counterattack", "rnbqkbnrp3pppp2p51p1p43PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B15", "Caro-Kann Defense: Gurgenidze System", "rnbqkbnrpp2pp1p2p3p13p43PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B15", "Caro-Kann Defense: Main Line", "rnbqkbnrpp2pppp2p583PN38PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B15", "Caro-Kann Defense: Rasa-Studier Gambit", "rnbqkbnrpp2pppp2p583Pp32N2P2PPP3PPR1BQKBNR b KQkq")); + openings.add(new Opening("B15", "Caro-Kann Defense: Tartakower Variation", "rnbqkb1rpp3ppp2p2p283P48PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B15", "Caro-Kann Defense: von Hennig Gambit", "rnbqkbnrpp2pppp2p582BPp32N5PPP2PPPR1BQK1NR b KQkq")); + openings.add(new Opening("B16", "Caro-Kann Defense: Bronstein-Larsen Variation", "rnbqkb1rpp2pp1p2p2p283P48PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B16", "Caro-Kann Defense: Finnish Variation", "rnbqkbnrpp2ppp12p4p83PN38PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B17", "Caro-Kann Defense: Karpov Variation", "r1bqkbnrpp1npppp2p583PN38PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B17", "Caro-Kann Defense: Karpov Variation, Modern Main Line", "r1bqk2rpp1n1pp12pbp2p83PQ33B1N2PPP2PPPR1B1K2R b KQkq")); + openings.add(new Opening("B17", "Caro-Kann Defense: Karpov Variation, Modern Variation", "r1bqkbnrpp1npppp2p56N13P48PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B17", "Caro-Kann Defense: Karpov Variation, Modern Variation, Ivanchuk Defense", "r1bqkbnrpp2pppp2p2n26N13P48PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B17", "Caro-Kann Defense: Karpov Variation, Modern Variation, Kasparov Attack", "r1bqkb1rpp1npppp2p2n283P45NN1PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B17", "Caro-Kann Defense: Karpov Variation, Smyslov Variation", "r1bqkb1rpp3ppp1np1pn26N12BP48PPP1QPPPR1B1K1NR w KQkq")); + openings.add(new Opening("B17", "Caro-Kann Defense: Karpov Variation, Smyslov Variation, Main Line", "r1bqkb1rpp3ppp1np1pn26N13P41B6PPP1QPPPR1B1K1NR b KQkq")); + openings.add(new Opening("B17", "Caro-Kann Defense: Karpov Variation, Tiviakov-Fischer Attack", "r1bqkb1rpp2pppp2p2n282BP48PPP2PPPR1BQK1NR w KQkq")); + openings.add(new Opening("B18", "Caro-Kann Defense: Classical Variation", "rn1qkbnrpp2pppp2p55b23PN38PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B18", "Caro-Kann Defense: Classical Variation, Flohr Variation", "rn1qkbnrpp2pppp2p3b183P46NNPPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B18", "Caro-Kann Defense: Classical Variation, Main Line", "rn1qkbnrpp2pppp2p3b183P3P6N1PPP2PP1R1BQKBNR b KQkq")); + openings.add(new Opening("B18", "Caro-Kann Defense: Classical Variation, Maróczy Attack", "rn1qkbnrpp2pppp2p3b183P1P26N1PPP3PPR1BQKBNR b KQkq")); + openings.add(new Opening("B19", "Caro-Kann Defense: Classical Variation, Lobron System", "r2qk2rpp1nbpp12p1pn1p7P3P43Q1NN1PPPB1PP12KR3R w kq")); + openings.add(new Opening("B19", "Caro-Kann Defense: Classical Variation, Seirawan Variation", "r2qk2rpp1n1pp12pbpn1p7P3P43Q1NN1PPPB1PP12KR3R w kq")); + openings.add(new Opening("B19", "Caro-Kann Defense: Classical, 7... Nd7", "r2qkbnrpp1nppp12p3bp83P3P5NN1PPP2PP1R1BQKB1R w KQkq")); + openings.add(new Opening("B19", "Caro-Kann Defense: Classical, Spassky Variation", "r2qkbnrpp1nppp12p3bp7P3P45NN1PPP2PP1R1BQKB1R b KQkq")); + openings.add(new Opening("B20", "King's Pawn Opening: Speers", "rnbqkb1rpppp1ppp5n24pQ24P38PPPP1PPPRNB1KBNR b KQkq")); + openings.add(new Opening("B20", "King's Pawn Opening: Van Hooydoon Gambit", "r1bqk2rpppp1ppp5n22b53nP35N2PP2QPPPRNB1KB1R w KQkq")); + openings.add(new Opening("B20", "Sicilian Defense", "rnbqkbnrpp1ppppp82p54P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Amazon Attack", "rnbqkbnrpp1ppppp82p54P1Q18PPPP1PPPRNB1KBNR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Big Clamp Formation", "r1bqkbnrpp2pppp2np42p54PP22PP4PP4PPRNBQKBNR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Bowdler Attack", "rnbqkbnrpp1ppppp82p52B1P38PPPP1PPPRNBQK1NR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Brick Variation", "rnbqkbnrpp1ppppp82p54P37NPPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Gloria Variation", "r1bqkbnrpp2ppp12np42p4p2P1P32N3P1PP1P1P1PR1BQKBNR w KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Grob Variation", "rnbqkbnrpp1ppppp82p54P1P18PPPP1P1PRNBQKBNR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Keres Variation", "rnbqkbnrpp1ppppp82p54P38PPPPNPPPRNBQKB1R b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: King David's Opening", "rnbqkbnrpp1ppppp82p54P38PPPPKPPPRNBQ1BNR b kq")); + openings.add(new Opening("B20", "Sicilian Defense: Kronberger Variation", "rnbqkbnrpp1ppppp82p54P3N7PPPP1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Kronberger Variation, Nemeth Gambit", "r1bqkbnrpp1ppppp2n582BpP3N7PPP2PPPR1BQK1NR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Lasker-Dunne Attack", "rnbqkbnrpp1ppppp82p54P36P1PPPP1P1PRNBQKBNR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Mengarini Variation", "rnbqkbnrpp1ppppp82p54P3P71PPP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Myers Attack", "rnbqkbnrpp1ppppp82p54P2P8PPPP1PP1RNBQKBNR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Myers Attack", "rnbqkbnrpp1ppppp82p5P3P381PPP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Snyder Variation", "rnbqkbnrpp1ppppp82p54P31P6P1PP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Snyder Variation, Queen Fianchetto Variation", "rnbqkbnrp2ppppp1p62p54P31P6P1PP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Staunton-Cochrane Variation", "rnbqkbnrpp1ppppp82p52P1P38PP1P1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Wing Gambit", "rnbqkbnrpp1ppppp82p51P2P38P1PP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Wing Gambit, Abrahams Variation", "rnbqkbnrpp1ppppp881p2P38PBPP1PPPRN1QKBNR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Wing Gambit, Carlsbad Variation", "rnbqkbnrpp1ppppp884P3p72PP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Wing Gambit, Marienbad Variation", "rnb1kbnrpp2pppp83q41p6P71BPP1PPPRN1QKBNR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Wing Gambit, Marshall Variation", "rnbqkbnrpp1ppppp881p2P3P72PP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Wing Gambit, Nanu Gambit", "rnb1kbnrpp3ppp4q34p31pP5P2B1N23P1PPPRNBQK2R b KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Wing Gambit, Romanian Defense", "r1b1kbnrpp3ppp2n1q34p31pP5P4N21B1P1PPPRN1QKB1R w KQkq")); + openings.add(new Opening("B20", "Sicilian Defense: Wing Gambit, Santasiere Variation", "rnbqkbnrpp1ppppp881pP1P38P2P1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Coles Sicilian Gambit", "r1bqkb1rpp1ppppp2n2n282B1P38PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Halasz Gambit", "rnbqkbnrpp1ppppp883pPP28PPP3PPRNBQKBNR b KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: McDonnell Attack", "rnbqkbnrpp1ppppp82p54PP28PPPP2PPRNBQKBNR b KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: McDonnell Attack, Tal Gambit", "rnbqkb1rpp2pppp5n22pP45P28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Morphy Gambit", "rnbqkbnrpp1ppppp883pP35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Morphy Gambit, Andreaschek Gambit", "rnbqkbnrpp1p1ppp84p33pP32P2N2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit", "rnbqkbnrpp1ppppp883pP32P5PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit", "rnbqkbnrpp1ppppp82p53PP38PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Accepted, Chicago Defense", "rnbqkb1r1p3pppp2ppn282B1P32N2N2PP3PPPR1BQ1RK1 w kq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Accepted, Classical Formation", "r1bqkb1r1p2ppppp1np1n282B1P32N2N2PP3PPPR1BQ1RK1 w kq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Accepted, Fianchetto Defense", "r1bqkbnrpp1ppp1p2n3p184P32N2N2PP3PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Accepted, Kan Formation", "rnbqkbnr1p1p1pppp3p384P32N2N2PP3PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Accepted, Larsen Defense", "r1b1k1nr1pqp1pppp1nbp382B1P32N2N2PP2QPPPR1B2RK1 w kq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Accepted, Morphy Defense", "r1bqk1nrpp1p1ppp2n1p32b52B1P32N2N2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Accepted, Morphy Defense Deferred", "r1bqk1nr3p1pppp1n1p31pb54P31BN2N2PP3PPPR1BQ1RK1 w kq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Accepted, Paulsen Formation", "r1bqkbnr1p1p1pppp1n1p382B1P32N2N2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Accepted, Pin Defense", "r1bqk1nrpp1p1ppp2n1p381bB1P32N2N2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Accepted, Scheveningen Formation", "r1bqkbnrpp3ppp2npp382B1P32N2N2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Accepted, Sozin Formation", "r1bqkbnr5pppp1npp31p62B1P32N2N2PP2QPPPR1B2RK1 w kq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Accepted, Taimanov Formation", "rnbqkb1r1p1pnpppp3p382B1P32N2N2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Declined, Alapin Formation", "rnbqkb1rpp1ppppp5n283pP32P5PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Declined, Center Formation", "rnbqkbnrpp1p1ppp84p33pP32P5PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Declined, Dubois Variation", "rnbqkbnrpp1ppppp882P1P33p4PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Declined, Push Variation", "rnbqkbnrpp1ppppp884P32Pp4PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Declined, Scandinavian Formation", "rnbqkbnrpp2pppp83p43pP32P5PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit Declined, Wing Formation", "rnb1kbnrpp1ppppp8q73pP32P5PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B21", "Sicilian Defense: Smith-Morra Gambit, Chicago Defense", "2bqkbnrr4pppp1npp31p64P31BN2N2PP2QPPPR1B2RK1 w k")); + openings.add(new Opening("B22", "Sicilian Defense: 2. c3, Heidenfeld Variation", "r1bqkb1rpp1ppppp2n52pnP38N1P2N2PP1P1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B22", "Sicilian Defense: Alapin Variation", "rnbqkbnrpp1ppppp82p54P32P5PP1P1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("B22", "Sicilian Defense: Alapin Variation, Barmen Defense", "rnb1kbnrpp2pppp82pq482P5PP1P1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B22", "Sicilian Defense: Alapin Variation, Barmen Defense, Central Exchange", "r3kbnrpp2pppp2n53q43P2b15N2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B22", "Sicilian Defense: Alapin Variation, Barmen Defense, Endgame Variation", "r3kbnrpp2pppp883n42N2P2PP3P1PR1B1KB1R w KQkq")); + openings.add(new Opening("B22", "Sicilian Defense: Alapin Variation, Barmen Defense, Milner-Barry Attack", "r1b1k1nrpp3ppp2n53qp31b1P42N2N2PP2BPPPR1BQK2R b KQkq")); + openings.add(new Opening("B22", "Sicilian Defense: Alapin Variation, Barmen Defense, Modern Line", "rn2kb1rpp2pppp5n22pq43P2b12P2N2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B22", "Sicilian Defense: Alapin Variation, Sherzer Variation", "r1bqkb1rpp1p1ppp2n1p32pnP33P42P2N2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B22", "Sicilian Defense: Alapin Variation, Smith-Morra Declined", "rnbqkb1rpp1ppppp83nP33p42P5PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("B22", "Sicilian Defense: Alapin Variation, Stoltz Attack", "r1bqkb1rpp1ppppp1nn52p1P381BP2N2PP1P1PPPRNBQK2R b KQkq")); + openings.add(new Opening("B22", "Sicilian Defense: Alapin Variation, Stoltz Attack, Ivanchuk Line", "r1b1kb1rppqppp1p1nn54P1p12p52P2N2PPBPQPPPRNB1K2R w KQkq")); + openings.add(new Opening("B23", "Sicilian Defense: Closed", "rnbqkbnrpp1p1ppp4p32p54P32N5PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B23", "Sicilian Defense: Closed", "rnbqkbnrpp1p1ppp4p32p54P32N3P1PPPP1P1PR1BQKBNR b KQkq")); + openings.add(new Opening("B23", "Sicilian Defense: Closed Variation", "rnbqkbnrpp1ppppp82p54P32N5PPPP1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("B23", "Sicilian Defense: Closed Variation, Chameleon Variation", "r1bqkbnrpp1ppppp2n52p54P32N5PPPPNPPPR1BQKB1R b KQkq")); + openings.add(new Opening("B23", "Sicilian Defense: Closed Variation, Grob Attack", "r1bqkbnrpp1ppppp2n52p54P1P12N5PPPP1P1PR1BQKBNR b KQkq")); + openings.add(new Opening("B23", "Sicilian Defense: Closed Variation, Korchnoi Defense", "rnbqkbnrpp3ppp4p32pp44P32N3P1PPPP1P1PR1BQKBNR w KQkq")); + openings.add(new Opening("B23", "Sicilian Defense: Grand Prix Attack", "r1bqkbnrpp1ppppp2n52p54PP22N5PPPP2PPR1BQKBNR b KQkq")); + openings.add(new Opening("B23", "Sicilian Defense: Grand Prix Attack, Schofman Variation", "r1bqk1nrpp1p1pbp2n1p1p12p2P22B1P32N2N2PPPP2PPR1BQK2R b KQkq")); + openings.add(new Opening("B23", "Sicilian Defense: Marshall Gambit", "rnbqkbnrpp3ppp4p32pp43PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B24", "Sicilian Defense: Closed", "r1bqkbnrpp1ppp1p2n3p12p54P32N3P1PPPP1P1PR1BQKBNR w KQkq")); + openings.add(new Opening("B24", "Sicilian Defense: Closed", "r1bqk1nrpp1pppbp2n3p12p54P32N3P1PPPP1PBPR1BQK1NR w KQkq")); + openings.add(new Opening("B24", "Sicilian Defense: Closed Variation, Fianchetto Variation", "r1bqkbnrpp1ppppp2n52p54P32N3P1PPPP1P1PR1BQKBNR b KQkq")); + openings.add(new Opening("B24", "Sicilian Defense: Closed, Smyslov Variation", "r1bqk1nrpp1p1pbp4p1p12p53nP33PB1P1PPP1NPBPR2QK1NR b KQkq")); + openings.add(new Opening("B25", "Sicilian Defense: Closed", "r1bqk1nrpp2ppbp2np2p12p54P32NP2P1PPP2PBPR1BQK1NR w KQkq")); + openings.add(new Opening("B25", "Sicilian Defense: Closed Variation", "r1bqk1nrpp2ppbp2np2p12p54PP22NP2P1PPP3BPR1BQK1NR b KQkq")); + openings.add(new Opening("B25", "Sicilian Defense: Closed Variation, Botvinnik Defense", "r1bqk1nrpp3pbp2np2p12p1p34PP22NP2P1PPP3BPR1BQK1NR w KQkq")); + openings.add(new Opening("B25", "Sicilian Defense: Closed Variation, Botvinnik Defense", "r1bqk1nrpp3pbp2np2p12p1p34P32NP2P1PPP1NPBPR1BQK2R w KQkq")); + openings.add(new Opening("B25", "Sicilian Defense: Closed Variation, Botvinnik Defense, Edge Variation", "r1bqk2rpp2npbp2np2p12p1p34PP22NP2PNPPP3BPR1BQK2R w KQkq")); + openings.add(new Opening("B25", "Sicilian Defense: Closed Variation, Traditional", "r1bqkbnrpp1ppppp2n52p54P32N5PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("B26", "Sicilian Defense: Closed Variation", "r1bqk1nrpp2ppbp2np2p12p54P32NPB1P1PPP2PBPR2QK1NR b KQkq")); + openings.add(new Opening("B27", "Sicilian Defense", "rnbqkbnrpp1ppppp82p54P35N2PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B27", "Sicilian Defense: Acton Extension", "rnbqk1nrpp1ppp1p6pb2p52P1P35N2PP1P1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B27", "Sicilian Defense: Brussels Gambit", "rnbqkbnrpp1pp1pp82p2p24P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B27", "Sicilian Defense: Buecker Variation", "rnbqkbnrpp1pppp17p2p54P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B27", "Sicilian Defense: Frederico Variation", "rnbqkbnrpp1pp2p6p12p2p23PP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B27", "Sicilian Defense: Hyperaccelerated Dragon", "rnbqkbnrpp1ppp1p6p12p54P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B27", "Sicilian Defense: Hyperaccelerated Pterodactyl", "rnbqk1nrpp1pppbp6p12p53PP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B27", "Sicilian Defense: Hyperaccelerated Pterodactyl, Exchange Variation", "rnb1k1nrpp1ppp1p6p12P54P32q2N2P1P2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B27", "Sicilian Defense: Jalalabad Variation", "rnbqkbnrpp1p1ppp82p1p34P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B27", "Sicilian Defense: Katalimov Variation", "rnbqkbnrp2ppppp1p62p54P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B27", "Sicilian Defense: Mongoose Variation", "rnb1kbnrpp1ppppp8q1p54P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B27", "Sicilian Defense: Polish Gambit", "rnbqkbnrp2ppppp81pp54P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B27", "Sicilian Defense: Quinteros Variation", "rnb1kbnrppqppppp82p54P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: Double-Dutch Gambit", "rnbqkb1rpp1pp1pp7n2p2P285N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation", "rnbqkbnr1p1pppppp72p54P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Aronin System", "rnbqkbnr1p1pppppp72p54P35N2PPPPBPPPRNBQK2R b KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Kieseritzky System", "rnbqkbnr1p1pppppp72p54P31P3N2P1PP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Maróczy Bind", "rnbqkbnr1p1pppppp72p52P1P35N2PP1P1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Maróczy Bind, Geller Line", "r1bqkbnr1p1p1pppp1n54p32PNP38PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Maróczy Bind, Paulsen Line", "rnbqkbnr1p1p1pppp3p32p52P1P35N2PP1P1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Maróczy Bind, Robatsch Line", "rnbqkbnr1p2ppppp2p42p52P1P35N2PP1P1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Normal System", "rnbqkbnr1p1pppppp72p53PP35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Normal System, Cortlever Gambit", "rnbqkbnr1p1pppppp782BpP35N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Normal System, Smith-Morra Line", "rnbqkbnr1p1pppppp783pP32P2N2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Normal System, Taimanov Line", "rnbqkbnr1p1p1pppp74p33NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Normal System, Zagorovsky Line", "rnbqkbnr1p1pppppp783QP35N2PPP2PPPRNB1KB1R b KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Quiet System", "rnbqkbnr1p1pppppp72p54P33P1N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Réti System", "rnbqkbnr1p1pppppp72p54P35NP1PPPP1P1PRNBQKB1R b KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Venice System", "rnbqkbnr1p1pppppp72p54P32P2N2PP1P1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Venice System, Barcza Line", "rnbqkb1r1p1pppppp4n22p54P32P2N2PP1P1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Venice System, Gambit Line", "rnbqkb1r1p2ppppp4n22pP482P2N2PP1P1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Venice System, Ljubojevic Line", "rnbqkbnr3pppppp71pp54P32P2N2PP1P1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Venice System, Steiner Line", "rnbqkbnr1p2ppppp2p42p54P32P2N2PP1P1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Wing Gambit", "rnbqkbnr1p1pppppp72p51P2P35N2P1PP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B28", "Sicilian Defense: O'Kelly Variation, Yerevan System", "rnbqkbnr1p1pppppp72p54P32N2N2PPPP1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B29", "Sicilian Defense: Nimzowitsch Variation", "rnbqkb1rpp1ppppp5n22p54P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B29", "Sicilian Defense: Nimzowitsch Variation, Advance Variation", "rnbqkb1rpp1ppppp5n22p1P385N2PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B29", "Sicilian Defense: Nimzowitsch Variation, Closed Variation", "rnbqkb1rpp1ppppp5n22p54P32N2N2PPPP1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B29", "Sicilian Defense: Nimzowitsch Variation, Exchange Variation", "rnbqkb1rpp1ppppp82p1P382n2N2PPPP1PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B29", "Sicilian Defense: Nimzowitsch Variation, Main Line", "r1bqkb1rpp1p1ppp2n52ppP33P45N2PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B30", "Sicilian Defense: Closed Sicilian, Anti-Sveshnikov Variation, Kharlov-Kramnik Line", "r1bqk1nrpp3ppp2np42p1p1b12B1P32NP4PPPN1PPPR1BQK2R w KQkq")); + openings.add(new Opening("B30", "Sicilian Defense: Nyezhmetdinov-Rossolimo Attack", "r1bqkbnrpp1ppppp2n51Bp54P35N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("B30", "Sicilian Defense: Old Sicilian", "r1bqkbnrpp1ppppp2n52p54P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B31", "Sicilian Defense: Nyezhmetdinov-Rossolimo Attack, Fianchetto Variation", "r1bqkbnrpp1ppp1p2n3p11Bp54P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("B31", "Sicilian Defense: Nyezhmetdinov-Rossolimo Attack, Fianchetto Variation, Gufeld Gambit", "r1bqk1nrpp1p1pbp2n3p11Bp1p33PP32P2N2PP3PPPRNBQ1RK1 b kq")); + openings.add(new Opening("B31", "Sicilian Defense: Nyezhmetdinov-Rossolimo Attack, Fianchetto Variation, Lutikov Gambit", "r1bqk2rpp1pppbp2n2np11Bp53PP32P2N2PP3PPPRNBQ1RK1 b kq")); + openings.add(new Opening("B31", "Sicilian Defense: Nyezhmetdinov-Rossolimo Attack, Fianchetto Variation, Totsky Attack", "r1bqk2rpp1pppbp2n2np11Bp5Q3P32P2N2PP1P1PPPRNB2RK1 b kq")); + openings.add(new Opening("B31", "Sicilian Defense: Nyezhmetdinov-Rossolimo Attack, Gurgenidze Variation", "r1bqk1nrpp1p1pbp2n3p11Bp1p31P2P35N2P1PP1PPPRNBQR1K1 b kq")); + openings.add(new Opening("B31", "Sicilian Defense: Nyezhmetdinov-Rossolimo Attack, San Francisco Gambit", "r1bqkbnrpp1ppppp8nBp51P2P35N2P1PP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("B31", "Sicilian Defense: Rossolimo Variation, Brooklyn Retreat Defense", "rnbqkbnrpp1ppppp81Bp54P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("B32", "Sicilian Defense: Flohr Variation", "r1b1kbnrppqppppp2n583NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B32", "Sicilian Defense: Franco-Sicilian Variation", "r1bqkbnrpp1p1ppp2n1p32p53PP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B32", "Sicilian Defense: Godiva Variation", "r1b1kbnrpp1ppppp1qn583NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B32", "Sicilian Defense: Kalashnikov Variation", "r1bqkbnrpp3ppp2np41N2p34P38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B32", "Sicilian Defense: Loewenthal Variation", "r1bqkbnrpp1p1ppp2n54p33NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B32", "Sicilian Defense: Nimzo-American Variation", "r1bqkbnrpp2pppp2n53p43NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B32", "Sicilian Defense: Open", "r1bqkbnrpp1ppppp2n52p53PP35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B32", "Sicilian Defense: Open", "r1bqkbnrpp1ppppp2n583pP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B32", "Sicilian Defense: Open", "r1bqkbnrpp1ppppp2n583NP38PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B33", "Sicilian Defense: Lasker-Pelikan Variation", "r1bqkb1rpp1p1ppp2n2n24p33NP32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B33", "Sicilian Defense: Lasker-Pelikan Variation, Bird Variation", "r2qkb1r1p3pppp1npbn24p1B14P3N1N5PPP2PPPR2QKB1R w KQkq")); + openings.add(new Opening("B33", "Sicilian Defense: Lasker-Pelikan Variation, Exchange Variation", "r1bqkb1rpp1p1ppp2N2n24p34P32N5PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B33", "Sicilian Defense: Lasker-Pelikan Variation, Retreat Variation", "r1bqkb1rpp1p1ppp2n2n24p34P32N2N2PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B33", "Sicilian Defense: Lasker-Pelikan Variation, Schlechter Variation", "r1bqkb1rpp1p1ppp2n2n24p34P31NN5PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B33", "Sicilian Defense: Lasker-Pelikan Variation, Sveshnikov Variation", "r1bqkb1r5pppp1np1n21p2p1B14P3N1N5PPP2PPPR2QKB1R w KQkq")); + openings.add(new Opening("B33", "Sicilian Defense: Lasker-Pelikan Variation, Sveshnikov Variation", "r1bqkb1r5p1pp1np41p1Npp24P3N7PPP2PPPR2QKB1R w KQkq")); + openings.add(new Opening("B33", "Sicilian Defense: Lasker-Pelikan Variation, Sveshnikov Variation, Chelyabinsk Variation", "r1bqkb1r5pppp1np1n21p1Np1B14P3N7PPP2PPPR2QKB1R b KQkq")); + openings.add(new Opening("B33", "Sicilian Defense: Lasker-Pelikan Variation, Sveshnikov Variation, Novosibirsk Variation", "r1bqk2r5pbpp1np1p21p1Np34P3N7PPP2PPPR2QKB1R w KQkq")); + openings.add(new Opening("B33", "Sicilian Defense: Lasker-Pelikan Variation, Sveshnikov Variation, Peresypkin's Sacrifice", "r1bqkb1r5p1pp1np41B1Npp24P3N7PPP2PPPR2QK2R b KQkq")); + openings.add(new Opening("B33", "Sicilian Defense: Open", "r1bqkb1rpp1ppppp2n2n283NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B34", "Sicilian Defense: Accelerated Dragon", "rnbqkbnrpp2pp1p3p2p183NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B34", "Sicilian Defense: Accelerated Dragon, Exchange Variation", "r1bqkbnrpp1ppp1p2N3p184P38PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B34", "Sicilian Defense: Accelerated Dragon, Modern Variation", "r1bqkbnrpp1ppp1p2n3p183NP32N5PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B35", "Sicilian Defense: Accelerated Dragon, Modern Bc4 Variation", "r1bqk2rpp1pppbp2n2np182BNP32N1B3PPP2PPPR2QK2R b KQkq")); + openings.add(new Opening("B35", "Sicilian Defense: Dragon Variation, Modern Bc4 Variation", "r1bqk2rpp2ppbp2np1np182BNP32N1B3PPP2PPPR2QK2R w KQkq")); + openings.add(new Opening("B36", "Sicilian Defense: Accelerated Dragon", "r1bqkbnrpp1ppp1p2n3p183NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B36", "Sicilian Defense: Accelerated Dragon, Maróczy Bind", "r1bqkbnrpp1ppp1p2n3p182PNP38PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B36", "Sicilian Defense: Accelerated Dragon, Maróczy Bind, Gurgenidze Variation", "r1bqkb1rpp2pp1p3p1np182PQP32N5PP3PPPR1B1KB1R w KQkq")); + openings.add(new Opening("B37", "Sicilian Defense: Accelerated Fianchetto, Maróczy Bind, 5... Bg7", "r1bqk1nrpp1pppbp2n3p182PNP38PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B37", "Sicilian Defense: Accelerated Fianchetto, Simagin Variation", "r1bqk2rpp2ppbp2np2pn82P1P38PPN1BPPPRNBQK2R w KQkq")); + openings.add(new Opening("B38", "Sicilian Defense: Accelerated Dragon, Maróczy Bind", "r1bqk1nrpp1pppbp2n3p182PNP34B3PP3PPPRN1QKB1R b KQkq")); + openings.add(new Opening("B39", "Sicilian Defense: Accelerated Dragon, Maróczy Bind, Breyer Variation", "r1bqk2rpp1pppbp2n3p182PNP1n12N1B3PP3PPPR2QKB1R w KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: Delayed Alapin Variation", "rnbqkbnrpp1p1ppp4p32p54P32P2N2PP1P1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: Drazic Variation", "rnbqkbnr1p1p1pppp3p32p53PP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: French Variation", "rnbqkbnrpp1p1ppp4p32p54P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: French Variation, Normal", "rnbqkb1rpp1p1ppp4pn283NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: French Variation, Open", "rnbqkbnrpp1p1ppp4p383pP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: French Variation, Westerinen Attack", "rnbqkbnrpp1p1ppp4p32p54P31P3N2P1PP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: Gaw-Paw Variation", "rnb1kb1rpp1p1ppp1q2pn283NP32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: Kramnik Variation", "rnbqkbnrpp1p1ppp4p32p52P1P35N2PP1P1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: Kveinis Variation", "rnb1kbnrpp1p1ppp1q2p383NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: Marshall Counterattack", "rnbqkbnrpp3ppp4p32pp43PP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: Paulsen-Basman Defense", "rnbqk1nrpp1p1ppp4p32b53NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: Pin Variation", "rnbqk2rpp1p1ppp4pn281b1NP32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: Pin Variation, Jaffe Variation", "rnbqk2rpp1p1ppp5n24p31b1NP32NB4PPP2PPPR1BQK2R w KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: Pin Variation, Koch Variation", "rnbqk2rpp1p1ppp4pn24P31b1N42N5PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: Smith-Morra Gambit Deferred", "rnbqkbnrpp1p1ppp4p383pP32P2N2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B40", "Sicilian Defense: Wing Gambit Deferred", "rnbqkbnrpp1p1ppp4p32p51P2P35N2P1PP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B41", "Sicilian Defense: Kan Variation", "rnbqkbnr1p1p1pppp3p383NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B41", "Sicilian Defense: Kan Variation, Maróczy Bind, Bronstein Variation", "r1bqk2r1p1p1pppp1n1pn281bPNP32NB4PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("B41", "Sicilian Defense: Kan Variation, Maróczy Bind, Hedgehog Variation", "rnbqkbnr1p1p1p1pp3p1p182PNP38PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B41", "Sicilian Defense: Kan Variation, Maróczy Bind, Réti Variation", "rnbqkbnr1p1p1pppp3p382PNP38PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B41", "Sicilian Defense: Kan, Maróczy Bind, Bronstein Variation", "r1bqk2r1p1p1pppp1n1pn281bPNP32N5PPB2PPPR1BQK2R b KQkq")); + openings.add(new Opening("B42", "Sicilian Defense: Kan Variation, Modern Variation", "rnbqkbnr1p1p1pppp3p383NP33B4PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("B42", "Sicilian Defense: Kan Variation, Polugaevsky Variation", "rnbqk1nr1p1p1pppp3p32b53NP33B4PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("B42", "Sicilian Defense: Kan Variation, Swiss Cheese Variation", "rnbqkbnr1p1p1p1pp3p1p183NP33B4PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("B42", "Sicilian Defense: Kan, Gipslis Variation", "rnbqkb1r1p3p1pp2ppnp182PNP33B4PP3PPPRNBQ1RK1 w kq")); + openings.add(new Opening("B43", "Sicilian Defense: Kan Variation, Knight Variation", "rnbqkbnr1p1p1pppp3p383NP32N5PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B43", "Sicilian Defense: Kan Variation, Wing Attack", "rnbqkbnr3p1pppp3p31p63NP32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B43", "Sicilian Defense: Kan Variation, Wing Attack, Christiansen's Dream", "rnb1k1nr3p1ppppq2p31pb53NP1Q12NBB3PPP2PPPR3K2R b KQkq")); + openings.add(new Opening("B43", "Sicilian Defense: Kan Variation, Wing Attack, Fianchetto Variation", "rnbqkbnr3p1pppp3p31p63NP32N3P1PPP2P1PR1BQKB1R b KQkq")); + openings.add(new Opening("B43", "Sicilian Defense: Kan Variation, Wing Attack, Spraggett Attack", "rnb1kbnr3p1ppppq2p31p64P32NB1N2PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("B44", "Sicilian Defense: Paulsen Variation", "r1bqkbnrpp1p1ppp2n1p383NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B44", "Sicilian Defense: Paulsen Variation, Gary Gambit", "r1bqkb1r1p3pppp1n1pn23p42P1P3N1N5PP3PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B44", "Sicilian Defense: Paulsen Variation, Modern Line", "r1bq1rk14bpppppnppn282P1P3N1N5PP2BPPPR1BQ1RK1 w -")); + openings.add(new Opening("B44", "Sicilian Defense: Paulsen Variation, Szén Variation", "r1bqkbnrpp1p1ppp2n1p31N64P38PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B45", "Sicilian Defense: Four Knights Variation", "r1bqkb1rpp1p1ppp2n1pn283NP32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B45", "Sicilian Defense: Four Knights Variation, Cobra Variation", "r1bqk2rpp1p1ppp2n1pn21Nb54P32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B45", "Sicilian Defense: Four Knights Variation, Exchange Variation", "r1bqkb1rpp1p1ppp2N1pn284P32N5PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B45", "Sicilian Defense: Paulsen Variation, American Attack", "r1bqk2rpp1p1ppp2nNpn281b2P32N5PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B45", "Sicilian Defense: Paulsen Variation, Normal Variation", "r1bqkbnrpp1p1ppp2n1p383NP32N5PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B46", "Sicilian Defense: Paulsen Variation", "r1bqkbnr1p1p1pppp1n1p383NP32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B46", "Sicilian Defense: Paulsen Variation, Taimanov Variation", "r1bqkb1r1p1pnpppp1n1p383NP32N5PPP1BPPPR1BQK2R w KQkq")); + openings.add(new Opening("B47", "Sicilian Defense: Paulsen Variation, Bastrikov Variation", "r1b1kbnrppqp1ppp2n1p383NP32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B48", "Sicilian Defense: Paulsen Variation, Bastrikov Variation", "r1b1kbnrppqp1ppp2n1p383NP32N1B3PPP2PPPR2QKB1R b KQkq")); + openings.add(new Opening("B48", "Sicilian Defense: Paulsen Variation, Bastrikov Variation, English Attack", "r1b1kbnr1pqp1pppp1n1p383NP32N1B3PPPQ1PPPR3KB1R b KQkq")); + openings.add(new Opening("B48", "Sicilian Defense: Paulsen Variation, Bastrikov Variation, Ponomariov Gambit", "rqb1kbnr1p1p1ppppBn1p31N64P32N5PPP2PPPR2QKB1R b KQkq")); + openings.add(new Opening("B49", "Sicilian Defense: Paulsen Variation, Bastrikov Variation", "r1b1kbnr1pqp1pppp1n1p383NP32N1B3PPP1BPPPR2QK2R b KQkq")); + openings.add(new Opening("B49", "Sicilian Defense: Paulsen Variation, Bastrikov Variation, English Attack", "r1b1kbnr1pqp1pppp1n1p383NP32N1BP2PPP3PPR2QKB1R b KQkq")); + openings.add(new Opening("B50", "Sicilian Defense", "rnbqkbnrpp2pppp3p42p54P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B50", "Sicilian Defense: Delayed Alapin", "rnbqkbnrpp2pppp3p42p54P32P2N2PP1P1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B50", "Sicilian Defense: Delayed Alapin, Basman-Palatnik Double Gambit", "r1b1kb1rpp2pppp2np4q2P482P2N2P3BPPPR1BQK2R b KQkq")); + openings.add(new Opening("B50", "Sicilian Defense: Delayed Alapin, Basman-Palatnik Gambit", "r1bqkb1rpp2pppp2np483Pn35N2PP2BPPPRNBQK2R w KQkq")); + openings.add(new Opening("B50", "Sicilian Defense: Kotov Gambit", "rnbqkbnrp3pppp3p41pp54P35NP1PPPP1P1PRNBQKB1R w KQkq")); + openings.add(new Opening("B50", "Sicilian Defense: Modern Variations, Anti-Qxd4 Move Order", "rnbqkb1rpp2pppp3p1n22p53PP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B50", "Sicilian Defense: Modern Variations, Anti-Qxd4 Move Order Accepted", "rnbqkb1rpp2pppp3p42P54n35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B50", "Sicilian Defense: Wing Gambit, Deferred Variation", "rnbqkbnrpp2pppp3p42p51P2P35N2P1PP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B51", "Sicilian Defense: Canal Attack, Haag Gambit", "r3kb1rpp1qpppp2np1n22p53PP32P2N2PP3PPPRNBQ1RK1 b kq")); + openings.add(new Opening("B51", "Sicilian Defense: Canal Attack, Moscow Gambit", "r2qkb1r1p2ppppp2p1n22p3B13Pb32P2N2PP3PPPRN1QR1K1 b kq")); + openings.add(new Opening("B51", "Sicilian Defense: Canal-Sokolsky Attack", "rnbqkbnrpp2pppp3p41Bp54P35N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("B52", "Sicilian Defense: Canal Attack, Dorfman Gambit", "r2qkbnrpp1bpp1p2np2p11Bp1P385N2PPPPQPPPRNB2RK1 b kq")); + openings.add(new Opening("B52", "Sicilian Defense: Canal Attack, Main Line", "rn1qkbnrpp1bpppp3p41Bp54P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("B52", "Sicilian Defense: Canal-Sokolsky Attack, Sokolsky Variation", "rn2kbnrpp1qpppp3p42p52P1P35N2PP1P1PPPRNBQK2R b KQkq")); + openings.add(new Opening("B53", "Sicilian Defense: Chekhover Variation", "rnbqkbnrpp2pppp3p483QP35N2PPP2PPPRNB1KB1R b KQkq")); + openings.add(new Opening("B53", "Sicilian Defense: Chekhover Variation, Zaitsev Defense", "r1b1kbnrpp1qpppp2np41B63QP35N2PPP2PPPRNB1K2R w KQkq")); + openings.add(new Opening("B53", "Sicilian Defense: Modern Variations, Tartakower", "rnbqkbnrpp2pppp3p483pP32P2N2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B54", "Sicilian Defense", "rnbqkbnrpp2pppp3p42p53PP35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("B54", "Sicilian Defense", "rnbqkbnrpp2pppp3p483pP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B54", "Sicilian Defense: Prins Variation", "rnbqkb1rpp2pppp3p1n283NP35P2PPP3PPRNBQKB1R b KQkq")); + openings.add(new Opening("B55", "Sicilian Defense: Prins Variation, Venice Attack", "rnbqkb1rpp3ppp3p1n21B2p33NP35P2PPP3PPRNBQK2R b KQkq")); + openings.add(new Opening("B56", "Sicilian Defense: Classical Variation", "r1bqkb1rpp2pppp2np1n283NP32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B56", "Sicilian Defense: Kupreichik Variation", "rn1qkb1rpp1bpppp3p1n283NP32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B56", "Sicilian Defense: Modern Variations", "rnbqkb1rpp2pppp3p1n283NP32N5PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("B56", "Sicilian Defense: Spielmann Variation", "r1bqkb1rpp2pppp2np1n284P32N5PPP1NPPPR1BQKB1R b KQkq")); + openings.add(new Opening("B56", "Sicilian Defense: Venice Attack", "rnbqkb1rpp3ppp3p1n21B2p33NP32N5PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("B56", "Sicilian Defense: Yates Variation", "r1bqkb1rpp2pppp2np1n283NP32NB4PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("B57", "Sicilian Defense: Classical Variation, Anti-Sozin Variation", "r1b1kb1rpp2pppp1qnp1n282BNP32N5PPP2PPPR1BQK2R w KQkq")); + openings.add(new Opening("B57", "Sicilian Defense: Magnus Smith Trap", "r1bqkb1rp3pp1p2pp1np14P32B52N5PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("B57", "Sicilian Defense: Modern Variations, Main Line", "rnbqkb1rpp2pppp3p1n283NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("B57", "Sicilian Defense: Sozin, not Scheveningen", "r1bqkb1rpp2pppp2np1n282BNP32N5PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("B58", "Sicilian Defense: Boleslavsky Variation", "r1bqkb1rpp3ppp2np1n24p33NP32N5PPP1BPPPR1BQK2R w KQkq")); + openings.add(new Opening("B58", "Sicilian Defense: Boleslavsky Variation, Louma Variation", "r1bqkb1rpp3ppp2Np1n24p34P32N5PPP1BPPPR1BQK2R b KQkq")); + openings.add(new Opening("B58", "Sicilian Defense: Classical Variation", "r1bqkb1rpp2pppp2np1n283NP32N5PPP1BPPPR1BQK2R b KQkq")); + openings.add(new Opening("B58", "Sicilian Defense: Classical Variation, Dragon Transfer", "r1bqkb1rpp2pp1p3p1np183QP32N5PPP1BPPPR1B1K2R w KQkq")); + openings.add(new Opening("B58", "Sicilian Defense: Classical Variation, Fianchetto Variation", "r1bqkb1rpp2pppp2np1n283NP32N3P1PPP2P1PR1BQKB1R b KQkq")); + openings.add(new Opening("B59", "Sicilian Defense: Boleslavsky Variation", "r1bqkb1rpp3ppp2np1n24p34P31NN5PPP1BPPPR1BQK2R b KQkq")); + openings.add(new Opening("B60", "Sicilian Defense: Richter-Rauzer Variation", "r1bqkb1rpp2pppp2np1n26B13NP32N5PPP2PPPR2QKB1R b KQkq")); + openings.add(new Opening("B60", "Sicilian Defense: Richter-Rauzer Variation, Dragon Variation", "r1bqkb1rpp2pp1p2np1np16B13NP32N5PPP2PPPR2QKB1R w KQkq")); + openings.add(new Opening("B60", "Sicilian Defense: Richter-Rauzer Variation, Modern Variation", "r2qkb1rpp1bpppp2np1n26B13NP32N5PPP2PPPR2QKB1R w KQkq")); + openings.add(new Opening("B61", "Sicilian Defense: Richter-Rauzer Variation, Modern Variation", "r2qkb1rpp1bpppp2np1n26B13NP32N5PPPQ1PPPR3KB1R b KQkq")); + openings.add(new Opening("B62", "Sicilian Defense: Richter-Rauzer Variation", "r1bqkb1rpp3ppp2nppn26B13NP32NQ4PPP2PPPR3KB1R b KQkq")); + openings.add(new Opening("B62", "Sicilian Defense: Richter-Rauzer Variation, Exchange Variation", "r1bqkb1rpp3ppp2Nppn26B14P32N5PPP2PPPR2QKB1R b KQkq")); + openings.add(new Opening("B62", "Sicilian Defense: Richter-Rauzer Variation, Neo-Modern Variation, Early Deviations", "r1bqkb1r1p3pppp1nppn26B13NP32N5PPPQ1PPPR3KB1R w KQkq")); + openings.add(new Opening("B62", "Sicilian Defense: Richter-Rauzer Variation, Podebrady Variation", "r1bqkb1rpp3ppp2nppn26B14P31NN5PPP2PPPR2QKB1R b KQkq")); + openings.add(new Opening("B62", "Sicilian Defense: Richter-Rauzer Variation, Vitolins Variation", "r1bqkb1rpp3ppp2nppn21B4B13NP32N5PPP2PPPR2QK2R b KQkq")); + openings.add(new Opening("B62", "Sicilian Defense: Richter-Rauzer, 6... e6", "r1bqkb1rpp3ppp2nppn26B13NP32N5PPP2PPPR2QKB1R w KQkq")); + openings.add(new Opening("B63", "Sicilian Defense: Richter-Rauzer Variation, Classical Variation", "r1bqk2rpp2bppp2nppn26B13NP32N5PPPQ1PPPR3KB1R w KQkq")); + openings.add(new Opening("B63", "Sicilian Defense: Richter-Rauzer Variation, Ivanov Variation", "r1b1kb1rpp3ppp1qnppn26B13NP32N5PPPQ1PPPR3KB1R w KQkq")); + openings.add(new Opening("B63", "Sicilian Defense: Richter-Rauzer Variation, Traditional Variation", "r1bqkb1rpp3ppp2nppn26B13NP32N5PPPQ1PPPR3KB1R b KQkq")); + openings.add(new Opening("B64", "Sicilian Defense: Richter-Rauzer Variation, Classical Variation", "r1bq1rk1pp2bppp2nppn26B13NPP22N5PPPQ2PP2KR1B1R b -")); + openings.add(new Opening("B64", "Sicilian Defense: Richter-Rauzer Variation, Classical Variation", "r1bq1rk1pp2bppp2np1n24p1B13NPP22N5PPPQ2PP2KR1B1R w -")); + openings.add(new Opening("B65", "Sicilian Defense: Richter-Rauzer Variation, Classical Variation", "r1bq1rk1pp2bppp3ppn26B13QPP22N5PPP3PP2KR1B1R b -")); + openings.add(new Opening("B65", "Sicilian Defense: Richter-Rauzer, Rauzer Attack, 7... Be7 Defense: 9... Nxd4", "r1bq1rk1pp2bppp3ppn26B13nPP22N5PPPQ2PP2KR1B1R w -")); + openings.add(new Opening("B66", "Sicilian Defense: Richter-Rauzer Variation, Classical Variation, Kantscher Line", "r1bqk2r4bpppp2ppn21p4B13QPP22N5PPP3PP2KR1B1R w kq")); + openings.add(new Opening("B67", "Sicilian Defense: Richter-Rauzer Variation, Neo-Modern Variation", "r2qkb1r1p1b1pppp1nppn26B13NP32N5PPPQ1PPP2KR1B1R w kq")); + openings.add(new Opening("B68", "Sicilian Defense: Richter-Rauzer Variation, Neo-Modern Variation", "r2qk2r1p1bbpppp1nppn26B13NPP22N5PPPQ2PP2KR1B1R w kq")); + openings.add(new Opening("B69", "Sicilian Defense: Richter-Rauzer Variation, Neo-Modern Variation, Nyezhmetdinov Attack", "r2qk2r3bbpppp1nppB21p64PP22N2N2PPPQ2PP2KR1B1R b kq")); + openings.add(new Opening("B70", "Sicilian Defense: Dragon Variation", "rnbqkb1rpp2pp1p3p1np183NP32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B70", "Sicilian Defense: Dragon Variation, Fianchetto Variation", "rnbqkb1rpp2pp1p3p1np183NP32N3P1PPP2P1PR1BQKB1R b KQkq")); + openings.add(new Opening("B71", "Sicilian Defense: Dragon Variation, Levenfish Variation", "rnbqkb1rpp2pp1p3p1np183NPP22N5PPP3PPR1BQKB1R b KQkq")); + openings.add(new Opening("B71", "Sicilian Defense: Dragon Variation, Levenfish Variation, Main Line", "r1bqkb1rpp1npp1p3p1np183NPP22N5PPP3PPR1BQKB1R w KQkq")); + openings.add(new Opening("B72", "Sicilian Defense: Dragon Variation, Classical Variation", "r1bqk2rpp2ppbp2np1np184P31NN1B3PPP1BPPPR2QK2R b KQkq")); + openings.add(new Opening("B72", "Sicilian Defense: Dragon Variation, Classical Variation", "rnbqkb1rpp2pp1p3p1np183NP32N5PPP1BPPPR1BQK2R b KQkq")); + openings.add(new Opening("B72", "Sicilian Defense: Dragon, 6. Be3", "rnbqkb1rpp2pp1p3p1np183NP32N1B3PPP2PPPR2QKB1R b KQkq")); + openings.add(new Opening("B72", "Sicilian Defense: Dragon, Classical Attack", "rnbqk2rpp2ppbp3p1np183NP32N1B3PPP1BPPPR2QK2R b KQkq")); + openings.add(new Opening("B72", "Sicilian Defense: Dragon, Classical, Amsterdam Variation", "r1bqk2rpp2ppbp2np1np183NP32N1B3PPPQBPPPR3K2R b KQkq")); + openings.add(new Opening("B72", "Sicilian Defense: Dragon, Classical, Grigoriev Variation", "r1bq1rk1pp2ppbp2np1np183NP32N1B3PPPQBPPP2KR3R b -")); + openings.add(new Opening("B73", "Sicilian Defense: Dragon Variation, Classical Variation", "r1bqk2rpp2ppbp2np1np183NP32N1B3PPP1BPPPR2Q1RK1 b kq")); + openings.add(new Opening("B73", "Sicilian Defense: Dragon Variation, Classical Variation", "r1bqk2rpp2ppbp2np1np183NP32N1B3PPP1BPPPR2QK2R w KQkq")); + openings.add(new Opening("B73", "Sicilian Defense: Dragon Variation, Classical Variation, Battery Variation", "r1bq1rk1pp2ppbp2np1np183NP32N1B3PPPQBPPPR4RK1 b -")); + openings.add(new Opening("B73", "Sicilian Defense: Dragon, Classical, Zollner Gambit", "r1b2rk1pp2ppbp1qnp1np14P33N1P22N1B3PPP1B1PPR2Q1RK1 b -")); + openings.add(new Opening("B74", "Sicilian Defense: Dragon Variation, Classical Variation, Alekhine Line", "r1bq1rk11p2ppbp2np1np1p74P31NN1B3PPP1BPPPR2Q1RK1 w -")); + openings.add(new Opening("B74", "Sicilian Defense: Dragon Variation, Classical Variation, Maróczy Line", "r2q1rk1pp2ppbp3pbnp1n74PP21NN1B3PPP1B1PPR2Q1RK1 w -")); + openings.add(new Opening("B74", "Sicilian Defense: Dragon Variation, Classical Variation, Normal Line", "r1bq1rk1pp2ppbp2np1np184P31NN1B3PPP1BPPPR2Q1RK1 b -")); + openings.add(new Opening("B74", "Sicilian Defense: Dragon Variation, Classical Variation, Stockholm Attack", "r4rk1pp2ppbp3p1np1q4P24P1P12N1B3PPP1Q2PR4RK1 b -")); + openings.add(new Opening("B74", "Sicilian Defense: Dragon Variation, Classical Variation, Tartakower Line", "r1q2rk1pp2ppbp2npbnp184PP21NN1B3PPP1B1PPR2Q1RK1 w -")); + openings.add(new Opening("B74", "Sicilian Defense: Dragon, Classical, Bernard Defense", "r2q1rk1pp2ppbp5np1n2p1P24P31NNPB3PP4PPR2Q1RK1 w -")); + openings.add(new Opening("B74", "Sicilian Defense: Dragon, Classical, Spielmann Variation", "r2q1rk1pp2ppbp3p1np1n4P22b1P31NNBB3PPP3PPR2Q1RK1 b -")); + openings.add(new Opening("B75", "Sicilian Defense: Dragon Variation, Yugoslav Attack, Early Deviations", "rnbqk2rpp2ppbp3p1np183NP32N1BP2PPP3PPR2QKB1R b KQkq")); + openings.add(new Opening("B76", "Sicilian Defense: Dragon Variation, Yugoslav Attack", "rnbq1rk1pp2ppbp3p1np183NP32N1BP2PPP3PPR2QKB1R w KQ")); + openings.add(new Opening("B76", "Sicilian Defense: Dragon Variation, Yugoslav Attack, Belezky Line", "r1bqk2rpp2ppbp2np1np183NP32N1BP2PPP3PPR2QKB1R w KQkq")); + openings.add(new Opening("B76", "Sicilian Defense: Dragon Variation, Yugoslav Attack, Modern Line", "r1bq1rk1pp2ppbp2np1np183NP32N1BP2PPPQ2PP2KR1B1R b -")); + openings.add(new Opening("B76", "Sicilian Defense: Dragon Variation, Yugoslav Attack, Panov Variation", "r1bq1rk1pp2ppbp2np1np183NP1P12N1BP2PPPQ3PR3KB1R b KQ")); + openings.add(new Opening("B77", "Sicilian Defense: Dragon Variation, Yugoslav Attack", "r2q1rk1pp1bppbp2np1np182BNP32N1BP2PPPQ2PPR3K2R w KQ")); + openings.add(new Opening("B77", "Sicilian Defense: Dragon Variation, Yugoslav Attack", "r1bq1rk1pp2ppbp2np1np183NP32N1BP2PPPQ2PPR3KB1R w KQ")); + openings.add(new Opening("B77", "Sicilian Defense: Dragon Variation, Yugoslav Attack, Czerniak Variation", "r2q1rk1pp2ppbp3pbnp182BBP32N2P2PPPQ2PPR3K2R w KQ")); + openings.add(new Opening("B77", "Sicilian Defense: Dragon Variation, Yugoslav Attack, Main Line", "r1bq1rk1pp2ppbp2np1np182BNP32N1BP2PPPQ2PPR3K2R b KQ")); + openings.add(new Opening("B77", "Sicilian Defense: Dragon Variation, Yugoslav Attack, Sosonko Variation", "r1bq1rk1pp1nppbp2np2p182BNP32N1BP2PPPQ2PPR3K2R w KQ")); + openings.add(new Opening("B77", "Sicilian Defense: Dragon, Yugoslav Attack, Byrne Variation", "r1bq1rk11p2ppbp2np1np1p72BNP32N1BP2PPPQ2PPR3K2R w KQ")); + openings.add(new Opening("B78", "Sicilian Defense: Dragon Variation, Yugoslav Attack", "r2q1rk1pp1bppbp2np1np182BNP32N1BP2PPPQ2PP2KR3R b -")); + openings.add(new Opening("B78", "Sicilian Defense: Dragon Variation, Yugoslav Attack, Old Line", "2rq1rk1pp1bppbp2np1np182BNP32N1BP2PPPQ2PP2KR3R w -")); + openings.add(new Opening("B79", "Sicilian Defense: Dragon Variation, Yugoslav Attack, Soltis Variation", "r1r3k1pp1bppb12np1np1q6p3NP2P1BN1BP2PPPQ2P12KR3R w -")); + openings.add(new Opening("B79", "Sicilian Defense: Dragon, Yugoslav Attack, 12. h4", "r1r3k1pp1bppbp2np1np1q73NP2P1BN1BP2PPPQ2P12KR3R b -")); + openings.add(new Opening("B80", "Sicilian Defense: Scheveningen Variation", "rnbqkb1rpp3ppp3ppn283NP32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B80", "Sicilian Defense: Scheveningen Variation, English Attack", "rnbqkb1r1p3pppp2ppn283NP32N1B3PPPQ1PPPR3KB1R b KQkq")); + openings.add(new Opening("B80", "Sicilian Defense: Scheveningen Variation, English Attack", "rnbqkb1r1p3pppp2ppn283NP32N1BP2PPP3PPR2QKB1R b KQkq")); + openings.add(new Opening("B80", "Sicilian Defense: Scheveningen Variation, Fianchetto Variation", "rnbqkb1rpp3ppp3ppn283NP32N3P1PPP2P1PR1BQKB1R b KQkq")); + openings.add(new Opening("B80", "Sicilian Defense: Scheveningen Variation, Vitolins Variation", "rnbqkb1rpp3ppp3ppn21B63NP32N5PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("B81", "Sicilian Defense: Scheveningen Variation, Delayed Keres Attack", "rnbqkb1r1p3pppp2ppn283NP1P12N1B3PPP2P1PR2QKB1R b KQkq")); + openings.add(new Opening("B81", "Sicilian Defense: Scheveningen Variation, Delayed Keres Attack, Perenyi Gambit", "rnbqkb1r1p3p1pp2p1np14pNP14P32N1B3PPP2P1PR2QKB1R b KQkq")); + openings.add(new Opening("B81", "Sicilian Defense: Scheveningen Variation, Keres Attack", "rnbqkb1rpp3ppp3ppn283NP1P12N5PPP2P1PR1BQKB1R b KQkq")); + openings.add(new Opening("B82", "Sicilian Defense: Scheveningen Variation, Matanovic Attack", "rnbqkb1rpp3ppp3ppn283NPP22N5PPP3PPR1BQKB1R b KQkq")); + openings.add(new Opening("B82", "Sicilian Defense: Scheveningen Variation, Tal Variation", "r1bqk2rpp2bppp2nppn283NPP22N1BQ2PPP3PPR3KB1R b KQkq")); + openings.add(new Opening("B83", "Sicilian Defense: Scheveningen Variation, Classical Variation", "rnbqkb1rpp3ppp3ppn283NP32N5PPP1BPPPR1BQK2R b KQkq")); + openings.add(new Opening("B83", "Sicilian Defense: Scheveningen Variation, Modern Variation", "r1bq1rk1pp2bppp2nppn283NPP22N1B3PPP1B1PPR2Q1RK1 b -")); + openings.add(new Opening("B83", "Sicilian Defense: Scheveningen Variation, Modern Variation", "r2q1rk1pp1bbppp2nppn284PP21NN1B3PPP1B1PPR2Q1RK1 b -")); + openings.add(new Opening("B83", "Sicilian Defense: Scheveningen Variation, Modern Variation", "r1bqkb1rpp3ppp2nppn283NP32N5PPP1BPPPR1BQK2R w KQkq")); + openings.add(new Opening("B84", "Sicilian Defense: Najdorf Variation, Scheveningen Variation", "r1bqkb1r1p1n1pppp2ppn283NP32N5PPP1BPPPR1BQ1RK1 w kq")); + openings.add(new Opening("B84", "Sicilian Defense: Scheveningen Variation, Classical Variation", "rnbqkb1r1p3pppp2ppn283NP32N5PPP1BPPPR1BQK2R w KQkq")); + openings.add(new Opening("B84", "Sicilian Defense: Scheveningen Variation, Classical Variation", "rnb1kb1r1pq2pppp2ppn283NP32N5PPP1BPPPR1BQ1RK1 w kq")); + openings.add(new Opening("B85", "Sicilian Defense: Scheveningen Variation, Classical Variation, Paulsen Variation", "r1b1kb1r1pq2pppp1nppn283NPP22N1B3PPP1B1PPR2Q1RK1 b kq")); + openings.add(new Opening("B85", "Sicilian Defense: Scheveningen Variation, Classical Variation, Paulsen Variation", "r1b1kb1r1pq2pppp1nppn283NPP22N5PPP1B1PPR1BQ1RK1 w kq")); + openings.add(new Opening("B85", "Sicilian Defense: Scheveningen Variation, Classical Variation, Paulsen Variation", "r1b1k2r1pq1bpppp1nppn28P2NPP22N51PP1B1PPR1BQ1R1K b kq")); + openings.add(new Opening("B85", "Sicilian Defense: Scheveningen, Classical Main Line", "r1b2rk11pq1bpppp1nppn283NPP22N1B3PPP1B1PPR3QRK1 w -")); + openings.add(new Opening("B86", "Sicilian Defense: Sozin Attack", "rnbqkb1rpp3ppp3ppn282BNP32N5PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("B87", "Sicilian Defense: Sozin Attack, Flank Variation", "rnbqkb1r5pppp2ppn21p63NP31BN5PPP2PPPR1BQK2R w KQkq")); + openings.add(new Opening("B88", "Sicilian Defense: Sozin Attack, Leonhardt Variation", "r1bqkb1rpp3ppp2nppn282BNP32N5PPP2PPPR1BQK2R w KQkq")); + openings.add(new Opening("B88", "Sicilian Defense: Sozin, Fischer Variation", "r1bq1rk1pp2bppp2nppn283NPP21BN1B3PPP3PPR2QK2R b KQ")); + openings.add(new Opening("B89", "Sicilian Defense: Sozin Attack, Main Line", "r1bqkb1rpp3ppp2nppn282BNP32N1B3PPP2PPPR2QK2R b KQkq")); + openings.add(new Opening("B89", "Sicilian Defense: Sozin Attack, Main Line, Sherbakov Variation", "r1bq1rk1p3bppp1p1ppn2n73NPP21BN1B3PPP3PPR2Q1RK1 w -")); + openings.add(new Opening("B89", "Sicilian Defense: Velimirovic Attack", "r1bqk2rpp2bppp2nppn282BNP32N1B3PPP1QPPPR3K2R b KQkq")); + openings.add(new Opening("B90", "Sicilian Defense: Najdorf Variation", "rnbqkb1r1p2ppppp2p1n283NP32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("B90", "Sicilian Defense: Najdorf Variation, Adams Attack", "rnbqkb1r1p2ppppp2p1n283NP32N4PPPP2PP1R1BQKB1R b KQkq")); + openings.add(new Opening("B90", "Sicilian Defense: Najdorf Variation, Dekker Gambit", "rnbqkb1r1p2ppppp2p1n283NP1P12N5PPP2P1PR1BQKB1R b KQkq")); + openings.add(new Opening("B90", "Sicilian Defense: Najdorf Variation, English Attack", "rnbqkb1r1p2ppppp2p1n283NP32N1B3PPP2PPPR2QKB1R b KQkq")); + openings.add(new Opening("B90", "Sicilian Defense: Najdorf Variation, English Attack, Anti-English", "rnbqkb1r1p2ppppp2p483NP1n12N1B3PPP2PPPR2QKB1R w KQkq")); + openings.add(new Opening("B90", "Sicilian Defense: Najdorf Variation, Freak Attack", "rnbqkb1r1p2ppppp2p1n283NP32N5PPP2PPPR1BQKBR1 b Qkq")); + openings.add(new Opening("B90", "Sicilian Defense: Najdorf, Lipnitsky Attack", "rnbqkb1r1p2ppppp2p1n282BNP32N5PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("B91", "Sicilian Defense: Najdorf Variation, Zagreb (Fianchetto) Variation", "rnbqkb1r1p2ppppp2p1n283NP32N3P1PPP2P1PR1BQKB1R b KQkq")); + openings.add(new Opening("B92", "Sicilian Defense: Najdorf Variation, Opocensky Variation", "rnbqkb1r1p2ppppp2p1n283NP32N5PPP1BPPPR1BQK2R b KQkq")); + openings.add(new Opening("B92", "Sicilian Defense: Najdorf Variation, Opocensky Variation, Modern Line", "rn1qk2r1p2bpppp2pbn24p34P31NN5PPP1BPPPR1BQ1RK1 w kq")); + openings.add(new Opening("B92", "Sicilian Defense: Najdorf Variation, Opocensky Variation, Traditional Line", "rnbq1rk11p2bpppp2p1n24p34P31NN5PPP1BPPPR1BQ1RK1 w -")); + openings.add(new Opening("B93", "Sicilian Defense: Najdorf Variation, Amsterdam Variation", "rnbqkb1r1p2ppppp2p1n283NPP22N5PPP3PPR1BQKB1R b KQkq")); + openings.add(new Opening("B94", "Sicilian Defense: Najdorf Variation", "rnbqkb1r1p2ppppp2p1n26B13NP32N5PPP2PPPR2QKB1R b KQkq")); + openings.add(new Opening("B94", "Sicilian Defense: Najdorf, Ivkov Variation", "r3kb1r1b3pppp2ppn2qpn1P1B13N41BN5PPPQ1PPP2KRR3 b kq")); + openings.add(new Opening("B95", "Sicilian Defense: Najdorf Variation", "rnbqkb1r1p3pppp2ppn26B13NP32N5PPP2PPPR2QKB1R w KQkq")); + openings.add(new Opening("B96", "Sicilian Defense: Najdorf Variation", "rnbqkb1r1p3pppp2ppn26B13NPP22N5PPP3PPR2QKB1R b KQkq")); + openings.add(new Opening("B96", "Sicilian Defense: Najdorf Variation, Neo-Classical Defense", "r1bqkb1r1p3pppp1nppn26B13NPP22N5PPP3PPR2QKB1R w KQkq")); + openings.add(new Opening("B96", "Sicilian Defense: Najdorf Variation, Polugaevsky Variation", "rnbqkb1r5pppp2ppn21p4B13NPP22N5PPP3PPR2QKB1R w KQkq")); + openings.add(new Opening("B96", "Sicilian Defense: Najdorf Variation, Polugaevsky Variation, Simagin Line", "rnb1kb1r2q2pppp3pn21p2P1B13N42N5PPP1Q1PPR3KB1R b KQkq")); + openings.add(new Opening("B97", "Sicilian Defense: Najdorf Variation, Poisoned Pawn Accepted", "rnb1kb1r1p3pppp2ppn26B13NPP2q1N5P1PQ2PP1R2KB1R w Kkq")); + openings.add(new Opening("B97", "Sicilian Defense: Najdorf Variation, Poisoned Pawn Variation", "rnb1kb1r1p3ppppq1ppn26B13NPP22N5PPP3PPR2QKB1R w KQkq")); + openings.add(new Opening("B98", "Sicilian Defense: Najdorf Variation", "rnbqk2r1p2bpppp2ppn26B13NPP22N5PPP3PPR2QKB1R w KQkq")); + openings.add(new Opening("B98", "Sicilian Defense: Najdorf Variation, Browne Variation", "rnb1k2r1pq1bpp1p2ppn1p83NPP1B2N2Q2PPP3PPR3KB1R w KQkq")); + openings.add(new Opening("B98", "Sicilian Defense: Najdorf Variation, Goteborg (Argentine)", "rnbqk2r1p2bp2p2ppn1p6p13NPP1B2N2Q2PPP3PPR3KB1R w KQkq")); + openings.add(new Opening("B98", "Sicilian Defense: Najdorf Variation, Traditional Line", "rnb1k2r1pq1bpppp2ppn26B13NPP22N2Q2PPP3PPR3KB1R w KQkq")); + openings.add(new Opening("B99", "Sicilian Defense: Najdorf Variation, Main Line", "r1b1k2r1pqnbpppp2ppn26B13NPP22N2Q2PPP3PP2KR1B1R w kq")); + openings.add(new Opening("C00", "French Defense", "rnbqkbnrppp2ppp4p33p43PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C00", "French Defense", "rnbqkbnrpppp1ppp4p384P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C00", "French Defense: Alapin Gambit", "rnbqkbnrppp2ppp4p33p43PP34B3PPP2PPPRN1QKBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: Banzai-Leong Gambit", "rnbqkbnrpppp1ppp4p381P2P38P1PP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: Banzai-Leong Gambit, Pinova Gambit", "rnbqk1nrpppp1ppp4p34P31b68P1PP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: Bird Invitation", "rnbqkbnrpppp1ppp4p31B64P38PPPP1PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C00", "French Defense: Chigorin Variation", "rnbqkbnrpppp1ppp4p384P38PPPPQPPPRNB1KBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: Diemer-Duhm Gambit", "rnbqkbnrppp2ppp4p382PPp38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C00", "French Defense: Franco-Hiva Gambit", "rnbqkbnrpppp2pp4p35p24P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C00", "French Defense: Franco-Hiva Gambit", "rnbqkbnrpppp2pp4p35p24P33P4PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C00", "French Defense: Horwitz Attack", "rnbqkbnrpppp1ppp4p384P31P6P1PP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: Horwitz Attack, Papa-Ticulat Gambit", "rnbqkbnrppp2ppp4p33p44P31P6PBPP1PPPRN1QKBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: King's Indian Attack", "rnbqkbnrpppp1ppp4p384P33P4PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: Knight Variation", "rnbqkbnrpppp1ppp4p384P35N2PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C00", "French Defense: La Bourdonnais Variation", "rnbqkbnrpppp1ppp4p384PP28PPPP2PPRNBQKBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: La Bourdonnais Variation, Reuter Gambit", "rnbqkbnrppp2ppp4p384pP25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C00", "French Defense: Normal Variation", "rnbqkbnrpppp1ppp4p383PP38PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: Orthoschnapp Gambit", "rnbqkbnrppp2ppp83p44P31Q6PP1P1PPPRNB1KBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: Pelikan Variation", "rnbqkbnrppp2ppp4p33p44PP22N5PPPP2PPR1BQKBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: Queen's Knight", "rnbqkbnrpppp1ppp4p384P32N5PPPP1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: Réti-Spielmann Attack", "rnbqkbnrpppp1ppp4p384P36P1PPPP1P1PRNBQKBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: Reversed Philidor Formation", "r1bqkb1rppp2ppp2n1pn23p44P33P1N2PPPNBPPPR1BQK2R b KQkq")); + openings.add(new Opening("C00", "French Defense: Schlechter Variation", "rnbqkbnrppp2ppp4p33p43PP33B4PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C00", "French Defense: Steiner Variation", "rnbqkbnrpppp1ppp4p382P1P38PP1P1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: Steinitz Attack", "rnbqkbnrpppp1ppp4p34P388PPPP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C00", "French Defense: Two Knights Variation", "rnbqkbnrppp2ppp4p33p44P32N2N2PPPP1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C00", "French Defense: Wing Gambit", "rnbqkbnrpp3ppp4p32ppP31P65N2P1PP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C00", "Queen's Pawn Game: Franco-Sicilian Defense", "rnbqkbnrpp1p1ppp4p32p53PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C00", "Rat Defense: Small Center Defense", "rnbqkbnrppp2ppp3pp383PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C00", "St. George Defense", "rnbqkbnr1ppp1pppp3p383PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C01", "French Defense: Baeuerle Gambit", "rnbqkbnrp1pp1ppp4p31p63PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C01", "French Defense: Carlson Gambit", "rnbqkbnrppp2ppp4p34N33Pp38PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C01", "French Defense: Exchange Variation", "rnbqkbnrppp2ppp4p33P43P48PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C01", "French Defense: Exchange Variation, Monte Carlo Variation", "rnbqkbnrppp2ppp83p42PP48PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C01", "French Defense: Exchange Variation, Svenonius Variation", "rnbqkb1rppp2ppp5n23p2B13P42N5PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("C01", "French Defense: Exchange, Bogoljubov Variation", "r1bqkb1rppp2ppp2n2n23p2B13P42N5PPP2PPPR2QKBNR w KQkq")); + openings.add(new Opening("C01", "French Defense: Franco-Hiva Gambit", "rnbqkbnrpppp2pp4p35p23PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C01", "French Defense: Franco-Hiva Gambit Accepted", "rnbqkb1rpppp2pp4pn25P23P48PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C01", "French Defense: Hoffmann Gambit", "rnbqkbnrppp2ppp83p43PPp28PPP1Q1PPRNB1KBNR w KQkq")); + openings.add(new Opening("C01", "French Defense: Mediterranean Defense", "rnbqkb1rpppp1ppp4pn283PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C01", "French Defense: Morphy Gambit", "rnbqkbnrppp2ppp4p33p43PP37NPPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C01", "French Defense: Perseus Gambit", "rnbqkbnrppp2ppp4p33p43PP35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C01", "French Defense: Winawer Variation, Delayed Exchange Variation", "rnbqk1nrppp2ppp4p33P41b1P42N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C01", "French Defense: Winawer Variation, Exchange Variation, Canal Attack", "rnbqk2rppp1nppp83p3Q1b1P42NB4PPP2PPPR1B1K1NR b KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation", "r1bqkbnrpp3ppp2n1p32ppP33P42P5PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation", "rnbqkbnrpp3ppp4p32ppP33P42P5PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation", "rnbqkbnrppp2ppp4p33pP33P48PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation", "rnbqkbnrpp3ppp4p32ppP33P48PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation, Euwe Variation", "r2qkbnrpp1b1ppp2n1p32ppP33P42P2N2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation, Extended Bishop Swap", "rn1qkbnrpppb1ppp4p33pP33P48PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation, Frenkel Gambit", "rnbqkbnrpp3ppp4p32ppP31P1P48P1P2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation, Lputian Variation", "r1b1kb1rpp3ppp1qn1p2n2ppP33P4P1P2N21P3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation, Main Line", "r1b1kbnrpp3ppp1qn1p32ppP33P4P1P2N21P3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation, Milner-Barry Gambit", "r1b1kbnrpp3ppp1qn1p32ppP33P42PB1N2PP3PPPRNBQK2R b KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation, Nimzowitsch Attack", "rnbqkbnrpp3ppp4p32ppP33P2Q18PPP2PPPRNB1KBNR b KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation, Nimzowitsch Gambit", "rnbqkbnrpp3ppp4p33pP33p2Q15N2PPP2PPPRNB1KB1R b KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation, Nimzowitsch System", "rnbqkbnrpp3ppp4p32ppP33P45N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation, Paulsen Attack", "r1bqkbnrpp3ppp2n1p32ppP33P42P2N2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation, Ruisdonk Gambit", "rnbqkbnrpp3ppp4p33pP33p43B1N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C02", "French Defense: Advance Variation, Wade Variation", "rn2kbnrpp1b1ppp1q2p32ppP33P42P2N2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C02", "French Defense: Advance, Steinitz Variation", "rnbqkbnrpp3ppp4p32PpP388PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C03", "French Defense: Guimard Variation, Thunderbunny Variation", "r1bqkbnrppp2ppp2n54p33PN32P5PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C03", "French Defense: Tarrasch Variation", "rnbqkbnrppp2ppp4p33p43PP38PPPN1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C03", "French Defense: Tarrasch Variation, Guimard Defense", "r1bqkbnrppp2ppp2n1p33p43PP38PPPN1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C03", "French Defense: Tarrasch Variation, Haberditz Variation", "rnbqkbnrppp3pp4p33p1p23PP38PPPN1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C03", "French Defense: Tarrasch Variation, Modern System", "rnbqkbnr1pp2pppp3p33p43PP38PPPN1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C03", "French Defense: Tarrasch Variation, Morozevich Variation", "rnbqk1nrppp1bppp4p33p43PP38PPPN1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C04", "French Defense: Tarrasch Variation, Guimard Defense, Main Line", "r1bqkb1rppp2ppp2n1pn23p43PP35N2PPPN1PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C05", "French Defense: Tarrasch Variation, Botvinnik Variation", "rnbqkb1rp2n1ppp1p2p32ppP33P42PB4PP1N1PPPR1BQK1NR w KQkq")); + openings.add(new Opening("C05", "French Defense: Tarrasch Variation, Closed Variation", "rnbqkb1rppp2ppp4pn23p43PP38PPPN1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C05", "French Defense: Tarrasch Variation, Closed Variation", "r1bqkb1rpp1n1ppp2n1p32ppP33P42PB4PP1N1PPPR1BQK1NR w KQkq")); + openings.add(new Opening("C05", "French Defense: Tarrasch Variation, Pawn Center Variation", "rnbqkb1rpppn1ppp4p33pP33P1P28PPPN2PPR1BQKBNR b KQkq")); + openings.add(new Opening("C06", "French Defense: Tarrasch Variation, Closed Variation, Main Line", "r1bqkb1rpp1n1ppp2n1p33pP33P43B4PP1NNPPPR1BQK2R b KQkq")); + openings.add(new Opening("C06", "French Defense: Tarrasch Variation, Leningrad Variation", "r1bqkb1rpp3ppp1nn1p33pP33P43B4PP1NNPPPR1BQK2R w KQkq")); + openings.add(new Opening("C07", "French Defense: Tarrasch Variation, Chistyakov Defense", "rnb1kbnrpp3ppp4p32pq43P48PPPN1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C07", "French Defense: Tarrasch Variation, Chistyakov Defense, Modern Line", "r1b1kb1r1p3pppp2qpn282BN48PPP2PPPR1BQ1RK1 w kq")); + openings.add(new Opening("C07", "French Defense: Tarrasch Variation, Open System", "rnbqkbnrpp3ppp4p32pp43PP38PPPN1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C07", "French Defense: Tarrasch Variation, Open System, Euwe-Keres Line", "rnbqkbnrpp3ppp4p32pp43PP35N2PPPN1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C07", "French Defense: Tarrasch Variation, Open System, Shaposhnikov Gambit", "rnbqkb1rpp3ppp4pn22pP43P48PPPN1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C07", "French Defense: Tarrasch Variation, Open System, Suechting Line", "rnbqkbnrpp3ppp4p32pp43PP32P5PP1N1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C07", "French Defense: Tarrasch, Eliskases Variation", "rnbqkbnrpp3ppp4p382Bp45N2PPPN1PPPR1BQK2R w KQkq")); + openings.add(new Opening("C08", "French Defense: Tarrasch Variation, Open System, Advance Line", "rnbqkbnrpp3ppp83p42pP45N2PPPN1PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C08", "French Defense: Tarrasch, Open, 4. exd5 exd5", "rnbqkbnrpp3ppp82pp43P48PPPN1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C09", "French Defense: Tarrasch Variation, Open System, Main Line", "r1bqkbnrpp3ppp2n52pp43P45N2PPPN1PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C10", "French Defense: Classical Variation, Svenonius Variation", "r1bqkbnrppp2ppp2n1p33P43P42N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C10", "French Defense: Paulsen Variation", "rnbqkbnrppp2ppp4p33p43PP32N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C10", "French Defense: Rubinstein Variation", "rnbqkbnrppp2ppp4p383Pp32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C10", "French Defense: Rubinstein Variation, Blackburne Defense", "r1bqkbnrpppn1ppp4p383PN38PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C10", "French Defense: Rubinstein Variation, Capablanca Line", "r1bqkb1rppp2ppp4pn24N33P48PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C10", "French Defense: Rubinstein Variation, Ellis Gambit", "rnbqkbnrppp2ppp84p33PN38PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C10", "French Defense: Rubinstein Variation, Fort Knox Variation", "rn1qkbnrppp2ppp2b1p383PN35N2PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C10", "French Defense: Rubinstein Variation, Kasparov Attack", "r1bqkb1rppp2ppp4pn283P42P2N2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C10", "French Defense: Rubinstein Variation, Maric Variation", "rnb1kbnrppp2ppp4p33q43PN38PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C11", "French Defense: Burn Variation", "rnbqkb1rppp2ppp4pn23p2B13PP32N5PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("C11", "French Defense: Classical Variation", "rnbqkb1rppp2ppp4pn23p43PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C11", "French Defense: Classical Variation, Burn Variation, Main Line", "rnbq1rk1ppp2ppp4pb283PN35N2PPP2PPPR2QKB1R w KQ")); + openings.add(new Opening("C11", "French Defense: Classical Variation, Burn Variation, Morozevich Line", "rnbqk2rppp1bp1p4pp283PN38PPP2PPPR2QKBNR w KQkq")); + openings.add(new Opening("C11", "French Defense: Classical Variation, Delayed Exchange Variation", "rnbqkb1rppp2ppp4pn23P43P42N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C11", "French Defense: Classical Variation, Steinitz Variation", "rnbqkb1rppp2ppp4pn23pP33P42N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C11", "French Defense: Classical Variation, Swiss Variation", "rnbqkb1rppp2ppp4pn23p43PP32NB4PPP2PPPR1BQK1NR b KQkq")); + openings.add(new Opening("C11", "French Defense: Henneberger Variation", "rnbqkb1rppp2ppp4pn23p43PP32N1B3PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("C11", "French Defense: Steinitz Variation", "r1bqkb1rpp1n1ppp2n1p32PpP35P22N5PPP3PPR1BQKBNR w KQkq")); + openings.add(new Opening("C11", "French Defense: Steinitz Variation", "rnbqkb1rpp1n1ppp4p32ppP33P1P22N2N2PPP3PPR1BQKB1R b KQkq")); + openings.add(new Opening("C11", "French Defense: Steinitz Variation, Boleslavsky Variation", "r1bqkb1rpp1n1ppp2n1p32ppP33P1P22N1BN2PPP3PPR2QKB1R b KQkq")); + openings.add(new Opening("C11", "French Defense: Steinitz Variation, Bradford Attack Variation", "rnbqk2rpp1n1ppp4p32bpP35PQ12N5PPP3PPR1B1KBNR b KQkq")); + openings.add(new Opening("C11", "French Defense: Steinitz Variation, Gledhill Attack", "rnbqkb1rpppn1ppp4p33pP33P2Q12N5PPP2PPPR1B1KBNR b KQkq")); + openings.add(new Opening("C11", "French Defense: Steinitz, Brodsky-Jones Variation", "r1bq1rk1pp1n2pp2n1pp22bpP35PQ1P1N2N21PP3PPR1B1KB1R w KQ")); + openings.add(new Opening("C12", "French Defense: MacCutcheon Variation", "rnbqk2rppp2ppp4pn23p2B11b1PP32N5PPP2PPPR2QKBNR w KQkq")); + openings.add(new Opening("C12", "French Defense: MacCutcheon Variation, Bernstein Variation", "rnbqk2rppp2pp14pn1p3pP31b1P3B2N5PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("C12", "French Defense: MacCutcheon Variation, Chigorin Variation", "rnbqk2rppp2pp14pP1p3p2B11b1P42N5PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("C12", "French Defense: MacCutcheon Variation, Dr. Olland (Dutch) Variation", "rnbqk2rppp2pp14pn1p3pP31b1P42N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C12", "French Defense: MacCutcheon Variation, Duras Variation", "rnbq1k1rppp2pp14p2p3pP33Pn1Q12P5P1P2PPPR1B1KBNR b KQ")); + openings.add(new Opening("C12", "French Defense: MacCutcheon Variation, Exchange Variation", "rnbqk2rppp2ppp4pn23P2B11b1P42N5PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("C12", "French Defense: MacCutcheon Variation, Grigoriev Variation", "rnbqk1r1ppp2pP14p33p41b1P2Qp2N5PPP2PP1R3KBNR b KQq")); + openings.add(new Opening("C12", "French Defense: MacCutcheon Variation, Janowski Variation", "rnbqk2rppp2pp14pn1p3pP31b1P42N1B3PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("C12", "French Defense: MacCutcheon Variation, Lasker Variation", "rnbqk2rppp2pp14pn1p3pP33P42b5PPPB1PPPR2QKBNR w KQkq")); + openings.add(new Opening("C12", "French Defense: MacCutcheon Variation, Lasker Variation", "rnbqk2rppp2p24p1pp3pP33Pn1Q12P5P1PB1PPPR3KBNR w KQkq")); + openings.add(new Opening("C12", "French Defense: MacCutcheon Variation, Tartakower Variation", "rnbqk2rpppn1pp14p2p3pP31b1P42N5PPPB1PPPR2QKBNR w KQkq")); + openings.add(new Opening("C12", "French Defense: MacCutcheon Variation, Wolf Gambit", "rnbqk2rppp2ppp4pn23p2B11b1PP32N5PPP1NPPPR2QKB1R b KQkq")); + openings.add(new Opening("C12", "French Defense: MacCutcheon, Advance Variation", "rnbqk2rppp2ppp4pn23pP1B11b1P42N5PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("C12", "French Defense: MacCutcheon, Bogoljubov Variation", "rnb1k2rppp2p1p4pp2q71b1P42N5PPPQ1PPPR3KBNR w KQkq")); + openings.add(new Opening("C13", "French Defense: Alekhine-Chatard Attack", "rnbqk2rpppnbppp4p33pP1B13P3P2N5PPP2PP1R2QKBNR b KQkq")); + openings.add(new Opening("C13", "French Defense: Alekhine-Chatard Attack, Albin-Chatard Gambit", "rnb1k2rpppn1ppp4p33pP1q13P42N5PPP2PP1R2QKBNR w KQkq")); + openings.add(new Opening("C13", "French Defense: Alekhine-Chatard Attack, Breyer Variation", "rnbqk2rpp1nbppp4p32ppP1B13P3P2N5PPP2PP1R2QKBNR w KQkq")); + openings.add(new Opening("C13", "French Defense: Alekhine-Chatard Attack, Maróczy Variation", "rnbqk2r1ppnbpppp3p33pP1B13P3P2N5PPP2PP1R2QKBNR w KQkq")); + openings.add(new Opening("C13", "French Defense: Alekhine-Chatard Attack, Spielmann Variation", "rnbq1rk1pppnbppp4p33pP1B13P3P2N5PPP2PP1R2QKBNR w KQ")); + openings.add(new Opening("C13", "French Defense: Alekhine-Chatard Attack, Teichmann Variation", "rnbqk2rpppnb1pp4pp23pP1B13P3P2N5PPP2PP1R2QKBNR w KQkq")); + openings.add(new Opening("C13", "French Defense: Classical Variation, Frankfurt Variation", "rnbqk1nrp1p1bppp1p2p33pP33P42N1B3PPP2PPPR2QKBNR w KQkq")); + openings.add(new Opening("C13", "French Defense: Classical Variation, Normal Variation", "rnbqk2rppp1bppp4pn23p2B13PP32N5PPP2PPPR2QKBNR w KQkq")); + openings.add(new Opening("C13", "French Defense: Classical Variation, Richter Attack", "rnbqk2rppp1bppp4p33pP33P2Q12N5PPP2PPPR3KBNR b KQkq")); + openings.add(new Opening("C13", "French Defense: Classical Variation, Richter Attack", "rnbqk2rppp1bppp4pB23p43PP32N5PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("C13", "French Defense: Classical Variation, Tartakower Variation", "rnbqk2rppp1bppp4p33pP1B13Pn32N5PPP2PPPR2QKBNR w KQkq")); + openings.add(new Opening("C13", "French Defense: Classical Variation, Vistaneckis (Nimzowitsch) Variation", "rnbqk1nrppp1bppp4p33pP1B13P42N5PPP2PPPR2QKBNR w KQkq")); + openings.add(new Opening("C14", "French Defense: Classical Variation", "rnb1k2rpppnqppp4p33pP33P42N5PPP2PPPR2QKBNR w KQkq")); + openings.add(new Opening("C14", "French Defense: Classical Variation, Alapin Variation", "rnb1k2rpppnqppp4p31N1pP33P48PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("C14", "French Defense: Classical Variation, Pollock Variation", "rnb1k2rpppnqppp4p33pP33P2Q12N5PPP2PPPR3KBNR b KQkq")); + openings.add(new Opening("C14", "French Defense: Classical Variation, Rubinstein Variation", "rnb1k2rpppnqppp4p33pP33P42N5PPPQ1PPPR3KBNR b KQkq")); + openings.add(new Opening("C14", "French Defense: Classical Variation, Steinitz Variation", "rnb1k2rpppnqppp4p33pP33P1P22N5PPP3PPR2QKBNR b KQkq")); + openings.add(new Opening("C14", "French Defense: Classical Variation, Tarrasch Variation", "rnb1k2rpppnqppp4p33pP33P42NB4PPP2PPPR2QK1NR b KQkq")); + openings.add(new Opening("C14", "French Defense: Classical, Stahlberg Variation", "r1b2rk1pp1nqppp2n1p33pP32pP1P22N2N2PPPQ2PP2KR1B1R w -")); + openings.add(new Opening("C15", "French Defense: Winawer Variation", "rnbqk1nrppp2ppp4p33p41b1PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C15", "French Defense: Winawer Variation, Alekhine Gambit Accepted", "rnbqk1nrppp2ppp4p383Pp3P1b51PP1NPPPR1BQKB1R w KQkq")); + openings.add(new Opening("C15", "French Defense: Winawer Variation, Alekhine Gambit, Kan Variation", "r1bqk1nrppp2ppp2n1p383Pp3P1N51PP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C15", "French Defense: Winawer Variation, Alekhine-Maróczy Gambit", "rnbqk1nrppp2ppp4p33p41b1PP32N5PPP1NPPPR1BQKB1R b KQkq")); + openings.add(new Opening("C15", "French Defense: Winawer Variation, Fingerslip Variation", "rnbqk1nrppp2ppp4p33p41b1PP32N5PPPB1PPPR2QKBNR b KQkq")); + openings.add(new Opening("C15", "French Defense: Winawer Variation, Fingerslip Variation, Kunin Double Gambit", "rnb1k1nrppp2ppp4p381b1qp1Q12N5PPPB1PPPR3KBNR w KQkq")); + openings.add(new Opening("C15", "French Defense: Winawer Variation, Fingerslip Variation, Main Line", "rnbqk1r1ppp2p1p4pn1Q81b1Pp32N5PPPB1PPPR3KBNR b KQq")); + openings.add(new Opening("C15", "French Defense: Winawer Variation, Fingerslip Variation, Schwarz's Line", "rnbqk2rppp1nppp4p33p41b1PP38PPPB1PPPRN1QKBNR b KQkq")); + openings.add(new Opening("C15", "French Defense: Winawer Variation, Kondratiyev Variation", "rnb1k1nrpp3ppp4p32pq41b1P42NB4PPPB1PPPR2QK1NR b KQkq")); + openings.add(new Opening("C15", "French Defense: Winawer Variation, Winckelmann-Riemer Gambit", "rnbqk1nrppp2ppp4p33p41b1PP3P1N51PP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C15", "French Defense: Winawer, Alekhine Gambit, Alatortsev Variation", "r1bq1rk1ppp1bppp2n1pn283PN3P5N11PP1BPPPR1BQK2R w KQ")); + openings.add(new Opening("C16", "French Defense: Winawer Variation, Advance Variation", "rnbqk1nrppp2ppp4p33pP31b1P42N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C16", "French Defense: Winawer Variation, Petrosian Variation", "rnb1k1nrpppq1ppp4p33pP31b1P42N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C17", "French Defense: Winawer Variation, Advance Variation", "rnbqk1nrpp3ppp4p32ppP31b1P4P1N51PP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C17", "French Defense: Winawer Variation, Advance Variation", "rnbqk1nrpp3ppp4p33pP31P62p2N21PP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C17", "French Defense: Winawer Variation, Advance Variation", "rnbqk1nrpp3ppp4p32ppP31b1P42N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C17", "French Defense: Winawer Variation, Advance Variation, Moscow Variation", "rnbqk1nrpp3ppp4p32ppP31b1P2Q12N5PPP2PPPR1B1KBNR b KQkq")); + openings.add(new Opening("C17", "French Defense: Winawer Variation, Bogoljubov Variation", "rnbqk1nrpp3ppp4p32ppP31b1P42N5PPPB1PPPR2QKBNR b KQkq")); + openings.add(new Opening("C17", "French Defense: Winawer Variation, Bogoljubov Variation, Icelandic Defense", "rnbqk2rpp2nppp4p32ppP31b1P1P22N5PPPB2PPR2QKBNR b KQkq")); + openings.add(new Opening("C18", "French Defense: Winawer Variation, Advance Variation", "rnbqk2rpp2nppp4p32ppP33P4P1P52P2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C18", "French Defense: Winawer Variation, Advance Variation", "rnbqk1nrpp3ppp4p32ppP33P4P1P52P2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C18", "French Defense: Winawer Variation, Classical Variation", "rnb1k1nrppq2ppp4p32ppP33P4P1P52P2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C18", "French Defense: Winawer Variation, Maróczy-Wallis Variation", "rnbqk1nrpp3ppp4p33pP31P62p51PP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C18", "French Defense: Winawer Variation, Poisoned Pawn Variation", "rnbqk2rpp2nppp4p32ppP33P2Q1P1P52P2PPPR1B1KBNR b KQkq")); + openings.add(new Opening("C18", "French Defense: Winawer Variation, Poisoned Pawn Variation, Main Line", "rnb1k1r1ppq1np1Q4p33pP33p4P1P52P1NPPPR1B1KB1R b KQq")); + openings.add(new Opening("C18", "French Defense: Winawer Variation, Poisoned Pawn Variation, Paoli Variation", "rnb1k1r1ppq1np1Q4p33pP33p4P1P52P2PPPR1BK1BNR b q")); + openings.add(new Opening("C18", "French Defense: Winawer Variation, Retreat Variation", "rnbqk1nrpp3ppp4p3b1ppP33P4P1N51PP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C18", "French Defense: Winawer Variation, Retreat Variation, Armenian Line", "rnbqk1nrpp3ppp4p3b2pP31P1p4P1N52P2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C19", "French Defense: Winawer Variation, Advance Variation", "rnbqk2rpp2nppp4p32ppP3P2P42P52P2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C19", "French Defense: Winawer Variation, Positional Variation", "rnbqk2rpp2nppp4p32ppP33P4P1P2N22P2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C20", "Bishop's Opening: Boi Variation", "rnbqk1nrpppp1ppp82b1p32B1P38PPPP1PPPRNBQK1NR w KQkq")); + openings.add(new Opening("C20", "Bongcloud Attack", "rnbqkbnrpppp1ppp84p34P38PPPPKPPPRNBQ1BNR b kq")); + openings.add(new Opening("C20", "English Opening: The Whale", "rnbqkbnrpppp1ppp84p32P1P38PP1P1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C20", "King's Pawn Game", "rnbqkbnrpppp1ppp84p34P38PPPP1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Alapin Opening", "rnbqkbnrpppp1ppp84p34P38PPPPNPPPRNBQKB1R b KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Bavarian Gambit", "rnbqkbnrppp2ppp83pp32P1P38PP1P1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Clam Variation, King's Gambit Reversed", "rnbqkbnrpppp2pp84pp24P33P4PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Clam Variation, Radisch Gambit", "rnbqk2rpppp1ppp5n22b1p34PP23P4PPP3PPRNBQKBNR w KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Damiano Defense, Damiano Gambit", "rnb1kbnQppppq2p6p184P38PPPP1PPPRNB1KB1R b KQq")); + openings.add(new Opening("C20", "King's Pawn Game: Damiano Defense, Damiano Gambit, Chigorin Gambit", "rnb1kbnrppp1q1pp5p23p44P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: King's Head Opening", "rnbqkb1rpppp1ppp5n24p34P32N2P2PPPP2PPR1BQKBNR b KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: King's Head Opening", "rnbqkbnrpppp1ppp84p34P35P2PPPP2PPRNBQKBNR b KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Leonardis Variation", "rnbqkbnrpppp1ppp84p34P33P4PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Macleod Attack", "rnbqkbnrpppp1ppp84p34P32P5PP1P1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Macleod Attack, Lasa Gambit", "rnbqkbnrpppp2pp84pp24P32P5PP1P1PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Macleod Attack, Norwalde Gambit", "rnbqk1nrppp2ppp3b43pp2Q4P32P5PP1P1PPPRNB1KBNR w KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Mengarini's Opening", "rnbqkbnrpppp1ppp84p34P3P71PPP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Napoleon Attack", "rnbqkbnrpppp1ppp84p34P35Q2PPPP1PPPRNB1KBNR b KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Tortoise Opening", "rnbqkbnrpppp1ppp84p34P33B4PPPP1PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Wayward Queen Attack", "rnbqkbnrpppp1ppp84p2Q4P38PPPP1PPPRNB1KBNR b KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Wayward Queen Attack, Kiddie Countergambit", "rnbqkb1rpppp1ppp5n24p2Q4P38PPPP1PPPRNB1KBNR w KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Wayward Queen Attack, Mellon Gambit", "r1bqkb1rppp4p2n2ppn3pp32B1P33P1Q2PPP1NPPPRNB1K2R w KQkq")); + openings.add(new Opening("C20", "King's Pawn Game: Weber Gambit", "r1bqkbnrpp3ppp2n54p383P4PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C20", "King's Pawn Opening: 2. b3", "rnbqkbnrpppp1ppp84p34P31P6P1PP1PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C20", "Portuguese Opening", "rnbqkbnrpppp1ppp81B2p34P38PPPP1PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C20", "Portuguese Opening: Miguel Gambit", "rnbqk1nrpppp1ppp81Bb1p31P2P38P1PP1PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C20", "Portuguese Opening: Portuguese Gambit", "rnbqkb1rpppp1ppp5n21B2p33PP38PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C21", "Center Game", "rnbqkbnrpppp1ppp883QP38PPP2PPPRNB1KBNR b KQkq")); + openings.add(new Opening("C21", "Center Game", "rnbqkbnrpppp1ppp84p33PP38PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C21", "Center Game Accepted", "rnbqkbnrpppp1ppp883pP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C21", "Center Game: Halasz-McDonnell Gambit", "rnbqkbnrpppp1ppp883pPP28PPP3PPRNBQKBNR b KQkq")); + openings.add(new Opening("C21", "Center Game: Halasz-McDonnell Gambit, Crocodile Variation", "r1bqk1nrpppp1ppp2n52b53pPP22P2N2PP4PPRNBQKB1R b KQkq")); + openings.add(new Opening("C21", "Center Game: Kieseritzky Variation", "rnbqkbnrp2p1ppp81pp52BpP35N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C21", "Center Game: Kieseritzky Variation", "rnbqkbnrpppp1ppp883pP35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C21", "Center Game: Kieseritzky Variation", "rnbqkbnrpp1p1ppp82p53pP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C21", "Center Game: Kieseritzky Variation", "rnbqkbnrpp1p1ppp82p52BpP35N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C21", "Center Game: Lanc-Arnold Gambit", "rnbqk1nrpppp1ppp82b53pP32P2N2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C21", "Center Game: Lanc-Arnold Gambit, Schippler Gambit", "rnbqk1nrpppp1ppp82b52B1P32p2N2PP3PPPRNBQK2R b KQkq")); + openings.add(new Opening("C21", "Center Game: Ross Gambit", "rnbqkbnrpppp1ppp883pP33B4PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C21", "Center Game: von der Lasa Gambit", "rnbqkbnrpppp1ppp882BpP38PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C21", "Danish Gambit", "rnbqkbnrpppp1ppp883pP32P5PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("C21", "Danish Gambit Accepted", "rnbqkbnrpppp1ppp882B1P38PB3PPPRN1QK1NR b KQkq")); + openings.add(new Opening("C21", "Danish Gambit Accepted, Chigorin Defense", "rnb1kbnrppppqppp882B1P38PB3PPPRN1QK1NR w KQkq")); + openings.add(new Opening("C21", "Danish Gambit Accepted, Classical Defense", "rnbqkb1rpppp1ppp5n282B1P38PB3PPPRN1QK1NR w KQkq")); + openings.add(new Opening("C21", "Danish Gambit Accepted, Copenhagen Defense", "rnbqk1nrpppp1ppp881bB1P38PB3PPPRN1QK1NR w KQkq")); + openings.add(new Opening("C21", "Danish Gambit Accepted, Schlechter Defense", "rnbqkbnrppp2ppp83p42B1P38PB3PPPRN1QK1NR w KQkq")); + openings.add(new Opening("C21", "Danish Gambit Accepted, Svenonius Defense", "rnbqkb1rppppnppp883pP32P5PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C21", "Danish Gambit Declined, Sorensen Defense", "rnbqkbnrppp2ppp83p43pP32P5PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C21", "King's Pawn Game: Beyer Gambit", "rnbqkbnrppp2ppp83pp33PP38PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("C21", "Sicilian Defense: Smith-Morra Gambit, Danish Variation", "rnbqkbnrpp1ppppp884P32p2N2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C22", "Center Game: Berger Variation", "r1bqkb1rpppp1ppp2n2n284P34Q3PPP2PPPRNB1KBNR w KQkq")); + openings.add(new Opening("C22", "Center Game: Charousek Variation", "r1bqk1nrppppbppp2n584P32P1Q3PP3PPPRNB1KBNR w KQkq")); + openings.add(new Opening("C22", "Center Game: Hall Variation", "r1bqkbnrpppp1ppp2n582Q1P38PPP2PPPRNB1KBNR b KQkq")); + openings.add(new Opening("C22", "Center Game: Kupr Variation", "r1bqr1k1ppp2ppp2np1n281bB1P32N1Q2NPPPB1PPP2KR3R b -")); + openings.add(new Opening("C22", "Center Game: Normal Variation", "r1bqkbnrpppp1ppp2n583QP38PPP2PPPRNB1KBNR w KQkq")); + openings.add(new Opening("C22", "Center Game: Paulsen Attack Variation", "r1bqkbnrpppp1ppp2n584P34Q3PPP2PPPRNB1KBNR b KQkq")); + openings.add(new Opening("C22", "Center Game: l'Hermet Variation", "r1bqkbnrpppp2pp2n55p24P34Q3PPP2PPPRNB1KBNR w KQkq")); + openings.add(new Opening("C23", "Bishop's Opening", "rnbqkbnrpppp1ppp84p32B1P38PPPP1PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Anderssen Gambit", "rnbqkbnrp2p1ppp2p51B2p34P38PPPP1PPPRNBQK1NR w KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Berlin Defense, Greco Gambit", "rnbqkb1rpppp1ppp5n24p32B1PP28PPPP2PPRNBQK1NR b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Calabrese Countergambit", "rnbqkbnrpppp2pp84pp22B1P38PPPP1PPPRNBQK1NR w KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Calabrese Countergambit, Jaenisch Variation", "rnbqkbnrpppp2pp84pp22B1P33P4PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Four Pawns Gambit", "rnbqk1nrpppp1ppp882BPP2b5N2P1P4pRNBQ1R1K b kq")); + openings.add(new Opening("C23", "Bishop's Opening: Horwitz Gambit", "rnbqkb1rp1pp1ppp5n21p2p32B1P32N5PPPP1PPPR1BQK1NR w KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Khan Gambit", "rnbqkbnrppp2ppp83pp32B1P38PPPP1PPPRNBQK1NR w KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Lewis Countergambit", "rnbqk2rppp2ppp5n22bBp34P32P5PP1P1PPPRNBQK1NR w KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Lewis Countergambit", "rnbqk1nrppp2ppp82bpp32B1P32P5PP1P1PPPRNBQK1NR w KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Lewis Countergambit, Walker Variation", "rnbqk2rppp2ppp5n22bBp33PP32P5PP3PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Lewis Gambit", "rnbqk1nrpppp1ppp82b1p32BPP38PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Lisitsyn Variation", "r2qkbnrpp3ppp83pn388PPP1NPPPRNBQK2R b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Lopez Gambit", "r1bqk2rpppp1ppp2n2n22b1p32B1PP22P5PP1PQ1PPRNB1K1NR b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Lopez Variation", "rnbqk1nrpppp1ppp82b1p32B1P38PPPPQPPPRNB1K1NR b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Lopez Variation, Lopez Gambit", "rnbqk2rpppp1ppp5n22b1p32B1PP28PPPPQ1PPRNB1K1NR b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: McDonnell Gambit", "rnbqk1nrpppp1ppp82b1p31PB1P38P1PP1PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: McDonnell Gambit, La Bourdonnais-Denker Gambit", "rnbqk1nrpppp1ppp84p31bB1P32P5P2P1PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: McDonnell Gambit, McDonnell Double Gambit", "rnbqk1nrpppp1ppp84p31bB1PP28P1PP2PPRNBQK1NR b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Pachman Gambit", "rnbqkb1rpppp1ppp84p32B1n32N5PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Philidor Counterattack", "rnbqkbnrpp1p1ppp2p54p32B1P38PPPP1PPPRNBQK1NR w KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Philidor Variation", "rnbqk1nrpppp1ppp82b1p32B1P32P5PP1P1PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Pratt Variation", "rnbq1rk1ppp2ppp5P22b4Q2pp42P5PP3PPPRNB1K1NR w KQ")); + openings.add(new Opening("C23", "Bishop's Opening: Stein Gambit", "rnbqk1nrpppp1ppp82b1p32B1PP28PPPP2PPRNBQK1NR b KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: Thorold Gambit", "rnbqkbnrp1pp2pp81B2pp24P38PPPP1PPPRNBQK1NR w KQkq")); + openings.add(new Opening("C23", "Bishop's Opening: del Rio Variation", "rnb1k1nrpppp1ppp82b1p1q12B1P32P5PP1P1PPPRNBQK1NR w KQkq")); + openings.add(new Opening("C23", "Vienna Game: Fyfe Gambit", "r1bqkbnrpppp1ppp2n54p33PP32N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C23", "Vienna Game: Philidor Countergambit", "r1bqkbnrpppp2pp2n54pp23PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C23", "Vienna Game: Stanley Variation, Bronstein Gambit", "r1bqkb1rpppp1ppp2n54p32B1nP22N2N2PPPP2PPR1BQK2R b KQkq")); + openings.add(new Opening("C23", "Vienna Game: Stanley Variation, Meitner-Mieses Gambit", "r1b1k1nrpppp1ppp2n2q22bNp32B1P1Q18PPPP1PPPR1B1K1NR b KQkq")); + openings.add(new Opening("C24", "Bishop's Opening: Berlin Defense", "rnbqkb1rpppp1ppp5n24p32B1P38PPPP1PPPRNBQK1NR w KQkq")); + openings.add(new Opening("C24", "Bishop's Opening: Kitchener Folly", "rnbq1rk1ppppbppp5n24p32B1P33P1N2PPP2PPPRNBQK2R w KQ")); + openings.add(new Opening("C24", "Bishop's Opening: Krejcik Gambit", "r1bqk2rpppp1ppp2n2n22b1p31PB1P35P2P1PPN1PPRNBQK2R b KQkq")); + openings.add(new Opening("C24", "Bishop's Opening: Ponziani Gambit", "rnbqkb1rpppp1ppp5n24p32BPP38PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C24", "Bishop's Opening: Urusov Gambit", "rnbqkb1rpppp1ppp5n282BpP35N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C24", "Bishop's Opening: Urusov Gambit, Keidansky Gambit", "rnbqkb1rpppp1ppp882BQn35N2PPP2PPPRNB1K2R b KQkq")); + openings.add(new Opening("C24", "Bishop's Opening: Urusov Gambit, Panov Variation", "rnb1k2rppp1qppp5n23P41bBp42P2N2PP3PPPRNBQK2R w KQkq")); + openings.add(new Opening("C24", "Bishop's Opening: Warsaw Gambit", "rnbqkb1rpppp1ppp5n282BpP32P5PP3PPPRNBQK1NR b KQkq")); + openings.add(new Opening("C25", "Vienna Game: Anderssen Defense", "rnbqk1nrpppp1ppp82b1p34P32N5PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C25", "Vienna Game: Giraffe Attack", "rnbqk1nrpppp1ppp82b1p34P1Q12N5PPPP1PPPR1B1KBNR b KQkq")); + openings.add(new Opening("C25", "Vienna Game: Hamppe-Allgaier Gambit, Alapin Variation", "r1bqkbnrppp2p1p2np46N14PppP2N5PPPP2P1R1BQKB1R w KQkq")); + openings.add(new Opening("C25", "Vienna Game: Hamppe-Meitner Variation", "rnbqk1nrpppp1ppp82b1p3N3P38PPPP1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C25", "Vienna Game: Hamppe-Muzio Gambit", "r1bqkbnrpppp1p1p2n582B1Ppp12N2N2PPPP2PPR1BQ1RK1 b kq")); + return openings; + } + + private static ArrayList all_2() + { + final ArrayList openings = new ArrayList<>(); + openings.add(new Opening("C25", "Vienna Game: Hamppe-Muzio, Dubois Variation", "r1b1kbnrpppp1p1p5q24n32B1PQ22N5PPPP2PPR1B2RK1 w kq")); + openings.add(new Opening("C25", "Vienna Game: Max Lange Defense", "r1bqkbnrpppp1ppp2n54p34P32N5PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C25", "Vienna Game: Mieses Variation, Erben Gambit", "rnbqkb1rpp3ppp2p2n23Pp382N3P1PPPP1P1PR1BQKBNR w KQkq")); + openings.add(new Opening("C25", "Vienna Game: Omaha Gambit", "rnbqkbnrppp2ppp3p44p34PP22N5PPPP2PPR1BQKBNR b KQkq")); + openings.add(new Opening("C25", "Vienna Game: Paulsen Variation", "r1bqkbnrpppp1ppp2n54p34P32N3P1PPPP1P1PR1BQKBNR b KQkq")); + openings.add(new Opening("C25", "Vienna Game: Paulsen Variation, Mariotti Gambit", "r1bqk1nrpppp1pp12n52b1p34P2p2N2NP1PPPP1PBPR1BQK2R w KQkq")); + openings.add(new Opening("C25", "Vienna Game: Paulsen Variation, Pollock Gambit", "r1bqk2rppp2ppp2n2n22bPp382N3P1PPPPNPBPR1BQK2R b KQkq")); + openings.add(new Opening("C25", "Vienna Game: Paulsen Variation: 3... Nf6 4. Bg2", "r1bqk2rppp2ppp2n2n22bpp34P32N3P1PPPPNPBPR1BQK2R w KQkq")); + openings.add(new Opening("C25", "Vienna Game: Pierce Gambit, Rushmere Attack", "r2qkbnrppp2p1p2P582BP1pb12N2p2PPP3PPR1BQ1RK1 b kq")); + openings.add(new Opening("C25", "Vienna Game: Vienna Gambit", "r1bqkbnrpppp1ppp2n54p34PP22N5PPPP2PPR1BQKBNR b KQkq")); + openings.add(new Opening("C25", "Vienna Game: Vienna Gambit, Cunningham Defense", "r1bqk1nrppppbppp2n584Pp22N2N2PPPP2PPR1BQKB1R w KQkq")); + openings.add(new Opening("C25", "Vienna Game: Vienna Gambit, Hamppe-Allgaier Gambit", "r1bqkbnrpppp1p1p2n56N14PppP2N5PPPP2P1R1BQKB1R b KQkq")); + openings.add(new Opening("C25", "Vienna Game: Vienna Gambit, Hamppe-Allgaier-Thorold Gambit", "r1bq1bnrpppp1k22n4p83PPppP2N5PPP3P1R1BQKB1R b KQ")); + openings.add(new Opening("C25", "Vienna Game: Vienna Gambit, Hamppe-Muzio Gambit", "r1bqkbnrpppp1p1p2n582B1Pp22N2p2PPPP2PPR1BQ1RK1 w kq")); + openings.add(new Opening("C25", "Vienna Game: Vienna Gambit, Quelle Gambit", "r1bqk1nrppp2ppp2np42b1P34P32N5PPPP2PPR1BQKBNR w KQkq")); + openings.add(new Opening("C25", "Vienna Game: Vienna Gambit, Steinitz Gambit", "r1bqkbnrpppp1ppp2n583PPp22N5PPP3PPR1BQKBNR b KQkq")); + openings.add(new Opening("C25", "Vienna Game: Vienna Gambit, Steinitz Gambit, Knight Variation", "r1bqkbnrpppp1ppp2n584Pp22N2N2PPPP2PPR1BQKB1R b KQkq")); + openings.add(new Opening("C25", "Vienna Game: Vienna Gambit, Steinitz Gambit, Paulsen Defense", "r1b1kbnrppp2ppp2np483PPp1q2N5PPP1K1PPR1BQ1BNR w kq")); + openings.add(new Opening("C25", "Vienna Game: Vienna Gambit, Steinitz Gambit, Soerensen Defense", "r1b1kbnrpppp1p1p2n56p13PPp1q2N5PPP1K1PPR1BQ1BNR w kq")); + openings.add(new Opening("C25", "Vienna Game: Vienna Gambit, Steinitz Gambit, Zukertort Defense", "r1b1kbnrppp2ppp2n53p43PPp1q2N5PPP1K1PPR1BQ1BNR w kq")); + openings.add(new Opening("C25", "Vienna Game: Zhuravlev Countergambit", "rnbqk2rpppp1ppp5n24p31b2P1Q12N5PPPP1PPPR1B1KBNR w KQkq")); + openings.add(new Opening("C25", "Vienna Game: Zhuravlev Countergambit", "rnbqk1nrpppp1ppp84p31b2P32N5PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C25", "Vienna Game: Zhuravlev Countergambit", "rnbqk1nrpppp1ppp84p31b2P1Q12N5PPPP1PPPR1B1KBNR b KQkq")); + openings.add(new Opening("C26", "Bishop's Opening: Vienna Hybrid, Spielmann Attack", "rnbqk2rpppp1ppp5n22b1p32B1P32NP4PPP2PPPR1BQK1NR b KQkq")); + openings.add(new Opening("C26", "Vienna Game: Falkbeer Variation", "rnbqkb1rpppp1ppp5n24p34P32N5PPPP1PPPR1BQKBNR w KQkq")); + openings.add(new Opening("C26", "Vienna Game: Mengarini Variation", "rnbqkb1rpppp1ppp5n24p34P3P1N51PPP1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C26", "Vienna Game: Mieses Variation", "rnbqkb1rpppp1ppp5n24p34P32N3P1PPPP1P1PR1BQKBNR b KQkq")); + openings.add(new Opening("C26", "Vienna Game: Stanley Variation", "rnbqkb1rpppp1ppp5n24p32B1P32N5PPPP1PPPR1BQK1NR b KQkq")); + openings.add(new Opening("C26", "Vienna Game: Stanley Variation, Reversed Spanish", "rnbqk2rpppp1ppp5n24p31bB1P32N5PPPP1PPPR1BQK1NR w KQkq")); + openings.add(new Opening("C27", "Bishop's Opening: Boden-Kieseritzky Gambit", "rnbqkb1rpppp1ppp84p32B1n32N2N2PPPP1PPPR1BQK2R b KQkq")); + openings.add(new Opening("C27", "Boden-Kieseritzky Gambit, Lichtenhein Defense", "rnbqkb1rppp2ppp83pp32B1n32N2N2PPPP1PPPR1BQK2R w KQkq")); + openings.add(new Opening("C27", "Vienna Game", "rnbqkbnrpppp1ppp84p34P32N5PPPP1PPPR1BQKBNR b KQkq")); + openings.add(new Opening("C27", "Vienna Game", "rnbqkb1rpppp1ppp84p32B1n32N5PPPP1PPPR1BQK1NR w KQkq")); + openings.add(new Opening("C27", "Vienna Game: Adams' Gambit", "r1bqkb1rpppp1ppp2nn44p2Q3P41BN5PPP2PPPR1B1K1NR b KQkq")); + openings.add(new Opening("C27", "Vienna Game: Stanley Variation, Alekhine Variation", "r1bqk2rppppbppp2nn44N2Q81BN5PPPP1PPPR1B1K2R b KQkq")); + openings.add(new Opening("C27", "Vienna Game: Stanley Variation, Eifel Gambit", "rnbqk2rp1pp1ppp5n21pb1p32B1P32N5PPPPNPPPR1BQK2R w KQkq")); + openings.add(new Opening("C27", "Vienna Game: Stanley Variation, Frankenstein-Dracula Variation", "N1bk1b1rp2pq2p1pnn2p13Qpp281B6PPPP1PPPR1B1K1NR w KQ")); + openings.add(new Opening("C27", "Vienna Game: Stanley Variation, Monster Declined", "rnbqk2rppppbppp3n44p2Q81BN5PPPP1PPPR1B1K1NR w KQkq")); + openings.add(new Opening("C28", "Bishop's Opening: Vienna Hybrid", "r1bqkb1rpppp1ppp2n2n24p32B1P32NP4PPP2PPPR1BQK1NR b KQkq")); + openings.add(new Opening("C28", "Bishop's Opening: Vienna Hybrid, Hromádka Variation", "r1bqk2rpppp1ppp2n2n24p31bB1P32NP4PPP1NPPPR1BQK2R b KQkq")); + openings.add(new Opening("C28", "Vienna Game: Stanley Variation, Three Knights Variation", "r1bqkb1rpppp1ppp2n2n24p32B1P32N5PPPP1PPPR1BQK1NR w KQkq")); + openings.add(new Opening("C28", "Vienna Game: Vienna Gambit", "rnbqkb1rpppp1ppp5n24p34PP22N5PPPP2PPR1BQKBNR b KQkq")); + openings.add(new Opening("C28", "Vienna Game: Vienna Gambit, Pierce Gambit", "r1bqkbnrpppp1p1p2n56p13PPp22N2N2PPP3PPR1BQKB1R b KQkq")); + openings.add(new Opening("C28", "Vienna Game: Vienna Gambit, Steinitz Gambit, Fraser-Minckwitz Defense", "r1b1kbnrp1pp1ppp1pn583PPp1q2N5PPP1K1PPR1BQ1BNR w kq")); + openings.add(new Opening("C28", "Vienna Game: Vienna Gambit, Steinitz Gambit, Main Line", "r1b1kbnrpppp1ppp2n583PPp1q2N5PPP1K1PPR1BQ1BNR b kq")); + openings.add(new Opening("C29", "Vienna Game: Heyde Variation", "rnbqkb1rppp3pp83pPp23Pn32N2Q2PPP3PPR1B1KBNR b KQkq")); + openings.add(new Opening("C29", "Vienna Game: Vienna Gambit, Bardeleben Variation", "rnbqkb1rppp3pp83pPp24n32N2Q2PPPP2PPR1B1KBNR w KQkq")); + openings.add(new Opening("C29", "Vienna Game: Vienna Gambit, Breyer Variation", "rnbqk2rppp1bppp83pP34n32N2N2PPPP2PPR1BQKB1R w KQkq")); + openings.add(new Opening("C29", "Vienna Game: Vienna Gambit, Kaufmann Variation", "rn1qkb1rppp2ppp83pP34n1b12N2N2PPPPQ1PPR1B1KB1R b KQkq")); + openings.add(new Opening("C29", "Vienna Game: Vienna Gambit, Main Line", "rnbqkb1rppp2ppp5n23pp34PP22N5PPPP2PPR1BQKBNR w KQkq")); + openings.add(new Opening("C29", "Vienna Game: Vienna Gambit, Modern Variation", "rnbqkb1rppp2ppp83pP34n32NP4PPP3PPR1BQKBNR b KQkq")); + openings.add(new Opening("C29", "Vienna Game: Vienna Gambit, Paulsen Attack", "rnbqkb1rppp2ppp83pP34n32N2Q2PPPP2PPR1B1KBNR b KQkq")); + openings.add(new Opening("C29", "Vienna Game: Vienna Gambit, Steinitz Variation", "rnbqkb1rppp2ppp5n23pp34PP22NP4PPP3PPR1BQKBNR b KQkq")); + openings.add(new Opening("C29", "Vienna Game: Vienna Gambit, Wurzburger Trap", "rnb1kb1rppp2ppp83NP2q83P1Nn1PPP4PR1BQKB1R b KQkq")); + openings.add(new Opening("C30", "King's Gambit", "rnbqkbnrpppp1ppp84p34PP28PPPP2PPRNBQKBNR b KQkq")); + openings.add(new Opening("C30", "King's Gambit Accepted, Dodo Variation", "rnbqkbnrpppp1ppp884PpQ18PPPP2PPRNB1KBNR b KQkq")); + openings.add(new Opening("C30", "King's Gambit Accepted, Eisenberg Variation", "rnbqkbnrpppp1ppp884Pp27NPPPP2PPRNBQKB1R b KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Classical Variation", "rnbqk1nrpppp1ppp82b1p34PP28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Classical Variation", "rnbqk1nrppp2ppp3p42b1p34PP22P2N2PP1P2PPRNBQKB1R b KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Classical Variation, Euwe Attack", "rn1qk1nrppp2ppp82b1p3Q3P1b12P2N2PP1P2PPRNB1KB1R b KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Classical Variation, Rotlewi Countergambit", "rnbqk1nrppp2ppp3p42b1p31P2PP25N2P1PP2PPRNBQKB1R b KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Classical Variation, Rubinstein Countergambit", "rnbqk1nrppp3pp3p42b1pp24PP22P2N2PP1P2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Hobbs-Zilbermints Gambit", "r1bqkbnrpppp1p22n4p4p1P14P35N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Keene Defense", "rnb1kbnrppppqppp84p34PP26P1PPPP3PRNBQKBNR w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Mafia Defense", "rnbqkbnrpp1p1ppp82p1p34PP28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Miles Defense", "r1bqkbnrpppp2pp2n54pp24PP25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Norwalde Variation", "rnb1kbnrpppp1ppp5q24p34PP28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Norwalde Variation, Schubert Variation", "rnb1kbnrpppp1ppp84p33PPq22N5PPP3PPR1BQKBNR b KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Petrov's Defense", "rnbqkb1rpppp1ppp5n24p34PP28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Queen's Knight Defense", "r1bqkbnrpppp1ppp2n54p34PP28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Senechaud Countergambit", "rnbqk1nrpppp1p1p82b1p1p14PP25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Soller-Zilbermints Gambit", "r1bqkbnrpppp2pp2n2p24P34P38PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined, Zilbermints Double Gambit", "r1bqkbnrpppp1p1p2n54p1p14PP25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined: Classical, Hanham Variation", "r1bqk1nrpppn1ppp3p42b1p34PP22N2N2PPPP2PPR1BQKB1R w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined: Classical, Réti Variation", "rnbqk1nrppp3pp82b2p22BpP32P2N2PP4PPRNBQK2R b KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined: Classical, Soldatenkov Variation", "rnbqk1nrppp2ppp3p42b1P34P35N2PPPP2PPRNBQKB1R b KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined: Classical, Svenonius Variation", "r2qk2rppp2ppp2np1n22b52B1Pp22NP1Q1PPPP3P1R1B1K2R w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined: Keene's Defense", "rnb1kbnrpppp1ppp84p34PP1q8PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined: Keene's Defense", "rnb1kbnrpppp1ppp84p34PP1q6P1PPPP3PRNBQKBNR b KQkq")); + openings.add(new Opening("C30", "King's Gambit Declined: Norwalde Variation, Buecker Gambit", "rnb1k1nrpppp1ppp84p31bB1Pq22N2N2PPPP2PPR1BQK2R b KQkq")); + openings.add(new Opening("C30", "King's Gambit: Panteldakis Countergambit", "rnbqkbnrpppp2pp84pp24PP28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C30", "King's Gambit: Panteldakis Countergambit, Greco Variation", "rnb1kbnrpppp2pp84pP25P1q8PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C30", "King's Gambit: Panteldakis Countergambit, Pawn Sacrifice Line", "rnb1kbnrppppq2p6P17Q5p28PPPP2PPRNBK1BNR b kq")); + openings.add(new Opening("C30", "King's Gambit: Panteldakis Countergambit, Schiller's Defense", "rnbqk1nrpppp2pp82b1pP25P28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C30", "King's Gambit: Panteldakis Countergambit, Shirazi Line", "rnbq1bnrppppk1pp85P1Q5p28PPPP2PPRNB1KBNR w KQ")); + openings.add(new Opening("C30", "King's Gambit: Panteldakis Countergambit, Symmetrical Variation", "rnbqk1nrppp3pp3b43p1P23P1p23B1N2PPP3PPRNBQK2R b KQkq")); + openings.add(new Opening("C30", "King's Gambit: Zilbermints Double Countergambit", "rnbqkbnrpppp1p1p84p1p14PP28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C31", "King's Gambit Declined: Falkbeer Countergambit", "rnbqkbnrppp2ppp83pp34PP28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C31", "King's Gambit Declined: Falkbeer, Milner-Barry Variation", "rnbqkbnrppp2ppp83pp34PP22N5PPPP2PPR1BQKBNR b KQkq")); + openings.add(new Opening("C31", "King's Gambit Declined: Falkbeer, Rubinstein Variation", "rnbqkb1rppp2ppp5n23P44pP22N5PPPPQ1PPR1B1KBNR b KQkq")); + openings.add(new Opening("C31", "King's Gambit, Falkbeer Countergambit Accepted", "rnbqkbnrppp2ppp83Pp35P28PPPP2PPRNBQKBNR b KQkq")); + openings.add(new Opening("C31", "King's Gambit, Falkbeer Countergambit, Anderssen Attack", "rnbqkbnrppp2ppp81B1P44pP28PPPP2PPRNBQK1NR b KQkq")); + openings.add(new Opening("C31", "King's Gambit, Falkbeer Countergambit, Blackburne Attack", "rnbqkbnrppp2ppp83pp34PP25N2PPPP2PPRNBQKB1R b KQkq")); + openings.add(new Opening("C31", "King's Gambit, Falkbeer Countergambit, Charousek Gambit", "rnbqkbnrppp2ppp83P44pP23P4PPP3PPRNBQKBNR b KQkq")); + openings.add(new Opening("C31", "King's Gambit, Falkbeer Countergambit, Charousek Gambit, Morphy Defense", "rnbqk2rppp2ppp5n23P41b3P22NPp3PPPB2PPR2QKBNR w KQkq")); + openings.add(new Opening("C31", "King's Gambit, Falkbeer Countergambit, Hinrichsen Gambit", "rnbqkbnrppp2ppp83pp33PPP28PPP3PPRNBQKBNR b KQkq")); + openings.add(new Opening("C31", "King's Gambit, Falkbeer Countergambit, Miles Gambit", "rnbqk1nrppp2ppp82bPp35P28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C31", "King's Gambit, Falkbeer Countergambit, Nimzowitsch-Marshall Countergambit", "rnbqkbnrpp3ppp2p53Pp35P28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C31", "King's Gambit, Falkbeer Countergambit, Pickler Gambit", "rnbqk1nrpp3ppp2P52b1p35P28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C31", "King's Gambit, Falkbeer Countergambit, Staunton Line", "rnbqkbnrppp2ppp83P44pP28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C32", "King's Gambit Declined: Falkbeer, Alapin Variation", "rnb1k2rppp2ppp83q44nP28PPPNQbPPRNBK1B1R b kq")); + openings.add(new Opening("C32", "King's Gambit Declined: Falkbeer, Charousek Gambit", "rnbqkb1rppp2ppp83P44nP28PPP1Q1PPRNB1KBNR b KQkq")); + openings.add(new Opening("C32", "King's Gambit Declined: Falkbeer, Charousek Variation", "rnb1kb1rppp3pp83q1p24nPP18PPPNQ2PR1B1KBNR b KQkq")); + openings.add(new Opening("C32", "King's Gambit Declined: Falkbeer, Tarrasch Variation", "rn1q1rk1ppp2ppp82bP1b24nPP15N2PPP1Q2PRNB1KB1R w KQ")); + openings.add(new Opening("C32", "King's Gambit, Falkbeer Countergambit, Charousek Gambit Accepted", "rnbqkb1rppp2ppp5n23P44PP28PPP3PPRNBQKBNR b KQkq")); + openings.add(new Opening("C32", "King's Gambit, Falkbeer Countergambit, Charousek Gambit, Keres Variation", "rnbqkb1rppp2ppp5n23P44pP23P4PPPN2PPR1BQKBNR b KQkq")); + openings.add(new Opening("C32", "King's Gambit, Falkbeer Countergambit, Charousek Gambit, Main Line", "rn1qk2rppp2ppp82bP1b24nP25N2PPP1Q1PPRNB1KB1R w KQkq")); + openings.add(new Opening("C32", "King's Gambit, Falkbeer Countergambit, Charousek Gambit, Old Line", "rnbqkb1rppp2ppp5n23P44pP23P4PPP1Q1PPRNB1KBNR b KQkq")); + openings.add(new Opening("C32", "King's Gambit, Falkbeer Countergambit, Modern Transfer", "rnbqkbnrppp2ppp83P45p28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted", "rnbqkbnrpppp1ppp884Pp28PPPP2PPRNBQKBNR w KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Basman Gambit", "rnbqkbnrpppp1ppp884Pp28PPPPQ1PPRNB1KBNR b KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit", "rnbqkbnrpppp1ppp882B1Pp28PPPP2PPRNBQK1NR b KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit (see: Jaenisch Variation)", "rnb1kbnrpppp1ppp5q282B1Pp28PPPP2PPRNBQ1KNR w kq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, Anderssen Defense", "rnbqkbnrpppp1p1p86p12B1Pp28PPPP2PPRNBQK1NR w KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, Bledow Countergambit", "rnbqkb1rppp2ppp5n23B44Pp28PPPP2PPRNBQK1NR w KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, Boden Variation", "r1b1kbnrpppp1ppp2n582B1Pp1q8PPPP2PPRNBQ1KNR w kq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, Bogoljubov Defense", "rnbqkb1rpp1p1ppp2p2n282B1Pp22N5PPPP2PPR1BQK1NR w KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, Bogoljubov Variation", "rnbqkb1rpppp1ppp5n282B1Pp22N5PPPP2PPR1BQK1NR b KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, Bryan Countergambit", "rnb1kbnrp1pp1ppp81p62B1Pp1q8PPPP2PPRNBQ1KNR w kq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, Cozio Defense", "rnbqkb1rpppp1ppp5n282B1Pp28PPPP2PPRNBQK1NR w KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, Cozio Variation", "rnb1kbnrppp2ppp3p482B1Pp1q8PPPP2PPRNBQ1KNR w kq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, First Jaenisch Variation", "rnb1kb1rpppp1ppp5n282B1Pp1q8PPPP2PPRNBQ1KNR w kq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, Gianutio Gambit", "rnbqkbnrpppp2pp85p22B1Pp28PPPP2PPRNBQK1NR w KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, Greco Variation", "rnb1k1nrpppp1ppp82b52B1Pp1q8PPPP2PPRNBQ1KNR w kq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, Kieseritzky Gambit", "rnbqkbnrp1pp1ppp81p62B1Pp28PPPP2PPRNBQK1NR w KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, Lopez Defense", "rnbqkbnrpp1p1ppp2p582B1Pp28PPPP2PPRNBQK1NR w KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, Lopez Variation", "rnb1kbnrpppp1p1p86p12B1Pp1q8PPPP2PPRNBQ1KNR w kq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, Maurian Defense", "r1bqkbnrpppp1ppp2n582B1Pp28PPPP2PPRNBQK1NR w KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Bishop's Gambit, McDonnell Attack", "rnb1k2rppppnpbp86p12BPPp1q2N3P1PPP4PR1BQ1KNR b kq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Breyer Gambit", "rnbqkbnrpppp1ppp884Pp25Q2PPPP2PPRNB1KBNR b KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Carrera Gambit", "rnbqkbnrpppp1ppp87Q4Pp28PPPP2PPRNB1KBNR b KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Gaga Gambit", "rnbqkbnrpppp1ppp884Pp26P1PPPP3PRNBQKBNR b KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Orsini Gambit", "rnbqkbnrpppp1ppp884Pp21P6P1PP2PPRNBQKBNR b KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Paris Gambit", "rnbqkbnrpppp1ppp884Pp28PPPPN1PPRNBQKB1R b KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Polerio Gambit", "rnbqkbnrpppp1ppp883PPp28PPP3PPRNBQKBNR b KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Schurig Gambit", "rnbqkbnrpppp1ppp81B64Pp28PPPP2PPRNBQK1NR b KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Stamma Gambit", "rnbqkbnrpppp1ppp884Pp1P8PPPP2P1RNBQKBNR b KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Tartakower Gambit", "rnbqkbnrpppp1ppp884Pp28PPPPB1PPRNBQK1NR b KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Tartakower Gambit, Weiss Defense", "rnbqkbnrppp3pp3p45P25p28PPPPB1PPRNBQK1NR w KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted, Tumbleweed", "rnbqkbnrpppp1ppp884Pp28PPPP1KPPRNBQ1BNR b kq")); + openings.add(new Opening("C33", "King's Gambit Accepted: Bishop's Gambit, Anderssen Variation", "rnbqkbnrpp3ppp2p53B44Pp28PPPP2PPRNBQK1NR w KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted: Bishop's Gambit, Bledow Variation", "rnbqkbnrppp2ppp83p42B1Pp28PPPP2PPRNBQK1NR w KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted: Bishop's Gambit, Boren-Svenonius Variation", "rnb1k1nrppp2ppp3b43B44Pp1q8PPPP2PPRNBQ1KNR w kq")); + openings.add(new Opening("C33", "King's Gambit Accepted: Bishop's Gambit, Chigorin's Attack", "rnb1kbnrppp2p1p83B2p14Pp1q6P1PPPP3PRNBQ1KNR b kq")); + openings.add(new Opening("C33", "King's Gambit Accepted: Bishop's Gambit, Classical Defense", "rnb1k2rppppnpbp86p12BPPp1q2N5PPP3PPR1BQ1KNR w kq")); + openings.add(new Opening("C33", "King's Gambit Accepted: Bishop's Gambit, Classical Defense: Cozio Attack", "rnb1kbnrpppp1p1p86p12B1Pp1q5Q2PPPP2PPRNB2KNR b kq")); + openings.add(new Opening("C33", "King's Gambit Accepted: Bishop's Gambit, Fraser Variation", "rnb1k1nrpppp1pbp86p12B1P2q2N2Qp1PPPP3PR1B2KNR b kq")); + openings.add(new Opening("C33", "King's Gambit Accepted: Bishop's Gambit, Grimm Attack", "rnb1k1nrppp2pbp3p44P1p12BP1p1q2N5PPP3PPR1BQ1KNR b kq")); + openings.add(new Opening("C33", "King's Gambit Accepted: Bishop's Gambit, McDonnell Attack", "rnb1k1nrpppp1pbp86p12B1Pp1q2N3P1PPPP3PR1BQ1KNR b kq")); + openings.add(new Opening("C33", "King's Gambit Accepted: Bishop's Gambit, Paulsen Attack", "rnbqk2rpppp1ppp5n24P31bB2p22N5PPPP2PPR1BQK1NR b KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted: Bishop's Gambit, Steinitz Defense", "rnbqkb1rppppnppp882B1Pp28PPPP2PPRNBQK1NR w KQkq")); + openings.add(new Opening("C33", "King's Gambit Accepted: Lopez-Gianutio Countergambit, Hein Variation", "rnbk1bnrpppp2pp882B1pp1q2N5PPPPQ1PPR1BK2NR w -")); + openings.add(new Opening("C33", "King's Gambit Accepted: Schurig Gambit", "rnbqkbnrpppp1ppp884Pp23B4PPPP2PPRNBQK1NR b KQkq")); + openings.add(new Opening("C34", "King's Gambit Accepted, Becker Defense", "rnbqkbnrpppp1pp17p84Pp25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C34", "King's Gambit Accepted, Bonsch-Osmolovsky Variation", "rnbqkb1rppppnppp884Pp25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C34", "King's Gambit Accepted, Fischer Defense", "rnbqkbnrppp2ppp3p484Pp25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C34", "King's Gambit Accepted, Fischer Defense, Schulder Gambit", "rnbqkbnrppp2ppp3p481P2Pp25N2P1PP2PPRNBQKB1R b KQkq")); + openings.add(new Opening("C34", "King's Gambit Accepted, Fischer Defense, Spanish Variation", "rnbqkb1rppp2ppp3p1n283PPp23B1N2PPP3PPRNBQK2R b KQkq")); + openings.add(new Opening("C34", "King's Gambit Accepted, Gianutio Countergambit", "rnbqkbnrpppp2pp85p24Pp25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C34", "King's Gambit Accepted, King's Knight Gambit", "rnbqkbnrpppp1ppp884Pp25N2PPPP2PPRNBQKB1R b KQkq")); + openings.add(new Opening("C34", "King's Gambit Accepted, MacLeod Defense", "r1bqkbnrpppp1ppp2n584Pp25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C34", "King's Gambit Accepted, Schallopp Defense", "rnbqkb1rpppp1ppp5n284Pp25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C34", "King's Gambit Accepted, Schallopp Defense, Tashkent Attack", "rnbqkb1rpppp1ppp84P2n5pP15N2PPPP3PRNBQKB1R b KQkq")); + openings.add(new Opening("C35", "King's Gambit Accepted, Cunningham Defense", "rnbqk1nrppppbppp884Pp25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C35", "King's Gambit Accepted, Cunningham Defense, Bertin Gambit", "rnbqk1nrpppp1ppp882B1P2b5N2PPPP3pRNBQ1R1K b kq")); + openings.add(new Opening("C35", "King's Gambit Accepted, Cunningham Defense, McCormick Defense", "rnbqk2rppppbppp5n282B1Pp25N2PPPP2PPRNBQK2R w KQkq")); + openings.add(new Opening("C35", "King's Gambit Accepted: Cunningham, Bertin Gambit", "rnbqk1nrpppp1ppp882B1Pp1b5NP1PPPP3PRNBQK2R b KQkq")); + openings.add(new Opening("C36", "King's Gambit Accepted, Abbazia Defense", "rnbqkb1rppp2ppp5n23P45p25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C36", "King's Gambit Accepted, Abbazia Defense, Main Line", "rnbqkb1rp4ppp2p53n42B2p25N2PPPP2PPRNBQK2R w KQkq")); + openings.add(new Opening("C36", "King's Gambit Accepted, Modern Defense", "rnbqkbnrppp2ppp83p44Pp25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C36", "King's Gambit Accepted: Modern Defense", "rnbqkbnrppp2ppp83P45p25N2PPPP2PPRNBQKB1R b KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Australian Gambit", "rnbqkbnrpppp1p1p882B1PppP5N2PPPP2P1RNBQK2R b KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Blachly Gambit", "r1bqkbnrpppp1p1p2n56p12B1Pp25N2PPPP2PPRNBQK2R w KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Double Muzio Gambit", "rnb1kbnrpppp1B1p84q35p25Q2PPPP2PPRNB2RK1 b kq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Double Muzio Gambit, Baldwin Gambit", "rnb1kbnrpppp1p1p83N42q1Pp25Q2PPPP2PPR1B2R1K b kq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Double Muzio Gambit, Bello Gambit", "rnb1kbnrpppp1p1p5q282B1Pp22N2Q2PPPP2PPR1B2RK1 b kq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Double Muzio Gambit, Paulsen Defense", "r1b1k2rppppnp1p2n4b4q32B2p22NP1Q2PPPB2PP4RRK1 b kq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Double Muzio Gambit, Young Gambit", "rnb2bnrpppp1k1p5q284P32N1pQ2PPP3PPR4RK1 w -")); + openings.add(new Opening("C37", "King's Gambit Accepted, Ghulam-Kassim Gambit", "rnbqkbnrpppp1p1p882BPPp25Q2PPP3PPRNB1K2R b KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted, King's Knight Gambit", "rnbqkbnrpppp1p1p86p12B1Pp25N2PPPP2PPRNBQK2R b KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Kotov Gambit", "rnbqkbnrpppp1p1p882BPPB25p2PPP3PPRN1QK2R b KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Lolli Gambit", "rnbqkbnrpppp1B1p884Ppp15N2PPPP2PPRNBQK2R b KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted, McDonnell Gambit", "rnbqkbnrpppp1p1p882B1Ppp12N2N2PPPP2PPR1BQK2R b KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Middleton Countergambit", "rn1qkbnrppp2p23p46p12B1Ppp15N2PPPP2P1RNBQ1RK1 w kq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Muzio Gambit Accepted, From's Defense", "rnb1kbnrppppqp1p882B1Pp25Q2PPPP2PPRNB2RK1 w kq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Muzio Gambit, Brentano Defense", "rnbqkbnrppp2p1p83p42B1Ppp15N2PPPP2PPRNBQ1RK1 w kq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Muzio Gambit, Sarratt Defense", "rnb1kbnrpppp1p1p5q282B1Pp25Q2PPPP2PPRNB2RK1 w kq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Muzio Gambit, Wild Muzio Gambit", "rnbqkbnrpppp1p1p882B1Ppp15N2PPPP2PPRNBQ1RK1 b kq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Quade Gambit", "rnbqkbnrpppp1p1p86p14Pp22N2N2PPPP2PPR1BQKB1R b KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Rosentreter Gambit", "rnbqkbnrpppp1p1p86p13PPp25N2PPP3PPRNBQKB1R b KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Rosentreter Gambit, Bird Gambit", "rnb1kbnrpppp1p1p84N33PPppq6P1PPP4PRNBQKB1R b KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Rosentreter Gambit, Soerensen Gambit", "rnbqkbnrpppp1p1p883PPpp12N2N2PPP3PPR1BQKB1R b KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Rosentreter-Testa Gambit", "rnbqkbnrpppp1p1p883PPBp15N2PPP3PPRN1QKB1R b KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Salvio Gambit", "rnbqkbnrpppp1p1p84N32B1Ppp18PPPP2PPRNBQK2R b KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Salvio Gambit, Cochrane Gambit", "rnb1kbnrpppp1p1p84N32B1P1pq5p2PPPP2PPRNBQ1K1R w kq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Salvio Gambit, Santa Maria Defense", "rnb1kb1rpppp1p1p5n24N32B1Pppq8PPPP2PPRNBQ1K1R w kq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Salvio Gambit, Silberschmidt Defense", "rnb1kb1rpppp1p1p7n4N32B1Pppq8PPPP2PPRNBQ1K1R w kq")); + openings.add(new Opening("C37", "King's Gambit Accepted, Salvio Gambit, Viennese Variation", "r1b1kbnrpppp1p1p2n54N32B1Pppq8PPPP2PPRNBQ1K1R w kq")); + openings.add(new Opening("C37", "King's Gambit Accepted: Ghulam-Kassim Gambit", "rnbqkbnrpppp1p1p882BPPpp15N2PPP3PPRNBQK2R b KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted: King Knight's Gambit", "rnbqkbnrpppp1p1p86p14Pp25N2PPPP2PPRNBQKB1R w KQkq")); + openings.add(new Opening("C37", "King's Gambit Accepted: Lolli Gambit, Young Variation", "rnb2bnrpppp1k1p5q284Pp22N1BQ2PPP3PPR4RK1 b -")); + openings.add(new Opening("C37", "King's Gambit Accepted: Muzio Gambit, Holloway Defense", "r1bqkbnrpppp1p1p2n582B1Pp25Q2PPPP2PPRNB2RK1 w kq")); + openings.add(new Opening("C37", "King's Gambit Accepted: Muzio Gambit, Kling and Horwitz Counterattack", "rnb1kbnrppppqp1p882B1Ppp15N2PPPP2PPRNBQ1RK1 w kq")); + openings.add(new Opening("C37", "King's Gambit Accepted: Salvio Gambit, Anderssen Counterattack", "rnb1kb1rppp2p1p3p3n4N32BPPppq8PPP3PPRNBQ1K1R w kq")); + openings.add(new Opening("C37", "King's Gambit Accepted: Silberschmidt Gambit", "rnb1kb1rpppp1p1p7n4N32BPP1pq5p2PPP3PPRNBQ1K1R w kq")); + openings.add(new Opening("C37", "King's Gambit Accepted: Soerensen Gambit", "rnbqkbnrpppp1p1p84N33PPpp18PPP3PPRNBQKB1R b KQkq")); + openings.add(new Opening("C38", "King's Gambit Accepted, Greco Gambit", "rnbqk1nrppp2pb13p3p6p12BPPp1P5N2PPP3P1RNBQK2R w KQkq")); + openings.add(new Opening("C38", "King's Gambit Accepted, Hanstein Gambit", "rnbqk1nrpppp1pbp86p12B1Pp25N2PPPP2PPRNBQ1RK1 b kq")); + openings.add(new Opening("C38", "King's Gambit Accepted, Mayet Gambit", "rnbqk1nrppp2pbp3p46p12BPPp22P2N2PP4PPRNBQK2R b KQkq")); + openings.add(new Opening("C38", "King's Gambit Accepted, Philidor Gambit", "rnbqk1nrpppp1pbp86p12B1Pp1P5N2PPPP2P1RNBQK2R b KQkq")); + openings.add(new Opening("C38", "King's Gambit Accepted, Philidor Gambit, Schultz Variation", "rnbqk1nrppp2pb13p3p6p12BPPp1P3Q1N2PPP3P1RNB1K2R b KQkq")); + openings.add(new Opening("C38", "King's Gambit Accepted, Traditional Variation", "rnbqk1nrpppp1pbp86p12B1Pp25N2PPPP2PPRNBQK2R w KQkq")); + openings.add(new Opening("C38", "King's Gambit Accepted: Greco Gambit", "rnbqk1nbpp3p22pp44N1p12BPPp22N5PPP3P1R1BQK3 b Qq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Allgaier Gambit", "rnbqkbnrpppp1p1p86N14PppP8PPPP2P1RNBQKB1R b KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Allgaier Gambit, Thorold Attack", "rnbq1bnrpppp1k27p83PPppP8PPP3P1RNBQKB1R b KQ")); + openings.add(new Opening("C39", "King's Gambit Accepted, Allgaier Gambit, Urusov Attack", "rnbq1bnrpppp1k27p82B1PppP8PPPP2P1RNBQK2R b KQ")); + openings.add(new Opening("C39", "King's Gambit Accepted, Kieseritzky Gambit, Anderssen Defense", "rnbqk2rppp2p1p3b1n23PN32B2ppP8PPPP2P1RNBQK2R w KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Kieseritzky Gambit, Anderssen-Cordel Gambit", "rnbqk2rppp2p1p3b43PN32BP1npP8PPP3P1RN1QK2R w KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Kieseritzky Gambit, Berlin Defense", "rnbqkb1rpppp1p1p5n24N34PppP8PPPP2P1RNBQKB1R w KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Kieseritzky Gambit, Berlin Defense", "rnbqkb1rpppp1p1p5n24N32B1PppP8PPPP2P1RNBQK2R b KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Kieseritzky Gambit, Brentano Defense", "rnbqkbnrppp2p1p83pN34PppP8PPPP2P1RNBQKB1R w KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Kieseritzky Gambit, Cotter Gambit", "rnbqkbnrpppp1N27p84PppP8PPPP2P1RNBQKB1R b KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Kieseritzky Gambit, Kolisch Defense", "rnbqkbnrppp2p1p3p44N34PppP8PPPP2P1RNBQKB1R w KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Kieseritzky Gambit, Long Whip", "rnbqkbnrpppp1p284N2p4PppP8PPPP2P1RNBQKB1R w KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Kieseritzky Gambit, Neumann Defense", "r1bqkbnrpppp1p1p2n54N34PppP8PPPP2P1RNBQKB1R w KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Kieseritzky Gambit, Paulsen Defense", "rnbqk1nrpppp1pbp84N34PppP8PPPP2P1RNBQKB1R w KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Kieseritzky Gambit, Paulsen Defense Deferred", "rnbqk2rppp2pbp5n23PN32B2ppP8PPPP2P1RNBQK2R w KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Kieseritzky Gambit, Rice Gambit", "rnbqk2rppp2p1p5n23Pb32B2ppP8PPPP2P1RNBQ1RK1 w kq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Kieseritzky Gambit, Rosenthal Defense", "rnb1kbnrppppqp1p84N34PppP8PPPP2P1RNBQKB1R w KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted, Kieseritzky Gambit, Rubinstein Variation", "rnbqkb1rpppp1p1p5n24N33PPppP8PPP3P1RNBQKB1R b KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted: Allgaier, Blackburne Gambit", "rnbq1bnrpppp1k27p84PppP2N5PPPP2P1R1BQKB1R b KQ")); + openings.add(new Opening("C39", "King's Gambit Accepted: Allgaier, Cook Variation", "rnbq1bnrppp3k17p4B32BPp1pP8PPP3P1RN1QK2R b KQ")); + openings.add(new Opening("C39", "King's Gambit Accepted: Allgaier, Horny Defense", "rnbq3rpppp1k23b1n1p84PQ1P8PPPP2P1RNB1KB1R w KQ")); + openings.add(new Opening("C39", "King's Gambit Accepted: Allgaier, Schlechter Defense", "rnbqkb1rpppp1p1p5n26N14PppP8PPPP2P1RNBQKB1R w KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted: Allgaier, Urusov Attack", "rnbq1bnrppp3k17p3B43PPppP8PPP3P1RNBQK2R b KQ")); + openings.add(new Opening("C39", "King's Gambit Accepted: Kieseritzky, Berlin Defense: de Riviere Variation", "rnbqkb1rppp2p1p5n23p44PpNP8PPPP2P1RNBQKB1R w KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted: Kieseritzky, Brentano Defense", "rnbqkb1rppp2p1p5n23pN33PPBpP8PPP3P1RN1QKB1R b KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted: Kieseritzky, Brentano Defense: Caro Variation", "rnbqkb1rppp2p1p83pN33PnBpP8PPPN2P1R2QKB1R b KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted: Kieseritzky, Brentano Defense: Kaplanek Variation", "rnb1k2rppp2p1p5n23qN31b1P1ppP2N5PPP2KP1R1BQ1B1R b kq")); + openings.add(new Opening("C39", "King's Gambit Accepted: Kieseritzky, Long Whip Defense: Jaenisch Variation", "rnbqk1n1pppp1p1r7b4N2p2BPPppP2N5PPP3P1R1BQK2R b KQq")); + openings.add(new Opening("C39", "King's Gambit Accepted: Kieseritzky, Polerio Defense", "rnbqk1nrppppbp1p84N34PppP8PPPP2P1RNBQKB1R w KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted: Kieseritzky, Rice Gambit", "rnbqk2rppp2p1p3b1n23PN32B2ppP8PPPP2P1RNBQ1RK1 b kq")); + openings.add(new Opening("C39", "King's Gambit Accepted: Kieseritzky, Salvio Defense: Cozio Variation", "rnb1kbnrppppq2p84Np22BPPppP8PPP3P1RNBQK2R b KQkq")); + openings.add(new Opening("C39", "King's Gambit Accepted: King Knight's Gambit", "rnbqkbnrpppp1p1p86p14Pp1P5N2PPPP2P1RNBQKB1R b KQkq")); + openings.add(new Opening("C40", "Elephant Gambit", "rnbqkbnrppp2ppp83pp34P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C40", "Elephant Gambit: Maróczy Gambit", "rnbqk1nrppp2ppp3b43Pp385N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C40", "Elephant Gambit: Paulsen Countergambit", "rnbqkbnrppp2ppp83P44p35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C40", "Elephant Gambit: Wasp Variation", "rnb1kbnrppp2ppp84N1q12B1p38PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C40", "Gunderam Defense", "rnb1kbnrppppqppp84p34P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C40", "King's Knight Opening", "rnbqkbnrpppp1ppp84p34P35N2PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C40", "King's Pawn Game: Busch-Gass Gambit", "rnbqk1nrpppp1ppp82b1p34P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C40", "King's Pawn Game: Busch-Gass Gambit, Chiodini Gambit", "r1bqk1nrpppp1ppp2n52b1N34P38PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C40", "King's Pawn Game: Damiano Defense", "rnbqkbnrpppp2pp5p24p34P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C40", "King's Pawn Game: Gunderam Defense, Gunderam Gambit", "rnb1kbnrppppq1pp84pp22B1P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C40", "King's Pawn Game: Gunderam Gambit", "rnbqkbnrpp1p1ppp2p54p34P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C40", "King's Pawn Game: La Bourdonnais Gambit", "rnb1kbnrpppp1ppp6q14p32B1P35N2PPPP1PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C40", "King's Pawn Game: McConnell Defense", "rnb1kbnrpppp1ppp5q24p34P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C40", "King's Pawn Game: Schulze-Mueller Gambit", "r1bqkbnrpppp1ppp84n33PP38PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit", "rnbqkbnrpppp2pp84pp24P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C40", "Latvian Gambit Accepted", "rnbqkbnrpppp2pp84pP285N2PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit Accepted, Bilguer Variation", "rnb1kbnrppp3pp3p1q25p22NPP38PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit Accepted, Bronstein Attack", "rnb1kbnrppp3pp3p1q282NPp38PPP1BPPPRNBQK2R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit Accepted, Bronstein Gambit", "rnb1kbnrppp4p3p1qp182NPp38PPP1QPPPRNB1KB1R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit Accepted, Foltys Variation", "rnb1kbnrpppp2pp5q282N1p33P4PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit Accepted, Foltys-Leonhardt Variation", "rnb1kbnrpppp2pp5q25p22N1P38PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit Accepted, Leonhardt Variation", "rnb1kbnrpppp2pp5q282N1p32N5PPPP1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit Accepted, Main Line", "rnb1kbnrpppp2pp5q24Np23PP38PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit Accepted, Nimzowitsch Attack", "rnb1kbnrppp3pp3p1q283Pp34N3PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit: Behting Variation", "rnb1kb1Nppp3pp5n23p42B1p38PPPP1PqPRNBQKR2 w Qq")); + openings.add(new Opening("C40", "Latvian Gambit: Clam Gambit", "r1bqkbnrpppp2pp2n54pP283P1N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit: Corkscrew Countergambit", "rnbqkb1rpppp2pp5n24N32B1p38PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C40", "Latvian Gambit: Corkscrew Gambit", "rnb1kb1Nppp1q1pp5n23p42B1p38PPPP1PPPRNBQK2R w KQq")); + openings.add(new Opening("C40", "Latvian Gambit: Diepstraten Countergambit", "rnbqkbnrpppp2pp84pp22P1P35N2PP1P1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit: Fraser Defense", "r1bqkbnrpppp2pp2n54Np24P38PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C40", "Latvian Gambit: Greco Variation", "rnb1kbnrppppq1pp84Np24P38PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C40", "Latvian Gambit: Lobster Gambit", "rnbqkbnrpppp2pp84pp24P1P15N2PPPP1P1PRNBQKB1R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit: Mason Countergambit", "rnbqkbnrpppp2pp84pp23PP35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit: Mayet Attack", "rnbqkbnrpppp2pp84pp22B1P35N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit: Mayet Attack, Morgado Defense", "rnbqkb1rpppp2pp5n24pp22B1P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C40", "Latvian Gambit: Mayet Attack, Poisoned Pawn Variation", "rnb1kbnrpppp2pp84N32BPp38PPP2PqPRNBQK2R w KQkq")); + openings.add(new Opening("C40", "Latvian Gambit: Mayet Attack, Polerio-Svedenborg Variation", "rnbqkbnrppp3pp83pN32B1p38PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C40", "Latvian Gambit: Mayet Attack, Strautins Gambit", "rnbqkbnrp1pp2pp81p2pp22B1P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C40", "Latvian Gambit: Mlotkowski Variation", "rnbqkbnrpppp2pp84pp24P32N2N2PPPP1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C40", "Latvian Gambit: Senechaud Gambit", "rnbqkbnrpppp2pp84pp21P2P35N2P1PP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense", "rnbqkbnrppp2ppp3p44p33PP35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense", "rnbqkbnrppp2ppp3p44p34P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C41", "Philidor Defense", "rnbqkbnrppp2ppp3p44p32B1P35N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense", "rnbqk1nrppp1bppp3p44p32B1P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Alapin-Blackburne Gambit", "r2qkbnrpppn1ppp3p44P34P1b15N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Berger Variation", "r2q1rk1pp2bppp2npbn22p3B14P32N2N2PPP1BPPPR2QR1K1 b -")); + openings.add(new Opening("C41", "Philidor Defense: Bird Gambit", "rnbqkbnrppp2ppp3p483pP32P2N2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Boden Variation", "rn1qkbnrpppb1ppp3p483QP35N2PPP2PPPRNB1KB1R w KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Exchange Variation", "rnbqkb1rppp2ppp3p1n283NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Exchange Variation", "rnbqkbnrppp2ppp3p483NP38PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Exchange Variation", "rnbqkbnrppp2ppp3p483pP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Hanham Variation", "r1bqkbnrpppn1ppp3p44p33PP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Hanham Variation, Delmar Variation", "r1bqkbnrpp1n1ppp2pp44p32BPP32P2N2PP3PPPRNBQK2R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Hanham Variation, Krause Variation", "r1bqkbnrpp1n1ppp2pp44p32BPP35N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C41", "Philidor Defense: Hanham Variation, Schlechter Variation", "r1bqkbnrpp1n1ppp2pp44p32BPP32N2N2PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Hanham Variation, Sharp Variation", "r1bqkbnrppp2ppp1n1p44p32BPP35N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Hanham Variation, Steiner Variation", "r1bqk1nrpp1nbppp2pp44P32B1P35N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C41", "Philidor Defense: Hanham, Berger Variation", "r1bq1rk1pp1nbppp2p4n3pp1N12BPPP22P5PP4PPRNBQ1RK1 w -")); + openings.add(new Opening("C41", "Philidor Defense: Hanham, Kmoch Variation", "r1bqkbnrpp1n1ppp2pp44p1N12BPP38PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Larsen Variation", "rnbqkbnrppp2p1p3p2p183NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Lion Variation", "r1bqkb1rpppn1ppp3p1n24p33PP32N2N2PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Lion Variation, Bishop Sacrifice", "r1bqk2rpppnbBpp3p1n24p33PP32N2N2PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Lion Variation, Delayed Bishop Sacrifice", "r1bqk2rpppnbBpp5n24p34P32N2N2PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Lion Variation, Forcing Line", "r1bq2k1pppnbrpp3pNn24p33PP32N5PPP2PPPR1BQK2R b KQ")); + openings.add(new Opening("C41", "Philidor Defense: Lion Variation, Lion's Claw", "r1bqk2rpp1nbppp2pp1n24p33PP32N2N2PPP1BPPPR1BQ1RK1 w kq")); + openings.add(new Opening("C41", "Philidor Defense: Lion Variation, Lion's Claw", "r1bqk2rpppnbpp13p1n1p4p32BPP32N2N2PPP2PPPR1BQ1RK1 w kq")); + openings.add(new Opening("C41", "Philidor Defense: Lion Variation, Shirov Gambit", "r1bqkb1rpppn1ppp3p1n24p33PP1P12N2N2PPP2P1PR1BQKB1R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Lion Variation, Sozin Variation", "r1bq1rk1pp1nbppp2pp1n28P1BpP32N2N21PP1QPPPR1B2RK1 w -")); + openings.add(new Opening("C41", "Philidor Defense: Lopez Countergambit", "rnbqkbnrppp3pp3p44pp22B1P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Lopez Countergambit, Jaenisch Variation", "rnbqkb1rppp3pN3p3n5p22BpP38PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Morphy Gambit", "rnbqkbnrppp2ppp3p482BpP35N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Nimzowitsch Variation", "rnbqkb1rppp2ppp3p1n24P34P35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Nimzowitsch Variation", "rnbqkb1rppp2ppp3p1n24p33PP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Nimzowitsch Variation, Klein Variation", "rnbqkb1rppp2ppp3p1n24p32BPP35N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Nimzowitsch Variation, Rellstab Variation", "rnbqkb1rppp2ppp3p43QP34n35N2PPP2PPPRNB1KB1R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Nimzowitsch Variation, Sokolsky Variation", "rnbqkb1rppp2ppp3p44P34n35N2PPPN1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Nimzowitsch, Larobok Variation", "r1bq1rk1pppnbBpp3p1n24p1N13PP32N5PPP2PPPR1BQK2R b KQ")); + openings.add(new Opening("C41", "Philidor Defense: Nimzowitsch, Locock Variation", "rnbqkb1rppp2ppp3p1n24p1N13PP38PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Paulsen Attack", "rnbqkbnrppp2ppp83P43N48PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Philidor Countergambit", "rnbqkbnrppp3pp3p44pp23PP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Philidor Countergambit, Berger Variation", "rnbqk1nrppp3pp4P32bp2N14p32N5PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Philidor Countergambit, Zukertort Variation", "rnbqkbnrppp3pp3p44pp23PP32N2N2PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Philidor Countergambit, del Rio Attack", "rnbqkbnrppp3pp4P33p2N14p38PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Philidor Gambit", "rn1qkbnrpppb1ppp3p44p33PP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C41", "Philidor Defense: Steinitz Variation", "rnbqk1nrppp1bppp3p44p32B1P32P2N2PP1P1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C42", "Petrov's Defense", "rnbqkb1rpppp1ppp5n24p34P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C42", "Petrov's Defense", "rnbqkb1rpppp1ppp5n24N34P38PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C42", "Petrov's Defense", "rnbqkb1rppp2ppp3p1n24N34P38PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C42", "Petrov's Defense", "rnbqkb1rppp2ppp3p1n284P35N2PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C42", "Petrov's Defense", "rnbqkb1rppp2ppp3p484n35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C42", "Russian Game: Classical Attack", "rnbqkb1rppp2ppp3p483Pn35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Berger Variation", "r2qk2rppp1b1pp2n53p1p23Pn1b12PB1N2PP1N1PPPR1BQR1K1 b kq")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Chigorin Variation", "r1bqk2rppp1bppp2n53p43Pn33B1N2PPP2PPPRNBQR1K1 b kq")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Chigorin Variation, Browne Attack", "r1bqk2rppp1bppp83P41n1Pn33B1N2PP3PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Chigorin Variation, Main Line", "r1bqk2rppp1bppp83p41nPPn35N2PP2BPPPRNBQ1RK1 b kq")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Closed Variation", "rnbqkb1rppp2ppp3p1n283P45N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Jaenisch Variation", "r1bqk2rppp1bppp2n53p42PPn33B1N2PP3PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Krause Variation", "r2qk2rppp1b1pp2n53p1p22PPn1b13B1N2PP3PPPRNBQR1K1 b kq")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Maróczy Variation", "r2qk2rppp3pp2n53p1p22PPn1bb3B1N2PP3PPPRNBQR1K1 w kq")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Marshall Trap", "rn1q1rk1ppp3pp83P1p23Pn1b13B1N2PP3PPbRNBQR1K1 w -")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Marshall Variation", "rnbqk2rppp2ppp3b43p43Pn33B1N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Marshall Variation, Chinese Gambit", "rn1q1rk1pp3ppp2pb43p42PPn1b13B1N2PP3PPPRNBQR1K1 w -")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Mason Variation", "rnbq1rk1ppp1bppp83p43Pn33B1N2PPP2PPPRNBQ1RK1 w -")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Mason-Showalter Variation", "r1bqkb1rppp2ppp2n53p43Pn33B1N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Staunton Variation", "rnbq1rk1pp3ppp2pb43p42PPn33B1N2PP3PPPRNBQ1RK1 w -")); + openings.add(new Opening("C42", "Russian Game: Classical Attack, Tarrasch Variation", "rn1q1rk1ppp2ppp3b43p42PPn1b13B1N2PP3PPPRNBQ1RK1 w -")); + openings.add(new Opening("C42", "Russian Game: Cochrane Gambit", "rnbqkb1rppp2Npp3p1n284P38PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C42", "Russian Game: Cochrane Gambit, Bishop Check Line", "rnbq1b1rppp2kpp3p1n282B1P38PPPP1PPPRNBQK2R b KQ")); + openings.add(new Opening("C42", "Russian Game: Cochrane Gambit, Center Variation", "rnbq1b1rppp2kpp3p1n283PP38PPP2PPPRNBQKB1R b KQ")); + openings.add(new Opening("C42", "Russian Game: Cozio (Lasker) Attack", "rnbqkb1rppp2ppp3p484n35N2PPPPQPPPRNB1KB1R b KQkq")); + openings.add(new Opening("C42", "Russian Game: Damiano Variation", "rnbqkb1rpppp1ppp84N34n38PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C42", "Russian Game: Damiano Variation, Kholmov Gambit", "rnb1kb1rppppqppp84N34n38PPPPQPPPRNB1KB1R w KQkq")); + openings.add(new Opening("C42", "Russian Game: French Attack", "rnbqkb1rppp2ppp3p484n33P1N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C42", "Russian Game: Karklins-Martinovsky Variation", "rnbqkb1rppp2ppp3p1n284P33N4PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C42", "Russian Game: Kaufmann Attack", "rnbqkb1rppp2ppp3p482P1n35N2PP1P1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C42", "Russian Game: Millennium Attack", "rnbqkb1rppp2ppp3p484n33B1N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C42", "Russian Game: Moody Gambit", "r1bqkb1rpppp1ppp2n2n24p33PP35N2PPP1QPPPRNB1KB1R b KQkq")); + openings.add(new Opening("C42", "Russian Game: Nimzowitsch Attack", "rnbqkb1rppp2ppp3p484n32N2N2PPPP1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C42", "Russian Game: Paulsen Attack", "rnbqkb1rppp2ppp3p1n282N1P38PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C42", "Russian Game: Stafford Gambit", "r1bqkb1rpppp1ppp2n2n24N34P38PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C42", "Russian Game: Three Knights Game", "rnbqkb1rpppp1ppp5n24p34P32N2N2PPPP1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C42", "Russian Game: Urusov Gambit", "rnbqkb1rpppp1ppp5n24p32B1P35N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C43", "Petrov: Modern Attack", "rnbqkb1rpppp1ppp5n283pP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C43", "Russian Game: Modern Attack", "rnbqkb1rpppp1ppp5n24p33PP35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C43", "Russian Game: Modern Attack, Bardeleben Variation", "r1bqkb1rpppp1ppp2n52n1P33N48PPP1QPPPRNB1KB1R w KQkq")); + openings.add(new Opening("C43", "Russian Game: Modern Attack, Center Attack", "rnbqkb1rpppp1ppp84P33Qn35N2PPP2PPPRNB1KB1R b KQkq")); + openings.add(new Opening("C43", "Russian Game: Modern Attack, Center Variation", "rnbqkb1rpppp1ppp84p33Pn33B1N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C43", "Russian Game: Modern Attack, Murrey Variation", "r1bqkb1rpppp1ppp2n54p33Pn33B1N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C43", "Russian Game: Modern Attack, Steinitz Variation", "rnbqkb1rpppp1ppp84P33pn35N2PPP1QPPPRNB1KB1R b KQkq")); + openings.add(new Opening("C43", "Russian Game: Modern Attack, Symmetrical Variation", "rnbqkb1rppp2ppp5n23pp33PP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C43", "Russian Game: Modern Attack, Symmetrical Variation", "rnbqkb1rpppp1ppp84p33Pn35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C43", "Russian Game: Modern Attack, Tal Gambit", "rnbqkb1rpppp1ppp81B2P33pn35N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C43", "Russian Game: Modern Attack, Trifunovic Variation", "rnbq1rk1ppp2ppp83pb32PPn33B4PP3PPPRNBQ1RK1 w -")); + openings.add(new Opening("C44", "Irish Gambit", "r1bqkbnrpppp1ppp2n54N34P38PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C44", "King's Knight Opening: Konstantinopolsky", "r1bqkbnrpppp1ppp2n54p34P35NP1PPPP1P1PRNBQKB1R b KQkq")); + openings.add(new Opening("C44", "King's Knight Opening: Normal Variation", "r1bqkbnrpppp1ppp2n54p34P35N2PPPP1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C44", "King's Pawn Game: Dresden Opening", "r1bqkbnrpppp1ppp2n54p32P1P35N2PP1P1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C44", "King's Pawn Game: Pachman Wing Gambit", "r1bqkbnrpppp1ppp2n54p31P2P35N2P1PP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C44", "King's Pawn Game: Tayler Opening", "r1bqkbnrpppp1ppp2n54p34P35N2PPPPBPPPRNBQK2R b KQkq")); + openings.add(new Opening("C44", "King's Pawn Game: Tayler Opening, Basman Gambit", "r1bqkb1rpppp1ppp2n2n24P33p45N2PPP1BPPPRNBQK2R b KQkq")); + openings.add(new Opening("C44", "King's Pawn Game: Tayler Opening, Inverted Hanham", "r1bqkb1rppp2ppp2n2n23pp34P33P1N2PPPNBPPPR1BQK2R b KQkq")); + openings.add(new Opening("C44", "Ponziani Opening", "r1bqkbnrpppp1ppp2n54p34P32P2N2PP1P1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C44", "Ponziani Opening: Caro Gambit", "r2qkbnrpppb1ppp2n53pp3Q3P32P2N2PP1P1PPPRNB1KB1R w KQkq")); + openings.add(new Opening("C44", "Ponziani Opening: Jaenisch Counterattack", "r1bqkb1rpppp1ppp2n2n24p34P32P2N2PP1P1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C44", "Ponziani Opening: Leonhardt Variation", "r1bqkb1rppp2ppp2n2n23pp3Q3P32P2N2PP1P1PPPRNB1KB1R w KQkq")); + openings.add(new Opening("C44", "Ponziani Opening: Neumann Gambit", "r1bqkb1rpppp1ppp2n2n24p32B1P32P2N2PP1P1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C44", "Ponziani Opening: Ponziani Countergambit", "r1bqkbnrpppp2pp2n54pp24P32P2N2PP1P1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C44", "Ponziani Opening: Ponziani Countergambit, Cordel Variation", "rnbqk2rppp1b1pp3p1n23Pp34N32PB4PP3PPPRNBQK2R w KQkq")); + openings.add(new Opening("C44", "Ponziani Opening: Ponziani Countergambit, Schmidt Attack", "r1bqkbnrppp3pp2np43Ppp24P32P2N2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C44", "Ponziani Opening: Réti Variation", "r1bqkb1rppppnppp2n54p34P32P2N2PP1P1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C44", "Ponziani Opening: Romanishin Variation", "r1bqk1nrppppbppp2n54p34P32P2N2PP1P1PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C44", "Ponziani Opening: Spanish Variation", "r1bqkbnrppp2ppp2n51B1pp34P32P2N2PP1P1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C44", "Ponziani Opening: Spanish Variation, Harrwitz Attack, Nikitin Gambit", "r1b1kbnrppp2ppp2n51B1qN3Q3p32P5PP1P1PPPRNB1K2R b KQkq")); + openings.add(new Opening("C44", "Ponziani Opening: Steinitz Variation", "r1bqkbnrppp3pp2n2p23pp3Q3P32P2N2PP1P1PPPRNB1KB1R w KQkq")); + openings.add(new Opening("C44", "Ponziani Opening: Vukovic Gambit", "r1bqk2rpppp1ppp2n52bPp34n32P2N2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C44", "Scotch Gambit", "r1bqk1nrpppp1ppp2n581bB1P32P2N2P4PPPRNBQK2R b KQkq")); + openings.add(new Opening("C44", "Scotch Game", "r1bqkbnrpppp1ppp2n54p33PP35N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C44", "Scotch Game: Benima Defense", "r1bqk1nrppppbppp2n582BpP35N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C44", "Scotch Game: Cochrane Variation", "r1bqk1nrpppp1ppp2n5b3P32B52P2N2P4PPPRNBQK2R b KQkq")); + openings.add(new Opening("C44", "Scotch Game: Cochrane-Shumov Defense", "r1bq3rppp2k1p2n3p12Qp43pP38PPP2PPPRNB1K2R w KQ")); + openings.add(new Opening("C44", "Scotch Game: Göring Gambit", "r1bqkbnrpppp1ppp2n583pP32P2N2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C44", "Scotch Game: Göring Gambit, Bardeleben Variation", "r1bqk2rpppp1ppp2n2n281bB1P32N2N2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("C44", "Scotch Game: Göring Gambit, Double Pawn Sacrifice", "r1bqkbnrpppp1ppp2n582B1P32p2N2PP3PPPRNBQK2R b KQkq")); + openings.add(new Opening("C44", "Scotch Game: Göring Gambit, Main Line", "r1bqk1nrpppp1ppp2n581b2P32N2N2PP3PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C44", "Scotch Game: Hanneken Variation", "r1bq1rk1pppp1ppp5n24n1N11bB58PB3PPPRN1Q1RK1 w -")); + openings.add(new Opening("C44", "Scotch Game: Lolli Variation", "r1bqkbnrpppp1ppp84p33nP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C44", "Scotch Game: Napoleon Gambit", "r1bqkbnrpppp1ppp882BpP38PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C44", "Scotch Game: Relfsson Gambit", "r1bqkbnrpppp1ppp2n51B63pP35N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C44", "Scotch Game: Scotch Gambit", "r1bqkbnrpppp1ppp2n582BpP35N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C44", "Scotch Game: Scotch Gambit, Cochrane-Anderssen Variation", "r2qk1nrppp2ppp2np42b52BpP1b12P2N2PP3PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C44", "Scotch Game: Scotch Gambit, Dubois Réti Defense", "r1bqkb1rpppp1ppp2n2n282BpP35N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C44", "Scotch Game: Scotch Gambit, Göring Gambit Declined", "r1bqkbnrppp2ppp2n53p43pP32P2N2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C44", "Scotch Game: Scotch Gambit, London Defense", "r1bqk1nrpppp1ppp2n581bBpP35N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C44", "Scotch Game: Scotch Gambit, Sarratt Variation", "r1bqk1nrpppp1ppp2n52b3N12BpP38PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C44", "Scotch Game: Vitzthum Attack", "r1bqk2rpppp1ppp2n4n2b3NQ2BpP38PPP2PPPRNB1K2R b KQkq")); + openings.add(new Opening("C44", "Scotch, Cochrane Variation", "r1bqkb1rpp1p1Npp2p1nn282B1P38PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C44", "Scotch, Sea-cadet Mate", "r2q1bnrppp1kBpp3p43NN34P38PP3PPPR1Bb1RK1 b -")); + openings.add(new Opening("C44", "Tayler Opening", "r1bqkb1rpppp1ppp2n2n24p33PP35N2PPP1BPPPRNBQK2R b KQkq")); + openings.add(new Opening("C45", "Scotch Game", "r1bqkbnrpppp1ppp2n583NP38PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C45", "Scotch Game", "r1b1k1nrpppp1ppp2n51N61b2P2q8PPPB1PPPRN1QKB1R b KQkq")); + openings.add(new Opening("C45", "Scotch Game", "r1bqkbnrpppp1ppp2n583pP35N2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C45", "Scotch Game: Alekhine Gambit", "r1bqkb1rpppp1ppp2n2n24P33N48PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C45", "Scotch Game: Berger Variation", "N1bk3rpp1p1ppp2n2n281b6P4B1q1PPN1P1PR1BQK2R b KQ")); + openings.add(new Opening("C45", "Scotch Game: Blumenfeld Attack", "r1b1k1nrpppp1ppp2n2q21Nb54P34B3PPP2PPPRN1QKB1R b KQkq")); + openings.add(new Opening("C45", "Scotch Game: Braune Variation", "r1b1kbnrpppp1ppp2n583NP2q4B3PPP2PPPRN1QKB1R b KQkq")); + openings.add(new Opening("C45", "Scotch Game: Classical Variation", "r1bqk1nrpppp1ppp2n52b53NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C45", "Scotch Game: Classical Variation, Blackburne Attack", "r1b1k2rppppnppp2n2q22b53NP32P1B3PP1Q1PPPRN2KB1R b KQkq")); + openings.add(new Opening("C45", "Scotch Game: Classical Variation, Intermezzo Variation", "r1b1k1nrpppp1ppp2N2q22b54P38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C45", "Scotch Game: Classical Variation, Millennium Variation", "r1b1k1nrpppp1ppp2n3q12b53NP32P1B3PP3PPPRN1QKB1R w KQkq")); + openings.add(new Opening("C45", "Scotch Game: Fraser Variation", "r1b1kbnrpppp1ppp2n584P2q5N2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C45", "Scotch Game: Ghulam-Kassim Variation", "r1bqkbnrppp2ppp3p483QP33B4PPP2PPPRNB1K2R b KQkq")); + openings.add(new Opening("C45", "Scotch Game: Gottschall Variation", "1rb2rk1pp3ppp5q23P41n62P1Q3PP3PPPRN2KB1R w KQ")); + openings.add(new Opening("C45", "Scotch Game: Haxo Gambit", "r1bqk1nrpppp1ppp2n52b52BpP35N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C45", "Scotch Game: Horwitz Attack", "r1b1kbnrpppp1ppp2n51N64P2q8PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C45", "Scotch Game: Horwitz Attack, Blackburne Variation", "r1bk2nrpppp1ppp2n51N64q38PPPQBPPPRN3RK1 b -")); + openings.add(new Opening("C45", "Scotch Game: Horwitz Attack, McDonnell Variation", "r1bk2nrpppp1ppp2n51N6P4q281PPNBPPPR2Q1RK1 b -")); + openings.add(new Opening("C45", "Scotch Game: Horwitz Attack, Vienna Variation", "r1bk2nrpppp1ppp2n51N62P2q28PP1NBPPPR2Q1RK1 b -")); + openings.add(new Opening("C45", "Scotch Game: Malaniuk Variation", "r1bqk1nrpppp1ppp2n581b1NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C45", "Scotch Game: Meitner Variation", "r1b1k2rppppnppp2n2q22b54P32P1B3PPN2PPPRN1QKB1R b KQkq")); + openings.add(new Opening("C45", "Scotch Game: Mieses Variation", "r1bqkb1rp1pp1ppp2p2n24P388PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C45", "Scotch Game: Modern Defense", "r1b1k1nrpppp1ppp2n581b1NP2q2N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C45", "Scotch Game: Paulsen Attack", "r1b1k2rppppnppp2n2q21Bb53NP32P1B3PP3PPPRN1QK2R b KQkq")); + openings.add(new Opening("C45", "Scotch Game: Paulsen Variation", "r1b1kbnrpppp1ppp2n55N24P2q8PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C45", "Scotch Game: Paulsen, Gunsberg Defense", "r1bnk2rppppnppp5q21Bb53NP32P1B3PP3PPPRN1QK2R w KQkq")); + openings.add(new Opening("C45", "Scotch Game: Potter Variation", "r1bqk1nrpppp1ppp2n52b54P31N6PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C45", "Scotch Game: Romanishin Variation", "r1bqk1nrpppp1ppp2n581b2P31N6PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C45", "Scotch Game: Rosenthal Variation", "r1bk2nrpppp1ppp2n3q11N688PPPNBPPPR2Q1RK1 w -")); + openings.add(new Opening("C45", "Scotch Game: Schmidt Variation", "r1bqkb1rpppp1ppp2n2n283NP38PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C45", "Scotch Game: Scotch Gambit, Advance Variation", "r1bqkb1rpppp1ppp2n2n24P32Bp45N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C45", "Scotch Game: Scotch Gambit, Kingside Variation", "r1bqkb1rpppp1ppp2n54P32Bp2n15N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C45", "Scotch Game: Steinitz Variation", "r1b1kbnrpppp1ppp2n583NP2q8PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("C45", "Scotch Game: Steinitz Variation", "r1b1kbnrpppp1ppp2n583NP2q2N5PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C45", "Scotch Game: Tartakower Variation", "r1bqkb1rp1pp1ppp2p2n284P38PPPN1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C46", "Four Knights Game", "r1bqkb1rpppp1ppp2n2n24p34P32N2N2PPPP1PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C46", "Four Knights Game: Gunsberg Variation", "r1bqkb1rpppp1ppp2n2n24p34P3P1N2N21PPP1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C46", "Four Knights Game: Halloween Gambit", "r1bqkb1rpppp1ppp2n2n24N34P32N5PPPP1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C46", "Four Knights Game: Halloween Gambit, Oldtimer Variation", "r1bqk1nrpppp2pp6n14Pp21bBP42N2Q2PPP2PPPR1B1K2R w KQkq")); + openings.add(new Opening("C46", "Four Knights Game: Halloween Gambit, Plasma Variation", "1rb1kbnrpp1p1ppp3P1qn11N65P28PPP3PPR1BQKB1R w KQk")); + openings.add(new Opening("C46", "Four Knights Game: Italian Variation", "r1bqkb1rpppp1ppp2n2n24p32B1P32N2N2PPPP1PPPR1BQK2R b KQkq")); + openings.add(new Opening("C46", "Three Knights Opening", "r1bqkbnrpppp1ppp2n54p34P32N2N2PPPP1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C46", "Three Knights Opening", "r1bqk1nrpppp1ppp2n54p31b2P32N2N2PPPP1PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C46", "Three Knights Opening: Schlechter Variation", "r1bqk2rpppp1ppp2n2n23Np31b2P35N2PPPP1PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C46", "Three Knights Opening: Steinitz Defense", "r1bqkbnrpppp1p1p2n3p14p34P32N2N2PPPP1PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C46", "Three Knights Opening: Steinitz-Rosenthal Variation", "r1bqkbnrpppp1p1p2n3p13N43pP35N2PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C46", "Three Knights Opening: Winawer Defense", "r1bqkbnrpppp2pp2n54pp24P32N2N2PPPP1PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C47", "Four Knights Game: Italian Variation, Noa Gambit", "r1bqkb1rpppp1Bpp2n54p34n32N2N2PPPP1PPPR1BQK2R b KQkq")); + openings.add(new Opening("C47", "Four Knights Game: Scotch Variation", "r1bqkb1rpppp1ppp2n2n24p33PP32N2N2PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C47", "Four Knights Game: Scotch Variation Accepted", "r1bqkb1rpppp1ppp2n2n283pP32N2N2PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C47", "Four Knights Game: Scotch Variation, Belgrade Gambit", "r1bqkb1rpppp1ppp2n2n23N43pP35N2PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C47", "Four Knights Game: Scotch Variation, Krause Gambit", "r1bqk2rpppp1ppp2n2n24N31b1PP32N5PPP2PPPR1BQKB1R b KQkq")); + openings.add(new Opening("C47", "Four Knights Game: Scotch Variation, Krause Gambit, Leonhardt Defense", "r1b1k2rppppqppp2n2n24N31b1PP32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C47", "Four Knights Game: Scotch Variation, Oxford Gambit", "r1bqk2rpppp1ppp5n23Pp31b1nP32N2N2PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C47", "Four Knights Game: Scotch Variation, Schmid Defense", "r1bqkb1rpppp1ppp2n583Nn32N5PPP2PPPR1BQKB1R w KQkq")); + openings.add(new Opening("C47", "Four Knights: Scotch Variation, Belgrade Gambit, Modern Defense", "r1bqkb1rpppp2pp2n53N1p23pn35N2PPP1QPPPR1B1KB1R w KQkq")); + openings.add(new Opening("C48", "Four Knights Game: Bardeleben Variation", "r1bq1rk1pppp1ppp2n2n21B2P31b1P1P22N5PPP3PPR1BQ1RK1 w -")); + openings.add(new Opening("C48", "Four Knights Game: Marshall Variation", "r1bq1rk1pppp1ppp5n21Bb1N33nP32N5PPPP1PPPR1BQ1RK1 w -")); + openings.add(new Opening("C48", "Four Knights Game: Ranken Variation", "r1bqkb1r1ppp1pppp1B2n24p34P32N2N2PPPP1PPPR1BQK2R b KQkq")); + openings.add(new Opening("C48", "Four Knights Game: Rubinstein Countergambit, 5. Be2", "r1bqkb1rpppp1ppp5n24p33nP32N2N2PPPPBPPPR1BQK2R b KQkq")); + openings.add(new Opening("C48", "Four Knights Game: Rubinstein Countergambit, Henneberger Variation", "r1bqkb1rpppp1ppp5n21B2p33nP32N2N2PPPP1PPPR1BQ1RK1 b kq")); + openings.add(new Opening("C48", "Four Knights Game: Rubinstein Countergambit, Maróczy Variation", "r1bq1rk1ppp2ppp1b1p1n24p3N3P33P1B2PPP2PPPR1BQ1RK1 w -")); + openings.add(new Opening("C48", "Four Knights Game: Spanish Variation", "r1bqkb1rpppp1ppp2n2n21B2p34P32N2N2PPPP1PPPR1BQK2R b KQkq")); + openings.add(new Opening("C48", "Four Knights Game: Spanish Variation, Classical Variation", "r1bqk2rpppp1ppp2n2n21Bb1p34P32N2N2PPPP1PPPR1BQK2R w KQkq")); + openings.add(new Opening("C48", "Four Knights Game: Spanish Variation, Classical Variation, Marshall Gambit", "r1bq1rk1pppp1ppp5n22b1N3B2nP32N5PPPP1PPPR1BQK2R w KQ")); + openings.add(new Opening("C48", "Four Knights Game: Spanish Variation, Rubinstein Variation", "r1bqkb1rpppp1ppp5n21B2p33nP32N2N2PPPP1PPPR1BQK2R w KQkq")); + openings.add(new Opening("C48", "Four Knights Game: Spanish Variation, Rubinstein Variation", "r1b1kb1rppppqppp5n21B2N33nPP22N5PPPP2PPR1BQK2R b KQkq")); + openings.add(new Opening("C48", "Four Knights Game: Spanish Variation, Rubinstein Variation Accepted", "r1bqkb1rpppp1ppp5n21B2p33NP32N5PPPP1PPPR1BQK2R b KQkq")); + openings.add(new Opening("C48", "Four Knights Game: Spielmann Variation", "r3kb1r1pp2pppp1p1b33q43PN38PPP2PPPR1BQR1K1 w kq")); + openings.add(new Opening("C49", "Four Knights Game: Alatortsev Variation", "r1b2rk1ppp1qppp2n2n21B1pp31b2P33P1N2PPP1NPPPR1BQ1RK1 w -")); + openings.add(new Opening("C49", "Four Knights Game: Double Spanish", "r1bqk2rpppp1ppp2n2n21B2p31b2P32N2N2PPPP1PPPR1BQK2R w KQkq")); + openings.add(new Opening("C49", "Four Knights Game: Double Spanish, with 5. O-O", "r1bq1rk1pppp1ppp2n2n21B2p31b2P32NP1N2PPP2PPPR1BQ1RK1 b -")); + openings.add(new Opening("C49", "Four Knights Game: Gunsberg Counterattack", "r1bq1rk1pppp1ppp2n51B1P41b2p35N2PPPP1PPPR1BQ1RK1 w -")); + openings.add(new Opening("C49", "Four Knights Game: Janowski Variation", "r1bq1rk1ppp2ppp2np1n21B2p34P32PP1N2P1P2PPPR1BQR1K1 b -")); + openings.add(new Opening("C49", "Four Knights Game: Nimzowitsch (Paulsen)", "r1bq1rk1pppp1ppp2B2n24p31b2P32N2N2PPPP1PPPR1BQ1RK1 b -")); + openings.add(new Opening("C49", "Four Knights Game: Spanish Variation", "r1bq1rk1pppp1ppp2n2n21B2p34P32bP1N2PPP2PPPR1BQ1RK1 w -")); + openings.add(new Opening("C49", "Four Knights Game: Spanish Variation, Symmetrical Variation", "r2n1rk1ppp1qppp3p1n21B2p1B13PP1b12P2N2P1P2PPPR2QR1K1 w -")); + openings.add(new Opening("C49", "Four Knights Game: Spanish Variation, Symmetrical Variation", "r1bq1rk1ppp1nppp3p1n21B2p1B11b2P32NP1N2PPP2PPPR2Q1RK1 w -")); + openings.add(new Opening("C49", "Four Knights Game: Spanish Variation, Symmetrical Variation", "r1bq1rk1ppp2ppp2np1n21B2p31b2P32NP1N2PPP2PPPR1BQ1RK1 w -")); + openings.add(new Opening("C49", "Four Knights Game: Spanish Variation, Symmetrical Variation", "r1bq1rk1ppp2ppp2np1n21B2p31b2P33P1N2PPP1NPPPR1BQ1RK1 b -")); + openings.add(new Opening("C49", "Four Knights Game: Svenonius Variation", "r1bq1rk1ppp2ppp2n2n21B1pp34P32PP1N2P1P2PPPR1BQ1RK1 w -")); + openings.add(new Opening("C49", "Four Knights Game: Symmetrical, Blake Variation", "r1b2rk1pp2nppp2pq1n23pp1B11b2P2N1BNP4PPP2PPPR2Q1RK1 w -")); + openings.add(new Opening("C49", "Four Knights Game: Symmetrical, Metger Unpin", "r1b2rk1ppp1qppp2np1n21B2p1B14P32PP1N2P1P2PPPR2Q1RK1 w -")); + openings.add(new Opening("C49", "Four Knights Game: Symmetrical, Tarrasch Variation", "r2q1rk1ppp2ppp2npbn21B2p1B11b2P32NP1N2PPP2PPPR2Q1RK1 w -")); + openings.add(new Opening("C50", "Blackburne Shilling Gambit", "r1b1kbnrpppp1Npp884q35n2PPPPBP1PRNBQKR2 w Qkq")); + openings.add(new Opening("C50", "Four Knights Game: Italian Variation", "r1bqk2rpppp1ppp2n2n22b1p32B1P32N2N2PPPP1PPPR1BQK2R w KQkq")); + openings.add(new Opening("C50", "Giuoco Piano", "r1bqk1nrpppp1ppp2n52b1p32B1P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C50", "Italian Game", "r1bqkbnrpppp1ppp2n54p32B1P35N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C50", "Italian Game: Giuoco Pianissimo", "r1bqk1nrpppp1ppp2n52b1p32B1P33P1N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C50", "Italian Game: Giuoco Pianissimo, Canal Variation", "r1bqk2rppp2ppp2np1n22b1p1B12B1P32NP1N2PPP2PPPR2QK2R b KQkq")); + openings.add(new Opening("C50", "Italian Game: Giuoco Pianissimo, Dubois Variation", "r1bqk1nrpppp2pp2n52b1p1N12B1Pp23P4PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C50", "Italian Game: Giuoco Pianissimo, Italian Four Knights Variation", "r1bqk2rpppp1ppp2n2n22b1p32B1P32NP1N2PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("C50", "Italian Game: Giuoco Pianissimo, Lucchini Gambit", "r1bqk1nrpppp2pp2n52b1pp22B1P33P1N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C50", "Italian Game: Giuoco Pianissimo, Normal", "r1bqk2rpppp1ppp2n2n22b1p32B1P33P1N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C50", "Italian Game: Hungarian Defense", "r1bqk1nrppppbppp2n54p32B1P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C50", "Italian Game: Hungarian Defense, Tartakower Variation", "r1bqk2rppppbppp2n54P32Bpn32P2N2PP3PPPRNBQK2R w KQkq")); + openings.add(new Opening("C50", "Italian Game: Rosentreter Gambit", "r1bqk1nrpppp1ppp2n52b1p32BPP35N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C50", "Italian Game: Rousseau Gambit", "r1bqkbnrpppp2pp2n54pp22B1P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C50", "Italian Game: Schilling-Kostic Gambit", "r1bqkbnrpppp1ppp84p32BnP35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit", "r1bqk1nrpppp1ppp2n52b1p31PB1P35N2P1PP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit", "r2qk1nrppp2ppp1bnp482BPP1b12N2N2P4PPPR1BQ1RK1 w kq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit Accepted", "r1bqk1nrpppp1ppp2n54p31bB1P35N2P1PP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit Declined", "r1bqk1nrpppp1ppp1bn54p31PB1P35N2P1PP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit Declined, 5. a4", "r1bqk1nrpppp1ppp1bn54p3PPB1P35N22PP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit Declined, Cordel Variation", "r1bqk1nrpppp1ppp1bn54p31PB1P35N2PBPP1PPPRN1QK2R b KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit Declined, Hicken Variation", "r1bk2nrpppp1Qpp1b6nP2q32B1P38PBPP1PPPRN2K2R b KQ")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit Declined, Hirschbach Variation", "r1b1k1nrpppp1ppp1b6nP2N1q12B1P38P1PP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit Declined, Lange Variation", "r1bqk2rpppp1ppp1b5nnP2N32B1P38P1PP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit Declined, Pavlov Variation", "r1b3r1ppp2k1p1b6nP2B1q13PP38P1PN1PPPR2QK2R b KQ")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit Declined, Showalter Variation", "r1bqk1nr1ppp1ppppbn54p3PPB1P32N2N22PP1PPPR1BQK2R b KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit Declined, Vasquez Variation", "r1b3nrppppkBpp1b6nP2N1qQ4P38P1PP1PPPRNB1K2R b KQ")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Anderssen Variation", "r1bqk1nrppppbppp2n54p32B1P32P2N2P2P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Anderssen Variation, Cordel Line", "r1bqk1nrppppbppp8n3p32BPP32P2N2P4PPPRNBQK2R w KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Bronstein Defense", "r1bqk1nrppp2ppp2np4b3p32BPP32P2N2P4PPPRNBQK2R w KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Fontaine Countergambit", "r1bqk1nrp1pp1ppp2n51pb1p31PB1P35N2P1PP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Fraser Attack", "r2qk1nrppp2ppp1bnp48Q1BPP1b12N2N2P4PPPR1B2RK1 b kq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Fraser-Mortimer Attack", "r2q1knrpppb1Bpp1b1p4n73PP32N2N2P1Q2PPPR1B2RK1 b -")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Göring Attack", "r1bqk1nrppp2ppp1b1p4n5B12BPP32N2N2P4PPPR2Q1RK1 b kq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Harding Variation", "r1bqk1nrpppp1ppp2n581bBPP35N2P2B1PPPRN1QK2R b KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Hein Countergambit", "r1bqk1nrppp2ppp2n52bpp31PB1P35N2P1PP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Johner Defense", "r1bqk1nrp1pp1ppp2n5bp62BpP32P2N2P4PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Mayet Defense", "r1bqkbnrpppp1ppp2n54p32B1P32P2N2P2P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, McDonnell Defense", "r1bqk1nrpppp1ppp2n52b1p32B1P32P2N2P2P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, McDonnell Defense, Main Line", "r1bqk1nrppp2ppp1bnp482BPP35N2P4PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Morphy Attack", "r1bqk1nrppp2ppp1bnp482BPP32N2N2P4PPPR1BQ1RK1 b kq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Mortimer-Evans Gambit", "r2q2nrpppb1kpp1b1p4n73PP32N2N2P1Q2PPPR1B2RK1 w -")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Paulsen Variation", "r1bqk2rppp1nppp1b1p4n2P42B1P35N2PB3PPPRN1Q1RK1 w kq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Steinitz Variation", "r1bqk1nrppp3pp1b1p1p2n72BPP32N1BN2P4PPPR2Q1RK1 b kq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Stone-Ware Variation", "r1bqk1nrpppp1ppp2nb44p32B1P32P2N2P2P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C51", "Italian Game: Evans Gambit, Ulvestad Variation", "r1bqk1nrppp2ppp1b1p4n2P42B1P35N2PB3PPPRN1Q1RK1 b kq")); + openings.add(new Opening("C51", "Italian Game: Jerome Gambit", "r1bqk1nrpppp1Bpp2n52b1p34P35N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit", "r1bqk1nrppp2ppp2np4b3p32B1P32P2N2P2P1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Alapin-Steinitz Variation", "r2qk1nrppp2ppp2np4b3p32BPP1b12P2N2P4PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Anderssen Defense", "r1bqk2rpppp1ppp2n2n2b72BpP32P2N2P4PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Compromised Defense", "r1bqk1nrpppp1ppp2n5b72B1P32p2N2P4PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Compromised Defense, Main Line", "r1b1k2rppppnppp2n3q1b3P32B5BQN2N2P4PPPR4RK1 b kq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Compromised Defense, Potter Variation", "r1b1k2rppppnppp2n3q1b3P32B51QN2N2P4PPPR1BR2K1 b kq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Dufresne Defense", "r1bqk1nrpppp1ppp2n5b72B1P32Pp1N2P4PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Laroche Variation", "r1bqk2rpppp1ppp2n2n2b3p32BPP32P2N2P4PPPRNBQK2R w KQkq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Lasker Defense", "r1bqk1nrppp2ppp1bnp44p32BPP32P2N2P4PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Leonhardt Countergambit", "r1bqk1nrp1pp1ppp2n5bp2p32BPP32P2N2P4PPPRNBQK2R w KQkq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Levenfish Variation", "r1b1k1nrpppq1ppp1b6n3N32B1P3BQP5P4PPPRN3RK1 b kq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Main Line", "r1bqk1nrpppp1ppp2n5b3p32B1P32P2N2P2P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Mieses Defense", "r1bqk2rppppnppp2n5b72BpP32P2N2P4PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Pierce Defense", "r1bqk1nrpppp1ppp2n5b72BpP32P2N2P4PPPRNBQK2R w KQkq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Richardson Attack", "r1bq1rk1pppp1ppp2n2n2b3N32BPP32P5P4PPPRNBQ1RK1 b -")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Sanders-Alapin Variation", "r2qk1nrpppb1ppp2np4b3p32BPP32P2N2P4PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Slow Variation", "r1bqk1nrpppp1ppp2n5b3p32B1P32P2N2P2P1PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Sokolsky Variation", "r1bqk1nrppp2ppp2np4b3p1B12BPP32P2N2P4PPPRN1QK2R b KQkq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Tartakower Attack", "r1bqk1nrppp2ppp2np4b3p32BPP31QP2N2P4PPPRNB1K2R b KQkq")); + openings.add(new Opening("C52", "Italian Game: Evans Gambit, Waller Attack", "r1bqk1nrppp2ppp2np4b72BpP31QP2N2P4PPPRNB2RK1 b kq")); + openings.add(new Opening("C53", "Italian Game: Bird's Attack", "r1bqk2rpppp1ppp2n2n22b1p31PB1P32P2N2P2P1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C53", "Italian Game: Classical Variation", "r1bqk2rpppp1ppp2n2n22b1p32B1P32P2N2PP1P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C53", "Italian Game: Classical Variation", "r1bqk1nrpppp1ppp2n52b1p32B1P32P2N2PP1P1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C53", "Italian Game: Classical Variation, Albin Gambit", "r1bqk2rpppp1ppp2n2n22b1p32B1P32P2N2PP1P1PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C53", "Italian Game: Classical Variation, Alexandre Gambit", "r1bqk1nrpppp2pp2n52b1pp22B1P32P2N2PP1P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C53", "Italian Game: Classical Variation, Center Attack", "r1bqk2rpppp1ppp2n2n22b1p32BPP32P2N2PP3PPPRNBQK2R b KQkq")); + openings.add(new Opening("C53", "Italian Game: Classical Variation, Center Holding Variation", "r1b1k1nrppppqppp1bn54p32BPP32P2N2PP3PPPRNBQK2R w KQkq")); + openings.add(new Opening("C53", "Italian Game: Classical Variation, Closed Variation", "r1b1k1nrppppqppp2n52b1p32B1P32P2N2PP1P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C53", "Italian Game: Classical Variation, Giuoco Pianissimo", "r1bqk2rpppp1ppp2n2n22b1p32B1P32PP1N2PP3PPPRNBQK2R b KQkq")); + openings.add(new Opening("C53", "Italian Game: Classical Variation, Giuoco Pianissimo, Main Line", "r1bq1rk1bpp2pppp1np1n24p34P31BPP1N1PPP3PP1RNBQR1K1 b -")); + openings.add(new Opening("C53", "Italian Game: Classical Variation, Greco Gambit", "r1bqk2rppp2ppp2n2n22bpP32Bp42P2N2PP3PPPRNBQK2R w KQkq")); + openings.add(new Opening("C53", "Italian Game: Classical Variation, La Bourdonnais Variation", "r1bqk1nrppp2ppp1bnp482BPP35N2PP3PPPRNBQK2R w KQkq")); + openings.add(new Opening("C53", "Italian Game: Classical Variation, Tarrasch Variation", "r1b1k2r1pp1qppppbnp1n24p3P1BPP32P2N1P1P3PP1RNBQR1K1 b kq")); + openings.add(new Opening("C53", "Italian Game: Giuoco Piano, Eisinger Variation", "rnb1k1nrppppqppp1b1P44p32B1P32P2N2PP3PPPRNBQK2R b KQkq")); + openings.add(new Opening("C53", "Italian Game: Giuoco Piano, Ghulam-Kassim Variation", "r1bqk2rpppp1ppp2n52bBP382p2NK1PP4PPRNBQ3R b kq")); + openings.add(new Opening("C53", "Italian Game: Giuoco Piano, Mestel Variation", "r1b1k1nrppppqppp1bn54p1B12BPP32P2N2PP3PPPRN1QK2R b KQkq")); + openings.add(new Opening("C54", "Italian Game: Classical Variation, Greco Gambit, Anderssen Variation", "r1bqk2rppp2ppp2n51B1pP31b1Pn35N2PP3PPPRNBQK2R w KQkq")); + openings.add(new Opening("C54", "Italian Game: Classical Variation, Greco Gambit, Greco Variation", "r1bqk2rpppp1ppp2n581bBP42n2N2PP3PPPR1BQ1RK1 w kq")); + openings.add(new Opening("C54", "Italian Game: Classical Variation, Greco Gambit, Main Line", "r1bqk2rpppp1ppp2n582BPn32b2N2PP3PPPR1BQ1RK1 w kq")); + openings.add(new Opening("C54", "Italian Game: Classical Variation, Greco Gambit, Moeller-Bayonet Attack", "r1bqk2rppp1nppp3p1b23P42B1R1P15N2PP3P1PR1BQ2K1 b kq")); + openings.add(new Opening("C54", "Italian Game: Classical Variation, Greco Gambit, Moeller-Therkatz Attack", "r1bqk2rpppp1ppp2n53P42B1n32b2N2PP3PPPR1BQ1RK1 b kq")); + openings.add(new Opening("C54", "Italian Game: Classical Variation, Greco Gambit, Traditional Line", "r1bqk2rpppp1ppp2n2n22b52BPP35N2PP3PPPRNBQK2R b KQkq")); + openings.add(new Opening("C54", "Italian Game: Giuoco Piano, Aitken Variation", "r1bqk2rpppp1ppp2n582BP4B1b2N2P4PPPR2Q1RK1 b kq")); + openings.add(new Opening("C54", "Italian Game: Giuoco Piano, Bernstein Variation", "r1bqk2rppp2ppp2n53p42BP41Qb2N2P4PPPR1B2RK1 w kq")); + openings.add(new Opening("C54", "Italian Game: Giuoco Piano, Cracow Variation", "r1bqk2rpppp1ppp2n2n281bBPP35N2PP3PPPRNBQ1K1R b kq")); + openings.add(new Opening("C54", "Italian Game: Giuoco Piano, Greco's Attack", "r1bqk2rpppp1ppp2n2n281bBPP32N2N2PP3PPPR1BQK2R b KQkq")); + openings.add(new Opening("C54", "Italian Game: Giuoco Piano, Krause Variation", "r1bq3rppp3pp5k23pN31n1Pn31Q3P2PP4PPRN2K2R b KQ")); + openings.add(new Opening("C54", "Italian Game: Giuoco Piano, Steinitz Variation", "r1bqk2rppp2ppp2n53p42BPn3B1P2N2P4PPPR2Q1RK1 b kq")); + openings.add(new Opening("C54", "Italian Game: Giuoco Piano, Therkatz-Herzog Variation", "r1bq1rk1ppp1nppN3p43P42B1R38PP3PPPR2Q2K1 b -")); + openings.add(new Opening("C55", "Italian Game: Anti-Fried Liver Defense", "r1bqkbnrpppp1pp12n4p4p32B1P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C55", "Italian Game: Deutz Gambit", "r1bqk2rpppp1ppp2n2n22b1p32BPP35N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C55", "Italian Game: Giuoco Piano", "r1bqk2rppp2ppp3p1n24p1B12BnP38PPP2PPPRN1Q1RK1 w kq")); + openings.add(new Opening("C55", "Italian Game: Giuoco Piano, Holzhausen Attack", "r1b1k2rppp1qppp5n24p1B12BnP32N5PPP3PPR2Q1RK1 b kq")); + openings.add(new Opening("C55", "Italian Game: Giuoco Piano, Rosentreter Variation", "r1bqk2rpppp1p25n1p4p1p12BnPP1B8PPP3PPRN1Q1RK1 b kq")); + openings.add(new Opening("C55", "Italian Game: Scotch Gambit", "r1bqkb1rpppp1ppp2n2n282BpP35N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C55", "Italian Game: Scotch Gambit Declined", "r1bqkb1rppp2ppp2np1n24p32BPP35N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C55", "Italian Game: Scotch Gambit Declined", "r1bqk2rpppp1ppp2nb1n24p32BPP35N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C55", "Italian Game: Scotch Gambit, Janowski Defense", "r1bqkb1rppp2ppp2np1n282BpP35N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C55", "Italian Game: Scotch Gambit, Max Lange Attack", "r1bqk2rpppp1ppp2n2n22b52BpP35N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C55", "Italian Game: Scotch Gambit, Max Lange Attack, Long Variation", "r3k2rppp2ppp2n1bP22b2qN12ppN38PPP2PPPR1BQR1K1 b kq")); + openings.add(new Opening("C55", "Italian Game: Scotch Gambit, Walbrodt-Baird Gambit", "r1bqk2rpppp1ppp2n2n22b52BpP32P2N2PP3PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C55", "Italian Game: Scotch Gambit, de Riviere Defense", "r1bqk2rppppbppp2n2n282BpP35N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C55", "Italian Game: Two Knights Defense", "r1bqkb1rpppp1ppp2n2n24p32B1P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C55", "Italian Game: Two Knights Defense", "r1bqkb1rpppp1ppp2n54p32BPn35N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C55", "Italian Game: Two Knights Defense, Keidansky Variation", "r1b1k2rppp2ppp2N51B1pP34n2q8PPP2bPPRNBQ1K1R w kq")); + openings.add(new Opening("C55", "Italian Game: Two Knights Defense, Max Lange Attack", "r1bqk2rpppp1ppp2n2n22b1P32Bp45N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C55", "Italian Game: Two Knights Defense, Max Lange Attack, Berger Variation", "2kr3rppp2ppp1bn1bPq16N12ppNPP18PPP4PR1BQR1K1 w -")); + openings.add(new Opening("C55", "Italian Game: Two Knights Defense, Max Lange Attack, Krause Variation", "r1bqk2rpppp1ppp2n52b1P32Bp2n12P2N2PP3PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C55", "Italian Game: Two Knights Defense, Max Lange Attack, Loman Defense", "r2qk2rppp2p1p2n1bPp12b3N12pp48PPP2PPPRNBQR1K1 w kq")); + openings.add(new Opening("C55", "Italian Game: Two Knights Defense, Max Lange Attack, Rubinstein Variation", "r3kb1rppp2ppp2n1bP25qN12ppN38PPP2PPPR1BQR1K1 w kq")); + openings.add(new Opening("C55", "Italian Game: Two Knights Defense, Modern Bishop's Opening", "r1bqkb1rpppp1ppp2n2n24p32B1P33P1N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C55", "Italian Game: Two Knights Defense, Open Variation", "r1bqkb1rpppp1ppp2n2n24p32BPP35N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C55", "Italian Game: Two Knights Defense, Perreux Variation", "r1bqkb1rpppp1ppp2n2n26N12BpP38PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C56", "Italian Game: Scotch Gambit, Anderssen Attack", "r1b1kb1rppp2ppp2n53q43pn32N2N2PPP2PPPR1BQR1K1 b kq")); + openings.add(new Opening("C56", "Italian Game: Scotch Gambit, Anderssen Attack, Main Line", "r3kb1rppp2ppp2n1b33q2B13pN35N2PPP2PPPR2QR1K1 b kq")); + openings.add(new Opening("C56", "Italian Game: Scotch Gambit, Canal Variation", "r1bqkb1rppp2ppp2n53p42Bpn32N2N2PPP2PPPR1BQR1K1 b kq")); + openings.add(new Opening("C56", "Italian Game: Scotch Gambit, Double Gambit Accepted", "r1bqkb1rpppp1ppp2n582Bpn35N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C56", "Italian Game: Scotch Gambit, Max Lange Attack Accepted", "r2qk2rppp2pPp2n1b32b52pp45N2PPP2PPPRNBQR1K1 b kq")); + openings.add(new Opening("C56", "Italian Game: Scotch Gambit, Max Lange Attack, Spielmann Defense", "r1bqk2rpppp1ppp2n52b1P32Bp2n15N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C56", "Italian Game: Scotch Gambit, Nakhmanson Gambit", "r1bqkb1rpppp1ppp2n582Bpn32N2N2PPP2PPPR1BQ1RK1 b kq")); + openings.add(new Opening("C56", "Italian Game: Two Knights Defense, Yurdansky Attack", "r4b1rppp1kp22n1bN1pq5p11P1p3B5N2P1P2PPPR2QR1K1 b -")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Fegatello Attack, Leonhardt Variation", "r1bq1b1rppn3pp2p1k33np32BPQ3P1N51PP2PPPR1B1K2R w KQ")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Fried Liver Attack", "r1bqkb1rppp2Npp2n53np32B58PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Fritz Variation", "r1bqkb1rppp2ppp5n23Pp1N12Bn48PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Fritz, Gruber Variation", "r1bqkb1rp1p2ppp81p1np33nN32P5PP1P1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Kloss Gambit", "r1bqkb1rppp2ppp5n23Pp1N11nB58PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Knight Attack", "r1bqkb1rpppp1ppp2n2n24p1N12B1P38PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Knight Attack, Normal Variation", "r1bqkb1rppp2ppp2n2n23pp1N12B1P38PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Lolli Attack", "r1bqkb1rppp2ppp2n53np1N12BP48PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Pincus Variation", "r1bqk2rppp2ppp2n53np1N11bBP48PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Polerio Defense", "r1bqkb1rppp2ppp5n2n2Pp1N12B58PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Ponziani-Steinitz Gambit", "r1bqkb1rpppp1ppp2n54p1N12B1n38PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Traxler Counterattack", "r1bqk2rpppp1ppp2n2n22b1p1N12B1P38PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Traxler Counterattack, Bishop Sacrifice Line", "r1bqk2rpppp1Bpp2n2n22b1p1N14P38PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Traxler Counterattack, King March Line", "r1bqk2rpppp1Npp2n54p32B1n34K3PPPP2PPRNBQ3R b kq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Traxler Counterattack, Knight Sacrifice Line", "r1bqk2rpppp1Npp2n2n22b1p32B1P38PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Traxler Variation, Trencianske-Teplice Gambit", "r1bq3rppppkBpp2n2n22b1p1N13PP38PPP2PPPRNBQK2R b KQ")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Ulvestad Variation", "r1bqkb1rp1p2ppp2n2n21p1Pp1N12B58PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C57", "Italian Game: Two Knights Defense, Ulvestad Variation, Kurkin Gambit", "r1bqkb1rp1p2Np12n2n1p1p1Pp388PPPP1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C58", "Italian Game: Two Knights Defense", "r1bqkb1rp4ppp2p2n2n3p1N188PPPPBPPPRNBQK2R b KQkq")); + openings.add(new Opening("C58", "Italian Game: Two Knights Defense, Blackburne Variation", "r1bqkb1rp4ppp5n2np2p1N185Q2PPPP1PPPRNB1K2R w KQkq")); + openings.add(new Opening("C58", "Italian Game: Two Knights Defense, Colman Variation", "1rbqkb1rp4ppp2p2n2nB2p1N185Q2PPPP1PPPRNB1K2R w KQk")); + openings.add(new Opening("C58", "Italian Game: Two Knights Defense, Maróczy Variation", "r1bqk2rppp1bpp15n1p3P42P1p35N2PPP1QPPPRNB1K2R w KQkq")); + openings.add(new Opening("C58", "Italian Game: Two Knights Defense, Paoli Variation", "r1b1kb1rp1q2ppp2p2n2n3p1N183B1Q2PPPP1PPPRNB1K2R b KQkq")); + openings.add(new Opening("C58", "Italian Game: Two Knights Defense, Polerio Defense, Bishop Check Line", "r1bqkb1rppp2ppp5n2nB1Pp1N188PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C58", "Italian Game: Two Knights Defense, Polerio Defense, Bogoljubov Variation", "r1bqkb1rp4ppp2p2n2nB2p1N185Q2PPPP1PPPRNB1K2R b KQkq")); + openings.add(new Opening("C58", "Italian Game: Two Knights Defense, Polerio Defense, Kieseritzky Variation", "r1bqkb1rppp2ppp5n2n2Pp1N12B53P4PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C58", "Italian Game: Two Knights Defense, Polerio Defense, Yankovich Variation", "r1bqk2rppp2pp15n1p2bP42P1p38PPPNQPPPRNB1K2R b KQkq")); + openings.add(new Opening("C59", "Italian Game: Two Knights Defense, Knorre Variation", "r1b1k2rp1q2pp12pb1n1pn3N33Pp38PPPBBPPPRN1QK2R b KQkq")); + openings.add(new Opening("C59", "Italian Game: Two Knights Defense, Polerio Defense, Göring Variation", "r1b1kb1rp1q2pp12p2n1pn3N34p38PPPPBPPPRNBQK2R w KQkq")); + openings.add(new Opening("C59", "Italian Game: Two Knights Defense, Polerio Defense, Suhle Defense", "r1bqkb1rp4pp12p2n1pn3p1N188PPPPBPPPRNBQK2R w KQkq")); + openings.add(new Opening("C59", "Italian Game: Two Knights Defense, Steinitz Variation", "r1bqkb1rp4pp12p2n1pn3p387NPPPPBPPPRNBQK2R b KQkq")); + openings.add(new Opening("C60", "Ruy Lopez", "r1bqkbnrpppp1ppp2n51B2p34P35N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Alapin Defense", "r1bqk1nrpppp1ppp2n51B2p31b2P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Alapin Defense, Alapin Gambit", "r1bqk1nrppp2ppp2p5b3p34P32P2N2PP1P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Brentano Gambit", "r1bqkbnrpppp1p1p2n51B2p1p14P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Bulgarian Variation", "r1bqkbnr1ppp1ppp2n5pB2p34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Cozio Defense", "r1bqkb1rppppnppp2n51B2p34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Cozio Defense, Paulsen Variation", "r1bqkb1rppppnp1p2n3p11B2p34P32N2N2PPPP1PPPR1BQK2R w KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Cozio Defense, Tartakower Gambit", "r1bq1rk1ppp1npbp2n3p11B1p43NP32N1B3PPPQ1PPPR3K2R w KQ")); + openings.add(new Opening("C60", "Ruy Lopez: Fianchetto Defense", "r1bqkbnrpppp1p1p2n3p11B2p34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Lucena Variation", "r1bqk1nrppppbppp2n51B2p34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Nuernberg Variation", "r1bqkbnrpppp2pp2n2p21B2p34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Pollock Defense", "r1bqkbnrpppp1ppp8nB2p34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Retreat Variation", "rnbqkbnrpppp1ppp81B2p34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Rotary-Albany Gambit", "r1bqkbnrp1pp1ppp1pn51B2p34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Schliemann Defense, Jaenisch Gambit Accepted", "r1bqkbnrpppp2pp2n51B2pP285N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Spanish Countergambit", "r1bqkbnrppp2ppp2n51B1pp34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Spanish Countergambit, Harding Countergambit, Fricke Gambit", "r1b1kbnrppp2ppp2n51B1pN1q14P38PPPP1PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C60", "Ruy Lopez: Spanish Countergambit, Harding Gambit", "r1b1kbnrppp2ppp2N51B1p2q14P38PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C60", "Ruy Lopez: Vinogradov Variation", "r1b1kbnrppppqppp2n51B2p34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C60", "Spanish Opening: Fianchetto Defense, Kevitz Gambit", "r1bqkbnrpppp3p2n3p11B2pp24P32P2N2PP1P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C61", "Ruy Lopez: Bird Variation", "r1bqkbnrpppp1ppp81B2p33nP35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C61", "Ruy Lopez: Bird Variation, Paulsen Variation", "r1bqkb1rppppnppp81B63pP38PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C62", "Ruy Lopez: Old Steinitz Defense: Semi-Duras Variation", "r2qkbnrpppb1ppp2np41B2p32PPP35N2PP3PPPRNBQK2R b KQkq")); + openings.add(new Opening("C62", "Ruy Lopez: Steinitz Defense", "r1bqkbnrppp2ppp2np41B2p34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C62", "Ruy Lopez: Steinitz Defense, Center Gambit", "r1bqkbnrppp2ppp2np41B63pP35N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C62", "Ruy Lopez: Steinitz Defense, Nimzowitsch Attack", "r2qkb1rpppb1ppp2Bp1n24p33PP32N2N2PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("C63", "Ruy Lopez: Schliemann Defense", "r1bqkbnrpppp2pp2n51B2pp24P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C63", "Ruy Lopez: Schliemann Defense, Classical Variation", "r1b1kbnrppp3pp2N51B4q14p38PPPP1PPPR1BQK2R w KQkq")); + openings.add(new Opening("C63", "Ruy Lopez: Schliemann Defense, Dyckhoff Variation", "r1bqkbnrpppp2pp2n51B2pp24P32N2N2PPPP1PPPR1BQK2R b KQkq")); + openings.add(new Opening("C63", "Ruy Lopez: Schliemann Defense, Exchange Variation", "r1bqkbnrpppp2pp2B54pp24P35N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C63", "Ruy Lopez: Schliemann Defense, Kostic Defense", "r1bqk1nrppppb1pp2n51B2p34N35N2PPPP1PPPR1BQK2R w KQkq")); + openings.add(new Opening("C63", "Ruy Lopez: Schliemann Defense, Moehring Variation", "r1b1kbnrppp3pp2N51B1q44p38PPPP1PPPR1BQK2R w KQkq")); + openings.add(new Opening("C63", "Ruy Lopez: Schliemann Defense, Schoenemann Attack", "r1bqkbnrpppp2pp2n51B2pp23PP35N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C63", "Ruy Lopez: Schliemann Defense, Tartakower Variation", "r1bqkb1rpppp2pp2n2n21B2p34N35N2PPPP1PPPR1BQK2R w KQkq")); + openings.add(new Opening("C64", "Ruy Lopez: Classical Defense: Benelux Variation", "r1bq1rk1pppp1ppp1bn2n21B2p33PP32P2N2PP3PPPRNBQ1RK1 w -")); + openings.add(new Opening("C64", "Ruy Lopez: Classical Defense: Boden Variation", "r1b1k1nrppppqppp2n51Bb1p34P32P2N2PP1P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C64", "Ruy Lopez: Classical Defense: Zaitsev Variation", "r1bqk1nrpppp1ppp81Bb1p31P1nP35N2P1PP1PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C64", "Ruy Lopez: Classical Variation", "r1bqk1nrpppp1ppp2n51Bb1p34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C64", "Ruy Lopez: Classical Variation, Central Variation", "r1bqk1nrpppp1ppp2n51Bb1p34P32P2N2PP1P1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C64", "Ruy Lopez: Classical Variation, Charousek Variation", "r1bqk1nrpppp1ppp1bn51B2p34P32P2N2PP1P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C64", "Ruy Lopez: Classical Variation, Cordel Gambit", "r1bqk1nrpppp2pp2n51Bb1pp24P32P2N2PP1P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C64", "Ruy Lopez: Classical Variation, Konikowski Gambit", "r1bqk1nrppp2ppp2n51Bbpp34P32P2N2PP1P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C64", "Ruy Lopez: Classical Variation, Modern Main Line", "r1bq1rk1pppp1ppp1bn2n21B2p1B13PP32P2N2PP3PPPRN1Q1RK1 b -")); + openings.add(new Opening("C64", "Ruy Lopez: Classical Variation, Spanish Wing Gambit", "r1bqk1nrpppp1ppp2n51Bb1p31P2P35N2P1PP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C64", "Ruy Lopez: Classical Variation, Zukertort Gambit", "r1bqk2rpppp1ppp2n2n21Bb1p34P32P2N2PP1P1PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C65", "Ruy Lopez Defense, Halloween Attack", "r1bqkb1rpppp1ppp2n2n21B2N34P38PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C65", "Ruy Lopez: Berlin Defense", "r1bqkb1rpppp1ppp2n2n21B2p34P35N2PPPP1PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C65", "Ruy Lopez: Berlin Defense", "r1bqkb1rpppp1ppp2n2n21B2p34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C65", "Ruy Lopez: Berlin Defense, Anderssen Variation", "r1bqkb1rppp2ppp2Bp1n24p34P33P1N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C65", "Ruy Lopez: Berlin Defense, Beverwijk Variation", "r1bqk2rpppp1ppp2n2n21Bb1p34P35N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C65", "Ruy Lopez: Berlin Defense, Duras Variation", "r1bqkb1rppp2ppp2np1n21B2p32P1P33P1N2PP3PPPRNBQK2R b KQkq")); + openings.add(new Opening("C65", "Ruy Lopez: Berlin Defense, Fishing Pole Variation", "r1bqkb1rpppp1ppp2n51B2p34P1n15N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C65", "Ruy Lopez: Berlin Defense, Nyholm Attack", "r1bqkb1rpppp1ppp2n2n21B63pP35N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C65", "Ruy Lopez: Berlin Defense: Kaufmann Variation", "r1bqk2rpppp1ppp2n2n21Bb1p34P33PBN2PPP2PPPRN1QK2R b KQkq")); + openings.add(new Opening("C65", "Ruy Lopez: Berlin Defense: Mortimer Trap", "r1bqkb1rpp1pnppp2p2n21B2N34P33P4PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C65", "Ruy Lopez: Berlin Defense: Mortimer Variation", "r1bqkb1rppppnppp5n21B2p34P33P1N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C66", "Ruy Lopez: Berlin Defense, Closed Bernstein Variation", "r2qk2rpppbbppp2np1n21B2p1B13PP32N2N2PPP2PPPR2Q1RK1 b kq")); + openings.add(new Opening("C66", "Ruy Lopez: Berlin Defense, Closed Showalter Variation", "r2qk2rpppbbppp2Bp1n24p33PP32N2N2PPP2PPPR1BQ1RK1 b kq")); + openings.add(new Opening("C66", "Ruy Lopez: Berlin Defense, Closed Wolf Variation", "r2qkb1rpppb1ppp2np1n21B63pP32N2N2PPP2PPPR1BQ1RK1 w kq")); + openings.add(new Opening("C66", "Ruy Lopez: Berlin Defense, Hedgehog Variation", "r2qk2rpppbbppp2np1n21B2p33PP32N2N2PPP2PPPR1BQ1RK1 w kq")); + openings.add(new Opening("C66", "Ruy Lopez: Berlin Defense, Improved Steinitz Defense", "r1bqkb1rppp2ppp2np1n21B2p34P35N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C66", "Ruy Lopez: Berlin Defense, Tarrasch Trap", "r2q1rk1pppbbppp2np1n21B2p33PP32N2N2PPP2PPPR1BQR1K1 w -")); + openings.add(new Opening("C66", "Ruy Lopez: Closed Berlin Defense: Chigorin Variation", "r1bqkb1rpppn1ppp2np41B2p33PP35N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C67", "Dresden Opening: The Goblin", "r1bqkb1rpppp1ppp2n2n24N32P1P38PP1P1PPPRNBQKB1R b KQkq")); + openings.add(new Opening("C67", "Ruy Lopez: Berlin Defense, Berlin Wall", "r2k1b1rpppb1ppp2p54Pn282N2N2PPP2PPPR1B2RK1 w -")); + openings.add(new Opening("C67", "Ruy Lopez: Berlin Defense, Cordel Variation", "r1bqk2rp1ppbppp2p54Pn285N2PPP1QPPPRNB2RK1 w kq")); + openings.add(new Opening("C67", "Ruy Lopez: Berlin Defense, Minckwitz Variation", "r1bqk2rppppbppp2n51B2P34n35N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C67", "Ruy Lopez: Berlin Defense, Pillsbury Variation", "r1bqk2rpnppbppp2p54P381P3N2P1P1QPPPRNB2RK1 b kq")); + openings.add(new Opening("C67", "Ruy Lopez: Berlin Defense, Rio Gambit Accepted", "r1bqkb1rpppp1ppp2n51B2p34n35N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C67", "Ruy Lopez: Berlin Defense, Rio de Janeiro Variation", "r1bqk2rppppbppp2n51B2p33Pn35N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C67", "Ruy Lopez: Berlin Defense, Rosenthal Variation", "r1bqkb1r1ppp1pppp1n51B2p33Pn35N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C67", "Ruy Lopez: Berlin Defense, Trifunovic Variation", "r1bqk2rppp1bppp2n51B1pp33Pn35N2PPP1QPPPRNB2RK1 w kq")); + openings.add(new Opening("C67", "Ruy Lopez: Berlin Defense, Winawer Attack", "r1bqk2rpnppbppp2p54P33N48PPP1QPPPRNB2RK1 b kq")); + openings.add(new Opening("C67", "Ruy Lopez: Berlin Defense, Zukertort Variation", "r1bqk2rpnppbppp2p54P32P55N2PP2QPPPRNB2RK1 b kq")); + openings.add(new Opening("C67", "Ruy Lopez: Berlin Defense, l'Hermet Variation", "r1bqkb1rpppp1ppp2nn41B2p33P45N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C67", "Ruy Lopez: Berlin Defense, l'Hermet Variation, Berlin Wall Defense", "r1bk1b1rppp2ppp2p54Pn285N2PPP2PPPRNB2RK1 w -")); + openings.add(new Opening("C67", "Ruy Lopez: Berlin Defense, l'Hermet Variation, Westerinen Line", "r1bqkb1rppp2ppp2p54P34n35N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C67", "Ruy Lopez: Berlin Defense: Rio de Janeiro Variation", "r1bq1rk1p1ppbppp82p1P33B42N5PPP1QPPPR3R1K1 w -")); + openings.add(new Opening("C67", "Ruy Lopez: Open Berlin Defense: Showalter Variation", "r1bqkb1rpppp1ppp2nn44p3B2P45N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C67", "Ruy Lopez: Open Berlin Defense: l'Hermet Variation", "r1bqkb1rpppp1ppp2nn41B2P385N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C68", "Ruy Lopez: Columbus Variation", "r1bqkbnr1ppp1pppp1n54p3B3P35N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C68", "Ruy Lopez: Exchange Variation", "r1bqkbnr1ppp1pppp1B54p34P35N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C68", "Ruy Lopez: Exchange Variation, Alekhine Variation", "r1b1k1nr1pp2pppp1pb483NP38PPP2PPPRNB1K2R w KQkq")); + openings.add(new Opening("C68", "Ruy Lopez: Exchange Variation, Keres Variation", "r1bqkbnr1pp2pppp1p54p34P32N2N2PPPP1PPPR1BQK2R b KQkq")); + openings.add(new Opening("C68", "Ruy Lopez: Exchange Variation, King's Bishop Variation", "r1bqk1nr1pp2pppp1pb44p34P35N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C68", "Ruy Lopez: Exchange Variation, Lutikov Variation", "r1bqkbnr2pp1pppp1p54p34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C68", "Ruy Lopez: Exchange Variation, Romanovsky Variation", "r1bqkbnr1pp3ppp1p2p24p34P32NP1N2PPP2PPPR1BQK2R b KQkq")); + openings.add(new Opening("C68", "Ruy Lopez: Exchange, Alekhine Variation", "r3kbnr1ppb1pppp1p583NP38PPP2PPPRNB1K2R w KQkq")); + openings.add(new Opening("C69", "Ruy Lopez: Exchange Variation, Alapin Gambit", "r2qkbnr1pp2pp1p1p54p2p4P1b15N1PPPPP1PP1RNBQ1RK1 w kq")); + openings.add(new Opening("C69", "Ruy Lopez: Exchange Variation, Bronstein Variation", "r1b1kbnr1pp2pppp1pq44p34P35N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C69", "Ruy Lopez: Exchange Variation, Gligoric Variation", "r1bqkbnr1pp3ppp1p2p24p34P35N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C69", "Ruy Lopez: Exchange Variation, Normal Variation", "r1bqkbnr1pp2pppp1p54p34P35N2PPPP1PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C70", "Ruy Lopez", "r1bqkbnr1ppp1pppp1n51B2p34P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C70", "Ruy Lopez: Bird's Defense Deferred", "r1bqkbnr1ppp1pppp74p3B2nP35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C70", "Ruy Lopez: Morphy Defense, Alapin's Defense Deferred", "r1bqk1nr1ppp1pppp1n54p3Bb2P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C70", "Ruy Lopez: Morphy Defense, Caro Variation", "r1bqkbnr2pp1pppp1n51p2p3B3P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C70", "Ruy Lopez: Morphy Defense, Classical Defense Deferred", "r1bqk1nr1ppp1pppp1n52b1p3B3P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C70", "Ruy Lopez: Morphy Defense, Cozio Defense", "r1bqkb1r1pppnpppp1n54p3B3P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C70", "Ruy Lopez: Morphy Defense, Fianchetto Defense Deferred", "r1bqkbnr1ppp1p1pp1n3p14p3B3P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C70", "Ruy Lopez: Morphy Defense, Graz Variation", "r1bqk1nr2pp1pppp1n51pb1p34P31B3N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C70", "Ruy Lopez: Morphy Defense, Norwegian Variation", "r1bqkbnr2pp1pppp7np2p34P31B3N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C70", "Ruy Lopez: Morphy Defense, Norwegian Variation, Nightingale Gambit", "r1bqkbnr2pp1Bppp7np2p34P35N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C70", "Ruy Lopez: Morphy Defense, Schliemann Defense Deferred", "r1bqkbnr1ppp2ppp1n54pp2B3P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C70", "Ruy Lopez: Morphy Defense, Schliemann Defense Deferred, Jaenisch Gambit Deferred", "r1bqkbnr1ppp2ppp1n54pP2B75N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C71", "Ruy Lopez: Morphy Defense, Modern Steinitz Defense", "r1bqkbnr1pp2pppp1np44p3B3P32N2N2PPPP1PPPR1BQK2R b KQkq")); + openings.add(new Opening("C71", "Ruy Lopez: Morphy Defense, Modern Steinitz Defense", "r1bqkbnr1pp2pppp1np44p3B3P35N2PPPP1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C71", "Ruy Lopez: Morphy Defense, Modern Steinitz Defense", "r1bqkbnr1pp2pppp1np44p3B1P1P35N2PP1P1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C71", "Ruy Lopez: Noah's Ark Trap", "r1bqkbnr5pppp2p41pp53QP31B6PPP2PPPRNB1K2R w KQkq")); + openings.add(new Opening("C72", "Ruy Lopez: Morphy Defense, Modern Steinitz Defense", "r1bqkbnr1pp2pppp1np44p3B3P35N2PPPP1PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C73", "Ruy Lopez: Morphy Defense, Modern Steinitz Defense", "r1bqkbnr2p3ppp1pp1p24p33PP35N2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("C73", "Ruy Lopez: Morphy Defense, Modern Steinitz Defense", "r1bqkbnr2p2pppp1pp44p33PP35N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C74", "Ruy Lopez: Morphy Defense, Jaffe Gambit", "r1bqkb1r1ppp1pppp1n2n24p3B3P32P2N2PP1P1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C74", "Ruy Lopez: Morphy Defense, Modern Steinitz Defense", "r1bqkbnr1pp2pppp1np44p3B3P32P2N2PP1P1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C74", "Ruy Lopez: Morphy Defense, Modern Steinitz Defense", "r2qkbnr1pp3ppp1np44pb2B72P2N2PP1P1PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C74", "Ruy Lopez: Morphy Defense, Modern Steinitz Defense, Siesta Variation", "r1bqkbnr1pp3ppp1np44pp2B3P32P2N2PP1P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C75", "Ruy Lopez: Morphy Defense, Modern Steinitz Defense", "r2qkb1r1ppbnpppp1np44p3B2PP32P2N2PP3PPPRNBQK2R w KQkq")); + openings.add(new Opening("C75", "Ruy Lopez: Morphy Defense, Modern Steinitz Defense", "r2qkbnr1ppb1pppp1np44p3B3P32P2N2PP1P1PPPRNBQK2R w KQkq")); + openings.add(new Opening("C76", "Ruy Lopez: Morphy Defense, Modern Steinitz Defense, Fianchetto Variation", "r2qkbnr1ppb1p1pp1np2p14p3B2PP32P2N2PP3PPPRNBQK2R w KQkq")); + openings.add(new Opening("C77", "Ruy Lopez: Morphy Defense, Anderssen Variation", "r1bqkb1r1ppp1pppp1n2n24p3B3P33P1N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C77", "Ruy Lopez: Morphy Defense, Bayreuth Variation", "r1bqkb1r1ppp1pppp1B2n24p34P35N2PPPP1PPPRNBQK2R b KQkq")); + openings.add(new Opening("C77", "Ruy Lopez: Morphy Defense, Duras Variation", "r1bqkb1r1pp2pppp1np1n24p3B1P1P33P1N2PP3PPPRNBQK2R b KQkq")); + openings.add(new Opening("C77", "Ruy Lopez: Morphy Defense, Mackenzie Variation", "r1bqkb1r1ppp1pppp1n2n24p3B2PP35N2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("C77", "Ruy Lopez: Morphy Defense, Tarrasch Variation", "r1bqkb1r1ppp1pppp1n2n24p3B3P32N2N2PPPP1PPPR1BQK2R b KQkq")); + openings.add(new Opening("C77", "Ruy Lopez: Morphy Defense, Wormald Attack", "r1bqkb1r1ppp1pppp1n2n24p3B3P35N2PPPPQPPPRNB1K2R b KQkq")); + openings.add(new Opening("C77", "Ruy Lopez: Wormald Attack, Grünfeld Variation", "r2qk2r2p1bpppp1np1n21p2p33PP1b11BP2N2PP2QPPPRNB1K2R w KQkq")); + openings.add(new Opening("C78", "Ruy Lopez: Closed Variations, Martinez Variation", "r1bqk2r1pppbpppp1n2n24p3B3P33P1N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C78", "Ruy Lopez: Closed Variations, Morphy Attack", "r1bqk2r1pppbpppp1n2n24p3B3P32N2N2PPPP1PPPR1BQ1RK1 b kq")); + openings.add(new Opening("C78", "Ruy Lopez: Morphy Defense", "r1bqkb1r1ppp1pppp1n2n24p3B3P35N2PPPP1PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C78", "Ruy Lopez: Morphy Defense", "r1bqkb1r2p2pppp1np1n21p2p34P31B3N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C78", "Ruy Lopez: Morphy Defense, Arkhangelsk Variation", "r2qkb1r1bpp1pppp1n2n21p2p34P31B3N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C78", "Ruy Lopez: Morphy Defense, Neo-Arkhangelsk Variation", "r1bqk2r1ppp1pppp1n2n22b1p3B3P35N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C78", "Ruy Lopez: Morphy Defense, Wing Attack", "r1bqk2r2ppbpppp1n2n21p2p3P3P31B3N21PPP1PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C78", "Ruy Lopez: Rabinovich Variation", "r1bq1k1r2p2pppp4n21pbPR1N13n41B6PPPP1PPPRNBQ2K1 w -")); + openings.add(new Opening("C79", "Ruy Lopez: Brix Variation", "r1bqkb1r1ppp1p1pp1n2np14p3B3P35N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C79", "Ruy Lopez: Central Countergambit", "r1bqkb1r1pp2pppp1n2n23pp3B3P35N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C79", "Ruy Lopez: Closed Variations, Kecskemet Variation", "r2qbrk11pp1bpppp1np1n24p3B2PP32P2N2PP1N1PPPR1BQR1K1 w -")); + openings.add(new Opening("C79", "Ruy Lopez: Morphy Defense, Steinitz Deferred", "r1bqkb1r1pp2pppp1np1n24p3B3P35N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C79", "Ruy Lopez: Morphy Defense, Steinitz Deferred", "r1bqkb1r2p2pppp1pp44p33Pn35N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C79", "Ruy Lopez: Steinitz Defense Deferred, Boleslavsky Variation", "r1bqkb1r2p3ppp1p53pPp24n32N2N2PPP2PPPR1BQR1K1 b kq")); + openings.add(new Opening("C79", "Ruy Lopez: Steinitz Defense Deferred, Lipnitsky Variation", "r2qkb1r2p2pppp1pp1n24p33PP1b15N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C80", "Ruy Lopez: Morphy Defense, Tartakower Variation", "r1bqkb1r1ppp1pppp1n54p3B3n35N2PPPPQPPPRNB2RK1 b kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open Variation, Skipworth Gambit", "r1bqkb1r1pp2pppp1n53pp3B3n35N2PPPP1PPPRNBQR1K1 w kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open Variations", "r1bqkb1r2pp1pppp1n51p2p33Pn31B3N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open Variations", "r1bqkb1r2p2pppp1n51p1pP34n31B3N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open Variations, Bernstein Variation", "r2qkb1r2p2pppp1n1b31p1pP34n31B3N2PPPN1PPPR1BQ1RK1 b kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open Variations, Bernstein Variation, Luther Line", "r2qk2r2p2pppp1n1b31pbpP34n31B3N2PPPN1PPPR1B1QRK1 b kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open Variations, Friess Attack", "r1bqkb1r2pp1pppp1n51p2N3B2Pn38PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open Variations, Harksen Gambit", "r1bqkb1r2p2pppp1n51p1pp32PPn31B3N2PP3PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open Variations, Karpov Gambit", "r2qkb1r2p2pppp1n1b31pn1P1N13p41BP5PP1N1PPPR1BQ1RK1 b kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open Variations, Main Line", "r2qkb1r2p2pppp1n1b31p1pP34n31B3N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open Variations, Open Variation", "r1bqkb1r1ppp1pppp1n54p3B3n35N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open Variations, Richter Variation", "r1bqkb1r2pp1pppp1n51p1Pp3B3n35N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open Variations, Riga Variation", "r1bqkb1r1ppp1pppp1n58B2pn35N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open Variations, Schlechter Defense", "r1bqkb1r2p2pppp71p1pp3P2nn31B3N21PP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open Variations, Zukertort Variation", "r1bqkb1r2p1npppp71p1pP34n31B3N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open, 6. d4", "r1bqkb1r1ppp1pppp1n54p3B2Pn35N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open, 6. d4 b5", "r1bqkb1r2pp1pppp1n51p2p3B2Pn35N2PPP2PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open, Berger Variation", "r1bqkb1r2p2pppp71p1p4P2pn31BN51PP2PPPR1BQ1RK1 b kq")); + openings.add(new Opening("C80", "Ruy Lopez: Open, Knorre Variation", "r1bqkb1r1ppp1pppp1n54p3B3n32N2N2PPPP1PPPR1BQ1RK1 b kq")); + openings.add(new Opening("C81", "Ruy Lopez: Open Variations, Howell Attack", "r2qk2r2p1bpppp1n1b31p1pP32P1n31B3N2PP2QPPPRNB2RK1 b kq")); + openings.add(new Opening("C81", "Ruy Lopez: Open Variations, Howell Attack", "r2qkb1r2p2pppp1n1b31p1pP34n31B3N2PPP1QPPPRNB2RK1 b kq")); + openings.add(new Opening("C81", "Ruy Lopez: Open, Howell Attack, Ekstrom Variation", "r4rk12pqbpppp1n1b33pP32B1n35N2PP2QPPPRNBR2K1 w -")); + openings.add(new Opening("C82", "Ruy Lopez: Open Variations, Berlin Variation", "r2qkb1r2p2pppp1n1b31pnpP381BP2N2PP3PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C82", "Ruy Lopez: Open Variations, Dilworth Variation", "r2q1rk12p2pppp1n1b31pbpP382P2N2PPBN1nPPR1BQ1RK1 w -")); + openings.add(new Opening("C82", "Ruy Lopez: Open Variations, Italian Variation", "r2qk2r2p2pppp1n1b31pbpP34n31BP2N2PP3PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C82", "Ruy Lopez: Open Variations, Motzko Attack", "r2qk2r2p2pppp1n1b31pbpP34n31BPQ1N2PP3PPPRNB2RK1 b kq")); + openings.add(new Opening("C82", "Ruy Lopez: Open Variations, St. Petersburg Variation", "r2qk2r2p2pppp1n1b31pbpP34n31BP2N2PP1N1PPPR1BQ1RK1 b kq")); + openings.add(new Opening("C82", "Ruy Lopez: Open, 9. c3", "r2qkb1r2p2pppp1n1b31p1pP34n31BP2N2PP3PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C82", "Ruy Lopez: Open, Motzko Attack, Nenarokov Variation", "r2qk2r2p1npppp3b31pbpP34n31BPQ1N2PP3PPPRNB2RK1 w kq")); + openings.add(new Opening("C83", "Ruy Lopez: Open Variations, Breslau Variation", "r2q1rk12p1bpppp3b31p1pn33Nn31BP5PP3PPPRNBQR1K1 w -")); + openings.add(new Opening("C83", "Ruy Lopez: Open Variations, Classical Defense", "r2qk2r2p1bpppp1n1b31p1pP34n31BP2N2PP3PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C83", "Ruy Lopez: Open Variations, Classical Defense, Main Line", "r2qk2r2p1bpppp1n1b31p1pP34n31BP2N2PP3PPPRNBQR1K1 b kq")); + openings.add(new Opening("C83", "Ruy Lopez: Open Variations, Malkin Variation", "r2q1rk12p1bpppp1n1b31p1pP34n31BP2N2PP1NQPPPR1B2RK1 b -")); + openings.add(new Opening("C83", "Ruy Lopez: Open, Tarrasch Trap", "r4rk12pqb1ppp1n1p31p1pP34R31BP5PP3PPPRNBQ2K1 b -")); + openings.add(new Opening("C84", "Ruy Lopez: Closed Variations", "r1bqk2r1pppbpppp1n2n24p3B3P35N2PPPP1PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C84", "Ruy Lopez: Closed Variations, Center Attack", "r1bqk2r1pppbpppp1n2n24p3B2PP35N2PPP2PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C84", "Ruy Lopez: Closed Variations, Center Attack, Basque Gambit", "r1bqk2r1pppbpppp1n54P3B3n32p2N2PP3PPPRNBQ1RK1 w kq")); + openings.add(new Opening("C84", "Ruy Lopez: Closed, Basque Gambit (North Spanish Variation)", "r1bqk2r1pppbpppp1n54P3B2pn32P2N2PP3PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C85", "Ruy Lopez: Closed Variations, Delayed Exchange", "r1bqk2r1pppbpppp1B2n24p34P35N2PPPP1PPPRNBQ1RK1 b kq")); + openings.add(new Opening("C86", "Ruy Lopez: Closed Variations, Worrall Attack", "r1bqk2r1pppbpppp1n2n24p3B3P35N2PPPPQPPPRNB2RK1 b kq")); + openings.add(new Opening("C86", "Ruy Lopez: Closed Variations, Worrall Attack, Castling Line", "r1bq1rk12ppbpppp1n2n21p2p34P31B3N2PPPPQPPPRNB2RK1 w -")); + openings.add(new Opening("C86", "Ruy Lopez: Closed Variations, Worrall Attack, Delayed Castling Line", "r1bqk2r2p1bpppp1np1n21p2p34P31B3N2PPPPQPPPRNB2RK1 w kq")); + openings.add(new Opening("C87", "Ruy Lopez: Closed Variations, Averbakh Variation", "r1bqk2r1pp1bpppp1np1n24p3B3P35N2PPPP1PPPRNBQR1K1 w kq")); + openings.add(new Opening("C88", "Ruy Lopez: Closed", "r1bqk2r2ppbpppp1n2n21p2p34P31B3N2PPPP1PPPRNBQR1K1 b kq")); + openings.add(new Opening("C88", "Ruy Lopez: Closed Variations, Balla Variation", "r1b1k2r2q1bpppp2p1n2npp1p3P2PP32P2N21PB2PPPRNBQR1K1 b kq")); + openings.add(new Opening("C88", "Ruy Lopez: Closed Variations, Rosen Attack", "r1bqk2r2p1bpppp1np1n21p2p33PP31B3N2PPP2PPPRNBQR1K1 b kq")); + openings.add(new Opening("C88", "Ruy Lopez: Closed Variations, Trajkovic Counterattack", "r2qk2r1bppbpppp1n2n21p2p34P31B3N2PPPP1PPPRNBQR1K1 w kq")); + openings.add(new Opening("C88", "Ruy Lopez: Closed, 7... O-O", "r1bq1rk12ppbpppp1n2n21p2p34P31B3N2PPPP1PPPRNBQR1K1 w -")); + openings.add(new Opening("C88", "Ruy Lopez: Closed, 8. c3", "r1bq1rk12ppbpppp1n2n21p2p34P31BP2N2PP1P1PPPRNBQR1K1 b -")); + openings.add(new Opening("C88", "Ruy Lopez: Closed, Anti-Marshall 8. a4", "r1bq1rk12ppbpppp1n2n21p2p3P3P31B3N21PPP1PPPRNBQR1K1 b -")); + openings.add(new Opening("C88", "Ruy Lopez: Closed, Leonhardt Variation", "rnb1k2r2q1bp1pp2p1n21ppPp1p14P32P2N1PPPBN1PP1R1BQR1K1 w kq")); + openings.add(new Opening("C88", "Ruy Lopez: Noah's Ark Trap", "r1bqk2r4bpppp2p1n21pp53QP31B6PPP2PPPRNB1R1K1 w kq")); + openings.add(new Opening("C89", "Ruy Lopez: Marshall Attack", "r1bq1rk12p1bpppp1n2n21p1pp34P31BP2N2PP1P1PPPRNBQR1K1 w -")); + openings.add(new Opening("C89", "Ruy Lopez: Marshall Attack, Main Line", "r1bq1rk14bpppp1p51p1nR33P41BP5PP3PPPRNBQ2K1 b -")); + openings.add(new Opening("C89", "Ruy Lopez: Marshall Attack, Modern Main Line", "r1b2rk15pppp1pb41p1n43P41BP3PqPP3P1PRNBQR1K1 w -")); + openings.add(new Opening("C89", "Ruy Lopez: Marshall Attack, Modern Variation", "r1bq1rk14bpppp1p51p1nR381BP5PP1P1PPPRNBQ2K1 w -")); + openings.add(new Opening("C89", "Ruy Lopez: Marshall Attack, Original Marshall Attack", "r1bq1rk12p1bpppp4n21p2R381BP5PP1P1PPPRNBQ2K1 w -")); + openings.add(new Opening("C89", "Ruy Lopez: Marshall Attack, Re3 Variation", "r1bq1rk15pppp2b41p1p43P42P1R3PP3PPPRNBQ2K1 b -")); + openings.add(new Opening("C89", "Ruy Lopez: Marshall Attack, Steiner Variation", "r1bq1rk12p1bpppp1n2n21p1P44p31BP2N2PP1P1PPPRNBQR1K1 w -")); + openings.add(new Opening("C89", "Ruy Lopez: Marshall, Main Line, Spassky Variation", "5rk15pppp1pbr31p1n3qP2P2b11BPQB1P11P1N1P1PR3R1K1 w -")); + openings.add(new Opening("C90", "Ruy Lopez: Closed Defense, Alekhine Gambit", "r4rk12q1bpppp2p1n2npp1p33PP32P1NQ2PPB2PPPR1B1R1K1 b -")); + openings.add(new Opening("C90", "Ruy Lopez: Closed Variations, Closed Defense", "r1bq1rk12p1bpppp1np1n21p2p34P31BP2N2PP1P1PPPRNBQR1K1 w -")); + openings.add(new Opening("C90", "Ruy Lopez: Closed Variations, Lutikov Variation", "r1bq1rk12p1bpppp1np1n21p2p34P32P2N2PPBP1PPPRNBQR1K1 b -")); + openings.add(new Opening("C90", "Ruy Lopez: Closed Variations, Pilnik Variation", "r1bq1rk12p1bpppp1np1n21p2p34P31BPP1N2PP3PPPRNBQR1K1 b -")); + openings.add(new Opening("C90", "Ruy Lopez: Closed Variations, Suetin Variation", "r1bq1rk12p1bpppp1np1n21p2p34P3PBP2N21P1P1PPPRNBQR1K1 b -")); + openings.add(new Opening("C91", "Ruy Lopez: Closed Variations, Bogoljubov Variation", "r2q1rk12p1bpppp1np1n21p2p33PP1b11BP2N2PP3PPPRNBQR1K1 w -")); + openings.add(new Opening("C91", "Ruy Lopez: Closed Variations, Yates Variation", "r1bq1rk12p1bpppp1np1n21p2p33PP31BP2N2PP3PPPRNBQR1K1 b -")); + openings.add(new Opening("C91", "Ruy Lopez: Closed Variations, Yates Variation, Short Attack", "r2q1rk12p1bpppp1np1n21p2p3P2PP1b11BP2N21P3PPPRNBQR1K1 b -")); + openings.add(new Opening("C92", "Ruy Lopez: Closed Variations", "r1bq1rk12p1bpppp1np1n21p2p34P31BP2N1PPP1P1PP1RNBQR1K1 b -")); + openings.add(new Opening("C92", "Ruy Lopez: Closed Variations, Flohr System", "r2q1rk11bp1bpppp1np1n21p2p34P31BP2N1PPP1P1PP1RNBQR1K1 w -")); + openings.add(new Opening("C92", "Ruy Lopez: Closed Variations, Keres Defense", "r1bq1rk12p1bppp2np1n2pp2p34P31BP2N1PPP1P1PP1RNBQR1K1 w -")); + openings.add(new Opening("C92", "Ruy Lopez: Closed Variations, Keres Defense", "r1bq1rk12pnbpppp1np41p2p34P31BP2N1PPP1P1PP1RNBQR1K1 w -")); + openings.add(new Opening("C92", "Ruy Lopez: Closed Variations, Kholmov Variation", "r2q1rk12p1bpppp1npbn21p2p34P31BP2N1PPP1P1PP1RNBQR1K1 w -")); + openings.add(new Opening("C92", "Ruy Lopez: Closed Variations, Zaitsev System", "r1bqr1k12p1bpppp1np1n21p2p34P31BP2N1PPP1P1PP1RNBQR1K1 w -")); + openings.add(new Opening("C93", "Ruy Lopez: Closed Variations, Smyslov Defense", "r1bq1rk12p1bpp1p1np1n1p1p2p34P31BP2N1PPP1P1PP1RNBQR1K1 w -")); + openings.add(new Opening("C93", "Ruy Lopez: Closed Variations, Smyslov-Breyer-Zaitsev Hybrid", "r2qrbk11bp2pp1p1np1n1p1p2p33PP3PBP2N1P1P1N1PP1R1BQR1K1 w -")); + openings.add(new Opening("C94", "Ruy Lopez: Morphy Defense, Breyer Defense", "rnbq1rk12p1bpppp2p1n21p2p34P31BP2N1PPP1P1PP1RNBQR1K1 w -")); + openings.add(new Opening("C94", "Ruy Lopez: Morphy Defense, Breyer Defense, Quiet Variation", "rnbq1rk12p1bpppp2p1n21p2p34P31BPP1N1PPP3PP1RNBQR1K1 b -")); + openings.add(new Opening("C95", "Ruy Lopez: Closed Variations, Breyer Defense", "r2q1rk11b1nbpppp2p1n21pp1p33PP32P2N1PPPBN1PP1R1BQR1K1 w -")); + openings.add(new Opening("C95", "Ruy Lopez: Closed Variations, Breyer Defense", "r1bq1rk12pnbpppp2p1n21p2p33PP2N1BP4PPP3PP1RNBQR1K1 b -")); + openings.add(new Opening("C95", "Ruy Lopez: Closed, Breyer, 10. d4", "rnbq1rk12p1bpppp2p1n21p2p33PP31BP2N1PPP3PP1RNBQR1K1 b -")); + openings.add(new Opening("C95", "Ruy Lopez: Morphy Defense, Breyer Defense, Zaitsev Hybrid", "r1bq1rk12pnbpppp2p1n21p2p33PP31BP2N1PPP3PP1RNBQR1K1 w -")); + openings.add(new Opening("C96", "Ruy Lopez: Closed Variations, Borisenko Variation", "r1bq1rk14bpppp1np1n21pp1p33PP32P2N1PPPB2PP1RNBQR1K1 w -")); + openings.add(new Opening("C96", "Ruy Lopez: Closed Variations, Closed Defense", "r1bq1rk14bpppp2p1n2npp1p34P32P2N1PPPBP1PP1RNBQR1K1 w -")); + openings.add(new Opening("C96", "Ruy Lopez: Closed Variations, Closed Defense", "r1bq1rk12p1bpppp2p1n2np2p34P32P2N1PPPBP1PP1RNBQR1K1 b -")); + openings.add(new Opening("C96", "Ruy Lopez: Closed Variations, Keres Defense", "r1bq1rk13nbpppp2p4npp1p33PP32P2N1PPPB2PP1RNBQR1K1 w -")); + openings.add(new Opening("C96", "Ruy Lopez: Closed, Rossolimo Defense", "r1b2rk12q1bpppp1pp1n2np2p33PP32P2N1PPPB2PP1RNBQR1K1 w -")); + openings.add(new Opening("C97", "Ruy Lopez: Closed Variations, Chigorin Defense", "r1b2rk12q1bpppp2p1n2npp1p33PP32P2N1PPPB2PP1RNBQR1K1 w -")); + openings.add(new Opening("C97", "Ruy Lopez: Closed, Chigorin, Yugoslav System", "r3r1k12qbbp1pp2p1np1npp1p33PP32P1NN1PPPB2PP1R1BQR1K1 w -")); + openings.add(new Opening("C98", "Ruy Lopez: Closed Variations, Chigorin Defense", "r1b2rk12q1bpppp1np1n21pp1p33PP32P2N1PPPBN1PP1R1BQR1K1 w -")); + openings.add(new Opening("C98", "Ruy Lopez: Closed Variations, Chigorin Defense", "r1b2rk12q1bpppp1np1n21pP1p34P32P2N1PPPBN1PP1R1BQR1K1 b -")); + openings.add(new Opening("C99", "Ruy Lopez: Morphy Defense, Chigorin Defense, Panov System", "r1b2rk12q1bpppp2p1n2np2p33PP35N1PPPBN1PP1R1BQR1K1 b -")); + openings.add(new Opening("D00", "Amazon Attack", "rnbqkbnrppp1pppp83p43P43Q4PPP1PPPPRNB1KBNR b KQkq")); + openings.add(new Opening("D00", "Amazon Attack: Siberian Attack", "rnbqkb1rppp1pppp5n23p43P42NQ4PPP1PPPPR1B1KBNR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit", "rnbqkbnrppp1pppp83p43PP38PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit", "rnbqkb1rppp1pppp5n23p43PP32N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit Declined, Brombacher Countergambit", "rnbqkb1rpp2pppp5n22p53Pp32N2P2PPP3PPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit Declined, Elbert Countergambit", "rnbqkb1rppp2ppp5n24p33Pp32N2P2PPP3PPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit Declined, Grosshans Defense", "rn1qkbnrpppbpppp883Pp32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit Declined, Lamb Defense", "r1bqkb1rppp1pppp2n2n283Pp32N2P2PPP3PPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit Declined, Langeheinecke Defense", "rnbqkb1rppp1pppp5n283P42N1pP2PPP3PPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit Declined, O'Kelly Defense", "rnbqkb1rpp2pppp2p2n283Pp32N2P2PPP3PPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit Declined, Weinsbach Declination", "rnbqkb1rppp2ppp4pn283Pp32N2P2PPP3PPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Bogoljubov Defense, Mad Dog Attack", "rnbqk2rppp1ppbp5np182BP3P2N2N2PPP3P1R1BQK2R b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Bogoljubov Variation", "rnbqkb1rppp1pp1p5np183P42N2N2PPP3PPR1BQKB1R w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Bogoljubov Variation, Kloss Attack", "rnbq1rk1ppp1ppbp5np182BP42N2N2PPP3PPR1BQ1R1K b -")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Bogoljubov Variation, Nimzowitsch Attack", "rnbqk2rppp1ppbp5np14N32BP42N5PPP3PPR1BQK2R b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Bogoljubov Variation, Studier Attack", "rnbq1rk1ppp1ppbp5np182BP42N2N2PPP3PPR1B1QRK1 b -")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Diemer-Rosenberg Attack", "rnbqkbnrppp1pppp883Pp34B3PPP2PPPRN1QKBNR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Euwe Defense", "rnbqkb1rppp2ppp4pn283P42N2N2PPP3PPR1BQKB1R w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Euwe Defense, Zilbermints Gambit", "r1bqk2rppp1bppp4pn26B13n42NB1N2PPP3PPR2Q1R1K b kq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Fritz Attack", "rnbqkbnrppp1pppp882BPp38PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Gedult Gambit", "rnbqkbnrppp1pppp883Pp35P2PPP3PPRNBQKBNR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Kaulich Defense", "rnbqkb1rpp2pppp5n22p53P42N2N2PPP3PPR1BQKB1R w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Lemberger Countergambit, Diemer Attack", "rnbqkbnrppp2ppp84p33Pp32N1B3PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Lemberger Countergambit, Endgame Variation", "rnbqkbnrppp2ppp84P34p32N5PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Lemberger Countergambit, Rassmussen Attack", "rnbqkbnrppp2ppp84p33Pp32N5PPP1NPPPR1BQKB1R b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Lemberger Countergambit, Simple Variation", "rnbqkbnrppp2ppp84p33PN38PPP2PPPR1BQKBNR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Lemberger Countergambit, Sneider Attack", "rnbqkbnrppp2ppp84p2Q3Pp32N5PPP2PPPR1B1KBNR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Netherlands Variation", "rnbqkbnrppp1p1pp85p23Pp32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Pietrowsky Defense", "r1bqkb1rppp1pppp2n2n283P42N2N2PPP3PPR1BQKB1R w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Rasa-Studier Gambit", "rnbqkb1rppp1pppp5n283Pp32N1B3PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Ritter Defense", "rnbqkb1rp1p1pppp1p3n283P42N2N2PPP3PPR1BQKB1R w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Rook Pawn Defense", "rnbqkb1rppp1ppp15n27p3P42N2N2PPP3PPR1BQKB1R w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Ryder Gambit", "rnbqkb1rppp1pppp5n283P42N2Q2PPP3PPR1B1KBNR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Schlutter Defense", "r1bqkb1rpppnpppp5n283P42N2N2PPP3PPR1BQKB1R w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Tartakower Variation", "rn1qkb1rppp1pppp5n25b23P42N2N2PPP3PPR1BQKB1R w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Teichmann Variation", "rn1qkb1rppp1pppp5n283P2b12N2N2PPP3PPR1BQKB1R w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Vienna Variation", "rn1qkb1rppp1pppp5n25b23Pp32N2P2PPP3PPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Zeller Defense", "rn1qkbnrppp1pppp85b23Pp32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Zeller Defense, Soller Attack", "rn1qkb1rppp1pppp5n25b22BPp32N2P2PPP3PPR1BQK1NR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: Ziegler Defense", "rnbqkb1rpp2pppp2p2n283P42N2N2PPP3PPR1BQKB1R w KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: von Popiel Gambit", "rnbqkb1rppp1pppp5n26B13Pp32N5PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer Gambit: von Popiel Gambit, Zilbermints Variation", "rn1qk2rppp2ppp5pb11Q61b1Pp1P12N5PPP2P1PR3KBNR b KQkq")); + openings.add(new Opening("D00", "Blackmar-Diemer, Lemberger Countergambit", "rnbqkb1rppp2ppp5n23pp33PP32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game", "rnbqkbnrppp1pppp83p43P48PPP1PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game", "rnbqkbnrppp1pppp83p43P44P3PPP2PPPRNBQKBNR b KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game", "rnbqkb1rppp1pppp5n23p43P44P3PPP2PPPRNBQKBNR w KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Chigorin Variation", "rnbqkbnrppp1pppp83p43P42N5PPP1PPPPR1BQKBNR b KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Huebsch Gambit", "rnbqkb1rppp1pppp83p43Pn32N5PPP2PPPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Levitsky Attack", "rnbqkbnrppp1pppp83p2B13P48PPP1PPPPRN1QKBNR b KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Levitsky Attack, Euwe Variation, Modern Line", "rnb1kbnrpp2ppp11qp4p3p43P3B5N2PPP1PPPPRN1QKB1R w KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Levitsky Attack, Welling Variation", "rn1qkbnrppp1pppp83p2B13P2b18PPP1PPPPRN1QKBNR w KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Mason Attack", "rnbqkbnrppp1pppp83p43P1B28PPP1PPPPRN1QKBNR b KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Morris Countergambit", "rnbqkbnrpp2pppp82pp43PPB28PPP2PPPRN1QKBNR b KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Steinitz Countergambit", "rnbqkbnrpp2pppp82pp43P1B28PPP1PPPPRN1QKBNR w KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Stonewall Attack", "rnbqkb1rppp1pppp5n23p43P43BP3PPP2PPPRNBQK1NR b KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Veresov Attack, Alburt Defense", "rn1qkbnrppp1pppp83p1b23P42N5PPP1PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Veresov Attack, Anti-Veresov", "rn1qkbnrppp1pppp83p43P2b12N5PPP1PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Veresov Attack, Fianchetto Defense", "rnbqk1nrppp1ppbp6p13p43P42N2N2PPP1PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Veresov Attack, Shaviliuk Gambit", "rnbqkbnrppp2ppp83pp33P42N5PPP1PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Veresov Attack, Shropshire Defense", "rnbqkbnrppp1ppp183p3p3P42N5PPP1PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Game: Zurich Gambit", "rnbqkbnrppp1pppp83p43P2P18PPP1PP1PRNBQKBNR b KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Opening: Veresov Attack, Irish Gambit", "rnbqkbnrpp2pppp82pp43P42N5PPP1PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D00", "Queen's Pawn Opening: Veresov, Richter Attack", "rnbqkb1rppp1pppp5n23p43P42N2P2PPP1P1PPR1BQKBNR b KQkq")); + openings.add(new Opening("D00", "Veresov Opening: Malich Gambit", "rnbqkb1rpp2pp1p5p22pP44p32N5PPP2PPPR2QKBNR b KQkq")); + openings.add(new Opening("D01", "Queen's Pawn Game: Chigorin Variation", "rnbqkb1rppp1pppp5n23p43P42N5PPP1PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D01", "Queen's Pawn Game: Veresov Attack, Boyce Defense", "rnbqkb1rppp1pppp83p2B13Pn32N5PPP1PPPPR2QKBNR w KQkq")); + openings.add(new Opening("D01", "Queen's Pawn Game: Veresov Attack, Classical Defense", "rnbqkb1rppp2ppp4pn23p2B13P42N2N2PPP1PPPPR2QKB1R b KQkq")); + openings.add(new Opening("D01", "Queen's Pawn Game: Veresov Attack, Richter Variation", "rn1qkb1rppp1pppp5n23p1bB13P42N2P2PPP1P1PPR2QKBNR b KQkq")); + openings.add(new Opening("D01", "Queen's Pawn Game: Veresov Attack, Two Knights System", "r1bqkb1rpppnpppp5n23p2B13P42N2N2PPP1PPPPR2QKB1R b KQkq")); + openings.add(new Opening("D01", "Queen's Pawn Game: Veresov Attack, Two Knights System, Grünfeld Defense", "r1bqkb1rpppnpp1p5np13p2B13P42N2N2PPP1PPPPR2QKB1R w KQkq")); + openings.add(new Opening("D01", "Queen's Pawn Game: Veresov Attack, Veresov Variation", "rn1qkb1rppp1pppp5B23p1b23P42N5PPP1PPPPR2QKBNR b KQkq")); + openings.add(new Opening("D01", "Richter-Veresov Attack", "rnbqkb1rppp1pppp5n23p2B13P42N5PPP1PPPPR2QKBNR b KQkq")); + openings.add(new Opening("D01", "Richter-Veresov Attack", "rn1qkb1rppp1pppp5n23p1bB13P42N5PPP1PPPPR2QKBNR w KQkq")); + openings.add(new Opening("D02", "London System: Poisoned Pawn Variation", "rnb1kb1rpp2pppp1q3n22pp43P1B22N1PN2PPP2PPPR2QKB1R b KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Baltic Defense", "rn1qkbnrppp1pppp83p1b22PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Baltic Defense, Pseudo-Chigorin", "r2qkbnrppp2ppp2n1p33p1b22PP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Baltic Defense, Pseudo-Slav", "rn1qkbnrpp3ppp2p1p33p1b22PP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Baltic Defense, Queen Attack", "rn1qkbnrppp1pppp83p1b22PP41Q6PP2PPPPRNB1KBNR b KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Baltic Defense, Queen Attack Deferred", "rn1qkbnrppp2ppp4p33p1b22PP41QN5PP2PPPPR1B1KBNR b KQkq")); + openings.add(new Opening("D02", "Queen's Pawn Game: Anti-Torre", "rn1qkbnrppp1pppp83p43P2b15N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D02", "Queen's Pawn Game: Barry Attack, Grünfeld Variation", "rnbq1rk1ppp1ppbp5np13p43P1B22N1PN2PPP1BPPPR2QK2R b KQ")); + openings.add(new Opening("D02", "Queen's Pawn Game: Chandler Gambit", "rnbqkbnrpp2pppp83p43p45NP1PPP1PPBPRNBQK2R b KQkq")); + openings.add(new Opening("D02", "Queen's Pawn Game: Chigorin Variation", "r1bqkbnrppp1pppp2n53p43P45N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D02", "Queen's Pawn Game: Krause Variation", "rnbqkbnrpp2pppp82pp43P45N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D02", "Queen's Pawn Game: London System", "rnbqkb1rppp1pppp5n23p43P1B25N2PPP1PPPPRN1QKB1R b KQkq")); + openings.add(new Opening("D02", "Queen's Pawn Game: London System, Pterodactyl Variation", "rnb1k1nrpp1pppbp6p1q73P1B25N2PP2PPPPRN1QKB1R w KQkq")); + openings.add(new Opening("D02", "Queen's Pawn Game: Symmetrical Variation", "rnbqkb1rppp1pppp5n23p43P45N2PPP1PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D02", "Queen's Pawn Game: Symmetrical Variation, Pseudo-Catalan", "rnbqkb1rppp1pppp5n23p43P45NP1PPP1PP1PRNBQKB1R b KQkq")); + openings.add(new Opening("D02", "Queen's Pawn Game: Zilbermints Countergambit", "rnbqkb1rp1p1pppp5n21p1p42PP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D02", "Queen's Pawn Game: Zukertort Variation", "rnbqkbnrppp1pppp83p43P45N2PPP1PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("D03", "Queen's Pawn Game: Torre Attack", "rnbqkb1rppp1pppp5n23p2B13P45N2PPP1PPPPRN1QKB1R b KQkq")); + openings.add(new Opening("D03", "Queen's Pawn Game: Torre Attack, Breyer Variation", "rnb1kb1rpp3ppp1q2pn22pp2B13P42P1PN2PP3PPPRN1QKB1R w KQkq")); + openings.add(new Opening("D03", "Queen's Pawn Game: Torre Attack, Gossip Variation", "rnbqkb1rppp1pppp83p2B13Pn35N2PPP1PPPPRN1QKB1R w KQkq")); + openings.add(new Opening("D03", "Queen's Pawn Game: Torre Attack, Grünfeld Variation", "rnbqkb1rppp1pp1p5np13p2B13P45N2PPP1PPPPRN1QKB1R w KQkq")); + openings.add(new Opening("D03", "Queen's Pawn Game: Torre Attack, Grünfeld Variation, Main Line", "rnbq1rk1ppp1ppbp5np13p2B13P44PN2PPPN1PPPR2QKB1R w KQ")); + openings.add(new Opening("D04", "Queen's Pawn Game: Colle System", "rnbqkb1rppp1pppp5n23p43P44PN2PPP2PPPRNBQKB1R b KQkq")); + openings.add(new Opening("D04", "Queen's Pawn Game: Colle System, Anti-Colle", "rn1qkb1rppp1pppp5n23p1b23P44PN2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("D05", "Colle System", "rnbqkb1rppp2ppp4pn23p43P44PN2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("D05", "Colle System", "rnbqkb1rppp2ppp4pn23p43P43BPN2PPP2PPPRNBQK2R b KQkq")); + openings.add(new Opening("D05", "Colle System: Pterodactyl Variation", "rnb1k1nrpp1pppbp6p1q1p53P43BPN2PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("D05", "Colle System: Rhamphorhynchus Variation", "rnb1k1nrpp1pppbp6p1q1P584PN2PPP2PPPRNBQKB1R w KQkq")); + openings.add(new Opening("D05", "Colle System: Siroccopteryx Variation", "rnb1k1nrpp1pppbp6p1q73N43BP3PPP2PPPRNBQK2R w KQkq")); + openings.add(new Opening("D05", "Colle System: Traditional Colle", "rnbqkb1rpp3ppp4pn22pp43P42PBPN2PP3PPPRNBQK2R b KQkq")); + openings.add(new Opening("D05", "Queen's Pawn Game, Zukertort Variation", "rnbqkb1rpp3ppp4pn22pp43P41P2PN2P1PN1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D05", "Rubinstein Opening", "rnbqkb1rpp3ppp4pn22pp43P41P1BPN2P1P2PPPRNBQK2R b KQkq")); + openings.add(new Opening("D05", "Rubinstein Opening: Bogoljubov Defense", "r1bq1rk1pp3ppp2nbpn22pp43P41P1BPN2PBP2PPPRN1Q1RK1 w -")); + openings.add(new Opening("D05", "Rubinstein Opening: Classical Defense", "r1bq1rk1pp2bppp2n1pn22pp43P41P1BPN2PBP2PPPRN1Q1RK1 w -")); + openings.add(new Opening("D05", "Rubinstein Opening: Semi-Slav Defense", "r1bq1rk1pppn1ppp3bpn23p43P41P1BPN2PBP2PPPRN1Q1RK1 b -")); + openings.add(new Opening("D06", "Queen's Gambit", "rnbqkbnrppp1pppp83p42PP48PP2PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Austrian Attack, Salvio Countergambit", "rnbqkbnrpp2pppp82P52Pp48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Austrian Defense", "rnbqkbnrpp2pppp82pp42PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Austrian Defense, Gusev Countergambit", "rnbqkb1rpp2pppp5n22pP43P48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Austrian Defense, Haberditz Variation", "rnb1kb1rpp2pppp8q1PP44n38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Chigorin Defense, Lazard Gambit", "r1bqkbnrppp2ppp2n53pp32PP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Chigorin Defense, Modern Gambit", "r1bqkb1rppp1pppp2n2n282pP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Chigorin Defense, Tartakower Gambit", "r1bqkbnrppp2ppp2n53pp32PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Marshall Defense", "rnbqkb1rppp1pppp5n23p42PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Marshall Defense, Tan Gambit", "rnbqkb1rpp2pppp2p2n23P43P48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("D06", "Queen's Gambit Refused: Zilbermints Gambit", "rnbqkbnrp1p1pppp81p1p42PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("D07", "Queen's Gambit Refused: Chigorin Defense", "r1bqkbnrppp1pppp2n53p42PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("D07", "Queen's Gambit Refused: Chigorin Defense", "r1bqkbnrppp1pppp2n53p42PP42N5PP2PPPPR1BQKBNR b KQkq")); + openings.add(new Opening("D07", "Queen's Gambit Refused: Chigorin Defense", "r1bqkbnrppp1pppp2n582pP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D07", "Queen's Gambit Refused: Chigorin Defense, Exchange Variation", "r1b1kbnrppp1pppp2n53q43P48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("D07", "Queen's Gambit Refused: Chigorin Defense, Exchange Variation, Costa's Line", "r1b1k1nrppp2ppp2n53q43p42B1P3PP2NPPPR2QKB1R b KQkq")); + openings.add(new Opening("D07", "Queen's Gambit Refused: Chigorin Defense, Janowski Variation", "r1bqkbnrppp1pppp2n582pP42N2N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("D07", "Queen's Gambit Refused: Chigorin Defense, Main Line", "r2qkbnrppp1pppp2n53p42PP2b15N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D07", "Queen's Gambit Refused: Chigorin Defense, Main Line, Alekhine Variation", "r2qkbnrppp1pppp2n53p4Q1PP2b15N2PP2PPPPRNB1KB1R b KQkq")); + openings.add(new Opening("D08", "Queen's Gambit Declined: Albin Countergambit, Balogh Variation", "r1b1kbnrppp1qppp2n54P32Pp45N2PP1NPPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D08", "Queen's Gambit Declined: Albin Countergambit, Janowski Variation", "r1bqkbnrppp3pp2n2p24P32Pp45N2PP1NPPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D08", "Queen's Gambit Declined: Albin Countergambit, Krenosz Variation", "r3k1nrppp1qppp2n54P31bPp45N1PPP1BPPP1R2QKB1R w KQkq")); + openings.add(new Opening("D08", "Queen's Gambit Refused: Albin Countergambit", "rnbqkbnrppp2ppp83pp32PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("D08", "Queen's Gambit Refused: Albin Countergambit, Lasker Trap", "rnbqk1nrppp2ppp84P31bP54p3PP1B1PPPRN1QKBNR w KQkq")); + openings.add(new Opening("D08", "Queen's Gambit Refused: Albin Countergambit, Normal Line", "rnbqkbnrppp2ppp84P32Pp45N2PP2PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("D08", "Queen's Gambit Refused: Albin Countergambit, Tartakower Defense", "rnbqkbnrpp3ppp82p1P32Pp45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D09", "Queen's Gambit Refused: Albin Countergambit, Fianchetto Variation", "r1bqkbnrppp2ppp2n54P32Pp45NP1PP2PP1PRNBQKB1R b KQkq")); + openings.add(new Opening("D09", "Queen's Gambit Refused: Albin Countergambit, Fianchetto Variation, Be6 Line", "r2qkbnrppp2ppp2n1b34P32Pp45NP1PP2PP1PRNBQKB1R w KQkq")); + openings.add(new Opening("D09", "Queen's Gambit Refused: Albin Countergambit, Fianchetto Variation, Bf5 Line", "r2qkbnrppp2ppp2n54Pb22Pp45NP1PP2PP1PRNBQKB1R w KQkq")); + openings.add(new Opening("D09", "Queen's Gambit Refused: Albin Countergambit, Fianchetto Variation, Bg4 Line", "r2qkbnrppp2ppp2n54P32Pp2b15NP1PP2PP1PRNBQKB1R w KQkq")); + openings.add(new Opening("D09", "Queen's Gambit Refused: Albin Countergambit, Modern Line", "r1bqkbnrppp2ppp2n54P32Pp45N2PP1NPPPPR1BQKB1R b KQkq")); + openings.add(new Opening("D10", "Slav Defense", "rnbqkbnrpp2pppp2p53p42PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("D10", "Slav Defense", "rnbqkbnrpp2pppp2p53p42PP42N5PP2PPPPR1BQKBNR b KQkq")); + openings.add(new Opening("D10", "Slav Defense", "rnbqkbnrpp2pppp2p582pP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D10", "Slav Defense: Exchange Variation", "rnbqkbnrpp2pppp2p53P43P48PP2PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("D10", "Slav Defense: Slav Gambit, Alekhine Attack", "rnbqkbnrpp2pppp2p582pPP32N5PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("D10", "Slav Defense: Winawer Countergambit", "rnbqkbnrpp3ppp2p53pp32PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D10", "Slav Defense: Winawer Countergambit, Anti-Winawer Gambit", "rnbqkbnrpp3ppp2p53pp32PPP32N5PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("D11", "Slav Defense: Bonet Gambit", "rnbqkb1rpp2pppp2p2n23p2B12PP45N2PP2PPPPRN1QKB1R b KQkq")); + openings.add(new Opening("D11", "Slav Defense: Breyer Variation", "rnbqkb1rpp2pppp2p2n23p42PP45N2PP1NPPPPR1BQKB1R b KQkq")); + openings.add(new Opening("D11", "Slav Defense: Modern", "rnbqkb1rpp2pppp2p2n23p42PP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D11", "Slav Defense: Modern Line", "rnbqkbnrpp2pppp2p53p42PP45N2PP2PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("D11", "Slav Defense: Quiet Variation", "rnbqkb1rpp2pppp2p2n23p42PP44PN2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("D12", "Queen's Gambit Declined: Slav, Amsterdam Variation", "rn1qkb1rpp1n1ppp4p33pNb23P42N1P3PP3PPPR1BQKB1R w KQkq")); + openings.add(new Opening("D12", "Queen's Gambit Declined: Slav, Landau Variation", "rnq1kb1rpp3ppp4pn23p1b23P4NQ2PN2PP1B1PPPR3KB1R b KQkq")); + openings.add(new Opening("D12", "Slav Defense: Exchange Variation, Schallopp Variation", "rn1qkb1rpp2pppp5n23p1b23P42N1PN2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D12", "Slav Defense: Quiet Variation, Pin Defense", "rn1qkb1rpp2pppp2p2n23p42PP2b14PN2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("D12", "Slav Defense: Quiet Variation, Schallopp Defense", "rn1qkb1rpp2pppp2p2n23p1b22PP44PN2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("D13", "Slav Defense: Exchange Variation", "rnbqkb1rpp2pppp5n23p43P45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D14", "Slav Defense: Exchange Variation, Symmetrical Line", "r2qkb1rpp2pppp2n2n23p1b23P1B22N2N2PP2PPPPR2QKB1R w KQkq")); + openings.add(new Opening("D14", "Slav Defense: Exchange Variation, Trifunovic Variation", "r2qk2rpp3ppp2n1pn23p1b21b1P1B21QN1PN2PP3PPPR3KB1R w KQkq")); + openings.add(new Opening("D15", "Slav Defense: Alekhine Variation", "rnbqkb1rpp2pppp2p2n282pP42N1PN2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D15", "Slav Defense: Chameleon Variation", "rnbqkb1r1p2ppppp1p2n23p42PP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D15", "Slav Defense: Chameleon Variation, Advance System", "rnbqkb1r1p2ppppp1p2n22Pp43P42N2N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("D15", "Slav Defense: Geller Gambit", "rnbqkb1rp3pppp2p2n21p2P32pP42N2N2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D15", "Slav Defense: Geller Gambit", "rnbqkb1rpp2pppp2p2n282pPP32N2N2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D15", "Slav Defense: Schlechter Variation", "rnbqkb1rpp2pp1p2p2np13p42PP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D15", "Slav Defense: Suechting Variation", "rnb1kb1rpp2pppp1qp2n23p42PP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D15", "Slav Defense: Three Knights Variation", "rnbqkb1rpp2pppp2p2n23p42PP42N2N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("D15", "Slav Defense: Two Knights Attack", "rnbqkb1rpp2pppp2p2n282pP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D16", "Queen's Gambit Declined: Slav, Smyslov Variation", "r2qkb1rpp2ppppn1p2n28P1pPP1b12N2N21P3PPPR1BQKB1R w KQkq")); + openings.add(new Opening("D16", "Slav Defense: Alapin Variation", "rnbqkb1rpp2pppp2p2n28P1pP42N2N21P2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("D16", "Slav Defense: Smyslov Variation", "r1bqkb1rpp2ppppn1p2n28P1pP42N2N21P2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D16", "Slav Defense: Soultanbeieff Variation", "rnbqkb1rpp3ppp2p1pn28P1pP42N2N21P2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D16", "Slav Defense: Steiner Variation", "rn1qkb1rpp2pppp2p2n28P1pP2b12N2N21P2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D17", "Slav Defense: Czech Variation", "rn1qkb1rpp2pppp2p2n25b2P1pP42N2N21P2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D17", "Slav Defense: Czech Variation, Bled Attack", "rn1qkb1rpp2pppp2p2n25b2P1pP3N2N51P2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("D17", "Slav Defense: Czech Variation, Carlsbad Variation", "r3kb1rppqn1ppp2p2n24pb2P1NP42N3P11P2PP1PR1BQKB1R w KQkq")); + openings.add(new Opening("D17", "Slav Defense: Czech Variation, Carlsbad Variation, Morozevich Variation", "r3kb1rppqn1p1p2p54nbp1P1N2B22N3P11P2PPBPR2QK2R w KQkq")); + openings.add(new Opening("D17", "Slav Defense: Czech Variation, Krause Attack", "rn1qkb1rpp2pppp2p2n24Nb2P1pP42N51P2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("D17", "Slav Defense: Czech Variation, Krause Attack, Fazekas Gambit", "r2qkb1rpp2ppppn1p2n24Nb2P1pPP32N51P3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D17", "Slav Defense: Czech Variation, Wiesbaden Variation", "rn1qkb1rpp3ppp2p1pn24Nb2P1pP42N51P2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D17", "Slav Defense: Czech Variation, Wiesbaden Variation, Sharp Line", "rn1qk2rpp3ppp2p1pn24Nb2PbpPP32N2P21P4PPR1BQKB1R b KQkq")); + openings.add(new Opening("D18", "Slav Defense: Czech Variation, Classical System", "rn1qkb1rpp2pppp2p2n25b2P1pP42N1PN21P3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D18", "Slav Defense: Czech Variation, Lasker Variation", "r2qkb1rpp2ppppn1p2n25b2P1pP42N1PN21P3PPPR1BQKB1R w KQkq")); + openings.add(new Opening("D19", "Queen's Gambit Declined: Slav, Dutch Variation", "rn1qk2rpp3ppp2p1pn25b2PbBP42N1PN21P3PPPR1BQ1RK1 b kq")); + openings.add(new Opening("D19", "Queen's Gambit Declined: Slav, Dutch, Sämisch Variation", "rn1q1rk1pp3ppp2p1p35b2PbBPn1P12N1PN21P2QP1PR1B2RK1 b -")); + openings.add(new Opening("D19", "Slav Defense: Czech Variation, Classical System, Main Line", "rn1q1rk1pp3ppp2p1pn25b2PbBP42N1PN21P2QPPPR1B2RK1 b -")); + openings.add(new Opening("D20", "Queen's Gambit Accepted", "rnbqkbnrppp1pppp882pP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Accelerated Mannheim Variation", "rnbqkbnrppp1pppp88Q1pP48PP2PPPPRNB1KBNR b KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Central Variation, Alekhine System", "rnbqkb1rppp1pppp5n282pPP38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Central Variation, Greco Variation", "rnbqkbnrp1p1pppp81p62pPP38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Central Variation, McDonnell Defense", "rnbqkbnrppp2ppp84p32pPP38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Central Variation, McDonnell Defense, Somov Gambit", "rnbqkbnrppp2ppp84p32BPP38PP3PPPRNBQK1NR b KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Central Variation, Modern Defense", "r1bqkbnrppp1pppp2n582pPP38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Central Variation, Rubinstein Defense", "rnbqkbnrpp2pppp82p52pPP38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Central Variation, Rubinstein Defense, Yefimov Gambit", "rnbqkbnrp3pppp81ppP42p1P38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Linares Variation", "rnbqkb1rp3pppp5n21ppP42p1P32N5PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Old Variation", "rnbqkbnrppp1pppp882pP44P3PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Old Variation, Billinger Gambit", "rnb1kbnrppp1qppp882Bp4PQ2P31P3PPPRNB1K1NR b KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Old Variation, Christensen Gambit", "rnb1kbnrppp1qppp882Bp41Q2PN2PP3PPPRNB1K2R b KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Old Variation, Korchnoi Gambit", "rnb1kbnrppp1qppp882Bp41Q2P3PP3PPPRNB2KNR b kq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Old Variation, Novikov Gambit", "rnb1kbnrppp1qppp882Bp41Q2P3PP1N1PPPR1B1K1NR b KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Saduleto Variation", "rnbqkbnrppp1pppp882pPP38PP3PPPRNBQKBNR b KQkq")); + openings.add(new Opening("D20", "Queen's Gambit Accepted: Schwartz Defense", "rnbqkbnrppp1p1pp85p22pPP38PP3PPPRNBQKBNR w KQkq")); + openings.add(new Opening("D21", "Queen's Gambit Accepted: Alekhine Defense, Borisenko-Furman Variation", "rnbqkbnr1pp1ppppp782pPP35N2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("D21", "Queen's Gambit Accepted: Godes Variation", "r1bqkbnrpppnpppp882pP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D21", "Queen's Gambit Accepted: Gunsberg Defense", "rnbqkbnrpp2pppp82p52pP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D21", "Queen's Gambit Accepted: Normal Variation", "rnbqkbnrppp1pppp882pP45N2PP2PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("D21", "Queen's Gambit Accepted: Rosenthal Variation", "rnbqkbnrppp2ppp4p382pP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D21", "Queen's Gambit Accepted: Slav Gambit", "rnbqkbnrp1p1pppp81p62pP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D22", "Queen's Gambit Accepted: Alekhine Defense", "rnbqkbnr1pp1ppppp782pP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D22", "Queen's Gambit Accepted: Alekhine Defense, Haberditz Variation", "rnbqkbnr2p1ppppp71p62pP44PN2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("D22", "Queen's Gambit Accepted: Alekhine Defense: Alatortsev Variation", "rn1qkbnr1pp2pppp3p33P42B3b14PN2PP3PPPRNBQK2R b KQkq")); + openings.add(new Opening("D23", "Queen's Gambit Accepted", "rnbqkb1rppp1pppp5n282pP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D23", "Queen's Gambit Accepted: Mannheim Variation", "rnbqkb1rppp1pppp5n28Q1pP45N2PP2PPPPRNB1KB1R b KQkq")); + openings.add(new Opening("D24", "Queen's Gambit Accepted: Bogoljubov Defense", "rnbqkb1r1pp1ppppp4n282pPP32N2N2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D24", "Queen's Gambit Accepted: Gunsberg Defense, Prianishenmo Gambit", "rnbqkb1rpp3ppp5n22ppP32p52N2N2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D24", "Queen's Gambit Accepted: Showalter Variation", "rnbqkb1rppp1pppp5n282pP42N2N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("D25", "Queen's Gambit Accepted: Janowski-Larsen Variation", "rn1qkb1rppp1pppp5n282pP2b14PN2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("D25", "Queen's Gambit Accepted: Normal Variation", "rnbqkb1rppp1pppp5n282pP44PN2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("D25", "Queen's Gambit Accepted: Smyslov Variation", "rnbqkb1rppp1pp1p5np182pP44PN2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("D25", "Queen's Gambit Accepted: Winawer Defense", "rn1qkb1rppp1pppp4bn282pP44PN2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("D26", "Queen's Gambit Accepted: Classical Defense", "rnbqkb1rpp3ppp4pn22p52BP44PN2PP3PPPRNBQK2R w KQkq")); + openings.add(new Opening("D26", "Queen's Gambit Accepted: Classical Defense, Normal Line", "rnbqkb1rpp3ppp4pn22p52BP44PN2PP3PPPRNBQ1RK1 b kq")); + openings.add(new Opening("D26", "Queen's Gambit Accepted: Classical Defense, Steinitz Variation, Development Variation", "r1bqkb1rpp3ppp2n1pn22p52BP44PN2PP3PPPRNBQ1RK1 w kq")); + openings.add(new Opening("D26", "Queen's Gambit Accepted: Classical Defense, Steinitz Variation, Exchange Variation", "rnbqkb1rpp3ppp4pn282Bp44PN2PP3PPPRNBQ1RK1 w kq")); + openings.add(new Opening("D26", "Queen's Gambit Accepted: Classical, Furman Variation", "r1bqk2r5pppp1n1pn21pb1P32B55N2PP2QPPPRNB2RK1 b kq")); + openings.add(new Opening("D26", "Queen's Gambit Accepted: Normal Variation, Traditional System", "rnbqkb1rppp2ppp4pn282pP44PN2PP3PPPRNBQKB1R w KQkq")); + openings.add(new Opening("D27", "Queen's Gambit Accepted: Classical Defense, Main Line", "rnbqkb1r1p3pppp3pn22p52BP44PN2PP3PPPRNBQ1RK1 w kq")); + openings.add(new Opening("D27", "Queen's Gambit Accepted: Classical Defense, Rubinstein Variation", "rnbqkb1r1p3pppp3pn22p5P1BP44PN21P3PPPRNBQ1RK1 b kq")); + openings.add(new Opening("D27", "Queen's Gambit Accepted: Classical Defense, Russian Gambit", "rnbqkb1r1p3pppp3pn22p52BPP35N2PP3PPPRNBQ1RK1 b kq")); + openings.add(new Opening("D27", "Queen's Gambit Accepted: Furman Variation", "rnbqk2r1p3pppp3pn22b52B54PN2PP3PPPRNBQ1RK1 w kq")); + openings.add(new Opening("D28", "Queen's Gambit Accepted: Classical Defense, Alekhine System", "rnbqkb1r1p3pppp3pn22p52BP44PN2PP2QPPPRNB2RK1 b kq")); + openings.add(new Opening("D28", "Queen's Gambit Accepted: Classical Defense, Alekhine System (Except Main Line)", "rnbqkb1r5pppp3pn21pp52BP44PN2PP2QPPPRNB2RK1 w kq")); + openings.add(new Opening("D28", "Queen's Gambit Accepted: Classical, Flohr Variation", "r3kb1r1bq2pppp3pn21p1P42p52N1PN2PPQ2PPPR1BR2K1 w kq")); + openings.add(new Opening("D29", "Queen's Gambit Accepted: Classical Defense, Alekhine System, Main Line", "rn1qkb1r1b3pppp3pn21pp53P41B2PN2PP2QPPPRNB2RK1 w kq")); + openings.add(new Opening("D29", "Queen's Gambit Accepted: Classical Defense, Alekhine System, Smyslov Variation", "r2qk2r1b1n1pppp2bpn21pp53P41BN1PN2PP2QPPPR1BR2K1 w kq")); + openings.add(new Opening("D30", "Queen's Gambit Declined", "rnbqkbnrppp2ppp4p33p42PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("D30", "Queen's Gambit Declined: Capablanca", "rnbqkb1rppp2pp14pn1p3p2B12PP45N2PP2PPPPRN1QKB1R w KQkq")); + openings.add(new Opening("D30", "Queen's Gambit Declined: Capablanca Variation", "r1bqkb1rpp1n1ppp2p1pn23p2B12PP44PN2PP1N1PPPR2QKB1R b KQkq")); + openings.add(new Opening("D30", "Queen's Gambit Declined: Hastings Variation", "rnb1kb1rpp3pp12p1pq1p3p42PP41QN2N2PP2PPPPR3KB1R b KQkq")); + openings.add(new Opening("D30", "Queen's Gambit Declined: Semmering Variation", "r1bqkb1rpp1n1ppp4pn22pp42PP43BPN2PP1N1PPPR1BQK2R w KQkq")); + openings.add(new Opening("D30", "Queen's Gambit Declined: Spielmann Variation", "rnbqkb1rpp3p1p2p1pnp13p42PP44PN2PP1N1PPPR1BQKB1R w KQkq")); + openings.add(new Opening("D30", "Queen's Gambit Declined: Stonewall Variation", "rnbqkb1rpp4pp2p1p33p1p22PPn33BPN2PP1N1PPPR1BQK2R w KQkq")); + openings.add(new Opening("D30", "Queen's Gambit Declined: Tarrasch Defense, Pseudo-Tarrasch", "rnbqkbnrpp3ppp4p32pp42PP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D30", "Queen's Gambit Declined: Tarrasch Defense, Pseudo-Tarrasch Bishop Attack", "rnbqkbnrpp3ppp82pp2B13P45N2PP2PPPPRN1QKB1R b KQkq")); + openings.add(new Opening("D30", "Queen's Gambit Declined: Traditional Variation", "rnbqkb1rppp2ppp4pn23p2B12PP45N2PP2PPPPRN1QKB1R b KQkq")); + openings.add(new Opening("D30", "Queen's Gambit Declined: Uhlmann Variation", "rnbq1rk1ppp1bpp14pn1p82pP3B2N2N2PP2PPPP2RQKB1R w K")); + openings.add(new Opening("D30", "Queen's Gambit Declined: Vienna Variation", "rnbqk2rppp2ppp4pn23p2B11bPP45N2PP2PPPPRN1QKB1R w KQkq")); + openings.add(new Opening("D30", "Semi-Slav Defense: Quiet Variation", "r1bqkb1rpp1n1ppp2p1pn23p42PP44PN2PP1N1PPPR1BQKB1R w KQkq")); + openings.add(new Opening("D30", "Semi-Slav Defense: Quiet Variation", "rnbqkb1rpp3ppp2p1pn23p42PP44PN2PP1N1PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D31", "Queen's Gambit Declined: Alapin Variation", "rnbqkbnrp1p2ppp1p2p33p42PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D31", "Queen's Gambit Declined: Charousek (Petrosian) Variation", "rnbqk1nrppp1bppp4p33p42PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D31", "Queen's Gambit Declined: Charousek (Petrosian) Variation, Miladinovic Gambit", "rnbqk1nrppp1bppp4p382PPp32N2P2PP4PPR1BQKBNR b KQkq")); + openings.add(new Opening("D31", "Queen's Gambit Declined: Janowski Variation", "rnbqkbnr1pp2pppp3p33p42PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D31", "Queen's Gambit Declined: Queen's Knight Variation", "rnbqkbnrppp2ppp4p33p42PP42N5PP2PPPPR1BQKBNR b KQkq")); + openings.add(new Opening("D31", "Queen's Gambit Declined: Semi-Slav, Abrahams Variation", "rnbqk1nr5ppp2p1p3pp6PbpP42N1PN21P1B1PPPR2QKB1R w KQkq")); + openings.add(new Opening("D31", "Queen's Gambit Declined: Semi-Slav, Junge Variation", "rnb1k1nrp4ppp1qp1p31p6PbpP42N1PN21P1B1PPPR2QKB1R w KQkq")); + openings.add(new Opening("D31", "Queen's Gambit Declined: Semi-Slav, Koomen Variation", "rnb1k1nrp3qppp2p1p31p6PbpP42N1PN21P1B1PPPR2QKB1R w KQkq")); + openings.add(new Opening("D31", "Queen's Gambit Refused: Baltic Defense, Argentinian Gambit", "r2qkbnrpp2pppp2n58Q2P48PP2PPPPRbB1KBNR w KQkq")); + openings.add(new Opening("D31", "Semi-Slav Defense: Accelerated Move Order", "rnbqkbnrpp3ppp2p1p33p42PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D31", "Semi-Slav Defense: Anti-Noteboom, Stonewall Variation, Portisch Gambit", "rnbqkbnrpp4pp2p1p33p1p22PP2P12N1P3PP3P1PR1BQKBNR b KQkq")); + openings.add(new Opening("D31", "Semi-Slav Defense: Gunderam Gambit", "rnbqkbnrpp3ppp2p1p382PPp32N2P2PP4PPR1BQKBNR b KQkq")); + openings.add(new Opening("D31", "Semi-Slav Defense: Marshall Gambit", "rnbqkbnrpp3ppp2p1p33p42PPP32N5PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("D31", "Semi-Slav Defense: Marshall Gambit, Forgotten Variation", "rnbqk1nrpp3ppp2p1p381bPP42N5PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("D31", "Semi-Slav Defense: Marshall Gambit, Main Line", "rnbqk1nrpp3ppp2p1p381bPPN38PP1B1PPPR2QKBNR b KQkq")); + openings.add(new Opening("D31", "Semi-Slav Defense: Marshall Gambit, Tolush Variation", "rnb1k1nrpp3ppp4p32B52P58PP2BPqPR2QK1NR w KQkq")); + openings.add(new Opening("D31", "Semi-Slav Defense: Noteboom Variation", "rnbqkbnrpp3ppp2p1p382pP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D31", "Semi-Slav Defense: Noteboom Variation, Abrahams Variation", "rnbqk1nrp4ppp4p31p62pP42P1PN25PPPR1BQKB1R w KQkq")); + openings.add(new Opening("D31", "Semi-Slav Defense: Noteboom Variation, Anti-Noteboom Gambit", "rnbqkbnrpp3ppp2p1p382pP42N2NP1PP2PP1PR1BQKB1R b KQkq")); + openings.add(new Opening("D31", "Semi-Slav Defense: Noteboom Variation, Anti-Noteboom Variation", "rnbqkbnrpp3ppp2p1p36B12pP42N2N2PP2PPPPR2QKB1R b KQkq")); + openings.add(new Opening("D31", "Semi-Slav Defense: Noteboom Variation, Anti-Noteboom Variation, Belyavsky Line", "rnbqkbnrpp4pp2p1pp26B12pP42N2N2PP2PPPPR2QKB1R w KQkq")); + openings.add(new Opening("D32", "Queen's Gambit Declined: Tarrasch Defense: 4. cxd5 exd5", "rnbqkbnrpp3ppp82pp43P42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D32", "Tarrasch Defense", "rnbqkbnrpp3ppp4p32pp42PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D32", "Tarrasch Defense: Grünfeld Gambit", "r1bqkbnrp4ppp2n51pP5N2p45N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D32", "Tarrasch Defense: Marshall Gambit", "rnbqkbnrpp3ppp82pp43PP32N5PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("D32", "Tarrasch Defense: Schara Gambit", "rnbqkbnrpp3ppp4p33P43p42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D32", "Tarrasch Defense: Symmetrical Variation", "r1bqkb1rpp3ppp2n1pn22pp42PP42N1PN2PP3PPPR1BQKB1R w KQkq")); + openings.add(new Opening("D32", "Tarrasch Defense: Tarrasch Gambit", "rnbqkbnrp4ppp81pP5N2p48PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D32", "Tarrasch Defense: Two Knights Variation", "rnbqkbnrpp3ppp82pp43P42N2N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("D32", "Tarrasch Defense: von Hennig Gambit", "r2qkbnrpp3ppp2n1b33Q482N5PP2PPPPR1B1KBNR w KQkq")); + openings.add(new Opening("D33", "Tarrasch Defense: Prague Variation", "r1bqkb1rpp3ppp2n2n22pp43P42N2NP1PP2PP1PR1BQKB1R w KQkq")); + openings.add(new Opening("D33", "Tarrasch Defense: Rubinstein System", "r1bqkbnrpp3ppp2n52pp43P42N2NP1PP2PP1PR1BQKB1R b KQkq")); + openings.add(new Opening("D33", "Tarrasch Defense: Swedish Variation", "r1bqkbnrpp3ppp2n53p42pP42N2NP1PP2PP1PR1BQKB1R w KQkq")); + openings.add(new Opening("D33", "Tarrasch Defense: Swedish Variation, Central Break", "r1bqkbnrpp3ppp2n53p42pPP32N2NP1PP3P1PR1BQKB1R b KQkq")); + openings.add(new Opening("D33", "Tarrasch Defense: Wagner Variation", "r2qkb1rpp3ppp2n2n22pp43P2b12N2NP1PP2PPBPR1BQK2R w KQkq")); + openings.add(new Opening("D34", "Queen's Gambit Declined: Tarrasch, Stoltz Variation", "r2q1rk1p3bppp1pn1bn22pp2B13P42N2NP1PP2PPBP2RQ1RK1 w -")); + openings.add(new Opening("D34", "Tarrasch Defense: Classical Variation", "r1bq1rk1pp2bppp2n2n22pp43P42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("D34", "Tarrasch Defense: Classical Variation, Advance Variation", "r1bq1rk1pp2bppp2n2n23p2B12pP42N2NP1PP2PPBPR2Q1RK1 w -")); + openings.add(new Opening("D34", "Tarrasch Defense: Classical Variation, Bogoljubov Variation", "r2q1rk1pp2bppp2n1bn23p2B12pP42N2NP1PP2PPBP2RQ1RK1 w -")); + openings.add(new Opening("D34", "Tarrasch Defense: Classical Variation, Carlsbad Variation", "r1bq1rk1pp2bppp2n2n22pp2B13P42N2NP1PP2PPBPR2Q1RK1 b -")); + openings.add(new Opening("D34", "Tarrasch Defense: Classical Variation, Chandler Variation", "r2qr1k1pp2bpp12n1bn1p3p43N42N1B1P1PP2PPBP2RQ1RK1 w -")); + openings.add(new Opening("D34", "Tarrasch Defense: Classical Variation, Classical Tarrasch Gambit", "r1bq1rk1pp2bppp2n2n22P53p42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("D34", "Tarrasch Defense: Classical Variation, Endgame Variation", "r2q1rk1pp2bppp2n1bn22pp2B13P42N2NP1PP2PPBPR2Q1RK1 w -")); + openings.add(new Opening("D34", "Tarrasch Defense: Classical Variation, Main Line", "r1bqr1k1pp2bpp12n2n1p3p43N42N1B1P1PP2PPBPR2Q1RK1 w -")); + openings.add(new Opening("D34", "Tarrasch Defense: Classical Variation, Petursson Variation", "r1bqr1k1pp2bppp2n2n23p2B13N42N3P1PP2PPBPR2Q1RK1 w -")); + openings.add(new Opening("D34", "Tarrasch Defense: Classical Variation, Réti Variation", "r1bq1rk1pp3ppp2n2n22bp4N75NP1PP2PPBPR1BQ1RK1 b -")); + openings.add(new Opening("D34", "Tarrasch Defense: Classical Variation, Spassky Variation", "r2q1rk1pp2bpp12n2n1p3p43N2b12N1B1P1PP2PPBPR2Q1RK1 w -")); + openings.add(new Opening("D34", "Tarrasch Defense: Prague Variation, Main Line", "r1bqk2rpp2bppp2n2n22pp43P42N2NP1PP2PPBPR1BQK2R w KQkq")); + openings.add(new Opening("D35", "Queen's Gambit Declined: Exchange Variation", "rnbqkb1rppp2ppp4pn23P43P42N5PP2PPPPR1BQKBNR b KQkq")); + openings.add(new Opening("D35", "Queen's Gambit Declined: Exchange Variation, Positional Variation", "rnbqkb1rpp3ppp2p2n23p2B13P42N5PP2PPPPR2QKBNR w KQkq")); + openings.add(new Opening("D35", "Queen's Gambit Declined: Exchange Variation, Positional Variation", "rnbqkb1rppp2ppp5n23p2B13P42N5PP2PPPPR2QKBNR b KQkq")); + openings.add(new Opening("D35", "Queen's Gambit Declined: Exchange Variation, Sämisch Variation", "r1bqkb1rpppn1ppp5n23p43P1B22N2N2PP2PPPPR2QKB1R b KQkq")); + openings.add(new Opening("D35", "Queen's Gambit Declined: Exchange, Chameleon Variation", "r1bqrnk1ppp1bppp5n23p2B13P42NBP3PPQ1NPPP2KR3R b -")); + openings.add(new Opening("D35", "Queen's Gambit Declined: Harrwitz Attack", "rnbqkb1rppp2ppp4pn23p42PP1B22N5PP2PPPPR2QKBNR b KQkq")); + openings.add(new Opening("D35", "Queen's Gambit Declined: Normal Defense", "rnbqkb1rppp2ppp4pn23p42PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D36", "Queen's Gambit Declined: Exchange Variation, Reshevsky Variation", "rnbqkb1rpp3ppp2p2n23p2B13P42N5PPQ1PPPPR3KBNR b KQkq")); + openings.add(new Opening("D37", "Queen's Gambit Declined: Barmen Variation", "r1bqkb1rpppn1ppp4pn23p42PP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D37", "Queen's Gambit Declined: Harrwitz Attack", "rnbqk2rppp1bppp4pn23p42PP1B22N2N2PP2PPPPR2QKB1R b KQkq")); + openings.add(new Opening("D37", "Queen's Gambit Declined: Harrwitz Attack", "r1b2rk1pp3ppp2n1pn2q1bp42P2B2P1N1PN21PQ2PPP2KR1B1R b -")); + openings.add(new Opening("D37", "Queen's Gambit Declined: Harrwitz Attack", "r1b2rk1pp3ppp2n1pn2q1bp42P2B2P1N1PN21PQ2PPP3RKB1R b K")); + openings.add(new Opening("D37", "Queen's Gambit Declined: Harrwitz Attack, Fianchetto Defense", "rnbq1rk1p1p1bppp1p2pn23p42PP1B22N1PN2PP3PPPR2QKB1R w KQ")); + openings.add(new Opening("D37", "Queen's Gambit Declined: Harrwitz Attack, Main Line", "rnbq1rk1pp3ppp4pn22bp42P2B22N1PN2PP3PPPR2QKB1R w KQ")); + openings.add(new Opening("D37", "Queen's Gambit Declined: Harrwitz Attack, Orthodox Defense", "rnbq1rk1pp2bppp2p1pn23p42PP1B22N1PN2PP3PPPR2QKB1R w KQ")); + openings.add(new Opening("D37", "Queen's Gambit Declined: Harrwitz Attack, Two Knights Defense", "r1bq1rk1pppnbppp4pn23p42PP1B22N1PN2PP3PPPR2QKB1R w KQ")); + openings.add(new Opening("D37", "Queen's Gambit Declined: Harrwitz Attack, Two Knights Defense, Blockade Line", "r1bq1rk1pppnbppp4pn22Pp43P1B22N1PN2PP3PPPR2QKB1R b KQ")); + openings.add(new Opening("D37", "Queen's Gambit Declined: Three Knights Variation", "rnbqkb1rppp2ppp4pn23p42PP42N2N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("D38", "Queen's Gambit Declined: Ragozin Defense", "rnbqk2rppp2ppp4pn23p41bPP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D38", "Queen's Gambit Declined: Ragozin Defense, Alekhine Variation", "rnbqk2rppp2ppp4pn23p4QbPP42N2N2PP2PPPPR1B1KB1R b KQkq")); + openings.add(new Opening("D39", "Queen's Gambit Declined: Ragozin Defense, Vienna Variation", "rnbqk2rppp2ppp4pn26B11bpP42N2N2PP2PPPPR2QKB1R w KQkq")); + openings.add(new Opening("D40", "Queen's Gambit Declined: Semi-Tarrasch Defense", "rnbqkb1rpp3ppp4pn22pp42PP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D40", "Queen's Gambit Declined: Semi-Tarrasch Defense, Pillsbury Variation", "rnbqkb1rpp3ppp4pn22pp2B12PP42N2N2PP2PPPPR2QKB1R b KQkq")); + openings.add(new Opening("D40", "Queen's Gambit Declined: Semi-Tarrasch Defense, Symmetrical Variation", "r1bq1rk1pp3ppp2nbpn22pp42PP42NBPN2PP3PPPR1BQ1RK1 w -")); + openings.add(new Opening("D40", "Queen's Gambit Declined: Semi-Tarrasch, Levenfish Variation", "r1b2rk1pp2qppp2n1pn22bp42P1P32NB1N2PP2QPPPR1B2RK1 b -")); + openings.add(new Opening("D41", "Queen's Gambit Declined: Semi-Tarrasch Defense, Exchange Variation", "rnbqkb1rpp3ppp4p32pn43PP32N2N2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D41", "Queen's Gambit Declined: Semi-Tarrasch Defense, Pillsbury Variation", "rnbqkb1rpp3ppp4p32pn43P42N1PN2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D41", "Queen's Gambit Declined: Semi-Tarrasch, 5. cxd5", "rnbqkb1rpp3ppp4pn22pP43P42N2N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("D41", "Queen's Gambit Declined: Semi-Tarrasch, Kmoch Variation", "rnbq1rk1pp3ppp4p31B63PP35N2P2Q1PPPR3K2R b KQ")); + openings.add(new Opening("D41", "Queen's Gambit Declined: Semi-Tarrasch, San Sebastian Variation", "rnb1k2rpp3ppp4p3q71b1PP35N2P2B1PPPR2QKB1R w KQkq")); + openings.add(new Opening("D42", "Queen's Gambit Declined: Semi-Tarrasch Defense, Main Line", "r1bqkb1rpp3ppp2n1p32pn43P42NBPN2PP3PPPR1BQK2R b KQkq")); + openings.add(new Opening("D43", "Semi-Slav Defense", "rnbqkb1rpp3ppp2p1pn23p42PP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D44", "Queen's Gambit Declined: Vienna Variation", "rnbqkb1rppp2ppp4pn282pP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D44", "Queen's Gambit Declined: Vienna Variation, Quiet Variation", "rnbqkb1rppp2ppp4pn282pP42N1PN2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D44", "Semi-Slav Defense Accepted", "rnbqkb1rpp3ppp2p1pn26B12pP42N2N2PP2PPPPR2QKB1R w KQkq")); + openings.add(new Opening("D44", "Semi-Slav Defense: Anti-Moscow Gambit", "rnbqkb1rpp3pp12p1pn1p3p42PP3B2N2N2PP2PPPPR2QKB1R b KQkq")); + openings.add(new Opening("D44", "Semi-Slav Defense: Botvinnik System", "rnbqkb1rp4p22p1pn1p1p2P1N12pP3B2N5PP3PPPR2QKB1R b KQkq")); + openings.add(new Opening("D44", "Semi-Slav Defense: Botvinnik System, Alatortsev System", "rnbqkb1rp4p22p1p2p1p1nP1N12pP3B2N5PP3PPPR2QKB1R w KQkq")); + openings.add(new Opening("D44", "Semi-Slav Defense: Botvinnik System, Ekstrom Variation", "rnbqkb1rp4p22p1pP1p1p2N32pP3p2N5PP3PPPR2QKB1R b KQkq")); + openings.add(new Opening("D44", "Semi-Slav Defense: Botvinnik System, Lilienthal Variation", "r1bqkb1rp2n1p22p1pn21p2P1B12pP42N3P1PP3P1PR2QKB1R b KQkq")); + openings.add(new Opening("D44", "Semi-Slav Defense: Botvinnik System, Szabo Variation", "r1bqkb1rp2n1p22p1pn21p2P1B12pP42N2Q2PP3PPPR3KB1R b KQkq")); + openings.add(new Opening("D44", "Semi-Slav Defense: Botvinnik Variation", "rnbqkb1rpp3ppp2p1pn26B12pPP32N2N2PP3PPPR2QKB1R b KQkq")); + openings.add(new Opening("D45", "Semi-Slav Defense: Accelerated Meran Variation", "rnbqkb1r1p3pppp1p1pn23p42PP42N1PN2PP3PPPR1BQKB1R w KQkq")); + openings.add(new Opening("D45", "Semi-Slav Defense: Main Line", "rnbqkb1rpp3ppp2p1pn23p42PP42N1PN2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D45", "Semi-Slav Defense: Normal Variation", "r1bqkb1rpp1n1ppp2p1pn23p42PP42N1PN2PP3PPPR1BQKB1R w KQkq")); + openings.add(new Opening("D45", "Semi-Slav Defense: Rubinstein (Anti-Meran) System", "r1bqkb1rpp1n1ppp2p1pn23pN32PP42N1P3PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D45", "Semi-Slav Defense: Stoltz Variation", "r1bqkb1rpp1n1ppp2p1pn23p42PP42N1PN2PPQ2PPPR1B1KB1R b KQkq")); + openings.add(new Opening("D45", "Semi-Slav Defense: Stoltz Variation, Center Variation", "r1bqk2rpp1n1ppp2pbpn23p42PPP32N2N2PPQ2PPPR1B1KB1R b KQkq")); + openings.add(new Opening("D45", "Semi-Slav Defense: Stoltz Variation, Center Variation, Mikhalchishin Line", "r1bqk2rpp1n1ppp2pb44P32P1Q35N2PP3PPPR1B1KB1R b KQkq")); + openings.add(new Opening("D45", "Semi-Slav Defense: Stoltz Variation, Shabalov Attack", "r1bqk2rpp1n1ppp2pbpn23p42PP2P12N1PN2PPQ2P1PR1B1KB1R b KQkq")); + openings.add(new Opening("D45", "Semi-Slav Defense: Stonewall Defense", "rnbqkb1rpp4pp2p1p33p1p22PPn32NBPN2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("D46", "Semi-Slav Defense: Bogoljubov Variation", "r1bqk2rpp1nbppp2p1pn23p42PP42NBPN2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("D46", "Semi-Slav Defense: Chigorin Defense", "r1bqk2rpp1n1ppp2pbpn23p42PP42NBPN2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("D46", "Semi-Slav Defense: Main Line", "r1bqkb1rpp1n1ppp2p1pn23p42PP42NBPN2PP3PPPR1BQK2R b KQkq")); + openings.add(new Opening("D46", "Semi-Slav Defense: Romih Variation", "r1bqk2rpp1n1ppp2p1pn23p41bPP42NBPN2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("D47", "Semi-Slav Defense: Meran Variation", "r1bqkb1rp2n1ppp2p1pn21p62BP42N1PN2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("D47", "Semi-Slav Defense: Meran Variation, Lundin Variation", "r1bqkb1rp2n1ppp2p1pn281p1P42NBPN2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("D47", "Semi-Slav Defense: Meran Variation, Wade Variation", "r2qkb1rpb1n1ppp2p1pn21p63P42NBPN2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("D47", "Semi-Slav Defense: Meran Variation, Wade Variation, Kaidanov Gambit", "r2qkb1rpb1n1ppp4p33nP3Np1N43B4PP3PPPR1BQ1RK1 b kq")); + openings.add(new Opening("D47", "Semi-Slav Defense: Meran Variation, Wade Variation, Larsen Variation", "r2qkb1rpb1n1ppp4p32pnP3Np1P43B1N2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("D47", "Semi-Slav Defense: Semi-Meran Variation", "r1bqkb1rpp1n1ppp2p1pn282BP42N1PN2PP3PPPR1BQK2R b KQkq")); + openings.add(new Opening("D48", "Queen's Gambit Declined: Semi-Slav, Meran", "r1bqkb1r3n1pppp3pn21pp53PP32NB1N2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("D48", "Semi-Slav Defense: Meran Variation", "r1bqkb1r3n1pppp1p1pn21p63P42NBPN2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("D48", "Semi-Slav Defense: Meran Variation, Old Variation", "r1bqkb1r3n1pppp3pn21pp1P33P42NB1N2PP3PPPR1BQK2R b KQkq")); + openings.add(new Opening("D48", "Semi-Slav Defense: Meran Variation, Pirc Variation", "r1bqkb1r3n1pppp1p1pn281p1PP32NB1N2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("D48", "Semi-Slav Defense: Meran Variation, Reynolds' Variation", "r1bqkb1r3n1pppp3pn21ppP44P32NB1N2PP3PPPR1BQK2R b KQkq")); + openings.add(new Opening("D49", "Semi-Slav Defense: Meran Variation, Blumenfeld Variation", "r1bqkb1r3n1pppp3pn21N2P33p43B1N2PP3PPPR1BQK2R b KQkq")); + openings.add(new Opening("D49", "Semi-Slav Defense: Meran Variation, Rabinovich Variation", "r1bqkb1r3n1pppp3p31N2P33p2n13B1N2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("D49", "Semi-Slav Defense: Meran Variation, Rellstab Attack", "r3kb1r5pppb3pn21p1qN1B13p43B4PP2QPPPR4RK1 b kq")); + openings.add(new Opening("D49", "Semi-Slav Defense: Meran Variation, Sozin Variation", "r1bqkb1r5ppp4pn21p2N33p43B4PP3PPPR1BQ1RK1 b kq")); + openings.add(new Opening("D49", "Semi-Slav Defense: Meran Variation, Sozin Variation", "r1bqkb1r5pppp3pn21N2n33p43B1N2PP3PPPR1BQK2R w KQkq")); + openings.add(new Opening("D49", "Semi-Slav Defense: Meran Variation, Stahlberg Variation", "r1bqkb1r5ppp4pn21p2N33p43B1Q2PP3PPPR1B1K2R b KQkq")); + openings.add(new Opening("D50", "Queen's Gambit Declined: Been-Koomen Variation", "rnbqkb1rpp3ppp4pn22pp2B12PP42N5PP2PPPPR2QKBNR w KQkq")); + openings.add(new Opening("D50", "Queen's Gambit Declined: Modern Variation", "rnbqkb1rppp2ppp4pn23p2B12PP42N5PP2PPPPR2QKBNR b KQkq")); + openings.add(new Opening("D50", "Queen's Gambit Declined: Pseudo-Tarrasch Variation", "rnbqkb1rpp3ppp4pn22pP2B13P42N5PP2PPPPR2QKBNR b KQkq")); + openings.add(new Opening("D50", "Queen's Gambit Declined: Pseudo-Tarrasch Variation, Canal Variation", "rnb1kb1rpp3ppp1q2pn22pP2B13P42N5PP2PPPPR2QKBNR w KQkq")); + openings.add(new Opening("D50", "Queen's Gambit Declined: Pseudo-Tarrasch Variation, Primitive Pillsbury Variation", "rnbqkb1rpp3ppp4pn23p2B12PQ42N2N2PP2PPPPR3KB1R b KQkq")); + openings.add(new Opening("D50", "Queen's Gambit Declined: Semi-Tarrasch, Krause Variation", "rnbqkb1r1p3pppp4n21N1pp1B1Q1P52N5PP2PPPPR3KB1R b KQkq")); + openings.add(new Opening("D51", "Queen's Gambit Declined: Alekhine Variation", "r1bqkb1rpp1n1ppp2p1pn23p2B12PPP32N2N2PP3PPPR2QKB1R b KQkq")); + openings.add(new Opening("D51", "Queen's Gambit Declined: Capablanca, Anti-Cambridge Springs Variation", "r1bqkb1rpp1n1ppp2p1pn23p2B12PP4P1N1P31P3PPPR2QKBNR b KQkq")); + openings.add(new Opening("D51", "Queen's Gambit Declined: Knight Defense, Alekhine Gambit", "r1bqkb1rpppn1pp14pn1p82pP3B2N2N2PP2PPPPR2QKB1R w KQkq")); + openings.add(new Opening("D51", "Queen's Gambit Declined: Manhattan Variation", "r1bqk2rpppn1ppp4pn23p2B11bPP42N1P3PP3PPPR2QKBNR w KQkq")); + openings.add(new Opening("D51", "Queen's Gambit Declined: Modern, Knight Defense", "r1bqkb1rpp1n1ppp2p1pn23p2B12PP42N1P3PP3PPPR2QKBNR w KQkq")); + openings.add(new Opening("D51", "Queen's Gambit Declined: Modern, Knight Defense", "r1bqkb1rpppn1ppp4pn23p2B12PP42N5PP2PPPPR2QKBNR w KQkq")); + openings.add(new Opening("D51", "Queen's Gambit Declined: Modern, Knight Defense", "r1bqkb1rpppn1ppp4pn23p2B12PP42N1P3PP3PPPR2QKBNR b KQkq")); + openings.add(new Opening("D51", "Queen's Gambit Declined: Rochlin Variation", "r1b1kb1rpp1n1ppp2p1pn2q2p42PP42N2N2PP1BPPPP2RQKB1R b Kkq")); + openings.add(new Opening("D51", "Queen's Gambit Declined: Westphalian Variation", "r1bqk2rpp1n1ppp4pn22pp2B11bPP42N1PN2PP3PPPR2QKB1R w KQkq")); + openings.add(new Opening("D52", "Queen's Gambit Declined", "r1bqkb1rpp1n1ppp2p1pn23p2B12PP42N1PN2PP3PPPR2QKB1R b KQkq")); + openings.add(new Opening("D52", "Queen's Gambit Declined: Cambridge Springs Defense: 7. cxd5", "r1b1kb1rpp1n1ppp2p1pn2q2P2B13P42N1PN2PP3PPPR2QKB1R b KQkq")); + openings.add(new Opening("D52", "Queen's Gambit Declined: Cambridge Springs Defense: Argentine Variation", "r1b2rk1pp1n1ppp2p1pn2q2p41bPP3B2N1P3PPQN1PPPR3KB1R b KQ")); + openings.add(new Opening("D52", "Queen's Gambit Declined: Cambridge Springs Defense: Bogoljubov Variation", "r1b1k2rpp1n1ppp2p1pn2q2p2B11bPP42N1P3PPQN1PPPR3KB1R b KQkq")); + openings.add(new Opening("D52", "Queen's Gambit Declined: Cambridge Springs Defense: Capablanca Variation", "r1b1kb1rpp1n1ppp2p1pB2q2p42PP42N1PN2PP3PPPR2QKB1R b KQkq")); + openings.add(new Opening("D52", "Queen's Gambit Declined: Cambridge Springs Defense: Rubinstein Variation", "r1b1kb1rpp1n1ppp2p1pn2q5B12pP42N1P3PP1N1PPPR2QKB1R w KQkq")); + openings.add(new Opening("D52", "Queen's Gambit Declined: Cambridge Springs Defense: Yugoslav Variation", "r1b1kb1rpp1n1ppp2p1p3q2n2B13P42N1PN2PP3PPPR2QKB1R w KQkq")); + openings.add(new Opening("D52", "Queen's Gambit Declined: Cambridge Springs Variation", "r1b1kb1rpp1n1ppp2p1pn2q2p2B12PP42N1PN2PP3PPPR2QKB1R w KQkq")); + openings.add(new Opening("D53", "Queen's Gambit Declined: 4. Bg5 Be7", "rnbqk2rppp1bppp4pn23p2B12PP42N5PP2PPPPR2QKBNR w KQkq")); + openings.add(new Opening("D53", "Queen's Gambit Declined: 4. Bg5 Be7, 5. e3 O-O", "rnbq1rk1ppp1bppp4pn23p2B12PP42N1P3PP3PPPR2QKBNR w KQ")); + openings.add(new Opening("D53", "Queen's Gambit Declined: Lasker Defense", "rnbqk2rppp1bppp4p33p2B12PPn32N1P3PP3PPPR2QKBNR w KQkq")); + openings.add(new Opening("D53", "Queen's Gambit Declined: Miles Variation", "rnbq1rk1ppp1bppp4pn23p2B12PP42N2N2PPQ1PPPPR3KB1R b KQ")); + openings.add(new Opening("D53", "Queen's Gambit Declined: Modern Variation, Heral Variation", "rnbqk2rppp1bppp4pB23p42PP42N5PP2PPPPR2QKBNR b KQkq")); + openings.add(new Opening("D54", "Queen's Gambit Declined: Neo-Orthodox Variation", "rnbq1rk1ppp1bppp4pn23p2B12PP42N1P3PP3PPP2RQKBNR b K")); + openings.add(new Opening("D55", "Queen's Gambit Declined: Anti-Tartakower Variation", "rnbq1rk1ppp1bpp14pB1p3p42PP42N1PN2PP3PPPR2QKB1R b KQ")); + openings.add(new Opening("D55", "Queen's Gambit Declined: Anti-Tartakower Variation, Petrosian Variation", "r1bq1rk1pp1n1pp12p1pb1p82BP42N1PN2PP3PPP2RQ1RK1 b -")); + openings.add(new Opening("D55", "Queen's Gambit Declined: Modern Variation, Normal Line", "rnbq1rk1ppp1bppp4pn23p2B12PP42N1PN2PP3PPPR2QKB1R b KQ")); + openings.add(new Opening("D55", "Queen's Gambit Declined: Neo-Orthodox Variation", "rnbq1rk1ppp1bpp14pn1p3p2B12PP42N1PN2PP3PPPR2QKB1R w KQ")); + openings.add(new Opening("D55", "Queen's Gambit Declined: Neo-Orthodox Variation, Main Line", "rnbq1rk1ppp1bpp14pn1p3p42PP3B2N1PN2PP3PPPR2QKB1R b KQ")); + openings.add(new Opening("D55", "Queen's Gambit Declined: Pillsbury Attack", "rn1q1rk1pbp1bppp1p3n23pN1B13P42NBP3PP3PPPR2QK2R b KQ")); + openings.add(new Opening("D56", "Queen's Gambit Declined: Lasker Defense", "rnbq1rk1ppp1bpp14p2p3p42PPn2B2N1PN2PP3PPPR2QKB1R w KQ")); + openings.add(new Opening("D56", "Queen's Gambit Declined: Lasker Defense, Teichmann Variation", "rnb2rk1ppp1qpp14p2p3p42PPn32N1PN2PPQ2PPPR3KB1R b KQ")); + openings.add(new Opening("D56", "Queen's Gambit Declined: Lasker Defense: Russian Variation", "r4rk1pp1bqpp12n1pn1p2p52BP42N1PN2PPQ2PPPR2R2K1 w -")); + openings.add(new Opening("D57", "Queen's Gambit Declined: Lasker Defense, Bernstein Variation", "rnb2rk1ppp2pp13q3p3p43P41QP1PN2P4PPPR3KB1R w KQ")); + openings.add(new Opening("D57", "Queen's Gambit Declined: Lasker Defense, Bernstein Variation, Mar del Plata Gambit", "rn1r2k1ppp1qpp14b2p3p42PP41Q2PN2P4PPPR3KB1R w KQ")); + openings.add(new Opening("D57", "Queen's Gambit Declined: Lasker Defense, Main Line", "rnb2rk1ppp1qpp14p2p3P43P42P1PN2P4PPPR2QKB1R b KQ")); + openings.add(new Opening("D57", "Queen's Gambit Declined: Tartakower Variation, Exchange Variation", "rnbq1rk1p1p1bpp11p3n1p3p43P3B2N1PN2PP3PPPR2QKB1R w KQ")); + openings.add(new Opening("D58", "Queen's Gambit Declined: Tartakower Defense", "rnbq1rk1p1p1bpp11p2pn1p3p42PP3B2N1PN2PP3PPPR2QKB1R w KQ")); + openings.add(new Opening("D59", "Queen's Gambit Declined: Tartakower Defense, Makogonov Exchange Variation", "rnbq1rk1p1p1bpp11p2p2p3n43P3B2N1PN2PP3PPPR2QKB1R w KQ")); + openings.add(new Opening("D59", "Queen's Gambit Declined: Tartakower Variation", "rn3rk1p1p1qpp11p2b2p3p43P44PN2PP3PPP2RQKB1R w K")); + openings.add(new Opening("D60", "Queen's Gambit Declined: Orthodox Defense", "r1bq1rk1pppnbppp4pn23p2B12PP42N1PN2PP3PPPR2QKB1R w KQ")); + openings.add(new Opening("D60", "Queen's Gambit Declined: Orthodox Defense, Botvinnik Variation", "r1bq1rk1pppnbppp4pn23p2B12PP42NBPN2PP3PPPR2QK2R b KQ")); + openings.add(new Opening("D60", "Queen's Gambit Declined: Orthodox Defense, Rauzer Variation", "r1bq1rk1pppnbppp4pn23p2B12PP41QN1PN2PP3PPPR3KB1R b KQ")); + openings.add(new Opening("D61", "Queen's Gambit Declined: Orthodox Defense, Rubinstein Variation", "r1bq1rk1pppnbppp4pn23p2B12PP42N1PN2PPQ2PPPR3KB1R b KQ")); + openings.add(new Opening("D62", "Queen's Gambit Declined: Orthodox Defense, Rubinstein Variation, Flohr Line", "r1bq1rk1pp1nbppp4pn22pP2B13P42N1PN2PPQ2PPPR3KB1R b KQ")); + openings.add(new Opening("D63", "Queen's Gambit Declined: Orthodox Defense, Capablanca Variation", "r1bq1rk1p1pnbppp1p3n21B1p2B13P42N1PN2PP3PPP2RQK2R b K")); + openings.add(new Opening("D63", "Queen's Gambit Declined: Orthodox Defense, Henneberger Variation", "r1bq1rk11ppnbpppp3pn23p2B12PP42N1PN2PP3PPP2RQKB1R w K")); + openings.add(new Opening("D63", "Queen's Gambit Declined: Orthodox Defense, Main Line", "r1bq1rk1pp1nbppp2p1pn23p2B12PP42N1PN2PP3PPP2RQKB1R w K")); + openings.add(new Opening("D63", "Queen's Gambit Declined: Orthodox Defense, Main Line", "r1bq1rk1pppnbppp4pn23p2B12PP42N1PN2PP3PPP2RQKB1R b K")); + openings.add(new Opening("D63", "Queen's Gambit Declined: Orthodox Defense, Pillsbury Variation", "r1bq1rk1p1pnbppp1p3n23p2B13P42NBPN2PP3PPP2RQK2R b K")); + openings.add(new Opening("D63", "Queen's Gambit Declined: Orthodox Defense: Swiss, Karlsbad Variation", "r1bq1rk11ppnbpppp3pn23P2B13P42N1PN2PP3PPP2RQKB1R b K")); + openings.add(new Opening("D64", "Queen's Gambit Declined: Orthodox Defense, Rubinstein Attack", "r1bq1rk11p1nbpppp1p1pn23p2B12PP42N1PN2PPQ2PPP2R1KB1R w K")); + openings.add(new Opening("D64", "Queen's Gambit Declined: Orthodox Defense, Rubinstein Attack", "r1bq1rk1pp1nbppp2p1p33p2B12PPn32N1PN2PPQ2PPP2R1KB1R w K")); + openings.add(new Opening("D64", "Queen's Gambit Declined: Orthodox Defense, Rubinstein Attack", "r1bq1rk11p1nbpppp1p1pn23p2B12PP4P1N1PN21PQ2PPP2R1KB1R b K")); + openings.add(new Opening("D64", "Queen's Gambit Declined: Orthodox Defense: Rubinstein Attack, with Rc1", "r1bq1rk1pp1nbppp2p1pn23p2B12PP42N1PN2PPQ2PPP2R1KB1R b K")); + openings.add(new Opening("D65", "Queen's Gambit Declined: Orthodox Defense, Rubinstein Attack", "r1bq1rk11p1nbpppp1p1pn23P2B13P42N1PN2PPQ2PPP2R1KB1R b K")); + openings.add(new Opening("D66", "Queen's Gambit Declined: Orthodox Defense, Fianchetto Variation", "r1bq1rk1p2nbppp2p1pn21p4B12BP42N1PN2PP3PPP2RQK2R w K")); + openings.add(new Opening("D66", "Queen's Gambit Declined: Orthodox Defense: Bd3 Line", "r1bq1rk1pp1nbppp2p1pn23p2B12PP42NBPN2PP3PPP2RQK2R b K")); + openings.add(new Opening("D67", "Queen's Gambit Declined: Orthodox Defense, Alekhine Variation", "r1b2rk1pp1nqppp2p1p33n42BPN34PN2PP3PPP2RQK2R b K")); + openings.add(new Opening("D67", "Queen's Gambit Declined: Orthodox Defense, Capablanca System", "r1bq1rk1pp1nbppp2p1p33n2B12BP42N1PN2PP3PPP2RQK2R w K")); + openings.add(new Opening("D67", "Queen's Gambit Declined: Orthodox Defense, Janowski Variation", "r1bq1rk1pp1nbppp2p1p33n2B12BP3P2N1PN2PP3PP12RQK2R b K")); + openings.add(new Opening("D67", "Queen's Gambit Declined: Orthodox Defense, Main Line", "r1b2rk1pp1nqppp2p1p33n42BP42N1PN2PP3PPP2RQ1RK1 b -")); + openings.add(new Opening("D67", "Queen's Gambit Declined: Orthodox Defense: Bd3 Line", "r1b2rk1pp1nqppp2p1p33n42BP42N1PN2PP3PPP2RQK2R w K")); + openings.add(new Opening("D68", "Queen's Gambit Declined: Orthodox Defense, Classical Variation", "r1b2rk1pp1nqppp2p54p32BP42R1PN2PP3PPP3Q1RK1 w -")); + openings.add(new Opening("D68", "Queen's Gambit Declined: Orthodox Defense, Classical Variation", "r1b2rk1pp1nqppp2p54p32BP42R1PN2PPQ2PPP5RK1 b -")); + openings.add(new Opening("D68", "Queen's Gambit Declined: Orthodox Defense, Classical Variation", "r1b2rk1pp1nqppp2p54p32BP42R1PN2PP3PPP1Q3RK1 b -")); + openings.add(new Opening("D69", "Queen's Gambit Declined: Orthodox Defense, Classical Variation", "r1b2rk1pp3ppp2p54q32B52R1P3PP3PPP3Q1RK1 w -")); + openings.add(new Opening("D70", "Grünfeld Defense: Lutikov Variation", "rnbqkb1rppp1pp1p5np13p42PP42N2P2PP2P1PPR1BQKBNR b KQkq")); + openings.add(new Opening("D70", "Grünfeld Defense: Lutikov Variation, Murrey Attack", "rnbqkb1rpp2pp1p6p12pn4N2P45P2PP2P1PPR1BQKBNR b KQkq")); + openings.add(new Opening("D70", "Indian Game: Anti-Grünfeld, Alekhine Variation", "rnbqkb1rpppppp1p5np182PP45P2PP2P1PPRNBQKBNR b KQkq")); + openings.add(new Opening("D70", "Indian Game: Anti-Grünfeld, Alekhine Variation, Leko Gambit", "rnbqkb1rpppp1p1p5np14p32PP45P2PP2P1PPRNBQKBNR w KQkq")); + openings.add(new Opening("D70", "Neo-Grünfeld Defense", "rnbqkb1rppp1pp1p5np13p42PP46P1PP2PP1PRNBQKBNR w KQkq")); + openings.add(new Opening("D70", "Neo-Grünfeld Defense: Goglidze Attack", "rnbqkb1rppp1pp1p5np13p42PP45P2PP2P1PPRNBQKBNR w KQkq")); + openings.add(new Opening("D70", "Neo-Grünfeld Defense: Non- or Delayed Fianchetto", "rnbqkb1rppp1pp1p5np13p42PP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("D71", "Neo-Grünfeld Defense: Exchange Variation", "rnbqk2rppp1ppbp6p13n43P46P1PP2PPBPRNBQK1NR w KQkq")); + openings.add(new Opening("D72", "Neo-Grünfeld Defense: Exchange Variation, with 6. e4", "rnbqk2rppp1ppbp1n4p183PP36P1PP2NPBPRNBQK2R b KQkq")); + openings.add(new Opening("D73", "Neo-Grünfeld Defense, with 5. Nf3", "rnbqk2rppp1ppbp5np13p42PP45NP1PP2PPBPRNBQK2R b KQkq")); + openings.add(new Opening("D74", "Neo-Grünfeld Defense: Delayed Exchange Variation", "rnbq1rk1ppp1ppbp6p13n43P45NP1PP2PPBPRNBQ1RK1 b -")); + openings.add(new Opening("D75", "Neo-Grünfeld Defense: Delayed Exchange Variation", "rnbq1rk1pp2ppbp6p12Pn485NP1PP2PPBPRNBQ1RK1 b -")); + openings.add(new Opening("D75", "Neo-Grünfeld Defense: Delayed Exchange Variation", "rnbq1rk1pp2ppbp6p12pn43P42N2NP1PP2PPBPR1BQ1RK1 b -")); + openings.add(new Opening("D76", "Neo-Grünfeld Defense: Delayed Exchange Variation", "rnbq1rk1ppp1ppbp1n4p183P45NP1PP2PPBPRNBQ1RK1 w -")); + openings.add(new Opening("D77", "Neo-Grünfeld Defense: Classical Variation", "rnbq1rk1ppp1ppbp5np13p42PP45NP1PP2PPBPRNBQ1RK1 b -")); + openings.add(new Opening("D78", "Neo-Grünfeld Defense: Classical Variation, Modern Defense", "rnbq1rk1ppp1ppbp5np182pP45NP1PP2PPBPRNBQ1RK1 w -")); + openings.add(new Opening("D78", "Neo-Grünfeld Defense: Classical Variation, Original Defense", "rnbq1rk1pp2ppbp2p2np13p42PP45NP1PP2PPBPRNBQ1RK1 w -")); + openings.add(new Opening("D78", "Neo-Grünfeld Defense: Classical Variation, Polgar Variation", "r1bq1rk1ppp1ppbp2n2np13p42PP45NP1PP2PPBPRNBQ1RK1 w -")); + openings.add(new Opening("D79", "Neo-Grünfeld Defense: Ultra-delayed Exchange Variation", "rnbq1rk1pp2ppbp5np13p43P45NP1PP2PPBPRNBQ1RK1 w -")); + openings.add(new Opening("D80", "Grünfeld Defense", "rnbqkb1rppp1pp1p5np13p42PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D80", "Grünfeld Defense: Gibbon Gambit", "rnbqkb1rppp1pp1p5np13p42PP2P12N5PP2PP1PR1BQKBNR b KQkq")); + openings.add(new Opening("D80", "Grünfeld Defense: Lundin Variation", "rnbqkb1rpp2pp1p6p12p3B12PPp38PP1QPPPPR3KBNR w KQkq")); + openings.add(new Opening("D80", "Grünfeld Defense: Stockholm Variation", "rnbqkb1rppp1pp1p5np13p2B12PP42N5PP2PPPPR2QKBNR b KQkq")); + openings.add(new Opening("D80", "Grünfeld Defense: Zaitsev Gambit", "rnbqkb1rppp1pp1p5np13p42PP3P2N5PP2PPP1R1BQKBNR b KQkq")); + openings.add(new Opening("D81", "Grünfeld Defense: Russian Variation, Accelerated Variation", "rnbqkb1rppp1pp1p5np13p42PP41QN5PP2PPPPR1B1KBNR b KQkq")); + openings.add(new Opening("D82", "Grünfeld Defense: Brinckmann Attack", "rnbqkb1rppp1pp1p5np13p42PP1B22N5PP2PPPPR2QKBNR b KQkq")); + openings.add(new Opening("D83", "Grünfeld Defense: Brinckmann Attack, Grünfeld Gambit", "rnbq1rk1ppp1ppbp5np13p42PP1B22N1P3PP3PPPR2QKBNR w KQ")); + openings.add(new Opening("D83", "Grünfeld Defense: Brinckmann Attack, Grünfeld Gambit, Botvinnik Variation", "rn1q1rk1pp2ppbp4bnp12Pp42P2B22N1P3PP3PPP2RQKBNR w K")); + openings.add(new Opening("D83", "Grünfeld Defense: Brinckmann Attack, Grünfeld Gambit, Capablanca Variation", "rnbq1rk1ppp1ppbp5np13p42PP1B22N1P3PP3PPP2RQKBNR b K")); + openings.add(new Opening("D83", "Grünfeld Defense: Brinckmann Attack, Reshevsky Gambit", "rnb2rk1pp2ppbp5np1q1Pp42P2B22N1P3PP3PPP2RQKBNR w K")); + openings.add(new Opening("D84", "Grünfeld Defense: Brinckmann Attack, Grünfeld Gambit Accepted", "rnb2rk1ppB1ppbp6p13q43P44P3PP3PPPR2QKBNR b KQ")); + openings.add(new Opening("D85", "Grünfeld Defense: Exchange Variation", "rnbqkb1rppp1pp1p6p13n43P42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("D85", "Grünfeld Defense: Exchange Variation, Modern Exchange Variation", "rnbqk2rppp1ppbp6p183PP32P2N2P4PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D85", "Grünfeld Defense: Exchange Variation, Modern Exchange Variation, Kramnik's Line", "rnbqk2rpp2ppbp6p12p53PP32P2N1PP4PP1R1BQKB1R b KQkq")); + openings.add(new Opening("D85", "Grünfeld Defense: Exchange Variation, Modern Exchange Variation, Pawn Grab Line", "r1bq1rk1pp2pp1p2n3p12pP44P32b2N2P3BPPP1RBQK2R w K")); + openings.add(new Opening("D85", "Grünfeld Defense: Exchange Variation, Nadanian Attack", "rnbqkb1rppp1pp1p6p13n4N2P48PP2PPPPR1BQKBNR b KQkq")); + openings.add(new Opening("D86", "Grünfeld Defense: Exchange Variation, Classical Variation", "rnbqk2rppp1ppbp6p182BPP32P5P4PPPR1BQK1NR b KQkq")); + openings.add(new Opening("D86", "Grünfeld Defense: Exchange Variation, Larsen Variation", "rnb2rk1pppqppbp6p182BPP32P5P3NPPPR1BQK2R w KQ")); + openings.add(new Opening("D86", "Grünfeld Defense: Exchange Variation, Simagin's Improved Variation", "r1bq1rk1ppp1ppbp2n3p182BPP32P5P3NPPPR1BQK2R w KQ")); + openings.add(new Opening("D86", "Grünfeld Defense: Exchange, Larsen Variation", "rnb2rk1p1pqppbp1p4p182BPP32P5P3NPPPR1BQ1RK1 w -")); + openings.add(new Opening("D86", "Grünfeld Defense: Exchange, Simagin's Lesser Variation", "rnbq1rk1p1p1ppbp1p4p182BPP32P5P3NPPPR1BQK2R w KQ")); + openings.add(new Opening("D87", "Grünfeld Defense: Exchange Variation, Seville Variation", "r2q1rk1pp2pBbp6p1n1p53PP1b12P1BP2P3N1PPR2Q1RK1 b -")); + openings.add(new Opening("D87", "Grünfeld Defense: Exchange Variation, Spassky Variation", "rnbq1rk1pp2ppbp6p12p52BPP32P5P3NPPPR1BQK2R w KQ")); + openings.add(new Opening("D88", "Grünfeld Defense: Exchange Variation, Spassky Variation", "r1bq1rk1pp2ppbp2n3p182BPP34B3P3NPPPR2Q1RK1 b -")); + openings.add(new Opening("D89", "Grünfeld Defense: Exchange Variation, Sokolsky Variation", "r2q1rk1pp2ppbp4b1p1n2P44P33BBP2P3N1PPR2Q1RK1 b -")); + openings.add(new Opening("D89", "Grünfeld Defense: Exchange Variation, Spassky Variation", "r2q1rk1pp2ppbp4b1p1n73PP33BBP2P3N1PPR2Q1RK1 w -")); + openings.add(new Opening("D90", "Grünfeld Defense: Flohr Variation", "rnbqk2rppp1ppbp5np13p4Q1PP42N2N2PP2PPPPR1B1KB1R b KQkq")); + openings.add(new Opening("D90", "Grünfeld Defense: Three Knights Variation", "rnbqk2rppp1ppbp5np13p42PP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("D90", "Grünfeld Defense: Three Knights Variation", "rnbqkb1rppp1pp1p5np13p42PP42N2N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("D91", "Grünfeld Defense: Three Knights Variation, Petrosian System", "rnbqk2rppp1ppbp5np13p2B12PP42N2N2PP2PPPPR2QKB1R b KQkq")); + openings.add(new Opening("D92", "Grünfeld Defense: Three Knights Variation, Hungarian Attack", "rnbqk2rppp1ppbp5np13p42PP1B22N2N2PP2PPPPR2QKB1R b KQkq")); + openings.add(new Opening("D93", "Grünfeld Defense: Three Knights Variation, Hungarian Variation", "rnbq1rk1ppp1ppbp5np13p42PP1B22N1PN2PP3PPPR2QKB1R b KQ")); + openings.add(new Opening("D94", "Grünfeld Defense: Flohr Defense", "rn1q1rk1pp2ppbp2p2np13p1b22PP42NBPN2PP3PPPR1BQ1RK1 w -")); + openings.add(new Opening("D94", "Grünfeld Defense: Makogonov Variation", "rnbq1rk1ppp1ppbp5np13p41PPP42N1PN2P4PPPR1BQKB1R b KQ")); + openings.add(new Opening("D94", "Grünfeld Defense: Opocensky Variation", "rnbq1rk1ppp1ppbp5np13p42PP42N1PN2PP1B1PPPR2QKB1R b KQ")); + openings.add(new Opening("D94", "Grünfeld Defense: Smyslov Defense", "rn1q1rk1pp2ppbp2p2np13p42PP2b12NBPN2PP3PPPR1BQ1RK1 w -")); + openings.add(new Opening("D94", "Grünfeld Defense: Three Knights Variation, Burille Variation", "rnbqk2rppp1ppbp5np13p42PP42N1PN2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("D94", "Grünfeld Defense: Three Knights Variation, Burille Variation, Reversed Tarrasch", "r1bq1rk1pp2ppbp2n2np13p42PP42N2N2PP2BPPPR1BQ1RK1 w -")); + openings.add(new Opening("D94", "Grünfeld Defense: Three Knights Variation, Paris Variation", "rnbq1rk1ppp1ppbp5np13p42PP42NBPN2PP3PPPR1BQK2R b KQ")); + openings.add(new Opening("D95", "Grünfeld Defense: Botvinnik Variation", "rnbq1rk1ppp2pbp4pnp13p42PP41QN1PN2PP3PPPR1B1KB1R w KQ")); + openings.add(new Opening("D95", "Grünfeld Defense: Pachman Variation", "r1bq1rk1pppnppbp5np16N12BP41QN1P3PP3PPPR1B1K2R b KQ")); + openings.add(new Opening("D95", "Grünfeld Defense: Three Knights Variation, Vienna Variation", "rnbq1rk1ppp1ppbp5np13p42PP41QN1PN2PP3PPPR1B1KB1R b KQ")); + openings.add(new Opening("D96", "Grünfeld Defense: Russian Variation", "rnbqk2rppp1ppbp5np13p42PP41QN2N2PP2PPPPR1B1KB1R b KQkq")); + openings.add(new Opening("D97", "Grünfeld Defense: Russian Variation, Byrne (Simagin) Variation", "r1bq1rk1ppp1ppbp2n2np182QPP32N2N2PP3PPPR1B1KB1R w KQ")); + openings.add(new Opening("D97", "Grünfeld Defense: Russian Variation, Hungarian Variation", "rnbq1rk11pp1ppbpp4np182QPP32N2N2PP3PPPR1B1KB1R w KQ")); + openings.add(new Opening("D97", "Grünfeld Defense: Russian Variation, Levenfish Variation", "rnbq1rk1p1p1ppbp1p3np182QPP32N2N2PP3PPPR1B1KB1R w KQ")); + openings.add(new Opening("D97", "Grünfeld Defense: Russian Variation, Prins Variation", "r1bq1rk1ppp1ppbpn4np182QPP32N2N2PP3PPPR1B1KB1R w KQ")); + openings.add(new Opening("D97", "Grünfeld Defense: Russian Variation, Szabo (Boleslavsky)", "rnbq1rk1pp2ppbp2p2np182QPP32N2N2PP3PPPR1B1KB1R w KQ")); + openings.add(new Opening("D97", "Grünfeld Defense: Russian Variation, with e4", "rnbq1rk1ppp1ppbp5np182QPP32N2N2PP3PPPR1B1KB1R b KQ")); + openings.add(new Opening("D98", "Grünfeld Defense: Russian Variation, Smyslov Variation", "rn1q1rk1ppp1ppbp5np182QPP1b12N2N2PP3PPPR1B1KB1R w KQ")); + openings.add(new Opening("D98", "Grünfeld Defense: Russian, Keres Variation", "r2q1rk1ppp1ppbp1nn3p183PP1b12NQBN2PP2BPPP2KR3R b -")); + openings.add(new Opening("D99", "Grünfeld Defense: Russian Variation, Smyslov Variation", "rn1q1rk1pppnppbp6p183PP1b11QN1BN2PP3PPPR3KB1R b KQ")); + openings.add(new Opening("D99", "Grünfeld Defense: Russian Variation, Yugoslav Variation", "rn1q1rk1pp1nppbp6p12p53PP1b11QN1BN2PP3PPPR3KB1R w KQ")); + openings.add(new Opening("E00", "Catalan Opening", "rnbqkb1rpppp1ppp4pn282PP46P1PP2PP1PRNBQKBNR b KQkq")); + openings.add(new Opening("E00", "Catalan Opening: Hungarian Gambit", "rnbqkb1rpppp1ppp5n24p32PP46P1PP2PP1PRNBQKBNR w KQkq")); + openings.add(new Opening("E00", "Indian Game: Devin Gambit", "rnbqkb1rpppp1ppp4pn282PP2P18PP2PP1PRNBQKBNR b KQkq")); + openings.add(new Opening("E00", "Indian Game: East Indian Defense", "rnbqkb1rpppp1ppp4pn282PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("E00", "Indian Game: Seirawan Attack", "rnbqkb1rpppp1ppp4pn26B12PP48PP2PPPPRN1QKBNR b KQkq")); + openings.add(new Opening("E00", "Kangaroo Defense", "rnbqk1nrpppp1ppp4p381bPP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("E00", "Kangaroo Defense: Keres Defense, Transpositional Variation", "rnbqk1nrpppp1ppp4p381bPP42N5PP2PPPPR1BQKBNR b KQkq")); + openings.add(new Opening("E01", "Catalan Opening", "rnbqkb1rppp2ppp4pn23p42PP46P1PP2PP1PRNBQKBNR w KQkq")); + openings.add(new Opening("E01", "Catalan Opening: Closed Variation", "rnbqkb1rppp2ppp4pn23p42PP46P1PP2PPBPRNBQK1NR b KQkq")); + openings.add(new Opening("E02", "Catalan Opening: Open Defense", "rnbqkb1rppp2ppp4pn28Q1pP46P1PP2PPBPRNB1K1NR b KQkq")); + openings.add(new Opening("E03", "Catalan Opening: Open Defense", "r1bqkb1rpppn1ppp4pn282QP46P1PP2PPBPRNB1K1NR b KQkq")); + openings.add(new Opening("E03", "Catalan Opening: Open Defense, Alekhine Variation", "r1bqkb1r1ppn1pppp3pn283P46P1PPQ1PPBPRNB1K1NR b KQkq")); + openings.add(new Opening("E04", "Catalan Opening: Open Defense", "rnbqkb1rppp2ppp4pn282pP45NP1PP2PPBPRNBQK2R b KQkq")); + openings.add(new Opening("E04", "Catalan Opening: Open Defense, Modern Sharp Variation", "r1bqk2rppp2ppp2n1pn28QbpP45NP1PP2PPBPRNB1K2R w KQkq")); + openings.add(new Opening("E04", "Catalan Opening: Open Defense, Tarrasch Defense", "r1bqkb1rpp3ppp2n1pn22pp42PP45NP1PP2PPBPRNBQK2R w KQkq")); + openings.add(new Opening("E05", "Catalan Opening: Open Defense, Classical Line", "rnbqk2rppp1bppp4pn282pP45NP1PP2PPBPRNBQK2R w KQkq")); + openings.add(new Opening("E06", "Catalan Opening: Closed Variation", "rnbqk2rppp1bppp4pn23p42PP45NP1PP2PPBPRNBQK2R b KQkq")); + openings.add(new Opening("E07", "Catalan Opening: Closed Variation", "r1bq1rk1pppnbppp4pn23p42PP45NP1PP2PPBPRNBQ1RK1 w -")); + openings.add(new Opening("E07", "Catalan Opening: Closed Variation, Botvinnik Variation", "r1bq1rk1pp1nbppp2p1pn23p42PP42NQ1NP1PP2PPBPR1B2RK1 b -")); + openings.add(new Opening("E08", "Catalan Opening: Closed Variation", "r1bq1rk1pppnbppp4pn23p42PP45NP1PPQ1PPBPRNB2RK1 b -")); + openings.add(new Opening("E08", "Catalan Opening: Closed, 7. Qc2 c6 8. b3", "r1bq1rk1pp1nbppp2p1pn23p42PP41P3NP1P1Q1PPBPRNB2RK1 b -")); + openings.add(new Opening("E08", "Catalan Opening: Closed, Spassky Gambit", "r2q1rk1pb1nbppp2p1pn21p1p42PP41PN2NP1P1Q1PPBPR1BR2K1 w -")); + openings.add(new Opening("E08", "Catalan Opening: Closed, Zagoryansky Variation", "r1bq1rk1p2nbppp1pp1pn23p4P1PP45NP11PQ1PPBPRNBR2K1 b -")); + openings.add(new Opening("E09", "Catalan Opening: Closed Variation, Rabinovich Variation", "r1bq1rk1p2nbppp2p1pn21p1p42PP45NP1PPQNPPBPR1B2RK1 w -")); + openings.add(new Opening("E09", "Catalan Opening: Closed Variation, Traditional Variation", "r1bq1rk1p2nbppp1pp1pn23p42PP45NP1PPQNPPBPR1B2RK1 w -")); + openings.add(new Opening("E09", "Catalan Opening: Closed, Main Line", "r1bq1rk1pp1nbppp2p1pn23p42PP45NP1PPQNPPBPR1B2RK1 b -")); + openings.add(new Opening("E09", "Catalan Opening: Closed, Sokolsky Variation", "r2q1rk13nbpppbpp1pn2p2p42PP41P3NP1PBQNPPBPR4RK1 w -")); + openings.add(new Opening("E10", "Blumenfeld Countergambit", "rnbqkb1rp2p1ppp4pn21ppP42P55N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("E10", "Blumenfeld Countergambit", "rnbqkb1rpp1p1ppp4pn22p52PP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("E10", "Blumenfeld Countergambit Accepted", "rnbqkb1rp5pp4pn21Ppp485N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("E10", "Blumenfeld Countergambit: Dus-Khotimirsky Variation", "rnbqkb1rp2p1ppp4pn21ppP2B12P55N2PP2PPPPRN1QKB1R b KQkq")); + openings.add(new Opening("E10", "Blumenfeld Countergambit: Spielmann Variation", "rnbqkb1rp2p1pp15n1p1ppP2B185N2PP2PPPPRN1QKB1R w KQkq")); + openings.add(new Opening("E10", "Indian Game: 3. Qb3", "rnbqkb1rpppp1ppp4pn282PP41Q6PP2PPPPRNB1KBNR b KQkq")); + openings.add(new Opening("E10", "Indian Game: Anti-Nimzo-Indian", "rnbqkb1rpppp1ppp4pn282PP45N2PP2PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("E10", "Indian Game: Doery Indian", "rnbqkb1rpppp1ppp4p382PPn35N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("E10", "Indian Game: Dzindzi-Indian Defense", "rnbqkb1r1ppp1pppp3pn282PP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("E11", "Bogo-Indian Defense", "rnbqk2rpppp1ppp4pn281bPP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("E11", "Bogo-Indian Defense: Exchange Variation", "rnbqk2rpppp1ppp4pn282PP45N2PP1bPPPPRN1QKB1R w KQkq")); + openings.add(new Opening("E11", "Bogo-Indian Defense: Grünfeld Variation", "rnbqk2rpppp1ppp4pn281bPP45N2PP1NPPPPR1BQKB1R b KQkq")); + openings.add(new Opening("E11", "Bogo-Indian Defense: Haiti Variation", "r1bqk2rpppp1ppp2n1pn281bPP45N2PP1BPPPPRN1QKB1R w KQkq")); + openings.add(new Opening("E11", "Bogo-Indian Defense: Monticelli Trap", "rn1q1rk1pbpp1ppp1p2p36N12PP42n3P1PPQ1PPBPR3K2R b KQ")); + openings.add(new Opening("E11", "Bogo-Indian Defense: New England Variation", "rnbqk2rpppp1ppp4pn281bPP48PP1NPPPPRNBQKB1R b KQkq")); + openings.add(new Opening("E11", "Bogo-Indian Defense: Nimzowitsch Variation", "rnb1k2rppppqppp4pn281bPP45N2PP1BPPPPRN1QKB1R w KQkq")); + openings.add(new Opening("E11", "Bogo-Indian Defense: Retreat Variation", "rnbqk2rppppbppp4pn282PP45N2PP1BPPPPRN1QKB1R w KQkq")); + openings.add(new Opening("E11", "Bogo-Indian Defense: Vitolins Variation", "rnbqk2rpp1p1ppp4pn22p51bPP45N2PP1BPPPPRN1QKB1R w KQkq")); + openings.add(new Opening("E11", "Bogo-Indian Defense: Wade-Smyslov Variation", "rnbqk2r1ppp1ppp4pn2p71bPP45N2PP1BPPPPRN1QKB1R w KQkq")); + openings.add(new Opening("E11", "Queen's Indian Defense: Petrosian Variation, Farago Defense", "rn1qkb1rpbpp1ppp1p2pn282PP4P4N21PQ1PPPPRNB1KB1R w KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense", "rnbqkb1rp1pp1ppp1p2pn282PP45N2PP2PPPPRNBQKB1R w KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense: Kasparov Variation", "rnbqkb1rp1pp1ppp1p2pn282PP42N2N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense: Kasparov Variation, Botvinnik Attack", "rn1qkb1rpbpp1p21p2p2p6pn2PP42N2NB1PP2PPPPR2QKB1R w KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense: Kasparov-Petrosian Variation, Andersson Variation", "rn1qkb1rpbpp1ppp1p2p382PPn3P1N2N21P2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense: Kasparov-Petrosian Variation, Classical Variation", "rn1qkb1rpbp2ppp1p3n23p43P4P1N2N21P2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense: Kasparov-Petrosian Variation, Kasparov Attack", "rn1qkb1rpbp2ppp1p2p33n43P4P1N2N21PQ1PPPPR1B1KB1R b KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense: Kasparov-Petrosian Variation, Main Line", "rn1qkb1rpbp2ppp1p2pn23p42PP4P1N2N21P2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense: Kasparov-Petrosian Variation, Marco Defense", "rn1qk2rpbppbppp1p2pn282PP4P1N2N21P2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense: Kasparov-Petrosian Variation, Modern Variation", "rn1qkb1rpbp2ppp1p2p33n43P4P1N2N21P2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense: Kasparov-Petrosian Variation, Petrosian Attack", "rn1qkb1rpbp2ppp1p2p33n43P4P1N1PN21P3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense: Kasparov-Petrosian Variation, Polovodin Gambit", "rn1qkb1rpbp2ppp1p2p33n43PP3P1N2N21P3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense: Kasparov-Petrosian Variation, Rashkovsky Attack", "rn1qkb1rpbp2ppp1p2p33n4Q2P4P1N2N21P2PPPPR1B1KB1R b KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense: Kasparov-Petrosian Variation, Romanishin Attack", "rn1qkb1rpbp2ppp1p2p33n43P4P1N2N21P1BPPPPR2QKB1R b KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense: Miles Variation", "rnbqkb1rp1pp1ppp1p2pn282PP1B25N2PP2PPPPRN1QKB1R b KQkq")); + openings.add(new Opening("E12", "Queen's Indian Defense: Petrosian Variation", "rnbqkb1rp1pp1ppp1p2pn282PP4P4N21P2PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("E13", "Queen's Indian Defense: Kasparov Variation", "rn1qk2rpbpp1pp11p2pn1p81bPP3B2N2N2PP2PPPPR2QKB1R w KQkq")); + openings.add(new Opening("E14", "Queen's Indian Defense: Spassky System", "rnbqkb1rp1pp1ppp1p2pn282PP44PN2PP3PPPRNBQKB1R b KQkq")); + openings.add(new Opening("E14", "Queen's Indian, Averbakh Variation", "rn1q1rk1pb1pbppp1p2pn282PN41P1BP3PB3PPPRN1Q1RK1 b -")); + openings.add(new Opening("E15", "Queen's Indian Defense: Fianchetto Traditional", "rn1qkb1rpbpp1ppp1p2pn282PP45NP1PP2PP1PRNBQKB1R w KQkq")); + openings.add(new Opening("E15", "Queen's Indian Defense: Fianchetto Variation", "rnbqkb1rp1pp1ppp1p2pn282PP45NP1PP2PP1PRNBQKB1R b KQkq")); + openings.add(new Opening("E15", "Queen's Indian Defense: Fianchetto Variation, Check Variation", "rn1qk2rp1pp1pppbp2pn281bPP41P3NP1P3PP1PRNBQKB1R w KQkq")); + openings.add(new Opening("E15", "Queen's Indian Defense: Fianchetto Variation, Check Variation, Intermezzo Line", "rn1qk2rp1ppbpppbp2pn282PP41P3NP1P2BPP1PRN1QKB1R w KQkq")); + openings.add(new Opening("E15", "Queen's Indian Defense: Fianchetto Variation, Check Variation, Modern Line", "rn2k2rp1ppqpppbp2pn281bPP41P3NP1P2BPP1PRN1QKB1R w KQkq")); + openings.add(new Opening("E15", "Queen's Indian Defense: Fianchetto Variation, Nimzowitsch Variation", "rn1qkb1rp1pp1pppbp2pn282PP45NP1PP2PP1PRNBQKB1R w KQkq")); + openings.add(new Opening("E15", "Queen's Indian Defense: Fianchetto Variation, Nimzowitsch Variation, Nimzowitsch Attack", "rn1qkb1rp1pp1pppbp2pn28Q1PP45NP1PP2PP1PRNB1KB1R b KQkq")); + openings.add(new Opening("E15", "Queen's Indian Defense: Fianchetto Variation, Nimzowitsch Variation, Quiet Line", "rn1qkb1rp1pp1pppbp2pn282PP41P3NP1P3PP1PRNBQKB1R b KQkq")); + openings.add(new Opening("E15", "Queen's Indian Defense: Fianchetto Variation, Nimzowitsch Variation, Timman's Line", "rn1qkb1rp1pp1pppbp2pn282PP41Q3NP1PP2PP1PRNB1KB1R b KQkq")); + openings.add(new Opening("E15", "Queen's Indian Defense: Fianchetto Variation, Sämisch Variation", "rn1qkb1rpb1p1ppp1p2pn22p52PP45NP1PP2PPBPRNBQK2R w KQkq")); + openings.add(new Opening("E15", "Queen's Indian, Buerger Variation", "rn1qkb1rpb1p1ppp1p3n22pp2N12P56P1PP2PPBPRNBQK2R b KQkq")); + openings.add(new Opening("E16", "Queen's Indian Defense: Capablanca Variation", "rn1qk2rpbpp1ppp1p2pn281bPP45NP1PP2PPBPRNBQK2R w KQkq")); + openings.add(new Opening("E16", "Queen's Indian Defense: Fianchetto Variation, Rubinstein Variation", "rn1qkb1rpb1p1ppp1p3n22pp42P4N6P1PP2PPBPRNBQK2R b KQkq")); + openings.add(new Opening("E16", "Queen's Indian Defense: Riumin Variation", "rn1qk2rpbppbppp1p2pn282PP45NP1PP1BPPBPRN1QK2R w KQkq")); + openings.add(new Opening("E16", "Queen's Indian Defense: Yates Variation", "rn1qk2r1bpp1ppp1p2pn2p71bPP45NP1PP1BPPBPRN1QK2R w KQkq")); + openings.add(new Opening("E17", "Queen's Indian Defense: Anti-Queen's Indian System", "rn1qk2rpbppbppp1p2pn282PP42N2NP1PP2PPBPR1BQK2R b KQkq")); + openings.add(new Opening("E17", "Queen's Indian Defense: Classical Variation", "rn1qk2rpbppbppp1p2pn282PP45NP1PP2PPBPRNBQ1RK1 b kq")); + openings.add(new Opening("E17", "Queen's Indian Defense: Classical Variation, Polugaevsky Gambit", "rn1q1rk1pbppbppp1p3n23p42P4N6P1PP2PPBPRNBQ1RK1 b -")); + openings.add(new Opening("E17", "Queen's Indian Defense: Classical Variation, Taimanov Gambit", "rn1q1rk1pbppbppp1p3n23p42PN46P1PP2PPBPRNBQ1RK1 b -")); + openings.add(new Opening("E17", "Queen's Indian Defense: Classical Variation, Tiviakov Defense", "r2q1rk1pbppbpppnp2pn282PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("E17", "Queen's Indian Defense: Classical Variation, Traditional Variation", "rn1q1rk1pbppbppp1p2pn282PP42N2NP1PP2PPBPR1BQ1RK1 b -")); + openings.add(new Opening("E17", "Queen's Indian Defense: Euwe Variation", "rn1q1rk1pbppbppp1p2pn282PP41P3NP1P3PPBPRNBQ1RK1 b -")); + openings.add(new Opening("E17", "Queen's Indian Defense: Fianchetto Variation, Kramnik Variation", "rn1q1rk1pbppbppp1p2pn282PP45NP1PP2PPBPRNBQR1K1 b -")); + openings.add(new Opening("E17", "Queen's Indian Defense: Kasparov-Petrosian Variation", "rn1qkb1rpbpp1ppp1p2pn282PP4P1N2N21P2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("E17", "Queen's Indian Defense: Kasparov-Petrosian Variation, Hedgehog Variation", "rn1qkb1rpbpp1p1p1p2pnp182PP4P1N2N21P2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("E17", "Queen's Indian Defense: Opocensky Variation", "rn1qk2rpbppbppp1p2p382PPn32N2NP1PP1BPPBPR2QK2R b KQkq")); + openings.add(new Opening("E17", "Queen's Indian Defense: Traditional Variation", "rn1qk2rpbppbppp1p2pn282PP45NP1PP2PPBPRNBQK2R w KQkq")); + openings.add(new Opening("E18", "Queen's Indian Defense: Classical Variation, Traditional Variation, Nimzowitsch Line", "rn1q1rk1pbp1bppp1p2pn23p42PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("E19", "Queen's Indian Defense: Classical Variation, Traditional Variation, Main Line", "rn1q1rk1pbppbppp1p2p382PP42Q2NP1PP2PPBPR1B2RK1 b -")); + openings.add(new Opening("E20", "Nimzo-Indian Defense", "rnbqk2rpppp1ppp4pn281bPP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("E20", "Nimzo-Indian Defense", "rnbqkb1rpppp1ppp4pn282PP42N5PP2PPPPR1BQKBNR b KQkq")); + openings.add(new Opening("E20", "Nimzo-Indian Defense: Kmoch Variation", "rnbqk2rpppp1ppp4pn281bPP42N2P2PP2P1PPR1BQKBNR b KQkq")); + openings.add(new Opening("E20", "Nimzo-Indian Defense: Mikenas Attack", "rnbqk2rpppp1ppp4pn281bPP42NQ4PP2PPPPR1B1KBNR b KQkq")); + openings.add(new Opening("E20", "Nimzo-Indian Defense: Romanishin Variation", "rnbq1rk1pp1p1ppp4pn22p51bPP42N2NP1PP2PPBPR1BQK2R b KQ")); + openings.add(new Opening("E20", "Nimzo-Indian Defense: Romanishin Variation", "rnbqk2rpppp1ppp4pn281bPP42N3P1PP2PP1PR1BQKBNR b KQkq")); + openings.add(new Opening("E20", "Nimzo-Indian Defense: Romanishin Variation, English Hybrid", "rnbq1rk1pp3ppp4p33n41b1N42N3P1PP2PPBPR1BQK2R w KQ")); + openings.add(new Opening("E21", "Nimzo-Indian Defense: Three Knights Variation", "rnbqk2rpppp1ppp4pn281bPP42N2N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("E21", "Nimzo-Indian Defense: Three Knights Variation, Duchamp Variation", "rnbqk2rp1pp1ppp1p2pn281bPP42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("E21", "Nimzo-Indian Defense: Three Knights Variation, Duchamp Variation, Modern Line", "rn1qk2rpbpp1ppp1p2pn26B11bPP42N5PP1NPPPPR2QKB1R b KQkq")); + openings.add(new Opening("E21", "Nimzo-Indian Defense: Three Knights Variation, Korchnoi Variation", "rnbqk2rpp1p1ppp4pn22pP41bP52N2N2PP2PPPPR1BQKB1R b KQkq")); + openings.add(new Opening("E21", "Nimzo-Indian Defense: Three Knights Variation, Shocron Gambit", "rnbqk2rp2p1ppp4pn21ppP41bP52N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("E21", "Nimzo-Indian Defense: Three Knights, Euwe Variation", "rnbqk2rpp1p1ppp4p32pP41bP1n32N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("E22", "Nimzo-Indian Defense: Spielmann Variation", "rnbqk2rpppp1ppp4pn281bPP41QN5PP2PPPPR1B1KBNR b KQkq")); + openings.add(new Opening("E23", "Nimzo-Indian Defense: Spielmann Variation, Karlsbad Variation", "r1bqk2rpp1p1ppp2n1p32P51bP51QN2N2PP1nPPPPR3KB1R w KQkq")); + openings.add(new Opening("E23", "Nimzo-Indian Defense: Spielmann Variation, Romanovsky Gambit", "r1bqk2rpp1p1ppp2n1pn22P51bP51QN5PP2PPPPR1B1KBNR w KQkq")); + openings.add(new Opening("E23", "Nimzo-Indian Defense: Spielmann Variation, Stahlberg Variation", "r1bqk2rpp1p1ppp2n1p32n51bP51QN2N2PP1BPPPPR3KB1R w KQkq")); + openings.add(new Opening("E23", "Nimzo-Indian Defense: Spielmann, Stahlberg Variation", "r1bqk2rpp1p2pp2n1p32n2p21bP52N2NP1PPQBPP1PR3KB1R b KQkq")); + openings.add(new Opening("E24", "Nimzo-Indian Defense: Sämisch Variation, Accelerated", "rnbqk2rpppp1ppp4pn282PP4P1P54PPPPR1BQKBNR b KQkq")); + openings.add(new Opening("E24", "Nimzo-Indian Defense: Sämisch, Botvinnik Variation", "rnbq1rk1pp3ppp4p32pn43P4P1P1PP26PPR1BQKBNR w KQ")); + openings.add(new Opening("E25", "Nimzo-Indian Defense: Sämisch Variation", "rnbqk2rpp3ppp4pn22pP43P4P1P2P24P1PPR1BQKBNR b KQkq")); + openings.add(new Opening("E25", "Nimzo-Indian Defense: Sämisch Variation, Keres Variation", "rnbqk2rpp3ppp4p32Pn48P1P2P24P1PPR1BQKBNR b KQkq")); + openings.add(new Opening("E25", "Nimzo-Indian Defense: Sämisch, Romanovsky Variation", "rnbqk2rpp4pp4p32Pn1p28P1P2P24P1PPR1BQKBNR w KQkq")); + openings.add(new Opening("E26", "Nimzo-Indian Defense: Sämisch Variation", "rnbqk2rpp1p1ppp4pn22p52PP4P1P1P35PPPR1BQKBNR b KQkq")); + openings.add(new Opening("E26", "Nimzo-Indian Defense: Sämisch Variation, O'Kelly Variation", "rnbqk2rp2p1ppp1p2pn22p52PP4P1P1P35PPPR1BQKBNR w KQkq")); + openings.add(new Opening("E27", "Nimzo-Indian Defense: Sämisch Variation", "rnbq1rk1pppp1ppp4pn282PP4P1P54PPPPR1BQKBNR w KQ")); + openings.add(new Opening("E28", "Nimzo-Indian Defense: Sämisch Variation", "rnbq1rk1pppp1ppp4pn282PP4P1P1P35PPPR1BQKBNR b KQ")); + openings.add(new Opening("E29", "Nimzo-Indian Defense: Sämisch Variation", "r1bq1rk1pp1p1ppp2n1pn22p52PP4P1PBP35PPPR1BQK1NR w KQ")); + openings.add(new Opening("E29", "Nimzo-Indian Defense: Sämisch Variation, Capablanca Variation", "r1bqnrk1p2p1ppp1pn1p32p52PPP3P1PB44NPPPR1BQK2R w KQ")); + openings.add(new Opening("E30", "Nimzo-Indian Defense: Leningrad Variation", "rnbqk2rpppp1ppp4pn26B11bPP42N5PP2PPPPR2QKBNR b KQkq")); + openings.add(new Opening("E30", "Nimzo-Indian Defense: Leningrad Variation, Averbakh Gambit", "rnbqk2rp2p1pp14pn1p1ppP41bP4B2N5PP2PPPPR2QKBNR w KQkq")); + openings.add(new Opening("E31", "Nimzo-Indian Defense: Leningrad Variation, Benoni Defense", "rnbqk2rpp3pp13ppn1p2pP41bP4B2N5PP2PPPPR2QKBNR w KQkq")); + openings.add(new Opening("E32", "Nimzo-Indian Defense: Classical Variation", "rnbqk2rpppp1ppp4pn281bPP42N5PPQ1PPPPR1B1KBNR b KQkq")); + openings.add(new Opening("E32", "Nimzo-Indian Defense: Classical Variation, Keres Defense", "rnbq1rk1p1pp1ppp1p2pn282PP4P1Q51P2PPPPR1B1KBNR w KQ")); + openings.add(new Opening("E32", "Nimzo-Indian Defense: Classical Variation, Vitolins-Adorjan Gambit", "rnbq1rk1p1pp1ppp4pn21p62PP4P1Q51P2PPPPR1B1KBNR w KQ")); + openings.add(new Opening("E33", "Nimzo-Indian Defense: Classical Variation, Milner-Barry Variation", "r1bqk2rppp2ppp2nppn281bPP42N2N2PPQ1PPPPR1B1KB1R w KQkq")); + openings.add(new Opening("E33", "Nimzo-Indian Defense: Classical Variation, Zurich Variation", "r1bqk2rpppp1ppp2n1pn281bPP42N5PPQ1PPPPR1B1KBNR w KQkq")); + openings.add(new Opening("E34", "Nimzo-Indian Defense: Classical Variation, Belyavsky Gambit", "rnb1k2rppp2ppp5n24pq21b1P42N2N2PP2PPPPR1BQKB1R w KQkq")); + openings.add(new Opening("E34", "Nimzo-Indian Defense: Classical Variation, Noa Variation", "rnbqk2rppp2ppp4pn23p41bPP42N5PPQ1PPPPR1B1KBNR w KQkq")); + openings.add(new Opening("E35", "Nimzo-Indian Defense: Classical, Noa Variation, 5. cxd5 exd5", "rnbqk2rppp2ppp5n23p41b1P42N5PPQ1PPPPR1B1KBNR w KQkq")); + openings.add(new Opening("E36", "Nimzo-Indian Defense: Classical Variation, Noa Variation", "rnbqk2rppp2ppp4pn23p41bPP4P1N51PQ1PPPPR1B1KBNR b KQkq")); + openings.add(new Opening("E36", "Nimzo-Indian Defense: Classical Variation, Noa Variation, Botvinnik Variation", "r1bqk2rppp2ppp2n1pn23p42PP4P1Q51P2PPPPR1B1KBNR w KQkq")); + openings.add(new Opening("E36", "Nimzo-Indian Defense: Classical, Noa Variation, Main Line", "rnbqk2rppp2ppp4p33p42PPn3P1Q51P2PPPPR1B1KBNR w KQkq")); + openings.add(new Opening("E37", "Nimzo-Indian Defense: Classical Variation, Noa Variation", "rnbqk2rppp2ppp4p33p42PPn3P71PQ1PPPPR1B1KBNR b KQkq")); + openings.add(new Opening("E37", "Nimzo-Indian Defense: Classical Variation, Noa Variation, San Remo Variation", "r1bqk2rppp2ppp2n53pp32PPn3P3P31PQ2PPPR1B1KBNR w KQkq")); + openings.add(new Opening("E38", "Nimzo-Indian Defense: Classical Variation, Berlin Variation", "rnbqk2rpp1p1ppp4pn22p51bPP42N5PPQ1PPPPR1B1KBNR w KQkq")); + openings.add(new Opening("E39", "Nimzo-Indian Defense: Classical Variation, Berlin Variation, Macieja System", "rnbq1rk1p2p1ppp1p2pn22b52P2B2P1N2N21PQ1PPPPR3KB1R b KQ")); + openings.add(new Opening("E39", "Nimzo-Indian Defense: Classical Variation, Berlin Variation, Pirc Variation", "rnbq1rk1pp1p1ppp4pn22P51bP52N5PPQ1PPPPR1B1KBNR w KQ")); + openings.add(new Opening("E39", "Nimzo-Indian Defense: Classical Variation, Berlin Variation, Steiner Variation", "rnbqk2rpp1p1ppp4pn22P52P52b5PPQ1PPPPR1B1KBNR w KQkq")); + openings.add(new Opening("E40", "Nimzo-Indian Defense: Normal Line", "rnbqk2rpppp1ppp4pn281bPP42N1P3PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("E40", "Nimzo-Indian Defense: Normal Variation, Taimanov Variation", "r1bqk2rpppp1ppp2n1pn281bPP42N1P3PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("E41", "Nimzo-Indian Defense: Hübner Variation", "rnbqk2rpp1p1ppp4pn22p51bPP42N1P3PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("E41", "Nimzo-Indian Defense: Hübner Variation, Main Line", "r1bqk2rpp3ppp2nppn22p52PP42PBPN2P4PPPR1BQK2R w KQkq")); + openings.add(new Opening("E42", "Nimzo-Indian Defense: Hübner Variation, Rubinstein Variation", "rnbqk2rpp1p1ppp4pn22p51bPP42N1P3PP2NPPPR1BQKB1R b KQkq")); + openings.add(new Opening("E42", "Nimzo-Indian Defense: Hübner Variation, Rubinstein Variation, Main Line", "rnbq1rk1pp1p1ppp4pn281bPP4P1N51P2NPPPR1BQKB1R b KQ")); + openings.add(new Opening("E42", "Nimzo-Indian Defense: Hübner Variation, Rubinstein Variation, Sherbakov Attack", "rnbq1rk1pp1p1ppp4pn22P51b1P42N5PP2NPPPR1BQKB1R b KQ")); + openings.add(new Opening("E43", "Nimzo-Indian Defense: St. Petersburg Variation", "rnbqk2rp1pp1ppp1p2pn281bPP42N1P3PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("E44", "Nimzo-Indian Defense: Fischer Variation", "rnbqk2rp1pp1ppp1p2pn281bPP42N1P3PP2NPPPR1BQKB1R b KQkq")); + openings.add(new Opening("E45", "Nimzo-Indian Defense: Normal Variation, Bronstein (Byrne) Variation", "rn1qk2rp1pp1pppbp2pn281bPP42N1P3PP2NPPPR1BQKB1R w KQkq")); + openings.add(new Opening("E46", "Nimzo-Indian Defense: Normal Variation", "rnbq1rk1pppp1ppp4pn281bPP42N1P3PP3PPPR1BQKBNR w KQ")); + openings.add(new Opening("E46", "Nimzo-Indian Defense: Ragozin Defense", "r1bq1rk1ppp2ppp2n1pn23p41bPP42NBPN2PP3PPPR1BQ1RK1 b -")); + openings.add(new Opening("E46", "Nimzo-Indian Defense: Reshevsky Variation", "rnbq1rk1pppp1ppp4pn281bPP42N1P3PP2NPPPR1BQKB1R b KQ")); + openings.add(new Opening("E46", "Nimzo-Indian Defense: Simagin Variation", "rnbq1rk1ppp2ppp3bpn23p42PP4P1N1P31P2NPPPR1BQKB1R w KQ")); + openings.add(new Opening("E47", "Nimzo-Indian Defense: Normal Variation, Bishop Attack", "rnbq1rk1pppp1ppp4pn281bPP42NBP3PP3PPPR1BQK1NR b KQ")); + openings.add(new Opening("E48", "Nimzo-Indian Defense: Normal Variation, Bishop Attack, Classical Defense", "rnbq1rk1ppp2ppp4pn23p41bPP42NBP3PP3PPPR1BQK1NR w KQ")); + openings.add(new Opening("E49", "Nimzo-Indian Defense: Normal Variation, Botvinnik System", "rnbq1rk1ppp2ppp4pn23p42PP4P1PBP35PPPR1BQK1NR b KQ")); + openings.add(new Opening("E50", "Nimzo-Indian Defense: 4. e3 O-O 5. Nf3, without ... d5", "rnbq1rk1pppp1ppp4pn281bPP42N1PN2PP3PPPR1BQKB1R b KQ")); + openings.add(new Opening("E50", "Nimzo-Indian Defense: Normal Variation, Hübner Deferred", "rnbq1rk1pp1p1ppp4pn22p51bPP42N1PN2PP3PPPR1BQKB1R w KQ")); + openings.add(new Opening("E51", "Nimzo-Indian Defense: 4. e3, Ragozin Variation", "r1bq1rk1ppp2ppp2n1pn281bpP42NBPN2PP3PPPR1BQ1RK1 w -")); + openings.add(new Opening("E51", "Nimzo-Indian Defense: Normal Variation, Ragozin Variation", "rnbq1rk1ppp2ppp4pn23p41bPP42N1PN2PP3PPPR1BQKB1R w KQ")); + openings.add(new Opening("E51", "Nimzo-Indian Defense: Normal Variation, Sämisch Deferred", "rnbq1rk1ppp2ppp4pn23p41bPP4P1N1PN21P3PPPR1BQKB1R b KQ")); + openings.add(new Opening("E52", "Nimzo-Indian Defense: Normal Variation, Schlechter Defense", "rnbq1rk1p1p2ppp1p2pn23p41bPP42NBPN2PP3PPPR1BQK2R w KQ")); + openings.add(new Opening("E53", "Nimzo-Indian Defense: Normal Variation, Gligoric System", "rnbq1rk1pp3ppp4pn22pp41bPP42NBPN2PP3PPPR1BQK2R w KQ")); + openings.add(new Opening("E53", "Nimzo-Indian Defense: Normal Variation, Gligoric System", "r1bq1rk1pp1n1ppp4pn22pp41bPP42NBPN2PP3PPPR1BQ1RK1 w -")); + openings.add(new Opening("E53", "Nimzo-Indian Defense: Normal Variation, Gligoric System, Keres Variation", "rnbq1rk1p4ppp1p2pn22pp41bPP42NBPN2PP3PPPR1BQ1RK1 w -")); + openings.add(new Opening("E54", "Nimzo-Indian Defense: Normal Variation, Gligoric System, Exchange at c4", "rnbq1rk1pp3ppp4pn22p51bBP42N1PN2PP3PPPR1BQ1RK1 b -")); + openings.add(new Opening("E54", "Nimzo-Indian Defense: Normal Variation, Gligoric System, Smyslov Variation", "rnb2rk1pp2qppp4pn22p51bBP42N1PN2PP3PPPR1BQ1RK1 w -")); + openings.add(new Opening("E54", "Nimzo-Indian Defense: Panov Attack, Main Line", "rnbqk2rpp3ppp4pn23p41bPP42N2N2PP3PPPR1BQKB1R w KQkq")); + openings.add(new Opening("E55", "Nimzo-Indian Defense: Normal Variation, Gligoric System, Bronstein Variation", "r1bq1rk1pp1n1ppp4pn22p51bBP42N1PN2PP3PPPR1BQ1RK1 w -")); + openings.add(new Opening("E56", "Nimzo-Indian Defense: Normal Variation, Gligoric System, Bernstein Defense", "r1bq1rk1pp3ppp2n1pn22pp41bPP42NBPN2PP3PPPR1BQ1RK1 w -")); + openings.add(new Opening("E57", "Nimzo-Indian Defense: 4. e3, Main Line, with 8... dxc4 and 9... cxd4", "r1bq1rk1pp3ppp2n1pn281bBp4P1N1PN21P3PPPR1BQ1RK1 w -")); + openings.add(new Opening("E57", "Nimzo-Indian Defense: Normal Variation, Bernstein Defense, Exchange Line", "r1bq1rk1pp3ppp2n1pn22pp42PP4P1PBPN25PPPR1BQ1RK1 b -")); + openings.add(new Opening("E59", "Nimzo-Indian Defense: Normal Variation, Bernstein Defense", "r1bq1rk1pp3ppp2n1pn22p52BP4P1P1PN25PPPR1BQ1RK1 b -")); + openings.add(new Opening("E60", "Grünfeld Defense: Counterthrust Variation", "rnbqk2rppp1ppbp5np13p42PP46P1PP2PPBPRNBQK1NR w KQkq")); + openings.add(new Opening("E60", "Indian Game: Anti-Grünfeld, Adorjan Gambit", "rnbqkb1rp1pppp1p5np11p1P42P58PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("E60", "Indian Game: Anti-Grünfeld, Advance Variation", "rnbqkb1rpppppp1p5np13P42P58PP2PPPPRNBQKBNR b KQkq")); + openings.add(new Opening("E60", "King's Indian Defense: Fianchetto Variation, Immediate Fianchetto", "rnbqkb1rpppppp1p5np182PP46P1PP2PP1PRNBQKBNR b KQkq")); + openings.add(new Opening("E60", "King's Indian Defense: Normal Variation, King's Knight Variation", "rnbqkb1rpppppp1p5np182PP45N2PP2PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("E60", "King's Indian Defense: Santasiere Variation", "rnbqk2rppppppbp5np181PPP45N2P3PPPPRNBQKB1R b KQkq")); + openings.add(new Opening("E60", "Queen's Pawn, Mengarini Attack", "rnbqkb1rpppppp1p5np182PP48PPQ1PPPPRNB1KBNR b KQkq")); + openings.add(new Opening("E61", "Indian Game: West Indian Defense", "rnbqkb1rpppppp1p5np182PP48PP2PPPPRNBQKBNR w KQkq")); + openings.add(new Opening("E61", "King's Indian Defense", "rnbqk2rppppppbp5np182PP42N5PP2PPPPR1BQKBNR w KQkq")); + openings.add(new Opening("E61", "King's Indian Defense: 3. Nc3", "rnbqkb1rpppppp1p5np182PP42N5PP2PPPPR1BQKBNR b KQkq")); + openings.add(new Opening("E61", "King's Indian Defense: Fianchetto Variation, Benjamin Defense", "rnb2rk1pp2ppbp1qpp1np182PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("E61", "King's Indian Defense: Semi-Classical Variation", "rnbq1rk1ppp1ppbp3p1np182PP42N1PN2PP2BPPPR1BQK2R b KQ")); + openings.add(new Opening("E61", "King's Indian Defense: Semi-Classical Variation, Benoni Variation", "rnbq1rk1pp2ppbp2pp1np182PP42N1PN2PP2BPPPR1BQK2R w KQ")); + openings.add(new Opening("E61", "King's Indian Defense: Semi-Classical Variation, Exchange Variation", "r1bq1rk1pppn1pbp5np14p32P52N1PN2PP2BPPPR1BQ1RK1 w -")); + openings.add(new Opening("E61", "King's Indian Defense: Semi-Classical Variation, Hollywood Variation", "r1bq1rk1ppp1ppbp2np1np182PP42N1PN2PP2BPPPR1BQK2R w KQ")); + openings.add(new Opening("E61", "King's Indian Defense: Semi-Classical Variation, Queenside Storm Line", "r1bq1rk1pppn1pbp3p1np14p31PPP42N1PN2P3BPPPR1BQ1RK1 b -")); + openings.add(new Opening("E61", "King's Indian Defense: Smyslov Variation", "rnbqk2rppp1ppbp3p1np16B12PP42N2N2PP2PPPPR2QKB1R b KQkq")); + openings.add(new Opening("E62", "King's Indian Defense: Fianchetto Variation, Delayed Fianchetto", "rnbqk2rppp1ppbp3p1np182PP42N2NP1PP2PP1PR1BQKB1R b KQkq")); + openings.add(new Opening("E62", "King's Indian Defense: Fianchetto Variation, Karlsbad Variation", "r1bq1rk1ppp1ppbp2np1np182PP42N2NP1PP2PPBPR1BQK2R w KQ")); + openings.add(new Opening("E62", "King's Indian Defense: Fianchetto Variation, Kavalek Defense", "rnb2rk1pp2ppbp2pp1np1q72PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("E62", "King's Indian Defense: Fianchetto Variation, Larsen Defense", "rn1q1rk1pp2ppbp2pp1np15b22PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("E62", "King's Indian Defense: Fianchetto Variation, Lesser Simagin (Spassky)", "r2q1rk1ppp1ppbp2np1np15b22PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("E62", "King's Indian Defense: Fianchetto Variation, Simagin Variation", "r2q1rk1ppp1ppbp2np1np182PP2b12N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("E62", "King's Indian Defense: Fianchetto Variation, Uhlmann-Szabo System", "r1bq1rk1ppp2pbp2np1np14p32PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("E63", "King's Indian Defense: Fianchetto Variation, Panno Variation", "r1bq1rk11pp1ppbpp1np1np182PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("E63", "King's Indian Defense: Fianchetto Variation, Panno Variation, Blockade Line", "r1bq1rk11p3pbpp2p1np1n1pPp32P52N3P1PPQNPPBPR1B2RK1 w -")); + openings.add(new Opening("E63", "King's Indian Defense: Fianchetto Variation, Panno Variation, Donner Line", "1rbq1rk14pp1pp2p1npbn1pP42P52N3P1PBQNPPBPR4RK1 w -")); + openings.add(new Opening("E63", "King's Indian Defense: Fianchetto Variation, Panno Variation, Korchnoi Line", "1rbq1rk12p1ppbpp1np1np11p62PP42N1B1PPPP1NPPB1R2Q1RK1 b -")); + openings.add(new Opening("E64", "King's Indian Defense: Fianchetto Variation, Double Fianchetto Attack", "r1bq1rk1pppn1pbp3p1np14p32PP41PN2NP1P3PPBPR1BQ1RK1 b -")); + openings.add(new Opening("E64", "King's Indian Defense: Fianchetto Variation, Hungarian Variation", "r1bq1rk11ppnppbpp2p1np182PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("E64", "King's Indian Defense: Fianchetto Variation, Pterodactyl Variation", "rnb1k2rpp1pppbp5np1q1p52PP45NP1PP2PPBPRNBQK2R w KQkq")); + openings.add(new Opening("E64", "King's Indian Defense: Fianchetto Variation, Yugoslav System, without Nc3", "rnbq1rk1pp2ppbp3p1np12p52PP45NP1PP2PPBPRNBQ1RK1 w -")); + openings.add(new Opening("E64", "King's Indian Defense: Fianchetto Variation, Yugoslav Variation, Rare Line", "rnbq1rk1pp2ppbp3p1np12p52PP42N2NP1PP2PPBPR1BQK2R w KQ")); + openings.add(new Opening("E65", "King's Indian Defense: Fianchetto Variation, Yugoslav Variation", "rnbq1rk1pp2ppbp3p1np12p52PP42N2NP1PP2PPBPR1BQ1RK1 b -")); + openings.add(new Opening("E66", "King's Indian Defense: Fianchetto Variation, Yugoslav Variation, Advance Line", "r1bq1rk1pp2ppbp2np1np12pP42P52N2NP1PP2PPBPR1BQ1RK1 b -")); + openings.add(new Opening("E66", "King's Indian Defense: Fianchetto Variation, Yugoslav Variation, Exchange Line", "r1bq1rk1pp2ppbp2n2np12p52P52N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("E67", "King's Indian Defense: Fianchetto Variation, Classical Fianchetto", "r1bq1rk1pppn1pbp3p1np14p32PP42N2NP1PP2PPBPR1BQ1RK1 w -")); + openings.add(new Opening("E67", "King's Indian Defense: Fianchetto Variation, Debrecen Defense", "r1bq1rk1pppnppbp3p1np182PP42N2NP1PP2PPBPR1BQK2R w KQ")); + openings.add(new Opening("E68", "King's Indian Defense: Fianchetto Variation, Long Variation", "r1bqr1k11pp2pbp3p1np1p1n52PNP32N3PPPP3PB1R1BQR1K1 w -")); + openings.add(new Opening("E68", "King's Indian, Fianchetto, Classical Variation, 8. e4", "r1bq1rk1pppn1pbp3p1np14p32PPP32N2NP1PP3PBPR1BQ1RK1 b -")); + openings.add(new Opening("E69", "King's Indian Defense: Fianchetto Variation, Classical Main Line", "r1bq1rk1pp1n1pbp2pp1np14p32PPP32N2NPPPP3PB1R1BQ1RK1 b -")); + openings.add(new Opening("E70", "King's Indian Defense: Accelerated Averbakh Variation", "rnbqk2rppp1ppbp3p1np16B12PPP32N5PP3PPPR2QKBNR b KQkq")); + openings.add(new Opening("E70", "King's Indian Defense: Kramer Variation", "rnbqk2rppp1ppbp3p1np182PPP32N5PP2NPPPR1BQKB1R b KQkq")); + openings.add(new Opening("E70", "King's Indian Defense: Normal Variation", "rnbqk2rppppppbp5np182PPP32N5PP3PPPR1BQKBNR b KQkq")); + openings.add(new Opening("E77", "King's Indian Defense: Normal Variation", "rnbqk2rppp1ppbp3p1np182PPP32N5PP3PPPR1BQKBNR w KQkq")); + openings.add(new Opening("E71", "King's Indian Defense: Makogonov Variation", "rnbqk2rppp1ppbp3p1np182PPP32N4PPP3PP1R1BQKBNR b KQkq")); + openings.add(new Opening("E72", "King's Indian Defense: Normal Variation, Deferred Fianchetto", "rnbqk2rppp1ppbp3p1np182PPP32N3P1PP3P1PR1BQKBNR b KQkq")); + openings.add(new Opening("E72", "King's Indian Defense: Pomar System", "rnbq1rk1ppp2pbp3p1np14p32PPP32N3P1PP2NPBPR1BQK2R b KQ")); + openings.add(new Opening("E73", "King's Indian Defense: Averbakh Variation", "rnbq1rk1ppp1ppbp3p1np16B12PPP32N5PP2BPPPR2QK1NR b KQ")); + openings.add(new Opening("E73", "King's Indian Defense: Averbakh Variation, Flexible Defense", "rnbq1rk1ppp1ppb13p1npp6B12PPP32N5PP2BPPPR2QK1NR w KQ")); + openings.add(new Opening("E73", "King's Indian Defense: Averbakh Variation, Geller Defense", "r1bq1rk1pppnppbp3p1np16B12PPP32N5PP2BPPPR2QK1NR w KQ")); + openings.add(new Opening("E73", "King's Indian Defense: Averbakh Variation, Modern Defense", "r1bq1rk1ppp1ppbpn2p1np16B12PPP32N5PP2BPPPR2QK1NR w KQ")); + openings.add(new Opening("E73", "King's Indian Defense: Averbakh Variation, Modern Defense, Burgess Line", "r1bq1rk1pp2ppbpn1pp1np16B12PPP32N5PP1QBPPPR3K1NR w KQ")); + openings.add(new Opening("E73", "King's Indian Defense: Averbakh Variation, Nc6 Defense", "r1bq1rk1ppp1ppbp2np1np16B12PPP32N5PP2BPPPR2QK1NR w KQ")); + openings.add(new Opening("E73", "King's Indian Defense: Averbakh Variation, Spanish Defense", "rnbq1rk11pp1ppbpp2p1np16B12PPP32N5PP2BPPPR2QK1NR w KQ")); + openings.add(new Opening("E73", "King's Indian Defense: Normal Variation, Standard Development", "rnbqk2rppp1ppbp3p1np182PPP32N5PP2BPPPR1BQK1NR b KQkq")); + openings.add(new Opening("E73", "King's Indian Defense: Semi-Averbakh System", "rnbq1rk1ppp1ppbp3p1np182PPP32N1B3PP2BPPPR2QK1NR b KQ")); + openings.add(new Opening("E74", "King's Indian Defense: Averbakh Variation, Benoni Defense", "rnbq1rk1pp2ppbp3p1np12p3B12PPP32N5PP2BPPPR2QK1NR w KQ")); + openings.add(new Opening("E74", "King's Indian Defense: Averbakh Variation, Benoni Defense, Exchange Variation", "rnbq1rk1pp2ppbp3p1np12P3B12P1P32N5PP2BPPPR2QK1NR b KQ")); + openings.add(new Opening("E75", "King's Indian Defense: Averbakh Variation, Benoni Defense, Advance Variation", "rnbq1rk1pp2ppbp3p1np12pP2B12P1P32N5PP2BPPPR2QK1NR b KQ")); + openings.add(new Opening("E75", "King's Indian, Averbakh, Main Line", "rnbq1rk1pp3pbp3ppnp12pP2B12P1P32N5PP2BPPPR2QK1NR w KQ")); + openings.add(new Opening("E76", "King's Indian Defense: Four Pawns Attack", "rnbqk2rppp1ppbp3p1np182PPPP22N5PP4PPR1BQKBNR b KQkq")); + openings.add(new Opening("E76", "King's Indian Defense: Four Pawns Attack, Dynamic Attack", "rnbq1rk1pp2ppbp3p1np12pP42P1PP22N2N2PP4PPR1BQKB1R b KQ")); + openings.add(new Opening("E76", "King's Indian Defense: Four Pawns Attack, Modern Defense", "r1bqk2rppp1ppbpn2p1np182PPPP22N5PP4PPR1BQKBNR w KQkq")); + openings.add(new Opening("E76", "King's Indian Defense: Steiner Attack", "rnbq1rk1ppp1ppbp3p1np16B12PPP32N2P2PP4PPR2QKBNR b KQ")); + openings.add(new Opening("E77", "King's Indian Defense: Four Pawns Attack", "rnbq1rk1ppp1ppbp3p1np182PPPP22N5PP2B1PPR1BQK1NR b KQ")); + openings.add(new Opening("E77", "King's Indian Defense: Four Pawns Attack, Florentine Gambit", "rnbq1rk1pp3pbp3p1np12ppP32P2P22N2N2PP2B1PPR1BQK2R b KQ")); + openings.add(new Opening("E77", "King's Indian Defense: Four Pawns Attack, Normal Attack", "rnbq1rk1pp3pbp3ppnp12pP42P1PP22N2N2PP2B1PPR1BQK2R b KQ")); + openings.add(new Opening("E77", "King's Indian, Six Pawns Attack", "r1bq1rk1pp4bp2nppnp12p52P1PPPP2N5PP2B3R1BQK1NR b KQ")); + openings.add(new Opening("E78", "King's Indian Defense: Four Pawns Attack, Fluid Attack", "rnbq1rk1pp2ppbp3p1np12p52PPPP22N2N2PP2B1PPR1BQK2R b KQ")); + openings.add(new Opening("E79", "King's Indian Defense: Four Pawns Attack, Exchange Variation", "r1bq1rk1pp2ppbp2np1np182PNPP22N1B3PP2B1PPR2QK2R b KQ")); + openings.add(new Opening("E80", "King's Indian Defense: Sämisch Variation", "rnbqk2rppp1ppbp3p1np182PPP32N2P2PP4PPR1BQKBNR b KQkq")); + openings.add(new Opening("E81", "King's Indian Defense: Sämisch Variation, Bobotsov-Korchnoi-Petrosian Variation", "rnbq1rk1ppp1ppbp3p1np182PPP32N2P2PP2N1PPR1BQKB1R b KQ")); + openings.add(new Opening("E81", "King's Indian Defense: Sämisch Variation, Byrne Defense", "rnbq1rk11p2ppbpp1pp1np182PPP32NBBP2PP4PPR2QK1NR w KQ")); + openings.add(new Opening("E81", "King's Indian Defense: Sämisch Variation, Normal Defense", "rnbq1rk1ppp1ppbp3p1np182PPP32N2P2PP4PPR1BQKBNR w KQ")); + openings.add(new Opening("E82", "King's Indian Defense: Sämisch Variation, Double Fianchetto", "rnbq1rk1p1p1ppbp1p1p1np182PPP32N1BP2PP4PPR2QKBNR w KQ")); + openings.add(new Opening("E83", "King's Indian Defense: Sämisch Variation, Panno Formation", "r1bq1rk11pp1ppbpp1np1np182PPP32N1BP2PP2N1PPR2QKB1R w KQ")); + openings.add(new Opening("E83", "King's Indian Defense: Sämisch Variation, Yates Defense", "r1bq1rk1ppp1ppbp2np1np182PPP32N1BP2PP4PPR2QKBNR w KQ")); + openings.add(new Opening("E83", "King's Indian, Sämisch, Ruban Variation", "1rbq1rk1ppp1ppbp2np1np182PPP32N1BP2PP2N1PPR2QKB1R w KQ")); + openings.add(new Opening("E84", "King's Indian, Sämisch, Panno Main Line", "1rbq1rk11pp1ppbpp1np1np182PPP32N1BP2PP1QN1PPR3KB1R w KQ")); + openings.add(new Opening("E85", "King's Indian Defense: Sämisch Variation, Orthodox Variation", "rnbq1rk1ppp2pbp3p1np14p32PPP32N1BP2PP4PPR2QKBNR w KQ")); + openings.add(new Opening("E86", "King's Indian Defense: Sämisch Variation", "rnbq1rk1pp3pbp2pp1np14p32PPP32N1BP2PP2N1PPR2QKB1R w KQ")); + openings.add(new Opening("E87", "King's Indian Defense: Sämisch Variation, Bronstein Defense", "rnb2rk1ppp2pbp3p2p13Pp32P1P2Q2N1nP2PP2K2PR5NR b -")); + openings.add(new Opening("E87", "King's Indian Defense: Sämisch Variation, Closed Variation", "rnbq1rk1ppp2pbp3p1np13Pp32P1P32N1BP2PP4PPR2QKBNR b KQ")); + openings.add(new Opening("E87", "King's Indian, Sämisch, Orthodox, Bronstein Variation", "rnb2rk1ppp2pbp3p2p13Pp32n1P2Q2N2P2PP2K2PR5NR w -")); + openings.add(new Opening("E88", "King's Indian Defense: Sämisch Variation, Closed Variation, 7... c6", "rnbq1rk1pp3pbp2pp1np13Pp32P1P32N1BP2PP4PPR2QKBNR w KQ")); + openings.add(new Opening("E89", "King's Indian Defense: Sämisch Variation, Closed Variation, Main Line", "rnbq1rk1pp3pbp3p1np13pp32P1P32N1BP2PP2N1PPR2QKB1R w KQ")); + openings.add(new Opening("E90", "King's Indian Defense: Larsen Variation", "rnbq1rk1ppp1ppbp3p1np182PPP32N1BN2PP3PPPR2QKB1R b KQ")); + openings.add(new Opening("E90", "King's Indian Defense: Normal Variation, Rare Defenses", "rnbqk2rppp1ppbp3p1np182PPP32N2N2PP3PPPR1BQKB1R b KQkq")); + openings.add(new Opening("E90", "King's Indian Defense: Zinnowitz Variation", "rnbq1rk1ppp1ppbp3p1np16B12PPP32N2N2PP3PPPR2QKB1R b KQ")); + openings.add(new Opening("E91", "King's Indian Defense: Kazakh Variation", "r1bq1rk1ppp1ppbpn2p1np182PPP32N2N2PP2BPPPR1BQK2R w KQ")); + openings.add(new Opening("E91", "King's Indian Defense: Orthodox Variation", "rnbq1rk1ppp1ppbp3p1np182PPP32N2N2PP2BPPPR1BQK2R b KQ")); + openings.add(new Opening("E92", "King's Indian Defense: Exchange Variation", "rnbq1rk1ppp2pbp3p1np14P32P1P32N2N2PP2BPPPR1BQK2R b KQ")); + openings.add(new Opening("E92", "King's Indian Defense: Orthodox Variation", "rnbq1rk1ppp2pbp3p1np14p32PPP32N2N2PP2BPPPR1BQK2R w KQ")); + openings.add(new Opening("E92", "King's Indian Defense: Orthodox Variation, Gligoric-Taimanov System", "rnbq1rk1ppp2pbp3p1np14p32PPP32N1BN2PP2BPPPR2QK2R b KQ")); + openings.add(new Opening("E92", "King's Indian Defense: Petrosian Variation", "rnbq1rk1ppp2pbp3p1np13Pp32P1P32N2N2PP2BPPPR1BQK2R b KQ")); + openings.add(new Opening("E92", "King's Indian Defense: Petrosian Variation, Stein Defense", "rnbq1rk11pp2pbp3p1np1p2Pp32P1P32N2N2PP2BPPPR1BQK2R w KQ")); + openings.add(new Opening("E93", "King's Indian Defense: Petrosian Variation, Keres Defense", "r1bq1rk1pppn1pb13p3p3Pp1pn2P1P2P2N2NB1PP2BPP1R2QK2R b KQ")); + openings.add(new Opening("E93", "King's Indian Defense: Petrosian Variation, Normal Defense", "r1bq1rk1pppn1pbp3p1np13Pp32P1P32N2N2PP2BPPPR1BQK2R w KQ")); + openings.add(new Opening("E94", "King's Indian Defense: Orthodox Variation", "rnbq1rk1ppp2pbp3p1np14p32PPP32N2N2PP2BPPPR1BQ1RK1 b -")); + openings.add(new Opening("E94", "King's Indian Defense: Orthodox Variation, Donner Defense", "rnbq1rk1pp3pbp2pp1np14p32PPP32N2N2PP2BPPPR1BQ1RK1 w -")); + openings.add(new Opening("E94", "King's Indian Defense: Orthodox Variation, Glek Defense", "r1bq1rk1ppp2pbpn2p1np14p32PPP32N2N2PP2BPPPR1BQ1RK1 w -")); + openings.add(new Opening("E94", "King's Indian Defense: Orthodox Variation, Positional Defense", "r1bq1rk1pppn1pbp3p1np14p32PPP32N2N2PP2BPPPR1BQ1RK1 w -")); + openings.add(new Opening("E94", "King's Indian Defense: Orthodox Variation, Positional Defense, Closed Line", "r1bq1rk1pppn1pbp3p1np13Pp32P1P32N2N2PP2BPPPR1BQ1RK1 b -")); + openings.add(new Opening("E94", "King's Indian Defense: Orthodox Variation, Ukrainian Defense", "rnbq1rk11pp2pbp3p1np1p3p32PPP32N2N2PP2BPPPR1BQ1RK1 w -")); + openings.add(new Opening("E95", "King's Indian, Orthodox, 7... Nbd7 8. Re1", "r1bq1rk1pppn1pbp3p1np14p32PPP32N2N2PP2BPPPR1BQR1K1 b -")); + openings.add(new Opening("E96", "King's Indian Defense: Orthodox Variation, Positional Defense, Main Line", "r1bq1rk11p1n1pbp2pp1np1p3p32PPP32N2N2PP3PPPR1BQRBK1 w -")); + openings.add(new Opening("E97", "King's Indian Defense: Orthodox Variation, Aronin-Taimanov Defense", "r1bq1rk1ppp2pbp2np1np14p32PPP32N2N2PP2BPPPR1BQ1RK1 w -")); + openings.add(new Opening("E97", "King's Indian Defense: Orthodox Variation, Bayonet Attack", "r1bq1rk1ppp1npbp3p1np13Pp31PP1P32N2N2P3BPPPR1BQ1RK1 b -")); + openings.add(new Opening("E97", "King's Indian Defense: Orthodox Variation, Bayonet Attack, Sokolov's Line", "r1bq1rk1ppp1npbp3p2p13Pp2n1PP1P32N2N2P3BPPPR1BQR1K1 b -")); + openings.add(new Opening("E97", "King's Indian Defense: Orthodox Variation, Bayonet Attack, Yepishin's Line", "r1bq1rk1ppp1npbp3p2p13Pp2n1PP1P32N2N2P1Q1BPPPR1B2RK1 b -")); + openings.add(new Opening("E97", "King's Indian Defense: Orthodox Variation, Korchnoi Attack", "r1bq1rk1ppp1npbp3p1np13Pp32P1P32N2N2PP1BBPPPR2Q1RK1 b -")); + openings.add(new Opening("E97", "King's Indian Defense: Orthodox Variation, Modern System", "r1bq1rk1ppp1npbp3p1np13Pp32P1P32N5PP1NBPPPR1BQ1RK1 b -")); + openings.add(new Opening("E98", "King's Indian Defense: Orthodox Variation, Classical System", "r1bq1rk1ppp1npbp3p1np13Pp32P1P32N5PP2BPPPR1BQNRK1 b -")); + openings.add(new Opening("E99", "King's Indian Defense: Orthodox Variation, Classical System, Benko Attack", "r1bq1rk1pppnn1bp3p2p13Ppp22P1P1P12N2P2PP2B2PR1BQNRK1 b -")); + openings.add(new Opening("E99", "King's Indian Defense: Orthodox Variation, Classical System, Kozul Gambit", "r1bq1rk1pppn2bp3p2n12PPp1p14Pp22N2P2PP2BBPP2RQNRK1 b -")); + openings.add(new Opening("E99", "King's Indian Defense: Orthodox Variation, Classical System, Neo-Classical Line", "r1bq1rk1pppnnpbp3p2p13Pp32P1P32N1B3PP2BPPPR2QNRK1 b -")); + openings.add(new Opening("E99", "King's Indian Defense: Orthodox Variation, Classical System, Traditional Line", "r1bq1rk1pppnn1bp3p2p13Ppp22P1P32N2P2PP2B1PPR1BQNRK1 w -")); + return openings; + } +}