text:
_isotopes_data = [
    Isotope(
        "hydrogen",
        "H",
        1,
        1,
        99.9885,
        1.007825031898*u,
        1.4e-11*u,
        1//2,
        5.58569468,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "hydrogen",
        "H",
        1,
        2,
        0.0115,
        2.014101777844*u,
        1.5e-11*u,
        1//1,
        0.8574382,
        0.00286*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "hydrogen",
        "H",
        1,
        3,
        0.0,
        3.01604928132*u,
        8.0e-11*u,
        1//2,
        5.95799369,
        0.0*b,
        true,
        3.8878132832e8*s,
        631138.52*s
    ),
    Isotope(
        "helium",
        "He",
        2,
        3,
        0.000137,
        3.01602932197*u,
        6.0e-11*u,
        1//2,
        -4.25499544,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "helium",
        "He",
        2,
        4,
        99.999863,
        4.00260325413*u,
        1.6e-10*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "lithium",
        "Li",
        3,
        6,
        7.59,
        6.01512288742*u,
        1.55e-9*u,
        1//1,
        0.8220473,
        -0.000806*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "lithium",
        "Li",
        3,
        7,
        92.41,
        7.01600343426*u,
        4.5e-9*u,
        3//2,
        2.170951,
        -0.04*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "beryllium",
        "Be",
        4,
        9,
        100.0,
        9.012183062*u,
        8.2e-8*u,
        3//2,
        -0.78495,
        0.0529*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "boron",
        "B",
        5,
        10,
        19.9,
        10.012936862*u,
        1.6e-8*u,
        3//1,
        0.600215,
        0.0845*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "boron",
        "B",
        5,
        11,
        80.1,
        11.009305166*u,
        1.3e-8*u,
        3//2,
        1.7924326,
        0.04059*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "carbon",
        "C",
        6,
        12,
        98.93,
        12.0*u,
        0.0*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "carbon",
        "C",
        6,
        13,
        1.07,
        13.00335483534*u,
        2.5e-10*u,
        1//2,
        1.4048236,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "carbon",
        "C",
        6,
        14,
        0.0,
        14.00324198862*u,
        4.03e-9*u,
        0//1,
        0.0,
        0.0*b,
        true,
        1.798744782e11*s,
        9.4670778e8*s
    ),
    Isotope(
        "nitrogen",
        "N",
        7,
        14,
        99.632,
        14.00307400425*u,
        2.4e-10*u,
        1//1,
        0.403761,
        0.02044*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "nitrogen",
        "N",
        7,
        15,
        0.368,
        15.00010889827*u,
        6.2e-10*u,
        1//2,
        -0.56637768,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "oxygen",
        "O",
        8,
        16,
        99.757,
        15.99491461926*u,
        3.2e-10*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "oxygen",
        "O",
        8,
        17,
        0.038,
        16.99913175595*u,
        6.9e-10*u,
        5//2,
        -0.757516,
        -0.0256*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "oxygen",
        "O",
        8,
        18,
        0.205,
        17.99915961214*u,
        6.9e-10*u,
        0//1,
        0.0,
        0.0*b,
        true,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "fluorine",
        "F",
        9,
        19,
        100.0,
        18.99840316207*u,
        8.8e-10*u,
        1//2,
        5.257736,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "neon",
        "Ne",
        10,
        20,
        90.48,
        19.99244017525*u,
        1.65e-9*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "neon",
        "Ne",
        10,
        21,
        0.27,
        20.993846685*u,
        4.1e-8*u,
        3//2,
        -0.441198,
        0.102*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "neon",
        "Ne",
        10,
        22,
        9.25,
        21.991385113*u,
        1.8e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "sodium",
        "Na",
        11,
        22,
        0.0,
        21.994437547*u,
        1.41e-7*u,
        3//1,
        0.582,
        0.18*b,
        true,
        8.210796575940001e7*s,
        18934.1556*s
    ),
    Isotope(
        "sodium",
        "Na",
        11,
        23,
        100.0,
        22.98976928195*u,
        1.94e-9*u,
        3//2,
        1.478348,
        0.104*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "magnesium",
        "Mg",
        12,
        24,
        78.99,
        23.985041689*u,
        1.3e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "magnesium",
        "Mg",
        12,
        25,
        10.0,
        24.985836966*u,
        5.0e-8*u,
        5//2,
        -0.34218,
        0.199*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "magnesium",
        "Mg",
        12,
        26,
        11.01,
        25.982592972*u,
        3.1e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "aluminium",
        "Al",
        13,
        27,
        100.0,
        26.981538408*u,
        5.0e-8*u,
        5//2,
        1.4566028,
        0.1466*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "silicon",
        "Si",
        14,
        28,
        92.2297,
        27.97692653442*u,
        5.5e-10*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "silicon",
        "Si",
        14,
        29,
        4.6832,
        28.97649466434*u,
        6.0e-10*u,
        1//2,
        -1.11058,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "silicon",
        "Si",
        14,
        30,
        3.0872,
        29.973770137*u,
        2.3e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "phosphorus",
        "P",
        15,
        31,
        100.0,
        30.97376199768*u,
        8.0e-10*u,
        1//2,
        2.2632,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "sulfur",
        "S",
        16,
        32,
        94.93,
        31.97207117354*u,
        1.41e-9*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "sulfur",
        "S",
        16,
        33,
        0.76,
        32.97145890862*u,
        1.44e-9*u,
        3//2,
        0.429214,
        -0.0678*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "sulfur",
        "S",
        16,
        34,
        4.29,
        33.967867011*u,
        4.7e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "chlorine",
        "Cl",
        17,
        35,
        75.78,
        34.968852694*u,
        3.8e-8*u,
        3//2,
        0.5479162,
        -0.0817*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "sulfur",
        "S",
        16,
        36,
        0.02,
        35.967080692*u,
        2.01e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "chlorine",
        "Cl",
        17,
        36,
        0.0,
        35.968306822*u,
        3.8e-8*u,
        2//1,
        0.642735,
        -0.0178*b,
        true,
        9.5081018038e12*s,
        4.7335389e10*s
    ),
    Isotope(
        "argon",
        "Ar",
        18,
        36,
        0.3365,
        35.967545106*u,
        2.8e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "chlorine",
        "Cl",
        17,
        37,
        24.22,
        36.965902573*u,
        5.5e-8*u,
        3//2,
        0.4560824,
        -0.0644*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "argon",
        "Ar",
        18,
        38,
        0.0632,
        37.962732102*u,
        2.09e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "argon",
        "Ar",
        18,
        39,
        0.0,
        38.964313037*u,
        5.367e-6*u,
        7//2,
        -0.4537,
        -0.12*b,
        true,
        8.457256168e9*s,
        2.52455408e8*s
    ),
    Isotope(
        "potassium",
        "K",
        19,
        39,
        93.2581,
        38.96370648482*u,
        4.89e-9*u,
        3//2,
        0.26098,
        0.0585*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "argon",
        "Ar",
        18,
        40,
        99.6003,
        39.96238312204*u,
        2.34e-9*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "potassium",
        "K",
        19,
        40,
        0.0117,
        39.963998165*u,
        6.0e-8*u,
        4//1,
        -0.324525,
        -0.073*b,
        true,
        3.9383043648e16*s,
        9.4670778e13*s
    ),
    Isotope(
        "calcium",
        "Ca",
        20,
        40,
        96.941,
        39.96259085*u,
        2.2e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        3.124135674e29*s
    ),
    Isotope(
        "potassium",
        "K",
        19,
        41,
        6.7302,
        40.96182525611*u,
        4.03e-9*u,
        3//2,
        0.1432467,
        0.0711*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "calcium",
        "Ca",
        20,
        41,
        0.0,
        40.962277905*u,
        1.47e-7*u,
        7//2,
        -0.4556517,
        -0.0665*b,
        true,
        3.1367584444e12*s,
        4.7335389e10*s
    ),
    Isotope(
        "calcium",
        "Ca",
        20,
        42,
        0.647,
        41.95861778*u,
        1.59e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "calcium",
        "Ca",
        20,
        43,
        0.135,
        42.958766381*u,
        2.44e-7*u,
        7//2,
        -0.37637,
        -0.0408*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "calcium",
        "Ca",
        20,
        44,
        2.086,
        43.955481489*u,
        3.48e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "scandium",
        "Sc",
        21,
        45,
        100.0,
        44.955907051*u,
        7.12e-7*u,
        7//2,
        1.35899,
        -0.22*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "calcium",
        "Ca",
        20,
        46,
        0.004,
        45.953687726*u,
        2.398e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "titanium",
        "Ti",
        22,
        46,
        8.25,
        45.952626356*u,
        9.7e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "titanium",
        "Ti",
        22,
        47,
        7.44,
        46.951757491*u,
        8.5e-8*u,
        5//2,
        -0.31539,
        0.302*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "calcium",
        "Ca",
        20,
        48,
        0.187,
        47.952522654*u,
        1.8e-8*u,
        0//1,
        0.0,
        0.0*b,
        true,
        1.7671878559999998e27*s,
        3.1556926e26*s
    ),
    Isotope(
        "titanium",
        "Ti",
        22,
        48,
        73.72,
        47.947940677*u,
        7.9e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "titanium",
        "Ti",
        22,
        49,
        5.41,
        48.947864391*u,
        8.4e-8*u,
        7//2,
        -0.315477,
        0.247*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "titanium",
        "Ti",
        22,
        50,
        5.18,
        49.944785622*u,
        8.8e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "vanadium",
        "V",
        23,
        50,
        0.25,
        49.947156681*u,
        9.9e-8*u,
        6//1,
        0.5576148,
        0.21*b,
        true,
        8.551926946e24*s,
        4.10240038e23*s
    ),
    Isotope(
        "chromium",
        "Cr",
        24,
        50,
        4.345,
        49.946042209*u,
        1.0e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        4.10240038e25*s
    ),
    Isotope(
        "vanadium",
        "V",
        23,
        51,
        99.75,
        50.943957664*u,
        1.04e-7*u,
        7//2,
        1.47106,
        -0.043*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "chromium",
        "Cr",
        24,
        52,
        83.789,
        51.940504714*u,
        1.2e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "chromium",
        "Cr",
        24,
        53,
        9.501,
        52.940646304*u,
        1.24e-7*u,
        3//2,
        -0.31636,
        -0.15*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "manganese",
        "Mn",
        25,
        53,
        0.0,
        52.941287497*u,
        3.71e-7*u,
        7//2,
        1.439,
        0.17*b,
        true,
        1.167606262e14*s,
        1.26227704e13*s
    ),
    Isotope(
        "chromium",
        "Cr",
        24,
        54,
        2.365,
        53.938877359*u,
        1.42e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "iron",
        "Fe",
        26,
        54,
        5.845,
        53.939608189*u,
        3.68e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "manganese",
        "Mn",
        25,
        55,
        100.0,
        54.93804304*u,
        2.79e-7*u,
        5//2,
        1.3813,
        0.33*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "iron",
        "Fe",
        26,
        56,
        91.754,
        55.934935537*u,
        2.87e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "iron",
        "Fe",
        26,
        57,
        2.119,
        56.93539195*u,
        2.87e-7*u,
        1//2,
        0.1809,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "iron",
        "Fe",
        26,
        58,
        0.282,
        57.933273575*u,
        3.39e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "nickel",
        "Ni",
        28,
        58,
        68.0769,
        57.93534165*u,
        3.74e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        2.20898482e28*s
    ),
    Isotope(
        "cobalt",
        "Co",
        27,
        59,
        100.0,
        58.933193524*u,
        4.26e-7*u,
        7//2,
        1.322,
        0.42*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "cobalt",
        "Co",
        27,
        60,
        0.0,
        59.933815536*u,
        4.33e-7*u,
        5//1,
        0.7598,
        0.46*b,
        true,
        1.663491797164e8*s,
        18934.1556*s
    ),
    Isotope(
        "nickel",
        "Ni",
        28,
        60,
        26.2231,
        59.930785129*u,
        3.78e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "nickel",
        "Ni",
        28,
        61,
        1.1399,
        60.931054819*u,
        3.81e-7*u,
        3//2,
        -0.50001,
        0.162*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "nickel",
        "Ni",
        28,
        62,
        3.6345,
        61.928344753*u,
        4.55e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "copper",
        "Cu",
        29,
        63,
        69.17,
        62.929597119*u,
        4.57e-7*u,
        3//2,
        1.4824,
        -0.22*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "nickel",
        "Ni",
        28,
        64,
        0.9256,
        63.927966228*u,
        4.97e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "zinc",
        "Zn",
        30,
        64,
        48.63,
        63.929141776*u,
        6.9e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        1.89341556e24*s
    ),
    Isotope(
        "copper",
        "Cu",
        29,
        65,
        30.83,
        64.927789476*u,
        6.9e-7*u,
        3//2,
        1.5878,
        -0.204*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "zinc",
        "Zn",
        30,
        66,
        27.9,
        65.926033639*u,
        7.98e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "zinc",
        "Zn",
        30,
        67,
        4.1,
        66.927127422*u,
        8.1e-7*u,
        5//2,
        0.350192,
        0.15*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "zinc",
        "Zn",
        30,
        68,
        18.75,
        67.924844232*u,
        8.35e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "gallium",
        "Ga",
        31,
        69,
        60.108,
        68.925573528*u,
        1.285e-6*u,
        3//2,
        1.34439,
        0.171*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "zinc",
        "Zn",
        30,
        70,
        0.62,
        69.925319175*u,
        2.058e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        1.1991631879999999e26*s
    ),
    Isotope(
        "germanium",
        "Ge",
        32,
        70,
        20.84,
        69.924248542*u,
        8.8e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "gallium",
        "Ga",
        31,
        71,
        39.892,
        70.924702554*u,
        8.7e-7*u,
        3//2,
        1.70818,
        0.107*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "germanium",
        "Ge",
        32,
        72,
        27.54,
        71.922075824*u,
        8.1e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "germanium",
        "Ge",
        32,
        73,
        7.73,
        72.923458954*u,
        6.1e-8*u,
        9//2,
        -0.1954373,
        -0.19*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "germanium",
        "Ge",
        32,
        74,
        36.28,
        73.92117776*u,
        1.3e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "selenium",
        "Se",
        34,
        74,
        0.89,
        73.922475933*u,
        1.5e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        7.258092979999999e25*s
    ),
    Isotope(
        "arsenic",
        "As",
        33,
        75,
        100.0,
        74.921594562*u,
        9.48e-7*u,
        3//2,
        0.95965,
        0.314*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "germanium",
        "Ge",
        32,
        76,
        7.61,
        75.921402725*u,
        1.9e-8*u,
        0//1,
        0.0,
        0.0*b,
        true,
        5.932702087999999e28*s,
        2.52455408e27*s
    ),
    Isotope(
        "selenium",
        "Se",
        34,
        76,
        9.37,
        75.919213702*u,
        1.7e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "selenium",
        "Se",
        34,
        77,
        7.63,
        76.91991415*u,
        6.7e-8*u,
        1//2,
        1.07008,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "selenium",
        "Se",
        34,
        78,
        23.77,
        77.917309244*u,
        1.91e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "krypton",
        "Kr",
        36,
        78,
        0.35,
        77.920366341*u,
        3.29e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        3.47126186e27*s
    ),
    Isotope(
        "selenium",
        "Se",
        34,
        79,
        0.0,
        78.918499252*u,
        2.38e-7*u,
        7//2,
        -0.29,
        0.8*b,
        true,
        1.0319114802e13*s,
        8.83593928e11*s
    ),
    Isotope(
        "bromine",
        "Br",
        35,
        79,
        50.69,
        78.918337574*u,
        1.074e-6*u,
        3//2,
        1.404267,
        0.313*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "selenium",
        "Se",
        34,
        80,
        49.61,
        79.916521761*u,
        1.016e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "krypton",
        "Kr",
        36,
        80,
        2.28,
        79.91637794*u,
        7.45e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "bromine",
        "Br",
        35,
        81,
        49.31,
        80.916288197*u,
        1.049e-6*u,
        3//2,
        1.513708,
        0.262*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "selenium",
        "Se",
        34,
        82,
        8.73,
        81.916699531*u,
        5.0e-7*u,
        0//1,
        0.0,
        0.0*b,
        true,
        2.7643867175999995e27*s,
        4.7335389e25*s
    ),
    Isotope(
        "krypton",
        "Kr",
        36,
        82,
        11.58,
        81.91348115368*u,
        5.91e-9*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "krypton",
        "Kr",
        36,
        83,
        11.49,
        82.914126516*u,
        9.0e-9*u,
        9//2,
        -0.215704,
        0.259*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "krypton",
        "Kr",
        36,
        84,
        57.0,
        83.91149772708*u,
        4.1e-9*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "strontium",
        "Sr",
        38,
        84,
        0.56,
        83.913419118*u,
        1.334e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "krypton",
        "Kr",
        36,
        85,
        0.0,
        84.91252726*u,
        2.147e-6*u,
        9//2,
        -0.2233,
        0.443*b,
        true,
        3.38542702128e8*s,
        220898.48200000002*s
    ),
    Isotope(
        "rubidium",
        "Rb",
        37,
        85,
        72.17,
        84.91178973604*u,
        5.37e-9*u,
        5//2,
        0.541192,
        0.276*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "krypton",
        "Kr",
        36,
        86,
        17.3,
        85.91061062468*u,
        3.99e-9*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "strontium",
        "Sr",
        38,
        86,
        9.86,
        85.90926072473*u,
        5.63e-9*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "rubidium",
        "Rb",
        37,
        87,
        27.83,
        86.909180529*u,
        6.0e-9*u,
        3//2,
        1.83421,
        0.1335*b,
        true,
        1.5683792222e18*s,
        9.4670778e15*s
    ),
    Isotope(
        "strontium",
        "Sr",
        38,
        87,
        7.0,
        86.90887749454*u,
        5.5e-9*u,
        9//2,
        -0.24284,
        0.305*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "strontium",
        "Sr",
        38,
        88,
        82.58,
        87.905612253*u,
        6.0e-9*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "yttrium",
        "Y",
        39,
        89,
        100.0,
        88.905838156*u,
        3.63e-7*u,
        1//2,
        -0.2748308,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "zirconium",
        "Zr",
        40,
        90,
        51.45,
        89.904698755*u,
        1.26e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "zirconium",
        "Zr",
        40,
        91,
        11.22,
        90.905640205*u,
        1.01e-7*u,
        5//2,
        -0.521448,
        -0.176*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "zirconium",
        "Zr",
        40,
        92,
        17.15,
        91.905035336*u,
        1.01e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "molybdenum",
        "Mo",
        42,
        92,
        14.84,
        91.906807153*u,
        1.68e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        5.99581594e27*s
    ),
    Isotope(
        "niobium",
        "Nb",
        41,
        93,
        100.0,
        92.90637317*u,
        1.599e-6*u,
        9//2,
        1.3712,
        -0.32*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "zirconium",
        "Zr",
        40,
        94,
        17.38,
        93.906312523*u,
        1.75e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        3.47126186e24*s
    ),
    Isotope(
        "molybdenum",
        "Mo",
        42,
        94,
        9.25,
        93.905083586*u,
        1.51e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "molybdenum",
        "Mo",
        42,
        95,
        15.92,
        94.905837436*u,
        1.32e-7*u,
        5//2,
        -0.3657,
        -0.022*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "zirconium",
        "Zr",
        40,
        96,
        2.8,
        95.908277615*u,
        1.22e-7*u,
        0//1,
        0.0,
        0.0*b,
        true,
        7.384320684e26*s,
        5.36467742e25*s
    ),
    Isotope(
        "molybdenum",
        "Mo",
        42,
        96,
        16.68,
        95.90467477*u,
        1.28e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "ruthenium",
        "Ru",
        44,
        96,
        5.54,
        95.90758891*u,
        1.82e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        2.52455408e27*s
    ),
    Isotope(
        "molybdenum",
        "Mo",
        42,
        97,
        9.55,
        96.906016903*u,
        1.76e-7*u,
        5//2,
        -0.3734,
        0.255*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "molybdenum",
        "Mo",
        42,
        98,
        24.13,
        97.905403609*u,
        1.86e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        3.1556926e21*s
    ),
    Isotope(
        "ruthenium",
        "Ru",
        44,
        98,
        1.87,
        97.905286709*u,
        6.937e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "technetium",
        "Tc",
        43,
        99,
        0.0,
        98.906249681*u,
        9.74e-7*u,
        9//2,
        1.2632,
        -0.129*b,
        true,
        6.6616670786e12*s,
        3.78683112e10*s
    ),
    Isotope(
        "ruthenium",
        "Ru",
        44,
        99,
        12.76,
        98.905930284*u,
        3.68e-7*u,
        5//2,
        -0.256,
        0.079*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "molybdenum",
        "Mo",
        42,
        100,
        9.63,
        99.907467982*u,
        3.22e-7*u,
        0//1,
        0.0,
        0.0*b,
        true,
        2.2310746682e26*s,
        4.41796964e24*s
    ),
    Isotope(
        "ruthenium",
        "Ru",
        44,
        100,
        12.6,
        99.90421046*u,
        3.67e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "ruthenium",
        "Ru",
        44,
        101,
        17.06,
        100.905573086*u,
        4.43e-7*u,
        5//2,
        -0.288,
        0.46*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "ruthenium",
        "Ru",
        44,
        102,
        31.55,
        101.904340312*u,
        4.46e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "palladium",
        "Pd",
        46,
        102,
        1.02,
        101.905632292*u,
        4.49e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        2.3983263759999997e26*s
    ),
    Isotope(
        "rhodium",
        "Rh",
        45,
        103,
        100.0,
        102.905494081*u,
        2.47e-6*u,
        1//2,
        -0.1768,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "ruthenium",
        "Ru",
        44,
        104,
        18.62,
        103.905425312*u,
        2.682e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "palladium",
        "Pd",
        46,
        104,
        11.14,
        103.904030393*u,
        1.434e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "palladium",
        "Pd",
        46,
        105,
        22.33,
        104.905079479*u,
        1.222e-6*u,
        5//2,
        -0.257,
        0.66*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "palladium",
        "Pd",
        46,
        106,
        27.33,
        105.903480287*u,
        1.186e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "cadmium",
        "Cd",
        48,
        106,
        1.25,
        105.906459791*u,
        1.184e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        3.4712618600000002e28*s
    ),
    Isotope(
        "silver",
        "Ag",
        47,
        107,
        51.839,
        106.905091509*u,
        2.556e-6*u,
        1//2,
        -0.22714,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "palladium",
        "Pd",
        46,
        108,
        26.46,
        107.903891806*u,
        1.189e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "cadmium",
        "Cd",
        48,
        108,
        0.89,
        107.904183588*u,
        1.205e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        1.293833966e25*s
    ),
    Isotope(
        "silver",
        "Ag",
        47,
        109,
        48.161,
        108.904755778*u,
        1.381e-6*u,
        1//2,
        -0.26112,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "palladium",
        "Pd",
        46,
        110,
        11.72,
        109.905172878*u,
        6.57e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        9.151508539999999e27*s
    ),
    Isotope(
        "cadmium",
        "Cd",
        48,
        110,
        12.49,
        109.90300747*u,
        4.07e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "cadmium",
        "Cd",
        48,
        111,
        12.8,
        110.904183776*u,
        3.83e-7*u,
        1//2,
        -1.18977,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "cadmium",
        "Cd",
        48,
        112,
        24.13,
        111.902763896*u,
        2.68e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tin",
        "Sn",
        50,
        112,
        0.97,
        111.904824894*u,
        3.15e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "cadmium",
        "Cd",
        48,
        113,
        12.22,
        112.904408105*u,
        2.62e-7*u,
        1//2,
        -1.244602,
        0.0*b,
        true,
        2.5371768503999996e23*s,
        1.5778463000000001e21*s
    ),
    Isotope(
        "indium",
        "In",
        49,
        113,
        4.29,
        112.904060451*u,
        2.02e-7*u,
        9//2,
        1.2286,
        0.759*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "cadmium",
        "Cd",
        48,
        114,
        28.73,
        113.903364998*u,
        2.96e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        2.9032371919999997e24*s
    ),
    Isotope(
        "tin",
        "Sn",
        50,
        114,
        0.66,
        113.90278013*u,
        3.1e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "indium",
        "In",
        49,
        115,
        95.71,
        114.903878772*u,
        1.2e-8*u,
        9//2,
        1.2313,
        0.77*b,
        true,
        1.3916604366e22*s,
        7.8892315e20*s
    ),
    Isotope(
        "tin",
        "Sn",
        50,
        115,
        0.34,
        114.903344695*u,
        1.6e-8*u,
        1//2,
        -1.8377,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "cadmium",
        "Cd",
        48,
        116,
        7.49,
        115.90476323*u,
        1.72e-7*u,
        0//1,
        0.0,
        0.0*b,
        true,
        8.488813093999999e26*s,
        2.84012334e25*s
    ),
    Isotope(
        "tin",
        "Sn",
        50,
        116,
        14.54,
        115.901742825*u,
        1.03e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tin",
        "Sn",
        50,
        117,
        7.68,
        116.902954036*u,
        5.18e-7*u,
        1//2,
        -2.00208,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tin",
        "Sn",
        50,
        118,
        24.22,
        117.90160663*u,
        5.36e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tin",
        "Sn",
        50,
        119,
        8.59,
        118.903311266*u,
        7.78e-7*u,
        1//2,
        -2.09456,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tin",
        "Sn",
        50,
        120,
        32.58,
        119.902202557*u,
        9.87e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tellurium",
        "Te",
        52,
        120,
        0.09,
        119.904065779*u,
        1.88e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        5.04910816e28*s
    ),
    Isotope(
        "antimony",
        "Sb",
        51,
        121,
        57.21,
        120.903811353*u,
        2.69e-6*u,
        5//2,
        1.3454,
        -0.543*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tin",
        "Sn",
        50,
        122,
        4.63,
        121.903445494*u,
        2.627e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tellurium",
        "Te",
        52,
        122,
        2.55,
        121.903044708*u,
        1.456e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "antimony",
        "Sb",
        51,
        123,
        42.79,
        122.904215292*u,
        1.456e-6*u,
        7//2,
        0.72851,
        -0.692*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tellurium",
        "Te",
        52,
        123,
        0.89,
        122.904271022*u,
        1.454e-6*u,
        1//2,
        -1.473896,
        0.0*b,
        false,
        Inf*s,
        6.3113852e22*s
    ),
    Isotope(
        "tin",
        "Sn",
        50,
        124,
        5.79,
        123.905279619*u,
        1.41e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        3.1556926e24*s
    ),
    Isotope(
        "tellurium",
        "Te",
        52,
        124,
        4.74,
        123.902818341*u,
        1.451e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "xenon",
        "Xe",
        54,
        124,
        0.09,
        123.905885174*u,
        1.457e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        6.3113852e21*s
    ),
    Isotope(
        "antimony",
        "Sb",
        51,
        125,
        0.0,
        124.905254264*u,
        2.7e-6*u,
        7//2,
        0.751,
        NaN*b,
        true,
        8.70213791376e7*s,
        34712.6186*s
    ),
    Isotope(
        "tellurium",
        "Te",
        52,
        125,
        7.07,
        124.904431178*u,
        1.451e-6*u,
        1//2,
        -1.7770102,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tellurium",
        "Te",
        52,
        126,
        18.84,
        125.903312144*u,
        1.453e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "xenon",
        "Xe",
        54,
        126,
        0.09,
        125.904297422*u,
        6.0e-9*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "iodine",
        "I",
        53,
        127,
        100.0,
        126.904472592*u,
        3.887e-6*u,
        5//2,
        1.12531,
        -0.696*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tellurium",
        "Te",
        52,
        128,
        31.74,
        127.904461237*u,
        7.58e-7*u,
        0//1,
        0.0,
        0.0*b,
        true,
        7.1003083499999995e31*s,
        2.8401233399999995e30*s
    ),
    Isotope(
        "xenon",
        "Xe",
        54,
        128,
        1.92,
        127.90353075341*u,
        5.58e-9*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "iodine",
        "I",
        53,
        129,
        0.0,
        128.904983643*u,
        3.385e-6*u,
        7//2,
        0.74886,
        -0.488*b,
        true,
        5.0932878564e14*s,
        3.78683112e12*s
    ),
    Isotope(
        "xenon",
        "Xe",
        54,
        129,
        26.44,
        128.90478085742*u,
        5.42e-9*u,
        1//2,
        -1.55595,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tellurium",
        "Te",
        52,
        130,
        34.08,
        129.906222745*u,
        1.1e-8*u,
        0//1,
        0.0,
        0.0*b,
        true,
        2.4961528466e28*s,
        6.62695446e26*s
    ),
    Isotope(
        "xenon",
        "Xe",
        54,
        130,
        4.08,
        129.903509346*u,
        1.0e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "barium",
        "Ba",
        56,
        130,
        0.106,
        129.906326002*u,
        3.08e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        3.1556926e28*s
    ),
    Isotope(
        "xenon",
        "Xe",
        54,
        131,
        21.18,
        130.90508412808*u,
        5.49e-9*u,
        3//2,
        0.461,
        -0.114*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "xenon",
        "Xe",
        54,
        132,
        26.89,
        131.90415508346*u,
        5.44e-9*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "barium",
        "Ba",
        56,
        132,
        0.101,
        131.905061231*u,
        1.13e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        9.467077799999999e27*s
    ),
    Isotope(
        "caesium",
        "Cs",
        55,
        133,
        100.0,
        132.905451958*u,
        8.0e-9*u,
        7//2,
        0.7377214,
        -0.00343*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "barium",
        "Ba",
        56,
        133,
        0.0,
        132.906007443*u,
        1.065e-6*u,
        1//2,
        -1.5433,
        0.0*b,
        true,
        3.325437304954e8*s,
        50491.081600000005*s
    ),
    Isotope(
        "xenon",
        "Xe",
        54,
        134,
        10.44,
        133.90539303*u,
        6.0e-9*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        3.4712618599999996e23*s
    ),
    Isotope(
        "caesium",
        "Cs",
        55,
        134,
        0.0,
        133.906718501*u,
        1.7e-8*u,
        4//1,
        0.74843,
        0.37*b,
        true,
        6.516505219e7*s,
        12622.770400000001*s
    ),
    Isotope(
        "barium",
        "Ba",
        56,
        134,
        2.417,
        133.904508249*u,
        2.69e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "caesium",
        "Cs",
        55,
        135,
        0.0,
        134.905976907*u,
        3.9e-7*u,
        7//2,
        0.78069,
        0.048*b,
        true,
        4.197071158e13*s,
        5.99581594e12*s
    ),
    Isotope(
        "barium",
        "Ba",
        56,
        135,
        6.592,
        134.905688447*u,
        2.63e-7*u,
        3//2,
        0.55863,
        0.16*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "xenon",
        "Xe",
        54,
        136,
        8.87,
        135.907214474*u,
        7.0e-9*u,
        0//1,
        0.0,
        0.0*b,
        true,
        6.879409868e28*s,
        1.5778463e27*s
    ),
    Isotope(
        "barium",
        "Ba",
        56,
        136,
        7.854,
        135.9045758*u,
        2.62e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "cerium",
        "Ce",
        58,
        136,
        0.185,
        135.907129256*u,
        3.48e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        1.009821632e24*s
    ),
    Isotope(
        "caesium",
        "Cs",
        55,
        137,
        0.0,
        136.907089296*u,
        3.24e-7*u,
        7//2,
        0.81466,
        0.048*b,
        true,
        9.4797005704e8*s,
        1.26227704e6*s
    ),
    Isotope(
        "barium",
        "Ba",
        56,
        137,
        11.232,
        136.905827207*u,
        2.66e-7*u,
        3//2,
        0.62491,
        0.245*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "lanthanum",
        "La",
        57,
        137,
        0.0,
        136.906450438*u,
        1.76e-6*u,
        7//2,
        0.7714,
        0.21*b,
        true,
        1.89341556e12*s,
        6.3113852e11*s
    ),
    Isotope(
        "barium",
        "Ba",
        56,
        138,
        71.698,
        137.905247059*u,
        2.67e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "lanthanum",
        "La",
        57,
        138,
        0.09,
        137.907124041*u,
        4.46e-7*u,
        5//1,
        0.742729,
        0.39*b,
        true,
        3.250363378e18*s,
        3.1556926e16*s
    ),
    Isotope(
        "cerium",
        "Ce",
        58,
        138,
        0.251,
        137.90599418*u,
        5.36e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        1.3885047439999998e24*s
    ),
    Isotope(
        "lanthanum",
        "La",
        57,
        139,
        99.91,
        138.906362927*u,
        6.51e-7*u,
        7//2,
        0.795156,
        0.2*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "cerium",
        "Ce",
        58,
        140,
        88.45,
        139.905448433*u,
        1.409e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "praesodymium",
        "Pr",
        59,
        141,
        100.0,
        140.907659604*u,
        1.607e-6*u,
        5//2,
        1.7102,
        -0.077*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "cerium",
        "Ce",
        58,
        142,
        11.114,
        141.909250208*u,
        2.623e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        9.151508539999999e25*s
    ),
    Isotope(
        "neodymium",
        "Nd",
        60,
        142,
        27.2,
        141.907728824*u,
        1.348e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "neodymium",
        "Nd",
        60,
        143,
        12.2,
        142.909819815*u,
        1.347e-6*u,
        7//2,
        -0.3043,
        -0.61*b,
        false,
        Inf*s,
        9.78264706e25*s
    ),
    Isotope(
        "neodymium",
        "Nd",
        60,
        144,
        23.8,
        143.910092798*u,
        1.346e-6*u,
        0//1,
        0.0,
        0.0*b,
        true,
        7.2265360539999994e22*s,
        5.04910816e21*s
    ),
    Isotope(
        "samarium",
        "Sm",
        62,
        144,
        3.07,
        143.912006285*u,
        1.566e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "neodymium",
        "Nd",
        60,
        145,
        8.3,
        144.912579151*u,
        1.364e-6*u,
        7//2,
        -0.187,
        -0.314*b,
        false,
        Inf*s,
        1.89341556e24*s
    ),
    Isotope(
        "neodymium",
        "Nd",
        60,
        146,
        17.2,
        145.913122459*u,
        1.366e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        5.04910816e25*s
    ),
    Isotope(
        "promethium",
        "Pm",
        61,
        147,
        0.0,
        146.915144944*u,
        1.382e-6*u,
        7//2,
        0.737,
        0.74*b,
        true,
        8.27864396684e7*s,
        6311.385200000001*s
    ),
    Isotope(
        "samarium",
        "Sm",
        62,
        147,
        14.99,
        146.914904401*u,
        1.354e-6*u,
        7//2,
        -0.232,
        -0.26*b,
        true,
        3.3639683116e18*s,
        1.5778463e16*s
    ),
    Isotope(
        "neodymium",
        "Nd",
        60,
        148,
        5.7,
        147.916899027*u,
        2.203e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        9.4670778e25*s
    ),
    Isotope(
        "samarium",
        "Sm",
        62,
        148,
        11.24,
        147.914829233*u,
        1.337e-6*u,
        0//1,
        0.0,
        0.0*b,
        true,
        1.988086338e23*s,
        4.10240038e22*s
    ),
    Isotope(
        "samarium",
        "Sm",
        62,
        149,
        13.82,
        148.917191211*u,
        1.241e-6*u,
        7//2,
        -0.1908,
        0.078*b,
        false,
        Inf*s,
        6.3113852e22*s
    ),
    Isotope(
        "neodymium",
        "Nd",
        60,
        150,
        5.6,
        149.920901322*u,
        1.211e-6*u,
        0//1,
        0.0,
        0.0*b,
        true,
        2.934794118e26*s,
        2.20898482e25*s
    ),
    Isotope(
        "samarium",
        "Sm",
        62,
        150,
        7.38,
        149.917281993*u,
        1.193e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "samarium",
        "Sm",
        62,
        151,
        0.0,
        150.919938859*u,
        1.191e-6*u,
        5//2,
        0.1444,
        0.71*b,
        true,
        2.9852851996e9*s,
        1.8934155599999998e7*s
    ),
    Isotope(
        "europium",
        "Eu",
        63,
        151,
        47.81,
        150.919856606*u,
        1.251e-6*u,
        5//2,
        1.3887,
        0.903*b,
        true,
        1.4516185959999997e26*s,
        3.7868311199999995e25*s
    ),
    Isotope(
        "samarium",
        "Sm",
        62,
        152,
        26.75,
        151.919738646*u,
        1.09e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "europium",
        "Eu",
        63,
        152,
        0.0,
        151.92175098*u,
        1.252e-6*u,
        3//1,
        -0.6467,
        2.72*b,
        true,
        4.26554968742e8*s,
        189341.556*s
    ),
    Isotope(
        "gadolinium",
        "Gd",
        64,
        152,
        0.2,
        151.919798414*u,
        1.081e-6*u,
        0//1,
        0.0,
        0.0*b,
        true,
        3.408148008e21*s,
        2.52455408e20*s
    ),
    Isotope(
        "europium",
        "Eu",
        63,
        153,
        52.19,
        152.921236789*u,
        1.257e-6*u,
        5//2,
        0.6134,
        2.41*b,
        false,
        Inf*s,
        1.73563093e25*s
    ),
    Isotope(
        "samarium",
        "Sm",
        62,
        154,
        22.75,
        153.922215756*u,
        1.4e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        7.258092979999999e25*s
    ),
    Isotope(
        "europium",
        "Eu",
        63,
        154,
        0.0,
        153.922985699*u,
        1.275e-6*u,
        3//1,
        -0.6683,
        2.85*b,
        true,
        2.7113710819200003e8*s,
        94670.778*s
    ),
    Isotope(
        "gadolinium",
        "Gd",
        64,
        154,
        2.18,
        153.920872974*u,
        1.066e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "europium",
        "Eu",
        63,
        155,
        0.0,
        154.922899847*u,
        1.343e-6*u,
        5//2,
        0.608,
        2.5*b,
        true,
        1.49642943092e8*s,
        252455.408*s
    ),
    Isotope(
        "gadolinium",
        "Gd",
        64,
        155,
        14.8,
        154.922629356*u,
        1.055e-6*u,
        3//2,
        -0.1715,
        1.27*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "gadolinium",
        "Gd",
        64,
        156,
        20.47,
        155.92213012*u,
        1.054e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "dysprosium",
        "Dy",
        66,
        156,
        0.06,
        155.924283593*u,
        1.06e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        3.1556926e25*s
    ),
    Isotope(
        "gadolinium",
        "Gd",
        64,
        157,
        15.65,
        156.923967424*u,
        1.048e-6*u,
        3//2,
        -0.2265,
        1.35*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "terbium",
        "Tb",
        65,
        157,
        0.0,
        156.924031888*u,
        1.092e-6*u,
        3//2,
        1.34,
        1.4*b,
        true,
        2.240541746e9*s,
        2.20898482e8*s
    ),
    Isotope(
        "gadolinium",
        "Gd",
        64,
        158,
        24.84,
        157.9241112*u,
        1.048e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "dysprosium",
        "Dy",
        66,
        158,
        0.1,
        157.924414817*u,
        2.509e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "terbium",
        "Tb",
        65,
        159,
        100.0,
        158.925353707*u,
        1.184e-6*u,
        3//2,
        1.343,
        1.432*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "gadolinium",
        "Gd",
        64,
        160,
        21.86,
        159.927061202*u,
        1.206e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        9.782647059999999e26*s
    ),
    Isotope(
        "terbium",
        "Tb",
        65,
        160,
        0.0,
        159.927174553*u,
        1.191e-6*u,
        3//1,
        0.5967,
        3.85*b,
        true,
        6.24672e6*s,
        17280.0*s
    ),
    Isotope(
        "dysprosium",
        "Dy",
        66,
        160,
        2.34,
        159.925203578*u,
        7.51e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "dysprosium",
        "Dy",
        66,
        161,
        18.91,
        160.926939425*u,
        7.48e-7*u,
        5//2,
        -0.192,
        2.51*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "dysprosium",
        "Dy",
        66,
        162,
        25.51,
        161.926804507*u,
        7.46e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "erbium",
        "Er",
        68,
        162,
        0.14,
        161.928787299*u,
        8.11e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        4.41796964e21*s
    ),
    Isotope(
        "dysprosium",
        "Dy",
        66,
        163,
        24.9,
        162.928737221*u,
        7.44e-7*u,
        5//2,
        0.269,
        2.65*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "dysprosium",
        "Dy",
        66,
        164,
        28.18,
        163.929180819*u,
        7.46e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "erbium",
        "Er",
        68,
        164,
        1.61,
        163.929207739*u,
        7.55e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "holmium",
        "Ho",
        67,
        165,
        100.0,
        164.930329116*u,
        8.44e-7*u,
        7//2,
        1.668,
        3.58*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "erbium",
        "Er",
        68,
        166,
        33.61,
        165.930301067*u,
        3.58e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "erbium",
        "Er",
        68,
        167,
        22.93,
        166.932056192*u,
        3.06e-7*u,
        7//2,
        -0.1611,
        3.57*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "erbium",
        "Er",
        68,
        168,
        26.78,
        167.932378282*u,
        2.8e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "ytterbium",
        "Yb",
        70,
        168,
        0.13,
        167.933891297*u,
        1.0e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        4.10240038e21*s
    ),
    Isotope(
        "thulium",
        "Tm",
        69,
        169,
        100.0,
        168.934218956*u,
        7.92e-7*u,
        1//2,
        -0.462,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "erbium",
        "Er",
        68,
        170,
        14.93,
        169.935471933*u,
        1.488e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        1.293833966e25*s
    ),
    Isotope(
        "ytterbium",
        "Yb",
        70,
        170,
        3.04,
        169.934767242*u,
        1.1e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "thulium",
        "Tm",
        69,
        171,
        0.0,
        170.936435162*u,
        1.043e-6*u,
        1//2,
        -0.456,
        0.0*b,
        true,
        6.0589297919999994e7*s,
        315569.26*s
    ),
    Isotope(
        "ytterbium",
        "Yb",
        70,
        171,
        14.28,
        170.936331515*u,
        1.3e-8*u,
        1//2,
        0.98734,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "ytterbium",
        "Yb",
        70,
        172,
        21.83,
        171.936386654*u,
        1.4e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "ytterbium",
        "Yb",
        70,
        173,
        16.13,
        172.938216211*u,
        1.2e-8*u,
        5//2,
        -0.2592,
        2.8*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "lutetium",
        "Lu",
        71,
        173,
        0.0,
        172.938935722*u,
        1.682e-6*u,
        7//2,
        0.6517,
        3.53*b,
        true,
        4.3232988620000005e7*s,
        315569.26*s
    ),
    Isotope(
        "ytterbium",
        "Yb",
        70,
        174,
        31.83,
        173.938867545*u,
        1.1e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "lutetium",
        "Lu",
        71,
        174,
        0.0,
        173.94034284*u,
        1.682e-6*u,
        1//1,
        1.988,
        0.773*b,
        true,
        1.0445342506e8*s,
        1.5778463e6*s
    ),
    Isotope(
        "hafnium",
        "Hf",
        72,
        174,
        0.16,
        173.940048377*u,
        2.425e-6*u,
        0//1,
        0.0,
        0.0*b,
        true,
        6.3113852e22*s,
        1.2622770400000001e22*s
    ),
    Isotope(
        "lutetium",
        "Lu",
        71,
        175,
        97.41,
        174.940777211*u,
        1.295e-6*u,
        7//2,
        0.6378,
        3.49*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "ytterbium",
        "Yb",
        70,
        176,
        12.76,
        175.942574706*u,
        1.5e-8*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        5.04910816e24*s
    ),
    Isotope(
        "lutetium",
        "Lu",
        71,
        176,
        2.59,
        175.942691711*u,
        1.301e-6*u,
        7//1,
        0.4517,
        4.92*b,
        true,
        1.16792183126e18*s,
        5.36467742e15*s
    ),
    Isotope(
        "hafnium",
        "Hf",
        72,
        176,
        5.26,
        175.941409797*u,
        1.591e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "hafnium",
        "Hf",
        72,
        177,
        18.6,
        176.943230187*u,
        1.514e-6*u,
        7//2,
        0.2267,
        3.37*b,
        false,
        Inf*s,
        4.10240038e25*s
    ),
    Isotope(
        "hafnium",
        "Hf",
        72,
        178,
        27.28,
        177.943708322*u,
        1.519e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "hafnium",
        "Hf",
        72,
        179,
        13.62,
        178.945825705*u,
        1.52e-6*u,
        9//2,
        -0.1424,
        3.79*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "hafnium",
        "Hf",
        72,
        180,
        35.08,
        179.946559537*u,
        1.525e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tantalum",
        "Ta",
        73,
        180,
        0.012,
        179.947467589*u,
        2.219e-6*u,
        9//1,
        0.5361,
        4.8*b,
        true,
        29354.4*s,
        21.6*s
    ),
    Isotope(
        "tungsten",
        "W",
        74,
        180,
        0.12,
        179.946713304*u,
        1.545e-6*u,
        0//1,
        0.0,
        0.0*b,
        true,
        5.017551234e25*s,
        1.5778463e25*s
    ),
    Isotope(
        "tantalum",
        "Ta",
        73,
        181,
        99.988,
        180.947998528*u,
        1.692e-6*u,
        7//2,
        0.67729,
        3.17*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tungsten",
        "W",
        74,
        182,
        26.5,
        181.948205636*u,
        7.99e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        2.429883302e29*s
    ),
    Isotope(
        "tungsten",
        "W",
        74,
        183,
        14.31,
        182.950224416*u,
        7.98e-7*u,
        1//2,
        0.2355695,
        0.0*b,
        false,
        Inf*s,
        2.114314042e28*s
    ),
    Isotope(
        "tungsten",
        "W",
        74,
        184,
        30.64,
        183.95093318*u,
        7.92e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        2.808566414e29*s
    ),
    Isotope(
        "osmium",
        "Os",
        76,
        184,
        0.02,
        183.952492919*u,
        8.9e-7*u,
        0//1,
        0.0,
        0.0*b,
        true,
        3.534375712e20*s,
        7.25809298e19*s
    ),
    Isotope(
        "rhenium",
        "Re",
        75,
        185,
        37.4,
        184.95295832*u,
        8.79e-7*u,
        5//2,
        1.2748,
        2.18*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "tungsten",
        "W",
        74,
        186,
        28.43,
        185.95436514*u,
        1.302e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        1.2938339659999999e26*s
    ),
    Isotope(
        "osmium",
        "Os",
        76,
        186,
        1.59,
        185.953837569*u,
        8.16e-7*u,
        0//1,
        0.0,
        0.0*b,
        true,
        6.3113852e22*s,
        3.47126186e22*s
    ),
    Isotope(
        "rhenium",
        "Re",
        75,
        187,
        62.6,
        186.955752217*u,
        7.91e-7*u,
        5//2,
        1.2879,
        2.07*b,
        true,
        1.3127681216e18*s,
        6.3113852e14*s
    ),
    Isotope(
        "osmium",
        "Os",
        76,
        187,
        1.96,
        186.955749569*u,
        7.91e-7*u,
        1//2,
        0.1293038,
        0.0*b,
        false,
        Inf*s,
        1.0098216320000001e23*s
    ),
    Isotope(
        "osmium",
        "Os",
        76,
        188,
        13.24,
        187.955837292*u,
        7.88e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        1.0413785579999998e26*s
    ),
    Isotope(
        "osmium",
        "Os",
        76,
        189,
        16.15,
        188.958145949*u,
        7.15e-7*u,
        3//2,
        0.439956,
        0.86*b,
        false,
        Inf*s,
        1.041378558e23*s
    ),
    Isotope(
        "osmium",
        "Os",
        76,
        190,
        26.26,
        189.958445442*u,
        6.97e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        3.78683112e26*s
    ),
    Isotope(
        "platinum",
        "Pt",
        78,
        190,
        0.014,
        189.959949823*u,
        7.05e-7*u,
        0//1,
        0.0,
        0.0*b,
        true,
        1.5241995258e19*s,
        9.4670778e16*s
    ),
    Isotope(
        "iridium",
        "Ir",
        77,
        191,
        37.3,
        190.960591455*u,
        1.406e-6*u,
        3//2,
        0.1005,
        0.816*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "osmium",
        "Os",
        76,
        192,
        40.78,
        191.961478765*u,
        2.484e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        1.672517078e27*s
    ),
    Isotope(
        "platinum",
        "Pt",
        78,
        192,
        0.784,
        191.961042667*u,
        2.758e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        1.89341556e24*s
    ),
    Isotope(
        "iridium",
        "Ir",
        77,
        193,
        62.7,
        192.962923753*u,
        1.425e-6*u,
        3//2,
        0.1091,
        0.751*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "platinum",
        "Pt",
        78,
        194,
        32.967,
        193.962683498*u,
        5.32e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "platinum",
        "Pt",
        78,
        195,
        33.832,
        194.964794325*u,
        5.4e-7*u,
        1//2,
        1.219,
        0.0*b,
        false,
        Inf*s,
        1.9880863379999998e26*s
    ),
    Isotope(
        "platinum",
        "Pt",
        78,
        196,
        25.242,
        195.964954648*u,
        5.47e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "mercury",
        "Hg",
        80,
        196,
        0.15,
        195.965833445*u,
        3.163e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        7.8892315e25*s
    ),
    Isotope(
        "gold",
        "Au",
        79,
        197,
        100.0,
        196.966570103*u,
        5.81e-7*u,
        3//2,
        0.097164,
        0.547*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "platinum",
        "Pt",
        78,
        198,
        7.163,
        197.967896718*u,
        2.254e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "mercury",
        "Hg",
        80,
        198,
        9.97,
        197.966769177*u,
        4.91e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "mercury",
        "Hg",
        80,
        199,
        16.87,
        198.968280994*u,
        5.64e-7*u,
        1//2,
        1.011771,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "mercury",
        "Hg",
        80,
        200,
        23.1,
        199.968326941*u,
        5.68e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "mercury",
        "Hg",
        80,
        201,
        13.18,
        200.970303054*u,
        7.63e-7*u,
        3//2,
        -0.373484,
        0.387*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "mercury",
        "Hg",
        80,
        202,
        29.86,
        201.970643604*u,
        7.57e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "thallium",
        "Tl",
        81,
        203,
        29.524,
        202.972344098*u,
        1.257e-6*u,
        1//2,
        3.24451574,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "mercury",
        "Hg",
        80,
        204,
        6.87,
        203.973494037*u,
        5.34e-7*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "thallium",
        "Tl",
        81,
        204,
        0.0,
        203.97386342*u,
        1.238e-6*u,
        2//1,
        0.045,
        NaN*b,
        true,
        1.19379851058e8*s,
        378683.112*s
    ),
    Isotope(
        "lead",
        "Pb",
        82,
        204,
        1.4,
        203.973043506*u,
        1.231e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        4.4179696399999997e24*s
    ),
    Isotope(
        "thallium",
        "Tl",
        81,
        205,
        70.476,
        204.974427318*u,
        1.33e-6*u,
        1//2,
        3.2764292,
        0.0*b,
        false,
        Inf*s,
        NaN*s
    ),
    Isotope(
        "lead",
        "Pb",
        82,
        206,
        24.1,
        205.97446521*u,
        1.228e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        7.8892315e28*s
    ),
    Isotope(
        "lead",
        "Pb",
        82,
        207,
        22.1,
        206.975896821*u,
        1.231e-6*u,
        1//2,
        1.18512,
        0.0*b,
        false,
        Inf*s,
        5.995815939999999e28*s
    ),
    Isotope(
        "bismuth",
        "Bi",
        83,
        207,
        0.0,
        206.978470551*u,
        2.573e-6*u,
        9//2,
        0.9092,
        -0.76*b,
        true,
        9.852072297199999e8*s,
        5.36467742e6*s
    ),
    Isotope(
        "lead",
        "Pb",
        82,
        208,
        52.4,
        207.976652005*u,
        1.232e-6*u,
        0//1,
        0.0,
        0.0*b,
        false,
        Inf*s,
        8.20480076e28*s
    ),
    Isotope(
        "bismuth",
        "Bi",
        83,
        209,
        100.0,
        208.980398599*u,
        1.465e-6*u,
        9//2,
        0.9134,
        -0.516*b,
        true,
        6.342942126e26*s,
        2.52455408e25*s
    ),
    Isotope(
        "polonium",
        "Po",
        84,
        209,
        0.0,
        208.982430361*u,
        1.909e-6*u,
        1//2,
        1.5,
        0.0*b,
        true,
        3.913058824e9*s,
        9.4670778e7*s
    ),
    Isotope(
        "actinium",
        "Ac",
        89,
        227,
        0.0,
        227.027750594*u,
        2.068e-6*u,
        3//2,
        0.73,
        1.7*b,
        true,
        6.87057392872e8*s,
        94670.778*s
    ),
    Isotope(
        "thorium",
        "Th",
        90,
        229,
        0.0,
        229.031761357*u,
        2.581e-6*u,
        5//2,
        0.18,
        4.3*b,
        true,
        2.49804626216e11*s,
        5.3646774200000006e8*s
    ),
    Isotope(
        "thorium",
        "Th",
        90,
        232,
        100.0,
        232.038053606*u,
        1.525e-6*u,
        0//1,
        0.0,
        0.0*b,
        true,
        4.41796964e17*s,
        3.1556926e15*s
    ),
    Isotope(
        "uranium",
        "U",
        92,
        234,
        0.0055,
        234.040950296*u,
        1.212e-6*u,
        0//1,
        0.0,
        0.0*b,
        true,
        7.747225333e12*s,
        1.89341556e10*s
    ),
    Isotope(
        "uranium",
        "U",
        92,
        235,
        0.72,
        235.043928117*u,
        1.198e-6*u,
        7//2,
        -0.109,
        4.936*b,
        true,
        2.2216075904e16*s,
        3.1556926e13*s
    ),
    Isotope(
        "neptunium",
        "Np",
        93,
        237,
        0.0,
        237.04817164*u,
        1.201e-6*u,
        5//2,
        1.256,
        3.87*b,
        true,
        6.765804934400001e13*s,
        2.20898482e11*s
    ),
    Isotope(
        "uranium",
        "U",
        92,
        238,
        99.2745,
        238.050786936*u,
        1.601e-6*u,
        0//1,
        0.0,
        0.0*b,
        true,
        1.40838560738e17*s,
        9.4670778e13*s
    ),
    Isotope(
        "plutonium",
        "Pu",
        94,
        239,
        0.0,
        239.052161596*u,
        1.194e-6*u,
        1//2,
        0.406,
        0.0*b,
        true,
        7.6083748586e11*s,
        9.4670778e8*s
    ),
    Isotope(
        "americium",
        "Am",
        95,
        243,
        0.0,
        243.061379889*u,
        1.49e-6*u,
        5//2,
        0.6,
        2.86*b,
        true,
        2.319434061e11*s,
        2.84012334e8*s
    ),
]

