def split_stable_id(stable_id):
split1 = stable_id.split("<STR_LIT>")<EOL>if len(split1) == <NUM_LIT:2>:<EOL><INDENT>split2 = split1[<NUM_LIT:1>].split("<STR_LIT::>")<EOL>if len(split2) == <NUM_LIT:3>:<EOL><INDENT>return split1[<NUM_LIT:0>], split2[<NUM_LIT:0>], int(split2[<NUM_LIT:1>]), int(split2[<NUM_LIT:2>])<EOL><DEDENT><DEDENT>raise ValueError(f"<STR_LIT>")<EOL>
Split stable id, returning:

        * Document (root) stable ID
        * Context polymorphic type
        * Character offset start, end *relative to document start*

    Returns tuple of four values.