-- Generated by SQL Adventure Builder. Any changes will be overwritten.
-- See at the end of the file for more information.

DROP DATABASE IF EXISTS sqlab_island;
CREATE DATABASE sqlab_island WITH ENCODING 'UTF8';
\c sqlab_island

CREATE TABLE inhabitant (
  personid SERIAL NOT NULL,
  name VARCHAR(255) DEFAULT NULL,
  villageid INTEGER DEFAULT NULL,
  gender VARCHAR(10) DEFAULT NULL,
  job VARCHAR(255) DEFAULT NULL,
  gold INTEGER DEFAULT NULL,
  state VARCHAR(50) DEFAULT NULL,
  hash BIGINT,
  PRIMARY KEY (personid)
);

CREATE TABLE item (
  item VARCHAR(255) NOT NULL,
  owner INTEGER DEFAULT NULL,
  hash BIGINT,
  PRIMARY KEY (item)
);

CREATE TABLE village (
  villageid SERIAL NOT NULL,
  name VARCHAR(255) DEFAULT NULL,
  chief INTEGER DEFAULT NULL,
  hash BIGINT,
  PRIMARY KEY (villageid)
);


DROP TABLE IF EXISTS sqlab_msg;
CREATE TABLE sqlab_msg (msg BYTEA NOT NULL);

DROP TABLE IF EXISTS sqlab_metadata;
CREATE TABLE sqlab_metadata (
    name varchar(64) NOT NULL,
    value JSON NOT NULL,
    PRIMARY KEY (name)
);


CREATE OR REPLACE FUNCTION nn(x BIGINT) 
RETURNS BIGINT AS $$
    SELECT COALESCE(x, 42); -- [...]
$$ LANGUAGE sql IMMUTABLE;

CREATE EXTENSION IF NOT EXISTS pgcrypto;

CREATE OR REPLACE FUNCTION string_hash(string TEXT) RETURNS BIGINT AS $$
DECLARE
    hex_substr TEXT; -- [...]
    result BIGINT; -- [...]