max_stars_repo_name: Gregstrq/Isotope-data

max_issues_repo_name: Gregstrq/Isotope-data

max_forks_repo_name: Gregstrq/Isotope-data


text:
import AbstractTrees
using AbstractTrees: children

export TreePlot

"""
    TreePlot(root)

Wrap a tree-like object for plotting. Uses `AbstractTrees.children()` to recursively add children to the plot and `AbstractTrees.printnode()` to generate the labels.

# Example

```julia
using AbstractTrees, GraphRecipes
AbstractTrees.children(d::Dict) = [p for p in d]
AbstractTrees.children(p::Pair) = AbstractTrees.children(p[2])
function AbstractTrees.printnode(io::IO, p::Pair)
    str = isempty(AbstractTrees.children(p[2])) ? string(p[1], ": ", p[2]) : string(p[1], ": ")
    print(io, str)
end

d = Dict(:a => 2,:d => Dict(:b => 4,:c => "Hello"),:e => 5.0)

plot(TreePlot(d))
````
"""
struct TreePlot{T}
    root::T
end

function add_children!(nodes, source, destiny, node, parent_idx)
    for child in children(node)
        push!(nodes, child)
        child_idx = length(nodes)
        push!(source, parent_idx)
        push!(destiny, child_idx)
        add_children!(nodes, source, destiny, child, child_idx)
    end
