Merge branch 'broker' into v1-dev

This commit is contained in:
Azalea
2025-03-21 19:47:35 -04:00
49 changed files with 528 additions and 153 deletions

View File

@@ -5,18 +5,19 @@ import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.time.Duration
val client = HttpClient.newBuilder().build()
fun HttpRequest.Builder.send() = client.send(this.build(), HttpResponse.BodyHandlers.ofByteArray())
fun HttpRequest.Builder.header(pair: Pair<Any, Any>) = this.header(pair.first.toString(), pair.second.toString())
fun String.request() = HttpRequest.newBuilder(URI.create(this))
fun String.request() = HttpRequest.newBuilder(URI.create(this)).timeout(Duration.ofSeconds(10))
fun HttpRequest.Builder.post(body: Any? = null) = this.POST(when (body) {
is ByteArray -> HttpRequest.BodyPublishers.ofByteArray(body)
is String -> HttpRequest.BodyPublishers.ofString(body)
is HttpRequest.BodyPublisher -> body
else -> throw Exception("Unsupported body type")
else -> throw IllegalArgumentException("Unsupported body type")
}).send()

View File

@@ -3,6 +3,7 @@ package icu.samnyan.aqua.net.transfer
import ext.header
import ext.post
import ext.request
import java.net.URI
import icu.samnyan.aqua.sega.aimedb.AimeDbClient
import icu.samnyan.aqua.sega.allnet.AllNetBillingDecoder
import icu.samnyan.aqua.sega.allnet.AllNetBillingDecoder.decodeAllNetResp
@@ -23,7 +24,7 @@ class AllNetClient(val dns: String, val keychip: String, val game: String, val v
if (keychip.length == 11) keychip
else keychip.substring(0, 4) + keychip.substring(5, 12)
}
val aime by lazy { AimeDbClient(game, keychipShort, dns.substringAfter("://").substringBefore(":").substringBefore("/")) }
val aime by lazy { AimeDbClient(game, keychipShort, URI(dns).host) }
// Send AllNet PowerOn request to obtain game URL
val gameUrl by lazy {
@@ -38,9 +39,6 @@ class AllNetClient(val dns: String, val keychip: String, val game: String, val v
"ip" to "127.0.0.1", "firm_ver" to "60001", "boot_ver" to "0000",
"encode" to "UTF-8", "format_ver" to "3", "hops" to "1", "token" to "2864179931"
)))
?.also {
println(it)
}
?.decodeAllNetResp()?.get("uri")
?: throw Exception("PowerOn Failed: No game URL returned")
}

View File

@@ -1,49 +1,49 @@
CREATE TABLE aqua_net_user
(
au_id BIGINT AUTO_INCREMENT NOT NULL,
username VARCHAR(32) NOT NULL,
email VARCHAR(255) NOT NULL,
email_confirmed BOOLEAN NOT NULL,
pw_hash VARCHAR(255) NOT NULL,
display_name VARCHAR(32) NULL,
country VARCHAR(3) NULL,
last_login BIGINT NOT NULL,
reg_time BIGINT NOT NULL,
profile_location VARCHAR(255) NULL,
profile_bio VARCHAR(255) NULL,
ghost_card BIGINT NOT NULL,
CONSTRAINT pk_aqua_net_user PRIMARY KEY (au_id)
);
ALTER TABLE sega_card
ADD net_user_id BIGINT NULL;
ALTER TABLE sega_card
ADD is_ghost BOOLEAN NOT NULL DEFAULT FALSE;
ALTER TABLE aqua_net_user
ADD CONSTRAINT uc_aqua_net_user_email UNIQUE (email);
ALTER TABLE aqua_net_user
ADD CONSTRAINT uc_aqua_net_user_username UNIQUE (username);
ALTER TABLE sega_card
ADD CONSTRAINT FK_SEGA_CARD_ON_NET_USER FOREIGN KEY (net_user_id) REFERENCES aqua_net_user (au_id);
ALTER TABLE aqua_net_user
ADD CONSTRAINT uc_aqua_net_user_canonical_card UNIQUE (ghost_card);
ALTER TABLE aqua_net_user
ADD CONSTRAINT FK_AQUA_NET_USER_ON_CANONICAL_CARD FOREIGN KEY (ghost_card) REFERENCES sega_card (id);
CREATE TABLE aqua_net_email_confirmation
(
id BIGINT AUTO_INCREMENT NOT NULL,
token VARCHAR(255) NOT NULL,
created_at datetime NOT NULL,
au_id BIGINT NULL,
CONSTRAINT pk_email_confirmation PRIMARY KEY (id)
);
ALTER TABLE aqua_net_email_confirmation
CREATE TABLE aqua_net_user
(
au_id BIGINT AUTO_INCREMENT NOT NULL,
username VARCHAR(32) NOT NULL,
email VARCHAR(255) NOT NULL,
email_confirmed BOOLEAN NOT NULL,
pw_hash VARCHAR(255) NOT NULL,
display_name VARCHAR(32) NULL,
country VARCHAR(3) NULL,
last_login BIGINT NOT NULL,
reg_time BIGINT NOT NULL,
profile_location VARCHAR(255) NULL,
profile_bio VARCHAR(255) NULL,
ghost_card BIGINT NOT NULL,
CONSTRAINT pk_aqua_net_user PRIMARY KEY (au_id)
);
ALTER TABLE sega_card
ADD net_user_id BIGINT NULL;
ALTER TABLE sega_card
ADD is_ghost BOOLEAN NOT NULL DEFAULT FALSE;
ALTER TABLE aqua_net_user
ADD CONSTRAINT uc_aqua_net_user_email UNIQUE (email);
ALTER TABLE aqua_net_user
ADD CONSTRAINT uc_aqua_net_user_username UNIQUE (username);
ALTER TABLE sega_card
ADD CONSTRAINT FK_SEGA_CARD_ON_NET_USER FOREIGN KEY (net_user_id) REFERENCES aqua_net_user (au_id);
ALTER TABLE aqua_net_user
ADD CONSTRAINT uc_aqua_net_user_canonical_card UNIQUE (ghost_card);
ALTER TABLE aqua_net_user
ADD CONSTRAINT FK_AQUA_NET_USER_ON_CANONICAL_CARD FOREIGN KEY (ghost_card) REFERENCES sega_card (id);
CREATE TABLE aqua_net_email_confirmation
(
id BIGINT AUTO_INCREMENT NOT NULL,
token VARCHAR(255) NOT NULL,
created_at datetime NOT NULL,
au_id BIGINT NULL,
CONSTRAINT pk_email_confirmation PRIMARY KEY (id)
);
ALTER TABLE aqua_net_email_confirmation
ADD CONSTRAINT FK_EMAIL_CONFIRMATION_ON_AQUA_USER FOREIGN KEY (au_id) REFERENCES aqua_net_user (au_id);

