Apple Microarchitecture Research by Dougall Johnson

M1/A14 P-core (Firestorm): Overview | Base Instructions | SIMD and FP Instructions
M1/A14 E-core (Icestorm):  Overview | Base Instructions | SIMD and FP Instructions

SUBS (sxtw, 32-bit)

Test 1: uops

Code:

  subs w0, w0, w1, sxtw
  mov x0, 1
  mov x1, 2

(no loop instructions)

1000 unrolls and 1 iteration

Retires: 1.000

Issues: 1.000

Integer unit issues: 1.000

Load/store unit issues: 0.000

SIMD/FP unit issues: 0.000

retire uop (01)cycle (02)031e3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)606d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst int alu (97)l1d cache writeback (a8)cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
100410357082917251000100010006225011035103580538821000100020001035401110011000073127119931000100010361036103610361036
100410357061917251000100010006225011035103580538821000100020001035401110011000073127119931000100010361036103610361036
100410357061917251000100010006225001035103580538821000100020001035401110011000073127119931000100010361036103610361036
100410358061917251000100010006225001035103580538821000100020001035401110011000073127119931000100010361036103610361036
100410358661917251000100010006225001035103580538821000100020001035401110011000073127119931000100010361036103610361036
100410358061917251000100010006225001035103580538821000100020001035401110011000073127119931000100010361036103610361036
100410357061917251000100010006225001035103580538821000100020001035401110011000073127119931000100010361036103610361036
100410358061917251000100010006225001035103580538821000100020001035401110011000073127119931000100010361036103610361036
100410357061917251000100010006225011035103580538821000100020001035401110011000073127119931000100010361036103610361036
100410357061917251000100010006225001035103580538821000100020001035401110011000073127119931000100010361036103610361036

Test 2: Latency 1->2

Code:

  subs w0, w0, w1, sxtw
  mov x0, 1
  mov x1, 2

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code): 1.0035

retire uop (01)cycle (02)031e3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d cache writeback (a8)acbranch mispred nonspec (cb)cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
1020410035750619920251010010100101006471521496955100351003586563873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
10204100357603549920251010010100101006471521496955100351003586563873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
1020410035750619920251010010100101006471521496955100351003586563873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
1020410035750619920251010010100101006471521496955100351003586563873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
1020410035750619920251010010100101006471521496955100351003586563873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
10204100357503279920251010010100101006471521496955100351003586563873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
1020410035750829920251010010100101006471520496955100351003586563873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
1020410035750619920251010010100101006471521496955100351003586563873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
1020410035750619920251010010100101006471521496955100351003586563873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
1020410035750619920251010010100101006471521496955100351003586563873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036

1000 unrolls and 10 iterations

Result (median cycles for code): 1.0035

retire uop (01)cycle (02)03mmu table walk instruction (07)1e3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d cache writeback (a8)accfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
100241003575006199182510010100101001064724604969551003510035867838754100101002020020100354011100211091010010100064022722999710000100101003610036100361003610036
1002410035750010799182510010100101001064724604969551003510035867838754100101002020020100354011100211091010010100064022722999710000100101003610036100361003610036
100241003575006199182510010100101001064724604969551003510035867838754100101002020020100354011100211091010010100064022722999710000100101003610036100361003610036
100241003575036199182510010100101001064724604969551003510035867838754100101002020020100354011100211091010010100064022722999710000100101003610036100361003610036
100241003576006199182510010100101001064724604969551003510035867838754100101002020020100354011100211091010010100064022722999710000100101003610036100361003610036
100241003575096199182510010100101001064724604969551003510035867838754100101002020020100354011100211091010010100064022722999710000100101003610036100361003610036
100241003575006199182510010100101001064724614969551003510035867838754100101002020020100354011100211091010010100064022722999710000100101003610036100361003610036
100241003575006199182510010100101001064724604969551003510035867838754100101002020020100354011100211091010010108664022722999710000100101003610036100361003610036
100241003575006199182510010100101001064724604969551003510035867838754100101002020020100354011100211091010010100064022722999710000100101003610036100361003610036
10024100357505434899182510010100101001064724604969551003510035867838754100101002020020100354011100211091010010100064022722999710000100101003610036100361003610036

Test 3: Latency 1->3

Code:

  subs w0, w1, w0, sxtw
  mov x0, 1
  mov x1, 2

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code): 1.0035