end

function string_from_node(node)
    io = IOBuffer()
    AbstractTrees.printnode(io, node)
    String(take!(io))
end

# recursively build a graph of children of `tree_wrapper.root`
@recipe function f(tree_wrapper::TreePlot; namefunc = string_from_node )
    root = tree_wrapper.root
    # recursively add children
    nodes = Any[root]
    source, destiny = Int[], Int[]
    add_children!(nodes, source, destiny, root, 1)

    # set up the graphplot
    names := map(namefunc, nodes)
    method --> :buchheim
    root --> :top
    GraphPlot((source, destiny))
end

ext: jl


text:
const _attribute_defaults =  Dict(:Series => _series_defaults,
                        :Subplot => _subplot_defaults,
                        :Plot => _plot_defaults,
                        :Axis => _axis_defaults)

attrtypes() = join(keys(_attribute_defaults), ", ")
attributes(attrtype::Symbol) = sort(collect(keys(_attribute_defaults[attrtype])))

function lookup_aliases(attrtype, attribute)
    attribute = Symbol(attribute)
    attribute = in(attribute, keys(_keyAliases)) ? _keyAliases[attribute] : attribute
    in(attribute, keys(_attribute_defaults[attrtype])) && return attribute
    error("There is no attribute named $attribute in $attrtype")
