"""本主题专属离线算法，仅读取同目录合成JSON，不联网、不控制设备。"""
import csv, json, math, re, struct
from pathlib import Path
from fractions import Fraction
BASE=Path(__file__).resolve().parent
data=json.loads((BASE/'input.json').read_text(encoding='utf-8'))['data']
def os(text):
 b=text.encode('ascii')+bytes([0]);return b+bytes((-len(b))%4)
blob=bytes.fromhex(data['blob_hex'])
parts=[('address',os(data['address'])),('tags',os(',sbi')),('string',os(data['text'])),('blob',struct.pack('>i',len(blob))+blob+bytes((-len(blob))%4)),('integer',struct.pack('>i',data['integer']))]
packet=b'';rows=[]
for name,b in parts:
 start=len(packet);assert start%4==0;packet+=b;rows.append({'name':name,'start':start,'end_exclusive':len(packet),'hex':b.hex()})
assert len(packet)==32 and struct.unpack('>i',packet[-4:])[0]==9
result={'packet_hex':packet.hex(),'size_bytes':len(packet),'segments':rows,'blob_declared_data_length':len(blob),'blob_padding_bytes':(-len(blob))%4}
(BASE/'result.json').write_text(json.dumps(result,ensure_ascii=False,indent=2)+'\n',encoding='utf-8')
print(json.dumps(result,ensure_ascii=False))
