@feedmepos/mf-inventory-portal 0.0.19-dev.1 → 0.0.19-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/ApprovalView-CS7NtcBA.js +120 -0
  2. package/dist/{BindingsDialog-DpC48bqK.js → BindingsDialog-BA2w-qkY.js} +5 -6
  3. package/dist/{BindingsPicker-BU52g6zk.js → BindingsPicker-wf7b30Bk.js} +6 -7
  4. package/dist/{BindingsTable-aIuFdScv.js → BindingsTable-mqqSPDbO.js} +4 -6
  5. package/dist/FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-CViUEhuw.js +272 -0
  6. package/dist/IngredientsView-BVX31o67.js +1750 -0
  7. package/dist/IntegrationView-DFdl_238.js +1172 -0
  8. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-BuyM580N.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-BENFVQkL.js} +1 -1
  9. package/dist/{PurchaseOrderPrintPreview-EeKhENYH.js → PurchaseOrderPrintPreview-06PokYt4.js} +13 -13
  10. package/dist/ReceiveRequestView-ck-05Ly7.js +1394 -0
  11. package/dist/RecipeView-CiOb2lvU.js +572 -0
  12. package/dist/StockForecast.vue_vue_type_style_index_0_lang-KLXSWvo5.js +59 -0
  13. package/dist/StockView-5LkTxYI2.js +1876 -0
  14. package/dist/SupplierView-BAfC5Wcw.js +801 -0
  15. package/dist/TransferDetails.vue_vue_type_script_setup_true_lang-qZDMkkIZ.js +1031 -0
  16. package/dist/UnitView-wsbXOcbf.js +638 -0
  17. package/dist/WarehouseView-DHhDNAk8.js +1050 -0
  18. package/dist/api/bill.d.ts +2 -2
  19. package/dist/app-DNCC20Aq.js +66729 -0
  20. package/dist/app.d.ts +1031 -0
  21. package/dist/app.js +5 -3
  22. package/dist/components/FmDroppableField.vue.d.ts +1 -1
  23. package/dist/{decimal-BAZuuTcd.js → decimal-DaXHxukU.js} +1 -1
  24. package/dist/{stock-estimate-CL4HShG8.js → id-to-date-XiomI6dP.js} +12 -13
  25. package/dist/{layout-BnTfCS_X.js → layout-DvgFrTEG.js} +14 -14
  26. package/dist/router/name.d.ts +1 -1
  27. package/dist/style.css +1 -1
  28. package/dist/{supplier-CjAH8O1y.js → supplier-BepZrUgL.js} +3 -3
  29. package/dist/tsconfig.app.tsbuildinfo +1 -1
  30. package/dist/views/ingredients/composables/use-ingredient-form.d.ts +14 -2
  31. package/dist/views/ingredients/composables/use-ingredient-table.d.ts +1 -2
  32. package/dist/views/receive-request/components/transfer-form/SparkIcon.vue.d.ts +1 -1
  33. package/dist/views/receive-request/composables/use-receive-request-table.d.ts +12 -12
  34. package/dist/views/recipe/composables/use-recipe-form.d.ts +14 -2
  35. package/dist/views/recipe/composables/use-recipe-table.d.ts +1 -2
  36. package/dist/views/stock/components/StockRecordCard.vue.d.ts +1 -1
  37. package/dist/views/stock/components/dialog/AdjustedItemForm.vue.d.ts +2 -2
  38. package/dist/views/stock/composables/use-stock-action.d.ts +26 -0
  39. package/dist/views/stock/composables/use-stock-table.d.ts +1 -8
  40. package/dist/views/stock/helper/compute-summary-total.d.ts +2 -2
  41. package/dist/views/unit/composables/use-unit-form.d.ts +14 -2
  42. package/dist/views/unit/composables/use-unit-table.d.ts +1 -2
  43. package/dist/{xlsx-vUzm_udV.js → xlsx-DaxqUL1h.js} +1 -1
  44. package/dist/xlsx.util-Dwiw0sTo.js +109 -0
  45. package/package.json +6 -5
  46. package/dist/ApprovalView-BTZwnKLf.js +0 -118
  47. package/dist/FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-DjgmtvXU.js +0 -268
  48. package/dist/FmMultiselectDialog.vue_vue_type_script_setup_true_lang-n09XXJZK.js +0 -143
  49. package/dist/FmUnitInput.vue_vue_type_script_setup_true_lang-B-19iYaK.js +0 -236
  50. package/dist/IngredientsView-DMyEGdik.js +0 -1767
  51. package/dist/IntegrationView-Dn_qL_vC.js +0 -1166
  52. package/dist/InventoryBindingForm.vue_vue_type_script_setup_true_lang-DGTLUrb9.js +0 -276
  53. package/dist/ReceiveRequestView-BOdgbFFM.js +0 -1394
  54. package/dist/RecipeView-B1aNLDIK.js +0 -573
  55. package/dist/StockForecast.vue_vue_type_style_index_0_lang-B5EK101t.js +0 -58
  56. package/dist/StockView-C_Ur_jTg.js +0 -1862
  57. package/dist/SupplierView-CXfOoHTr.js +0 -796
  58. package/dist/TransferDetails.vue_vue_type_script_setup_true_lang-kjV5Eazv.js +0 -1028
  59. package/dist/UnitView-DHXfAsnq.js +0 -635
  60. package/dist/WarehouseView-DMwbxs1q.js +0 -1043
  61. package/dist/app-BkcO8oNJ.js +0 -66113
  62. package/dist/date2-Cvp5iJkI.js +0 -95
  63. package/dist/dayjs.min-D1_pOsO7.js +0 -282
  64. package/dist/fuzzy-0roCBvgC.js +0 -41
  65. package/dist/index-B_aEOJsR.js +0 -21515
  66. package/dist/number-DLj3W3RW.js +0 -97
  67. package/dist/rules-CCmXA0Yi.js +0 -85
  68. package/dist/use-inventory-binding-dialog-GkJOzE6V.js +0 -93
  69. package/dist/xlsx.util-B_bqymTM.js +0 -107