BEGIN
    -- Compute SHA-256 hash and get hex representation
    hex_substr := LEFT(ENCODE(DIGEST(string, 'sha256'), 'hex'), 10); -- [...]
    
    -- Convert the leftmost 10 hex characters to a BIGINT
    -- PostgreSQL does not have a direct base conversion function like MySQL's CONV(),
    -- so we manually calculate the base 16 to base 10 conversion.
    EXECUTE 'SELECT x''' || hex_substr || '''::bigint' INTO result; -- [...] '
    
    RETURN result; -- [...]
END; -- [...]
$$ LANGUAGE plpgsql IMMUTABLE STRICT;

CREATE OR REPLACE FUNCTION pgp_sym_decrypt_null_on_err(msg bytea, token text) RETURNS text AS $$
BEGIN
  RETURN pgp_sym_decrypt(msg, token, 'cipher-algo=aes256'); -- [...]
EXCEPTION
  WHEN external_routine_invocation_exception THEN
    RETURN NULL; -- [...]
END; -- [...]
$$ LANGUAGE plpgsql;

CREATE OR REPLACE FUNCTION decrypt(token BIGINT)
RETURNS TEXT AS $$
BEGIN
    RETURN (
        SELECT COALESCE(
                 MAX(pgp_sym_decrypt_null_on_err(msg::bytea, token::text)),
                 '🔴 No specific message is planned for this token. Possible reasons:
1. Copy-paste accident (double-click on the token to facilitate selection).
2. Formula for calculating the token not updated.
3. (0) still present, or replaced by the wrong value.
4. New logical error. Congratulations on your creativity! Now read the statement carefully and, if the symptoms persist, ask your teacher.' -- fallback message
               )
        FROM sqlab_msg
    ); -- [...]
END; -- [...]
$$ LANGUAGE plpgsql IMMUTABLE;

CREATE OR REPLACE FUNCTION bit_xor_accum(state BIGINT, value NUMERIC)
RETURNS BIGINT AS $$
BEGIN
    RETURN state # CAST(value AS BIGINT); -- [...]
END; -- [...]
$$ LANGUAGE plpgsql IMMUTABLE;

CREATE AGGREGATE bit_xor(NUMERIC) (
    SFUNC = bit_xor_accum,
    STYPE = BIGINT,
    INITCOND = '0'
);


CREATE FUNCTION salt_064(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 62972894145922;' LANGUAGE sql;
CREATE FUNCTION salt_002(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 137861041508951;' LANGUAGE sql;
CREATE FUNCTION salt_048(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 277826442907816;' LANGUAGE sql;
CREATE FUNCTION salt_073(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 254165502646708;' LANGUAGE sql;
CREATE FUNCTION salt_060(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 111976707881159;' LANGUAGE sql;
CREATE FUNCTION salt_069(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 70797235173812;' LANGUAGE sql;
CREATE FUNCTION salt_090(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 30497399158554;' LANGUAGE sql;
CREATE FUNCTION salt_099(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 8310057461616;' LANGUAGE sql;
CREATE FUNCTION salt_013(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 156428465252470;' LANGUAGE sql;
CREATE FUNCTION salt_093(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 107856286707972;' LANGUAGE sql;
CREATE FUNCTION salt_033(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 137815747202516;' LANGUAGE sql;
CREATE FUNCTION salt_023(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 44360048025875;' LANGUAGE sql;
CREATE FUNCTION salt_091(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 34119642900974;' LANGUAGE sql;
CREATE FUNCTION salt_080(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 17686269106982;' LANGUAGE sql;
CREATE FUNCTION salt_078(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 33142678222518;' LANGUAGE sql;
CREATE FUNCTION salt_010(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 156609923390892;' LANGUAGE sql;
CREATE FUNCTION salt_029(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 255246805321529;' LANGUAGE sql;
CREATE FUNCTION salt_086(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 229157153283997;' LANGUAGE sql;
CREATE FUNCTION salt_045(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 241186399284601;' LANGUAGE sql;
CREATE FUNCTION salt_012(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 237909826945914;' LANGUAGE sql;
CREATE FUNCTION salt_032(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 40195087246763;' LANGUAGE sql;
CREATE FUNCTION salt_036(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 123633025696313;' LANGUAGE sql;
CREATE FUNCTION salt_046(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 203785028705431;' LANGUAGE sql;
CREATE FUNCTION salt_071(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 224610948522906;' LANGUAGE sql;
CREATE FUNCTION salt_018(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 193629355598867;' LANGUAGE sql;
CREATE FUNCTION salt_051(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 216604063521296;' LANGUAGE sql;
CREATE FUNCTION salt_004(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 57701753774249;' LANGUAGE sql;
CREATE FUNCTION salt_019(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 148913404103171;' LANGUAGE sql;
CREATE FUNCTION salt_035(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 151966162615799;' LANGUAGE sql;
CREATE FUNCTION salt_015(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 57536827559801;' LANGUAGE sql;
CREATE FUNCTION salt_089(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 231427542066705;' LANGUAGE sql;
CREATE FUNCTION salt_061(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 210492708649341;' LANGUAGE sql;
CREATE FUNCTION salt_088(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 199451542642387;' LANGUAGE sql;
CREATE FUNCTION salt_030(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 91565974725697;' LANGUAGE sql;
CREATE FUNCTION salt_081(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 186014430728385;' LANGUAGE sql;
CREATE FUNCTION salt_009(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 252880031239136;' LANGUAGE sql;
CREATE FUNCTION salt_057(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 89036539348634;' LANGUAGE sql;
CREATE FUNCTION salt_042(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 281044000101397;' LANGUAGE sql;
CREATE FUNCTION salt_054(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 64487734458809;' LANGUAGE sql;
CREATE FUNCTION salt_047(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 77876336435184;' LANGUAGE sql;
CREATE FUNCTION salt_014(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 121208939839792;' LANGUAGE sql;
CREATE FUNCTION salt_017(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 202087216605079;' LANGUAGE sql;
CREATE FUNCTION salt_067(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 135596661288730;' LANGUAGE sql;
CREATE FUNCTION salt_087(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 53099498484831;' LANGUAGE sql;
CREATE FUNCTION salt_084(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 136796738484217;' LANGUAGE sql;
CREATE FUNCTION salt_100(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 52505842033539;' LANGUAGE sql;
CREATE FUNCTION salt_043(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 80429528338601;' LANGUAGE sql;
CREATE FUNCTION salt_027(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 39155947983344;' LANGUAGE sql;
CREATE FUNCTION salt_006(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 52742326372974;' LANGUAGE sql;
CREATE FUNCTION salt_040(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 37259991231134;' LANGUAGE sql;
CREATE FUNCTION salt_003(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 78551615559390;' LANGUAGE sql;
CREATE FUNCTION salt_076(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 11842676901531;' LANGUAGE sql;
CREATE FUNCTION salt_079(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 37942724390356;' LANGUAGE sql;
CREATE FUNCTION salt_058(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 1827309829283;' LANGUAGE sql;
CREATE FUNCTION salt_085(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 266261277495711;' LANGUAGE sql;
CREATE FUNCTION salt_066(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 134798869348095;' LANGUAGE sql;
CREATE FUNCTION salt_026(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 108248540469695;' LANGUAGE sql;
CREATE FUNCTION salt_016(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 213876884779281;' LANGUAGE sql;
CREATE FUNCTION salt_056(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 165223576022761;' LANGUAGE sql;
CREATE FUNCTION salt_044(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 78603334135774;' LANGUAGE sql;
CREATE FUNCTION salt_082(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 156767328526125;' LANGUAGE sql;
CREATE FUNCTION salt_039(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 225835030251516;' LANGUAGE sql;
CREATE FUNCTION salt_005(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 17890350928281;' LANGUAGE sql;
CREATE FUNCTION salt_024(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 165045079279857;' LANGUAGE sql;
CREATE FUNCTION salt_011(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 89879946603453;' LANGUAGE sql;
CREATE FUNCTION salt_083(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 273265872478375;' LANGUAGE sql;
CREATE FUNCTION salt_021(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 258633179837392;' LANGUAGE sql;
CREATE FUNCTION salt_068(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 44336719546230;' LANGUAGE sql;
CREATE FUNCTION salt_065(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 204341354522673;' LANGUAGE sql;
CREATE FUNCTION salt_095(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 103295775436641;' LANGUAGE sql;
CREATE FUNCTION salt_007(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 130975966734475;' LANGUAGE sql;
CREATE FUNCTION salt_074(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 139556892058007;' LANGUAGE sql;
CREATE FUNCTION salt_041(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 119697795103447;' LANGUAGE sql;
CREATE FUNCTION salt_077(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 4046805019318;' LANGUAGE sql;
CREATE FUNCTION salt_070(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 92958338575792;' LANGUAGE sql;
CREATE FUNCTION salt_075(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 36044330615759;' LANGUAGE sql;
CREATE FUNCTION salt_092(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 61516222468702;' LANGUAGE sql;
CREATE FUNCTION salt_094(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 78913360909949;' LANGUAGE sql;
CREATE FUNCTION salt_038(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 31489738141241;' LANGUAGE sql;
CREATE FUNCTION salt_025(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 203585150833345;' LANGUAGE sql;
CREATE FUNCTION salt_020(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 24463305340287;' LANGUAGE sql;
CREATE FUNCTION salt_096(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 260435128269849;' LANGUAGE sql;
CREATE FUNCTION salt_072(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 210215670540430;' LANGUAGE sql;
CREATE FUNCTION salt_055(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 191502459736723;' LANGUAGE sql;
CREATE FUNCTION salt_037(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 182556230345007;' LANGUAGE sql;
CREATE FUNCTION salt_059(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 59905828584047;' LANGUAGE sql;
CREATE FUNCTION salt_034(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 260228475305711;' LANGUAGE sql;
CREATE FUNCTION salt_050(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 90063864090052;' LANGUAGE sql;
CREATE FUNCTION salt_001(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 62674909100445;' LANGUAGE sql;
CREATE FUNCTION salt_049(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 86041550780213;' LANGUAGE sql;
CREATE FUNCTION salt_098(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 55119678938787;' LANGUAGE sql;
CREATE FUNCTION salt_008(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 236169707210998;' LANGUAGE sql;
CREATE FUNCTION salt_052(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 263491931983769;' LANGUAGE sql;
CREATE FUNCTION salt_028(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 213988589386448;' LANGUAGE sql;
CREATE FUNCTION salt_062(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 90944912484449;' LANGUAGE sql;
CREATE FUNCTION salt_063(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 275059687810107;' LANGUAGE sql;
CREATE FUNCTION salt_053(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 141534329833897;' LANGUAGE sql;
CREATE FUNCTION salt_022(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 70272263011973;' LANGUAGE sql;
CREATE FUNCTION salt_031(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 200001037020680;' LANGUAGE sql;
CREATE FUNCTION salt_097(x NUMERIC) RETURNS BIGINT AS 'SELECT nn($1::BIGINT) # 42438242280060;' LANGUAGE sql;


CREATE OR REPLACE FUNCTION before_insert_or_update_inhabitant()
RETURNS TRIGGER AS $$
BEGIN
    NEW.hash := string_hash(json_build_array('inhabitant', NEW.personid, NEW.name, NEW.villageid, NEW.gender, NEW.job, NEW.gold, NEW.state)::TEXT); -- [...]
    RETURN NEW; -- [...]
END; -- [...]
$$ LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS before_insert_inhabitant ON inhabitant;
CREATE TRIGGER before_insert_inhabitant
BEFORE INSERT ON inhabitant
FOR EACH ROW EXECUTE FUNCTION before_insert_or_update_inhabitant();

DROP TRIGGER IF EXISTS before_update_inhabitant ON inhabitant;
CREATE TRIGGER before_update_inhabitant
BEFORE UPDATE ON inhabitant
FOR EACH ROW EXECUTE FUNCTION before_insert_or_update_inhabitant();

TRUNCATE TABLE inhabitant RESTART IDENTITY;

INSERT INTO inhabitant (name, villageid, gender, job, gold, state) VALUES
  ('Paul Bakerman', 1, 'm', 'baker', 850, 'friendly'),
  ('Ernest Perry', 3, 'm', 'weaponsmith', 280, 'friendly'),
  ('Rita Ox', 1, 'f', 'baker', 350, 'friendly'),
  ('Carl Ox', 1, 'm', 'merchant', 250, 'friendly'),
  ('Dirty Dieter', 3, 'm', 'smith', 650, 'evil'),
  ('Gerry Slaughterer', 2, 'm', 'butcher', 4850, 'evil'),
  ('Peter Slaughterer', 3, 'm', 'butcher', 3250, 'evil'),
  ('Arthur Tailor', 2, 'm', 'pilot', 490, 'kidnapped'),
  ('Tiffany Drummer', 1, 'f', 'baker', 550, 'evil'),
  ('Peter Drummer', 1, 'm', 'smith', 600, 'friendly'),
  ('Dirty Diane', 3, 'f', 'farmer', 10, 'evil'),
  ('Otto Alexander', 2, 'm', 'dealer', 680, 'friendly'),
  ('Fred Dix', 3, 'm', 'author', 420, 'friendly'),
  ('Enrico Carpenter', 3, 'm', 'weaponsmith', 510, 'evil'),
  ('Helen Grasshead', 2, 'f', 'dealer', 680, 'friendly'),
  ('Ivy Hatter', 1, 'f', 'dealer', 770, 'evil'),
  ('Edward Grasshead', 3, 'm', 'butcher', 990, 'friendly'),
  ('Ryan Horse', 3, 'm', 'blacksmith', 390, 'friendly'),
  ('Ann Meaty', 2, 'f', 'butcher', 2280, 'friendly')
;
CREATE OR REPLACE FUNCTION before_insert_or_update_item()
RETURNS TRIGGER AS $$
BEGIN
    NEW.hash := string_hash(json_build_array('item', NEW.item, NEW.owner)::TEXT); -- [...]
    RETURN NEW; -- [...]
END; -- [...]
$$ LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS before_insert_item ON item;
CREATE TRIGGER before_insert_item
BEFORE INSERT ON item
FOR EACH ROW EXECUTE FUNCTION before_insert_or_update_item();

DROP TRIGGER IF EXISTS before_update_item ON item;
CREATE TRIGGER before_update_item
BEFORE UPDATE ON item
FOR EACH ROW EXECUTE FUNCTION before_insert_or_update_item();

TRUNCATE TABLE item RESTART IDENTITY;

INSERT INTO item (item, owner) VALUES
  ('bucket', NULL),
  ('carton', NULL),
  ('coffee cup', NULL),
  ('lightbulb', NULL),
  ('ring', NULL),
  ('teapot', NULL),
  ('hammer', 2),
  ('cane', 5),
  ('rope', 17)
;
CREATE OR REPLACE FUNCTION before_insert_or_update_village()
RETURNS TRIGGER AS $$
BEGIN
    NEW.hash := string_hash(json_build_array('village', NEW.villageid, NEW.name, NEW.chief)::TEXT); -- [...]
    RETURN NEW; -- [...]
END; -- [...]
$$ LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS before_insert_village ON village;
CREATE TRIGGER before_insert_village
BEFORE INSERT ON village
FOR EACH ROW EXECUTE FUNCTION before_insert_or_update_village();

DROP TRIGGER IF EXISTS before_update_village ON village;
CREATE TRIGGER before_update_village
BEFORE UPDATE ON village
FOR EACH ROW EXECUTE FUNCTION before_insert_or_update_village();

TRUNCATE TABLE village RESTART IDENTITY;

INSERT INTO village (name, chief) VALUES
  ('Monkeycity', 1),
  ('Cucumbertown', 6),
  ('Onionville', 13)
;


ALTER TABLE inhabitant
  ADD CONSTRAINT inhabitant_ibfk_1 FOREIGN KEY (villageid) REFERENCES village (villageid);

ALTER TABLE item
  ADD CONSTRAINT item_ibfk_1 FOREIGN KEY (owner) REFERENCES inhabitant (personid) ON DELETE SET NULL;

ALTER TABLE village
  ADD CONSTRAINT village_ibfk_1 FOREIGN KEY (chief) REFERENCES inhabitant (personid);


DELETE FROM sqlab_msg;

INSERT INTO sqlab_msg (msg) VALUES
  ('\xc30d040703029124eadd9b07ed6e70d2c1130158f3d468c20b6312e8c2b19a6b3abeccd0e47b41b5fd5321182721f8558ed26cb40bbd10a217dd06f21e8d88a7ac3840de196451fbd33928eb51477a12ce5782aad46cf7ae47e3a8b9291ab892482fc59afa21542e6368945aa9c56738d661566e5f16e0de25c5877e02da0b512856593281da79b947fcf48cbce1d6e0be6c4981a61234da2650c879a0aef146269a0098a5f7624983646ec3dd51dfb21ceb2d8aeacd73358e2957490aab2edd8884a3052d06f6e6e61181c06b8bf0b79c90fdf86d689dc412fe146facb48b34a8525c25763d423118bf8c087854b763b9e8bb1aa5cdab43079e6701b43f17cff6650304bc726c2c1597395e5c4486d4b69697c859b884edd8621e7f51939a6869ce453ea6a5ffbfcbfc30b1806ca422d0a2c745d0eff1a44a5467616ab096fc65745ac578c0b5a7f496847d44a62eaa36aefd72e198eba9c590196af777e4057338677e917926e2423c9aa2962b11ee22afd73e7197c4bfc409cbdbd18871b8d75b1f3e2ff9ad399762bee98e8a22fb9127360a454c0bc79e31165851d93ebd1502c1e37ceb8317c9299046a74f6e743252ea90b9a4bce43d780201449b770ccb7c4eb8e2946d0be3bc9dd2fef22a4bc123e05783833d9c79a57c24bba7e0d65108bc964a'),
  ('\xc30d04070302febb1e2f7fcf062968d2c1c301f8d55a43b00d4f6b8dcedebd5294b9b861ce2cb5828b7e073f1af1192ff54314a1157321b30a40960e1184fb47e7993bf42c41c6628e43360b2257930dacf5160c5910f4b7eca3a7633b69ae7fce32ae4d983c4f28ec56ea2fdbb2f660a065d28cdbb225a6ea29a479b6049da550fcc424647d7c7ae4a7578e23befa1cd1351c5b9998e1f93ffbfae9653c668c233bd901d532b98ee0e07cb80b1832fb7db0cbc979dc4f2742f6b164e5ccd04790d37cd0d5ed80067146fb16bf98786a5732f82e9a8f33bcfe65ac0728b95a359a6dc7898da840b43319d8d243dbe08a7657c6a2e4376fa044e851a92c2b44ea1b28d7d3f5fcd7f11f0a7980524f235f6510d3c2755e3d7344b9ec0f851ae8b97a2f6b72cbd3d035ffd5ccf05ca5aa4a195fa1f8e80b5cb263789a175fbc277aac4f3a5f4cda9e3f1ce06c03d4f884e996842d64554ed7b30f77882a2f504b61a09520101d0b79b61491d5d9621cad3a9c20a91ab88ea13438af27bdd97ecddc5ba4ae7212019b91ab1b543f67f229b2c02e5b10717f7defc572ce5192b163f39bfa39388f920fadf4b5686b33ca1243847b53bb62fe94acc2513d73dcb603b9941df979e9b3bbc2751cde7e30c14cea283ba724c56fb3f5887d9c4cda84d29def7c0e293e85d11970e025fa55c8c58ceedf0ad4fc9da9f79d3f3437c1461c6caaf83bf41a685f2953a13924d8e7c79b97733f5bdf1cd89c719f1108a1387a96de58b79878c5459ae9d0028da22a39d2544fff93f1faeb1bbfb6c2773c83f3115deeec7ea1aa56f0c6d7440ef5795a4f678e87127992e2d8b7b72e442c67d493d60b316f9bc7b115fc2afc9e3381190150ed633baa01958f20550df251239f2ce8bd40493d435bb482693d65b91c96010940a049de'),
  ('\xc30d04070302bf60dc0792cde5f168d2c23b012e3483fb54c20f6e4a31d6349138531b74e43e8e8331b2627c5a472269c7684f28076455612da3f63cfb87d478d2c52496de10b44c1b03ce40c2ed684bfa30f3b3aab057f02a12102f51594f4701f644c7487c5434e4a3eef31e71e0c8b903580591388a1c83e44ddfe8128e1a48ab868de4473f0363a67829985cd20db45e34ffc57bfa2acd3951a99d85410aba7f41e48eddb8b7efcb981fd570faf58658488975152fb638ae1ea641f7eab51dbce10b8ed09ce6b63fb3d9cdcde33d758fa876505ecea393f014125127d6e990bdfcc304c456f84ea3bf4e9d400f7cb9c09b110141b57c13a21f3d5f1029b9ba259792110b7e85cb391007cf336986b36a6ed2d9864103cb1ed7f6a0895ebe3013c037b97b810e1de51f1c24b371d2372fa311a0f011d6cbe42c23e5d768098712458a906d72dfef33c707fcb45c272190ffa11daddcd9c70c104cc190dae29c886d103cd5c54105b6b4c80f38475976d97f879c2e74d12c4098590777191d1537af9904c60cbbb03d25c27466008298ea09649e11bad29cea24df0f3617932beac0de34449f27b2426e41e5f331b0d383a0b5102108a680aa43ed9ed9bc60a597efd2705bfc2b72dc6a7923a8ff155cccad40ed1d40df9466d9e999b7a182a2de1792c3d2610495fd1234a5ee5f5b57cbd03dc3ab9a939eccc897a9018f4a07a0aeb60172c6c4b2a3c33236719c79b4aabb721c287485a65bd69dfb52059e0e4cbfd22ae6efa8f720ed4550ba4812c9436da596101423d2cbca88e5c3844db595792391c2c35d298430206a12124bc6fa615f968145791a0238a374fff0774fe92591309a3148d3a10a2e24756650ceb01eede6c8bcf58f75e19a4e429d845f56b8b94d8e3b8b5dc1cb3b855ba88fa6851b457c40b9e7a90401a45643e772152aced9d690d9e41c86a7f58b9c5a12db9455e465a1b680932739b1785cb0d5892f387e949d995414fcf60238bca5c244ca2142c70a3e1431136c4087aa547dcc4ed95999229a9bdbf2659b2b0b86865e91b6d47bf834d3244ea7ac29c53d2c5ccf1a7afc69f977afda3b5923'),
  ('\xc30d040703025624481d52a8c3267dd2c25f01cd9bff678c04c7d9ac198536836de54adca3e077031ac361bff7ccbeeba8d3e15bc712d0add39e7f75210fbb4438208c127b0d2e935b92c844cada8d7eaa75ab5d6ba3585bd9a71fc3fb4df8bbe07b2a3f8cfecc1e26b196e8159939ddb863ae4a2a092bccfdfe6926fa6209d2ce10a79ad3bf929f323fd7aa3505b47f341ec09672b371934198484304f3a2a4479e28e8651383a50217d5d1adf834d2aab7886fc1c79a749f10c30e6cf68484b3fd26743b25310223c32b0a48caf4e7703a93f549bfbc8806fd75265bccab01eb40408ba0665d73264d92146519588228c9bb889936a4a4ca779b1b0192359519ffbee7ea08e38dd0375283e8b24c013baa053024ed47d410f60ade62842297e2bcb4b66f5ebe48b0a928aedfc270671485b6b7a0d70a2fa4716c57645ae495d161943896e71e905cd014c0efa23df6e58f1fd4de0c7e5d944580d57f82d2800ea9889a43bf88e2c2e78168759be7cc061e8e96869fc10d3c4e2a2c228fe92d65ae11af96d0b96da3c2e49443562a24e5ad8073be7f1eef7ed560f23b61a6cd48586e39a29657d953f0ed4ea5cb7c221a28a33bc7a6a2fe8d66c4e4ffa104ac269a1764f52794c99d6dbd55c901098e8c1aa2b8de788463415ef7f84b81d43b9d7300c088172d839f836226ede2b68afe7c170c363d89bdf33bddea476180fa4e4d958bd1974c08c94d9e38292ce4ba8758c3816ce93a2806357523c0c7492e1101e53ef3b82fbbc5a44e4e9af89ed05014b07df3a14b9ab6843b4e567ef7ac231f6769ab48756948ff889f5e4a395663d086eafe083ec08b1f5aeca1a41c3fc5d7999611724e7d204550c94ab2fefae6d34f3231f80ad4b8869b9e34325fc9a529c9fd3ca00fcd91650735b6ba54eb0ecfd4db05136a9a06c800773d24195883b679bd78a20132882887f7b84c76e455f404aa3cffab453f15139062f3af5284170c2d2ec8e5de600d4e3e44dc2bee1f8bd84822abe1102366bf56b804b5bd3040952b7e1fefbef30206f59dff5e29ac219715a5b6199fb6c872cb9bdc609820bccae37ca7e88c11c0629badbfa099ba421b7fc57c1c3289fa0434081314ea564c7ec5fa95046b8f444bba3289552e0b'),
  ('\xc30d040703025e41e22ce06d56ec7dd2b60146aa7f68af12bf9d004231841842b9ba55f864d039834547aae69960b17ebe2b39e748894e44c1221753601aedba23015c61e2622b984da234fcba08441b8e2c00f49c24ef76f79b8a74cf39a81e8d1bd07b26a1ef455181f680645e0d98d1f1724fdc48ac2761328635257d20a44ca22901c1c774c1291b09c069a9bd879b4eb7165c712a3436b7ce8f3229d6933705203c97187f6a17d7275503ac459be4a3385485c08895c34883e53d86d98e82b0ea63951ea8'),
  ('\xc30d04070302a3c8ca69c2d985a675d2bf019db9819bcbc3f3470d9707a1d85ea2e338d2de795711d964fc0efa0da5a9d004b10db39718ee4e1553af0081ac43aebfc7128708b156a3e7b9c6b2ef81e14f437eb4629f80d4f7b1bee475d14157ddafa0455399ddb9853f9c902215e9e0370dc62737273f9f702ea0b16642d96cdd8f8aefef06a55997700238702b0b0ceacbda7c599af13bb8744bfc8c7719920d452c60a3e26b816b491a33c6f80a421a16f425c2dd9ba8ec247a5fb17c04d52c4c590dd179c4dbaf07f19b1f4ee657'),
  ('\xc30d04070302694be7700225f7f176d2a80103a4a59030924af68eb8365da91f1cd81a8542ce49fbce39e92d8d2d58c74de2917cc9642c876303f3c050af47a54608b02605f11f6aada3f6c488b05a4cd806eb327065343c2e0ff3af8c362fc28bbcea7ba7467f76211ca053ba93f4c903d201794a6f79a6e0befeadd91c41a627d0c5a9fdc0a4db74a414e9018439cabf3a7c0fcb30961feb25a9ce4c0e4e39470829768e7baa741442a0889e1577cf9afb1cd7926d1c38ed'),
  ('\xc30d04070302309b95a5b7f6037c75d2c24501130fbeb493cc0ee9b33bdb440fc121a94ac9ffa2bc03fe9d81da30418a5c2dc6710980cd57fff0dd0d6398bd127b7a0bd5bd9331359ebb8f76c1fed178d3422e867ab13e80dd242d7207ddaaff2597f13b5567693a8b4715586f19fe176503d06f9abf98df0b73ff75b1b956a47e1a2576633b11d40b19ba3bc93839956fdb585d04a243133c8b0d00d468c8b074d2a92c19e0c39bdb87cd3c16235cece370b785a6822b5df3bf0b60b991b85d81139a32a06327127578917e6110bf5612bf7fcd86216ea836df073e8afd5b04d20815f7ae9ab1eed3a39c940944ea673f1a4081b978bfb060a5691dff25705de699d5a95f6211ba757aceeee482bacfff2639c1a2429bcc13ce6f6c869bdc09dd5cad9699702e1ed42b860c9874248d061ae85d8d1d95c0c4a355a64028dc694db2ecbe79b3012bfb38f3716a8e7b6dce5b689cb437b7e497c6f22272edace2186799364e8faf058eb14abb3d5ccfbeb0b2a52d5e62ec739884b71526747a5ba1eb4a57103bd5b77fe033f475ae8fb13d5a3226079774d2719bd32be6b7b639dab20a69d22057851ef111e56e8c8cce30c297868608104ad964eaca8173026d6cefe269d02600ec712715879e09323eea640611949dbe770bb9f70f9a9de02055a428401d870c4e360660ee6666bccf78fe8a9736f26b7f3498061052885da3e2019d16dfb28bb2bff6715c0140161229ab4a21a666e9cc0e15044029ac8aef58da1ed0a048738bf3fb4be93bf48ec559b22427f2172afee26652a27908917fa231ddf4d2d5293a89b40a0b498f19f648243de3334e677ee8e4a01eda2c076f170f768ff4d32a35ddb88f66c0424366359e87dc09b40ab5c9536011d15edc54999db0ed10fc41dd75c734d0a11d93bfa2a483b45fa0d5c1ade9672064a11b3a163fdad1d214c85dcf17c929440856ae470f5ef763c3c5ff8cb1759e24d66b6f0b383f4b9b8a9623d0235b0f840d381456f4cd77d234b7d9222cd87b3fb71487553a49dd9e4dec7be5ab6bb7d0d0c1b884add0eb19634596fae743302a1772b9336fcbbb6c3062729825a7587b4e74ab15b1965c0cb621'),
  ('\xc30d040703027888ee1f654dd37975d2c27a01b1df19b67c3609781b1e56808977c2eacf55860c77e2e627fd6f25d3ab087dccc7f00d7872390f43b793705db8eabb59828c3219912e4f18aff393c37b6013493641aea9f2e413bd00979d1db947bbc27fbde6a90706cd263fefa71058678965b7e682ea5f8e922f442ea00e5d1816d859df9e119b4a73c07815dc5900ee5731aed944261aff2aaef01349be095366dd77f1f3b0d64d1d42e455b6f8daef1aa53b9dbaa66c81e15633127d7d9ea3b65febdbe6cb7cc3a439e4fb345de2e244417ca68a932ade5932d2c06cc2916909a4d6d9f911f61476e4009fc9d52b8cc4c1e5ed782f80d8366e6888f380df9e85e89e0124042c3fae6a876c3ccb15c661e58ecfecb2e6cffd5816f7541eb9bb3a4a36e56211ffaee29df991aa1f8ea1e1eac7b3aa3d4fdcfe1f69b8580e5025de2dff707765f83d7a81061f7b224896e0f9aac99e51b64686d01b5ea3693b484dd0c87c6736b1b19c5b5214a4bddb9963001696659bcd520ab397707ba2b2ebae6c9abdc4fb6dcac17446dd7226b75e3b8576ab3159da40f51503832e62a1bf51b7da09d7008cf57b697102ae368844406e61aa36966fd11b5168e2653bfe414d0b26f6c3f6cdc5f4044ca77582461c305a31743a5f65b5bd08979939f6da54cec2b6ec5bcfc49c46e308ab1862ac15fde858ac78e2488fac79f60773d8e525c71db1838dc891298d0f365caf196b94fe9835d069545ad8845d7b74314316ce3606852e51c3b6cd25702a70bb5c0c5527fab03983a35e9b858f09ec97ac1c1292d9ba2724b1f50b8bfa5891c23a8448661420067b233c66f42ccad00a53c0f6150597f133ffb78cbf8370346ed1ce1906064ac0c42c23738508de08b802caed8a7b433025c065dbadc044b003df4d40a32678b98e4cdd27c92b89b60211975dc05ced7071f87bbfb24f98bc9a778c2fa58b0b38843c6f078a6f48c298c1c7cb56493aea292650d71e1da787dfa2ad46cc68335e4cc6bc4ee5e6874048fdb56407690ceeba69f8a961e5a0f0ca5746c398af7da41128a6e0be6f70c843e582a2e8791cb1c6b55a5fabfd0a2a584bff92bbbcfc6f3adbad1cf5ec1ac17f4c385967b9d1c2eba3cb31140ae6dfd69d20f2ac13d0aabe53ba4b0f486924835fd1e820732bd185fad5db63d2cf'),
  ('\xc30d0407030250fbfac7b2c0e6c87bd2c02201b8cd6805e544e62b9153c8ee03a1fa9244369a26e3424d1cfdc4ce4da2347d817e86b3509c24b7d5170ad701e8f599843f5ded8f28ffc360a0cce8ab88abcd3b82984048d36ad0712988ac9cd90b79866d87aa2ca9af408b33fe357bdbc02fc34cec4022d686911dd75ad4aad4fba2e86243133a0e1beeba3c9df85bd036b0de520dea9117a275d9c3c27eee50311c2b0e02316e049503f99df2c33c329cba2aa881ec508bf0ceacab8a7e62a25600af26b14f40b73e36a4cfba4c2320b98c6b50e6588772443cc22bfca0c0f5e34fedf18c6742cc6c42632ae8768ac7099034e4'),
  ('\xc30d040703026607c2cd45f4c1ad61d2c00c013f14544cd0ee5c5b290a8cc6876f8996e2dda62b701d6b9ef210af2045162f55ce11e7d5f11cb3e0faddeb98222edbc61fc3e66c079138babf15f4625d24ffe93de2487346f2e67f364d1e01a1ad60d774416e4d420dc77c460eca404e4c4afae6e402fea54ec3568f1f3116e3f022c184284a553e73fa01d5f4aff0cc1a9e27e8c2677f77df72dcced9e6c06a974706fb5fbadb1574fb61b9611b777d89cd5ef7256b244857e2b03d71be7120dc29ee43b99f7dd5c36ac903fc27b3f9b51abb6eeebf38f2f08adbb38892'),
  ('\xc30d04070302dce1124dce59adeb79d2b8016a3581706e9bc38b9a5dc9cc0e4943eaca0211f3990a7ab361cd153b89279b6cf0fe13752f0fb677b026a757d20de2a56bd9b0422e71cdff53a790aad2181d0583f83a0e6bf07bf45a184656ce98dfe3fde8b3e1aa9c33fdd70978fcc551870d072825ee019bee0cbe64462366daf99307de768dcbcfca797393b13f05c4092ca69861917292580ddfe2b1543b16679f09806a5a98aa57aeb365de42c3e93f369d9b743a9f768511dcebdcabaeefa355ff7f0172997994'),
  ('\xc30d040703026ad1a9246cece10f76d2c3eb01b20bf321396b0d0d62c9b5ce7fdf9f28d6be10c901eaf4236829d9683ceefa709acb6b7948e9a01e09cfb82599ef89b547c9878d639b8f9624bb40cd34ef5212b72b957b3d24518716c00a3a4aa8cf536f19e34a0e085a1c2f8cba632d992638a0d0c32c5201ba173fe0ee9734b008c733adcc85202bd5c566df09023812c3f384a118a9aca00ee1478dd38583a97239df3e505dc8957bc0fb0b44ecadcb9aec619d1abad886f6ea0ada489d503fa014a572d2d63844882d1b4fa66f5b1cf013800b62ab2c7fd742c7343a6d1d0dc0b707033e087f71827dafe86ea68615028b3b12f5a4711e155a7eaad2fa2ff17dae0ffa56d0a665bc89e888cfff635ff571cbfd1543feef7964e48844e249fe073303545a97233603ed0a144121f215cee2af5fa4c827961067050b6e6ada21a7e242fd982e4e6976af4c05e9fa0769e522b089043bf0568b459dc671dc8c0bacdf6980b848eafce51c15809354d7581c00599f5d6f09f800b1358a66bc88391e240a529d658b4881ee87bbd030975793f09b1e57f01e89fbc49ab9574ea111ae434d4f1bc1b6c076c03a99f5ab27af7b2ea1cf0515b0a3381fdc9d5d5ecbd8f170a08d316301207bf6b18ae10c22810df428fd38d56a6ef96c986217a73db6f7c286174aeab4db149eac46e16329b703997848a52989247b26e8a838828bb487483f5da4c49b5827adcdd8cc1bc0ceee79cabd5a0948cee34d4b7da88d74045f63ea56463b29730ab3b6932cbc1a58549fc58b54ead3d55343c4aee1d64356311c8a9aed5591c8f91d9950db3fe645597803a7c6cc0f0b3cb3f49d413b6c50dc5c1d1afe53834d43dcbe93bc6ec04d321809731eae71afd40eb8e426a33c3d8db5291898023f9d4a067b3c335462ae0f4b3cee6bc0d3597ab1f4bc5b0ce62cdaf5370a1cef38168479313c7850f0aaf2fc51a8898cbadbb3fb51f27eaf2d85be88a8038ed760af28daa3c49484f102ea9879f252e47e1cbc66f245d6d12dacba75a5886153cff2080df2809dce9dc1976bc5fac0aeac54156fd318f31e15d96c0cb90773c989cc08e01cb68b9d3a5a5f54add238f4355265c31f645cb0a439d59938bbfc10ca4dbcd0438deaaa320d7fd24abded77f5200b7479044eeb48be27698d4a8bd4a7fbcd04a59695b3e929cae6159def3cf9290bf9e0a15cccb4eeeeefef82e8a74cf161767070a952165682bf232dc14b572f7054ae0e854e3b8de9866e3687d61546c102c75e504bfc36c70248f58bb2a8ace70a52335661efbf67b74d2a4bd1ab888856507c9cebaf41ce77bff2d55eed987470e83623bcdf5593089aceb3cf00cbf29317f294d27bbbf0b9373d13d33664ee708e42e6840fb4e4873e4e88be431c4d30c95eb58b260f0e983290fe291d2082d3e17be367c0a7116250aba358d81e796bef785416e4ac2bdf09df261a62b225391c6617df01ba993627e5532b2e2e0d51feedc9b6308c1f3926393f73334b93fbb903e2758d2d4a4c3b394b1813724661f60eeac0714f479453403b8853e90a9789c87c4a8bfbc0813daf9c6370356ab56679863da6f11a1cd6a3cac6928589d6d8c6e5d69ad0ef2cb3aba45c5c7e8102d8c4ecffd099130bb129a905db2d3c21feeaac24b61af01aa6430bffac71b1fab3d0f7ff21dfce9bac9dc9df87798dbc458e'),
  ('\xc30d040703023c2b815af1516b3869d2c0ba016e73ceb9c3732f818f99db57e0b13890147ee9f1599f4d380e0725b26426083ed16e3378b331dabb80486610b049cd04277c33dfda515bce6ce91052aac8711a8e08a98b0af7743b2cc66cb52a05ab24328772009c7db2530f1a66ce5125c31f808e14b0c86af5c87ef56971f4e9a6a412de57623fba9d1227f608a998640f7dabe989a85266674c20a2ff59604317725b478c4d720236ba2a4259d8c9b6c3f866cde106bc4d531ad068c1b2da488e7b1f899379fe264f5bf9c44eefc9fba0464afd4f93a7c2dd9d4203c1d38573ee64299024e1a8a4d48199ed3c6c5f00b2e1bb71389ab1268f73529fccde9603d7617b3352dab718b6ff568f64e0192cfb7dba7604f0faa471315e47abdb6129e0a25d524e4b03d61cfdba04966174283215de086f4cce056125dcf3c8f6fd14f6e89716445879fcdde73b48c72eb58c15ff2b7c8f1b088d2606e64fa44f7f7b8dc53a148b03eb72684e1f18321c9cbdbeede0e1ac1b462becf6f32d5e31ca39f12259a22a9a2f481f586c'),
  ('\xc30d040703024506295b8f66fa9778d2c0ba01d2fd79f1060ced8f7de183166ec7c8490841b633def276725a215a6220363a3e8fe247cbcff341f0649850aa9d9029fb924e214036744572f1ede78a58244d5ef3d076fd4eed934811d15ef084e97f015bb5dd8691b7e214f6c9e038a15ba987095c5f0ebfabdad412486cbc543dd2246c3c38abe10e13dc9b3f06b18e6675e1c49367a879a96b80b08458655ef35f3f49c2cdf28b20a5d7db2d34d115572ff7709f4c1c05cf45d0d0e30eec3756f83b4080536e60d5849dfa48c78d9a5d6fee42241acea83d0ce4d369c5987acfa597fd344b463e1a7eb7619b4bcf17e216be0145fdc41849b91dec2e5d9daaae51c83b6ef6588b023025b34d1862a2e78fe0be37af84c15e0f8bcf5424497bd59dcba2ed43073389f434299bb30bc7d5903e5e2a60b41054018022a7f9d7c57c36acc4052ef487055ed979dca959487ff537cd39e15fde9f438fd617d4d16295bc3c4651e48ffde784c2768bcf7b48c59e6484eb196a1ac9c11e04c83c33b9db46fc662d68deda76507ebc'),
  ('\xc30d040703029b8c79d99e86329069d2c0ba015080c4734780836b3a1e42576ba1488fdb759900617c0dcaa16dccb7d485682c540aaae9e3a4e801f5ccf1167c8858eb55873632ef8a1a154dd58ee860d4b7585f9e191f0424621f4c29a458c77ac7a1d751ba51bcddae3acbefe03370fc2118edab64284afafd2c9d87909debb6ba120c5b441bb6f47faaba522dcf302109983e02d4265470e506322bdec0d0cede3e697b4f88f84c95ab4b87bd32d6bf717942936bc7c57a665c2c568b191e7a544aa2d6bedce800dcb21f6834f494ac30b4307bcbc5665c404e485bee76aa12e7f920a45a5d6c056e9b1d9ed14d34c532db151472e906fd61305f556c558a425f04ec51ee3ccca6beef0df7457e673640dda4e67dce6fab45fded9b824b1d7eaca2327eb01cab7bfe3b9d6454c5293be2c6205b932743846b94583308a56d965429911bdb3f5116a5254a595e4074f1865a6d581b2fdfe3cd65949b4d9ea9a7a9787ef47600852203163613d6a83d945acd457ec1fca13fe12c89c6a33511be05c488e887960cfbe16e1e'),
  ('\xc30d040703026dc61631bea8d82762d2c0ba0150892f0a96841caa5c3442d062be8e13ced1a20dcb86d8de781a3123805090854bd62a31374dfc09b2177cd8cd5c9e488656386f5f38dc4347dc5bf67d82a86356274d0c277fd8f38f10d071c8bde2ccd86fca84cf42ac41edc6ef5ccf8475258e5a091e919cf2e57a5bbe3150971267030a13d7b67898de920492af043b1a248acc0a8a24dfa61ea2742dd153958523b64d1398088d03ec5791eaa44a9aa0d6f9668cfd1f17155731a8270d64fca064eb6d1b92f80c0f9cdaf18718f32f6288d62f0a90e75311d36b8570f53be38557b995d2c5bf7360e536e8a50d264840d2a9e45cc4025e028e7eb9db903f00115c91d1805becf3ba8fe164df10f365f8c5a2903f80ffb6e5cab00271b4976d325138f0036fec0747c8bc82d2f8305390bbcb0f1eedb808fcd8a17d19f56e5549f893a6a5999b94b43e1db538a49003aee042d77639550d9f044d7930100ada944d3d777eae8ecca303605bca3be6fab954eeb0f97488cd7030d069ccfa4b33ea2d60c10bdb56637e7dda'),
  ('\xc30d04070302a9fa8103a36bc2e06bd2c2830154afbe9abd2b5108a0df84acfe2ae1070be7852d206264b59fe3c29280879d3015056291eb20ec16bcdf576af5710872635142c0cb2fdc81b64e1dba58bdfa22e6c02069853a7f83e00b742484c41f6b62cc8cf6dc4d294157c5529167435531e336abb8f1b600e5803a0043b295ba187b3db013677d801eded3626c5544a519874dcfce4915c5471c663c7b9d899401518d28f9c9dd2c6b0c7992e21362e51dc5e428162f9b05577f202ed4962c46b325b547bb15ac0364c8d24eec43f23c5331a203355d3f9ca3bc50aa7c3c4679a3d9ae044793af6c5992c2aae9c352bf225f62946ab6c04a85782c4efa67391df9412ebecc6a149c40f28d4451fac184e5a7dc63ac96802f2e43d5d9507e123a882a47a35182a2411579cce79b1d71348a3892d3f5d7798afe7b7e5ccdabc0302885a5e32078cb4b18a7262ef7f5a858171b35ab70f818bfb6a595d931171e1cb951f9e080e4f9627e9a854105a0b9621515a3fcdb6059daf5f10460968c99c170621d8033662a6d5949d746329cd5e37b3a54cad1c68deeb6f63b2099a91607a8d95c632964491f16f3a2ffef4444ab289ee3ee85d98323ab54760bf104ebbca76311ba4ceb65a527528a9444217614f382c47f7fc68f15b11676365aa61ef88824e6862e93ea55a630acb99da398090c959e7ca800496f834178cf98d93ce9a90ba8a06cb3d581e116e28e5e9dbb780ad0dd1dd899cf730d9644237065c1fb2dd836dfd9aaa2a62a3d4d15df515cd67d91a36e2b039d66dec0e4c430e38f3840e28e962737f33ff35be9716268ebc5dd7d25f2853e55b9d30d5242a64e6ec73a828ff8bd3dd058d0d519732d7f06f8335fee3fc09223232bfba3e3198d07eb04fb2a2b1d644d45a7ae2fd56c30cdae50ed2a08d3cab4aedd8e8c91d3005927356c13c26a30fd71153c0ce9cff2172a7eb1ec829d22825e2dce306081c15ea2ced747f6e961e76ac56c4a3931961ac1dbf261b989b525418c07ef4da5a3eebb9b9e89453e194173760ae3ad91fee07ab854408c36fbadd72511654615b5d82646302c3b30179537bc04b9e3241bff02a44e7fddbf085bd114a375fc9125380cb90f0a2c210712ee399a1d3aa1912952753cfbf0cc1e68b64e1072de0ee0bf467b27bcb90c186a27bd508f35459bd400c0f3b8'),
  ('\xc30d040703022ba45b0472cba4df6cd2c001014177e2b00a8d6bbc852e51f31454992d3f59dc3c6b43aa0eb998e032d45b375d6726ff85857f28d636cb2ef7613b6414c451bf516225a851f4341dfe8491c31650ea09c72588864bd396e201562f0aed5f5a621d792c2a140978e5fde1b862f3949a2eb0c529997f1a7053c19af22775392e78ada968435697aa29d5a4d9ed6a2b0b7e4bbb46749cf91478988d9dc1e9210ff500d9aff2ce58824f13ed288c81e385966ff089f7de7eab2119a0d6ea93663d9def1fa42d3fda347e6d303449eb'),
  ('\xc30d04070302ab7c16f18fe8bbe87cd2c2860162e572e390ac3f129cc8a69ba28bf107eeab588513c1453887373bcbe9f32aa755d02ecaa051f551b59a3bb4f071b9c05ac0d34183bbc2fa21dbf50071aa0deecb14428ad077d5fdd573f2a416267f7cbe0fd78933c81302527cf735ed018d9823424f542b9e50cacda1bc921f7dc93e00ad336f369ee6b64d9c13f1941f776d9a992e17c87f3b945c544d77a7f6f03721b95aa2c871b31a0fe940d905b0bee54737ce44d02c3a78cd949ac80eb53e97faa1f76a1c1ecf74d7eee397dad8e92401cc3a062e9214f0f144dc9ceb9d502fa6275404670d3a233b2079f5ccf814ae27c0a019645d1aba4351ad159b2b7c192ef60c6e8728464525f73f98dd7bedb7ccc2ea1fbea1e4f15da178991b4373cd7a7f845d69db78d4554ed26fb767f13f0bcf6021bd85fba0808c1d6cfe7a551d9434d815e3145a6078646b674ac9dfd48bce5a4460210e9cf0aefb7fab3d5e78da2eb5552b7a4814d6d204dd6fb5a15098110189fd7cc4ae3c8bb88e911b19137a8cb991b108b167d90feae986074ece1299aad39b67d2ba47d7bf40a0a5f06e2277f68ffba085fe54858d3d5b6b6296a656ecc6a30478eabecb077752cec785f08ed91bbc764a2f590767497ac3f801c6dfbdb53246cca8d3dffa4b63fa18752f4001225ac472064e04a7ceb4229f11171225e96b78e3f2b9f76070eb3ba55961d5f394162cac5e51d2e6cc42a8545c02f3a71aeeccb44dffb1dcbc0d2336c9cf413e50bcc8710a080a5b767f5587c14a49c8865636cab0e10603b6c7fb08a76acfff9332684aeade0b5f054aa8028c6e65cb3a99be53a71fbaf4efdb9598d7cea1c4b2ae3cdd6641c4b7da18701105ce5e8bb9157a261347f52c03d94f07ef16eaf42652c5dd04069785e9e80b5f34e2ae16265376145529580161a538624ee837166e0f41ae5a6504e044190c9597e4c21b66d826084064184f1a43720bb5f7dbb765565b6dfbf8b5544c58f705eb2f44f93d44430e22f3bbd1b6be7c65a70410179732d01643cea3732fd55b5466585d78666fb4df6996ed98db6f38b427f6d07471f8da1925edc3a4bfe89088bb0df370a93b469db2b16eedc23556e2b63df7d1d13354796ccf4232021aca4b4413666cdbca418e13f9b0a72b2c06c6aae0228534198c9b6f8290ff629d90ad225f3d93b1e0'),
  ('\xc30d04070302a22c6f965848d3987cd2c244014302dd8cb8a8099fe8d5b4c20737f05fb1e43ce8fa316eb17ef4f29cee4cb7256943585aaf0c83408dad2309dbfb7fc96a0ccb424c66a39023b1c56aa58331ccc731415d102f5b95601a66bafc77d29b04196be2963dfb8af05fc918782629df9636f67c9cb731d086ef9f73eb2825cd7007254498df74bce6a58a9e175d08888287e7b6ab817c66412a90d7a4c8ed1d530c5be6fd94c7d1fdd237e1f8d4fe99f28d7fa27a21ec345ed199df93cb9d2347018646d881b2dcf005f963d7adb3183d61e53a6a4964db4aade5373598582f5b1ab28d9d4aac02efac1052310fb44a303b655fd1a3a8699eb31559c50cc84bf04ba2feede4f4636df07f4d3bbffe7529763a4dfb966edeab43057fba78b50c3a7ff7be5e4248cb65243221d1458689dee08157c411dbab1330cbf09dab32ab7fab59cbe88056232aec9e20820bbac45ee0fb9b16fcddfbf93eef47988642d65bc8133e620d3a58970479201dbe2b6f7a9a18a735519997bf65c7d848f8b04de32c8a50cee10514f7d17b9e686e5deddfe7afca9cf7ea2917b46313b16e0d4337140fa830412494aa357b24df73b43143419bec69a3867265b33952442bf82d2279a15a7dc4d450daf7c49d53a3eb02acb67ec3f7b64b6459173a5f53617cfae1d69d46c096d3155ed34d42f2f3b2d4da2da704c455016b991655cf3872ae2b08b94bd28580c8f18d80eaca18a235fb3e0a13e48f7179312c68a048389d469a57da62f8a013870faccd72ff7ee171921cf1bd43f4a572c00484734e059aea7959e0450facd0611bf0ec99d032cf0e14faaabed2ca11d5b1379da33ffd64d407b1562d77f9b031db351ab275a96858b37320ab132ea3f2d9128b2cee28e6c620705d5f99a699f527143ba2f37ca8fe39550106d7e95cf091363d47f49ecd8fa7afcb8b578d89a1e5ff8c0e82f0cad8c233ffd362bbeafd5fe1e3633ade3a3b60050ba06d4ba077fe371fe4f2b73aad91d9d8fc8724460b00c1e738632bc695ddb3fc0485120ab8fc2196ed91721d9a9ba64873c218914aeb9db1a337df4f6e6d9f77578ef4150e51c1d4827dfcef3bb38a8685'),
  ('\xc30d04070302f1ff4db7909782fe7dd2c1ff0110a068b07a5c4b8ce39f121d2576eb7c0ecaa47bc76d80d620f956b7c1a4658e1f9b2626882cf1041cb236590e5e24550bf0b2b8b80b1b3b2eb98e62b669a4652bc5c2520b76d4806856f57126296bf6852ca226cc31406d06498cc47d5f9cc47e47bf3bdcd7fabcd0efe8f15cd60a4f6e75d7d9084585055a08799bc84939a1deeeecf863c21e11e10d4ca02df5d7d297d50a6f0d978b3f91af03aaeb7a3a1df3bc0b0efb002d6907ced6d164ad8d556cca7f74a7a742f56060d09b4aa4ecad74244633b46163743e1b6a08c9bb6f13bb583ec6a2d54473bad5e0bb8b2b2f2d7ec6a9606526f178881957de5cce1be289c321ac118ce3d89e88bd9ac0542ec07d4d2dd6cce54c4a7dcc024a4c0a25d6664fbf322ae848cc2a1c62f2eb6571caa0aaa8fd4d34ba04a6f08373261a6810393a93c2fca3f49a2ce2ae9593a4f741348d4500b11c09c8f75aff066d7edbc5cea0f5a30859048b6a54783cd90d37dee2ab976aee5ec16c470638bce7cc766129b20eaab2879ed73b09706bbc0ebd3c990c18ae1a43a7d487893736b440070207770197ba83f673778a0a2538489e6eac50cd94f88593fd5f6dbc04a7cd2c462b4f8b7fd0d575aba3e12e7f6a0f4f8da56210e71661f0a43cadca78be749ccdece94aa1996f374988e6db6d6d2c341f58cec57fbd31af295ae7aff1f0d7c86792b254b3a7f3c8401f7f0dc91a4cbd6a66b015768132fc22cf4c192db56d44ffe9ae8c43ce60cb01eff4f57ace49bc37618c1ab286f8ad605570ea7198089e2e8d4f4654060bf5c8f3b9f821ba2b18a20613112ae984727446a636898cc9374021e200a5d12021b4601597af4c934b0eb3558b4b97569e676d93ad6083987143077871cba3b8efc21cd7029af2ee9a90bb324a810fdaca83c21f171522d38285ced1885e9cd6c2e72f12d3a4afbc12fde3502adbfc87c234a6a143fb37c6084db041c727368553135a4592e4d48f'),
  ('\xc30d04070302f9359f96a9322af579d2c09a0163b5a89aec6d1486c26c7933e22a8283c3db9d42a7fb7b25a58d730f50279e3842a38f9b1a48362d45d1d9f6aefc67dda8534335c21e46b7e82d03bde53b1ca1b5a154ee531f8f629003f099c18036533e3aea87f433c7eb675c770ea9e73fd14f0595d3400aa1972615abfc2eaaf2d1df2092a5fb202b3ba8d1a136620bafaaa7308c62c1edf9767d8639eca3df8a751cba16b992bd3152db6bdaf8bea85f763f7d6a30a647bd691d8e71127cccd25eacb2aed42de1ed53b89590133fb5c3811fe2f1910e968e587add123ad6e421c452331db19d4084f16c833581d330a5865f6676adceb37a3b92de4d6f310aecdc888d6354cce03a7ebee025578770340c1a91742088c2dab466e332f417ac95f4ae04eaea94b50cb1d68ec0598430d0a3df861c3af870b6dc3985d03e9d98ab5c8533e11091d1071aa43fa3287adc033818959927e7ca1dbf44e3d901adeca3ce406e7e7f8d96f5718d'),
  ('\xc30d04070302a34d12467cdf9c8376d2c0060119c9b249c8746bb26ea27a40a2b11ae76f1bb5a1e9bb7d0c079d14fae7e29288302877eaf84296fefc64f9d1aea8d010d3d3ec0c5bf0c55820d12a8284c7a1daf97e86637bafb4be38aa53e6abda975d30ed9bdb2722b25c9d302c3c52481eaa5e0ba95e83c77c45bead2f5b92d999c5cfcb318c9e194fc33e46e0b148aedcc114be7e782a89035f82d6538ea0c45dc2ab94bb117a8639d1e7e017fb97a695970ebd529224e3fe1d919d82734964ebe07427780bd405f7d5c1e574b0425f6daabe91943780'),
  ('\xc30d04070302244de1c51b3a8cfd6ed2c25b01961c7316fc495a8cb9113c80cf801d014afcfe2203650a6e6a51e6fbf0f889c4169ba28cbe8319c15d6bd7c37f1e95475a1ffb319fc955b897a7ab4ce6936849195bd1aee292c8fa614ea0ba278f8e7493e2c7ac58429c738f26e188d2c11f72ec1561163512816ba92533bfb55c656dbedeecc2056d0605ee60cc536f76e18afbeb0e6f6351c59fa77144cf89a6523ce01e88cde4b3535256f81c104b9eb5a5dfb65c51e49b19bfa62903a5169cc7abde97bdcb2474b3b2a1b1f1dd5fb8f40699eb86232c3af015ae48ccceb7f5a699f80b58700ed1a888b47bd07228bd07dafffd3ecc641811ce42e5f943f23d6ffa4ea7781086230d73d12e9b9a4f64697fccbfebbc283531c42cc840f4394aa9ce8741d9bf20bd0e7d8ea8288d47cd7178d3ed68801a27360d8376609e2bc6c8c0aff72dc67cb7bf509b4d667cc159adbc167b6bd5f48ef14c810138be01b415eb30c75d1653cebaa9d01ae9e6c3a4ddc6233121423471b3d69d1f5d31563937308113754b7d8b8f37f8272bc2bc8f04a1994ff1f77c8c47c1c14b7fa56efcd9fd3bf0c5be853ffe5b4ffea88625a64cda8f8c4aaafbecc1da92a0dc2b5d497373f914a1521adcc6f23fb9cb2d13f99a394c436393a0f195b2b5b7398aa614ba9529c73b6c2c5d8ce3cc49b75c5e81e3f72cf7b9733fff96acb84930871a29654e06fb6e55197acab9dd97580b5029f17ac00dd1d73425769f05d0ead9ddc9b1db23e14adbb13e6ce2fcb9a8e90211c1a8c974fcc613d16d5e3aa3884164c5aaa725960f776952760f8913e586f2604809d47ba58d335bedbc0a91eb5b9f52539bcba4df794b269bc7890d05ca3242b7fa04dc7431ec8e7a9d03d24df06fb6e509d721f1e11e5acc23ae810390f7f6ff4595bff8d26e2960b79b4bf87118523c42d5a28d17f49e088c45242d44d546c41b9123c60f841ef0c457935672dd79bce466fcf14388f0ab99a201b0a59d7420a66f780429807aa684e06c0aee72449004a2a70d27a3b9d8051b95351c5a06263332958bb1026d14503447b870d6c18d435261ce5df4c7755941eebc996d16e010220b7f28db02a6b50ee266f3079d3429da32c30de2b354ed872f'),
  ('\xc30d040703027e9c513de4cb48ca75d2c27301382695e085c5b65cbb6b07b5c2cabb2f114e9403fcab74765c15a4a1b8d0d97dd9e8138b2d0aba993b2085ca1c064355deb006d9726eb99bb5c1f859607dcd127fc4031bde9873458ba5df94cc07fbf89930a808449ffdf5e70668ca1f510f8b7e455790342f81b8bb0dcb53b05fb7ca689ab08411392885c7d18c6f9a3fbfc47e7a81426e50e69f2edf6ee42abb801f8358358a9a996c6c694ccddec053699f73b1b0e17e03392aaa105b09733902022fdb659f33551c1ade3ec114f08e6cf38b9221a460e01ca1b7866bca238e1f2454d00cc0a6697cb8699a9a369b213a2a2314a6592188102848ffe271a392844dec54a25ed55698e53fba991a2e9d0cd869c24298812afcb9629f5f4ae68f1930cce82b1b4c26fad6c924335b42de6d0a8fc377178ae9091d0f1cfb613b8f7404d188bccb8f6bcb4992e98a975eead9442f346c4547885af444322ac3916d646bd60e4a10d567b55754d329bb22471015ecb0c73781ee87b4138887b4af1c8d74eb7c2e0a5139c006b8d7abf07052b5638308a4263be0a0d8095442b0c6862e657acea349df3ca3d2bd1d668dbe87b58c76517537810ca5d96be039faf116912963740179e46b589e1a194f398851c3e2ab49074bfe8ccdf7266e6fa213ae6b3b0eb300de643f322a85c24c0e5b9d64907824aa152fba429b0e3a69a6c750dcd44f888dc7ceb1234b3e6a7189d7ae37089ad759bed58a7b979da07ccc99ab6e70c7f13e2387e0cff8a5130257f5170239ef8b09bfbac1fbb65c1f4ac57d1a6195215040898a8b88bcf24c4c143725859f641f3bd5f1c323356cbd90eb08b92f1fd4ed575dd5745d5d06f17fc6fe42f2e9e5751b8998ecdc5de9ad64485e84f5cb2c8ee8bcdbbfb587a48f3a4dac9159f2cf5da9727c893f2bea6931eea577347b086c0660f5bfd533c18d077cecbd4711989ea00223694db403323ba6d0b9b2a5532ede63906d8e13e5a945032ec4409d32610ba351ae0686f566915359f35f67d564cb80cc4c68b2560411e4cf7fbd3d39c933dcea30f7f0017d7fa3ed0b87b15ea4abd937b58b35a390d9842a7b766db48773f9d88fa769a0e86bd8b9b7eb4dd3581e5009cc84242ba02ace2d44f6c60145dd8b117e96fe9a32c19d576e2f58e43f'),
  ('\xc30d040703022d7ba350b80a8c6d7cd2c21201b91a0d100854f3240de55089e9c7af09c255aca5319dd214310eaf818332f81951467fbb1bc7103e061c1d0d5eb4b8e5451f221c94a1a3e21b36905564b4f51eba785dfdfcc68d0123707715eb54072fb4e7818d9b8555d5883475689a4325a65b536f5736dd9f2643cecc28bae59b5cb1b8a9585882f10dc125325d8cee96579220e9c184dd0b39d1bc9838baa13eeb66fcdf3d59e549fe40b57782e2b8ea2a79eedb40afdfdba3de6a9c09c1937250079e189d89bccf4b35f2ed34d847d82a0e959e395d600ae9baae028cb37d02a8df51684c63a15588c01b022c2ecff360f5d932c83f8ff0f34cf7410b7ad2e8ddbc5c8d615acd3be85d690e4974f8407d61332b24e601007baa33d4b8b6f6796048a31806bf6d218c14fa5c678847fc3bf40bb7663d8925b2d6f0309685d70f4cdd5618caf01b801d44028b2ca7b9a786fea2b56556c9b25cbedf5df1657d013ed702327e328574635510a1994da3c6725693e4253c312c4b483ff3da649340bc53e7e3b20f0d744dbec6326f36e180dc6ce2cfb36ce90e0f098a395deee4b92169464b7986373831a1ff0862b236570f3fba30b610385d1e87db5530c7cd2375c9bb8cc42b96f56b6d42145b48a92529fad2906accb59e9456fb291a9c2caed11ee1a63a2e7805179eb7c74f2e4a422031aba821795d15bb10199d784725ede63451781d4566f39eaba9ad8dbc703e31500c5fdc3e1f15303d9bd1c437ebb305d86a4ef57a2bba17554e30129e3536fdd4f7df69fe3d1aa0a2fe333e631d1ebcb618f626c8a4790f14106f179417ff3eb075cf0cbd3abbe28c384dcb5f0e5144fc29a82208f037834908835efad67639bfffecd88214f3e98bebe84c86b6ee20b68d7a3e86d540d3b2b87ea7a8bd8be3157b72363b10b019384d44eab6ed762e4f211b2c1df18cfa4d67ee749917a1cfc0924acf25cf2148cddc2a6996881a50a64be8f5be41d92ed680bac1719e5961fe9f06db5d69fb000d43d0fe5796d09452'),
  ('\xc30d04070302dc021ea1d484f2b26cd2c047018ef13ecec7a53efe8225b71a0f6e32960786d8eacbbb0b9fe0e47ec19be95736e9c62d11513b7973ec1b3db26430a48842a35287413e7918509bf972445400b91f10676d843d58ec1a6b239c72c8eac556f4a781d6fcdf5b3dd4b1106d55fe6998600cc1028962b30fd397ba47fb32324b84c465599cd1742319fc9fae9834ffcea52e8593f6b9b43c4af55ae11987adb3936161210ebe58c628fb7e1933475b488d752669021069b28e07eea1bfbf326bb8b97ec748b70a0b179aa482e174f88bdc80c5a80b5d8d36505c033c60a73d903a8109d6077f5a4d977a27e5db4a83e7b52e9caa4ef2e4c12464dfe0f7e7f185c519f0b96de5fe2d62a3ef3eecac7fd3d5b7a0c017'),
  ('\xc30d04070302beb6931f9786bf2570d2c03b01455a412075f3e912d4b5be2d2b02893ea2b00b793b17c20b62c5b3244bdc610f5802e37947651cca2e07cfebeea34c2c90d41481a9bb12fa6a75022af798a5e9f083ee3d03cd7932821db620c7464203d946c43138942d989ede1c04c087be006e2170cf9cba9801dc01930ccec0af43fdf0eac26e2fa345a59ca8b2c3216a81e9ab72512c780ddcd6427bcc2b691252c3c79557a871f4ec1f67e1bb630a9b11807eb6db784a03e64d0e4184b7e7361552fa022adf83c789bd98221da83241edff53ea449b29be35244214d67ccb51d423eca28ccc69af120a76c4ec5a389faecc196fa2d880b861e4a47dcdedefeee7499c49e6e55a7a5ec4ea'),
  ('\xc30d04070302d9fba7635b4f34f877d2af0146a5cb18fe1c1bd9295e32e84b70ab4b761fcaf16ef6da50ee14be1d2837ca39ba5ccc4320bee00fede8680b6eb67bd9315e7c8e982702909f51396741c731758b1181fc872607469ad72a86b249363579d0fb4e779885386b8743fa3e6d996a6411a94226c48c5a0c90948dd5ea354cce9d2d13eb34412e1c068905a3cecc4eff6cb30552fd3af423e0067583d7ff23a521ba04572f8a539c3b3b7acb75ae7a2a97148099ed01a2757d09471639'),
  ('\xc30d04070302cc1e9690e75ab2e873d2ad0109724fc9c670e7b12e73f441c03078a4bc050f220a8dd8745f497ba5fbf4af4365d6d1e570d3eebf1f20974d7d5f48a988f2a61642a655ccd8894efeda642bb954d9736c29c3e78b32b4ef63d980d08a15cca94a2239f261c620dfc0b1491fad14354f20a379b020c587bc88625885ec476f43f1781435af4ade1edf219db41477b0709463a9c9b82c5b1782740e6128bef9504b26f4990741bfedf73ce99533a76e0c283684c55841b2062b'),
  ('\xc30d040703028c61a7855d3aa5756ed2c49701abaf493b46d680bc2de96c2501eef04c85216b971bdf91cf4e867a3ac229ee0867b37366d146a8d3a82ccd51f08985e61f9707346e6334920af7d1739328ec0a83964bfab1bc3e4a991fb2fde1d406f5e0acbf3b8b7065c60dfee05688534058cc6364710dabd0c41fbf21ff249d6d3a2986e190455a41c275ae224da7c01d30d5d543d490bf77f40d9f2a784c1a55d04ad96050affc0f0bec01ea1d5829ed6c60526ce59685875e2a5e64d4863c5e97294795ef558f3313b3835746ca62d5b121885610299b79dadf16198aabb4696b989d77e05848342447eac707ed76ea119f8f0ed87a689394cffc31a74a983b47d0a32e6fb553a0f36fb776437c0b3c3aa5587c3195a712384a766f6d4eb4af56e9e6034fcfa41eb0ad7850d530976ddc0629936a739ae729a7d5473ae38eeb647be80ae9b679567efeecd4bfb0442875ab69ca7c63a3d57f925c3de897b92009c2019587a35ed18178629fbcb2a9fb6b5a6fc4aae002e57741871dc5bca736841dd38a16f448c1daaa4013a8f900841f879f15a9e89021055f3cf7492b71e821cfbd5784c7bb772cd59fd17ab08a0ae7e58d62ab0bc5fcf1c81890d3a367aa9224172458680a8d67ad8b6883dca7f88c1ef5a15c72ab1ca5eebf0fab79acacaf60247f357b3109d29695091bb98385a5876e237759afc649b47c0f6be8365a2762384ec900cd5f71132ae0f637744baa08fbf014fcdb23f84274ab344d1be34d2767c213dee13c2c81e498778495822ccd71a0f8097fb3fa8b1a07499385095bff8e195f366a11b0fefaa6f89bb759fc82b3b4b5be5c2d3bf6fb7ebabb4a4e041955ec2b4cfa5833c9d51fbd8cc931f65b8a05eda3be73f26b7707f1971cc3ed69743075af2b0fb9db27b67cc39969427447fc17990f6debdd8c89add646d3440a9d609e31088eb674830979e458d29804ab18cf1d740f77a2db3e95603e03fc5d40fb02cb3a8602aae2629249315443cdf41fbb67d91efe873d6a92ba7163b10bb062dbe7201ca587ef6d969f706124ec129861de55e58254ec36fa20ce6149354351d9dc05a1f5385e52d5538264875eb89b5b090481636061d5348d8e0dd309681bf79a036484f19ec6e035b993995422ad190cbbe894f4a3037b0797480839b502b59bfebd245eac627d95725e4221e37a070a9ef9ef11a27e2a1c323b17dbf10d5fa6e3d1fee22ba2dc3ffeaf34713f303f59d00bf0b82f7a9ffcd4200da196f9170211786c45eecb19ca16558c88cf9dfaf6470020363cdcb279d92a1559cb4f99ab6f6e8f9c1f7074bdf734aca9e505297f060fb7919aabb218890bfac4db23606ea042647f6a006dad8a542cab08806aa888317dc80d5bf1bdb19dac0505985fb7c12a1690517c2fb9a50009b451b45e5a40039bbe32a42692341abe8b54d1d459a371b519c778460f613ad92de98afe4cfc88ac7f447d4fe6d2e7429330cd173edcc4253859639e6a363892164a16ac1abb8b653d9a487f71165e6253ba11a377ac0936cc492e482794f291f88632ef763a92cfb2bc3025e47a071a5c99a9ace0856fc1968002cdeab67b3fe3776bdf07f19e86f0efae200d57827783ab67398f8efdc64d3cf6618f80312996dbc3641aa7eb86ca8f4ca0db508ece0819dc2b08530dbb8883e884716e2fab37161c1050159f30aa4b8015404e3290322f34d51ad726152a5973a1f838b28419499fb8f260034df028d42eeaeb29161c2f4e934b048b6b190c4ba85336b68a2a83ca86c9540d10583ff2768c69fa0a0bb2196f7b2ac5b61d42a2dd97a8193487c5b36511b83dbb6ecb86d0778f4d6a66b2a443fa9d6bad7cc313066f80c5771bc77318cfbabab3a0ad3e52bb67eb690b3865be20a6b27c3b17c9996a9d35232caba8af8b908f203724b0b351f1f38ea5ced371fa50'),
  ('\xc30d0407030212c597ff00ce83e36dd2c28a01376d8c814d4c9fe98369a918549d6db0ca11b58425af9f3029ee8e35f8487067ed95907b5d6166b4301269a1e1066734aad0b9b45e5df2dd3caf0d09fc85d6f364377dff965068c3dd53cedf2d533483265bd741d9037720872e4b94a30d59439786ffa99f4531ccd0b22fa1249bcb3ea7ffc762d0b1d5b74e486a895f090f42afaa870d6f3979dc56e972d65559c4154baf58541bf0a0bde89d1458b81ef1bdd5eff25c60b467d4af77a15ff382b5b538e2d2a8cb4ba6a9c85e85661ef28ffe78ed4cc45c481b5fbba7b164727092baa4378ad0bae81d91a430d84f570ed84c454ecf1fba7dcfb7ddb4eec7e4203df365314cfde3db7e8c76ca606edb672416eeac8428b752d9d34d08aa1d554881458e5e6d125aea794de48f84415a7f90cfa63d734466148dbf703b3de6047ec731d53de4c7025a0230f850501237add548a7a8cd52e201c78778a1b5535b3ba7725dfbef6f3aad57e4411190ed6c1a36db6d1faf660fbbf828ef1b3ca5f47652e46861ee0b77e78dca56015ccdfb8b111aa4da67fa0b514e108f40805dea78eed77e4e4a354763e98ad004d9b16a4c58241d77630ed2f5cb0b5092ac9cbe014b546062123ba1ac202ab47b33c99cad93b86ddeab951e01a23ffc7c1bd6c2ce555087a171144b1c0ed90ba95a4fd0e73ee6e7d047957a96388559dbf990cf00622efb4eacbc21322265a81f8c1202dbb8ee88e58566a7d110ad744658523a2ca8e8b155f766a5dd844b61d2fcd1424f07db3f163bd87b473a3005f2a23860b8124c7134c2c9bb74f27e73600e901143cc1c58646236ed1fed0cbc82d84ed16766f46cd03f1befecbcad881c46b422bb45b2e38903b7ca97754ad9332ffe3b521e73ec7419bb9fc56cdcca0898507edfd1b4d2631ba492719a708530cde3f53320090c35a25c0843dbb3fac9d3eb2b49108455a424b4779b163c5eac9f4d7b4a2a3b1c051bde3f58dcd52e8e0b37a5c5f1b8df0bf191b445efdf922a0205a12f79030cb853deb719e33a4393eb250f927c6d3619fe8cb4975dfac89f3220ec2ed36ce4dcdf775aa1e82d5298dda4eb20054a666c88f453965a0709847de3920ac6a3c3b05e8f85fdf9b0867529f7dbc4d1600172580dc73aa94bace289d14fbec212c2862ccb2af6a3058121cef7e82d6b8783de8a619f1db054c6'),
  ('\xc30d040703025ebf62bd5c6e6cd362d2c00801db6574a8a970c8a956b8e9a4e8aba3bc512de3c3f8ea8f902022c6a4fa01aa1d52cd76f44e98c2152f757a76e239c7a9cb48bcefd878b70722973cf692de7ee15206305b34bbf19419b175177bf1b71073dd108f8b4f86448093b529faab0eb8cf19c754576f427f5701ecd4b6b58ec5253fbac3554942495021f101e9fd00c654a2981bf762084e3b12642466ea939ab91ac9d8173ba5598e4695adea6f21ca9300c617870cba72421a20450a2048ec37f31fc74ef405c00c0a5bb5b8329faca207ae98453ab1'),
  ('\xc30d04070302c57064873162718e70d2c0080194b6ba3cd028fd82d6f2d2942c39fe6000281e7f25ad19d8a9cfce288290d24b7d1c62e0384393fea035af9035fccd53b04f8eefce1fb865ce6ec0373bf3e19592d01fe4a31692ede80e47e8da65345756ba5d11aeb741c6167330bb5bfb2f75a3d8a89d9b8ddb6435d1f2897f97c64ec229f6c6f7cd21deda8e12ad3981996b8f95d83dc86bb3497b948c8a7540e43b24d2946ba22d5a47da33d012198b13a9af6b549686f6f5fa9f45ee56c40385df304895fa0bc312ca6ffd6bd3c863ab1099efc327536e3e'),
  ('\xc30d0407030254e6ae498a40e0b569d2c00801c12327169ea3a15b94c2c81ef8eafe39d525a9499d62f489e6e5ccd45b4e323ebf9064f8f061608b8718ef1e0a6f6c789c9575a3aa120da01304a5a6c21b68b60ad11fa4bd175ead0d36d699021d83f4890b97bbd9cc3017f32a482295c6e8d01095dab7b50d0893aef15cbcb00afa817738c36308fa3de4fe97fab960fe0417ec8aea7bfe3f83bd9a2e7531d72b7d65379599ff69df0fa3b3ac3ab806bd2594ef1e593b55380d0d1dd7f5ae0cb1599f8e5fa746abc8fa13a750f8678b743164288605cc722036'),
  ('\xc30d0407030219fed87e15eaf8b37bd2c20901ae4863b7e59d9c20f355768a095e1765684dbb246c5a8f0b10fced94c1decbaaa1006d1945cc0c472aca1069523bac7ee258d4f947c2ccbd0c8263c5b12e960551fcea4584a7790cc4ed7e33c5fa87c003ab4533e970e53d7897a5e80d98774b708843e751bc4fed8975c9530a431532c3174efca5704a35e5890cc8ccc9c8c7d81e357a3d2f6ebfb8fd3d4103fbdb58674498ae0aac03949c457d03e4f3495187859b89d2077434cbc456b81f6e5e707f377627b6b3fc0af34835bf4c1c63825255f71e2238f6328813f93481a5ce0e2b0a360b595a07ebecc5861f0c7c1b756d3eb69a5e64dc432d271d11fe14a4dcc37496a899f144cb9cfa85dc05143474b970dc31608fc7312cd403faeec678bfeb937efeb2b8ae65e3a3deeffa68dd7b55eb67ea4ee42bc49c01f9067aa899b4db462eacae41d4042f76466522fdf13d28c406499b447c44624f8accdd4358065ef432c5af235042b1811de0b70874d7ed7133d7e3852f33e0a283e077f40a1f3390e51c1468e852c7806661607d3b6a118fd841b78a44dfe1bf9a4a7a318d2b767144753eba68e144b2b88ebfff20704b2551edce4e0d1fdd60ae9eadd2c5543a693fa4876aa8c35f5713fbba4ea4231e6ae5416f7c149facfe4c3656bce3e21fa3b374a14d7f9c52aec74eca0f990993cd331a3a28b60c1ac2f4c264c0b1e8024d67cd96b8d126b3de0d6decb181bedcdb722e93f7e485f987afcd113ba7f6166dfe28944b05cd14c3467a3fd163eed1ffd3c9150b151ec21319a66155cfe9393ba6825914615743e28de954dbc3b9e58662d96635188a881a78fd518221fd7ad63e10871096d168d850f73b408ec2af59c43bac9c90fef25feca07531ee16bbf94b8f776913de019c715b7dbe6c895346da34a4118b9c72bb93ed3d98bb6fd28c29a513dcabfca9d52b4fa01bc6ea86a62d7bf92a6a6ee59c51c95abf68b27c4ee88dad82e6205d4b6f22f53eb9683237b3c602ba863e'),
  ('\xc30d040703029b884c74454e653d7ed2c20801564d6555ebc4814af76beb155946673fd628b3f0f401c03006d452f1154532537a7d935d94a53373504d58eec8581582c516352019004a2e847ce2075fd8d64f96e78471e51680c22afa93b087d1f26dd023c1a773b63c4e9eeae722342700e5338ffcabbfde59e7ff991d43785576b7bf7dd98d0eafde502ef2bacc9f34d57415a40cb11655ca3f895e147be6430f6e05556c20fe4bc1cac0a3f241ad9e390a58d242e30ba61ca73f9ef712c6b1b285ae6d773d4ade7dc949be1df2e884b066c8c31e18e693f86f99e45b7c902d2c0580c1740230f6b3e785823f3a6c5a918f885b6348200b16669d45f59c2dcffa9d525dca4783afabb3c5d3369cd067eaa071e9f9621925c587260b01da0fdaf7eea2c8cecebc2a8169da189b856f036b2a842358f459291e5f5ce2b9df146632c9184577b5b7f0061369be3b6db49c8a91c87607ff8600707c01af182bc6af5ac1d041d2176a1b07cfef1606d6b67e0a822a10c2697b65382f3d18b6e8f5ebbaed3d02ded15df934adca45e6dcf28687780c0ee088478adb5606d615b86aa0c4f2adeb7ea1d8a2cbb521696fdf3156ad298a9173ce3a81cae0d959f9ce5bc22506e3ffa9febf4bc977e405dc5f5c12fd2c642f2b006853d5abfa997f79ab5de943f954750b5e7fdbda06f1a63c99a3c23eebc0939aa89c5770318834d764e8c837862e6a3c260374d05304112727f510ca1cc54949eec058de3584b34301305780e5226fa1cf9464512f1c15bc615473b0cd09494981bbcae91a55577141c910176c8dcdd7da8d5c7ccc7aa78252beac5df7cf273d2cf01b9237c7061069dc4f38ee332060c013c61b928501ce92dd3458a2622df5c92dc1b21157d1d32989623c1417f969dfd548daa92109c54a301d68ce1f66ffef642e80c398e5deb097916a9ed094e35ac91f918d0178c9f0634c771a713bcc336118a241b6438852a26e8fd726931a63e29531867e84c5c0691430fe1f96e2f0c7f4'),
  ('\xc30d04070302a8ddf6adaf76e0986ad2c2d2011d1727a1bf175b929860faeb7e96d12b17efab39d662e940070b90d8e7ddf92019295e280531e003b754819c7aefd91d91bfe3036a5e1d8f648b4155252ed324ba3715e2891970558da2ed620263e9354c27d07c1d2a8b36e40b58fefcbd58cbb294ad437ef51786366c547209d256f7fc93dda3f69394b4929d6e3f58eef990cd1820b806e40694013db5687f6b539c72c98fc9d55ea4d67c616f7637b5c9da97c077ffe75208fa820e57c6a7d7226eee927d85e4d04dc3a50d18aa392514a0bcca282bc1a7a1d87d85d4effbf6f4164f2d0b55fd9cff9247aaaa6a6b270a29cb65f429f745c41e9566222ad5734ae7dd1871a94abc63d931c3b0f42434ae0253a1b493e90c07c022573d613f35d4463fd6fa0e56ce7d4c1c4286509a30cfb1589b77b815fea1490dd941c59ad78f992d5f22cd98050f8bb1a272b577d68c18adfc3dce4639e6a0d9b82517cc53aa3aa517148398938299ad7d203107e9702a3aa0b1ab56fdc9b4593b07cf6e766fac0db0f2b4988413759193a0edf636a3959c72d413b0c569ed72a2cb6090c00478ac79433a2b6dde0fcb05772946225559615eb6082a2817042b5af1774802b5f105d998d9baa8b88785ca098ee68a8717faa31a9eef96f5251c852d4a099383e8f3cae8a0ee3a1582a84cd32d61e61e999b620d3f700a9371aa898bfee85c19600b20b9df5950d8b7f59d6d960b59ae6db8ba7273c0f18219784fb3ea6c0f75ace6c7bf1c78d727bc75475ebfb479a54b2fdd40ccc5f2a9a3b1b7b647dc2a2a8b64c6a5b728fdd9853d867ff91e5589517d1f0efad3425392fa0be0264a4c8c1fc35eb7e43f80143cc3291a31278078ad16f1448dfb031db5f336c3c916f28be66763b42e30f524ad9891b6c2523b0fab74adbdeb76b3fe765564fed6e671373e627081df3f427006ca1f9ad7fd434e5b9be38989fca3760c461e2c61ef3c584da909f93cd1a03af707eede4077d5262b93c79d37e6082ac16e9c3f05f6bab0f0162b10b6d29345ee8572c8b1c0fffcd0271094579db2395f7efd9dcb0d7b8971265654859788628229105f637312d7150810754e8191d97ebb34441a7f0e6907649e0beb356682a86a2051a10028ce454d970b212f3de40f220a5ac609bf2bc093c04879ad7f9e0da7c674acda1eec2a72109cc2980d98e27b9c4faff5dd779a842bcc1c1fb7473483fc690a3441e93abe93d1256c2fea5c88035018b2efb0ae6e20a23439aaeafdbbb8bd8321577ef0ff778ac1633d188ac1b361bbf609e77217'),
  ('\xc30d04070302a3ecda299052d6116fd2c2d20180e11dd9b846bba4924f538a7095de624316a7fe3d8691865dad052a09e1eb1ff7d78ad5826db02bcfc1f98c602af050fe62469eecf2a95cafc96549677e555fb6ca0f00c7b9be776e564f64ae1515653cd4585b3377282d49b261db9dd5ac5e1ab24d1dffa8f6890eb3c06ff7040833a2bf395ed34c3bd547b1c606795c27aa038ca900ddbc274cd1cea4a950e81cafa51db303551e76e88d0a26a42f0beeacde5949a3956d4f0a2c4350454ece136ab9dd77854cfb6f0515e7c0ab9657d71967a7ba61f402ec1d8329327735b6d814fb7183334a132bff94f68caeee5c7840dce12e96ed01b4f98cd4f927d785d1a7728c83f206266d1ee7202c65c03d562ef82ee401532541b8acc55d5ea55ea62dbda58b6db2c5610f50bde82058b75aa29500931410c7c32aea1726a0689ab983ecc792c3552a7e30c9da7a5afc2dfe992bf8af381f47d7a338d55dac092faeca4a42fdf412361ace985f371d3dad4a91f0ec5ac7612f46d74b9618e8d8801eead6accd3dad756f224e17904e0286fa0ae78cde74bc81bd98634ef8550f06293a8877c14392f448cf681dc6b9ee9511f2a13ac0dcdd168db6942310137a768b3e72cfdc31afcc936c64192caa26ce3fa21d4e542e329c5591b017cf38b7c8344609acd66daf27a12f8992637872a1077005b1af6b4a2567a0dfe8c492a84dc59b5bf8a9822e822196d085cd3fed11dc086182bfc387045f0be985c3d38c096e816f94c6e0b61d593e7586c0af1b9bf2f6d690a3a25db594a181a1c5d0ca7d5d1e0316455d809fac7862108961d2897b542877b05736f16787c8926b58a46ebf4a76a624d0daa3d4f41a919b80fa6cb8cbf5209138335bb78de16341098f8290a25820ffd180f33f30153b8ee19219be1e530b3a273c49e2c1f379fe47f206f150e79dfefe23a5cde664f9339dff645be0e10596b7a715dd2ba90c4769eccd9428a2443c17be53c3b831adf1f65af6eedba78ad80afa01d3f74c9b51b86cbbcc8682d68ce88edba13e5021f2a860decbb30e3282bcb4c39057efdcf1ffbe8edc9884d2ddee9098b2000ca488c0825e97de4f184b18ffa1b80972cc77ec1ce244245d1e03fe7b171f9779a386e0d0b1b3be1e433af91696d93777ebee3c02cfb05517d999a04af2f63e05bea9a790d231806165e03e8a44a8f01e5b8e9f8dd3fd061613af304825e0f504c3f678a07e291177b9f471a23b93171d45afcbbc34ac14363be653c391d748143d479322c9c8c905856125c64f9e390488eabd8e6c804737'),
  ('\xc30d04070302186850cd2d842efd62d2c31101f0b07b5f8f39bc1d3812dc3353019e7a0166d9db26075c8de5f0f004382500ee39553a971bad16cce79ddbfaf9545de4ea4514bbe2cdb5c530c9d5e577427fc9309a1813411254662a592f632c790f8a3b08cfc3a59a6633aa97f12debf3266c7cbb076fdbbdaa823595a53879d35c271e025aba29e7d8eba0984d29ade9acd1765e2ab3808edc000536acdcce92dac48eb5359e9d7ab07d183d060abb554de155430ae88e4e853c43ca3cceb6462b1a3c7d147371727a569c612566379e42b505992125447f37007ff9d7f0905931de607a237b6db459af674c7a8029715873797aae28c9f861aadab8d6dd130898d4332f2cc08c6b766f05d96b705a2ea2da2e07092965a99c59d2768defbd5d7256a0aaa868a6576ae80a0e804622218de42ee84bf14edef66fd85e2a6faff2e7f353f089bc0283e5b4d3b52169361fe5405e27348fa8fd278f7eda4b685637bcae6c198928c88ac3467a9ba20e2826dbfcaf12197b634b5cdbe487e5059a131dd50b00c7766326308c6c5aaafabffb3c8f5273521e4e00480cde386d2f8f40f6c20d6fcb40f33e4995c7fbe28387e1fbe9ed601aa7bb6f84fcdc2d5393e2e01236bb4d806ec723018f93f8292e909ffe22cade575d70bd922ead94431362053472cba47f125779edab2bbdabf1ff8c086aaf48b2871103e0e7b8c169ebd0901e345f73b42d9b58caec8d96c18f9b39d51cacc5d79648d7dad92ce7e74c35854d3a36c475fe8b5b1237b61f3a31149c4d0c8779bea2272a55cd0fe68fb16d80a19e7f898f2acf8db83e23c19a682b30eefe409afeeb9e690c344aa7b8f04e2056e3aadcade67bec9a57894a4cdfc2b476ded71fa1b6a917906ff366bad60d7e3b431a9212a1180b5b7fc7bce2b82622cdf7a22442097acf9caf9244029e64f54ce91cf2431aa563036d721c544985bbcbc271283502cdfe144d05c0f54cf6cdfd1c2d41d40b596dc8303670e176feb8f1bc36c47485b6e72cf35584fac5ae6d366017590b843c941a14007f76357e3d1a911c2951c91c709921402d215f6b690d4928ca0ce002819bce5dee3696b46ce1cea59d19b0917f56f836179a160a45c20ebb9c980fe756dddc1aa878840b4db9a577d0ce09bd3e3eef2e6e3827522bd001f2fbf33e3608cead09d759454b66739661e33f889aa14885fd4bee90f27332088479513e7728a7deff386b2f1046a4700a7d51443db1084b297f36af2966925fa4bd360330b647a131a23c28574985e5267ff977e18570ef1a0b5eb9e7db9acf1681c75755352abc338b483006ae60295c63cd1d4bcda9043885fe1773564c94d625296a0dfbb5f00b0dc38f3686b6d19441f3d2f2a87bc0e6908a8440634f91'),
  ('\xc30d040703029202bd3cc74a1ad57cd2b101df4fc498303ddd027b35c8b18def4adfb084806b47c65ecb4fa9a9bda7c3d1292481a73465dd14ab5ac3222a9f194caf53c07a6679a2e4978fe626e6285cf23e318f45a9577ac348efdf5bd51439913f589c50f465808d7d0d0d452856ac445300344ac8bbdc1c0f2fba586722139f5a1dfeb2c75891bcab84d951bf2e67a8e50654536f0a93c0152a9473ec5c5cb0531725f9f8443150828a776e633d3c218a69c97667d76138ce01619ae0641018fd'),
  ('\xc30d04070302a7c3de37e28145b87bd2ae01248a40b820e9849367b352f953633f579689d60d273a2140f2867d92175ad885df6dbe6b1d339ca5580286e30a19272dbea1281907569ba71a4c2ab46fbcd4f57e75c11a9f5f63e8b67b11ccf42d8911f6ac2d574cff14d59f51b85ea690e44202e6c2576d8ee9438050b938c3f842e0338541784525d157b4c0ebb4e76f575edee8bfbe58a3a6e4fb07a5a218cf34b17b0d83979e7bcbd1d7edc6fe02fda58e057b9900c3774249e6b6f06e01'),
  ('\xc30d04070302c0d79aa6c9595f3060d2c3eb01ea5d0aba0b74ab51ca29dfdd9fe091301c692540543bada844f12ac4607ae154b9b7cb8daf61bf665936c92ff119df0ae8edf94b4ea8d0a163a9de3c5adfeb3af6614f75bc7c33c98540866b15d9d9a14f53d2c99d8323f0c895311992d2d64c675d16b9264d462a822719e7d4ed02d2b03971cfd7b018d532fd26b7eae5a494a88f6ad84195abea99ef56462951cf2e137abdf2e53e0a4414a8207b010d7d826dc7ee7b05636eafff3b7dfc9446c1ba0edaa9551358a1e6526fbd67629bb8099c8c0453283eec10d315f5f174efb96d1bd42b73a1942d12b67a0bec580c7191f5d3f0835f1adb8df0ed78ad5bfbffa73afb5ee20bcdeff0e8b5b3a7b814f0ecb81516497e0e50e24dc57fee3d9d8ddf422740ffcdfd5b2be5ba210c3a9483eb7880d7b2af14812cf61f23ab864352be158aa9229aa762b832567965a8a4de9239a356c5b5dee8b483f58da1c8a9254c60f611c5bcd6a2863ee12b64db661a3629a7a4a246e1336e47752be55e9063e1a069b7b6fd69b5d334099cf65e4988c2d3fa923c9493b80fe0ffc3bf8ef6da52ff4ef40ae86e7b2ba27151c3ba76b8de59923a7054f9c6f395812f085b1e5e081137b22f5971f48fc210c7a0036b1e403be43ce57661029139e974424b8920e65b7adec4bfc72c066060e069b3fec1681ed9cc72a7170dc3555c6fbbc9c3e5c7d9104f59b85b230ce1863494ecc98e5cae8d30b1d08ed394ae1898cacb937fd92e05422e100fd4563bc14c2d7f5ee02a6c7f2c65c702d3114d201b67c6b23c505339ad643ad662353d524f228455c7fcaaa980de46df1e505ed851990f140714688c80dd833c50558b03a47896dceacd6372b21638a8d968298f7fc6b03e68ff07d6341bd9f73882f7a3f1b400fe386309d74ff7981328a0bc78aae6bcd3e80cca4313cd867e49fad524854a55fbc295667f23b601471f8768916cb2908b760308355b41f88e4182588e5da7e9fe748cd28e832ff3e0ffd06522bcc361fda061799b15dd802b128f2a9ea9416eafa2b3a809f0d4af1030c7ac537ed29e5973afab8948e6d886392186bdd2e5f219108d692edafae6676ad4d81740f31c09c933f25076b3f6716d76a3774b23c1563bcc5daae1d3bcfeca3c2f60d7aa99c684494874667a92b583481ff3fdc6c1422ce53076afa52ab6f5d7385e68be07796d958a55a28bc9bf01e799dde281d8481a733bc2839caed26e7803129523d1e84bc0206f92eb870367d6a94666b23e03ae5095f71f6c542889ad6506b61c9fcf8ebad20e5e204ece9f4ca4863d1e1bb0957130ce4dfd36f79ad6c4dddba48f6d0ee6af6c0d65db1d6b5a74e4be35aac36ce80eaf9b985879c826c7629762f64cd320c77373f0198ddaac10594aff3301b699c2469600afb058776a2fd30ae2248acbbc428efb9501a03d9a5398753dfeccdd8c6e04fb8cba34e9808a935e5d26791d7c3f6240b7584c8eb43dfd1ec4c482db490788941ff30227f85da4a0d9ae178af425429befdf5dbc0ca7f2bf67982bf2c0353976cce5141ffaf297882bf3940fd19c7e666c489ecd812e9029f192ec7afaaa8bcb92f437f6df72a88d54b53f0d61aaf611285ab9f34ac7838d01e1e4c485545462bb7e3ed5389b230435f1fa2dcdc605e40d71bd7f52151dad911d0002e278f9db667d1f78e0c2'),
  ('\xc30d04070302a5b7b5c73aaf3bed76d2bf01a6f366c1cd1412aa2c3298ef7a9f22a1b9af62447794acdf8551fa4f6a45dac7e81390f04fdf88367c3ff278fb1c2d129744e773e5c40a36051fe11c7605d5ac5b8b820cce214a7c1d47ccfc9bd516ffca9cfabaff70689930c72b662812d8d822a973be1dfdd707c3c2b8485cd877f53b8a947392c0c01b0240a30e07d8e00023509e4610008d7410a92f60917d6a89505019c01512b6985694f150b5c3b646fee7297a3f3097b0d92bc2bc07ab2b5725a2f51dc6fa1fe2470c9d1a6dad'),
  ('\xc30d04070302c58212223c3ea4a168d2b801a4acf91be8c4807489c218783ec78ed4f22d1e6b9212a0cf95343d5f906637cfc6e189b37ce97bf79f2688d5644f4937c37ed33387463120a0cc94bf5ed94876ee051ff253a9ff6645dd3f1288cfa385a6f3b018f5d4851045ce082a4c1e2a9bdb033187c172a8ffad59010a49bdd5d264bc12c68eea1b668089296b448382c23b10c237a9cb31b753696caf72d0cd36f31a678873fb8397cc1211d2d1086a1c13ed05162e3c7f771848291d13f538638bc31311deb612'),
  ('\xc30d040703026a612f3eed2ef59e7cd2b501221fc45b1fea4a0155f8c623b085bc638cf6100d52a653fc474b6d2aa264284628724a0e5c25d1bc8cb0af1dbdfda8676de865b22709c02d4fa132b349351480bcad5021b592097ba47ba039841a0a2d40bce3858c7b19e74f4b5ff0820056ed42565adf393c47316d6afa8598be12cc9867c07872ce6b0ae002c70c90bdddcab57c269a50ad40f395dfe09e174850bb4c5f6cf6eac9976504c46417c3bc97bb2b68b1f333170c44772bfaa095402ffd6369daaa'),
  ('\xc30d04070302ac518060f2a354e166d2c372014cd80415b4655e285a2b0ef3f977067bbc6f77d2438e72ccfa2ba4bbc0838c5e5e67dd5721036d604b5f39d55bd31dbab1ba20de9943c1002d8c83f34e06d37492a3b148840241d82231d1f3ea19130c9dcef11a2fe2374fd7e96a23d6425b2b767f786416bb8f428db39f35e369a22f9ea04473a1aeaccd44901c219f44cf16ebece153271af266e77e5dd0d033d06569930ed000b558b11bbd8570c8b1f1610a9f0479d9356c02a1124aff9d44e15a05ce55bbcf379492d54e8506e166ae826f9d88088b58ba07c05f16461d1dfcdc3328e7726fc63e9e30356296b495514a92f9b04e35f35575b8a2aba32f2d4de235cd9da87b745a03bde0ef7ad45c9ccf80a4031e08a55f872f1d626f2f9ada22326fb715206695dedfc97e9c37dff8ef09bec38968199ccf9bb2b434cabdc6db0ab92810095d0fd1720a4cf5ffe3499150450c88d500cbc3270d3860f5cba70e0179a1364f30d86876f200c7bae13a59d627318c958fc16cf404dcd72301512a5b7fc3dfbea796fe049f617791b94bd43e54c06f3c9bac2e24402a2b389d847f554ed1eeedf8b34ca0fc345723e7cc8e7cd2076a15d2aa1d3c4807c3e4a18d5514643c4c9a68de36101d765c8a853663d06676353c7950d504ef1d714b0f6e4a113f3699d5d225faedc36c163ee1736c057d8adf186c416ad5865623f992e16ab23d7cf8f707aca0bf542081aad4506dc16b741326b1b1c79a3b65143f7758ff529afa20367dc41a0794492a0b4ad75098e69d493b11b004b3cbef53b0c3999889d0ce7042d1dba4b09e50e9c3401fb97418ec7f0ad014da8c075ec64bb96cfd5a0c6979cd613f112b0c5037cd11b45872d2ccc593ad987850585348a4033d7f3697d36cb6fec33720b66913907a4f62e3d68cb2ad95e45e44cc9531948b171a6dc7480bd00b406f60ecdc394c6c967eddfff5801724d5145492307180cbae052951e57c83f4bf2e9e24f02e7efd405a432e935010ba65b58061b60e7f59ee06c5cbabf638610d3613d5c1852b41126837ec6b3389c3a5237e900a6d99ee40082f59742a61c549c4a77c2178026e28b9b985924e15d327eb1625c9822065c07907f5c8e9a725a68f2f14bcc4a2c98a6a8448d82a184fad08d120c1835910973d20176fc626944cc58e83af50907d207d49ab55330a0be91adfbb5b84605233f92455cfc16e7ca9342400760740ab43a0b6c335bc4f1a918cb59aaf1e1271de49c2bc50c0254d73addd0c99fee39fb9878f8586b4221feaaf1928f0c75576546fccf92ecb248493944246cd1926703bd23155bb64730e363696386f60ad2217f2e47321fa7e2f6b562d9839a1f009613a6d3610464f644b8ae8a7e13b853f03f845bc7f090ea2f04d8a5c396ff2dcb3eb6a46f9f952b248d69d5aed074ae2488f9014858f4d0007e82321ee65c6c0cce38e1c2ea470040ae0feb62d5556843faa88c6f65340b18fe3e5b8383e88642a0210c330fff0fab26eebb75fadf74818b333'),
  ('\xc30d04070302f7b18ed92d8bfb027cd2c272019c2fea163d8beec7cda2f726e86a99077e69dd5e940438c30cb7e55aa0944542f4245d948e6142fcc616c1f2c0ff5add1473c78c6202a208456b2e09d5c52b9db0882458fc33a231174b89b3f25847c69276322ab2c631f6f9771c311ec5b4e592bc72601afd1fec63d2f703c90b5d2bbc40abd1f9ddec6f2004f24be533cd18a154027fb29e1c489d6971fdc89d8b5162c7a9f1b833c463ea429a9a9a9f251ff90c198c239e53dfe3c03beb944358c51b433cf3ef7e58ad3b032fcddfe86080cbb8f9efc1077068a36609ec48031889aef16800d070f60c3999fbfd1679518bf36728842fbcc4b89179842e96c2f51fedfe50c0b5196c646d60f92a9831d22eae9394a5b54ce4747101b456112d1415359e2cf823eb69cf51824bd8c929f828b28ca5ba2180babc989cfe4f0aec717696e6c8512133e7407a61700ac8fbcfe834183c704212aaa21dac0734d8b97a75da43571f4fc71939209ce9ffc004c443e030972e6dda1f0d0f4c77d5d87b85a106dbd0ac9ffbbddf68d3a74b818e17beb6d87cc0887c6d6399427e3e19beee94354309fe60f255b78ea4acf41e69755fe62a7e4a8f226b7d7da34af0ac60692a0477d2f08ef08695f8cc4273371b8f346219b4ca3da18ed88ab9658f655089d7caa17ba8f652c98b1a48fe055af422bedcd882571372a36bd1f9612b44f237749cc71032031f546cb4e4d820cf9853c3d3cafed76de3cb7364347dbdda3eb2f2bedf283d3ff12ebe2aff400d4db050dfc785bdb7b5af4e639705d5404857c75f460ab164359d602fbda15489a70e707555bbf698bf95205cd25f2c284430951bebab3dfe356870d068e74d9eba86fafc43103880c4ca411ef52f1b18cd23ced40dd826735571c2bccb8aa868b4521c107dbd51c9c7f168d39b440df76c619a99c39c4b7c426d66698704b2650efe1184ffe607542ed9e14dcaf3d09cc23a4b48baebd7543cec8f878e1f46a9b799ca567ed64210de8c5231076a93e02b656819f76e64266030082d7218a1f0f6f8e1f35da5d0505625554b6076b2a955b10411e6cf527ea8fad8cc04036887a7c69fb0eec54532b989bf2aba76bac461dfc008dd13720427ebcdfaf1469a9cb1dade75a622f266618f7d386a41a5558a5fe55719'),
  ('\xc30d04070302966730fb62bfb81f73d2c2ea01a44e2e9db5f6e73d3291435a98fa750ae1f65282f061a8272a0232eddff1a211d0f1e49a46681321ab73551f72faec42088d62155c16fb7c228b9a87d9880ea327d9b3c2fa259c0e7529e1a2d4a1f9c439b42c6783a6527be66a204215a34b42dc50a60b410c0428c792483102a721a85d6e68046a73b1b149cd4c915c8551b7322358a3a15f7e51160e155de490d151e9af1b0d3b80091347c4e0497eca22a49736c5bfe9c8d7f4c303b75c7ebb086f132ad3100b8bb09ea64aca4bfd7d268afab0893b6f11ed8d1a7c2627947ddebd54cfbdd084deb1eeb49ec74ee680073b819d2580ac572738f64d1878d1529d78a5e9dce972d0f70e35cd1d4a051cd737fcf4611f1b0d9c40f4a1b6ced0e363713241aadd2505e6b265a4aa58f9d67a65e05763108f7fc26517fb83edb360a1d39b62b11144239932edfdc0304a233fb39c6160da0ba68aded1fe6f5c7951c7f9a4809ead3763b40e6985d4a6e661b5365fb6277e43c849d979aef00e6c232928093a5c42a807625bf4da1837ac6a90a96c7a66b8df7f2bd5633ec7227026b8a105cfafa3c2e16f7c1101a896b40964c64df7ed2217e699b9856b718a1966e052b9e2f3fcf63d07dd8246dbf635075b3a76467a3cba8c42247159f87fad31e0a47ee25439ebf0525708d419e26051244987411a633ca18e4255e2fa90840e66c25a48e1f274f30ad18ec300d16f7be0ad5a350057c6cff17e3b1c90bea86087d5e6254439d8cbf8500359f1275f8b72065e5657b4226ef7f9e93314fd7d1fa5f213c3fceb9d17e04424a87c2a986a130b7d3e75ae0c0f4cdf371533ef7d13df64834f42ae944d7cc84f1d3a5b3f6ab4f1c15774e35f56d688891c7020bf36da362e59c83cfc4f5eeb70b3032ae15763f38e805f6f667766d87ccadb96157514f2bee05fdd4d9af618dc2262852a86eda09a1e6a5beea07a9ad31d179bfc435af9ad48c62a34e3a4f7731d4811de7d729b6c2ebdb818c7051d16283451011e4787e6f390e322a04e566051f0d82ad00bf2280f5e8899cc9bcb6d342fceb3c1ae9a25ed63afa53ddf8f0c3d06e03740c9e9b9a838944eeffc3dd93a51fe516942d08e1cc5d3c50481d7387e68034cfb456aba90a44c2c275018d35d66888689ec5442dd8d2bd85f8ea7581fb482bbef9a14f7d4ec5468d7c8c0db590390df59ccb6e9cda932afbc86f22c92623f639aaab669d9ba63f7e239dd86569baae09c94aefb2257a644d4b130583c27e78cc0f13367cb9f76f3d4483e36d2435251d4cd99b4af4052564734239b0797f76e85ad89617e3aabb2089a60e6'),
  ('\xc30d04070302cdfc6a025eba7bbf7fd2c588012666a6a5372bde43873c701b06a3d78d6134fad903fda96d4ea9379f7c9ccf54ac2970296b6460f9a19011a9a48343317dc7ff018d1c89dae4ad8efb56f9349933fcb7135851672a017cd88072fb5a8f73e29d4fc0e19150f8fad4772c0cd9013098d4929e904e29d651ccf4998b90bb573e7f5715a32ab8b2cf019c346080a2d7a2387cee4fa0dae9f5d43441cd16f54f582e29cb8247bea3572489ec1fe31bf90b23eda4b7083ad7626271a7018b0a9a455b3e934247b57bad3da69ab3d850f1d3404c02160717510be3adfafeb6666a6fbd494d2ceb3ef6f2a46bf1311a91bddd53760c8e155b40d2878eab9b1c3b102be0d9eb0649d90bc3a4e4afa052eb20a39b5e311bb17f30df990578571dad38f7bba6bac077312845c93ed53278d5653a982ecebd5347a3e5dabe5191603ea14a3f851619927cbb69e9af3ba1662a48cf2985a2d24cfabeac86e402a8474474eb36d8775e4dd5e1d545f3e122e6832b1d2ec03c5c4f90af6811d8da67404d9b36bab47c10039b5c8ca60db24e9cfbc9d0b05735d43be3d00450404e70f57068230166aa40edf658881be65ce5b1ffd49dddf23d3d091ef7a6c74cc511c27ece3b2416214b94b00ba08248a59e2d11a3743d2e529020b81f7ba74d3a67bc3dd2764f9bebf918edbd03a635cfce17687368855ec3b9715d8bfd0aff24b8fba64c946c8f2634b8a5a8c634456697fb527ac91766adba417d1e8bdb12279a0af1ec853a54169ac42b8530f3cc660ffd5970ce445a155bbe90fcb498ac9d05fd6785c1b4d9e8361e2446bcafebbf7bbf045922b580949d5cccc72bb29fe3fe6a052a72520aaafde4ff703dd71693c30ef5534b65cb2c889e03162e2d43578e574df3e5c9e00a561990be3ecb66b48b2dac24a14370469a897b250b37d43da26959f534af31ff8c96bf36ef8cef15fae4ee5dfbeeb6d6c38331f49a6d10f0206c860b2e7bdf2441f08ae3ee1fd4c4593d44f3a98dc851daca19935730f69d599d7dd361ec84f88e28f86efbdb04045d9ca3c5954687d5f7a7faa7ef754f318cdf76cf30981edd3412a1fd238d91204416954501719a91962b34b3d352300b19c5572dad5222a42aabe64790d34a3af678994c07619e199cc62c88af1eadd8ff0482d85fc27f9dd1df8846bb9ff12d20993d004918fd53af4da70c18509c0876521bed2fa5ba1935ec6df1ca07f86382f0f8c4ae0a79d67037fea514ab7df884fca2c4e2f91e538e9e6eeb1a3620b81f1012b34a5e51a8fe98b3f715d30fc2c1709171480f76d4fc936a83d350770870e615988121052f220f7ae64e9522a2c1855526a37e16cf8334b33d9bd899172f290b529e58ec9f6cc9c4f2c3d4d5b1c9b3a9e2566b0ded3d09162545393a3ce714c87188752f052ac06b9605a0ba9d493064e9d55fb14f427ad3da572d25cd5385fe81b9ff1c5b53215842be5928441ca277c6c9288992527e76de0da0a03eea7a8c5bd228c074c78c33c3e41c073fa6838bee6a172ed98c59e90f5976f779e2ab701daf7f1766d1f3028127b84157b65287564643ad191bfc4c6536de2258f117849e70dbdb5be0cda3a23f7b922a61741df2e238e09ab828c2d502c38e6fcd9e0a3c355ede7b1d5d71783420cd9ca67720a1c39f37721237189593ca733b1d9e9c71c99cdc962d9f65c8b089dbba8f8a5d05769d1d00ebb023154dae33f6787117dd78ae4066cb126b0f6e95daae2bad3f564cab107637fee5880cbd96a61410abecdad73fd7bde243c6bed0128bd1d0347c97aed8cb7a5601c7f3c9bc87e7bb7c2ebd8ab6362bea6d29e75958e4760f841e46fc92dac72e7638f7bfde96fd800413da2a22b0e7f40cd14eae94acd8fc996e58d0ace5e1c599c81d298bb4ad38b9b430b47e61b86204343a71d6ac73d06e6a6178267e9fb46b93fc4669a21597b39ab1c5defe2e572046e9e54c014a1f047be63737404ab356f95bd8488f9438fe8ddc70d91754cad5c75d3b30d56887c512f930209f0c14c96287f41c43e152b56cd226c51d8c67b1ba88c2005d7aaa412d5e77eb862880175292d0684a75f19284faba98d4f4bc2f3c3f461be7fa2c33cb674792a9e9dfde094a21551382b715418ac90c749ac42a8bbf1ec939d82ede3da231b242cd1b1efb5b0e36a31588ca4802a25edf698dbb60795398ff815ffb5121963950a879a4df91f7ec8ea5ac78b002a82242b24b06149000dce8220d5e9310de22cf9b341d1a3e86aa5e0d6ee9c972876b110593'),
  ('\xc30d04070302bc8cd0997a06a8906ad2be018516398865c744a3f302d0a257a6316ee100af18c2443fba5fa642adf6ad240d0c03a85ea5a49e4627bd6c7ef641a59bf9c86406c1c3d753a22aaa2945625b5f9ce475b73a0aee8e83eb73d1602adfdd6d5b97df7df4201f6430971298854ef45819df8ea4361b46a6f14fcfa15091a4031d5821dd4150a5195ce8cc8179074eadb38befb0db084d4ccd47a06b1663ab7fedeac17dafbe4f4c54ae4d1fddac50f7bc7c0b1e25136d473fb035797d286a59e128b3b7e08290b3b3c3bb30'),
  ('\xc30d04070302b5f67fef2e1bb00074d2c02501a16eb656c7e95a9148db680137f3b559b31649c080115e1243591cfadc9627d0a4b92db2f7f05287e5761e293fd9c8c593e46a0b40f16b38141410e1fc5288d294d887daabd9cb96166d1616c2df94571d67d06da607ab6522c9cee5378dc89afad61868602978696c67cff3995866be7c6515472e3c3e616d8deb20e9ea7d3179482e1172c6f4dd1b5a560be0fef9f4526edffbf286dffc4829fb5c882951b08baec03eb3a94c93e941bc069280ef2471ea881da90749e75b65100a61594dcf6baf5614d80977bd0ae10aa4bd52cfe9843590b2923e6791991bb5a5cd7ce43c54cb3b26'),
  ('\xc30d0407030231818f8a3c765b3c61d2c30301608794661bc98fc2834009e3bfd437b1b1d9a304b106512dd7256791b14100341c8eaf5022a38f2b92f95f75f7d7e32cac080367400ad63d26a76c97ee18f349c272d18b2bf2ea14d430fc7c2be7cb4df7d852545dbdded44f79268788ebd3934d2b65da4651172a9f5be8ff6e96980bddcf91fd6104903d7eb7dbe0f8b97c63b8126e0774bb59e6017acbbac680f37734a5261a5dbeca863f017ae6bba8f4b4f78659c13009b927d38246c592ff9864f255c0c1e1ab29ec2635356650fe79ad402636289a22e7497046082f1830e079dcef70454b5d04af37836c158c15752b735f1e439be2e64c6f4ed59f00cb954a140ee055d3b9490f4983ec2068d3e419a8b0ee5dcf9b1329ca73670247582f8c6d2dd961b17037e7615bf6edfa93dcf20fed4bab73fd8c0ab88ddf0812cba7b11a11d45569a7d19f8ecf59533d37c875bd1e53f94cb197e5caa61c73bf82f5aafd2351acb61bf8a3588f875f6f98347894e93e3797b45d919dbafc6130952d391fe4b25cde394e891b8c3f85730c422733ff306b7f6040398d3a87d2ba2a514099989265dc1339fe85f2fc57e74d79880e35f5da8a06df8b160b22ccef74100facefb92d44e0436b995c4d6dfa48af66bba77e4e281ac08db34d4615408dade44c1095319fe763e0d5b97c3d237656e53537ad7c263036c980e54332bb52236de8aa26a31f8d878a39b286996d609599b492433b2e0658c9bd70bcca6eca38f6300c5c7d3fc1ff6611f2b988a9f2bdc926ef0aca3f922271816c032236465068ef5b19b4b6b33a3ccbe93c0c73c85eaecafcfc302adf4388711cf88be13c33e150c23127af05a7933f80824424275a333471cf9712c9b6c88a10e1c7d352eb162453c853a65bc18c6ceb6829fbae56ea2a913211c37892e44a62e0ec479d5a13606ec3596ffa0bdb1a7bd014ca53b901555046fc579097ce2a66b0a7d0adb3a15a94260c5cb58363cf787cf82dd7846992312e173e4f31e51528f6ea456cd88d01b11a221e22e694cd055ba12a446b0c84c7b661c1f09bbe0d169730b58f831ec3fd06c50d4d3a7c1657430ddd491296993babaac2403c3783613a5d0eeff078e845fb9d86971a128ea0586a2d59e81a292b014e5d328fecf70a5eaa48839416e9ea134e72739df4f9b9795e9201b01521b71c9b2d3f89a5390174429dd0903b21b4eb03b04c14b7482bc7705f0f4b4186d81f92ac9dbb6783dca92864a708fbf7768d480158d9cb3a2a424b61fb73d18e4c6471a45e51af0571a2209a39293b0c744fb7b7420cbd32ce5696b9ed1ac03a0ccfbba3569c844908f91d975039b7d263472127a6e4d3c1270e08a620d7b68694'),
  ('\xc30d040703026001ef3948922a447ad2c2ea012fd5fdd73e2d1c70d3315d98632a0d1cba066217a5cbc077e650aaf741065841ba0c26acb6fcc52dea3851532a22a7c3d527e2eeeb573f93000bdc3401f440d3767023cf7c1065369319ce3a352d62f555299e1210d5ebdaab34e04e3457a18506cfca5c4b2c0ac83dd4079574701f5fdc16d53c93ff96ebe2ecb33f9e75d933d69c6fc28b717582d3017f3a817aea996dfdbdd267522a0a3158e919ac1980f9e72675dd6ff1a99e534266e35465c197600570dd642521b3d09bce636d880db4013d5e601aa88396997c1b090903c11fb1ab01597e18d7ccb9690d99c480d9d53639ca3e030eadc97e3e47ee75483a6fca807188cf6f2ae2f1a900fe3320bbbc48634bb19205d43922b6ab5745b4f53d97bf07a504ac6c2d4e8ec11419fc325866660f622fea1e65e3e410eac221b0d58f87b3050efa2ca0454d3f8a0f8e83b107ea2380d9278aa7db1e86a48da4b645c593f6ca1b360ebd64b2580c012dd631b3ab869861887c1be2bc40c9efc5da568f589735d1140f51298f033fbfd3d94b68426bbe4bc4967fc27b9a2af84eff1bdc45d3c731ab70b371ac8c41a75ff28b863e5c70f86f29334e55eeeef57ce5f63774f109590973759227f00c616a7cffe6aac79650101e26858e77744ec73f427ab4a73b876207751c3298d0db2b927facd2e2b401ad9768b54fa7f4ae4a475306e204cde1500325d354adb069ffaa4a41542a2a888a3bbaafa11db8ef241c57a9c067f8bf55c6de5247f30e41ed0a354c11bc9c75c5440f74eee8fd631d2318cc0ab87ec28241bdcf9bc7651517c7bb2495426e27ab94899fb35c8aae5fa854f172c106a85a2027b58b83ac5cfed63b78b17aa10e59696780eb2cec3800a023bf6f35d4c90068ed3bea91134eb51ff90b12ddd16df65cb7c57357d8483f69f8138ab507930667365b1a48a2713580705a4069b97c65fe054a6c3fa34df66b0f5184f36b04a671df897b0364c89f9bb3b95ee3e6364ede5c3f426906d0c97cef86bf7a83d04c12477fa845a60b5ef81f1c7222ef31161dff14abfd854bd335581d7c601d0adfe280aa4fe6be00b669634393f7ce9e8ab6962e0c0bb533109bfd2a43261074da6916f3e9ddca6a701b02f9d7e219d5bc3b2171608c40a11fceef6fa8f741e1281f19f9bc5e852f528fabae58a690b1856f5bb38c3b50ff8058da8d0ae17470d5bf2a95155d4ef705e8edfadbfe13da5601daaee7143e34d50f105c457b28e31aeeec89ff5946867bffcdad0a044e9a7fe2826b55bdf82a0c4d468e1b1f6c4c03d39c560735a16186583a9297b6ab66c35a3352'),
  ('\xc30d04070302f3be4674ad92da5274d2c016012dcb8682376d42ce766c636b1e1d35909e15a44bc52475fd93795656ddea0e1d335d46d8b5125833655c5219ab0f827f1e61a5a69b2f3eb0d00cd15b4904e0797417d7c0a3f1320c49f2e211e67470ad288b67c9169e0c3bb6a235dd1e3e6ae59bcc2d781a628a85ddb8eec0220acff82fbc759cab29b3bb52faa74d32407ef9b1e074b9b05516e0e721730371f3ca3f74db509788a27bb1e4f1ec2705189d37d5cddb8c351b95732ae22a1ef991306ef137d3338e83df67aa75c75de68a984b67eaddbe62c1c6d5fe90ecc180722c86215d24f697'),
  ('\xc30d04070302173b5b2a199e0e1871d2c01d01bad2dfa0c8fbd6827ea2971b538cf58cfde525ecd7aec136a1f90d713bed6086cdd30b2e4f99e4363c100b53cb3440cc3c3f4969533fe18dd888e09a64fc01bd296ea7bafde2ec5c7cdc23319b84728b6f944b3664f4299eed273e9608904071d92747f3ef6dec8578f13bf1372805eb0af8d947719f153d916b6b3730265dc96c5ca48dbf9dd396579b9f847da0390d54be0e8645d42e086bcfb93a46a72e199a606ae473540a5701efa3933fdac5dafe27f40482660f07312b769cb9afa0e27c84b8e86e20138e92932e262228c96f1de3d2aa860900a284391fef'),
  ('\xc30d04070302d2618f216ac4e17476d2bb013b67a073bf52de9a246139adedb097b59d08fb20d3b51b153edf32680bc2cb01a484e267797a974a0ecb95a3ed3d4c26cecad54ce5b6a0e3fcb9f391723e6269e33d5f38cae2cd98870f69ef3ca491a018f1e43fd51c31aa2bfe22874d66608c144d8763a25c18edff1547bec0e7192aceffc92feb43ad5a4946df61e54a875b83ee367e0aa9df55d72fe53d22eb49277db87a1822dc222229bcf12decb6ebf559f14fa94a85aa08bd8507dd68544231dacfc11ba8ddac3bb760'),
  ('\xc30d0407030248721d1e20ac8fa978d2c20901d12d46c947fe1c324485962458b238cb01bb438110cf1a28cc965d6f1eb94fe162d9d69b9dce46ab9d6b84644ad061eda59cea7982bc500014b959dae03e3539becd395f285dd2f6b76a4743a834c4fae51f12e78e84020633418d0ad0911a7b1267b026e9ced74ca804e119a02e75e5e1e86b2743d12c2e79cc676e4c574ba1946ae8d13bf0e730480a52907113e700c3c8bc123209f0b456a68bbffba8e6d68bb91f2f84cf52af21b816884516805b6b68d819ee324a1ea8bb65909482666195967f6f9ccc19fd50456612f10ac081f0f3c903a20df6b2c102a537f5033c1880bf3d45ad85c5a9f84a39c64a16239b698e9fc4fa2ed63b5d7c6f3c89f267a9f855a652ad4f9c80acc4abe13e8a51f857390a3d692c5c30582b1cb31b5525080e778d3365863a75068f9aa41bc36e4278d8fe23388afefe319cfb788ff0a8d485431e630d973e8ad61084c8c6784b3a57a5838bbb871ffd0906fb05453f2e64594ddf24feb472290bf84e4bdf4ef746e4509d9274b6a764a79e3e77225afc998a9a2ac10075d8560054d628dd3da7bc23239558930d49a31fb2089872f4fe8ee72f5e4d5d9334da55eacd39053531ef11e3fc3b57fc360f7b8ebba5d24be2a6c4de75b2464135c427b037054eeffda6231164019d9108e152ece34cdbdfba019bbcfb1fd9f4829876df38aae7004bc91af74b2d6135512a9d99014989a55972fd45590ae363ef0d2c0b3b6d728b21ffb1ea46894469ecca435d22c068410d0d174aaa9537ab734a99395e0154184c4ebcf45039b156bef6d33f2200ef44ff54bca00451f37b3069694cd3585a5fe8d71267ce6fa8d652e694ffefe2906ba4ce21ca3f5c5014cf6b5f6d59e9ee66d4678648bfad854eeca27eb9dbcf4df06dd28b615e2cce375716cb2b532e9cf35e0dc5de8ee06f04c2bb5b81172003bb6ef9c56bdb4e2601542d2f05cdd340a09c2c381781783f5eb6284931874e361eb48933cdf0d9f5870e3d'),
  ('\xc30d04070302078904c5ad46deb770d2ae01fc27f67015f8b299b44cf8e529d52cacfddab47a10f14248befb4d19205408f197b3575a52299d73e03d66327ed5042a3c9cf7d6fc0f8547b68527c2f0f3596d2396d62718b71a43b03188023a5c9004d8b37b52a23788f86a0d1759b35fc09b829cc48f14cfb4f1f677589fec0072be2e9bcd97813bf3f14fadc8c19c9c2e62d03256a26c565fd47ee2699eafa378942360988253a10a86618b751ca4de03e4a27a65514a9b2305cb556aebc4'),
  ('\xc30d04070302682d7f2a5ca9966275d2ad018fee2ac46067ca5388d8376042166c7aa6538977f3b19c4b82a0cf77857e825889bc025bd4991649068358d2c852acbae1e536e9c6b430eac9b2ef259df4c745328f937d4cddb6db07ebd34e2b0356ad93a6ef1e56e77f09a64664c4725d6ed2b11aa5c91e046bfb5b1eb7e15182e91c55359d6cda9c6ba41d3b3cd34ddcebd7b9b922cfe62fe336ed795115cbfa0475ca5b5be1ed21b817d3afce8db5014308cec605b226ec3332c8bb82b7'),
  ('\xc30d0407030288a5b9b010c433f765d2c3580140584d435f12fb9e57085d104a53e71fc9f6b230db5ab4748d9640a7e8e0b5553d128579c10ddf6bfb1e6f710eaf66d84b8b872be3aee98af37a51ed9fa00fde89d8c43c103d7927c4e4298aaf4a7d54003e685e3b429571ba85467e91a2c1d829af6e38cea7bfef0a9a7c7a6d25b4c079e66a6cf6ab0545a760f813f58d0f430da2a65d1cbc915ac4740bbe9a591bcd5f335fd666f2378c80c7432c0eadd126ec97bb1cc1674dc99d8bbe34bb597ba9d676e36fa98adcf28d9258e55696229f60417143378aa382bf7b2f7aa4c354ff9a109b79e33ab306c7bdaca3fd20ead6bfb17b3143bd2624bc4d9675bbd1129810096932d9d5b0b78b05a6601003f100b2f25f95ef52511cf709df83c74b379c6f1f3ba31923968410c7c042b00874aff9ff6c330bec7aa03b138ef158804b63426b9b2134fcebdb2464f41806b99c8434c60066c0ce34879bdd6852e6f01b344dc22fba4d91a8ca6308afeeb545421aa27bc01fd378331a4af48d08a9d5c73a80ed7e7fbf94b9b34f2373f4a31d385c0d20d39cecb3718e86105540e3b0ed5baa90ceb7c100f286befcdc5320caf9ac45d4c1cb376dd8117071a38c6f1cee2034be780bbe1b9b53abf3174d485d8c010cb5c2ab07b808a334ba32165e6c6d29fa492b5a047669a9b22bce21a4a706870e3472efe1fe8db1167aedf871d4a530bd5e8d9fb07448992fd1e7578f240aa2f51d3b9ee30991d678eb9808f175b058c5a20e3aed87ff1c8ab775079963582af74aa728e171063edc92c27ccc09591045353e964f1194a2c594aa6d67b79f93787a2b613de4a2a1a59804337c06e3741a210718763490561c9234249d804d794f770d27711d99d7dd8bbf00fbc10698079c32a7a98ff1795afcdff4e8b7e5a1c8acb0b4711a5aac70df305e7b07efa5e604e93f23289ce437d6932bf142c07f453aca4c4028e9eb7ec26c38975888236619a619342893ab13d4524c83ce06951e38f191ac0555ff4067959a7c8595f38878bd3aec5600ca504d9cdc56309bbb12f9baedbcc6a2816cf7c743a0f77ca46c1087904779e5c85bfa17ad1176a3733a1fd663e6b3d021541e9b3739f8abeedd3984cf6791cff4e4b46ab88722e74feec92fae4a2028d02206cd0fccd39d8f350ecfbcf3fce493e6ce7e29509e6dc1f342937ffcb2bf791d899ab7cd99a99fb74732a6fe276db96279fa05691ae6b6156c8f081640e2d04f2e825b81fcc482aceea98e5b830d5da4226ee8dd7e62baff6f5e3a6f89d5484c7a3527767dcbd883878113fd26dc198571765b7217ad37966e80a9e97f5141b977272f4920609cde5525db6c9ea5347380a68ba3f1d7332e625d5eceb78ac68ae7ef99a7ac06c40b71b66f00e4a1b5f61b09a5c1584f2dd9db1c877691a2be85c8d85437d87f0fb1996bf3d2b154b6699c7608047ea3119d984c4dcfd7254b3e3ed727d157f70df0013aeaefb056'),
  ('\xc30d04070302ba662aca9dc9afed64d2c2dd01291d4991b284ddbd993f8a3abe513b18ad7fc769544bf4fdc2768fe186235b176866218ed5fc100284b7ebeaa0a45e7dbfd9fa9a6a778f074a2870d41ea027a1146c261f16481e1dba74134846391fbf5aa32593beee4d2c482ed7e3fef06b49866355d47e2f7f066ef1a134755664490858b9a51abb2654f6fa46050d8ddaf229bb4649f0a5f3d80f09ea90babfdb0bab6c40cf7a46d188744caf94dc6c990608a86865916d5b6a217e541b36da22e1fae7238cab5dab1e49488822d8659912691da4cd74f5f0dcf79591309408ec6e3dfeb1b5cf1a76761f91ef8d34a9f1bdda66a939f29a4500a8257703267a0a3446f1ac39c75eb99c55f2935e010aebec9e1d190d527879b1ea34bd7c383a39d0b86d3947d68784643ab15509ab1739d64325a6b16664fa3c4057bc6fa2db6985f00c5eb3198f27b4dd0a21166a2097997307924dac7ada0c4f2c1bb84b8b8d2cf426180669f7f169a5e3f4d5a557f99af8669b8d4e8a8bc7864e074cd5e0a4cd4a91ab9163928b427d168d5d91b0bc8d997ca87edec9588d094c352f88948bfb2b1b1d132d4a16ebf2de2d5ac6ce7be65222cca61d2827c6628754719de1f94eb1006817d93562dab721fc3ab0f7b2f7d44f57f1a2281a096de408d72f320f871e63879301845a13c12b4c5a34e784824b6acf96da7e6b8ef9aa2a3c53e3e8ea18942733d0102ca69e37a0856336e83cd608185786bdc4f874d82e94aec006dac48454b68be39852ffe848112a3314498e8e473e40175252b5f9f91e86e148491b42de952379678bb013c2855919e7a7264188662e25069de255c0410c80bc4f26106049c0299ea059d8847804da4db4dc89fc27f5c002e218b784766718951bef511f36c19f6659556bb833a604f799e60b028eb1edf942fdbb7c94c97868649513e2be6699edffb77ce956536cfaf13f7608b6e6b726aae0679490f4f58f84a0436c6cece6eb8ee7e931c837832610411cf7053ea114fbaff4e329c36d0aa1f924e1636ed8d1e27bcd3e77a89635a2714f27867fab73ab5279ac8f7f14ac3ef63226a7f5579dd6190c40dd37c6632ab7b0741025206655a3ad7546e25184513d57d06b49a6fc63c18361ae2ebd9504bc023b717f58d5e46d832ecfa3f771d3acce202c4cdcca5d3385477f3d21425f975519c04c1d0fdf26b7e5bb6338cc76587d0dde94c5d1851e629cffbd9b6f194c970c145fbe9bd3b1d80dae3f371aba1dfd9a5381c00847dfec00820da14a4d67680e9a44af6e15522ed82fc85aa847eac01ebc7b5b0fa7c73de41e'),
  ('\xc30d0407030220f2630d2a84869a7ed2c010018f639bbc2aeeedf57cfdaf7446dc919874fe2640feb696264ebd1244be232ce236f072ada1b7d8afdf036f2d00751907746014a6ec12bbf9f76fe305b06e372d0b1e5aaf8f32b3c3570e79da82037f577a4ece00f3b7e268182b976cb436cd65c3ac9b2a73b9aa2099ab85e62d70cad56e4e4e6b47413f7e567c0b935fc03e8e07328a1626ae01c440fc57dd46618e2e944cf97764fbadbdb4c5dec4b86693dede29c1ce2175d516fd574473ca7e540e69e4308ea034bf4b993fd4a9b63370f4beffa6a2afb709e1abf6c8ab3c0899'),
  ('\xc30d0407030267ce7680002a942d78d2c2a70187af5e355f953b27683d44244fcdd67ae3e0c1316cfbd9049efe2c3e8e8aeb3401cbd53796fe5ff50e60fe066a3d1c9b40458995bf367f7b77262581f6a189d6cfc5e2f0844b04bd71e4450b76a2d300eb03ab7654e5de6f79c617c7ad9323d0ef573ce8bb9cf1e1cf990a890cdc2e8c246a12b8a0625bd352608789bd13960c24eafca48593a0ee8fae669b6eebf2e03360d7e6446a55a7a3ad3c67f358df5b0a1e63b2fd6212f9b7d2ee2baee9f3828d7439699059be75958eb74141c7e1cb7ba1a4910cff0d589a62bbbd7d136198981d57844719e15bd0c2c52c9fef4f68b871ffdb6025184dc5ef04ef48962d3e6709161b409d9792fbb384a22bc5185351743c2916ebb6c76665997a98374c251ae7ec02630b6769d0c9dd7211c9b82f9fa2565e7e872b373dd61a5bee9bcdb1c14363f5832182410cbb2f0d6b9f38da527a2772397eac4700bd05fabac1f95db848dbdd43a5879958655d656545e8c0ce260d34b81e7c873153ac748c8fde7fa3ae96ae8cf0170e9b08e8e4c582a55a89eae9cadbc02cf6ac79df886af6c3780c02ab1cee5936a84e5d158bec299fc660b0f7c9e571de42a1040674890b76723183cc3c854a8e1ffed078ae176b011272259b47973b353ce0f6c3d02dad433fc16993d93b7d406ed91c8edaf560ced4d7e7d1b80da7ec5edb8d311fa25a79a255518ab7ec06adafc19cae1a68334cc39a42cd10b400aad88274c5de1150d07fbdd97c5dbae82de9de1dd5e8b45ec8bfbadcc98b16a8c430ef8b24cb011ad3aae6454657678978a883094ea0cb8381bebb0a051ff6e460bc361745564d033427ac6bea977695a8bdbe7460a9ef9165b83978c3d470a65c92adbf5ab8158c2095c7e901214cf2174f7539dde644129294940d60e969eb3a787c84ea40bf04327288105d5e11979da4de5665f39c3ea9fc83dd23dc7901b93f56ec20ebf958455c7bf80b4b2459db5fd31befa2b7f97e46841813e8babacf2230e95bc39b048196878ec43400d9ffe52c75719dc2625b92bfd87c303207261859d6f6fdcde4367c90dd6910c10d2da75997dd05baa09612be8613e6a554ab7dbfc7e492385c2d91f16b2d6444a065381f3be9813342132894d36eb4c03d4ae71d1f876c7578aa9a41cd9780a3a22a8ba2e0fc5664a49eac5e9a3e54513f292040ada96f52888e788ca2c6d1260788b7a360b7065249ea47b98f8174f46f'),
  ('\xc30d040703029ec1081ee7456c4076d2c2840105a9d708db394f2fa78a8e6aff96c979a50d200a83ec2230bb2aae2b90ef3f63f8cfca796c2686d84abbd27055bf53a73ebe3fbba96bfddcf404545d1e8a358cd1e4053de5cb2173bfe6c3825e568f7f0cf2cf8730477190723b6058e1884cb9574760e447550925bad3fcbc74567ebee8eb6829703d3d2a3969c7fda2b272f64e235d27b8ca7ae60b19cbd001acffd8f9be09749c4b5b88bb6b2caf0b841bc0a3b29708dba6d026420349e9f86525e7c43a6b6abe11c1b32099105be298cdff8aa348bf87c04b15e5954a5eb8fca5767981f8906f2d04bd6a11727ac95caa0bfe8a9620462ba32623c62e67d1b29928b268a0430e9142f884c0a9748b4bddb62235320913a1cb63b2b6ecb7beb3eb12abb08335da04c57fc4caabbe1cf8ac4bd90c12a5c19bcc73dc9597b879860bc7549fcc0c44549c68fbc9773b6fe0e4dfb21421f71dcd05561b5b431f8a43f36a96940aa3aab0640dc43c5822bf16046a3cb328f03087391ee60116a9cacdd9d33c17443d743b60f951fe1930fa3813cf32a7ad547208d19794278b874ae897bc19b5b52c100d281ee65ef7ba6c205672f65d691eae74b210ef3eddf10fdc3d2c511f33412fc7040ac705454a097d4d6017e4dabf8643629dd871a3744447ea645b23c07120cc1f254cedb106bebbcbab773d0bee5a857d6c65cbaf5118884e7ac12e733a9aa62d46a165df1e768dc79b1fc40653a40b86f58f832fba9ee3ee0fca145219c238bac250c49d527d4676c5e46d3af6508f48c0e461b276987ca87a515bc5659fa55196cffba8ffd01983dd445e417973b37c40b741dd0cd7c2629500b9c9abe650d9b035c6027e1eb00553e7e75855e876e46d77a0f274ce1d9963e9799b3628c59632a7048ee26b769d9046aade167fa4645f9dd80733d91ea2716097a401b7e67b1ba5153d71cb89b8c69158638bc562dcc49e1d150e46be596211b32cd323e635ea5ee288ef577e6f8deb3aa0fc19f96e5074c90c8f5db7bf36be07790c55fe7b193b2b64b9deff061239296050cffe73832f9ff7f3d5b4859298e21d960356581aba17c5d7131d0908b5944e184cd672329339c54bb1b734f9b2a967839fc188abe7a8185ff32bef66ad44328ea40a3b68b14eb88e3288d2031ef17cbea9f3bb5670a3945ae2e02ac99c67c8'),
  ('\xc30d040703024dba74ed3213b8f172d2c2500140ae001a37b4c86addabeba2a4d6626036e5c08b044b1bc2ab25abd016a3d716e7f64c6584e454f76c284f620c63cfb6ff537ded96b6e9be68459946285093d70c42a4d9d8f31869697093cf9e97467c805eed80a5ddf4ae9fbc0f47e9ce3f42e45d2411540107aa26900f8f373f2f758efc7c2e59403e27d2574d83e79478ff9edcb85255b001becb3a92216b6ee1a92c0c94fc069e9cc2f9d5b12c670dde5d0fd5da8696a4cd003ff67b2d8731bff2c187bc4847c6779c5c738eb05a4006b1512e8b0b6a6ceb14fd9e9480617d58d2c258cb6492ed168b919ea4ce3a9be9a380b89aa9994b925b75e6e0aebc66036ac2c3e6db5507d2aad2c495d5eb865b2d844f9f5bb426d35d17d99978859ce165b4053af401ad3d2e60f400669a9969f231c7c12439f29deba7ec29c80cbd7e8d7c486dadfe414a84159481c25998b6843bded26834f231a9229912162de0fadcc19b80cadcd705440cea46c2311fc9b843829226ccde38b84d02c18a43ecefbbc1cc7bc481e022f60c49102a2b3a97f31864d04c952c6755ace757ccc797e9ba0dd406ff97f1dd360591ca62bddd5d2872e07d890365f3c630b9c09eb9978081f5dfff52a16eeb01d9b78f19bd89db9418c481c0c3bd635ddbcf6d710934d6068acbed8a640bf70c95ee460a3a9608ef5eccb939dad9f093a01b427839d5fedc49b32da2a87188aff4fae0acbeaa6838fd7d57c80faca7b7a3089d7f80dd721020f3d28384829a6ef39eb0366138c7efdee8d786438f41e504fcb7b5b275d97e59c1fbddbf21499d24a575634c21de2fa9467adb61f163e73b1e365c86aeeee631483ea98e51dd6385f5ae738e46b659e02b6ee2eedf484b5e45861b4c86fded10a00a26d981f2b6c5ba70a1e2ac6e99186ab85b65cfa1a22f8515aae0de98f4f6a51d88b5d5394ac83c84482bb9d5ce83dfa83dbec442d02439508cd821aa0375d5fff70a7e4dbed193d36af4902662f0f278b37c3f552588886648f4f0bb014144ccb7ac6905d199e9be4562052faeb17dcc9d3b3f29ed129c7a9463e7f569c0102d19ad8ea6507fd9f39b8ec07edd84df64354f66d11ed0f198eece669a'),
  ('\xc30d04070302eeb8152b9c4a59a371d2bd0122481fbb75aa8ca960eb63e0d35b10fcfc13739149d3443a589079ad2b638f861b22ee16636c8ae8edf85e8a3744fa708bc9b8c3a33c89a54762bdd90297cc8ed04974dceb033807e97ab5963a1f926026bd9b907868b986bfd991606594bb04e2669a404c39d745ca925c04fb2a03d4f7625aec05d6839512d57a28838ed558c179746dbb5d6ffabfe5bc1b3f034bfbc606ade8a760db2cf5627b1369ebd9f4c957203cf9721bd8cbeef8594e200073e61810815a735d7b39c02400'),
  ('\xc30d0407030201c221c484cafbcb6fd2c2e8010cabc022ecc648908c31c7113de600ddf5bdc194944262b7948155e45f9fefbd23052434fba437d6ce50e30382f77d65b41fafa99e948b13260bfde56e57dd918e28e698b246dc5df4407fb322de19161bc8456b723a53be824fead2d8f339baf1da5725630385fa2b7f39f525eff273f7ef04286c45f73a384c97555046e89ea9ad3e3bb0c91015af75a65e95713f600e9f7c7f616d04671e50171d78b99d7cdbbbc669f474c47d8dca4bda51055dee9810e63dab4ca3d3ce0da14b8df789fa8d8f9ac3366660f98ad218ac9dd7ab259ea2fd2b338ce4a55edb60c32a1d065a955b00df1d682b94205b38a83f154657b1061f27e8a927d2c9c5d8f6351611d32a01a8ea1256ecb58716096703a35ffb5847279cf04359b71966fb4cac0a192dcc12036088471ec9bcab4a6ddfc66ac1be1bf860c7a87f9240f3da9b2f36771416970cd2a958905adc2a364b9416c81795c229cca7ac3505313935e048cf386fd54c9a2e59eb6fa3517aa54d7e9294ed597ff37a28acc1c1621b362b56b64e172146b85fd58d591eb0640e093d1cc9239bacf9968a8295c74d9d428d72a9fed9b1cd2f32cd1789ca431ccbf62e6a30086531e040b39877d1f4efbbd8e2a67ee334a1c2f20afc568e0de4f98ae9948b69727e315135600af49e10c7eeed4a575e6572ab076b61a4033e3a39628e290f7601a29166af95970f7e39abc5279d8129600c76fce80b3acf9aa774fde692b4f8ca6e68c5407c03805793e6621f05e73528fb4a5b0939ff42a1f0f2d8be05faabc780a4114c9187f307f18ed9fbd02199b670a17db45c6de2893573c95940f238b7357cbe1e08125f52ebf3532d0035c8c7468a1d74688095e68e1705bd6d09e4a13f8bcaad3eac52c7d928f5272acd617b203e112af4272b8bf54e0cfc20f20770e31334ceb0d8e26bc4c660f7ece05b795efd079ef04c27effa99c1cd1ac557ffc863d345e45bf3f54ec2cd7551c0ffd02e9d3aa194f6a7c6c331411932115eb65772d6683d9fccf4de97c207d0e91adac6c83d5d4e64e0e8998b413ab8bd358f820e585c5467cc29f6a27da7eac801cf425f1ae64e33dc2db0dc6cee267a1b814f8f3342400f9508b0ebf9d0faeaaed27cf0b428e2ec5c67dd1084323ccd6b5bfd4950e4aaa955fede72107d1771244df2c7d9aae667a08e00570e259b0554e33da342c5accf29b0825905e5d19edc9bf0e019de9ad69e350b3375f16071a63bc07f3c340902070e0ffa3f8d43fed07da085b273ab812b06d66757d6707917e4a78ae791d99c7b55e723ae40ff0bfc121ea26f5d4c87'),
  ('\xc30d040703025c104a1a713a7d0867d2c233016c399d3b95513000286faf5cb6918ba6cef82434a8a60406bd95421603f6d64e0b0d48d05168b6fd85aa067a866ba79c438a1b6c0d9a90de4adce2f6e450ad61e997ed89ddfb47bbcd2a651a12c672bc43365574adfe44ac539b5c1a86a0182d7c8fde35bbfdff6e954a3f52ff8ba41e97b389201aa0bbca99cd732ba24a14a4a981fa562d5800c6f67c1ef49ddab3945776ae6858fbff6a146bb9f3719263a8c4f2207e62f3f079ebaac8bfb462305bbee855bbccc46c895ad4bd7392a876d78203ecf12e7d119ee5f700547034431792fc7eba6997f4ed602e3c39340e2a5e382ac57f5c17017902d0171a5e1159cbf8479ab77a5e28634510463103e5eda6d2a38c3e88a4b2e3ccfe8531af28536d9ec382a0bb880e4ce871007f33e2287dca64ba1236c63ae5d557d4a4859fc92c57b66910296b75ffb5aea6edbfee9410adc8bd458e0b85704c3c0081313ce25897da2bdb91b93f00d466a90a3b06cf1cdcf625c240c2601311b7c186a92414850241a5b52573a60abdaef87b25f58fab5193179eb9b07857e55e6ddd9f15f616caf65feff1bc0703c85190994f79acb13369facc257237af5ef9ae16a360e3c6c18ce86729a2f1cb35dfd6ad7b138d138e47688065cb9f42e492403c0f9f6a3262a91684fd8651237ffa072f10076987c09cf65d59ab2c3a0b35ee46e44f1bf69808adf02943c519acd86c9c1a738ba24903eab5d8a22c3edf615ac4ded8ac565131d24f2f668a116550459f1a744a7fc628c85e04c162668738130ba7568073a04c4927a96e58a694ae1d32c8eb550fcebaa4a2067cf7d4db86769e3f958c300c52c5f688a91ffe992b65469142358e006ae62a0a6bb116a7ace91fa722c2a2b3e3a0c322665d98b323602a87dc73fc3f79b93ebde85cc5c240f8150d30d2c3231e4f14b26992f8ee0164ddb83cb4be8bea0ab261b266a22a5860bdb4a0612321b4fa844d7e56b8717ff0895ca216531f2b07c472306c75e990d20bc2f54bb1ebb08b78610eb060d731110cec153b14c355d74280fd7a194a55bfc559b3e0f4277b'),
  ('\xc30d04070302207515b52a190d9361d2c238013bfee8f55c4c35253c9a10271d3fc5322386bb095b9efab4ad52da182d286fd5eed4e43f050b5f49fbfd0d66e46d0a00c1dd8a6268e29bbc3378773619b25055bfc215c8b83386ec43e2ed3eb7a0bec8bebabf73edda57c064eb21008ccec03a2d37e8aa78804c35b7c6ac461edde081298eb3da13637432f685208b1c72f9a6daa7afee7998f86cd1c471e551087ef8a13359f022613ddaa4262e400ade885cb4b24cb8ff7cc2b26364cb2f4a745d34e8e66d438822c48a4df319cac92be2769b2c41a4dbc2a818fda01ab3bc667b8a74cbd662e89eb270d589c265b3b39deedecc9d3c43288eb4dba33f40369b4479599067d31d2ea4e432cf0a4ebd09264ceb4fefd8d2d43c09f50e9930cf410ed7cbd0ae4ba3b5cd91a1cf82db42f07251828da180473d5426abe51a16f0bb1233286c47243a95abcaaad6ee268f1c05d5a34a5f907d88b7fec097a85579071a470d91351c92617a15f9788024c074dc5374d6c001b6b71ea61ad7c04c32f56050ec908d8986b94b0d1e53156097d1f5b67b01f85dfaa8418856a209ea6cc0c3066c4208b5911df14f586c567e55f56313425c34318d2a00a923b17807abdb342f8195d56e4a73f67162d30bcd20519f69528418b3674a77401b283fb44da4feba653d7be0d6ed51b7d9e80fd3f7e955c3a13d8fe8478f7d03f7f9756683f04cb3c9cd64815566ffcdbfa4cee83008cbe1f217349aa8453419807ba003a7cbfea091d8d5eb610e242e6f337f65f11b528c50233e5ee2ce68079bee60c3e5135116ca0e39a10cae5381a780ca148296f021b23375e1d81279ac3648f138119c5d39fe58a4500a41091ab7efa5f12b130222d434dce115505faa8143425daa523caab135c4d7a895090f6bc42a795d379c23ec9d3a196bb5ff1ead484dd999a69322242029145419a1069ff87e8d4ddedf85d8724c4fe8a45f24ecb73345c0e7c50b8933ce142b70f14fc16232e4a097c5d9178b2a8b4094eb96bb60a3f20fe6a5945cc11bdf244b6114ad94b120e9377a700fbae7776608c06bef424d7995c63e63935702cd4e7b4b'),
  ('\xc30d040703024d140576bd82cff867d2c16901b8744df7727b1336b1d257ead71b36cca0b5e3eb05a9de0d1c1831b484d47be9febf7a311f1ccdaa3a2a2a162a4116ed1d22d2f916c105baf652f87f1b01c74a307ab1e5d7654408202d1de1ca6022f029e25b879907840d23739ee63dd411b57a6c39a24d84776983a0e227149522956d197bdc7f60b7361c8d1a68331460cd7963224b484aec1e3712fb57498d1ebfa3a3f00001a8675c86e57c263a0b3ceeac7322a9eb01bc59ccd9ec58adf6f1994436423b6ae99c6f4fba8e22cc369e94ba63f6c2e545485c3080b55778c976c629f050de811a4bdbb9e08fb058d8888b57cf93617b592af5e90ab8ea239b20c477a1f7be324176406a07d8ad8cf31c06f5969201955cbf1994f4fab68dddfbdefaf0206a2a39b16bcdae41d45cab476c0f9af82e50cb59fb2c890cc84821f7b72ba6e9b89a2b1a53003a6d50575091228f228a83ca0dafbb5244210ac9e639a1c92358d598b126350d98956cc016e8d1477ba17ac01f58e7b3932436dec43b923d6dba7a33546e364a7a5374e9fa243c251cb138f6b7f1cbed4e8e488db5d41920f5a0f845a33feae7f715601e7d23a197c4e8d407e5fe02e3d4fb4b5ef799b1bb77a0cf06607fdc51d2bcaad960453b30534e576d70d513c8946a22ff340a089447279fd77a46712c9fd3e5573b4f327d56f25511d1234fd5643b413a7894ad54bbf8c5d416cb63312897323af3b3baf38de94b7304eb892eaa4b03481f04b9a62f72f0d6ad29d344c2ae961a2f1bed2392a96adf242119'),
  ('\xc30d04070302e8a4242cd5f5eba970d2c1680148c3ab27f2e48c5bfd8ee9eca15543c639a97b72004b9e6c602a21895b6f0018591a60e9de1bce4fc60861f8b410dbea24f74f222b60791445e2fb0b3c18755256ba7d0886fdc102e92b01be996910b378400764254131254cbbeb11fc2d7aa465971443a656085ddf8dc8c057889468573879d425b3bbbc68ce910af452f27d9fdb412c58615666e2815dae33e633fb5b62e1bf3a02ec96e2fd46a0383c7cec815b4d9fbe2c63374b2d7f8f60035c0eb0057af052e7cc8c17a5a6245d0d657e5845aa03b306c9595d660d3ef51e3caba838fb5eaf794c0258fd2c03be45acd79cab6cf5bfed7641a7ca6c799f1dfe71b38e203d88290a35e813a5751845578554d17b5d4a39ce68257585a5b484a4de94e34388053c735f050c8d5ad50e5d3e8ff4adb24549a9c5c93f6d3e797e064617c4467a2b0391c3c178d97897296e1d70a556d6179f8d6dd4a2eeefc0f89d6baae5cd923ab2c53f5061cd6517fbac137e6c597d666e897d9b01d37196fc34cb743cf6e2dfed436d47cf1f0ce096bf59e8b567deef2a9a976aca8c389a58c5d05dde06b9b86ace8fe032f5fcc170549db2b63969e73cc28dd1cc3a19e7c07a539db027248a24e4e4724a315a5114c41a931bdac502afda8b4efd65d273073770a676b8aa2c4217058feaec2158de496e91e94bb63e7f2ccfeb57a9c159c77b46d767c060144d0e8e789ea5f6c59690dac8e9bb44d4841e6f978d24a6a439d3d39d29d376f6cd39644aaa69538c21f56a66afbadd7fe0a0'),
  ('\xc30d0407030200ac44f07c55a89375d2c1aa015ed31bb571c43f89869f87b4e64175ffff96c774adc7ff758c096ec218f3d76d7092629d40b762f97e22066ffae4e4c6491561df9702f84a4365accab5e52e1c9634ce1ff9fe84420d7df84ff5654028e9a0807574c07ac808c056f233780db8053d926b09cf21c443608f3859045a75add7dc415980dbd83a5a8271d9557fa6ecedca80306041b95da3f8a9f388623e789b0ae1a4b661c54045ad67cd3dcdec78a6cecbeaa163f465cfda5e0335a32c03595b0fbb454b5ef0d50677dd436ede3bf7aa2462c67304d0c7048fd79feaf6b9ac03aa89d637044efff4e1af67123edd56a4e59b047e8557bb804b0f15f026c08fa67ce9e0be5fe6ce57765b0324fc842d235eea5012e256e811b30c949d87a51c336ff6b1b62f23abf98f2828a68ec3c9bec5c09f6a8ba871e03e5fab7c0e4f5a3dfd2e5585fd7f4794ec69835b8209ae3a7ca985c0bb3ba2f7fe81973b30c9f97eae096b41c7beeeed723d22629d77f3ddd065b355579ba4c81fcb584471ca8ee1c9ec95fd9722003b90c480e753bcc819bab5fe9727929d610ffb30bcccd7dcd7e8ad3d52584be7bdcecff492854c4f99fde1dbae2ca8e9e5ad437c395c8334cc633389bf89f91986de81c5bb87d2aef939c8a2a4a95693bb5732293c83086a79cd3733c6b9d803b4cd1937ae7d7801cd780d2213f9343149e39c4ef627841a03ce2013a8cdd9743b521ca46a8dcb4e08bf5052806bc1b65c612ae7b600c74ed6f64d9f514444d3a80ab66910f828254cd32cb88444bedea133eae087a5e66ee6301063c9dabf0a2e23538e3daca928a2d0450de5f32465c070025df7334d1afe445ab62c728a9161bbc5142079336307d129c4bfd0bd')
;


INSERT INTO sqlab_metadata (name, value) VALUES
  ('author_affiliation', '"LCOMS, Université de Lorraine, France"'),
  ('author_contact', '"first_name.last_name at univ-lorraine.fr"'),
  ('author_name', '"Aristide Grange"'),
  ('author_role', '"Adaptation for SQLab"'),
  ('created_at', '"2025-05-29T18:58:31.319782"'),
  ('dbms', '"PostgreSQL"'),
  ('dbms_version', '"16.6"'),
  ('description', '"An SQLab adaptation of SQL Island for PostgreSQL."'),
  ('license_name', '"CC BY-SA 4.0"'),
  ('license_url', '"https://creativecommons.org/licenses/by-sa/4.0/"'),
  ('message_count', '74'),
  ('original_author_affiliation', '"Ostbayerische Technische Hochschule (OTH) Regensburg, Germany"'),
  ('original_author_contact', '"https://www.johannesschildgen.de"'),
  ('original_author_name', '"Johannes Schildgen"'),
  ('original_author_role', '"Dataset and storyline creation"'),
  ('original_dbms', '"SQLite"'),
  ('original_license_name', '"MIT"'),
  ('original_license_url', '"https://opensource.org/licenses/MIT"'),
  ('original_repository', '"https://github.com/jschildgen/sql-island"'),
  ('relational_schema_dark', '"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Generated by Mocodo 4.3.2 -->\n<svg width=\"604\" height=\"180\" viewBox=\"0 0 604 180\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect x=\"0\" y=\"0\" width=\"604\" height=\"180\" fill=\"none\" stroke=\"none\" stroke-width=\"0\"/>\n\n<!-- Entity VILLAGE -->\n<g>\n\t<g>\n\t\t<rect x=\"42\" y=\"45\" width=\"80\" height=\"28\" fill=\"#5F3C14\" stroke=\"none\" stroke-width=\"0\" opacity=\"1\"/>\n\t\t<rect x=\"42\" y=\"73\" width=\"80\" height=\"62\" fill=\"#7C5020\" stroke=\"none\" stroke-width=\"0\" opacity=\"1\"/>\n\t\t<rect x=\"42\" y=\"45\" width=\"80\" height=\"90\" fill=\"none\" stroke=\"#E5A04B\" stroke-width=\"3\" opacity=\"1\"/>\n\t\t<line x1=\"42\" y1=\"73\" x2=\"122\" y2=\"73\" stroke=\"#E5A04B\" stroke-width=\"1.5\"/>\n\t</g>\n\t<text x=\"50\" y=\"65.3\" fill=\"#E3D5B3\" font-family=\"Arial Black\" font-size=\"13\">VILLAGE</text>\n\t<text x=\"50\" y=\"89.2\" fill=\"#E3D5B3\" font-family=\"Arial\" font-size=\"14\">villageid</text>\n\t<line x1=\"50\" y1=\"92\" x2=\"104\" y2=\"92\" stroke=\"#E3D5B3\" stroke-width=\"1.2\"/>\n\t<text x=\"50\" y=\"107.2\" fill=\"#E3D5B3\" font-family=\"Arial\" font-size=\"14\">name</text>\n\t<text x=\"50\" y=\"125.2\" fill=\"#E3D5B3\" font-family=\"Arial\" font-size=\"14\">#chief</text>\n</g>\n\n<!-- Entity INHABITANT -->\n<g>\n\t<g>\n\t\t<rect x=\"254\" y=\"9\" width=\"110\" height=\"28\" fill=\"#5F3C14\" stroke=\"none\" stroke-width=\"0\" opacity=\"1\"/>\n\t\t<rect x=\"254\" y=\"37\" width=\"110\" height=\"134\" fill=\"#7C5020\" stroke=\"none\" stroke-width=\"0\" opacity=\"1\"/>\n\t\t<rect x=\"254\" y=\"9\" width=\"110\" height=\"162\" fill=\"none\" stroke=\"#E5A04B\" stroke-width=\"3\" opacity=\"1\"/>\n\t\t<line x1=\"254\" y1=\"37\" x2=\"364\" y2=\"37\" stroke=\"#E5A04B\" stroke-width=\"1.5\"/>\n\t</g>\n\t<text x=\"263\" y=\"29.3\" fill=\"#E3D5B3\" font-family=\"Arial Black\" font-size=\"13\">INHABITANT</text>\n\t<text x=\"262\" y=\"53.2\" fill=\"#E3D5B3\" font-family=\"Arial\" font-size=\"14\">personid</text>\n\t<line x1=\"262\" y1=\"56\" x2=\"319\" y2=\"56\" stroke=\"#E3D5B3\" stroke-width=\"1.2\"/>\n\t<text x=\"262\" y=\"71.2\" fill=\"#E3D5B3\" font-family=\"Arial\" font-size=\"14\">name</text>\n\t<text x=\"262\" y=\"89.2\" fill=\"#E3D5B3\" font-family=\"Arial\" font-size=\"14\">#villageid</text>\n\t<text x=\"262\" y=\"107.2\" fill=\"#E3D5B3\" font-family=\"Arial\" font-size=\"14\">gender</text>\n\t<text x=\"262\" y=\"125.2\" fill=\"#E3D5B3\" font-family=\"Arial\" font-size=\"14\">job</text>\n\t<text x=\"262\" y=\"143.2\" fill=\"#E3D5B3\" font-family=\"Arial\" font-size=\"14\">gold</text>\n\t<text x=\"262\" y=\"161.2\" fill=\"#E3D5B3\" font-family=\"Arial\" font-size=\"14\">state</text>\n</g>\n\n<!-- Entity ITEM -->\n<g>\n\t<g>\n\t\t<rect x=\"496\" y=\"54\" width=\"66\" height=\"28\" fill=\"#5F3C14\" stroke=\"none\" stroke-width=\"0\" opacity=\"1\"/>\n\t\t<rect x=\"496\" y=\"82\" width=\"66\" height=\"44\" fill=\"#7C5020\" stroke=\"none\" stroke-width=\"0\" opacity=\"1\"/>\n\t\t<rect x=\"496\" y=\"54\" width=\"66\" height=\"72\" fill=\"none\" stroke=\"#E5A04B\" stroke-width=\"3\" opacity=\"1\"/>\n\t\t<line x1=\"496\" y1=\"82\" x2=\"562\" y2=\"82\" stroke=\"#E5A04B\" stroke-width=\"1.5\"/>\n\t</g>\n\t<text x=\"511\" y=\"74.3\" fill=\"#E3D5B3\" font-family=\"Arial Black\" font-size=\"13\">ITEM</text>\n\t<text x=\"504\" y=\"98.2\" fill=\"#E3D5B3\" font-family=\"Arial\" font-size=\"14\">item</text>\n\t<line x1=\"504\" y1=\"101\" x2=\"533\" y2=\"101\" stroke=\"#E3D5B3\" stroke-width=\"1.2\"/>\n\t<text x=\"504\" y=\"116.2\" fill=\"#E3D5B3\" font-family=\"Arial\" font-size=\"14\">#owner</text>\n</g>\n\n<!-- Link from &quot;personid&quot; (VILLAGE) to &quot;personid&quot; (INHABITANT) -->\n<path d=\"M122 123 C188 87 166 51 254 51\" fill=\"none\" stroke=\"#C6A664\" stroke-width=\"1.5\"/>\n<polygon points=\"254 51 242 57 246 51 242 45\" fill=\"#C6A664\" stroke-width=\"0\"/>\n<circle cx=\"122\" cy=\"123\" r=\"3\" stroke=\"#C6A664\" stroke-width=\"3\" fill=\"#C6A664\"/>\n\n<!-- Link from &quot;villageid&quot; (INHABITANT) to &quot;villageid&quot; (VILLAGE) -->\n<path d=\"M254 87 C188 87 210 87 122 87\" fill=\"none\" stroke=\"#C6A664\" stroke-width=\"1.5\"/>\n<polygon points=\"122 87 134 81 130 87 134 93\" fill=\"#C6A664\" stroke-width=\"0\"/>\n<circle cx=\"254\" cy=\"87\" r=\"3\" stroke=\"#C6A664\" stroke-width=\"3\" fill=\"#C6A664\"/>\n\n<!-- Link from &quot;personid&quot; (ITEM) to &quot;personid&quot; (INHABITANT) -->\n<path d=\"M496 114 C430 82.5 452 51 364 51\" fill=\"none\" stroke=\"#C6A664\" stroke-width=\"1.5\"/>\n<polygon points=\"364 51 376 45 372 51 376 57\" fill=\"#C6A664\" stroke-width=\"0\"/>\n<circle cx=\"496\" cy=\"114\" r=\"3\" stroke=\"#C6A664\" stroke-width=\"3\" fill=\"#C6A664\"/>\n</svg>"'),
  ('relational_schema_light', '"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Generated by Mocodo 4.3.2 -->\n<svg width=\"604\" height=\"180\" viewBox=\"0 0 604 180\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect x=\"0\" y=\"0\" width=\"604\" height=\"180\" fill=\"none\" stroke=\"none\" stroke-width=\"0\"/>\n\n<!-- Entity VILLAGE -->\n<g>\n\t<g>\n\t\t<rect x=\"42\" y=\"45\" width=\"80\" height=\"28\" fill=\"#FAA945\" stroke=\"none\" stroke-width=\"0\" opacity=\"1\"/>\n\t\t<rect x=\"42\" y=\"73\" width=\"80\" height=\"62\" fill=\"#FFB94E\" stroke=\"none\" stroke-width=\"0\" opacity=\"1\"/>\n\t\t<rect x=\"42\" y=\"45\" width=\"80\" height=\"90\" fill=\"none\" stroke=\"#CB7E1F\" stroke-width=\"3\" opacity=\"1\"/>\n\t\t<line x1=\"42\" y1=\"73\" x2=\"122\" y2=\"73\" stroke=\"#CB7E1F\" stroke-width=\"1.5\"/>\n\t</g>\n\t<text x=\"50\" y=\"65.3\" fill=\"#645530\" font-family=\"Arial Black\" font-size=\"13\">VILLAGE</text>\n\t<text x=\"50\" y=\"89.2\" fill=\"#645530\" font-family=\"Arial\" font-size=\"14\">villageid</text>\n\t<line x1=\"50\" y1=\"92\" x2=\"104\" y2=\"92\" stroke=\"#645530\" stroke-width=\"1.2\"/>\n\t<text x=\"50\" y=\"107.2\" fill=\"#645530\" font-family=\"Arial\" font-size=\"14\">name</text>\n\t<text x=\"50\" y=\"125.2\" fill=\"#645530\" font-family=\"Arial\" font-size=\"14\">#chief</text>\n</g>\n\n<!-- Entity INHABITANT -->\n<g>\n\t<g>\n\t\t<rect x=\"254\" y=\"9\" width=\"110\" height=\"28\" fill=\"#FAA945\" stroke=\"none\" stroke-width=\"0\" opacity=\"1\"/>\n\t\t<rect x=\"254\" y=\"37\" width=\"110\" height=\"134\" fill=\"#FFB94E\" stroke=\"none\" stroke-width=\"0\" opacity=\"1\"/>\n\t\t<rect x=\"254\" y=\"9\" width=\"110\" height=\"162\" fill=\"none\" stroke=\"#CB7E1F\" stroke-width=\"3\" opacity=\"1\"/>\n\t\t<line x1=\"254\" y1=\"37\" x2=\"364\" y2=\"37\" stroke=\"#CB7E1F\" stroke-width=\"1.5\"/>\n\t</g>\n\t<text x=\"263\" y=\"29.3\" fill=\"#645530\" font-family=\"Arial Black\" font-size=\"13\">INHABITANT</text>\n\t<text x=\"262\" y=\"53.2\" fill=\"#645530\" font-family=\"Arial\" font-size=\"14\">personid</text>\n\t<line x1=\"262\" y1=\"56\" x2=\"319\" y2=\"56\" stroke=\"#645530\" stroke-width=\"1.2\"/>\n\t<text x=\"262\" y=\"71.2\" fill=\"#645530\" font-family=\"Arial\" font-size=\"14\">name</text>\n\t<text x=\"262\" y=\"89.2\" fill=\"#645530\" font-family=\"Arial\" font-size=\"14\">#villageid</text>\n\t<text x=\"262\" y=\"107.2\" fill=\"#645530\" font-family=\"Arial\" font-size=\"14\">gender</text>\n\t<text x=\"262\" y=\"125.2\" fill=\"#645530\" font-family=\"Arial\" font-size=\"14\">job</text>\n\t<text x=\"262\" y=\"143.2\" fill=\"#645530\" font-family=\"Arial\" font-size=\"14\">gold</text>\n\t<text x=\"262\" y=\"161.2\" fill=\"#645530\" font-family=\"Arial\" font-size=\"14\">state</text>\n</g>\n\n<!-- Entity ITEM -->\n<g>\n\t<g>\n\t\t<rect x=\"496\" y=\"54\" width=\"66\" height=\"28\" fill=\"#FAA945\" stroke=\"none\" stroke-width=\"0\" opacity=\"1\"/>\n\t\t<rect x=\"496\" y=\"82\" width=\"66\" height=\"44\" fill=\"#FFB94E\" stroke=\"none\" stroke-width=\"0\" opacity=\"1\"/>\n\t\t<rect x=\"496\" y=\"54\" width=\"66\" height=\"72\" fill=\"none\" stroke=\"#CB7E1F\" stroke-width=\"3\" opacity=\"1\"/>\n\t\t<line x1=\"496\" y1=\"82\" x2=\"562\" y2=\"82\" stroke=\"#CB7E1F\" stroke-width=\"1.5\"/>\n\t</g>\n\t<text x=\"511\" y=\"74.3\" fill=\"#645530\" font-family=\"Arial Black\" font-size=\"13\">ITEM</text>\n\t<text x=\"504\" y=\"98.2\" fill=\"#645530\" font-family=\"Arial\" font-size=\"14\">item</text>\n\t<line x1=\"504\" y1=\"101\" x2=\"533\" y2=\"101\" stroke=\"#645530\" stroke-width=\"1.2\"/>\n\t<text x=\"504\" y=\"116.2\" fill=\"#645530\" font-family=\"Arial\" font-size=\"14\">#owner</text>\n</g>\n\n<!-- Link from &quot;personid&quot; (VILLAGE) to &quot;personid&quot; (INHABITANT) -->\n<path d=\"M122 123 C188 87 166 51 254 51\" fill=\"none\" stroke=\"#4C3D30\" stroke-width=\"1.5\"/>\n<polygon points=\"254 51 242 57 246 51 242 45\" fill=\"#4C3D30\" stroke-width=\"0\"/>\n<circle cx=\"122\" cy=\"123\" r=\"3\" stroke=\"#4C3D30\" stroke-width=\"3\" fill=\"#4C3D30\"/>\n\n<!-- Link from &quot;villageid&quot; (INHABITANT) to &quot;villageid&quot; (VILLAGE) -->\n<path d=\"M254 87 C188 87 210 87 122 87\" fill=\"none\" stroke=\"#4C3D30\" stroke-width=\"1.5\"/>\n<polygon points=\"122 87 134 81 130 87 134 93\" fill=\"#4C3D30\" stroke-width=\"0\"/>\n<circle cx=\"254\" cy=\"87\" r=\"3\" stroke=\"#4C3D30\" stroke-width=\"3\" fill=\"#4C3D30\"/>\n\n<!-- Link from &quot;personid&quot; (ITEM) to &quot;personid&quot; (INHABITANT) -->\n<path d=\"M496 114 C430 82.5 452 51 364 51\" fill=\"none\" stroke=\"#4C3D30\" stroke-width=\"1.5\"/>\n<polygon points=\"364 51 376 45 372 51 376 57\" fill=\"#4C3D30\" stroke-width=\"0\"/>\n<circle cx=\"496\" cy=\"114\" r=\"3\" stroke=\"#4C3D30\" stroke-width=\"3\" fill=\"#4C3D30\"/>\n</svg>"'),
  ('repository', '"https://github.com/laowantong/sqlab_island"'),
  ('row_count', '31'),
  ('sqlab_database_language', '"en"'),
  ('sqlab_version', '"0.7.11"'),
  ('table_count', '3'),
  ('table_structures', '{"inhabitant": ["personid", "name", "villageid", "gender", "job", "gold", "state"], "item": ["item", "owner"], "village": ["villageid", "name", "chief"]}'),
  ('title', '"SQLab Island"'),
  ('version', '"3.1.0"')
;