end

"""
    plotattr([attr])

Look up the properties of a Plots attribute, or specify an attribute type. Call `plotattr()` for options.
The information is the same as that given on https://juliaplots.github.io/attributes/.
"""
function plotattr()
    println("Specify an attribute type to get a list of supported attributes. Options are $(attrtypes())")
end

function plotattr(attrtype::Symbol)
    in(attrtype, keys(_attribute_defaults)) || error("Viable options are $(attrtypes())")
    println("Defined $attrtype attributes are:\n$(join(attributes(attrtype), ", "))")
end

function plotattr(attribute::AbstractString)
    attribute = Symbol(attribute)
    attribute = in(attribute, keys(_keyAliases)) ? _keyAliases[attribute] : attribute
    for (k, v) in _attribute_defaults
        if in(attribute, keys(v))
            return plotattr(k, "$attribute")
        end
    end
    error("There is no attribute named $attribute")
end

function plotattr(attrtype::Symbol, attribute::AbstractString)
    in(attrtype, keys(_attribute_defaults)) || ArgumentError("`attrtype` must match one of $(attrtypes())")

    attribute = Symbol(lookup_aliases(attrtype, attribute))

    desc = get(_arg_desc, attribute, "")
    first_period_idx = findfirst(desc, '.')
    typedesc = desc[1:first_period_idx-1]
    desc = strip(desc[first_period_idx+1:end])
    als = keys(filter((_,v)->v==attribute, _keyAliases)) |> collect |> sort
    als = join(map(string,als), ", ")
    def = _attribute_defaults[attrtype][attribute]

    # Looks up the different elements and plots them
    println("$attribute ", typedesc == "" ? "" : "{$typedesc}", "\n",
        als == "" ? "" : "$als\n",
        "\n$desc\n",
        "$(attrtype) attribute, ", def == "" ? "" : " default: $def")
