def _make_simple_distances():
    """
    This is a translation of the non-wildcard rules in
    http://www.unicode.org/cldr/charts/29/supplemental/language_matching.html.

    It defines a few functions to make the chart easy to mindlessly transcribe,
    instead of having to parse it out of idiosyncratic XML or HTML, which
    actually seems harder.
    """
    distances = {}
    def sym(desired, supported, strength):
        "Define a symmetric distance between languages."
        desired_t = tuple(desired.split('-'))
        supported_t = tuple(supported.split('-'))
        distances[desired_t, supported_t] = strength
        distances[supported_t, desired_t] = strength

    def one(desired, supported, strength):
        "Define a one-way distance between languages."
        desired_t = tuple(desired.split('-'))
        supported_t = tuple(supported.split('-'))
        distances[desired_t, supported_t] = strength

    def ok(desired, supported):
        "Define the most common type of link: a one-way distance of 10."
        one(desired, supported, 10)

    sym('no', 'nb', 1)
    sym('hr', 'bs', 4)
    sym('sh', 'bs', 4)
    sym('sr', 'bs', 4)
    sym('sh', 'hr', 4)
    sym('sr', 'hr', 4)
    sym('sh', 'sr', 4)
    sym('ssy', 'aa', 4)
    one('gsw', 'de', 4)
    one('lb', 'de', 4)
    sym('da', 'no', 8)
    sym('da', 'nb', 8)
    ok('ab', 'ru')
    ok('ach', 'en')
    ok('af', 'nl')
    ok('ak', 'en')
    ok('ay', 'es')
    ok('az', 'ru')
    ok('az-Latn', 'ru-Cyrl')
    ok('be', 'ru')
    ok('bem', 'en')
    ok('bh', 'hi')
    ok('bn', 'en')
    ok('bn-Beng', 'en-Latn')
    ok('br', 'fr')
    ok('ceb', 'fil')
    ok('chr', 'en')
    ok('ckb', 'ar')
    ok('co', 'fr')
    ok('crs', 'fr')
    ok('cy', 'en')
    ok('ee', 'en')
    ok('eo', 'en')
    ok('et', 'fi')
    ok('eu', 'es')
    ok('fo', 'da')
    ok('fy', 'nl')
    ok('ga', 'en')
    ok('gaa', 'en')
    ok('gd', 'en')
    ok('gl', 'es')
    ok('gn', 'es')
    ok('gu', 'hi')
    ok('ha', 'en')
    ok('haw', 'en')
    ok('ht', 'fr')
    ok('hy', 'ru')
    ok('hy-Armn', 'ru-Cyrl')
    ok('ia', 'en')
    ok('ig', 'en')
    ok('is', 'en')
    ok('jv', 'id')
    ok('ka-Geor', 'en-Latn')
    ok('ka', 'en')
    ok('kg', 'fr')
    ok('kk', 'ru')
    ok('km', 'en')
    ok('km-Khmr', 'en-Latn')
    ok('kn', 'en')
    ok('kn-Knda', 'en-Latn')
    ok('kri', 'en')
    ok('ku', 'tr')
    ok('ky', 'ru')
    ok('la', 'it')
    ok('lg', 'en')
    ok('ln', 'fr')
    ok('lo', 'en')
    ok('lo-Laoo', 'en-Latn')
    ok('loz', 'en')
    ok('lua', 'fr')
    ok('mfe', 'en')
    ok('mg', 'fr')
    ok('mi', 'en')
    ok('mk', 'bg')
    ok('ml', 'en')
    ok('ml-Mlym', 'en-Latn')
    ok('mn', 'ru')
    ok('mr', 'hi')
    ok('ms', 'id')
    ok('mt', 'en')
    ok('my', 'en')
    ok('my-Mymr', 'en-Latn')
    ok('ne', 'en')
    ok('ne-Deva', 'en-Latn')
    sym('nn', 'nb', 10)
    ok('nn', 'no')
    ok('nso', 'en')
    ok('ny', 'en')
    ok('nyn', 'en')
    ok('oc', 'fr')
    ok('om', 'en')
    ok('or', 'en')
    ok('or-Orya', 'en-Latn')
    ok('pa', 'en')
    ok('pa-Guru', 'en-Latn')
    ok('pcm', 'en')
    ok('ps', 'en')
    ok('ps-Arab', 'en-Latn')
    ok('qu', 'es')
    ok('rm', 'de')
    ok('rn', 'en')
    ok('rw', 'fr')
    ok('sa', 'hi')
    ok('sd', 'en')
    ok('sd-Arab', 'en-Latn')
    ok('si', 'en')
    ok('si-Sinh', 'en-Latn')
    ok('sn', 'en')
    ok('so', 'en')
    ok('sq', 'en')
    ok('st', 'en')
    ok('su', 'id')
    ok('sw', 'en')
    ok('ta', 'en')
    ok('ta-Taml', 'en-Latn')
    ok('te', 'en')
    ok('te-Telu', 'en-Latn')
    ok('tg', 'ru')
    ok('ti', 'en')
    ok('ti-Ethi', 'en-Latn')
    ok('tk', 'ru')
    ok('tk-Latn', 'ru-Cyrl')
    ok('tlh', 'en')
    ok('tn', 'en')
    ok('to', 'en')
    ok('tt', 'ru')
    ok('tum', 'en')
    ok('ug', 'zh')
    ok('ur', 'en')
    ok('ur-Arab', 'en-Latn')
    ok('uz', 'ru')
    ok('uz-Latn', 'ru-Cyrl')
    ok('wo', 'fr')
    ok('xh', 'en')
    ok('yi', 'en')
    ok('yi-Hebr', 'en-Latn')
    ok('yo', 'en')
    ok('zu', 'en')
    sym('sr-Latn', 'sr-Cyrl', 5)
    one('zh-Hans', 'zh-Hant', 15)
    one('zh-Hant', 'zh-Hans', 19)
    sym('zh-Hant-HK', 'zh-Hant-MO', 3)

    return distances
This is a translation of the non-wildcard rules in
    http://www.unicode.org/cldr/charts/29/supplemental/language_matching.html.

    It defines a few functions to make the chart easy to mindlessly transcribe,
    instead of having to parse it out of idiosyncratic XML or HTML, which
    actually seems harder.