EX43CDDIWOCTHJ3P72XBGMPZ7DEB7R2QCN636R2FWB2Y5OYWW2LAC JCXL74WVQ23V53EOCKA2NXQIYA5NNOXGN5WYC7ZW42EI2I6D5IJAC AT3LVCMPK7SSIEHF3JI6XTA5XNO7HFI3AOHYNX4Y24QKJ2NS6DDQC ZTZOO2OQ2DXRG3MI4RQVNWRHALXQ6BCIOWTTYPP2URQF5EWSNTOAC R5QXEHUIZLELJGGCZAE7ATNS3CLRJ7JFRENMGH4XXH24C5WABZDQC JOPVPUSAMMU6RFVDQR4NJC4GNNUFB7GPKVH7OS5FKCYS5QZ53VLQC LXTTOB33N2HCUZFIUDRQGGBVHK2HODRG4NBLH6RXRQZDCHF27BSAC NQM25OZVXXUTUBIIWE2QPHC22JMJB7YRIDKS2XTMQLJLCMLTM5SAC 36Z442IVPXHZ7D2QI26YLN3TDDEMDRQ2GKBYQAD6NUHQZVCCY4VAC 7PZ4CQFVYUMSJKVCNM75VKK5JCUYU6ICHWPZXXIC3S63YJVFCP5QC if edge.suffix and ends_with(frag, edge.suffix) thenCurrent_state = edge.targetbreakendendif edge.prefix and starts_with(frag, edge.prefix) thenCurrent_state = edge.targetbreakendendendfunction switch_color_based_on_suffix(frag)if Next_state[Current_state] == nil thenreturnendfrag = rtrim(frag)for _,edge in pairs(Next_state[Current_state]) do