retire uop (01)cycle (02)031e1f3a3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)flags prf full (73)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb miss (a1)l1d cache writeback (a8)accfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
1020410035750006199272510100101001010064715214969551003510035865603873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
1020410035750006199202510100101001010064715214969551003510035865603873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
10204100357500012699202510100101001010064715214969551003510035865603873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
1020410035750008499202510100101001010064715214969551003510035865603873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
10204100357500014799202510100101001010064715214969551003510035865603873210100102002020010035401110201100991001010010000371012711999510000101001003610036100361003610036
1020410035750008499202510100101001010064715214969551003510035865603873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
1020410035750006199202510100101001010064715214969551003510035865603873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
1020410035750006199202510100101001010064715214969551003510035865633873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
1020410035750006199202510100101001010064715214969551003510035865603873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036
1020410035750006199202510100101001010064715214969551003510035865603873210100102002020010035401110201100991001010010000071012711999510000101001003610036100361003610036

1000 unrolls and 10 iterations

Result (median cycles for code): 1.0035

retire uop (01)cycle (02)031e3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb access (a0)l1d cache writeback (a8)accfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
10024100357506199182510010100101001064724649695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
100241003575061991825100101001010010647246496955100351003586789875410010100202002010035401110021109101001010014064022722999710000100101003610036100361003610036
10024100357506199182510010100101001064850049695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
10024100357506199182510010100101001064724649695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
10024100357506199182510010100101001064724649695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
100241003575061991825100101001010010647246496955100351003586783875410010100202002010035401110021109101001010013064022722999710000100101003610036100361003610036
10024100357506199182510010100101001064724649695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
10024100357506199182510010100101001064724649695510035100358678388091001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
100241003575061991825100101001010010647246496955100351003586781087541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
10024100357506199182510010100101001064724649695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036

Test 4: Latency 4->2

Chain cycles: 1

Code:

  subs w0, w1, w2, sxtw
  cset x1, cc
  mov x0, 1
  mov x1, 2
  mov x2, 3
  mov x3, 4
  mov x4, 5

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code, minus 1 chain cycle): 1.0035

retire uop (01)cycle (02)0309l2 tlb miss data (0b)18191e1f3a3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb access (a0)l1d tlb miss (a1)ld unit uop (a6)l1d cache writeback (a8)a9acc2branch cond mispred nonspec (c5)branch mispred nonspec (cb)cdcfmap dispatch bubble (d6)dde0? int output thing (e9)? int retires (ef)f5f6f7f8fd
202042003515000000006119930252010020100201121297233491695520035200351742581748520112202243023620035641120201100991002010010100000003011113191602001220000201002003620036200362003620036
202042003515000000006119930252010020100201121297233491695520035200351742571748520112202243023620035641120201100991002010010100000000011113191602001220000201002003620036200362003620036
202042003515000000006119930252010020100201121297233491695520035200351742581748620112202243023620035641120201100991002010010100000000011113191602001220000201002003620036200362003620036
202042003515000000008219930252010020100201121297233491695520035200351742571748620112202243023620035641120201100991002010010100000000011113191602001220000201002003620036200362003620036
202042003515000000008219930252010020100201121297233491695520035200351742581748520112202243023620035641120201100991002010010100000000011113191602001220000201002003620036200362003620036
202042003515000000008219930252010020100201121297233491695520035200351742581748520112202243023620035641120201100991002010010100000000011113191602001220000201002003620036200362003620036
202042003515000000006119930252010020100201121297233491695520035200351742571748620112202243023620035641120201100991002010010100000000011113191602001220000201002003620036200362003620036
202042003515000000006119930252010020100201121297233491695520035200351742581748520112202243023620035641120201100991002010010100000000011113201602001220000201002003620036200362003620036
202042003515000000006119930252010020100201121297233491695520035200351742571748620112202243023620035641120201100991002010010100000000011113191602001220000201002003620036200362003620036
202042003514900000008219930252010020100201121297233491695520035200351742571748620112202243023620035641120201100991002010010100000000011113191602001220000201002003620036200362003620036

1000 unrolls and 10 iterations

Result (median cycles for code, minus 1 chain cycle): 1.0035