package/dist/app.js CHANGED
@@ -1,5 +1,7 @@
1
- import { E as p, D as s } from "./app-BkcO8oNJ.js";
1
+ import { ah as r, _ as e, af as n, ag as o } from "./app-DNCC20Aq.js";
2
2
  export {
3
- p as FmApp,
4
- s as routers
3
+ r as FmApp,
4
+ e as InventoryBindingForm,
5
+ n as i18nMessages,
6
+ o as routers
5
7
  };
@@ -45,9 +45,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
45
45
  reason: string[];
46
46
  }[]) => any) | undefined;
47
47
  }, {
48
+ accept: string;
48
49
  label: string;
49
50
  disabled: boolean;
50
- accept: string;
51
51
  maxFileSize: number;
52
52
  }, {}>, Readonly<FmDroppableFieldSlots> & FmDroppableFieldSlots>;
53
53
  export default _default;
@@ -1,4 +1,4 @@
1
- import "./index-B_aEOJsR.js";
1
+ import "./app-DNCC20Aq.js";
2
2
  function m(a) {
3
3
  function t(o, n = !0) {
4
4
  const e = Math.round(Math.log10(o));
@@ -1,6 +1,6 @@
1
- import { u as l, a as f } from "./xlsx-vUzm_udV.js";
2
- import { defineComponent as _, resolveComponent as d, openBlock as h, createElementBlock as y, renderSlot as F, createVNode as p, withCtx as v, createElementVNode as g, ref as k } from "vue";
3
- import { h as x, f as I } from "./app-BkcO8oNJ.js";
1
+ import { u as l, a as f } from "./xlsx-DaxqUL1h.js";
2
+ import { defineComponent as _, resolveComponent as d, openBlock as y, createElementBlock as h, renderSlot as F, createVNode as p, withCtx as v, createElementVNode as g, ref as k } from "vue";
3
+ import { n as x, j as I } from "./app-DNCC20Aq.js";
4
4
  import { useCoreStore as w } from "@feedmepos/mf-common";
5
5
  function S(e, t) {
6
6
  return t.map((r) => typeof r.selector == "function" ? r.selector(e) : e[r.selector]);
@@ -31,7 +31,7 @@ const O = { class: "flex items-center gap-8" }, E = { class: "p-4 bg-fm-color-sy
31
31
  setup(e) {
32
32
  return (t, r) => {
33
33
  const o = d("FmIcon"), s = d("FmTooltip");
34
- return h(), y("div", O, [
34
+ return y(), h("div", O, [
35
35
  F(t.$slots, "default"),
36
36
  p(s, {
37
37
  variant: "plain",
@@ -53,12 +53,7 @@ const O = { class: "flex items-center gap-8" }, E = { class: "p-4 bg-fm-color-sy
53
53
  ]);
54
54
  };
55
55
  }
56
- });
57
- function T(e) {
58
- let t = e.substring(e.indexOf("_") + 1);
59
- return t.includes("_") && (t = t.substring(0, t.lastIndexOf("_"))), Number.isNaN(Date.parse(t)) ? null : new Date(t).toISOString();
60
- }
61
- const m = x((e, t) => {
56
+ }), m = x((e, t) => {
62
57
  const r = I(), o = w();
63
58
  return {
64
59
  async getInventoryForecast() {
@@ -88,7 +83,7 @@ function $() {
88
83
  };
89
84
  }
90
85
  const c = k($());
91
- function M() {
86
+ function T() {
92
87
  return {
93
88
  // state
94
89
  get inventoryForecast() {
@@ -114,9 +109,13 @@ function M() {
114
109
  }
115
110
  };
116
111
  }
112
+ function M(e) {
113
+ let t = e.substring(e.indexOf("_") + 1);
114
+ return t.includes("_") && (t = t.substring(0, t.lastIndexOf("_"))), Number.isNaN(Date.parse(t)) ? null : new Date(t).toISOString();
115
+ }
117
116
  export {
118
117
  L as _,
119
118
  P as e,
120
- T as i,
121
- M as u
119
+ M as i,
120
+ T as u
122
121
  };
@@ -1,7 +1,7 @@
1
- import { components as x, useBreakpoints as B } from "@feedmepos/ui-library";
2
- import { h as i, defineComponent as I, computed as M, resolveComponent as R, openBlock as u, createBlock as _, normalizeClass as V, withCtx as L, createElementVNode as d, renderSlot as z, normalizeProps as N, guardReactiveProps as P, createElementBlock as c, Fragment as h, renderList as D, createVNode as k, unref as b, createCommentVNode as w } from "vue";
3
- import { x as E } from "./app-BkcO8oNJ.js";
4
- const { FmMenu: S, FmButton: $, FmMenuItem: j } = x;
1
+ import { components as B, useBreakpoints as M } from "@feedmepos/ui-library";
2
+ import { h as i, defineComponent as I, computed as R, resolveComponent as _, openBlock as a, createBlock as x, normalizeClass as V, withCtx as L, createElementVNode as d, renderSlot as z, normalizeProps as N, guardReactiveProps as P, createElementBlock as c, Fragment as h, renderList as D, createVNode as k, unref as b, createCommentVNode as w } from "vue";
3
+ import { aa as E } from "./app-DNCC20Aq.js";
4
+ const { FmMenu: S, FmButton: $, FmMenuItem: j } = B;
5
5
  function Q(o, n) {
6
6
  return i(
7
7
  S,
@@ -68,15 +68,15 @@ const y = I({
68
68
  actionColumnId: { default: "action" }
69
69
  },
70
70
  setup(o) {
71
- const n = o, t = M(
71
+ const n = o, t = R(
72
72
  () => n.row.getVisibleCells().reduce(
73
73
  (e, r) => (e[r.column.id] = r, e),
74
74
  {}
75
75
  )
76
76
  );
77
77
  return (e, r) => {
78
- const F = R("FmListItem");
79
- return u(), _(F, {
78
+ const F = _("FmListItem");
79
+ return a(), x(F, {
80
80
  class: V([
81
81
  "px-12 py-16 w-full border-b border-fm-color-neutral-gray-100",
82
82
  {
@@ -91,18 +91,18 @@ const y = I({
91
91
  })
92
92
  }, {
93
93
  default: L(() => {
94
- var m, s, p, a, f;
94
+ var m, s, p, u, f;
95
95
  return [
96
96
  d("div", A, [
97
97
  d("div", H, [
98
98
  z(e.$slots, "default", N(P(t.value)), () => [
99
99
  d("div", T, [
100
- (u(!0), c(h, null, D(n.row.getVisibleCells(), (l) => {
100
+ (a(!0), c(h, null, D(n.row.getVisibleCells(), (l) => {
101
101
  var C, g, v;
102
- return u(), c(h, {
102
+ return a(), c(h, {
103
103
  key: l.id
104
104
  }, [
105
- l.column.id !== e.actionColumnId ? (u(), c("div", q, [
105
+ l.column.id !== e.actionColumnId ? (a(), c("div", q, [
106
106
  k(b(y), {
107
107
  render: (g = (C = l.column) == null ? void 0 : C.columnDef) == null ? void 0 : g.cell,
108
108
  props: (v = l.getContext) == null ? void 0 : v.call(l)
@@ -113,11 +113,11 @@ const y = I({
113
113
  ])
114
114
  ])
115
115
  ]),
116
- t.value[e.actionColumnId ?? ""] ? (u(), c("div", G, [
116
+ t.value[e.actionColumnId ?? ""] ? (a(), c("div", G, [
117
117
  d("div", null, [
118
118
  k(b(y), {
119
119
  render: (p = (s = (m = t.value[e.actionColumnId ?? ""]) == null ? void 0 : m.column) == null ? void 0 : s.columnDef) == null ? void 0 : p.cell,
120
- props: (f = (a = t.value[e.actionColumnId ?? ""]) == null ? void 0 : a.getContext) == null ? void 0 : f.call(a)
120
+ props: (f = (u = t.value[e.actionColumnId ?? ""]) == null ? void 0 : u.getContext) == null ? void 0 : f.call(u)
121
121
  }, null, 8, ["render", "props"])
122
122
  ])
123
123
  ])) : w("", !0)
@@ -132,7 +132,7 @@ const y = I({
132
132
  function W() {
133
133
  return {
134
134
  get tableHeight() {
135
- const o = E(), { breakpoints: n } = B();
135
+ const o = E(), { breakpoints: n } = M();
136
136
  return o.isIframeMode ? n.value.xs || n.value.sm ? {
137
137
  height: "calc(100dvh - 180px)"
138
138
  } : {
@@ -14,4 +14,4 @@ export declare enum RouteName {
14
14
  IFRAME_INVENTORY_BINDINGS_DIALOG = "IFRAME_INVENTORY_BINDINGS_DIALOG",
15
15
  IFRAME_INVENTORY_BINDINGS_PICKER = "IFRAME_INVENTORY_BINDINGS_PICKER"
16
16
  }
17
- export declare function getReadableRouteName(route: RouteName): "Ingredient" | "Recipe" | "Unit" | "Stock" | "Warehouse" | "Receive/Request" | "Print preview" | "Approval" | "Supplier" | "Integration" | "Dev" | "Inventory bindings table" | "Inventory bindings dialog" | "Inventory bindings picker";
17
+ export declare function getReadableRouteName(route: RouteName, t: Translator): string;
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .v-enter-active[data-v-9581df70],.v-leave-active[data-v-9581df70]{transition:opacity .1s ease}.v-enter-from[data-v-9581df70],.v-leave-to[data-v-9581df70]{opacity:0}.fm-status-badge-draft{background-color:var(--fm-color-neutral-gray-100);color:var(--fm-color-neutral-gray-500)}.fm-status-badge-receiving{background-color:var(--fm-color-system-blue-100);color:var(--fm-color-system-blue-400)}.fm-status-badge-cancel{background-color:var(--fm-color-system-red-100);color:var(--fm-color-system-red-400)}.fm-status-badge-complete{background-color:var(--fm-color-system-green-100);color:var(--fm-color-system-green-400)}.fm-status-badge-processing,.fm-status-badge-requesting{background-color:var(--fm-color-system-orange-100);color:var(--fm-color-system-orange-400)}.fm-forecast-notification-low{background-color:var(--fm-color-system-red-100);color:var(--fm-color-system-red-400)}.fm-forecast-notification-mid{background-color:var(--fm-color-system-orange-100);color:var(--fm-color-system-orange-400)}.fm-forecast-notification-high{background-color:var(--fm-color-system-green-100);color:var(--fm-color-system-green-400)}.fm-forecast-notification-indicator{display:inline-block;height:12px;width:12px;border-radius:9999px}.fm-forecast-notification-indicator-low{background-color:var(--fm-color-system-red-400)}.fm-forecast-notification-indicator-mid{background-color:var(--fm-color-system-orange-400)}.fm-forecast-notification-indicator-high{background-color:var(--fm-color-system-green-400)}.fm-droppable-field[data-v-311b22a0]{display:flex;flex-direction:column;gap:4px}.fm-droppable-field__container[data-v-311b22a0]{position:relative;background-color:var(--fm-color-neutral-white);padding:12px;border-radius:8px;border-width:2px;border-style:dashed;border-color:var(--fm-color-neutral-gray-300);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}.fm-droppable-field__container--disabled[data-v-311b22a0]{cursor:not-allowed;color:var(--fm-color-neutral-gray-200);border-color:var(--fm-color-neutral-gray-200)}.fm-droppable-field__container--dragging[data-v-311b22a0]{border-color:var(--fm-color-primary)}.fm-droppable-field__container--invalid[data-v-311b22a0]{border-color:var(--fm-color-system-red-300)}.fm-droppable-field__container[data-v-311b22a0]:hover:not(.fm-droppable-field__container--disabled){border-color:var(--fm-color-neutral-gray-400)}.fm-droppable-field__input[data-v-311b22a0]{cursor:pointer;opacity:0;position:absolute;top:0;left:0;height:100%;width:100%}.fm-droppable-field__input[data-v-311b22a0]:disabled{display:none;cursor:not-allowed}.map-button[data-v-ea67d23a]{border-top-width:1px;border-top-color:var(--fm-color-neutral-gray-200);color:var(--fm-color-neutral-gray-400);padding:.2rem 1rem;border-radius:8px}table[data-v-54384fc1]{width:100%;border-spacing:unset;line-height:inherit}table td[data-v-54384fc1],table th[data-v-54384fc1]{padding:3px 5px;vertical-align:top}hr[data-v-54384fc1]{border-collapse:unset;background:#888;height:2px;border:0px}.text-left[data-v-54384fc1]{text-align:left}.text-right[data-v-54384fc1]{text-align:right}.purchase-box[data-v-54384fc1]{max-width:800px;margin:auto;padding:30px;border:1px solid #eee;box-shadow:0 0 10px #00000026;font-size:16px;line-height:1.5;font-family:Helvetica Neue,Helvetica,Helvetica,Arial,sans-serif;color:#555}.title[data-v-54384fc1]{padding-bottom:0;font-size:30px;color:#333}.header[data-v-54384fc1]{font-weight:600;color:#333}.sub-header[data-v-54384fc1]{font-size:18px;color:#333}.caption[data-v-54384fc1]{font-size:14px;color:#666}.address[data-v-54384fc1]{font-size:16px;line-height:1.2;color:#666}.purchase-body[data-v-54384fc1]{margin-top:30px}.item-header[data-v-54384fc1]{border:0px;background:#ccc;color:#444}
1
+ .v-enter-active[data-v-3c4403e7],.v-leave-active[data-v-3c4403e7]{transition:opacity .1s ease}.v-enter-from[data-v-3c4403e7],.v-leave-to[data-v-3c4403e7]{opacity:0}.fm-status-badge-draft{background-color:var(--fm-color-neutral-gray-100);color:var(--fm-color-neutral-gray-500)}.fm-status-badge-receiving{background-color:var(--fm-color-system-blue-100);color:var(--fm-color-system-blue-400)}.fm-status-badge-cancel{background-color:var(--fm-color-system-red-100);color:var(--fm-color-system-red-400)}.fm-status-badge-complete{background-color:var(--fm-color-system-green-100);color:var(--fm-color-system-green-400)}.fm-status-badge-processing,.fm-status-badge-requesting{background-color:var(--fm-color-system-orange-100);color:var(--fm-color-system-orange-400)}.fm-forecast-notification-low{background-color:var(--fm-color-system-red-100);color:var(--fm-color-system-red-400)}.fm-forecast-notification-mid{background-color:var(--fm-color-system-orange-100);color:var(--fm-color-system-orange-400)}.fm-forecast-notification-high{background-color:var(--fm-color-system-green-100);color:var(--fm-color-system-green-400)}.fm-forecast-notification-indicator{display:inline-block;height:12px;width:12px;border-radius:9999px}.fm-forecast-notification-indicator-low{background-color:var(--fm-color-system-red-400)}.fm-forecast-notification-indicator-mid{background-color:var(--fm-color-system-orange-400)}.fm-forecast-notification-indicator-high{background-color:var(--fm-color-system-green-400)}.fm-droppable-field[data-v-311b22a0]{display:flex;flex-direction:column;gap:4px}.fm-droppable-field__container[data-v-311b22a0]{position:relative;background-color:var(--fm-color-neutral-white);padding:12px;border-radius:8px;border-width:2px;border-style:dashed;border-color:var(--fm-color-neutral-gray-300);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}.fm-droppable-field__container--disabled[data-v-311b22a0]{cursor:not-allowed;color:var(--fm-color-neutral-gray-200);border-color:var(--fm-color-neutral-gray-200)}.fm-droppable-field__container--dragging[data-v-311b22a0]{border-color:var(--fm-color-primary)}.fm-droppable-field__container--invalid[data-v-311b22a0]{border-color:var(--fm-color-system-red-300)}.fm-droppable-field__container[data-v-311b22a0]:hover:not(.fm-droppable-field__container--disabled){border-color:var(--fm-color-neutral-gray-400)}.fm-droppable-field__input[data-v-311b22a0]{cursor:pointer;opacity:0;position:absolute;top:0;left:0;height:100%;width:100%}.fm-droppable-field__input[data-v-311b22a0]:disabled{display:none;cursor:not-allowed}.map-button[data-v-272f5e8b]{border-top-width:1px;border-top-color:var(--fm-color-neutral-gray-200);color:var(--fm-color-neutral-gray-400);padding:.2rem 1rem;border-radius:8px}table[data-v-54384fc1]{width:100%;border-spacing:unset;line-height:inherit}table td[data-v-54384fc1],table th[data-v-54384fc1]{padding:3px 5px;vertical-align:top}hr[data-v-54384fc1]{border-collapse:unset;background:#888;height:2px;border:0px}.text-left[data-v-54384fc1]{text-align:left}.text-right[data-v-54384fc1]{text-align:right}.purchase-box[data-v-54384fc1]{max-width:800px;margin:auto;padding:30px;border:1px solid #eee;box-shadow:0 0 10px #00000026;font-size:16px;line-height:1.5;font-family:Helvetica Neue,Helvetica,Helvetica,Arial,sans-serif;color:#555}.title[data-v-54384fc1]{padding-bottom:0;font-size:30px;color:#333}.header[data-v-54384fc1]{font-weight:600;color:#333}.sub-header[data-v-54384fc1]{font-size:18px;color:#333}.caption[data-v-54384fc1]{font-size:14px;color:#666}.address[data-v-54384fc1]{font-size:16px;line-height:1.2;color:#666}.purchase-body[data-v-54384fc1]{margin-top:30px}.item-header[data-v-54384fc1]{border:0px;background:#ccc;color:#444}
@@ -1,4 +1,4 @@
1
- import { h as u, f as o, k as c, l } from "./app-BkcO8oNJ.js";
1
+ import { n as u, j as o, Q as c, T as l } from "./app-DNCC20Aq.js";
2
2
  import { ref as d } from "vue";
3
3
  const n = u((e, r) => {
4
4
  const a = o();
@@ -27,7 +27,7 @@ function S() {
27
27
  };
28
28
  }
29
29
  const s = d(S());
30
- function f() {
30
+ function A() {
31
31
  return {
32
32
  // state
33
33
  get suppliers() {
@@ -61,5 +61,5 @@ function f() {
61
61
  };
62
62
  }
63
63
  export {
64
- f as u
64
+ A as u
65
65
  };