<oembed><type>rich</type><version>1.0</version><title>wono wrote</title><author_name>wono (npub1d7…54jw9)</author_name><author_url>https://nostr.now/npub1d7zfm3ec0axunyd0ydsttjlxr60ujcts5zt054murwgh0jjcst6sl54jw9</author_url><provider_name>njump</provider_name><provider_url>https://nostr.now</provider_url><html>/run py&#xA;def decode_secret_emoji(text: str) -&gt; str:&#xA;    &#34;&#34;&#34;Decode Secret Emoji to text&#34;&#34;&#34;&#xA;    VS_START,      VS_END      = 0xfe00,   0xfe0f    # VS1〜VS16の範囲&#xA;    VS_SUPP_START, VS_SUPP_END = 0xe0100,  0xe01ef   # VS17〜VS256の範囲&#xA;&#xA;    decoded = []&#xA;    i = 0&#xA;&#xA;    while i &lt; len(text):&#xA;        cp = ord(text[i])&#xA;&#xA;        # PythonがUTF-16内部表現を使う環境ではサロゲートペアが発生する場合がある。&#xA;        # 上位サロゲート（0xD800〜0xDBFF）を検出したら、&#xA;        # 次の下位サロゲート（0xDC00〜0xDFFF）と組み合わせて本来のコードポイントを復元する&#xA;        if 0xD800 &lt;= cp &lt;= 0xDBFF and i + 1 &lt; len(text):&#xA;            low = ord(text[i + 1])&#xA;            if 0xDC00 &lt;= low &lt;= 0xDFFF:&#xA;                cp = 0x10000 + ((cp - 0xD800) &lt;&lt; 10) + (low - 0xDC00)&#xA;                i += 2&#xA;            else:&#xA;                i += 1&#xA;                continue&#xA;        else:&#xA;            i += 1&#xA;&#xA;        # コードポイントがVSの範囲内であれば、エンコード時の逆算でバイト値を復元する&#xA;        if VS_START &lt;= cp &lt;= VS_END:&#xA;            decoded.append(cp - VS_START)           # VS1〜VS16  → 0x00〜0x0F&#xA;        elif VS_SUPP_START &lt;= cp &lt;= VS_SUPP_END:&#xA;            decoded.append(cp - VS_SUPP_START + 16) # VS17〜VS256 → 0x10〜0xFF&#xA;        # VS以外の文字（絵文字など）は無視する&#xA;&#xA;    # 復元したバイト列をUTF-8としてデコードして文字列に戻す&#xA;    return bytes(decoded).decode(&#39;utf-8&#39;, errors=&#39;replace&#39;)&#xA;&#xA;print(decode_secret_emoji(🥟󠇓󠅱󠅺))</html></oembed>