gamelet-cli 0.7.12 → 0.7.13
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/assets/package.json.twig +3 -3
- package/assets/tsconfig.json.twig +1 -1
- package/build/package.json +67 -67
- package/build/src/gamelet/download.js +773 -737
- package/build/src/gamelet/merges.js +181 -179
- package/build/src/gamelet/prepare.js +276 -277
- package/build/src/gamelet/upload.js +280 -279
- package/build/src/index.js +86 -86
- package/build/src/server/Constant.js +9 -9
- package/build/src/server/entities/Client.js +78 -78
- package/build/src/server/entities/ClientOwner.js +67 -67
- package/build/src/server/entities/ClientProject.js +84 -84
- package/build/src/server/entities/Gameroom.js +89 -89
- package/build/src/server/entities/GameroomBase.js +276 -276
- package/build/src/server/entities/Gamezone.js +73 -73
- package/build/src/server/entities/ListFilter.js +193 -193
- package/build/src/server/entities/Monitor.js +94 -94
- package/build/src/server/entities/Player.js +140 -140
- package/build/src/server/managers/ApiManager.js +75 -75
- package/build/src/server/managers/ClientManager.js +64 -64
- package/build/src/server/managers/Database.js +627 -627
- package/build/src/server/managers/GameroomManager.js +392 -392
- package/build/src/server/managers/ManagerBase.js +17 -17
- package/build/src/server/managers/MonitorManager.js +73 -73
- package/build/src/server/managers/PlayerManager.js +108 -108
- package/build/src/server/managers/SocketManager.js +60 -60
- package/build/src/server/managers/UserManager.js +58 -58
- package/build/src/server/messages/Message.js +143 -143
- package/build/src/server/server.js +112 -113
- package/build/src/server/services/ServiceBase.js +25 -25
- package/build/src/server/services/clientService.js +23 -23
- package/build/src/server/services/gameroomService.js +121 -121
- package/build/src/server/services/gltserver.service.js +23 -23
- package/build/src/server/services/playerService.js +32 -32
- package/build/src/server/startServer.js +32 -33
- package/build/src/server/types/BadgeStatus.js +25 -25
- package/build/src/server/types/OrderType.js +38 -38
- package/build/src/server/types/SubmitType.js +24 -24
- package/build/src/server/types/TimeRange.js +26 -26
- package/build/src/server/utils/ArrayUtil.js +126 -126
- package/build/src/server/utils/IntUtil.js +9 -9
- package/build/src/server/utils/ObjectUtil.js +191 -191
- package/build/src/server/utils/StringUtil.js +37 -37
- package/build/src/utils/cli.js +53 -53
- package/build/src/utils/file.js +350 -337
- package/build/src/utils/init.js +57 -42
- package/build/src/utils/log.js +18 -17
- package/build/src/utils/net.js +43 -39
- package/package.json +2 -2
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ClientProject = void 0;
|
|
4
|
-
const Constant_1 = require("./../Constant");
|
|
5
|
-
const Client_1 = require("./Client");
|
|
6
|
-
class ClientProject {
|
|
7
|
-
constructor(code, owner) {
|
|
8
|
-
this.code = code;
|
|
9
|
-
this.owner = owner;
|
|
10
|
-
this.clients = {};
|
|
11
|
-
autoDisconnectInactivePlayerLoop(this);
|
|
12
|
-
}
|
|
13
|
-
getClient(msgVersion) {
|
|
14
|
-
let client = this.clients[msgVersion];
|
|
15
|
-
if (!client) {
|
|
16
|
-
client = new Client_1.Client(this, msgVersion);
|
|
17
|
-
this.clients[msgVersion] = client;
|
|
18
|
-
}
|
|
19
|
-
return client;
|
|
20
|
-
}
|
|
21
|
-
listClients() {
|
|
22
|
-
let list = [];
|
|
23
|
-
for (let key in this.clients) {
|
|
24
|
-
let client = this.clients[key];
|
|
25
|
-
if (client.playersCount) {
|
|
26
|
-
list.push(client);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
delete this.clients[key];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return list;
|
|
33
|
-
}
|
|
34
|
-
removePlayerByCode(playerCode) {
|
|
35
|
-
for (let key in this.clients) {
|
|
36
|
-
let player = this.clients[key].removePlayerByCode(playerCode);
|
|
37
|
-
if (player) {
|
|
38
|
-
return player;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
get playerList() {
|
|
44
|
-
let list = [];
|
|
45
|
-
for (let key in this.clients) {
|
|
46
|
-
list = list.concat(this.clients[key].playerList);
|
|
47
|
-
}
|
|
48
|
-
return list;
|
|
49
|
-
}
|
|
50
|
-
get playersCount() {
|
|
51
|
-
let count = 0;
|
|
52
|
-
for (let key in this.clients) {
|
|
53
|
-
count += this.clients[key].playersCount;
|
|
54
|
-
}
|
|
55
|
-
return count;
|
|
56
|
-
}
|
|
57
|
-
cleanDisconnectedPlayers() {
|
|
58
|
-
for (let key in this.clients) {
|
|
59
|
-
this.clients[key].cleanDisconnectedPlayers();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
getPlayersCount(version, options) {
|
|
63
|
-
if (version) {
|
|
64
|
-
const client = this.getClient(version);
|
|
65
|
-
return client ? client.getPlayersCount(options) : 0;
|
|
66
|
-
}
|
|
67
|
-
else if (options) {
|
|
68
|
-
let total = 0;
|
|
69
|
-
for (let key in this.clients) {
|
|
70
|
-
total += this.clients[key].getPlayersCount(options);
|
|
71
|
-
}
|
|
72
|
-
return total;
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
return this.playersCount;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
exports.ClientProject = ClientProject;
|
|
80
|
-
function autoDisconnectInactivePlayerLoop(project) {
|
|
81
|
-
setTimeout(autoDisconnectInactivePlayerLoop, Constant_1.Constant.ONE_HOUR * 2, project);
|
|
82
|
-
project.listClients().slice().forEach(client => client.disconnectInactivePlayers());
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientProject = void 0;
|
|
4
|
+
const Constant_1 = require("./../Constant");
|
|
5
|
+
const Client_1 = require("./Client");
|
|
6
|
+
class ClientProject {
|
|
7
|
+
constructor(code, owner) {
|
|
8
|
+
this.code = code;
|
|
9
|
+
this.owner = owner;
|
|
10
|
+
this.clients = {};
|
|
11
|
+
autoDisconnectInactivePlayerLoop(this);
|
|
12
|
+
}
|
|
13
|
+
getClient(msgVersion) {
|
|
14
|
+
let client = this.clients[msgVersion];
|
|
15
|
+
if (!client) {
|
|
16
|
+
client = new Client_1.Client(this, msgVersion);
|
|
17
|
+
this.clients[msgVersion] = client;
|
|
18
|
+
}
|
|
19
|
+
return client;
|
|
20
|
+
}
|
|
21
|
+
listClients() {
|
|
22
|
+
let list = [];
|
|
23
|
+
for (let key in this.clients) {
|
|
24
|
+
let client = this.clients[key];
|
|
25
|
+
if (client.playersCount) {
|
|
26
|
+
list.push(client);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
delete this.clients[key];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return list;
|
|
33
|
+
}
|
|
34
|
+
removePlayerByCode(playerCode) {
|
|
35
|
+
for (let key in this.clients) {
|
|
36
|
+
let player = this.clients[key].removePlayerByCode(playerCode);
|
|
37
|
+
if (player) {
|
|
38
|
+
return player;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
get playerList() {
|
|
44
|
+
let list = [];
|
|
45
|
+
for (let key in this.clients) {
|
|
46
|
+
list = list.concat(this.clients[key].playerList);
|
|
47
|
+
}
|
|
48
|
+
return list;
|
|
49
|
+
}
|
|
50
|
+
get playersCount() {
|
|
51
|
+
let count = 0;
|
|
52
|
+
for (let key in this.clients) {
|
|
53
|
+
count += this.clients[key].playersCount;
|
|
54
|
+
}
|
|
55
|
+
return count;
|
|
56
|
+
}
|
|
57
|
+
cleanDisconnectedPlayers() {
|
|
58
|
+
for (let key in this.clients) {
|
|
59
|
+
this.clients[key].cleanDisconnectedPlayers();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
getPlayersCount(version, options) {
|
|
63
|
+
if (version) {
|
|
64
|
+
const client = this.getClient(version);
|
|
65
|
+
return client ? client.getPlayersCount(options) : 0;
|
|
66
|
+
}
|
|
67
|
+
else if (options) {
|
|
68
|
+
let total = 0;
|
|
69
|
+
for (let key in this.clients) {
|
|
70
|
+
total += this.clients[key].getPlayersCount(options);
|
|
71
|
+
}
|
|
72
|
+
return total;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
return this.playersCount;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.ClientProject = ClientProject;
|
|
80
|
+
function autoDisconnectInactivePlayerLoop(project) {
|
|
81
|
+
setTimeout(autoDisconnectInactivePlayerLoop, Constant_1.Constant.ONE_HOUR * 2, project);
|
|
82
|
+
project.listClients().slice().forEach(client => client.disconnectInactivePlayers());
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50UHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2ZXIvZW50aXRpZXMvQ2xpZW50UHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBeUM7QUFDekMscUNBQWdFO0FBS2hFLE1BQWEsYUFBYTtJQUl0QixZQUFtQixJQUFZLEVBQVMsS0FBa0I7UUFBdkMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQWE7UUFGbEQsWUFBTyxHQUE4QixFQUFFLENBQUM7UUFHNUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFNBQVMsQ0FBQyxVQUFrQjtRQUN4QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNWLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLEdBQWEsRUFBRSxDQUFDO1FBQ3hCLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzNCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDL0IsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0ws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
|
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Gameroom = exports.GameroomState = void 0;
|
|
4
|
-
const GameroomBase_1 = require("./GameroomBase");
|
|
5
|
-
var GameroomState;
|
|
6
|
-
(function (GameroomState) {
|
|
7
|
-
GameroomState[GameroomState["OPEN"] = 0] = "OPEN";
|
|
8
|
-
GameroomState[GameroomState["LOCKED"] = 1] = "LOCKED";
|
|
9
|
-
GameroomState[GameroomState["OVER"] = 2] = "OVER";
|
|
10
|
-
})(GameroomState
|
|
11
|
-
class Gameroom extends GameroomBase_1.GameroomBase {
|
|
12
|
-
constructor(server, client, code, creator, gamezone, name, password, maxPlayers, state, stateJson, allowGuest) {
|
|
13
|
-
super('gameroom', code, server, client, stateJson);
|
|
14
|
-
this.creator = creator;
|
|
15
|
-
this.gamezone = gamezone;
|
|
16
|
-
this.name = name;
|
|
17
|
-
this.password = password;
|
|
18
|
-
this.maxPlayers = maxPlayers;
|
|
19
|
-
this.state = state;
|
|
20
|
-
this.allowGuest = allowGuest;
|
|
21
|
-
this.brainer = creator;
|
|
22
|
-
}
|
|
23
|
-
get monitorChannel() {
|
|
24
|
-
return `(room) ${this.code}`;
|
|
25
|
-
}
|
|
26
|
-
dispose() {
|
|
27
|
-
this.gamezone.removeGameroom(this);
|
|
28
|
-
super.dispose();
|
|
29
|
-
}
|
|
30
|
-
addPlayer(player) {
|
|
31
|
-
if (this.playersCount >= this.maxPlayers) {
|
|
32
|
-
throw new Error('The number of players has reached the limit of the gameroom size.');
|
|
33
|
-
}
|
|
34
|
-
if (super.addPlayer(player)) {
|
|
35
|
-
player.setGameroom(this);
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
removePlayer(player) {
|
|
41
|
-
if (player.getGameroom() == this) {
|
|
42
|
-
player.setGameroom(null);
|
|
43
|
-
}
|
|
44
|
-
if (super.removePlayer(player)) {
|
|
45
|
-
if (!this.playersCount) {
|
|
46
|
-
this.dispose();
|
|
47
|
-
}
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
toVo() {
|
|
53
|
-
const json = {
|
|
54
|
-
code: this.code,
|
|
55
|
-
creator: this.creator.toVo(),
|
|
56
|
-
name: this.name,
|
|
57
|
-
zoneCode: this.gamezone.code,
|
|
58
|
-
maxPlayers: this.maxPlayers,
|
|
59
|
-
allowGuest: this.allowGuest,
|
|
60
|
-
createTime: this.createTime,
|
|
61
|
-
};
|
|
62
|
-
this.password && (json.pwd = 1);
|
|
63
|
-
return json;
|
|
64
|
-
}
|
|
65
|
-
toStatusVo() {
|
|
66
|
-
return {
|
|
67
|
-
state: this.state,
|
|
68
|
-
stateJson: this.stateJson,
|
|
69
|
-
players: this.playersCount,
|
|
70
|
-
ping: this.getPing(),
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
toAndStatusVo() {
|
|
74
|
-
return {
|
|
75
|
-
room: this.toVo(),
|
|
76
|
-
status: this.toStatusVo()
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
toFullVo() {
|
|
80
|
-
return {
|
|
81
|
-
room: this.toVo(),
|
|
82
|
-
status: this.toStatusVo(),
|
|
83
|
-
brainer: this.getBrainer().code,
|
|
84
|
-
playerStates: this.playerStates
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
exports.Gameroom = Gameroom;
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Gameroom = exports.GameroomState = void 0;
|
|
4
|
+
const GameroomBase_1 = require("./GameroomBase");
|
|
5
|
+
var GameroomState;
|
|
6
|
+
(function (GameroomState) {
|
|
7
|
+
GameroomState[GameroomState["OPEN"] = 0] = "OPEN";
|
|
8
|
+
GameroomState[GameroomState["LOCKED"] = 1] = "LOCKED";
|
|
9
|
+
GameroomState[GameroomState["OVER"] = 2] = "OVER";
|
|
10
|
+
})(GameroomState || (exports.GameroomState = GameroomState = {}));
|
|
11
|
+
class Gameroom extends GameroomBase_1.GameroomBase {
|
|
12
|
+
constructor(server, client, code, creator, gamezone, name, password, maxPlayers, state, stateJson, allowGuest) {
|
|
13
|
+
super('gameroom', code, server, client, stateJson);
|
|
14
|
+
this.creator = creator;
|
|
15
|
+
this.gamezone = gamezone;
|
|
16
|
+
this.name = name;
|
|
17
|
+
this.password = password;
|
|
18
|
+
this.maxPlayers = maxPlayers;
|
|
19
|
+
this.state = state;
|
|
20
|
+
this.allowGuest = allowGuest;
|
|
21
|
+
this.brainer = creator;
|
|
22
|
+
}
|
|
23
|
+
get monitorChannel() {
|
|
24
|
+
return `(room) ${this.code}`;
|
|
25
|
+
}
|
|
26
|
+
dispose() {
|
|
27
|
+
this.gamezone.removeGameroom(this);
|
|
28
|
+
super.dispose();
|
|
29
|
+
}
|
|
30
|
+
addPlayer(player) {
|
|
31
|
+
if (this.playersCount >= this.maxPlayers) {
|
|
32
|
+
throw new Error('The number of players has reached the limit of the gameroom size.');
|
|
33
|
+
}
|
|
34
|
+
if (super.addPlayer(player)) {
|
|
35
|
+
player.setGameroom(this);
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
removePlayer(player) {
|
|
41
|
+
if (player.getGameroom() == this) {
|
|
42
|
+
player.setGameroom(null);
|
|
43
|
+
}
|
|
44
|
+
if (super.removePlayer(player)) {
|
|
45
|
+
if (!this.playersCount) {
|
|
46
|
+
this.dispose();
|
|
47
|
+
}
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
toVo() {
|
|
53
|
+
const json = {
|
|
54
|
+
code: this.code,
|
|
55
|
+
creator: this.creator.toVo(),
|
|
56
|
+
name: this.name,
|
|
57
|
+
zoneCode: this.gamezone.code,
|
|
58
|
+
maxPlayers: this.maxPlayers,
|
|
59
|
+
allowGuest: this.allowGuest,
|
|
60
|
+
createTime: this.createTime,
|
|
61
|
+
};
|
|
62
|
+
this.password && (json.pwd = 1);
|
|
63
|
+
return json;
|
|
64
|
+
}
|
|
65
|
+
toStatusVo() {
|
|
66
|
+
return {
|
|
67
|
+
state: this.state,
|
|
68
|
+
stateJson: this.stateJson,
|
|
69
|
+
players: this.playersCount,
|
|
70
|
+
ping: this.getPing(),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
toAndStatusVo() {
|
|
74
|
+
return {
|
|
75
|
+
room: this.toVo(),
|
|
76
|
+
status: this.toStatusVo()
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
toFullVo() {
|
|
80
|
+
return {
|
|
81
|
+
room: this.toVo(),
|
|
82
|
+
status: this.toStatusVo(),
|
|
83
|
+
brainer: this.getBrainer().code,
|
|
84
|
+
playerStates: this.playerStates
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.Gameroom = Gameroom;
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2FtZXJvb20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmVyL2VudGl0aWVzL0dhbWVyb29tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLGlEQUE4QztBQUc5QyxJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDckIsaURBQUksQ0FBQTtJQUNKLHFEQUFNLENBQUE7SUFDTixpREFBSSxDQUFBO0FBQ1IsQ0FBQyxFQUpXLGFBQWEsNkJBQWIsYUFBYSxRQUl4QjtBQUVELE1BQWEsUUFBUyxTQUFRLDJCQUFZO0lBRXRDLFlBQ0ksTUFBMEIsRUFDMUIsTUFBYyxFQUNkLElBQVksRUFDTCxPQUFlLEVBQ2YsUUFBa0IsRUFDbEIsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLFVBQWtCLEVBQ2xCLEtBQW9CLEVBQzNCLFNBQWlDLEVBQzFCLFVBQW1CO1FBRTFCLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFUNUMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFlO1FBRXBCLGVBQVUsR0FBVixVQUFVLENBQVM7UUFHMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksY0FBYztRQUNkLE9BQU8sVUFBVSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDaEMsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtRUFBbUUsQ0FBQyxDQUFBO1FBQ3hGLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMxQixNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDdkIsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUk7UUFDQSxNQUFNLElBQUksR0FBUTtZQUNkLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQzVCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzlCLENBQUE7UUFDRCxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsVUFBVTtRQUNOLE9BQU87WUFDSCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMxQixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtTQUN2QixDQUFBO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDVCxPQUFPO1lBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7U0FDNUIsQ0FBQTtJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTztZQUNILElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSTtZQUMvQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDbEMsQ0FBQTtJQUNMLENBQUM7Q0FDSjtBQTFGRCw0QkEwRkMifQ==
|