def METHOD_NAME (sor, sid=None, keys = [], delta=0, ident=0, value=None):
    if type(sor) is dict:
        for e in sor:
            if e+delta == sid:
                if value == None:
                    return {e+delta: sor[e]} 
                else:
                    sor[e] = value
                    return True
            if type(sor[e]) is list:
                if e+delta in dm_keys:
                    key_search = {}
                    for k in dm_keys[e+delta]:
                        key_search[k-(e+delta)] = keys.pop(0)
                    found_st = None
                    for l in sor[e]:
                        if key_search.items() <= l.items():
                            found_st = l
                            break
                    if found_st:
                        return METHOD_NAME(l, delta=e+delta, ident=ident+1, sid=sid, keys=keys, value=value)
                    else:
                        raise ValueError ("not found mapping")
            if type(sor[e]) is dict:
                return METHOD_NAME(sor[e], delta=e+delta, ident=ident+1, sid=sid, keys=keys, value=value)
    else:
        print ("unknown type", type(sor), sor)