@operato/scene-chartjs 1.3.12 → 1.3.13

Sign up to get free protection for your applications and to get access to all the features.
package/schema.graphql CHANGED
@@ -26,7 +26,7 @@ type AppBinding {
26
26
  creator: User!
27
27
  description: String
28
28
  domains: [Domain!]!
29
- email: String!
29
+ email: EmailAddress!
30
30
  id: ID!
31
31
  locale: String
32
32
  name: String!
@@ -89,7 +89,7 @@ type Application {
89
89
  creator: User
90
90
  description: String
91
91
  domain: Domain!
92
- email: String!
92
+ email: EmailAddress!
93
93
  icon: String
94
94
  id: ID!
95
95
  name: String!
@@ -109,7 +109,7 @@ type ApplicationList {
109
109
 
110
110
  input ApplicationPatch {
111
111
  description: String
112
- email: String
112
+ email: EmailAddress
113
113
  icon: String
114
114
  name: String
115
115
  redirectUrl: String
@@ -574,7 +574,7 @@ type Contact {
574
574
  deletedAt: DateTimeISO
575
575
  department: String
576
576
  domain: Domain
577
- email: String
577
+ email: EmailAddress
578
578
  id: ID!
579
579
  items: [ContactItem!]
580
580
  name: String
@@ -607,7 +607,7 @@ input ContactPatch {
607
607
  company: String
608
608
  cuFlag: String
609
609
  department: String
610
- email: String
610
+ email: EmailAddress
611
611
  id: ID
612
612
  items: [ContactItemPatch!]
613
613
  name: String
@@ -638,7 +638,7 @@ scalar DateTimeISO
638
638
  """Entity for Department"""
639
639
  type Department {
640
640
  active: Boolean
641
- children: [Department!]!
641
+ children(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): [Department!]!
642
642
  controlNo: String!
643
643
  createdAt: DateTimeISO
644
644
  creator: User
@@ -652,7 +652,6 @@ type Department {
652
652
  name: String
653
653
  parent: Department
654
654
  picture: String
655
- state: String
656
655
  updatedAt: DateTimeISO
657
656
  updater: User
658
657
  version: Float
@@ -673,13 +672,6 @@ input DepartmentPatch {
673
672
  name: String
674
673
  parent: ObjectRef
675
674
  picture: Upload
676
- state: DepartmentStatus
677
- }
678
-
679
- """state enumeration of a department"""
680
- enum DepartmentStatus {
681
- STATUS_A
682
- STATUS_B
683
675
  }
684
676
 
685
677
  type Domain {
@@ -689,9 +681,11 @@ type Domain {
689
681
  children: Domain
690
682
  contentImage: String
691
683
  createdAt: DateTimeISO
684
+ deletedAt: DateTimeISO
692
685
  description: String
693
686
  extType: String
694
687
  id: ID!
688
+ iplist: Object
695
689
  name: String!
696
690
  owner: String
697
691
  ownerUser: User
@@ -740,6 +734,11 @@ input DomainUserRoleInput {
740
734
  users: [NewUserByDomainWizardInput!]!
741
735
  }
742
736
 
737
+ """
738
+ A field whose value conforms to the standard internet email address format as specified in HTML Spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address.
739
+ """
740
+ scalar EmailAddress @specifiedBy(url: "https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address")
741
+
743
742
  """Entity for Employee"""
744
743
  type Employee {
745
744
  active: Boolean
@@ -753,7 +752,7 @@ type Employee {
753
752
  deletedAt: DateTimeISO
754
753
  department: Department
755
754
  domain: Domain
756
- email: String
755
+ email: EmailAddress
757
756
  extension: String
758
757
  hiredOn: String
759
758
  id: ID!
@@ -1089,7 +1088,7 @@ enum InheritedValueType {
1089
1088
  type Invitation {
1090
1089
  createdAt: DateTimeISO
1091
1090
  creator: User
1092
- email: String!
1091
+ email: EmailAddress!
1093
1092
  id: ID!
1094
1093
  reference: String!
1095
1094
  token: String!
@@ -1103,6 +1102,11 @@ type InvitationList {
1103
1102
  total: Int
1104
1103
  }
1105
1104
 
1105
+ """
1106
+ A field whose value is a JSON Web Token (JWT): https://jwt.io/introduction.
1107
+ """
1108
+ scalar JWT
1109
+
1106
1110
  type Log {
1107
1111
  """log level (error, warning, info, ..)"""
1108
1112
  level: String!
@@ -1493,7 +1497,7 @@ type Mutation {
1493
1497
 
1494
1498
  """To attach a contact on Employee"""
1495
1499
  attachContact(contactId: String!, id: String!): Employee!
1496
- cancelInvitation(email: String!, reference: String!, type: String!): Boolean!
1500
+ cancelInvitation(email: EmailAddress!, reference: String!, type: String!): Boolean!
1497
1501
 
1498
1502
  """To clone a Board from existing Board"""
1499
1503
  cloneBoard(id: String!, patch: BoardPatch!, targetGroupId: String, targetSubdomain: String!): Board!
@@ -1614,6 +1618,9 @@ type Mutation {
1614
1618
  """To create new Setting"""
1615
1619
  createSetting(setting: NewSetting!): Setting!
1616
1620
 
1621
+ """To create new StateRegister"""
1622
+ createStateRegister(stateRegister: NewStateRegister!): StateRegister!
1623
+
1617
1624
  """To create new Terminology"""
1618
1625
  createTerminology(terminology: NewTerminology!): Terminology!
1619
1626
 
@@ -1688,7 +1695,7 @@ type Mutation {
1688
1695
  deleteDomain(name: String!): Domain!
1689
1696
 
1690
1697
  """To delete domain user"""
1691
- deleteDomainUser(email: String!): Boolean!
1698
+ deleteDomainUser(email: EmailAddress!): Boolean!
1692
1699
 
1693
1700
  """To delete multiple domains (Only superuser is granted this privilege.)"""
1694
1701
  deleteDomains(names: [String!]!): Boolean!
@@ -1819,6 +1826,12 @@ type Mutation {
1819
1826
  """To delete multiple settings"""
1820
1827
  deleteSettings(names: [String!]!): Boolean!
1821
1828
 
1829
+ """To delete StateRegister"""
1830
+ deleteStateRegister(id: String!): Boolean!
1831
+
1832
+ """To delete multiple StateRegisters"""
1833
+ deleteStateRegisters(ids: [String!]!): Boolean!
1834
+
1822
1835
  """To delete multiple steps"""
1823
1836
  deleteSteps(ids: [String!]!): Boolean!
1824
1837
 
@@ -1835,7 +1848,7 @@ type Mutation {
1835
1848
  deleteThemes(ids: [String!]!): Boolean!
1836
1849
 
1837
1850
  """To delete a user"""
1838
- deleteUser(email: String!): Boolean!
1851
+ deleteUser(email: EmailAddress!): Boolean!
1839
1852
 
1840
1853
  """To delete some users"""
1841
1854
  deleteUsers(emails: [String!]!): Boolean!
@@ -1912,6 +1925,9 @@ type Mutation {
1912
1925
  """To import multiple scenarios"""
1913
1926
  importScenarios(scenarios: [ScenarioPatch!]!): Boolean!
1914
1927
 
1928
+ """To import multiple StateRegisters"""
1929
+ importStateRegisters(stateRegisters: [StateRegisterPatch!]!): Boolean!
1930
+
1915
1931
  """To import multiple Terminologies"""
1916
1932
  importTerminologies(terminologies: [TerminologyPatch!]!): Boolean!
1917
1933
 
@@ -1923,7 +1939,7 @@ type Mutation {
1923
1939
  inviteCustomer(customerDomainName: String!): Boolean!
1924
1940
 
1925
1941
  """To invite new user"""
1926
- inviteUser(email: String!): Boolean!
1942
+ inviteUser(email: EmailAddress!): Boolean!
1927
1943
 
1928
1944
  """To make the board to join the group"""
1929
1945
  joinGroup(boardIds: [String!]!, id: String!): Group!
@@ -1970,7 +1986,7 @@ type Mutation {
1970
1986
  To run new scenario instance and will return the result after the scenario stop.
1971
1987
  """
1972
1988
  runScenario(instanceName: String, scenarioName: String!, variables: Object): ScenarioInstance!
1973
- sendInvitation(email: String!, reference: String!, type: String!): Invitation!
1989
+ sendInvitation(email: EmailAddress!, reference: String!, type: String!): Invitation!
1974
1990
  singleUpload(file: Upload!): Attachment!
1975
1991
 
1976
1992
  """To start new scenario instance"""
@@ -2001,7 +2017,7 @@ type Mutation {
2001
2017
  terminateContract(partnerName: String!): Boolean!
2002
2018
 
2003
2019
  """To transfer owner of domain"""
2004
- transferOwner(email: String!): Boolean!
2020
+ transferOwner(email: EmailAddress!): Boolean!
2005
2021
  updateAppliance(id: String!, patch: AppliancePatch!): Appliance!
2006
2022
  updateApplication(id: String!, patch: ApplicationPatch!): Application!
2007
2023
 
@@ -2039,7 +2055,7 @@ type Mutation {
2039
2055
  """To update domain (Only superuser is granted this privilege.)"""
2040
2056
  updateDomain(name: String!, patch: DomainPatch!): Domain!
2041
2057
 
2042
- """To update multiple domains"""
2058
+ """To update multiple domains (Only superuser is granted this privilege.)"""
2043
2059
  updateDomains(patches: [DomainPatch!]!): Boolean!
2044
2060
 
2045
2061
  """To modify Employee information"""
@@ -2133,6 +2149,9 @@ type Mutation {
2133
2149
  """To modify multiple Settings' information"""
2134
2150
  updateMultipleSetting(patches: [SettingPatch!]!): [Setting!]!
2135
2151
 
2152
+ """To modify multiple StateRegisters' information"""
2153
+ updateMultipleStateRegister(patches: [StateRegisterPatch!]!): [StateRegister!]!
2154
+
2136
2155
  """To modify multiple steps' in a scenario"""
2137
2156
  updateMultipleStep(patches: [StepPatch!]!, scenarioId: String!): [Step!]!
2138
2157
 
@@ -2181,9 +2200,18 @@ type Mutation {
2181
2200
  """To modify scenario information"""
2182
2201
  updateScenario(name: String!, patch: ScenarioPatch!): Scenario!
2183
2202
 
2203
+ """To update secure IP list for domain"""
2204
+ updateSecureIPList(iplist: Object!): Object
2205
+
2184
2206
  """To modify Setting information"""
2185
2207
  updateSetting(name: String!, patch: SettingPatch!): Setting!
2186
2208
 
2209
+ """To modify StateRegister information"""
2210
+ updateStateRegister(id: String!, patch: StateRegisterPatch!): StateRegister!
2211
+
2212
+ """To update state of StateRegister by name"""
2213
+ updateStateRegisterByName(name: String!, state: Object!): StateRegister!
2214
+
2187
2215
  """To modify Terminology information"""
2188
2216
  updateTerminology(id: String!, patch: TerminologyPatch!): Terminology!
2189
2217
 
@@ -2191,7 +2219,7 @@ type Mutation {
2191
2219
  updateTheme(id: String!, patch: ThemePatch!): Theme!
2192
2220
 
2193
2221
  """To modify user information"""
2194
- updateUser(email: String!, patch: UserPatch!): User!
2222
+ updateUser(email: EmailAddress!, patch: UserPatch!): User!
2195
2223
 
2196
2224
  """To update roles for a user"""
2197
2225
  updateUserRoles(availableRoles: [ObjectRef!]!, selectedRoles: [ObjectRef!]!, userId: String!): User!
@@ -2208,7 +2236,7 @@ input NewAppliance {
2208
2236
 
2209
2237
  input NewApplication {
2210
2238
  description: String
2211
- email: String
2239
+ email: EmailAddress
2212
2240
  icon: String
2213
2241
  name: String!
2214
2242
  redirectUrl: String
@@ -2291,7 +2319,7 @@ input NewContact {
2291
2319
  address: String
2292
2320
  company: String
2293
2321
  department: String
2294
- email: String
2322
+ email: EmailAddress
2295
2323
  items: [ContactItemPatch!]
2296
2324
  name: String!
2297
2325
  note: String
@@ -2308,7 +2336,6 @@ input NewDepartment {
2308
2336
  name: String!
2309
2337
  parent: ObjectRef
2310
2338
  picture: Upload
2311
- state: DepartmentStatus
2312
2339
  }
2313
2340
 
2314
2341
  input NewEmployee {
@@ -2581,7 +2608,7 @@ input NewOauth2Client {
2581
2608
  description: String
2582
2609
  grantType: String
2583
2610
  icon: String
2584
- jwtToken: String
2611
+ jwtToken: JWT
2585
2612
  name: String!
2586
2613
  password: String
2587
2614
  refreshToken: String
@@ -2649,6 +2676,15 @@ input NewSetting {
2649
2676
  value: String
2650
2677
  }
2651
2678
 
2679
+ input NewStateRegister {
2680
+ description: String
2681
+ name: String!
2682
+ refBy: String
2683
+ state: Object
2684
+ ttl: Int
2685
+ type: String
2686
+ }
2687
+
2652
2688
  input NewTerminology {
2653
2689
  category: String!
2654
2690
  description: String
@@ -2667,7 +2703,7 @@ input NewTheme {
2667
2703
 
2668
2704
  input NewUser {
2669
2705
  description: String
2670
- email: String!
2706
+ email: EmailAddress!
2671
2707
  name: String!
2672
2708
  password: String
2673
2709
  roles: [ObjectRef!]
@@ -2675,7 +2711,7 @@ input NewUser {
2675
2711
  }
2676
2712
 
2677
2713
  input NewUserByDomainWizardInput {
2678
- email: String!
2714
+ email: EmailAddress!
2679
2715
  isInvitee: Boolean
2680
2716
  name: String!
2681
2717
  owner: Boolean!
@@ -2784,7 +2820,7 @@ type Oauth2Client {
2784
2820
  grantType: String
2785
2821
  icon: String
2786
2822
  id: ID!
2787
- jwtToken: String
2823
+ jwtToken: JWT
2788
2824
  name: String!
2789
2825
  password: String
2790
2826
  refreshToken: String
@@ -2814,7 +2850,7 @@ input Oauth2ClientPatch {
2814
2850
  description: String
2815
2851
  grantType: String
2816
2852
  icon: String
2817
- jwtToken: String
2853
+ jwtToken: JWT
2818
2854
  name: String
2819
2855
  password: String
2820
2856
  refreshToken: String
@@ -2857,22 +2893,24 @@ input ObjectRefForEmployee {
2857
2893
 
2858
2894
  """Field description"""
2859
2895
  description: String
2860
- email: String
2896
+ email: EmailAddress
2861
2897
  hiredOn: String
2862
2898
 
2863
2899
  """Field id"""
2864
2900
  id: ID!
2865
2901
  jobPosition: String
2902
+ jobResponsibility: String
2866
2903
 
2867
2904
  """Field name"""
2868
2905
  name: String
2869
2906
  photo: String
2907
+ type: EmployeeType
2870
2908
  }
2871
2909
 
2872
2910
  input ObjectRefForUser {
2873
2911
  """Field description"""
2874
2912
  description: String
2875
- email: String
2913
+ email: EmailAddress
2876
2914
 
2877
2915
  """Field id"""
2878
2916
  id: ID!
@@ -3070,6 +3108,7 @@ type Privilege {
3070
3108
  description: String
3071
3109
  id: ID!
3072
3110
  name: String!
3111
+ privilege: String!
3073
3112
  roles: [Role!]
3074
3113
  updatedAt: DateTimeISO
3075
3114
  updater: User
@@ -3179,9 +3218,6 @@ type Query {
3179
3218
  """To fetch a Board Model by name"""
3180
3219
  boardByName(name: String!): Board
3181
3220
 
3182
- """Board Usage Permissions"""
3183
- boardPermissions: [String!]!
3184
-
3185
3221
  """To fetch the latest Board published"""
3186
3222
  boardPublished(id: String!): BoardHistory!
3187
3223
 
@@ -3217,7 +3253,7 @@ type Query {
3217
3253
  checkUserBelongsDomain: Boolean!
3218
3254
 
3219
3255
  """..."""
3220
- checkUserExistence(email: String!): Boolean!
3256
+ checkUserExistence(email: EmailAddress!): Boolean!
3221
3257
 
3222
3258
  """To fetch common approval lines"""
3223
3259
  commonApprovalLines(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): ApprovalLineList!
@@ -3258,8 +3294,8 @@ type Query {
3258
3294
  """To fetch a Department"""
3259
3295
  department(id: String!): Department
3260
3296
 
3261
- """To fetch a Root Department"""
3262
- departmentRoot: Department
3297
+ """To fetch a Root Departments"""
3298
+ departmentRoots(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): DepartmentList
3263
3299
 
3264
3300
  """To fetch multiple Departments"""
3265
3301
  departments(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): DepartmentList!
@@ -3271,7 +3307,7 @@ type Query {
3271
3307
  domains(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): DomainList!
3272
3308
 
3273
3309
  """To fetch domains with given privilege for user"""
3274
- domainsWithPrivilege(category: String!, name: String!): [Domain!]!
3310
+ domainsWithPrivilege(category: String!, privilege: String!): [Domain!]!
3275
3311
 
3276
3312
  """To fetch a Employee"""
3277
3313
  employee(id: String!): Employee
@@ -3321,13 +3357,13 @@ type Query {
3321
3357
  groups(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): GroupList!
3322
3358
 
3323
3359
  """To query whether I have the given permission"""
3324
- hasPrivilege(category: String!, name: String!): Boolean!
3360
+ hasPrivilege(category: String!, privilege: String!): Boolean!
3325
3361
  i18nCompletion(input: i18nCompletionInput!): i18nCompletionOutput!
3326
3362
  imageCompletion(input: ImageCompletionInput!): ImageCompletionOutput!
3327
3363
 
3328
3364
  """To fetch integration Analyses"""
3329
3365
  integrationAnalysis: Object!
3330
- invitation(email: String!, reference: String!, type: String!): Invitation!
3366
+ invitation(email: EmailAddress!, reference: String!, type: String!): Invitation!
3331
3367
  invitations(reference: String!, type: String!): InvitationList!
3332
3368
 
3333
3369
  """To fetch multiple LoginHistories"""
@@ -3437,9 +3473,6 @@ type Query {
3437
3473
  """To fetch multiple PrinterDevices"""
3438
3474
  printerDevices(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): PrinterDeviceList!
3439
3475
 
3440
- """To fetch privilege"""
3441
- privilege(category: String!, name: String!): Privilege!
3442
-
3443
3476
  """To fetch multiple privileges"""
3444
3477
  privileges(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): PrivilegeList!
3445
3478
 
@@ -3468,12 +3501,24 @@ type Query {
3468
3501
  scenarios(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): ScenarioList!
3469
3502
  searchCustomers(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): DomainList!
3470
3503
 
3504
+ """To fetch domain"""
3505
+ secureIPList: Object
3506
+
3471
3507
  """To fetch a Setting"""
3472
3508
  setting(name: String!, partnerDomainId: String): Setting!
3473
3509
 
3474
3510
  """To fetch multiple Settings"""
3475
3511
  settings(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): SettingList!
3476
3512
 
3513
+ """To fetch a StateRegister"""
3514
+ stateRegister(id: String!): StateRegister
3515
+
3516
+ """To fetch a StateRegister by name"""
3517
+ stateRegisterByName(name: String!): StateRegister
3518
+
3519
+ """To fetch multiple StateRegisters"""
3520
+ stateRegisters(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): StateRegisterList!
3521
+
3477
3522
  """To fetch a step"""
3478
3523
  step(name: String!): Step!
3479
3524
 
@@ -3502,7 +3547,7 @@ type Query {
3502
3547
  themes(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): ThemeList!
3503
3548
 
3504
3549
  """To fetch user"""
3505
- user(email: String!): User!
3550
+ user(email: EmailAddress!): User!
3506
3551
 
3507
3552
  """To fetch Menus by role"""
3508
3553
  userMenus: [Menu!]!
@@ -3691,6 +3736,40 @@ input Sorting {
3691
3736
  name: String!
3692
3737
  }
3693
3738
 
3739
+ """Entity for StateRegister"""
3740
+ type StateRegister {
3741
+ createdAt: DateTimeISO
3742
+ creator: User
3743
+ description: String
3744
+ domain: Domain
3745
+ id: ID!
3746
+ name: String
3747
+ refBy: String
3748
+ state: Object
3749
+ ttl: Int
3750
+ type: String
3751
+ updatedAt: DateTimeISO
3752
+ updater: User
3753
+ writer: User
3754
+ wroteAt: DateTimeISO
3755
+ }
3756
+
3757
+ type StateRegisterList {
3758
+ items: [StateRegister!]!
3759
+ total: Int!
3760
+ }
3761
+
3762
+ input StateRegisterPatch {
3763
+ cuFlag: String
3764
+ description: String
3765
+ id: ID
3766
+ name: String
3767
+ refBy: String
3768
+ state: Object
3769
+ ttl: Int
3770
+ type: String
3771
+ }
3772
+
3694
3773
  type Step {
3695
3774
  connection: String
3696
3775
  createdAt: DateTimeISO
@@ -3703,7 +3782,7 @@ type Step {
3703
3782
  params: String
3704
3783
 
3705
3784
  """
3706
- a boolean attribute indicating the inclusion status of an element in the result
3785
+ A boolean attribute indicating the inclusion status of an element in the result
3707
3786
  """
3708
3787
  result: Boolean
3709
3788
  scenario: Scenario
@@ -3830,7 +3909,7 @@ type User {
3830
3909
  creator: User
3831
3910
  description: String
3832
3911
  domains: [Domain!]!
3833
- email: String!
3912
+ email: EmailAddress!
3834
3913
  id: ID!
3835
3914
  locale: String
3836
3915
  name: String!
@@ -3854,7 +3933,7 @@ input UserPatch {
3854
3933
  cuFlag: String
3855
3934
  description: String
3856
3935
  domains: [ObjectRef!]
3857
- email: String
3936
+ email: EmailAddress
3858
3937
  id: ID
3859
3938
  name: String
3860
3939
  password: String
@@ -386,7 +386,7 @@ function _setTooltipCallback(tooltips: SceneChart.ChartTooltipOptions) {
386
386
  var toNumValue = Number(value)
387
387
 
388
388
  if (!isNaN(toNumValue)) {
389
- value = toNumValue.toString().replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ',')
389
+ value = toNumValue.toLocaleString()
390
390
  }
391
391
 
392
392
  var prefix = data.datasets?.[tooltipItem.datasetIndex || 0].valuePrefix || ''
package/src/ox-chart.ts CHANGED
@@ -47,6 +47,7 @@ export class OxChart extends LitElement {
47
47
 
48
48
  initChart() {
49
49
  const { data, options, type } = this.options
50
+ this.options.options.tooltip = this.options.options.tooltip ?? true
50
51
  options!.maintainAspectRatio = false
51
52
 
52
53
  this.attachPluginOptions(options)
@@ -140,7 +141,7 @@ export class OxChart extends LitElement {
140
141
  var suffix = context.dataset.valueSuffix || ''
141
142
  if (value == undefined) return value
142
143
 
143
- var stringValue = String(value).replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ',')
144
+ var stringValue = Number(value).toLocaleString()
144
145
  return prefix + stringValue + suffix
145
146
  }
146
147
  }