end


text:
random_string_id() = string(hash(rand()), base=16)

# Construct IDs
make_id(value::AbstractString) = String(value)
make_id(value::Number) = string(value)
make_id(::Nothing) = random_string_id()
make_id() = random_string_id()

"""
    parse_configuration(filename)

Parses a data configuration file (JSON format) and returns a `NamedTuple`
that acts as a search environment configuration.

• Search environment options reference
    `data_loader::Function`             # 0 argument function that when called loads the data i.e. `dbdata`
    `data_sampler::Function`            # function that takes as input raw data and outputs a `dbdata` row
    `id_key::Symbol`                    # the name of the primary integer key in `dbdata`
    `vectors_eltype::Type`              # the type of the vectors, scores etc. has to be `<:AbstractFloat`
    `searcher_configs::Vector{NamedTuple}`  # vector of searcher configs (see reference below)
    `embedder_configs::Vector{NamedTuple}`  # vector of embedder configs (see reference below)
    `config_path::String`               # the path to the config

• Embedder config fields reference
    `id::String`
    `description::String`
    `language::String`                  # the embedder-level language
    `stem_words::Bool`                  # whether to stem words
    `ngram_complexity::Int`             # ngram complexity (i.e. max number of tokes for an n-gram)
    `vectors::Symbol`                   # wordvectors calculation/source i.e. :count, :tf, :tfidf, :bm25, :word2vec, :glove, :conceptnet, :compressed
    `vectors_transform::Symbol`         # transform to apply to the vectors i.e. :lsa, :rp, :none
    `vectors_dimension::Int`            # desired dimensionality after transform (ignored for word2vec approaches)
    `embeddings_path::Union{Nothing, String}`  # path to the embeddings file
    `embeddings_kind::Symbol`           # Type of the embedding file for Word2Vec, GloVe i.e. :text, :binary
    `doc2vec_method::Symbol`            # How to arrive at a single embedding from multiple i.e. :boe, :sif etc.
    `glove_vocabulary::Union{Nothing, String}`  # Path to a GloVe-generated vocabulary file (only for binary embeddings)
    `oov_policy::Symbol`                # what to do with non-embeddable documents i.e. :none, :large_vector
    `embedder_kwarguments::Dict{Symbol, Any}`  # explicit specification of embedder keyword arguments
    `embeddable_fields::Union{Nothing, Vector{Symbol}}`  # which fields to use for training the embedder
    `text_strip_flags::UInt32`          # How to strip text data before indexing
    `sif_alpha::Float`                  # smooth inverse frequency α parameter (for 'sif' doc2vec method only)
    `borep_dimension::Int`              # output dimension for BOREP embedder
    `borep_pooling_function::Symbol`    # pooling function for the BOREP embedder
    `disc_ngram::Int`                   # DisC embedder ngram parameter

• Searcher config fields reference
    `id::String`                        # searcher id
    `id_aggregation::String`            # aggregation id
    `description::String`               # description of the searcher
    `enabled::Vector{Bool}`             # whether to use the searcher in search or not
    `search_index::Symbol`              # type of the search index i.e. :naive, :kdtree, :hnsw
    `search_index_arguments::Vector{Any}`
    `search_index_kwarguments::Dict{Symbol, Any}`
    `indexable_fields::Union{Nothing, Vector{Symbol}}`  # which fields to index
    `data_embedder::String`             # id of the data/document embedder
    `input_embedder::String`            # id of the input/query embedder
    `heuristic::Union{Nothing, Symbol}` # search heuristic for suggesting mispelled words (nothing means no recommendations)
    `score_alpha::Float`                # score alpha (parameter for the scoring function)
    `score_weight::Float`               # weight of scores of searcher (used in result aggregation)
"""
function parse_configuration(filename::AbstractString)

    # Read config (this should fail if config not found)
    config_path = abspath(expanduser(filename))

    # Parse configuration file
    config = try
        JSON.parse(open(fid->read(fid, String), config_path))
    catch e
        @warn "Could not parse configuration in $config_path\n$e"
        return nothing
    end

    # Data loader
    data_loader_name = Symbol(get(config, "data_loader_name", DEFAULT_DATA_LOADER_NAME))
    data_loader_arguments = get(config, "data_loader_arguments", [])
    data_loader_kwarguments = Dict{Symbol, Any}(Symbol(k) => v for (k,v) in
                                   get(config, "data_loader_kwarguments", Dict{String,Any}()))
    data_loader_function = eval(data_loader_name)
    data_loader = ()->data_loader_function(data_loader_arguments...; pairs(data_loader_kwarguments)...)

    # Data sampler
    data_sampler_name = Symbol(get(config, "data_sampler_name", DEFAULT_DATA_SAMPLER_NAME))
    data_sampler = eval(data_sampler_name)

    # Read primary db key
    id_key = Symbol(get(config, "id_key", DEFAULT_DB_ID_KEY))

    # Create an environment id
    id_environment = make_id(get(config, "id", nothing))

    # Vectors element type
    vectors_eltype = try
        eval(Symbol(config["vectors_eltype"]))
    catch e
        @debug "Wrong or missing vectors eltype.\n$e\nDefaulting vectors_eltype=$DEFAULT_VECTORS_ELTYPE."
        DEFAULT_VECTORS_ELTYPE
    end

    # Define _id here (to work in catch)
    local _id

    # Embedder configs
    parsed_embedder_configs = config["embedders"]
    embedder_configs = []
    for (i, embcfg) in enumerate(parsed_embedder_configs)
        try
            _id = make_id(get(embcfg, "id", nothing))
            _description = get(embcfg, "description", "")
            _language = lowercase(get(embcfg, "language", DEFAULT_LANGUAGE_STR))
            _stem_words = Bool(get(embcfg, "stem_words", DEFAULT_STEM_WORDS))
            _ngram_complexity = Int(get(embcfg, "ngram_complexity", DEFAULT_NGRAM_COMPLEXITY))
            _vectors = Symbol(get(embcfg, "vectors", DEFAULT_VECTORS))
            _vectors_transform = Symbol(get(embcfg, "vectors_transform", DEFAULT_VECTORS_TRANSFORM))
            _vectors_dimension = Int(get(embcfg, "vectors_dimension", DEFAULT_VECTORS_DIMENSION))
            _embeddings_path = postprocess_path(get(embcfg, "embeddings_path", nothing))
            _embeddings_kind = Symbol(get(embcfg, "embeddings_kind", DEFAULT_EMBEDDINGS_KIND))
            _doc2vec_method = Symbol(get(embcfg, "doc2vec_method", DEFAULT_DOC2VEC_METHOD))
            _glove_vocabulary = get(embcfg, "glove_vocabulary", nothing)
            _oov_policy = Symbol(get(embcfg, "oov_policy", DEFAULT_OOV_POLICY))
            _embedder_kwarguments = try
                Dict{Symbol, Any}(Symbol(k)=>v for (k,v) in get(embcfg, "embedder_kwarguments", Dict{String, Any}()))
            catch
                Dict{Symbol,Any}()
            end
            _embeddable_fields = haskey(embcfg, "embeddable_fields") ?
                                    Symbol.(embcfg["embeddable_fields"]) :
                                    DEFAULT_EMBEDDABLE_FIELDS
            _text_strip_flags = UInt32(get(embcfg, "text_strip_flags", DEFAULT_TEXT_STRIP_FLAGS))
            _sif_alpha = vectors_eltype(get(embcfg, "sif_alpha", DEFAULT_SIF_ALPHA))
            _borep_dimension = Int(get(embcfg, "borep_dimension", DEFAULT_BOREP_DIMENSION))
            _borep_pooling_function = Symbol(get(embcfg, "borep_pooling_function", DEFAULT_BOREP_POOLING_FUNCTION))
            _disc_ngram = Int(get(embcfg, "disc_ngram", DEFAULT_DISC_NGRAM))

            # Checks of the configuration parameter values;
            # language
            if !(_language in [LANG_TO_STR[l] for l in SUPPORTED_LANGUAGES])
                @warn "$(_id) Defaulting language=$DEFAULT_LANGUAGE_STR."
                _language = DEFAULT_LANGUAGE_STR
            end
            # ngram_complexity
            if _ngram_complexity < 1  # maybe put upper bound i.e. || ngram_complexity > 5
                @warn "$(_id) Defaulting ngram_complexity=$DEFAULT_NGRAM_COMPLEXITY."
                _ngram_complexity = DEFAULT_NGRAM_COMPLEXITY
            end
            # vectors
            if _vectors in [:count, :tf, :tfidf, :bm25]
                classic_search_approach = true  # classic search (including lsa, random projections)
            elseif _vectors in [:word2vec, :glove, :conceptnet, :compressed]
                classic_search_approach = false  # semantic search
            else
                @warn "$(_id) Defaulting vectors=$DEFAULT_VECTORS."
                _vectors = DEFAULT_VECTORS  # bm25
                classic_search_approach = true
            end
            if classic_search_approach
                # vectors_transform
                if !(_vectors_transform in [:none, :lsa, :rp])
                    @warn "$(_id) Defaulting vectors_transform=$DEFAULT_VECTORS_TRANSFORM."
                    _vectors_transform = DEFAULT_VECTORS_TRANSFORM
                else
                    # vectors_dimension
                    if _vectors_transform != :none && _vectors_dimension <= 0
                        @warn "$(_id) Defaulting vectors_dimension=$DEFAULT_VECTORS_DIMENSION."
                        _vectors_dimension = DEFAULT_VECTORS_DIMENSION
                    end
                end
                # embedings_path
                if _embeddings_path isa AbstractString && !isfile(_embeddings_path)
                    @warn "$(_id) Missing embeddings, ignoring search configuration..."
                    continue
                end
            else
                # Semantic search specific options
                # embedings_path
                if !isfile(_embeddings_path)
                    @warn "$(_id) Missing embeddings, ignoring search configuration..."
                    continue
                end
                # embeddings_kind
                if !(_embeddings_kind in [:binary, :text])
                    @warn "$(_id) Defaulting embeddings_kind=$DEFAULT_EMBEDDINGS_KIND."
                    _embeddings_kind = DEFAULT_EMBEDDINGS_KIND
                end
                # doc2vec_method
                if !(_doc2vec_method in [:boe, :sif, :borep, :cpmean, :disc])
                    @warn "$(_id) Defaulting doc2vec_method=$DEFAULT_DOC2VEC_METHOD."
                    _doc2vec_method = DEFAULT_DOC2VEC_METHOD
                end
                # GloVe embeddings vocabulary (only for binary embedding files)
                if _vectors == :glove && _embeddings_kind == :binary
                    if (_glove_vocabulary == nothing) ||
                            (_glove_vocabulary isa AbstractString && !isfile(_glove_vocabulary))
                        @warn "$(_id) Missing GloVe vocabulary file, ignoring search configuration..."
                        continue
                    end
                end
                if _doc2vec_method == :borep
                    if _borep_dimension <= 0
                        @warn "$(_id) Defaulting borep_dimension=$DEFAULT_BOREP_DIMENSION."
                        _borep_dimension = DEFAULT_BOREP_DIMENSION
                    end
                    if !(_borep_pooling_function in [:sum, :max])
                        @warn "$(_id) Defaulting borep_pooling_function=$DEFAULT_BOREP_POOLING_FUNCTION."
                        _borep_pooling_function = DEFAULT_BOREP_POOLING_FUNCTION
                    end
                elseif _doc2vec_method == :disc
                    if _disc_ngram <= 0
                        @warn "$(_id) Defaulting disc_ngram=$DEFAULT_DISC_NGRAM."
                        _disc_ngram = DEFAULT_DISC_NGRAM
                    end
                end
            end
            # oov_policy
            if !(_oov_policy in [:none, :large_vector])
                @warn "$(_id) Defaulting oov_policy=$DEFAULT_OOV_POLICY."
                _oov_policy = DEFAULT_OOV_POLICY
            end
            # embedder_kwarguments
            if !(typeof(_embedder_kwarguments) <: Dict{Symbol})
                @warn "$(_id) Defaulting embedder_kwarguments=Dict{Symbol,Any}()."
                _embedder_kwarguments=Dict{Symbol,Any}()
            end

            push!(embedder_configs,
                    (id=_id,
                     description=_description,
                     language=_language,
                     stem_words=_stem_words,
                     ngram_complexity=_ngram_complexity,
                     vectors=_vectors,
                     vectors_transform=_vectors_transform,
                     vectors_dimension=_vectors_dimension,
                     embeddings_path=_embeddings_path,
                     embeddings_kind=_embeddings_kind,
                     doc2vec_method=_doc2vec_method,
                     glove_vocabulary=_glove_vocabulary,
                     oov_policy=_oov_policy,
                     embedder_kwarguments=_embedder_kwarguments,
                     embeddable_fields=_embeddable_fields,
                     text_strip_flags=_text_strip_flags,
                     sif_alpha=_sif_alpha,
                     borep_dimension=_borep_dimension,
                     borep_pooling_function=_borep_pooling_function,
                     disc_ngram=_disc_ngram))
        catch e
            @warn "Parsing error for embedder $(_id). Will ignore embedder.\n$(e)"
        end
    end

    # Searcher configs
    parsed_searcher_configs = config["searchers"]
    searcher_configs = []
    for (i, srchercfg) in enumerate(parsed_searcher_configs)
        try
            _id = make_id(get(srchercfg, "id", nothing))
            _id_aggregation = haskey(srchercfg, "id_aggregation") ? make_id(srchercfg["id_aggregation"]) : id_environment
            _description = get(srchercfg, "description", "")
            _enabled = [get(srchercfg, "enabled", true)]
            _search_index = Symbol(get(srchercfg, "search_index", DEFAULT_SEARCH_INDEX))
            _search_index_arguments = Vector{Any}(get(srchercfg, "search_index_arguments", []))
            _search_index_kwarguments = try
                Dict{Symbol, Any}(Symbol(k)=>v for (k,v) in get(srchercfg, "search_index_kwarguments", Dict{String, Any}()))
            catch
                Dict{Symbol,Any}()
            end
            _indexable_fields = haskey(srchercfg, "indexable_fields") ?
                                    Symbol.(srchercfg["indexable_fields"]) :
                                    DEFAULT_INDEXABLE_FIELDS
            _data_embedder = make_id(get(srchercfg, "data_embedder", nothing))
            _input_embedder = make_id(get(srchercfg, "input_embedder", _data_embedder))  # defaults to the data embedder
            _heuristic = haskey(srchercfg, "heuristic") ?
                            Symbol(srchercfg["heuristic"]) :
                            DEFAULT_HEURISTIC
            _score_alpha = vectors_eltype(get(srchercfg, "score_alpha", DEFAULT_SCORE_ALPHA))
            _score_weight = vectors_eltype(get(srchercfg, "score_weight", 1.0))

            # Checks of the configuration parameter values;
            # search_index
            if !(_search_index in [:naive, :brutetree, :kdtree, :hnsw, :ivfadc, :noop])
                @warn "$(_id) Defaulting search_index=$DEFAULT_SEARCH_INDEX."
                _search_index = DEFAULT_SEARCH_INDEX
            end
            # search_index_arguments
            if !(typeof(_search_index_arguments) <: AbstractVector)
                @warn "$(_id) Defaulting search_index_arguments=[]."
                _search_index_arguments=[]
            end
            # search_index_kwarguments
            if !(typeof(_search_index_kwarguments) <: Dict{Symbol})
                @warn "$(_id) Defaulting search_index_kwarguments=Dict{Symbol,Any}()."
                _search_index_kwarguments=Dict{Symbol,Any}()
            end
            # heuristic
            if !(typeof(_heuristic) <: Nothing) && !(_heuristic in keys(HEURISTIC_TO_DISTANCE))
                @warn "$(_id) Defaulting heuristic=$DEFAULT_HEURISTIC."
                _heuristic = DEFAULT_HEURISTIC
            end

            push!(searcher_configs,
                    (id=_id,
                     id_aggregation=_id_aggregation,
                     description=_description,
                     enabled=_enabled,
                     search_index=_search_index,
                     search_index_arguments=_search_index_arguments,
                     search_index_kwarguments=_search_index_kwarguments,
                     indexable_fields=_indexable_fields,
                     data_embedder=_data_embedder,
                     input_embedder=_input_embedder,
                     heuristic=_heuristic,
                     score_alpha=_score_alpha,
                     score_weight=_score_weight))

        catch e
            @warn "Parsing error for searcher $(_id). Will ignore searcher.\n$(e)"
        end
    end

    # Last checks
    if isempty(searcher_configs)
        @warn "No searcher configurations parsed!"
        return nothing
    elseif isempty(embedder_configs)
        @warn "No embedder configurations parsed!"
        return nothing
    else
        # Check uniquenes (searcher ids)
        srcher_ids = map(c->c.id, searcher_configs)
        if srcher_ids != unique(srcher_ids)
            @warn "Searcher ids are not unique!"
            return nothing
        end

        # Check uniquenes (embedder ids)
        embedder_ids = map(c->c.id, embedder_configs)
        if embedder_ids != unique(embedder_ids)
            @warn "Embedder ids are not unique!"
            return nothing
        end

        # Check that all searcher embedders are defined
        used_embedder_ids = unique(vcat(map(c->c.data_embedder, searcher_configs),
                                         map(c->c.input_embedder, searcher_configs)))
        unk_embedders = setdiff(used_embedder_ids, embedder_ids)
        if !isempty(unk_embedders)
            @warn "Embedders: $(unk_embedders) are unknown!"
            return nothing
        end
    end

    return (data_loader=data_loader,
            data_sampler=data_sampler,
            id_key=id_key,
            vectors_eltype=vectors_eltype,
            searcher_configs=searcher_configs,
            embedder_configs=embedder_configs,
            config_path=config_path)
