@kl1/contracts 1.2.60-uat → 1.2.62-uat

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. package/dist/api-contracts/src/channel/index.d.ts +2629 -2687
  2. package/dist/api-contracts/src/channel/index.d.ts.map +1 -1
  3. package/dist/api-contracts/src/channel/validation.d.ts +10 -0
  4. package/dist/api-contracts/src/channel/validation.d.ts.map +1 -1
  5. package/dist/api-contracts/src/chat/index.d.ts +189 -285
  6. package/dist/api-contracts/src/chat/index.d.ts.map +1 -1
  7. package/dist/api-contracts/src/chat/schema.d.ts +45 -70
  8. package/dist/api-contracts/src/chat/schema.d.ts.map +1 -1
  9. package/dist/api-contracts/src/chat/validation.d.ts +72 -72
  10. package/dist/api-contracts/src/chat/validation.d.ts.map +1 -1
  11. package/dist/api-contracts/src/contract.d.ts +3632 -4224
  12. package/dist/api-contracts/src/contract.d.ts.map +1 -1
  13. package/dist/api-contracts/src/dashboard/index.d.ts +1 -290
  14. package/dist/api-contracts/src/dashboard/index.d.ts.map +1 -1
  15. package/dist/api-contracts/src/dashboard/schema.d.ts +0 -71
  16. package/dist/api-contracts/src/dashboard/schema.d.ts.map +1 -1
  17. package/dist/api-contracts/src/facebook-feed/index.d.ts +43 -59
  18. package/dist/api-contracts/src/facebook-feed/index.d.ts.map +1 -1
  19. package/dist/api-contracts/src/facebook-feed/schema.d.ts +3 -3
  20. package/dist/api-contracts/src/instagram/index.d.ts +33 -49
  21. package/dist/api-contracts/src/instagram/index.d.ts.map +1 -1
  22. package/dist/api-contracts/src/line/index.d.ts +40 -56
  23. package/dist/api-contracts/src/line/index.d.ts.map +1 -1
  24. package/dist/api-contracts/src/line/validation.d.ts +5 -5
  25. package/dist/api-contracts/src/messenger/index.d.ts +33 -49
  26. package/dist/api-contracts/src/messenger/index.d.ts.map +1 -1
  27. package/dist/api-contracts/src/sms/index.d.ts +5 -5
  28. package/dist/api-contracts/src/telegram/index.d.ts +33 -49
  29. package/dist/api-contracts/src/telegram/index.d.ts.map +1 -1
  30. package/dist/api-contracts/src/viber/index.d.ts +33 -49
  31. package/dist/api-contracts/src/viber/index.d.ts.map +1 -1
  32. package/dist/api-contracts/src/webchat/index.d.ts +33 -49
  33. package/dist/api-contracts/src/webchat/index.d.ts.map +1 -1
  34. package/dist/api-contracts/src/whatsapp/index.d.ts +39 -96
  35. package/dist/api-contracts/src/whatsapp/index.d.ts.map +1 -1
  36. package/dist/api-contracts/src/whatsapp/validation.d.ts +3 -3
  37. package/dist/api-contracts/src/workflow-rule/index.d.ts +12 -29
  38. package/dist/api-contracts/src/workflow-rule/index.d.ts.map +1 -1
  39. package/dist/entities/src/enums/chat.d.ts +0 -12
  40. package/dist/entities/src/enums/chat.d.ts.map +1 -1
  41. package/dist/index.js +39 -137
  42. package/dist/index.js.map +1 -1
  43. package/dist/index.mjs +39 -137
  44. package/dist/index.mjs.map +1 -1
  45. package/package.json +1 -1
@@ -568,7 +568,7 @@ export declare const messengerContract: {
568
568
  id: z.ZodOptional<z.ZodString>;
569
569
  message: z.ZodOptional<z.ZodString>;
570
570
  direction: z.ZodEnum<["incoming", "outgoing", "system"]>;
571
- type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "csat", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
571
+ type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
572
572
  readAt: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodDate, z.ZodString]>>>;
573
573
  metadata: z.ZodOptional<z.ZodAny>;
574
574
  platformId: z.ZodOptional<z.ZodString>;
