@ningboyz/types 1.0.39 → 1.0.51
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.
- package/package.json +1 -1
- package/src/const/const_hznt.ts +29 -0
- package/src/const/const_myoa.ts +3 -0
- package/src/const/const_yzcg.ts +9 -0
- package/src/const/index.ts +5 -0
- package/src/core/IDictResponse.ts +3 -1
- package/src/enums/btnMode.ts +2 -2
- package/src/enums/index.ts +2 -1
- package/src/gzjg/IGzjgGzlmResponse.ts +5 -4
- package/src/gzjg/IGzjgGzlmWithResponse.ts +88 -0
- package/src/gzjg/index.ts +4 -1
- package/src/load/ILoadDataResponse.ts +51 -0
- package/src/load/ILoadLineResponse.ts +12 -0
- package/src/load/ILoadMainResponse.ts +107 -0
package/package.json
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 公文管理-收文申请
|
|
3
|
+
*/
|
|
4
|
+
export const CONST_MODULE_NOTI_SWDJ = "CONST_MODULE_NOTI_SWDJ";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 公文管理-收文审核
|
|
8
|
+
*/
|
|
9
|
+
export const CONST_MODULE_NOTI_SWSH = "CONST_MODULE_NOTI_SWSH";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* 公文管理-发文审核
|
|
13
|
+
*/
|
|
14
|
+
export const CONST_MODULE_NOTI_FWDJ = "CONST_MODULE_NOTI_FWDJ";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* 公文管理-发文审核
|
|
18
|
+
*/
|
|
19
|
+
export const CONST_MODULE_NOTI_FWSH = "CONST_MODULE_NOTI_FWSH";
|
|
20
|
+
|
|
21
|
+
/**财政业务审批系统-外宣发布登记 */
|
|
22
|
+
export const CONST_MODULE_NOTI_FBDJ = "CONST_MODULE_NOTI_FBDJ";
|
|
23
|
+
|
|
24
|
+
/**财政业务审批系统-外宣发布审核 */
|
|
25
|
+
export const CONST_MODULE_NOTI_FBSH = "CONST_MODULE_NOTI_FBSH";
|
|
26
|
+
|
|
27
|
+
export const CONST_NOTI_PART_TO_收文 = 3015; //#收文
|
|
28
|
+
export const CONST_NOTI_PART_TO_发文 = 3016; //#发文
|
|
29
|
+
export const CONST_NOTI_PART_TO_外宣发布 = 3018; //#外宣发布|上城财政
|
package/src/const/const_myoa.ts
CHANGED
|
@@ -16,3 +16,6 @@ export const CONST_MYOA_MYOA_TYPN_GOCH = "公车申请"; // #公车申请
|
|
|
16
16
|
export const CONST_MYOA_MYOA_TYPN_QIJI = "请假申请"; // #请假申请
|
|
17
17
|
export const CONST_MYOA_MYOA_TYPN_HTQD = "合同签订"; // #合同签订
|
|
18
18
|
export const CONST_MYOA_MYOA_TYPN_WJSC = "文件审查"; // #文件审查
|
|
19
|
+
|
|
20
|
+
export const CONST_MODULE_MYOA_GZSQ = "CONST_MODULE_MYOA_GZSQ"; // #盖章申请
|
|
21
|
+
export const CONST_MODULE_MYOA_GZSH = "CONST_MODULE_MYOA_GZSH"; // #盖章审核
|
package/src/const/index.ts
CHANGED
|
@@ -23,7 +23,12 @@ import * as WtuiItemType from "./const_wtui_item_type";
|
|
|
23
23
|
import * as WldyItemType from "./const_wldy_item_type";
|
|
24
24
|
import * as ConstModuleType from "./const_module";
|
|
25
25
|
import * as Module from "./const_module";
|
|
26
|
+
import * as Hznt from "./const_hznt";
|
|
27
|
+
import * as Yzgc from "./const_yzcg";
|
|
26
28
|
|
|
27
29
|
export { Align, Audit, Card, Clas, Cnfg, DataFrom, Elem, Flow, GamsMode, Gzlm, Module, Myoa, Part, Stat, TakeType, Todo, Travel, Type, TypeName, User, WldyItemType, WtuiItemType, Yiha, Zbzd };
|
|
28
30
|
|
|
29
31
|
export type ModuleType = (typeof ConstModuleType)[keyof typeof ConstModuleType];
|
|
32
|
+
export type HzntModuleType = (typeof Hznt)[keyof typeof Hznt];
|
|
33
|
+
export type YzgcModuleType = (typeof Yzgc)[keyof typeof Yzgc];
|
|
34
|
+
export type MyoaModuleType = (typeof Myoa)[keyof typeof Myoa];
|
|
@@ -2,7 +2,7 @@ import { construct, destruct } from "@aximario/json-tree";
|
|
|
2
2
|
import _ from "lodash";
|
|
3
3
|
import { type IBaseResponse, TBaseResponse } from "../base/IBaseResponse";
|
|
4
4
|
import { IUnitResponse } from "./IUnitResponse.ts";
|
|
5
|
-
import { TDictResponseDictPara } from "./IDictResponseDictPara";
|
|
5
|
+
import { IDictResponseDictPara, TDictResponseDictPara } from "./IDictResponseDictPara";
|
|
6
6
|
import { TCore } from "../../index.ts";
|
|
7
7
|
|
|
8
8
|
export interface IDictResponse extends IBaseResponse<IDictResponse[]> {
|
|
@@ -56,6 +56,7 @@ export interface IDictResponse extends IBaseResponse<IDictResponse[]> {
|
|
|
56
56
|
updateBy: string; // UUID格式
|
|
57
57
|
userIndx: number;
|
|
58
58
|
whoBuild: number; // 创建者ID
|
|
59
|
+
dictParaConv: IDictResponseDictPara;
|
|
59
60
|
}
|
|
60
61
|
|
|
61
62
|
export class TDictResponse extends TBaseResponse<IDictResponse[]> implements IDictResponse {
|
|
@@ -109,6 +110,7 @@ export class TDictResponse extends TBaseResponse<IDictResponse[]> implements IDi
|
|
|
109
110
|
updateBy: string = "";
|
|
110
111
|
userIndx: number = 0;
|
|
111
112
|
whoBuild: number = 0;
|
|
113
|
+
dictParaConv: IDictResponseDictPara = new TDictResponseDictPara();
|
|
112
114
|
|
|
113
115
|
public static toTree(listDict: IDictResponse[]) {
|
|
114
116
|
return construct(listDict, { id: "dictIndx", pid: "parentID", children: "children" }) as IDictResponse[];
|
package/src/enums/btnMode.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* 删除、退回---红色(error)
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
export enum TBtnActive {
|
|
11
|
+
export declare enum TBtnActive {
|
|
12
12
|
/** 新增、修改、审核、查询、确定、刷新---蓝色 */
|
|
13
13
|
primary = "primary",
|
|
14
14
|
/** 导出、打印 ---黄色*/
|
|
@@ -22,7 +22,7 @@ export enum TBtnActive {
|
|
|
22
22
|
perfect = "perfect"
|
|
23
23
|
}
|
|
24
24
|
/** 按钮类型 */
|
|
25
|
-
export enum TButtonType {
|
|
25
|
+
export declare enum TButtonType {
|
|
26
26
|
/** 空 */
|
|
27
27
|
null = "",
|
|
28
28
|
/** 确认 */
|
package/src/enums/index.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { TFormType } from "./formType";
|
|
|
5
5
|
import { TViewMode } from "./viewMode";
|
|
6
6
|
import { StoreId } from "./storeId";
|
|
7
7
|
import { TBtnActive } from "./btnMode";
|
|
8
|
+
import { TButtonType } from "./btnMode";
|
|
8
9
|
import { TUsesStat } from "./usesStat";
|
|
9
10
|
|
|
10
|
-
export { StoreId, TabActive, TBtnActive, TDoneMode, TEditMode, TFormType, TUsesStat, TViewMode };
|
|
11
|
+
export { StoreId, TabActive, TBtnActive, TButtonType, TDoneMode, TEditMode, TFormType, TUsesStat, TViewMode };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _ from "lodash";
|
|
2
2
|
import type { IGzjgGzlmResponseGzlmPara } from "./IGzjgGzlmResponseGzlmPara";
|
|
3
3
|
import { TGzjgGzlmResponseGzlmPara } from "./IGzjgGzlmResponseGzlmPara";
|
|
4
|
+
import { IElemElemResponse } from "../elem/IElemElemResponse";
|
|
4
5
|
|
|
5
6
|
// #工资栏目
|
|
6
7
|
export interface IGzjgGzlmResponse {
|
|
@@ -8,7 +9,7 @@ export interface IGzjgGzlmResponse {
|
|
|
8
9
|
userIndx: number; //#PK
|
|
9
10
|
gzjgIndx: number; //#PK
|
|
10
11
|
gzlmFlid: number; //#PK
|
|
11
|
-
|
|
12
|
+
elemName: string; //#指标要素
|
|
12
13
|
parentID: number;
|
|
13
14
|
parentCD: string | undefined;
|
|
14
15
|
dataLevl: number;
|
|
@@ -26,7 +27,7 @@ export interface IGzjgGzlmResponse {
|
|
|
26
27
|
updateAt: number;
|
|
27
28
|
deleteBy: string;
|
|
28
29
|
deleteAt: number;
|
|
29
|
-
|
|
30
|
+
listElem: IElemElemResponse[];
|
|
30
31
|
gzlmFlbh: number; //#栏目编号
|
|
31
32
|
gzlmFllx: number; //#栏目类型 0:数值;
|
|
32
33
|
gzlmFlws: number; //#小数位数
|
|
@@ -82,7 +83,7 @@ export class TGzjgGzlmResponse implements IGzjgGzlmResponse {
|
|
|
82
83
|
userIndx: number = 0;
|
|
83
84
|
gzjgIndx: number = 0;
|
|
84
85
|
gzlmFlid: number = 0; // 主键序号
|
|
85
|
-
|
|
86
|
+
elemName: string = "";
|
|
86
87
|
parentID: number = 0;
|
|
87
88
|
parentCD: string | undefined = undefined;
|
|
88
89
|
dataLevl: number = 0;
|
|
@@ -126,7 +127,7 @@ export class TGzjgGzlmResponse implements IGzjgGzlmResponse {
|
|
|
126
127
|
gzlmFlbm: string = "";
|
|
127
128
|
typTotal: number = 0;
|
|
128
129
|
dataGUID: string = "";
|
|
129
|
-
|
|
130
|
+
listElem: IElemElemResponse[] = [];
|
|
130
131
|
isLasted: number = 0;
|
|
131
132
|
jsScript: string = "";
|
|
132
133
|
sql4Load: string = "";
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
export interface IElemElemResponse {
|
|
2
|
+
whoBuild: number; //#PK
|
|
3
|
+
userIndx: number; //#PK
|
|
4
|
+
elemIndx: number; //#PK
|
|
5
|
+
sourceND: number; //#PK
|
|
6
|
+
sysElemc: number;
|
|
7
|
+
|
|
8
|
+
parentID: number;
|
|
9
|
+
hashCode: number;
|
|
10
|
+
dataLevl: number;
|
|
11
|
+
dataStat: number;
|
|
12
|
+
dataOrdr: number;
|
|
13
|
+
dataDate: number;
|
|
14
|
+
dataTime: number;
|
|
15
|
+
dataHide: number;
|
|
16
|
+
dataFrom: number;
|
|
17
|
+
kjndKJQJ: number;
|
|
18
|
+
dataGUID: string;
|
|
19
|
+
mastName: string;
|
|
20
|
+
mastGUID: string;
|
|
21
|
+
createBy: string;
|
|
22
|
+
createAt: number;
|
|
23
|
+
updateBy: string;
|
|
24
|
+
updateAt: number;
|
|
25
|
+
deleteBy: string;
|
|
26
|
+
deleteAt: number;
|
|
27
|
+
queuesBy: number;
|
|
28
|
+
|
|
29
|
+
entityID: string;
|
|
30
|
+
haveData: number;
|
|
31
|
+
elemCode: string;
|
|
32
|
+
elemFrom: string;
|
|
33
|
+
/** 要素名称 */
|
|
34
|
+
elemName: string;
|
|
35
|
+
elemRule: string;
|
|
36
|
+
codeDash: string;
|
|
37
|
+
nameDash: string;
|
|
38
|
+
elemUses: string;
|
|
39
|
+
mDefault: number;
|
|
40
|
+
cDefault: string;
|
|
41
|
+
nDefault: string;
|
|
42
|
+
uDefault: string;
|
|
43
|
+
userOnly: number;
|
|
44
|
+
usesType: number;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export class TElemElemResponse implements IElemElemResponse {
|
|
48
|
+
whoBuild: number = 0;
|
|
49
|
+
userIndx: number = 0;
|
|
50
|
+
elemIndx: number = 0;
|
|
51
|
+
sourceND: number = 0;
|
|
52
|
+
sysElemc: number = 0;
|
|
53
|
+
parentID: number = 0;
|
|
54
|
+
hashCode: number = 0;
|
|
55
|
+
dataLevl: number = 0;
|
|
56
|
+
dataStat: number = 0;
|
|
57
|
+
dataOrdr: number = 0;
|
|
58
|
+
dataDate: number = 0;
|
|
59
|
+
dataTime: number = 0;
|
|
60
|
+
dataHide: number = 0;
|
|
61
|
+
dataFrom: number = 0;
|
|
62
|
+
kjndKJQJ: number = 0;
|
|
63
|
+
dataGUID: string = "";
|
|
64
|
+
mastName: string = "";
|
|
65
|
+
mastGUID: string = "";
|
|
66
|
+
createBy: string = "";
|
|
67
|
+
createAt: number = 0;
|
|
68
|
+
updateBy: string = "";
|
|
69
|
+
updateAt: number = 0;
|
|
70
|
+
deleteBy: string = "";
|
|
71
|
+
deleteAt: number = 0;
|
|
72
|
+
queuesBy: number = 0;
|
|
73
|
+
entityID: string = "";
|
|
74
|
+
haveData: number = 0;
|
|
75
|
+
elemCode: string = "";
|
|
76
|
+
elemFrom: string = "";
|
|
77
|
+
elemName: string = "";
|
|
78
|
+
elemRule: string = "";
|
|
79
|
+
codeDash: string = "";
|
|
80
|
+
nameDash: string = "";
|
|
81
|
+
elemUses: string = "";
|
|
82
|
+
mDefault: number = 0;
|
|
83
|
+
cDefault: string = "";
|
|
84
|
+
nDefault: string = "";
|
|
85
|
+
uDefault: string = "";
|
|
86
|
+
userOnly: number = 0;
|
|
87
|
+
usesType: number = 0;
|
|
88
|
+
}
|
package/src/gzjg/index.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { IGzjgGzlmResponse, TGzjgGzlmResponse } from "./IGzjgGzlmResponse";
|
|
|
4
4
|
import { IGzjgMainResponse, TGzjgMainResponse } from "./IGzjgMainResponse";
|
|
5
5
|
import { IGzjgQzgsResponse, TGzjgQzgsResponse } from "./IGzjgQzgsResponse";
|
|
6
6
|
import { IGzjgMainResponseWithYZPZ, TGzjgMainResponseWithYZPZ } from "./IGzjgMainResponseWithYZPZ";
|
|
7
|
+
import { IElemElemResponse, TElemElemResponse } from "./IGzjgGzlmWithResponse";
|
|
7
8
|
|
|
8
9
|
export {
|
|
9
10
|
type IGzjgBodyLockResponse,
|
|
@@ -12,10 +13,12 @@ export {
|
|
|
12
13
|
type IGzjgMainResponse,
|
|
13
14
|
type IGzjgQzgsResponse,
|
|
14
15
|
type IGzjgMainResponseWithYZPZ,
|
|
16
|
+
type IElemElemResponse,
|
|
15
17
|
TGzjgBodyLockResponse,
|
|
16
18
|
TGzjgGzlmLandResponse,
|
|
17
19
|
TGzjgGzlmResponse,
|
|
18
20
|
TGzjgMainResponse,
|
|
19
21
|
TGzjgQzgsResponse,
|
|
20
|
-
TGzjgMainResponseWithYZPZ
|
|
22
|
+
TGzjgMainResponseWithYZPZ,
|
|
23
|
+
TElemElemResponse
|
|
21
24
|
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ILoadLineResponse } from "./ILoadLineResponse";
|
|
2
|
+
|
|
3
|
+
export interface ILoadDataResponse {
|
|
4
|
+
whoBuild: number;
|
|
5
|
+
userIndx: number;
|
|
6
|
+
dataIndx: number;
|
|
7
|
+
loadMain: number;
|
|
8
|
+
dataStat: number;
|
|
9
|
+
dataHide: number;
|
|
10
|
+
dataOrdr: number;
|
|
11
|
+
dataFrom: number;
|
|
12
|
+
dataType: number;
|
|
13
|
+
dataDate: number;
|
|
14
|
+
dataTime: number;
|
|
15
|
+
createBy: string;
|
|
16
|
+
createAt: number;
|
|
17
|
+
updateBy: string;
|
|
18
|
+
updateAt: number;
|
|
19
|
+
deleteBy: string;
|
|
20
|
+
deleteAt: number;
|
|
21
|
+
|
|
22
|
+
dataGUID: string;
|
|
23
|
+
unionTxt: string;
|
|
24
|
+
|
|
25
|
+
listLine: ILoadLineResponse[];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export class TLoadDataResponse implements ILoadDataResponse {
|
|
29
|
+
whoBuild: number = 0;
|
|
30
|
+
userIndx: number = 0;
|
|
31
|
+
dataIndx: number = 0;
|
|
32
|
+
loadMain: number = 0;
|
|
33
|
+
dataStat: number = 0;
|
|
34
|
+
dataHide: number = 0;
|
|
35
|
+
dataOrdr: number = 0;
|
|
36
|
+
dataFrom: number = 0;
|
|
37
|
+
dataType: number = 0;
|
|
38
|
+
dataDate: number = 0;
|
|
39
|
+
dataTime: number = 0;
|
|
40
|
+
createBy: string = "";
|
|
41
|
+
createAt: number = 0;
|
|
42
|
+
updateBy: string = "";
|
|
43
|
+
updateAt: number = 0;
|
|
44
|
+
deleteBy: string = "";
|
|
45
|
+
deleteAt: number = 0;
|
|
46
|
+
|
|
47
|
+
dataGUID: string = "";
|
|
48
|
+
unionTxt: string = "";
|
|
49
|
+
|
|
50
|
+
listLine: ILoadLineResponse[] = [];
|
|
51
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
export interface ILoadMainResponse {
|
|
2
|
+
whoBuild: number;
|
|
3
|
+
userIndx: number;
|
|
4
|
+
loadIndx: number;
|
|
5
|
+
gzjgMain: number;
|
|
6
|
+
loadType: number;
|
|
7
|
+
parentID: number;
|
|
8
|
+
hashCode: number;
|
|
9
|
+
dataLevl: number;
|
|
10
|
+
dataFrom: number;
|
|
11
|
+
dataType: number;
|
|
12
|
+
isLasted: number;
|
|
13
|
+
dataStat: number;
|
|
14
|
+
dataOrdr: number;
|
|
15
|
+
dataHide: number;
|
|
16
|
+
dataDate: number;
|
|
17
|
+
dataTime: number;
|
|
18
|
+
dataGUID: string;
|
|
19
|
+
mastName: string;
|
|
20
|
+
mastGUID: string;
|
|
21
|
+
createBy: string;
|
|
22
|
+
createAt: number;
|
|
23
|
+
updateBy: string;
|
|
24
|
+
updateAt: number;
|
|
25
|
+
deleteBy: string;
|
|
26
|
+
deleteAt: number;
|
|
27
|
+
queuesBy: number;
|
|
28
|
+
entityID: string;
|
|
29
|
+
rowCount: number;
|
|
30
|
+
loadMemo: string;
|
|
31
|
+
path4URL: string;
|
|
32
|
+
loadName: string;
|
|
33
|
+
loadStat: number;
|
|
34
|
+
loadDate: number;
|
|
35
|
+
unitMain: number;
|
|
36
|
+
p2pzMain: number;
|
|
37
|
+
p2pzDate: number;
|
|
38
|
+
kjndKJQJ: number;
|
|
39
|
+
p2pzText: string;
|
|
40
|
+
sourceND: number;
|
|
41
|
+
sourceID: number;
|
|
42
|
+
hashText: string;
|
|
43
|
+
deptMain: number;
|
|
44
|
+
menuUUID: string;
|
|
45
|
+
taskMain: number;
|
|
46
|
+
gztbMain: number;
|
|
47
|
+
flowMain: number;
|
|
48
|
+
qtdwUUID: string;
|
|
49
|
+
qtdwText: string;
|
|
50
|
+
p2pzPzje: number;
|
|
51
|
+
startDay: number;
|
|
52
|
+
endedDay: number;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export class TLoadMainResponse implements ILoadMainResponse {
|
|
56
|
+
whoBuild: number = 0;
|
|
57
|
+
userIndx: number = 0;
|
|
58
|
+
loadIndx: number = 0;
|
|
59
|
+
gzjgMain: number = 0;
|
|
60
|
+
loadType: number = 0;
|
|
61
|
+
parentID: number = 0;
|
|
62
|
+
hashCode: number = 0;
|
|
63
|
+
dataLevl: number = 0;
|
|
64
|
+
dataFrom: number = 0;
|
|
65
|
+
dataType: number = 0;
|
|
66
|
+
isLasted: number = 0;
|
|
67
|
+
dataStat: number = 0;
|
|
68
|
+
dataOrdr: number = 0;
|
|
69
|
+
dataHide: number = 0;
|
|
70
|
+
dataDate: number = 0;
|
|
71
|
+
dataTime: number = 0;
|
|
72
|
+
dataGUID: string = "";
|
|
73
|
+
mastName: string = "";
|
|
74
|
+
mastGUID: string = "";
|
|
75
|
+
createBy: string = "";
|
|
76
|
+
createAt: number = 0;
|
|
77
|
+
updateBy: string = "";
|
|
78
|
+
updateAt: number = 0;
|
|
79
|
+
deleteBy: string = "";
|
|
80
|
+
deleteAt: number = 0;
|
|
81
|
+
queuesBy: number = 0;
|
|
82
|
+
entityID: string = "";
|
|
83
|
+
rowCount: number = 0;
|
|
84
|
+
loadMemo: string = "";
|
|
85
|
+
path4URL: string = "";
|
|
86
|
+
loadName: string = "";
|
|
87
|
+
loadStat: number = 0;
|
|
88
|
+
loadDate: number = 0;
|
|
89
|
+
unitMain: number = 0;
|
|
90
|
+
p2pzMain: number = 0;
|
|
91
|
+
p2pzDate: number = 0;
|
|
92
|
+
kjndKJQJ: number = 0;
|
|
93
|
+
p2pzText: string = "";
|
|
94
|
+
sourceND: number = 0;
|
|
95
|
+
sourceID: number = 0;
|
|
96
|
+
hashText: string = "";
|
|
97
|
+
deptMain: number = 0;
|
|
98
|
+
menuUUID: string = "";
|
|
99
|
+
taskMain: number = 0;
|
|
100
|
+
gztbMain: number = 0;
|
|
101
|
+
flowMain: number = 0;
|
|
102
|
+
qtdwUUID: string = "";
|
|
103
|
+
qtdwText: string = "";
|
|
104
|
+
p2pzPzje: number = 0;
|
|
105
|
+
startDay: number = 0;
|
|
106
|
+
endedDay: number = 0;
|
|
107
|
+
}
|