end

# Small helper function that post-processes file paths
# (useful for handling backslash separators on Windows)
function postprocess_path(path)
    ppath = path
    if path != nothing && Sys.iswindows()
        occursin("\\", path) && (ppath = replace(path, "\\"=>"/"))
    end
    return ppath  # do nothing if not on Windows
end

"""
    read_configuration_to_json(env)

Returns a JSON dictionary with the full configuration of the search environment.
"""
function read_configuration_to_json(env)
    try
        _config = JSON.parse(open(fid->read(fid, String), env.config_path))
        return JSON.json(Dict(env.config_path => _config))
    catch e
        @warn "Could not return search configuration. Returning empty string.\n$e"
        return ""
    end
end


text:
module Doctrines
export CategoryExpr, ObExpr, HomExpr, Hom2Expr

using ..Catlab
import ..Syntax: GATExpr, show_unicode, show_latex

# Base types for expressions in a category.
abstract type CategoryExpr{T} <: GATExpr{T} end
abstract type ObExpr{T} <: CategoryExpr{T} end
abstract type HomExpr{T} <: CategoryExpr{T} end
abstract type Hom2Expr{T} <: CategoryExpr{T} end

# Convenience methods
Ob(mod::Module, args...) = Ob(mod.Ob, args...)

function Ob(typ::Type, args...)
  if length(args) <= 1
    # Throw an error to avoid infinite recursion.
    # FIXME: Maybe this method should be called `Obs` instead?
    throw(MethodError(Ob, [typ, args...]))
  end
  [ Ob(typ, arg) for arg in args ]
end

include("Category.jl")
include("Monoidal.jl")
include("Preorders.jl")
include("AdditiveMonoidal.jl")
include("Relations.jl")

include("Permutations.jl")

end


text:
using Documenter
using DocThemeIndigo

using ZXCalculus
using Multigraphs

indigo = DocThemeIndigo.install(ZXCalculus)
makedocs(;
    modules = [ZXCalculus],
    format=Documenter.HTML(;
        # ...
        # put your indigo css in assets
        assets=String[indigo #= your other assets =#],
        prettyurls = !("local" in ARGS)
    ),
    pages = ["Home" => "index.md",
        "Tutorials" => "tutorials.md",
        "Examples" => "examples.md",
        "APIs" => "api.md"
    ],
    repo = "https:/github.com/QuantumBFS/ZXCalculus.jl",
    sitename = "ZXCalculus.jl",
)

deploydocs(repo = "github.com/QuantumBFS/ZXCalculus.jl.git")