@@ -624,7 +624,7 @@ export declare const messengerContract: {
624
624
  editedAt: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodDate, z.ZodString]>>>;
625
625
  label: z.ZodOptional<z.ZodString>;
626
626
  }, "strip", z.ZodTypeAny, {
627
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
627
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
628
628
  direction: "incoming" | "outgoing" | "system";
629
629
  id?: string | undefined;
630
630
  message?: string | undefined;
@@ -659,7 +659,7 @@ export declare const messengerContract: {
659
659
  editedAt?: string | Date | null | undefined;
660
660
  label?: string | undefined;
661
661
  }, {
662
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
662
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
663
663
  direction: "incoming" | "outgoing" | "system";
664
664
  id?: string | undefined;
665
665
  message?: string | undefined;
@@ -696,7 +696,7 @@ export declare const messengerContract: {
696
696
  }>;
697
697
  }, "strip", z.ZodTypeAny, {
698
698
  message: {
699
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
699
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
700
700
  direction: "incoming" | "outgoing" | "system";
701
701
  id?: string | undefined;
702
702
  message?: string | undefined;
@@ -826,7 +826,7 @@ export declare const messengerContract: {
826
826
  isBot: boolean | null;
827
827
  }, {
828
828
  message: {
829
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
829
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
830
830
  direction: "incoming" | "outgoing" | "system";
831
831
  id?: string | undefined;
832
832
  message?: string | undefined;
@@ -960,7 +960,7 @@ export declare const messengerContract: {
960
960
  200: z.ZodObject<{
961
961
  requestId: z.ZodString;
962
962
  data: z.ZodObject<{
963
- type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "csat", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
963
+ type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
964
964
  message: z.ZodString;
965
965
  id: z.ZodString;
966
966
  url: z.ZodString;
@@ -2477,7 +2477,6 @@ export declare const messengerContract: {
2477
2477
  channelId: string;
2478
2478
  socialPlatformId: string;
2479
2479
  }>;
2480
- csatStatus: z.ZodNullable<z.ZodString>;
2481
2480
  actor: z.ZodObject<{
2482
2481
  id: z.ZodString;
2483
2482
  createdAt: z.ZodDate;
@@ -4320,7 +4319,6 @@ export declare const messengerContract: {
4320
4319
  closedAt: Date;
4321
4320
  lastMessageAt: Date | null;
4322
4321
  isBotRoom: boolean;
4323
- csatStatus: string | null;
4324
4322
  cxlog: {
4325
4323
  id: string;
4326
4324
  channel: string | null;
@@ -4748,7 +4746,6 @@ export declare const messengerContract: {
4748
4746
  closedAt: Date;
4749
4747
  lastMessageAt: Date | null;
4750
4748
  isBotRoom: boolean;
4751
- csatStatus: string | null;
4752
4749
  cxlog: {
4753
4750
  id: string;
4754
4751
  channel: string | null;
@@ -4889,7 +4886,7 @@ export declare const messengerContract: {
4889
4886
  deletedAt: z.ZodNullable<z.ZodDate>;
4890
4887
  message: z.ZodString;
4891
4888
  direction: z.ZodEnum<["incoming", "outgoing", "system"]>;
4892
- type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "csat", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
4889
+ type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
4893
4890
  readAt: z.ZodDate;
4894
4891
  metadata: z.ZodAny;
4895
4892
  platformId: z.ZodString;
@@ -5547,7 +5544,7 @@ export declare const messengerContract: {
5547
5544
  };
5548
5545
  }>;
5549
5546
  }, "strip", z.ZodTypeAny, {
5550
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
5547
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
5551
5548
  message: string;
5552
5549
  id: string;
5553
5550
  url: string;
@@ -5709,7 +5706,7 @@ export declare const messengerContract: {
5709
5706
  metadata?: any;
5710
5707
  template?: any;
5711
5708
  }, {
5712
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
5709
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
5713
5710
  message: string;
5714
5711
  id: string;
5715
5712
  url: string;
@@ -6083,7 +6080,7 @@ export declare const messengerContract: {
6083
6080
  deletedAt: z.ZodNullable<z.ZodDate>;
6084
6081
  message: z.ZodString;
6085
6082
  direction: z.ZodEnum<["incoming", "outgoing", "system"]>;
6086
- type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "csat", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
6083
+ type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
6087
6084
  readAt: z.ZodDate;
6088
6085
  metadata: z.ZodAny;
6089
6086
  platformId: z.ZodString;
@@ -7157,7 +7154,6 @@ export declare const messengerContract: {
7157
7154
  channelId: string;
7158
7155
  socialPlatformId: string;
7159
7156
  }>;
7160
- csatStatus: z.ZodNullable<z.ZodString>;
7161
7157
  actor: z.ZodObject<{
7162
7158
  id: z.ZodString;
7163
7159
  createdAt: z.ZodDate;
@@ -9000,7 +8996,6 @@ export declare const messengerContract: {
9000
8996
  closedAt: Date;
9001
8997
  lastMessageAt: Date | null;
9002
8998
  isBotRoom: boolean;
9003
- csatStatus: string | null;
9004
8999
  cxlog: {
9005
9000
  id: string;
9006
9001
  channel: string | null;
@@ -9428,7 +9423,6 @@ export declare const messengerContract: {
9428
9423
  closedAt: Date;
9429
9424
  lastMessageAt: Date | null;
9430
9425
  isBotRoom: boolean;
9431
- csatStatus: string | null;
9432
9426
  cxlog: {
9433
9427
  id: string;
9434
9428
  channel: string | null;
@@ -9572,7 +9566,7 @@ export declare const messengerContract: {
9572
9566
  deletedAt: z.ZodNullable<z.ZodDate>;
9573
9567
  message: z.ZodString;
9574
9568
  direction: z.ZodEnum<["incoming", "outgoing", "system"]>;
9575
- type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "csat", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
9569
+ type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
9576
9570
  readAt: z.ZodDate;
9577
9571
  metadata: z.ZodAny;
9578
9572
  platformId: z.ZodString;
@@ -10230,7 +10224,7 @@ export declare const messengerContract: {
10230
10224
  };
10231
10225
  }>;
10232
10226
  }, "strip", z.ZodTypeAny, {
10233
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
10227
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
10234
10228
  message: string;
10235
10229
  id: string;
10236
10230
  url: string;
@@ -10392,7 +10386,7 @@ export declare const messengerContract: {
10392
10386
  metadata?: any;
10393
10387
  template?: any;
10394
10388
  }, {
10395
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
10389
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
10396
10390
  message: string;
10397
10391
  id: string;
10398
10392
  url: string;
@@ -11194,7 +11188,7 @@ export declare const messengerContract: {
11194
11188
  editedMessageid: z.ZodString;
11195
11189
  label: z.ZodOptional<z.ZodString>;
11196
11190
  }, "strip", z.ZodTypeAny, {
11197
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
11191
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
11198
11192
  message: string;
11199
11193
  id: string;
11200
11194
  url: string;
@@ -11629,7 +11623,6 @@ export declare const messengerContract: {
11629
11623
  closedAt: Date;
11630
11624
  lastMessageAt: Date | null;
11631
11625
  isBotRoom: boolean;
11632
- csatStatus: string | null;
11633
11626
  cxlog: {
11634
11627
  id: string;
11635
11628
  channel: string | null;
@@ -11748,7 +11741,7 @@ export declare const messengerContract: {
11748
11741
  previewUrl: string;
11749
11742
  imageSetId: string;
11750
11743
  repliedMessage: {
11751
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
11744
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
11752
11745
  message: string;
11753
11746
  id: string;
11754
11747
  url: string;
@@ -11959,7 +11952,7 @@ export declare const messengerContract: {
11959
11952
  template?: any;
11960
11953
  label?: string | undefined;
11961
11954
  }, {
11962
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
11955
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
11963
11956
  message: string;
11964
11957
  id: string;
11965
11958
  url: string;
@@ -12394,7 +12387,6 @@ export declare const messengerContract: {
12394
12387
  closedAt: Date;
12395
12388
  lastMessageAt: Date | null;
12396
12389
  isBotRoom: boolean;
12397
- csatStatus: string | null;
12398
12390
  cxlog: {
12399
12391
  id: string;
12400
12392
  channel: string | null;
@@ -12513,7 +12505,7 @@ export declare const messengerContract: {
12513
12505
  previewUrl: string;
12514
12506
  imageSetId: string;
12515
12507
  repliedMessage: {
12516
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
12508
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
12517
12509
  message: string;
12518
12510
  id: string;
12519
12511
  url: string;
@@ -12725,7 +12717,7 @@ export declare const messengerContract: {
12725
12717
  label?: string | undefined;
12726
12718
  }>>>;
12727
12719
  }, "strip", z.ZodTypeAny, {
12728
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
12720
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
12729
12721
  message: string;
12730
12722
  id: string;
12731
12723
  url: string;
@@ -13160,7 +13152,6 @@ export declare const messengerContract: {
13160
13152
  closedAt: Date;
13161
13153
  lastMessageAt: Date | null;
13162
13154
  isBotRoom: boolean;
13163
- csatStatus: string | null;
13164
13155
  cxlog: {
13165
13156
  id: string;
13166
13157
  channel: string | null;
@@ -13279,7 +13270,7 @@ export declare const messengerContract: {
13279
13270
  previewUrl: string;
13280
13271
  imageSetId: string;
13281
13272
  repliedMessage: {
13282
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
13273
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
13283
13274
  message: string;
13284
13275
  id: string;
13285
13276
  url: string;
@@ -13490,7 +13481,7 @@ export declare const messengerContract: {
13490
13481
  template?: any;
13491
13482
  metadata?: any;
13492
13483
  fromMessage?: {
13493
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
13484
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
13494
13485
  message: string;
13495
13486
  id: string;
13496
13487
  url: string;
@@ -13925,7 +13916,6 @@ export declare const messengerContract: {
13925
13916
  closedAt: Date;
13926
13917
  lastMessageAt: Date | null;
13927
13918
  isBotRoom: boolean;
13928
- csatStatus: string | null;
13929
13919
  cxlog: {
13930
13920
  id: string;
13931
13921
  channel: string | null;
@@ -14044,7 +14034,7 @@ export declare const messengerContract: {
14044
14034
  previewUrl: string;
14045
14035
  imageSetId: string;
14046
14036
  repliedMessage: {
14047
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
14037
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
14048
14038
  message: string;
14049
14039
  id: string;
14050
14040
  url: string;
@@ -14256,7 +14246,7 @@ export declare const messengerContract: {
14256
14246
  label?: string | undefined;
14257
14247
  } | null | undefined;
14258
14248
  }, {
14259
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
14249
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
14260
14250
  message: string;
14261
14251
  id: string;
14262
14252
  url: string;
@@ -14691,7 +14681,6 @@ export declare const messengerContract: {
14691
14681
  closedAt: Date;
14692
14682
  lastMessageAt: Date | null;
14693
14683
  isBotRoom: boolean;
14694
- csatStatus: string | null;
14695
14684
  cxlog: {
14696
14685
  id: string;
14697
14686
  channel: string | null;
@@ -14810,7 +14799,7 @@ export declare const messengerContract: {
14810
14799
  previewUrl: string;
14811
14800
  imageSetId: string;
14812
14801
  repliedMessage: {
14813
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
14802
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
14814
14803
  message: string;
14815
14804
  id: string;
14816
14805
  url: string;
@@ -15021,7 +15010,7 @@ export declare const messengerContract: {
15021
15010
  template?: any;
15022
15011
  metadata?: any;
15023
15012
  fromMessage?: {
15024
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
15013
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
15025
15014
  message: string;
15026
15015
  id: string;
15027
15016
  url: string;
@@ -15456,7 +15445,6 @@ export declare const messengerContract: {
15456
15445
  closedAt: Date;
15457
15446
  lastMessageAt: Date | null;
15458
15447
  isBotRoom: boolean;
15459
- csatStatus: string | null;
15460
15448
  cxlog: {
15461
15449
  id: string;
15462
15450
  channel: string | null;
@@ -15575,7 +15563,7 @@ export declare const messengerContract: {
15575
15563
  previewUrl: string;
15576
15564
  imageSetId: string;
15577
15565
  repliedMessage: {
15578
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
15566
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
15579
15567
  message: string;
15580
15568
  id: string;
15581
15569
  url: string;
@@ -15789,7 +15777,7 @@ export declare const messengerContract: {
15789
15777
  }>;
15790
15778
  }, "strip", z.ZodTypeAny, {
15791
15779
  data: {
15792
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
15780
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
15793
15781
  message: string;
15794
15782
  id: string;
15795
15783
  url: string;
@@ -16224,7 +16212,6 @@ export declare const messengerContract: {
16224
16212
  closedAt: Date;
16225
16213
  lastMessageAt: Date | null;
16226
16214
  isBotRoom: boolean;
16227
- csatStatus: string | null;
16228
16215
  cxlog: {
16229
16216
  id: string;
16230
16217
  channel: string | null;
@@ -16343,7 +16330,7 @@ export declare const messengerContract: {
16343
16330
  previewUrl: string;
16344
16331
  imageSetId: string;
16345
16332
  repliedMessage: {
16346
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
16333
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
16347
16334
  message: string;
16348
16335
  id: string;
16349
16336
  url: string;
@@ -16554,7 +16541,7 @@ export declare const messengerContract: {
16554
16541
  template?: any;
16555
16542
  metadata?: any;
16556
16543
  fromMessage?: {
16557
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
16544
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
16558
16545
  message: string;
16559
16546
  id: string;
16560
16547
  url: string;
@@ -16989,7 +16976,6 @@ export declare const messengerContract: {
16989
16976
  closedAt: Date;
16990
16977
  lastMessageAt: Date | null;
16991
16978
  isBotRoom: boolean;
16992
- csatStatus: string | null;
16993
16979
  cxlog: {
16994
16980
  id: string;
16995
16981
  channel: string | null;
@@ -17108,7 +17094,7 @@ export declare const messengerContract: {
17108
17094
  previewUrl: string;
17109
17095
  imageSetId: string;
17110
17096
  repliedMessage: {
17111
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
17097
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
17112
17098
  message: string;
17113
17099
  id: string;
17114
17100
  url: string;
@@ -17323,7 +17309,7 @@ export declare const messengerContract: {
17323
17309
  requestId: string;
17324
17310
  }, {
17325
17311
  data: {
17326
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
17312
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
17327
17313
  message: string;
17328
17314
  id: string;
17329
17315
  url: string;
@@ -17758,7 +17744,6 @@ export declare const messengerContract: {
17758
17744
  closedAt: Date;
17759
17745
  lastMessageAt: Date | null;
17760
17746
  isBotRoom: boolean;
17761
- csatStatus: string | null;
17762
17747
  cxlog: {
17763
17748
  id: string;
17764
17749
  channel: string | null;
@@ -17877,7 +17862,7 @@ export declare const messengerContract: {
17877
17862
  previewUrl: string;
17878
17863
  imageSetId: string;
17879
17864
  repliedMessage: {
17880
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
17865
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
17881
17866
  message: string;
17882
17867
  id: string;
17883
17868
  url: string;
@@ -18088,7 +18073,7 @@ export declare const messengerContract: {
18088
18073
  template?: any;
18089
18074
  metadata?: any;
18090
18075
  fromMessage?: {
18091
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
18076
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
18092
18077
  message: string;
18093
18078
  id: string;
18094
18079
  url: string;
@@ -18523,7 +18508,6 @@ export declare const messengerContract: {
18523
18508
  closedAt: Date;
18524
18509
  lastMessageAt: Date | null;
18525
18510
  isBotRoom: boolean;
18526
- csatStatus: string | null;
18527
18511
  cxlog: {
18528
18512
  id: string;
18529
18513
  channel: string | null;
@@ -18642,7 +18626,7 @@ export declare const messengerContract: {
18642
18626
  previewUrl: string;
18643
18627
  imageSetId: string;
18644
18628
  repliedMessage: {
18645
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
18629
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
18646
18630
  message: string;
18647
18631
  id: string;
18648
18632
  url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/messenger/index.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAKpB,OAAO,EACL,aAAa,EAKd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC9E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,wBAAwB,CAChC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,0BAA0B,CAClC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsH5B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/messenger/index.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAKpB,OAAO,EACL,aAAa,EAKd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC9E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,wBAAwB,CAChC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,0BAA0B,CAClC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsH5B,CAAC"}