retire uop (01)cycle (02)03mmu table walk data (08)l2 tlb miss data (0b)18191e1f3a3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb access (a0)l1d tlb miss (a1)ld unit uop (a6)l1d cache writeback (a8)a9acc2cdcfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
20024202981520150540440013401992312620010201202042012997594917137202602017217469231763520420204883073420264646120021109102001010010220023848001353159222016420110200102026220262202642022020036
20024203071520145672440113111991612620120200322050213003874917226202632026417477281763220420204903073420264646120021109102001010010003104063201353160321999520110200102026620263202632026320263
2002420309152015180435201316199144620120201202042113010154917182202162026417483251765820420204893074220307646120021109102001010010000004065401372168112020020000200102026420264201722026220263
20024202641521066795528013251991712920142201222042013010114917184203072026717491231766120420205993002020172645120021109102001010010002102415201336159322002920088200102026520265201272026120081
2002420264152105553444008401991713220032201202042212997584917092202182012617472261761020420204323073320263646120021109102001010010000000001270127111999520000200102003620036200362003620036
2002420035150000000061199182520010200102001012972474916955200352003517428317504200102002030020200356411200211091020010100100001700001270127111999520000200102003620036200362003620036
200242003515000000006119918252001020010200101297247491695520035200351742831750420010200203002020035641120021109102001010010000006001270127111999520000200102003620036200362003620036
20024200351500000000611991825200102001020010129724749169552003520035174283175042001020020300202003564112002110910200101001000000138001270127111999520000200102003620036200362003620036
2002420035150000000025119918252001020010200101297247491695520035200351742831750420010200203002020035641120021109102001010010000000001270127211999520000200102003620036200362003620036
200242003515000000006119918252001020010200101297247491695520035200351742831750420010200203002020035641120021109102001010010000000001270127111999520000200102003620036200362003620036

Test 5: Latency 4->3

Chain cycles: 1

Code:

  subs w0, w1, w2, sxtw
  cset x2, cc
  mov x0, 1
  mov x1, 2
  mov x2, 3
  mov x3, 4
  mov x4, 5

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code, minus 1 chain cycle): 1.0035

retire uop (01)cycle (02)03mmu table walk data (08)l2 tlb miss data (0b)18191e1f3a3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb access (a0)ld unit uop (a6)l1d cache writeback (a8)a9acc2branch cond mispred nonspec (c5)branch mispred nonspec (cb)cdcfd5map dispatch bubble (d6)fetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
2020420035150000000061199302520100201002011212972330491695520035200351742571748620112202243023620035641120201100991002010010100000000111131901602001220000201002003620036200362003620036
2020420035150000000061199302520100201002011212972330491695520035200351742571748620112202243023620035641120201100991002010010100000000111131901602001220000201002003620036200362003620036
20204200351500000000187199302520100201002011212972330491695520035200351742571748620112202243023620035641120201100991002010010100000000111131901602001220000201002003620036200362003620036
2020420035150000000061199302520100201002011212972330491695520035200351742581748520112202243023620035641120201100991002010010100000000111131901602001220000201002003620036200362003620036
2020420035150000000061199302520100201002011212972330491695520035200351742581748520112202243023620035641120201100991002010010100000000111132001602001220000201002003620036200362003620036
2020420035150000000082199302520100201002011212972330491695520035200351742581748520112202243023620035641120201100991002010010100000000111132001602001220000201002003620036200362003620036
2020420035150000000061199302520100201002011212972330491695520035200351742571748620112202243023620035641120201100991002010010100000000111131901602001220000201002003620036200362003620036
2020420035150000000061199302520100201002011212972331491695520035200351742581748620112202243023620035641120201100991002010010100000000111132001602001220000201002003620036200362003620036
20204200351500000000354199302520100201002011212972330491695520035200351742571748620112202243023620035641120201100991002010010100000000111131901602001220000201002003620036200362003620036
20204200351490000210084199302520100201002011212972330491695520035200351742581748520112202243023620035642120201100991002010010100000000111132011602001220000201002003620081200362003620036

1000 unrolls and 10 iterations

Result (median cycles for code, minus 1 chain cycle): 1.0035

retire uop (01)cycle (02)031e1f3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d cache writeback (a8)acbranch cond mispred nonspec (c5)cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
200242003515090611991825200102001020010129724714916955200352003517428317504200102002030020200356411200211091020010100100301270227221999520000200102003620036200362003620036
200242003514900611991825200102001020010129724714916955200352003517428317504200102002030194200356411200211091020010100101301270227221999520000200102003620036200362003620036
2002420035150002511991825200102001020010129724714916955200352003517428317504200102002030020200356411200211091020010100104001270227221999520000200102003620036200362003620036
200242003515000611991825200102001020010129724714916955200352003517428317504200102002030020200356411200211091020010100104001270227221999520000200102003620036200362003620036
200242003515000611991825200102001020010129724714916955200352003517428317504200102002030020200356411200211091020010100100301270227221999520000200102003620036200362003620036
2002420035150420611991825200102001020010129724714916955200352003517428317504200102002030020200356411200211091020010100101001270227221999520000200102003620036200362003620036
200242003515000611991825200102001020010129724714916955200352003517428317504200102002030020200356411200211091020010100100001270227221999520000200102003620036200362003620036
200242003515000611991825200102001020010129724714916955200352003517428317504200102002030020200356411200211091020010100105001270227221999520000200102003620036200362003620036
2002420035150001001991825200102001020010129724714916955200352003517428317504200102002030020200356411200211091020010100105001270227321999520000200102003620036200362003620036
20024200351500061199182520010200102001012972471491695520035200351742823175042001020020300202003564112002110910200101001003001270227231999520000200102003620036200362003620036