View File

@@ -1,2 +1,2 @@
ALTER TABLE allnet_keychip_sessions
ADD game_id VARCHAR(4) NULL;
ALTER TABLE allnet_keychip_sessions
ADD game_id VARCHAR(4) NULL;

View File

@@ -1,19 +1,19 @@
CREATE TABLE allnet_keychip_sessions
(
token VARCHAR(32) NOT NULL,
au_id BIGINT NULL,
last_use BIGINT NOT NULL,
CONSTRAINT pk_allnet_keychip_sessions PRIMARY KEY (token)
);
ALTER TABLE aqua_net_user
ADD keychip VARCHAR(32) NULL;
ALTER TABLE aqua_net_user
ADD CONSTRAINT uc_aqua_net_user_keychip UNIQUE (keychip);
# Optimization on session cleanup
CREATE INDEX idx_last_use ON allnet_keychip_sessions (last_use);
ALTER TABLE allnet_keychip_sessions
CREATE TABLE allnet_keychip_sessions
(
token VARCHAR(32) NOT NULL,
au_id BIGINT NULL,
last_use BIGINT NOT NULL,
CONSTRAINT pk_allnet_keychip_sessions PRIMARY KEY (token)
);
ALTER TABLE aqua_net_user
ADD keychip VARCHAR(32) NULL;
ALTER TABLE aqua_net_user
ADD CONSTRAINT uc_aqua_net_user_keychip UNIQUE (keychip);
# Optimization on session cleanup
CREATE INDEX idx_last_use ON allnet_keychip_sessions (last_use);
ALTER TABLE allnet_keychip_sessions
ADD CONSTRAINT FK_ALLNET_KEYCHIP_SESSIONS_ON_AU FOREIGN KEY (au_id) REFERENCES aqua_net_user (au_id);

View File

