# Data taken from
# https://en.wikipedia.org/wiki/Electron_configurations_of_the_elements_(data_page)
const table_of_elements = [:H => ("hydrogen", c"1s1"),
                           :He => ("helium", c"1s2"),
                           :Li => ("lithium", c"[He]* 2s1"),
                           :Be => ("beryllium", c"[He]* 2s2"),
                           :B => ("boron", c"[He]* 2s2 2p1"),
                           :C => ("carbon", c"[He]* 2s2 2p2"),
                           :N => ("nitrogen", c"[He]* 2s2 2p3"),
                           :O => ("oxygen", c"[He]* 2s2 2p4"),
                           :F => ("fluorine", c"[He]* 2s2 2p5"),
                           :Ne => ("neon", c"[He]* 2s2 2p6"),
                           :Na => ("sodium", c"[Ne]* 3s1"),
                           :Mg => ("magnesium", c"[Ne]* 3s2"),
                           :Al => ("aluminium", c"[Ne]* 3s2 3p1"),
                           :Si => ("silicon", c"[Ne]* 3s2 3p2"),
                           :P => ("phosphorus", c"[Ne]* 3s2 3p3"),
                           :S => ("sulfur", c"[Ne]* 3s2 3p4"),
                           :Cl => ("chlorine", c"[Ne]* 3s2 3p5"),
                           :Ar => ("argon", c"[Ne]* 3s2 3p6"),
                           :K => ("potassium", c"[Ar]* 4s1"),
                           :Ca => ("calcium", c"[Ar]* 4s2"),
                           :Sc => ("scandium", c"[Ar]* 3d1 4s2"),
                           :Ti => ("titanium", c"[Ar]* 3d2 4s2"),
                           :V => ("vanadium", c"[Ar]* 3d3 4s2"),
                           :Cr => ("chromium", c"[Ar]* 3d5 4s1"),
                           :Mn => ("manganese", c"[Ar]* 3d5 4s2"),
                           :Fe => ("iron", c"[Ar]* 3d6 4s2"),
                           :Co => ("cobalt", c"[Ar]* 3d7 4s2"),
                           :Ni => ("nickel", c"[Ar]* 3d8 4s2"), # or [Ar]* 3d9 4s1(disputed - see Nickel article)
                           :Cu => ("copper", c"[Ar]* 3d10 4s1"),
                           :Zn => ("zinc", c"[Ar]* 3d10 4s2"),
                           :Ga => ("gallium", c"[Ar]* 3d10 4s2 4p1"),
                           :Ge => ("germanium", c"[Ar]* 3d10 4s2 4p2"),
                           :As => ("arsenic", c"[Ar]* 3d10 4s2 4p3"),
                           :Se => ("selenium", c"[Ar]* 3d10 4s2 4p4"),
                           :Br => ("bromine", c"[Ar]* 3d10 4s2 4p5"),
                           :Kr => ("krypton", c"[Ar]* 3d10 4s2 4p6"),
                           :Rb => ("rubidium", c"[Kr]* 5s1"),
                           :Sr => ("strontium", c"[Kr]* 5s2"),
                           :Y => ("yttrium", c"[Kr]* 4d1 5s2"),
                           :Zr => ("zirconium", c"[Kr]* 4d2 5s2"),
                           :Nb => ("niobium", c"[Kr]* 4d4 5s1"),
                           :Mo => ("molybdenum", c"[Kr]* 4d5 5s1"),
                           :Tc => ("technetium", c"[Kr]* 4d5 5s2"),
                           :Ru => ("ruthenium", c"[Kr]* 4d7 5s1"),
                           :Rh => ("rhodium", c"[Kr]* 4d8 5s1"),
                           :Pd => ("palladium", c"[Kr]* 4d10"),
                           :Ag => ("silver", c"[Kr]* 4d10 5s1"),
                           :Cd => ("cadmium", c"[Kr]* 4d10 5s2"),
                           :In => ("indium", c"[Kr]* 4d10 5s2 5p1"),
                           :Sn => ("tin", c"[Kr]* 4d10 5s2 5p2"),
                           :Sb => ("antimony", c"[Kr]* 4d10 5s2 5p3"),
                           :Te => ("tellurium", c"[Kr]* 4d10 5s2 5p4"),
                           :I => ("iodine", c"[Kr]* 4d10 5s2 5p5"),
                           :Xe => ("xenon", c"[Kr]* 4d10 5s2 5p6"),
                           :Cs => ("caesium", c"[Xe]* 6s1"),
                           :Ba => ("barium", c"[Xe]* 6s2"),
                           :La => ("lanthanum", c"[Xe]* 5d1 6s2"),
                           :Ce => ("cerium", c"[Xe]* 4f1 5d1 6s2"),
                           :Pr => ("praseodymium", c"[Xe]* 4f3 6s2"),
                           :Nd => ("neodymium", c"[Xe]* 4f4 6s2"),
                           :Pm => ("promethium", c"[Xe]* 4f5 6s2"),
                           :Sm => ("samarium", c"[Xe]* 4f6 6s2"),
                           :Eu => ("europium", c"[Xe]* 4f7 6s2"),
                           :Gd => ("gadolinium", c"[Xe]* 4f7 5d1 6s2"),
                           :Tb => ("terbium", c"[Xe]* 4f9 6s2"),
                           :Dy => ("dysprosium", c"[Xe]* 4f10 6s2"),
                           :Ho => ("holmium", c"[Xe]* 4f11 6s2"),
                           :Er => ("erbium", c"[Xe]* 4f12 6s2"),
                           :Tm => ("thulium", c"[Xe]* 4f13 6s2"),
                           :Yb => ("ytterbium", c"[Xe]* 4f14 6s2"),
                           :Lu => ("lutetium", c"[Xe]* 4f14 5d1 6s2"),
                           :Hf => ("hafnium", c"[Xe]* 4f14 5d2 6s2"),
                           :Ta => ("tantalum", c"[Xe]* 4f14 5d3 6s2"),
                           :W => ("tungsten", c"[Xe]* 4f14 5d4 6s2"),
                           :Re => ("rhenium", c"[Xe]* 4f14 5d5 6s2"),
                           :Os => ("osmium", c"[Xe]* 4f14 5d6 6s2"),
                           :Ir => ("iridium", c"[Xe]* 4f14 5d7 6s2"),
                           :Pt => ("platinum", c"[Xe]* 4f14 5d9 6s1"),
                           :Au => ("gold", c"[Xe]* 4f14 5d10 6s1"),
                           :Hg => ("mercury", c"[Xe]* 4f14 5d10 6s2"),
                           :Tl => ("thallium", c"[Xe]* 4f14 5d10 6s2 6p1"),
                           :Pb => ("lead", c"[Xe]* 4f14 5d10 6s2 6p2"),
                           :Bi => ("bismuth", c"[Xe]* 4f14 5d10 6s2 6p3"),
                           :Po => ("polonium", c"[Xe]* 4f14 5d10 6s2 6p4"),
                           :At => ("astatine", c"[Xe]* 4f14 5d10 6s2 6p5"),
                           :Rn => ("radon", c"[Xe]* 4f14 5d10 6s2 6p6"),
                           :Fr => ("francium", c"[Rn]* 7s1"),
                           :Ra => ("radium", c"[Rn]* 7s2"),
                           :Ac => ("actinium", c"[Rn]* 6d1 7s2"),
                           :Th => ("thorium", c"[Rn]* 6d2 7s2"),
                           :Pa => ("protactinium", c"[Rn]* 5f2 6d1 7s2"),
                           :U => ("uranium", c"[Rn]* 5f3 6d1 7s2"),
                           :Np => ("neptunium", c"[Rn]* 5f4 6d1 7s2"),
                           :Pu => ("plutonium", c"[Rn]* 5f6 7s2"),
                           :Am => ("americium", c"[Rn]* 5f7 7s2"),
                           :Cm => ("curium", c"[Rn]* 5f7 6d1 7s2"),
                           :Bk => ("berkelium", c"[Rn]* 5f9 7s2"),
                           :Cf => ("californium", c"[Rn]* 5f10 7s2"),
                           :Es => ("einsteinium", c"[Rn]* 5f11 7s2"),
                           :Fm => ("fermium", c"[Rn]* 5f12 7s2"),
                           :Md => ("mendelevium", c"[Rn]* 5f13 7s2"),
                           :No => ("nobelium", c"[Rn]* 5f14 7s2"),
                           :Lr => ("lawrencium", c"[Rn]* 5f14 7s2 7p1"),
                           :Rf => ("rutherfordium", c"[Rn]* 5f14 6d2 7s2"),
                           :Db => ("dubnium", c"[Rn]* 5f14 6d3 7s2"),
                           :Sg => ("seaborgium", c"[Rn]* 5f14 6d4 7s2"),
                           :Bh => ("bohrium", c"[Rn]* 5f14 6d5 7s2"),
                           :Hs => ("hassium", c"[Rn]* 5f14 6d6 7s2"),
                           :Mt => ("meitnerium", c"[Rn]* 5f14 6d7 7s2"),
                           :Ds => ("darmstadtium", c"[Rn]* 5f14 6d8 7s2"),
                           :Rg => ("roentgenium", c"[Rn]* 5f14 6d9 7s2"),
                           :Cn => ("copernicium", c"[Rn]* 5f14 6d10 7s2"),
                           :Nh => ("nihonium", c"[Rn]* 5f14 6d10 7s2 7p1"),
                           :Fl => ("flerovium", c"[Rn]* 5f14 6d10 7s2 7p2"),
                           :Mc => ("moscovium", c"[Rn]* 5f14 6d10 7s2 7p3"),
                           :Lv => ("livermorium", c"[Rn]* 5f14 6d10 7s2 7p4"),
                           :Ts => ("tennessine", c"[Rn]* 5f14 6d10 7s2 7p5"),
                           :Og => ("oganesson", c"[Rn]* 5f14 6d10 7s2 7p6")]