Test 6: throughput

Count: 8

Code:

  subs w0, w8, w9, sxtw
  subs w1, w8, w9, sxtw
  subs w2, w8, w9, sxtw
  subs w3, w8, w9, sxtw
  subs w4, w8, w9, sxtw
  subs w5, w8, w9, sxtw
  subs w6, w8, w9, sxtw
  subs w7, w8, w9, sxtw
  mov x8, 9
  mov x9, 10
  mov x10, 11

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code divided by count): 0.3342

retire uop (01)cycle (02)03mmu table walk data (08)l2 tlb miss data (0b)18191e1f3a3f51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6b6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb access (a0)l1d tlb miss (a1)ld unit uop (a6)l1d cache writeback (a8)a9acc2cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
802042676120000000003525801008010080100400500049236550267352673516672316690801008020016020026735391180201100991008010010000000005110219222673180000801002673626736267362673626736
802042673520000000003525801008010080100400500049236550267352673516672316690801008020016020026735391180201100991008010010000000005110219222673180000801002673626736267362673626736
802042673520000000003525801008010080178400500049236550267352673516672316690801008020016020026735391180201100991008010010000000005110219222673180000801002673626736267362673626736
8020426735200000000017625801008010080100400500049236550267352673516672316690801008020016020026735391180201100991008010010000000005110219222673180000801002673626736267362673626736
802042673520100000003525801908010080100400500049236550267352673516672316690801008020016020026735391180201100991008010010000000005110219222673180000801002673626736267362673626736
802042673520100000003525801008010080100400500049236550267352673516672316690801008020016020026735391180201100991008010010000010005110219222673180000801002673626736267362673626736
802042673520100000003525801008010080100400500049236550267352673516672316690801008020016020026735391180201100991008010010000000005110219222673180000801002673626736267362673626736
802042673520000000003525801008010080100400500049236550267352673516672316690801008020016020026735391180201100991008010010000000005110219222673180000801002673626736267362673626736
802042673520000000003525801008010080100400500049236550267352673516672316690801008020016020026735391180201100991008010010000000005110219222673180000801002673626736267362673626736
802042673520000000003525801008010080100400500049236550267352673516672316690801008020016020026735391180201100991008010010000000005110219222673180000801002673626736267362673626736

1000 unrolls and 10 iterations

Result (median cycles for code divided by count): 0.3338

retire uop (01)cycle (02)030918191e1f3f51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)696a6d6emap stall dispatch (70)flags prf full (73)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d cache writeback (a8)accfl1i cache miss demand (d3)d5map dispatch bubble (d6)dbddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
80024267202000000035258001080010800104000504923625267052670516665031668380010800201600202670539118002110910800101000502003180332670280063800102670626706267062670626706
800242670520000000352580010800108001040005049236252670526705166650161668380010800201600202670539118002110910800101010502003180322670280000800102670626706267062670626706
80024267052000000035258001080010800104000504923625267052670516665031668380010800201600202670539118002110910800101030502003183332670280000800102670626706267062670626892
80024267052000000035258001080010800104000504923677267052670516665031668380010800201600202670539118002110910800101010502003180322670280000800102670626706267062670626706
80024267052000000035258001080010800104000504923625267052670516665031668380010800201600202670539118002110910800101000502003180332670280000800102670626706267062670626706
80024267051990000035258001080010800104000504923625267052670516665031668380010800201600202670539118002110910800101010502003180232670280000800102670626706267062670626706
80024267052000000035258001080010800104000504923625267052670516665031668380010800201600202670539118002110910800101000502003180332670280000800102670626706267062670626706
80024267052000000035258001080010800104000504923625267052670516665031668380010800201600202670539118002110910800101000502003180332670280000800102670626706267062670626706
80024267052000000035258001080010800104000504923625267052670516665031668380010800201600202670539118002110910800101000502002180332670280000800102670626706267062670626706
80024267052000000035258001080010800104000504923625267052670516665031668380010800201600202670539118002110910800101010502002180332670280000800102670626706267062670626706