{"version":3,"file":"b4908bd1.js","sources":["../../../node_modules/@shopify/hydrogen/dist/esnext/components/CartProvider/cart-queries.js","../../../node_modules/@shopify/hydrogen/dist/esnext/storefront-api-types.js","../../../node_modules/@shopify/hydrogen/dist/esnext/components/CartProvider/hooks.client.js","../../../node_modules/@shopify/hydrogen/dist/esnext/components/CartProvider/context.js","../../../node_modules/@shopify/hydrogen/dist/esnext/components/CartProvider/constants.js","../../../node_modules/@shopify/hydrogen/dist/esnext/components/CartProvider/CartProvider.client.js","../../../node_modules/@shopify/hydrogen/dist/esnext/components/CartLineProvider/context.js","../../../node_modules/kolorist/dist/module/index.js"],"sourcesContent":["export const CartLineAdd = (cartFragment) => `\nmutation CartLineAdd($cartId: ID!, $lines: [CartLineInput!]!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {\n cartLinesAdd(cartId: $cartId, lines: $lines) {\n cart {\n ...CartFragment\n }\n }\n}\n\n${cartFragment}\n`;\nexport const CartCreate = (cartFragment) => `\nmutation CartCreate($input: CartInput!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {\n cartCreate(input: $input) {\n cart {\n ...CartFragment\n }\n }\n}\n\n${cartFragment}\n`;\nexport const CartLineRemove = (cartFragment) => `\nmutation CartLineRemove($cartId: ID!, $lines: [ID!]!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {\n cartLinesRemove(cartId: $cartId, lineIds: $lines) {\n cart {\n ...CartFragment\n }\n }\n}\n\n${cartFragment}\n`;\nexport const CartLineUpdate = (cartFragment) => `\nmutation CartLineUpdate($cartId: ID!, $lines: [CartLineUpdateInput!]!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\n cart {\n ...CartFragment\n }\n }\n}\n\n${cartFragment}\n`;\nexport const CartNoteUpdate = (cartFragment) => `\nmutation CartNoteUpdate($cartId: ID!, $note: String, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {\n cartNoteUpdate(cartId: $cartId, note: $note) {\n cart {\n ...CartFragment\n }\n }\n}\n\n${cartFragment}\n`;\nexport const CartBuyerIdentityUpdate = (cartFragment) => `\nmutation CartBuyerIdentityUpdate(\n $cartId: ID!\n $buyerIdentity: CartBuyerIdentityInput!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n) @inContext(country: $country) {\n cartBuyerIdentityUpdate(cartId: $cartId, buyerIdentity: $buyerIdentity) {\n cart {\n ...CartFragment\n }\n }\n}\n\n${cartFragment}\n`;\nexport const CartAttributesUpdate = (cartFragment) => `\nmutation CartAttributesUpdate($attributes: [AttributeInput!]!, $cartId: ID!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {\n cartAttributesUpdate(attributes: $attributes, cartId: $cartId) {\n cart {\n ...CartFragment\n }\n }\n}\n\n${cartFragment}\n`;\nexport const CartDiscountCodesUpdate = (cartFragment) => `\nmutation CartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!], $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {\n cartDiscountCodesUpdate(cartId: $cartId, discountCodes: $discountCodes) {\n cart {\n ...CartFragment\n }\n }\n}\n\n${cartFragment}\n`;\nexport const CartQuery = (cartFragment) => `\nquery CartQuery($id: ID!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {\n cart(id: $id) {\n ...CartFragment\n }\n}\n\n${cartFragment}\n`;\nexport const defaultCartFragment = `\nfragment CartFragment on Cart {\n id\n checkoutUrl\n totalQuantity\n buyerIdentity {\n countryCode\n customer {\n id\n email\n firstName\n lastName\n displayName\n }\n email\n phone\n }\n lines(first: $numCartLines) {\n edges {\n node {\n id\n quantity\n attributes {\n key\n value\n }\n cost {\n totalAmount {\n amount\n currencyCode\n }\n compareAtAmountPerQuantity {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n id\n availableForSale\n compareAtPriceV2 {\n ...MoneyFragment\n }\n priceV2 {\n ...MoneyFragment\n }\n requiresShipping\n title\n image {\n ...ImageFragment\n }\n product {\n handle\n title\n id\n }\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n cost {\n subtotalAmount {\n ...MoneyFragment\n }\n totalAmount {\n ...MoneyFragment\n }\n totalDutyAmount {\n ...MoneyFragment\n }\n totalTaxAmount {\n ...MoneyFragment\n }\n }\n note\n attributes {\n key\n value\n }\n discountCodes {\n code\n }\n}\n\nfragment MoneyFragment on MoneyV2 {\n currencyCode\n amount\n}\nfragment ImageFragment on Image {\n id\n url\n altText\n width\n height\n}\n`;\n","/** The set of valid sort keys for the Article query. */\nexport var ArticleSortKeys;\n(function (ArticleSortKeys) {\n /** Sort by the `author` value. */\n ArticleSortKeys[\"Author\"] = \"AUTHOR\";\n /** Sort by the `blog_title` value. */\n ArticleSortKeys[\"BlogTitle\"] = \"BLOG_TITLE\";\n /** Sort by the `id` value. */\n ArticleSortKeys[\"Id\"] = \"ID\";\n /** Sort by the `published_at` value. */\n ArticleSortKeys[\"PublishedAt\"] = \"PUBLISHED_AT\";\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n ArticleSortKeys[\"Relevance\"] = \"RELEVANCE\";\n /** Sort by the `title` value. */\n ArticleSortKeys[\"Title\"] = \"TITLE\";\n /** Sort by the `updated_at` value. */\n ArticleSortKeys[\"UpdatedAt\"] = \"UPDATED_AT\";\n})(ArticleSortKeys || (ArticleSortKeys = {}));\n/** The set of valid sort keys for the Blog query. */\nexport var BlogSortKeys;\n(function (BlogSortKeys) {\n /** Sort by the `handle` value. */\n BlogSortKeys[\"Handle\"] = \"HANDLE\";\n /** Sort by the `id` value. */\n BlogSortKeys[\"Id\"] = \"ID\";\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n BlogSortKeys[\"Relevance\"] = \"RELEVANCE\";\n /** Sort by the `title` value. */\n BlogSortKeys[\"Title\"] = \"TITLE\";\n})(BlogSortKeys || (BlogSortKeys = {}));\n/** Card brand, such as Visa or Mastercard, which can be used for payments. */\nexport var CardBrand;\n(function (CardBrand) {\n /** American Express. */\n CardBrand[\"AmericanExpress\"] = \"AMERICAN_EXPRESS\";\n /** Diners Club. */\n CardBrand[\"DinersClub\"] = \"DINERS_CLUB\";\n /** Discover. */\n CardBrand[\"Discover\"] = \"DISCOVER\";\n /** JCB. */\n CardBrand[\"Jcb\"] = \"JCB\";\n /** Mastercard. */\n CardBrand[\"Mastercard\"] = \"MASTERCARD\";\n /** Visa. */\n CardBrand[\"Visa\"] = \"VISA\";\n})(CardBrand || (CardBrand = {}));\n/** Possible error codes that can be returned by `CartUserError`. */\nexport var CartErrorCode;\n(function (CartErrorCode) {\n /** The input value is invalid. */\n CartErrorCode[\"Invalid\"] = \"INVALID\";\n /** Merchandise line was not found in cart. */\n CartErrorCode[\"InvalidMerchandiseLine\"] = \"INVALID_MERCHANDISE_LINE\";\n /** The input value should be less than the maximum value allowed. */\n CartErrorCode[\"LessThan\"] = \"LESS_THAN\";\n /** Missing discount code. */\n CartErrorCode[\"MissingDiscountCode\"] = \"MISSING_DISCOUNT_CODE\";\n /** Missing note. */\n CartErrorCode[\"MissingNote\"] = \"MISSING_NOTE\";\n})(CartErrorCode || (CartErrorCode = {}));\n/** Possible error codes that can be returned by `CheckoutUserError`. */\nexport var CheckoutErrorCode;\n(function (CheckoutErrorCode) {\n /** Checkout is already completed. */\n CheckoutErrorCode[\"AlreadyCompleted\"] = \"ALREADY_COMPLETED\";\n /** Input email contains an invalid domain name. */\n CheckoutErrorCode[\"BadDomain\"] = \"BAD_DOMAIN\";\n /** The input value is blank. */\n CheckoutErrorCode[\"Blank\"] = \"BLANK\";\n /** Cart does not meet discount requirements notice. */\n CheckoutErrorCode[\"CartDoesNotMeetDiscountRequirementsNotice\"] = \"CART_DOES_NOT_MEET_DISCOUNT_REQUIREMENTS_NOTICE\";\n /** Customer already used once per customer discount notice. */\n CheckoutErrorCode[\"CustomerAlreadyUsedOncePerCustomerDiscountNotice\"] = \"CUSTOMER_ALREADY_USED_ONCE_PER_CUSTOMER_DISCOUNT_NOTICE\";\n /** Discount already applied. */\n CheckoutErrorCode[\"DiscountAlreadyApplied\"] = \"DISCOUNT_ALREADY_APPLIED\";\n /** Discount disabled. */\n CheckoutErrorCode[\"DiscountDisabled\"] = \"DISCOUNT_DISABLED\";\n /** Discount expired. */\n CheckoutErrorCode[\"DiscountExpired\"] = \"DISCOUNT_EXPIRED\";\n /** Discount limit reached. */\n CheckoutErrorCode[\"DiscountLimitReached\"] = \"DISCOUNT_LIMIT_REACHED\";\n /** Discount not found. */\n CheckoutErrorCode[\"DiscountNotFound\"] = \"DISCOUNT_NOT_FOUND\";\n /** Checkout is already completed. */\n CheckoutErrorCode[\"Empty\"] = \"EMPTY\";\n /** Queue token has expired. */\n CheckoutErrorCode[\"ExpiredQueueToken\"] = \"EXPIRED_QUEUE_TOKEN\";\n /** Gift card has already been applied. */\n CheckoutErrorCode[\"GiftCardAlreadyApplied\"] = \"GIFT_CARD_ALREADY_APPLIED\";\n /** Gift card code is invalid. */\n CheckoutErrorCode[\"GiftCardCodeInvalid\"] = \"GIFT_CARD_CODE_INVALID\";\n /** Gift card currency does not match checkout currency. */\n CheckoutErrorCode[\"GiftCardCurrencyMismatch\"] = \"GIFT_CARD_CURRENCY_MISMATCH\";\n /** Gift card has no funds left. */\n CheckoutErrorCode[\"GiftCardDepleted\"] = \"GIFT_CARD_DEPLETED\";\n /** Gift card is disabled. */\n CheckoutErrorCode[\"GiftCardDisabled\"] = \"GIFT_CARD_DISABLED\";\n /** Gift card is expired. */\n CheckoutErrorCode[\"GiftCardExpired\"] = \"GIFT_CARD_EXPIRED\";\n /** Gift card was not found. */\n CheckoutErrorCode[\"GiftCardNotFound\"] = \"GIFT_CARD_NOT_FOUND\";\n /** Gift card cannot be applied to a checkout that contains a gift card. */\n CheckoutErrorCode[\"GiftCardUnusable\"] = \"GIFT_CARD_UNUSABLE\";\n /** The input value should be greater than or equal to the minimum value allowed. */\n CheckoutErrorCode[\"GreaterThanOrEqualTo\"] = \"GREATER_THAN_OR_EQUAL_TO\";\n /** Higher value discount applied. */\n CheckoutErrorCode[\"HigherValueDiscountApplied\"] = \"HIGHER_VALUE_DISCOUNT_APPLIED\";\n /** The input value is invalid. */\n CheckoutErrorCode[\"Invalid\"] = \"INVALID\";\n /** Cannot specify country and presentment currency code. */\n CheckoutErrorCode[\"InvalidCountryAndCurrency\"] = \"INVALID_COUNTRY_AND_CURRENCY\";\n /** Input Zip is invalid for country provided. */\n CheckoutErrorCode[\"InvalidForCountry\"] = \"INVALID_FOR_COUNTRY\";\n /** Input Zip is invalid for country and province provided. */\n CheckoutErrorCode[\"InvalidForCountryAndProvince\"] = \"INVALID_FOR_COUNTRY_AND_PROVINCE\";\n /** Invalid province in country. */\n CheckoutErrorCode[\"InvalidProvinceInCountry\"] = \"INVALID_PROVINCE_IN_COUNTRY\";\n /** Queue token is invalid. */\n CheckoutErrorCode[\"InvalidQueueToken\"] = \"INVALID_QUEUE_TOKEN\";\n /** Invalid region in country. */\n CheckoutErrorCode[\"InvalidRegionInCountry\"] = \"INVALID_REGION_IN_COUNTRY\";\n /** Invalid state in country. */\n CheckoutErrorCode[\"InvalidStateInCountry\"] = \"INVALID_STATE_IN_COUNTRY\";\n /** The input value should be less than the maximum value allowed. */\n CheckoutErrorCode[\"LessThan\"] = \"LESS_THAN\";\n /** The input value should be less than or equal to the maximum value allowed. */\n CheckoutErrorCode[\"LessThanOrEqualTo\"] = \"LESS_THAN_OR_EQUAL_TO\";\n /** Line item was not found in checkout. */\n CheckoutErrorCode[\"LineItemNotFound\"] = \"LINE_ITEM_NOT_FOUND\";\n /** Checkout is locked. */\n CheckoutErrorCode[\"Locked\"] = \"LOCKED\";\n /** Maximum number of discount codes limit reached. */\n CheckoutErrorCode[\"MaximumDiscountCodeLimitReached\"] = \"MAXIMUM_DISCOUNT_CODE_LIMIT_REACHED\";\n /** Missing payment input. */\n CheckoutErrorCode[\"MissingPaymentInput\"] = \"MISSING_PAYMENT_INPUT\";\n /** Not enough in stock. */\n CheckoutErrorCode[\"NotEnoughInStock\"] = \"NOT_ENOUGH_IN_STOCK\";\n /** Input value is not supported. */\n CheckoutErrorCode[\"NotSupported\"] = \"NOT_SUPPORTED\";\n /** The input value needs to be blank. */\n CheckoutErrorCode[\"Present\"] = \"PRESENT\";\n /** Shipping rate expired. */\n CheckoutErrorCode[\"ShippingRateExpired\"] = \"SHIPPING_RATE_EXPIRED\";\n /** Throttled during checkout. */\n CheckoutErrorCode[\"ThrottledDuringCheckout\"] = \"THROTTLED_DURING_CHECKOUT\";\n /** The input value is too long. */\n CheckoutErrorCode[\"TooLong\"] = \"TOO_LONG\";\n /** The amount of the payment does not match the value to be paid. */\n CheckoutErrorCode[\"TotalPriceMismatch\"] = \"TOTAL_PRICE_MISMATCH\";\n /** Unable to apply discount. */\n CheckoutErrorCode[\"UnableToApply\"] = \"UNABLE_TO_APPLY\";\n})(CheckoutErrorCode || (CheckoutErrorCode = {}));\n/** The set of valid sort keys for the Collection query. */\nexport var CollectionSortKeys;\n(function (CollectionSortKeys) {\n /** Sort by the `id` value. */\n CollectionSortKeys[\"Id\"] = \"ID\";\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n CollectionSortKeys[\"Relevance\"] = \"RELEVANCE\";\n /** Sort by the `title` value. */\n CollectionSortKeys[\"Title\"] = \"TITLE\";\n /** Sort by the `updated_at` value. */\n CollectionSortKeys[\"UpdatedAt\"] = \"UPDATED_AT\";\n})(CollectionSortKeys || (CollectionSortKeys = {}));\n/**\n * The code designating a country/region, which generally follows ISO 3166-1 alpha-2 guidelines.\n * If a territory doesn't have a country code value in the `CountryCode` enum, then it might be considered a subdivision\n * of another country. For example, the territories associated with Spain are represented by the country code `ES`,\n * and the territories associated with the United States of America are represented by the country code `US`.\n *\n */\nexport var CountryCode;\n(function (CountryCode) {\n /** Ascension Island. */\n CountryCode[\"Ac\"] = \"AC\";\n /** Andorra. */\n CountryCode[\"Ad\"] = \"AD\";\n /** United Arab Emirates. */\n CountryCode[\"Ae\"] = \"AE\";\n /** Afghanistan. */\n CountryCode[\"Af\"] = \"AF\";\n /** Antigua & Barbuda. */\n CountryCode[\"Ag\"] = \"AG\";\n /** Anguilla. */\n CountryCode[\"Ai\"] = \"AI\";\n /** Albania. */\n CountryCode[\"Al\"] = \"AL\";\n /** Armenia. */\n CountryCode[\"Am\"] = \"AM\";\n /** Netherlands Antilles. */\n CountryCode[\"An\"] = \"AN\";\n /** Angola. */\n CountryCode[\"Ao\"] = \"AO\";\n /** Argentina. */\n CountryCode[\"Ar\"] = \"AR\";\n /** Austria. */\n CountryCode[\"At\"] = \"AT\";\n /** Australia. */\n CountryCode[\"Au\"] = \"AU\";\n /** Aruba. */\n CountryCode[\"Aw\"] = \"AW\";\n /** Åland Islands. */\n CountryCode[\"Ax\"] = \"AX\";\n /** Azerbaijan. */\n CountryCode[\"Az\"] = \"AZ\";\n /** Bosnia & Herzegovina. */\n CountryCode[\"Ba\"] = \"BA\";\n /** Barbados. */\n CountryCode[\"Bb\"] = \"BB\";\n /** Bangladesh. */\n CountryCode[\"Bd\"] = \"BD\";\n /** Belgium. */\n CountryCode[\"Be\"] = \"BE\";\n /** Burkina Faso. */\n CountryCode[\"Bf\"] = \"BF\";\n /** Bulgaria. */\n CountryCode[\"Bg\"] = \"BG\";\n /** Bahrain. */\n CountryCode[\"Bh\"] = \"BH\";\n /** Burundi. */\n CountryCode[\"Bi\"] = \"BI\";\n /** Benin. */\n CountryCode[\"Bj\"] = \"BJ\";\n /** St. Barthélemy. */\n CountryCode[\"Bl\"] = \"BL\";\n /** Bermuda. */\n CountryCode[\"Bm\"] = \"BM\";\n /** Brunei. */\n CountryCode[\"Bn\"] = \"BN\";\n /** Bolivia. */\n CountryCode[\"Bo\"] = \"BO\";\n /** Caribbean Netherlands. */\n CountryCode[\"Bq\"] = \"BQ\";\n /** Brazil. */\n CountryCode[\"Br\"] = \"BR\";\n /** Bahamas. */\n CountryCode[\"Bs\"] = \"BS\";\n /** Bhutan. */\n CountryCode[\"Bt\"] = \"BT\";\n /** Bouvet Island. */\n CountryCode[\"Bv\"] = \"BV\";\n /** Botswana. */\n CountryCode[\"Bw\"] = \"BW\";\n /** Belarus. */\n CountryCode[\"By\"] = \"BY\";\n /** Belize. */\n CountryCode[\"Bz\"] = \"BZ\";\n /** Canada. */\n CountryCode[\"Ca\"] = \"CA\";\n /** Cocos (Keeling) Islands. */\n CountryCode[\"Cc\"] = \"CC\";\n /** Congo - Kinshasa. */\n CountryCode[\"Cd\"] = \"CD\";\n /** Central African Republic. */\n CountryCode[\"Cf\"] = \"CF\";\n /** Congo - Brazzaville. */\n CountryCode[\"Cg\"] = \"CG\";\n /** Switzerland. */\n CountryCode[\"Ch\"] = \"CH\";\n /** Côte d’Ivoire. */\n CountryCode[\"Ci\"] = \"CI\";\n /** Cook Islands. */\n CountryCode[\"Ck\"] = \"CK\";\n /** Chile. */\n CountryCode[\"Cl\"] = \"CL\";\n /** Cameroon. */\n CountryCode[\"Cm\"] = \"CM\";\n /** China. */\n CountryCode[\"Cn\"] = \"CN\";\n /** Colombia. */\n CountryCode[\"Co\"] = \"CO\";\n /** Costa Rica. */\n CountryCode[\"Cr\"] = \"CR\";\n /** Cuba. */\n CountryCode[\"Cu\"] = \"CU\";\n /** Cape Verde. */\n CountryCode[\"Cv\"] = \"CV\";\n /** Curaçao. */\n CountryCode[\"Cw\"] = \"CW\";\n /** Christmas Island. */\n CountryCode[\"Cx\"] = \"CX\";\n /** Cyprus. */\n CountryCode[\"Cy\"] = \"CY\";\n /** Czechia. */\n CountryCode[\"Cz\"] = \"CZ\";\n /** Germany. */\n CountryCode[\"De\"] = \"DE\";\n /** Djibouti. */\n CountryCode[\"Dj\"] = \"DJ\";\n /** Denmark. */\n CountryCode[\"Dk\"] = \"DK\";\n /** Dominica. */\n CountryCode[\"Dm\"] = \"DM\";\n /** Dominican Republic. */\n CountryCode[\"Do\"] = \"DO\";\n /** Algeria. */\n CountryCode[\"Dz\"] = \"DZ\";\n /** Ecuador. */\n CountryCode[\"Ec\"] = \"EC\";\n /** Estonia. */\n CountryCode[\"Ee\"] = \"EE\";\n /** Egypt. */\n CountryCode[\"Eg\"] = \"EG\";\n /** Western Sahara. */\n CountryCode[\"Eh\"] = \"EH\";\n /** Eritrea. */\n CountryCode[\"Er\"] = \"ER\";\n /** Spain. */\n CountryCode[\"Es\"] = \"ES\";\n /** Ethiopia. */\n CountryCode[\"Et\"] = \"ET\";\n /** Finland. */\n CountryCode[\"Fi\"] = \"FI\";\n /** Fiji. */\n CountryCode[\"Fj\"] = \"FJ\";\n /** Falkland Islands. */\n CountryCode[\"Fk\"] = \"FK\";\n /** Faroe Islands. */\n CountryCode[\"Fo\"] = \"FO\";\n /** France. */\n CountryCode[\"Fr\"] = \"FR\";\n /** Gabon. */\n CountryCode[\"Ga\"] = \"GA\";\n /** United Kingdom. */\n CountryCode[\"Gb\"] = \"GB\";\n /** Grenada. */\n CountryCode[\"Gd\"] = \"GD\";\n /** Georgia. */\n CountryCode[\"Ge\"] = \"GE\";\n /** French Guiana. */\n CountryCode[\"Gf\"] = \"GF\";\n /** Guernsey. */\n CountryCode[\"Gg\"] = \"GG\";\n /** Ghana. */\n CountryCode[\"Gh\"] = \"GH\";\n /** Gibraltar. */\n CountryCode[\"Gi\"] = \"GI\";\n /** Greenland. */\n CountryCode[\"Gl\"] = \"GL\";\n /** Gambia. */\n CountryCode[\"Gm\"] = \"GM\";\n /** Guinea. */\n CountryCode[\"Gn\"] = \"GN\";\n /** Guadeloupe. */\n CountryCode[\"Gp\"] = \"GP\";\n /** Equatorial Guinea. */\n CountryCode[\"Gq\"] = \"GQ\";\n /** Greece. */\n CountryCode[\"Gr\"] = \"GR\";\n /** South Georgia & South Sandwich Islands. */\n CountryCode[\"Gs\"] = \"GS\";\n /** Guatemala. */\n CountryCode[\"Gt\"] = \"GT\";\n /** Guinea-Bissau. */\n CountryCode[\"Gw\"] = \"GW\";\n /** Guyana. */\n CountryCode[\"Gy\"] = \"GY\";\n /** Hong Kong SAR. */\n CountryCode[\"Hk\"] = \"HK\";\n /** Heard & McDonald Islands. */\n CountryCode[\"Hm\"] = \"HM\";\n /** Honduras. */\n CountryCode[\"Hn\"] = \"HN\";\n /** Croatia. */\n CountryCode[\"Hr\"] = \"HR\";\n /** Haiti. */\n CountryCode[\"Ht\"] = \"HT\";\n /** Hungary. */\n CountryCode[\"Hu\"] = \"HU\";\n /** Indonesia. */\n CountryCode[\"Id\"] = \"ID\";\n /** Ireland. */\n CountryCode[\"Ie\"] = \"IE\";\n /** Israel. */\n CountryCode[\"Il\"] = \"IL\";\n /** Isle of Man. */\n CountryCode[\"Im\"] = \"IM\";\n /** India. */\n CountryCode[\"In\"] = \"IN\";\n /** British Indian Ocean Territory. */\n CountryCode[\"Io\"] = \"IO\";\n /** Iraq. */\n CountryCode[\"Iq\"] = \"IQ\";\n /** Iran. */\n CountryCode[\"Ir\"] = \"IR\";\n /** Iceland. */\n CountryCode[\"Is\"] = \"IS\";\n /** Italy. */\n CountryCode[\"It\"] = \"IT\";\n /** Jersey. */\n CountryCode[\"Je\"] = \"JE\";\n /** Jamaica. */\n CountryCode[\"Jm\"] = \"JM\";\n /** Jordan. */\n CountryCode[\"Jo\"] = \"JO\";\n /** Japan. */\n CountryCode[\"Jp\"] = \"JP\";\n /** Kenya. */\n CountryCode[\"Ke\"] = \"KE\";\n /** Kyrgyzstan. */\n CountryCode[\"Kg\"] = \"KG\";\n /** Cambodia. */\n CountryCode[\"Kh\"] = \"KH\";\n /** Kiribati. */\n CountryCode[\"Ki\"] = \"KI\";\n /** Comoros. */\n CountryCode[\"Km\"] = \"KM\";\n /** St. Kitts & Nevis. */\n CountryCode[\"Kn\"] = \"KN\";\n /** North Korea. */\n CountryCode[\"Kp\"] = \"KP\";\n /** South Korea. */\n CountryCode[\"Kr\"] = \"KR\";\n /** Kuwait. */\n CountryCode[\"Kw\"] = \"KW\";\n /** Cayman Islands. */\n CountryCode[\"Ky\"] = \"KY\";\n /** Kazakhstan. */\n CountryCode[\"Kz\"] = \"KZ\";\n /** Laos. */\n CountryCode[\"La\"] = \"LA\";\n /** Lebanon. */\n CountryCode[\"Lb\"] = \"LB\";\n /** St. Lucia. */\n CountryCode[\"Lc\"] = \"LC\";\n /** Liechtenstein. */\n CountryCode[\"Li\"] = \"LI\";\n /** Sri Lanka. */\n CountryCode[\"Lk\"] = \"LK\";\n /** Liberia. */\n CountryCode[\"Lr\"] = \"LR\";\n /** Lesotho. */\n CountryCode[\"Ls\"] = \"LS\";\n /** Lithuania. */\n CountryCode[\"Lt\"] = \"LT\";\n /** Luxembourg. */\n CountryCode[\"Lu\"] = \"LU\";\n /** Latvia. */\n CountryCode[\"Lv\"] = \"LV\";\n /** Libya. */\n CountryCode[\"Ly\"] = \"LY\";\n /** Morocco. */\n CountryCode[\"Ma\"] = \"MA\";\n /** Monaco. */\n CountryCode[\"Mc\"] = \"MC\";\n /** Moldova. */\n CountryCode[\"Md\"] = \"MD\";\n /** Montenegro. */\n CountryCode[\"Me\"] = \"ME\";\n /** St. Martin. */\n CountryCode[\"Mf\"] = \"MF\";\n /** Madagascar. */\n CountryCode[\"Mg\"] = \"MG\";\n /** North Macedonia. */\n CountryCode[\"Mk\"] = \"MK\";\n /** Mali. */\n CountryCode[\"Ml\"] = \"ML\";\n /** Myanmar (Burma). */\n CountryCode[\"Mm\"] = \"MM\";\n /** Mongolia. */\n CountryCode[\"Mn\"] = \"MN\";\n /** Macao SAR. */\n CountryCode[\"Mo\"] = \"MO\";\n /** Martinique. */\n CountryCode[\"Mq\"] = \"MQ\";\n /** Mauritania. */\n CountryCode[\"Mr\"] = \"MR\";\n /** Montserrat. */\n CountryCode[\"Ms\"] = \"MS\";\n /** Malta. */\n CountryCode[\"Mt\"] = \"MT\";\n /** Mauritius. */\n CountryCode[\"Mu\"] = \"MU\";\n /** Maldives. */\n CountryCode[\"Mv\"] = \"MV\";\n /** Malawi. */\n CountryCode[\"Mw\"] = \"MW\";\n /** Mexico. */\n CountryCode[\"Mx\"] = \"MX\";\n /** Malaysia. */\n CountryCode[\"My\"] = \"MY\";\n /** Mozambique. */\n CountryCode[\"Mz\"] = \"MZ\";\n /** Namibia. */\n CountryCode[\"Na\"] = \"NA\";\n /** New Caledonia. */\n CountryCode[\"Nc\"] = \"NC\";\n /** Niger. */\n CountryCode[\"Ne\"] = \"NE\";\n /** Norfolk Island. */\n CountryCode[\"Nf\"] = \"NF\";\n /** Nigeria. */\n CountryCode[\"Ng\"] = \"NG\";\n /** Nicaragua. */\n CountryCode[\"Ni\"] = \"NI\";\n /** Netherlands. */\n CountryCode[\"Nl\"] = \"NL\";\n /** Norway. */\n CountryCode[\"No\"] = \"NO\";\n /** Nepal. */\n CountryCode[\"Np\"] = \"NP\";\n /** Nauru. */\n CountryCode[\"Nr\"] = \"NR\";\n /** Niue. */\n CountryCode[\"Nu\"] = \"NU\";\n /** New Zealand. */\n CountryCode[\"Nz\"] = \"NZ\";\n /** Oman. */\n CountryCode[\"Om\"] = \"OM\";\n /** Panama. */\n CountryCode[\"Pa\"] = \"PA\";\n /** Peru. */\n CountryCode[\"Pe\"] = \"PE\";\n /** French Polynesia. */\n CountryCode[\"Pf\"] = \"PF\";\n /** Papua New Guinea. */\n CountryCode[\"Pg\"] = \"PG\";\n /** Philippines. */\n CountryCode[\"Ph\"] = \"PH\";\n /** Pakistan. */\n CountryCode[\"Pk\"] = \"PK\";\n /** Poland. */\n CountryCode[\"Pl\"] = \"PL\";\n /** St. Pierre & Miquelon. */\n CountryCode[\"Pm\"] = \"PM\";\n /** Pitcairn Islands. */\n CountryCode[\"Pn\"] = \"PN\";\n /** Palestinian Territories. */\n CountryCode[\"Ps\"] = \"PS\";\n /** Portugal. */\n CountryCode[\"Pt\"] = \"PT\";\n /** Paraguay. */\n CountryCode[\"Py\"] = \"PY\";\n /** Qatar. */\n CountryCode[\"Qa\"] = \"QA\";\n /** Réunion. */\n CountryCode[\"Re\"] = \"RE\";\n /** Romania. */\n CountryCode[\"Ro\"] = \"RO\";\n /** Serbia. */\n CountryCode[\"Rs\"] = \"RS\";\n /** Russia. */\n CountryCode[\"Ru\"] = \"RU\";\n /** Rwanda. */\n CountryCode[\"Rw\"] = \"RW\";\n /** Saudi Arabia. */\n CountryCode[\"Sa\"] = \"SA\";\n /** Solomon Islands. */\n CountryCode[\"Sb\"] = \"SB\";\n /** Seychelles. */\n CountryCode[\"Sc\"] = \"SC\";\n /** Sudan. */\n CountryCode[\"Sd\"] = \"SD\";\n /** Sweden. */\n CountryCode[\"Se\"] = \"SE\";\n /** Singapore. */\n CountryCode[\"Sg\"] = \"SG\";\n /** St. Helena. */\n CountryCode[\"Sh\"] = \"SH\";\n /** Slovenia. */\n CountryCode[\"Si\"] = \"SI\";\n /** Svalbard & Jan Mayen. */\n CountryCode[\"Sj\"] = \"SJ\";\n /** Slovakia. */\n CountryCode[\"Sk\"] = \"SK\";\n /** Sierra Leone. */\n CountryCode[\"Sl\"] = \"SL\";\n /** San Marino. */\n CountryCode[\"Sm\"] = \"SM\";\n /** Senegal. */\n CountryCode[\"Sn\"] = \"SN\";\n /** Somalia. */\n CountryCode[\"So\"] = \"SO\";\n /** Suriname. */\n CountryCode[\"Sr\"] = \"SR\";\n /** South Sudan. */\n CountryCode[\"Ss\"] = \"SS\";\n /** São Tomé & Príncipe. */\n CountryCode[\"St\"] = \"ST\";\n /** El Salvador. */\n CountryCode[\"Sv\"] = \"SV\";\n /** Sint Maarten. */\n CountryCode[\"Sx\"] = \"SX\";\n /** Syria. */\n CountryCode[\"Sy\"] = \"SY\";\n /** Eswatini. */\n CountryCode[\"Sz\"] = \"SZ\";\n /** Tristan da Cunha. */\n CountryCode[\"Ta\"] = \"TA\";\n /** Turks & Caicos Islands. */\n CountryCode[\"Tc\"] = \"TC\";\n /** Chad. */\n CountryCode[\"Td\"] = \"TD\";\n /** French Southern Territories. */\n CountryCode[\"Tf\"] = \"TF\";\n /** Togo. */\n CountryCode[\"Tg\"] = \"TG\";\n /** Thailand. */\n CountryCode[\"Th\"] = \"TH\";\n /** Tajikistan. */\n CountryCode[\"Tj\"] = \"TJ\";\n /** Tokelau. */\n CountryCode[\"Tk\"] = \"TK\";\n /** Timor-Leste. */\n CountryCode[\"Tl\"] = \"TL\";\n /** Turkmenistan. */\n CountryCode[\"Tm\"] = \"TM\";\n /** Tunisia. */\n CountryCode[\"Tn\"] = \"TN\";\n /** Tonga. */\n CountryCode[\"To\"] = \"TO\";\n /** Turkey. */\n CountryCode[\"Tr\"] = \"TR\";\n /** Trinidad & Tobago. */\n CountryCode[\"Tt\"] = \"TT\";\n /** Tuvalu. */\n CountryCode[\"Tv\"] = \"TV\";\n /** Taiwan. */\n CountryCode[\"Tw\"] = \"TW\";\n /** Tanzania. */\n CountryCode[\"Tz\"] = \"TZ\";\n /** Ukraine. */\n CountryCode[\"Ua\"] = \"UA\";\n /** Uganda. */\n CountryCode[\"Ug\"] = \"UG\";\n /** U.S. Outlying Islands. */\n CountryCode[\"Um\"] = \"UM\";\n /** United States. */\n CountryCode[\"Us\"] = \"US\";\n /** Uruguay. */\n CountryCode[\"Uy\"] = \"UY\";\n /** Uzbekistan. */\n CountryCode[\"Uz\"] = \"UZ\";\n /** Vatican City. */\n CountryCode[\"Va\"] = \"VA\";\n /** St. Vincent & Grenadines. */\n CountryCode[\"Vc\"] = \"VC\";\n /** Venezuela. */\n CountryCode[\"Ve\"] = \"VE\";\n /** British Virgin Islands. */\n CountryCode[\"Vg\"] = \"VG\";\n /** Vietnam. */\n CountryCode[\"Vn\"] = \"VN\";\n /** Vanuatu. */\n CountryCode[\"Vu\"] = \"VU\";\n /** Wallis & Futuna. */\n CountryCode[\"Wf\"] = \"WF\";\n /** Samoa. */\n CountryCode[\"Ws\"] = \"WS\";\n /** Kosovo. */\n CountryCode[\"Xk\"] = \"XK\";\n /** Yemen. */\n CountryCode[\"Ye\"] = \"YE\";\n /** Mayotte. */\n CountryCode[\"Yt\"] = \"YT\";\n /** South Africa. */\n CountryCode[\"Za\"] = \"ZA\";\n /** Zambia. */\n CountryCode[\"Zm\"] = \"ZM\";\n /** Zimbabwe. */\n CountryCode[\"Zw\"] = \"ZW\";\n /** Unknown Region. */\n CountryCode[\"Zz\"] = \"ZZ\";\n})(CountryCode || (CountryCode = {}));\n/** The part of the image that should remain after cropping. */\nexport var CropRegion;\n(function (CropRegion) {\n /** Keep the bottom of the image. */\n CropRegion[\"Bottom\"] = \"BOTTOM\";\n /** Keep the center of the image. */\n CropRegion[\"Center\"] = \"CENTER\";\n /** Keep the left of the image. */\n CropRegion[\"Left\"] = \"LEFT\";\n /** Keep the right of the image. */\n CropRegion[\"Right\"] = \"RIGHT\";\n /** Keep the top of the image. */\n CropRegion[\"Top\"] = \"TOP\";\n})(CropRegion || (CropRegion = {}));\n/**\n * The three-letter currency codes that represent the world currencies used in stores. These include standard ISO 4217 codes, legacy codes,\n * and non-standard codes.\n *\n */\nexport var CurrencyCode;\n(function (CurrencyCode) {\n /** United Arab Emirates Dirham (AED). */\n CurrencyCode[\"Aed\"] = \"AED\";\n /** Afghan Afghani (AFN). */\n CurrencyCode[\"Afn\"] = \"AFN\";\n /** Albanian Lek (ALL). */\n CurrencyCode[\"All\"] = \"ALL\";\n /** Armenian Dram (AMD). */\n CurrencyCode[\"Amd\"] = \"AMD\";\n /** Netherlands Antillean Guilder. */\n CurrencyCode[\"Ang\"] = \"ANG\";\n /** Angolan Kwanza (AOA). */\n CurrencyCode[\"Aoa\"] = \"AOA\";\n /** Argentine Pesos (ARS). */\n CurrencyCode[\"Ars\"] = \"ARS\";\n /** Australian Dollars (AUD). */\n CurrencyCode[\"Aud\"] = \"AUD\";\n /** Aruban Florin (AWG). */\n CurrencyCode[\"Awg\"] = \"AWG\";\n /** Azerbaijani Manat (AZN). */\n CurrencyCode[\"Azn\"] = \"AZN\";\n /** Bosnia and Herzegovina Convertible Mark (BAM). */\n CurrencyCode[\"Bam\"] = \"BAM\";\n /** Barbadian Dollar (BBD). */\n CurrencyCode[\"Bbd\"] = \"BBD\";\n /** Bangladesh Taka (BDT). */\n CurrencyCode[\"Bdt\"] = \"BDT\";\n /** Bulgarian Lev (BGN). */\n CurrencyCode[\"Bgn\"] = \"BGN\";\n /** Bahraini Dinar (BHD). */\n CurrencyCode[\"Bhd\"] = \"BHD\";\n /** Burundian Franc (BIF). */\n CurrencyCode[\"Bif\"] = \"BIF\";\n /** Bermudian Dollar (BMD). */\n CurrencyCode[\"Bmd\"] = \"BMD\";\n /** Brunei Dollar (BND). */\n CurrencyCode[\"Bnd\"] = \"BND\";\n /** Bolivian Boliviano (BOB). */\n CurrencyCode[\"Bob\"] = \"BOB\";\n /** Brazilian Real (BRL). */\n CurrencyCode[\"Brl\"] = \"BRL\";\n /** Bahamian Dollar (BSD). */\n CurrencyCode[\"Bsd\"] = \"BSD\";\n /** Bhutanese Ngultrum (BTN). */\n CurrencyCode[\"Btn\"] = \"BTN\";\n /** Botswana Pula (BWP). */\n CurrencyCode[\"Bwp\"] = \"BWP\";\n /** Belarusian Ruble (BYN). */\n CurrencyCode[\"Byn\"] = \"BYN\";\n /** Belarusian Ruble (BYR). */\n CurrencyCode[\"Byr\"] = \"BYR\";\n /** Belize Dollar (BZD). */\n CurrencyCode[\"Bzd\"] = \"BZD\";\n /** Canadian Dollars (CAD). */\n CurrencyCode[\"Cad\"] = \"CAD\";\n /** Congolese franc (CDF). */\n CurrencyCode[\"Cdf\"] = \"CDF\";\n /** Swiss Francs (CHF). */\n CurrencyCode[\"Chf\"] = \"CHF\";\n /** Chilean Peso (CLP). */\n CurrencyCode[\"Clp\"] = \"CLP\";\n /** Chinese Yuan Renminbi (CNY). */\n CurrencyCode[\"Cny\"] = \"CNY\";\n /** Colombian Peso (COP). */\n CurrencyCode[\"Cop\"] = \"COP\";\n /** Costa Rican Colones (CRC). */\n CurrencyCode[\"Crc\"] = \"CRC\";\n /** Cape Verdean escudo (CVE). */\n CurrencyCode[\"Cve\"] = \"CVE\";\n /** Czech Koruny (CZK). */\n CurrencyCode[\"Czk\"] = \"CZK\";\n /** Djiboutian Franc (DJF). */\n CurrencyCode[\"Djf\"] = \"DJF\";\n /** Danish Kroner (DKK). */\n CurrencyCode[\"Dkk\"] = \"DKK\";\n /** Dominican Peso (DOP). */\n CurrencyCode[\"Dop\"] = \"DOP\";\n /** Algerian Dinar (DZD). */\n CurrencyCode[\"Dzd\"] = \"DZD\";\n /** Egyptian Pound (EGP). */\n CurrencyCode[\"Egp\"] = \"EGP\";\n /** Eritrean Nakfa (ERN). */\n CurrencyCode[\"Ern\"] = \"ERN\";\n /** Ethiopian Birr (ETB). */\n CurrencyCode[\"Etb\"] = \"ETB\";\n /** Euro (EUR). */\n CurrencyCode[\"Eur\"] = \"EUR\";\n /** Fijian Dollars (FJD). */\n CurrencyCode[\"Fjd\"] = \"FJD\";\n /** Falkland Islands Pounds (FKP). */\n CurrencyCode[\"Fkp\"] = \"FKP\";\n /** United Kingdom Pounds (GBP). */\n CurrencyCode[\"Gbp\"] = \"GBP\";\n /** Georgian Lari (GEL). */\n CurrencyCode[\"Gel\"] = \"GEL\";\n /** Ghanaian Cedi (GHS). */\n CurrencyCode[\"Ghs\"] = \"GHS\";\n /** Gibraltar Pounds (GIP). */\n CurrencyCode[\"Gip\"] = \"GIP\";\n /** Gambian Dalasi (GMD). */\n CurrencyCode[\"Gmd\"] = \"GMD\";\n /** Guinean Franc (GNF). */\n CurrencyCode[\"Gnf\"] = \"GNF\";\n /** Guatemalan Quetzal (GTQ). */\n CurrencyCode[\"Gtq\"] = \"GTQ\";\n /** Guyanese Dollar (GYD). */\n CurrencyCode[\"Gyd\"] = \"GYD\";\n /** Hong Kong Dollars (HKD). */\n CurrencyCode[\"Hkd\"] = \"HKD\";\n /** Honduran Lempira (HNL). */\n CurrencyCode[\"Hnl\"] = \"HNL\";\n /** Croatian Kuna (HRK). */\n CurrencyCode[\"Hrk\"] = \"HRK\";\n /** Haitian Gourde (HTG). */\n CurrencyCode[\"Htg\"] = \"HTG\";\n /** Hungarian Forint (HUF). */\n CurrencyCode[\"Huf\"] = \"HUF\";\n /** Indonesian Rupiah (IDR). */\n CurrencyCode[\"Idr\"] = \"IDR\";\n /** Israeli New Shekel (NIS). */\n CurrencyCode[\"Ils\"] = \"ILS\";\n /** Indian Rupees (INR). */\n CurrencyCode[\"Inr\"] = \"INR\";\n /** Iraqi Dinar (IQD). */\n CurrencyCode[\"Iqd\"] = \"IQD\";\n /** Iranian Rial (IRR). */\n CurrencyCode[\"Irr\"] = \"IRR\";\n /** Icelandic Kronur (ISK). */\n CurrencyCode[\"Isk\"] = \"ISK\";\n /** Jersey Pound. */\n CurrencyCode[\"Jep\"] = \"JEP\";\n /** Jamaican Dollars (JMD). */\n CurrencyCode[\"Jmd\"] = \"JMD\";\n /** Jordanian Dinar (JOD). */\n CurrencyCode[\"Jod\"] = \"JOD\";\n /** Japanese Yen (JPY). */\n CurrencyCode[\"Jpy\"] = \"JPY\";\n /** Kenyan Shilling (KES). */\n CurrencyCode[\"Kes\"] = \"KES\";\n /** Kyrgyzstani Som (KGS). */\n CurrencyCode[\"Kgs\"] = \"KGS\";\n /** Cambodian Riel. */\n CurrencyCode[\"Khr\"] = \"KHR\";\n /** Kiribati Dollar (KID). */\n CurrencyCode[\"Kid\"] = \"KID\";\n /** Comorian Franc (KMF). */\n CurrencyCode[\"Kmf\"] = \"KMF\";\n /** South Korean Won (KRW). */\n CurrencyCode[\"Krw\"] = \"KRW\";\n /** Kuwaiti Dinar (KWD). */\n CurrencyCode[\"Kwd\"] = \"KWD\";\n /** Cayman Dollars (KYD). */\n CurrencyCode[\"Kyd\"] = \"KYD\";\n /** Kazakhstani Tenge (KZT). */\n CurrencyCode[\"Kzt\"] = \"KZT\";\n /** Laotian Kip (LAK). */\n CurrencyCode[\"Lak\"] = \"LAK\";\n /** Lebanese Pounds (LBP). */\n CurrencyCode[\"Lbp\"] = \"LBP\";\n /** Sri Lankan Rupees (LKR). */\n CurrencyCode[\"Lkr\"] = \"LKR\";\n /** Liberian Dollar (LRD). */\n CurrencyCode[\"Lrd\"] = \"LRD\";\n /** Lesotho Loti (LSL). */\n CurrencyCode[\"Lsl\"] = \"LSL\";\n /** Lithuanian Litai (LTL). */\n CurrencyCode[\"Ltl\"] = \"LTL\";\n /** Latvian Lati (LVL). */\n CurrencyCode[\"Lvl\"] = \"LVL\";\n /** Libyan Dinar (LYD). */\n CurrencyCode[\"Lyd\"] = \"LYD\";\n /** Moroccan Dirham. */\n CurrencyCode[\"Mad\"] = \"MAD\";\n /** Moldovan Leu (MDL). */\n CurrencyCode[\"Mdl\"] = \"MDL\";\n /** Malagasy Ariary (MGA). */\n CurrencyCode[\"Mga\"] = \"MGA\";\n /** Macedonia Denar (MKD). */\n CurrencyCode[\"Mkd\"] = \"MKD\";\n /** Burmese Kyat (MMK). */\n CurrencyCode[\"Mmk\"] = \"MMK\";\n /** Mongolian Tugrik. */\n CurrencyCode[\"Mnt\"] = \"MNT\";\n /** Macanese Pataca (MOP). */\n CurrencyCode[\"Mop\"] = \"MOP\";\n /** Mauritanian Ouguiya (MRU). */\n CurrencyCode[\"Mru\"] = \"MRU\";\n /** Mauritian Rupee (MUR). */\n CurrencyCode[\"Mur\"] = \"MUR\";\n /** Maldivian Rufiyaa (MVR). */\n CurrencyCode[\"Mvr\"] = \"MVR\";\n /** Malawian Kwacha (MWK). */\n CurrencyCode[\"Mwk\"] = \"MWK\";\n /** Mexican Pesos (MXN). */\n CurrencyCode[\"Mxn\"] = \"MXN\";\n /** Malaysian Ringgits (MYR). */\n CurrencyCode[\"Myr\"] = \"MYR\";\n /** Mozambican Metical. */\n CurrencyCode[\"Mzn\"] = \"MZN\";\n /** Namibian Dollar. */\n CurrencyCode[\"Nad\"] = \"NAD\";\n /** Nigerian Naira (NGN). */\n CurrencyCode[\"Ngn\"] = \"NGN\";\n /** Nicaraguan Córdoba (NIO). */\n CurrencyCode[\"Nio\"] = \"NIO\";\n /** Norwegian Kroner (NOK). */\n CurrencyCode[\"Nok\"] = \"NOK\";\n /** Nepalese Rupee (NPR). */\n CurrencyCode[\"Npr\"] = \"NPR\";\n /** New Zealand Dollars (NZD). */\n CurrencyCode[\"Nzd\"] = \"NZD\";\n /** Omani Rial (OMR). */\n CurrencyCode[\"Omr\"] = \"OMR\";\n /** Panamian Balboa (PAB). */\n CurrencyCode[\"Pab\"] = \"PAB\";\n /** Peruvian Nuevo Sol (PEN). */\n CurrencyCode[\"Pen\"] = \"PEN\";\n /** Papua New Guinean Kina (PGK). */\n CurrencyCode[\"Pgk\"] = \"PGK\";\n /** Philippine Peso (PHP). */\n CurrencyCode[\"Php\"] = \"PHP\";\n /** Pakistani Rupee (PKR). */\n CurrencyCode[\"Pkr\"] = \"PKR\";\n /** Polish Zlotych (PLN). */\n CurrencyCode[\"Pln\"] = \"PLN\";\n /** Paraguayan Guarani (PYG). */\n CurrencyCode[\"Pyg\"] = \"PYG\";\n /** Qatari Rial (QAR). */\n CurrencyCode[\"Qar\"] = \"QAR\";\n /** Romanian Lei (RON). */\n CurrencyCode[\"Ron\"] = \"RON\";\n /** Serbian dinar (RSD). */\n CurrencyCode[\"Rsd\"] = \"RSD\";\n /** Russian Rubles (RUB). */\n CurrencyCode[\"Rub\"] = \"RUB\";\n /** Rwandan Franc (RWF). */\n CurrencyCode[\"Rwf\"] = \"RWF\";\n /** Saudi Riyal (SAR). */\n CurrencyCode[\"Sar\"] = \"SAR\";\n /** Solomon Islands Dollar (SBD). */\n CurrencyCode[\"Sbd\"] = \"SBD\";\n /** Seychellois Rupee (SCR). */\n CurrencyCode[\"Scr\"] = \"SCR\";\n /** Sudanese Pound (SDG). */\n CurrencyCode[\"Sdg\"] = \"SDG\";\n /** Swedish Kronor (SEK). */\n CurrencyCode[\"Sek\"] = \"SEK\";\n /** Singapore Dollars (SGD). */\n CurrencyCode[\"Sgd\"] = \"SGD\";\n /** Saint Helena Pounds (SHP). */\n CurrencyCode[\"Shp\"] = \"SHP\";\n /** Sierra Leonean Leone (SLL). */\n CurrencyCode[\"Sll\"] = \"SLL\";\n /** Somali Shilling (SOS). */\n CurrencyCode[\"Sos\"] = \"SOS\";\n /** Surinamese Dollar (SRD). */\n CurrencyCode[\"Srd\"] = \"SRD\";\n /** South Sudanese Pound (SSP). */\n CurrencyCode[\"Ssp\"] = \"SSP\";\n /** Sao Tome And Principe Dobra (STD). */\n CurrencyCode[\"Std\"] = \"STD\";\n /** Sao Tome And Principe Dobra (STN). */\n CurrencyCode[\"Stn\"] = \"STN\";\n /** Syrian Pound (SYP). */\n CurrencyCode[\"Syp\"] = \"SYP\";\n /** Swazi Lilangeni (SZL). */\n CurrencyCode[\"Szl\"] = \"SZL\";\n /** Thai baht (THB). */\n CurrencyCode[\"Thb\"] = \"THB\";\n /** Tajikistani Somoni (TJS). */\n CurrencyCode[\"Tjs\"] = \"TJS\";\n /** Turkmenistani Manat (TMT). */\n CurrencyCode[\"Tmt\"] = \"TMT\";\n /** Tunisian Dinar (TND). */\n CurrencyCode[\"Tnd\"] = \"TND\";\n /** Tongan Pa'anga (TOP). */\n CurrencyCode[\"Top\"] = \"TOP\";\n /** Turkish Lira (TRY). */\n CurrencyCode[\"Try\"] = \"TRY\";\n /** Trinidad and Tobago Dollars (TTD). */\n CurrencyCode[\"Ttd\"] = \"TTD\";\n /** Taiwan Dollars (TWD). */\n CurrencyCode[\"Twd\"] = \"TWD\";\n /** Tanzanian Shilling (TZS). */\n CurrencyCode[\"Tzs\"] = \"TZS\";\n /** Ukrainian Hryvnia (UAH). */\n CurrencyCode[\"Uah\"] = \"UAH\";\n /** Ugandan Shilling (UGX). */\n CurrencyCode[\"Ugx\"] = \"UGX\";\n /** United States Dollars (USD). */\n CurrencyCode[\"Usd\"] = \"USD\";\n /** Uruguayan Pesos (UYU). */\n CurrencyCode[\"Uyu\"] = \"UYU\";\n /** Uzbekistan som (UZS). */\n CurrencyCode[\"Uzs\"] = \"UZS\";\n /** Venezuelan Bolivares (VED). */\n CurrencyCode[\"Ved\"] = \"VED\";\n /** Venezuelan Bolivares (VEF). */\n CurrencyCode[\"Vef\"] = \"VEF\";\n /** Venezuelan Bolivares (VES). */\n CurrencyCode[\"Ves\"] = \"VES\";\n /** Vietnamese đồng (VND). */\n CurrencyCode[\"Vnd\"] = \"VND\";\n /** Vanuatu Vatu (VUV). */\n CurrencyCode[\"Vuv\"] = \"VUV\";\n /** Samoan Tala (WST). */\n CurrencyCode[\"Wst\"] = \"WST\";\n /** Central African CFA Franc (XAF). */\n CurrencyCode[\"Xaf\"] = \"XAF\";\n /** East Caribbean Dollar (XCD). */\n CurrencyCode[\"Xcd\"] = \"XCD\";\n /** West African CFA franc (XOF). */\n CurrencyCode[\"Xof\"] = \"XOF\";\n /** CFP Franc (XPF). */\n CurrencyCode[\"Xpf\"] = \"XPF\";\n /** Unrecognized currency. */\n CurrencyCode[\"Xxx\"] = \"XXX\";\n /** Yemeni Rial (YER). */\n CurrencyCode[\"Yer\"] = \"YER\";\n /** South African Rand (ZAR). */\n CurrencyCode[\"Zar\"] = \"ZAR\";\n /** Zambian Kwacha (ZMW). */\n CurrencyCode[\"Zmw\"] = \"ZMW\";\n})(CurrencyCode || (CurrencyCode = {}));\n/** Possible error codes that can be returned by `CustomerUserError`. */\nexport var CustomerErrorCode;\n(function (CustomerErrorCode) {\n /** Customer already enabled. */\n CustomerErrorCode[\"AlreadyEnabled\"] = \"ALREADY_ENABLED\";\n /** Input email contains an invalid domain name. */\n CustomerErrorCode[\"BadDomain\"] = \"BAD_DOMAIN\";\n /** The input value is blank. */\n CustomerErrorCode[\"Blank\"] = \"BLANK\";\n /** Input contains HTML tags. */\n CustomerErrorCode[\"ContainsHtmlTags\"] = \"CONTAINS_HTML_TAGS\";\n /** Input contains URL. */\n CustomerErrorCode[\"ContainsUrl\"] = \"CONTAINS_URL\";\n /** Customer is disabled. */\n CustomerErrorCode[\"CustomerDisabled\"] = \"CUSTOMER_DISABLED\";\n /** The input value is invalid. */\n CustomerErrorCode[\"Invalid\"] = \"INVALID\";\n /** Multipass token is not valid. */\n CustomerErrorCode[\"InvalidMultipassRequest\"] = \"INVALID_MULTIPASS_REQUEST\";\n /** Address does not exist. */\n CustomerErrorCode[\"NotFound\"] = \"NOT_FOUND\";\n /** Input password starts or ends with whitespace. */\n CustomerErrorCode[\"PasswordStartsOrEndsWithWhitespace\"] = \"PASSWORD_STARTS_OR_ENDS_WITH_WHITESPACE\";\n /** The input value is already taken. */\n CustomerErrorCode[\"Taken\"] = \"TAKEN\";\n /** Invalid activation token. */\n CustomerErrorCode[\"TokenInvalid\"] = \"TOKEN_INVALID\";\n /** The input value is too long. */\n CustomerErrorCode[\"TooLong\"] = \"TOO_LONG\";\n /** The input value is too short. */\n CustomerErrorCode[\"TooShort\"] = \"TOO_SHORT\";\n /** Unidentified customer. */\n CustomerErrorCode[\"UnidentifiedCustomer\"] = \"UNIDENTIFIED_CUSTOMER\";\n})(CustomerErrorCode || (CustomerErrorCode = {}));\n/** List of different delivery method types. */\nexport var DeliveryMethodType;\n(function (DeliveryMethodType) {\n /** Local Delivery. */\n DeliveryMethodType[\"Local\"] = \"LOCAL\";\n /** None. */\n DeliveryMethodType[\"None\"] = \"NONE\";\n /** Shipping to a Pickup Point. */\n DeliveryMethodType[\"PickupPoint\"] = \"PICKUP_POINT\";\n /** Local Pickup. */\n DeliveryMethodType[\"PickUp\"] = \"PICK_UP\";\n /** Retail. */\n DeliveryMethodType[\"Retail\"] = \"RETAIL\";\n /** Shipping. */\n DeliveryMethodType[\"Shipping\"] = \"SHIPPING\";\n})(DeliveryMethodType || (DeliveryMethodType = {}));\n/** Digital wallet, such as Apple Pay, which can be used for accelerated checkouts. */\nexport var DigitalWallet;\n(function (DigitalWallet) {\n /** Android Pay. */\n DigitalWallet[\"AndroidPay\"] = \"ANDROID_PAY\";\n /** Apple Pay. */\n DigitalWallet[\"ApplePay\"] = \"APPLE_PAY\";\n /** Google Pay. */\n DigitalWallet[\"GooglePay\"] = \"GOOGLE_PAY\";\n /** Shopify Pay. */\n DigitalWallet[\"ShopifyPay\"] = \"SHOPIFY_PAY\";\n})(DigitalWallet || (DigitalWallet = {}));\n/** The method by which the discount's value is allocated onto its entitled lines. */\nexport var DiscountApplicationAllocationMethod;\n(function (DiscountApplicationAllocationMethod) {\n /** The value is spread across all entitled lines. */\n DiscountApplicationAllocationMethod[\"Across\"] = \"ACROSS\";\n /** The value is applied onto every entitled line. */\n DiscountApplicationAllocationMethod[\"Each\"] = \"EACH\";\n /** The value is specifically applied onto a particular line. */\n DiscountApplicationAllocationMethod[\"One\"] = \"ONE\";\n})(DiscountApplicationAllocationMethod || (DiscountApplicationAllocationMethod = {}));\n/**\n * The lines on the order to which the discount is applied, of the type defined by\n * the discount application's `targetType`. For example, the value `ENTITLED`, combined with a `targetType` of\n * `LINE_ITEM`, applies the discount on all line items that are entitled to the discount.\n * The value `ALL`, combined with a `targetType` of `SHIPPING_LINE`, applies the discount on all shipping lines.\n *\n */\nexport var DiscountApplicationTargetSelection;\n(function (DiscountApplicationTargetSelection) {\n /** The discount is allocated onto all the lines. */\n DiscountApplicationTargetSelection[\"All\"] = \"ALL\";\n /** The discount is allocated onto only the lines that it's entitled for. */\n DiscountApplicationTargetSelection[\"Entitled\"] = \"ENTITLED\";\n /** The discount is allocated onto explicitly chosen lines. */\n DiscountApplicationTargetSelection[\"Explicit\"] = \"EXPLICIT\";\n})(DiscountApplicationTargetSelection || (DiscountApplicationTargetSelection = {}));\n/**\n * The type of line (i.e. line item or shipping line) on an order that the discount is applicable towards.\n *\n */\nexport var DiscountApplicationTargetType;\n(function (DiscountApplicationTargetType) {\n /** The discount applies onto line items. */\n DiscountApplicationTargetType[\"LineItem\"] = \"LINE_ITEM\";\n /** The discount applies onto shipping lines. */\n DiscountApplicationTargetType[\"ShippingLine\"] = \"SHIPPING_LINE\";\n})(DiscountApplicationTargetType || (DiscountApplicationTargetType = {}));\n/**\n * The type of data that the filter group represents.\n *\n * For more information, refer to [Filter products in a collection with the Storefront API]\n * (https://shopify.dev/custom-storefronts/products-collections/filter-products).\n *\n */\nexport var FilterType;\n(function (FilterType) {\n /** A boolean value. */\n FilterType[\"Boolean\"] = \"BOOLEAN\";\n /** A list of selectable values. */\n FilterType[\"List\"] = \"LIST\";\n /** A range of prices. */\n FilterType[\"PriceRange\"] = \"PRICE_RANGE\";\n})(FilterType || (FilterType = {}));\n/** List of supported image content types. */\nexport var ImageContentType;\n(function (ImageContentType) {\n /** A JPG image. */\n ImageContentType[\"Jpg\"] = \"JPG\";\n /** A PNG image. */\n ImageContentType[\"Png\"] = \"PNG\";\n /** A WEBP image. */\n ImageContentType[\"Webp\"] = \"WEBP\";\n})(ImageContentType || (ImageContentType = {}));\n/** ISO 639-1 language codes supported by Shopify. */\nexport var LanguageCode;\n(function (LanguageCode) {\n /** Afrikaans. */\n LanguageCode[\"Af\"] = \"AF\";\n /** Akan. */\n LanguageCode[\"Ak\"] = \"AK\";\n /** Amharic. */\n LanguageCode[\"Am\"] = \"AM\";\n /** Arabic. */\n LanguageCode[\"Ar\"] = \"AR\";\n /** Assamese. */\n LanguageCode[\"As\"] = \"AS\";\n /** Azerbaijani. */\n LanguageCode[\"Az\"] = \"AZ\";\n /** Belarusian. */\n LanguageCode[\"Be\"] = \"BE\";\n /** Bulgarian. */\n LanguageCode[\"Bg\"] = \"BG\";\n /** Bambara. */\n LanguageCode[\"Bm\"] = \"BM\";\n /** Bangla. */\n LanguageCode[\"Bn\"] = \"BN\";\n /** Tibetan. */\n LanguageCode[\"Bo\"] = \"BO\";\n /** Breton. */\n LanguageCode[\"Br\"] = \"BR\";\n /** Bosnian. */\n LanguageCode[\"Bs\"] = \"BS\";\n /** Catalan. */\n LanguageCode[\"Ca\"] = \"CA\";\n /** Chechen. */\n LanguageCode[\"Ce\"] = \"CE\";\n /** Czech. */\n LanguageCode[\"Cs\"] = \"CS\";\n /** Church Slavic. */\n LanguageCode[\"Cu\"] = \"CU\";\n /** Welsh. */\n LanguageCode[\"Cy\"] = \"CY\";\n /** Danish. */\n LanguageCode[\"Da\"] = \"DA\";\n /** German. */\n LanguageCode[\"De\"] = \"DE\";\n /** Dzongkha. */\n LanguageCode[\"Dz\"] = \"DZ\";\n /** Ewe. */\n LanguageCode[\"Ee\"] = \"EE\";\n /** Greek. */\n LanguageCode[\"El\"] = \"EL\";\n /** English. */\n LanguageCode[\"En\"] = \"EN\";\n /** Esperanto. */\n LanguageCode[\"Eo\"] = \"EO\";\n /** Spanish. */\n LanguageCode[\"Es\"] = \"ES\";\n /** Estonian. */\n LanguageCode[\"Et\"] = \"ET\";\n /** Basque. */\n LanguageCode[\"Eu\"] = \"EU\";\n /** Persian. */\n LanguageCode[\"Fa\"] = \"FA\";\n /** Fulah. */\n LanguageCode[\"Ff\"] = \"FF\";\n /** Finnish. */\n LanguageCode[\"Fi\"] = \"FI\";\n /** Faroese. */\n LanguageCode[\"Fo\"] = \"FO\";\n /** French. */\n LanguageCode[\"Fr\"] = \"FR\";\n /** Western Frisian. */\n LanguageCode[\"Fy\"] = \"FY\";\n /** Irish. */\n LanguageCode[\"Ga\"] = \"GA\";\n /** Scottish Gaelic. */\n LanguageCode[\"Gd\"] = \"GD\";\n /** Galician. */\n LanguageCode[\"Gl\"] = \"GL\";\n /** Gujarati. */\n LanguageCode[\"Gu\"] = \"GU\";\n /** Manx. */\n LanguageCode[\"Gv\"] = \"GV\";\n /** Hausa. */\n LanguageCode[\"Ha\"] = \"HA\";\n /** Hebrew. */\n LanguageCode[\"He\"] = \"HE\";\n /** Hindi. */\n LanguageCode[\"Hi\"] = \"HI\";\n /** Croatian. */\n LanguageCode[\"Hr\"] = \"HR\";\n /** Hungarian. */\n LanguageCode[\"Hu\"] = \"HU\";\n /** Armenian. */\n LanguageCode[\"Hy\"] = \"HY\";\n /** Interlingua. */\n LanguageCode[\"Ia\"] = \"IA\";\n /** Indonesian. */\n LanguageCode[\"Id\"] = \"ID\";\n /** Igbo. */\n LanguageCode[\"Ig\"] = \"IG\";\n /** Sichuan Yi. */\n LanguageCode[\"Ii\"] = \"II\";\n /** Icelandic. */\n LanguageCode[\"Is\"] = \"IS\";\n /** Italian. */\n LanguageCode[\"It\"] = \"IT\";\n /** Japanese. */\n LanguageCode[\"Ja\"] = \"JA\";\n /** Javanese. */\n LanguageCode[\"Jv\"] = \"JV\";\n /** Georgian. */\n LanguageCode[\"Ka\"] = \"KA\";\n /** Kikuyu. */\n LanguageCode[\"Ki\"] = \"KI\";\n /** Kazakh. */\n LanguageCode[\"Kk\"] = \"KK\";\n /** Kalaallisut. */\n LanguageCode[\"Kl\"] = \"KL\";\n /** Khmer. */\n LanguageCode[\"Km\"] = \"KM\";\n /** Kannada. */\n LanguageCode[\"Kn\"] = \"KN\";\n /** Korean. */\n LanguageCode[\"Ko\"] = \"KO\";\n /** Kashmiri. */\n LanguageCode[\"Ks\"] = \"KS\";\n /** Kurdish. */\n LanguageCode[\"Ku\"] = \"KU\";\n /** Cornish. */\n LanguageCode[\"Kw\"] = \"KW\";\n /** Kyrgyz. */\n LanguageCode[\"Ky\"] = \"KY\";\n /** Luxembourgish. */\n LanguageCode[\"Lb\"] = \"LB\";\n /** Ganda. */\n LanguageCode[\"Lg\"] = \"LG\";\n /** Lingala. */\n LanguageCode[\"Ln\"] = \"LN\";\n /** Lao. */\n LanguageCode[\"Lo\"] = \"LO\";\n /** Lithuanian. */\n LanguageCode[\"Lt\"] = \"LT\";\n /** Luba-Katanga. */\n LanguageCode[\"Lu\"] = \"LU\";\n /** Latvian. */\n LanguageCode[\"Lv\"] = \"LV\";\n /** Malagasy. */\n LanguageCode[\"Mg\"] = \"MG\";\n /** Māori. */\n LanguageCode[\"Mi\"] = \"MI\";\n /** Macedonian. */\n LanguageCode[\"Mk\"] = \"MK\";\n /** Malayalam. */\n LanguageCode[\"Ml\"] = \"ML\";\n /** Mongolian. */\n LanguageCode[\"Mn\"] = \"MN\";\n /** Marathi. */\n LanguageCode[\"Mr\"] = \"MR\";\n /** Malay. */\n LanguageCode[\"Ms\"] = \"MS\";\n /** Maltese. */\n LanguageCode[\"Mt\"] = \"MT\";\n /** Burmese. */\n LanguageCode[\"My\"] = \"MY\";\n /** Norwegian (Bokmål). */\n LanguageCode[\"Nb\"] = \"NB\";\n /** North Ndebele. */\n LanguageCode[\"Nd\"] = \"ND\";\n /** Nepali. */\n LanguageCode[\"Ne\"] = \"NE\";\n /** Dutch. */\n LanguageCode[\"Nl\"] = \"NL\";\n /** Norwegian Nynorsk. */\n LanguageCode[\"Nn\"] = \"NN\";\n /** Norwegian. */\n LanguageCode[\"No\"] = \"NO\";\n /** Oromo. */\n LanguageCode[\"Om\"] = \"OM\";\n /** Odia. */\n LanguageCode[\"Or\"] = \"OR\";\n /** Ossetic. */\n LanguageCode[\"Os\"] = \"OS\";\n /** Punjabi. */\n LanguageCode[\"Pa\"] = \"PA\";\n /** Polish. */\n LanguageCode[\"Pl\"] = \"PL\";\n /** Pashto. */\n LanguageCode[\"Ps\"] = \"PS\";\n /** Portuguese. */\n LanguageCode[\"Pt\"] = \"PT\";\n /** Portuguese (Brazil). */\n LanguageCode[\"PtBr\"] = \"PT_BR\";\n /** Portuguese (Portugal). */\n LanguageCode[\"PtPt\"] = \"PT_PT\";\n /** Quechua. */\n LanguageCode[\"Qu\"] = \"QU\";\n /** Romansh. */\n LanguageCode[\"Rm\"] = \"RM\";\n /** Rundi. */\n LanguageCode[\"Rn\"] = \"RN\";\n /** Romanian. */\n LanguageCode[\"Ro\"] = \"RO\";\n /** Russian. */\n LanguageCode[\"Ru\"] = \"RU\";\n /** Kinyarwanda. */\n LanguageCode[\"Rw\"] = \"RW\";\n /** Sindhi. */\n LanguageCode[\"Sd\"] = \"SD\";\n /** Northern Sami. */\n LanguageCode[\"Se\"] = \"SE\";\n /** Sango. */\n LanguageCode[\"Sg\"] = \"SG\";\n /** Sinhala. */\n LanguageCode[\"Si\"] = \"SI\";\n /** Slovak. */\n LanguageCode[\"Sk\"] = \"SK\";\n /** Slovenian. */\n LanguageCode[\"Sl\"] = \"SL\";\n /** Shona. */\n LanguageCode[\"Sn\"] = \"SN\";\n /** Somali. */\n LanguageCode[\"So\"] = \"SO\";\n /** Albanian. */\n LanguageCode[\"Sq\"] = \"SQ\";\n /** Serbian. */\n LanguageCode[\"Sr\"] = \"SR\";\n /** Sundanese. */\n LanguageCode[\"Su\"] = \"SU\";\n /** Swedish. */\n LanguageCode[\"Sv\"] = \"SV\";\n /** Swahili. */\n LanguageCode[\"Sw\"] = \"SW\";\n /** Tamil. */\n LanguageCode[\"Ta\"] = \"TA\";\n /** Telugu. */\n LanguageCode[\"Te\"] = \"TE\";\n /** Tajik. */\n LanguageCode[\"Tg\"] = \"TG\";\n /** Thai. */\n LanguageCode[\"Th\"] = \"TH\";\n /** Tigrinya. */\n LanguageCode[\"Ti\"] = \"TI\";\n /** Turkmen. */\n LanguageCode[\"Tk\"] = \"TK\";\n /** Tongan. */\n LanguageCode[\"To\"] = \"TO\";\n /** Turkish. */\n LanguageCode[\"Tr\"] = \"TR\";\n /** Tatar. */\n LanguageCode[\"Tt\"] = \"TT\";\n /** Uyghur. */\n LanguageCode[\"Ug\"] = \"UG\";\n /** Ukrainian. */\n LanguageCode[\"Uk\"] = \"UK\";\n /** Urdu. */\n LanguageCode[\"Ur\"] = \"UR\";\n /** Uzbek. */\n LanguageCode[\"Uz\"] = \"UZ\";\n /** Vietnamese. */\n LanguageCode[\"Vi\"] = \"VI\";\n /** Volapük. */\n LanguageCode[\"Vo\"] = \"VO\";\n /** Wolof. */\n LanguageCode[\"Wo\"] = \"WO\";\n /** Xhosa. */\n LanguageCode[\"Xh\"] = \"XH\";\n /** Yiddish. */\n LanguageCode[\"Yi\"] = \"YI\";\n /** Yoruba. */\n LanguageCode[\"Yo\"] = \"YO\";\n /** Chinese. */\n LanguageCode[\"Zh\"] = \"ZH\";\n /** Chinese (Simplified). */\n LanguageCode[\"ZhCn\"] = \"ZH_CN\";\n /** Chinese (Traditional). */\n LanguageCode[\"ZhTw\"] = \"ZH_TW\";\n /** Zulu. */\n LanguageCode[\"Zu\"] = \"ZU\";\n})(LanguageCode || (LanguageCode = {}));\n/** The set of valid sort keys for the Location query. */\nexport var LocationSortKeys;\n(function (LocationSortKeys) {\n /** Sort by the `city` value. */\n LocationSortKeys[\"City\"] = \"CITY\";\n /** Sort by the `distance` value. */\n LocationSortKeys[\"Distance\"] = \"DISTANCE\";\n /** Sort by the `id` value. */\n LocationSortKeys[\"Id\"] = \"ID\";\n /** Sort by the `name` value. */\n LocationSortKeys[\"Name\"] = \"NAME\";\n})(LocationSortKeys || (LocationSortKeys = {}));\n/** The possible content types for a media object. */\nexport var MediaContentType;\n(function (MediaContentType) {\n /** An externally hosted video. */\n MediaContentType[\"ExternalVideo\"] = \"EXTERNAL_VIDEO\";\n /** A Shopify hosted image. */\n MediaContentType[\"Image\"] = \"IMAGE\";\n /** A 3d model. */\n MediaContentType[\"Model_3D\"] = \"MODEL_3D\";\n /** A Shopify hosted video. */\n MediaContentType[\"Video\"] = \"VIDEO\";\n})(MediaContentType || (MediaContentType = {}));\n/** Host for a Media Resource. */\nexport var MediaHost;\n(function (MediaHost) {\n /** Host for Vimeo embedded videos. */\n MediaHost[\"Vimeo\"] = \"VIMEO\";\n /** Host for YouTube embedded videos. */\n MediaHost[\"Youtube\"] = \"YOUTUBE\";\n})(MediaHost || (MediaHost = {}));\n/** A menu item type. */\nexport var MenuItemType;\n(function (MenuItemType) {\n /** An article link. */\n MenuItemType[\"Article\"] = \"ARTICLE\";\n /** A blog link. */\n MenuItemType[\"Blog\"] = \"BLOG\";\n /** A catalog link. */\n MenuItemType[\"Catalog\"] = \"CATALOG\";\n /** A collection link. */\n MenuItemType[\"Collection\"] = \"COLLECTION\";\n /** A collection link. */\n MenuItemType[\"Collections\"] = \"COLLECTIONS\";\n /** A frontpage link. */\n MenuItemType[\"Frontpage\"] = \"FRONTPAGE\";\n /** An http link. */\n MenuItemType[\"Http\"] = \"HTTP\";\n /** A page link. */\n MenuItemType[\"Page\"] = \"PAGE\";\n /** A product link. */\n MenuItemType[\"Product\"] = \"PRODUCT\";\n /** A search link. */\n MenuItemType[\"Search\"] = \"SEARCH\";\n /** A shop policy link. */\n MenuItemType[\"ShopPolicy\"] = \"SHOP_POLICY\";\n})(MenuItemType || (MenuItemType = {}));\n/** Represents the reason for the order's cancellation. */\nexport var OrderCancelReason;\n(function (OrderCancelReason) {\n /** The customer wanted to cancel the order. */\n OrderCancelReason[\"Customer\"] = \"CUSTOMER\";\n /** Payment was declined. */\n OrderCancelReason[\"Declined\"] = \"DECLINED\";\n /** The order was fraudulent. */\n OrderCancelReason[\"Fraud\"] = \"FRAUD\";\n /** There was insufficient inventory. */\n OrderCancelReason[\"Inventory\"] = \"INVENTORY\";\n /** The order was canceled for an unlisted reason. */\n OrderCancelReason[\"Other\"] = \"OTHER\";\n})(OrderCancelReason || (OrderCancelReason = {}));\n/** Represents the order's current financial status. */\nexport var OrderFinancialStatus;\n(function (OrderFinancialStatus) {\n /** Displayed as **Authorized**. */\n OrderFinancialStatus[\"Authorized\"] = \"AUTHORIZED\";\n /** Displayed as **Paid**. */\n OrderFinancialStatus[\"Paid\"] = \"PAID\";\n /** Displayed as **Partially paid**. */\n OrderFinancialStatus[\"PartiallyPaid\"] = \"PARTIALLY_PAID\";\n /** Displayed as **Partially refunded**. */\n OrderFinancialStatus[\"PartiallyRefunded\"] = \"PARTIALLY_REFUNDED\";\n /** Displayed as **Pending**. */\n OrderFinancialStatus[\"Pending\"] = \"PENDING\";\n /** Displayed as **Refunded**. */\n OrderFinancialStatus[\"Refunded\"] = \"REFUNDED\";\n /** Displayed as **Voided**. */\n OrderFinancialStatus[\"Voided\"] = \"VOIDED\";\n})(OrderFinancialStatus || (OrderFinancialStatus = {}));\n/** Represents the order's aggregated fulfillment status for display purposes. */\nexport var OrderFulfillmentStatus;\n(function (OrderFulfillmentStatus) {\n /** Displayed as **Fulfilled**. All of the items in the order have been fulfilled. */\n OrderFulfillmentStatus[\"Fulfilled\"] = \"FULFILLED\";\n /** Displayed as **In progress**. Some of the items in the order have been fulfilled, or a request for fulfillment has been sent to the fulfillment service. */\n OrderFulfillmentStatus[\"InProgress\"] = \"IN_PROGRESS\";\n /** Displayed as **On hold**. All of the unfulfilled items in this order are on hold. */\n OrderFulfillmentStatus[\"OnHold\"] = \"ON_HOLD\";\n /** Displayed as **Open**. None of the items in the order have been fulfilled. Replaced by \"UNFULFILLED\" status. */\n OrderFulfillmentStatus[\"Open\"] = \"OPEN\";\n /** Displayed as **Partially fulfilled**. Some of the items in the order have been fulfilled. */\n OrderFulfillmentStatus[\"PartiallyFulfilled\"] = \"PARTIALLY_FULFILLED\";\n /** Displayed as **Pending fulfillment**. A request for fulfillment of some items awaits a response from the fulfillment service. Replaced by \"IN_PROGRESS\" status. */\n OrderFulfillmentStatus[\"PendingFulfillment\"] = \"PENDING_FULFILLMENT\";\n /** Displayed as **Restocked**. All of the items in the order have been restocked. Replaced by \"UNFULFILLED\" status. */\n OrderFulfillmentStatus[\"Restocked\"] = \"RESTOCKED\";\n /** Displayed as **Scheduled**. All of the unfulfilled items in this order are scheduled for fulfillment at later time. */\n OrderFulfillmentStatus[\"Scheduled\"] = \"SCHEDULED\";\n /** Displayed as **Unfulfilled**. None of the items in the order have been fulfilled. */\n OrderFulfillmentStatus[\"Unfulfilled\"] = \"UNFULFILLED\";\n})(OrderFulfillmentStatus || (OrderFulfillmentStatus = {}));\n/** The set of valid sort keys for the Order query. */\nexport var OrderSortKeys;\n(function (OrderSortKeys) {\n /** Sort by the `id` value. */\n OrderSortKeys[\"Id\"] = \"ID\";\n /** Sort by the `processed_at` value. */\n OrderSortKeys[\"ProcessedAt\"] = \"PROCESSED_AT\";\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n OrderSortKeys[\"Relevance\"] = \"RELEVANCE\";\n /** Sort by the `total_price` value. */\n OrderSortKeys[\"TotalPrice\"] = \"TOTAL_PRICE\";\n})(OrderSortKeys || (OrderSortKeys = {}));\n/** The set of valid sort keys for the Page query. */\nexport var PageSortKeys;\n(function (PageSortKeys) {\n /** Sort by the `id` value. */\n PageSortKeys[\"Id\"] = \"ID\";\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n PageSortKeys[\"Relevance\"] = \"RELEVANCE\";\n /** Sort by the `title` value. */\n PageSortKeys[\"Title\"] = \"TITLE\";\n /** Sort by the `updated_at` value. */\n PageSortKeys[\"UpdatedAt\"] = \"UPDATED_AT\";\n})(PageSortKeys || (PageSortKeys = {}));\n/** The valid values for the types of payment token. */\nexport var PaymentTokenType;\n(function (PaymentTokenType) {\n /** Apple Pay token type. */\n PaymentTokenType[\"ApplePay\"] = \"APPLE_PAY\";\n /** Google Pay token type. */\n PaymentTokenType[\"GooglePay\"] = \"GOOGLE_PAY\";\n /** Shopify Pay token type. */\n PaymentTokenType[\"ShopifyPay\"] = \"SHOPIFY_PAY\";\n /** Stripe token type. */\n PaymentTokenType[\"StripeVaultToken\"] = \"STRIPE_VAULT_TOKEN\";\n /** Vault payment token type. */\n PaymentTokenType[\"Vault\"] = \"VAULT\";\n})(PaymentTokenType || (PaymentTokenType = {}));\n/** The set of valid sort keys for the ProductCollection query. */\nexport var ProductCollectionSortKeys;\n(function (ProductCollectionSortKeys) {\n /** Sort by the `best-selling` value. */\n ProductCollectionSortKeys[\"BestSelling\"] = \"BEST_SELLING\";\n /** Sort by the `collection-default` value. */\n ProductCollectionSortKeys[\"CollectionDefault\"] = \"COLLECTION_DEFAULT\";\n /** Sort by the `created` value. */\n ProductCollectionSortKeys[\"Created\"] = \"CREATED\";\n /** Sort by the `id` value. */\n ProductCollectionSortKeys[\"Id\"] = \"ID\";\n /** Sort by the `manual` value. */\n ProductCollectionSortKeys[\"Manual\"] = \"MANUAL\";\n /** Sort by the `price` value. */\n ProductCollectionSortKeys[\"Price\"] = \"PRICE\";\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n ProductCollectionSortKeys[\"Relevance\"] = \"RELEVANCE\";\n /** Sort by the `title` value. */\n ProductCollectionSortKeys[\"Title\"] = \"TITLE\";\n})(ProductCollectionSortKeys || (ProductCollectionSortKeys = {}));\n/** The set of valid sort keys for the ProductImage query. */\nexport var ProductImageSortKeys;\n(function (ProductImageSortKeys) {\n /** Sort by the `created_at` value. */\n ProductImageSortKeys[\"CreatedAt\"] = \"CREATED_AT\";\n /** Sort by the `id` value. */\n ProductImageSortKeys[\"Id\"] = \"ID\";\n /** Sort by the `position` value. */\n ProductImageSortKeys[\"Position\"] = \"POSITION\";\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n ProductImageSortKeys[\"Relevance\"] = \"RELEVANCE\";\n})(ProductImageSortKeys || (ProductImageSortKeys = {}));\n/** The set of valid sort keys for the ProductMedia query. */\nexport var ProductMediaSortKeys;\n(function (ProductMediaSortKeys) {\n /** Sort by the `id` value. */\n ProductMediaSortKeys[\"Id\"] = \"ID\";\n /** Sort by the `position` value. */\n ProductMediaSortKeys[\"Position\"] = \"POSITION\";\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n ProductMediaSortKeys[\"Relevance\"] = \"RELEVANCE\";\n})(ProductMediaSortKeys || (ProductMediaSortKeys = {}));\n/** The set of valid sort keys for the Product query. */\nexport var ProductSortKeys;\n(function (ProductSortKeys) {\n /** Sort by the `best_selling` value. */\n ProductSortKeys[\"BestSelling\"] = \"BEST_SELLING\";\n /** Sort by the `created_at` value. */\n ProductSortKeys[\"CreatedAt\"] = \"CREATED_AT\";\n /** Sort by the `id` value. */\n ProductSortKeys[\"Id\"] = \"ID\";\n /** Sort by the `price` value. */\n ProductSortKeys[\"Price\"] = \"PRICE\";\n /** Sort by the `product_type` value. */\n ProductSortKeys[\"ProductType\"] = \"PRODUCT_TYPE\";\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n ProductSortKeys[\"Relevance\"] = \"RELEVANCE\";\n /** Sort by the `title` value. */\n ProductSortKeys[\"Title\"] = \"TITLE\";\n /** Sort by the `updated_at` value. */\n ProductSortKeys[\"UpdatedAt\"] = \"UPDATED_AT\";\n /** Sort by the `vendor` value. */\n ProductSortKeys[\"Vendor\"] = \"VENDOR\";\n})(ProductSortKeys || (ProductSortKeys = {}));\n/** The set of valid sort keys for the ProductVariant query. */\nexport var ProductVariantSortKeys;\n(function (ProductVariantSortKeys) {\n /** Sort by the `id` value. */\n ProductVariantSortKeys[\"Id\"] = \"ID\";\n /** Sort by the `position` value. */\n ProductVariantSortKeys[\"Position\"] = \"POSITION\";\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n ProductVariantSortKeys[\"Relevance\"] = \"RELEVANCE\";\n /** Sort by the `sku` value. */\n ProductVariantSortKeys[\"Sku\"] = \"SKU\";\n /** Sort by the `title` value. */\n ProductVariantSortKeys[\"Title\"] = \"TITLE\";\n})(ProductVariantSortKeys || (ProductVariantSortKeys = {}));\n/** The checkout charge when the full amount isn't charged at checkout. */\nexport var SellingPlanCheckoutChargeType;\n(function (SellingPlanCheckoutChargeType) {\n /** The checkout charge is a percentage of the product or variant price. */\n SellingPlanCheckoutChargeType[\"Percentage\"] = \"PERCENTAGE\";\n /** The checkout charge is a fixed price amount. */\n SellingPlanCheckoutChargeType[\"Price\"] = \"PRICE\";\n})(SellingPlanCheckoutChargeType || (SellingPlanCheckoutChargeType = {}));\n/** The different kinds of order transactions. */\nexport var TransactionKind;\n(function (TransactionKind) {\n /**\n * An amount reserved against the cardholder's funding source.\n * Money does not change hands until the authorization is captured.\n *\n */\n TransactionKind[\"Authorization\"] = \"AUTHORIZATION\";\n /** A transfer of the money that was reserved during the authorization stage. */\n TransactionKind[\"Capture\"] = \"CAPTURE\";\n /** Money returned to the customer when they have paid too much. */\n TransactionKind[\"Change\"] = \"CHANGE\";\n /** An authorization for a payment taken with an EMV credit card reader. */\n TransactionKind[\"EmvAuthorization\"] = \"EMV_AUTHORIZATION\";\n /** An authorization and capture performed together in a single step. */\n TransactionKind[\"Sale\"] = \"SALE\";\n})(TransactionKind || (TransactionKind = {}));\n/** Transaction statuses describe the status of a transaction. */\nexport var TransactionStatus;\n(function (TransactionStatus) {\n /** There was an error while processing the transaction. */\n TransactionStatus[\"Error\"] = \"ERROR\";\n /** The transaction failed. */\n TransactionStatus[\"Failure\"] = \"FAILURE\";\n /** The transaction is pending. */\n TransactionStatus[\"Pending\"] = \"PENDING\";\n /** The transaction succeeded. */\n TransactionStatus[\"Success\"] = \"SUCCESS\";\n})(TransactionStatus || (TransactionStatus = {}));\n/** The accepted types of unit of measurement. */\nexport var UnitPriceMeasurementMeasuredType;\n(function (UnitPriceMeasurementMeasuredType) {\n /** Unit of measurements representing areas. */\n UnitPriceMeasurementMeasuredType[\"Area\"] = \"AREA\";\n /** Unit of measurements representing lengths. */\n UnitPriceMeasurementMeasuredType[\"Length\"] = \"LENGTH\";\n /** Unit of measurements representing volumes. */\n UnitPriceMeasurementMeasuredType[\"Volume\"] = \"VOLUME\";\n /** Unit of measurements representing weights. */\n UnitPriceMeasurementMeasuredType[\"Weight\"] = \"WEIGHT\";\n})(UnitPriceMeasurementMeasuredType || (UnitPriceMeasurementMeasuredType = {}));\n/** The valid units of measurement for a unit price measurement. */\nexport var UnitPriceMeasurementMeasuredUnit;\n(function (UnitPriceMeasurementMeasuredUnit) {\n /** 100 centiliters equals 1 liter. */\n UnitPriceMeasurementMeasuredUnit[\"Cl\"] = \"CL\";\n /** 100 centimeters equals 1 meter. */\n UnitPriceMeasurementMeasuredUnit[\"Cm\"] = \"CM\";\n /** Metric system unit of weight. */\n UnitPriceMeasurementMeasuredUnit[\"G\"] = \"G\";\n /** 1 kilogram equals 1000 grams. */\n UnitPriceMeasurementMeasuredUnit[\"Kg\"] = \"KG\";\n /** Metric system unit of volume. */\n UnitPriceMeasurementMeasuredUnit[\"L\"] = \"L\";\n /** Metric system unit of length. */\n UnitPriceMeasurementMeasuredUnit[\"M\"] = \"M\";\n /** Metric system unit of area. */\n UnitPriceMeasurementMeasuredUnit[\"M2\"] = \"M2\";\n /** 1 cubic meter equals 1000 liters. */\n UnitPriceMeasurementMeasuredUnit[\"M3\"] = \"M3\";\n /** 1000 milligrams equals 1 gram. */\n UnitPriceMeasurementMeasuredUnit[\"Mg\"] = \"MG\";\n /** 1000 milliliters equals 1 liter. */\n UnitPriceMeasurementMeasuredUnit[\"Ml\"] = \"ML\";\n /** 1000 millimeters equals 1 meter. */\n UnitPriceMeasurementMeasuredUnit[\"Mm\"] = \"MM\";\n})(UnitPriceMeasurementMeasuredUnit || (UnitPriceMeasurementMeasuredUnit = {}));\n/** Systems of weights and measures. */\nexport var UnitSystem;\n(function (UnitSystem) {\n /** Imperial system of weights and measures. */\n UnitSystem[\"ImperialSystem\"] = \"IMPERIAL_SYSTEM\";\n /** Metric system of weights and measures. */\n UnitSystem[\"MetricSystem\"] = \"METRIC_SYSTEM\";\n})(UnitSystem || (UnitSystem = {}));\n/** Units of measurement for weight. */\nexport var WeightUnit;\n(function (WeightUnit) {\n /** Metric system unit of mass. */\n WeightUnit[\"Grams\"] = \"GRAMS\";\n /** 1 kilogram equals 1000 grams. */\n WeightUnit[\"Kilograms\"] = \"KILOGRAMS\";\n /** Imperial system unit of mass. */\n WeightUnit[\"Ounces\"] = \"OUNCES\";\n /** 1 pound equals 16 ounces. */\n WeightUnit[\"Pounds\"] = \"POUNDS\";\n})(WeightUnit || (WeightUnit = {}));\n","import React, { useState } from 'react';\nimport { useShop } from '../../foundation/index.js';\nimport { flattenConnection } from '../../utilities/index.js';\nimport { CartCreate, defaultCartFragment } from './cart-queries.js';\nimport { SHOPIFY_STOREFRONT_ID_HEADER, STOREFRONT_API_PUBLIC_TOKEN_HEADER, SHOPIFY_STOREFRONT_Y_HEADER, SHOPIFY_STOREFRONT_S_HEADER, SHOPIFY_Y, SHOPIFY_S, } from '../../constants.js';\nimport { parse } from 'worktop/cookie';\nexport function useCartFetch() {\n const { storeDomain, storefrontApiVersion, storefrontToken, storefrontId } = useShop();\n return React.useCallback(({ query, variables, }) => {\n const headers = {\n 'Content-Type': 'application/json',\n 'X-SDK-Variant': 'hydrogen',\n 'X-SDK-Version': storefrontApiVersion,\n [STOREFRONT_API_PUBLIC_TOKEN_HEADER]: storefrontToken,\n };\n if (storefrontId) {\n headers[SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;\n }\n // Find Shopify cookies\n const cookieData = parse(document.cookie);\n if (cookieData[SHOPIFY_Y] && cookieData[SHOPIFY_S]) {\n headers[SHOPIFY_STOREFRONT_Y_HEADER] = cookieData[SHOPIFY_Y];\n headers[SHOPIFY_STOREFRONT_S_HEADER] = cookieData[SHOPIFY_S];\n }\n return fetch(`https://${storeDomain}/api/${storefrontApiVersion}/graphql.json`, {\n method: 'POST',\n headers,\n body: JSON.stringify({\n query: query.toString(),\n variables,\n }),\n })\n .then((res) => res.json())\n .catch((error) => {\n return {\n data: undefined,\n errors: error.toString(),\n };\n });\n }, [storeDomain, storefrontApiVersion, storefrontToken, storefrontId]);\n}\nexport function useInstantCheckout() {\n const [cart, updateCart] = useState();\n const [checkoutUrl, updateCheckoutUrl] = useState();\n const [error, updateError] = useState();\n const fetch = useCartFetch();\n const createInstantCheckout = React.useCallback(async (cartInput) => {\n const { data, errors } = await fetch({\n query: CartCreate(defaultCartFragment),\n variables: {\n input: cartInput,\n },\n });\n if (errors) {\n updateError(errors);\n updateCart(undefined);\n updateCheckoutUrl(undefined);\n }\n if (data?.cartCreate?.cart) {\n const dataCart = data.cartCreate.cart;\n updateCart({\n ...dataCart,\n // @ts-expect-error While the cart still uses fragments, there will be a TS error here until we remove those fragments and get the type in-line\n lines: flattenConnection(dataCart.lines),\n note: dataCart.note ?? undefined,\n });\n updateCheckoutUrl(dataCart.checkoutUrl);\n }\n }, [fetch]);\n return { cart, checkoutUrl, error, createInstantCheckout };\n}\n","import { createContext } from 'react';\nexport const CartContext = createContext(null);\n","export const CART_ID_STORAGE_KEY = 'shopifyCartId';\nexport const CART_COOKIE_TTL_DAYS = 14;\n","import React, { useEffect, useCallback, useReducer, useMemo, useRef, } from 'react';\nimport { flattenConnection } from '../../utilities/flattenConnection/index.js';\nimport { CartLineAdd, CartCreate, CartLineRemove, CartLineUpdate, CartNoteUpdate, CartBuyerIdentityUpdate, CartAttributesUpdate, CartDiscountCodesUpdate, CartQuery, defaultCartFragment, } from './cart-queries.js';\nimport { CountryCode, } from '../../storefront-api-types.js';\nimport { useCartFetch } from './hooks.client.js';\nimport { CartContext } from './context.js';\nimport { CART_ID_STORAGE_KEY } from './constants.js';\nimport { ClientAnalytics } from '../../foundation/Analytics/ClientAnalytics.js';\nfunction getLocalStoragePolyfill() {\n const storage = {};\n return {\n removeItem(key) {\n delete storage[key];\n },\n setItem(key, value) {\n storage[key] = value;\n },\n getItem(key) {\n return storage[key];\n },\n };\n}\nconst localStorage = (function () {\n try {\n return window.localStorage || getLocalStoragePolyfill();\n }\n catch (e) {\n return getLocalStoragePolyfill();\n }\n})();\nfunction cartReducer(state, action) {\n switch (action.type) {\n case 'cartFetch': {\n if (state.status === 'uninitialized') {\n return {\n status: 'fetching',\n };\n }\n break;\n }\n case 'cartCreate': {\n if (state.status === 'uninitialized') {\n return {\n status: 'creating',\n };\n }\n break;\n }\n case 'resolve': {\n const resolvableStatuses = ['updating', 'fetching', 'creating'];\n if (resolvableStatuses.includes(state.status)) {\n return {\n status: 'idle',\n cart: action.cart,\n };\n }\n break;\n }\n case 'reject': {\n if (action.errors) {\n console.group('%cCart Error:', 'color:red');\n for (const [i, error] of action.errors.entries()) {\n console.log(`%c${i + 1}. ` + error.message, 'color:red');\n }\n console.groupEnd();\n }\n if (state.status === 'fetching' || state.status === 'creating') {\n return { status: 'uninitialized', error: action.errors };\n }\n else if (state.status === 'updating') {\n return {\n status: 'idle',\n cart: state.lastValidCart,\n error: action.errors,\n };\n }\n break;\n }\n case 'resetCart': {\n if (state.status === 'fetching') {\n return { status: 'uninitialized' };\n }\n break;\n }\n case 'addLineItem': {\n if (state.status === 'idle') {\n return {\n status: 'updating',\n cart: state.cart,\n lastValidCart: state.cart,\n };\n }\n break;\n }\n case 'removeLineItem': {\n if (state.status === 'idle') {\n return {\n status: 'updating',\n cart: {\n ...state.cart,\n lines: state.cart.lines.filter(({ id }) => !action.lines.includes(id)),\n },\n lastValidCart: state.cart,\n };\n }\n break;\n }\n case 'updateLineItem': {\n if (state.status === 'idle') {\n return {\n status: 'updating',\n cart: {\n ...state.cart,\n lines: state.cart.lines.map((line) => {\n const updatedLine = action.lines.find(({ id }) => id === line.id);\n if (updatedLine && updatedLine.quantity) {\n return {\n ...line,\n quantity: updatedLine.quantity,\n };\n }\n return line;\n }),\n },\n lastValidCart: state.cart,\n };\n }\n break;\n }\n case 'noteUpdate': {\n if (state.status === 'idle') {\n return {\n status: 'updating',\n cart: state.cart,\n lastValidCart: state.cart,\n };\n }\n break;\n }\n case 'buyerIdentityUpdate': {\n if (state.status === 'idle') {\n return {\n status: 'updating',\n cart: state.cart,\n lastValidCart: state.cart,\n };\n }\n break;\n }\n case 'cartAttributesUpdate': {\n if (state.status === 'idle') {\n return {\n status: 'updating',\n cart: state.cart,\n lastValidCart: state.cart,\n };\n }\n break;\n }\n case 'discountCodesUpdate': {\n if (state.status === 'idle') {\n return {\n status: 'updating',\n cart: state.cart,\n lastValidCart: state.cart,\n };\n }\n break;\n }\n }\n throw new Error(`Cannot dispatch event (${action.type}) for current cart state (${state.status})`);\n}\n/**\n * The `CartProvider` component creates a context for using a cart. It creates a cart object and callbacks\n * that can be accessed by any descendent component using the `useCart` hook and related hooks. It also carries out\n * any callback props when a relevant action is performed. For example, if a `onLineAdd` callback is provided,\n * then the callback will be called when a new line item is successfully added to the cart.\n *\n * The `CartProvider` component must be a descendent of the `ShopifyProvider` component.\n * You must use this component if you want to use the `useCart` hook or related hooks, or if you would like to use the `AddToCartButton` component.\n */\nexport function CartProvider({ children, numCartLines, onCreate, onLineAdd, onLineRemove, onLineUpdate, onNoteUpdate, onBuyerIdentityUpdate, onAttributesUpdate, onDiscountCodesUpdate, data: cart, cartFragment = defaultCartFragment, customerAccessToken, countryCode = CountryCode.Us, }) {\n if (countryCode)\n countryCode = countryCode.toUpperCase();\n const initialStatus = cart\n ? { status: 'idle', cart: cartFromGraphQL(cart) }\n : { status: 'uninitialized' };\n const [state, dispatch] = useReducer((state, dispatch) => cartReducer(state, dispatch), initialStatus);\n const fetchCart = useCartFetch();\n const countryChanged = state.status === 'idle' &&\n countryCode !== state?.cart?.buyerIdentity?.countryCode &&\n !state.error;\n const cartFetch = useCallback(async (cartId) => {\n dispatch({ type: 'cartFetch' });\n const { data } = await fetchCart({\n query: CartQuery(cartFragment),\n variables: {\n id: cartId,\n numCartLines,\n country: countryCode,\n },\n });\n if (!data?.cart) {\n localStorage.removeItem(CART_ID_STORAGE_KEY);\n dispatch({ type: 'resetCart' });\n return;\n }\n dispatch({ type: 'resolve', cart: cartFromGraphQL(data.cart) });\n }, [fetchCart, cartFragment, numCartLines, countryCode]);\n const cartCreate = useCallback(async (cart) => {\n dispatch({ type: 'cartCreate' });\n onCreate?.();\n if (countryCode && !cart.buyerIdentity?.countryCode) {\n if (cart.buyerIdentity == null) {\n cart.buyerIdentity = {};\n }\n cart.buyerIdentity.countryCode = countryCode;\n }\n if (customerAccessToken && !cart.buyerIdentity?.customerAccessToken) {\n if (cart.buyerIdentity == null) {\n cart.buyerIdentity = {};\n }\n cart.buyerIdentity.customerAccessToken = customerAccessToken;\n }\n const { data, errors } = await fetchCart({\n query: CartCreate(cartFragment),\n variables: {\n input: cart,\n numCartLines,\n country: countryCode,\n },\n });\n if (errors) {\n dispatch({\n type: 'reject',\n errors,\n });\n }\n if (data?.cartCreate?.cart) {\n if (cart.lines) {\n ClientAnalytics.publish(ClientAnalytics.eventNames.ADD_TO_CART, true, {\n addedCartLines: cart.lines,\n cart: data.cartCreate.cart,\n prevCart: null,\n });\n }\n dispatch({\n type: 'resolve',\n cart: cartFromGraphQL(data.cartCreate.cart),\n });\n localStorage.setItem(CART_ID_STORAGE_KEY, data.cartCreate.cart.id);\n }\n }, [\n onCreate,\n countryCode,\n fetchCart,\n cartFragment,\n numCartLines,\n customerAccessToken,\n ]);\n const addLineItem = useCallback(async (lines, state) => {\n if (state.status === 'idle') {\n dispatch({ type: 'addLineItem' });\n onLineAdd?.();\n const { data, errors } = await fetchCart({\n query: CartLineAdd(cartFragment),\n variables: {\n cartId: state.cart.id,\n lines,\n numCartLines,\n country: countryCode,\n },\n });\n if (errors) {\n dispatch({\n type: 'reject',\n errors,\n });\n }\n if (data?.cartLinesAdd?.cart) {\n ClientAnalytics.publish(ClientAnalytics.eventNames.ADD_TO_CART, true, {\n addedCartLines: lines,\n cart: data.cartLinesAdd.cart,\n prevCart: state.cart,\n });\n dispatch({\n type: 'resolve',\n cart: cartFromGraphQL(data.cartLinesAdd.cart),\n });\n }\n }\n }, [onLineAdd, fetchCart, cartFragment, numCartLines, countryCode]);\n const removeLineItem = useCallback(async (lines, state) => {\n if (state.status === 'idle') {\n dispatch({ type: 'removeLineItem', lines });\n onLineRemove?.();\n const { data, errors } = await fetchCart({\n query: CartLineRemove(cartFragment),\n variables: {\n cartId: state.cart.id,\n lines,\n numCartLines,\n country: countryCode,\n },\n });\n if (errors) {\n dispatch({\n type: 'reject',\n errors,\n });\n }\n if (data?.cartLinesRemove?.cart) {\n ClientAnalytics.publish(ClientAnalytics.eventNames.REMOVE_FROM_CART, true, {\n removedCartLines: lines,\n cart: data.cartLinesRemove.cart,\n prevCart: state.cart,\n });\n dispatch({\n type: 'resolve',\n cart: cartFromGraphQL(data.cartLinesRemove.cart),\n });\n }\n }\n }, [onLineRemove, fetchCart, cartFragment, numCartLines, countryCode]);\n const updateLineItem = useCallback(async (lines, state) => {\n if (state.status === 'idle') {\n dispatch({ type: 'updateLineItem', lines });\n onLineUpdate?.();\n const { data, errors } = await fetchCart({\n query: CartLineUpdate(cartFragment),\n variables: {\n cartId: state.cart.id,\n lines,\n numCartLines,\n country: countryCode,\n },\n });\n if (errors) {\n dispatch({\n type: 'reject',\n errors,\n });\n }\n if (data?.cartLinesUpdate?.cart) {\n ClientAnalytics.publish(ClientAnalytics.eventNames.UPDATE_CART, true, {\n updatedCartLines: lines,\n oldCart: state.cart,\n cart: data.cartLinesUpdate.cart,\n prevCart: state.cart,\n });\n dispatch({\n type: 'resolve',\n cart: cartFromGraphQL(data.cartLinesUpdate.cart),\n });\n }\n }\n }, [onLineUpdate, fetchCart, cartFragment, numCartLines, countryCode]);\n const noteUpdate = useCallback(async (note, state) => {\n if (state.status === 'idle') {\n dispatch({ type: 'noteUpdate' });\n onNoteUpdate?.();\n const { data, errors } = await fetchCart({\n query: CartNoteUpdate(cartFragment),\n variables: {\n cartId: state.cart.id,\n note,\n numCartLines,\n country: countryCode,\n },\n });\n if (errors) {\n dispatch({\n type: 'reject',\n errors,\n });\n }\n if (data?.cartNoteUpdate?.cart) {\n dispatch({\n type: 'resolve',\n cart: cartFromGraphQL(data.cartNoteUpdate.cart),\n });\n }\n }\n }, [onNoteUpdate, fetchCart, cartFragment, numCartLines, countryCode]);\n const buyerIdentityUpdate = useCallback(async (buyerIdentity, state) => {\n if (state.status === 'idle') {\n dispatch({ type: 'buyerIdentityUpdate' });\n onBuyerIdentityUpdate?.();\n const { data, errors } = await fetchCart({\n query: CartBuyerIdentityUpdate(cartFragment),\n variables: {\n cartId: state.cart.id,\n buyerIdentity,\n numCartLines,\n country: countryCode,\n },\n });\n if (errors) {\n dispatch({\n type: 'reject',\n errors,\n });\n }\n if (data?.cartBuyerIdentityUpdate?.cart) {\n dispatch({\n type: 'resolve',\n cart: cartFromGraphQL(data.cartBuyerIdentityUpdate.cart),\n });\n }\n }\n }, [onBuyerIdentityUpdate, fetchCart, cartFragment, numCartLines, countryCode]);\n const cartAttributesUpdate = useCallback(async (attributes, state) => {\n if (state.status === 'idle') {\n dispatch({ type: 'cartAttributesUpdate' });\n onAttributesUpdate?.();\n const { data, errors } = await fetchCart({\n query: CartAttributesUpdate(cartFragment),\n variables: {\n cartId: state.cart.id,\n attributes,\n numCartLines,\n country: countryCode,\n },\n });\n if (errors) {\n dispatch({\n type: 'reject',\n errors,\n });\n }\n if (data?.cartAttributesUpdate?.cart) {\n dispatch({\n type: 'resolve',\n cart: cartFromGraphQL(data.cartAttributesUpdate.cart),\n });\n }\n }\n }, [onAttributesUpdate, fetchCart, cartFragment, numCartLines, countryCode]);\n const discountCodesUpdate = useCallback(async (discountCodes, state) => {\n if (state.status === 'idle') {\n dispatch({ type: 'discountCodesUpdate' });\n onDiscountCodesUpdate?.();\n const { data, errors } = await fetchCart({\n query: CartDiscountCodesUpdate(cartFragment),\n variables: {\n cartId: state.cart.id,\n discountCodes,\n numCartLines,\n country: countryCode,\n },\n });\n if (errors) {\n dispatch({\n type: 'reject',\n errors,\n });\n }\n if (data?.cartDiscountCodesUpdate?.cart) {\n ClientAnalytics.publish(ClientAnalytics.eventNames.DISCOUNT_CODE_UPDATED, true, {\n updatedDiscountCodes: discountCodes,\n cart: data.cartDiscountCodesUpdate.cart,\n prevCart: state.cart,\n });\n dispatch({\n type: 'resolve',\n cart: cartFromGraphQL(data.cartDiscountCodesUpdate.cart),\n });\n }\n }\n }, [onDiscountCodesUpdate, fetchCart, cartFragment, numCartLines, countryCode]);\n const didFetchCart = useRef(false);\n useEffect(() => {\n if (localStorage.getItem(CART_ID_STORAGE_KEY) &&\n state.status === 'uninitialized' &&\n !didFetchCart.current) {\n didFetchCart.current = true;\n cartFetch(localStorage.getItem(CART_ID_STORAGE_KEY));\n }\n }, [cartFetch, state]);\n useEffect(() => {\n if (!countryChanged)\n return;\n buyerIdentityUpdate({ countryCode, customerAccessToken }, state);\n }, [\n state,\n buyerIdentityUpdate,\n countryCode,\n customerAccessToken,\n countryChanged,\n ]);\n const cartContextValue = useMemo(() => {\n return {\n ...('cart' in state\n ? state.cart\n : {\n lines: [],\n attributes: [],\n ...(cart ? cartFromGraphQL(cart) : {}),\n }),\n status: state.status,\n error: 'error' in state ? state.error : undefined,\n totalQuantity: 'cart' in state ? state?.cart?.totalQuantity ?? 0 : 0,\n cartCreate,\n linesAdd(lines) {\n if ('cart' in state && state.cart.id) {\n addLineItem(lines, state);\n }\n else {\n cartCreate({ lines });\n }\n },\n linesRemove(lines) {\n removeLineItem(lines, state);\n },\n linesUpdate(lines) {\n updateLineItem(lines, state);\n },\n noteUpdate(note) {\n noteUpdate(note, state);\n },\n buyerIdentityUpdate(buyerIdentity) {\n buyerIdentityUpdate(buyerIdentity, state);\n },\n cartAttributesUpdate(attributes) {\n cartAttributesUpdate(attributes, state);\n },\n discountCodesUpdate(discountCodes) {\n discountCodesUpdate(discountCodes, state);\n },\n cartFragment,\n };\n }, [\n state,\n cart,\n cartCreate,\n cartFragment,\n addLineItem,\n removeLineItem,\n updateLineItem,\n noteUpdate,\n buyerIdentityUpdate,\n cartAttributesUpdate,\n discountCodesUpdate,\n ]);\n return (React.createElement(CartContext.Provider, { value: cartContextValue }, children));\n}\nfunction cartFromGraphQL(cart) {\n return {\n ...cart,\n // @ts-expect-error While the cart still uses fragments, there will be a TS error here until we remove those fragments and get the type in-line\n lines: flattenConnection(cart.lines),\n note: cart.note ?? undefined,\n };\n}\n","import { createContext } from 'react';\nexport const CartLineContext = createContext(null);\n","var enabled = true;\n// Support both browser and node environments\nvar globalVar = typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n/**\n * Detect how much colors the current terminal supports\n */\nvar supportLevel = 0 /* none */;\nif (globalVar.process && globalVar.process.env && globalVar.process.stdout) {\n var _a = globalVar.process.env, FORCE_COLOR = _a.FORCE_COLOR, NODE_DISABLE_COLORS = _a.NODE_DISABLE_COLORS, TERM = _a.TERM;\n if (NODE_DISABLE_COLORS || FORCE_COLOR === '0') {\n enabled = false;\n }\n else if (FORCE_COLOR === '1') {\n enabled = true;\n }\n else if (TERM === 'dumb') {\n enabled = false;\n }\n else if ('CI' in globalVar.process.env &&\n [\n 'TRAVIS',\n 'CIRCLECI',\n 'APPVEYOR',\n 'GITLAB_CI',\n 'GITHUB_ACTIONS',\n 'BUILDKITE',\n 'DRONE',\n ].some(function (vendor) { return vendor in globalVar.process.env; })) {\n enabled = true;\n }\n else {\n enabled = process.stdout.isTTY;\n }\n if (enabled) {\n supportLevel =\n TERM && TERM.endsWith('-256color')\n ? 2 /* ansi256 */\n : 1 /* ansi */;\n }\n}\nexport var options = {\n enabled: enabled,\n supportLevel: supportLevel,\n};\nfunction kolorist(start, end, level) {\n if (level === void 0) { level = 1 /* ansi */; }\n var open = \"\\u001B[\" + start + \"m\";\n var close = \"\\u001B[\" + end + \"m\";\n var regex = new RegExp(\"\\\\x1b\\\\[\" + end + \"m\", 'g');\n return function (str) {\n return options.enabled && options.supportLevel >= level\n ? open + ('' + str).replace(regex, open) + close\n : '' + str;\n };\n}\nexport function stripColors(str) {\n return ('' + str)\n .replace(/\\x1b\\[[0-9;]+m/g, '')\n .replace(/\\x1b\\]8;;.*?\\x07(.*?)\\x1b\\]8;;\\x07/g, function (_, group) { return group; });\n}\n// modifiers\nexport var reset = kolorist(0, 0);\nexport var bold = kolorist(1, 22);\nexport var dim = kolorist(2, 22);\nexport var italic = kolorist(3, 23);\nexport var underline = kolorist(4, 24);\nexport var inverse = kolorist(7, 27);\nexport var hidden = kolorist(8, 28);\nexport var strikethrough = kolorist(9, 29);\n// colors\nexport var black = kolorist(30, 39);\nexport var red = kolorist(31, 39);\nexport var green = kolorist(32, 39);\nexport var yellow = kolorist(33, 39);\nexport var blue = kolorist(34, 39);\nexport var magenta = kolorist(35, 39);\nexport var cyan = kolorist(36, 39);\nexport var white = kolorist(97, 39);\nexport var gray = kolorist(90, 39);\nexport var lightGray = kolorist(37, 39);\nexport var lightRed = kolorist(91, 39);\nexport var lightGreen = kolorist(92, 39);\nexport var lightYellow = kolorist(93, 39);\nexport var lightBlue = kolorist(94, 39);\nexport var lightMagenta = kolorist(95, 39);\nexport var lightCyan = kolorist(96, 39);\n// background colors\nexport var bgBlack = kolorist(40, 49);\nexport var bgRed = kolorist(41, 49);\nexport var bgGreen = kolorist(42, 49);\nexport var bgYellow = kolorist(43, 49);\nexport var bgBlue = kolorist(44, 49);\nexport var bgMagenta = kolorist(45, 49);\nexport var bgCyan = kolorist(46, 49);\nexport var bgWhite = kolorist(107, 49);\nexport var bgGray = kolorist(100, 49);\nexport var bgLightRed = kolorist(101, 49);\nexport var bgLightGreen = kolorist(102, 49);\nexport var bgLightYellow = kolorist(103, 49);\nexport var bgLightBlue = kolorist(104, 49);\nexport var bgLightMagenta = kolorist(105, 49);\nexport var bgLightCyan = kolorist(106, 49);\nexport var bgLightGray = kolorist(47, 49);\n// 256 support\nexport var ansi256 = function (n) {\n return kolorist('38;5;' + n, 0, 2 /* ansi256 */);\n};\nexport var ansi256Bg = function (n) {\n return kolorist('48;5;' + n, 0, 2 /* ansi256 */);\n};\n// Links\nvar OSC = '\\u001B]';\nvar BEL = '\\u0007';\nvar SEP = ';';\nexport function link(text, url) {\n return options.enabled\n ? OSC + '8' + SEP + SEP + url + BEL + text + OSC + '8' + SEP + SEP + BEL\n : text + \" (\\u200B\" + url + \"\\u200B)\";\n}\n//# sourceMappingURL=index.js.map"],"names":["CartLineAdd","cartFragment","CartCreate","CartLineRemove","CartLineUpdate","CartNoteUpdate","CartBuyerIdentityUpdate","CartAttributesUpdate","CartDiscountCodesUpdate","CartQuery","defaultCartFragment","ArticleSortKeys","BlogSortKeys","CardBrand","CartErrorCode","CheckoutErrorCode","CollectionSortKeys","CountryCode","CropRegion","CurrencyCode","CustomerErrorCode","DeliveryMethodType","DigitalWallet","DiscountApplicationAllocationMethod","DiscountApplicationTargetSelection","DiscountApplicationTargetType","FilterType","ImageContentType","LanguageCode","LocationSortKeys","MediaContentType","MediaHost","MenuItemType","OrderCancelReason","OrderFinancialStatus","OrderFulfillmentStatus","OrderSortKeys","PageSortKeys","PaymentTokenType","ProductCollectionSortKeys","ProductImageSortKeys","ProductMediaSortKeys","ProductSortKeys","ProductVariantSortKeys","SellingPlanCheckoutChargeType","TransactionKind","TransactionStatus","UnitPriceMeasurementMeasuredType","UnitPriceMeasurementMeasuredUnit","UnitSystem","WeightUnit","useCartFetch","storeDomain","storefrontApiVersion","storefrontToken","storefrontId","useShop","React","query","variables","headers","STOREFRONT_API_PUBLIC_TOKEN_HEADER","SHOPIFY_STOREFRONT_ID_HEADER","cookieData","parse","SHOPIFY_Y","SHOPIFY_S","SHOPIFY_STOREFRONT_Y_HEADER","SHOPIFY_STOREFRONT_S_HEADER","res","error","CartContext","createContext","CART_ID_STORAGE_KEY","getLocalStoragePolyfill","storage","removeItem","key","setItem","value","getItem","localStorage","window","cartReducer","state","action","type","status","includes","cart","errors","console","group","i","entries","log","message","groupEnd","lastValidCart","lines","filter","id","map","line","updatedLine","find","quantity","Error","CartProvider","children","numCartLines","onCreate","onLineAdd","onLineRemove","onLineUpdate","onNoteUpdate","onBuyerIdentityUpdate","onAttributesUpdate","onDiscountCodesUpdate","data","customerAccessToken","countryCode","Us","toUpperCase","initialStatus","cartFromGraphQL","dispatch","useReducer","fetchCart","countryChanged","buyerIdentity","cartFetch","useCallback","cartId","country","cartCreate","input","ClientAnalytics","publish","eventNames","ADD_TO_CART","addedCartLines","prevCart","addLineItem","cartLinesAdd","removeLineItem","cartLinesRemove","REMOVE_FROM_CART","removedCartLines","updateLineItem","cartLinesUpdate","UPDATE_CART","updatedCartLines","oldCart","noteUpdate","note","cartNoteUpdate","buyerIdentityUpdate","cartBuyerIdentityUpdate","cartAttributesUpdate","attributes","discountCodesUpdate","discountCodes","cartDiscountCodesUpdate","DISCOUNT_CODE_UPDATED","updatedDiscountCodes","didFetchCart","useRef","useEffect","current","cartContextValue","useMemo","undefined","totalQuantity","linesAdd","linesRemove","linesUpdate","_jsx","flattenConnection","CartLineContext","enabled","globalVar","_a","FORCE_COLOR","NODE_DISABLE_COLORS","TERM","vendor"],"mappings":"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pBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA,EAAY,GAAQ,KAEpBA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A,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,MAEtBA,EAAa,IAAS,KAC1B,GAAGA,KAAiBA,GAAe,CAAE,EAAC,EAE/B,IAAIC,IACV,SAAUA,EAAmB,CAE1BA,EAAkB,eAAoB,kBAEtCA,EAAkB,UAAe,aAEjCA,EAAkB,MAAW,QAE7BA,EAAkB,iBAAsB,qBAExCA,EAAkB,YAAiB,eAEnCA,EAAkB,iBAAsB,oBAExCA,EAAkB,QAAa,UAE/BA,EAAkB,wBAA6B,4BAE/CA,EAAkB,SAAc,YAEhCA,EAAkB,mCAAwC,0CAE1DA,EAAkB,MAAW,QAE7BA,EAAkB,aAAkB,gBAEpCA,EAAkB,QAAa,WAE/BA,EAAkB,SAAc,YAEhCA,EAAkB,qBAA0B,uBAChD,GAAGA,KAAsBA,GAAoB,CAAE,EAAC,EAEzC,IAAIC,IACV,SAAUA,EAAoB,CAE3BA,EAAmB,MAAW,QAE9BA,EAAmB,KAAU,OAE7BA,EAAmB,YAAiB,eAEpCA,EAAmB,OAAY,UAE/BA,EAAmB,OAAY,SAE/BA,EAAmB,SAAc,UACrC,GAAGA,KAAuBA,GAAqB,CAAE,EAAC,EAE3C,IAAIC,IACV,SAAUA,EAAe,CAEtBA,EAAc,WAAgB,cAE9BA,EAAc,SAAc,YAE5BA,EAAc,UAAe,aAE7BA,EAAc,WAAgB,aAClC,GAAGA,KAAkBA,GAAgB,CAAE,EAAC,EAEjC,IAAIC,IACV,SAAUA,EAAqC,CAE5CA,EAAoC,OAAY,SAEhDA,EAAoC,KAAU,OAE9CA,EAAoC,IAAS,KACjD,GAAGA,KAAwCA,GAAsC,CAAE,EAAC,EAQ7E,IAAIC,IACV,SAAUA,EAAoC,CAE3CA,EAAmC,IAAS,MAE5CA,EAAmC,SAAc,WAEjDA,EAAmC,SAAc,UACrD,GAAGA,KAAuCA,GAAqC,CAAE,EAAC,EAK3E,IAAIC,IACV,SAAUA,EAA+B,CAEtCA,EAA8B,SAAc,YAE5CA,EAA8B,aAAkB,eACpD,GAAGA,KAAkCA,GAAgC,CAAE,EAAC,EAQjE,IAAIC,IACV,SAAUA,EAAY,CAEnBA,EAAW,QAAa,UAExBA,EAAW,KAAU,OAErBA,EAAW,WAAgB,aAC/B,GAAGA,KAAeA,GAAa,CAAE,EAAC,EAE3B,IAAIC,IACV,SAAUA,EAAkB,CAEzBA,EAAiB,IAAS,MAE1BA,EAAiB,IAAS,MAE1BA,EAAiB,KAAU,MAC/B,GAAGA,KAAqBA,GAAmB,CAAE,EAAC,EAEvC,IAAIC,IACV,SAAUA,EAAc,CAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,KAAU,QAEvBA,EAAa,KAAU,QAEvBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,GAAQ,KAErBA,EAAa,G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"}