@@ -1,15 +1,15 @@
ALTER TABLE maimai2_user_detail
ADD COLUMN point INT DEFAULT 0,
ADD COLUMN total_point INT DEFAULT 0;
CREATE TABLE maimai2_user_intimate
(
id BIGINT AUTO_INCREMENT NOT NULL PRIMARY KEY,
user_id BIGINT NULL,
partner_id INT NOT NULL,
intimate_level INT NOT NULL,
intimate_count_rewarded INT NOT NULL,
CONSTRAINT fku_maimai2_user_intimate FOREIGN KEY (user_id) REFERENCES maimai2_user_detail (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT unique_maimai2_user_intimate UNIQUE (user_id, partner_id)
);
ALTER TABLE maimai2_user_detail
ADD COLUMN point INT DEFAULT 0,
ADD COLUMN total_point INT DEFAULT 0;
CREATE TABLE maimai2_user_intimate
(
id BIGINT AUTO_INCREMENT NOT NULL PRIMARY KEY,
user_id BIGINT NULL,
partner_id INT NOT NULL,
intimate_level INT NOT NULL,
intimate_count_rewarded INT NOT NULL,
CONSTRAINT fku_maimai2_user_intimate FOREIGN KEY (user_id) REFERENCES maimai2_user_detail (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT unique_maimai2_user_intimate UNIQUE (user_id, partner_id)
);

View File

@@ -0,0 +1,17 @@
ALTER TABLE chusan_user_data ADD COLUMN trophy_id_sub1 INT NOT NULL DEFAULT 0;
ALTER TABLE chusan_user_data ADD COLUMN trophy_id_sub2 INT NOT NULL DEFAULT 0;
CREATE TABLE chusan_user_challenge
(
id BIGINT AUTO_INCREMENT NOT NULL PRIMARY KEY,
user_id BIGINT NOT NULL,
unlock_challenge_id INT NOT NULL,
status INT NOT NULL,
clear_course_id INT NOT NULL,
condition_type INT NOT NULL,
score INT NOT NULL,
life INT NOT NULL,
clear_date VARCHAR(20) NULL,
CONSTRAINT fku_chusan_user_challenge FOREIGN KEY (user_id) REFERENCES chusan_user_data (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT unique_user_challenge UNIQUE (user_id, unlock_challenge_id)
);

View File

@@ -1,18 +1,18 @@
CREATE TABLE aqua_game_options
(
id BIGINT AUTO_INCREMENT NOT NULL,
unlock_music BIT(1) NOT NULL,
unlock_chara BIT(1) NOT NULL,
unlock_collectables BIT(1) NOT NULL,
unlock_tickets BIT(1) NOT NULL,
CONSTRAINT pk_aquagameoptions PRIMARY KEY (id)
);
ALTER TABLE aqua_net_user
ADD game_options BIGINT NULL;
ALTER TABLE aqua_net_user
ADD CONSTRAINT uc_aquanetuser_gameoptions UNIQUE (game_options);
ALTER TABLE aqua_net_user
CREATE TABLE aqua_game_options
(
id BIGINT AUTO_INCREMENT NOT NULL,
unlock_music BIT(1) NOT NULL,
unlock_chara BIT(1) NOT NULL,
unlock_collectables BIT(1) NOT NULL,
unlock_tickets BIT(1) NOT NULL,
CONSTRAINT pk_aquagameoptions PRIMARY KEY (id)
);
ALTER TABLE aqua_net_user
ADD game_options BIGINT NULL;
ALTER TABLE aqua_net_user
ADD CONSTRAINT uc_aquanetuser_gameoptions UNIQUE (game_options);
ALTER TABLE aqua_net_user
ADD CONSTRAINT FK_AQUANETUSER_ON_GAMEOPTIONS FOREIGN KEY (game_options) REFERENCES aqua_game_options (id);

View File

@@ -1,11 +1,11 @@
ALTER TABLE bak_maimai2_user_rate
DROP FOREIGN KEY FKfaewgvanchzwo8um;
DROP TABLE bak_diva_pv_entry;
DROP TABLE bak_maimai2_user_rate;
DROP TABLE hibernate_sequence;
ALTER TABLE chusan_user_data
ALTER TABLE bak_maimai2_user_rate
DROP FOREIGN KEY FKfaewgvanchzwo8um;
DROP TABLE bak_diva_pv_entry;
DROP TABLE bak_maimai2_user_rate;
DROP TABLE hibernate_sequence;
ALTER TABLE chusan_user_data
DROP COLUMN rank_up_challenge_results;

View File

@@ -0,0 +1,157 @@
INSERT INTO chusan_game_event (id, type, end_date, start_date, enable)
VALUES
(51,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(52,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(53,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(1021,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(3027,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(3217,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(3309,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(3412,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(3514,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(3623,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(3726,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(3808,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(3912,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(4010,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(4111,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(4210,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(4323,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(4513,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(4614,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(4710,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(4808,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(4909,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(4911,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(5026,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(5112,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(5216,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(5311,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(5360,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(5410,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(5513,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(5630,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(5708,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(5819,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(5920,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(6020,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(6130,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(6221,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(6319,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(6409,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(6511,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(11159,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(12580,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(12582,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(12584,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(12586,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(12587,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(12602,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(12611,12,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(12613,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(13060,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(13451,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(13453,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(13504,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(13506,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(13507,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(13513,12,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(13552,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(13553,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(13616,7,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(13617,7,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(13651,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15150,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15151,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15152,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15156,14,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15157,7,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15158,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15200,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15201,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15202,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15203,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15204,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15205,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15206,11,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15207,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15208,14,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15209,12,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15210,10,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15211,4,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15212,5,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15213,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15250,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15251,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15252,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15253,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15254,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15255,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15256,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15480,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15481,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15482,7,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15483,7,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(15560,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16100,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16101,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16102,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16103,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16104,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16105,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16106,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16107,16,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16108,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16109,4,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16110,5,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16111,11,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16150,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16151,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16152,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16153,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16154,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16155,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16156,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16157,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16158,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16159,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16160,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16161,14,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16162,10,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16163,11,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16164,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16165,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16200,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16201,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16202,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16203,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16204,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16205,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16206,14,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16207,5,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16208,4,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16209,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16250,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16251,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16252,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16253,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16254,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16255,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16256,12,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16257,11,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16258,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16300,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16301,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16302,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16303,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16304,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16305,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16306,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16307,16,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16308,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16309,10,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16310,5,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16311,4,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(16312,11,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(99000,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
(99001,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true);