python3 gen-user.py 1000000 > guser.csv
docker cp.user.csv mydb:/root
docker exec -it mydb /bin/bash
cd /root
mysql -u tiger -p tigerdb --local-infile
myqsl> set global local_infile=ON
mysql> drop table if exists... (테이블 생성)
mysql> load data local infile 'guser.csv' into table user fields terminated by ',';
Last active
September 30, 2024 08:51
-
-
Save honux77/40d78662448796e8a3d5cf439e7ba62e to your computer and use it in GitHub Desktop.
Generate Random User data
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sys | |
import numpy as np | |
import random | |
# setup | |
words = [] | |
if len(sys.argv) < 3: | |
print("Usage: {} numItem numUser".format(sys.argv[0])) | |
exit(1) | |
size = int(sys.argv[1]) | |
usize = int(sys.argv[2]) | |
with open("word.txt") as f: | |
for item in f: | |
words.append(item[:-1]) | |
def genItem(): | |
return "{}-{}".format(random.choice(words), random.randint(100, 20000)) | |
def genUid(): | |
return random.randint(1, usize) | |
def genPrice(): | |
return random.random() * 5000 | |
def printData(id): | |
print("{},{},{},{:.2f}".format(id, genUid(), genItem(), genPrice())) | |
for i in range(1, size + 1): | |
printData(i) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sys | |
import numpy as np | |
import random | |
""" | |
Generate player data for testing | |
# Player(id, name, nickname, rank, money, start_date, last_login) | |
# id: int pk auto_increment | |
# name: 한글 2-5글자 | |
# nickname: 영문 32글자 이내, unique | |
# grank: 1 - 10, 정규분포로 1 쪽으로 갈수록 빈도가 높을 것 | |
# money: $ 0.00- 99,999,999.99, 정규분포 | |
# start_date: 최근 1년 이내의 날짜, 정규분포의 절반, 오래된 플레이어가 더 많을 것 | |
# last_login: start_date 보다 클 것, 최근 3개월 이내, 정규분포의 절반, 최근 플레이어가 더 많을 것, NUNLL 허용 | |
""" | |
if len(sys.argv) < 2: | |
print("Usage: python gen-player.py [numPlayers]") | |
exit(1) | |
else: | |
numPlayers = int(sys.argv[1]) | |
# global variables and Constants | |
MAX_MONEY = 99999999.99 | |
# oldest login month | |
# LAST_START = current - 1 year | |
# LAST_LOGIN = current - 91 days | |
np.random.seed(0) | |
# read words | |
with open("word.txt") as f: | |
words = [line.strip() for line in f] | |
moneyDisribution = np.random.normal(0.5, 0.1, numPlayers) * MAX_MONEY | |
rankDistribution = np.random.exponential(scale=1, size=numPlayers) | |
rankDistribution = np.round(rankDistribution / np.max(rankDistribution) * 10).astype( | |
int | |
) | |
startDateDistribution = np.random.exponential(scale=1, size=numPlayers) | |
maxStartMinutes = 365 * 24 * 60 | |
startDateDistribution = maxStartMinutes - abs( | |
startDateDistribution / np.max(startDateDistribution) * maxStartMinutes | |
) | |
maxLastVisitMinutes = 91 * 24 * 60 | |
lastVisitDistribution = np.random.exponential(scale=1, size=numPlayers) | |
lastVisitDistribution = maxLastVisitMinutes - abs( | |
lastVisitDistribution / np.max(lastVisitDistribution) * 91 | |
) | |
def genString(length): | |
az = "abcdefghijklmnopqrstuvwxyz" | |
ret = [] | |
for i in range(length): | |
ret.append(random.choice(az)) | |
return "".join(ret) | |
def generateName(): | |
fisrt = "김이박최정강조윤장임오한신권고" | |
others = "은지현승수영진석성준희우호동철주태연동해물과백두산이마르고닳도록하느님이보우하사우리나라만세" | |
length = random.randint(1, 4) | |
name = random.choice(fisrt) | |
for i in range(length): | |
name += random.choice(others) | |
return name | |
def generateNickname(id): | |
global words | |
global numPlayers | |
return "{}-{}-{}".format( | |
random.choice(words), genString(5), random.randint(1, numPlayers * 100) | |
) | |
def generateRank(id): | |
return rankDistribution[id - 1] | |
# 돈은 정규분포로 | |
# dec(10, 2) 포맷으로 리턴 | |
def generateMoney(id): | |
return "{:.2f}".format(moneyDisribution[id - 1]) | |
# 현재 시각에서 30일 이전 시각을 임의로 생성 | |
def generateStartDate(id): | |
import datetime | |
d = datetime.datetime.now() - datetime.timedelta( | |
minutes=int(startDateDistribution[id - 1]) | |
) | |
return d.strftime("%Y-%m-%d %H:%M:%S") | |
def generateLastVisitDate(id): | |
import datetime | |
d = datetime.datetime.now() - datetime.timedelta( | |
minutes=lastVisitDistribution[id - 1] | |
) | |
return d.strftime("%Y-%m-%d %H:%M:%S") | |
def generateRecord(id): | |
# Player(id, nickname, rank, money, start_date, last_login) | |
# id is auto increment for MySQL | |
return f"{id},{generateName()},{generateNickname(id)},{generateRank(id)},{generateMoney(id)},{generateStartDate(id)},{generateLastVisitDate(id)}" | |
def main(numPlayers): | |
for i in range(numPlayers): | |
print(generateRecord(i + 1)) | |
if __name__ == "__main__": | |
main(numPlayers) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# sudo mysql -u root tigerdb --local-infile=1 < insert.sql | |
set | |
global local_infile = 1; | |
alter table | |
guser disable keys; | |
set | |
foreign_key_checks = 0; | |
load data local infile 'guser.csv' into table guser fields terminated by ','; | |
load data local infile 'trade.csv' into table trade fields terminated by ','; | |
alter table | |
guser enable keys; | |
set | |
foreign_key_checks = 1; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Player(id, nickname, rank, money, start_date, last_login) | |
# id: int pk auto_increment | |
# name: 한글 2- 5글자 | |
# nickname: 영문 8 - 32글자, unique | |
# grank: 1 - 10 | |
# money: $ 0.00 - 99,999,999.99 | |
# start_date: 최근 1년 이내의 날짜 | |
# last_login: start_date 보다 클 것, 최근 3개월 이내, NULL 가능 | |
drop table if exists trade; | |
drop table if exists guser; | |
create table guser ( | |
id int primary key auto_increment, | |
name varchar(5), | |
nickname varchar(64) unique, | |
grank tinyint, | |
money dec(10, 2), | |
start_date datetime, | |
last_visit datetime | |
) character set utf8mb4; | |
create table trade ( | |
id int primary key auto_increment, | |
seller int, | |
item_name varchar(255), | |
price dec(10, 2), | |
foreign key (seller) references guser(id) | |
) character set utf8mb4; |
Bulk insert 시에 사용하는 일반적인 성능향상 팁들
ALTER TABLE your_table DISABLE KEYS;
-- 데이터 로드
ALTER TABLE your_table ENABLE KEYS;
SET foreign_key_checks = 0;
-- 데이터 로드
SET foreign_key_checks = 1;
SET autocommit = 0;
-- 데이터 로드
COMMIT;
LOCK TABLES your_table WRITE;
-- 데이터 로드
UNLOCK TABLES;
SET GLOBAL bulk_insert_buffer_size = 512 * 1024 * 1024; -- 예: 512MB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# 사용자 데이터 샘플을 생성하는 예제\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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VqpWIiIi0k+VuhurutWrVw/29vZISEgAAKhUKty8eVOtTUFBAe7cuVNmPx/gcT8gKysrtYGIiIjk6YUKOzdu3MDt27fh7OwMAPD19cW9e/dw6tQpqc3+/ftRVFSEtm3b6qpMIiIi0iM6/RrrwYMH0lUaAEhKSsLZs2dha2sLW1tbzJw5E8HBwVCpVEhMTMQHH3yA+vXrIzAwEADg6emJoKAgjBkzBkuXLkV+fj7CwsIwePBg3olFREREAHR8ZefkyZN45ZVX8MorrwAAJk+ejFdeeQWfffYZDA0NERsbi9dffx0NGzbE6NGj4ePjgyNHjki3vgPA2rVr0bhxY/j7+6NHjx7o0KEDli1bpqtdIiIiIj2j0ys7nTp1euavMO/evfu567C1tUVUVJQ2yyIiIiIZeaH67BARERFVFMMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyZqRrgsgIiKi8ktOTkZGRkaFl4uLi6uCal4MDDtEREQviOTkZDRq7Inchzm6LuWFwrBDRET0gsjIyEDuwxzY9XofxnauFVr24T8nkXnkpyqqTL8x7BAREb1gjO1coVTVr9Ay+bevV1E1+o8dlImIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1nQadg4fPozevXvDxcUFCoUC27ZtU5svhMBnn30GZ2dn1KhRAwEBAbhy5Ypamzt37mDo0KGwsrKCjY0NRo8ejQcPHlTjXhAREZE+02nYyc7ORvPmzREZGVnq/Hnz5mHRokVYunQpTpw4AXNzcwQGBiI3N1dqM3ToUFy8eBF79uzBjh07cPjwYYwdO7a6doGIiIj0nE4fF9G9e3d079691HlCCHzzzTf45JNP0KdPHwDA6tWr4eTkhG3btmHw4MGIi4vDrl278Ndff6FVq1YAgMWLF6NHjx7473//CxcXl2rbFyIiItJPettnJykpCWlpaQgICJCmWVtbo23btoiJiQEAxMTEwMbGRgo6ABAQEAADAwOcOHGizHXn5eUhKytLbSAiIiJ50tuwk5aWBgBwcnJSm+7k5CTNS0tLg6Ojo9p8IyMj2NraSm1KExERAWtra2lwda3Yk2OJiIjoxaG3YacqhYeHIzMzUxquX395nwRLREQkd3obdlQqFQAgPT1dbXp6ero0T6VS4ebNm2rzCwoKcOfOHalNaZRKJaysrNQGIiIikie9DTvu7u5QqVTYt2+fNC0rKwsnTpyAr68vAMDX1xf37t3DqVOnpDb79+9HUVER2rZtW+01ExERkf7R6d1YDx48QEJCgjSelJSEs2fPwtbWFnXq1MHEiRPx+eefo0GDBnB3d8enn34KFxcX9O3bFwDg6emJoKAgjBkzBkuXLkV+fj7CwsIwePBg3olFREREAHQcdk6ePInOnTtL45MnTwYAhISEYNWqVfjggw+QnZ2NsWPH4t69e+jQoQN27doFU1NTaZm1a9ciLCwM/v7+MDAwQHBwMBYtWlTt+0JERET6Sadhp1OnThBClDlfoVBg1qxZmDVrVpltbG1tERUVVRXlERERkQzobZ8dIiIiIm1g2CEiIiJZY9ghIiIiWWPYISIiIllj2CEiIiJZY9ghIiIiWdPpredEREQvo+TkZGRkZFR4ubi4uCqoRv4YdoiIiKpRcnIyGjX2RO7DHF2X8tJg2CEiIqpGGRkZyH2YA7te78PYzrVCyz785yQyj/xURZXJF8MOERGRDhjbuUKpql+hZfJvX6+iauSNHZSJiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWjHRdABER0YsoOTkZGRkZFV4uLi6uCqqhZ2HYISIiqqDk5GQ0auyJ3Ic5ui6FyoFhh4iIqIIyMjKQ+zAHdr3eh7Gda4WWffjPSWQe+amKKqPSMOwQERFpyNjOFUpV/Qotk3/7ehVVQ2VhB2UiIiKSNYYdIiIikjWGHSIiIpI1vQ47M2bMgEKhUBsaN24szc/NzUVoaCjs7OxgYWGB4OBgpKen67BiIiIi0jd6HXYAoGnTpkhNTZWGo0ePSvMmTZqEX3/9FZs2bcKhQ4eQkpKC/v3767BaIiIi0jd6fzeWkZERVCpViemZmZlYvnw5oqKi0KVLFwDAypUr4enpiePHj6Ndu3bVXSoRERHpIb2/snPlyhW4uLigXr16GDp0KJKTkwEAp06dQn5+PgICAqS2jRs3Rp06dRATE/PMdebl5SErK0ttICIiInnS67DTtm1brFq1Crt27cKSJUuQlJSEjh074v79+0hLS4OJiQlsbGzUlnFyckJaWtoz1xsREQFra2tpcHWt2A9CERER0YtDr7/G6t69u/Rvb29vtG3bFm5ubti4cSNq1Kih8XrDw8MxefJkaTwrK4uBh4iISKb0Ouw8zcbGBg0bNkRCQgK6du2KR48e4d69e2pXd9LT00vt4/MkpVIJpVJZxdUSEVF10PSBnABgb2+POnXqaLki0jcvVNh58OABEhMTMXz4cPj4+MDY2Bj79u1DcHAwACA+Ph7Jycnw9fXVcaVERFQdKvtATtMaZoi/HMfAI3N6HXamTJmC3r17w83NDSkpKZg+fToMDQ3x5ptvwtraGqNHj8bkyZNha2sLKysrvPvuu/D19eWdWEREL4nKPJAz//Z13N4xHxkZGQw7MqfXYefGjRt48803cfv2bTg4OKBDhw44fvw4HBwcAABff/01DAwMEBwcjLy8PAQGBuLbb7/VcdVERFTdNHkgJ7089DrsrF+//pnzTU1NERkZicjIyGqqiIiIiF40en3rOREREVFlMewQERGRrOn111hERERVLS4urlqWId1h2CEiopdS4YO7gEKBYcOG6boUqmIMO0RE9FIqynsACKHRbesP/zmJzCM/VVFlpG0MO0RE9FLT5Lb1/NvXq6gaqgrsoExERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxsdFEBGRziUnJyMjI6PCy/Hp41QeDDtERKRTycnJaNTYE7kPc3RdCskUww4REWlFZa7O5D7M4dPHqcow7BARUaVp4+oMnz5OVYVhh4iIKi0jI4NXZ0hvMewQEZHW8OoM6SPeek5ERESyxrBDREREssawQ0RERLLGPjtERDKj6S3gAJCXlwelUlnh5fjjfqTPGHaIiGSk0reAKwwAUaTdooh0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", | |
"text/plain": [ | |
"<Figure size 640x480 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"\n", | |
"# 최근 접속 날짜 데이터 생성\n", | |
"np.random.seed(0) # 재현성을 위해 시드 설정\n", | |
"size = 1000 # 데이터 샘플 크기\n", | |
"# 좌측 편향 분포 생성 (최근 날짜에 집중된 데이터)\n", | |
"data = np.random.exponential(scale=1, size=size)\n", | |
"data = 1 - data / np.max(data) # 값을 0에서 1로 정규화하여 최근에 집중되게 만듦\n", | |
"\n", | |
"# 데이터를 최근 날짜 기준으로 변환 (예: 일 단위로 변환)\n", | |
"recent_days = 30 # 최근 30일을 기준으로 설정\n", | |
"dates = np.round(data * recent_days).astype(int)\n", | |
"\n", | |
"# 히스토그램으로 데이터 분포 시각화\n", | |
"plt.hist(dates, bins=30, edgecolor='k')\n", | |
"plt.title('Left-Skewed Distribution of User Access Dates')\n", | |
"plt.xlabel('Days Ago')\n", | |
"plt.ylabel('Frequency')\n", | |
"\n", | |
"# 이미지 파일로 저장\n", | |
"# plt.savefig('user_access_dates_histogram.png')\n", | |
"\n", | |
"# 그래프 표시\n", | |
"plt.show()\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHHCAYAAABZbpmkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABdhUlEQVR4nO3deXwNV+MG8Odmu4nIIusNkojYEmJpVKSoLRWEWqKWWmIpqtHaqnjf1lpNqa3a4G1LUFRR26u22LcIUlSJWIprydIgu+zn94df5nWzievGTcbz/XzmU3fm3JlzMiOenjlnRiGEECAiIiKSKQN9V4CIiIioPDHsEBERkawx7BAREZGsMewQERGRrDHsEBERkawx7BAREZGsMewQERGRrDHsEBERkawx7BAREZGsMey85tq1a4d27dpp/d1GjRrptkIvaPXq1VAoFDh37pxe6/Eybt++DYVCgdWrV+t83wU/n9u3b+t834UNHToUtWrVkj4XtGvBggXlfmwAmDlzJhQKxSs5lrZyc3Px2WefwdnZGQYGBujZs6e+q0T0WmDYkZmCf9wKFiMjI9SoUQNDhw7F/fv39VKnBw8eYObMmbhw4UKZv5Ofn4+1a9fCx8cHNjY2sLCwQL169TBkyBCcPn26/CpbgR05ckTj3CqVSjg6OqJdu3b46quv8M8//+jkOBkZGZg5cyaOHDmik/3pUkWuW1msWrUK33zzDfr06YM1a9ZgwoQJJZatVasWunXrVuy2c+fOlVtAflnLli2DQqGAj4+PvqvyShT+fWtjYwNvb2+MGzcOV65c0Xq/lf1ar2iM9F0BKh+zZ8+Gm5sbMjMzcfr0aaxevRonTpzAX3/9BVNTU6nc/v37y70uDx48wKxZs1CrVi00bdq0TN/55JNPEBoaih49emDgwIEwMjJCTEwM9uzZg9q1a6Nly5blW+kK7JNPPsGbb76JvLw8/PPPPzh16hRmzJiBRYsWYdOmTejQoYNUdvDgwejfvz+USmWZ95+RkYFZs2YBwAv1+v3444/Iz88vc3ltlFa3zz//HFOnTi3X47+sQ4cOoUaNGli8eLG+q1Ju1q9fj1q1auHMmTO4ceMG6tSpo+8qlbt33nkHQ4YMgRACycnJuHjxItasWYNly5Zh3rx5mDhx4gvvU9u/h1Q8hh2Z6tKlC5o3bw4A+OCDD2BnZ4d58+Zh586d6Nu3r1TOxMREX1UsUXx8PJYtW4aRI0fihx9+0Ni2ZMkSnfVgVFZt2rRBnz59NNZdvHgRnTp1QmBgIK5cuQInJycAgKGhIQwNDcu1Punp6TA3N4exsXG5Hud5jIyMYGRUsX+lJSQkwNraWt/V0ErBeS7NrVu3cOrUKWzduhWjR4/G+vXrMWPGjFdUQ/2pV68eBg0apLHu66+/Rvfu3TFp0iQ0aNAAXbt21VPtCOBtrNdGmzZtAAA3b97UWF/cmJ07d+7g3Xffhbm5ORwcHDBhwgTs27cPCoWi2C7VK1euoH379qhSpQpq1KiB+fPnS9uOHDmCN998EwAwbNgwqbu3tO73W7duQQiBVq1aFdmmUCjg4OBQalsfP36MFi1aoGbNmoiJiQEAZGVlYcaMGahTpw6USiWcnZ3x2WefISsrS/pe79698cYbb2jsq3v37lAoFNi5c6e0LjIyEgqFAnv27JHWJSUlYfz48XB2doZSqUSdOnUwb968Ij0dSUlJGDp0KKysrGBtbY2goCAkJSWV2p6yaNKkCZYsWYKkpCR8//330vrixuycO3cO/v7+sLOzg5mZGdzc3DB8+HAAT8fZ2NvbAwBmzZolna+ZM2cCeDoup2rVqrh58ya6du0KCwsLDBw4UNr27JidZy1evBiurq4wMzND27Zt8ddff2lsL2ns2LP7fF7dihuzk5ubizlz5sDd3R1KpRK1atXCv/71L43zDvzvltGJEyfQokULmJqaonbt2li7dm3xP/BC0tPTMWnSJOn8169fHwsWLIAQQqq7QqHA4cOHcfnyZanuurxFERcXh2HDhqFmzZpQKpVwcnJCjx49iozX2rNnD9q0aQNzc3NYWFggICAAly9f1ihT2nkuzfr161GtWjUEBASgT58+WL9+fbHlkpKSMGHCBNSqVQtKpRI1a9bEkCFDkJiYKJXJzMzEzJkzUa9ePZiamsLJyQm9e/fW+B2Wn5+PJUuWoGHDhjA1NYWjoyNGjx6Nx48faxyvtGu+wMaNG+Ht7Q0LCwtYWlrCy8sL33777XPbXBJbW1ts3LgRRkZGmDt3rrQ+Ozsb06dPh7e3N6ysrGBubo42bdrg8OHDUpnnXesAcPXqVfTp0wc2NjYwNTVF8+bNNX5PAUBOTg5mzZqFunXrwtTUFLa2tmjdujXCw8O1bldlVbH/N4h0puAXXrVq1Uotl56ejg4dOiA2Nhbjxo2DSqXChg0bNP4iPuvx48fo3Lkzevfujb59+2LLli2YMmUKvLy80KVLF3h4eGD27NmYPn06Ro0aJYWut956q8Q6uLq6AgA2b96M9957D1WqVClzOxMTE/HOO+/g0aNHOHr0KNzd3ZGfn493330XJ06cwKhRo+Dh4YFLly5h8eLFuHbtGrZv3w7gaSDcsWMHUlJSYGlpCSEETp48CQMDAxw/fhzvvvsuAOD48eMwMDCQwlhGRgbatm2L+/fvY/To0XBxccGpU6cwbdo0xMbGYsmSJQAAIQR69OiBEydO4MMPP4SHhwe2bduGoKCgMrevNH369MGIESOwf/9+jV+uz0pISECnTp1gb2+PqVOnwtraGrdv38bWrVsBAPb29li+fDnGjBmDXr16oXfv3gCAxo0bS/vIzc2Fv78/WrdujQULFjz3/KxduxapqakIDg5GZmYmvv32W3To0AGXLl2Co6NjmdtXlroV9sEHH2DNmjXo06cPJk2ahMjISISEhCA6Ohrbtm3TKHvjxg3pZxgUFIRVq1Zh6NCh8Pb2RsOGDUs8hhAC7777Lg4fPowRI0agadOm2LdvHyZPnoz79+9j8eLFsLe3x88//4y5c+ciLS0NISEhAAAPD48yt/95AgMDcfnyZXz88ceoVasWEhISEB4eDrVaLQXGn3/+GUFBQfD398e8efOQkZGB5cuXo3Xr1jh//rxGWH3R8ww8DTu9e/eGiYkJBgwYgOXLl+Ps2bPS//AAQFpaGtq0aYPo6GgMHz4cb7zxBhITE7Fz507cu3cPdnZ2yMvLQ7du3XDw4EH0798f48aNQ2pqKsLDw/HXX3/B3d0dADB69GisXr0aw4YNwyeffIJbt27h+++/x/nz53Hy5EkYGxs/95oHgPDwcAwYMAAdO3bEvHnzAADR0dE4efIkxo0bp/U5cXFxQdu2bXH48GHp90pKSgp++uknDBgwACNHjkRqaipWrlwJf39/nDlzBk2bNn3utX758mW0atUKNWrUwNSpU2Fubo5NmzahZ8+e+O2339CrVy8AT/8HICQkBB988AFatGiBlJQUnDt3Dn/88QfeeecdrdtVKQmSlbCwMAFAHDhwQPzzzz/i7t27YsuWLcLe3l4olUpx9+5djfJt27YVbdu2lT4vXLhQABDbt2+X1j158kQ0aNBAABCHDx/W+C4AsXbtWmldVlaWUKlUIjAwUFp39uxZAUCEhYWVuR1DhgwRAES1atVEr169xIIFC0R0dHSJ7T179qyIjY0VDRs2FLVr1xa3b9+Wyvz888/CwMBAHD9+XOO7K1asEADEyZMnNeq5e/duIYQQf/75pwAg3nvvPeHj4yN979133xXNmjWTPs+ZM0eYm5uLa9euaex/6tSpwtDQUKjVaiGEENu3bxcAxPz586Uyubm5ok2bNmX6+Rw+fFgAEJs3by6xTJMmTUS1atWK/Hxu3bolhBBi27Zt0s+rJP/8848AIGbMmFFkW1BQkAAgpk6dWuw2V1dX6fOtW7cEAGFmZibu3bsnrY+MjBQAxIQJE6R1ha/DkvZZWt1mzJghnv2VduHCBQFAfPDBBxrlPv30UwFAHDp0SFrn6uoqAIhjx45J6xISEoRSqRSTJk0qcqxnFZzXL7/8UmN9nz59hEKhEDdu3NBoZ8OGDUvd37N1CggIKHZb4b9Tjx8/FgDEN998U+L+UlNThbW1tRg5cqTG+ri4OGFlZaWxvrTzXJJz584JACI8PFwIIUR+fr6oWbOmGDdunEa56dOnCwBi69atRfaRn58vhBBi1apVAoBYtGhRiWWOHz8uAIj169drbN+7d6/G+rJc8+PGjROWlpYiNze3zO0tAEAEBweXum8A4uLFi0KIp3/ns7KyNMo8fvxYODo6iuHDh0vrSrvWO3bsKLy8vERmZqa0Lj8/X7z11luibt260romTZqUeA29bngbS6b8/Pxgb28PZ2dn9OnTB+bm5ti5cydq1qxZ6vf27t2LGjVqSL0YAGBqaoqRI0cWW75q1aoa96pNTEzQokUL/P333y9V/7CwMHz//fdwc3PDtm3b8Omnn8LDwwMdO3YsdlbZvXv30LZtW+Tk5ODYsWNS7xDwtIfIw8MDDRo0QGJiorQUDOQt6LVq1qwZqlatimPHjgF42oNT0L3+xx9/ICMjA0IInDhxQuqhKth/mzZtUK1aNY39+/n5IS8vT9rf7t27YWRkhDFjxkjfNTQ0xMcff/xSP6tnVa1aFampqSVuLxgvsmvXLuTk5Gh9nGfb8Dw9e/ZEjRo1pM8tWrSAj48Pdu/erfXxy6Jg/4UHh06aNAkA8Pvvv2us9/T01Div9vb2qF+//nOv5d27d8PQ0BCffPJJkeMIITRud5YXMzMzmJiY4MiRI0Vu4RQIDw9HUlISBgwYoHGdGhoawsfHp9je2xc5z+vXr4ejoyPat28P4Okt5379+mHjxo3Iy8uTyv32229o0qSJ1PvwrILbkL/99hvs7OyK/btRUGbz5s2wsrLCO++8o9Eeb29vVK1aVWpPWa55a2trpKenl8vtnapVqwKA9PfS0NBQGiuZn5+PR48eITc3F82bN8cff/zx3P09evQIhw4dQt++fZGamiq1++HDh/D398f169el35HW1ta4fPkyrl+/rvN2VTYMOzIVGhqK8PBwbNmyBV27dkViYmKZZuTcuXMH7u7uRcY+lDSjombNmkXKVqtWrcRfuM9KS0tDXFyctDw78NjAwADBwcGIiopCYmIiduzYgS5duuDQoUPo379/kX0NHjwYCQkJOHr0qMY/rABw/fp1XL58Gfb29hpLvXr1ADy9tQM8/SXk6+uL48ePA3gadtq0aYPWrVsjLy8Pp0+fxpUrV/Do0SONfxSvX7+OvXv3Ftm/n5+fxv7v3LkDJycn6Zdfgfr16z/3Z1VWaWlpsLCwKHF727ZtERgYiFmzZsHOzg49evRAWFhYkTEspTEyMnpuaH5W3bp1i6yrV69euT/7586dOzAwMChy7apUKlhbW+POnTsa611cXIrsoyzX8p07d1C9evUiP/eCW1SFj6NLBX/3lEol5s2bhz179sDR0RFvv/025s+fj7i4OKlswT94HTp0KHKt7t+/X7pOC7zIec7Ly8PGjRvRvn173Lp1Czdu3MCNGzfg4+OD+Ph4HDx4UCp78+bN5z6f6+bNm6hfv36pA86vX7+O5ORkODg4FGlPWlqa1J6yXPMfffQR6tWrhy5duqBmzZoYPnw49u7dW6a2P09aWhoAaFwfa9asQePGjaVxNPb29vj999+RnJz83P3duHEDQgh88cUXRdpdMBi8oO2zZ89GUlIS6tWrBy8vL0yePBl//vmnTtpV2XDMjky1aNFCmo3Vs2dPtG7dGu+//z5iYmKK/GP7Mkqa6SP+f2BmaRYsWCBNrQSejtUp7h9AW1tbvPvuu3j33XfRrl07HD16FHfu3NHovenduzfWrl2Lb7/9VhoPUSA/Px9eXl5YtGhRsfVwdnaW/ty6dWvMnTsXmZmZOH78OP7973/D2toajRo1wvHjx6UxJs+Gnfz8fLzzzjv47LPPit1/Qagqbzk5Obh27Vqp/5AoFAps2bIFp0+fxn//+1/s27cPw4cPx8KFC3H69OkyXRtKpRIGBrr9/ySFQlHsNfNsj8DL7LssXuZaLg+mpqZ48uRJsdsyMjKkMgXGjx+P7t27Y/v27di3bx+++OILhISE4NChQ2jWrJk0WP7nn3+GSqUqss/CweJFzvOhQ4cQGxuLjRs3YuPGjUW2r1+/Hp06dSrTvsoqPz8fDg4OJQ6CLhjgW5Zr3sHBARcuXMC+ffuwZ88e7NmzB2FhYRgyZAjWrFnzUvX866+/YGhoCDc3NwDAunXrMHToUPTs2ROTJ0+Gg4MDDA0NERISUmQCSUntBoBPP/0U/v7+xZYpCPhvv/02bt68iR07dmD//v346aefsHjxYqxYsQIffPDBS7WrsmHYeQ0U/EVq3749vv/++1KfReLq6oorV65ACKHxj8SNGze0Pn5J/9gMGTIErVu3lj6bmZk9d1/NmzfH0aNHERsbqxF2Pv74Y9SpUwfTp0+HlZWVRhvd3d1x8eJFdOzY8bn/8LVp0wbZ2dn45ZdfcP/+fSnUvP3221LYqVevnsbAWnd3d6SlpUk9OSVxdXXFwYMHkZaWphEqCmaMvawtW7bgyZMnJf4CfFbLli3RsmVLzJ07Fxs2bMDAgQOxceNGfPDBBzp/CnFxXejXrl3TGAxbrVq1Ym8XFe4VeZG6ubq6Ij8/H9evX9cYCBwfH4+kpCSN6+dluLq64sCBA0hNTdX4v/erV69K27Xdb0kPpSu4Zgrv293dHZMmTcKkSZNw/fp1NG3aFAsXLsS6deukQb0ODg7PvVZf1Pr16+Hg4IDQ0NAi27Zu3Ypt27ZhxYoVMDMzg7u7e5HZeIW5u7sjMjISOTk5JT7SwN3dHQcOHECrVq3K9LujtGseeHoLvnv37ujevTvy8/Px0Ucf4T//+Q+++OILrZ8VpFarcfToUfj6+krXxpYtW1C7dm1s3bpV43ouPEW/pGu9du3aAABjY+MynUcbGxsMGzYMw4YNQ1paGt5++23MnDnztQs7vI31mmjXrh1atGiBJUuWIDMzs8Ry/v7+uH//vsYUxszMTPz4449aH7vg2RyFp1jXrl0bfn5+0lIwuykuLq7YX/LZ2dk4ePBgsbcmAOCLL77Ap59+imnTpmH58uXS+r59++L+/fvFtuHJkydIT0+XPvv4+MDY2Bjz5s2DjY2NNAunTZs2OH36NI4eParRq1Ow/4iICOzbt6/I/pOSkpCbmwsA6Nq1K3JzczXqlpeXh++++67I917UxYsXMX78eFSrVg3BwcEllnv8+HGRnoqCBz0WdOsXzLrRxZR4ANi+fbvGOKszZ84gMjISXbp0kda5u7vj6tWrGrcyL168iJMnT2rs60XqVvBck4LZcAUKevgCAgJeqB2lHScvL09jyj/wdLq9QqHQaOeL7vfevXvSbMECWVlZ+Omnn+Dg4CA9KiEjI6PI32t3d3dYWFhI59Xf3x+Wlpb46quvih27ou3zq548eYKtW7eiW7du6NOnT5Fl7NixSE1NlX6nBAYG4uLFi0VmwwH/60ULDAxEYmJikZ/ps2X69u2LvLw8zJkzp0iZ3Nxc6RopyzX/8OFDje0GBgbSzKcXucX7rEePHmHAgAHIy8vDv//9b2l9QQ/is3WKjIxERESExvdLutYdHBzQrl07/Oc//0FsbGyR4z57Hgu3q2rVqqhTp47WbarM2LPzGpk8eTLee+89rF69Gh9++GGxZUaPHo3vv/8eAwYMwLhx4+Dk5IT169dL3eXa/F+/u7s7rK2tsWLFClhYWMDc3Bw+Pj5St25h9+7dQ4sWLdChQwd07NgRKpUKCQkJ+OWXX6R/1O3s7Ir97jfffIPk5GQEBwfDwsICgwYNwuDBg7Fp0yZ8+OGHOHz4MFq1aoW8vDxcvXoVmzZtwr59+6RbflWqVIG3tzdOnz4tPWMHeNqzk56ejvT09CJhZ/Lkydi5cye6desmTVVOT0/HpUuXsGXLFty+fRt2dnbo3r07WrVqhalTp+L27dvw9PTE1q1by3Sf/lnHjx9HZmYm8vLy8PDhQ5w8eRI7d+6ElZUVtm3bVuwtigIFT3Xt1asX3N3dkZqaih9//BGWlpZSODAzM4Onpyd+/fVX1KtXDzY2NmjUqJHW70GrU6cOWrdujTFjxiArKwtLliyBra2txm2/4cOHY9GiRfD398eIESOQkJCAFStWoGHDhkhJSZHKvUjdmjRpgqCgIPzwww9ISkpC27ZtcebMGaxZswY9e/aUBtK+rO7du6N9+/b497//jdu3b6NJkybYv38/duzYgfHjx0s9Ki9q1KhRWLVqFd577z0MHz4czZo1w8OHD/Hrr7/ir7/+wtq1a6WBrteuXUPHjh3Rt29feHp6wsjICNu2bUN8fLw0xs3S0hLLly/H4MGD8cYbb6B///6wt7eHWq3G77//jlatWhUbLp5n586dSE1N1ZjU8KyWLVvC3t4e69evR79+/TB58mRs2bJFape3tzcePXqEnTt3YsWKFWjSpAmGDBmCtWvXYuLEiThz5gzatGmD9PR0HDhwAB999BF69OiBtm3bYvTo0QgJCcGFCxfQqVMnGBsb4/r169i8eTO+/fZb6bUcz7vmP/jgAzx69AgdOnRAzZo1cefOHXz33Xdo2rRpmR4PcO3aNaxbtw5CCKSkpODixYvYvHkz0tLSsGjRInTu3Fkq261bN2zduhW9evVCQEAAbt26hRUrVsDT01Ma3wOUfq2HhoaidevW8PLywsiRI1G7dm3Ex8cjIiIC9+7dw8WLFwE8HXTfrl07eHt7w8bGBufOncOWLVswduzYFz7PlZ5e5oBRuXl2KnZheXl5wt3dXbi7u0tTLIub8vv333+LgIAAYWZmJuzt7cWkSZPEb7/9JgCI06dPS+VKmkZbeLqwEELs2LFDeHp6CiMjo+dOs05JSRHffvut8Pf3FzVr1hTGxsbCwsJC+Pr6ih9//FGaelpSe/Py8sSAAQOEkZGRNIU+OztbzJs3TzRs2FAolUpRrVo14e3tLWbNmiWSk5M1jj958mQBQMybN09jfZ06dQQAcfPmzSJ1Tk1NFdOmTRN16tQRJiYmws7OTrz11ltiwYIFIjs7Wyr38OFDMXjwYGFpaSmsrKzE4MGDxfnz519o6nnBYmxsLOzt7cXbb78t5s6dKxISEop8p/DU8z/++EMMGDBAuLi4CKVSKRwcHES3bt3EuXPnNL536tQp4e3tLUxMTDSmvwYFBQlzc/Ni61fS1PNvvvlGLFy4UDg7OwulUinatGkjTcN91rp160Tt2rWFiYmJaNq0qdi3b1+x11JJdSs89VwIIXJycsSsWbOEm5ubMDY2Fs7OzmLatGkaU3aFKHmad0lT4gtLTU0VEyZMENWrVxfGxsaibt264ptvvtG4Vgv2V9ap50I8nZI8YcIEqf6Wlpaiffv2Ys+ePRrlEhMTRXBwsGjQoIEwNzcXVlZWwsfHR2zatKnIPg8fPiz8/f2FlZWVMDU1Fe7u7mLo0KEa10Bp57mw7t27C1NTU5Genl5imaFDhwpjY2ORmJgohHj692Ds2LGiRo0awsTERNSsWVMEBQVJ24UQIiMjQ/z73/+W2q5SqUSfPn2K/P374YcfhLe3tzAzMxMWFhbCy8tLfPbZZ+LBgwdCiLJd81u2bBGdOnUSDg4OwsTERLi4uIjRo0eL2NjY57b/2b+TBgYGwtraWjRr1kyMGzdOXL58uUj5/Px88dVXXwlXV1ehVCpFs2bNxK5du17oWhdCiJs3b4ohQ4YIlUoljI2NRY0aNUS3bt3Eli1bpDJffvmlaNGihbC2thZmZmaiQYMGYu7cuRq/k14XCiH0NPqOKpUlS5ZgwoQJuHfvXpHZTkRERBUZww4V8eTJE40Bf5mZmWjWrBny8vJw7do1PdaMiIjoxXHMDhXRu3dvuLi4oGnTpkhOTsa6detw9erVEqd4EhERVWQMO1SEv78/fvrpJ6xfvx55eXnw9PTExo0b0a9fP31XjYiI6IXxNhYRERHJGp+zQ0RERLLGsENERESyxjE7ePqukQcPHsDCwkLnj8onIiKi8iGEQGpqKqpXr17qu9wYdgA8ePBA42WQREREVHncvXsXNWvWLHE7ww4gvaDt7t27sLS01HNtiIiIqCxSUlLg7Oys8RLe4jDs4H/ve7K0tGTYISIiqmSeNwSFA5SJiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNaM9F2B15FarUZiYqL02c7ODi4uLnqsERERkXwx7LxiarUa9Rt4IPNJhrTO1KwKYq5GM/AQERGVA4adVywxMRGZTzJg220SjG2dkfPwLh7uWojExESGHSIionLAsKMnxrbOUKrq6LsaREREsscBykRERCRrDDtEREQkaww7REREJGscs1POCk8zj46O1mNtiIiIXj8MO+WouGnmRERE9Gox7JSjwtPMAeDJ3+eQfHydnmtGRET0+mDYeQWenWae8/CunmtDRET0euEAZSIiIpI1hh0iIiKSNYYdIiIikjWGHSIiIpI1hh0iIiKSNYYdIiIikjWGHSIiIpI1vYadvLw8fPHFF3Bzc4OZmRnc3d0xZ84cCCGkMkIITJ8+HU5OTjAzM4Ofnx+uX7+usZ9Hjx5h4MCBsLS0hLW1NUaMGIG0tLRX3RwiIiKqgPQadubNm4fly5fj+++/R3R0NObNm4f58+fju+++k8rMnz8fS5cuxYoVKxAZGQlzc3P4+/sjMzNTKjNw4EBcvnwZ4eHh2LVrF44dO4ZRo0bpo0lERERUwej1CcqnTp1Cjx49EBAQAACoVasWfvnlF5w5cwbA016dJUuW4PPPP0ePHj0AAGvXroWjoyO2b9+O/v37Izo6Gnv37sXZs2fRvHlzAMB3332Hrl27YsGCBahevbp+GkdEREQVgl57dt566y0cPHgQ165dAwBcvHgRJ06cQJcuXQAAt27dQlxcHPz8/KTvWFlZwcfHBxEREQCAiIgIWFtbS0EHAPz8/GBgYIDIyMhX2BoiIiKqiPTaszN16lSkpKSgQYMGMDQ0RF5eHubOnYuBAwcCAOLi4gAAjo6OGt9zdHSUtsXFxcHBwUFju5GREWxsbKQyhWVlZSErK0v6nJKSorM2ERERUcWi156dTZs2Yf369diwYQP++OMPrFmzBgsWLMCaNWvK9bghISGwsrKSFmdn53I9HhEREemPXsPO5MmTMXXqVPTv3x9eXl4YPHgwJkyYgJCQEACASqUCAMTHx2t8Lz4+XtqmUqmQkJCgsT03NxePHj2SyhQ2bdo0JCcnS8vdu3wTORERkVzpNexkZGTAwECzCoaGhsjPzwcAuLm5QaVS4eDBg9L2lJQUREZGwtfXFwDg6+uLpKQkREVFSWUOHTqE/Px8+Pj4FHtcpVIJS0tLjYWIiIjkSa9jdrp37465c+fCxcUFDRs2xPnz57Fo0SIMHz4cAKBQKDB+/Hh8+eWXqFu3Ltzc3PDFF1+gevXq6NmzJwDAw8MDnTt3xsiRI7FixQrk5ORg7Nix6N+/P2diERERkX7DznfffYcvvvgCH330ERISElC9enWMHj0a06dPl8p89tlnSE9Px6hRo5CUlITWrVtj7969MDU1lcqsX78eY8eORceOHWFgYIDAwEAsXbpUH00iIiKiCkavYcfCwgJLlizBkiVLSiyjUCgwe/ZszJ49u8QyNjY22LBhQznUkIiIiCo7vhuLiIiIZI1hh4iIiGSNYYeIiIhkjWGHiIiIZI1hh4iIiGSNYYeIiIhkjWGHiIiIZI1hh4iIiGSNYYeIiIhkjWGHiIiIZI1hh4iIiGSNYYeIiIhkjWGHiIiIZI1hh4iIiGSNYYeIiIhkjWGHiIiIZI1hh4iIiGSNYYeIiIhkjWGHiIiIZI1hh4iIiGSNYYeIiIhkjWGHiIiIZI1hh4iIiGSNYYeIiIhkjWGHiIiIZI1hh4iIiGSNYYeIiIhkjWGHiIiIZI1hh4iIiGSNYYeIiIhkjWGHiIiIZE2vYadWrVpQKBRFluDgYABAZmYmgoODYWtri6pVqyIwMBDx8fEa+1Cr1QgICECVKlXg4OCAyZMnIzc3Vx/NISIiogpIr2Hn7NmziI2NlZbw8HAAwHvvvQcAmDBhAv773/9i8+bNOHr0KB48eIDevXtL38/Ly0NAQACys7Nx6tQprFmzBqtXr8b06dP10h4iIiKqePQaduzt7aFSqaRl165dcHd3R9u2bZGcnIyVK1di0aJF6NChA7y9vREWFoZTp07h9OnTAID9+/fjypUrWLduHZo2bYouXbpgzpw5CA0NRXZ2tj6bRkRERBVEhRmzk52djXXr1mH48OFQKBSIiopCTk4O/Pz8pDINGjSAi4sLIiIiAAARERHw8vKCo6OjVMbf3x8pKSm4fPlyicfKyspCSkqKxkJERETyVGHCzvbt25GUlIShQ4cCAOLi4mBiYgJra2uNco6OjoiLi5PKPBt0CrYXbCtJSEgIrKyspMXZ2Vl3DSEiIqIKpcKEnZUrV6JLly6oXr16uR9r2rRpSE5Olpa7d++W+zGJiIhIP4z0XQEAuHPnDg4cOICtW7dK61QqFbKzs5GUlKTRuxMfHw+VSiWVOXPmjMa+CmZrFZQpjlKphFKp1GELdE+tViMxMVH6bGdnBxcXFz3WiIiIqHKqED07YWFhcHBwQEBAgLTO29sbxsbGOHjwoLQuJiYGarUavr6+AABfX19cunQJCQkJUpnw8HBYWlrC09Pz1TVAx9RqNeo38IC3t7e01G/gAbVare+qERERVTp679nJz89HWFgYgoKCYGT0v+pYWVlhxIgRmDhxImxsbGBpaYmPP/4Yvr6+aNmyJQCgU6dO8PT0xODBgzF//nzExcXh888/R3BwcIXvuSlNYmIiMp9kwLbbJBjbOiPn4V083LUQiYmJ7N0hIiJ6QXoPOwcOHIBarcbw4cOLbFu8eDEMDAwQGBiIrKws+Pv7Y9myZdJ2Q0ND7Nq1C2PGjIGvry/Mzc0RFBSE2bNnv8omlBtjW2coVXX0XQ0iIqJKTe9hp1OnThBCFLvN1NQUoaGhCA0NLfH7rq6u2L17d3lVj4iIiCq5CjFmh4iIiKi8MOwQERGRrDHsEBERkawx7BAREZGsMewQERGRrDHsEBERkawx7BAREZGsMewQERGRrDHsEBERkawx7BAREZGsMewQERGRrDHsEBERkawx7BAREZGsMewQERGRrDHsEBERkawx7BAREZGsGem7AlR20dHRGp/t7Ozg4uKip9oQERFVDgw7lUBe2mNAocCgQYM01puaVUHM1WgGHiIiolIw7FQC+VlpgBCw7TYJxrbOAICch3fxcNdCJCYmMuwQERGVgmGnEjG2dYZSVUff1SAiIqpUOECZiIiIZI1hh4iIiGSNYYeIiIhkjWGHiIiIZI1hh4iIiGSNYYeIiIhkjWGHiIiIZI3P2akgnn0VROHXQhAREZH2GHb0rKRXQRAREZFuMOzoWXGvgnjy9zkkH1+n55oRERHJg97H7Ny/fx+DBg2Cra0tzMzM4OXlhXPnzknbhRCYPn06nJycYGZmBj8/P1y/fl1jH48ePcLAgQNhaWkJa2trjBgxAmlpaa+6KS+l4FUQSlUdGFk56rs6REREsqHXsPP48WO0atUKxsbG2LNnD65cuYKFCxeiWrVqUpn58+dj6dKlWLFiBSIjI2Fubg5/f39kZmZKZQYOHIjLly8jPDwcu3btwrFjxzBq1Ch9NImIiIgqGL3expo3bx6cnZ0RFhYmrXNzc5P+LITAkiVL8Pnnn6NHjx4AgLVr18LR0RHbt29H//79ER0djb179+Ls2bNo3rw5AOC7775D165dsWDBAlSvXv3VNoqIiIgqFL327OzcuRPNmzfHe++9BwcHBzRr1gw//vijtP3WrVuIi4uDn5+ftM7Kygo+Pj6IiIgAAERERMDa2loKOgDg5+cHAwMDREZGFnvcrKwspKSkaCxEREQkT3oNO3///TeWL1+OunXrYt++fRgzZgw++eQTrFmzBgAQFxcHAHB01BzD4ujoKG2Li4uDg4ODxnYjIyPY2NhIZQoLCQmBlZWVtDg7O+u6aURERFRB6DXs5Ofn44033sBXX32FZs2aYdSoURg5ciRWrFhRrsedNm0akpOTpeXu3bvlejwiIiLSH72GHScnJ3h6emqs8/DwgFqtBgCoVCoAQHx8vEaZ+Ph4aZtKpUJCQoLG9tzcXDx69EgqU5hSqYSlpaXGQkRERPKk17DTqlUrxMTEaKy7du0aXF1dATwdrKxSqXDw4EFpe0pKCiIjI+Hr6wsA8PX1RVJSEqKioqQyhw4dQn5+Pnx8fF5BK4iIiKgi0+tsrAkTJuCtt97CV199hb59++LMmTP44Ycf8MMPPwAAFAoFxo8fjy+//BJ169aFm5sbvvjiC1SvXh09e/YE8LQnqHPnztLtr5ycHIwdOxb9+/fnTCwiIiLSb9h58803sW3bNkybNg2zZ8+Gm5sblixZgoEDB0plPvvsM6Snp2PUqFFISkpC69atsXfvXpiamkpl1q9fj7Fjx6Jjx44wMDBAYGAgli5dqo8mERERUQWj99dFdOvWDd26dStxu0KhwOzZszF79uwSy9jY2GDDhg3lUT0iIiKq5PT+uggiIiKi8sSwQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESypvcXgZLuqNVqJCYmaqyzs7ODi4uLnmpERESkfww7MqFWq1G/gQcyn2RorDc1q4KYq9EMPERE9Npi2JGJxMREZD7JgG23STC2dQYA5Dy8i4e7FiIxMZFhh4iIXlsMOzJjbOsMpaqOvqtBRERUYXCAMhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREcmaVmHn77//1nU9iIiIiMqFVmGnTp06aN++PdatW4fMzExd14mIiIhIZ7QKO3/88QcaN26MiRMnQqVSYfTo0Thz5oyu60ZERET00rQKO02bNsW3336LBw8eYNWqVYiNjUXr1q3RqFEjLFq0CP/884+u60lERESklZcaoGxkZITevXtj8+bNmDdvHm7cuIFPP/0Uzs7OGDJkCGJjY3VVTyIiIiKtvFTYOXfuHD766CM4OTlh0aJF+PTTT3Hz5k2Eh4fjwYMH6NGjh67qSURERKQVrd56vmjRIoSFhSEmJgZdu3bF2rVr0bVrVxgYPM1Obm5uWL16NWrVqqXLuhIRERG9MK16dpYvX473338fd+7cwfbt29GtWzcp6BRwcHDAypUrS93PzJkzoVAoNJYGDRpI2zMzMxEcHAxbW1tUrVoVgYGBiI+P19iHWq1GQEAAqlSpAgcHB0yePBm5ubnaNIuIiIhkSKuenevXrz+3jImJCYKCgp5brmHDhjhw4MD/KmT0vypNmDABv//+OzZv3gwrKyuM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", | |
"text/plain": [ | |
"<Figure size 640x480 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# # 우측 편향 분포 생성 (오래된 날짜에 집중된 데이터)\n", | |
"data = np.random.exponential(scale=1, size=10000)\n", | |
"data = data / np.max(data) # 값을 0에서 1로 정규화하여 왼쪽으로 치우치게 만듦\n", | |
"\n", | |
"# 데이터를 최근 날짜 기준으로 변환 (예: 일 단위로 변환)\n", | |
"recent_days = 365 # 최근 30일을 기준으로 설정\n", | |
"dates = np.round(data * recent_days).astype(int)\n", | |
"\n", | |
"# 히스토그램으로 데이터 분포 시각화\n", | |
"plt.hist(dates, bins=100, edgecolor='k')\n", | |
"plt.title('Right-Skewed Distribution of User Access Dates')\n", | |
"plt.xlabel('Days Ago')\n", | |
"plt.ylabel('Frequency')\n", | |
"\n", | |
"# 그래프 표시\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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BioiIiIiHRn01DNEVH2USiVUKpX4PC4uTo+tISKqWRioiAhKpRKtXVyRnZWp76YQEdVIDFREBJVKheysTK3BG7NunUXq8a16bhkRUc3AQEVEooKDN+al3NFza4iIag52SiciIiLSEQMVERERkY4YqIiIiIh0xEBFREREpCMGKiIiIiId8S4/IiKqkIKDv9rY2MDR0VGPrSHSLwYqIiIql/z0R4BEAj8/P3GZmbkF4q/FMVRRncVARURE5aLOSQcEQRwINi/lDlLCQ6BSqRioqM5ioCIiogopOBAsUV3HTulEREREOmKgIiIiItIRAxURERGRjhioiIiIiHTETulEdZBSqYRKpRKfFxxPiIiIyo+BiqiOUSqVaO3iiuysTH03hYio1mCgIqpjVCoVsrMyxTGEACDr1lmkHt+q55YREdVcDFREdVTBMYTyUu7ouTVERDUbO6UTERER6YiBioiIiEhHDFREREREOmKgIiIiItIRO6UTEVGlKDyemY2NDRwdHfXUGqLqxUBFREQ6yU9/BEgk8PPz01puZm6B+GtxDFVUJzBQERGRTtQ56YAgaI1tlpdyBynhIVCpVAxUVCcwUBERUaUoOLYZUV3DTulEREREOmKgIiIiItKRXgPVsWPHMGDAANjb20MikeDnn3/WWi8IAubPn48mTZrA3Nwc3t7euH79ulbNw4cPMWrUKMjlclhbW2PChAlIT0/Xqrl48SK6du0KMzMzODg4YPny5UXasnv3bri4uMDMzAxt27bF77//Xun7S6QvSqUSsbGxiI2NLXInFhER6U6vgSojIwPt27fH2rVri12/fPlyfPHFFwgNDcXp06dhaWkJHx8fZGdnizWjRo3ClStXEBERgfDwcBw7dgyTJ08W16elpaF3795wcnJCTEwMPv/8cyxcuBDr168Xa06ePIkRI0ZgwoQJOHfuHAYNGoRBgwbh8uXLVbfzRNVEqVSitYsrPDw84OHhUeROLCIi0p1eO6X37dsXffv2LXadIAhYtWoV5s2bh4EDBwIAvv32W9jZ2eHnn3/G8OHDERcXh/379+PMmTPo1KkTAODLL79Ev3798N///hf29vbYtm0bcnNzsWnTJkilUri7u+P8+fNYsWKFGLxWr16NPn36YObMmQCAJUuWICIiAmvWrEFoaGg1fBJEVUelUiE7K1O8Ayvr1lmkHt+q72YR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", | |
"text/plain": [ | |
"<Figure size 640x480 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"moneyDisribution = abs(np.random.normal(0.5,0.1, size=1000000) * 100) \n", | |
"\n", | |
"plt.hist(moneyDisribution, bins=100, edgecolor='k')\n", | |
"plt.title('Normal Distribution of User Access Dates')\n", | |
"plt.xlabel('Money')\n", | |
"plt.ylabel('Frequency')\n", | |
"\n", | |
"# 그래프 표시\n", | |
"plt.show()\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 34, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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Hs0Yu3fvVnV1tef2gQMH9Pvf/17jx4+3cSqzPPXUU1q+fLlee+01denSRXv27NGUKVMUGhqq+++/37a5uMz4Cn333XeKiorS9u3bNWjQILvHMVZ4eLj++te/aurUqXaPYpTy8nL99re/1bJly7RkyRL17NlTL7zwgt1jGWHBggXasGGD9u7da/coxpo7d67+/e9/66OPPrJ7lAZj5syZys7O1uHDh239LjeTjB49WtHR0XrllVc8+8aNG6egoCC9/vrrts3Fn3iuUFlZmaQffwHjYtXV1Vq3bp3Onj3L1xhcQmpqqkaNGqWhQ4faPYqRDh8+rJiYGLVr104pKSlyuVx2j2SUd955R3369NH48eMVFRWlXr166R//+IfdYxnr/Pnzev3113XPPfcQJ//l5ptvVk5Ojr766itJ0hdffKGPP/5YycnJts7F+6VXoKamRjNnzlT//v3VtWtXu8cxyv79+5WUlKSKigq1bNlS69evV+fOne0eyyjr1q3TZ599pt27d9s9ipESExO1evVqdezYUSdOnNDChQs1cOBAHThwQMHBwXaPZ4Svv/5ay5cvV3p6uh555BHt3r1b999/vwICAjR58mS7xzPOhg0bdPr0ad199912j2KUuXPnyu12KyEhQf7+/qqurtbjjz+ulJQUewezUGf33nuvFR8fbxUWFto9inEqKyutw4cPW3v27LHmzp1rRUZGWgcPHrR7LGO4XC4rKirK+uKLLzz7fve731kPPPCAfUMZ7vvvv7dCQkKsl19+2e5RjNG0aVMrKSnJa9+MGTOsfv362TSR2YYNG2aNHj3a7jGM88Ybb1ht2rSx3njjDWvfvn3WmjVrrPDwcGv16tW2zkWg1FFqaqrVpk0b6+uvv7Z7lAZhyJAh1vTp0+0ewxjr16+3JFn+/v6eTZLlcDgsf39/68KFC3aPaKQ+ffpYc+fOtXsMY8TFxVlTp0712rds2TIrJibGponM9Z///Mfy8/OzNmzYYPcoxmnTpo31t7/9zWvf4sWLrY4dO9o00Y/4E4+PLMvSjBkztH79em3btk1t27a1e6QGoaamRpWVlXaPYYwhQ4Zo//79XvumTJmihIQEzZkzR/7+/jZNZq7y8nIdPXpUd911l92jGKN///4XfczBV199pfj4eJsmMteqVasUFRWlUaNG2T2Kcc6dOyc/P+9TUv39/VVTU2PTRD8iUHyUmpqqrKwsvf322woODlZRUZEkKTQ0VEFBQTZPZ4aMjAwlJycrLi5OZ86cUVZWlrZt26b333/f7tGMERwcfNF5Sy1atFBERATnM/1/s2fP1pgxYxQfH6/jx49r/vz58vf315133mn3aMaYNWuWbr75Zj3xxBP605/+pE8//VQrV67UypUr7R7NKDU1NVq1apUmT57MpeqXMGbMGD3++OOKi4tTly5d9Pnnn+u5557TPffcY+9gtr5/0wBJuuS2atUqu0czxj333GPFx8dbAQEBVqtWrawhQ4ZYH3zwgd1jGY9zULzdcccdVuvWra2AgADruuuus+644w7ryJEjdo9lnI0bN1pdu3a1AgMDrYSEBGvlypV2j2Sc999/35JkFRQU2D2Kkdxut/XAAw9YcXFxVrNmzax27dpZf/nLX6zKykpb5+JzUAAAgHH4HBQAAGAcAgUAABiHQAEAAMYhUAAAgHEIFAAAYBwCBQAAGIdAAQAAxiFQAACAx44dOzRmzBjFxMTI4XBow4YNPv38ggUL5HA4LtpatGjh0/0QKAAAwOPs2bPq0aOHMjMz6/Tzs2fP1okTJ7y2zp07a/z48T7dD4ECAAA8kpOTtWTJEv3xj3+85PHKykrNnj1b1113nVq0aKHExERt27bNc7xly5ZyOp2erbi4WIcOHdLUqVN9moNAAQAAtZaWlqbc3FytW7dO+/bt0/jx4zVixAgdPnz4kutffvlldejQQQMHDvTpcQgUAABQKy6XS6tWrdJbb72lgQMHqn379po9e7YGDBigVatWXbS+oqJCa9eu9fndE0nie6cBAECt7N+/X9XV1erQoYPX/srKSkVERFy0fv369Tpz5owmT57s82MRKAAAoFbKy8vl7++vvLw8+fv7ex1r2bLlRetffvlljR49WtHR0T4/FoECAABqpVevXqqurtbJkycve07JsWPH9OGHH+qdd96p02MRKAAAwKO8vFxHjhzx3D527Jj27t2r8PBwdejQQSkpKZo0aZKeffZZ9erVS999951ycnLUvXt3jRo1yvNzr776qlq3bq3k5OQ6zeGwLMu64mcDAAAahW3btumWW265aP/kyZO1evVqVVVVacmSJVqzZo2+/fZbRUZGql+/flq4cKG6desmSaqpqVF8fLwmTZqkxx9/vE5zECgAAMA4XGYMAACMQ6AAAADjECgAAMA4BAoAADAOgQIAAIxDoAAAAOMQKAAAwDgECgAAMA6BAgAAjEOgAAAA4xAoAADAOAQKAAAwzv8D/aJbHNaDgNAAAAAASUVORK5CYII=", | |
"text/plain": [ | |
"<Figure size 640x480 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"numPlayers = 1000\n", | |
"moneyDisribution = abs(np.random.normal(0.5, 0.1, numPlayers) * 99999999)\n", | |
"plt.hist(moneyDisribution, bins=10, edgecolor='k')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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", | |
"text/plain": [ | |
"<Figure size 640x480 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"rankDistribution = np.random.exponential(scale=1, size=numPlayers) \n", | |
"rankDistribution = np.round(rankDistribution/ np.max(rankDistribution) * 10).astype(int)\n", | |
"plt.hist(rankDistribution, bins=10, edgecolor='k')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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TU09748wejweBYPB6Ez4Guhdy4XOde+xYDCo7OzssOPJycnKyMiI2a/F9OnTNXPmTI0cOVIff/yxvve972nGjBny+/1KSkqKizX39PTo0Ucf1Re/+EWNHTtWkvr0ug4Ggxd8PfQes9mF1ixJf//3f6/8/Hzl5OToww8/1BNPPKHGxkb96le/khS7a967d698Pp86Ojo0ZMgQrVu3ToWFhdqzZ09cn+eLrVuK33MtESg3lBkzZjj/Hj9+vIqLi5Wfn69f/OIXGjhwYBRnhmvt/vvvd/49btw4jR8/Xp/73Oe0bds2TZ06NYoz6z+VlZXat2+ffvOb30R7KtfNxdb80EMPOf8eN26chg8frqlTp+rjjz/W5z73ues9zX4zevRo7dmzR+3t7frlL3+piooKbd++PdrTuuYutu7CwsK4PdcSV/FIkrKyspSUlHTeJ76bm5vl9XqjNKtrLz09XbfeeqsOHTokr9errq4utbW1hY2Jt69B71ouda69Xq9aWlrCjp89e1bHjx+Pm6/FzTffrKysLB06dEhS7K95/vz5Wr9+vd555x2NGDHC2d+X17XX673g66H3mK0utuYLKS4ulqSw8x2La05NTdWoUaNUVFSkmpoaTZgwQT/+8Y/j+jxLF1/3hcTLuZYIFEl/OflFRUWqq6tz9vX09Kiuri7s53zx5uTJk/r44481fPhwFRUVKSUlJexr0NjYqEAgEFdfg5EjR8rr9YatMxQKaefOnc46fT6f2tra1NDQ4IzZunWrenp6nP/4Y90nn3yiY8eOafjw4ZJid83GGM2fP1/r1q3T1q1bNXLkyLDjfXld+3w+7d27NyzQNm/eLLfb7byNbpPLrflC9uzZI0lh5zuW1nwxPT096uzsjMvzfCm9676QuDrX0f6Uri3WrFljXC6XWbVqlTlw4IB56KGHTHp6etgnn2Pd448/brZt22YOHz5sfvvb35qSkhKTlZVlWlpajDF/uUwvLy/PbN261ezevdv4fD7j8/miPOvInThxwnzwwQfmgw8+MJLMs88+az744APzxz/+0Rjzl8uM09PTzRtvvGE+/PBDc88991zwMuO/+Zu/MTt37jS/+c1vzC233GL1JbeXWvOJEyfMd77zHeP3+83hw4fNli1bzBe+8AVzyy23mI6ODucxYm3Nxhgzb948k5aWZrZt2xZ2meXp06edMZd7Xfdehjlt2jSzZ88es3HjRjNs2DBrL8O83JoPHTpkli5danbv3m0OHz5s3njjDXPzzTebO+64w3mMWFuzMcY8+eSTZvv27ebw4cPmww8/NE8++aRJSEgwmzZtMsbE33nudal1x+u57kWg/JUXX3zR5OXlmdTUVDNp0iRTX18f7Sn1q/vuu88MHz7cpKamms985jPmvvvuM4cOHXKOnzlzxvzjP/6juemmm8ygQYPMN77xDXP06NEozvjKvPPOO0bSeVtFRYUx5i+XGv/gBz8wHo/HuFwuM3XqVNPY2Bj2GMeOHTMPPPCAGTJkiHG73eZb3/qWOXHiRBRW0zeXWvPp06fNtGnTzLBhw0xKSorJz883c+fOPS++Y23NxpgLrlmSWblypTOmL6/r//mf/zEzZswwAwcONFlZWebxxx833d3d13k1fXO5NQcCAXPHHXeYjIwM43K5zKhRo8yCBQvCfjeGMbG1ZmOM+Yd/+AeTn59vUlNTzbBhw8zUqVOdODEm/s5zr0utO17Pda8EY4y5fu/XAAAAXB6fQQEAANYhUAAAgHUIFAAAYB0CBQAAWIdAAQAA1iFQAACAdQgUAABgHQIFAABYh0ABAADWIVAAAIB1CBQAAGAdAgUAAFjn/wGNgtXjELHemAAAAABJRU5ErkJggg==", | |
"text/plain": [ | |
"<Figure size 640x480 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"\n", | |
"startDateDistribution = np.random.exponential(scale=1, size=numPlayers)\n", | |
"startDateDistribution = 365 - np.round(startDateDistribution/ np.max(startDateDistribution) * 365).astype(int)\n", | |
"plt.hist(startDateDistribution, bins=10, edgecolor='k')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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", | |
"text/plain": [ | |
"<Figure size 640x480 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"lastVisitDistribution = np.random.exponential(scale=1, size=numPlayers)\n", | |
"lastVisitDistribution = np.round(lastVisitDistribution/ np.max(lastVisitDistribution) * 91).astype(int)\n", | |
"plt.hist(lastVisitDistribution, bins=10, edgecolor='k')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"np.float64(32702060.1691217)" | |
] | |
}, | |
"execution_count": 40, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"moneyDisribution[0]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3 (ipykernel)", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.12.4" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ample | |
achieve | |
concentration | |
enfix | |
owl | |
attachment | |
hypothesize | |
catch | |
gene | |
scheme | |
start | |
manufacture | |
hunter | |
separation | |
possibility | |
revenge | |
volume | |
analyst | |
lonely | |
condition | |
design | |
night | |
secretion | |
reference | |
crusade | |
quality | |
jump | |
weapon | |
pit | |
aquarium | |
stroll | |
hierarchy | |
layout | |
bathtub | |
exact | |
teenager | |
button | |
translate | |
suburb | |
fun | |
plastic | |
analysis | |
note | |
deer | |
scan | |
know | |
snatch | |
relinquish | |
cook | |
ground | |
guide | |
annual | |
Venus | |
qualify | |
aunt | |
slab | |
line | |
benefit | |
global | |
grounds | |
belly | |
progress | |
flawed | |
oil | |
video | |
strict | |
horizon | |
map | |
pluck | |
thin | |
parameter | |
electronics | |
betray | |
ankle | |
drama | |
director | |
appetite | |
earthwax | |
mind | |
exclude | |
parade | |
crystal | |
quotation | |
vegetable | |
clerk | |
finance | |
traffic | |
literacy | |
sun | |
adventure | |
musical | |
car | |
recover | |
decrease | |
conflict | |
moral | |
fish | |
bow | |
presidency | |
guarantee |
8.0 부터 server에서 root로 로그인후
set global local_infile=ON
필요합니다.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
실행하기