From 8c75af6e741c8a01e76b07c36ca474554f922f8d Mon Sep 17 00:00:00 2001 From: Moses Kim Date: Tue, 13 Dec 2022 10:23:01 +0900 Subject: [PATCH 01/17] translated into korean --- chapter5/colab/Association.ipynb | 109 +++++++++++++------------ chapter5/colab/BPR.ipynb | 62 +++++++------- chapter5/colab/FM.ipynb | 74 ++++++++--------- chapter5/colab/IMF.ipynb | 66 +++++++-------- chapter5/colab/Item2vec.ipynb | 72 ++++++++-------- chapter5/colab/LDA_collaboration.ipynb | 66 +++++++-------- chapter5/colab/LDA_content.ipynb | 96 ++++++++++++---------- chapter5/colab/NMF.ipynb | 60 +++++++------- chapter5/colab/Popularity.ipynb | 68 +++++++-------- chapter5/colab/RF.ipynb | 76 ++++++++--------- chapter5/colab/Random.ipynb | 64 +++++++-------- chapter5/colab/SVD.ipynb | 60 +++++++------- chapter5/colab/UMCF.ipynb | 95 ++++++++++----------- chapter5/colab/Word2vec.ipynb | 80 +++++++++--------- chapter5/colab/data_download.ipynb | 50 ++++++------ chapter5/notebook/Association.ipynb | 27 +++--- chapter5/notebook/BPR.ipynb | 12 +-- chapter5/src/association.py | 26 +++--- chapter5/src/base_recommender.py | 6 +- chapter5/src/bpr.py | 14 ++-- chapter7/metrics.ipynb | 10 +-- 21 files changed, 605 insertions(+), 588 deletions(-) diff --git a/chapter5/colab/Association.ipynb b/chapter5/colab/Association.ipynb index 83b24d2..9f3f361 100644 --- a/chapter5/colab/Association.ipynb +++ b/chapter5/colab/Association.ipynb @@ -13,23 +13,32 @@ "id": "c7dc31f1", "metadata": {}, "source": [ - "# アソシエーション分析" + "# 어소시에이션 분석" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "1b316a16", "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/bin/bash: wget: command not found\n", + "unzip: cannot find or open ../data/ml-10m.zip, ../data/ml-10m.zip.zip or ../data/ml-10m.zip.ZIP.\n" + ] + } + ], "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", "\n", - "# データのダウンロードと解凍\n", + "# 데이터 다운로드와 압축 풀기\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -49,50 +58,50 @@ } ], "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", "import pandas as pd\n", "\n", - "# movieIDとタイトル名のみ使用\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "\n", "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "\n", - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "\n", "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "\n", "\n", - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "\n", "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -334,10 +343,10 @@ } ], "source": [ - "# ユーザー×映画の行列形式に変更\n", + "# 사용자 x 영화 행렬 형식으로 변환한다\n", "user_movie_matrix = movielens_train.pivot(index='user_id', columns='movie_id', values='rating')\n", "\n", - "# ライブラリ使用のために、4以上の評価値は1, 4未満の評価値と欠損値は0にする\n", + "# 라이브러리를 사용하기 위해 4 이상의 평갓값은 1, 4 미만의 평갓값과 결손값은 0으로 한다\n", "user_movie_matrix[user_movie_matrix < 4] = 0\n", "user_movie_matrix[user_movie_matrix.isnull()] = 0\n", "user_movie_matrix[user_movie_matrix >= 4] = 1\n", @@ -352,7 +361,7 @@ "metadata": {}, "outputs": [], "source": [ - "# アソシエーションルールのライブラリのインストール(インストールされていなければ、コメントアウトを外して、実行してください)\n", + "# 어소시에이션 규칙 라이브러리 설치(설치되어 있지 않다면 주석을 해제하고 실행합니다)\n", "# !pip install mlxtend" ] }, @@ -434,7 +443,7 @@ "source": [ "from mlxtend.frequent_patterns import apriori\n", "\n", - "# 支持度が高い映画の表示\n", + "# 지지도가 높은 영화를 표시\n", "freq_movies = apriori(\n", " user_movie_matrix, min_support=0.1, use_colnames=True)\n", "freq_movies.sort_values('support', ascending=False).head()" @@ -499,7 +508,7 @@ } ], "source": [ - "# movie_id=593のタイトルの確認(羊たちの沈黙)\n", + "# movie_id=593의 제목 확인(양들의 침묵)\n", "movies[movies.movie_id == 593]" ] }, @@ -587,7 +596,7 @@ "source": [ "from mlxtend.frequent_patterns import association_rules\n", "\n", - "# アソシエーションルールの計算(リフト値の高い順に表示)\n", + "# 어소시에이션 규칙 계산(리프트 값이 높은 순으로 표시)\n", "rules = association_rules(freq_movies, metric='lift', min_threshold=1)\n", "rules.sort_values('lift', ascending=False).head()[['antecedents', 'consequents', 'lift']]" ] @@ -664,7 +673,7 @@ } ], "source": [ - "# movie_id=4993, 5952のタイトルの確認(ロード・オブ・ザ・リング)\n", + "# movie_id=4993, 5952의 제목 확인(반지의 제왕)\n", "movies[movies.movie_id.isin([4993, 5952])]" ] }, @@ -675,7 +684,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 学習用データで評価値が4以上のものだけ取得する。\n", + "# 학습용 데이터 평갓값이 4 이상인 것만 얻는다.\n", "movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]" ] }, @@ -797,7 +806,7 @@ } ], "source": [ - "# user_id=2のユーザーが4以上の評価を付けた映画一覧\n", + "# user_id=2인 사용자가 4 이상의 평가를 남긴 영화 목록\n", "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" ] }, @@ -1013,13 +1022,13 @@ } ], "source": [ - "# user_id=2のユーザーが4以上の評価を付けた映画一覧\n", + "# user_id=2의 사용자가 4 이상의 평가를 남긴 영화 목록\n", "user2_data = movielens_train_high_rating[movielens_train_high_rating.user_id==2]\n", "\n", - "# ユーザーが直近評価した5つの映画を取得\n", + "# 사용자가 최근 평가한 4개의 영화 얻기\n", "input_data = user2_data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-5:]\n", "\n", - "# それらの映画が、条件部に含まれるアソシエーションルールを抽出\n", + "# 그 영화들이 조건부로 포함된 어오시에이션 규칙을 추출\n", "matched_flags = rules.antecedents.apply(lambda x: len(set(input_data) & x)) >= 1\n", "rules[matched_flags]" ] @@ -1053,14 +1062,14 @@ "source": [ "from collections import defaultdict, Counter\n", "\n", - "# アソシエーションルールの帰結部の映画をリストに格納する\n", - "# 同じ映画が複数回帰結部に出現することがある\n", + "# 어소시에이션 규칙의 귀결부의 영화를 리스트로 저장한다\n", + "# 같은 영화가 여러 차례 귀결부에 나타날 수 있다\n", "\n", "consequent_movies = []\n", "for i, row in rules[matched_flags].sort_values(\"lift\", ascending=False).iterrows(): # lift値でソートして、上位10個のルールだけを使うようにするなどの工夫も可能です\n", " consequent_movies.extend(row[\"consequents\"])\n", " \n", - "# 帰結部での登場頻度をカウント\n", + "# 귀결부에서의 출현 빈도 카운트\n", "counter = Counter(consequent_movies)\n", "counter.most_common(10)" ] @@ -1127,8 +1136,8 @@ } ], "source": [ - "# movie_id=1196が92回、帰結部に登場しているので、user_id=2には、movie_id=1196(Star Wars: Episode V )がおすすめ候補となる\n", - "# (user_id=2の学習データでは、Star Warsのエピーソード4,6を高く評価している)\n", + "# movie_id=1196가 92번 귀결부에 출현하므로, user_id=2에는 movie_id=1196(Star Wars: Episode V)가 추천 후보가 된다\n", + "# (user_id=2의 학습 데이터에서는 Star Wars 에피소드 4, 6의 평가가 높다)\n", "movies[movies.movie_id == 1196]" ] }, @@ -1139,7 +1148,7 @@ "metadata": {}, "outputs": [], "source": [ - "# おすすめの仕方には、lift値が高いものを抽出するやり方もあり、いくつか方法を試してみて、自社のデータに適したやり方を選択ください" + "# 추천 방법에는 lift 값이 높은 것을 추출하는 방법 등이 있다. 몇 가지 방법을 시도해 보고 자사의 데이터에 맞는 방법을 선택한다." ] }, { @@ -1623,30 +1632,30 @@ } ], "source": [ - "# アソシエーションルールを使って、各ユーザーにまだ評価していない映画を10本推薦する\n", + "# 어소시에이션 규칙을 사용해 각 사용자가 아직 평가하지 않은 영화 10편을 추천한다\n", "pred_user2items = defaultdict(list)\n", "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", "\n", "for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n", - " # ユーザーが直近評価した5つの映画を取得\n", + " # 사용자가 최근 5편의 영화를 얻는다\n", " input_data = data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-5:]\n", - " # それらの映画が条件部に1本でも含まれているアソシエーションルールを抽出\n", + " # 그 영화들이 조건부에 1편이라도 포함되어 있는 어소시에이션 규칙을 추출한다\n", " matched_flags = rules.antecedents.apply(lambda x: len(set(input_data) & x)) >= 1\n", "\n", - " # アソシエーションルールの帰結部の映画をリストに格納し、登場頻度順に並び替え、ユーザーがまだに評価していないければ、推薦リストに追加する\n", + " # 어소시에이션 규칙의 귀결부의 영화를 리스트로 저장하고, 출편 빈도 순으로 배열하고, 사용자가 아직 평가하지 않았다면 추천 리스트에 추가한다\n", " consequent_movies = []\n", " for i, row in rules[matched_flags].sort_values(\"lift\", ascending=False).iterrows():\n", " consequent_movies.extend(row[\"consequents\"])\n", - " # 登場頻度をカウント\n", + " # 출현 빈도를 센다\n", " counter = Counter(consequent_movies)\n", " for movie_id, movie_cnt in counter.most_common():\n", " if movie_id not in user_evaluated_movies[user_id]:\n", " pred_user2items[user_id].append(movie_id)\n", - " # 推薦リストが10本になったら終了する\n", + " # 추천 리스트가 10편이 되면 종료한다\n", " if len(pred_user2items[user_id]) == 10:\n", " break\n", "\n", - "# 各ユーザーに対するレコメンドリスト\n", + "# 각 사용자에 대한 추천 리스트\n", "pred_user2items" ] }, @@ -1768,7 +1777,7 @@ } ], "source": [ - "# user_id=2のユーザーが学習データで、4以上の評価を付けた映画一覧\n", + "# user_id=2인 사용자 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" ] }, @@ -1854,7 +1863,7 @@ } ], "source": [ - "# user_id=2に対するおすすめ(1196, 593, 1198)\n", + "# user_id=2에 대한 추천(1196, 593, 1198)\n", "movies[movies.movie_id.isin([1196, 593, 1198])]" ] }, @@ -1867,7 +1876,7 @@ "source": [ "# apriori(user_movie_matrix, min_support=0.1, use_colnames=True)\n", "# association_rules(freq_movies, metric='lift', min_threshold=1)\n", - "# min_supportとmin_thresholdが重要なパラメーターとなるので、変化させてお試しください" + "# min_support와 min_threshold가 중요한 파라미터가 되므로 바꾸어 가면서 시험해봅니다." ] }, { @@ -1895,7 +1904,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/colab/BPR.ipynb b/chapter5/colab/BPR.ipynb index 6dfea17..f3e7258 100644 --- a/chapter5/colab/BPR.ipynb +++ b/chapter5/colab/BPR.ipynb @@ -23,11 +23,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", "\n", - "# データのダウンロードと解凍\n", + "# 데이터 다운로드와 압축 풀기\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -47,50 +47,50 @@ } ], "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", + "# Movielens 데이터 로딩(데이터량이 많으므로 로딩에 시간이 걸릴 수 있습니다)\n", "import pandas as pd\n", "\n", - "# movieIDとタイトル名のみ使用\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "\n", "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "\n", - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "\n", "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자 수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "\n", "\n", - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "\n", "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -105,11 +105,11 @@ "metadata": {}, "outputs": [], "source": [ - "# 因子数\n", + "# 인자 수\n", "factors = 10\n", - "# 評価数の閾値\n", + "# 평가 수의 임곗값\n", "minimum_num_rating = 0\n", - "# エポック数\n", + "# 에폭 수\n", "n_epochs = 50" ] }, @@ -120,14 +120,14 @@ "metadata": {}, "outputs": [], "source": [ - "# 行列分解用に行列を作成する\n", + "# 행렬 분석용으로 행렬을 작성한다\n", "filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n", " lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n", ")\n", "\n", "movielens_train_high_rating = filtered_movielens_train[filtered_movielens_train.rating >= 4]\n", "\n", - "# 行列のインデックスと映画/ユーザーを対応させる辞書を作成\n", + "# 행렬의 인덱스와 영화/사용자를 대응시킨 딕셔너리를 작성한다\n", "unique_user_ids = sorted(movielens_train_high_rating.user_id.unique())\n", "unique_movie_ids = sorted(movielens_train_high_rating.movie_id.unique())\n", "user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n", @@ -142,7 +142,7 @@ "outputs": [], "source": [ "from scipy.sparse import lil_matrix\n", - "# スパース行列を初期化して、各セルに値を入れていく\n", + "# 희소 행렬을 초기화하고 각 셀에 값을 넣는다\n", "movielens_matrix = lil_matrix((len(unique_movie_ids), len(unique_user_ids)))\n", "for i, row in movielens_train_high_rating.iterrows():\n", " user_index = user_id2index[row[\"user_id\"]]\n", @@ -167,7 +167,7 @@ "metadata": {}, "outputs": [], "source": [ - "# colab上で、implicitライブラリの実行時にエラーが出る場合は、「ランタイム→ランタイムのタイプを変更」でハードウェア アクセラレータとしてGPUを選択してください" + "# colab 상에서 implicit 라이브러리 실행 후에 에러가 발생할 때는, '런타임 → 런타임 유형 변경'에서 하드웨어 엑셀러레이터로 GPU를 선택합니다" ] }, { @@ -179,7 +179,7 @@ "source": [ "import implicit\n", "\n", - "# モデルの初期化\n", + "# 모델 초기화\n", "model = implicit.bpr.BayesianPersonalizedRanking(factors=factors, iterations=n_epochs)" ] }, @@ -205,7 +205,7 @@ } ], "source": [ - "# 学習\n", + "# 학습\n", "model.fit(movielens_matrix)" ] }, @@ -1438,7 +1438,7 @@ "source": [ "from collections import defaultdict\n", "\n", - "# 推薦\n", + "# 추천\n", "recommendations = model.recommend_all(movielens_matrix.T)\n", "pred_user2items = defaultdict(list)\n", "for user_id, user_index in user_id2index.items():\n", @@ -1567,7 +1567,7 @@ } ], "source": [ - "# user_id=2のユーザーが学習データで、4以上の評価を付けた映画一覧\n", + "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" ] }, @@ -1653,7 +1653,7 @@ } ], "source": [ - "# user_id=2に対するおすすめ(593, 356, 296)\n", + "# user_id=2에 대한 추천(593, 356, 296)\n", "movies[movies.movie_id.isin([593, 356, 296])]" ] } @@ -1674,7 +1674,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/colab/FM.ipynb b/chapter5/colab/FM.ipynb index 4fc2b59..312befd 100644 --- a/chapter5/colab/FM.ipynb +++ b/chapter5/colab/FM.ipynb @@ -23,11 +23,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", "\n", - "# データのダウンロードと解凍\n", + "# 데이터 다운로드와 압축 풀기\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -47,50 +47,50 @@ } ], "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", "import pandas as pd\n", "\n", - "# movieIDとタイトル名のみ使用\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "\n", "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "\n", - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "\n", "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "\n", "\n", - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "\n", "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -105,15 +105,15 @@ "metadata": {}, "outputs": [], "source": [ - "# 因子数\n", + "# 인자 수\n", "factors = 10\n", - "# 評価数の閾値\n", + "# 평가 수의 임곗값\n", "minimum_num_rating = 200\n", - "# エポック数\n", + "# 에폭 수\n", "n_epochs = 50\n", - "# 学習率\n", + "# 학습률\n", "lr = 0.01\n", - "# 補助情報の利用\n", + "# 초기 정보 사용\n", "use_side_information = False" ] }, @@ -124,12 +124,12 @@ "metadata": {}, "outputs": [], "source": [ - "# 評価値がminimum_num_rating件以上ある映画に絞る\n", + "# 평갓값이 minimum_num_rating건 이상인 영화를 필터링한다\n", "filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n", " lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n", ")\n", "\n", - "# ユーザーが評価した映画\n", + "# 사용자가 평가한 영화\n", "user_evaluated_movies = (\n", " filtered_movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", ")\n" @@ -145,7 +145,7 @@ "import numpy as np\n", "from sklearn.feature_extraction import DictVectorizer\n", "\n", - "# FM用にデータの整形\n", + "# FM용으로 데이터를 정형한다\n", "train_data_for_fm = []\n", "y = []\n", "for i, row in filtered_movielens_train.iterrows():\n", @@ -179,7 +179,7 @@ "metadata": {}, "outputs": [], "source": [ - "# colabでxlearnを動かすための設定\n", + "# colab에서 xlearn을 동작시키기 위한 설정\n", "# https://github.com/aksnzhy/xlearn/issues/74#issuecomment-580701773\n", "import os\n", "os.environ['USER'] = 'test'" @@ -194,7 +194,7 @@ "source": [ "import xlearn as xl\n", "\n", - "# FMモデルの初期化\n", + "# FM 모델 초기화\n", "fm_model = xl.FMModel(task=\"reg\", metric=\"rmse\", lr=lr, opt=\"sgd\", k=factors, epoch=n_epochs)" ] }, @@ -295,7 +295,7 @@ } ], "source": [ - "# FMモデルの学習\n", + "# FM 모델 학습\n", "fm_model.fit(X, y, is_lock_free=False)" ] }, @@ -306,7 +306,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 行列のインデックスと映画/ユーザーを対応させる辞書を作成\n", + "# 행렬의 인덱스와 영화/사용자를 대응시킨 딕셔너리를 작성한다\n", "unique_user_ids = sorted(filtered_movielens_train.user_id.unique())\n", "unique_movie_ids = sorted(filtered_movielens_train.movie_id.unique())\n", "user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n", @@ -320,7 +320,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 予測用のデータの準備\n", + "# 예측용 데이터를 준비한다\n", "test_data_for_fm = []\n", "for user_id in unique_user_ids:\n", " for movie_id in unique_movie_ids:\n", @@ -375,7 +375,7 @@ } ], "source": [ - "# 予測する\n", + "# 예측한다\n", "y_pred = fm_model.predict(X_test)\n", "pred_matrix = y_pred.reshape(len(unique_user_ids), len(unique_movie_ids))" ] @@ -618,7 +618,7 @@ } ], "source": [ - "# 学習用に出てこないユーザーや映画の予測評価値は、平均評価値とする\n", + "# 학습용에 나오지 않은 사용자나 영화의 예측 평가는 평균 평갓값으로 한다\n", "average_score = movielens_train.rating.mean()\n", "movie_rating_predict = movielens_test.copy()\n", "pred_results = []\n", @@ -1642,7 +1642,7 @@ "source": [ "from collections import defaultdict\n", "\n", - "# 各ユーザーに対するレコメンドリストの作成\n", + "# 각 사용자에 대한 추천 리스트를 작성한다\n", "\n", "pred_user2items = defaultdict(list)\n", "\n", @@ -1942,7 +1942,7 @@ } ], "source": [ - "# user_id=2のユーザーが学習データで評価を付けた映画一覧\n", + "# user_id=2인 사용자가 학습 데이터에 평가를 부여한 영화 목록\n", "movielens_train[movielens_train.user_id==2]" ] }, @@ -2023,7 +2023,7 @@ } ], "source": [ - "# user_id=2に対するおすすめ(318, 50, 527)\n", + "# user_id=2에 대한 추천(318, 50, 527)\n", "movies[movies.movie_id.isin([318, 50, 527])]" ] }, @@ -2052,7 +2052,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/colab/IMF.ipynb b/chapter5/colab/IMF.ipynb index 50d3cf7..6d9d857 100644 --- a/chapter5/colab/IMF.ipynb +++ b/chapter5/colab/IMF.ipynb @@ -23,11 +23,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", "\n", - "# データのダウンロードと解凍\n", + "# 데이터 다운로드와 압축 풀기\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -47,50 +47,50 @@ } ], "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", "import pandas as pd\n", "\n", - "# movieIDとタイトル名のみ使用\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "\n", "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "\n", - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "\n", "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "\n", "\n", - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "\n", "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -105,11 +105,11 @@ "metadata": {}, "outputs": [], "source": [ - "# 因子数\n", + "# 인자 수\n", "factors = 10\n", - "# 評価数の閾値\n", + "# 평가 수의 임곗값\n", "minimum_num_rating = 0\n", - "# エポック数\n", + "# 에폭 수\n", "n_epochs = 50\n", "# alpha\n", "alpha = 1.0" @@ -122,14 +122,14 @@ "metadata": {}, "outputs": [], "source": [ - "# 行列分解用に行列を作成する\n", + "# 행력 분석용으로 행렬을 작성한다\n", "filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n", " lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n", ")\n", "\n", "movielens_train_high_rating = filtered_movielens_train[filtered_movielens_train.rating >= 4]\n", "\n", - "# 行列のインデックスと映画/ユーザーを対応させる辞書を作成\n", + "# 행렬의 인덱스와 영화/사용자를 대응시킨 딕셔너리를 작성한다\n", "unique_user_ids = sorted(movielens_train_high_rating.user_id.unique())\n", "unique_movie_ids = sorted(movielens_train_high_rating.movie_id.unique())\n", "user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n", @@ -144,12 +144,12 @@ "outputs": [], "source": [ "from scipy.sparse import lil_matrix\n", - "# スパース行列を初期化して、各セルに値を入れていく\n", + "# 희소 행렬을 초기화하고, 각 셀에 값을 넣는다\n", "movielens_matrix = lil_matrix((len(unique_movie_ids), len(unique_user_ids)))\n", "for i, row in movielens_train_high_rating.iterrows():\n", " user_index = user_id2index[row[\"user_id\"]]\n", " movie_index = movie_id2index[row[\"movie_id\"]]\n", - " movielens_matrix[movie_index, user_index] = 1.0 * alpha # 今回、映画の評価値を0/1で2値化していますが、クリック数などのデータのときは、log(click数)などの変形も効果的です" + " movielens_matrix[movie_index, user_index] = 1.0 * alpha # 이후, 영화의 평갓값을 0/1로 이진화한다. 클릭 수 등의 데이터인 경우에는 log(click 수) 등으로 변형하는 것도 효과적이다." ] }, { @@ -169,7 +169,7 @@ "metadata": {}, "outputs": [], "source": [ - "# colab上で、implicitライブラリの実行時にエラーが出る場合は、「ランタイム→ランタイムのタイプを変更」でハードウェア アクセラレータとしてGPUを選択してください" + "# colab 상에서 implicit 라이브러리 실행 후에 에러가 발생할 때는, '런타임 → 런타임 유형 변경'에서 하드웨어 엑셀러레이터로 GPU를 선택합니다" ] }, { @@ -189,7 +189,7 @@ "source": [ "import implicit\n", "\n", - "# モデルの初期化\n", + "# 모델 초기화\n", "model = implicit.als.AlternatingLeastSquares(\n", " factors=factors, iterations=n_epochs, calculate_training_loss=True, random_state=1\n", ")" @@ -217,7 +217,7 @@ } ], "source": [ - "# 学習\n", + "# 학습\n", "model.fit(movielens_matrix)" ] }, @@ -1288,7 +1288,7 @@ "source": [ "from collections import defaultdict\n", "\n", - "# 推薦\n", + "# 추천\n", "recommendations = model.recommend_all(movielens_matrix.T)\n", "pred_user2items = defaultdict(list)\n", "for user_id, user_index in user_id2index.items():\n", @@ -1417,7 +1417,7 @@ } ], "source": [ - "# user_id=2のユーザーが学習データで、4以上の評価を付けた映画一覧\n", + "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" ] }, @@ -1505,7 +1505,7 @@ } ], "source": [ - "# user_id=2に対するおすすめ(1196, 1, 589)\n", + "# user_id=2에 대한 추천(1196, 1, 589)\n", "movies[movies.movie_id.isin([1196, 1, 589])]" ] }, @@ -1516,7 +1516,7 @@ "metadata": {}, "outputs": [], "source": [ - "# IMFでは、factorsやalphaの設定が予測精度に重要なため、値を変えてお試しください" + "# IMF에서는 factors나 alpha 설정이 예측 정밀도에 중요하므로, 값을 바꾸어가며 시도해봅니다." ] } ], @@ -1536,7 +1536,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/colab/Item2vec.ipynb b/chapter5/colab/Item2vec.ipynb index 0696651..97c8237 100644 --- a/chapter5/colab/Item2vec.ipynb +++ b/chapter5/colab/Item2vec.ipynb @@ -23,11 +23,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", "\n", - "# データのダウンロードと解凍\n", + "# 데이터 다운로드와 압축 풀기\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -47,50 +47,50 @@ } ], "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", "import pandas as pd\n", "\n", - "# movieIDとタイトル名のみ使用\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "\n", "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "\n", - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "\n", "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "\n", "\n", - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "\n", "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -105,17 +105,17 @@ "metadata": {}, "outputs": [], "source": [ - "# 因子数\n", + "# 인자 수\n", "factors = 100\n", - "# エポック数\n", + "# 에폭 수\n", "n_epochs = 30\n", - "# windowサイズ\n", + "# window 크기\n", "window = 100\n", - "# スキップグラム\n", + "# 스킵 그램\n", "use_skip_gram = 1\n", - "# 階層的ソフトマックス\n", + "# 계측적 소프트맥스\n", "use_hierarchial_softmax = 0\n", - "# 使用する単語の出現回数のしきい値\n", + "# 사용할 단어의 출현 횟수의 임곗값\n", "min_count = 5" ] }, @@ -126,12 +126,12 @@ "metadata": {}, "outputs": [], "source": [ - "# item2vecのインプットに使うデータの生成\n", + "# item2vec의 입력으로 사용할 데이터를 생성한다\n", "item2vec_data = []\n", "movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n", "for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n", - " # 評価された順に並び替える\n", - " # item2vecではwindowというパラメータがあり、itemの評価された順番も重要な要素となる\n", + " # 평가된 순서대로 나열한다\n", + " # item2vec에서는 window라는 파라미터가 있으며, item이 평가된 순서도 중요한 요소이다\n", " item2vec_data.append(data.sort_values(\"timestamp\")[\"movie_id\"].tolist())\n" ] }, @@ -163,7 +163,7 @@ "source": [ "import gensim\n", "\n", - "# item2vecの学習\n", + "# item2vec 학습\n", "model = gensim.models.word2vec.Word2Vec(\n", " item2vec_data,\n", " vector_size=factors,\n", @@ -199,8 +199,8 @@ } ], "source": [ - "# スターウォーズ・エピーソード5(movie_id=1196)を入力したときの類似映画\n", - "# スターウォーズのエピーソード4,6が上位にきているので、学習されていることが分かる\n", + "# 스타워즈/에피소드 5(movie_id=1196)를 입력했을 때의 유사 영화\n", + "# 스타워즈/에피소드 4, 6이 상위에 나타나므로 학습되었음을 알 수 있다\n", "for movie_id, score in model.wv.most_similar(1196):\n", " title = movies[movies.movie_id == movie_id].title.tolist()[0]\n", " print(f'movie_id={movie_id}, title={title}, score={score}')" @@ -1220,7 +1220,7 @@ } ], "source": [ - "# 各ユーザーにレコメンドリストの作成\n", + "# 각 사용자에 대한 추천 리스트를 작성한다\n", "\n", "pred_user2items = dict()\n", "for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n", @@ -1229,7 +1229,7 @@ " if item_id in model.wv.key_to_index:\n", " input_data.append(item_id)\n", " if len(input_data) == 0:\n", - " # おすすめ計算できない場合は空配列\n", + " # 추천 계산할 수 없는 경우에는 빈 배열\n", " pred_user2items[user_id] = []\n", " continue\n", " recommended_items = model.wv.most_similar(input_data, topn=10)\n", @@ -1356,7 +1356,7 @@ } ], "source": [ - "# user_id=2のユーザーが学習データで、4以上の評価を付けた映画一覧\n", + "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" ] }, @@ -1442,7 +1442,7 @@ } ], "source": [ - "# user_id=2に対するおすすめ(480, 1196, 589)\n", + "# user_id=2에 대한 추천(480, 1196, 589)\n", "movies[movies.movie_id.isin([480, 1196, 589])]" ] }, @@ -1453,7 +1453,7 @@ "metadata": {}, "outputs": [], "source": [ - "# item2vecでは、因子数,エポック数,windowサイズ,使用する単語の出現回数のしきい値のどれもが重要なので、グリッドサーチしながら、最適な値を決めてください" + "# item2vec에서는 인자 수, 에폭 수, windows 크기, 사용하는 단어의 출현 횟수의 임곗값 모두가 중요하므루, 그리드 서치를 통해 최적의 값을 결정합니다." ] } ], @@ -1473,7 +1473,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/colab/LDA_collaboration.ipynb b/chapter5/colab/LDA_collaboration.ipynb index 3e4fbf6..5bd9e85 100644 --- a/chapter5/colab/LDA_collaboration.ipynb +++ b/chapter5/colab/LDA_collaboration.ipynb @@ -13,7 +13,7 @@ "id": "942a9897", "metadata": {}, "source": [ - "# Latent Dirichlet Allocation (LDA)の行動データへの適用" + "# Latent Dirichlet Allocation (LDA)를 행동 데이터에 적용" ] }, { @@ -23,11 +23,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", "\n", - "# データのダウンロードと解凍\n", + "# 데이터 다운로드와 압축 풀기\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -47,50 +47,50 @@ } ], "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", "import pandas as pd\n", "\n", - "# movieIDとタイトル名のみ使用\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "\n", "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "\n", - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "\n", "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "\n", "\n", - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "\n", "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -105,9 +105,9 @@ "metadata": {}, "outputs": [], "source": [ - "# 因子数\n", + "# 인자 수\n", "factors = 50\n", - "# エポック数\n", + "# 에폭 수\n", "n_epochs = 30" ] }, @@ -139,7 +139,7 @@ "source": [ "from gensim.corpora.dictionary import Dictionary\n", "\n", - "# LDAのインプットに使うデータの作成\n", + "# LDA 입력으로 사용할 데이터를 작성한다\n", "lda_data = []\n", "movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n", "for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n", @@ -180,10 +180,10 @@ } ], "source": [ - "# 各ユーザーの所属トピックが格納される\n", + "# 각 사용자의 소속 토픽이 저장된다\n", "lda_topics = lda_model[common_corpus]\n", "\n", - "# 例: とあるユーザーの所属トピック\n", + "# 예: 어떤 사용자의 소속 토픽\n", "lda_topics[0]" ] }, @@ -211,7 +211,7 @@ } ], "source": [ - "# topic0の映画一覧\n", + "# topic0인 영화 목록\n", "for token_id, score in lda_model.get_topic_terms(0, topn=10):\n", " movie_id = int(common_dictionary.id2token[token_id])\n", " title = movies[movies.movie_id == movie_id].title.tolist()[0]\n", @@ -285,7 +285,7 @@ } ], "source": [ - "# スターウォーズ・エピーソード5(movie_id=1196)のトピック(各トピックの所属確率)\n", + "# 스타워즈/에피소드 5(movie_id=1196)의 토픽(각 토픽에 소속될 확률)\n", "lda_model[common_dictionary.doc2bow([\"1196\"])]" ] }, @@ -1585,17 +1585,17 @@ "source": [ "from collections import defaultdict\n", "\n", - "# 各ユーザーにレコメンドリストの作成\n", - "# そのユーザーの一番所属確率が高いトピックを取得して、そのトピック内で確率の高いアイテムから格納していく\n", + "# 각 사용자에 대한 추천 리스트를 작성한다\n", + "# 각 사용자의 소속 확률이 가장 높은 토픽을 얻고, 해당 토픽 안에서 확률이 높은 아이템을 저장해 나간다\n", "\n", "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", "\n", "pred_user2items = defaultdict(list)\n", "for i, (user_id, data) in enumerate(movielens_train_high_rating.groupby(\"user_id\")):\n", " evaluated_movie_ids = user_evaluated_movies[user_id]\n", - " # ユーザーの所属確率が一番高いトピックを取得\n", + " # 사용자의 소속 확률이 가장 높은 토픽을 얻는다\n", " user_topic = sorted(lda_topics[i], key=lambda x: -x[1])[0][0]\n", - " # そのトピック内で、確率の高いアイテムを取得\n", + " # 해당 토픽 안에서 확률이 높은 아이템을 얻는다\n", " topic_movies = lda_model.get_topic_terms(user_topic, topn=len(movies))\n", "\n", " for token_id, score in topic_movies:\n", @@ -1726,7 +1726,7 @@ } ], "source": [ - "# user_id=2のユーザーが学習データで、4以上の評価を付けた映画一覧\n", + "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" ] }, @@ -1812,7 +1812,7 @@ } ], "source": [ - "# user_id=2に対するおすすめ(1198, 1196, 1240)\n", + "# user_id=2에 대한 추천(1198, 1196, 1240)\n", "movies[movies.movie_id.isin([1198, 1196, 1240])]" ] } @@ -1833,7 +1833,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/colab/LDA_content.ipynb b/chapter5/colab/LDA_content.ipynb index 0bbae9e..4ed495f 100644 --- a/chapter5/colab/LDA_content.ipynb +++ b/chapter5/colab/LDA_content.ipynb @@ -23,11 +23,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", "\n", - "# データのダウンロードと解凍\n", + "# 데이터 다운로드와 압축 풀기\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -47,50 +47,50 @@ } ], "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", "import pandas as pd\n", "\n", - "# movieIDとタイトル名のみ使用\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "\n", "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "\n", - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "\n", "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "\n", "\n", - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "\n", "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -105,9 +105,9 @@ "metadata": {}, "outputs": [], "source": [ - "# 因子数\n", + "# 인자 수\n", "factors = 50\n", - "# エポック数\n", + "# 에폭 수\n", "n_epochs = 30" ] }, @@ -119,13 +119,13 @@ "outputs": [], "source": [ "movie_content = movies.copy()\n", - "# tagが付与されていない映画もあるが、genreはすべての映画に付与されている\n", - "# tagとgenreを結合したものを映画のコンテンツ情報として似ている映画を探して推薦していく\n", - "# tagがない映画に関しては、NaNになっているので、空のリストに変換してから処理をする\n", + "# tag가 부여되어 있지 않은 영화가 있지만, genre는 모든 영화에 부여되어 있다\n", + "# tag와 genre를 결합한 것을 영화 콘텐츠 정보로 하여 비슷한 영화를 찾아서 추천한다\n", + "# tag가 없는 영화는 NaN으로 되어 있으므로, 빈 리스트로 변환한 뒤 처리한다\n", "movie_content[\"tag_genre\"] = movie_content[\"tag\"].fillna(\"\").apply(list) + movie_content[\"genre\"].apply(list)\n", "movie_content[\"tag_genre\"] = movie_content[\"tag_genre\"].apply(lambda x: list(map(str, x)))\n", "\n", - "# タグとジャンルデータを使って、ldaを学習する\n", + "# 태그와 장르 데이터를 사용해 lda를 학습한다\n", "tag_genre_data = movie_content.tag_genre.tolist()" ] }, @@ -157,7 +157,7 @@ "source": [ "from gensim.corpora.dictionary import Dictionary\n", "\n", - "# LDAのインプットに使うデータの作成\n", + "# LDA의 입력으로 사용할 데이터를 작성한다\n", "common_dictionary = Dictionary(tag_genre_data)\n", "common_corpus = [common_dictionary.doc2bow(text) for text in tag_genre_data]\n" ] @@ -171,7 +171,7 @@ "source": [ "import gensim\n", "\n", - "# LDAの学習\n", + "# LDA 학습\n", "lda_model = gensim.models.LdaModel(\n", " common_corpus, id2word=common_dictionary, num_topics=factors, passes=n_epochs\n", ")" @@ -201,7 +201,7 @@ } ], "source": [ - "# topic0の単語一覧\n", + "# topic0인 단어 목록\n", "for token_id, score in lda_model.get_topic_terms(0, topn=10):\n", " word = common_dictionary.id2token[token_id]\n", " print(f'word={word}, score={score}')" @@ -274,7 +274,7 @@ } ], "source": [ - "# サムライという単語のトピック(各トピックの所属確率)\n", + "# samurai라는 단어의 토픽(각 토픽에 소속될 확률)\n", "lda_model[common_dictionary.doc2bow(['samurai'])]" ] }, @@ -492,15 +492,15 @@ } ], "source": [ - "# 各映画のトピックを格納\n", + "# 각 영화의 토픽을 저장한다\n", "lda_topics = lda_model[common_corpus]\n", "\n", - "# 各映画に最も確率の高いトピックを1つ取り出し格納していく\n", + "# 각 영화에 가장 확률이 높은 토픽을 1개 추출해서 저장한다\n", "movie_topics = []\n", "movie_topic_scores = []\n", "for movie_index, lda_topic in enumerate(lda_topics):\n", " sorted_topic = sorted(lda_topics[movie_index], key=lambda x: -x[1])\n", - " # 最も確率の高いトピック\n", + " # 가장 확률이 높은 토픽\n", " movie_topic, topic_score = sorted_topic[0]\n", " movie_topics.append(movie_topic)\n", " movie_topic_scores.append(topic_score)\n", @@ -3714,9 +3714,9 @@ "from collections import defaultdict\n", "from collections import Counter\n", "\n", - "# 各ユーザーのレコメンドリストを作成していく\n", - "# ユーザーが高く評価した映画が、どのトピックに所属していることが多いかをカウントする\n", - "# 一番多いトピックをユーザーの好きなトピックとみなして、そのトピックの映画をおすすめする\n", + "# 각 사용자에 대한 추천 리스트를 작성한다\n", + "# 사용자가 높게 평가한 영화가, 어떤 토픽에 많이 소속되어 있는지 카운트한다\n", + "# 가장 많은 토픽을 사용자가 좋아하는 토픽으로 간주하고, 해당 토픽의 영화를 추천한다\n", "\n", "movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n", "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", @@ -3724,18 +3724,18 @@ "movie_id2index = dict(zip(movie_content.movie_id.tolist(), range(len(movie_content))))\n", "pred_user2items = defaultdict(list)\n", "for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n", - " # ユーザーが高く評価した映画\n", + " # 사용자가 높이 평가한 영화\n", " evaluated_movie_ids = user_evaluated_movies[user_id]\n", - " # 直近閲覧した映画を取得\n", + " # 최근 열람한 영화를 얻는다\n", " movie_ids = data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-10:]\n", "\n", " movie_indexes = [movie_id2index[id] for id in movie_ids]\n", " \n", - " # 直近閲覧した映画のトピックを取得して、出現回数をカウントする\n", + " # 최근 열람한 영화의 토픽을 얻고, 풀현 횟수를 카운트한다\n", " topic_counter = Counter([movie_topics[i] for i in movie_indexes])\n", - " # 一番出現回数が多かったトピックを取得\n", + " # 가장 출현 횟수가 많았던 토픽을 얻는다\n", " frequent_topic = topic_counter.most_common(1)[0][0]\n", - " # そのトピックの映画の中でもスコアが高いものをおすすめする\n", + " # 해당 토픽의 영화 중에서도 점수가 높은 것을 추천한다\n", " topic_movies = (\n", " movie_content[movie_content.topic == frequent_topic]\n", " .sort_values(\"topic_score\", ascending=False)\n", @@ -3868,7 +3868,7 @@ } ], "source": [ - "# user_id=2のユーザーが学習データで、4以上の評価を付けた映画一覧\n", + "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" ] }, @@ -3954,19 +3954,27 @@ } ], "source": [ - "# user_id=2に対するおすすめ(2115, 76, 2006)\n", + "# user_id=2에 대한 추천(2115, 76, 2006)\n", "movies[movies.movie_id.isin([2115, 76, 2006])]" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "129f2877", "metadata": {}, "outputs": [], "source": [ - "# 今回は、各ユーザーの評価履歴から1つのトピックをピックアップしましたが、トピックの確率値を利用して、重み付けしながら、アイテムを抽出することも可能です" + "# 여기에서는 각 사용자의 평가 이력으로부터 1개의 토픽을 픽업했지만, 토픽의 확률값을 사용해서 가중치를 주면서 아이템을 추출할 수도 있습니다." ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6a30f15c", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -3985,7 +3993,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/colab/NMF.ipynb b/chapter5/colab/NMF.ipynb index 9d1cb34..cd11431 100644 --- a/chapter5/colab/NMF.ipynb +++ b/chapter5/colab/NMF.ipynb @@ -13,7 +13,7 @@ "id": "f8caaceb", "metadata": {}, "source": [ - "# 非負値行列分解" + "# 비부값 행렬 분석" ] }, { @@ -23,11 +23,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", "\n", - "# データのダウンロードと解凍\n", + "# 데이터 다운로드와 압축 풀기\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -47,50 +47,50 @@ } ], "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", "import pandas as pd\n", "\n", - "# movieIDとタイトル名のみ使用\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "\n", "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "\n", - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "\n", "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "\n", "\n", - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "\n", "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -100,14 +100,14 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "8e6879e3", "metadata": {}, "outputs": [], "source": [ - "# 欠損値の穴埋め方法\n", + "# 결손값을 채우는 방법\n", "fillna_with_zero = True\n", - "# 因子数\n", + "# 인자 수\n", "factors = 5" ] }, @@ -135,7 +135,7 @@ } ], "source": [ - "# 評価値をユーザー×映画の行列に変換。欠損値は、平均値または0で穴埋めする\n", + "# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다.\n", "user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n", "user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n", "movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n", @@ -176,7 +176,7 @@ "source": [ "from sklearn.decomposition import NMF\n", "\n", - "# NMFの実行\n", + "# NMF 실행\n", "nmf = NMF(n_components=factors)\n", "nmf.fit(matrix)\n" ] @@ -281,7 +281,7 @@ ], "source": [ "import numpy as np\n", - "# 予測評価値行列\n", + "# 예측 평갓값 행렬\n", "pred_matrix = np.dot(P, Q)\n", "pred_matrix" ] @@ -293,7 +293,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 学習用に出てこないユーザーや映画の予測評価値は、平均評価値とする\n", + "# 학습용에 나타나지 않는 사용자나 영화의 예측 평갓값은 평균 평갓값으로 한다\n", "average_score = movielens_train.rating.mean()\n", "movie_rating_predict = movielens_test.copy()\n", "pred_results = []\n", @@ -1437,7 +1437,7 @@ "source": [ "from collections import defaultdict\n", "\n", - "# 各ユーザに対するおすすめ映画は、そのユーザがまだ評価していない映画の中から予測値が高い順にする\n", + "# 각 사용자에 대한 추천 영화는 해당 사용자가 아직 평가하지 않은 영화 중에서 예측값이 높은 순으로 한다\n", "pred_user2items = defaultdict(list)\n", "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", "for user_id in movielens_train.user_id.unique():\n", @@ -1737,7 +1737,7 @@ } ], "source": [ - "# user_id=2のユーザーが学習データで評価を付けた映画一覧\n", + "# user_id=2의 사용자가 학습 데이터에 평가를 부여한 영화 목록\n", "movielens_train[movielens_train.user_id==2]" ] }, @@ -1844,7 +1844,7 @@ } ], "source": [ - "# user_id=2に対するおすすめ(2959, 4993, 5952)\n", + "# user_id=2에 대한 추천(2959, 4993, 5952)\n", "movies[movies.movie_id.isin([2959, 4993, 5952])]" ] }, @@ -1873,7 +1873,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/colab/Popularity.ipynb b/chapter5/colab/Popularity.ipynb index c5146c0..82b7723 100644 --- a/chapter5/colab/Popularity.ipynb +++ b/chapter5/colab/Popularity.ipynb @@ -13,10 +13,10 @@ "id": "4ffa2166", "metadata": {}, "source": [ - "# 人気度順推薦\n", - "## 人気度の定義\n", - "* 今回は評価値が高いものを人気が髙い映画とする\n", - "* 人気度の定義は「クリック数が多いもの」「購入が多いもの」「評価値が髙いもの」など複数あり、自社サービスに最も適した定義を利用\n" + "# 인기도 순 추천\n", + "## 인기도의 정의\n", + "* 여기에서는 평갓값이 높은 것을 인기가 높은 영화로 간주합니다\n", + "* 인기도는 '클릭 수가 많은 것', '구매가 많은 것', '평갓값이 높은 것' 등 다양하게 정의할 수 있으므로 자사 서비스에 맞춰 적합한 정의를 사용합니다.\n" ] }, { @@ -26,11 +26,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", "\n", - "# データのダウンロードと解凍\n", + "# 데이터 다운로드와 압축 풀기\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -50,50 +50,50 @@ } ], "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", "import pandas as pd\n", "\n", - "# movieIDとタイトル名のみ使用\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "\n", "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "\n", - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "\n", "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "\n", "\n", - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "\n", "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -108,7 +108,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 評価数の閾値\n", + "# 평가 수의 임곗값\n", "minimum_num_rating = 200\n" ] }, @@ -213,8 +213,8 @@ "source": [ "import numpy as np\n", "\n", - "# 評価値の平均が髙い映画の確認\n", - "# 評価数が1件の映画が多数上位にきている\n", + "# 평갓값의 평균이 높은 영화를 확인한다\n", + "# 평가 수가 1건인 영화가 상위에 여럿 나타난다\n", "movie_stats = movielens_train.groupby(['movie_id', 'title']).agg({'rating': [np.size, np.mean]})\n", "movie_stats.sort_values(by=('rating', 'mean'), ascending=False).head()" ] @@ -318,8 +318,8 @@ } ], "source": [ - "# しきい値を導入して、評価数が少ない映画を取り除く\n", - "# ショーシャンクの空にや七人の侍などの見慣れた映画が上位にきている\n", + "# 임곗값을 도입해 평가 수가 적은 영화를 제거한다\n", + "# 쇼생크 탈출이나 7인의 사무라이 등 익숙한 영화가 상위에 나타난다\n", "movie_stats = movielens_train.groupby(['movie_id', 'title']).agg({'rating': [np.size, np.mean]})\n", "atleast_flg = movie_stats['rating']['size'] >= 100\n", "movies_sorted_by_rating = movie_stats[atleast_flg].sort_values(by=('rating', 'mean'), ascending=False)\n", @@ -334,9 +334,9 @@ "outputs": [], "source": [ "import numpy as np \n", - "# 各アイテムごとの平均の評価値を計算し、その平均評価値を予測値として利用する\n", + "# 각 아이템별로 평균 평갓값을 계싼하고, 해당 평균 평갓값을 예측값으로 사용한다\n", "movie_rating_average = movielens_train.groupby(\"movie_id\").agg({\"rating\": np.mean})\n", - "# テストデータに予測値を格納する。テストデータのみに存在するアイテムの予測評価値は0とする\n", + "# 테스트 데이터에 예측값을 저장한다. 테스트 데이터에만 존재하는 아이템의 예측 평갓값은 0으로 한다.\n", "movie_rating_predict = movielens_test.merge(\n", " movie_rating_average, on=\"movie_id\", how=\"left\", suffixes=(\"_test\", \"_pred\")\n", ").fillna(0)" @@ -1371,8 +1371,8 @@ "source": [ "from collections import defaultdict\n", "\n", - "# 各ユーザに対するおすすめ映画は、そのユーザがまだ評価していない映画の中から評価値が高いもの10作品とする\n", - "# ただし、評価件数が少ないとノイズが大きいため、minimum_num_rating件以上評価がある映画に絞る\n", + "# 각 사용자에 대한 추천 영화는 해당 사용자가 아직 평가하지 않은 영화 중에서 평갓값이 높은 10작품으로 한다\n", + "# 단, 평가 건수가 작으면 노이즈가 크므로 minimum_num_rating건 이상 평가가 있는 영화로 필터링한다\n", "pred_user2items = defaultdict(list)\n", "user_watched_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", "movie_stats = movielens_train.groupby(\"movie_id\").agg({\"rating\": [np.size, np.mean]})\n", @@ -1673,7 +1673,7 @@ } ], "source": [ - "# user_id=2のユーザーが学習データで評価を付けた映画一覧\n", + "# user_id=2인 사용자가 학습 데이터에 평가를 부여한 영화 목록\n", "movielens_train[movielens_train.user_id==2]" ] }, @@ -1775,7 +1775,7 @@ } ], "source": [ - "# user_id=2に対するおすすめ(318, 50, 527)\n", + "# user_id=2에 대한 추천(318, 50, 527)\n", "movies[movies.movie_id.isin([318, 50, 527])]" ] }, @@ -1804,7 +1804,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/colab/RF.ipynb b/chapter5/colab/RF.ipynb index 725f441..06f8fda 100644 --- a/chapter5/colab/RF.ipynb +++ b/chapter5/colab/RF.ipynb @@ -13,7 +13,7 @@ "id": "4935d845", "metadata": {}, "source": [ - "# RandomForest(回帰モデル)" + "# RandomForest(회귀 모델)" ] }, { @@ -23,11 +23,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", "\n", - "# データのダウンロードと解凍\n", + "# 데이터 다운로드와 압축 풀기\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -47,50 +47,50 @@ } ], "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", "import pandas as pd\n", "\n", - "# movieIDとタイトル名のみ使用\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "\n", "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "\n", - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "\n", "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "\n", "\n", - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "\n", "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -494,7 +494,7 @@ } ], "source": [ - "# 評価値をユーザー×映画の行列に変換。欠損値は、平均値または0で穴埋めする\n", + "# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다\n", "user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n", "user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n", "movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n", @@ -508,14 +508,14 @@ "metadata": {}, "outputs": [], "source": [ - "# 学習に用いる学習用データ中のユーザーと映画の組を取得する\n", + "# 학습에 사용하는 학습용 데이터 안의 사용자와 영화의 조합을 얻는다\n", "train_keys = movielens_train[[\"user_id\", \"movie_id\"]]\n", - "# 学習用データ中の評価値を学習の正解データとして取得する\n", + "# 학습용 데이터 안의 평갓값을 학습의 정답 데이터로 얻는다\n", "train_y = movielens_train.rating.values\n", "\n", - "# 評価値を予測したいテスト用データ中のユーザーと映画の組を取得する\n", + "# 평갓값을 예측할 테스트용 데이터 안의 사용자와 영화의 조합을 얻는다\n", "test_keys = movielens_test[[\"user_id\", \"movie_id\"]]\n", - "# ランキング形式の推薦リスト作成のために学習用データに存在するすべてのユーザーとすべての映画の組み合わせを取得する\n", + "# 순위 형식의 추천 리스트 작성을 위해 학습용 데이터에 존재하는 모든 사용자와 모든 영화의 조합을 얻는다\n", "train_all_keys = user_movie_matrix.stack(dropna=False).reset_index()[[\"user_id\", \"movie_id\"]]\n" ] }, @@ -526,7 +526,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 特徴量を作成する\n", + "# 특징량을 작성한다\n", "train_x = train_keys.copy()\n", "test_x = test_keys.copy()\n", "train_all_x = train_all_keys.copy()" @@ -539,8 +539,8 @@ "metadata": {}, "outputs": [], "source": [ - "# 学習用データに存在するユーザーごとの評価値の最小値、最大値、平均値\n", - "# 及び、映画ごとの評価値の最小値、最大値、平均値を特徴量として追加\n", + "# 학습용 데이터에 존재하는 사용자별 평갓값의 최솟값, 최댓값, 평균값\n", + "# 및, 영화별 평갓값의 최솟값, 최댓값, 평균값을 특징량으로 추가한다\n", "aggregators = [\"min\", \"max\", \"mean\"]\n", "user_features = movielens_train.groupby(\"user_id\").rating.agg(aggregators).to_dict()\n", "movie_features = movielens_train.groupby(\"movie_id\").rating.agg(aggregators).to_dict()\n", @@ -551,7 +551,7 @@ " train_x[f\"m_{agg}\"] = train_x[\"movie_id\"].map(movie_features[agg])\n", " test_x[f\"m_{agg}\"] = test_x[\"movie_id\"].map(movie_features[agg])\n", " train_all_x[f\"m_{agg}\"] = train_all_x[\"movie_id\"].map(movie_features[agg])\n", - "# テスト用データにしか存在しないユーザーや映画の特徴量を、学習用データ全体の平均評価値で埋める\n", + "# 테스트용 데이터에만 존재하는 사용자나 영화의 특징량을, 학습용 데이터 전체의 평균 평갓값으로 채운다\n", "average_rating = train_y.mean()\n", "test_x.fillna(average_rating, inplace=True)" ] @@ -565,7 +565,7 @@ "source": [ "import itertools\n", "\n", - "# 映画が特定の genre であるかどうかを表す特徴量を追加\n", + "# 영화가 특정한 genre인지 나타내는 특징량을 추가한다\n", "movie_genres = movies[[\"movie_id\", \"genre\"]]\n", "genres = set(list(itertools.chain(*movie_genres.genre)))\n", "for genre in genres:\n", @@ -583,7 +583,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 特徴量としては使わない情報を削除\n", + "# 특징량으로 사용하지 않는 정보는 삭제한다\n", "train_x = train_x.drop(columns=[\"user_id\", \"movie_id\"])\n", "test_x = test_x.drop(columns=[\"user_id\", \"movie_id\"])\n", "train_all_x = train_all_x.drop(columns=[\"user_id\", \"movie_id\"])" @@ -609,7 +609,7 @@ "source": [ "from sklearn.ensemble import RandomForestRegressor as RFR\n", "\n", - "# Random Forest を用いた学習\n", + "# Random Forest를 사용한 학습\n", "reg = RFR(n_jobs=-1, random_state=0)\n", "reg.fit(train_x.values, train_y)\n" ] @@ -621,7 +621,7 @@ "metadata": {}, "outputs": [], "source": [ - "# テスト用データ内のユーザーと映画の組に対して評価値を予測する\n", + "# 테스트용 데이터 안의 사용와 영화의 조합에 대해 평갓값을 예측한다\n", "test_pred = reg.predict(test_x.values)\n", "\n", "movie_rating_predict = test_keys.copy()\n", @@ -4466,15 +4466,15 @@ "from collections import defaultdict\n", "import numpy as np\n", "\n", - "# 学習用データに存在するすべてのユーザーとすべての映画の組み合わせに対して評価値を予測する\n", + "# 학습용 데이터에 존재하는 모든 사용자와 모든 영화의 조합에 대해 평갓값을 예측한다\n", "train_all_pred = reg.predict(train_all_x.values)\n", "\n", "pred_train_all = train_all_keys.copy()\n", "pred_train_all[\"rating_pred\"] = train_all_pred\n", "pred_matrix = pred_train_all.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating_pred\")\n", "\n", - "# ユーザーが学習用データ内で評価していない映画の中から\n", - "# 予測評価値が高い順に10件の映画をランキング形式の推薦リストとする\n", + "# 사용자가 학습용 데이터 안에서 평가하지 않은 영화 중에서\n", + "# 예측 평갓값이 높은 순으로 10편의 영화를 순위 형식으로 추천 리스트로 만든다\n", "pred_user2items = defaultdict(list)\n", "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", "for user_id in movielens_train.user_id.unique():\n", @@ -4771,7 +4771,7 @@ } ], "source": [ - "# user_id=2のユーザーが学習データで評価を付けた映画一覧\n", + "# user_id=2인 사용자가 학습 데이터에 평가를 부여한 영화 목록\n", "movielens_train[movielens_train.user_id==2]" ] }, @@ -4878,7 +4878,7 @@ } ], "source": [ - "# user_id=2に対するおすすめ(4210, 4961, 4105)\n", + "# user_id=2에 대한 추천(4210, 4961, 4105)\n", "movies[movies.movie_id.isin([4210, 4961, 4105])]" ] }, @@ -4907,7 +4907,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/colab/Random.ipynb b/chapter5/colab/Random.ipynb index 5744960..5719d24 100644 --- a/chapter5/colab/Random.ipynb +++ b/chapter5/colab/Random.ipynb @@ -13,8 +13,8 @@ "id": "b8e120c7", "metadata": {}, "source": [ - "# ランダム推薦\n", - "0.5から5の一様乱数を予測評価値とする" + "# 무작위 추천\n", + "0.5부터 5사이의 균등 난수를 예측 평갓값으로 한다" ] }, { @@ -24,11 +24,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", "\n", - "# データのダウンロードと解凍\n", + "# 데이터 다운로드와 압축 풀기\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -48,50 +48,50 @@ } ], "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", "import pandas as pd\n", "\n", - "# movieIDとタイトル名のみ使用\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "\n", "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "\n", - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "\n", "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "\n", "\n", - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "\n", "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -106,7 +106,7 @@ "metadata": {}, "outputs": [], "source": [ - "# ユーザーIDとアイテムIDに対して、0始まりのインデックスを割り振る\n", + "# 사용자 ID와 아이템 ID에 대해 0부터 시작하는 인덱스를 할당한다\n", "unique_user_ids = sorted(movielens_train.user_id.unique())\n", "unique_movie_ids = sorted(movielens_train.movie_id.unique())\n", "user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n", @@ -121,7 +121,7 @@ "outputs": [], "source": [ "import numpy as np\n", - "# ユーザー×アイテムの行列で、各セルの予測評価値は0.5〜5.0の一様乱数とする\n", + "# 사용자 x 아이템 행결에서 각 셀의 예측 평갓값은 0.5~5.0의 균등 난수로 한다\n", "pred_matrix = np.random.uniform(0.5, 5.0, (len(unique_user_ids), len(unique_movie_ids)))\n" ] }, @@ -132,16 +132,16 @@ "metadata": {}, "outputs": [], "source": [ - "# rmse評価用に、テストデータに出てくるユーザーとアイテムの予測評価値を格納する\n", + "# rmse 평가용으로 테스트 데이터에 나타나는 사용자와 아이템의 예측 평갓값을 저장한다.\n", "movie_rating_predict = movielens_test.copy()\n", "pred_results = []\n", "for i, row in movielens_test.iterrows():\n", " user_id = row[\"user_id\"]\n", - " # テストデータのアイテムIDが学習用に登場していない場合も乱数を格納する\n", + " # 테스트 데이터의 아이템 ID가 학습용에 나타나지 않는 경우에도 난수를 저장한다\n", " if row[\"movie_id\"] not in movie_id2index:\n", " pred_results.append(np.random.uniform(0.5, 5.0))\n", " continue\n", - " # テストデータに現れるユーザーIDとアイテムIDのインデックスを取得し、評価値行列の値を取得する\n", + " # 테스트 데이터에 나타난 사용자 ID와 아이템 ID의 인덱스를 얻어, 평갓값 행렬의 값을 얻는다\n", " user_index = user_id2index[row[\"user_id\"]]\n", " movie_index = movie_id2index[row[\"movie_id\"]]\n", " pred_score = pred_matrix[user_index, movie_index]\n", @@ -4733,11 +4733,11 @@ "source": [ "from collections import defaultdict\n", "\n", - "# ランキング評価用のデータ作成\n", - "# 各ユーザに対するおすすめ映画は、そのユーザがまだ評価していない映画の中からランダムに10作品とする\n", - "# キーはユーザーIDで、バリューはおすすめのアイテムIDのリスト\n", + "# 순위 평가용 데이터를 작성한다\n", + "# 각 사용자에 대한 추천 영화는 해당 사용자가 아직 평가하지 않은 영화 중에서 10작품을 무작위로 선택한다\n", + "# 키는 사용자 ID, 값은 추천 아이템 ID 리스트\n", "pred_user2items = defaultdict(list)\n", - "# ユーザーがすでに評価した映画を取得する\n", + "# 사용자가 이미 평가한 영화를 얻는다\n", "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", "for user_id in unique_user_ids:\n", " user_index = user_id2index[user_id]\n", @@ -5034,7 +5034,7 @@ } ], "source": [ - "# user_id=2のユーザーが学習データで評価を付けた映画一覧\n", + "# user_id=2인 사용자가 학습 데이터에서 평가를 부여한 영화 목록\n", "movielens_train[movielens_train.user_id==2]" ] }, @@ -5115,7 +5115,7 @@ } ], "source": [ - "# user_id=2に対するおすすめ(5656, 714, 4560)\n", + "# user_id=2에 대한 추천(5656, 714, 4560)\n", "movies[movies.movie_id.isin([5656, 714, 4560])]" ] }, @@ -5144,7 +5144,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/colab/SVD.ipynb b/chapter5/colab/SVD.ipynb index 5e3a71c..4035a2b 100644 --- a/chapter5/colab/SVD.ipynb +++ b/chapter5/colab/SVD.ipynb @@ -13,7 +13,7 @@ "id": "05fd5c37", "metadata": {}, "source": [ - "# 特異値分解(SVD)" + "# 특이값 분석(SVD)" ] }, { @@ -23,11 +23,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", "\n", - "# データのダウンロードと解凍\n", + "# 데이터 다운로드와 압축 풀기\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -47,50 +47,50 @@ } ], "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", "import pandas as pd\n", "\n", - "# movieIDとタイトル名のみ使用\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "\n", "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "\n", - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "\n", "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "\n", "\n", - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "\n", "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -105,9 +105,9 @@ "metadata": {}, "outputs": [], "source": [ - "# 欠損値の穴埋め方法\n", + "# 결손값을 채우는 방법\n", "fillna_with_zero = True\n", - "# 因子数\n", + "# 인자 수\n", "factors = 5" ] }, @@ -118,7 +118,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 評価値をユーザー×映画の行列に変換。欠損値は、平均値または0で穴埋めする\n", + "# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다.\n", "user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n", "user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n", "movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n", @@ -143,7 +143,7 @@ } ], "source": [ - "# スパース情報\n", + "# 희소 정보\n", "user_num = len(user_movie_matrix.index)\n", "item_num = len(user_movie_matrix.columns)\n", "non_null_num = user_num*item_num - user_movie_matrix.isnull().sum().sum()\n", @@ -164,7 +164,7 @@ "from scipy.sparse.linalg import svds\n", "import numpy as np\n", "\n", - "# 因子数kで特異値分解を行う\n", + "# 인자 수 k로 특이점 분석을 수행한다\n", "P, S, Qt = svds(matrix, k=factors)" ] }, @@ -183,7 +183,7 @@ } ], "source": [ - "# 予測評価値行列\n", + "# 예측 평갓값 행렬\n", "pred_matrix = np.dot(np.dot(P, np.diag(S)), Qt)\n", "\n", "print(f\"P: {P.shape}, S: {S.shape}, Qt: {Qt.shape}, pred_matrix: {pred_matrix.shape}\")" @@ -196,7 +196,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 学習用に出てこないユーザーや映画の予測評価値は、平均評価値とする\n", + "# 학습용에 나타나지 않은 사용자와 영화 예측 평갓값은 평균 평갓값으로 한다\n", "average_score = movielens_train.rating.mean()\n", "movie_rating_predict = movielens_test.copy()\n", "pred_results = []\n", @@ -1556,7 +1556,7 @@ "source": [ "from collections import defaultdict\n", "\n", - "# 各ユーザに対するおすすめ映画は、そのユーザがまだ評価していない映画の中から予測値が高い順にする\n", + "# 각 사용자에 대한 추천 영화는 해당 사용자 아직 평가하지 않은 영화 중에서 예측값이 높은 순으로 한다\n", "pred_user2items = defaultdict(list)\n", "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", "for user_id in movielens_train.user_id.unique():\n", @@ -1857,7 +1857,7 @@ } ], "source": [ - "# user_id=2のユーザーが学習データで評価を付けた映画一覧\n", + "# user_id=2인 사용자가 학습 데이터에서 평가를 부여한 영화 목록\n", "movielens_train[movielens_train.user_id==2]" ] }, @@ -1964,7 +1964,7 @@ } ], "source": [ - "# user_id=2に対するおすすめ(2959, 4993, 5952)\n", + "# user_id=2에 대한 추천(2959, 4993, 5952)\n", "movies[movies.movie_id.isin([2959, 2571, 4993])]" ] }, @@ -1993,7 +1993,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/colab/UMCF.ipynb b/chapter5/colab/UMCF.ipynb index dd2f086..4732c61 100644 --- a/chapter5/colab/UMCF.ipynb +++ b/chapter5/colab/UMCF.ipynb @@ -13,7 +13,7 @@ "id": "f8caaceb", "metadata": {}, "source": [ - "# ユーザー間型メモリベース法協調フィルタリング" + "# 사용자-사용자 메모리 기반 협조 필터링" ] }, { @@ -23,11 +23,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", "\n", - "# データのダウンロードと解凍\n", + "# 데이터 다운로드와 압축 풀기\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -47,50 +47,50 @@ } ], "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", "import pandas as pd\n", "\n", - "# movieIDとタイトル名のみ使用\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "\n", "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "\n", - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "\n", "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "\n", "\n", - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "\n", "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -106,7 +106,7 @@ "outputs": [], "source": [ "import numpy as np\n", - "# ピアソンの相関係数\n", + "# 피어슨 상관 계수\n", "def peason_coefficient(u: np.ndarray, v: np.ndarray) -> float:\n", " u_diff = u - np.mean(u)\n", " v_diff = v - np.mean(v)\n", @@ -126,12 +126,12 @@ "source": [ "from collections import defaultdict\n", "\n", - "# 評価値をユーザー×映画の行列に変換\n", + "# 평갓값을 사용자 x 화면의 행렬로 변환한다\n", "user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n", "user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n", "movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n", "\n", - "# 予測対象のユーザーと映画の組\n", + "# 예측 대상 사용자와 영화의 조합\n", "movie_rating_predict = movielens_test.copy()\n", "pred_user2items = defaultdict(list)" ] @@ -143,50 +143,50 @@ "metadata": {}, "outputs": [], "source": [ - "# 愚直に類似度を計算(こちらの計算はとても重いです。そのため、途中でbreakを入れています。速度向上のために、ライブラリを使った実装も次のセルで紹介します。)\n", + "# 우직하게 유사도를 계산한다(이 계산은 매우 무겁습니다. 그렇기 떄문에 도중에 break를 넣었습니다. 속도 향상을 위해 라이브러리르 사용한 구현도 다음 셀에서 소개합니다)\n", "\n", - "# 予測対象のユーザーID\n", + "# 예측 대상 사용자 ID\n", "test_users = movie_rating_predict.user_id.unique()\n", "\n", - "# 予測対象のユーザー(ユーザー1)に注目する\n", + "# 예측 대상 사용자(사용자 1)에 주목한다\n", "for user1_id in test_users:\n", " similar_users = []\n", " similarities = []\n", " avgs = []\n", "\n", - " # ユーザ−1と評価値行列中のその他のユーザー(ユーザー2)との類似度を算出する\n", + " # 사용자 1과 평갓값 행렬 안의 기타 사용자(사용자 2)와의 유사도를 산출한다\n", " for user2_id in user_movie_matrix.index:\n", " if user1_id == user2_id:\n", " continue\n", "\n", - " # ユーザー1とユーザー2の評価値ベクトル\n", + " # 사용자 1과 사용자 2의 평갓값 벡터\n", " u_1 = user_movie_matrix.loc[user1_id, :].to_numpy()\n", " u_2 = user_movie_matrix.loc[user2_id, :].to_numpy()\n", "\n", - " # `u_1` と `u_2` から、ともに欠損値でない要素のみ抜き出したベクトルを取得\n", + " # `u_1`과 `u_2`로부터, 동시에 결손값이 없는 요소만 추출한 벡터를 얻는다\n", " common_items = ~np.isnan(u_1) & ~np.isnan(u_2)\n", "\n", - " # 共通して評価したアイテムがない場合はスキップ\n", + " # 공통으로 평가한 아이템이 없으면 스킵\n", " if not common_items.any():\n", " continue\n", "\n", " u_1, u_2 = u_1[common_items], u_2[common_items]\n", "\n", - " # ピアソンの相関係数を使ってユーザー1とユーザー2の類似度を算出\n", + " # 피어슨 상관 계수를 사용해 사용자 1과 사용자 2의 유사도를 산출\n", " rho_12 = peason_coefficient(u_1, u_2)\n", "\n", - " # ユーザー1との類似度が0より大きい場合、ユーザー2を類似ユーザーとみなす\n", + " # 사용자 1과의 유사도가 0 보다 큰 경우, 사용자 2를 유사 사용자로 간주한다\n", " if rho_12 > 0:\n", " similar_users.append(user2_id)\n", " similarities.append(rho_12)\n", " avgs.append(np.mean(u_2))\n", "\n", - " # ユーザー1の平均評価値\n", + " # 사용자 1의 평균 평갓값\n", " avg_1 = np.mean(user_movie_matrix.loc[user1_id, :].dropna().to_numpy())\n", "\n", - " # 予測対象の映画のID\n", + " # 예측 대상 영화의 ID\n", " test_movies = movie_rating_predict[movie_rating_predict[\"user_id\"] == user1_id].movie_id.values\n", - " # 予測できない映画への評価値はユーザー1の平均評価値とする\n", + " # 예측할 수 없는 영화에 대한 평갓값은 사용자 1의 평균 평갓값으로 한다\n", " movie_rating_predict.loc[(movie_rating_predict[\"user_id\"] == user1_id), \"rating_pred\"] = avg_1\n", "\n", " if similar_users:\n", @@ -195,7 +195,7 @@ " r_xy = user_movie_matrix.loc[similar_users, movie_id].to_numpy()\n", " rating_exists = ~np.isnan(r_xy)\n", "\n", - " # 類似ユーザーが対象となる映画への評価値を持っていない場合はスキップ\n", + " # 유사 사용자가 대상이 되는 영화에 대한 평갓값을 갖지 않은 경우는 스킵한다\n", " if not rating_exists.any():\n", " continue\n", "\n", @@ -204,13 +204,13 @@ " avg_x = np.array(avgs)[rating_exists]\n", " r_hat_1y = avg_1 + np.dot(rho_1x, (r_xy - avg_x)) / rho_1x.sum()\n", "\n", - " # 予測評価値を格納\n", + " # 예측 평갓값을 저장\n", " movie_rating_predict.loc[\n", " (movie_rating_predict[\"user_id\"] == user1_id)\n", " & (movie_rating_predict[\"movie_id\"] == movie_id),\n", " \"rating_pred\",\n", " ] = r_hat_1y\n", - " break # 計算が重いため、forループの一回目で終わるようにしています。各変数にどんな値が入っているかを確認してもらえれば、アルゴリズムの理解が深まります" + " break # 계산이 무거우므로, for 루프는 1번만 수행한 뒤 종료합니다. 각 변수에 어떤 값이 들어있는지 확인하면 알고리즘을 더 깊이 이해할 수 있습니다." ] }, { @@ -4075,31 +4075,32 @@ } ], "source": [ - "# Surpriseを利用した実装\n", + "# surprise를 사용한 구현\n", "\n", "from surprise import KNNWithMeans, Reader\n", "from surprise import Dataset as SurpriseDataset\n", - "# Surprise用にデータを加工\n", + "# surprise용으로 데이터를 가공한다\n", "reader = Reader(rating_scale=(0.5, 5))\n", "data_train = SurpriseDataset.load_from_df(\n", " movielens_train[[\"user_id\", \"movie_id\", \"rating\"]], reader\n", ").build_full_trainset()\n", "\n", - "sim_options = {\"name\": \"pearson\", \"user_based\": True} # 類似度を計算する方法を指定する # False にするとアイテムベースとなる\n", + "sim_options = {\"name\": \"pearson\", \"user_based\": True} # 유사도를 계산하는 방법을 정의한다 # False로 하면 아이템 기반이 된다\n", "knn = KNNWithMeans(k=30, min_k=1, sim_options=sim_options)\n", "knn.fit(data_train)\n", "\n", - "# 学習データセットで評価値のないユーザーとアイテムの組み合わせを準備\n", + "# 학습 데이터셋에서 평갓값이 없는 사용자와 아이템의 조합을 준비한다\n", "data_test = data_train.build_anti_testset(None)\n", "predictions = knn.test(data_test)\n", "\n", "def get_top_n(predictions, n=10):\n", - " # 各ユーザーごとに、予測されたアイテムを格納する\n", + " # 각 사용자별로 예측된 아이템을 저장한다\n", " top_n = defaultdict(list)\n", " for uid, iid, true_r, est, _ in predictions:\n", " top_n[uid].append((iid, est))\n", "\n", - " # ユーザーごとに、アイテムを予測評価値順に並べ上位n個を格納する\n", + " ユーザーごとに、アイテムを予測評価値順に並べ上位n個を格納する\n", + " # 사용자별로 아이템을 예측 평갓값 순으로 나열하고, 상위 n개를 저장한다\n", " for uid, user_ratings in top_n.items():\n", " user_ratings.sort(key=lambda x: x[1], reverse=True)\n", " top_n[uid] = [d[0] for d in user_ratings[:n]]\n", @@ -4113,7 +4114,7 @@ "for _, row in movielens_test.iterrows():\n", " user_id = row[\"user_id\"]\n", " movie_id = row[\"movie_id\"]\n", - " # 学習データに存在せずテストデータにしか存在しないユーザーや映画についての予測評価値は、全体の平均評価値とする\n", + " # 학습 데이터에 존재하지 않고 테스트 데이터에만 존재하는 사용자와 영화에 대한 예측 평갓값은 전체의 평균 평갓값으로 한다\n", " if user_id not in user_id2index or movie_id not in movie_id2index:\n", " pred_results.append(average_score)\n", " continue\n", @@ -4407,7 +4408,7 @@ } ], "source": [ - "# user_id=2のユーザーが学習データで評価を付けた映画一覧\n", + "# user_id=2인 사용자가 학습 데이터에서 평가를 부여한 영화 목록\n", "movielens_train[movielens_train.user_id==2]" ] }, @@ -4514,7 +4515,7 @@ } ], "source": [ - "# user_id=2に対するおすすめ(1198, 1196, 1097)\n", + "# user_id=2에 대한 추천(1198, 1196, 1097)\n", "movies[movies.movie_id.isin([3473, 4135, 4850])]" ] }, @@ -4543,7 +4544,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/colab/Word2vec.ipynb b/chapter5/colab/Word2vec.ipynb index 81d4945..c33b451 100644 --- a/chapter5/colab/Word2vec.ipynb +++ b/chapter5/colab/Word2vec.ipynb @@ -23,11 +23,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", "\n", - "# データのダウンロードと解凍\n", + "# 데이터 다운로드와 압축 풀기\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -47,50 +47,50 @@ } ], "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", "import pandas as pd\n", "\n", - "# movieIDとタイトル名のみ使用\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "\n", "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "\n", - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "\n", "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "\n", "\n", - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "\n", "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -105,17 +105,17 @@ "metadata": {}, "outputs": [], "source": [ - "# 因子数\n", + "# 인자 수\n", "factors = 100\n", - "# エポック数\n", + "# 에폭 수\n", "n_epochs = 30\n", - "# windowサイズ\n", + "# window 크기\n", "window = 100\n", - "# スキップグラム\n", + "# 스킵 그램\n", "use_skip_gram = 1\n", - "# 階層的ソフトマックス\n", + "# 계층적 소프트맥스\n", "use_hierarchial_softmax = 0\n", - "# 使用する単語の出現回数のしきい値\n", + "# 사용할 단어의 출현 횟수의 임곗값\n", "min_count = 5" ] }, @@ -127,9 +127,9 @@ "outputs": [], "source": [ "movie_content = movies.copy()\n", - "# tagが付与されていない映画もあるが、genreはすべての映画に付与されている\n", - "# tagとgenreを結合したものを映画のコンテンツ情報として似ている映画を探して推薦していく\n", - "# tagがない映画に関しては、NaNになっているので、空のリストに変換してから処理をする\n", + "# tag가 부여되지 않은 영화는 있지만, genre는 모든 영화에 부여되어 있다\n", + "# tag와 genre를 결합한 것을 영화의 콘텐츠 정보로 해서 비슷한 영화를 찾아 추천한다\n", + "# tag가 없는 영화는 NaN으로 되어 있으므로, 빈 리스트로 변환한 뒤 처리한다\n", "movie_content[\"tag_genre\"] = movie_content[\"tag\"].fillna(\"\").apply(list) + movie_content[\"genre\"].apply(list)\n", "movie_content[\"tag_genre\"] = movie_content[\"tag_genre\"].apply(lambda x: set(map(str, x)))" ] @@ -162,7 +162,7 @@ "source": [ "import gensim\n", "\n", - "# タグとジャンルデータを使って、word2vecを学習する\n", + "# 태그와 장르 데이터를 사용해 word2vec을 학습한다\n", "tag_genre_data = movie_content.tag_genre.tolist()\n", "model = gensim.models.word2vec.Word2Vec(\n", " tag_genre_data,\n", @@ -202,7 +202,7 @@ } ], "source": [ - "# animeタグに似ているタグを確認\n", + "# anime 태크와 비슷한 태그를 확인한다\n", "model.wv.most_similar('anime')" ] }, @@ -213,8 +213,8 @@ "metadata": {}, "outputs": [], "source": [ - "# 各映画のベクトルを計算する\n", - "# 各映画に付与されているタグ・ジャンルのベクトルの平均を映画のベクトルとする\n", + "# 각 영화의 벡터를 계산한다\n", + "# 각 영화에 부여되어 있는 태그/장르 벡터의 평균을 영화의 벡터로 한다\n", "movie_vectors = []\n", "tag_genre_in_model = set(model.wv.key_to_index.keys())\n", "\n", @@ -222,10 +222,10 @@ "ids = []\n", "\n", "for i, tag_genre in enumerate(tag_genre_data):\n", - " # word2vecのモデルで使用可能なタグ・ジャンルに絞る\n", + " # word2vec 모델에서 사용할 수 있는 태그/장르로 필터링한다\n", " input_tag_genre = set(tag_genre) & tag_genre_in_model\n", " if len(input_tag_genre) == 0:\n", - " # word2vecに基づいてベクトル計算できない映画にはランダムのベクトルを付与\n", + " # word2vec에 기반해 벡터 계산할 수 없는 영화에는 무작위 벡터를 부여한다\n", " vector = np.random.randn(model.vector_size)\n", " else:\n", " vector = model.wv[input_tag_genre].mean(axis=0)\n", @@ -243,10 +243,10 @@ "source": [ "import numpy as np\n", "\n", - "# 後続の類似度計算がしやすいように、numpyの配列で保持しておく\n", + "# 후속 유사도 계산을 쉽게 할 수 있도록 numpy 배열로 저장한다\n", "movie_vectors = np.array(movie_vectors)\n", "\n", - "# 正規化したベクトル\n", + "# 정규화한 벡터\n", "sum_vec = np.sqrt(np.sum(movie_vectors ** 2, axis=1))\n", "movie_norm_vectors = movie_vectors / sum_vec.reshape((-1, 1))\n" ] @@ -258,7 +258,7 @@ "metadata": {}, "outputs": [], "source": [ - "# まだ評価していない映画で、類似度が高いアイテムを返す関数\n", + "# 아직 평가하지 않은 영화에서 유사도가 높은 아이템을 반환하는 함수\n", "def find_similar_items(vec, evaluated_movie_ids, topn=10):\n", " score_vec = np.dot(movie_norm_vectors, vec)\n", " similar_indexes = np.argsort(-score_vec)\n", @@ -1285,7 +1285,7 @@ } ], "source": [ - "# ユーザーが評価値4以上をつけた映画\n", + "# 사용자가 평갓값 4 이상을 부여한 영화\n", "movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n", "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", "\n", @@ -1420,7 +1420,7 @@ } ], "source": [ - "# user_id=2のユーザーが学習データで、4以上の評価を付けた映画一覧\n", + "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" ] }, @@ -1506,7 +1506,7 @@ } ], "source": [ - "# user_id=2に対するおすすめ(1198, 1196, 1097)\n", + "# user_id=2에 대한 추천(1198, 1196, 1097)\n", "movies[movies.movie_id.isin([1198, 1196, 1097])]" ] }, @@ -1535,7 +1535,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/colab/data_download.ipynb b/chapter5/colab/data_download.ipynb index 25338b4..80476ae 100644 --- a/chapter5/colab/data_download.ipynb +++ b/chapter5/colab/data_download.ipynb @@ -11,7 +11,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Movielensのデータのダウンロード" + "# Movielens 데이터 다운로드" ] }, { @@ -46,7 +46,7 @@ } ], "source": [ - "# MovieLensのデータセットをdataディレクトリにダウンロードして展開\n", + "# MovieLens 데이터셋을 data 디렉터리에 다운로드 한 뒤 압축을 푼다\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -55,7 +55,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Movielensのデータの確認" + "# Movielens 데이터 확인" ] }, { @@ -155,12 +155,12 @@ } ], "source": [ - "# 映画の情報の読み込み(10681作品)\n", - "# movieIDとタイトル名のみ使用\n", + "# 영화 정보 로딩(10681작품)\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "movies.head()" ] @@ -252,11 +252,11 @@ } ], "source": [ - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 바꾼다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "user_tagged_movies.head()" @@ -278,9 +278,9 @@ } ], "source": [ - "print(f'タグ種類={len(user_tagged_movies.tag.unique())}')\n", - "print(f'タグレコード数={len(user_tagged_movies)}')\n", - "print(f'タグが付いている映画数={len(user_tagged_movies.movie_id.unique())}')" + "print(f'태그 종류={len(user_tagged_movies.tag.unique())}')\n", + "print(f'태그 레코드 수={len(user_tagged_movies)}')\n", + "print(f'태그가 붙어있는 영화 수={len(user_tagged_movies.movie_id.unique())}')" ] }, { @@ -384,10 +384,10 @@ } ], "source": [ - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 태그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", "movies.head()" @@ -480,7 +480,7 @@ } ], "source": [ - "# 評価値データの読み込み\n", + "# 평갓값 데이터만 로딩한다\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "ratings.head()\n" @@ -573,7 +573,7 @@ } ], "source": [ - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자 수를 1000으로 줄여서 시험해본다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "ratings.head()" @@ -691,7 +691,7 @@ } ], "source": [ - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "movielens.head()" ] @@ -778,7 +778,7 @@ ], "source": [ "import numpy as np\n", - "# ユーザ情報\n", + "# 사용자 정보\n", "movielens.groupby('user_id').agg({'movie_id': len}).agg({'movie_id':[min, max, np.mean, len]})" ] }, @@ -846,7 +846,7 @@ } ], "source": [ - "# 映画情報\n", + "# 영화 정보\n", "movielens.groupby('movie_id').agg({'user_id': len}).agg({'user_id':[min, max, np.mean, len]})" ] }, @@ -864,7 +864,7 @@ } ], "source": [ - "print(f'評価値数={len(movielens)}')" + "print(f'평갓값 수={len(movielens)}')" ] }, { @@ -1005,7 +1005,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# データの分割" + "# 데이터 분할" ] }, { @@ -1014,10 +1014,10 @@ "metadata": {}, "outputs": [], "source": [ - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -1049,7 +1049,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/Association.ipynb b/chapter5/notebook/Association.ipynb index e11979f..bacf611 100644 --- a/chapter5/notebook/Association.ipynb +++ b/chapter5/notebook/Association.ipynb @@ -5,7 +5,7 @@ "id": "c7dc31f1", "metadata": {}, "source": [ - "# アソシエーション分析" + "# 어소시에이션 분석" ] }, { @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로를 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -29,7 +29,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -268,10 +268,10 @@ } ], "source": [ - "# ユーザー×映画の行列形式に変更\n", - "user_movie_matrix = movielens.train.pivot(index='user_id', columns='movie_id', values='rating')\n", + "# 사용자 x 영화 행렬 형식으로 변환한다\n", + "user_movie_matrix = movielens_train.pivot(index='user_id', columns='movie_id', values='rating')\n", "\n", - "# ライブラリ使用のために、4以上の評価値は1, 4未満の評価値と欠損値は0にする\n", + "# 라이브러리를 사용하기 위해 4 이상의 평갓값은 1, 4 미만의 평갓값과 결손값은 0으로 한다\n", "user_movie_matrix[user_movie_matrix < 4] = 0\n", "user_movie_matrix[user_movie_matrix.isnull()] = 0\n", "user_movie_matrix[user_movie_matrix >= 4] = 1\n", @@ -357,7 +357,7 @@ "source": [ "from mlxtend.frequent_patterns import apriori\n", "\n", - "# 支持度が高い映画の表示\n", + "# 지지도가 높은 영화를 표시\n", "freq_movies = apriori(\n", " user_movie_matrix, min_support=0.1, use_colnames=True)\n", "freq_movies.sort_values('support', ascending=False).head()" @@ -422,7 +422,7 @@ } ], "source": [ - "# movie_id=593のタイトルの確認\n", + "# movie_id=593의 제목 확인(양들의 침묵)\n", "movielens.item_content[movielens.item_content.movie_id == 593]" ] }, @@ -509,8 +509,7 @@ ], "source": [ "from mlxtend.frequent_patterns import association_rules\n", - "\n", - "# アソシエーションルールの計算(リフト値の高い順に表示)\n", + "# 어소시에이션 규칙 계산(리프트 값이 높은 순으로 표시)\n", "rules = association_rules(freq_movies, metric='lift', min_threshold=1)\n", "rules.sort_values('lift', ascending=False).head()[['antecedents', 'consequents', 'lift']]" ] @@ -522,7 +521,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Associationレコメンド\n", + "# 어소시에이션 추천\n", "from src.association import AssociationRecommender\n", "recommender = AssociationRecommender()\n", "recommend_result = recommender.recommend(movielens)" @@ -543,7 +542,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -571,7 +570,7 @@ } ], "source": [ - "# min_supportと精度の関係\n", + "# min_support와 정밀도의 관계\n", "for min_support in [0.06, 0.07, 0.08, 0.09, 0.1, 0.11]:\n", " recommend_result = recommender.recommend(movielens, min_support=min_support)\n", " metrics = metric_calculator.calc(\n", @@ -605,7 +604,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/BPR.ipynb b/chapter5/notebook/BPR.ipynb index a6ea8fe..fda56c8 100644 --- a/chapter5/notebook/BPR.ipynb +++ b/chapter5/notebook/BPR.ipynb @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -29,7 +29,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -70,7 +70,7 @@ } ], "source": [ - "# BPRレコメンド\n", + "# BPR 추천\n", "from src.bpr import BPRRecommender\n", "recommender = BPRRecommender()\n", "recommend_result = recommender.recommend(movielens)" @@ -91,7 +91,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -212,7 +212,7 @@ } ], "source": [ - "# 因子数と精度の関係\n", + "# 인자 수와 정밀도의 관계\n", "for factors in [5, 10, 30]:\n", " recommend_result = recommender.recommend(movielens, factors=factors)\n", " metrics = metric_calculator.calc(\n", @@ -246,7 +246,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/src/association.py b/chapter5/src/association.py index 0e65a50..e1d4c53 100644 --- a/chapter5/src/association.py +++ b/chapter5/src/association.py @@ -10,50 +10,50 @@ class AssociationRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # 評価数の閾値 + # 평갓값의 임곗값 min_support = kwargs.get("min_support", 0.1) min_threshold = kwargs.get("min_threshold", 1) - # ユーザー×映画の行列形式に変更 + # 사용자 x 영화 행렬 형식으로 변경 user_movie_matrix = dataset.train.pivot(index="user_id", columns="movie_id", values="rating") - # ライブラリ使用のために、4以上の評価値は1, 4未満の評価値と欠損値は0にする + # 라이브러리 사용을 위해 4 이상의 평갓값은 1, 4 미만의 평갓값은 0으로 한다 user_movie_matrix[user_movie_matrix < 4] = 0 user_movie_matrix[user_movie_matrix.isnull()] = 0 user_movie_matrix[user_movie_matrix >= 4] = 1 - # 支持度が高い映画 + # 지지도가 높은 영화 freq_movies = apriori(user_movie_matrix, min_support=min_support, use_colnames=True) - # アソシエーションルールの計算(リフト値の高い順に表示) + # 어소시에이션 규칙 계산(리프트값이 높은 순으로 표시) rules = association_rules(freq_movies, metric="lift", min_threshold=min_threshold) - # アソシエーションルールを使って、各ユーザーにまだ評価していない映画を10本推薦する + # 어소시에이션 규칙을 사용해, 각 사용자가 아직 평가하지 않은 영화를 10개 추천한다 pred_user2items = defaultdict(list) user_evaluated_movies = dataset.train.groupby("user_id").agg({"movie_id": list})["movie_id"].to_dict() - # 学習用データで評価値が4以上のものだけ取得する。 + # 학습용 데이터에서 평갓값이 4 이상인 것만 얻는다 movielens_train_high_rating = dataset.train[dataset.train.rating >= 4] for user_id, data in movielens_train_high_rating.groupby("user_id"): - # ユーザーが直近評価した5つの映画を取得 + # 사용자가 직전에 평가한 5개의 영화를 얻는다 input_data = data.sort_values("timestamp")["movie_id"].tolist()[-5:] - # それらの映画が条件部に1本でも含まれているアソシエーションルールを抽出 + # 그 영화들이 조건부에 하나라도 포함되는 어소시에이션 규칙을 검출한다 matched_flags = rules.antecedents.apply(lambda x: len(set(input_data) & x)) >= 1 - # アソシエーションルールの帰結部の映画をリストに格納し、登場頻度順に並び替え、ユーザーがまだに評価していないければ、推薦リストに追加する + # 어소시에이션 규칙의 귀결부의 영화를 리스트에 저장하고, 등록 빈도 수로 정렬해 사용자가 아직 평가하지 않았다면, 추천 목록에 추가한다 consequent_movies = [] for i, row in rules[matched_flags].sort_values("lift", ascending=False).iterrows(): consequent_movies.extend(row["consequents"]) - # 登場頻度をカウント + # 등록 빈도 세기 counter = Counter(consequent_movies) for movie_id, movie_cnt in counter.most_common(): if movie_id not in user_evaluated_movies[user_id]: pred_user2items[user_id].append(movie_id) - # 推薦リストが10本になったら終了する + # 추천 리스트가 10이 되면 종료한다 if len(pred_user2items[user_id]) == 10: break - # アソシエーションルールでは評価値の予測は難しいため、rmseの評価は行わない。(便宜上、テストデータの予測値をそのまま返す) + # 어소시에이션 규칙에서는 평갓값을 예측하지 않으므로, rmse 평가는 수행하지 않는다(편의상, 테스트 데이터의 예측값을 그대로 반환). return RecommendResult(dataset.test.rating, pred_user2items) diff --git a/chapter5/src/base_recommender.py b/chapter5/src/base_recommender.py index 19c22fb..f0943f0 100644 --- a/chapter5/src/base_recommender.py +++ b/chapter5/src/base_recommender.py @@ -10,11 +10,11 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: pass def run_sample(self) -> None: - # Movielensのデータを取得 + # Movielens 데이터 취득 movielens = DataLoader(num_users=1000, num_test_items=5, data_path="../data/ml-10M100K/").load() - # 推薦計算 + # 추천 계산 recommend_result = self.recommend(movielens) - # 推薦結果の評価 + # 추천 결과 평가 metrics = MetricCalculator().calc( movielens.test.rating.tolist(), recommend_result.rating.tolist(), diff --git a/chapter5/src/bpr.py b/chapter5/src/bpr.py index 252fed2..20b5256 100644 --- a/chapter5/src/bpr.py +++ b/chapter5/src/bpr.py @@ -10,14 +10,14 @@ class BPRRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # 因子数 + # 인자 수 factors = kwargs.get("factors", 10) - # 評価数の閾値 + # 평갓값의 임곗값 minimum_num_rating = kwargs.get("minimum_num_rating", 0) - # エポック数 + # 에폭 스 n_epochs = kwargs.get("n_epochs", 50) - # 行列分解用に行列を作成する + # 행력 분해용 행렬을 작성한다 filtered_movielens_train = dataset.train.groupby("movie_id").filter( lambda x: len(x["movie_id"]) >= minimum_num_rating ) @@ -38,10 +38,10 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: # initialize a model model = implicit.bpr.BayesianPersonalizedRanking(factors=factors, iterations=n_epochs) - # 学習 + # 학습 model.fit(movielens_matrix) - # 推薦 + # 추천 recommendations = model.recommend_all(movielens_matrix.T) pred_user2items = defaultdict(list) for user_id, user_index in user_id2index.items(): @@ -49,7 +49,7 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: for movie_index in movie_indexes: movie_id = unique_movie_ids[movie_index] pred_user2items[user_id].append(movie_id) - # BPRでは評価値の予測は難しいため、rmseの評価は行わない。(便宜上、テストデータの予測値をそのまま返す) + # BPR에서는 평갓값을 예측하지 않으므로, rmse 평가는 수행하지 않는다(편의상, 테스트 데이터의 예측값을 그대로 반환). return RecommendResult(dataset.test.rating, pred_user2items) diff --git a/chapter7/metrics.ipynb b/chapter7/metrics.ipynb index 462adb8..4e63d58 100644 --- a/chapter7/metrics.ipynb +++ b/chapter7/metrics.ipynb @@ -15,7 +15,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# 予測誤差指標" + "# 예측 오차 지표" ] }, { @@ -89,7 +89,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# 集合の評価指標" + "# 집합 평가 지표" ] }, { @@ -173,7 +173,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# ランキング評価指標" + "# 순위 평가 지표" ] }, { @@ -279,7 +279,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -293,7 +293,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.10.8" } }, "nbformat": 4, From b63ce3767610e004646e6db4cec849db8690d44e Mon Sep 17 00:00:00 2001 From: Moses Kim Date: Sun, 18 Dec 2022 10:38:05 +0900 Subject: [PATCH 02/17] translated ipynb --- chapter5/notebook/FM.ipynb | 12 ++-- chapter5/notebook/IMF.ipynb | 14 ++--- chapter5/notebook/Item2vec.ipynb | 10 ++-- chapter5/notebook/LDA_collaboration.ipynb | 10 ++-- chapter5/notebook/LDA_content.ipynb | 20 +++---- chapter5/notebook/MF.ipynb | 14 ++--- chapter5/notebook/NMF.ipynb | 14 ++--- chapter5/notebook/Popularity.ipynb | 26 ++++---- chapter5/notebook/RF.ipynb | 10 ++-- chapter5/notebook/Random.ipynb | 14 ++--- chapter5/notebook/SVD.ipynb | 26 ++++---- chapter5/notebook/Template.ipynb | 10 ++-- chapter5/notebook/UMCF.ipynb | 12 ++-- chapter5/notebook/Word2vec.ipynb | 20 +++---- chapter5/notebook/data_download.ipynb | 73 +++++++++-------------- 15 files changed, 134 insertions(+), 151 deletions(-) diff --git a/chapter5/notebook/FM.ipynb b/chapter5/notebook/FM.ipynb index 69a60c0..0cc104c 100644 --- a/chapter5/notebook/FM.ipynb +++ b/chapter5/notebook/FM.ipynb @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부포 폴더의 경로를 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -29,7 +29,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -158,7 +158,7 @@ } ], "source": [ - "# FMレコメンド\n", + "# FM 추천\n", "from src.fm import FMRecommender\n", "recommender = FMRecommender()\n", "recommend_result = recommender.recommend(movielens)" @@ -179,7 +179,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -312,7 +312,7 @@ } ], "source": [ - "# 補助情報の利用\n", + "# 보충 정보 사용\n", "recommend_result = recommender.recommend(movielens, use_side_information=True)\n", "metrics = metric_calculator.calc(\n", "movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -353,7 +353,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/IMF.ipynb b/chapter5/notebook/IMF.ipynb index 81ae6c0..bd57840 100644 --- a/chapter5/notebook/IMF.ipynb +++ b/chapter5/notebook/IMF.ipynb @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -29,7 +29,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -77,7 +77,7 @@ } ], "source": [ - "# Implicit Matrix Factorizationレコメンド\n", + "# Implicit Matrix Factorization 추천\n", "from src.imf import IMFRecommender\n", "recommender = IMFRecommender()\n", "recommend_result = recommender.recommend(movielens)" @@ -98,7 +98,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -219,7 +219,7 @@ } ], "source": [ - "# 因子数と精度の関係\n", + "# 인자 수와 정밀도의 관계\n", "for factors in [5, 10, 30]:\n", " recommend_result = recommender.recommend(movielens, factors=factors)\n", " metrics = metric_calculator.calc(\n", @@ -376,7 +376,7 @@ } ], "source": [ - "# alphaと精度の関係\n", + "# alpha와 정밀도의 관계\n", "for alpha in [0.5, 1.0, 2.0, 5.0]:\n", " recommend_result = recommender.recommend(movielens, alpha=alpha)\n", " metrics = metric_calculator.calc(\n", @@ -410,7 +410,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/Item2vec.ipynb b/chapter5/notebook/Item2vec.ipynb index b6b3f35..1b2394c 100644 --- a/chapter5/notebook/Item2vec.ipynb +++ b/chapter5/notebook/Item2vec.ipynb @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -29,7 +29,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -50,7 +50,7 @@ } ], "source": [ - "# Item2vecContentレコメンド\n", + "# Item2vecContent 추천\n", "from src.item2vec import Item2vecRecommender\n", "recommender = Item2vecRecommender()\n", "recommend_result = recommender.recommend(movielens)" @@ -71,7 +71,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -96,7 +96,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/LDA_collaboration.ipynb b/chapter5/notebook/LDA_collaboration.ipynb index 7639c46..eaa480b 100644 --- a/chapter5/notebook/LDA_collaboration.ipynb +++ b/chapter5/notebook/LDA_collaboration.ipynb @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -29,7 +29,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -320,7 +320,7 @@ } ], "source": [ - "# LDACollaborationレコメンド\n", + "# LDACollaboration 추천\n", "from src.lda_collaboration import LDACollaborationRecommender\n", "recommender = LDACollaborationRecommender()\n", "recommend_result = recommender.recommend(movielens)" @@ -341,7 +341,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -374,7 +374,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/LDA_content.ipynb b/chapter5/notebook/LDA_content.ipynb index 6664eab..2d9af6c 100644 --- a/chapter5/notebook/LDA_content.ipynb +++ b/chapter5/notebook/LDA_content.ipynb @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -29,7 +29,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -1730,20 +1730,20 @@ "from gensim.corpora.dictionary import Dictionary\n", "\n", "movie_content = movielens.item_content.copy()\n", - "# tagが付与されていない映画もあるが、genreはすべての映画に付与されている\n", - "# tagとgenreを結合したものを映画のコンテンツ情報として似ている映画を探して推薦していく\n", - "# tagがない映画に関しては、NaNになっているので、空のリストに変換してから処理をする\n", + "# tag가 부여되어 있지 않은 영화도 있지만, genre는 모든 영화에 부여되어 있다\n", + "# tag와 genre를 결합한 것을 영화 콘텐츠 정보로 해서 비슷한 영화를 찾아 추천한다\n", + "# tag가 없는 영화는 NaN으로 되어 있으므로, 빈 리스트로 변환한 뒤 처리한다\n", "movie_content['tag_genre'] = movie_content['tag'].fillna(\"\").apply(list) + movie_content['genre'].apply(list)\n", "movie_content['tag_genre'] = movie_content['tag_genre'].apply(lambda x:list(map(str, x)))\n", "\n", - "# タグとジャンルデータを使って、LDAを学習する\n", + "# 태그와 장르 데이터를 사용해 LDA를 학습한다\n", "tag_genre_data = movie_content.tag_genre.tolist()\n", "\n", "logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)\n", "common_dictionary = Dictionary(tag_genre_data)\n", "common_corpus = [common_dictionary.doc2bow(text) for text in tag_genre_data]\n", "\n", - "# LDAの学習\n", + "# LDA 학습\n", "lda_model = gensim.models.LdaModel(common_corpus, id2word=common_dictionary, num_topics=50, passes=30)\n", "lda_topics = lda_model[common_corpus]\n", "\n", @@ -3447,7 +3447,7 @@ } ], "source": [ - "# LDAContentレコメンド\n", + "# LDAContent추천\n", "from src.lda_content import LDAContentRecommender\n", "recommender = LDAContentRecommender()\n", "recommend_result = recommender.recommend(movielens)" @@ -3468,7 +3468,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -3501,7 +3501,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/MF.ipynb b/chapter5/notebook/MF.ipynb index 7c8a3eb..d408ae1 100644 --- a/chapter5/notebook/MF.ipynb +++ b/chapter5/notebook/MF.ipynb @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로를 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -29,7 +29,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -41,7 +41,7 @@ "metadata": {}, "outputs": [], "source": [ - "# MFレコメンド\n", + "# MF 추천\n", "from src.mf import MFRecommender\n", "recommender = MFRecommender()\n", "recommend_result = recommender.recommend(movielens)" @@ -62,7 +62,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -88,7 +88,7 @@ } ], "source": [ - "# 評価数のしきい値と精度の関係\n", + "# 평가 수의 임곗값과 정밀도의 관계\n", "for minimum_num_rating in [0, 10, 100, 300]:\n", " recommend_result = recommender.recommend(movielens, minimum_num_rating=minimum_num_rating)\n", " metrics = metric_calculator.calc(\n", @@ -114,7 +114,7 @@ } ], "source": [ - "# 因子数kと精度の関係\n", + "# 인자 수 k와 정밀도의 관계\n", "for factors in [5, 10, 30]:\n", " recommend_result = recommender.recommend(movielens, factors=factors)\n", " metrics = metric_calculator.calc(\n", @@ -148,7 +148,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/NMF.ipynb b/chapter5/notebook/NMF.ipynb index 69f2d7e..0b4962c 100644 --- a/chapter5/notebook/NMF.ipynb +++ b/chapter5/notebook/NMF.ipynb @@ -5,7 +5,7 @@ "id": "f8caaceb", "metadata": {}, "source": [ - "# 非負値行列分解" + "# 비부값 행렬 분석" ] }, { @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -29,7 +29,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -58,7 +58,7 @@ } ], "source": [ - "# NMFレコメンド\n", + "# NMF 추천\n", "from src.nmf import NMFRecommender\n", "recommender = NMFRecommender()\n", "recommend_result = recommender.recommend(movielens)" @@ -79,7 +79,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -118,7 +118,7 @@ } ], "source": [ - "# 欠損値のを平均値で穴埋め\n", + "# 결손값을 평균값으로 채운다\n", "recommend_result = recommender.recommend(movielens, fillna_with_zero=False)\n", "metrics = metric_calculator.calc(\n", "movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -151,7 +151,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/Popularity.ipynb b/chapter5/notebook/Popularity.ipynb index 10f5665..5812150 100644 --- a/chapter5/notebook/Popularity.ipynb +++ b/chapter5/notebook/Popularity.ipynb @@ -5,10 +5,10 @@ "id": "4ffa2166", "metadata": {}, "source": [ - "# 人気度順推薦\n", - "## 人気度の定義\n", - "* 今回は評価値が高いものを人気が髙い映画とする\n", - "* 人気度の定義は「クリック数が多いもの」「購入が多いもの」「評価値が髙いもの」など複数あり、自社サービスに最も適した定義を利用\n" + "# 인기도순 추천\n", + "## 인기도의 정의\n", + "* 여기에서는 평갓값이 높은 것을 인기도가 높은 영화로 간주한다\n", + "* 인기도의 정의는 '클릭 수가 많은 것', '구입이 많은 것', '평갓값이 높은 것' 등 다양하므로, 자사의 서비스에 적합한 정의를 사용한다\n" ] }, { @@ -18,7 +18,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -32,7 +32,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -136,9 +136,9 @@ } ], "source": [ - "\n", "import numpy as np\n", - "# 評価値が髙い映画の確認\n", + "\n", + "# 평갓값이 높은 영화 확인\n", "movie_stats = movielens.train.groupby(['movie_id', 'title']).agg({'rating': [np.size, np.mean]})\n", "movie_stats.sort_values(by=('rating', 'mean'), ascending=False).head()" ] @@ -242,7 +242,7 @@ } ], "source": [ - "# しきい値を導入\n", + "# 임곗값을 도입\n", "movie_stats = movielens.train.groupby(['movie_id', 'title']).agg({'rating': [np.size, np.mean]})\n", "atleast_flg = movie_stats['rating']['size'] >= 100\n", "movies_sorted_by_rating = movie_stats[atleast_flg].sort_values(by=('rating', 'mean'), ascending=False)\n", @@ -256,7 +256,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 人気度推薦\n", + "# 인기도 추천\n", "from src.popularity import PopularityRecommender\n", "recommender = PopularityRecommender()\n", "recommend_result = recommender.recommend(movielens, minimum_num_rating=100)" @@ -277,7 +277,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -301,7 +301,7 @@ } ], "source": [ - "# しきい値を変更したときの挙動\n", + "# 임곗값을 변경했을 때의 동작\n", "for minimum_num_rating in [1, 200]:\n", " recommend_result = recommender.recommend(movielens, minimum_num_rating=minimum_num_rating)\n", " metrics = metric_calculator.calc(\n", @@ -327,7 +327,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/RF.ipynb b/chapter5/notebook/RF.ipynb index fae3559..c812dfe 100644 --- a/chapter5/notebook/RF.ipynb +++ b/chapter5/notebook/RF.ipynb @@ -18,7 +18,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -32,7 +32,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -57,7 +57,7 @@ } ], "source": [ - "# Random Forest を用いた回帰レコメンド\n", + "# Random Forest를 사용한 회귀 추천\n", "from src.rf import RFRecommender\n", "recommender = RFRecommender()\n", "recommend_result = recommender.recommend(movielens)" @@ -78,7 +78,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -111,7 +111,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/Random.ipynb b/chapter5/notebook/Random.ipynb index f4532e3..4487c74 100644 --- a/chapter5/notebook/Random.ipynb +++ b/chapter5/notebook/Random.ipynb @@ -5,8 +5,8 @@ "id": "b8e120c7", "metadata": {}, "source": [ - "# ランダム推薦\n", - "0.5から5の一様乱数を予測評価値とする" + "# 무작위 추천\n", + "0.5~5의 균등 난수를 예측 평갓값으로 한다" ] }, { @@ -16,7 +16,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로를 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -30,7 +30,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 렌즈 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -42,7 +42,7 @@ "metadata": {}, "outputs": [], "source": [ - "# ランダムレコメンド\n", + "# 무작위 추천\n", "from src.random import RandomRecommender\n", "recommender = RandomRecommender()\n", "recommend_result = recommender.recommend(movielens)" @@ -63,7 +63,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -96,7 +96,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/SVD.ipynb b/chapter5/notebook/SVD.ipynb index d99bf38..9227231 100644 --- a/chapter5/notebook/SVD.ipynb +++ b/chapter5/notebook/SVD.ipynb @@ -5,7 +5,7 @@ "id": "05fd5c37", "metadata": {}, "source": [ - "# 特異値分解(SVD)" + "# 특이값 분해SVD)" ] }, { @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -29,7 +29,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -449,13 +449,13 @@ } ], "source": [ - "# スパース情報\n", + "# 희소 정보\n", "user_num = len(user_movie_matrix.index)\n", "item_num = len(user_movie_matrix.columns)\n", "non_null_num = user_num*item_num - user_movie_matrix.isnull().sum().sum()\n", "non_null_ratio = non_null_num / (user_num*item_num)\n", "\n", - "print(f'ユーザー数={user_num}, アイテム数={item_num}, 密度={non_null_ratio:.2f}')" + "print(f'사용자 수={user_num}, 아이템 수={item_num}, 정밀도={non_null_ratio:.2f}')" ] }, { @@ -875,17 +875,17 @@ "import scipy\n", "import numpy as np\n", "\n", - "# 評価値をユーザー×映画の行列に変換。欠損値は、平均値で穴埋めする\n", + "# 평갓값을 사용자 x 영화의 행렬로 변환. 결손값은 평균값으로 채운다\n", "user_movie_matrix = movielens.train.pivot(index='user_id', columns='movie_id', values='rating')\n", "user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n", "movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n", "matrix = user_movie_matrix.fillna(movielens.train.rating.mean()).to_numpy()\n", "\n", "\n", - "# 因子数kで特異値分解を行う\n", + "# 인자 수 x 특이값 분해를 수행한다\n", "P, S, Qt = scipy.sparse.linalg.svds(matrix, k=5)\n", "\n", - "# 予測評価値行列\n", + "# 예측 평갓값 행렬\n", "pred_matrix = np.dot(np.dot(P, np.diag(S)), Qt)\n", "\n", "print(f\"P: {P.shape}, S: {S.shape}, Qt: {Qt.shape}, pred_matrix: {pred_matrix.shape}\")" @@ -898,7 +898,7 @@ "metadata": {}, "outputs": [], "source": [ - "# SVDレコメンド\n", + "# SVD 추천\n", "from src.svd import SVDRecommender\n", "recommender = SVDRecommender()\n", "recommend_result = recommender.recommend(movielens)" @@ -919,7 +919,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -942,7 +942,7 @@ } ], "source": [ - "# 欠損値のを平均値で穴埋め\n", + "# 결손값을 평균값으로 채운다\n", "recommend_result = recommender.recommend(movielens, fillna_with_zero=False)\n", "metrics = metric_calculator.calc(\n", "movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -967,7 +967,7 @@ } ], "source": [ - "# 因子数kと精度の関係\n", + "# 인자 수와 정밀도의 관계\n", "for factors in [5, 10, 30]:\n", " recommend_result = recommender.recommend(movielens, factors=factors, fillna_with_zero=False)\n", " metrics = metric_calculator.calc(\n", @@ -1001,7 +1001,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/Template.ipynb b/chapter5/notebook/Template.ipynb index 7293bfb..f9842c6 100644 --- a/chapter5/notebook/Template.ipynb +++ b/chapter5/notebook/Template.ipynb @@ -7,7 +7,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -21,7 +21,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -33,7 +33,7 @@ "metadata": {}, "outputs": [], "source": [ - "# ランダムレコメンド\n", + "# 무작위 추천\n", "from src.random import RandomRecommender\n", "recommender = RandomRecommender()\n", "recommend_result = recommender.recommend(movielens)" @@ -46,7 +46,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -71,7 +71,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/UMCF.ipynb b/chapter5/notebook/UMCF.ipynb index 816db09..bb41031 100644 --- a/chapter5/notebook/UMCF.ipynb +++ b/chapter5/notebook/UMCF.ipynb @@ -5,7 +5,7 @@ "id": "f8caaceb", "metadata": {}, "source": [ - "# ユーザー間型メモリベース法協調フィルタリング" + "# 사용자-사용자 메모리 기반 방법 협조 필터링" ] }, { @@ -35,7 +35,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로를 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -49,7 +49,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='./data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -93,7 +93,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -144,7 +144,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -177,7 +177,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/Word2vec.ipynb b/chapter5/notebook/Word2vec.ipynb index 4e8ddf4..e182dc2 100644 --- a/chapter5/notebook/Word2vec.ipynb +++ b/chapter5/notebook/Word2vec.ipynb @@ -15,7 +15,7 @@ "metadata": {}, "outputs": [], "source": [ - "# 親のフォルダのパスを追加\n", + "# 부모 폴더의 경로를 추가\n", "import sys; sys.path.insert(0, '..')\n", "\n", "from util.data_loader import DataLoader\n", @@ -29,7 +29,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Movielensのデータの読み込み\n", + "# Movielens 데이터 로딩\n", "data_loader = DataLoader(num_users=1000, num_test_items=5, data_path='../data/ml-10M100K/')\n", "movielens = data_loader.load()" ] @@ -55,13 +55,13 @@ "\n", "movie_content = movielens.item_content.copy()\n", "\n", - "# tagが付与されていない映画もあるが、genreはすべての映画に付与されている\n", - "# tagとgenreを結合したものを映画のコンテンツ情報として似ている映画を探して推薦していく\n", - "# tagがない映画に関しては、NaNになっているので、空のリストに変換してから処理をする\n", + "# tag가 부여되어 있지 않은 영화가 있지만. genre는 모든 영화에 부여되어 있다\n", + "# tag와 genre를 결합한 것을 영화의 콘텐츠 정보로 해서 비슷한 영화를 찾아서 추천한다\n", + "# tag가 없는 영화에서는 NaN으로 되어 있으므로, 빈 리스트로 초기화한다\n", "movie_content['tag_genre'] = movie_content['tag'].fillna(\"\").apply(list) + movie_content['genre'].apply(list)\n", "movie_content['tag_genre'] = movie_content['tag_genre'].apply(lambda x:set(map(str, x)))\n", "\n", - "# タグとジャンルデータを使って、word2vecを学習する\n", + "# 태그와 장르 데이터를 사용해서, word2vec를 학습한다\n", "tag_genre_data = movie_content.tag_genre.tolist()\n", "model = gensim.models.word2vec.Word2Vec(tag_genre_data, vector_size=100, window=100, sg=1, hs=0, epochs=50, min_count=5)\n" ] @@ -93,7 +93,7 @@ } ], "source": [ - "# animeタグに似ているタグを確認\n", + "# anime 태그와 비슷한 태그를 확인한다\n", "model.wv.most_similar('anime')" ] }, @@ -104,7 +104,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Word2vecContentレコメンド\n", + "# Word2vecContent 추천\n", "from src.word2vec import Word2vecRecommender\n", "recommender = Word2vecRecommender()\n", "recommend_result = recommender.recommend(movielens)" @@ -125,7 +125,7 @@ } ], "source": [ - "# 評価\n", + "# 평가\n", "metric_calculator = MetricCalculator()\n", "metrics = metric_calculator.calc(\n", " movielens.test.rating.tolist(), recommend_result.rating.tolist(),\n", @@ -166,7 +166,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/chapter5/notebook/data_download.ipynb b/chapter5/notebook/data_download.ipynb index 1523aa9..e3fe52b 100644 --- a/chapter5/notebook/data_download.ipynb +++ b/chapter5/notebook/data_download.ipynb @@ -4,42 +4,25 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Movielensのデータのダウンロード" + "# Movielens 데이터 다운로드" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "--2021-11-30 00:17:51-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n", - "files.grouplens.org (files.grouplens.org) をDNSに問いあわせています... 128.101.65.152\n", - "files.grouplens.org (files.grouplens.org)|128.101.65.152|:443 に接続しています... 接続しました。\n", - "HTTP による接続要求を送信しました、応答を待っています... 200 OK\n", - "長さ: 65566137 (63M) [application/zip]\n", - "`../data/ml-10m.zip' に保存中\n", - "\n", - "ml-10m.zip 100%[===================>] 62.53M 778KB/s 時間 72s \n", - "\n", - "2021-11-30 00:19:03 (895 KB/s) - `../data/ml-10m.zip' へ保存完了 [65566137/65566137]\n", - "\n", - "Archive: ../data/ml-10m.zip\n", - " creating: ../data/ml-10M100K/\n", - " inflating: ../data/ml-10M100K/allbut.pl \n", - " inflating: ../data/ml-10M100K/movies.dat \n", - " inflating: ../data/ml-10M100K/ratings.dat \n", - " inflating: ../data/ml-10M100K/README.html \n", - " inflating: ../data/ml-10M100K/split_ratings.sh \n", - " inflating: ../data/ml-10M100K/tags.dat \n" + "/bin/bash: wget: command not found\n", + "unzip: cannot find or open ../data/ml-10m.zip, ../data/ml-10m.zip.zip or ../data/ml-10m.zip.ZIP.\n" ] } ], "source": [ - "# MovieLensのデータセットをdataディレクトリにダウンロードして展開\n", + "# MovieLens의 데이터셋을 data 디렉터리에 다운로드 한 뒤 압축을 푼다\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", "!unzip -n ../data/ml-10m.zip -d ../data/" ] @@ -48,7 +31,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Movielensのデータの確認" + "# Movielens 데이터 확인" ] }, { @@ -148,12 +131,12 @@ } ], "source": [ - "# 映画の情報の読み込み(10681作品)\n", - "# movieIDとタイトル名のみ使用\n", + "# 영화정보 로딩(10681작품)\n", + "# movieID와 제목만 사용\n", "m_cols = ['movie_id', 'title', 'genre']\n", "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", "\n", - "# genreをlist形式で保持する\n", + "# genre를 list 형식으로 저장한다\n", "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", "movies.head()" ] @@ -245,11 +228,11 @@ } ], "source": [ - "# ユーザが付与した映画のタグ情報の読み込み\n", + "# 사용자 부여한 영화의 태그 정보 로딩\n", "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", "\n", - "# tagを小文字にする\n", + "# tag를 소문자로 한다\n", "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", "\n", "user_tagged_movies.head()" @@ -271,9 +254,9 @@ } ], "source": [ - "print(f'タグ種類={len(user_tagged_movies.tag.unique())}')\n", - "print(f'タグレコード数={len(user_tagged_movies)}')\n", - "print(f'タグが付いている映画数={len(user_tagged_movies.movie_id.unique())}')" + "print(f'태그 종류={len(user_tagged_movies.tag.unique())}')\n", + "print(f'태그 레코드 수={len(user_tagged_movies)}')\n", + "print(f'태그가 붙어있는 영화 수={len(user_tagged_movies.movie_id.unique())}')" ] }, { @@ -377,10 +360,10 @@ } ], "source": [ - "# tagを映画ごとにlist形式で保持する\n", + "# tag를 영화별로 list 형식으로 저장한다\n", "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", "\n", - "# タグ情報を結合する\n", + "# 내그 정보를 결합한다\n", "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", "\n", "movies.head()" @@ -473,7 +456,7 @@ } ], "source": [ - "# 評価値データの読み込み\n", + "# 평갓값 데이터 로딩\n", "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", "ratings.head()\n" @@ -566,7 +549,7 @@ } ], "source": [ - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", + "# 데이터량이 많으므로 사용자 수를 1000명으로 줄여서 시험한다\n", "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", "ratings.head()" @@ -684,7 +667,7 @@ } ], "source": [ - "# 映画のデータと評価のデータを結合する\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", "movielens = ratings.merge(movies, on='movie_id')\n", "movielens.head()" ] @@ -771,7 +754,7 @@ ], "source": [ "import numpy as np\n", - "# ユーザ情報\n", + "# 사용자 정보\n", "movielens.groupby('user_id').agg({'movie_id': len}).agg({'movie_id':[min, max, np.mean, len]})" ] }, @@ -839,7 +822,7 @@ } ], "source": [ - "# 映画情報\n", + "# 영화 정보\n", "movielens.groupby('movie_id').agg({'user_id': len}).agg({'user_id':[min, max, np.mean, len]})" ] }, @@ -857,7 +840,7 @@ } ], "source": [ - "print(f'評価値数={len(movielens)}')" + "print(f'평갓값 수={len(movielens)}')" ] }, { @@ -998,7 +981,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# データの分割" + "# 데이터 분할" ] }, { @@ -1007,10 +990,10 @@ "metadata": {}, "outputs": [], "source": [ - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", + "# 학습용과 테스트용으로 데이터를 분할한다\n", + "# 각 사용자의 직전 5건의 영화를 평가용으로 사용하고, 그 이외는 학습용으로 한다\n", + "# 먼저, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 직전에 부여한 영화부터 순번을 부여한다(1부터 시작)\n", "\n", "movielens['timestamp_rank'] = movielens.groupby(\n", " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", @@ -1042,7 +1025,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.10.8" } }, "nbformat": 4, From cdf1650dba34cf7452b2eb6016f76d3e1778cfe6 Mon Sep 17 00:00:00 2001 From: Moses Kim Date: Sun, 18 Dec 2022 20:12:31 +0900 Subject: [PATCH 03/17] translated .py files(chapter5) --- chapter5/src/bpr.py | 2 +- chapter5/src/fm.py | 16 +++++------ chapter5/src/imf.py | 16 +++++------ chapter5/src/item2vec.py | 20 +++++++------- chapter5/src/lda_collaboration.py | 6 ++--- chapter5/src/lda_content.py | 14 +++++----- chapter5/src/mf.py | 26 +++++++++--------- chapter5/src/nmf.py | 10 +++---- chapter5/src/popularity.py | 10 +++---- chapter5/src/random.py | 18 ++++++------- chapter5/src/rf.py | 31 +++++++++++----------- chapter5/src/svd.py | 12 ++++----- chapter5/src/umcf.py | 44 +++++++++++++++---------------- chapter5/src/word2vec.py | 34 ++++++++++++------------ 14 files changed, 130 insertions(+), 129 deletions(-) diff --git a/chapter5/src/bpr.py b/chapter5/src/bpr.py index 20b5256..0cbb15b 100644 --- a/chapter5/src/bpr.py +++ b/chapter5/src/bpr.py @@ -49,7 +49,7 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: for movie_index in movie_indexes: movie_id = unique_movie_ids[movie_index] pred_user2items[user_id].append(movie_id) - # BPR에서는 평갓값을 예측하지 않으므로, rmse 평가는 수행하지 않는다(편의상, 테스트 데이터의 예측값을 그대로 반환). + # BPR에서는 평갓값을 예측하기 어려우므로 rmse 평가는 수행하지 않는다(편의상, 테스트 데이터의 예측값을 그대로 반환한다). return RecommendResult(dataset.test.rating, pred_user2items) diff --git a/chapter5/src/fm.py b/chapter5/src/fm.py index 4c82b65..19030f5 100644 --- a/chapter5/src/fm.py +++ b/chapter5/src/fm.py @@ -10,23 +10,23 @@ class FMRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # 因子数 + # 인자 수 factors = kwargs.get("factors", 10) - # 評価数の閾値 + # 평갓값의 임곗값 minimum_num_rating = kwargs.get("minimum_num_rating", 200) - # エポック数 + # 에폭 수 n_epochs = kwargs.get("n_epochs", 50) - # 学習率 + # 학습률 lr = kwargs.get("lr", 0.01) - # 補助情報の利用 + # 보충 정보 사용 use_side_information = kwargs.get("use_side_information", False) - # 評価値がminimum_num_rating件以上ある映画に絞る + # 평갓값이 minimum_num_rating건 이상인 영화로 필터링한다 filtered_movielens_train = dataset.train.groupby("movie_id").filter( lambda x: len(x["movie_id"]) >= minimum_num_rating ) - # ユーザーが評価した映画 + # 사용자가 평가한 영화 user_evaluated_movies = ( filtered_movielens_train.groupby("user_id").agg({"movie_id": list})["movie_id"].to_dict() ) @@ -70,7 +70,7 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: y_pred = fm_model.predict(X_test) pred_matrix = y_pred.reshape(len(unique_user_ids), len(unique_movie_ids)) - # 学習用に出てこないユーザーや映画の予測評価値は、平均評価値とする + # 학습용에 나오지 않은 사용자나 영화의 예측 평갓값은 평균 평간값으로 한다 average_score = dataset.train.rating.mean() movie_rating_predict = dataset.test.copy() pred_results = [] diff --git a/chapter5/src/imf.py b/chapter5/src/imf.py index 8c97e42..610cfa8 100644 --- a/chapter5/src/imf.py +++ b/chapter5/src/imf.py @@ -10,11 +10,11 @@ class IMFRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # 因子数 + # 인자 수 factors = kwargs.get("factors", 10) - # 評価数の閾値 + # 평갓값의 임곗값 minimum_num_rating = kwargs.get("minimum_num_rating", 0) - # エポック数 + # 에폭 수 n_epochs = kwargs.get("n_epochs", 50) # alpha alpha = kwargs.get("alpha", 1.0) @@ -23,7 +23,7 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: lambda x: len(x["movie_id"]) >= minimum_num_rating ) - # 行列分解用に行列を作成する + # 행렬 분석용으로 행렬을 작성한다 movielens_train_high_rating = filtered_movielens_train[dataset.train.rating >= 4] unique_user_ids = sorted(movielens_train_high_rating.user_id.unique()) @@ -37,15 +37,15 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: movie_index = movie_id2index[row["movie_id"]] movielens_matrix[movie_index, user_index] = 1.0 * alpha - # モデルの初期化 + # 모델 초기화 model = implicit.als.AlternatingLeastSquares( factors=factors, iterations=n_epochs, calculate_training_loss=True, random_state=1 ) - # 学習 + # 학습 model.fit(movielens_matrix) - # 推薦 + # 추천 recommendations = model.recommend_all(movielens_matrix.T) pred_user2items = defaultdict(list) for user_id, user_index in user_id2index.items(): @@ -53,7 +53,7 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: for movie_index in movie_indexes: movie_id = unique_movie_ids[movie_index] pred_user2items[user_id].append(movie_id) - # IMFでは評価値の予測は難しいため、rmseの評価は行わない。(便宜上、テストデータの予測値をそのまま返す) + # IMF에서는 평갓값의 예측이 어려우므로 rmse 평가는 수행하지 않는다(편의상, 테스트 데이터를 그대로 반환한다). return RecommendResult(dataset.test.rating, pred_user2items) diff --git a/chapter5/src/item2vec.py b/chapter5/src/item2vec.py index 09a2730..14fd72f 100644 --- a/chapter5/src/item2vec.py +++ b/chapter5/src/item2vec.py @@ -9,24 +9,24 @@ class Item2vecRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # 因子数 + # 인자 수 factors = kwargs.get("factors", 100) - # エポック数 + # 에폭 수 n_epochs = kwargs.get("n_epochs", 30) - # windowサイズ + # window 크기 window = kwargs.get("window", 100) - # スキップグラム + # 스킵 그램 use_skip_gram = kwargs.get("use_skip_gram", 1) - # 階層的ソフトマックス + # 계층적 소프트맥스 use_hierarchial_softmax = kwargs.get("use_hierarchial_softmax", 0) - # 使用する単語の出現回数のしきい値 + # 사용할 단어의 출현 횟수의 임곗값 min_count = kwargs.get("min_count", 5) item2vec_data = [] movielens_train_high_rating = dataset.train[dataset.train.rating >= 4] for user_id, data in movielens_train_high_rating.groupby("user_id"): - # 評価された順に並び替える - # item2vecではwindowというパラメータがあり、itemの評価された順番も重要な要素となる + # 평가된 순으로 나열한다 + # item2vec에서는 window라는 파라미터가 있으며, item의 평가된 순서도 중요한 요소가 된다 item2vec_data.append(data.sort_values("timestamp")["movie_id"].tolist()) model = gensim.models.word2vec.Word2Vec( @@ -46,13 +46,13 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: if item_id in model.wv.key_to_index: input_data.append(item_id) if len(input_data) == 0: - # おすすめ計算できない場合は空配列 + # 추천 계싼할 수 없는 경우에는 빈 배열 pred_user2items[user_id] = [] continue recommended_items = model.wv.most_similar(input_data, topn=10) pred_user2items[user_id] = [d[0] for d in recommended_items] - # Word2vecでは評価値の予測は難しいため、rmseの評価は行わない。(便宜上、テストデータの予測値をそのまま返す) + # Word2vec에서는 평갓값 예측이 어려우므로, rmse는 평가하지 않는다(편의상, 테스트 데이터의 예측값을 그대로 반환한다). return RecommendResult(dataset.test.rating, pred_user2items) diff --git a/chapter5/src/lda_collaboration.py b/chapter5/src/lda_collaboration.py index ef20e44..2b34ad8 100644 --- a/chapter5/src/lda_collaboration.py +++ b/chapter5/src/lda_collaboration.py @@ -11,9 +11,9 @@ class LDACollaborationRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # 因子数 + # 인자 수 factors = kwargs.get("factors", 50) - # エポック数 + # 에폭 수 n_epochs = kwargs.get("n_epochs", 30) logging.basicConfig(format="%(asctime)s : %(levelname)s : %(message)s", level=logging.INFO) @@ -46,7 +46,7 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: if len(pred_user2items[user_id]) == 10: break - # LDAでは評価値の予測は難しいため、rmseの評価は行わない。(便宜上、テストデータの予測値をそのまま返す) + # LDA에서는 평갓값 예측이 어려우므로 rmse 평가는 수행하지 않는다(편의상, 테스트 데이터를 그대로 반환한다). return RecommendResult(dataset.test.rating, pred_user2items) diff --git a/chapter5/src/lda_content.py b/chapter5/src/lda_content.py index df70932..a38a36a 100644 --- a/chapter5/src/lda_content.py +++ b/chapter5/src/lda_content.py @@ -12,19 +12,19 @@ class LDAContentRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # 因子数 + # 인자 수 factors = kwargs.get("factors", 50) - # エポック数 + # 에폭 수 n_epochs = kwargs.get("n_epochs", 30) movie_content = dataset.item_content.copy() - # tagが付与されていない映画もあるが、genreはすべての映画に付与されている - # tagとgenreを結合したものを映画のコンテンツ情報として似ている映画を探して推薦していく - # tagがない映画に関しては、NaNになっているので、空のリストに変換してから処理をする + # tag가 부여되저 있지 않은 영화는 있지만, genre는 모든 영화에 부여되어 있다 + # tag와 genre를 결함한 것을 영화의 콘텐츠로 해서 비슷한 영화를 차아서 추천한다 + # tag가 없는 영화는 NaN으로 되어 있으므로, 빈 리스트로 변환해서 처리한다 movie_content["tag_genre"] = movie_content["tag"].fillna("").apply(list) + movie_content["genre"].apply(list) movie_content["tag_genre"] = movie_content["tag_genre"].apply(lambda x: list(map(str, x))) - # タグとジャンルデータを使って、word2vecを学習する + # 태그와 장르 데이터를 사용해 word2vec을 학습한다 tag_genre_data = movie_content.tag_genre.tolist() logging.basicConfig(format="%(asctime)s : %(levelname)s : %(message)s", level=logging.INFO) @@ -70,7 +70,7 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: if len(pred_user2items[user_id]) == 10: break - # LDAでは評価値の予測は難しいため、rmseの評価は行わない。(便宜上、テストデータの予測値をそのまま返す) + # LDA에서는 평갓값의 예측이 어려우므로 rmse의 평가는 수행하지 않는다(편의상, 테스트 데이터의 예측값을 그대로 반환한다). return RecommendResult(dataset.test.rating, pred_user2items) diff --git a/chapter5/src/mf.py b/chapter5/src/mf.py index aa540c3..e5b29a9 100644 --- a/chapter5/src/mf.py +++ b/chapter5/src/mf.py @@ -11,47 +11,47 @@ class MFRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # 因子数 + # 인자 수 factors = kwargs.get("factors", 5) - # 評価数の閾値 + # 평갓값의 임곗값 minimum_num_rating = kwargs.get("minimum_num_rating", 100) - # バイアス項の使用 + # 바이어스 항 사용 use_biase = kwargs.get("use_biase", False) - # 学習率 + # 학습률 lr_all = kwargs.get("lr_all", 0.005) - # エポック数 + # 에폭 수 n_epochs = kwargs.get("n_epochs", 50) - # 評価数がminimum_num_rating件以上ある映画に絞る + # 평갓값이 minimum_num_rating건 이상 있는 연화로 필터링한다 filtered_movielens_train = dataset.train.groupby("movie_id").filter( lambda x: len(x["movie_id"]) >= minimum_num_rating ) - # Surprise用にデータを加工 + # Surprise용으로 데이터를 가공 reader = Reader(rating_scale=(0.5, 5)) data_train = SurpriseDataset.load_from_df( filtered_movielens_train[["user_id", "movie_id", "rating"]], reader ).build_full_trainset() - # Surpriseで行列分解を学習 - # SVDという名前だが、特異値分解ではなく、Matrix Factorizationが実行される + # Surprise로 행렬 분새를 학습 + # SVD라는 이름을 사용하지만, 특이점 분해가 아니라 Matrix Factorization이 실행된다 matrix_factorization = SVD(n_factors=factors, n_epochs=n_epochs, lr_all=lr_all, biased=use_biase) matrix_factorization.fit(data_train) def get_top_n(predictions, n=10): - # 各ユーザーごとに、予測されたアイテムを格納する + # 각 사용자별로 예측된 아이템을 저장한다 top_n = defaultdict(list) for uid, iid, true_r, est, _ in predictions: top_n[uid].append((iid, est)) - # ユーザーごとに、アイテムを予測評価値順に並べ上位n個を格納する + # 사용자별로 아이템을 예측 평값값순으로 나열하고 상위 n개를 저장한다 for uid, user_ratings in top_n.items(): user_ratings.sort(key=lambda x: x[1], reverse=True) top_n[uid] = [d[0] for d in user_ratings[:n]] return top_n - # 学習データに出てこないユーザーとアイテムの組み合わせを準備 + # 학습 데이터에 나오지 않은 사용자와 아이템의 조합을 준비한다 data_test = data_train.build_anti_testset(None) predictions = matrix_factorization.test(data_test) pred_user2items = get_top_n(predictions, n=10) @@ -61,7 +61,7 @@ def get_top_n(predictions, n=10): ) movie_rating_predict = dataset.test.merge(test_data, on=["user_id", "movie_id"], how="left") - # 予測ができない箇所には、平均値を格納する + # 예측할 수 없는 위치에는 평균값을 저장한다 movie_rating_predict.rating_pred.fillna(filtered_movielens_train.rating.mean(), inplace=True) return RecommendResult(movie_rating_predict.rating_pred, pred_user2items) diff --git a/chapter5/src/nmf.py b/chapter5/src/nmf.py index c5c4c1b..bf2323a 100644 --- a/chapter5/src/nmf.py +++ b/chapter5/src/nmf.py @@ -9,11 +9,11 @@ class NMFRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # 欠損値の穴埋め方法 + # 결손값을 채우는 방법 fillna_with_zero = kwargs.get("fillna_with_zero", True) factors = kwargs.get("factors", 5) - # 評価値をユーザー×映画の行列に変換。欠損値は、平均値または0で穴埋めする + # 평갓값을 사용자 x 영화의 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다) user_movie_matrix = dataset.train.pivot(index="user_id", columns="movie_id", values="rating") user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index)))) movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns)))) @@ -27,10 +27,10 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: P = nmf.fit_transform(matrix) Q = nmf.components_ - # 予測評価値行列 + # 예측 평갓값 행렬 pred_matrix = np.dot(P, Q) - # 学習用に出てこないユーザーや映画の予測評価値は、平均評価値とする + # 학습용에 나오지 않은 사용자나 영화의 예측 평갓값은 평균 평갓값으로 한다 average_score = dataset.train.rating.mean() movie_rating_predict = dataset.test.copy() pred_results = [] @@ -45,7 +45,7 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: pred_results.append(pred_score) movie_rating_predict["rating_pred"] = pred_results - # 各ユーザに対するおすすめ映画は、そのユーザがまだ評価していない映画の中から予測値が高い順にする + # 각 사용자에게 대한 추천 영화는 그 사용자가 아직 평가하지 않은 영화 중에서 예측값이 높은 순으로 한다 pred_user2items = defaultdict(list) user_evaluated_movies = dataset.train.groupby("user_id").agg({"movie_id": list})["movie_id"].to_dict() for user_id in dataset.train.user_id.unique(): diff --git a/chapter5/src/popularity.py b/chapter5/src/popularity.py index 603afb8..d282066 100644 --- a/chapter5/src/popularity.py +++ b/chapter5/src/popularity.py @@ -8,18 +8,18 @@ class PopularityRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # 評価数の閾値 + # 평갓값의 임곗값 minimum_num_rating = kwargs.get("minimum_num_rating", 200) - # 各アイテムごとの平均の評価値を計算し、その平均評価値を予測値として利用する + # 각 아이템별 평균 평갓값을 계산하고, 그 평균 평갓값을 예측값으로 사용한다 movie_rating_average = dataset.train.groupby("movie_id").agg({"rating": np.mean}) - # テストデータに予測値を格納する。テストデータのみに存在するアイテムの予測評価値は0とする + # 테스트 데이터에 예측값을 저장한다. 테스트 데이터에만 존재하는 아이템의 예측 평갓값은 0으로 한다 movie_rating_predict = dataset.test.merge( movie_rating_average, on="movie_id", how="left", suffixes=("_test", "_pred") ).fillna(0) - # 各ユーザに対するおすすめ映画は、そのユーザがまだ評価していない映画の中から評価値が高いもの10作品とする - # ただし、評価件数が少ないとノイズが大きいため、minimum_num_rating件以上評価がある映画に絞る + # 각 사용자에 대한 추천 영화는 해당 사용자가 아직 평가하지 않은 영화 중에서 평균값이 높은 10개 작품으로 한다 + # 단, 평가 건수가 적으면 노이즈가 커지므로 minimum_num_rating건 이상 평가가 있는 영화로 한정한다 pred_user2items = defaultdict(list) user_watched_movies = dataset.train.groupby("user_id").agg({"movie_id": list})["movie_id"].to_dict() movie_stats = dataset.train.groupby("movie_id").agg({"rating": [np.size, np.mean]}) diff --git a/chapter5/src/random.py b/chapter5/src/random.py index 7defa52..dacc3e6 100644 --- a/chapter5/src/random.py +++ b/chapter5/src/random.py @@ -8,36 +8,36 @@ class RandomRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # ユーザーIDとアイテムIDに対して、0始まりのインデックスを割り振る + # 사용자 ID와 아이템 ID에 대해 0부터 시작하는 인덱스를 할당한다 unique_user_ids = sorted(dataset.train.user_id.unique()) unique_movie_ids = sorted(dataset.train.movie_id.unique()) user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids)))) movie_id2index = dict(zip(unique_movie_ids, range(len(unique_movie_ids)))) - # ユーザー×アイテムの行列で、各セルの予測評価値は0.5〜5.0の一様乱数とする + # 사용자 x 아이템의 행렬에서 각 셀의 예측 평갓값은 0.5~5.0의 균등 난수로 한다 pred_matrix = np.random.uniform(0.5, 5.0, (len(unique_user_ids), len(unique_movie_ids))) - # rmse評価用に、テストデータに出てくるユーザーとアイテムの予測評価値を格納する + # rmse 평가용으로 테스트 데이터에 나오는 사용자와 아이템의 예측 평갓값을 저장한다 movie_rating_predict = dataset.test.copy() pred_results = [] for i, row in dataset.test.iterrows(): user_id = row["user_id"] - # テストデータのアイテムIDが学習用に登場していない場合も乱数を格納する + # 테스트 데이터의 아이템 ID가 학습용으로 등장하지 않는 경우도 난수를 저장한다 if row["movie_id"] not in movie_id2index: pred_results.append(np.random.uniform(0.5, 5.0)) continue - # テストデータに現れるユーザーIDとアイテムIDのインデックスを取得し、評価値行列の値を取得する + # 테스트 데이터에 나타나는 사용자 ID와 아이템 ID의 인덱스를 얻어, 평갓값 행렬값을 얻는다 user_index = user_id2index[row["user_id"]] movie_index = movie_id2index[row["movie_id"]] pred_score = pred_matrix[user_index, movie_index] pred_results.append(pred_score) movie_rating_predict["rating_pred"] = pred_results - # ランキング評価用のデータ作成 - # 各ユーザに対するおすすめ映画は、そのユーザがまだ評価していない映画の中からランダムに10作品とする - # キーはユーザーIDで、バリューはおすすめのアイテムIDのリスト + # 순위 평가용 데이터 작성 + # 각 사용자에 대한 추천 영화는, 해당 사용자가 아직 평가하지 않은 영화 중에서 무작위로 10개 작품으로 한다 + # 키는 사용자 ID, 값은 추천 아이템의 ID 리스트 pred_user2items = defaultdict(list) - # ユーザーがすでに評価した映画を取得する + # 사용자가 이미 평가한 영화를 저장한다 user_evaluated_movies = dataset.train.groupby("user_id").agg({"movie_id": list})["movie_id"].to_dict() for user_id in unique_user_ids: user_index = user_id2index[user_id] diff --git a/chapter5/src/rf.py b/chapter5/src/rf.py index fa2dd23..85a5d37 100644 --- a/chapter5/src/rf.py +++ b/chapter5/src/rf.py @@ -10,28 +10,29 @@ class RFRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # 評価値をユーザー×映画の行列に変換。欠損値は、平均値または0で穴埋めする + # 평갓값을 사용자 x 영화의 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다 user_movie_matrix = dataset.train.pivot(index="user_id", columns="movie_id", values="rating") user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index)))) movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns)))) - # 学習に用いる学習用データ中のユーザーと映画の組を取得する + # 학습에 사용하는 학습용 데이터 중 사용자와 영화의 조합을 얻는다 train_keys = dataset.train[["user_id", "movie_id"]] - # 学習用データ中の評価値を学習の正解データとして取得する + # 학습용 데이터 중의 평갓값을 학습의 정답 데이터로서 얻는다 train_y = dataset.train.rating.values - # 評価値を予測したいテスト用データ中のユーザーと映画の組を取得する + # 평갓값을 예측하고자 하는 테스트용 데이터 안의 사용자와 영화의 조합을 얻는다 test_keys = dataset.test[["user_id", "movie_id"]] - # ランキング形式の推薦リスト作成のために学習用データに存在するすべてのユーザーとすべての映画の組み合わせを取得する + # 순위 형식의 추천 리스르 작성을 윟 학습용 데이터에 존재하는 모든 사용자와 모든 영화의 조합을 저장한다 train_all_keys = user_movie_matrix.stack(dropna=False).reset_index()[["user_id", "movie_id"]] - # 特徴量を作成する + # 특징량을 작성한다 train_x = train_keys.copy() test_x = test_keys.copy() train_all_x = train_all_keys.copy() - # 学習用データに存在するユーザーごとの評価値の最小値、最大値、平均値 + # 학습용 데이터에 존재하는 사용자별 평갓값의 최솟값, 최댓값, 평균값 # 及び、映画ごとの評価値の最小値、最大値、平均値を特徴量として追加 + # 및, 영화별 평갓값의 최솟값, 최댓값, 평균값을 특징량ㅇ로 추가한다 aggregators = ["min", "max", "mean"] user_features = dataset.train.groupby("user_id").rating.agg(aggregators).to_dict() movie_features = dataset.train.groupby("movie_id").rating.agg(aggregators).to_dict() @@ -42,11 +43,11 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: train_x[f"m_{agg}"] = train_x["movie_id"].map(movie_features[agg]) test_x[f"m_{agg}"] = test_x["movie_id"].map(movie_features[agg]) train_all_x[f"m_{agg}"] = train_all_x["movie_id"].map(movie_features[agg]) - # テスト用データにしか存在しないユーザーや映画の特徴量を、学習用データ全体の平均評価値で埋める + # 테스트용 데이터에만 존재하는 사용자나 영화의 특징량을, 학습용 데이터 전체의 평균 평갓값으로 채운다 average_rating = train_y.mean() test_x.fillna(average_rating, inplace=True) - # 映画が特定の genre であるかどうかを表す特徴量を追加 + # 영화가 특정한 genre에 있는지를 나타태는 특징량을 추가 movie_genres = dataset.item_content[["movie_id", "genre"]] genres = set(list(itertools.chain(*movie_genres.genre))) for genre in genres: @@ -56,30 +57,30 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: test_x = test_x.merge(movie_genres, on="movie_id") train_all_x = train_all_x.merge(movie_genres, on="movie_id") - # 特徴量としては使わない情報を削除 + # 특징량으로서는 사용하지 않늦 정보를 삭제 train_x = train_x.drop(columns=["user_id", "movie_id"]) test_x = test_x.drop(columns=["user_id", "movie_id"]) train_all_x = train_all_x.drop(columns=["user_id", "movie_id"]) - # Random Forest を用いた学習 + # Random Forest를 사용한 학습 reg = RFR(n_jobs=-1, random_state=0) reg.fit(train_x.values, train_y) - # テスト用データ内のユーザーと映画の組に対して評価値を予測する + # 테스트용 데이터 안의 사용자와 영화의 조합에 대한 평갓값을 예측한다 test_pred = reg.predict(test_x.values) movie_rating_predict = test_keys.copy() movie_rating_predict["rating_pred"] = test_pred - # 学習用データに存在するすべてのユーザーとすべての映画の組み合わせに対して評価値を予測する + # 학습용 데이터에 존재하는 모든 사용자와 모든 영화의 조합애 대해 평갓값을 예측한다 train_all_pred = reg.predict(train_all_x.values) pred_train_all = train_all_keys.copy() pred_train_all["rating_pred"] = train_all_pred pred_matrix = pred_train_all.pivot(index="user_id", columns="movie_id", values="rating_pred") - # ユーザーが学習用データ内で評価していない映画の中から - # 予測評価値が高い順に10件の映画をランキング形式の推薦リストとする + # 사용자가 학습용 데이터 안에서 평가하지 않은 영화 중에서 + # 예측 평갓값이 높은 순으로 10건의 영화를 순위 형식의 추천 리스트로 한다 pred_user2items = defaultdict(list) user_evaluated_movies = dataset.train.groupby("user_id").agg({"movie_id": list})["movie_id"].to_dict() for user_id in dataset.train.user_id.unique(): diff --git a/chapter5/src/svd.py b/chapter5/src/svd.py index 59ae71c..d7de6d1 100644 --- a/chapter5/src/svd.py +++ b/chapter5/src/svd.py @@ -9,11 +9,11 @@ class SVDRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # 欠損値の穴埋め方法 + # 결손값을 채우는 방법 fillna_with_zero = kwargs.get("fillna_with_zero", True) factors = kwargs.get("factors", 5) - # 評価値をユーザー×映画の行列に変換。欠損値は、平均値または0で穴埋めする + # 평갓값을 사용자 x 영화의 행렬로 변환한다. 평갓값 또는 0으로 채운다. user_movie_matrix = dataset.train.pivot(index="user_id", columns="movie_id", values="rating") user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index)))) movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns)))) @@ -22,13 +22,13 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: else: matrix = user_movie_matrix.fillna(dataset.train.rating.mean()).to_numpy() - # 因子数kで特異値分解を行う + # 인자 수 k로 특이값 분해를 수행한다 P, S, Qt = scipy.sparse.linalg.svds(matrix, k=factors) - # 予測評価値行列 + # 예측 평갓값 행렬 pred_matrix = np.dot(np.dot(P, np.diag(S)), Qt) - # 学習用に出てこないユーザーや映画の予測評価値は、平均評価値とする + # 학습용에 나오지 않는 사용자나 영화의 예측 평갓값은 평균 평갓값으로 한다 average_score = dataset.train.rating.mean() movie_rating_predict = dataset.test.copy() pred_results = [] @@ -43,7 +43,7 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: pred_results.append(pred_score) movie_rating_predict["rating_pred"] = pred_results - # 各ユーザに対するおすすめ映画は、そのユーザがまだ評価していない映画の中から予測値が高い順にする + # 각 사용자에 대한 추천 영화는 해당 사용자가 아직 평가하지 않은 영화중에서 예측값이 높은 순으로 한다 pred_user2items = defaultdict(list) user_evaluated_movies = dataset.train.groupby("user_id").agg({"movie_id": list})["movie_id"].to_dict() for user_id in dataset.train.user_id.unique(): diff --git a/chapter5/src/umcf.py b/chapter5/src/umcf.py index a8c7def..8af5499 100644 --- a/chapter5/src/umcf.py +++ b/chapter5/src/umcf.py @@ -12,7 +12,7 @@ class UMCFRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # ピアソンの相関係数 + # 피어슨 상관 계수 def peason_coefficient(u: np.ndarray, v: np.ndarray) -> float: u_diff = u - np.mean(u) v_diff = v - np.mean(v) @@ -24,59 +24,59 @@ def peason_coefficient(u: np.ndarray, v: np.ndarray) -> float: is_naive = kwargs.get("is_naive", False) - # 評価値をユーザー×映画の行列に変換 + # 평갓값을 사용자 x 영화 행렬로 변환한다 user_movie_matrix = dataset.train.pivot(index="user_id", columns="movie_id", values="rating") user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index)))) movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns)))) - # 予測対象のユーザーと映画の組 + # 예측 대상 사용자와 영화 그룹 movie_rating_predict = dataset.test.copy() pred_user2items = defaultdict(list) if is_naive: - # 予測対象のユーザーID + # 예측 대상 사용자 ID test_users = movie_rating_predict.user_id.unique() - # 予測対象のユーザー(ユーザー1)に注目する + # 예측 대상 사요자(사용자 1)에 주목한다 for user1_id in test_users: similar_users = [] similarities = [] avgs = [] - # ユーザ−1と評価値行列中のその他のユーザー(ユーザー2)との類似度を算出する + # 사용자 1과 평갓값 행렬 안의 다른 사용자(사용자 2)와의 유사도를 산출한다 for user2_id in user_movie_matrix.index: if user1_id == user2_id: continue - # ユーザー1とユーザー2の評価値ベクトル + # 사용자 1과 사용자 2의 평갓값 벡터 u_1 = user_movie_matrix.loc[user1_id, :].to_numpy() u_2 = user_movie_matrix.loc[user2_id, :].to_numpy() - # `u_1` と `u_2` から、ともに欠損値でない要素のみ抜き出したベクトルを取得 + # `u_1`과 `u_2` 모두에서 결손값이 없는 요소만 추출한 벡터를 얻는다 common_items = ~np.isnan(u_1) & ~np.isnan(u_2) - # 共通して評価したアイテムがない場合はスキップ + # 공통으로 평가한 아이템이 없는 경우는 스킵한다 if not common_items.any(): continue u_1, u_2 = u_1[common_items], u_2[common_items] - # ピアソンの相関係数を使ってユーザー1とユーザー2の類似度を算出 + # 피어슨 상관 계수를 사용해 사용자 1과 사용자 2의 유사도를 산출한다 rho_12 = peason_coefficient(u_1, u_2) - # ユーザー1との類似度が0より大きい場合、ユーザー2を類似ユーザーとみなす + # 사용자 1과의 유사도가 0보다 큰 경우, 사용자 2를 유사 사용자로 간주한다 if rho_12 > 0: similar_users.append(user2_id) similarities.append(rho_12) avgs.append(np.mean(u_2)) - # ユーザー1の平均評価値 + # 사용자 1의 평균 평갓값 avg_1 = np.mean(user_movie_matrix.loc[user1_id, :].dropna().to_numpy()) - # 予測対象の映画のID + # 예측 대상의 영화 ID test_movies = movie_rating_predict[movie_rating_predict["user_id"] == user1_id].movie_id.values - # 予測できない映画への評価値はユーザー1の平均評価値とする + # 예측할 수 없는 영화에 대한 평갓값은 사용자 1의 평균 평갓값으로 한다 movie_rating_predict.loc[(movie_rating_predict["user_id"] == user1_id), "rating_pred"] = avg_1 if similar_users: @@ -85,7 +85,7 @@ def peason_coefficient(u: np.ndarray, v: np.ndarray) -> float: r_xy = user_movie_matrix.loc[similar_users, movie_id].to_numpy() rating_exists = ~np.isnan(r_xy) - # 類似ユーザーが対象となる映画への評価値を持っていない場合はスキップ + # 유사 사용자가 대상이 되는 영화에 대한 평갓값을 갖지 않는 경우는 스킵한다 if not rating_exists.any(): continue @@ -94,7 +94,7 @@ def peason_coefficient(u: np.ndarray, v: np.ndarray) -> float: avg_x = np.array(avgs)[rating_exists] r_hat_1y = avg_1 + np.dot(rho_1x, (r_xy - avg_x)) / rho_1x.sum() - # 予測評価値を格納 + # 예측 평갓값을 저장한다 movie_rating_predict.loc[ (movie_rating_predict["user_id"] == user1_id) & (movie_rating_predict["movie_id"] == movie_id), @@ -102,27 +102,27 @@ def peason_coefficient(u: np.ndarray, v: np.ndarray) -> float: ] = r_hat_1y else: - # Surprise用にデータを加工 + # Surprise용으로 데이터를 가공한다 reader = Reader(rating_scale=(0.5, 5)) data_train = SurpriseDataset.load_from_df( dataset.train[["user_id", "movie_id", "rating"]], reader ).build_full_trainset() - sim_options = {"name": "pearson", "user_based": True} # 類似度を計算する方法を指定する # False にするとアイテムベースとなる + sim_options = {"name": "pearson", "user_based": True} # 유사도를 계산하는 방법을 지정한다 # False로 하면 아이템 기반이 된다 knn = KNNWithMeans(k=30, min_k=1, sim_options=sim_options) knn.fit(data_train) - # 学習データセットで評価値のないユーザーとアイテムの組み合わせを準備 + # 학습 데이터셋에서 평갓값이 없는 사용자와 아이템의 조합을 준비 data_test = data_train.build_anti_testset(None) predictions = knn.test(data_test) def get_top_n(predictions, n=10): - # 各ユーザーごとに、予測されたアイテムを格納する + # 각 사용자별로 예측된 아이템을 저장한다 top_n = defaultdict(list) for uid, iid, true_r, est, _ in predictions: top_n[uid].append((iid, est)) - # ユーザーごとに、アイテムを予測評価値順に並べ上位n個を格納する + # 상요자별로 아이템을 예측 평갓값순으로 나열하고 상위 n개를 저장한다 for uid, user_ratings in top_n.items(): user_ratings.sort(key=lambda x: x[1], reverse=True) top_n[uid] = [d[0] for d in user_ratings[:n]] @@ -136,7 +136,7 @@ def get_top_n(predictions, n=10): for _, row in dataset.test.iterrows(): user_id = row["user_id"] movie_id = row["movie_id"] - # 学習データに存在せずテストデータにしか存在しないユーザーや映画についての予測評価値は、全体の平均評価値とする + # 학습 데이터에 존재하지 않고 테스트 데이터에만 존재하는 사용자나 영화에 관한 예측 평갓값는 전체 평균 평갓값으로 한다 if user_id not in user_id2index or movie_id not in movie_id2index: pred_results.append(average_score) continue diff --git a/chapter5/src/word2vec.py b/chapter5/src/word2vec.py index d5b0762..fcc9a48 100644 --- a/chapter5/src/word2vec.py +++ b/chapter5/src/word2vec.py @@ -9,27 +9,27 @@ class Word2vecRecommender(BaseRecommender): def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: - # 因子数 + # 인자 수 factors = kwargs.get("factors", 100) - # エポック数 + # 에폭 수 n_epochs = kwargs.get("n_epochs", 30) - # windowサイズ + # window 크기 window = kwargs.get("window", 100) - # スキップグラム + # 스킵 그램 use_skip_gram = kwargs.get("use_skip_gram", 1) - # 階層的ソフトマックス + # 계층적 소프트맥스 use_hierarchial_softmax = kwargs.get("use_hierarchial_softmax", 0) - # 使用する単語の出現回数のしきい値 + # 사용한 단어의 출현 횟수의 임곗값 min_count = kwargs.get("min_count", 5) movie_content = dataset.item_content.copy() - # tagが付与されていない映画もあるが、genreはすべての映画に付与されている - # tagとgenreを結合したものを映画のコンテンツ情報として似ている映画を探して推薦していく - # tagがない映画に関しては、NaNになっているので、空のリストに変換してから処理をする + # tag가 부여되지 않은 영화는 있지만, genre는 모든 영화에 부여되어 있다 + # tag와 genre를 결합한 것을 영화 콘텐츠 정보로해서 비슷한 영화를 찾아 추천한다 + # tag가 없는 영화의 경우에는 NaN으로 되어 있으므로, 빈 리스트로 변환한 뒤 처리한다 movie_content["tag_genre"] = movie_content["tag"].fillna("").apply(list) + movie_content["genre"].apply(list) movie_content["tag_genre"] = movie_content["tag_genre"].apply(lambda x: set(map(str, x))) - # タグとジャンルデータを使って、word2vecを学習する + # 태그와 장르 데이터를 사용해 word2vec을 학습한다 tag_genre_data = movie_content.tag_genre.tolist() model = gensim.models.word2vec.Word2Vec( tag_genre_data, @@ -41,8 +41,8 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: min_count=min_count, ) - # 各映画のベクトルを計算する - # 各映画に付与されているタグ・ジャンルのベクトルの平均を映画のベクトルとする + # 각 영화의 벡터를 계산한다 + # 각 영화에 부여되어 있는 태그/장르의 벡트 평균을 영화 벡터로 한다 movie_vectors = [] tag_genre_in_model = set(model.wv.key_to_index.keys()) @@ -50,10 +50,10 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: ids = [] for i, tag_genre in enumerate(tag_genre_data): - # word2vecのモデルで使用可能なタグ・ジャンルに絞る + # word2vec 모델에서 사용할 수 있는 태그/장르로 한정한다 input_tag_genre = set(tag_genre) & tag_genre_in_model if len(input_tag_genre) == 0: - # word2vecに基づいてベクトル計算できない映画にはランダムのベクトルを付与 + # word2vec에 기반해 벡터 계산할 수 없는 형화에는 무작위 벡터를 부여한다 vector = np.random.randn(model.vector_size) else: vector = model.wv[input_tag_genre].mean(axis=0) @@ -61,10 +61,10 @@ def recommend(self, dataset: Dataset, **kwargs) -> RecommendResult: ids.append(movie_content.iloc[i]["movie_id"]) movie_vectors.append(vector) - # 後続の類似度計算がしやすいように、numpyの配列で保持しておく + # 후속 유사도 계산을 쉽게할 수 있도록 numpy 배열로 저장해 둔다 movie_vectors = np.array(movie_vectors) - # 正規化したベクトル + # 정규화 벡터 sum_vec = np.sqrt(np.sum(movie_vectors ** 2, axis=1)) movie_norm_vectors = movie_vectors / sum_vec.reshape((-1, 1)) @@ -93,7 +93,7 @@ def find_similar_items(vec, evaluated_movie_ids, topn=10): recommended_items = find_similar_items(user_vector, evaluated_movie_ids, topn=10) pred_user2items[user_id] = recommended_items - # Word2vecでは評価値の予測は難しいため、rmseの評価は行わない。(便宜上、テストデータの予測値をそのまま返す) + # Word2vec에서는 평갓값 예측이 어려우므로, rmse의 평가는 수행하지 않는다(편의상, 테스트 데이터의 예측값을 그대로 반환한다) return RecommendResult(dataset.test.rating, pred_user2items) From 55d61c1f5309cf3e81d5f3b771b67ca180c416a6 Mon Sep 17 00:00:00 2001 From: Moses Kim Date: Sun, 18 Dec 2022 20:22:07 +0900 Subject: [PATCH 04/17] updated README.md --- README.md | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 3c39a51..5f6d869 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# 推薦システム実践入門 +# 추천 시스템 실전 입문 --- @@ -6,26 +6,41 @@ --- -本リポジトリはオライリー・ジャパン発行書籍『[推薦システム実践入門](https://www.oreilly.co.jp/books/9784873119663/)』のサポートサイトです。 + +이 저장소는 한빛미디어 발행 [추천 시스템 실전 입문]()의 지원 사이트입니다. -## サンプルコード + -本書の目的は、読者の仕事を助けることであり、一般に本書に掲載しているコードは読者のプログラムやドキュメントに使用してかまいません。コードの大部分を転載する場合を除き、我々に許可を求める必要はありません。たとえば、本書のコードの一部を使用するプログラムを作成するために許可は必要ありません。本書のコード例を販売、配布する場合には、許可が必要です。 +## 샘플 코드 -本書や本書のコード例を引用して質問などに答える場合、許可は必要ありません。本書のコード例のかなりの部分を製品マニュアルに転載するような場合には、許可が必要です。 + -出典を明記することを求めたりはしませんが、していただけるとありがたいです。出典には、通常、タイトル、著者、出版社、ISBNを入れてください。たとえば、「風間正弘、飯塚洸二郎、松村優也著『推薦システム実践入門』(オライリー・ジャパン、ISBN978-4-87311-966-3)」のようになります。 +이 책의 목적은 독자의 업무를 돕는 것으로, 일반적으로 이 책에 실린 코드는 독자의 프로그램이나 문서에 사용해도 좋습니다. 코드의 대부분을 전재하는 경우를 제외하고는 특별한 허가를 받을 필요는 없습니다. 예를 들어, 이 책의 코드의 일부를 사용하는 프로그램을 작성하기 위한 허가는 필요하지 않습니다. 이 책의 코드 예를 판매/배포하는 경우에는 허가를 받아야 합니다. -### ファイル構成 + -|フォルダ名 |説明 | -|:-- |:-- | -|chapter5 |5章で使用するコードやデータ | -|chapter7 |7章で使用するコード | +이 책이나 이 책의 코드 예를 인용해서 질문 등에 답하는 경우에는 허가가 필요하지 않습니다. 이 책의 코드 예의 상당한 부분을 제품 매뉴얼에 전재쟈하는 등의 경우에는 허가를 받아야 합니다. -コードやデータの解説は本書籍をご覧ください。 + -## 正誤表 +출처를 명기해야 하는 것은 아니지만, 표기한다면 감사하겠습니다. 출처에는 일반적으로 제목, 저자, 출판사, ISBN을 기재해 주십시오. 예를 들어, 「風間正弘、飯塚洸二郎、松村優也著『推薦システム実践入門』(オライリー・ジャパン、ISBN978-4-87311-966-3)」과 같습니다. -まだありません。誤植など間違いを見つけた方は、japan@oreilly.co.jpまでお知らせください。 + + +### 파일 구성 + +|파일명|설명| +|:---|:---| +|chapter5|5장에서 사용하는 코드와 데이터| +|chapter7|7장에서 사용하는 코드| + + + +코드나 데이터 설명은 책의 본문을 참조하기 바랍니다. + +## 정오표 + + + +아직 없습니다. 오기 등 잘못을 발견했을 때는 japan@oreilly.co.jp로 알려주십시오. From ebf1bc6dd8c4747eb39820eddcee9cdb0588dcc0 Mon Sep 17 00:00:00 2001 From: Moses Kim Date: Tue, 27 Dec 2022 15:07:02 +0900 Subject: [PATCH 05/17] translate google colab notebooks --- chapter5/colab/Association.ipynb | 1913 +-------- chapter5/colab/BPR.ipynb | 1683 +------- chapter5/colab/FM.ipynb | 2061 +--------- chapter5/colab/IMF.ipynb | 1545 +------ chapter5/colab/Item2vec.ipynb | 1482 +------ chapter5/colab/LDA_collaboration.ipynb | 1842 +-------- chapter5/colab/LDA_content.ipynb | 4002 +----------------- chapter5/colab/MF.ipynb | 1608 +------- chapter5/colab/NMF.ipynb | 1882 +-------- chapter5/colab/Popularity.ipynb | 1813 +-------- chapter5/colab/RF.ipynb | 4916 +--------------------- chapter5/colab/Random.ipynb | 5153 +----------------------- chapter5/colab/SVD.ipynb | 2002 +-------- chapter5/colab/UMCF.ipynb | 4553 +-------------------- chapter5/colab/Word2vec.ipynb | 1544 +------ chapter5/colab/data_download.ipynb | 1058 +---- 16 files changed, 16 insertions(+), 39041 deletions(-) diff --git a/chapter5/colab/Association.ipynb b/chapter5/colab/Association.ipynb index 9f3f361..0a2ff61 100644 --- a/chapter5/colab/Association.ipynb +++ b/chapter5/colab/Association.ipynb @@ -1,1912 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "d9777c7d", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/Association.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "c7dc31f1", - "metadata": {}, - "source": [ - "# 어소시에이션 분석" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "1b316a16", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/bin/bash: wget: command not found\n", - "unzip: cannot find or open ../data/ml-10m.zip, ../data/ml-10m.zip.zip or ../data/ml-10m.zip.ZIP.\n" - ] - } - ], - "source": [ - "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", - "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", - "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", - "\n", - "# 데이터 다운로드와 압축 풀기\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "c1b8db75", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", - "import pandas as pd\n", - "\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "f29c7aac", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_id12345678910...62000621136229362344623946280162803631136399264716
user_id
10.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
20.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
30.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
40.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
50.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
\n", - "

5 rows × 6673 columns

\n", - "
" - ], - "text/plain": [ - "movie_id 1 2 3 4 5 6 7 8 9 \\\n", - "user_id \n", - "1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "\n", - "movie_id 10 ... 62000 62113 62293 62344 62394 62801 62803 63113 \\\n", - "user_id ... \n", - "1 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "2 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "3 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "4 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "5 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "\n", - "movie_id 63992 64716 \n", - "user_id \n", - "1 0.0 0.0 \n", - "2 0.0 0.0 \n", - "3 0.0 0.0 \n", - "4 0.0 0.0 \n", - "5 0.0 0.0 \n", - "\n", - "[5 rows x 6673 columns]" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 사용자 x 영화 행렬 형식으로 변환한다\n", - "user_movie_matrix = movielens_train.pivot(index='user_id', columns='movie_id', values='rating')\n", - "\n", - "# 라이브러리를 사용하기 위해 4 이상의 평갓값은 1, 4 미만의 평갓값과 결손값은 0으로 한다\n", - "user_movie_matrix[user_movie_matrix < 4] = 0\n", - "user_movie_matrix[user_movie_matrix.isnull()] = 0\n", - "user_movie_matrix[user_movie_matrix >= 4] = 1\n", - "\n", - "user_movie_matrix.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "3f090eb7", - "metadata": {}, - "outputs": [], - "source": [ - "# 어소시에이션 규칙 라이브러리 설치(설치되어 있지 않다면 주석을 해제하고 실행합니다)\n", - "# !pip install mlxtend" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "ac2211c8", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
supportitemsets
420.415(593)
230.379(318)
210.369(296)
190.361(260)
250.319(356)
\n", - "
" - ], - "text/plain": [ - " support itemsets\n", - "42 0.415 (593)\n", - "23 0.379 (318)\n", - "21 0.369 (296)\n", - "19 0.361 (260)\n", - "25 0.319 (356)" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from mlxtend.frequent_patterns import apriori\n", - "\n", - "# 지지도가 높은 영화를 표시\n", - "freq_movies = apriori(\n", - " user_movie_matrix, min_support=0.1, use_colnames=True)\n", - "freq_movies.sort_values('support', ascending=False).head()" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "18be737d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
587593Silence of the Lambs, The (1991)[Crime, Horror, Thriller][based on a book, anthony hopkins, demme, psyc...
\n", - "
" - ], - "text/plain": [ - " movie_id title genre \\\n", - "587 593 Silence of the Lambs, The (1991) [Crime, Horror, Thriller] \n", - "\n", - " tag \n", - "587 [based on a book, anthony hopkins, demme, psyc... " - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# movie_id=593의 제목 확인(양들의 침묵)\n", - "movies[movies.movie_id == 593]" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "470dafd1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
antecedentsconsequentslift
649(4993)(5952)5.459770
648(5952)(4993)5.459770
1462(1196, 1198)(1291, 260)4.669188
1463(1291, 260)(1196, 1198)4.669188
1460(1291, 1196)(260, 1198)4.171359
\n", - "
" - ], - "text/plain": [ - " antecedents consequents lift\n", - "649 (4993) (5952) 5.459770\n", - "648 (5952) (4993) 5.459770\n", - "1462 (1196, 1198) (1291, 260) 4.669188\n", - "1463 (1291, 260) (1196, 1198) 4.669188\n", - "1460 (1291, 1196) (260, 1198) 4.171359" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from mlxtend.frequent_patterns import association_rules\n", - "\n", - "# 어소시에이션 규칙 계산(리프트 값이 높은 순으로 표시)\n", - "rules = association_rules(freq_movies, metric='lift', min_threshold=1)\n", - "rules.sort_values('lift', ascending=False).head()[['antecedents', 'consequents', 'lift']]" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "781b86a4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
48994993Lord of the Rings: The Fellowship of the Ring,...[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
58525952Lord of the Rings: The Two Towers, The (2002)[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "4899 4993 Lord of the Rings: The Fellowship of the Ring,... \n", - "5852 5952 Lord of the Rings: The Two Towers, The (2002) \n", - "\n", - " genre \\\n", - "4899 [Action, Adventure, Fantasy] \n", - "5852 [Action, Adventure, Fantasy] \n", - "\n", - " tag \n", - "4899 [based on a book, big budget, new zealand, sce... \n", - "5852 [based on a book, big budget, new zealand, sce... " - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# movie_id=4993, 5952의 제목 확인(반지의 제왕)\n", - "movies[movies.movie_id.isin([4993, 5952])]" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "7495518b", - "metadata": {}, - "outputs": [], - "source": [ - "# 학습용 데이터 평갓값이 4 이상인 것만 얻는다.\n", - "movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "782e5a9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "8381 2 1210 4.0 868245644 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 " - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2인 사용자가 4 이상의 평가를 남긴 영화 목록\n", - "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "0599276e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
antecedentsconsequentsantecedent supportconsequent supportsupportconfidenceliftleverageconviction
3(110)(1)0.2910.2630.1050.3608251.3719570.0284671.153048
5(260)(1)0.3610.2630.1530.4238231.6114930.0580571.279120
25(1210)(1)0.2730.2630.1160.4249081.6156210.0442011.281535
31(110)(32)0.2910.2550.1040.3573881.4015230.0297951.159332
33(260)(32)0.3610.2550.1370.3795011.4882410.0449451.200647
..............................
1476(1210, 1196)(2571, 260)0.1970.1610.1080.5482233.4051140.0762831.857112
1477(2571, 260)(1210, 1196)0.1610.1970.1080.6708073.4051140.0762832.439302
1479(1196, 260)(1210, 2571)0.2240.1390.1080.4821433.4686540.0768641.662621
1480(1210)(1196, 2571, 260)0.2730.1410.1080.3956042.8057050.0695071.421255
1482(260)(1210, 2571, 1196)0.3610.1240.1080.2991692.4126530.0632361.249945
\n", - "

326 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " antecedents consequents antecedent support \\\n", - "3 (110) (1) 0.291 \n", - "5 (260) (1) 0.361 \n", - "25 (1210) (1) 0.273 \n", - "31 (110) (32) 0.291 \n", - "33 (260) (32) 0.361 \n", - "... ... ... ... \n", - "1476 (1210, 1196) (2571, 260) 0.197 \n", - "1477 (2571, 260) (1210, 1196) 0.161 \n", - "1479 (1196, 260) (1210, 2571) 0.224 \n", - "1480 (1210) (1196, 2571, 260) 0.273 \n", - "1482 (260) (1210, 2571, 1196) 0.361 \n", - "\n", - " consequent support support confidence lift leverage conviction \n", - "3 0.263 0.105 0.360825 1.371957 0.028467 1.153048 \n", - "5 0.263 0.153 0.423823 1.611493 0.058057 1.279120 \n", - "25 0.263 0.116 0.424908 1.615621 0.044201 1.281535 \n", - "31 0.255 0.104 0.357388 1.401523 0.029795 1.159332 \n", - "33 0.255 0.137 0.379501 1.488241 0.044945 1.200647 \n", - "... ... ... ... ... ... ... \n", - "1476 0.161 0.108 0.548223 3.405114 0.076283 1.857112 \n", - "1477 0.197 0.108 0.670807 3.405114 0.076283 2.439302 \n", - "1479 0.139 0.108 0.482143 3.468654 0.076864 1.662621 \n", - "1480 0.141 0.108 0.395604 2.805705 0.069507 1.421255 \n", - "1482 0.124 0.108 0.299169 2.412653 0.063236 1.249945 \n", - "\n", - "[326 rows x 9 columns]" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2의 사용자가 4 이상의 평가를 남긴 영화 목록\n", - "user2_data = movielens_train_high_rating[movielens_train_high_rating.user_id==2]\n", - "\n", - "# 사용자가 최근 평가한 4개의 영화 얻기\n", - "input_data = user2_data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-5:]\n", - "\n", - "# 그 영화들이 조건부로 포함된 어오시에이션 규칙을 추출\n", - "matched_flags = rules.antecedents.apply(lambda x: len(set(input_data) & x)) >= 1\n", - "rules[matched_flags]" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "689b0be8", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[(1196, 92),\n", - " (593, 41),\n", - " (1198, 34),\n", - " (260, 34),\n", - " (1210, 34),\n", - " (318, 20),\n", - " (296, 19),\n", - " (2571, 18),\n", - " (356, 17),\n", - " (589, 16)]" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from collections import defaultdict, Counter\n", - "\n", - "# 어소시에이션 규칙의 귀결부의 영화를 리스트로 저장한다\n", - "# 같은 영화가 여러 차례 귀결부에 나타날 수 있다\n", - "\n", - "consequent_movies = []\n", - "for i, row in rules[matched_flags].sort_values(\"lift\", ascending=False).iterrows(): # lift値でソートして、上位10個のルールだけを使うようにするなどの工夫も可能です\n", - " consequent_movies.extend(row[\"consequents\"])\n", - " \n", - "# 귀결부에서의 출현 빈도 카운트\n", - "counter = Counter(consequent_movies)\n", - "counter.most_common(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "e1f61bb6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n", - "\n", - " genre \\\n", - "1171 [Action, Adventure, Sci-Fi] \n", - "\n", - " tag \n", - "1171 [lucas, george lucas, george lucas, gfei own i... " - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# movie_id=1196가 92번 귀결부에 출현하므로, user_id=2에는 movie_id=1196(Star Wars: Episode V)가 추천 후보가 된다\n", - "# (user_id=2의 학습 데이터에서는 Star Wars 에피소드 4, 6의 평가가 높다)\n", - "movies[movies.movie_id == 1196]" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "7540d95c", - "metadata": {}, - "outputs": [], - "source": [ - "# 추천 방법에는 lift 값이 높은 것을 추출하는 방법 등이 있다. 몇 가지 방법을 시도해 보고 자사의 데이터에 맞는 방법을 선택한다." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "53918e5b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "defaultdict(list,\n", - " {2: [1196, 593, 1198, 318, 296, 2571, 356, 589, 1240, 1291],\n", - " 6: [593, 296, 318, 541, 47, 608, 50, 589, 527, 1],\n", - " 9: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n", - " 10: [858, 1196, 260, 318],\n", - " 11: [2858, 50, 296, 593],\n", - " 12: [260],\n", - " 13: [593, 318, 527, 356, 260, 47, 110, 2858, 589, 457],\n", - " 17: [1196, 296, 1200, 1240, 541, 2571, 1198, 1210],\n", - " 18: [1200, 1197, 50, 858, 1193],\n", - " 22: [318, 1196, 260, 457, 608, 2571, 1210, 1240, 1198, 541],\n", - " 23: [1196, 1210, 1198, 2571, 318, 1291, 1240, 356, 858, 110],\n", - " 24: [1198, 1196, 296, 593, 1221, 1213, 1193, 1214, 541, 2028],\n", - " 26: [593, 318, 296, 1196, 260, 50, 356, 527, 1210, 1240],\n", - " 27: [296, 593, 50, 318, 541, 858, 2858, 1, 260, 1198],\n", - " 33: [296, 593, 50, 318, 541, 858, 2858, 260, 1198, 527],\n", - " 37: [527, 356, 1196, 260, 608, 2858, 457, 858, 480, 1198],\n", - " 40: [],\n", - " 41: [],\n", - " 42: [1196, 260, 1198, 296, 318, 593],\n", - " 44: [1196, 260, 1198, 593],\n", - " 45: [296, 318, 47, 527, 541, 32],\n", - " 46: [593, 1196, 260, 1240, 1210, 296, 318, 2571, 457, 356],\n", - " 50: [50, 1196, 260, 1193, 2028, 47, 2858, 1198, 858, 32],\n", - " 52: [2858, 296, 593],\n", - " 53: [2571, 1196, 318, 296, 593],\n", - " 54: [1196, 260, 527, 1240, 1210, 608, 2571, 1198, 32, 1200],\n", - " 56: [],\n", - " 59: [356, 50, 1196, 527, 260, 110, 589, 1198, 480, 47],\n", - " 60: [1196, 1200, 1240, 2571, 1198, 589, 1210],\n", - " 61: [1196, 260, 457, 50, 110, 589, 1198, 1210, 150, 480],\n", - " 62: [1196, 260, 457, 50, 356, 589, 527, 1198, 110, 1210],\n", - " 63: [296, 318, 593, 1196, 260, 2959, 2762, 2028, 2571, 50],\n", - " 64: [1210, 1198, 480, 1196, 356, 589, 110, 296, 318, 593],\n", - " 71: [593, 318, 50, 356, 527, 457, 110, 1196, 47, 260],\n", - " 72: [296, 318, 589, 110, 150, 1198, 1210, 1, 2571, 1196],\n", - " 75: [593, 318, 356, 1196, 527, 1210, 260, 457, 50, 590],\n", - " 76: [1196, 260, 1240, 1210, 2571, 356, 527, 1036, 1200, 1214],\n", - " 77: [260],\n", - " 80: [356, 480, 589, 527, 588, 590, 1198, 1196, 260],\n", - " 83: [1200, 2571, 589, 593, 296],\n", - " 84: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n", - " 85: [1196, 260, 1210, 1198, 589, 318, 3578, 4993, 5952, 2959],\n", - " 86: [593, 296, 318, 356, 260, 150, 1, 527],\n", - " 87: [2571, 318, 296, 593],\n", - " 95: [1196, 50, 527, 260, 457, 1210, 47, 2571, 1240, 608],\n", - " 99: [2858, 2571, 1196, 593],\n", - " 100: [],\n", - " 102: [593, 50, 110, 527, 1196, 589, 260, 608, 32, 2571],\n", - " 104: [589, 1210, 1200, 296],\n", - " 105: [2571, 593, 356, 1240, 589, 296, 1291, 318, 1, 1200],\n", - " 106: [364, 480, 457, 110, 593, 296, 318],\n", - " 111: [527, 1196, 1210, 260, 589, 50, 1198, 1, 2571, 590],\n", - " 113: [2858, 2571, 1196, 318, 296, 593],\n", - " 116: [1196, 260, 2571, 1240, 1, 1036, 1200, 1214, 541, 2028],\n", - " 119: [1196, 260, 50, 1210, 2571],\n", - " 121: [260, 1036, 589],\n", - " 129: [2571, 1196, 318, 296, 593],\n", - " 132: [50, 1196, 260, 527, 110, 589, 1198, 47, 150, 1210],\n", - " 137: [],\n", - " 138: [457, 527, 480, 150, 608, 858, 1213, 111, 1097, 590],\n", - " 141: [318, 296, 50, 110, 1196, 260, 1193, 2028, 47, 2858],\n", - " 142: [296, 318, 1196, 260, 356, 50, 589, 527, 110, 1198],\n", - " 145: [318, 1196, 260, 527, 589, 110, 1198, 47, 608, 480],\n", - " 148: [2571, 1198, 858, 593],\n", - " 149: [],\n", - " 150: [593, 318, 296, 110, 1196, 260, 457, 50, 150, 589],\n", - " 151: [593, 541, 858, 32, 2858, 1, 1198, 1210],\n", - " 152: [296, 32, 527],\n", - " 153: [593, 318, 50, 356, 1196, 47, 608, 1210, 2858, 457],\n", - " 154: [318],\n", - " 155: [],\n", - " 161: [1036],\n", - " 162: [593, 457, 318, 380, 150],\n", - " 164: [50, 110, 1196, 260, 1193, 2028, 2858, 1198, 858, 2571],\n", - " 166: [318, 356, 296, 150, 480, 589, 110, 50, 527, 380],\n", - " 168: [593, 318, 296, 110, 527, 1196, 1210, 260, 150, 457],\n", - " 171: [593, 858],\n", - " 172: [593, 318, 1196, 260, 296, 356, 1210, 527, 1240, 2571],\n", - " 174: [50, 356, 110, 1196, 47, 260, 457, 589, 1210, 150],\n", - " 176: [296, 318, 1196, 260, 356, 50, 589, 527, 110, 1198],\n", - " 177: [296, 593, 50, 318, 541, 858, 2858, 260, 1198, 527],\n", - " 178: [296, 50, 590, 480, 2028, 47, 2858, 1198, 858, 32],\n", - " 179: [593, 318, 527, 47, 457, 2858, 356],\n", - " 180: [2858, 2571, 1196, 318, 296, 593],\n", - " 183: [296, 50, 356, 47, 457, 150, 608, 589, 2858, 32],\n", - " 184: [593, 318, 356, 527, 1196, 260, 47, 457, 589, 2858],\n", - " 188: [318, 1196, 260, 50, 1240, 1210, 2571, 47, 1198, 2028],\n", - " 189: [1196, 318, 1210, 50, 356, 527, 2571, 1291, 1240, 480],\n", - " 190: [],\n", - " 193: [1196, 1214, 2571, 1198, 858, 32, 1210, 608],\n", - " 199: [318, 1196, 260, 356, 50, 589, 527, 110, 1198, 480],\n", - " 202: [593, 318, 296, 356, 50, 110, 1196, 260, 589, 457],\n", - " 204: [1196, 1210, 1198, 593, 296, 2571, 318, 1291, 1240, 589],\n", - " 206: [1198, 2858, 858, 110, 589, 260, 356, 318, 296],\n", - " 210: [5952],\n", - " 211: [318, 1210, 296, 356, 527, 2571, 1036, 590, 480, 588],\n", - " 213: [318, 356, 110, 260, 1198, 858, 457, 2959, 1193, 590],\n", - " 216: [],\n", - " 221: [],\n", - " 226: [],\n", - " 228: [260],\n", - " 229: [593, 296, 318, 541, 47, 50, 589, 2571, 527, 1196],\n", - " 230: [2571],\n", - " 231: [593, 318, 296, 47, 527, 608, 1196, 260, 110, 457],\n", - " 232: [2571],\n", - " 234: [593, 318, 296, 356, 110, 1196, 260, 589, 1193, 590],\n", - " 235: [1240, 589, 1196],\n", - " 236: [541, 858, 32, 2858, 1, 260, 1198, 1196, 1210],\n", - " 237: [356, 589, 110, 318, 1, 1270, 541, 2028, 858, 480],\n", - " 238: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n", - " 239: [260, 1210, 593, 2571, 1291, 1240, 589, 318, 296, 110],\n", - " 243: [296, 593, 50, 318, 541, 32, 1, 527],\n", - " 245: [2571, 1198, 2858, 1196, 1210, 110, 589, 527, 260, 356],\n", - " 246: [260, 1198, 1196, 296, 593, 1221, 1213, 1193, 541, 2028],\n", - " 248: [296, 593],\n", - " 251: [318],\n", - " 252: [1196, 1198, 296, 593, 318, 2571, 858, 110, 589, 356],\n", - " 255: [296, 110, 527, 1196, 1210, 260, 457, 480, 589, 1270],\n", - " 256: [296, 318, 50, 1196, 260, 457, 589, 527, 110, 1198],\n", - " 257: [1196, 593, 1291, 1210, 296, 318, 589, 1197, 1136, 1270],\n", - " 260: [2571, 1291, 50, 318],\n", - " 261: [1196, 260, 593, 1210, 296, 318, 1198, 589, 541, 47],\n", - " 267: [588, 1704, 1213],\n", - " 268: [260],\n", - " 270: [1196, 1198, 593, 2571, 296, 1240, 589, 1291, 356, 318],\n", - " 272: [593, 318, 110, 1196, 260, 457, 1193, 590, 2028, 47],\n", - " 273: [1196, 1198, 1214, 296],\n", - " 276: [],\n", - " 277: [318, 50, 1196, 260, 457, 527, 110, 589, 1198, 1210],\n", - " 278: [593, 457, 356, 296, 318, 380, 588, 589, 110, 150],\n", - " 281: [1291, 1240, 1198, 2571, 1196, 260],\n", - " 287: [593, 318, 296, 527, 1196, 260, 589, 1210, 50, 1198],\n", - " 290: [593, 318, 260, 296, 356, 110, 527, 1240, 1210, 150],\n", - " 291: [296, 260, 318, 593],\n", - " 293: [50, 356, 1196, 260, 527, 110, 589, 1198, 47, 1210],\n", - " 296: [110, 1196, 260, 608, 1210, 1198, 1704, 1136, 588],\n", - " 300: [457, 593],\n", - " 301: [457, 590, 480, 110, 589],\n", - " 307: [593, 318, 296, 527, 1291, 858, 457, 150, 50, 1197],\n", - " 308: [593, 356, 296, 318, 380, 589, 110, 150, 1198, 1210],\n", - " 309: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n", - " 311: [593, 318, 296, 110, 527, 1196, 1210, 260, 457, 589],\n", - " 313: [318, 593],\n", - " 314: [1214, 2571, 32, 50, 608],\n", - " 315: [260],\n", - " 317: [1196, 260, 50, 296, 593, 1214, 2858, 2571, 1198, 858],\n", - " 321: [318, 1196, 260, 1210, 110, 527, 150, 1240, 2571, 1198],\n", - " 324: [1196, 260, 1214, 1198, 858, 50, 608, 296, 593],\n", - " 328: [593, 296, 1210, 110, 527, 457, 356, 47, 1, 1036],\n", - " 329: [50, 296],\n", - " 330: [1198, 356, 593],\n", - " 331: [593, 296, 356, 110, 527, 1196, 47, 457, 260, 150],\n", - " 332: [589, 1198, 1210, 2571, 1196, 527, 260],\n", - " 333: [1196, 260, 457, 50, 589, 1198, 110, 1210, 480, 150],\n", - " 335: [5952, 2571],\n", - " 337: [296, 50, 356, 1196, 260, 457, 527, 110, 589, 1198],\n", - " 338: [1196, 260, 50, 527, 589, 1210, 1198, 47, 608, 2571],\n", - " 339: [50, 356, 527, 110, 1196, 47, 260, 608, 589, 1210],\n", - " 341: [50, 356, 47, 608, 1210, 32, 480, 150, 1089, 111],\n", - " 342: [593, 318, 296, 260, 356, 50, 1196, 110, 1198, 589],\n", - " 343: [1196, 260, 296, 318, 1210, 1240, 2571, 527, 1198, 1],\n", - " 346: [2571, 318, 296, 593],\n", - " 349: [260],\n", - " 353: [318, 260, 457, 527, 1198, 110, 1210, 480, 150, 608],\n", - " 355: [527, 1196, 47, 260, 589, 608, 480, 1210, 1198, 588],\n", - " 358: [541, 1198, 858],\n", - " 362: [296, 47, 608, 457, 1089, 1617, 541, 2858, 32, 858],\n", - " 363: [260, 593, 1210, 318, 1198, 2571, 50, 356, 589, 110],\n", - " 364: [527, 1196, 47, 356, 260, 608, 589, 1210, 2571, 541],\n", - " 369: [50, 356, 527, 110, 1196, 47, 260, 608, 589, 1210],\n", - " 371: [593, 318, 50, 527, 356, 47, 260, 608, 110, 1210],\n", - " 372: [260, 593, 1240, 296, 318, 356, 110, 858, 1270, 1214],\n", - " 373: [593, 296, 50, 356, 110, 527, 1196, 47, 457, 260],\n", - " 375: [480, 589, 457, 296, 593, 318],\n", - " 376: [1196, 318, 527, 457, 356, 47, 50, 1, 1036, 380],\n", - " 377: [],\n", - " 378: [2571, 1198, 593, 1240, 589, 296, 1291, 110, 318, 1],\n", - " 379: [1196, 593, 260, 318, 296, 1210, 50, 1198, 589, 2858],\n", - " 382: [593, 1210, 260, 318, 608, 589, 1196, 110, 541, 47],\n", - " 384: [593, 296, 527, 1196, 1210, 260, 589, 1270, 47, 2028],\n", - " 388: [593, 318, 296, 1196, 260, 47, 527, 608, 1210, 110],\n", - " 390: [1270, 1214, 1197, 541, 527, 1097, 1036, 47, 32],\n", - " 391: [1196, 260, 1240, 1210, 2571, 527, 1036, 1200, 1214, 1291],\n", - " 392: [260, 541, 608, 2571, 1, 1210, 1196],\n", - " 395: [593, 296, 527, 356, 110, 47, 1196, 457, 589, 2858],\n", - " 398: [1210, 2571, 1291, 1240, 589, 318, 296, 858, 1270, 1214],\n", - " 400: [1196, 260, 1210, 1198, 296, 318, 480, 356, 3578, 4993],\n", - " 403: [1196, 260, 1198, 318, 593],\n", - " 404: [593, 1196, 260, 1240, 1210, 2571, 527, 1036, 1200, 1214],\n", - " 412: [296, 50, 356, 260, 110, 527, 457, 1210, 47, 1240],\n", - " 413: [318, 593],\n", - " 415: [593],\n", - " 417: [1196, 1210, 1198, 593, 1291, 1240, 589, 296, 858, 356],\n", - " 420: [593, 318, 50, 110, 1196, 260, 589, 457, 1193, 2028],\n", - " 421: [593, 318, 296, 110, 527, 1196, 260, 1210, 50, 1198],\n", - " 422: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n", - " 425: [858, 296, 318, 593],\n", - " 426: [],\n", - " 428: [260, 589, 1210, 2571, 593, 1214, 296, 318],\n", - " 437: [110, 32, 858, 1198, 589, 356],\n", - " 439: [593, 318, 296, 110, 1196, 1210, 260, 150, 457, 589],\n", - " 440: [],\n", - " 441: [318, 2571, 1196, 527, 541, 608, 356, 1, 260, 1210],\n", - " 443: [296, 356, 50, 1196, 527, 260, 110, 589, 1198, 150],\n", - " 444: [593, 318, 110, 527, 260, 150, 2028, 50, 858],\n", - " 445: [4993, 2571],\n", - " 446: [1196, 260, 1210, 1240, 2571, 110, 527, 1198, 1, 1036],\n", - " 447: [1196, 1198, 1291, 1240, 858, 356, 1200, 1214, 1270, 541],\n", - " 448: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n", - " 449: [1198, 318, 296, 1291, 110, 1240, 858, 457, 1270, 1214],\n", - " 453: [593, 318, 50, 527, 356, 1196, 260, 608, 110, 1210],\n", - " 455: [1196, 2571, 1198, 593, 356, 1240, 589, 296, 1291, 110],\n", - " 458: [2571, 1196, 318, 296, 593],\n", - " 459: [318, 457, 50, 1198, 608, 858, 1213, 111, 1617, 588],\n", - " 460: [318, 1196, 356, 260, 50, 527, 589, 1198, 1210, 480],\n", - " 461: [593, 318, 50, 1196, 541, 1198, 589, 527, 110, 47],\n", - " 462: [296, 356, 527, 150, 480, 589, 110, 1196, 858, 380],\n", - " 463: [],\n", - " 465: [],\n", - " 466: [1196, 260, 593, 2571, 1198, 1240, 296, 356, 318, 110],\n", - " 467: [2571, 1291, 1198, 1196, 260, 593],\n", - " 471: [588],\n", - " 472: [],\n", - " 474: [1198, 296, 318, 3578, 4993, 5952, 2959, 2762, 2028, 1291],\n", - " 475: [2858, 2571, 296, 593],\n", - " 479: [541, 47, 589, 260, 1210, 1196],\n", - " 480: [1036, 318],\n", - " 484: [296, 593, 50, 318, 541, 858, 2858, 1198, 527, 1196],\n", - " 485: [110, 1210, 150, 47, 1704, 1036, 590, 2028, 1136, 1270],\n", - " 487: [593, 110, 527, 1196, 1210, 260, 150, 457, 480, 589],\n", - " 488: [1196, 260, 296, 318, 1210, 356, 1240, 2571, 110, 527],\n", - " 489: [296, 593],\n", - " 491: [296, 593, 1198, 1193, 1214, 541, 2028, 608, 1210, 50],\n", - " 492: [4993, 2571],\n", - " 494: [32, 2571, 1196],\n", - " 496: [318, 50, 527, 356, 1196, 110, 260, 608, 2858, 32],\n", - " 497: [296, 541, 47, 608, 50, 589, 1, 260, 110],\n", - " 499: [593, 318, 50, 356, 527, 457, 110, 1196, 47, 589],\n", - " 500: [2858, 50],\n", - " 501: [318, 296, 589, 50, 527, 590],\n", - " 502: [2571, 1196, 318, 296, 593],\n", - " 508: [260, 1210, 1198, 593, 2571, 1291, 1240, 589, 318, 296],\n", - " 510: [50, 110, 1196, 260, 589, 1193, 2028, 47, 2858, 1198],\n", - " 518: [1198, 2858, 858, 110, 356, 296],\n", - " 520: [593, 296, 50, 356, 110, 527, 1196, 47, 457, 260],\n", - " 521: [296, 527, 47, 110, 1196, 457, 260, 589, 150, 2858],\n", - " 525: [1196, 260, 356, 50, 589, 527, 1198, 480, 1210, 47],\n", - " 526: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n", - " 527: [1196, 260, 593, 1198, 2571, 296, 589, 110, 1240, 318],\n", - " 529: [593, 318, 47, 608, 50, 589, 2571, 1, 1196, 110],\n", - " 532: [110, 527, 593, 318],\n", - " 534: [2571],\n", - " 536: [1196, 1198, 2571, 1240, 589, 1291, 356, 318, 110, 858],\n", - " 537: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n", - " 539: [356, 110, 1196, 260, 457, 608, 2571, 541, 1193, 2028],\n", - " 544: [593, 318, 32, 589, 110, 356, 527],\n", - " 547: [318, 296, 50, 1196, 260, 1193, 2028, 47, 2858, 1198],\n", - " 548: [593, 50, 356, 2571, 110, 589, 527, 608, 47, 1240],\n", - " 549: [356, 50, 1196, 527, 260, 110, 589, 1198, 47, 480],\n", - " 551: [318, 296, 356, 50, 110, 589, 457, 1193, 47, 2858],\n", - " 553: [541, 858, 2858, 1, 260, 1198, 527, 1196, 1210],\n", - " 557: [1198, 1196, 296, 593, 1221, 1213, 1193, 1214, 541, 2028],\n", - " 559: [1196, 260, 2571, 1198, 593, 356, 1240, 589, 296, 1291],\n", - " 563: [1196, 1210, 1198, 593, 296, 2571, 318, 1291, 1240, 589],\n", - " 564: [593, 110, 527, 457, 590, 588, 47, 2028, 1, 2571],\n", - " 569: [318, 1196, 260, 356, 589, 527, 110, 1198, 150, 480],\n", - " 570: [296, 593, 50, 858, 541, 32, 2858, 1, 1198, 1196],\n", - " 573: [150, 110, 296],\n", - " 574: [356, 318, 110, 150, 1198, 1210, 1, 2571, 1196, 260],\n", - " 576: [150, 356, 593],\n", - " 579: [1617, 2028, 858, 608],\n", - " 584: [296, 593, 318],\n", - " 586: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n", - " 587: [1198, 2571, 1240, 1291, 50, 858, 1270, 1214, 1200, 541],\n", - " 589: [318, 2571],\n", - " 590: [],\n", - " 593: [1196, 260, 527, 1240, 2571, 1210, 608, 32, 1198, 1036],\n", - " 594: [1196, 1198, 593, 2571, 296, 356, 1240, 589, 318, 1291],\n", - " 595: [1210, 589, 318, 3578, 4993, 5952, 2959, 1200, 2028, 47],\n", - " 596: [593, 296, 50, 110, 47, 457, 150, 589, 1210, 2571],\n", - " 600: [1196, 260, 1214, 2571, 589, 593],\n", - " 603: [593, 50, 260, 457, 1193, 47, 150, 1198, 32],\n", - " 605: [593, 2571, 457, 2858, 858, 2028, 1270, 1704, 1213, 590],\n", - " 606: [2858, 527, 356, 593, 318, 296],\n", - " 607: [1196, 1210, 2571, 296, 1291, 1240, 589, 356, 1214, 541],\n", - " 609: [1196, 260, 608, 2858, 858, 1198, 2571, 1089, 1617, 541],\n", - " 613: [260, 1210, 1198, 593, 2571, 1291, 1240, 589, 318, 296],\n", - " 614: [593, 318, 589, 296, 356, 1210, 150, 527, 2571, 50],\n", - " 616: [1196],\n", - " 619: [593, 1196, 296, 318, 2571, 356, 527, 1036, 380, 1291],\n", - " 625: [318, 356, 296, 150, 480, 110, 50, 527, 380, 588],\n", - " 628: [593, 296, 356, 50, 110, 527, 457, 1196, 47, 589],\n", - " 632: [318, 296],\n", - " 637: [593, 318, 296, 356, 1196, 527, 1210, 260, 457, 50],\n", - " 640: [260, 593, 1200, 1036, 1240, 296],\n", - " 641: [260, 1196, 1210, 1240, 2571, 110, 527, 356, 47, 50],\n", - " 642: [],\n", - " 646: [364, 110, 318],\n", - " 649: [593, 318, 50, 527, 1196, 47, 260, 608, 110, 589],\n", - " 653: [858, 296, 318, 593],\n", - " 654: [1196, 527, 1210, 260, 50, 589, 2028, 47, 1198, 2571],\n", - " 655: [110, 527, 593],\n", - " 656: [1291, 1240, 1198, 589, 2571, 1196, 260],\n", - " 660: [858, 1, 260, 1198, 1196, 1210],\n", - " 661: [260],\n", - " 662: [1200, 1240, 2571, 1198, 589],\n", - " 663: [1291, 1240, 1198, 589, 2571, 1196, 260],\n", - " 666: [260, 1210, 593, 1291, 1240, 589, 318, 356, 110, 1270],\n", - " 667: [1210, 1036, 1214, 2571, 593, 296],\n", - " 668: [593, 318, 50, 1196, 260, 527, 356, 47, 608, 110],\n", - " 669: [1196, 260, 527, 1210, 2571, 1240, 50, 1198, 1, 47],\n", - " 672: [318],\n", - " 675: [50, 527, 110, 1196, 260, 457, 1210, 47, 608, 2858],\n", - " 677: [260],\n", - " 679: [1198, 2571],\n", - " 684: [588],\n", - " 685: [1196, 593, 296, 1198, 2571, 318, 356, 50, 1240, 589],\n", - " 686: [],\n", - " 690: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n", - " 696: [2571, 1196, 318, 296, 593],\n", - " 699: [593, 296, 527, 356, 47, 110, 1196, 608, 457, 260],\n", - " 701: [593, 318, 356, 296, 150, 480, 589, 110, 50, 527],\n", - " 704: [],\n", - " 705: [260, 1196, 1198, 296, 589, 1210, 318, 593, 2571, 1200],\n", - " 707: [318, 1617, 2571, 858, 50, 1198, 608, 1196, 260, 356],\n", - " 708: [593, 1196, 1210, 296, 318, 457, 356, 110, 527, 1036],\n", - " 709: [593, 318, 1210, 296, 356, 480, 110, 50, 527, 150],\n", - " 710: [593],\n", - " 711: [593, 318, 50, 527, 356, 1196, 47, 260, 608, 110],\n", - " 712: [593, 50, 541, 858, 32, 2858, 1, 260, 1198, 1196],\n", - " 715: [593, 50, 318, 32, 2571, 589, 110, 1196, 356, 527],\n", - " 720: [50, 110, 1196, 260, 589, 1193, 2028, 2858, 1198, 858],\n", - " 723: [593, 296, 1196, 260, 1210, 150, 457, 480, 1198, 858],\n", - " 724: [296, 593, 50, 318, 541, 858, 2858, 1198, 527, 1196],\n", - " 726: [296, 318, 260, 50, 589, 150, 480, 47, 2571, 608],\n", - " 727: [608, 1196, 260, 2571, 589, 588, 1089, 1617, 541, 2858],\n", - " 728: [260, 593, 1198, 318, 1291, 356, 110, 527, 1200, 1214],\n", - " 729: [480, 589, 457, 296, 593, 318],\n", - " 730: [593, 50, 356, 110, 527, 1196, 260, 47, 457, 1210],\n", - " 733: [593, 1196, 260, 1240, 1210, 296, 318, 457, 356, 110],\n", - " 735: [318, 527, 608, 1196, 260, 541, 589, 2571, 1089, 1617],\n", - " 737: [593, 296, 318, 541, 47, 608, 50, 589, 2571, 527],\n", - " 739: [296, 318, 1196, 260, 527, 1198, 1210, 150, 1240, 32],\n", - " 740: [296, 50, 356, 527, 47, 457, 589, 150, 2858, 32],\n", - " 741: [260, 1210, 1198, 3578, 4993, 5952, 2959, 1200, 1214, 1240],\n", - " 742: [593, 527],\n", - " 743: [593, 457, 318, 589, 110, 150, 1198, 1210, 2571, 1196],\n", - " 749: [1210, 260, 1198, 608, 480, 32, 1196, 356, 589, 110],\n", - " 750: [296, 1196, 260, 318, 593, 1198, 2762, 1617, 2028, 2571],\n", - " 751: [296, 318, 1196, 260, 457, 50, 356, 589, 527, 1198],\n", - " 753: [1196, 1210, 296, 2571, 1291, 50, 356, 527, 858, 110],\n", - " 758: [318, 356, 296, 1196, 527, 1210, 260, 457, 50, 589],\n", - " 759: [593, 296, 318, 47, 356, 608, 50, 527, 1],\n", - " 761: [1196, 260, 1240],\n", - " 762: [1196, 1210, 1198, 593, 296, 2571, 318, 1291, 1240, 589],\n", - " 763: [1196, 1210, 1198, 2571, 1291, 1240, 589, 858, 356, 318],\n", - " 766: [593, 296, 527, 150, 457, 589, 480, 858, 590, 588],\n", - " 773: [318, 356, 527, 457, 50, 589, 590, 150, 2028, 47],\n", - " 776: [296, 318, 2959, 2762, 1617, 2571, 608, 1196, 527],\n", - " 777: [593, 296, 318, 541, 47, 2571, 527, 1, 1210, 1196],\n", - " 785: [1196, 260, 150, 608, 1210, 2858, 32, 1198, 2571, 1704],\n", - " 786: [589, 1200, 1214, 593, 296],\n", - " 787: [1196, 260, 593],\n", - " 792: [593, 356, 527, 110, 47, 457, 1196, 608, 260, 589],\n", - " 793: [1198, 608, 480, 32, 356, 589, 296, 318, 593],\n", - " 794: [1196, 260, 1198, 1210, 2571, 356, 593],\n", - " 797: [110, 527, 1196, 1210, 260, 480, 590, 1270, 47, 2028],\n", - " 799: [50, 1196, 260, 1198, 2571, 1291, 1240, 1193, 2028, 47],\n", - " 804: [318, 356, 296, 1196, 527, 260, 457, 50, 589, 590],\n", - " 809: [593, 318, 296, 1210, 150, 457, 480, 589, 588, 2028],\n", - " 812: [1196, 1198, 2571],\n", - " 814: [356, 1196, 1210, 260, 457, 50, 589, 590, 480, 588],\n", - " 815: [318],\n", - " 816: [1196, 260, 50, 356, 589, 527, 1198, 110, 1210, 480],\n", - " 821: [1196, 260, 593],\n", - " 822: [593, 1196, 1210, 260, 588, 1270, 47, 2028, 1198, 2571],\n", - " 825: [318],\n", - " 826: [110, 527, 150, 590, 588, 1198],\n", - " 832: [593, 296, 318, 2571, 356, 457, 110, 527, 1198, 1036],\n", - " 833: [1196, 1291, 1210, 1036, 110, 50, 457],\n", - " 835: [1196, 1214, 2571, 1198, 858, 32, 1210, 608],\n", - " 840: [],\n", - " 842: [1210, 260, 1198, 608, 480, 32, 1196, 356, 589, 296],\n", - " 851: [593],\n", - " 852: [1196, 260, 1240, 1210, 2571, 110, 527, 1036, 1200, 1214],\n", - " 854: [1196, 260, 1200, 1240, 541, 2571, 1198, 589, 1210],\n", - " 855: [541, 858, 32, 2858, 1, 260, 1198, 527, 1196, 1210],\n", - " 856: [593, 457, 356, 296, 318, 588, 110, 150, 1198, 1210],\n", - " 857: [260, 296, 318, 1210, 1198, 50, 457, 527, 1291, 150],\n", - " 859: [318, 2858],\n", - " 861: [1196, 260, 1198, 318, 593],\n", - " 863: [1196, 260, 457, 541, 858, 1198],\n", - " 864: [296, 318, 593, 2571, 1196, 1617, 2028, 858, 50, 1198],\n", - " 865: [1198, 1291, 589, 1240, 527, 1270, 1214, 1200, 541, 858],\n", - " 873: [593, 296, 318, 541, 47, 608, 50, 527, 1, 260],\n", - " 878: [1210, 2571, 1291, 356, 110, 1270, 2028, 2858, 1, 2762],\n", - " 879: [296, 318, 1196, 260, 50, 457, 356, 527, 589, 110],\n", - " 888: [4993, 2571],\n", - " 891: [593],\n", - " 901: [1196, 260, 1210, 593, 1198, 1240, 296, 1291, 541, 3578],\n", - " 903: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n", - " 904: [593, 110, 1196, 260, 150, 588, 1270, 47, 2028, 1198],\n", - " 909: [1196, 260, 1210, 593, 589, 296, 318, 3578, 1200, 1214],\n", - " 910: [260, 1198, 1196, 1221, 1193, 541, 2028, 608, 2571, 1210],\n", - " 916: [2571, 5952, 2858, 296, 593],\n", - " 920: [1196, 1210, 1198, 589, 2571, 1291, 296, 318, 1214, 356],\n", - " 925: [50, 527, 1196, 47, 457, 589, 150, 608, 1210, 2571],\n", - " 927: [593, 318, 296, 110, 527, 1196, 260, 150, 457, 589],\n", - " 932: [1291, 1240, 1198, 2571, 1196],\n", - " 935: [1210, 593],\n", - " 938: [50, 1196, 260, 356, 589, 527, 110, 1198, 480, 1210],\n", - " 939: [296, 356, 50, 1196, 527, 110, 589, 1198, 47, 480],\n", - " 940: [593, 318, 296, 150, 480, 589, 527, 5952, 380, 588],\n", - " 942: [1196, 260, 356, 50, 589, 527, 110, 1198, 150, 480],\n", - " 946: [296, 318],\n", - " 947: [593, 296, 318, 3578, 4993, 5952, 2959, 2762, 1200, 1214],\n", - " 948: [],\n", - " 951: [296, 593, 50, 318, 541, 858, 2858, 260, 1198, 527],\n", - " 955: [593, 318, 296, 356, 50, 110, 1196, 260, 589, 457],\n", - " 958: [2858, 1196, 296, 593],\n", - " 960: [50, 318, 32, 2571, 110, 1196],\n", - " 961: [296, 593, 858, 50, 318],\n", - " 966: [],\n", - " 967: [1196, 527, 260, 858, 541, 608, 50, 589, 1, 1210],\n", - " 968: [356, 50, 527, 1196, 260, 589, 47, 1210, 1198, 608],\n", - " 970: [1196, 260, 457, 356, 589, 527, 1198, 1210, 480, 47],\n", - " 972: [],\n", - " 975: [593, 318, 527, 47, 1196, 260, 110, 541, 457, 858],\n", - " 976: [593, 541, 47, 608, 50, 589, 2571, 527, 260, 1210],\n", - " 980: [1196, 1198, 318, 2571, 589, 1240, 110, 1291, 527, 1],\n", - " 982: [1196, 1210, 1198, 593, 2571, 296, 1291, 1240, 589, 356],\n", - " 985: [2571],\n", - " 988: [],\n", - " 989: [593, 318, 356, 47, 110, 1210, 589, 457, 480, 150],\n", - " 990: [47, 110, 1196, 260, 608, 2858, 32, 858, 1198, 2571],\n", - " 992: [2858, 296],\n", - " 994: [593, 296, 50, 356, 110, 527, 1196, 47, 457, 260],\n", - " 1001: [593, 318, 296, 527, 1196, 1210, 260, 50, 1198, 1],\n", - " 1004: [527],\n", - " 1005: [],\n", - " 1008: [],\n", - " 1009: [1196, 260, 1210, 593, 1198, 589, 296, 3578, 4993, 5952],\n", - " 1011: [318, 2571, 47, 527, 110],\n", - " 1012: [296, 318, 2959, 2762, 1617, 2028, 2571, 858, 50, 1198],\n", - " 1013: [1240, 32, 47, 608, 150, 1036, 1200, 380, 1214, 1291],\n", - " 1014: [50, 318, 32, 1, 1198, 1196, 1210],\n", - " 1015: [50, 296, 593],\n", - " 1016: [593, 541, 47, 50, 589, 2571, 1, 1210, 1196, 110],\n", - " 1017: [260, 2571, 1198, 593, 296, 356, 1240, 589, 1291, 110],\n", - " 1021: [588],\n", - " 1022: [1196, 260, 593],\n", - " 1023: [318, 356, 296, 1210, 457, 50, 589, 590, 588, 150],\n", - " 1025: [593, 296, 50, 356, 527, 47, 150, 32, 1704, 590],\n", - " 1030: [1196, 260, 296, 318],\n", - " 1031: [318, 356, 296, 1196, 457, 527, 1210, 260, 589, 50],\n", - " 1034: [2571, 1198, 2858, 858, 1196, 1210, 110, 589, 527, 260],\n", - " 1037: [318, 527, 608, 1196, 260, 110, 457, 1089, 1617, 541],\n", - " 1039: [2858, 32, 2571, 589, 110, 1196],\n", - " 1041: [608, 480, 32, 356],\n", - " 1044: [1196, 2571, 1198, 593, 356, 1240, 589, 296, 1291, 110],\n", - " 1046: [318, 1196, 260, 527, 110, 50, 589, 1198, 1210, 2571],\n", - " 1048: [1617, 858, 608, 527, 260, 356],\n", - " 1053: [593, 318, 296, 527, 457, 50, 590, 480, 588, 150]})" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 어소시에이션 규칙을 사용해 각 사용자가 아직 평가하지 않은 영화 10편을 추천한다\n", - "pred_user2items = defaultdict(list)\n", - "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", - "\n", - "for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n", - " # 사용자가 최근 5편의 영화를 얻는다\n", - " input_data = data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-5:]\n", - " # 그 영화들이 조건부에 1편이라도 포함되어 있는 어소시에이션 규칙을 추출한다\n", - " matched_flags = rules.antecedents.apply(lambda x: len(set(input_data) & x)) >= 1\n", - "\n", - " # 어소시에이션 규칙의 귀결부의 영화를 리스트로 저장하고, 출편 빈도 순으로 배열하고, 사용자가 아직 평가하지 않았다면 추천 리스트에 추가한다\n", - " consequent_movies = []\n", - " for i, row in rules[matched_flags].sort_values(\"lift\", ascending=False).iterrows():\n", - " consequent_movies.extend(row[\"consequents\"])\n", - " # 출현 빈도를 센다\n", - " counter = Counter(consequent_movies)\n", - " for movie_id, movie_cnt in counter.most_common():\n", - " if movie_id not in user_evaluated_movies[user_id]:\n", - " pred_user2items[user_id].append(movie_id)\n", - " # 추천 리스트가 10편이 되면 종료한다\n", - " if len(pred_user2items[user_id]) == 10:\n", - " break\n", - "\n", - "# 각 사용자에 대한 추천 리스트\n", - "pred_user2items" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "7342fdc7", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "8381 2 1210 4.0 868245644 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 " - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2인 사용자 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", - "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "3034b39c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
587593Silence of the Lambs, The (1991)[Crime, Horror, Thriller][based on a book, anthony hopkins, demme, psyc...
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
11731198Raiders of the Lost Ark (Indiana Jones and the...[Action, Adventure][egypt, lucas, seen more than once, dvd collec...
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "587 593 Silence of the Lambs, The (1991) \n", - "1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n", - "1173 1198 Raiders of the Lost Ark (Indiana Jones and the... \n", - "\n", - " genre \\\n", - "587 [Crime, Horror, Thriller] \n", - "1171 [Action, Adventure, Sci-Fi] \n", - "1173 [Action, Adventure] \n", - "\n", - " tag \n", - "587 [based on a book, anthony hopkins, demme, psyc... \n", - "1171 [lucas, george lucas, george lucas, gfei own i... \n", - "1173 [egypt, lucas, seen more than once, dvd collec... " - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2에 대한 추천(1196, 593, 1198)\n", - "movies[movies.movie_id.isin([1196, 593, 1198])]" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "9b22d1f6", - "metadata": {}, - "outputs": [], - "source": [ - "# apriori(user_movie_matrix, min_support=0.1, use_colnames=True)\n", - "# association_rules(freq_movies, metric='lift', min_threshold=1)\n", - "# min_support와 min_threshold가 중요한 파라미터가 되므로 바꾸어 가면서 시험해봅니다." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "64ae2120", - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","id":"d9777c7d","metadata":{"id":"d9777c7d"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/Association.ipynb)"]},{"cell_type":"markdown","id":"c7dc31f1","metadata":{"id":"c7dc31f1"},"source":["# 어소시에이션 분석"]},{"cell_type":"code","execution_count":1,"id":"1b316a16","metadata":{"scrolled":true,"colab":{"base_uri":"https://localhost:8080/"},"id":"1b316a16","executionInfo":{"status":"ok","timestamp":1672116308177,"user_tz":-540,"elapsed":3911,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"5beace71-80d1-430b-f7a5-ab9f156eb138"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 04:45:01-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 63.8MB/s in 1.0s \n","\n","2022-12-27 04:45:02 (63.8 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"c1b8db75","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"c1b8db75","executionInfo":{"status":"ok","timestamp":1672116375742,"user_tz":-540,"elapsed":67569,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"e9660e0b-1ab9-4f2f-c69b-890b464bfe3b"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"f29c7aac","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":267},"id":"f29c7aac","executionInfo":{"status":"ok","timestamp":1672116375743,"user_tz":-540,"elapsed":24,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c6b3c719-f6d4-46dd-b765-6a569ec2f3d6"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["movie_id 1 2 3 4 5 6 7 8 9 \\\n","user_id \n","1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","\n","movie_id 10 ... 62000 62113 62293 62344 62394 62801 62803 63113 \\\n","user_id ... \n","1 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","2 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","3 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","4 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","5 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","\n","movie_id 63992 64716 \n","user_id \n","1 0.0 0.0 \n","2 0.0 0.0 \n","3 0.0 0.0 \n","4 0.0 0.0 \n","5 0.0 0.0 \n","\n","[5 rows x 6673 columns]"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_id12345678910...62000621136229362344623946280162803631136399264716
user_id
10.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
20.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
30.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
40.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
50.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
\n","

5 rows × 6673 columns

\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":3}],"source":["# 사용자 x 영화 행렬 형식으로 변환한다\n","user_movie_matrix = movielens_train.pivot(index='user_id', columns='movie_id', values='rating')\n","\n","# 라이브러리를 사용하기 위해 4 이상의 평갓값은 1, 4 미만의 평갓값과 결손값은 0으로 한다\n","user_movie_matrix[user_movie_matrix < 4] = 0\n","user_movie_matrix[user_movie_matrix.isnull()] = 0\n","user_movie_matrix[user_movie_matrix >= 4] = 1\n","\n","user_movie_matrix.head()"]},{"cell_type":"code","execution_count":4,"id":"3f090eb7","metadata":{"id":"3f090eb7","executionInfo":{"status":"ok","timestamp":1672116375743,"user_tz":-540,"elapsed":20,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 어소시에이션 규칙 라이브러리 설치(설치되어 있지 않다면 주석을 해제하고 실행합니다)\n","# !pip install mlxtend"]},{"cell_type":"code","execution_count":5,"id":"ac2211c8","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":206},"id":"ac2211c8","executionInfo":{"status":"ok","timestamp":1672116376968,"user_tz":-540,"elapsed":1245,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"350b9041-d42d-461b-c530-9d10700c6a90"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" support itemsets\n","42 0.415 (593)\n","23 0.379 (318)\n","21 0.369 (296)\n","19 0.361 (260)\n","25 0.319 (356)"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
supportitemsets
420.415(593)
230.379(318)
210.369(296)
190.361(260)
250.319(356)
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":5}],"source":["from mlxtend.frequent_patterns import apriori\n","\n","# 지지도가 높은 영화를 표시\n","freq_movies = apriori(\n"," user_movie_matrix, min_support=0.1, use_colnames=True)\n","freq_movies.sort_values('support', ascending=False).head()"]},{"cell_type":"code","execution_count":6,"id":"18be737d","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":81},"id":"18be737d","executionInfo":{"status":"ok","timestamp":1672116376968,"user_tz":-540,"elapsed":19,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"f0969709-e7c6-4e50-c0b3-64d19966e79c"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title genre \\\n","587 593 Silence of the Lambs, The (1991) [Crime, Horror, Thriller] \n","\n"," tag \n","587 [based on a book, anthony hopkins, demme, psyc... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
587593Silence of the Lambs, The (1991)[Crime, Horror, Thriller][based on a book, anthony hopkins, demme, psyc...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":6}],"source":["# movie_id=593의 제목 확인(양들의 침묵)\n","movies[movies.movie_id == 593]"]},{"cell_type":"code","execution_count":7,"id":"470dafd1","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":206},"id":"470dafd1","executionInfo":{"status":"ok","timestamp":1672116376968,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c5b8e4f6-14dc-4ad5-ba32-e1585aba6ba6"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" antecedents consequents lift\n","649 (4993) (5952) 5.459770\n","648 (5952) (4993) 5.459770\n","1462 (1196, 1198) (1291, 260) 4.669188\n","1463 (1291, 260) (1196, 1198) 4.669188\n","1460 (1291, 1196) (260, 1198) 4.171359"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
antecedentsconsequentslift
649(4993)(5952)5.459770
648(5952)(4993)5.459770
1462(1196, 1198)(1291, 260)4.669188
1463(1291, 260)(1196, 1198)4.669188
1460(1291, 1196)(260, 1198)4.171359
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":7}],"source":["from mlxtend.frequent_patterns import association_rules\n","\n","# 어소시에이션 규칙 계산(리프트 값이 높은 순으로 표시)\n","rules = association_rules(freq_movies, metric='lift', min_threshold=1)\n","rules.sort_values('lift', ascending=False).head()[['antecedents', 'consequents', 'lift']]"]},{"cell_type":"code","execution_count":8,"id":"781b86a4","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":112},"id":"781b86a4","executionInfo":{"status":"ok","timestamp":1672116376970,"user_tz":-540,"elapsed":18,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"efb286e7-011c-48c5-bca0-fc8d74077602"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","4899 4993 Lord of the Rings: The Fellowship of the Ring,... \n","5852 5952 Lord of the Rings: The Two Towers, The (2002) \n","\n"," genre \\\n","4899 [Action, Adventure, Fantasy] \n","5852 [Action, Adventure, Fantasy] \n","\n"," tag \n","4899 [based on a book, big budget, new zealand, sce... \n","5852 [based on a book, big budget, new zealand, sce... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
48994993Lord of the Rings: The Fellowship of the Ring,...[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
58525952Lord of the Rings: The Two Towers, The (2002)[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":8}],"source":["# movie_id=4993, 5952의 제목 확인(반지의 제왕)\n","movies[movies.movie_id.isin([4993, 5952])]"]},{"cell_type":"code","execution_count":9,"id":"7495518b","metadata":{"id":"7495518b","executionInfo":{"status":"ok","timestamp":1672116376970,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 학습용 데이터 평갓값이 4 이상인 것만 얻는다.\n","movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]"]},{"cell_type":"code","execution_count":10,"id":"782e5a9d","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":175},"id":"782e5a9d","executionInfo":{"status":"ok","timestamp":1672116376970,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c6e2b6b2-6336-45c4-8bb8-df6bf91d99db"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","8381 2 1210 4.0 868245644 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","8381 [Action, Adventure, Sci-Fi] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":10}],"source":["# user_id=2인 사용자가 4 이상의 평가를 남긴 영화 목록\n","movielens_train_high_rating[movielens_train_high_rating.user_id==2]"]},{"cell_type":"code","execution_count":11,"id":"0599276e","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":424},"id":"0599276e","executionInfo":{"status":"ok","timestamp":1672116376971,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"118190a5-3aa0-40a2-c32c-e80489f5c618"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" antecedents consequents antecedent support \\\n","3 (110) (1) 0.291 \n","5 (260) (1) 0.361 \n","25 (1210) (1) 0.273 \n","31 (110) (32) 0.291 \n","33 (260) (32) 0.361 \n","... ... ... ... \n","1476 (1210, 1196) (2571, 260) 0.197 \n","1477 (2571, 260) (1210, 1196) 0.161 \n","1479 (1196, 260) (1210, 2571) 0.224 \n","1480 (1210) (1196, 2571, 260) 0.273 \n","1482 (260) (1210, 2571, 1196) 0.361 \n","\n"," consequent support support confidence lift leverage conviction \n","3 0.263 0.105 0.360825 1.371957 0.028467 1.153048 \n","5 0.263 0.153 0.423823 1.611493 0.058057 1.279120 \n","25 0.263 0.116 0.424908 1.615621 0.044201 1.281535 \n","31 0.255 0.104 0.357388 1.401523 0.029795 1.159332 \n","33 0.255 0.137 0.379501 1.488241 0.044945 1.200647 \n","... ... ... ... ... ... ... \n","1476 0.161 0.108 0.548223 3.405114 0.076283 1.857112 \n","1477 0.197 0.108 0.670807 3.405114 0.076283 2.439302 \n","1479 0.139 0.108 0.482143 3.468654 0.076864 1.662621 \n","1480 0.141 0.108 0.395604 2.805705 0.069507 1.421255 \n","1482 0.124 0.108 0.299169 2.412653 0.063236 1.249945 \n","\n","[326 rows x 9 columns]"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
antecedentsconsequentsantecedent supportconsequent supportsupportconfidenceliftleverageconviction
3(110)(1)0.2910.2630.1050.3608251.3719570.0284671.153048
5(260)(1)0.3610.2630.1530.4238231.6114930.0580571.279120
25(1210)(1)0.2730.2630.1160.4249081.6156210.0442011.281535
31(110)(32)0.2910.2550.1040.3573881.4015230.0297951.159332
33(260)(32)0.3610.2550.1370.3795011.4882410.0449451.200647
..............................
1476(1210, 1196)(2571, 260)0.1970.1610.1080.5482233.4051140.0762831.857112
1477(2571, 260)(1210, 1196)0.1610.1970.1080.6708073.4051140.0762832.439302
1479(1196, 260)(1210, 2571)0.2240.1390.1080.4821433.4686540.0768641.662621
1480(1210)(1196, 2571, 260)0.2730.1410.1080.3956042.8057050.0695071.421255
1482(260)(1210, 2571, 1196)0.3610.1240.1080.2991692.4126530.0632361.249945
\n","

326 rows × 9 columns

\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":11}],"source":["# user_id=2의 사용자가 4 이상의 평가를 남긴 영화 목록\n","user2_data = movielens_train_high_rating[movielens_train_high_rating.user_id==2]\n","\n","# 사용자가 최근 평가한 4개의 영화 얻기\n","input_data = user2_data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-5:]\n","\n","# 그 영화들이 조건부로 포함된 어오시에이션 규칙을 추출\n","matched_flags = rules.antecedents.apply(lambda x: len(set(input_data) & x)) >= 1\n","rules[matched_flags]"]},{"cell_type":"code","execution_count":12,"id":"689b0be8","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"689b0be8","executionInfo":{"status":"ok","timestamp":1672116376971,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"e06efaee-cb09-405b-f283-9252ea6a3e63"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[(1196, 92),\n"," (593, 41),\n"," (1198, 34),\n"," (260, 34),\n"," (1210, 34),\n"," (318, 20),\n"," (296, 19),\n"," (2571, 18),\n"," (356, 17),\n"," (589, 16)]"]},"metadata":{},"execution_count":12}],"source":["from collections import defaultdict, Counter\n","\n","# 어소시에이션 규칙의 귀결부의 영화를 리스트로 저장한다\n","# 같은 영화가 여러 차례 귀결부에 나타날 수 있다\n","\n","consequent_movies = []\n","for i, row in rules[matched_flags].sort_values(\"lift\", ascending=False).iterrows(): # lift値でソートして、上位10個のルールだけを使うようにするなどの工夫も可能です\n"," consequent_movies.extend(row[\"consequents\"])\n"," \n","# 귀결부에서의 출현 빈도 카운트\n","counter = Counter(consequent_movies)\n","counter.most_common(10)"]},{"cell_type":"code","execution_count":13,"id":"e1f61bb6","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":81},"id":"e1f61bb6","executionInfo":{"status":"ok","timestamp":1672116376971,"user_tz":-540,"elapsed":14,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"4137dad7-e0b6-4859-aad3-8abb4ed70219"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n","\n"," genre \\\n","1171 [Action, Adventure, Sci-Fi] \n","\n"," tag \n","1171 [lucas, george lucas, george lucas, gfei own i... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":13}],"source":["# movie_id=1196가 92번 귀결부에 출현하므로, user_id=2에는 movie_id=1196(Star Wars: Episode V)가 추천 후보가 된다\n","# (user_id=2의 학습 데이터에서는 Star Wars 에피소드 4, 6의 평가가 높다)\n","movies[movies.movie_id == 1196]"]},{"cell_type":"code","execution_count":14,"id":"7540d95c","metadata":{"id":"7540d95c","executionInfo":{"status":"ok","timestamp":1672116376971,"user_tz":-540,"elapsed":14,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 추천 방법에는 lift 값이 높은 것을 추출하는 방법 등이 있다. 몇 가지 방법을 시도해 보고 자사의 데이터에 맞는 방법을 선택한다."]},{"cell_type":"code","execution_count":15,"id":"53918e5b","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"53918e5b","executionInfo":{"status":"ok","timestamp":1672116383190,"user_tz":-540,"elapsed":6233,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"21d86b30-94bb-4d15-efb7-8d68fefe6448"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {2: [1196, 593, 1198, 318, 296, 2571, 356, 589, 1240, 1291],\n"," 6: [593, 296, 318, 541, 47, 608, 50, 589, 527, 1],\n"," 9: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n"," 10: [858, 1196, 260, 318],\n"," 11: [2858, 50, 296, 593],\n"," 12: [260],\n"," 13: [593, 318, 527, 356, 260, 47, 110, 2858, 589, 457],\n"," 17: [1196, 296, 1200, 1240, 541, 2571, 1198, 1210],\n"," 18: [1200, 1197, 50, 858, 1193],\n"," 22: [318, 1196, 260, 457, 608, 2571, 1210, 1240, 1198, 541],\n"," 23: [1196, 1210, 1198, 2571, 318, 1291, 1240, 356, 858, 110],\n"," 24: [1198, 1196, 296, 593, 1221, 1213, 1193, 1214, 541, 2028],\n"," 26: [593, 318, 296, 1196, 260, 50, 356, 527, 1210, 1240],\n"," 27: [296, 593, 50, 318, 541, 858, 2858, 1, 260, 1198],\n"," 33: [296, 593, 50, 318, 541, 858, 2858, 260, 1198, 527],\n"," 37: [527, 356, 1196, 260, 608, 2858, 457, 858, 480, 1198],\n"," 40: [],\n"," 41: [],\n"," 42: [1196, 260, 1198, 296, 318, 593],\n"," 44: [1196, 260, 1198, 593],\n"," 45: [296, 318, 47, 527, 541, 32],\n"," 46: [593, 1196, 260, 1240, 1210, 296, 318, 2571, 457, 356],\n"," 50: [50, 1196, 260, 1193, 2028, 47, 2858, 1198, 858, 32],\n"," 52: [2858, 296, 593],\n"," 53: [2571, 1196, 318, 296, 593],\n"," 54: [1196, 260, 527, 1240, 1210, 608, 2571, 1198, 32, 1200],\n"," 56: [],\n"," 59: [356, 50, 1196, 527, 260, 110, 589, 1198, 480, 47],\n"," 60: [1196, 1200, 1240, 2571, 1198, 589, 1210],\n"," 61: [1196, 260, 457, 50, 110, 589, 1198, 1210, 150, 480],\n"," 62: [1196, 260, 457, 50, 356, 589, 527, 1198, 110, 1210],\n"," 63: [296, 318, 593, 1196, 260, 2959, 2762, 2028, 2571, 50],\n"," 64: [1210, 1198, 480, 1196, 356, 589, 110, 296, 318, 593],\n"," 71: [593, 318, 50, 356, 527, 457, 110, 1196, 47, 260],\n"," 72: [296, 318, 589, 110, 150, 1198, 1210, 1, 2571, 1196],\n"," 75: [593, 318, 356, 1196, 527, 1210, 260, 457, 50, 590],\n"," 76: [1196, 260, 1240, 1210, 2571, 356, 527, 1036, 1200, 1214],\n"," 77: [260],\n"," 80: [356, 480, 589, 527, 588, 590, 1198, 1196, 260],\n"," 83: [1200, 2571, 589, 593, 296],\n"," 84: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n"," 85: [1196, 260, 1210, 1198, 589, 318, 3578, 4993, 5952, 2959],\n"," 86: [593, 296, 318, 356, 260, 150, 1, 527],\n"," 87: [2571, 318, 296, 593],\n"," 95: [1196, 50, 527, 260, 457, 1210, 47, 2571, 1240, 608],\n"," 99: [2858, 2571, 1196, 593],\n"," 100: [],\n"," 102: [593, 50, 110, 527, 1196, 589, 260, 608, 32, 2571],\n"," 104: [589, 1210, 1200, 296],\n"," 105: [2571, 593, 356, 1240, 589, 296, 1291, 318, 1, 1200],\n"," 106: [364, 480, 457, 110, 593, 296, 318],\n"," 111: [527, 1196, 1210, 260, 589, 50, 1198, 1, 2571, 590],\n"," 113: [2858, 2571, 1196, 318, 296, 593],\n"," 116: [1196, 260, 2571, 1240, 1, 1036, 1200, 1214, 541, 2028],\n"," 119: [1196, 260, 50, 1210, 2571],\n"," 121: [260, 1036, 589],\n"," 129: [2571, 1196, 318, 296, 593],\n"," 132: [50, 1196, 260, 527, 110, 589, 1198, 47, 150, 1210],\n"," 137: [],\n"," 138: [457, 527, 480, 150, 608, 858, 1213, 111, 1097, 590],\n"," 141: [318, 296, 50, 110, 1196, 260, 1193, 2028, 47, 2858],\n"," 142: [296, 318, 1196, 260, 356, 50, 589, 527, 110, 1198],\n"," 145: [318, 1196, 260, 527, 589, 110, 1198, 47, 608, 480],\n"," 148: [2571, 1198, 858, 593],\n"," 149: [],\n"," 150: [593, 318, 296, 110, 1196, 260, 457, 50, 150, 589],\n"," 151: [593, 541, 858, 32, 2858, 1, 1198, 1210],\n"," 152: [296, 32, 527],\n"," 153: [593, 318, 50, 356, 1196, 47, 608, 1210, 2858, 457],\n"," 154: [318],\n"," 155: [],\n"," 161: [1036],\n"," 162: [593, 457, 318, 380, 150],\n"," 164: [50, 110, 1196, 260, 1193, 2028, 2858, 1198, 858, 2571],\n"," 166: [318, 356, 296, 150, 480, 589, 110, 50, 527, 380],\n"," 168: [593, 318, 296, 110, 527, 1196, 1210, 260, 150, 457],\n"," 171: [593, 858],\n"," 172: [593, 318, 1196, 260, 296, 356, 1210, 527, 1240, 2571],\n"," 174: [50, 356, 110, 1196, 47, 260, 457, 589, 1210, 150],\n"," 176: [296, 318, 1196, 260, 356, 50, 589, 527, 110, 1198],\n"," 177: [296, 593, 50, 318, 541, 858, 2858, 260, 1198, 527],\n"," 178: [296, 50, 590, 480, 2028, 47, 2858, 1198, 858, 32],\n"," 179: [593, 318, 527, 47, 457, 2858, 356],\n"," 180: [2858, 2571, 1196, 318, 296, 593],\n"," 183: [296, 50, 356, 47, 457, 150, 608, 589, 2858, 32],\n"," 184: [593, 318, 356, 527, 1196, 260, 47, 457, 589, 2858],\n"," 188: [318, 1196, 260, 50, 1240, 1210, 2571, 47, 1198, 2028],\n"," 189: [1196, 318, 1210, 50, 356, 527, 2571, 1291, 1240, 480],\n"," 190: [],\n"," 193: [1196, 1214, 2571, 1198, 858, 32, 1210, 608],\n"," 199: [318, 1196, 260, 356, 50, 589, 527, 110, 1198, 480],\n"," 202: [593, 318, 296, 356, 50, 110, 1196, 260, 589, 457],\n"," 204: [1196, 1210, 1198, 593, 296, 2571, 318, 1291, 1240, 589],\n"," 206: [1198, 2858, 858, 110, 589, 260, 356, 318, 296],\n"," 210: [5952],\n"," 211: [318, 1210, 296, 356, 527, 2571, 1036, 590, 480, 588],\n"," 213: [318, 356, 110, 260, 1198, 858, 457, 2959, 1193, 590],\n"," 216: [],\n"," 221: [],\n"," 226: [],\n"," 228: [260],\n"," 229: [593, 296, 318, 541, 47, 50, 589, 2571, 527, 1196],\n"," 230: [2571],\n"," 231: [593, 318, 296, 47, 527, 608, 1196, 260, 110, 457],\n"," 232: [2571],\n"," 234: [593, 318, 296, 356, 110, 1196, 260, 589, 1193, 590],\n"," 235: [1240, 589, 1196],\n"," 236: [541, 858, 32, 2858, 1, 260, 1198, 1196, 1210],\n"," 237: [356, 589, 110, 318, 1, 1270, 541, 2028, 858, 480],\n"," 238: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n"," 239: [260, 1210, 593, 2571, 1291, 1240, 589, 318, 296, 110],\n"," 243: [296, 593, 50, 318, 541, 32, 1, 527],\n"," 245: [2571, 1198, 2858, 1196, 1210, 110, 589, 527, 260, 356],\n"," 246: [260, 1198, 1196, 296, 593, 1221, 1213, 1193, 541, 2028],\n"," 248: [296, 593],\n"," 251: [318],\n"," 252: [1196, 1198, 296, 593, 318, 2571, 858, 110, 589, 356],\n"," 255: [296, 110, 527, 1196, 1210, 260, 457, 480, 589, 1270],\n"," 256: [296, 318, 50, 1196, 260, 457, 589, 527, 110, 1198],\n"," 257: [1196, 593, 1291, 1210, 296, 318, 589, 1197, 1136, 1270],\n"," 260: [2571, 1291, 50, 318],\n"," 261: [1196, 260, 593, 1210, 296, 318, 1198, 589, 541, 47],\n"," 267: [588, 1704, 1213],\n"," 268: [260],\n"," 270: [1196, 1198, 593, 2571, 296, 1240, 589, 1291, 356, 318],\n"," 272: [593, 318, 110, 1196, 260, 457, 1193, 590, 2028, 47],\n"," 273: [1196, 1198, 1214, 296],\n"," 276: [],\n"," 277: [318, 50, 1196, 260, 457, 527, 110, 589, 1198, 1210],\n"," 278: [593, 457, 356, 296, 318, 380, 588, 589, 110, 150],\n"," 281: [1291, 1240, 1198, 2571, 1196, 260],\n"," 287: [593, 318, 296, 527, 1196, 260, 589, 1210, 50, 1198],\n"," 290: [593, 318, 260, 296, 356, 110, 527, 1240, 1210, 150],\n"," 291: [296, 260, 318, 593],\n"," 293: [50, 356, 1196, 260, 527, 110, 589, 1198, 47, 1210],\n"," 296: [110, 1196, 260, 608, 1210, 1198, 1704, 1136, 588],\n"," 300: [457, 593],\n"," 301: [457, 590, 480, 110, 589],\n"," 307: [593, 318, 296, 527, 1291, 858, 457, 150, 50, 1197],\n"," 308: [593, 356, 296, 318, 380, 589, 110, 150, 1198, 1210],\n"," 309: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n"," 311: [593, 318, 296, 110, 527, 1196, 1210, 260, 457, 589],\n"," 313: [318, 593],\n"," 314: [1214, 2571, 32, 50, 608],\n"," 315: [260],\n"," 317: [1196, 260, 50, 296, 593, 1214, 2858, 2571, 1198, 858],\n"," 321: [318, 1196, 260, 1210, 110, 527, 150, 1240, 2571, 1198],\n"," 324: [1196, 260, 1214, 1198, 858, 50, 608, 296, 593],\n"," 328: [593, 296, 1210, 110, 527, 457, 356, 47, 1, 1036],\n"," 329: [50, 296],\n"," 330: [1198, 356, 593],\n"," 331: [593, 296, 356, 110, 527, 1196, 47, 457, 260, 150],\n"," 332: [589, 1198, 1210, 2571, 1196, 527, 260],\n"," 333: [1196, 260, 457, 50, 589, 1198, 110, 1210, 480, 150],\n"," 335: [5952, 2571],\n"," 337: [296, 50, 356, 1196, 260, 457, 527, 110, 589, 1198],\n"," 338: [1196, 260, 50, 527, 589, 1210, 1198, 47, 608, 2571],\n"," 339: [50, 356, 527, 110, 1196, 47, 260, 608, 589, 1210],\n"," 341: [50, 356, 47, 608, 1210, 32, 480, 150, 1089, 111],\n"," 342: [593, 318, 296, 260, 356, 50, 1196, 110, 1198, 589],\n"," 343: [1196, 260, 296, 318, 1210, 1240, 2571, 527, 1198, 1],\n"," 346: [2571, 318, 296, 593],\n"," 349: [260],\n"," 353: [318, 260, 457, 527, 1198, 110, 1210, 480, 150, 608],\n"," 355: [527, 1196, 47, 260, 589, 608, 480, 1210, 1198, 588],\n"," 358: [541, 1198, 858],\n"," 362: [296, 47, 608, 457, 1089, 1617, 541, 2858, 32, 858],\n"," 363: [260, 593, 1210, 318, 1198, 2571, 50, 356, 589, 110],\n"," 364: [527, 1196, 47, 356, 260, 608, 589, 1210, 2571, 541],\n"," 369: [50, 356, 527, 110, 1196, 47, 260, 608, 589, 1210],\n"," 371: [593, 318, 50, 527, 356, 47, 260, 608, 110, 1210],\n"," 372: [260, 593, 1240, 296, 318, 356, 110, 858, 1270, 1214],\n"," 373: [593, 296, 50, 356, 110, 527, 1196, 47, 457, 260],\n"," 375: [480, 589, 457, 296, 593, 318],\n"," 376: [1196, 318, 527, 457, 356, 47, 50, 1, 1036, 380],\n"," 377: [],\n"," 378: [2571, 1198, 593, 1240, 589, 296, 1291, 110, 318, 1],\n"," 379: [1196, 593, 260, 318, 296, 1210, 50, 1198, 589, 2858],\n"," 382: [593, 1210, 260, 318, 608, 589, 1196, 110, 541, 47],\n"," 384: [593, 296, 527, 1196, 1210, 260, 589, 1270, 47, 2028],\n"," 388: [593, 318, 296, 1196, 260, 47, 527, 608, 1210, 110],\n"," 390: [1270, 1214, 1197, 541, 527, 1097, 1036, 47, 32],\n"," 391: [1196, 260, 1240, 1210, 2571, 527, 1036, 1200, 1214, 1291],\n"," 392: [260, 541, 608, 2571, 1, 1210, 1196],\n"," 395: [593, 296, 527, 356, 110, 47, 1196, 457, 589, 2858],\n"," 398: [1210, 2571, 1291, 1240, 589, 318, 296, 858, 1270, 1214],\n"," 400: [1196, 260, 1210, 1198, 296, 318, 480, 356, 3578, 4993],\n"," 403: [1196, 260, 1198, 318, 593],\n"," 404: [593, 1196, 260, 1240, 1210, 2571, 527, 1036, 1200, 1214],\n"," 412: [296, 50, 356, 260, 110, 527, 457, 1210, 47, 1240],\n"," 413: [318, 593],\n"," 415: [593],\n"," 417: [1196, 1210, 1198, 593, 1291, 1240, 589, 296, 858, 356],\n"," 420: [593, 318, 50, 110, 1196, 260, 589, 457, 1193, 2028],\n"," 421: [593, 318, 296, 110, 527, 1196, 260, 1210, 50, 1198],\n"," 422: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n"," 425: [858, 296, 318, 593],\n"," 426: [],\n"," 428: [260, 589, 1210, 2571, 593, 1214, 296, 318],\n"," 437: [110, 32, 858, 1198, 589, 356],\n"," 439: [593, 318, 296, 110, 1196, 1210, 260, 150, 457, 589],\n"," 440: [],\n"," 441: [318, 2571, 1196, 527, 541, 608, 356, 1, 260, 1210],\n"," 443: [296, 356, 50, 1196, 527, 260, 110, 589, 1198, 150],\n"," 444: [593, 318, 110, 527, 260, 150, 2028, 50, 858],\n"," 445: [4993, 2571],\n"," 446: [1196, 260, 1210, 1240, 2571, 110, 527, 1198, 1, 1036],\n"," 447: [1196, 1198, 1291, 1240, 858, 356, 1200, 1214, 1270, 541],\n"," 448: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n"," 449: [1198, 318, 296, 1291, 110, 1240, 858, 457, 1270, 1214],\n"," 453: [593, 318, 50, 527, 356, 1196, 260, 608, 110, 1210],\n"," 455: [1196, 2571, 1198, 593, 356, 1240, 589, 296, 1291, 110],\n"," 458: [2571, 1196, 318, 296, 593],\n"," 459: [318, 457, 50, 1198, 608, 858, 1213, 111, 1617, 588],\n"," 460: [318, 1196, 356, 260, 50, 527, 589, 1198, 1210, 480],\n"," 461: [593, 318, 50, 1196, 541, 1198, 589, 527, 110, 47],\n"," 462: [296, 356, 527, 150, 480, 589, 110, 1196, 858, 380],\n"," 463: [],\n"," 465: [],\n"," 466: [1196, 260, 593, 2571, 1198, 1240, 296, 356, 318, 110],\n"," 467: [2571, 1291, 1198, 1196, 260, 593],\n"," 471: [588],\n"," 472: [],\n"," 474: [1198, 296, 318, 3578, 4993, 5952, 2959, 2762, 2028, 1291],\n"," 475: [2858, 2571, 296, 593],\n"," 479: [541, 47, 589, 260, 1210, 1196],\n"," 480: [1036, 318],\n"," 484: [296, 593, 50, 318, 541, 858, 2858, 1198, 527, 1196],\n"," 485: [110, 1210, 150, 47, 1704, 1036, 590, 2028, 1136, 1270],\n"," 487: [593, 110, 527, 1196, 1210, 260, 150, 457, 480, 589],\n"," 488: [1196, 260, 296, 318, 1210, 356, 1240, 2571, 110, 527],\n"," 489: [296, 593],\n"," 491: [296, 593, 1198, 1193, 1214, 541, 2028, 608, 1210, 50],\n"," 492: [4993, 2571],\n"," 494: [32, 2571, 1196],\n"," 496: [318, 50, 527, 356, 1196, 110, 260, 608, 2858, 32],\n"," 497: [296, 541, 47, 608, 50, 589, 1, 260, 110],\n"," 499: [593, 318, 50, 356, 527, 457, 110, 1196, 47, 589],\n"," 500: [2858, 50],\n"," 501: [318, 296, 589, 50, 527, 590],\n"," 502: [2571, 1196, 318, 296, 593],\n"," 508: [260, 1210, 1198, 593, 2571, 1291, 1240, 589, 318, 296],\n"," 510: [50, 110, 1196, 260, 589, 1193, 2028, 47, 2858, 1198],\n"," 518: [1198, 2858, 858, 110, 356, 296],\n"," 520: [593, 296, 50, 356, 110, 527, 1196, 47, 457, 260],\n"," 521: [296, 527, 47, 110, 1196, 457, 260, 589, 150, 2858],\n"," 525: [1196, 260, 356, 50, 589, 527, 1198, 480, 1210, 47],\n"," 526: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n"," 527: [1196, 260, 593, 1198, 2571, 296, 589, 110, 1240, 318],\n"," 529: [593, 318, 47, 608, 50, 589, 2571, 1, 1196, 110],\n"," 532: [110, 527, 593, 318],\n"," 534: [2571],\n"," 536: [1196, 1198, 2571, 1240, 589, 1291, 356, 318, 110, 858],\n"," 537: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n"," 539: [356, 110, 1196, 260, 457, 608, 2571, 541, 1193, 2028],\n"," 544: [593, 318, 32, 589, 110, 356, 527],\n"," 547: [318, 296, 50, 1196, 260, 1193, 2028, 47, 2858, 1198],\n"," 548: [593, 50, 356, 2571, 110, 589, 527, 608, 47, 1240],\n"," 549: [356, 50, 1196, 527, 260, 110, 589, 1198, 47, 480],\n"," 551: [318, 296, 356, 50, 110, 589, 457, 1193, 47, 2858],\n"," 553: [541, 858, 2858, 1, 260, 1198, 527, 1196, 1210],\n"," 557: [1198, 1196, 296, 593, 1221, 1213, 1193, 1214, 541, 2028],\n"," 559: [1196, 260, 2571, 1198, 593, 356, 1240, 589, 296, 1291],\n"," 563: [1196, 1210, 1198, 593, 296, 2571, 318, 1291, 1240, 589],\n"," 564: [593, 110, 527, 457, 590, 588, 47, 2028, 1, 2571],\n"," 569: [318, 1196, 260, 356, 589, 527, 110, 1198, 150, 480],\n"," 570: [296, 593, 50, 858, 541, 32, 2858, 1, 1198, 1196],\n"," 573: [150, 110, 296],\n"," 574: [356, 318, 110, 150, 1198, 1210, 1, 2571, 1196, 260],\n"," 576: [150, 356, 593],\n"," 579: [1617, 2028, 858, 608],\n"," 584: [296, 593, 318],\n"," 586: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n"," 587: [1198, 2571, 1240, 1291, 50, 858, 1270, 1214, 1200, 541],\n"," 589: [318, 2571],\n"," 590: [],\n"," 593: [1196, 260, 527, 1240, 2571, 1210, 608, 32, 1198, 1036],\n"," 594: [1196, 1198, 593, 2571, 296, 356, 1240, 589, 318, 1291],\n"," 595: [1210, 589, 318, 3578, 4993, 5952, 2959, 1200, 2028, 47],\n"," 596: [593, 296, 50, 110, 47, 457, 150, 589, 1210, 2571],\n"," 600: [1196, 260, 1214, 2571, 589, 593],\n"," 603: [593, 50, 260, 457, 1193, 47, 150, 1198, 32],\n"," 605: [593, 2571, 457, 2858, 858, 2028, 1270, 1704, 1213, 590],\n"," 606: [2858, 527, 356, 593, 318, 296],\n"," 607: [1196, 1210, 2571, 296, 1291, 1240, 589, 356, 1214, 541],\n"," 609: [1196, 260, 608, 2858, 858, 1198, 2571, 1089, 1617, 541],\n"," 613: [260, 1210, 1198, 593, 2571, 1291, 1240, 589, 318, 296],\n"," 614: [593, 318, 589, 296, 356, 1210, 150, 527, 2571, 50],\n"," 616: [1196],\n"," 619: [593, 1196, 296, 318, 2571, 356, 527, 1036, 380, 1291],\n"," 625: [318, 356, 296, 150, 480, 110, 50, 527, 380, 588],\n"," 628: [593, 296, 356, 50, 110, 527, 457, 1196, 47, 589],\n"," 632: [318, 296],\n"," 637: [593, 318, 296, 356, 1196, 527, 1210, 260, 457, 50],\n"," 640: [260, 593, 1200, 1036, 1240, 296],\n"," 641: [260, 1196, 1210, 1240, 2571, 110, 527, 356, 47, 50],\n"," 642: [],\n"," 646: [364, 110, 318],\n"," 649: [593, 318, 50, 527, 1196, 47, 260, 608, 110, 589],\n"," 653: [858, 296, 318, 593],\n"," 654: [1196, 527, 1210, 260, 50, 589, 2028, 47, 1198, 2571],\n"," 655: [110, 527, 593],\n"," 656: [1291, 1240, 1198, 589, 2571, 1196, 260],\n"," 660: [858, 1, 260, 1198, 1196, 1210],\n"," 661: [260],\n"," 662: [1200, 1240, 2571, 1198, 589],\n"," 663: [1291, 1240, 1198, 589, 2571, 1196, 260],\n"," 666: [260, 1210, 593, 1291, 1240, 589, 318, 356, 110, 1270],\n"," 667: [1210, 1036, 1214, 2571, 593, 296],\n"," 668: [593, 318, 50, 1196, 260, 527, 356, 47, 608, 110],\n"," 669: [1196, 260, 527, 1210, 2571, 1240, 50, 1198, 1, 47],\n"," 672: [318],\n"," 675: [50, 527, 110, 1196, 260, 457, 1210, 47, 608, 2858],\n"," 677: [260],\n"," 679: [1198, 2571],\n"," 684: [588],\n"," 685: [1196, 593, 296, 1198, 2571, 318, 356, 50, 1240, 589],\n"," 686: [],\n"," 690: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n"," 696: [2571, 1196, 318, 296, 593],\n"," 699: [593, 296, 527, 356, 47, 110, 1196, 608, 457, 260],\n"," 701: [593, 318, 356, 296, 150, 480, 589, 110, 50, 527],\n"," 704: [],\n"," 705: [260, 1196, 1198, 296, 589, 1210, 318, 593, 2571, 1200],\n"," 707: [318, 1617, 2571, 858, 50, 1198, 608, 1196, 260, 356],\n"," 708: [593, 1196, 1210, 296, 318, 457, 356, 110, 527, 1036],\n"," 709: [593, 318, 1210, 296, 356, 480, 110, 50, 527, 150],\n"," 710: [593],\n"," 711: [593, 318, 50, 527, 356, 1196, 47, 260, 608, 110],\n"," 712: [593, 50, 541, 858, 32, 2858, 1, 260, 1198, 1196],\n"," 715: [593, 50, 318, 32, 2571, 589, 110, 1196, 356, 527],\n"," 720: [50, 110, 1196, 260, 589, 1193, 2028, 2858, 1198, 858],\n"," 723: [593, 296, 1196, 260, 1210, 150, 457, 480, 1198, 858],\n"," 724: [296, 593, 50, 318, 541, 858, 2858, 1198, 527, 1196],\n"," 726: [296, 318, 260, 50, 589, 150, 480, 47, 2571, 608],\n"," 727: [608, 1196, 260, 2571, 589, 588, 1089, 1617, 541, 2858],\n"," 728: [260, 593, 1198, 318, 1291, 356, 110, 527, 1200, 1214],\n"," 729: [480, 589, 457, 296, 593, 318],\n"," 730: [593, 50, 356, 110, 527, 1196, 260, 47, 457, 1210],\n"," 733: [593, 1196, 260, 1240, 1210, 296, 318, 457, 356, 110],\n"," 735: [318, 527, 608, 1196, 260, 541, 589, 2571, 1089, 1617],\n"," 737: [593, 296, 318, 541, 47, 608, 50, 589, 2571, 527],\n"," 739: [296, 318, 1196, 260, 527, 1198, 1210, 150, 1240, 32],\n"," 740: [296, 50, 356, 527, 47, 457, 589, 150, 2858, 32],\n"," 741: [260, 1210, 1198, 3578, 4993, 5952, 2959, 1200, 1214, 1240],\n"," 742: [593, 527],\n"," 743: [593, 457, 318, 589, 110, 150, 1198, 1210, 2571, 1196],\n"," 749: [1210, 260, 1198, 608, 480, 32, 1196, 356, 589, 110],\n"," 750: [296, 1196, 260, 318, 593, 1198, 2762, 1617, 2028, 2571],\n"," 751: [296, 318, 1196, 260, 457, 50, 356, 589, 527, 1198],\n"," 753: [1196, 1210, 296, 2571, 1291, 50, 356, 527, 858, 110],\n"," 758: [318, 356, 296, 1196, 527, 1210, 260, 457, 50, 589],\n"," 759: [593, 296, 318, 47, 356, 608, 50, 527, 1],\n"," 761: [1196, 260, 1240],\n"," 762: [1196, 1210, 1198, 593, 296, 2571, 318, 1291, 1240, 589],\n"," 763: [1196, 1210, 1198, 2571, 1291, 1240, 589, 858, 356, 318],\n"," 766: [593, 296, 527, 150, 457, 589, 480, 858, 590, 588],\n"," 773: [318, 356, 527, 457, 50, 589, 590, 150, 2028, 47],\n"," 776: [296, 318, 2959, 2762, 1617, 2571, 608, 1196, 527],\n"," 777: [593, 296, 318, 541, 47, 2571, 527, 1, 1210, 1196],\n"," 785: [1196, 260, 150, 608, 1210, 2858, 32, 1198, 2571, 1704],\n"," 786: [589, 1200, 1214, 593, 296],\n"," 787: [1196, 260, 593],\n"," 792: [593, 356, 527, 110, 47, 457, 1196, 608, 260, 589],\n"," 793: [1198, 608, 480, 32, 356, 589, 296, 318, 593],\n"," 794: [1196, 260, 1198, 1210, 2571, 356, 593],\n"," 797: [110, 527, 1196, 1210, 260, 480, 590, 1270, 47, 2028],\n"," 799: [50, 1196, 260, 1198, 2571, 1291, 1240, 1193, 2028, 47],\n"," 804: [318, 356, 296, 1196, 527, 260, 457, 50, 589, 590],\n"," 809: [593, 318, 296, 1210, 150, 457, 480, 589, 588, 2028],\n"," 812: [1196, 1198, 2571],\n"," 814: [356, 1196, 1210, 260, 457, 50, 589, 590, 480, 588],\n"," 815: [318],\n"," 816: [1196, 260, 50, 356, 589, 527, 1198, 110, 1210, 480],\n"," 821: [1196, 260, 593],\n"," 822: [593, 1196, 1210, 260, 588, 1270, 47, 2028, 1198, 2571],\n"," 825: [318],\n"," 826: [110, 527, 150, 590, 588, 1198],\n"," 832: [593, 296, 318, 2571, 356, 457, 110, 527, 1198, 1036],\n"," 833: [1196, 1291, 1210, 1036, 110, 50, 457],\n"," 835: [1196, 1214, 2571, 1198, 858, 32, 1210, 608],\n"," 840: [],\n"," 842: [1210, 260, 1198, 608, 480, 32, 1196, 356, 589, 296],\n"," 851: [593],\n"," 852: [1196, 260, 1240, 1210, 2571, 110, 527, 1036, 1200, 1214],\n"," 854: [1196, 260, 1200, 1240, 541, 2571, 1198, 589, 1210],\n"," 855: [541, 858, 32, 2858, 1, 260, 1198, 527, 1196, 1210],\n"," 856: [593, 457, 356, 296, 318, 588, 110, 150, 1198, 1210],\n"," 857: [260, 296, 318, 1210, 1198, 50, 457, 527, 1291, 150],\n"," 859: [318, 2858],\n"," 861: [1196, 260, 1198, 318, 593],\n"," 863: [1196, 260, 457, 541, 858, 1198],\n"," 864: [296, 318, 593, 2571, 1196, 1617, 2028, 858, 50, 1198],\n"," 865: [1198, 1291, 589, 1240, 527, 1270, 1214, 1200, 541, 858],\n"," 873: [593, 296, 318, 541, 47, 608, 50, 527, 1, 260],\n"," 878: [1210, 2571, 1291, 356, 110, 1270, 2028, 2858, 1, 2762],\n"," 879: [296, 318, 1196, 260, 50, 457, 356, 527, 589, 110],\n"," 888: [4993, 2571],\n"," 891: [593],\n"," 901: [1196, 260, 1210, 593, 1198, 1240, 296, 1291, 541, 3578],\n"," 903: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n"," 904: [593, 110, 1196, 260, 150, 588, 1270, 47, 2028, 1198],\n"," 909: [1196, 260, 1210, 593, 589, 296, 318, 3578, 1200, 1214],\n"," 910: [260, 1198, 1196, 1221, 1193, 541, 2028, 608, 2571, 1210],\n"," 916: [2571, 5952, 2858, 296, 593],\n"," 920: [1196, 1210, 1198, 589, 2571, 1291, 296, 318, 1214, 356],\n"," 925: [50, 527, 1196, 47, 457, 589, 150, 608, 1210, 2571],\n"," 927: [593, 318, 296, 110, 527, 1196, 260, 150, 457, 589],\n"," 932: [1291, 1240, 1198, 2571, 1196],\n"," 935: [1210, 593],\n"," 938: [50, 1196, 260, 356, 589, 527, 110, 1198, 480, 1210],\n"," 939: [296, 356, 50, 1196, 527, 110, 589, 1198, 47, 480],\n"," 940: [593, 318, 296, 150, 480, 589, 527, 5952, 380, 588],\n"," 942: [1196, 260, 356, 50, 589, 527, 110, 1198, 150, 480],\n"," 946: [296, 318],\n"," 947: [593, 296, 318, 3578, 4993, 5952, 2959, 2762, 1200, 1214],\n"," 948: [],\n"," 951: [296, 593, 50, 318, 541, 858, 2858, 260, 1198, 527],\n"," 955: [593, 318, 296, 356, 50, 110, 1196, 260, 589, 457],\n"," 958: [2858, 1196, 296, 593],\n"," 960: [50, 318, 32, 2571, 110, 1196],\n"," 961: [296, 593, 858, 50, 318],\n"," 966: [],\n"," 967: [1196, 527, 260, 858, 541, 608, 50, 589, 1, 1210],\n"," 968: [356, 50, 527, 1196, 260, 589, 47, 1210, 1198, 608],\n"," 970: [1196, 260, 457, 356, 589, 527, 1198, 1210, 480, 47],\n"," 972: [],\n"," 975: [593, 318, 527, 47, 1196, 260, 110, 541, 457, 858],\n"," 976: [593, 541, 47, 608, 50, 589, 2571, 527, 260, 1210],\n"," 980: [1196, 1198, 318, 2571, 589, 1240, 110, 1291, 527, 1],\n"," 982: [1196, 1210, 1198, 593, 2571, 296, 1291, 1240, 589, 356],\n"," 985: [2571],\n"," 988: [],\n"," 989: [593, 318, 356, 47, 110, 1210, 589, 457, 480, 150],\n"," 990: [47, 110, 1196, 260, 608, 2858, 32, 858, 1198, 2571],\n"," 992: [2858, 296],\n"," 994: [593, 296, 50, 356, 110, 527, 1196, 47, 457, 260],\n"," 1001: [593, 318, 296, 527, 1196, 1210, 260, 50, 1198, 1],\n"," 1004: [527],\n"," 1005: [],\n"," 1008: [],\n"," 1009: [1196, 260, 1210, 593, 1198, 589, 296, 3578, 4993, 5952],\n"," 1011: [318, 2571, 47, 527, 110],\n"," 1012: [296, 318, 2959, 2762, 1617, 2028, 2571, 858, 50, 1198],\n"," 1013: [1240, 32, 47, 608, 150, 1036, 1200, 380, 1214, 1291],\n"," 1014: [50, 318, 32, 1, 1198, 1196, 1210],\n"," 1015: [50, 296, 593],\n"," 1016: [593, 541, 47, 50, 589, 2571, 1, 1210, 1196, 110],\n"," 1017: [260, 2571, 1198, 593, 296, 356, 1240, 589, 1291, 110],\n"," 1021: [588],\n"," 1022: [1196, 260, 593],\n"," 1023: [318, 356, 296, 1210, 457, 50, 589, 590, 588, 150],\n"," 1025: [593, 296, 50, 356, 527, 47, 150, 32, 1704, 590],\n"," 1030: [1196, 260, 296, 318],\n"," 1031: [318, 356, 296, 1196, 457, 527, 1210, 260, 589, 50],\n"," 1034: [2571, 1198, 2858, 858, 1196, 1210, 110, 589, 527, 260],\n"," 1037: [318, 527, 608, 1196, 260, 110, 457, 1089, 1617, 541],\n"," 1039: [2858, 32, 2571, 589, 110, 1196],\n"," 1041: [608, 480, 32, 356],\n"," 1044: [1196, 2571, 1198, 593, 356, 1240, 589, 296, 1291, 110],\n"," 1046: [318, 1196, 260, 527, 110, 50, 589, 1198, 1210, 2571],\n"," 1048: [1617, 858, 608, 527, 260, 356],\n"," 1053: [593, 318, 296, 527, 457, 50, 590, 480, 588, 150]})"]},"metadata":{},"execution_count":15}],"source":["# 어소시에이션 규칙을 사용해 각 사용자가 아직 평가하지 않은 영화 10편을 추천한다\n","pred_user2items = defaultdict(list)\n","user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","\n","for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n"," # 사용자가 최근 5편의 영화를 얻는다\n"," input_data = data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-5:]\n"," # 그 영화들이 조건부에 1편이라도 포함되어 있는 어소시에이션 규칙을 추출한다\n"," matched_flags = rules.antecedents.apply(lambda x: len(set(input_data) & x)) >= 1\n","\n"," # 어소시에이션 규칙의 귀결부의 영화를 리스트로 저장하고, 출편 빈도 순으로 배열하고, 사용자가 아직 평가하지 않았다면 추천 리스트에 추가한다\n"," consequent_movies = []\n"," for i, row in rules[matched_flags].sort_values(\"lift\", ascending=False).iterrows():\n"," consequent_movies.extend(row[\"consequents\"])\n"," # 출현 빈도를 센다\n"," counter = Counter(consequent_movies)\n"," for movie_id, movie_cnt in counter.most_common():\n"," if movie_id not in user_evaluated_movies[user_id]:\n"," pred_user2items[user_id].append(movie_id)\n"," # 추천 리스트가 10편이 되면 종료한다\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","\n","# 각 사용자에 대한 추천 리스트\n","pred_user2items"]},{"cell_type":"code","execution_count":16,"id":"7342fdc7","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":175},"id":"7342fdc7","executionInfo":{"status":"ok","timestamp":1672116383190,"user_tz":-540,"elapsed":15,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c194befc-f9ec-4450-c916-02791f71155a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","8381 2 1210 4.0 868245644 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","8381 [Action, Adventure, Sci-Fi] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":16}],"source":["# user_id=2인 사용자 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n","movielens_train_high_rating[movielens_train_high_rating.user_id==2]"]},{"cell_type":"code","execution_count":17,"id":"3034b39c","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"3034b39c","executionInfo":{"status":"ok","timestamp":1672116383190,"user_tz":-540,"elapsed":14,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"7fc872ce-8f9b-41d8-c0bb-a55dfdcf86fa"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","587 593 Silence of the Lambs, The (1991) \n","1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n","1173 1198 Raiders of the Lost Ark (Indiana Jones and the... \n","\n"," genre \\\n","587 [Crime, Horror, Thriller] \n","1171 [Action, Adventure, Sci-Fi] \n","1173 [Action, Adventure] \n","\n"," tag \n","587 [based on a book, anthony hopkins, demme, psyc... \n","1171 [lucas, george lucas, george lucas, gfei own i... \n","1173 [egypt, lucas, seen more than once, dvd collec... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
587593Silence of the Lambs, The (1991)[Crime, Horror, Thriller][based on a book, anthony hopkins, demme, psyc...
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
11731198Raiders of the Lost Ark (Indiana Jones and the...[Action, Adventure][egypt, lucas, seen more than once, dvd collec...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":17}],"source":["# user_id=2에 대한 추천(1196, 593, 1198)\n","movies[movies.movie_id.isin([1196, 593, 1198])]"]},{"cell_type":"code","execution_count":18,"id":"9b22d1f6","metadata":{"id":"9b22d1f6","executionInfo":{"status":"ok","timestamp":1672116383190,"user_tz":-540,"elapsed":13,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# apriori(user_movie_matrix, min_support=0.1, use_colnames=True)\n","# association_rules(freq_movies, metric='lift', min_threshold=1)\n","# min_support와 min_threshold가 중요한 파라미터가 되므로 바꾸어 가면서 시험해봅니다."]},{"cell_type":"code","execution_count":18,"id":"64ae2120","metadata":{"id":"64ae2120","executionInfo":{"status":"ok","timestamp":1672116383190,"user_tz":-540,"elapsed":13,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/BPR.ipynb b/chapter5/colab/BPR.ipynb index f3e7258..d673ac6 100644 --- a/chapter5/colab/BPR.ipynb +++ b/chapter5/colab/BPR.ipynb @@ -1,1682 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "4b7f67c6", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/BPR.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "1dd49045", - "metadata": {}, - "source": [ - "# Bayesian Personalized Ranking(BPR)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e483d5c3", - "metadata": {}, - "outputs": [], - "source": [ - "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", - "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", - "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", - "\n", - "# 데이터 다운로드와 압축 풀기\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "9e2d716c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielens 데이터 로딩(데이터량이 많으므로 로딩에 시간이 걸릴 수 있습니다)\n", - "import pandas as pd\n", - "\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# 데이터량이 많으므로 사용자 수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "65728cf5", - "metadata": {}, - "outputs": [], - "source": [ - "# 인자 수\n", - "factors = 10\n", - "# 평가 수의 임곗값\n", - "minimum_num_rating = 0\n", - "# 에폭 수\n", - "n_epochs = 50" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "959a4009", - "metadata": {}, - "outputs": [], - "source": [ - "# 행렬 분석용으로 행렬을 작성한다\n", - "filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n", - " lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n", - ")\n", - "\n", - "movielens_train_high_rating = filtered_movielens_train[filtered_movielens_train.rating >= 4]\n", - "\n", - "# 행렬의 인덱스와 영화/사용자를 대응시킨 딕셔너리를 작성한다\n", - "unique_user_ids = sorted(movielens_train_high_rating.user_id.unique())\n", - "unique_movie_ids = sorted(movielens_train_high_rating.movie_id.unique())\n", - "user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n", - "movie_id2index = dict(zip(unique_movie_ids, range(len(unique_movie_ids))))" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "072a29db", - "metadata": {}, - "outputs": [], - "source": [ - "from scipy.sparse import lil_matrix\n", - "# 희소 행렬을 초기화하고 각 셀에 값을 넣는다\n", - "movielens_matrix = lil_matrix((len(unique_movie_ids), len(unique_user_ids)))\n", - "for i, row in movielens_train_high_rating.iterrows():\n", - " user_index = user_id2index[row[\"user_id\"]]\n", - " movie_index = movie_id2index[row[\"movie_id\"]]\n", - " movielens_matrix[movie_index, user_index] = 1.0\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b6c90bc6", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install implicit==0.4.4" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "25e71312", - "metadata": {}, - "outputs": [], - "source": [ - "# colab 상에서 implicit 라이브러리 실행 후에 에러가 발생할 때는, '런타임 → 런타임 유형 변경'에서 하드웨어 엑셀러레이터로 GPU를 선택합니다" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "6c0cf1a4", - "metadata": {}, - "outputs": [], - "source": [ - "import implicit\n", - "\n", - "# 모델 초기화\n", - "model = implicit.bpr.BayesianPersonalizedRanking(factors=factors, iterations=n_epochs)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "cee6bdcb", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "70b845e6f3eb4cf0b609c81347d747f4", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/50 [00:00\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n", - "" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "8381 2 1210 4.0 868245644 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 " - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", - "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "4457d3f0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
293296Pulp Fiction (1994)[Comedy, Crime, Drama][quotable, samuel l. jackson, quentin tarantin...
352356Forrest Gump (1994)[Comedy, Drama, Romance, War][psychology, tom hanks, seen more than once, l...
587593Silence of the Lambs, The (1991)[Crime, Horror, Thriller][based on a book, anthony hopkins, demme, psyc...
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "293 296 Pulp Fiction (1994) \n", - "352 356 Forrest Gump (1994) \n", - "587 593 Silence of the Lambs, The (1991) \n", - "\n", - " genre \\\n", - "293 [Comedy, Crime, Drama] \n", - "352 [Comedy, Drama, Romance, War] \n", - "587 [Crime, Horror, Thriller] \n", - "\n", - " tag \n", - "293 [quotable, samuel l. jackson, quentin tarantin... \n", - "352 [psychology, tom hanks, seen more than once, l... \n", - "587 [based on a book, anthony hopkins, demme, psyc... " - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2에 대한 추천(593, 356, 296)\n", - "movies[movies.movie_id.isin([593, 356, 296])]" - ] - } - ], - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","id":"4b7f67c6","metadata":{"id":"4b7f67c6"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/BPR.ipynb)"]},{"cell_type":"markdown","id":"1dd49045","metadata":{"id":"1dd49045"},"source":["# Bayesian Personalized Ranking(BPR)"]},{"cell_type":"code","execution_count":1,"id":"e483d5c3","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"e483d5c3","executionInfo":{"status":"ok","timestamp":1672116735554,"user_tz":-540,"elapsed":6236,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"21abcbdb-9e9a-4754-b011-d451a8a5c819"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 04:52:06-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 21.2MB/s in 3.0s \n","\n","2022-12-27 04:52:10 (21.2 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"9e2d716c","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9e2d716c","executionInfo":{"status":"ok","timestamp":1672116794339,"user_tz":-540,"elapsed":58791,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"af9f8155-e2a1-407d-830c-5efe4794f0a2"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자 수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"65728cf5","metadata":{"id":"65728cf5","executionInfo":{"status":"ok","timestamp":1672116794339,"user_tz":-540,"elapsed":18,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 인자 수\n","factors = 10\n","# 평가 수의 임곗값\n","minimum_num_rating = 0\n","# 에폭 수\n","n_epochs = 50"]},{"cell_type":"code","execution_count":4,"id":"959a4009","metadata":{"id":"959a4009","executionInfo":{"status":"ok","timestamp":1672116794861,"user_tz":-540,"elapsed":539,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 행렬 분석용으로 행렬을 작성한다\n","filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n"," lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n",")\n","\n","movielens_train_high_rating = filtered_movielens_train[filtered_movielens_train.rating >= 4]\n","\n","# 행렬의 인덱스와 영화/사용자를 대응시킨 딕셔너리를 작성한다\n","unique_user_ids = sorted(movielens_train_high_rating.user_id.unique())\n","unique_movie_ids = sorted(movielens_train_high_rating.movie_id.unique())\n","user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n","movie_id2index = dict(zip(unique_movie_ids, range(len(unique_movie_ids))))"]},{"cell_type":"code","execution_count":5,"id":"072a29db","metadata":{"id":"072a29db","executionInfo":{"status":"ok","timestamp":1672116798146,"user_tz":-540,"elapsed":3287,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["from scipy.sparse import lil_matrix\n","# 희소 행렬을 초기화하고 각 셀에 값을 넣는다\n","movielens_matrix = lil_matrix((len(unique_movie_ids), len(unique_user_ids)))\n","for i, row in movielens_train_high_rating.iterrows():\n"," user_index = user_id2index[row[\"user_id\"]]\n"," movie_index = movie_id2index[row[\"movie_id\"]]\n"," movielens_matrix[movie_index, user_index] = 1.0\n"]},{"cell_type":"code","execution_count":6,"id":"b6c90bc6","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"b6c90bc6","executionInfo":{"status":"ok","timestamp":1672116874351,"user_tz":-540,"elapsed":76226,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c94b6b49-5769-465c-ea87-fc27280963d5"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting implicit==0.4.4\n"," Downloading implicit-0.4.4.tar.gz (1.1 MB)\n","\u001b[K |████████████████████████████████| 1.1 MB 11.7 MB/s \n","\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (1.21.6)\n","Requirement already satisfied: scipy>=0.16 in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (1.7.3)\n","Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (4.64.1)\n","Building wheels for collected packages: implicit\n"," Building wheel for implicit (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for implicit: filename=implicit-0.4.4-cp38-cp38-linux_x86_64.whl size=3825514 sha256=7d630d694700acd323d4158a90d015d03f6613575de9846072360a19481a67e8\n"," Stored in directory: /root/.cache/pip/wheels/00/ac/67/6f4536c819ed560c2c7e17c0f7a920e3e50c26108616087d05\n","Successfully built implicit\n","Installing collected packages: implicit\n","Successfully installed implicit-0.4.4\n"]}],"source":["!pip install implicit==0.4.4"]},{"cell_type":"code","execution_count":7,"id":"25e71312","metadata":{"id":"25e71312","executionInfo":{"status":"ok","timestamp":1672116874352,"user_tz":-540,"elapsed":7,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# colab 상에서 implicit 라이브러리 실행 후에 에러가 발생할 때는, '런타임 → 런타임 유형 변경'에서 하드웨어 엑셀러레이터로 GPU를 선택합니다"]},{"cell_type":"code","execution_count":8,"id":"6c0cf1a4","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"6c0cf1a4","executionInfo":{"status":"ok","timestamp":1672116874906,"user_tz":-540,"elapsed":6,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"bf46043c-1d89-4e29-aa41-b9429e68b845"},"outputs":[{"output_type":"stream","name":"stderr","text":["WARNING:implicit:GPU training requires factor size to be a multiple of 32 - 1. Increasing factors from 10 to 31.\n"]}],"source":["import implicit\n","\n","# 모델 초기화\n","model = implicit.bpr.BayesianPersonalizedRanking(factors=factors, iterations=n_epochs)"]},{"cell_type":"code","execution_count":9,"id":"cee6bdcb","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":49,"referenced_widgets":["0da9107a2135419b80d81eeef564292f","ddb3a89fe8634c0fa69705137e88db1d","b5c338dd0da64c47b4184538c7780b19","2700ce5424694283b893b686f7467a85","9e92efe91d6a41c4b20c220c43f1ae26","f9a7d7da750a411fa3b1c90b31a0197f","e97a61c4370c435ea93ae76ad616b02d","9a4aa4972d13480f8734832345fdea59","a78a46d01434404288168d8402a317d5","ebdc7cd012c14d028350d7a39daa0bc2","0318cc47c7ff4fad82354bce4fedb82f"]},"id":"cee6bdcb","executionInfo":{"status":"ok","timestamp":1672116876849,"user_tz":-540,"elapsed":1947,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"e7ac20c7-47a4-4941-e069-6d76794e9dcb"},"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/50 [00:00\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n"," \n"," "]},"metadata":{},"execution_count":11}],"source":["# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n","movielens_train_high_rating[movielens_train_high_rating.user_id==2]"]},{"cell_type":"code","execution_count":12,"id":"4457d3f0","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"4457d3f0","executionInfo":{"status":"ok","timestamp":1672116876850,"user_tz":-540,"elapsed":10,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"5d397af9-532d-4731-90d0-61de1fcba17c"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","293 296 Pulp Fiction (1994) \n","352 356 Forrest Gump (1994) \n","587 593 Silence of the Lambs, The (1991) \n","\n"," genre \\\n","293 [Comedy, Crime, Drama] \n","352 [Comedy, Drama, Romance, War] \n","587 [Crime, Horror, Thriller] \n","\n"," tag \n","293 [quotable, samuel l. jackson, quentin tarantin... \n","352 [psychology, tom hanks, seen more than once, l... \n","587 [based on a book, anthony hopkins, demme, psyc... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
293296Pulp Fiction (1994)[Comedy, Crime, Drama][quotable, samuel l. jackson, quentin tarantin...
352356Forrest Gump (1994)[Comedy, Drama, Romance, War][psychology, tom hanks, seen more than once, l...
587593Silence of the Lambs, The (1991)[Crime, Horror, Thriller][based on a book, anthony hopkins, demme, psyc...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":12}],"source":["# user_id=2에 대한 추천(593, 356, 296)\n","movies[movies.movie_id.isin([593, 356, 296])]"]}],"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.10.8"},"colab":{"provenance":[]},"accelerator":"GPU","gpuClass":"standard","widgets":{"application/vnd.jupyter.widget-state+json":{"0da9107a2135419b80d81eeef564292f":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_ddb3a89fe8634c0fa69705137e88db1d","IPY_MODEL_b5c338dd0da64c47b4184538c7780b19","IPY_MODEL_2700ce5424694283b893b686f7467a85"],"layout":"IPY_MODEL_9e92efe91d6a41c4b20c220c43f1ae26"}},"ddb3a89fe8634c0fa69705137e88db1d":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_f9a7d7da750a411fa3b1c90b31a0197f","placeholder":"​","style":"IPY_MODEL_e97a61c4370c435ea93ae76ad616b02d","value":"100%"}},"b5c338dd0da64c47b4184538c7780b19":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_9a4aa4972d13480f8734832345fdea59","max":50,"min":0,"orientation":"horizontal","style":"IPY_MODEL_a78a46d01434404288168d8402a317d5","value":50}},"2700ce5424694283b893b686f7467a85":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_ebdc7cd012c14d028350d7a39daa0bc2","placeholder":"​","style":"IPY_MODEL_0318cc47c7ff4fad82354bce4fedb82f","value":" 50/50 [00:00<00:00, 84.21it/s, correct=74.55%, skipped=17.28%]"}},"9e92efe91d6a41c4b20c220c43f1ae26":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f9a7d7da750a411fa3b1c90b31a0197f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e97a61c4370c435ea93ae76ad616b02d":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"9a4aa4972d13480f8734832345fdea59":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a78a46d01434404288168d8402a317d5":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"ebdc7cd012c14d028350d7a39daa0bc2":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0318cc47c7ff4fad82354bce4fedb82f":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"2ddd27db70734eb88d721e7de405ee74":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_166e1d511c9a422ba863143f1396bf52","IPY_MODEL_c6b5fd12d6094899aed3b99f203f5759","IPY_MODEL_a3ad9732a70b4785a52f059816adc139"],"layout":"IPY_MODEL_edb4c4f539cb48a39b4b330b9e1245b3"}},"166e1d511c9a422ba863143f1396bf52":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_534599923d34433e9482e454db5756f5","placeholder":"​","style":"IPY_MODEL_fbe7d1235e114f9e94f1ecc44229ab20","value":"100%"}},"c6b5fd12d6094899aed3b99f203f5759":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_25c5deff13c1415684e9b09f97118976","max":997,"min":0,"orientation":"horizontal","style":"IPY_MODEL_b2a2622765114c2a92ab9b1aec54d604","value":997}},"a3ad9732a70b4785a52f059816adc139":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_504e950c8c58490ebf7a10dfdd198474","placeholder":"​","style":"IPY_MODEL_3a0c45cdd5dd472ab191429bedca176c","value":" 997/997 [00:00<00:00, 4865.83it/s]"}},"edb4c4f539cb48a39b4b330b9e1245b3":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"534599923d34433e9482e454db5756f5":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"fbe7d1235e114f9e94f1ecc44229ab20":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"25c5deff13c1415684e9b09f97118976":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"b2a2622765114c2a92ab9b1aec54d604":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"504e950c8c58490ebf7a10dfdd198474":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"3a0c45cdd5dd472ab191429bedca176c":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}}}}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/FM.ipynb b/chapter5/colab/FM.ipynb index 312befd..1a3e269 100644 --- a/chapter5/colab/FM.ipynb +++ b/chapter5/colab/FM.ipynb @@ -1,2060 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "44c20b2f", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/FM.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "975827da", - "metadata": {}, - "source": [ - "# Factorization Machiens" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "81944a53", - "metadata": {}, - "outputs": [], - "source": [ - "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", - "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", - "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", - "\n", - "# 데이터 다운로드와 압축 풀기\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "c4cf1864", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", - "import pandas as pd\n", - "\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "d05d29df", - "metadata": {}, - "outputs": [], - "source": [ - "# 인자 수\n", - "factors = 10\n", - "# 평가 수의 임곗값\n", - "minimum_num_rating = 200\n", - "# 에폭 수\n", - "n_epochs = 50\n", - "# 학습률\n", - "lr = 0.01\n", - "# 초기 정보 사용\n", - "use_side_information = False" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "eb06c38c", - "metadata": {}, - "outputs": [], - "source": [ - "# 평갓값이 minimum_num_rating건 이상인 영화를 필터링한다\n", - "filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n", - " lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n", - ")\n", - "\n", - "# 사용자가 평가한 영화\n", - "user_evaluated_movies = (\n", - " filtered_movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", - ")\n" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "e863d3f4", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "from sklearn.feature_extraction import DictVectorizer\n", - "\n", - "# FM용으로 데이터를 정형한다\n", - "train_data_for_fm = []\n", - "y = []\n", - "for i, row in filtered_movielens_train.iterrows():\n", - " x = {\"user_id\": str(row[\"user_id\"]), \"movie_id\": str(row[\"movie_id\"])}\n", - " if use_side_information:\n", - " x[\"tag\"] = row[\"tag\"]\n", - " x[\"user_rating_avg\"] = np.mean(user_evaluated_movies[row[\"user_id\"]])\n", - " train_data_for_fm.append(x)\n", - " y.append(row[\"rating\"])\n", - "\n", - "y = np.array(y)\n", - "\n", - "vectorizer = DictVectorizer()\n", - "X = vectorizer.fit_transform(train_data_for_fm).toarray()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7a88d5ec", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install xlearn" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "511e8f9f", - "metadata": {}, - "outputs": [], - "source": [ - "# colab에서 xlearn을 동작시키기 위한 설정\n", - "# https://github.com/aksnzhy/xlearn/issues/74#issuecomment-580701773\n", - "import os\n", - "os.environ['USER'] = 'test'" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "e7208e9a", - "metadata": {}, - "outputs": [], - "source": [ - "import xlearn as xl\n", - "\n", - "# FM 모델 초기화\n", - "fm_model = xl.FMModel(task=\"reg\", metric=\"rmse\", lr=lr, opt=\"sgd\", k=factors, epoch=n_epochs)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "9b99ec6a", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[32m\u001b[1m----------------------------------------------------------------------------------------------\n", - " _\n", - " | |\n", - " __ _| | ___ __ _ _ __ _ __\n", - " \\ \\/ / | / _ \\/ _` | '__| '_ \\ \n", - " > <| |___| __/ (_| | | | | | |\n", - " /_/\\_\\_____/\\___|\\__,_|_| |_| |_|\n", - "\n", - " xLearn -- 0.40 Version --\n", - "----------------------------------------------------------------------------------------------\n", - "\n", - "\u001b[39m\u001b[0m\u001b[35m\u001b[1m[ WARNING ] Validation file not found, xLearn has already disable early-stopping.\u001b[0m\n", - "\u001b[35m\u001b[1m[ WARNING ] Validation file not found, xLearn has already disable (-x rmse) option.\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mxLearn uses 4 threads for training task.\n", - "\u001b[32m\u001b[1m[ ACTION ] Read Problem ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mFirst check if the text file has been already converted to binary format.\n", - "\u001b[32m[------------] \u001b[0mBinary file (/var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmp7f5xyv68.bin) NOT found. Convert text file to binary file.\n", - "\u001b[32m[------------] \u001b[0mNumber of Feature: 1061\n", - "\u001b[32m[------------] \u001b[0mTime cost for reading problem: 0.01 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Initialize model ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mModel size: 53.89 KB\n", - "\u001b[32m[------------] \u001b[0mTime cost for model initial: 0.00 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Start to train ...\u001b[0m\n", - "\u001b[32m[------------]\u001b[0m Epoch Train mse_loss Time cost (sec)\n", - "\u001b[32m[ \u001b[0m 2%\u001b[32m ]\u001b[0m 1 0.454755 0.00\n", - "\u001b[32m[ \u001b[0m 4%\u001b[32m ]\u001b[0m 2 0.393448 0.00\n", - "\u001b[32m[ \u001b[0m 6%\u001b[32m ]\u001b[0m 3 0.377439 0.01\n", - "\u001b[32m[ \u001b[0m 8%\u001b[32m ]\u001b[0m 4 0.368265 0.00\n", - "\u001b[32m[ \u001b[0m 10%\u001b[32m ]\u001b[0m 5 0.361691 0.01\n", - "\u001b[32m[ \u001b[0m 12%\u001b[32m ]\u001b[0m 6 0.357060 0.00\n", - "\u001b[32m[ \u001b[0m 14%\u001b[32m ]\u001b[0m 7 0.353435 0.00\n", - "\u001b[32m[ \u001b[0m 16%\u001b[32m ]\u001b[0m 8 0.350939 0.00\n", - "\u001b[32m[ \u001b[0m 18%\u001b[32m ]\u001b[0m 9 0.349071 0.01\n", - "\u001b[32m[ \u001b[0m 20%\u001b[32m ]\u001b[0m 10 0.347328 0.00\n", - "\u001b[32m[ \u001b[0m 22%\u001b[32m ]\u001b[0m 11 0.346160 0.01\n", - "\u001b[32m[ \u001b[0m 24%\u001b[32m ]\u001b[0m 12 0.344894 0.00\n", - "\u001b[32m[ \u001b[0m 26%\u001b[32m ]\u001b[0m 13 0.344078 0.00\n", - "\u001b[32m[ \u001b[0m 28%\u001b[32m ]\u001b[0m 14 0.343410 0.00\n", - "\u001b[32m[ \u001b[0m 30%\u001b[32m ]\u001b[0m 15 0.342319 0.00\n", - "\u001b[32m[ \u001b[0m 32%\u001b[32m ]\u001b[0m 16 0.342305 0.01\n", - "\u001b[32m[ \u001b[0m 34%\u001b[32m ]\u001b[0m 17 0.341846 0.00\n", - "\u001b[32m[ \u001b[0m 36%\u001b[32m ]\u001b[0m 18 0.341080 0.01\n", - "\u001b[32m[ \u001b[0m 38%\u001b[32m ]\u001b[0m 19 0.340690 0.01\n", - "\u001b[32m[ \u001b[0m 40%\u001b[32m ]\u001b[0m 20 0.340196 0.01\n", - "\u001b[32m[ \u001b[0m 42%\u001b[32m ]\u001b[0m 21 0.340085 0.00\n", - "\u001b[32m[ \u001b[0m 44%\u001b[32m ]\u001b[0m 22 0.339978 0.01\n", - "\u001b[32m[ \u001b[0m 46%\u001b[32m ]\u001b[0m 23 0.340111 0.01\n", - "\u001b[32m[ \u001b[0m 48%\u001b[32m ]\u001b[0m 24 0.339314 0.01\n", - "\u001b[32m[ \u001b[0m 50%\u001b[32m ]\u001b[0m 25 0.339661 0.01\n", - "\u001b[32m[ \u001b[0m 52%\u001b[32m ]\u001b[0m 26 0.338927 0.00\n", - "\u001b[32m[ \u001b[0m 54%\u001b[32m ]\u001b[0m 27 0.338808 0.01\n", - "\u001b[32m[ \u001b[0m 56%\u001b[32m ]\u001b[0m 28 0.338580 0.01\n", - "\u001b[32m[ \u001b[0m 57%\u001b[32m ]\u001b[0m 29 0.338881 0.00\n", - "\u001b[32m[ \u001b[0m 60%\u001b[32m ]\u001b[0m 30 0.338765 0.01\n", - "\u001b[32m[ \u001b[0m 62%\u001b[32m ]\u001b[0m 31 0.338443 0.00\n", - "\u001b[32m[ \u001b[0m 64%\u001b[32m ]\u001b[0m 32 0.338499 0.01\n", - "\u001b[32m[ \u001b[0m 66%\u001b[32m ]\u001b[0m 33 0.338384 0.01\n", - "\u001b[32m[ \u001b[0m 68%\u001b[32m ]\u001b[0m 34 0.337989 0.00\n", - "\u001b[32m[ \u001b[0m 70%\u001b[32m ]\u001b[0m 35 0.337732 0.01\n", - "\u001b[32m[ \u001b[0m 72%\u001b[32m ]\u001b[0m 36 0.337837 0.00\n", - "\u001b[32m[ \u001b[0m 74%\u001b[32m ]\u001b[0m 37 0.338007 0.01\n", - "\u001b[32m[ \u001b[0m 76%\u001b[32m ]\u001b[0m 38 0.337921 0.01\n", - "\u001b[32m[ \u001b[0m 78%\u001b[32m ]\u001b[0m 39 0.337922 0.01\n", - "\u001b[32m[ \u001b[0m 80%\u001b[32m ]\u001b[0m 40 0.337580 0.00\n", - "\u001b[32m[ \u001b[0m 82%\u001b[32m ]\u001b[0m 41 0.337862 0.01\n", - "\u001b[32m[ \u001b[0m 84%\u001b[32m ]\u001b[0m 42 0.337982 0.00\n", - "\u001b[32m[ \u001b[0m 86%\u001b[32m ]\u001b[0m 43 0.336908 0.01\n", - "\u001b[32m[ \u001b[0m 88%\u001b[32m ]\u001b[0m 44 0.337312 0.01\n", - "\u001b[32m[ \u001b[0m 90%\u001b[32m ]\u001b[0m 45 0.337479 0.00\n", - "\u001b[32m[ \u001b[0m 92%\u001b[32m ]\u001b[0m 46 0.337478 0.01\n", - "\u001b[32m[ \u001b[0m 94%\u001b[32m ]\u001b[0m 47 0.337445 0.00\n", - "\u001b[32m[ \u001b[0m 96%\u001b[32m ]\u001b[0m 48 0.337600 0.01\n", - "\u001b[32m[ \u001b[0m 98%\u001b[32m ]\u001b[0m 49 0.337286 0.00\n", - "\u001b[32m[ \u001b[0m 100%\u001b[32m ]\u001b[0m 50 0.337232 0.00\n", - "\u001b[32m\u001b[1m[ ACTION ] Start to save model ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mModel file: /var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmpvpvqm4eg\n", - "\u001b[32m[------------] \u001b[0mTime cost for saving model: 0.00 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Start to save txt model ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mTXT Model file: /var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmpl21ck8hl\n", - "\u001b[32m[------------] \u001b[0mTime cost for saving txt model: 0.01 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Finish training\u001b[0m\n", - "\u001b[32m\u001b[1m[ ACTION ] Clear the xLearn environment ...\u001b[0m\n", - "\u001b[32m\u001b[1m[------------] Total time cost: 0.33 (sec)\u001b[0m\n" - ] - } - ], - "source": [ - "# FM 모델 학습\n", - "fm_model.fit(X, y, is_lock_free=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "3d4a06ff", - "metadata": {}, - "outputs": [], - "source": [ - "# 행렬의 인덱스와 영화/사용자를 대응시킨 딕셔너리를 작성한다\n", - "unique_user_ids = sorted(filtered_movielens_train.user_id.unique())\n", - "unique_movie_ids = sorted(filtered_movielens_train.movie_id.unique())\n", - "user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n", - "movie_id2index = dict(zip(unique_movie_ids, range(len(unique_movie_ids))))" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "3cd06940", - "metadata": {}, - "outputs": [], - "source": [ - "# 예측용 데이터를 준비한다\n", - "test_data_for_fm = []\n", - "for user_id in unique_user_ids:\n", - " for movie_id in unique_movie_ids:\n", - " x = {\"user_id\": str(user_id), \"movie_id\": str(movie_id)}\n", - " if use_side_information:\n", - " tag = dataset.item_content[dataset.item_content.movie_id == movie_id].tag.tolist()[0]\n", - " x[\"tag\"] = tag\n", - " x[\"user_rating_avg\"] = np.mean(user_evaluated_movies[row[\"user_id\"]])\n", - " test_data_for_fm.append(x)\n", - "\n", - "X_test = vectorizer.transform(test_data_for_fm).toarray()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "8ed3df1d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[32m\u001b[1m----------------------------------------------------------------------------------------------\n", - " _\n", - " | |\n", - " __ _| | ___ __ _ _ __ _ __\n", - " \\ \\/ / | / _ \\/ _` | '__| '_ \\ \n", - " > <| |___| __/ (_| | | | | | |\n", - " /_/\\_\\_____/\\___|\\__,_|_| |_| |_|\n", - "\n", - " xLearn -- 0.40 Version --\n", - "----------------------------------------------------------------------------------------------\n", - "\n", - "\u001b[39m\u001b[0m\u001b[32m[------------] \u001b[0mxLearn uses 8 threads for prediction task.\n", - "\u001b[32m\u001b[1m[ ACTION ] Load model ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mLoad model from /var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmpvpvqm4eg\n", - "\u001b[32m[------------] \u001b[0mLoss function: squared\n", - "\u001b[32m[------------] \u001b[0mScore function: fm\n", - "\u001b[32m[------------] \u001b[0mNumber of Feature: 1061\n", - "\u001b[32m[------------] \u001b[0mNumber of K: 10\n", - "\u001b[32m[------------] \u001b[0mTime cost for loading model: 0.00 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Read Problem ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mFirst check if the text file has been already converted to binary format.\n", - "\u001b[32m[------------] \u001b[0mBinary file (/var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmphoetn82z.bin) NOT found. Convert text file to binary file.\n", - "\u001b[32m[------------] \u001b[0mTime cost for reading problem: 0.07 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Start to predict ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mThe test loss is: 6.944547\n", - "\u001b[32m\u001b[1m[ ACTION ] Clear the xLearn environment ...\u001b[0m\n", - "\u001b[32m\u001b[1m[------------] Total time cost: 0.12 (sec)\u001b[0m\n" - ] - } - ], - "source": [ - "# 예측한다\n", - "y_pred = fm_model.predict(X_test)\n", - "pred_matrix = y_pred.reshape(len(unique_user_ids), len(unique_movie_ids))" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "f37b05f0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rankrating_pred
011225.0838985046Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...1.03.574791
52171223.0844429650Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...5.03.574791
338921224.0850079961Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...5.03.574791
46591853.0838984807Net, The (1995)[Action, Crime, Thriller][computers, computers, internet, irwin winkler...1.03.574791
47621855.0834874598Net, The (1995)[Action, Crime, Thriller][computers, computers, internet, irwin winkler...5.03.574791
..............................
13265784950974.01013470449Bright Eyes (1934)[Comedy, Drama]NaN2.03.574791
1326609516384.0849628182Jack and Sarah (1995)[Romance][babies, ian mckellen, baby, british]5.03.574791
132717100513845.0897254984Substance of Fire, The (1996)[Drama]NaN1.03.574791
132731934561.0945901052Kids of the Round Table (1995)[Adventure, Children, Fantasy]NaN5.03.574791
1328041018649973.01230668562War of the Worlds (2005)[Action]NaN1.03.574791
\n", - "

5000 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp title \\\n", - "0 1 122 5.0 838985046 Boomerang (1992) \n", - "5 217 122 3.0 844429650 Boomerang (1992) \n", - "33 892 122 4.0 850079961 Boomerang (1992) \n", - "46 59 185 3.0 838984807 Net, The (1995) \n", - "47 62 185 5.0 834874598 Net, The (1995) \n", - "... ... ... ... ... ... \n", - "132657 849 5097 4.0 1013470449 Bright Eyes (1934) \n", - "132660 951 638 4.0 849628182 Jack and Sarah (1995) \n", - "132717 1005 1384 5.0 897254984 Substance of Fire, The (1996) \n", - "132731 934 56 1.0 945901052 Kids of the Round Table (1995) \n", - "132804 1018 64997 3.0 1230668562 War of the Worlds (2005) \n", - "\n", - " genre \\\n", - "0 [Comedy, Romance] \n", - "5 [Comedy, Romance] \n", - "33 [Comedy, Romance] \n", - "46 [Action, Crime, Thriller] \n", - "47 [Action, Crime, Thriller] \n", - "... ... \n", - "132657 [Comedy, Drama] \n", - "132660 [Romance] \n", - "132717 [Drama] \n", - "132731 [Adventure, Children, Fantasy] \n", - "132804 [Action] \n", - "\n", - " tag timestamp_rank \\\n", - "0 [dating, nudity (topless - brief), can't remem... 1.0 \n", - "5 [dating, nudity (topless - brief), can't remem... 5.0 \n", - "33 [dating, nudity (topless - brief), can't remem... 5.0 \n", - "46 [computers, computers, internet, irwin winkler... 1.0 \n", - "47 [computers, computers, internet, irwin winkler... 5.0 \n", - "... ... ... \n", - "132657 NaN 2.0 \n", - "132660 [babies, ian mckellen, baby, british] 5.0 \n", - "132717 NaN 1.0 \n", - "132731 NaN 5.0 \n", - "132804 NaN 1.0 \n", - "\n", - " rating_pred \n", - "0 3.574791 \n", - "5 3.574791 \n", - "33 3.574791 \n", - "46 3.574791 \n", - "47 3.574791 \n", - "... ... \n", - "132657 3.574791 \n", - "132660 3.574791 \n", - "132717 3.574791 \n", - "132731 3.574791 \n", - "132804 3.574791 \n", - "\n", - "[5000 rows x 9 columns]" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 학습용에 나오지 않은 사용자나 영화의 예측 평가는 평균 평갓값으로 한다\n", - "average_score = movielens_train.rating.mean()\n", - "movie_rating_predict = movielens_test.copy()\n", - "pred_results = []\n", - "for i, row in movielens_test.iterrows():\n", - " user_id = row[\"user_id\"]\n", - " if user_id not in user_id2index or row[\"movie_id\"] not in movie_id2index:\n", - " pred_results.append(average_score)\n", - " continue\n", - " user_index = user_id2index[row[\"user_id\"]]\n", - " movie_index = movie_id2index[row[\"movie_id\"]]\n", - " pred_score = pred_matrix[user_index, movie_index]\n", - " pred_results.append(pred_score)\n", - "movie_rating_predict[\"rating_pred\"] = pred_results\n", - "movie_rating_predict" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "2847fe2c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "defaultdict(list,\n", - " {1: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 2: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 3: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 4: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 5: [318, 50, 260, 1193, 2959, 2858, 2571, 1136, 1198, 1196],\n", - " 6: [318, 50, 527, 2959, 593, 541, 2858, 1136, 1617, 296],\n", - " 7: [318, 527, 858, 1193, 2959, 2858, 2571, 1136, 1198, 296],\n", - " 8: [318, 858, 1193, 296, 110, 356, 1, 150, 2396, 2716],\n", - " 9: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2571],\n", - " 10: [318, 50, 858, 260, 2959, 2858, 2571, 1136, 1198, 1196],\n", - " 11: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 1136],\n", - " 12: [318, 50, 527, 858, 260, 1193, 593, 541, 2571, 1136],\n", - " 13: [318, 527, 858, 260, 2959, 593, 541, 2858, 2571, 1136],\n", - " 14: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 16: [318, 50, 527, 858, 1193, 2959, 593, 2858, 2571, 1136],\n", - " 17: [318, 527, 2959, 541, 2858, 2571, 1136, 1198, 1196, 1617],\n", - " 18: [50, 858, 1193, 1617, 1197, 1200, 588, 595, 21, 141],\n", - " 19: [2959, 593, 2858, 2571, 1617, 296, 1214, 2762, 2028, 47],\n", - " 22: [318, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 23: [318, 858, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 24: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 26: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 27: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 28: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 30: [50, 858, 2959, 541, 2858, 2571, 1617, 296, 1197, 1214],\n", - " 33: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 34: [1193, 2858, 1617, 1214, 1036, 1291, 2396, 1270, 2716, 1097],\n", - " 35: [318, 50, 527, 858, 260, 1193, 593, 541, 1136, 1198],\n", - " 36: [318, 527, 1193, 541, 1136, 1197, 1214, 47, 110, 1200],\n", - " 37: [527, 858, 260, 1193, 541, 2858, 1198, 1196, 1617, 608],\n", - " 38: [50, 527, 858, 260, 1193, 541, 2858, 1136, 1198, 1196],\n", - " 40: [858, 260, 2959, 541, 1136, 1198, 1197, 1214, 2762, 2028],\n", - " 41: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2571],\n", - " 42: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 43: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 44: [858, 260, 1193, 2959, 593, 541, 2571, 1198, 1196, 1617],\n", - " 45: [318, 527, 1193, 2959, 541, 1136, 296, 1197, 1214, 47],\n", - " 46: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 47: [527, 1193, 1617, 608, 1197, 47, 356, 457, 1265, 1097],\n", - " 50: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 51: [318, 50, 2959, 541, 2571, 1136, 1198, 1196, 1197, 47],\n", - " 52: [318, 527, 858, 260, 2959, 593, 541, 2858, 2571, 1136],\n", - " 53: [318, 858, 260, 1193, 2959, 593, 541, 2571, 1136, 1198],\n", - " 54: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 55: [318, 50, 527, 858, 260, 2959, 593, 541, 2858, 2571],\n", - " 56: [318, 2959, 608, 1197, 2762, 47, 1200, 1240, 457, 150],\n", - " 57: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 58: [858, 1193, 2959, 1136, 1196, 608, 1214, 47, 1200, 3578],\n", - " 59: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 60: [2959, 2858, 2571, 1198, 1196, 1617, 1197, 2762, 2028, 110],\n", - " 61: [50, 858, 260, 2959, 541, 2571, 1136, 1198, 1196, 1197],\n", - " 62: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 63: [318, 50, 260, 2959, 593, 541, 2571, 1136, 1198, 1196],\n", - " 64: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 65: [50, 527, 858, 1193, 2959, 593, 541, 1617, 296, 608],\n", - " 66: [318, 50, 527, 858, 260, 1193, 593, 541, 2571, 1136],\n", - " 67: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 68: [318, 50, 527, 858, 2959, 593, 1136, 1198, 1196, 1197],\n", - " 69: [50, 858, 260, 2959, 593, 541, 2571, 1136, 1198, 1196],\n", - " 70: [50, 260, 2959, 593, 2858, 2571, 1136, 1196, 296, 608],\n", - " 71: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 72: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 73: [527, 1193, 1136, 1617, 1197, 1214, 110, 3578, 1210, 1240],\n", - " 75: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 76: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 77: [318, 50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 78: [50, 593, 47, 3578, 1036, 1291, 457, 1, 364, 733],\n", - " 79: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 80: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 81: [318, 50, 527, 858, 260, 593, 2858, 1136, 1198, 1196],\n", - " 82: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 83: [318, 50, 527, 2959, 593, 2858, 2571, 1617, 296, 2762],\n", - " 84: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 85: [318, 858, 260, 1193, 2959, 541, 1136, 1198, 1196, 1617],\n", - " 86: [318, 50, 527, 260, 1193, 2959, 593, 541, 2858, 1136],\n", - " 87: [318, 50, 527, 858, 260, 1193, 593, 541, 2571, 1136],\n", - " 88: [318, 50, 527, 858, 1193, 593, 541, 1617, 296, 608],\n", - " 89: [527, 858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 90: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 91: [858, 2959, 593, 1617, 296, 2762, 110, 3578, 457, 150],\n", - " 92: [50, 858, 1193, 2959, 593, 541, 1136, 1617, 296, 1197],\n", - " 94: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 95: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 96: [318, 2959, 47, 356, 150, 1270, 364, 733, 1073, 588],\n", - " 97: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 98: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 99: [50, 260, 2959, 593, 2858, 2571, 1198, 1196, 608, 1197],\n", - " 100: [1193, 2959, 541, 1136, 1617, 1197, 1214, 2762, 1200, 3578],\n", - " 101: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 102: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 103: [318, 858, 1193, 2959, 593, 2858, 2571, 1617, 1197, 1214],\n", - " 104: [50, 527, 2959, 541, 2858, 1136, 296, 608, 2762, 2028],\n", - " 105: [318, 50, 527, 858, 2959, 593, 541, 2858, 2571, 1136],\n", - " 106: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 1136],\n", - " 107: [318, 50, 1193, 2959, 593, 2858, 1136, 1198, 296, 608],\n", - " 110: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 111: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 112: [2959, 2858, 2571, 1617, 2762, 2028, 3578, 356, 2396, 589],\n", - " 113: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 114: [318, 50, 527, 2959, 593, 541, 2858, 2571, 1136, 1198],\n", - " 115: [50, 858, 260, 2959, 593, 541, 2571, 1198, 1196, 1617],\n", - " 116: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 117: [318, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 118: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 119: [50, 527, 260, 1193, 2959, 541, 2858, 2571, 1136, 1196],\n", - " 120: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 121: [260, 2959, 2858, 1214, 2762, 2028, 47, 110, 3578, 1036],\n", - " 122: [541, 1617, 2028, 47, 1, 32, 364, 595, 349, 539],\n", - " 123: [318, 50, 858, 2959, 593, 541, 2571, 1136, 1198, 1196],\n", - " 124: [318, 50, 527, 858, 2959, 593, 2858, 1617, 296, 1197],\n", - " 125: [1617, 1197, 357, 10, 329, 153],\n", - " 126: [357, 21, 329],\n", - " 128: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 129: [318, 50, 527, 858, 1193, 593, 541, 2571, 1136, 1198],\n", - " 130: [318, 260, 2959, 2571, 1196, 1617, 1197, 1214, 2762, 2028],\n", - " 131: [318, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 132: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 134: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 135: [318, 50, 527, 1193, 2959, 2858, 2571, 1617, 608, 2762],\n", - " 136: [50, 527, 260, 2959, 593, 541, 2858, 2571, 1196, 1617],\n", - " 137: [858, 260, 1193, 541, 1136, 1617, 608, 1197, 1214, 110],\n", - " 138: [527, 858, 1193, 608, 1197, 1291, 457, 1, 150, 2396],\n", - " 139: [50, 858, 1193, 1214, 1200, 1291, 457, 150, 2396, 34],\n", - " 140: [858, 260, 2959, 541, 2571, 1136, 1198, 1196, 1617, 296],\n", - " 141: [318, 50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 142: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 143: [50, 541, 1617, 1036, 1240, 589, 349, 253, 165, 587],\n", - " 144: [1193, 1197, 2396, 1073, 590, 595, 349, 539, 587, 39],\n", - " 145: [318, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 148: [318, 527, 858, 1193, 2959, 593, 2858, 2571, 1136, 1198],\n", - " 149: [318, 527, 260, 1193, 593, 2571, 1136, 1197, 2762, 2028],\n", - " 150: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 151: [858, 1193, 2959, 593, 541, 2858, 1198, 1617, 1197, 1214],\n", - " 152: [527, 1193, 2959, 2858, 1136, 296, 608, 1197, 1, 150],\n", - " 153: [318, 50, 1193, 593, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 154: [318, 527, 858, 2858, 1136, 1617, 1197, 2028, 3578, 2396],\n", - " 155: [527, 608, 1197, 1200, 1291, 2396, 364, 733, 588, 590],\n", - " 156: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 157: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 158: [318, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 159: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 160: [318, 50, 527, 1193, 2959, 593, 541, 1136, 1617, 296],\n", - " 161: [858, 1193, 1617, 2028, 1036, 356, 457, 150, 32, 2396],\n", - " 162: [318, 50, 1193, 593, 541, 1617, 608, 1197, 1200, 1036],\n", - " 163: [318, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 164: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 165: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 166: [318, 50, 527, 858, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 167: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 168: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 169: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2571],\n", - " 170: [527, 858, 260, 1193, 593, 541, 1198, 1196, 1617, 608],\n", - " 171: [527, 858, 260, 1193, 593, 541, 2571, 1136, 1198, 1196],\n", - " 172: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 173: [2959, 541, 2858, 2571, 1136, 1617, 1197, 2762, 2028, 110],\n", - " 174: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1196],\n", - " 175: [1291, 34, 1073, 141, 780, 165, 10, 2683, 316, 329],\n", - " 176: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 177: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 178: [50, 858, 2959, 541, 2858, 2571, 1198, 1617, 296, 608],\n", - " 179: [318, 527, 2959, 593, 2858, 1136, 2762, 47, 1291, 356],\n", - " 180: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 182: [260, 541, 1198, 1214, 47, 1200, 1210, 1036, 1240, 1291],\n", - " 183: [50, 858, 2959, 541, 2858, 2571, 1617, 296, 608, 1197],\n", - " 184: [318, 527, 858, 260, 1193, 593, 541, 2858, 2571, 1136],\n", - " 185: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 186: [318, 527, 858, 1193, 2959, 2858, 1136, 1196, 296, 1197],\n", - " 187: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 188: [318, 50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 189: [318, 50, 527, 858, 1193, 2959, 2858, 2571, 1136, 1196],\n", - " 190: [318, 50, 527, 1193, 2858, 1617, 608, 47, 457, 364],\n", - " 192: [318, 260, 1198, 1196, 1197, 2762, 2028, 110, 1200, 1210],\n", - " 193: [858, 1193, 2959, 2858, 2571, 1136, 1198, 1196, 1617, 608],\n", - " 194: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 195: [318, 50, 260, 2959, 593, 541, 2571, 1136, 1198, 1196],\n", - " 196: [50, 1193, 541, 2858, 1617, 2762, 47, 1200, 3578, 32],\n", - " 197: [318, 50, 260, 2959, 593, 541, 2858, 2571, 1198, 1196],\n", - " 198: [1198, 1291, 457, 357, 480, 349, 539, 25, 21, 141],\n", - " 199: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 200: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 201: [318, 260, 1193, 2959, 541, 2571, 1136, 1198, 1196, 1197],\n", - " 202: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 203: [527, 858, 1193, 2959, 2858, 2571, 2762, 2028, 3578, 2396],\n", - " 204: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 205: [318, 50, 527, 2959, 2858, 2571, 1198, 1196, 1617, 296],\n", - " 206: [318, 50, 858, 260, 1193, 2959, 2858, 1136, 1198, 296],\n", - " 207: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 208: [527, 858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 209: [318, 50, 527, 858, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 210: [50, 527, 858, 260, 1193, 2959, 1136, 1198, 1196, 1617],\n", - " 211: [318, 527, 1193, 541, 2571, 1136, 296, 2762, 47, 3578],\n", - " 212: [2858, 110, 3578, 1036, 2396, 364, 1073, 25, 141, 253],\n", - " 213: [318, 858, 260, 1193, 2959, 541, 1136, 1198, 1197, 110],\n", - " 214: [318, 1193, 2959, 541, 2858, 1214, 2028, 1200, 32, 349],\n", - " 215: [527, 1073, 590, 539, 253, 2683, 231],\n", - " 216: [527, 858, 2959, 1617, 296, 608, 1214, 2028, 1200, 3578],\n", - " 217: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 218: [50, 858, 260, 1193, 2959, 541, 2571, 1136, 1198, 1196],\n", - " 219: [318, 50, 858, 593, 541, 2571, 1136, 1198, 1196, 1617],\n", - " 220: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 221: [1193, 2959, 541, 1136, 1617, 608, 1197, 1214, 2762, 1200],\n", - " 222: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 223: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 224: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 225: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 226: [527, 1193, 2959, 2858, 1, 150, 2396, 364, 34, 1097],\n", - " 227: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 228: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 229: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 230: [318, 858, 1193, 2571, 1198, 2762, 47, 1210, 1036, 1240],\n", - " 231: [318, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 232: [1193, 2959, 2858, 2571, 1136, 1617, 1197, 2762, 2028, 3578],\n", - " 234: [318, 858, 260, 1193, 593, 541, 1136, 1198, 1196, 296],\n", - " 235: [527, 1136, 1196, 608, 1197, 1214, 2762, 2028, 110, 1200],\n", - " 236: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 237: [318, 50, 527, 858, 2959, 541, 2858, 1136, 608, 2762],\n", - " 238: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2571],\n", - " 239: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 241: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 242: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 243: [318, 50, 527, 1193, 593, 541, 1136, 1617, 296, 1197],\n", - " 244: [318, 260, 2959, 2571, 1198, 1196, 1617, 296, 2762, 2028],\n", - " 245: [318, 50, 527, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 246: [318, 50, 527, 260, 1193, 2959, 593, 541, 2571, 1136],\n", - " 247: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 248: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 249: [527, 858, 260, 1193, 2858, 1617, 110, 1210, 457, 1],\n", - " 250: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 251: [318, 50, 527, 1193, 2959, 2858, 2571, 1136, 1617, 1197],\n", - " 252: [318, 50, 858, 2959, 593, 541, 2571, 1198, 1196, 1617],\n", - " 253: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 1136],\n", - " 254: [1198, 1617, 608, 1197, 110, 1036, 1291, 457, 1, 150],\n", - " 255: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 256: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 257: [318, 50, 527, 1193, 2959, 593, 541, 2858, 1136, 1196],\n", - " 258: [318, 50, 527, 858, 2959, 593, 541, 2858, 2571, 1136],\n", - " 259: [318, 858, 1193, 541, 110, 3578, 1036, 1240, 1, 589],\n", - " 260: [318, 50, 527, 2959, 2858, 2571, 1617, 1197, 2762, 2028],\n", - " 261: [318, 50, 527, 858, 260, 2959, 593, 541, 2858, 1136],\n", - " 262: [1193, 541, 2858, 1136, 1214, 1200, 1, 150, 32, 1270],\n", - " 263: [1617, 2028, 356, 150, 733, 34, 1073, 357, 595, 539],\n", - " 264: [318, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 265: [318, 50, 527, 260, 1193, 2959, 593, 541, 2858, 1136],\n", - " 266: [318, 50, 527, 858, 1193, 2959, 593, 541, 1136, 1198],\n", - " 267: [1197, 2396, 2716, 1265, 364, 34, 1073, 588, 595, 349],\n", - " 268: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 269: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 270: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 271: [318, 50, 527, 858, 1193, 2959, 593, 2858, 2571, 1136],\n", - " 272: [318, 260, 1193, 593, 541, 2571, 1136, 1198, 1196, 1617],\n", - " 273: [858, 1193, 2959, 541, 1136, 1198, 1196, 1617, 296, 608],\n", - " 274: [318, 50, 527, 858, 1193, 2959, 593, 2571, 1198, 1617],\n", - " 275: [527, 858, 260, 2959, 541, 1136, 1198, 1197, 1214, 47],\n", - " 276: [110, 2716, 208],\n", - " 277: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 278: [318, 50, 858, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 279: [50, 858, 1193, 541, 2858, 608, 1197, 457, 150, 2396],\n", - " 280: [318, 50, 858, 260, 1193, 2959, 593, 541, 1136, 1198],\n", - " 281: [858, 260, 1193, 2959, 2858, 2571, 1136, 1198, 1196, 1617],\n", - " 282: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 285: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 286: [318, 527, 858, 1193, 1136, 1617, 296, 608, 1197, 2762],\n", - " 287: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 289: [541, 1198, 1240, 1291, 589, 364, 733, 1073, 588, 292],\n", - " 290: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 291: [318, 50, 260, 2959, 593, 541, 2858, 2571, 1136, 1198],\n", - " 292: [527, 1617, 110, 1036, 457, 2396, 34, 357, 590, 595],\n", - " 293: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 294: [527, 858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 295: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 296: [260, 1136, 1198, 1196, 1617, 608, 1197, 110, 1210, 1291],\n", - " 297: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 298: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 300: [2959, 593, 2858, 1136, 1198, 1197, 47, 3578, 1036, 1291],\n", - " 301: [1193, 2959, 1617, 1197, 1214, 2028, 47, 110, 1200, 3578],\n", - " 302: [858, 593, 541, 1198, 1214, 47, 1200, 1036, 356, 457],\n", - " 303: [50, 1193, 1617, 1197, 1036, 457, 1, 2396, 1270, 364],\n", - " 304: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 305: [318, 50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 306: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 307: [318, 50, 527, 858, 1193, 2959, 593, 2858, 1136, 1617],\n", - " 308: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 309: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 310: [1193, 2959, 47, 3578, 1210, 150, 588, 141, 10, 39],\n", - " 311: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 312: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 313: [318, 50, 527, 858, 260, 2959, 593, 541, 2858, 2571],\n", - " 314: [50, 2959, 2571, 608, 1197, 1214, 47, 1200, 1036, 1291],\n", - " 315: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 316: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 317: [318, 50, 527, 858, 260, 2959, 593, 2858, 2571, 1136],\n", - " 318: [1200, 32, 25, 380, 454, 316, 288, 329, 434, 344],\n", - " 319: [318, 50, 527, 858, 1193, 2959, 2858, 1136, 1198, 1617],\n", - " 320: [318, 50, 858, 1193, 541, 1198, 608, 1197, 1200, 1291],\n", - " 321: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 322: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 323: [318, 50, 2959, 541, 2858, 2571, 2762, 2028, 47, 110],\n", - " 324: [318, 50, 527, 858, 260, 1193, 593, 2858, 1136, 1198],\n", - " 325: [527, 260, 2959, 593, 541, 2858, 2571, 1196, 1617, 296],\n", - " 326: [318, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 327: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 328: [527, 858, 1193, 2959, 593, 1136, 1198, 1617, 296, 608],\n", - " 329: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 330: [318, 50, 858, 1193, 593, 541, 1136, 1198, 1617, 608],\n", - " 331: [527, 858, 260, 1193, 593, 541, 1136, 1198, 1196, 1617],\n", - " 332: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 333: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 334: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 1617],\n", - " 335: [318, 50, 527, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 336: [318, 50, 527, 858, 1193, 2959, 541, 2858, 1136, 1198],\n", - " 337: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 338: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 339: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 340: [858, 1193, 2959, 2858, 2571, 1617, 2762, 2028, 3578, 1],\n", - " 341: [50, 1193, 541, 1136, 608, 1197, 2762, 2028, 47, 3578],\n", - " 342: [318, 50, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 343: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 344: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 345: [318, 50, 527, 858, 593, 541, 1617, 608, 1214, 47],\n", - " 346: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2571],\n", - " 347: [318, 527, 858, 1193, 2959, 593, 2858, 1136, 1198, 296],\n", - " 348: [260, 1136, 1196, 1197, 1210, 2396, 1265, 34, 1073, 357],\n", - " 349: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 350: [527, 858, 1193, 2959, 541, 2858, 2571, 1198, 1196, 1617],\n", - " 351: [2959, 541, 2762, 2028, 47, 1200, 3578, 1240, 1291, 32],\n", - " 352: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 353: [318, 527, 858, 260, 1193, 2858, 1136, 1198, 1617, 608],\n", - " 354: [50, 527, 260, 1193, 541, 1136, 1198, 1196, 1617, 296],\n", - " 355: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 356: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 357: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 1198],\n", - " 358: [50, 527, 858, 1193, 2959, 541, 1136, 1198, 1617, 1197],\n", - " 359: [318, 50, 527, 858, 260, 1193, 593, 541, 1196, 1617],\n", - " 360: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 361: [318, 527, 260, 1193, 2959, 593, 541, 2571, 1136, 1198],\n", - " 362: [858, 1193, 541, 2858, 1136, 1617, 296, 608, 1214, 2028],\n", - " 363: [318, 50, 527, 858, 260, 1193, 593, 541, 2858, 2571],\n", - " 364: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 365: [318, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 366: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 367: [50, 527, 260, 2959, 593, 541, 2858, 2571, 1136, 1198],\n", - " 368: [318, 527, 1193, 593, 2858, 2762, 2028, 2396, 34, 349],\n", - " 369: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 370: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 371: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 372: [318, 50, 527, 858, 260, 1193, 593, 541, 2858, 1136],\n", - " 373: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 375: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 376: [318, 50, 527, 858, 2959, 2858, 1136, 1198, 1196, 608],\n", - " 377: [260, 2959, 593, 1136, 1198, 1617, 608, 1197, 1214, 2762],\n", - " 378: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 379: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 380: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 381: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 382: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 383: [527, 2959, 1136, 1197, 47, 110, 1200, 1210, 1036, 1240],\n", - " 384: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 385: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 386: [50, 1193, 541, 2571, 1136, 1197, 47, 32, 2716, 588],\n", - " 387: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 388: [318, 527, 858, 260, 1193, 2959, 593, 541, 2858, 1136],\n", - " 389: [50, 858, 260, 1193, 541, 1136, 1198, 1196, 296, 608],\n", - " 390: [527, 541, 1197, 1214, 47, 1036, 150, 32, 1270, 2716],\n", - " 391: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 392: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 393: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 394: [527, 1193, 593, 541, 2571, 1136, 1214, 2762, 110, 1200],\n", - " 395: [527, 858, 1193, 2959, 593, 541, 2858, 2571, 1136, 1198],\n", - " 396: [318, 50, 527, 858, 1193, 593, 1136, 1617, 296, 608],\n", - " 397: [50, 260, 541, 1136, 1198, 1196, 1617, 608, 1197, 1214],\n", - " 398: [318, 50, 858, 1193, 2959, 541, 2858, 2571, 1617, 296],\n", - " 399: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 400: [318, 527, 858, 260, 1193, 541, 1136, 1198, 1196, 296],\n", - " 401: [50, 1193, 2959, 2571, 1136, 1196, 1617, 296, 2028, 47],\n", - " 402: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 403: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 404: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 405: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 406: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 407: [318, 527, 1193, 2858, 1196, 1617, 1197, 110, 1210, 2716],\n", - " 409: [318, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 410: [260, 2959, 2858, 2571, 1136, 1617, 296, 2762, 2028, 3578],\n", - " 411: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 412: [50, 527, 260, 1193, 2959, 541, 1136, 1198, 1617, 296],\n", - " 413: [318, 50, 527, 2959, 593, 2571, 1617, 608, 2762, 2028],\n", - " 414: [318, 50, 527, 858, 260, 1193, 541, 1136, 1198, 1196],\n", - " 415: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 416: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 417: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 1136],\n", - " 418: [527, 858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 419: [2959, 1196, 2028, 3578, 1210, 356, 1, 150, 34, 25],\n", - " 420: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 421: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 422: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 424: [50, 858, 2959, 593, 2571, 296, 1197, 1214, 2762, 2028],\n", - " 425: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 426: [1073, 141, 329],\n", - " 427: [1193, 2959, 541, 2858, 1136, 296, 608, 1197, 110, 356],\n", - " 428: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 429: [318, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 431: [527, 858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 432: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 433: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 434: [318, 50, 1136, 296, 1197, 47, 150, 32, 2396, 2716],\n", - " 435: [318, 50, 527, 858, 260, 1193, 593, 2858, 1136, 1198],\n", - " 436: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 437: [858, 1193, 2959, 1198, 2028, 110, 1200, 3578, 1210, 1036],\n", - " 438: [50, 527, 2959, 608, 2028, 47, 150, 1270, 357, 588],\n", - " 439: [318, 50, 858, 260, 2959, 593, 541, 2858, 2571, 1136],\n", - " 440: [260, 541, 1136, 1196, 1617, 3578, 1210, 1240, 1, 589],\n", - " 441: [318, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 443: [50, 527, 858, 260, 1193, 2959, 541, 2571, 1136, 1198],\n", - " 444: [318, 50, 527, 858, 260, 2959, 593, 1136, 1617, 2028],\n", - " 445: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 446: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 447: [858, 1193, 2959, 541, 2858, 1198, 1196, 1214, 2762, 2028],\n", - " 448: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2571],\n", - " 449: [318, 858, 1193, 541, 1136, 1198, 1617, 296, 608, 1214],\n", - " 450: [2959, 1136, 150, 1265, 364, 34, 21, 141, 253, 780],\n", - " 451: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 452: [50, 858, 260, 1193, 2959, 593, 541, 2858, 1136, 1198],\n", - " 453: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 454: [318, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 455: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 456: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 458: [318, 50, 527, 858, 260, 2959, 593, 541, 2571, 1136],\n", - " 459: [318, 50, 858, 1193, 1198, 1617, 608, 1197, 457, 1265],\n", - " 460: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 461: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 462: [527, 858, 2959, 541, 2858, 2571, 1136, 1198, 1196, 1617],\n", - " 463: [2396, 1265, 364, 357, 588, 590, 595, 539, 380, 253],\n", - " 464: [318, 50, 527, 858, 260, 2959, 593, 541, 2858, 2571],\n", - " 465: [260, 541, 2571, 1136, 1198, 1196, 1197, 1214, 2028, 1200],\n", - " 466: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 467: [858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136, 1198],\n", - " 468: [318, 50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 469: [50, 858, 1193, 2959, 1617, 1197, 47, 110, 733, 1073],\n", - " 470: [260, 1193, 1196, 1197, 2028, 110, 3578, 1210, 1036, 1240],\n", - " 471: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 472: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 473: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 474: [318, 50, 527, 858, 1193, 2959, 2858, 1136, 1198, 1617],\n", - " 475: [318, 50, 527, 858, 260, 1193, 593, 541, 2858, 2571],\n", - " 476: [858, 1193, 1197, 1, 150, 1270, 2716, 1265, 34, 1097],\n", - " 477: [2858, 608, 110, 3578, 1240, 356, 457, 1, 150, 32],\n", - " 478: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 479: [858, 260, 541, 1198, 1196, 1197, 47, 3578, 1210, 1036],\n", - " 480: [318, 527, 1193, 1036, 457, 150, 2396, 364, 733, 34],\n", - " 481: [527, 1193, 541, 608, 1197, 2762, 110, 150, 2396, 1073],\n", - " 482: [50, 593, 541, 2858, 1617, 608, 1197, 1214, 2762, 110],\n", - " 483: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 484: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 485: [1136, 1197, 2028, 47, 110, 1210, 1036, 150, 1270, 2716],\n", - " 486: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 487: [527, 858, 260, 1193, 593, 541, 1136, 1198, 1196, 1617],\n", - " 488: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 489: [2959, 593, 541, 2858, 2571, 1198, 1196, 1617, 296, 1197],\n", - " 490: [50, 260, 1193, 2959, 593, 541, 2858, 2571, 1136, 1617],\n", - " 491: [50, 1193, 593, 541, 1136, 1198, 1617, 296, 608, 1214],\n", - " 493: [593, 1136, 1198, 1196, 1214, 1200, 1240, 589, 1265, 733],\n", - " 494: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 495: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 496: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 1136],\n", - " 497: [50, 260, 1193, 2959, 541, 2858, 1136, 1198, 1617, 296],\n", - " 498: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 499: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 500: [50, 858, 260, 1193, 2959, 2858, 2571, 1136, 1198, 1196],\n", - " 501: [318, 50, 527, 858, 2959, 541, 2858, 1617, 296, 2762],\n", - " 502: [318, 50, 527, 858, 260, 1193, 593, 541, 2571, 1136],\n", - " 503: [50, 260, 1193, 1196, 1617, 608, 1197, 1214, 47, 110],\n", - " 504: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 505: [50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136, 1198],\n", - " 506: [2959, 2858, 2571, 1617, 608, 1197, 2762, 2028, 110, 3578],\n", - " 507: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 508: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 509: [318, 260, 1198, 1196, 608, 1197, 1214, 110, 1200, 3578],\n", - " 510: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 511: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 512: [50, 858, 260, 1193, 2959, 593, 541, 2571, 1136, 1198],\n", - " 513: [2959, 47, 110, 3578, 1291, 1, 733, 25, 253, 165],\n", - " 515: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 516: [50, 1193, 608, 1197, 1036, 2396, 364, 1073, 349, 539],\n", - " 517: [527, 858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 518: [50, 858, 2959, 541, 2858, 1136, 1198, 1617, 296, 1197],\n", - " 520: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 521: [527, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 522: [50, 527, 2959, 2858, 2571, 1617, 2762, 2028, 47, 1200],\n", - " 523: [2959, 593, 2858, 2571, 1136, 1198, 1196, 1617, 296, 1197],\n", - " 524: [527, 260, 1193, 593, 1136, 1198, 1196, 1617, 608, 1197],\n", - " 525: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 526: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 527: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 529: [318, 50, 858, 1193, 2959, 593, 2858, 2571, 1136, 1198],\n", - " 530: [527, 858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 531: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 532: [318, 527, 1193, 2959, 593, 541, 1136, 608, 1197, 1214],\n", - " 533: [150, 1097, 349, 21, 380, 165, 10, 2683, 367, 288],\n", - " 534: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 535: [2858, 1617, 1214, 2762, 1200, 1240, 457, 32, 2396, 1270],\n", - " 536: [318, 50, 527, 858, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 537: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 539: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 540: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 541: [318, 858, 1193, 296, 2762, 3578, 150, 364, 357, 595],\n", - " 542: [318, 527, 2959, 593, 541, 2858, 2571, 296, 608, 1197],\n", - " 543: [2028, 21, 10, 288],\n", - " 544: [318, 527, 858, 260, 1193, 593, 541, 2858, 1198, 1617],\n", - " 545: [3578, 2396, 1073, 595, 25, 21, 141, 39, 2683, 288],\n", - " 546: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 547: [318, 50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 548: [50, 527, 858, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 549: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 550: [2959, 593, 2571, 1197, 2028, 47, 110, 1200, 3578, 1036],\n", - " 551: [318, 50, 1193, 2959, 541, 2858, 2571, 1136, 1617, 296],\n", - " 552: [527, 858, 260, 593, 541, 2571, 1198, 1196, 1617, 1197],\n", - " 553: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 554: [50, 858, 260, 541, 2571, 1136, 1196, 1617, 1197, 47],\n", - " 555: [541, 1197, 1214, 1200, 1036, 457, 2396, 364, 34, 1097],\n", - " 556: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 557: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 558: [1193, 541, 2762, 316, 329],\n", - " 559: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 560: [858, 260, 541, 2571, 1198, 1196, 1197, 1214, 2028, 110],\n", - " 561: [318, 50, 527, 858, 1193, 1136, 1198, 1617, 608, 1197],\n", - " 562: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 563: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 564: [527, 2959, 593, 541, 2858, 2571, 1136, 1197, 1214, 2762],\n", - " 565: [318, 50, 527, 260, 2959, 593, 541, 2571, 1196, 1197],\n", - " 567: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 568: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 569: [318, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 570: [50, 858, 1193, 2959, 593, 541, 2858, 2571, 1136, 1198],\n", - " 571: [1193, 2959, 593, 541, 296, 608, 1214, 2762, 110, 356],\n", - " 572: [318, 3578, 1036, 150, 2396, 34, 1097, 357, 588, 590],\n", - " 573: [858, 260, 1193, 2959, 541, 1136, 1198, 1196, 296, 1197],\n", - " 574: [318, 50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 575: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 576: [50, 858, 260, 1193, 2959, 593, 541, 2571, 1136, 1198],\n", - " 577: [527, 260, 1193, 2959, 541, 2858, 2571, 1136, 1617, 1197],\n", - " 578: [318, 50, 527, 1193, 2959, 593, 1617, 1197, 2762, 2028],\n", - " 579: [858, 1193, 1617, 608, 1197, 2028, 110, 1200, 1240, 457],\n", - " 581: [50, 858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 582: [2959, 541, 2858, 2571, 1136, 1197, 2762, 47, 3578, 1036],\n", - " 583: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 584: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 585: [2762, 47, 110, 3578, 733, 253, 597, 292, 288, 344],\n", - " 586: [318, 50, 527, 858, 1193, 2959, 593, 541, 2571, 1136],\n", - " 587: [50, 858, 2959, 541, 2858, 2571, 1198, 1617, 1197, 1214],\n", - " 588: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 589: [318, 2959, 2858, 2571, 1136, 1617, 1197, 2762, 2028, 3578],\n", - " 590: [527, 858, 1193, 2959, 541, 2858, 1136, 1617, 1197, 1214],\n", - " 591: [318, 50, 527, 858, 260, 1193, 2959, 541, 2571, 1198],\n", - " 593: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 594: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 595: [318, 50, 1193, 2959, 1617, 2028, 47, 1200, 3578, 1210],\n", - " 596: [50, 2959, 593, 541, 2571, 296, 1197, 1214, 47, 110],\n", - " 597: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2571],\n", - " 598: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 599: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 600: [318, 50, 527, 260, 1193, 593, 541, 2571, 1198, 1196],\n", - " 601: [50, 858, 2959, 541, 2858, 2571, 1136, 1617, 608, 1214],\n", - " 602: [318, 50, 527, 1193, 2959, 541, 2858, 2571, 1136, 1196],\n", - " 603: [50, 260, 1193, 593, 1198, 1617, 1197, 2762, 47, 3578],\n", - " 604: [1193, 2959, 541, 2858, 2571, 1136, 1198, 1196, 1617, 1197],\n", - " 605: [858, 2959, 593, 2858, 2571, 1617, 1197, 2762, 2028, 3578],\n", - " 606: [318, 50, 527, 1193, 2959, 593, 541, 2858, 1136, 1617],\n", - " 607: [527, 1193, 2959, 541, 2858, 2571, 1136, 1196, 1617, 296],\n", - " 608: [318, 50, 527, 858, 260, 1193, 593, 541, 2858, 2571],\n", - " 609: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 610: [318, 50, 2959, 541, 2858, 2571, 1196, 296, 608, 1197],\n", - " 612: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 613: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 614: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 616: [858, 1193, 541, 1136, 1196, 1617, 1197, 1214, 1200, 1240],\n", - " 617: [318, 858, 1193, 2959, 2858, 2571, 1617, 608, 1214, 2762],\n", - " 618: [858, 260, 1193, 2959, 541, 1136, 1198, 1196, 296, 1197],\n", - " 619: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 620: [318, 50, 527, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 621: [110, 34, 595, 25, 141, 253, 597, 587, 500, 454],\n", - " 622: [50, 527, 858, 1193, 1136, 1617, 608, 1197, 1214, 1200],\n", - " 623: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 624: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 625: [318, 50, 527, 858, 1193, 2959, 541, 2858, 2571, 1198],\n", - " 627: [527, 260, 1193, 2959, 541, 1136, 1198, 1196, 1617, 1197],\n", - " 628: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 629: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 630: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 631: [318, 50, 858, 2959, 541, 2858, 2571, 1136, 1196, 1617],\n", - " 632: [318, 527, 858, 260, 1193, 2959, 541, 1136, 1198, 1617],\n", - " 633: [2762, 1036, 1240, 1291, 1270, 589, 1097, 357, 595, 539],\n", - " 634: [318, 50, 527, 858, 1193, 2959, 2858, 2571, 296, 2762],\n", - " 635: [318, 50, 858, 260, 1193, 2959, 2571, 1136, 1198, 1196],\n", - " 636: [2959, 541, 2858, 608, 1197, 1214, 47, 110, 1200, 1240],\n", - " 637: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 638: [858, 1193, 2959, 593, 2858, 2571, 1136, 1198, 1196, 1617],\n", - " 639: [50, 527, 858, 260, 1193, 541, 2858, 2571, 1136, 1198],\n", - " 640: [50, 527, 260, 1193, 593, 1136, 1617, 296, 608, 1197],\n", - " 641: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 642: [527, 1198, 110, 364, 733, 1073, 588, 595, 349, 141],\n", - " 643: [2959, 2858, 1198, 2762, 47, 3578, 1036, 1291, 1, 150],\n", - " 644: [318, 50, 527, 858, 1193, 2959, 2858, 1136, 1617, 296],\n", - " 645: [50, 858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 646: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 647: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 648: [527, 260, 2959, 2571, 1136, 1198, 296, 1197, 1214, 2762],\n", - " 649: [318, 50, 527, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 650: [527, 2959, 593, 1136, 1617, 296, 2028, 110, 1200, 457],\n", - " 651: [318, 50, 2959, 593, 2571, 1196, 296, 1197, 1214, 2762],\n", - " 652: [318, 50, 858, 260, 2959, 593, 541, 2858, 2571, 1136],\n", - " 653: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 654: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 655: [50, 527, 2959, 593, 2858, 2571, 1617, 2762, 2028, 110],\n", - " 656: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 657: [1136, 1200, 1240, 39, 316, 288, 329],\n", - " 658: [318, 50, 527, 858, 260, 1193, 541, 1136, 1198, 1196],\n", - " 659: [50, 1193, 2959, 1617, 2028, 110, 3578, 1291, 1, 150],\n", - " 660: [858, 260, 1136, 1198, 1196, 1617, 1197, 1214, 110, 1200],\n", - " 661: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 662: [527, 2959, 2571, 1136, 1198, 2762, 47, 1200, 3578, 1036],\n", - " 663: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 664: [318, 50, 527, 858, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 665: [318, 50, 527, 858, 260, 2959, 593, 2571, 1136, 1198],\n", - " 666: [318, 50, 527, 260, 593, 1617, 608, 1197, 2762, 2028],\n", - " 667: [50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136, 296],\n", - " 668: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 669: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 670: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 671: [318, 2959, 2571, 1197, 47, 110, 1200, 3578, 1210, 1036],\n", - " 672: [318, 1193, 541, 1136, 1214, 1200, 1036, 1240, 457, 1270],\n", - " 674: [318, 50, 527, 858, 2959, 2858, 1136, 1198, 1617, 296],\n", - " 675: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 676: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 677: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 678: [2959, 2858, 2571, 1617, 2762, 2028, 47, 3578, 1, 2396],\n", - " 679: [318, 50, 527, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 680: [318, 50, 527, 858, 1193, 2959, 593, 541, 1136, 1198],\n", - " 681: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2571],\n", - " 683: [318, 50, 527, 1193, 2959, 593, 541, 2858, 1136, 1617],\n", - " 684: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 685: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 686: [318, 527, 1193, 2959, 296, 47, 110, 356, 1, 150],\n", - " 688: [318, 1617, 1197, 2028, 457, 1265, 34, 1073, 357, 588],\n", - " 689: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 690: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 691: [50, 858, 1193, 2959, 541, 2858, 1617, 1214, 2762, 47],\n", - " 693: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 694: [318, 50, 527, 858, 2959, 541, 2571, 1136, 1198, 1196],\n", - " 695: [858, 1193, 2959, 541, 2858, 1136, 1196, 1617, 1214, 2762],\n", - " 696: [318, 50, 527, 858, 1193, 2959, 593, 541, 2571, 1136],\n", - " 697: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 698: [858, 260, 541, 608, 356, 457, 1, 150, 2396, 1270],\n", - " 699: [527, 858, 260, 1193, 593, 541, 2571, 1136, 1198, 1196],\n", - " 700: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 701: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 702: [50, 858, 2959, 2858, 2571, 1198, 1617, 1197, 2762, 2028],\n", - " 703: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 704: [318, 527, 858, 1193, 593, 2858, 1136, 1198, 1617, 296],\n", - " 705: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2571],\n", - " 706: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 707: [318, 50, 858, 260, 1193, 541, 2571, 1136, 1198, 1196],\n", - " 708: [318, 527, 1193, 2959, 593, 2858, 1136, 1198, 1196, 1617],\n", - " 709: [318, 50, 527, 1193, 2959, 593, 541, 1136, 296, 608],\n", - " 710: [50, 260, 2959, 593, 541, 2571, 1136, 1196, 1197, 1214],\n", - " 711: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 712: [50, 858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 714: [1193, 593, 541, 1196, 1214, 47, 1200, 1210, 1036, 1],\n", - " 715: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 716: [858, 1193, 1136, 110, 1036, 150, 733, 1073, 357, 590],\n", - " 718: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 719: [858, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196, 1617],\n", - " 720: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 721: [50, 527, 858, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 723: [50, 858, 260, 593, 2858, 1198, 1196, 1617, 296, 2028],\n", - " 724: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 725: [318, 50, 527, 858, 260, 1193, 593, 541, 1136, 1198],\n", - " 726: [318, 50, 260, 1193, 2959, 541, 2858, 2571, 1136, 296],\n", - " 727: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 728: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 729: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 730: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 731: [50, 2959, 2858, 1198, 1617, 47, 3578, 1291, 457, 1],\n", - " 732: [318, 50, 527, 858, 260, 2959, 593, 541, 2571, 1136],\n", - " 733: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 734: [318, 527, 858, 1193, 2959, 541, 2858, 2571, 1136, 1617],\n", - " 735: [318, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 736: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 737: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 738: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 739: [318, 527, 858, 260, 1193, 541, 2858, 1136, 1198, 1196],\n", - " 740: [50, 527, 858, 1193, 2959, 541, 2858, 1617, 296, 1197],\n", - " 741: [527, 260, 1193, 2959, 541, 1136, 1198, 1197, 1214, 2028],\n", - " 742: [527, 858, 1193, 593, 608, 1214, 1200, 457, 2396, 733],\n", - " 743: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 744: [50, 527, 260, 2959, 2858, 2571, 1136, 1196, 1617, 608],\n", - " 745: [1136, 356, 457, 34, 1073, 357, 588, 539, 21, 141],\n", - " 746: [50, 858, 260, 1193, 2959, 2571, 1136, 1198, 1196, 1197],\n", - " 748: [858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136, 1198],\n", - " 749: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 750: [318, 50, 527, 858, 260, 1193, 593, 541, 2571, 1198],\n", - " 751: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 752: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 753: [50, 527, 858, 1193, 2959, 541, 2571, 1136, 1196, 1617],\n", - " 754: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 755: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 756: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 757: [318, 527, 858, 1193, 2959, 593, 2858, 2571, 1617, 1214],\n", - " 758: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 759: [318, 50, 527, 858, 1193, 2959, 593, 2858, 1136, 1617],\n", - " 761: [527, 858, 260, 1193, 2959, 541, 1196, 1617, 296, 608],\n", - " 762: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 763: [318, 50, 858, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 764: [50, 858, 260, 1193, 541, 2571, 1136, 1198, 1196, 1617],\n", - " 765: [318, 50, 527, 2959, 541, 1136, 1198, 1196, 1197, 47],\n", - " 766: [527, 858, 2959, 593, 541, 1136, 1617, 296, 608, 1214],\n", - " 767: [50, 1193, 2959, 541, 2858, 1136, 1617, 296, 608, 2028],\n", - " 769: [858, 260, 1193, 2959, 2858, 2571, 1198, 1196, 1617, 1197],\n", - " 770: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 771: [50, 858, 1193, 2959, 541, 2858, 1136, 296, 1197, 2762],\n", - " 772: [318, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 773: [318, 50, 527, 858, 1193, 2959, 1198, 1617, 608, 1214],\n", - " 774: [527, 260, 1193, 2959, 593, 541, 2858, 2571, 1136, 1198],\n", - " 775: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 776: [318, 527, 1193, 2959, 2571, 1136, 1196, 1617, 296, 608],\n", - " 777: [318, 527, 858, 1193, 2959, 593, 541, 2571, 1198, 1196],\n", - " 779: [318, 50, 527, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 780: [2959, 2858, 2571, 3578, 1, 595, 1580, 165, 10, 316],\n", - " 781: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 783: [50, 527, 858, 1193, 2959, 2858, 1617, 296, 1197, 2762],\n", - " 784: [1193, 1617, 1200, 150, 34, 595, 349, 539, 25, 21],\n", - " 785: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 786: [50, 858, 1193, 2959, 593, 541, 2858, 1617, 296, 608],\n", - " 787: [318, 50, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 788: [260, 1193, 541, 1136, 1196, 296, 608, 1197, 1210, 150],\n", - " 789: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 790: [1193, 2959, 2858, 2571, 1617, 608, 2762, 2028, 3578, 356],\n", - " 791: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2571],\n", - " 792: [527, 858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 793: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 1136],\n", - " 794: [318, 50, 527, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 795: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 796: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 797: [50, 527, 858, 260, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 798: [2396, 590, 595, 25, 21, 141, 292, 329, 153],\n", - " 799: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 800: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 801: [318, 50, 858, 2858, 1617, 608, 2762, 1036, 1240, 356],\n", - " 802: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 803: [50, 527, 2959, 2571, 1136, 1617, 1197, 47, 3578, 1],\n", - " 804: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 805: [318, 50, 527, 858, 1193, 2959, 541, 2858, 1617, 296],\n", - " 806: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 807: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 808: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 809: [318, 858, 1193, 2959, 593, 2571, 1136, 1198, 296, 608],\n", - " 810: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 811: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 812: [1193, 2959, 541, 2858, 2571, 1136, 1198, 1196, 1617, 296],\n", - " 813: [318, 50, 527, 1193, 2959, 593, 541, 1617, 296, 608],\n", - " 814: [50, 858, 260, 1193, 2959, 541, 2571, 1198, 1196, 1617],\n", - " 815: [318, 50, 527, 1193, 2959, 541, 2858, 1136, 1617, 608],\n", - " 816: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 817: [50, 858, 260, 2959, 593, 541, 2571, 1136, 1198, 1617],\n", - " 818: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 819: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 820: [318, 527, 1198, 1617, 608, 2762, 457, 34, 357, 588],\n", - " 821: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2571],\n", - " 822: [858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136, 1198],\n", - " 823: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 824: [318, 50, 527, 2959, 2858, 1198, 1617, 296, 2762, 2028],\n", - " 825: [318, 50, 527, 858, 260, 2959, 541, 2858, 2571, 1136],\n", - " 826: [527, 1198, 2762, 110, 1291, 150, 2396, 2716, 364, 34],\n", - " 827: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 828: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 829: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 830: [318, 50, 2959, 541, 2571, 1136, 1617, 608, 1214, 2762],\n", - " 831: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 832: [318, 50, 527, 858, 2959, 593, 2858, 2571, 1136, 1198],\n", - " 833: [50, 1193, 2959, 1196, 2762, 47, 110, 3578, 1210, 1036],\n", - " 834: [858, 260, 1193, 541, 1136, 1198, 1617, 296, 1214, 47],\n", - " 835: [527, 858, 1193, 2959, 2858, 2571, 1136, 1198, 1196, 1617],\n", - " 836: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 837: [527, 858, 1193, 541, 1196, 1617, 2762, 2028, 47, 1200],\n", - " 838: [2959, 364, 733, 1073, 357, 588, 595, 21, 165, 10],\n", - " 839: [318, 50, 858, 1193, 2959, 541, 2858, 2571, 1196, 1617],\n", - " 840: [318, 2959, 2858, 2571, 2762, 47, 3578, 1036, 589, 34],\n", - " 841: [318, 50, 527, 858, 2959, 593, 2858, 1136, 1198, 1617],\n", - " 842: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 843: [318, 50, 2959, 593, 2858, 2571, 1617, 296, 608, 2762],\n", - " 844: [318, 50, 527, 1193, 2959, 541, 1136, 1617, 296, 608],\n", - " 846: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 847: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 848: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 849: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 851: [318, 50, 527, 2959, 593, 2858, 1617, 608, 1214, 2028],\n", - " 852: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 853: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 854: [318, 50, 260, 1193, 541, 2571, 1136, 1198, 1196, 1617],\n", - " 855: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 856: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 857: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 1136],\n", - " 859: [318, 50, 527, 1193, 2858, 1617, 608, 1214, 47, 457],\n", - " 861: [318, 50, 527, 260, 1193, 2959, 593, 541, 2858, 1198],\n", - " 862: [50, 858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 863: [858, 260, 1193, 2959, 541, 1136, 1198, 1196, 1197, 1214],\n", - " 864: [318, 50, 858, 260, 1193, 593, 541, 2571, 1136, 1198],\n", - " 865: [527, 858, 1193, 541, 1136, 1198, 1617, 608, 1214, 2762],\n", - " 866: [1193, 2959, 541, 2858, 2571, 1617, 2762, 2028, 3578, 1036],\n", - " 867: [1193, 593, 1214, 2762, 47, 1036, 32, 1265, 357, 539],\n", - " 868: [50, 858, 260, 1193, 2959, 541, 2571, 1136, 1198, 1196],\n", - " 869: [858, 260, 1193, 541, 2858, 2571, 1136, 1198, 1196, 1617],\n", - " 870: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 871: [2959, 2858, 2571, 1617, 1197, 2762, 2028, 110, 3578, 1036],\n", - " 872: [318, 527, 858, 260, 2959, 593, 541, 2858, 2571, 1136],\n", - " 873: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 1136],\n", - " 874: [318, 50, 527, 858, 541, 1617, 608, 1214, 1200, 1036],\n", - " 875: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 876: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 878: [2959, 2858, 2571, 1617, 2762, 2028, 47, 110, 3578, 1210],\n", - " 879: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 881: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 882: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 883: [318, 50, 527, 858, 260, 2959, 593, 541, 2858, 2571],\n", - " 884: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 885: [2959, 2858, 1617, 2762, 3578, 364, 357, 539, 141, 377],\n", - " 886: [1197, 110, 1291, 1, 364, 588, 595, 25, 165, 367],\n", - " 887: [527, 858, 260, 1193, 541, 1136, 1198, 1196, 608, 1197],\n", - " 889: [318, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 890: [318, 50, 858, 1193, 593, 541, 1136, 1198, 1196, 1617],\n", - " 891: [858, 593, 1136, 349, 25, 21, 141, 165, 10, 454],\n", - " 892: [1193, 2959, 541, 2858, 2571, 1136, 1198, 1617, 1214, 2762],\n", - " 893: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 1136],\n", - " 895: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 896: [318, 858, 1193, 2959, 2858, 2571, 1198, 1196, 1617, 1197],\n", - " 897: [318, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 898: [318, 50, 527, 858, 1193, 2959, 593, 2858, 1136, 1198],\n", - " 899: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 900: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 901: [50, 527, 260, 1193, 2959, 593, 541, 2858, 1136, 1198],\n", - " 902: [527, 541, 110, 150, 32, 1265, 34, 357, 590, 539],\n", - " 903: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 904: [50, 858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 905: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 906: [318, 541, 1198, 1214, 47, 110, 1200, 3578, 1036, 1240],\n", - " 907: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 908: [318, 50, 1193, 2959, 593, 2858, 1136, 1617, 296, 608],\n", - " 909: [318, 50, 858, 260, 1193, 593, 541, 1136, 1196, 1617],\n", - " 910: [527, 260, 1193, 541, 2571, 1198, 1196, 608, 1197, 2762],\n", - " 911: [318, 50, 527, 858, 1193, 2959, 593, 541, 1136, 1617],\n", - " 912: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 913: [318, 50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 914: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 915: [318, 527, 858, 1193, 2959, 1136, 1198, 1196, 1617, 296],\n", - " 916: [318, 50, 527, 858, 260, 1193, 593, 541, 2858, 2571],\n", - " 917: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 918: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 919: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 1136],\n", - " 920: [318, 50, 527, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 921: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 922: [50, 527, 858, 260, 1193, 593, 541, 2858, 1198, 1196],\n", - " 923: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 924: [50, 527, 858, 260, 1193, 2959, 593, 541, 2571, 1136],\n", - " 925: [50, 527, 1193, 541, 2858, 2571, 1196, 1617, 608, 2762],\n", - " 927: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 928: [527, 858, 1214, 2028, 110, 1200, 1036, 1291, 2396, 2716],\n", - " 930: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 931: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 932: [318, 50, 527, 858, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 933: [527, 858, 1193, 2858, 1136, 608, 1197, 2762, 110, 3578],\n", - " 934: [318, 50, 527, 858, 1193, 2959, 593, 2858, 2571, 1136],\n", - " 935: [318, 527, 858, 1193, 2959, 593, 541, 2858, 1136, 1617],\n", - " 936: [318, 1197, 457, 1, 1270, 2716, 364, 733, 34, 1097],\n", - " 937: [858, 260, 1193, 593, 2858, 2571, 1136, 1198, 1196, 296],\n", - " 938: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 939: [50, 527, 858, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 940: [318, 527, 858, 1193, 2959, 593, 541, 1136, 1198, 1196],\n", - " 941: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 942: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 943: [318, 50, 527, 858, 260, 2959, 593, 541, 2858, 2571],\n", - " 945: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 946: [318, 527, 1193, 2959, 541, 2858, 1136, 296, 2762, 2028],\n", - " 947: [318, 50, 527, 858, 2959, 593, 541, 2858, 1136, 1617],\n", - " 948: [260, 1193, 2959, 541, 1136, 1196, 1197, 1214, 1200, 3578],\n", - " 949: [50, 1193, 593, 541, 1198, 608, 1214, 47, 1200, 1036],\n", - " 950: [318, 50, 527, 858, 2959, 2571, 1617, 1197, 2762, 2028],\n", - " 951: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 952: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 953: [318, 50, 527, 858, 1193, 2959, 593, 2858, 1198, 1617],\n", - " 954: [318, 50, 527, 858, 1193, 593, 541, 2858, 1136, 1198],\n", - " 955: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 956: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 957: [2762, 3578, 2396, 364, 733, 34, 357, 588, 595, 349],\n", - " 958: [50, 527, 858, 260, 1193, 593, 541, 2858, 1136, 1198],\n", - " 960: [318, 50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 961: [318, 50, 858, 260, 2959, 593, 541, 2571, 1136, 1196],\n", - " 962: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2571],\n", - " 963: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 964: [50, 541, 2858, 1136, 1198, 1617, 1197, 1214, 2762, 1200],\n", - " 965: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 966: [318, 50, 527, 858, 593, 1198, 608, 2762, 2028, 47],\n", - " 967: [50, 527, 858, 260, 541, 1136, 1198, 1196, 1617, 608],\n", - " 968: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 969: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 970: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 971: [527, 1193, 541, 1214, 2762, 47, 1200, 3578, 1036, 1291],\n", - " 972: [50, 260, 541, 1136, 1198, 1196, 1197, 1214, 1200, 1210],\n", - " 973: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 974: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 975: [318, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 976: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 977: [2959, 2762, 110, 3578, 356, 457, 150, 32, 2396, 1270],\n", - " 978: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 979: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 980: [318, 527, 1193, 2571, 1198, 1196, 1617, 1197, 2028, 47],\n", - " 982: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 983: [50, 527, 260, 1193, 593, 541, 1196, 1617, 296, 608],\n", - " 984: [50, 527, 260, 541, 2858, 2571, 1136, 1198, 1617, 1197],\n", - " 985: [318, 50, 527, 858, 1193, 2959, 593, 2858, 2571, 1136],\n", - " 986: [858, 260, 1193, 2959, 2858, 2571, 1136, 1198, 1196, 1617],\n", - " 987: [527, 858, 260, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 988: [527, 110, 2396, 733, 34, 1073, 480, 539, 25, 141],\n", - " 989: [318, 2959, 593, 1197, 1214, 2762, 47, 110, 1200, 1210],\n", - " 990: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 991: [858, 1193, 2959, 593, 541, 2858, 2571, 1617, 296, 608],\n", - " 992: [50, 527, 858, 1193, 2959, 541, 2858, 1136, 1198, 1617],\n", - " 993: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 994: [50, 527, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 995: [50, 527, 858, 260, 2959, 593, 541, 2858, 2571, 1136],\n", - " 996: [50, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 997: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 998: [318, 50, 527, 858, 260, 1193, 593, 541, 2858, 1136],\n", - " 1001: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 1002: [318, 50, 527, 1193, 2959, 593, 541, 2858, 2571, 1136],\n", - " 1003: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 1004: [527, 541, 1197, 1214, 1200, 3578, 1036, 1291, 2396, 2716],\n", - " 1005: [50, 858, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 1006: [50, 858, 1193, 2959, 593, 541, 2858, 2571, 1136, 1198],\n", - " 1007: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 1008: [1136, 2028, 1240, 589, 349, 25, 21, 165, 10, 454],\n", - " 1009: [50, 527, 858, 260, 2959, 593, 541, 1136, 1198, 1196],\n", - " 1011: [318, 527, 858, 2959, 2858, 2571, 1197, 2762, 47, 110],\n", - " 1012: [318, 50, 527, 858, 260, 1193, 2959, 541, 2571, 1136],\n", - " 1013: [1193, 2959, 541, 2858, 1136, 1617, 608, 1197, 1214, 2762],\n", - " 1014: [318, 50, 1193, 2959, 2571, 1136, 1198, 1196, 1197, 1214],\n", - " 1015: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2571],\n", - " 1016: [50, 858, 2959, 593, 541, 2571, 1136, 1198, 1196, 1617],\n", - " 1017: [318, 50, 527, 858, 260, 1193, 2959, 593, 2858, 2571],\n", - " 1018: [50, 527, 858, 1193, 1198, 1200, 3578, 1036, 1240, 1291],\n", - " 1019: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 1020: [318, 50, 260, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 1021: [318, 50, 527, 1193, 541, 1136, 1617, 296, 608, 47],\n", - " 1022: [318, 50, 858, 260, 1193, 2959, 593, 541, 2858, 2571],\n", - " 1023: [318, 50, 858, 1193, 1136, 1617, 296, 608, 1197, 2762],\n", - " 1025: [50, 527, 1193, 2959, 593, 541, 1617, 296, 2762, 47],\n", - " 1026: [318, 50, 527, 858, 2858, 1617, 296, 47, 110, 356],\n", - " 1027: [318, 50, 527, 858, 260, 1193, 593, 541, 2858, 2571],\n", - " 1028: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 1029: [527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 1030: [318, 50, 527, 260, 1193, 2959, 541, 2858, 1196, 1617],\n", - " 1031: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 1032: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 1033: [858, 1193, 2959, 541, 2858, 2571, 1617, 608, 1214, 3578],\n", - " 1034: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 1035: [50, 527, 260, 1193, 541, 1198, 1196, 1617, 608, 1197],\n", - " 1037: [318, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 1038: [318, 50, 527, 858, 2959, 541, 2858, 2571, 1136, 1198],\n", - " 1039: [1193,\n", - " 2959,\n", - " 2858,\n", - " 2571,\n", - " 1136,\n", - " 1198,\n", - " 1196,\n", - " 1197,\n", - " 1214,\n", - " 2762],\n", - " 1040: [50, 527, 858, 260, 1193, 2959, 541, 2858, 2571, 1136],\n", - " 1041: [1193, 541, 1136, 608, 1197, 1240, 356, 457, 150, 32],\n", - " 1043: [318, 50, 527, 858, 260, 1193, 2959, 593, 541, 2858],\n", - " 1044: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 1045: [608, 1214, 1200, 1240, 2716, 34, 357, 480, 349, 25],\n", - " 1046: [318, 50, 527, 858, 260, 1193, 2959, 541, 2858, 2571],\n", - " 1047: [260, 1193, 593, 1196, 1617, 1214, 1200, 1240, 32, 2716],\n", - " 1048: [527, 858, 260, 1193, 541, 1136, 1617, 608, 1197, 1214],\n", - " 1050: [858, 260, 1193, 2959, 541, 2858, 2571, 1136, 1198, 1196],\n", - " 1051: [318, 50, 527, 858, 1193, 2959, 593, 541, 2858, 2571],\n", - " 1052: [318, 50, 527, 858, 260, 1193, 593, 541, 2858, 2571],\n", - " 1053: [318, 50, 527, 858, 1193, 2959, 593, 1136, 1617, 296]})" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from collections import defaultdict\n", - "\n", - "# 각 사용자에 대한 추천 리스트를 작성한다\n", - "\n", - "pred_user2items = defaultdict(list)\n", - "\n", - "for user_id in unique_user_ids:\n", - " user_index = user_id2index[user_id]\n", - " movie_indexes = np.argsort(-pred_matrix[user_index, :])\n", - " for movie_index in movie_indexes:\n", - " movie_id = unique_movie_ids[movie_index]\n", - " if movie_id not in user_evaluated_movies[user_id]:\n", - " pred_user2items[user_id].append(movie_id)\n", - " if len(pred_user2items[user_id]) == 10:\n", - " break\n", - "\n", - "pred_user2items" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "6a343574", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "6150 2 648 2.0 868244699 \n", - "6531 2 733 3.0 868244562 \n", - "6813 2 736 3.0 868244698 \n", - "7113 2 780 3.0 868244698 \n", - "7506 2 786 3.0 868244562 \n", - "7661 2 802 2.0 868244603 \n", - "7779 2 858 2.0 868245645 \n", - "8077 2 1049 3.0 868245920 \n", - "8127 2 1073 3.0 868244562 \n", - "8381 2 1210 4.0 868245644 \n", - "8771 2 1356 3.0 868244603 \n", - "9097 2 1544 3.0 868245920 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "6150 Mission: Impossible (1996) \n", - "6531 Rock, The (1996) \n", - "6813 Twister (1996) \n", - "7113 Independence Day (a.k.a. ID4) (1996) \n", - "7506 Eraser (1996) \n", - "7661 Phenomenon (1996) \n", - "7779 Godfather, The (1972) \n", - "8077 Ghost and the Darkness, The (1996) \n", - "8127 Willy Wonka & the Chocolate Factory (1971) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "8771 Star Trek: First Contact (1996) \n", - "9097 Lost World: Jurassic Park, The (Jurassic Park ... \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "6150 [Action, Adventure, Mystery, Thriller] \n", - "6531 [Action, Adventure, Thriller] \n", - "6813 [Action, Adventure, Romance, Thriller] \n", - "7113 [Action, Adventure, Sci-Fi, War] \n", - "7506 [Action, Drama, Thriller] \n", - "7661 [Drama, Romance] \n", - "7779 [Crime, Drama] \n", - "8077 [Action, Adventure] \n", - "8127 [Children, Comedy, Fantasy, Musical] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "8771 [Action, Adventure, Sci-Fi, Thriller] \n", - "9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "6150 [confusing, confusing plot, memorable sequence... 12.0 \n", - "6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n", - "6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n", - "7113 [action, alien invasion, aliens, will smith, a... 14.0 \n", - "7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n", - "7661 [interesting concept, own, john travolta, john... 15.0 \n", - "7779 [oscar (best picture), marlon brando, classic,... 9.0 \n", - "8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n", - "8127 [based on a book, roald dahl, based on a book,... 20.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n", - "8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n", - "9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 " - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2인 사용자가 학습 데이터에 평가를 부여한 영화 목록\n", - "movielens_train[movielens_train.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "cadf27f5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
4950Usual Suspects, The (1995)[Crime, Mystery, Thriller][kevin spacey, ensemble cast, complicated, mus...
315318Shawshank Redemption, The (1994)[Drama][based on a short story, directorial debut, fr...
523527Schindler's List (1993)[Drama, War][speilberg, drama, holocaust, steven spielberg...
\n", - "
" - ], - "text/plain": [ - " movie_id title genre \\\n", - "49 50 Usual Suspects, The (1995) [Crime, Mystery, Thriller] \n", - "315 318 Shawshank Redemption, The (1994) [Drama] \n", - "523 527 Schindler's List (1993) [Drama, War] \n", - "\n", - " tag \n", - "49 [kevin spacey, ensemble cast, complicated, mus... \n", - "315 [based on a short story, directorial debut, fr... \n", - "523 [speilberg, drama, holocaust, steven spielberg... " - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2에 대한 추천(318, 50, 527)\n", - "movies[movies.movie_id.isin([318, 50, 527])]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8fe9fc9a", - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","id":"44c20b2f","metadata":{"id":"44c20b2f"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/FM.ipynb)"]},{"cell_type":"markdown","id":"975827da","metadata":{"id":"975827da"},"source":["# Factorization Machiens"]},{"cell_type":"code","execution_count":1,"id":"81944a53","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"81944a53","executionInfo":{"status":"ok","timestamp":1672117143146,"user_tz":-540,"elapsed":4132,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"2dfbde1d-175b-44c8-b39b-47352fe4d09a"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 04:58:56-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 64.6MB/s in 1.0s \n","\n","2022-12-27 04:58:57 (64.6 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"c4cf1864","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"c4cf1864","executionInfo":{"status":"ok","timestamp":1672117206637,"user_tz":-540,"elapsed":63496,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"becfffd4-7200-4bc9-bac4-316e0ec9c6c2"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"d05d29df","metadata":{"id":"d05d29df","executionInfo":{"status":"ok","timestamp":1672117206637,"user_tz":-540,"elapsed":14,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 인자 수\n","factors = 10\n","# 평가 수의 임곗값\n","minimum_num_rating = 200\n","# 에폭 수\n","n_epochs = 50\n","# 학습률\n","lr = 0.01\n","# 초기 정보 사용\n","use_side_information = False"]},{"cell_type":"code","execution_count":4,"id":"eb06c38c","metadata":{"id":"eb06c38c","executionInfo":{"status":"ok","timestamp":1672117207077,"user_tz":-540,"elapsed":453,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 평갓값이 minimum_num_rating건 이상인 영화를 필터링한다\n","filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n"," lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n",")\n","\n","# 사용자가 평가한 영화\n","user_evaluated_movies = (\n"," filtered_movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n",")\n"]},{"cell_type":"code","execution_count":5,"id":"e863d3f4","metadata":{"id":"e863d3f4","executionInfo":{"status":"ok","timestamp":1672117209450,"user_tz":-540,"elapsed":2376,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["import numpy as np\n","from sklearn.feature_extraction import DictVectorizer\n","\n","# FM용으로 데이터를 정형한다\n","train_data_for_fm = []\n","y = []\n","for i, row in filtered_movielens_train.iterrows():\n"," x = {\"user_id\": str(row[\"user_id\"]), \"movie_id\": str(row[\"movie_id\"])}\n"," if use_side_information:\n"," x[\"tag\"] = row[\"tag\"]\n"," x[\"user_rating_avg\"] = np.mean(user_evaluated_movies[row[\"user_id\"]])\n"," train_data_for_fm.append(x)\n"," y.append(row[\"rating\"])\n","\n","y = np.array(y)\n","\n","vectorizer = DictVectorizer()\n","X = vectorizer.fit_transform(train_data_for_fm).toarray()"]},{"cell_type":"code","execution_count":6,"id":"7a88d5ec","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"7a88d5ec","executionInfo":{"status":"ok","timestamp":1672117310471,"user_tz":-540,"elapsed":101026,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"28358a13-ad71-4f33-a6da-023ea61345c4"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting xlearn\n"," Downloading xlearn-0.40a1.tar.gz (4.9 MB)\n","\u001b[K |████████████████████████████████| 4.9 MB 4.7 MB/s \n","\u001b[?25hBuilding wheels for collected packages: xlearn\n"," Building wheel for xlearn (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for xlearn: filename=xlearn-0.40a1-py3-none-any.whl size=229985 sha256=1c9655f81f543749a98e73cf23691b792b0191fc6466ca61b978157e473aae4f\n"," Stored in directory: /root/.cache/pip/wheels/0c/0a/da/aaa813e25436bce2a282cf1b3c9162c60a6e966a714e4a0b36\n","Successfully built xlearn\n","Installing collected packages: xlearn\n","Successfully installed xlearn-0.40a1\n"]}],"source":["!pip install xlearn"]},{"cell_type":"code","execution_count":7,"id":"511e8f9f","metadata":{"id":"511e8f9f","executionInfo":{"status":"ok","timestamp":1672117310471,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# colab에서 xlearn을 동작시키기 위한 설정\n","# https://github.com/aksnzhy/xlearn/issues/74#issuecomment-580701773\n","import os\n","os.environ['USER'] = 'test'"]},{"cell_type":"code","execution_count":8,"id":"e7208e9a","metadata":{"id":"e7208e9a","executionInfo":{"status":"ok","timestamp":1672117310471,"user_tz":-540,"elapsed":16,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["import xlearn as xl\n","\n","# FM 모델 초기화\n","fm_model = xl.FMModel(task=\"reg\", metric=\"rmse\", lr=lr, opt=\"sgd\", k=factors, epoch=n_epochs)"]},{"cell_type":"code","execution_count":9,"id":"9b99ec6a","metadata":{"id":"9b99ec6a","executionInfo":{"status":"ok","timestamp":1672117311217,"user_tz":-540,"elapsed":761,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# FM 모델 학습\n","fm_model.fit(X, y, is_lock_free=False)"]},{"cell_type":"code","execution_count":10,"id":"3d4a06ff","metadata":{"id":"3d4a06ff","executionInfo":{"status":"ok","timestamp":1672117311218,"user_tz":-540,"elapsed":5,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 행렬의 인덱스와 영화/사용자를 대응시킨 딕셔너리를 작성한다\n","unique_user_ids = sorted(filtered_movielens_train.user_id.unique())\n","unique_movie_ids = sorted(filtered_movielens_train.movie_id.unique())\n","user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n","movie_id2index = dict(zip(unique_movie_ids, range(len(unique_movie_ids))))"]},{"cell_type":"code","execution_count":11,"id":"3cd06940","metadata":{"id":"3cd06940","executionInfo":{"status":"ok","timestamp":1672117311979,"user_tz":-540,"elapsed":765,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 예측용 데이터를 준비한다\n","test_data_for_fm = []\n","for user_id in unique_user_ids:\n"," for movie_id in unique_movie_ids:\n"," x = {\"user_id\": str(user_id), \"movie_id\": str(movie_id)}\n"," if use_side_information:\n"," tag = dataset.item_content[dataset.item_content.movie_id == movie_id].tag.tolist()[0]\n"," x[\"tag\"] = tag\n"," x[\"user_rating_avg\"] = np.mean(user_evaluated_movies[row[\"user_id\"]])\n"," test_data_for_fm.append(x)\n","\n","X_test = vectorizer.transform(test_data_for_fm).toarray()"]},{"cell_type":"code","execution_count":12,"id":"8ed3df1d","metadata":{"id":"8ed3df1d","executionInfo":{"status":"ok","timestamp":1672117313646,"user_tz":-540,"elapsed":1671,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 예측한다\n","y_pred = fm_model.predict(X_test)\n","pred_matrix = y_pred.reshape(len(unique_user_ids), len(unique_movie_ids))"]},{"cell_type":"code","execution_count":13,"id":"f37b05f0","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":424},"id":"f37b05f0","executionInfo":{"status":"ok","timestamp":1672117313997,"user_tz":-540,"elapsed":354,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"bf414e95-35c7-4846-e35d-53efc0f3efa6"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp title \\\n","0 1 122 5.0 838985046 Boomerang (1992) \n","5 217 122 3.0 844429650 Boomerang (1992) \n","33 892 122 4.0 850079961 Boomerang (1992) \n","46 59 185 3.0 838984807 Net, The (1995) \n","47 62 185 5.0 834874598 Net, The (1995) \n","... ... ... ... ... ... \n","132657 849 5097 4.0 1013470449 Bright Eyes (1934) \n","132660 951 638 4.0 849628182 Jack and Sarah (1995) \n","132717 1005 1384 5.0 897254984 Substance of Fire, The (1996) \n","132731 934 56 1.0 945901052 Kids of the Round Table (1995) \n","132804 1018 64997 3.0 1230668562 War of the Worlds (2005) \n","\n"," genre \\\n","0 [Comedy, Romance] \n","5 [Comedy, Romance] \n","33 [Comedy, Romance] \n","46 [Action, Crime, Thriller] \n","47 [Action, Crime, Thriller] \n","... ... \n","132657 [Comedy, Drama] \n","132660 [Romance] \n","132717 [Drama] \n","132731 [Adventure, Children, Fantasy] \n","132804 [Action] \n","\n"," tag timestamp_rank \\\n","0 [dating, nudity (topless - brief), can't remem... 1.0 \n","5 [dating, nudity (topless - brief), can't remem... 5.0 \n","33 [dating, nudity (topless - brief), can't remem... 5.0 \n","46 [computers, computers, internet, irwin winkler... 1.0 \n","47 [computers, computers, internet, irwin winkler... 5.0 \n","... ... ... \n","132657 NaN 2.0 \n","132660 [babies, ian mckellen, baby, british] 5.0 \n","132717 NaN 1.0 \n","132731 NaN 5.0 \n","132804 NaN 1.0 \n","\n"," rating_pred \n","0 3.574791 \n","5 3.574791 \n","33 3.574791 \n","46 3.574791 \n","47 3.574791 \n","... ... \n","132657 3.574791 \n","132660 3.574791 \n","132717 3.574791 \n","132731 3.574791 \n","132804 3.574791 \n","\n","[5000 rows x 9 columns]"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rankrating_pred
011225.0838985046Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...1.03.574791
52171223.0844429650Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...5.03.574791
338921224.0850079961Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...5.03.574791
46591853.0838984807Net, The (1995)[Action, Crime, Thriller][computers, computers, internet, irwin winkler...1.03.574791
47621855.0834874598Net, The (1995)[Action, Crime, Thriller][computers, computers, internet, irwin winkler...5.03.574791
..............................
13265784950974.01013470449Bright Eyes (1934)[Comedy, Drama]NaN2.03.574791
1326609516384.0849628182Jack and Sarah (1995)[Romance][babies, ian mckellen, baby, british]5.03.574791
132717100513845.0897254984Substance of Fire, The (1996)[Drama]NaN1.03.574791
132731934561.0945901052Kids of the Round Table (1995)[Adventure, Children, Fantasy]NaN5.03.574791
1328041018649973.01230668562War of the Worlds (2005)[Action]NaN1.03.574791
\n","

5000 rows × 9 columns

\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":13}],"source":["# 학습용에 나오지 않은 사용자나 영화의 예측 평가는 평균 평갓값으로 한다\n","average_score = movielens_train.rating.mean()\n","movie_rating_predict = movielens_test.copy()\n","pred_results = []\n","for i, row in movielens_test.iterrows():\n"," user_id = row[\"user_id\"]\n"," if user_id not in user_id2index or row[\"movie_id\"] not in movie_id2index:\n"," pred_results.append(average_score)\n"," continue\n"," user_index = user_id2index[row[\"user_id\"]]\n"," movie_index = movie_id2index[row[\"movie_id\"]]\n"," pred_score = pred_matrix[user_index, movie_index]\n"," pred_results.append(pred_score)\n","movie_rating_predict[\"rating_pred\"] = pred_results\n","movie_rating_predict"]},{"cell_type":"code","execution_count":14,"id":"2847fe2c","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"2847fe2c","executionInfo":{"status":"ok","timestamp":1672117314449,"user_tz":-540,"elapsed":457,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"ba123efc-95b3-4296-d669-04c74035c0b4"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {1: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 2: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 3: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 4: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 5: [318, 50, 1193, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 6: [318, 50, 527, 541, 593, 2959, 2858, 1617, 1136, 608],\n"," 7: [318, 527, 858, 1193, 2959, 1198, 2858, 2571, 1136, 2028],\n"," 8: [318, 858, 1193, 296, 110, 356, 150, 1, 2396, 2716],\n"," 9: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 10: [318, 50, 858, 260, 2959, 1198, 2858, 2571, 1196, 1136],\n"," 11: [318, 50, 527, 858, 1193, 541, 593, 2959, 2858, 1136],\n"," 12: [318, 50, 527, 858, 1193, 541, 260, 593, 1198, 2571],\n"," 13: [318, 527, 858, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 14: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 16: [318, 50, 527, 858, 1193, 593, 2959, 1198, 2858, 2571],\n"," 17: [318, 527, 541, 2959, 1198, 2858, 2571, 1196, 1617, 1136],\n"," 18: [50, 858, 1193, 1617, 1197, 1200, 595, 588, 21, 141],\n"," 19: [593, 2959, 2858, 2571, 1617, 2028, 296, 1214, 2762, 1200],\n"," 22: [318, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 23: [318, 858, 1193, 541, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 24: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 26: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 27: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 28: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 30: [50, 858, 541, 2959, 2858, 2571, 1617, 2028, 1197, 296],\n"," 33: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 34: [1193, 2858, 1617, 1214, 1036, 1291, 2396, 1270, 2716, 1097],\n"," 35: [318, 50, 527, 858, 1193, 541, 260, 593, 1198, 1617],\n"," 36: [318, 527, 1193, 541, 1136, 1197, 110, 1214, 1200, 47],\n"," 37: [527, 858, 1193, 541, 260, 1198, 2858, 1196, 1617, 608],\n"," 38: [50, 527, 858, 1193, 541, 260, 1198, 2858, 1196, 1617],\n"," 40: [858, 541, 260, 2959, 1198, 1136, 2028, 1197, 110, 1214],\n"," 41: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 42: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 43: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 44: [858, 1193, 541, 260, 593, 2959, 1198, 2571, 1196, 1617],\n"," 45: [318, 527, 1193, 541, 2959, 1136, 1197, 296, 1214, 47],\n"," 46: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 47: [527, 1193, 1617, 608, 1197, 47, 457, 356, 1265, 1097],\n"," 50: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 51: [318, 50, 541, 2959, 1198, 2571, 1196, 1136, 1197, 110],\n"," 52: [318, 527, 858, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 53: [318, 858, 1193, 541, 260, 593, 2959, 1198, 2571, 1196],\n"," 54: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 55: [318, 50, 527, 858, 541, 260, 593, 2959, 1198, 2858],\n"," 56: [318, 2959, 608, 1197, 2762, 1200, 47, 457, 1240, 150],\n"," 57: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 58: [858, 1193, 2959, 1196, 1136, 608, 1214, 1200, 47, 1036],\n"," 59: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 60: [2959, 1198, 2858, 2571, 1196, 1617, 2028, 1197, 110, 2762],\n"," 61: [50, 858, 541, 260, 2959, 1198, 2571, 1196, 1136, 2028],\n"," 62: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 63: [318, 50, 541, 260, 593, 2959, 1198, 2571, 1196, 1136],\n"," 64: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 65: [50, 527, 858, 1193, 541, 593, 2959, 1617, 608, 2028],\n"," 66: [318, 50, 527, 858, 1193, 541, 260, 593, 1198, 2571],\n"," 67: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 68: [318, 50, 527, 858, 593, 2959, 1198, 1196, 1136, 2028],\n"," 69: [50, 858, 541, 260, 593, 2959, 1198, 2571, 1196, 1617],\n"," 70: [50, 260, 593, 2959, 2858, 2571, 1196, 1136, 608, 2028],\n"," 71: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 72: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 73: [527, 1193, 1617, 1136, 1197, 110, 1214, 3578, 1210, 1291],\n"," 75: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 76: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 77: [318, 50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 78: [50, 593, 47, 1036, 3578, 457, 1291, 1, 733, 34],\n"," 79: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 80: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 81: [318, 50, 527, 858, 260, 593, 1198, 2858, 1196, 1617],\n"," 82: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 83: [318, 50, 527, 593, 2959, 2858, 2571, 1617, 2028, 296],\n"," 84: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 85: [318, 858, 1193, 541, 260, 2959, 1198, 1196, 1617, 1136],\n"," 86: [318, 50, 527, 1193, 541, 260, 593, 2959, 2858, 1617],\n"," 87: [318, 50, 527, 858, 1193, 541, 260, 593, 1198, 2571],\n"," 88: [318, 50, 527, 858, 1193, 541, 593, 1617, 608, 2028],\n"," 89: [527, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 90: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 91: [858, 593, 2959, 1617, 296, 110, 2762, 3578, 457, 150],\n"," 92: [50, 858, 1193, 541, 593, 2959, 1617, 1136, 1197, 296],\n"," 94: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 95: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 96: [318, 2959, 47, 356, 150, 1270, 733, 364, 1073, 588],\n"," 97: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 98: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 99: [50, 260, 593, 2959, 1198, 2858, 2571, 1196, 608, 2028],\n"," 100: [1193, 541, 2959, 1617, 1136, 1197, 1214, 2762, 1200, 1036],\n"," 101: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 102: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 103: [318, 858, 1193, 593, 2959, 2858, 2571, 1617, 2028, 1197],\n"," 104: [50, 527, 541, 2959, 2858, 1136, 608, 2028, 296, 2762],\n"," 105: [318, 50, 527, 858, 541, 593, 2959, 2858, 2571, 1617],\n"," 106: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 107: [318, 50, 1193, 593, 2959, 1198, 2858, 1136, 608, 1197],\n"," 110: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 111: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 112: [2959, 2858, 2571, 1617, 2028, 2762, 3578, 356, 2396, 589],\n"," 113: [318, 50, 527, 858, 1193, 541, 593, 2959, 2858, 2571],\n"," 114: [318, 50, 527, 541, 593, 2959, 1198, 2858, 2571, 1617],\n"," 115: [50, 858, 541, 260, 593, 2959, 1198, 2571, 1196, 1617],\n"," 116: [50, 527, 858, 1193, 541, 260, 2959, 2858, 2571, 1196],\n"," 117: [318, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 118: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 119: [50, 527, 1193, 541, 260, 2959, 2858, 2571, 1196, 1617],\n"," 120: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 121: [260, 2959, 2858, 2028, 110, 1214, 2762, 47, 1036, 3578],\n"," 122: [541, 1617, 2028, 47, 1, 32, 364, 595, 349, 539],\n"," 123: [318, 50, 858, 541, 593, 2959, 1198, 2571, 1196, 1617],\n"," 124: [318, 50, 527, 858, 593, 2959, 2858, 1617, 1197, 296],\n"," 125: [1617, 1197, 357, 10, 329, 153],\n"," 126: [357, 21, 329],\n"," 128: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 129: [318, 50, 527, 858, 1193, 541, 593, 1198, 2571, 1196],\n"," 130: [318, 260, 2959, 2571, 1196, 1617, 2028, 1197, 110, 1214],\n"," 131: [318, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 132: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 134: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 135: [318, 50, 527, 1193, 2959, 2858, 2571, 1617, 608, 2028],\n"," 136: [50, 527, 541, 260, 593, 2959, 2858, 2571, 1196, 1617],\n"," 137: [858, 1193, 541, 260, 1617, 1136, 608, 1197, 110, 1214],\n"," 138: [527, 858, 1193, 608, 1197, 457, 1291, 150, 1, 2396],\n"," 139: [50, 858, 1193, 1214, 1200, 457, 1291, 150, 2396, 34],\n"," 140: [858, 541, 260, 2959, 1198, 2571, 1196, 1617, 1136, 608],\n"," 141: [318, 50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 142: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 143: [50, 541, 1617, 1036, 1240, 589, 349, 165, 253, 587],\n"," 144: [1193, 1197, 2396, 590, 1073, 595, 349, 539, 587, 39],\n"," 145: [318, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 148: [318, 527, 858, 1193, 593, 2959, 1198, 2858, 2571, 1617],\n"," 149: [318, 527, 1193, 260, 593, 2571, 1136, 2028, 1197, 110],\n"," 150: [318, 50, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 151: [858, 1193, 541, 593, 2959, 1198, 2858, 1617, 2028, 1197],\n"," 152: [527, 1193, 2959, 2858, 1136, 608, 1197, 296, 150, 1],\n"," 153: [318, 50, 1193, 541, 593, 1198, 2858, 2571, 1196, 1617],\n"," 154: [318, 527, 858, 2858, 1617, 1136, 2028, 1197, 3578, 2396],\n"," 155: [527, 608, 1197, 1200, 1291, 2396, 733, 364, 590, 595],\n"," 156: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 157: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 158: [318, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 159: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 160: [318, 50, 527, 1193, 541, 593, 2959, 1617, 1136, 608],\n"," 161: [858, 1193, 1617, 2028, 1036, 457, 356, 150, 32, 2396],\n"," 162: [318, 50, 1193, 541, 593, 1617, 608, 1197, 1200, 1036],\n"," 163: [318, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 164: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 165: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 166: [318, 50, 527, 858, 1193, 541, 2959, 1198, 2858, 2571],\n"," 167: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 168: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 169: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 170: [527, 858, 1193, 541, 260, 593, 1198, 1196, 1617, 608],\n"," 171: [527, 858, 1193, 541, 260, 593, 1198, 2571, 1196, 1617],\n"," 172: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 173: [541, 2959, 2858, 2571, 1617, 1136, 2028, 1197, 110, 2762],\n"," 174: [50, 858, 1193, 541, 260, 2959, 2858, 2571, 1196, 1136],\n"," 175: [1291, 34, 1073, 141, 165, 10, 780, 2683, 316, 329],\n"," 176: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 177: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 178: [50, 858, 541, 2959, 1198, 2858, 2571, 1617, 608, 2028],\n"," 179: [318, 527, 593, 2959, 2858, 1136, 2762, 47, 457, 1291],\n"," 180: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 182: [541, 260, 1198, 1214, 1200, 47, 1036, 1210, 457, 1291],\n"," 183: [50, 858, 541, 2959, 2858, 2571, 1617, 608, 1197, 296],\n"," 184: [318, 527, 858, 1193, 541, 260, 593, 1198, 2858, 2571],\n"," 185: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 186: [318, 527, 858, 1193, 2959, 2858, 1196, 1136, 2028, 1197],\n"," 187: [318, 50, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 188: [318, 50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 189: [318, 50, 527, 858, 1193, 2959, 2858, 2571, 1196, 1617],\n"," 190: [318, 50, 527, 1193, 2858, 1617, 608, 47, 457, 733],\n"," 192: [318, 260, 1198, 1196, 2028, 1197, 110, 2762, 1200, 1036],\n"," 193: [858, 1193, 2959, 1198, 2858, 2571, 1196, 1617, 1136, 608],\n"," 194: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 195: [318, 50, 541, 260, 593, 2959, 1198, 2571, 1196, 1136],\n"," 196: [50, 1193, 541, 2858, 1617, 2762, 1200, 47, 3578, 32],\n"," 197: [318, 50, 541, 260, 593, 2959, 1198, 2858, 2571, 1196],\n"," 198: [1198, 457, 1291, 357, 349, 25, 539, 480, 21, 141],\n"," 199: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 200: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 201: [318, 1193, 541, 260, 2959, 1198, 2571, 1196, 1136, 1197],\n"," 202: [318, 50, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 203: [527, 858, 1193, 2959, 2858, 2571, 2028, 2762, 3578, 2396],\n"," 204: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 205: [318, 50, 527, 2959, 1198, 2858, 2571, 1196, 1617, 2028],\n"," 206: [318, 50, 858, 1193, 260, 2959, 1198, 2858, 1136, 1197],\n"," 207: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 208: [527, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 209: [318, 50, 527, 858, 1193, 541, 2959, 1198, 2858, 2571],\n"," 210: [50, 527, 858, 1193, 260, 2959, 1198, 1196, 1617, 1136],\n"," 211: [318, 527, 1193, 541, 2571, 1136, 296, 2762, 47, 1036],\n"," 212: [2858, 110, 1036, 3578, 2396, 364, 1073, 25, 597, 141],\n"," 213: [318, 858, 1193, 541, 260, 2959, 1198, 1136, 1197, 110],\n"," 214: [318, 1193, 541, 2959, 2858, 2028, 1214, 1200, 32, 349],\n"," 215: [527, 590, 1073, 539, 253, 2683, 231],\n"," 216: [527, 858, 2959, 1617, 608, 2028, 296, 1214, 1200, 3578],\n"," 217: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 218: [50, 858, 1193, 541, 260, 2959, 1198, 2571, 1196, 1617],\n"," 219: [318, 50, 858, 541, 593, 1198, 2571, 1196, 1617, 1136],\n"," 220: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 221: [1193, 541, 2959, 1617, 1136, 608, 1197, 1214, 2762, 1200],\n"," 222: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 223: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 224: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 225: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 226: [527, 1193, 2959, 2858, 150, 1, 2396, 34, 364, 1097],\n"," 227: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 228: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 229: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 230: [318, 858, 1193, 1198, 2571, 2762, 47, 1036, 1210, 457],\n"," 231: [318, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 232: [1193, 2959, 2858, 2571, 1617, 1136, 2028, 1197, 2762, 3578],\n"," 234: [318, 858, 1193, 541, 260, 593, 1198, 1196, 1136, 608],\n"," 235: [527, 1196, 1136, 608, 2028, 1197, 110, 1214, 2762, 1200],\n"," 236: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 237: [318, 50, 527, 858, 541, 2959, 2858, 1136, 608, 2028],\n"," 238: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 239: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 2858],\n"," 241: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 242: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 243: [318, 50, 527, 1193, 541, 593, 1617, 1136, 1197, 296],\n"," 244: [318, 260, 2959, 1198, 2571, 1196, 1617, 2028, 296, 110],\n"," 245: [318, 50, 527, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 246: [318, 50, 527, 1193, 541, 260, 593, 2959, 1198, 2571],\n"," 247: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 248: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 2858],\n"," 249: [527, 858, 1193, 260, 2858, 1617, 110, 1210, 457, 1],\n"," 250: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 251: [318, 50, 527, 1193, 2959, 2858, 2571, 1617, 1136, 2028],\n"," 252: [318, 50, 858, 541, 593, 2959, 1198, 2571, 1196, 1617],\n"," 253: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 254: [1198, 1617, 608, 1197, 110, 1036, 457, 1291, 150, 1],\n"," 255: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 256: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 257: [318, 50, 527, 1193, 541, 593, 2959, 2858, 1196, 1617],\n"," 258: [318, 50, 527, 858, 541, 593, 2959, 1198, 2858, 2571],\n"," 259: [318, 858, 1193, 541, 110, 1036, 3578, 1240, 1, 589],\n"," 260: [318, 50, 527, 2959, 2858, 2571, 1617, 2028, 1197, 110],\n"," 261: [318, 50, 527, 858, 541, 260, 593, 2959, 1198, 2858],\n"," 262: [1193, 541, 2858, 1136, 1214, 1200, 150, 1, 32, 589],\n"," 263: [1617, 2028, 356, 150, 733, 34, 1073, 357, 595, 25],\n"," 264: [318, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 265: [318, 50, 527, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 266: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 1196],\n"," 267: [1197, 2396, 2716, 1265, 34, 364, 1073, 595, 349, 588],\n"," 268: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 269: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 270: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 271: [318, 50, 527, 858, 1193, 593, 2959, 1198, 2858, 2571],\n"," 272: [318, 1193, 541, 260, 593, 1198, 2571, 1196, 1617, 1136],\n"," 273: [858, 1193, 541, 2959, 1198, 1196, 1617, 1136, 608, 1197],\n"," 274: [318, 50, 527, 858, 1193, 593, 2959, 1198, 2571, 1617],\n"," 275: [527, 858, 541, 260, 2959, 1198, 1136, 1197, 1214, 1200],\n"," 276: [110, 2716, 208],\n"," 277: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 278: [318, 50, 858, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 279: [50, 858, 1193, 541, 2858, 608, 1197, 457, 150, 2396],\n"," 280: [318, 50, 858, 1193, 541, 260, 593, 2959, 1198, 1196],\n"," 281: [858, 1193, 260, 2959, 1198, 2858, 2571, 1196, 1617, 1136],\n"," 282: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 285: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 286: [318, 527, 858, 1193, 1617, 1136, 608, 1197, 296, 110],\n"," 287: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 289: [541, 1198, 1291, 1240, 589, 733, 364, 1073, 588, 292],\n"," 290: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 291: [318, 50, 541, 260, 593, 2959, 1198, 2858, 2571, 1617],\n"," 292: [527, 1617, 110, 1036, 457, 2396, 34, 590, 357, 595],\n"," 293: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 294: [527, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 295: [318, 50, 858, 1193, 541, 260, 593, 2959, 2858, 2571],\n"," 296: [260, 1198, 1196, 1617, 1136, 608, 1197, 110, 1210, 1291],\n"," 297: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 298: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 300: [593, 2959, 1198, 2858, 1136, 1197, 47, 1036, 3578, 457],\n"," 301: [1193, 2959, 1617, 2028, 1197, 110, 1214, 1200, 47, 1036],\n"," 302: [858, 541, 593, 1198, 1214, 1200, 47, 1036, 457, 356],\n"," 303: [50, 1193, 1617, 1197, 1036, 457, 1, 2396, 1270, 733],\n"," 304: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 305: [318, 50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 306: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 307: [318, 50, 527, 858, 1193, 593, 2959, 2858, 1617, 1136],\n"," 308: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 309: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 310: [1193, 2959, 47, 3578, 1210, 150, 588, 141, 10, 500],\n"," 311: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 312: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 313: [318, 50, 527, 858, 541, 260, 593, 2959, 1198, 2858],\n"," 314: [50, 2959, 2571, 608, 1197, 1214, 1200, 47, 1036, 457],\n"," 315: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 316: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 317: [318, 50, 527, 858, 260, 593, 2959, 1198, 2858, 2571],\n"," 318: [1200, 32, 25, 380, 454, 316, 288, 329, 434, 344],\n"," 319: [318, 50, 527, 858, 1193, 2959, 1198, 2858, 1617, 1136],\n"," 320: [318, 50, 858, 1193, 541, 1198, 608, 1197, 1200, 457],\n"," 321: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 322: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 323: [318, 50, 541, 2959, 2858, 2571, 2028, 110, 2762, 47],\n"," 324: [318, 50, 527, 858, 1193, 260, 593, 1198, 2858, 1196],\n"," 325: [527, 541, 260, 593, 2959, 2858, 2571, 1196, 1617, 608],\n"," 326: [318, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 327: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 328: [527, 858, 1193, 593, 2959, 1198, 1617, 1136, 608, 2028],\n"," 329: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 330: [318, 50, 858, 1193, 541, 593, 1198, 1617, 1136, 608],\n"," 331: [527, 858, 1193, 541, 260, 593, 1198, 1196, 1617, 1136],\n"," 332: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 333: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 334: [318, 50, 527, 858, 1193, 541, 593, 2959, 2858, 1617],\n"," 335: [318, 50, 527, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 336: [318, 50, 527, 858, 1193, 541, 2959, 1198, 2858, 1617],\n"," 337: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 338: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 339: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 340: [858, 1193, 2959, 2858, 2571, 1617, 2028, 2762, 3578, 1],\n"," 341: [50, 1193, 541, 1136, 608, 2028, 1197, 2762, 47, 3578],\n"," 342: [318, 50, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 343: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 344: [318, 50, 527, 858, 1193, 541, 593, 2959, 2858, 2571],\n"," 345: [318, 50, 527, 858, 541, 593, 1617, 608, 1214, 1200],\n"," 346: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 347: [318, 527, 858, 1193, 593, 2959, 1198, 2858, 1136, 608],\n"," 348: [260, 1196, 1136, 1197, 1210, 2396, 1265, 34, 1073, 357],\n"," 349: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 350: [527, 858, 1193, 541, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 351: [541, 2959, 2028, 2762, 1200, 47, 3578, 1291, 1240, 32],\n"," 352: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 353: [318, 527, 858, 1193, 260, 1198, 2858, 1617, 1136, 608],\n"," 354: [50, 527, 1193, 541, 260, 1198, 1196, 1617, 1136, 2028],\n"," 355: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 356: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 357: [318, 50, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 358: [50, 527, 858, 1193, 541, 2959, 1198, 1617, 1136, 2028],\n"," 359: [318, 50, 527, 858, 1193, 541, 260, 593, 1196, 1617],\n"," 360: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 361: [318, 527, 1193, 541, 260, 593, 2959, 1198, 2571, 1196],\n"," 362: [858, 1193, 541, 2858, 1617, 1136, 608, 2028, 296, 1214],\n"," 363: [318, 50, 527, 858, 1193, 541, 260, 593, 1198, 2858],\n"," 364: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 365: [318, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 366: [318, 50, 527, 858, 1193, 541, 593, 2959, 2858, 2571],\n"," 367: [50, 527, 541, 260, 593, 2959, 1198, 2858, 2571, 1196],\n"," 368: [318, 527, 1193, 593, 2858, 2028, 2762, 2396, 34, 349],\n"," 369: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 370: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 371: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 372: [318, 50, 527, 858, 1193, 541, 260, 593, 2858, 1617],\n"," 373: [50, 527, 858, 1193, 541, 260, 593, 2959, 2858, 2571],\n"," 375: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 376: [318, 50, 527, 858, 2959, 1198, 2858, 1196, 1136, 608],\n"," 377: [260, 593, 2959, 1198, 1617, 1136, 608, 2028, 1197, 1214],\n"," 378: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 379: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 380: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 381: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 382: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 383: [527, 2959, 1136, 1197, 110, 1200, 47, 1036, 1210, 1291],\n"," 384: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 385: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 386: [50, 1193, 541, 2571, 1136, 1197, 47, 32, 2716, 595],\n"," 387: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 388: [318, 527, 858, 1193, 541, 260, 593, 2959, 2858, 1196],\n"," 389: [50, 858, 1193, 541, 260, 1198, 1196, 1136, 608, 1197],\n"," 390: [527, 541, 1197, 1214, 47, 1036, 150, 32, 1270, 2716],\n"," 391: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 392: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 393: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 394: [527, 1193, 541, 593, 2571, 1136, 110, 1214, 2762, 1200],\n"," 395: [527, 858, 1193, 541, 593, 2959, 1198, 2858, 2571, 1196],\n"," 396: [318, 50, 527, 858, 1193, 593, 1617, 1136, 608, 1197],\n"," 397: [50, 541, 260, 1198, 1196, 1617, 1136, 608, 1197, 1214],\n"," 398: [318, 50, 858, 1193, 541, 2959, 2858, 2571, 1617, 608],\n"," 399: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 400: [318, 527, 858, 1193, 541, 260, 1198, 1196, 1136, 1197],\n"," 401: [50, 1193, 2959, 2571, 1196, 1617, 1136, 2028, 296, 110],\n"," 402: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 403: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 404: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 405: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 406: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 407: [318, 527, 1193, 2858, 1196, 1617, 1197, 110, 1210, 2716],\n"," 409: [318, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 410: [260, 2959, 2858, 2571, 1617, 1136, 2028, 296, 2762, 3578],\n"," 411: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 412: [50, 527, 1193, 541, 260, 2959, 1198, 1617, 1136, 608],\n"," 413: [318, 50, 527, 593, 2959, 2571, 1617, 608, 2028, 2762],\n"," 414: [318, 50, 527, 858, 1193, 541, 260, 1198, 1196, 1136],\n"," 415: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 416: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 417: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 418: [527, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 419: [2959, 1196, 2028, 3578, 1210, 356, 150, 1, 34, 25],\n"," 420: [318, 50, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 421: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 422: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 424: [50, 858, 593, 2959, 2571, 2028, 1197, 296, 110, 1214],\n"," 425: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 426: [1073, 141, 329],\n"," 427: [1193, 541, 2959, 2858, 1136, 608, 1197, 296, 110, 356],\n"," 428: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 2858],\n"," 429: [318, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 431: [527, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 432: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 433: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 434: [318, 50, 1136, 1197, 296, 47, 150, 32, 2396, 2716],\n"," 435: [318, 50, 527, 858, 1193, 260, 593, 1198, 2858, 1196],\n"," 436: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 437: [858, 1193, 2959, 1198, 2028, 110, 1200, 1036, 3578, 1210],\n"," 438: [50, 527, 2959, 608, 2028, 47, 150, 1270, 357, 588],\n"," 439: [318, 50, 858, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 440: [541, 260, 1196, 1617, 1136, 3578, 1210, 1240, 1, 589],\n"," 441: [318, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 443: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2571, 1196],\n"," 444: [318, 50, 527, 858, 260, 593, 2959, 1617, 1136, 2028],\n"," 445: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 446: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 447: [858, 1193, 541, 2959, 1198, 2858, 1196, 2028, 110, 1214],\n"," 448: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 449: [318, 858, 1193, 541, 1198, 1617, 1136, 608, 2028, 296],\n"," 450: [2959, 1136, 150, 1265, 34, 364, 21, 141, 165, 253],\n"," 451: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 452: [50, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 1196],\n"," 453: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 454: [318, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 455: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 456: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 458: [318, 50, 527, 858, 541, 260, 593, 2959, 1198, 2571],\n"," 459: [318, 50, 858, 1193, 1198, 1617, 608, 1197, 457, 1265],\n"," 460: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 461: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 462: [527, 858, 541, 2959, 1198, 2858, 2571, 1196, 1617, 1136],\n"," 463: [2396, 1265, 364, 590, 357, 595, 588, 539, 380, 165],\n"," 464: [318, 50, 527, 858, 541, 260, 593, 2959, 1198, 2858],\n"," 465: [541, 260, 1198, 2571, 1196, 1136, 2028, 1197, 1214, 1200],\n"," 466: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 467: [858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571, 1196],\n"," 468: [318, 50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 469: [50, 858, 1193, 2959, 1617, 1197, 110, 47, 733, 1073],\n"," 470: [1193, 260, 1196, 2028, 1197, 110, 1036, 3578, 1210, 457],\n"," 471: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 472: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 473: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 474: [318, 50, 527, 858, 1193, 2959, 1198, 2858, 1617, 1136],\n"," 475: [318, 50, 527, 858, 1193, 541, 260, 593, 1198, 2858],\n"," 476: [858, 1193, 1197, 150, 1, 1270, 2716, 1265, 34, 1097],\n"," 477: [2858, 608, 110, 3578, 457, 356, 1240, 150, 1, 32],\n"," 478: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 479: [858, 541, 260, 1198, 1196, 1197, 47, 1036, 3578, 1210],\n"," 480: [318, 527, 1193, 1036, 457, 150, 2396, 733, 34, 364],\n"," 481: [527, 1193, 541, 608, 1197, 110, 2762, 150, 2396, 1073],\n"," 482: [50, 541, 593, 2858, 1617, 608, 1197, 110, 1214, 2762],\n"," 483: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 484: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 485: [1136, 2028, 1197, 110, 47, 1036, 1210, 150, 1270, 2716],\n"," 486: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 487: [527, 858, 1193, 541, 260, 593, 1198, 1196, 1617, 1136],\n"," 488: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 489: [541, 593, 2959, 1198, 2858, 2571, 1196, 1617, 2028, 1197],\n"," 490: [50, 1193, 541, 260, 593, 2959, 2858, 2571, 1617, 1136],\n"," 491: [50, 1193, 541, 593, 1198, 1617, 1136, 608, 2028, 296],\n"," 493: [593, 1198, 1196, 1136, 1214, 1200, 1240, 589, 1265, 733],\n"," 494: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 495: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 496: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 497: [50, 1193, 541, 260, 2959, 1198, 2858, 1617, 1136, 608],\n"," 498: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 499: [318, 50, 527, 1193, 541, 593, 2959, 2858, 2571, 1196],\n"," 500: [50, 858, 1193, 260, 2959, 1198, 2858, 2571, 1196, 1136],\n"," 501: [318, 50, 527, 858, 541, 2959, 2858, 1617, 296, 2762],\n"," 502: [318, 50, 527, 858, 1193, 541, 260, 593, 1198, 2571],\n"," 503: [50, 1193, 260, 1196, 1617, 608, 1197, 110, 1214, 1200],\n"," 504: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 505: [50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571, 1196],\n"," 506: [2959, 2858, 2571, 1617, 608, 2028, 1197, 110, 2762, 3578],\n"," 507: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 508: [318, 50, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 509: [318, 260, 1198, 1196, 608, 1197, 110, 1214, 1200, 1036],\n"," 510: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 511: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 512: [50, 858, 1193, 541, 260, 593, 2959, 1198, 2571, 1196],\n"," 513: [2959, 110, 47, 3578, 1291, 1, 733, 25, 165, 253],\n"," 515: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 516: [50, 1193, 608, 1197, 1036, 2396, 364, 1073, 349, 25],\n"," 517: [527, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 518: [50, 858, 541, 2959, 1198, 2858, 1617, 1136, 1197, 296],\n"," 520: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 521: [527, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 522: [50, 527, 2959, 2858, 2571, 1617, 2028, 2762, 1200, 47],\n"," 523: [593, 2959, 1198, 2858, 2571, 1196, 1617, 1136, 2028, 1197],\n"," 524: [527, 1193, 260, 593, 1198, 1196, 1617, 1136, 608, 1197],\n"," 525: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 526: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 527: [318, 50, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 529: [318, 50, 858, 1193, 593, 2959, 1198, 2858, 2571, 1196],\n"," 530: [527, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 531: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 532: [318, 527, 1193, 541, 593, 2959, 1136, 608, 1197, 110],\n"," 533: [150, 1097, 349, 21, 380, 165, 10, 2683, 367, 288],\n"," 534: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 535: [2858, 1617, 1214, 2762, 1200, 457, 1240, 32, 2396, 1270],\n"," 536: [318, 50, 527, 858, 1193, 541, 2959, 1198, 2858, 2571],\n"," 537: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 539: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 540: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 541: [318, 858, 1193, 296, 2762, 3578, 150, 364, 357, 595],\n"," 542: [318, 527, 541, 593, 2959, 2858, 2571, 608, 2028, 1197],\n"," 543: [2028, 21, 10, 288],\n"," 544: [318, 527, 858, 1193, 541, 260, 593, 1198, 2858, 1617],\n"," 545: [3578, 2396, 1073, 595, 25, 21, 141, 39, 2683, 288],\n"," 546: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 547: [318, 50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 548: [50, 527, 858, 1193, 541, 593, 2959, 2858, 2571, 1617],\n"," 549: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 550: [593, 2959, 2571, 2028, 1197, 110, 1200, 47, 1036, 3578],\n"," 551: [318, 50, 1193, 541, 2959, 2858, 2571, 1617, 1136, 608],\n"," 552: [527, 858, 541, 260, 593, 1198, 2571, 1196, 1617, 2028],\n"," 553: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 554: [50, 858, 541, 260, 2571, 1196, 1617, 1136, 1197, 47],\n"," 555: [541, 1197, 1214, 1200, 1036, 457, 2396, 34, 364, 1097],\n"," 556: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 557: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 558: [1193, 541, 2762, 316, 329],\n"," 559: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 560: [858, 541, 260, 1198, 2571, 1196, 2028, 1197, 110, 1214],\n"," 561: [318, 50, 527, 858, 1193, 1198, 1617, 1136, 608, 1197],\n"," 562: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 563: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 564: [527, 541, 593, 2959, 2858, 2571, 1136, 2028, 1197, 110],\n"," 565: [318, 50, 527, 541, 260, 593, 2959, 2571, 1196, 2028],\n"," 567: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 568: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 569: [318, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 570: [50, 858, 1193, 541, 593, 2959, 1198, 2858, 2571, 1196],\n"," 571: [1193, 541, 593, 2959, 608, 296, 110, 1214, 2762, 457],\n"," 572: [318, 1036, 3578, 150, 2396, 34, 1097, 590, 357, 588],\n"," 573: [858, 1193, 541, 260, 2959, 1198, 1196, 1136, 1197, 296],\n"," 574: [318, 50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 575: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 576: [50, 858, 1193, 541, 260, 593, 2959, 1198, 2571, 1196],\n"," 577: [527, 1193, 541, 260, 2959, 2858, 2571, 1617, 1136, 2028],\n"," 578: [318, 50, 527, 1193, 593, 2959, 1617, 2028, 1197, 2762],\n"," 579: [858, 1193, 1617, 608, 2028, 1197, 110, 1200, 457, 1240],\n"," 581: [50, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 582: [541, 2959, 2858, 2571, 1136, 1197, 2762, 47, 1036, 3578],\n"," 583: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 584: [318, 50, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 585: [110, 2762, 47, 3578, 733, 597, 253, 292, 288, 231],\n"," 586: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2571],\n"," 587: [50, 858, 541, 2959, 1198, 2858, 2571, 1617, 2028, 1197],\n"," 588: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 589: [318, 2959, 2858, 2571, 1617, 1136, 2028, 1197, 2762, 3578],\n"," 590: [527, 858, 1193, 541, 2959, 2858, 1617, 1136, 1197, 1214],\n"," 591: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2571],\n"," 593: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 594: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 595: [318, 50, 1193, 2959, 1617, 2028, 1200, 47, 3578, 1210],\n"," 596: [50, 541, 593, 2959, 2571, 1197, 296, 110, 1214, 47],\n"," 597: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 598: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 599: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 600: [318, 50, 527, 1193, 541, 260, 593, 1198, 2571, 1196],\n"," 601: [50, 858, 541, 2959, 2858, 2571, 1617, 1136, 608, 2028],\n"," 602: [318, 50, 527, 1193, 541, 2959, 2858, 2571, 1196, 1617],\n"," 603: [50, 1193, 260, 593, 1198, 1617, 1197, 2762, 47, 1036],\n"," 604: [1193, 541, 2959, 1198, 2858, 2571, 1196, 1617, 1136, 2028],\n"," 605: [858, 593, 2959, 2858, 2571, 1617, 2028, 1197, 2762, 1036],\n"," 606: [318, 50, 527, 1193, 541, 593, 2959, 2858, 1617, 1136],\n"," 607: [527, 1193, 541, 2959, 2858, 2571, 1196, 1617, 1136, 2028],\n"," 608: [318, 50, 527, 858, 1193, 541, 260, 593, 1198, 2858],\n"," 609: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 610: [318, 50, 541, 2959, 2858, 2571, 1196, 608, 1197, 296],\n"," 612: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 613: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 614: [318, 50, 527, 1193, 541, 593, 2959, 2858, 2571, 1617],\n"," 616: [858, 1193, 541, 1196, 1617, 1136, 1197, 1214, 1200, 1240],\n"," 617: [318, 858, 1193, 2959, 2858, 2571, 1617, 608, 2028, 1214],\n"," 618: [858, 1193, 541, 260, 2959, 1198, 1196, 1136, 1197, 296],\n"," 619: [318, 50, 527, 1193, 541, 593, 2959, 2858, 2571, 1196],\n"," 620: [318, 50, 527, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 621: [110, 34, 595, 25, 597, 141, 253, 587, 500, 454],\n"," 622: [50, 527, 858, 1193, 1617, 1136, 608, 1197, 1214, 1200],\n"," 623: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 624: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 625: [318, 50, 527, 858, 1193, 541, 2959, 1198, 2858, 2571],\n"," 627: [527, 1193, 541, 260, 2959, 1198, 1196, 1617, 1136, 1197],\n"," 628: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 629: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 630: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 631: [318, 50, 858, 541, 2959, 2858, 2571, 1196, 1617, 1136],\n"," 632: [318, 527, 858, 1193, 541, 260, 2959, 1198, 1617, 1136],\n"," 633: [2762, 1036, 1291, 1240, 589, 1270, 1097, 357, 595, 25],\n"," 634: [318, 50, 527, 858, 1193, 2959, 2858, 2571, 2028, 296],\n"," 635: [318, 50, 858, 1193, 260, 2959, 1198, 2571, 1196, 1617],\n"," 636: [541, 2959, 2858, 608, 1197, 110, 1214, 1200, 47, 356],\n"," 637: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 638: [858, 1193, 593, 2959, 1198, 2858, 2571, 1196, 1617, 1136],\n"," 639: [50, 527, 858, 1193, 541, 260, 1198, 2858, 2571, 1196],\n"," 640: [50, 527, 1193, 260, 593, 1617, 1136, 608, 1197, 296],\n"," 641: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 642: [527, 1198, 110, 733, 364, 1073, 595, 349, 588, 141],\n"," 643: [2959, 1198, 2858, 2762, 47, 1036, 3578, 1291, 150, 1],\n"," 644: [318, 50, 527, 858, 1193, 2959, 2858, 1617, 1136, 1197],\n"," 645: [50, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 646: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 647: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 648: [527, 260, 2959, 1198, 2571, 1136, 1197, 296, 110, 1214],\n"," 649: [318, 50, 527, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 650: [527, 593, 2959, 1617, 1136, 2028, 296, 110, 1200, 457],\n"," 651: [318, 50, 593, 2959, 2571, 1196, 2028, 1197, 296, 110],\n"," 652: [318, 50, 858, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 653: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 654: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 655: [50, 527, 593, 2959, 2858, 2571, 1617, 2028, 110, 2762],\n"," 656: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 657: [1136, 1200, 1240, 39, 316, 288, 329],\n"," 658: [318, 50, 527, 858, 1193, 541, 260, 1198, 1196, 1617],\n"," 659: [50, 1193, 2959, 1617, 2028, 110, 3578, 1291, 150, 1],\n"," 660: [858, 260, 1198, 1196, 1617, 1136, 1197, 110, 1214, 1200],\n"," 661: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 662: [527, 2959, 1198, 2571, 1136, 2762, 1200, 47, 1036, 3578],\n"," 663: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 664: [318, 50, 527, 858, 541, 2959, 1198, 2858, 2571, 1196],\n"," 665: [318, 50, 527, 858, 260, 593, 2959, 1198, 2571, 1196],\n"," 666: [318, 50, 527, 260, 593, 1617, 608, 2028, 1197, 110],\n"," 667: [50, 527, 1193, 541, 593, 2959, 2858, 2571, 1136, 1197],\n"," 668: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 669: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 670: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 671: [318, 2959, 2571, 1197, 110, 1200, 47, 1036, 3578, 1210],\n"," 672: [318, 1193, 541, 1136, 1214, 1200, 1036, 457, 1240, 1270],\n"," 674: [318, 50, 527, 858, 2959, 1198, 2858, 1617, 1136, 608],\n"," 675: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 676: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 677: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 678: [2959, 2858, 2571, 1617, 2028, 2762, 47, 3578, 1, 2396],\n"," 679: [318, 50, 527, 1193, 541, 2959, 1198, 2858, 2571, 1617],\n"," 680: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 1617],\n"," 681: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 683: [318, 50, 527, 1193, 541, 593, 2959, 2858, 1617, 1136],\n"," 684: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 685: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 686: [318, 527, 1193, 2959, 296, 110, 47, 356, 150, 1],\n"," 688: [318, 1617, 2028, 1197, 457, 1265, 34, 1073, 357, 595],\n"," 689: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 690: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 691: [50, 858, 1193, 541, 2959, 2858, 1617, 1214, 2762, 1200],\n"," 693: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 694: [318, 50, 527, 858, 541, 2959, 1198, 2571, 1196, 1136],\n"," 695: [858, 1193, 541, 2959, 2858, 1196, 1617, 1136, 1214, 2762],\n"," 696: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2571],\n"," 697: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 698: [858, 541, 260, 608, 457, 356, 150, 1, 2396, 1270],\n"," 699: [527, 858, 1193, 541, 260, 593, 1198, 2571, 1196, 1617],\n"," 700: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 701: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 702: [50, 858, 2959, 1198, 2858, 2571, 1617, 2028, 1197, 2762],\n"," 703: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 704: [318, 527, 858, 1193, 593, 1198, 2858, 1617, 1136, 608],\n"," 705: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 706: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 707: [318, 50, 858, 1193, 541, 260, 1198, 2571, 1196, 1617],\n"," 708: [318, 527, 1193, 593, 2959, 1198, 2858, 1196, 1617, 1136],\n"," 709: [318, 50, 527, 1193, 541, 593, 2959, 1136, 608, 296],\n"," 710: [50, 541, 260, 593, 2959, 2571, 1196, 1136, 2028, 1197],\n"," 711: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 712: [50, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 714: [1193, 541, 593, 1196, 1214, 1200, 47, 1036, 1210, 150],\n"," 715: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 716: [858, 1193, 1136, 110, 1036, 150, 733, 590, 1073, 357],\n"," 718: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 719: [858, 1193, 541, 2959, 1198, 2858, 2571, 1196, 1617, 1136],\n"," 720: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 721: [50, 527, 858, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 723: [50, 858, 260, 593, 1198, 2858, 1196, 1617, 2028, 296],\n"," 724: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 725: [318, 50, 527, 858, 1193, 541, 260, 593, 1198, 1196],\n"," 726: [318, 50, 1193, 541, 260, 2959, 2858, 2571, 1136, 608],\n"," 727: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 728: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 729: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 730: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 731: [50, 2959, 1198, 2858, 1617, 47, 3578, 457, 1291, 1],\n"," 732: [318, 50, 527, 858, 541, 260, 593, 2959, 1198, 2571],\n"," 733: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 734: [318, 527, 858, 1193, 541, 2959, 2858, 2571, 1617, 1136],\n"," 735: [318, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 736: [318, 50, 858, 1193, 541, 260, 593, 2959, 2858, 2571],\n"," 737: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 738: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 739: [318, 527, 858, 1193, 541, 260, 1198, 2858, 1196, 1136],\n"," 740: [50, 527, 858, 1193, 541, 2959, 2858, 1617, 1197, 296],\n"," 741: [527, 1193, 541, 260, 2959, 1198, 1136, 2028, 1197, 110],\n"," 742: [527, 858, 1193, 593, 608, 1214, 1200, 457, 2396, 733],\n"," 743: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 744: [50, 527, 260, 2959, 2858, 2571, 1196, 1617, 1136, 608],\n"," 745: [1136, 457, 356, 34, 1073, 357, 588, 539, 21, 141],\n"," 746: [50, 858, 1193, 260, 2959, 1198, 2571, 1196, 1136, 2028],\n"," 748: [858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571, 1196],\n"," 749: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 750: [318, 50, 527, 858, 1193, 541, 260, 593, 1198, 2571],\n"," 751: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 752: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 753: [50, 527, 858, 1193, 541, 2959, 2571, 1196, 1617, 1136],\n"," 754: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 755: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 756: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 757: [318, 527, 858, 1193, 593, 2959, 2858, 2571, 1617, 2028],\n"," 758: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 759: [318, 50, 527, 858, 1193, 593, 2959, 2858, 1617, 1136],\n"," 761: [527, 858, 1193, 541, 260, 2959, 1196, 1617, 608, 2028],\n"," 762: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 763: [318, 50, 858, 1193, 541, 2959, 1198, 2858, 2571, 1196],\n"," 764: [50, 858, 1193, 541, 260, 1198, 2571, 1196, 1617, 1136],\n"," 765: [318, 50, 527, 541, 2959, 1198, 1196, 1136, 1197, 47],\n"," 766: [527, 858, 541, 593, 2959, 1617, 1136, 608, 296, 1214],\n"," 767: [50, 1193, 541, 2959, 2858, 1617, 1136, 608, 2028, 296],\n"," 769: [858, 1193, 260, 2959, 1198, 2858, 2571, 1196, 1617, 2028],\n"," 770: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 771: [50, 858, 1193, 541, 2959, 2858, 1136, 1197, 296, 2762],\n"," 772: [318, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 773: [318, 50, 527, 858, 1193, 2959, 1198, 1617, 608, 2028],\n"," 774: [527, 1193, 541, 260, 593, 2959, 1198, 2858, 2571, 1196],\n"," 775: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 776: [318, 527, 1193, 2959, 2571, 1196, 1617, 1136, 608, 1197],\n"," 777: [318, 527, 858, 1193, 541, 593, 2959, 1198, 2571, 1196],\n"," 779: [318, 50, 527, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 780: [2959, 2858, 2571, 3578, 1, 595, 1580, 165, 10, 367],\n"," 781: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 783: [50, 527, 858, 1193, 2959, 2858, 1617, 2028, 1197, 296],\n"," 784: [1193, 1617, 1200, 150, 34, 595, 349, 25, 539, 21],\n"," 785: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 786: [50, 858, 1193, 541, 593, 2959, 2858, 1617, 608, 2028],\n"," 787: [318, 50, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 788: [1193, 541, 260, 1196, 1136, 608, 1197, 296, 1210, 150],\n"," 789: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 790: [1193, 2959, 2858, 2571, 1617, 608, 2028, 2762, 3578, 356],\n"," 791: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 792: [527, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 793: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 794: [318, 50, 527, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 795: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 796: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 797: [50, 527, 858, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 798: [2396, 590, 595, 25, 21, 141, 292, 329, 153],\n"," 799: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 800: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 801: [318, 50, 858, 2858, 1617, 608, 2762, 1036, 457, 356],\n"," 802: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 803: [50, 527, 2959, 2571, 1617, 1136, 1197, 47, 3578, 1],\n"," 804: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 805: [318, 50, 527, 858, 1193, 541, 2959, 2858, 1617, 608],\n"," 806: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 807: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 808: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 809: [318, 858, 1193, 593, 2959, 1198, 2571, 1136, 608, 2028],\n"," 810: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 811: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 812: [1193, 541, 2959, 1198, 2858, 2571, 1196, 1617, 1136, 2028],\n"," 813: [318, 50, 527, 1193, 541, 593, 2959, 1617, 608, 296],\n"," 814: [50, 858, 1193, 541, 260, 2959, 1198, 2571, 1196, 1617],\n"," 815: [318, 50, 527, 1193, 541, 2959, 2858, 1617, 1136, 608],\n"," 816: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 817: [50, 858, 541, 260, 593, 2959, 1198, 2571, 1617, 1136],\n"," 818: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 819: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 820: [318, 527, 1198, 1617, 608, 2762, 457, 34, 590, 357],\n"," 821: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 2571],\n"," 822: [858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571, 1196],\n"," 823: [318, 50, 527, 858, 1193, 541, 593, 2959, 2858, 2571],\n"," 824: [318, 50, 527, 2959, 1198, 2858, 1617, 2028, 296, 110],\n"," 825: [318, 50, 527, 858, 541, 260, 2959, 2858, 2571, 1196],\n"," 826: [527, 1198, 110, 2762, 1291, 150, 2396, 2716, 34, 364],\n"," 827: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 828: [318, 50, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 829: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 830: [318, 50, 541, 2959, 2571, 1617, 1136, 608, 110, 1214],\n"," 831: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 832: [318, 50, 527, 858, 593, 2959, 1198, 2858, 2571, 1617],\n"," 833: [50, 1193, 2959, 1196, 110, 2762, 47, 1036, 3578, 1210],\n"," 834: [858, 1193, 541, 260, 1198, 1617, 1136, 296, 110, 1214],\n"," 835: [527, 858, 1193, 2959, 1198, 2858, 2571, 1196, 1617, 1136],\n"," 836: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 837: [527, 858, 1193, 541, 1196, 1617, 2028, 2762, 1200, 47],\n"," 838: [2959, 733, 364, 1073, 357, 595, 588, 21, 165, 10],\n"," 839: [318, 50, 858, 1193, 541, 2959, 2858, 2571, 1196, 1617],\n"," 840: [318, 2959, 2858, 2571, 2762, 47, 1036, 3578, 589, 34],\n"," 841: [318, 50, 527, 858, 593, 2959, 1198, 2858, 1617, 1136],\n"," 842: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 843: [318, 50, 593, 2959, 2858, 2571, 1617, 608, 2028, 296],\n"," 844: [318, 50, 527, 1193, 541, 2959, 1617, 1136, 608, 2028],\n"," 846: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 847: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 848: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 849: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 851: [318, 50, 527, 593, 2959, 2858, 1617, 608, 2028, 110],\n"," 852: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 853: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 854: [318, 50, 1193, 541, 260, 1198, 2571, 1196, 1617, 1136],\n"," 855: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 856: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 857: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 859: [318, 50, 527, 1193, 2858, 1617, 608, 1214, 47, 457],\n"," 861: [318, 50, 527, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 862: [50, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 863: [858, 1193, 541, 260, 2959, 1198, 1196, 1136, 1197, 1214],\n"," 864: [318, 50, 858, 1193, 541, 260, 593, 1198, 2571, 1196],\n"," 865: [527, 858, 1193, 541, 1198, 1617, 1136, 608, 2028, 1214],\n"," 866: [1193, 541, 2959, 2858, 2571, 1617, 2028, 2762, 1036, 3578],\n"," 867: [1193, 593, 1214, 2762, 47, 1036, 32, 1265, 357, 539],\n"," 868: [50, 858, 1193, 541, 260, 2959, 1198, 2571, 1196, 1136],\n"," 869: [858, 1193, 541, 260, 1198, 2858, 2571, 1196, 1617, 1136],\n"," 870: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 871: [2959, 2858, 2571, 1617, 2028, 1197, 110, 2762, 1036, 3578],\n"," 872: [318, 527, 858, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 873: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 874: [318, 50, 527, 858, 541, 1617, 608, 1214, 1200, 1036],\n"," 875: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 876: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 878: [2959, 2858, 2571, 1617, 2028, 110, 2762, 47, 3578, 1210],\n"," 879: [318, 50, 527, 858, 1193, 541, 260, 2959, 2858, 2571],\n"," 881: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 882: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 883: [318, 50, 527, 858, 541, 260, 593, 2959, 1198, 2858],\n"," 884: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 885: [2959, 2858, 1617, 2762, 3578, 364, 357, 539, 597, 141],\n"," 886: [1197, 110, 1291, 1, 364, 595, 588, 25, 165, 367],\n"," 887: [527, 858, 1193, 541, 260, 1198, 1196, 1136, 608, 1197],\n"," 889: [318, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 890: [318, 50, 858, 1193, 541, 593, 1198, 1196, 1617, 1136],\n"," 891: [858, 593, 1136, 349, 25, 21, 141, 165, 10, 454],\n"," 892: [1193, 541, 2959, 1198, 2858, 2571, 1617, 1136, 2028, 1214],\n"," 893: [50, 527, 858, 1193, 541, 260, 593, 2959, 2858, 1617],\n"," 895: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 896: [318, 858, 1193, 2959, 1198, 2858, 2571, 1196, 1617, 2028],\n"," 897: [318, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 898: [318, 50, 527, 858, 1193, 593, 2959, 1198, 2858, 1617],\n"," 899: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 900: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 901: [50, 527, 1193, 541, 260, 593, 2959, 1198, 2858, 1196],\n"," 902: [527, 541, 110, 150, 32, 1265, 34, 590, 357, 25],\n"," 903: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 904: [50, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 905: [50, 527, 858, 1193, 541, 260, 2959, 2858, 2571, 1196],\n"," 906: [318, 541, 1198, 110, 1214, 1200, 47, 1036, 3578, 457],\n"," 907: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 908: [318, 50, 1193, 593, 2959, 2858, 1617, 1136, 608, 1197],\n"," 909: [318, 50, 858, 1193, 541, 260, 593, 1196, 1617, 1136],\n"," 910: [527, 1193, 541, 260, 1198, 2571, 1196, 608, 2028, 1197],\n"," 911: [318, 50, 527, 858, 1193, 541, 593, 2959, 1617, 1136],\n"," 912: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 913: [318, 50, 858, 1193, 541, 260, 2959, 2858, 2571, 1196],\n"," 914: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 915: [318, 527, 858, 1193, 2959, 1198, 1196, 1617, 1136, 296],\n"," 916: [318, 50, 527, 858, 1193, 541, 260, 593, 1198, 2858],\n"," 917: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 918: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 919: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 920: [318, 50, 527, 1193, 541, 2959, 1198, 2858, 2571, 1196],\n"," 921: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 922: [50, 527, 858, 1193, 541, 260, 593, 1198, 2858, 1196],\n"," 923: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 924: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2571],\n"," 925: [50, 527, 1193, 541, 2858, 2571, 1196, 1617, 608, 2028],\n"," 927: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 2858],\n"," 928: [527, 858, 2028, 110, 1214, 1200, 1036, 1291, 2396, 2716],\n"," 930: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 931: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 932: [318, 50, 527, 858, 1193, 541, 2959, 1198, 2858, 2571],\n"," 933: [527, 858, 1193, 2858, 1136, 608, 1197, 110, 2762, 3578],\n"," 934: [318, 50, 527, 858, 1193, 593, 2959, 1198, 2858, 2571],\n"," 935: [318, 527, 858, 1193, 541, 593, 2959, 2858, 1617, 1136],\n"," 936: [318, 1197, 457, 1, 1270, 2716, 733, 34, 364, 1097],\n"," 937: [858, 1193, 260, 593, 1198, 2858, 2571, 1196, 1136, 608],\n"," 938: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 939: [50, 527, 858, 1193, 541, 2959, 1198, 2858, 2571, 1196],\n"," 940: [318, 527, 858, 1193, 541, 593, 2959, 1198, 1196, 1617],\n"," 941: [318, 50, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 942: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 943: [318, 50, 527, 858, 541, 260, 593, 2959, 1198, 2858],\n"," 945: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 946: [318, 527, 1193, 541, 2959, 2858, 1136, 2028, 296, 2762],\n"," 947: [318, 50, 527, 858, 541, 593, 2959, 2858, 1617, 1136],\n"," 948: [1193, 541, 260, 2959, 1196, 1136, 1197, 1214, 1200, 1036],\n"," 949: [50, 1193, 541, 593, 1198, 608, 1214, 1200, 47, 1036],\n"," 950: [318, 50, 527, 858, 2959, 2571, 1617, 2028, 1197, 110],\n"," 951: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 952: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 953: [318, 50, 527, 858, 1193, 593, 2959, 1198, 2858, 1617],\n"," 954: [318, 50, 527, 858, 1193, 541, 593, 1198, 2858, 1617],\n"," 955: [318, 50, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 956: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 957: [2762, 3578, 2396, 733, 34, 364, 357, 595, 349, 588],\n"," 958: [50, 527, 858, 1193, 541, 260, 593, 1198, 2858, 1196],\n"," 960: [318, 50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 961: [318, 50, 858, 541, 260, 593, 2959, 2571, 1196, 1136],\n"," 962: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 963: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 964: [50, 541, 1198, 2858, 1617, 1136, 1197, 1214, 2762, 1200],\n"," 965: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 966: [318, 50, 527, 858, 593, 1198, 608, 2028, 2762, 47],\n"," 967: [50, 527, 858, 541, 260, 1198, 1196, 1617, 1136, 608],\n"," 968: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 969: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 970: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 971: [527, 1193, 541, 1214, 2762, 1200, 47, 1036, 3578, 1291],\n"," 972: [50, 541, 260, 1198, 1196, 1136, 1197, 1214, 1200, 1036],\n"," 973: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 974: [318, 50, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 975: [318, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 976: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 977: [2959, 110, 2762, 3578, 457, 356, 150, 32, 2396, 1270],\n"," 978: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 979: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 980: [318, 527, 1193, 1198, 2571, 1196, 1617, 2028, 1197, 110],\n"," 982: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 983: [50, 527, 1193, 541, 260, 593, 1196, 1617, 608, 2028],\n"," 984: [50, 527, 541, 260, 1198, 2858, 2571, 1617, 1136, 1197],\n"," 985: [318, 50, 527, 858, 1193, 593, 2959, 1198, 2858, 2571],\n"," 986: [858, 1193, 260, 2959, 1198, 2858, 2571, 1196, 1617, 1136],\n"," 987: [527, 858, 1193, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 988: [527, 110, 2396, 733, 34, 1073, 25, 539, 480, 597],\n"," 989: [318, 593, 2959, 1197, 110, 1214, 2762, 1200, 47, 1036],\n"," 990: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 991: [858, 1193, 541, 593, 2959, 2858, 2571, 1617, 608, 2028],\n"," 992: [50, 527, 858, 1193, 541, 2959, 1198, 2858, 1617, 1136],\n"," 993: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 994: [50, 527, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 995: [50, 527, 858, 541, 260, 593, 2959, 1198, 2858, 2571],\n"," 996: [50, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 997: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 998: [318, 50, 527, 858, 1193, 541, 260, 593, 1198, 2858],\n"," 1001: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 1002: [318, 50, 527, 1193, 541, 593, 2959, 1198, 2858, 2571],\n"," 1003: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 1004: [527, 541, 1197, 1214, 1200, 1036, 3578, 1291, 2396, 2716],\n"," 1005: [50, 858, 1193, 541, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 1006: [50, 858, 1193, 541, 593, 2959, 1198, 2858, 2571, 1196],\n"," 1007: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 1008: [1136, 2028, 1240, 589, 349, 25, 21, 165, 10, 454],\n"," 1009: [50, 527, 858, 541, 260, 593, 2959, 1198, 1196, 1617],\n"," 1011: [318, 527, 858, 2959, 2858, 2571, 1197, 110, 2762, 47],\n"," 1012: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2571],\n"," 1013: [1193, 541, 2959, 2858, 1617, 1136, 608, 1197, 1214, 2762],\n"," 1014: [318, 50, 1193, 2959, 1198, 2571, 1196, 1136, 1197, 1214],\n"," 1015: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 1016: [50, 858, 541, 593, 2959, 1198, 2571, 1196, 1617, 1136],\n"," 1017: [318, 50, 527, 858, 1193, 260, 593, 2959, 1198, 2858],\n"," 1018: [50, 527, 858, 1193, 1198, 1200, 1036, 3578, 457, 1291],\n"," 1019: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 1020: [318, 50, 541, 260, 2959, 1198, 2858, 2571, 1196, 1136],\n"," 1021: [318, 50, 527, 1193, 541, 1617, 1136, 608, 296, 110],\n"," 1022: [318, 50, 858, 1193, 541, 260, 593, 2959, 1198, 2858],\n"," 1023: [318, 50, 858, 1193, 1617, 1136, 608, 2028, 1197, 296],\n"," 1025: [50, 527, 1193, 541, 593, 2959, 1617, 296, 2762, 47],\n"," 1026: [318, 50, 527, 858, 2858, 1617, 296, 110, 47, 457],\n"," 1027: [318, 50, 527, 858, 1193, 541, 260, 593, 1198, 2858],\n"," 1028: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 1029: [527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196],\n"," 1030: [318, 50, 527, 1193, 541, 260, 2959, 2858, 1196, 1617],\n"," 1031: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 1032: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 1033: [858, 1193, 541, 2959, 2858, 2571, 1617, 608, 1214, 1036],\n"," 1034: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 1035: [50, 527, 1193, 541, 260, 1198, 1196, 1617, 608, 1197],\n"," 1037: [318, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 1038: [318, 50, 527, 858, 541, 2959, 1198, 2858, 2571, 1617],\n"," 1039: [1193, 2959, 1198, 2858, 2571, 1196, 1136, 1197, 110, 1214],\n"," 1040: [50, 527, 858, 1193, 541, 260, 2959, 1198, 2858, 2571],\n"," 1041: [1193, 541, 1136, 608, 1197, 457, 356, 1240, 150, 32],\n"," 1043: [318, 50, 527, 858, 1193, 541, 260, 593, 2959, 1198],\n"," 1044: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 1045: [608, 1214, 1200, 1240, 2716, 34, 357, 349, 25, 480],\n"," 1046: [318, 50, 527, 858, 1193, 541, 260, 2959, 1198, 2858],\n"," 1047: [1193, 260, 593, 1196, 1617, 1214, 1200, 1240, 32, 2716],\n"," 1048: [527, 858, 1193, 541, 260, 1617, 1136, 608, 1197, 110],\n"," 1050: [858, 1193, 541, 260, 2959, 1198, 2858, 2571, 1196, 1617],\n"," 1051: [318, 50, 527, 858, 1193, 541, 593, 2959, 1198, 2858],\n"," 1052: [318, 50, 527, 858, 1193, 541, 260, 593, 1198, 2858],\n"," 1053: [318, 50, 527, 858, 1193, 593, 2959, 1617, 1136, 608]})"]},"metadata":{},"execution_count":14}],"source":["from collections import defaultdict\n","\n","# 각 사용자에 대한 추천 리스트를 작성한다\n","\n","pred_user2items = defaultdict(list)\n","\n","for user_id in unique_user_ids:\n"," user_index = user_id2index[user_id]\n"," movie_indexes = np.argsort(-pred_matrix[user_index, :])\n"," for movie_index in movie_indexes:\n"," movie_id = unique_movie_ids[movie_index]\n"," if movie_id not in user_evaluated_movies[user_id]:\n"," pred_user2items[user_id].append(movie_id)\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","\n","pred_user2items"]},{"cell_type":"code","execution_count":15,"id":"6a343574","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":564},"id":"6a343574","executionInfo":{"status":"ok","timestamp":1672117314449,"user_tz":-540,"elapsed":9,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"6b0147f5-1cdf-489b-9212-fe876c1dcb1e"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","6150 2 648 2.0 868244699 \n","6531 2 733 3.0 868244562 \n","6813 2 736 3.0 868244698 \n","7113 2 780 3.0 868244698 \n","7506 2 786 3.0 868244562 \n","7661 2 802 2.0 868244603 \n","7779 2 858 2.0 868245645 \n","8077 2 1049 3.0 868245920 \n","8127 2 1073 3.0 868244562 \n","8381 2 1210 4.0 868245644 \n","8771 2 1356 3.0 868244603 \n","9097 2 1544 3.0 868245920 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","6150 Mission: Impossible (1996) \n","6531 Rock, The (1996) \n","6813 Twister (1996) \n","7113 Independence Day (a.k.a. ID4) (1996) \n","7506 Eraser (1996) \n","7661 Phenomenon (1996) \n","7779 Godfather, The (1972) \n","8077 Ghost and the Darkness, The (1996) \n","8127 Willy Wonka & the Chocolate Factory (1971) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","8771 Star Trek: First Contact (1996) \n","9097 Lost World: Jurassic Park, The (Jurassic Park ... \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","6150 [Action, Adventure, Mystery, Thriller] \n","6531 [Action, Adventure, Thriller] \n","6813 [Action, Adventure, Romance, Thriller] \n","7113 [Action, Adventure, Sci-Fi, War] \n","7506 [Action, Drama, Thriller] \n","7661 [Drama, Romance] \n","7779 [Crime, Drama] \n","8077 [Action, Adventure] \n","8127 [Children, Comedy, Fantasy, Musical] \n","8381 [Action, Adventure, Sci-Fi] \n","8771 [Action, Adventure, Sci-Fi, Thriller] \n","9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","6150 [confusing, confusing plot, memorable sequence... 12.0 \n","6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n","6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n","7113 [action, alien invasion, aliens, will smith, a... 14.0 \n","7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n","7661 [interesting concept, own, john travolta, john... 15.0 \n","7779 [oscar (best picture), marlon brando, classic,... 9.0 \n","8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n","8127 [based on a book, roald dahl, based on a book,... 20.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n","8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n","9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":15}],"source":["# user_id=2인 사용자가 학습 데이터에 평가를 부여한 영화 목록\n","movielens_train[movielens_train.user_id==2]"]},{"cell_type":"code","execution_count":16,"id":"cadf27f5","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"cadf27f5","executionInfo":{"status":"ok","timestamp":1672117314451,"user_tz":-540,"elapsed":9,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"3506e8df-2a9d-47ff-843b-e76531289d73"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title genre \\\n","49 50 Usual Suspects, The (1995) [Crime, Mystery, Thriller] \n","315 318 Shawshank Redemption, The (1994) [Drama] \n","523 527 Schindler's List (1993) [Drama, War] \n","\n"," tag \n","49 [kevin spacey, ensemble cast, complicated, mus... \n","315 [based on a short story, directorial debut, fr... \n","523 [speilberg, drama, holocaust, steven spielberg... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
4950Usual Suspects, The (1995)[Crime, Mystery, Thriller][kevin spacey, ensemble cast, complicated, mus...
315318Shawshank Redemption, The (1994)[Drama][based on a short story, directorial debut, fr...
523527Schindler's List (1993)[Drama, War][speilberg, drama, holocaust, steven spielberg...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":16}],"source":["# user_id=2에 대한 추천(318, 50, 527)\n","movies[movies.movie_id.isin([318, 50, 527])]"]},{"cell_type":"code","execution_count":16,"id":"8fe9fc9a","metadata":{"id":"8fe9fc9a","executionInfo":{"status":"ok","timestamp":1672117314451,"user_tz":-540,"elapsed":9,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/IMF.ipynb b/chapter5/colab/IMF.ipynb index 6d9d857..1744802 100644 --- a/chapter5/colab/IMF.ipynb +++ b/chapter5/colab/IMF.ipynb @@ -1,1544 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "31a1f64c", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/IMF.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "c0dccd9c", - "metadata": {}, - "source": [ - "# Implicit Matrix Factorization" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "c302ab23", - "metadata": {}, - "outputs": [], - "source": [ - "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", - "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", - "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", - "\n", - "# 데이터 다운로드와 압축 풀기\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "4f1322e1", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", - "import pandas as pd\n", - "\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "79120322", - "metadata": {}, - "outputs": [], - "source": [ - "# 인자 수\n", - "factors = 10\n", - "# 평가 수의 임곗값\n", - "minimum_num_rating = 0\n", - "# 에폭 수\n", - "n_epochs = 50\n", - "# alpha\n", - "alpha = 1.0" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "df43e6c5", - "metadata": {}, - "outputs": [], - "source": [ - "# 행력 분석용으로 행렬을 작성한다\n", - "filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n", - " lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n", - ")\n", - "\n", - "movielens_train_high_rating = filtered_movielens_train[filtered_movielens_train.rating >= 4]\n", - "\n", - "# 행렬의 인덱스와 영화/사용자를 대응시킨 딕셔너리를 작성한다\n", - "unique_user_ids = sorted(movielens_train_high_rating.user_id.unique())\n", - "unique_movie_ids = sorted(movielens_train_high_rating.movie_id.unique())\n", - "user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n", - "movie_id2index = dict(zip(unique_movie_ids, range(len(unique_movie_ids))))" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "4c2f401f", - "metadata": {}, - "outputs": [], - "source": [ - "from scipy.sparse import lil_matrix\n", - "# 희소 행렬을 초기화하고, 각 셀에 값을 넣는다\n", - "movielens_matrix = lil_matrix((len(unique_movie_ids), len(unique_user_ids)))\n", - "for i, row in movielens_train_high_rating.iterrows():\n", - " user_index = user_id2index[row[\"user_id\"]]\n", - " movie_index = movie_id2index[row[\"movie_id\"]]\n", - " movielens_matrix[movie_index, user_index] = 1.0 * alpha # 이후, 영화의 평갓값을 0/1로 이진화한다. 클릭 수 등의 데이터인 경우에는 log(click 수) 등으로 변형하는 것도 효과적이다." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7ee004fe", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install implicit==0.4.4" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e76c9ca3", - "metadata": {}, - "outputs": [], - "source": [ - "# colab 상에서 implicit 라이브러리 실행 후에 에러가 발생할 때는, '런타임 → 런타임 유형 변경'에서 하드웨어 엑셀러레이터로 GPU를 선택합니다" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "c5a6a5bc", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:root:OpenBLAS detected. Its highly recommend to set the environment variable 'export OPENBLAS_NUM_THREADS=1' to disable its internal multithreading\n" - ] - } - ], - "source": [ - "import implicit\n", - "\n", - "# 모델 초기화\n", - "model = implicit.als.AlternatingLeastSquares(\n", - " factors=factors, iterations=n_epochs, calculate_training_loss=True, random_state=1\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "e812e181", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "9594468ecdf34e6fb090e00d9ca19b15", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/50 [00:00\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n", - "" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "8381 2 1210 4.0 868245644 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 " - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", - "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "04b38bdb", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
01Toy Story (1995)[Adventure, Animation, Children, Comedy, Fantasy][pixar, pixar, pixar, animation, pixar, animat...
583589Terminator 2: Judgment Day (1991)[Action, Sci-Fi][action, sci-fi, dvd, seen more than once, tim...
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "0 1 Toy Story (1995) \n", - "583 589 Terminator 2: Judgment Day (1991) \n", - "1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n", - "\n", - " genre \\\n", - "0 [Adventure, Animation, Children, Comedy, Fantasy] \n", - "583 [Action, Sci-Fi] \n", - "1171 [Action, Adventure, Sci-Fi] \n", - "\n", - " tag \n", - "0 [pixar, pixar, pixar, animation, pixar, animat... \n", - "583 [action, sci-fi, dvd, seen more than once, tim... \n", - "1171 [lucas, george lucas, george lucas, gfei own i... " - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2에 대한 추천(1196, 1, 589)\n", - "movies[movies.movie_id.isin([1196, 1, 589])]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3c7399b0", - "metadata": {}, - "outputs": [], - "source": [ - "# IMF에서는 factors나 alpha 설정이 예측 정밀도에 중요하므로, 값을 바꾸어가며 시도해봅니다." - ] - } - ], - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","id":"31a1f64c","metadata":{"id":"31a1f64c"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/IMF.ipynb)"]},{"cell_type":"markdown","id":"c0dccd9c","metadata":{"id":"c0dccd9c"},"source":["# Implicit Matrix Factorization"]},{"cell_type":"code","execution_count":1,"id":"c302ab23","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"c302ab23","executionInfo":{"status":"ok","timestamp":1672118046019,"user_tz":-540,"elapsed":10729,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"99be911a-fa2c-4848-b9fe-de4ba2570907"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:12:10-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 13.6MB/s in 6.1s \n","\n","2022-12-27 05:12:18 (10.3 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"4f1322e1","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"4f1322e1","executionInfo":{"status":"ok","timestamp":1672118103815,"user_tz":-540,"elapsed":57828,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"5aef6143-782d-4602-9b40-0fc6cb3f0475"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"79120322","metadata":{"id":"79120322","executionInfo":{"status":"ok","timestamp":1672118103816,"user_tz":-540,"elapsed":32,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 인자 수\n","factors = 10\n","# 평가 수의 임곗값\n","minimum_num_rating = 0\n","# 에폭 수\n","n_epochs = 50\n","# alpha\n","alpha = 1.0"]},{"cell_type":"code","execution_count":4,"id":"df43e6c5","metadata":{"id":"df43e6c5","executionInfo":{"status":"ok","timestamp":1672118103817,"user_tz":-540,"elapsed":31,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 행력 분석용으로 행렬을 작성한다\n","filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n"," lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n",")\n","\n","movielens_train_high_rating = filtered_movielens_train[filtered_movielens_train.rating >= 4]\n","\n","# 행렬의 인덱스와 영화/사용자를 대응시킨 딕셔너리를 작성한다\n","unique_user_ids = sorted(movielens_train_high_rating.user_id.unique())\n","unique_movie_ids = sorted(movielens_train_high_rating.movie_id.unique())\n","user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n","movie_id2index = dict(zip(unique_movie_ids, range(len(unique_movie_ids))))"]},{"cell_type":"code","execution_count":5,"id":"4c2f401f","metadata":{"id":"4c2f401f","executionInfo":{"status":"ok","timestamp":1672118107348,"user_tz":-540,"elapsed":3561,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["from scipy.sparse import lil_matrix\n","# 희소 행렬을 초기화하고, 각 셀에 값을 넣는다\n","movielens_matrix = lil_matrix((len(unique_movie_ids), len(unique_user_ids)))\n","for i, row in movielens_train_high_rating.iterrows():\n"," user_index = user_id2index[row[\"user_id\"]]\n"," movie_index = movie_id2index[row[\"movie_id\"]]\n"," movielens_matrix[movie_index, user_index] = 1.0 * alpha # 이후, 영화의 평갓값을 0/1로 이진화한다. 클릭 수 등의 데이터인 경우에는 log(click 수) 등으로 변형하는 것도 효과적이다."]},{"cell_type":"code","execution_count":6,"id":"7ee004fe","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"7ee004fe","executionInfo":{"status":"ok","timestamp":1672118180966,"user_tz":-540,"elapsed":73628,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"7561d4a0-8562-4190-93ec-2966e0cf9e32"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting implicit==0.4.4\n"," Downloading implicit-0.4.4.tar.gz (1.1 MB)\n","\u001b[K |████████████████████████████████| 1.1 MB 30.9 MB/s \n","\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (1.21.6)\n","Requirement already satisfied: scipy>=0.16 in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (1.7.3)\n","Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (4.64.1)\n","Building wheels for collected packages: implicit\n"," Building wheel for implicit (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for implicit: filename=implicit-0.4.4-cp38-cp38-linux_x86_64.whl size=3825530 sha256=4f9058d1d351d60c74e7cfac5a34e01c831ecc5683e4cb2c3b0bc2816f422259\n"," Stored in directory: /root/.cache/pip/wheels/00/ac/67/6f4536c819ed560c2c7e17c0f7a920e3e50c26108616087d05\n","Successfully built implicit\n","Installing collected packages: implicit\n","Successfully installed implicit-0.4.4\n"]}],"source":["!pip install implicit==0.4.4"]},{"cell_type":"code","execution_count":7,"id":"e76c9ca3","metadata":{"id":"e76c9ca3","executionInfo":{"status":"ok","timestamp":1672118180966,"user_tz":-540,"elapsed":8,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# colab 상에서 implicit 라이브러리 실행 후에 에러가 발생할 때는, '런타임 → 런타임 유형 변경'에서 하드웨어 엑셀러레이터로 GPU를 선택합니다"]},{"cell_type":"code","execution_count":8,"id":"c5a6a5bc","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"c5a6a5bc","executionInfo":{"status":"ok","timestamp":1672118181566,"user_tz":-540,"elapsed":607,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"2bf44fbc-c3cb-4966-854d-99bc40b41415"},"outputs":[{"output_type":"stream","name":"stderr","text":["WARNING:implicit:GPU training requires factor size to be a multiple of 32. Increasing factors from 10 to 32.\n","WARNING:root:OpenBLAS detected. Its highly recommend to set the environment variable 'export OPENBLAS_NUM_THREADS=1' to disable its internal multithreading\n"]}],"source":["import implicit\n","\n","# 모델 초기화\n","model = implicit.als.AlternatingLeastSquares(\n"," factors=factors, iterations=n_epochs, calculate_training_loss=True, random_state=1\n",")"]},{"cell_type":"code","execution_count":9,"id":"e812e181","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":49,"referenced_widgets":["fb6ab01e37634a9abeec2b179da03960","e1607d7715e04820885029cdf3a74c6f","2fdc799239424e849ffee921e6ee603f","6092009309584cdf9c993516020fd83d","5f77d52aa8c24e999f128edf4bba9ba1","5a37456cfd97490b82dc40007c2e2df1","4a54ee19a6434221b42e0604706c3e98","c2f622744a7b4e9e93eea9d685587d1a","cbb30e2efa2b43189dc50c6c9aebb349","1866fe3ab47444b2b106afb7f42b56ad","2292d6ee2146480c929ca724004f0eb0"]},"id":"e812e181","executionInfo":{"status":"ok","timestamp":1672118185699,"user_tz":-540,"elapsed":4134,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"35f00436-113b-421c-da6c-4b24030ef824"},"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/50 [00:00\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n"," \n"," "]},"metadata":{},"execution_count":11}],"source":["# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n","movielens_train_high_rating[movielens_train_high_rating.user_id==2]"]},{"cell_type":"code","execution_count":12,"id":"04b38bdb","metadata":{"scrolled":true,"colab":{"base_uri":"https://localhost:8080/","height":239},"id":"04b38bdb","executionInfo":{"status":"ok","timestamp":1672118185701,"user_tz":-540,"elapsed":21,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"3deca087-a3c9-4705-b213-014e3e68b09a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","0 1 Toy Story (1995) \n","583 589 Terminator 2: Judgment Day (1991) \n","1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n","\n"," genre \\\n","0 [Adventure, Animation, Children, Comedy, Fantasy] \n","583 [Action, Sci-Fi] \n","1171 [Action, Adventure, Sci-Fi] \n","\n"," tag \n","0 [pixar, pixar, pixar, animation, pixar, animat... \n","583 [action, sci-fi, dvd, seen more than once, tim... \n","1171 [lucas, george lucas, george lucas, gfei own i... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
01Toy Story (1995)[Adventure, Animation, Children, Comedy, Fantasy][pixar, pixar, pixar, animation, pixar, animat...
583589Terminator 2: Judgment Day (1991)[Action, Sci-Fi][action, sci-fi, dvd, seen more than once, tim...
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":12}],"source":["# user_id=2에 대한 추천(1196, 1, 589)\n","movies[movies.movie_id.isin([1196, 1, 589])]"]},{"cell_type":"code","execution_count":13,"id":"3c7399b0","metadata":{"id":"3c7399b0","executionInfo":{"status":"ok","timestamp":1672118185702,"user_tz":-540,"elapsed":20,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# IMF에서는 factors나 alpha 설정이 예측 정밀도에 중요하므로, 값을 바꾸어가며 시도해봅니다."]}],"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.10.8"},"colab":{"provenance":[]},"accelerator":"GPU","gpuClass":"standard","widgets":{"application/vnd.jupyter.widget-state+json":{"fb6ab01e37634a9abeec2b179da03960":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_e1607d7715e04820885029cdf3a74c6f","IPY_MODEL_2fdc799239424e849ffee921e6ee603f","IPY_MODEL_6092009309584cdf9c993516020fd83d"],"layout":"IPY_MODEL_5f77d52aa8c24e999f128edf4bba9ba1"}},"e1607d7715e04820885029cdf3a74c6f":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_5a37456cfd97490b82dc40007c2e2df1","placeholder":"​","style":"IPY_MODEL_4a54ee19a6434221b42e0604706c3e98","value":"100%"}},"2fdc799239424e849ffee921e6ee603f":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_c2f622744a7b4e9e93eea9d685587d1a","max":50,"min":0,"orientation":"horizontal","style":"IPY_MODEL_cbb30e2efa2b43189dc50c6c9aebb349","value":50}},"6092009309584cdf9c993516020fd83d":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_1866fe3ab47444b2b106afb7f42b56ad","placeholder":"​","style":"IPY_MODEL_2292d6ee2146480c929ca724004f0eb0","value":" 50/50 [00:00<00:00, 110.61it/s, loss=0.00796]"}},"5f77d52aa8c24e999f128edf4bba9ba1":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"5a37456cfd97490b82dc40007c2e2df1":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4a54ee19a6434221b42e0604706c3e98":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"c2f622744a7b4e9e93eea9d685587d1a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"cbb30e2efa2b43189dc50c6c9aebb349":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"1866fe3ab47444b2b106afb7f42b56ad":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"2292d6ee2146480c929ca724004f0eb0":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"794848481a2e43838b142114c5e5e003":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_8c6cb142ccac484387ef07406ee2b03a","IPY_MODEL_aed0c148e187444095a00d7b74957536","IPY_MODEL_67a0b6eb5a9a491fbfa744968cef6e5c"],"layout":"IPY_MODEL_fbfb39403f6f4801b4de05be06af1c45"}},"8c6cb142ccac484387ef07406ee2b03a":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_c934d6be788844e6a957c2cba8d208d0","placeholder":"​","style":"IPY_MODEL_43f27c87353444c9819cc68e4f8902b5","value":"100%"}},"aed0c148e187444095a00d7b74957536":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_15c7b16aede3452bae25dd191af06a2a","max":997,"min":0,"orientation":"horizontal","style":"IPY_MODEL_519c3359647c43878ba29a7e8abec16f","value":997}},"67a0b6eb5a9a491fbfa744968cef6e5c":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_b10a1756c23b401ca0eeb7fc10d644ae","placeholder":"​","style":"IPY_MODEL_6107de1d97c342c9a982f36c262cb9d1","value":" 997/997 [00:00<00:00, 7410.77it/s]"}},"fbfb39403f6f4801b4de05be06af1c45":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c934d6be788844e6a957c2cba8d208d0":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"43f27c87353444c9819cc68e4f8902b5":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"15c7b16aede3452bae25dd191af06a2a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"519c3359647c43878ba29a7e8abec16f":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"b10a1756c23b401ca0eeb7fc10d644ae":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6107de1d97c342c9a982f36c262cb9d1":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}}}}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/Item2vec.ipynb b/chapter5/colab/Item2vec.ipynb index 97c8237..eab2eb9 100644 --- a/chapter5/colab/Item2vec.ipynb +++ b/chapter5/colab/Item2vec.ipynb @@ -1,1481 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "41d4a649", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/Item2vec.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "e9d7e57d", - "metadata": {}, - "source": [ - "# Item2vec" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5d70dbb6", - "metadata": {}, - "outputs": [], - "source": [ - "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", - "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", - "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", - "\n", - "# 데이터 다운로드와 압축 풀기\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "c4f50ee4", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", - "import pandas as pd\n", - "\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "3a74e8b5", - "metadata": {}, - "outputs": [], - "source": [ - "# 인자 수\n", - "factors = 100\n", - "# 에폭 수\n", - "n_epochs = 30\n", - "# window 크기\n", - "window = 100\n", - "# 스킵 그램\n", - "use_skip_gram = 1\n", - "# 계측적 소프트맥스\n", - "use_hierarchial_softmax = 0\n", - "# 사용할 단어의 출현 횟수의 임곗값\n", - "min_count = 5" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "e70dbcd2", - "metadata": {}, - "outputs": [], - "source": [ - "# item2vec의 입력으로 사용할 데이터를 생성한다\n", - "item2vec_data = []\n", - "movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n", - "for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n", - " # 평가된 순서대로 나열한다\n", - " # item2vec에서는 window라는 파라미터가 있으며, item이 평가된 순서도 중요한 요소이다\n", - " item2vec_data.append(data.sort_values(\"timestamp\")[\"movie_id\"].tolist())\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "31c6f683", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install gensim==4.0.1" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "503fed11", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/mk/.pyenv/versions/3.7.8/envs/recsys-test3.7.8/lib/python3.7/site-packages/gensim/similarities/__init__.py:15: UserWarning: The gensim.similarities.levenshtein submodule is disabled, because the optional Levenshtein package is unavailable. Install Levenhstein (e.g. `pip install python-Levenshtein`) to suppress this warning.\n", - " warnings.warn(msg)\n" - ] - } - ], - "source": [ - "import gensim\n", - "\n", - "# item2vec 학습\n", - "model = gensim.models.word2vec.Word2Vec(\n", - " item2vec_data,\n", - " vector_size=factors,\n", - " window=window,\n", - " sg=use_skip_gram,\n", - " hs=use_hierarchial_softmax,\n", - " epochs=n_epochs,\n", - " min_count=min_count,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "c68290ed", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "movie_id=1210, title=Star Wars: Episode VI - Return of the Jedi (1983), score=0.8640398979187012\n", - "movie_id=260, title=Star Wars: Episode IV - A New Hope (a.k.a. Star Wars) (1977), score=0.8317610025405884\n", - "movie_id=1198, title=Raiders of the Lost Ark (Indiana Jones and the Raiders of the Lost Ark) (1981), score=0.8280032873153687\n", - "movie_id=2571, title=Matrix, The (1999), score=0.8175885677337646\n", - "movie_id=1240, title=Terminator, The (1984), score=0.7891822457313538\n", - "movie_id=1197, title=Princess Bride, The (1987), score=0.7843142747879028\n", - "movie_id=1291, title=Indiana Jones and the Last Crusade (1989), score=0.7821475267410278\n", - "movie_id=1270, title=Back to the Future (1985), score=0.7789417505264282\n", - "movie_id=1200, title=Aliens (1986), score=0.7704472541809082\n", - "movie_id=1214, title=Alien (1979), score=0.7694951891899109\n" - ] - } - ], - "source": [ - "# 스타워즈/에피소드 5(movie_id=1196)를 입력했을 때의 유사 영화\n", - "# 스타워즈/에피소드 4, 6이 상위에 나타나므로 학습되었음을 알 수 있다\n", - "for movie_id, score in model.wv.most_similar(1196):\n", - " title = movies[movies.movie_id == movie_id].title.tolist()[0]\n", - " print(f'movie_id={movie_id}, title={title}, score={score}')" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "7c07eb79", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{1: [380, 110, 150, 457, 592, 165, 595, 225, 10, 590],\n", - " 2: [480, 1196, 589, 527, 593, 356, 318, 457, 296, 592],\n", - " 3: [593, 1196, 2571, 318, 527, 2028, 1198, 4993, 2959, 3578],\n", - " 4: [380, 356, 377, 457, 318, 593, 10, 539, 349, 527],\n", - " 5: [1193, 1208, 36, 296, 318, 904, 750, 1213, 1288, 908],\n", - " 6: [1240, 593, 1210, 2858, 1291, 1270, 1617, 541, 1036, 1214],\n", - " 7: [750, 1208, 858, 1193, 1267, 1204, 922, 2019, 1247, 1221],\n", - " 8: [1210, 4993, 110, 5952, 296, 2028, 260, 356, 480, 2716],\n", - " 9: [1136, 1089, 1617, 296, 593, 2571, 750, 608, 1196, 1265],\n", - " 10: [608, 1247, 1207, 318, 1230, 1271, 300, 593, 150, 1304],\n", - " 11: [1197, 1036, 589, 1214, 1200, 457, 1265, 356, 110, 919],\n", - " 12: [2571, 1196, 1240, 1580, 1291, 2028, 1270, 1210, 589, 1036],\n", - " 13: [1196, 1270, 2571, 593, 1240, 356, 1198, 260, 1200, 608],\n", - " 14: [4993, 4886, 7153, 1198, 5952, 4306, 2571, 1291, 919, 356],\n", - " 16: [541, 2571, 1270, 589, 1198, 1197, 750, 1291, 1374, 1036],\n", - " 17: [1196, 904, 1617, 750, 1208, 608, 1240, 912, 2571, 541],\n", - " 18: [1197, 1210, 1610, 1270, 858, 1617, 50, 480, 1265, 2716],\n", - " 19: [593, 150, 608, 1265, 296, 34, 480, 919, 1, 1097],\n", - " 22: [318, 457, 592, 590, 377, 34, 1, 349, 10, 165],\n", - " 23: [318, 150, 356, 457, 36, 110, 34, 357, 588, 25],\n", - " 24: [736, 95, 1393, 6, 783, 36, 32, 141, 608, 653],\n", - " 26: [480, 356, 474, 592, 590, 318, 593, 225, 364, 153],\n", - " 27: [260, 648, 1, 6, 95, 1210, 786, 36, 62, 589],\n", - " 28: [2797, 1307, 1220, 3039, 1394, 1079, 2716, 1196, 1285, 1265],\n", - " 29: [4447, 2000, 3717, 5459, 4369, 2001, 1370, 2571, 1610, 3578],\n", - " 30: [457, 1197, 508, 589, 296, 474, 36, 21, 1036, 587],\n", - " 33: [25, 527, 62, 260, 318, 593, 58, 296, 32, 34],\n", - " 34: [356, 1196, 150, 1036, 1580, 380, 1270, 296, 1291, 2762],\n", - " 35: [593, 296, 1196, 1089, 1214, 318, 1198, 858, 1291, 3578],\n", - " 36: [1197, 2571, 110, 318, 608, 1198, 2028, 47, 527, 3578],\n", - " 37: [2571, 1196, 593, 1214, 1198, 32, 2858, 1270, 541, 50],\n", - " 38: [110, 2762, 3578, 4993, 480, 2028, 1196, 589, 1291, 150],\n", - " 40: [2028, 858, 2762, 1265, 1197, 2959, 356, 47, 32, 111],\n", - " 41: [1265, 1278, 1097, 1079, 1304, 1394, 1, 1196, 1234, 608],\n", - " 42: [150, 527, 318, 356, 21, 34, 457, 593, 497, 296],\n", - " 43: [357, 356, 380, 150, 780, 377, 237, 34, 586, 252],\n", - " 44: [36, 1617, 593, 1193, 1784, 1213, 1247, 1641, 1394, 111],\n", - " 45: [296, 318, 1196, 2571, 527, 1197, 1214, 1198, 1270, 1291],\n", - " 46: [1196, 1136, 1291, 2571, 1198, 4993, 2959, 5952, 1270, 296],\n", - " 47: [356, 47, 480, 527, 1197, 4886, 457, 1, 608, 588],\n", - " 48: [53322, 51935, 6059, 51091, 51662, 51540, 3578, 8937, 5108, 8644],\n", - " 50: [380, 588, 296, 508, 589, 364, 592, 47, 34, 587],\n", - " 51: [1207, 1252, 1267, 1250, 1288, 1292, 2396, 1219, 1221, 1952],\n", - " 52: [908, 1207, 858, 912, 1247, 923, 608, 750, 919, 1221],\n", - " 53: [2571, 1617, 2959, 1196, 1704, 593, 3114, 1265, 608, 356],\n", - " 54: [527, 592, 588, 47, 377, 364, 474, 349, 595, 1036],\n", - " 55: [1208, 2858, 858, 608, 1617, 296, 593, 318, 111, 912],\n", - " 56: [1304, 608, 1288, 899, 1267, 1233, 1225, 1276, 318, 1278],\n", - " 57: [736, 64, 662, 609, 762, 62, 141, 467, 608, 107],\n", - " 58: [608, 1193, 1207, 1196, 858, 1094, 2858, 1288, 1265, 1136],\n", - " 59: [110, 527, 296, 356, 480, 589, 50, 380, 592, 47],\n", - " 60: [1207, 912, 904, 908, 111, 750, 1276, 919, 1197, 296],\n", - " 61: [527, 858, 1208, 2858, 296, 1225, 2028, 1250, 908, 111],\n", - " 62: [110, 480, 457, 377, 592, 590, 165, 356, 589, 474],\n", - " 63: [608, 1617, 1207, 1208, 923, 1213, 296, 1247, 111, 750],\n", - " 64: [733, 62, 32, 736, 25, 648, 6, 141, 1393, 95],\n", - " 65: [1197, 1196, 1270, 2797, 608, 1, 34, 593, 1304, 1394],\n", - " 66: [593, 50, 47, 2571, 858, 318, 1196, 2329, 608, 4226],\n", - " 67: [150, 356, 480, 589, 592, 377, 474, 527, 34, 539],\n", - " 68: [912, 1230, 1304, 923, 1208, 899, 750, 858, 1234, 1292],\n", - " 69: [593, 608, 1617, 296, 858, 1197, 2028, 1196, 1207, 50],\n", - " 70: [1208, 923, 903, 858, 1617, 1136, 111, 1219, 1204, 608],\n", - " 71: [593, 318, 364, 457, 588, 110, 527, 590, 356, 480],\n", - " 72: [110, 150, 377, 589, 592, 590, 474, 318, 364, 161],\n", - " 73: [1197, 1617, 1265, 912, 1193, 1288, 1240, 1136, 527, 1247],\n", - " 74: [356, 380, 539, 225, 237, 185, 150, 587, 474, 597],\n", - " 75: [2571, 1196, 1210, 1240, 480, 1291, 780, 356, 733, 593],\n", - " 76: [356, 592, 225, 316, 780, 318, 539, 588, 364, 153],\n", - " 77: [110, 150, 318, 592, 527, 474, 34, 10, 50, 508],\n", - " 78: [1617, 1196, 1221, 1394, 593, 1213, 1094, 2028, 1204, 50],\n", - " 79: [527, 21, 1089, 150, 509, 337, 265, 47, 34, 235],\n", - " 80: [593, 150, 356, 527, 47, 589, 480, 592, 590, 588],\n", - " 81: [593, 2028, 1196, 527, 318, 1617, 1240, 110, 2858, 608],\n", - " 82: [7153, 5952, 6377, 4226, 593, 3578, 3996, 2959, 4995, 6539],\n", - " 83: [1193, 1234, 858, 904, 1288, 1304, 1196, 919, 1247, 1208],\n", - " 84: [25, 608, 1, 780, 733, 527, 95, 508, 150, 1393],\n", - " 85: [318, 608, 1617, 1213, 858, 1089, 356, 1193, 2762, 111],\n", - " 86: [1197, 1270, 260, 1387, 1580, 592, 541, 593, 1265, 1220],\n", - " 87: [2571, 1617, 3114, 2706, 2028, 1197, 2355, 1704, 593, 2599],\n", - " 88: [2762, 1270, 593, 589, 1291, 480, 47, 1036, 380, 733],\n", - " 89: [356, 457, 593, 377, 527, 47, 480, 592, 349, 589],\n", - " 90: [736, 648, 95, 9, 719, 5, 1393, 765, 609, 32],\n", - " 91: [1304, 858, 908, 608, 1234, 1617, 1221, 260, 1240, 899],\n", - " 92: [593, 296, 2959, 589, 2858, 4993, 1200, 858, 1197, 50],\n", - " 93: [51540, 8937, 51935, 53000, 53972, 60069, 44199, 50872, 45722, 51091],\n", - " 94: [380, 589, 47, 161, 588, 364, 34, 21, 225, 165],\n", - " 95: [480, 457, 380, 527, 592, 47, 590, 50, 377, 364],\n", - " 96: [318, 1094, 1304, 1197, 1207, 1196, 2858, 1234, 912, 1208],\n", - " 97: [2571, 356, 593, 589, 1580, 110, 1210, 318, 1291, 2028],\n", - " 98: [32, 17, 733, 527, 593, 780, 296, 62, 318, 778],\n", - " 99: [1208, 1089, 2858, 1214, 2571, 593, 1196, 1213, 2959, 608],\n", - " 100: [593, 2858, 858, 527, 1198, 2571, 1136, 1193, 2959, 608],\n", - " 101: [110, 356, 349, 590, 539, 10, 595, 34, 527, 780],\n", - " 102: [593, 150, 110, 527, 50, 356, 590, 589, 480, 380],\n", - " 103: [608, 1193, 1094, 1207, 296, 111, 318, 593, 1089, 1247],\n", - " 104: [1208, 1304, 608, 923, 1094, 904, 1230, 527, 2858, 750],\n", - " 105: [1240, 1200, 1214, 541, 2571, 1291, 1197, 858, 1036, 1193],\n", - " 106: [480, 110, 1036, 780, 1196, 457, 1197, 1610, 589, 1291],\n", - " 107: [1214, 750, 1200, 2571, 1198, 593, 608, 1210, 296, 260],\n", - " 108: [1193, 2019, 1208, 1219, 923, 858, 296, 527, 318, 111],\n", - " 110: [110, 592, 10, 150, 165, 733, 780, 364, 474, 588],\n", - " 111: [589, 150, 318, 592, 590, 377, 474, 47, 527, 588],\n", - " 112: [1094, 1304, 1252, 899, 36, 1267, 1276, 1617, 1234, 593],\n", - " 113: [2571, 1196, 3114, 2858, 1197, 2706, 1580, 2028, 1617, 3578],\n", - " 114: [912, 904, 750, 924, 608, 1270, 899, 1304, 1198, 1288],\n", - " 115: [593, 356, 150, 457, 1196, 50, 858, 589, 1270, 480],\n", - " 116: [457, 356, 474, 508, 780, 454, 153, 266, 21, 527],\n", - " 117: [593, 1196, 356, 1136, 1198, 296, 47, 318, 2571, 2762],\n", - " 118: [356, 150, 380, 47, 588, 349, 34, 377, 364, 508],\n", - " 119: [527, 50, 356, 47, 150, 608, 457, 110, 36, 32],\n", - " 120: [733, 1, 648, 6, 805, 783, 260, 736, 494, 832],\n", - " 121: [1230, 1204, 1387, 1214, 1234, 1276, 2858, 1225, 1233, 2019],\n", - " 122: [1617, 2716, 1094, 1207, 2028, 1247, 21, 908, 1291, 750],\n", - " 123: [1196, 919, 858, 1197, 1617, 608, 1210, 1270, 2571, 356],\n", - " 124: [1193, 904, 923, 1617, 1207, 1214, 593, 858, 2858, 903],\n", - " 125: [1197, 589, 1214, 1200, 1617, 858, 541, 260, 2716, 1193],\n", - " 126: [296, 1036, 2762, 1136, 1240, 1617, 1213, 1089, 541, 912],\n", - " 127: [51255, 51091, 45722, 56757, 55830, 40732, 47610, 2959, 48774, 52973],\n", - " 128: [508, 377, 21, 588, 296, 364, 380, 440, 587, 595],\n", - " 129: [2571, 1196, 3578, 1197, 2028, 593, 1617, 296, 2396, 2918],\n", - " 130: [1089, 111, 750, 1617, 608, 318, 1221, 1213, 1196, 1214],\n", - " 131: [593, 318, 527, 356, 110, 32, 589, 293, 608, 6],\n", - " 132: [296, 527, 50, 47, 110, 150, 356, 457, 608, 589],\n", - " 134: [733, 260, 95, 36, 104, 25, 783, 494, 786, 356],\n", - " 135: [318, 527, 608, 1214, 2571, 356, 1193, 750, 50, 1387],\n", - " 136: [1197, 908, 1278, 1221, 1617, 1196, 1387, 1288, 1394, 593],\n", - " 137: [1196, 110, 1210, 356, 3147, 1610, 1197, 1617, 4226, 480],\n", - " 138: [1198, 858, 1291, 527, 1208, 1221, 608, 1213, 1270, 1193],\n", - " 139: [480, 457, 608, 1291, 1214, 1200, 150, 1265, 1, 474],\n", - " 140: [296, 1208, 858, 1213, 608, 1136, 111, 1089, 1221, 1207],\n", - " 141: [150, 318, 110, 480, 588, 539, 364, 590, 597, 587],\n", - " 142: [527, 318, 25, 296, 260, 50, 32, 17, 150, 34],\n", - " 143: [1580, 2858, 1240, 1, 1036, 1079, 919, 1288, 589, 50],\n", - " 144: [2028, 1193, 111, 2762, 1197, 110, 1288, 923, 904, 356],\n", - " 145: [318, 527, 110, 47, 356, 589, 590, 480, 592, 508],\n", - " 148: [593, 1197, 318, 527, 110, 1270, 2571, 1198, 480, 1265],\n", - " 149: [2571, 1196, 3578, 2762, 4226, 593, 2329, 2028, 1210, 589],\n", - " 150: [318, 36, 150, 593, 265, 296, 25, 357, 515, 608],\n", - " 151: [593, 1193, 1196, 1197, 858, 1617, 904, 1198, 2858, 1207],\n", - " 152: [1197, 589, 1387, 1580, 480, 608, 527, 1193, 296, 2858],\n", - " 153: [1196, 2571, 593, 1036, 1210, 1291, 1198, 1270, 480, 541],\n", - " 154: [1240, 1197, 318, 47, 3578, 2028, 457, 1097, 1610, 527],\n", - " 155: [527, 1197, 110, 2762, 1291, 1036, 608, 480, 457, 592],\n", - " 156: [780, 1, 36, 733, 736, 1393, 17, 783, 95, 260],\n", - " 157: [62, 5, 648, 765, 737, 141, 653, 79, 609, 64],\n", - " 158: [318, 150, 356, 110, 527, 589, 480, 590, 161, 508],\n", - " 159: [899, 1304, 912, 594, 969, 908, 904, 1254, 1247, 1234],\n", - " 160: [1240, 1200, 1214, 1610, 1197, 780, 380, 593, 2762, 356],\n", - " 161: [2959, 4993, 4226, 1214, 1198, 541, 2762, 296, 2858, 32],\n", - " 162: [593, 318, 1291, 589, 1036, 4993, 1270, 50, 1197, 1704],\n", - " 163: [318, 527, 608, 150, 110, 356, 293, 457, 1089, 589],\n", - " 164: [110, 380, 150, 593, 588, 10, 364, 539, 597, 225],\n", - " 165: [1197, 2571, 3114, 1580, 1210, 2355, 260, 1270, 589, 356],\n", - " 166: [589, 2571, 1291, 1198, 480, 110, 318, 1197, 356, 527],\n", - " 167: [260, 733, 593, 318, 296, 780, 527, 648, 150, 141],\n", - " 168: [380, 34, 1197, 150, 539, 480, 457, 594, 1265, 110],\n", - " 169: [2571, 2762, 1196, 2716, 2028, 1270, 3578, 2959, 1704, 1580],\n", - " 170: [593, 1089, 2858, 2571, 3578, 4993, 2762, 1213, 527, 5952],\n", - " 171: [593, 1197, 589, 2571, 1291, 480, 1196, 527, 588, 1210],\n", - " 172: [480, 380, 457, 377, 356, 592, 349, 316, 474, 150],\n", - " 173: [527, 1197, 110, 592, 50, 36, 111, 17, 32, 541],\n", - " 174: [1094, 1193, 36, 1617, 34, 2858, 1230, 21, 1207, 1208],\n", - " 175: [1221, 1207, 1291, 260, 47, 589, 1265, 908, 1247, 1704],\n", - " 176: [110, 480, 380, 356, 318, 590, 377, 349, 592, 589],\n", - " 177: [260, 527, 593, 733, 318, 6, 296, 648, 17, 150],\n", - " 178: [1197, 296, 110, 1265, 608, 1270, 1, 50, 2028, 858],\n", - " 179: [1210, 1291, 1387, 2028, 1208, 593, 2858, 2716, 480, 1610],\n", - " 180: [1197, 1036, 356, 1270, 1196, 593, 318, 1097, 2028, 527],\n", - " 182: [608, 904, 1259, 260, 457, 899, 1213, 969, 246, 1288],\n", - " 183: [1207, 1197, 908, 608, 904, 1617, 899, 1247, 1270, 969],\n", - " 184: [593, 318, 2858, 527, 1196, 2028, 356, 1197, 1704, 2762],\n", - " 185: [1097, 912, 919, 356, 1196, 1247, 1197, 1617, 539, 1307],\n", - " 186: [750, 1208, 908, 924, 912, 923, 1240, 1221, 1196, 1387],\n", - " 187: [150, 318, 593, 539, 110, 377, 527, 587, 589, 1],\n", - " 188: [356, 318, 590, 296, 588, 364, 377, 34, 50, 592],\n", - " 189: [480, 318, 356, 527, 296, 1210, 150, 1036, 47, 648],\n", - " 190: [1210, 1214, 593, 4886, 592, 2959, 1527, 2858, 3996, 32],\n", - " 191: [608, 527, 21, 1193, 593, 1197, 318, 17, 1196, 1278],\n", - " 192: [593, 1208, 1617, 1206, 2997, 2329, 2571, 318, 1196, 904],\n", - " 193: [110, 377, 380, 474, 225, 527, 589, 588, 592, 508],\n", - " 194: [719, 733, 9, 609, 260, 64, 95, 653, 667, 805],\n", - " 195: [912, 904, 923, 1208, 1207, 1204, 1230, 1221, 913, 593],\n", - " 196: [1200, 608, 474, 377, 1617, 2762, 733, 1079, 541, 1259],\n", - " 197: [1304, 904, 1193, 608, 1288, 1208, 912, 908, 1197, 593],\n", - " 198: [1198, 1291, 3578, 480, 457, 1580, 2997, 904, 1259, 2396],\n", - " 199: [110, 480, 380, 356, 318, 364, 589, 592, 161, 349],\n", - " 200: [1, 648, 95, 805, 7, 832, 25, 653, 6, 719],\n", - " 201: [318, 36, 1784, 1617, 508, 2762, 1197, 47, 589, 588],\n", - " 202: [593, 318, 356, 2028, 296, 1193, 110, 480, 150, 608],\n", - " 203: [527, 1196, 36, 480, 34, 1210, 858, 1193, 497, 377],\n", - " 204: [36, 32, 527, 593, 17, 318, 296, 1393, 858, 6],\n", - " 205: [904, 1207, 923, 1247, 750, 1304, 903, 1267, 1204, 1617],\n", - " 206: [1196, 1304, 1221, 858, 1387, 1198, 589, 260, 1193, 50],\n", - " 207: [150, 318, 527, 356, 21, 457, 357, 296, 11, 539],\n", - " 208: [480, 356, 377, 292, 457, 474, 589, 733, 593, 780],\n", - " 209: [36, 527, 17, 25, 318, 150, 457, 32, 296, 1265],\n", - " 210: [527, 1196, 356, 260, 1270, 2028, 457, 1197, 1265, 592],\n", - " 211: [1193, 1208, 1387, 541, 296, 750, 1036, 527, 1207, 1291],\n", - " 212: [1230, 2858, 1247, 1267, 1094, 1225, 1254, 922, 1233, 527],\n", - " 213: [3578, 1610, 589, 2959, 318, 110, 356, 457, 1210, 1580],\n", - " 214: [593, 608, 318, 296, 1210, 2571, 919, 2858, 1580, 497],\n", - " 215: [527, 899, 1204, 2329, 590, 969, 1201, 1090, 780, 2115],\n", - " 216: [356, 1270, 608, 1291, 527, 589, 296, 2028, 1617, 150],\n", - " 217: [356, 357, 588, 377, 457, 11, 364, 500, 508, 318],\n", - " 218: [608, 1617, 1193, 50, 1089, 25, 858, 2028, 1704, 1094],\n", - " 219: [1197, 1265, 608, 17, 356, 1079, 1270, 318, 539, 36],\n", - " 220: [969, 913, 908, 1254, 1252, 904, 1234, 1953, 1230, 1247],\n", - " 221: [110, 1291, 1240, 592, 1, 150, 1197, 1580, 377, 2762],\n", - " 222: [8950, 32587, 48780, 48516, 46976, 33166, 44195, 55820, 45722, 34162],\n", - " 223: [225, 252, 248, 161, 500, 150, 539, 377, 292, 153],\n", - " 224: [733, 260, 25, 494, 141, 376, 9, 832, 653, 17],\n", - " 225: [908, 912, 1207, 1267, 923, 1204, 750, 1304, 1193, 1247],\n", - " 226: [260, 2858, 527, 1193, 1089, 1097, 1, 2791, 1079, 1278],\n", - " 227: [750, 541, 858, 924, 1196, 1214, 1193, 2019, 2571, 1221],\n", - " 228: [356, 165, 474, 733, 225, 592, 161, 10, 588, 364],\n", - " 229: [1, 36, 6, 780, 25, 733, 1196, 858, 296, 593],\n", - " 230: [1193, 858, 904, 1208, 318, 1207, 111, 908, 1276, 1252],\n", - " 231: [1265, 1270, 2571, 1136, 1610, 3421, 1923, 1198, 2791, 2918],\n", - " 232: [589, 47, 1036, 1291, 32, 1197, 2571, 150, 1270, 858],\n", - " 234: [593, 296, 2858, 2329, 318, 47, 2762, 1617, 2028, 4993],\n", - " 235: [1196, 1089, 2959, 2028, 1214, 1136, 527, 1208, 1210, 2329],\n", - " 236: [150, 110, 480, 590, 21, 539, 508, 364, 34, 349],\n", - " 237: [608, 858, 296, 527, 318, 2858, 1197, 50, 1198, 2028],\n", - " 238: [1617, 608, 296, 2396, 2762, 2959, 2028, 858, 1193, 593],\n", - " 239: [593, 260, 110, 1197, 1210, 527, 318, 296, 480, 457],\n", - " 241: [500, 1270, 356, 593, 1, 380, 2706, 161, 185, 318],\n", - " 242: [648, 36, 783, 608, 786, 1393, 832, 9, 480, 380],\n", - " 243: [1197, 1136, 1265, 1278, 1270, 2791, 1193, 1617, 1288, 1200],\n", - " 244: [908, 1207, 923, 1288, 1617, 1094, 1221, 111, 903, 1250],\n", - " 245: [1193, 1208, 296, 2858, 1617, 608, 593, 1089, 527, 318],\n", - " 246: [2959, 1196, 2571, 1089, 593, 1136, 608, 296, 1197, 1265],\n", - " 247: [110, 318, 349, 474, 508, 185, 527, 440, 21, 296],\n", - " 248: [2858, 2571, 1196, 2959, 1214, 1617, 2028, 858, 1193, 2762],\n", - " 249: [2858, 1210, 1270, 110, 296, 260, 5349, 858, 6874, 1617],\n", - " 250: [590, 527, 356, 508, 593, 225, 457, 161, 296, 480],\n", - " 251: [1197, 527, 318, 457, 1617, 2571, 1291, 50, 1270, 1089],\n", - " 252: [1247, 858, 1617, 923, 1304, 750, 1208, 1196, 1252, 913],\n", - " 253: [1196, 593, 2762, 110, 2028, 608, 1197, 1210, 1265, 296],\n", - " 254: [608, 1617, 2028, 1198, 1240, 1213, 1270, 1197, 1291, 2762],\n", - " 255: [110, 377, 480, 457, 380, 527, 539, 588, 508, 225],\n", - " 256: [357, 1079, 318, 21, 527, 539, 457, 1265, 1197, 2797],\n", - " 257: [1196, 1291, 589, 2028, 1200, 457, 593, 2762, 1221, 1387],\n", - " 258: [1198, 1240, 1197, 858, 1036, 1617, 2571, 1221, 1270, 457],\n", - " 259: [318, 1196, 1197, 110, 1210, 1193, 260, 1270, 1, 3578],\n", - " 260: [1196, 318, 1214, 1, 1198, 110, 527, 457, 1291, 1270],\n", - " 261: [1196, 2858, 2762, 1617, 1270, 1210, 2028, 1214, 1240, 1580],\n", - " 262: [589, 1210, 593, 356, 1610, 1200, 2028, 296, 1270, 733],\n", - " 263: [2028, 356, 1617, 1089, 1208, 150, 1580, 924, 7153, 4306],\n", - " 264: [318, 110, 150, 47, 527, 364, 380, 590, 592, 1],\n", - " 265: [380, 2571, 1036, 457, 1370, 648, 480, 589, 356, 377],\n", - " 266: [608, 1196, 1240, 1198, 858, 912, 1197, 924, 750, 1617],\n", - " 267: [750, 1196, 1208, 1240, 858, 1221, 1198, 1252, 608, 912],\n", - " 268: [225, 380, 590, 589, 318, 364, 500, 508, 11, 474],\n", - " 269: [260, 733, 736, 648, 1073, 32, 653, 608, 95, 141],\n", - " 270: [608, 1, 32, 36, 780, 527, 593, 1196, 6, 1393],\n", - " 271: [1240, 589, 2571, 1036, 1200, 316, 733, 110, 1356, 1291],\n", - " 272: [593, 1089, 1193, 1617, 608, 1213, 2571, 111, 2329, 1136],\n", - " 273: [593, 356, 1196, 1291, 296, 47, 1198, 2762, 457, 1270],\n", - " 274: [608, 912, 908, 969, 1617, 1198, 2571, 904, 858, 1291],\n", - " 275: [527, 858, 1197, 1213, 36, 1230, 356, 1784, 908, 150],\n", - " 276: [1214, 1617, 608, 1200, 527, 2028, 1291, 1197, 1210, 858],\n", - " 277: [1196, 2571, 589, 110, 1291, 1240, 1198, 1210, 1270, 457],\n", - " 278: [593, 1196, 110, 318, 356, 1210, 1, 589, 608, 1270],\n", - " 279: [1197, 2858, 110, 356, 1036, 32, 541, 2028, 1193, 608],\n", - " 280: [318, 356, 593, 296, 2396, 1784, 2858, 608, 150, 1193],\n", - " 281: [356, 480, 380, 590, 588, 377, 34, 608, 161, 364],\n", - " 282: [780, 141, 648, 25, 736, 1393, 95, 783, 6, 832],\n", - " 285: [608, 1196, 2858, 1136, 593, 1, 1617, 296, 1193, 527],\n", - " 286: [1197, 2762, 1617, 110, 296, 318, 858, 608, 480, 1610],\n", - " 287: [480, 589, 593, 150, 318, 527, 380, 590, 296, 592],\n", - " 288: [912, 1207, 1254, 1204, 1247, 1267, 923, 910, 1252, 969],\n", - " 289: [1230, 1208, 1288, 899, 2396, 1196, 1307, 1244, 1233, 1089],\n", - " 290: [594, 1197, 1028, 34, 480, 260, 1210, 1270, 1265, 356],\n", - " 291: [1208, 912, 1247, 908, 1221, 904, 919, 1197, 260, 541],\n", - " 292: [2571, 1270, 1617, 2028, 1036, 1208, 2762, 527, 924, 589],\n", - " 293: [110, 480, 380, 457, 356, 589, 377, 364, 296, 10],\n", - " 294: [150, 593, 480, 589, 474, 527, 733, 590, 292, 225],\n", - " 295: [608, 1259, 1193, 34, 318, 260, 593, 21, 440, 858],\n", - " 296: [1196, 5445, 1198, 1617, 50, 608, 1291, 3996, 1210, 1200],\n", - " 297: [36, 780, 25, 1073, 733, 6, 1196, 783, 593, 296],\n", - " 298: [1196, 608, 260, 588, 593, 1307, 1270, 1210, 497, 527],\n", - " 300: [1197, 593, 1198, 1097, 2858, 1291, 1207, 1036, 50, 1387],\n", - " 301: [1617, 1193, 1197, 1089, 2028, 111, 1207, 904, 1214, 1200],\n", - " 302: [356, 1270, 593, 1610, 1265, 1036, 480, 1, 457, 1198],\n", - " 303: [593, 1214, 1198, 1089, 50, 589, 1291, 2762, 1617, 1240],\n", - " 304: [1193, 1247, 527, 1207, 1307, 318, 608, 1259, 1704, 1208],\n", - " 305: [318, 380, 364, 474, 34, 592, 225, 440, 47, 161],\n", - " 306: [1197, 1968, 1136, 1265, 2797, 1079, 1394, 1278, 1270, 2174],\n", - " 307: [1291, 1197, 1036, 1527, 593, 32, 1387, 2858, 2762, 1374],\n", - " 308: [150, 588, 377, 539, 356, 595, 380, 110, 590, 597],\n", - " 309: [780, 733, 141, 783, 608, 648, 1393, 36, 32, 1210],\n", - " 310: [1193, 1265, 150, 904, 908, 1230, 1210, 2028, 1208, 474],\n", - " 311: [588, 539, 480, 377, 110, 457, 380, 318, 34, 225],\n", - " 312: [908, 903, 923, 750, 1204, 1254, 1617, 930, 2186, 1207],\n", - " 313: [527, 2762, 2858, 1196, 593, 318, 296, 1617, 1197, 858],\n", - " 314: [1193, 1197, 608, 1208, 1291, 1270, 1214, 2571, 1200, 1213],\n", - " 315: [110, 225, 380, 590, 474, 364, 593, 34, 588, 589],\n", - " 316: [736, 9, 5, 648, 719, 783, 788, 141, 765, 737],\n", - " 317: [1196, 2858, 858, 912, 2028, 2762, 2571, 3114, 593, 904],\n", - " 318: [318, 50, 110, 1, 919, 589, 480, 47, 588, 541],\n", - " 319: [1617, 1208, 1198, 1197, 32, 2985, 589, 608, 2858, 1527],\n", - " 320: [1291, 1198, 110, 47, 2028, 318, 356, 50, 1200, 541],\n", - " 321: [318, 110, 150, 527, 380, 592, 590, 47, 50, 377],\n", - " 322: [1094, 912, 899, 920, 1307, 608, 1304, 1207, 908, 904],\n", - " 323: [904, 1208, 2858, 858, 318, 296, 1278, 2028, 1221, 541],\n", - " 324: [593, 2858, 2329, 1196, 296, 4886, 2762, 1089, 47, 3996],\n", - " 325: [1196, 1197, 2571, 1265, 593, 2716, 356, 1210, 1200, 2762],\n", - " 326: [318, 377, 508, 380, 527, 34, 500, 339, 349, 592],\n", - " 327: [36, 780, 527, 593, 6, 318, 296, 1196, 1197, 356],\n", - " 328: [1210, 1198, 1617, 296, 1197, 858, 1270, 593, 1291, 1221],\n", - " 329: [47, 356, 318, 4993, 2959, 2571, 296, 2762, 1291, 527],\n", - " 330: [4226, 593, 1198, 3578, 1214, 5445, 6539, 4886, 1036, 32],\n", - " 331: [2858, 2329, 4993, 3578, 5952, 4878, 2762, 47, 1089, 593],\n", - " 332: [356, 380, 589, 296, 592, 527, 377, 34, 508, 539],\n", - " 333: [150, 36, 508, 11, 1094, 34, 300, 21, 608, 151],\n", - " 334: [1270, 1036, 1265, 1580, 1240, 1220, 527, 593, 480, 1],\n", - " 335: [1204, 903, 913, 1617, 1207, 1208, 1193, 1267, 2858, 1945],\n", - " 336: [1197, 1270, 593, 1198, 1291, 1580, 2028, 858, 296, 318],\n", - " 337: [1193, 296, 527, 858, 608, 2858, 1136, 1208, 1617, 1221],\n", - " 338: [318, 527, 50, 47, 1196, 150, 1193, 589, 2858, 608],\n", - " 339: [110, 457, 150, 593, 480, 356, 527, 589, 592, 161],\n", - " 340: [1, 32, 1270, 592, 21, 1265, 508, 588, 349, 858],\n", - " 341: [1197, 608, 2028, 1221, 1610, 1387, 541, 1193, 1210, 1270],\n", - " 342: [1196, 2571, 1210, 1291, 3578, 593, 1198, 2028, 1036, 1240],\n", - " 343: [110, 457, 377, 474, 356, 165, 590, 316, 592, 588],\n", - " 344: [527, 593, 318, 1197, 150, 110, 1036, 480, 589, 356],\n", - " 345: [1265, 1196, 1079, 593, 608, 318, 2716, 1923, 1220, 2791],\n", - " 346: [500, 1265, 539, 1923, 1, 1270, 2571, 1196, 593, 11],\n", - " 347: [1214, 1200, 1210, 1270, 750, 1198, 589, 2716, 1291, 608],\n", - " 348: [1196, 1210, 50, 541, 5445, 1197, 1136, 260, 1387, 1704],\n", - " 349: [21, 357, 161, 11, 34, 440, 380, 509, 588, 62],\n", - " 350: [36, 527, 150, 508, 17, 497, 515, 34, 1193, 300],\n", - " 351: [527, 1278, 750, 1259, 1136, 1252, 541, 2028, 1219, 1250],\n", - " 352: [356, 150, 539, 318, 587, 1784, 1704, 110, 380, 527],\n", - " 353: [2858, 50, 1089, 1210, 1198, 1240, 608, 318, 1291, 1617],\n", - " 354: [296, 2028, 1196, 4886, 527, 1291, 47, 4226, 1210, 480],\n", - " 355: [356, 527, 480, 47, 589, 380, 592, 588, 161, 377],\n", - " 356: [608, 260, 1, 6, 62, 527, 141, 1183, 778, 780],\n", - " 357: [1197, 2797, 2918, 608, 1270, 1307, 3039, 356, 1, 1288],\n", - " 358: [1036, 110, 1291, 1198, 541, 592, 380, 2028, 1197, 47],\n", - " 359: [7361, 2571, 4993, 2997, 1193, 7153, 296, 1196, 1136, 5952],\n", - " 360: [25, 608, 265, 62, 58, 357, 497, 1393, 509, 539],\n", - " 361: [1193, 608, 111, 858, 1208, 750, 1089, 904, 1304, 1213],\n", - " 362: [1196, 2959, 2571, 2858, 296, 4226, 1291, 4993, 1270, 47],\n", - " 363: [4226, 2571, 2858, 3578, 5445, 4878, 4886, 2762, 2028, 593],\n", - " 364: [150, 480, 356, 589, 592, 47, 588, 377, 527, 364],\n", - " 365: [318, 539, 588, 377, 380, 47, 440, 589, 592, 225],\n", - " 366: [356, 1270, 480, 593, 1, 318, 527, 608, 1210, 296],\n", - " 367: [1207, 899, 1208, 903, 608, 920, 1299, 1276, 1254, 969],\n", - " 368: [593, 2858, 1270, 1265, 1240, 2762, 318, 2028, 1193, 356],\n", - " 369: [593, 110, 50, 457, 527, 150, 356, 47, 589, 480],\n", - " 370: [260, 36, 783, 733, 25, 648, 9, 95, 608, 1073],\n", - " 371: [1136, 1197, 593, 1198, 2858, 2571, 1270, 1240, 858, 608],\n", - " 372: [1240, 593, 1270, 2028, 1197, 2858, 260, 318, 1200, 296],\n", - " 373: [1197, 2396, 593, 608, 919, 527, 588, 39, 357, 1617],\n", - " 375: [1278, 1394, 1307, 2406, 1197, 1265, 1292, 5060, 1079, 1288],\n", - " 376: [1196, 1198, 608, 858, 527, 1291, 750, 1197, 1036, 1270],\n", - " 377: [1207, 1094, 1208, 1230, 912, 608, 1617, 1225, 2028, 1952],\n", - " 378: [1197, 608, 593, 1617, 1198, 1270, 527, 1, 2028, 1193],\n", - " 379: [589, 356, 457, 480, 593, 110, 380, 318, 150, 1],\n", - " 380: [4993, 2571, 3996, 1196, 4963, 4306, 2762, 4886, 4226, 2959],\n", - " 381: [592, 236, 282, 1, 497, 337, 608, 25, 248, 509],\n", - " 382: [480, 150, 110, 457, 356, 364, 377, 590, 589, 318],\n", - " 383: [527, 2028, 1089, 1198, 2959, 1136, 1213, 32, 1210, 1197],\n", - " 384: [110, 377, 380, 539, 480, 597, 593, 225, 588, 527],\n", - " 385: [36, 1393, 260, 527, 265, 508, 34, 783, 11, 318],\n", - " 386: [1197, 2571, 1193, 919, 2716, 1094, 1207, 1259, 349, 1079],\n", - " 387: [5378, 2571, 1196, 3717, 3578, 2683, 4963, 3793, 4993, 1580],\n", - " 388: [593, 1196, 296, 589, 318, 2858, 47, 2959, 858, 2762],\n", - " 389: [4886, 4973, 5445, 6377, 2762, 6539, 6874, 296, 47, 1196],\n", - " 390: [2858, 47, 1036, 1270, 527, 1089, 1197, 6539, 541, 6377],\n", - " 391: [110, 588, 457, 527, 34, 539, 47, 500, 508, 597],\n", - " 392: [590, 380, 508, 1, 608, 161, 474, 595, 349, 733],\n", - " 393: [780, 1, 736, 95, 36, 32, 1210, 608, 494, 141],\n", - " 394: [2762, 593, 2571, 1193, 527, 1210, 2396, 1214, 1704, 1240],\n", - " 395: [593, 110, 2571, 356, 527, 296, 1196, 589, 480, 2858],\n", - " 396: [1270, 589, 593, 1197, 1240, 356, 110, 2028, 296, 2762],\n", - " 397: [2959, 50, 1617, 1089, 1213, 47, 608, 1196, 2997, 1208],\n", - " 398: [480, 318, 364, 508, 595, 380, 592, 589, 296, 21],\n", - " 399: [1, 36, 62, 25, 783, 786, 1210, 9, 494, 1073],\n", - " 400: [296, 527, 318, 1265, 2762, 1704, 2396, 1196, 1, 356],\n", - " 401: [1193, 1196, 1136, 1240, 1208, 1200, 1270, 296, 2858, 1291],\n", - " 402: [4993, 3578, 4886, 4226, 4995, 6539, 5952, 5418, 4306, 2571],\n", - " 403: [593, 2762, 1196, 2858, 4993, 50, 1291, 3578, 1198, 2959],\n", - " 404: [356, 150, 474, 318, 593, 588, 165, 733, 590, 10],\n", - " 405: [1, 733, 608, 36, 648, 736, 6, 1393, 95, 25],\n", - " 406: [110, 380, 457, 480, 356, 377, 590, 539, 474, 588],\n", - " 407: [1196, 1210, 1270, 1197, 1200, 110, 260, 356, 318, 1617],\n", - " 408: [2858, 2918, 1089, 3481, 1617, 858, 2997, 1259, 608, 4226],\n", - " 409: [225, 380, 457, 539, 110, 356, 248, 21, 236, 500],\n", - " 410: [260, 457, 380, 296, 592, 608, 349, 21, 590, 588],\n", - " 411: [260, 36, 1, 25, 32, 17, 6, 783, 736, 1210],\n", - " 412: [527, 296, 1617, 1193, 50, 2571, 608, 2762, 1213, 356],\n", - " 413: [750, 1208, 1221, 1213, 912, 1617, 608, 1252, 1200, 1206],\n", - " 414: [608, 1089, 50, 318, 2762, 2571, 527, 1193, 47, 858],\n", - " 415: [593, 318, 527, 608, 150, 356, 110, 50, 36, 457],\n", - " 416: [110, 318, 589, 539, 527, 595, 296, 165, 474, 225],\n", - " 417: [912, 608, 1196, 1617, 1193, 1197, 904, 858, 1208, 919],\n", - " 418: [593, 150, 527, 356, 457, 508, 590, 509, 357, 539],\n", - " 419: [1196, 2858, 1240, 1265, 2028, 1304, 924, 1210, 1207, 111],\n", - " 420: [318, 593, 509, 25, 608, 337, 150, 508, 17, 50],\n", - " 421: [480, 364, 110, 318, 539, 380, 593, 527, 377, 34],\n", - " 422: [780, 786, 736, 648, 95, 832, 6, 62, 9, 805],\n", - " 424: [1288, 1094, 1193, 1207, 1197, 1394, 1225, 1077, 858, 1276],\n", - " 425: [2858, 2762, 593, 2959, 2571, 1617, 318, 296, 858, 1784],\n", - " 426: [2858, 912, 318, 1221, 750, 1089, 1206, 1136, 924, 1252],\n", - " 427: [296, 1291, 1036, 2028, 1198, 2571, 1196, 110, 47, 2858],\n", - " 428: [480, 1197, 1270, 1210, 260, 329, 380, 592, 589, 1097],\n", - " 429: [593, 1240, 2571, 318, 589, 1196, 50, 296, 527, 47],\n", - " 430: [3578, 4993, 2959, 2571, 5952, 47, 4886, 1210, 1196, 1036],\n", - " 431: [593, 3578, 1291, 2329, 1196, 2959, 1036, 1198, 296, 2571],\n", - " 432: [34, 539, 357, 161, 225, 480, 608, 377, 62, 11],\n", - " 433: [480, 150, 1036, 593, 318, 1240, 1270, 648, 539, 6],\n", - " 434: [1240, 589, 1197, 1270, 593, 1214, 1200, 480, 296, 1610],\n", - " 435: [1089, 2858, 296, 1196, 4993, 593, 50, 1200, 5952, 47],\n", - " 436: [150, 593, 588, 589, 527, 47, 590, 377, 592, 161],\n", - " 437: [1193, 1617, 858, 1207, 912, 923, 1225, 1304, 1230, 1394],\n", - " 438: [608, 1036, 1291, 1270, 527, 2028, 780, 1610, 50, 592],\n", - " 439: [593, 296, 2858, 318, 1196, 1208, 858, 608, 1197, 2571],\n", - " 440: [2571, 2028, 1196, 1036, 1089, 1197, 589, 1270, 1617, 1210],\n", - " 441: [110, 480, 150, 356, 592, 474, 593, 318, 590, 588],\n", - " 443: [296, 527, 608, 2028, 1617, 1358, 1094, 50, 1213, 1704],\n", - " 444: [260, 480, 1210, 1200, 1617, 593, 1304, 318, 110, 858],\n", - " 445: [4993, 1196, 593, 912, 750, 1193, 4226, 111, 858, 296],\n", - " 446: [110, 47, 50, 527, 592, 590, 364, 377, 10, 165],\n", - " 447: [2858, 1265, 50, 1193, 858, 1213, 1196, 235, 1208, 904],\n", - " 448: [2997, 1196, 2959, 2762, 1617, 858, 296, 2571, 2028, 2396],\n", - " 449: [1617, 2028, 296, 3147, 110, 2502, 318, 1610, 1036, 1704],\n", - " 450: [356, 1265, 296, 1291, 1136, 1, 457, 912, 1704, 1213],\n", - " 451: [1214, 2959, 1200, 4886, 541, 1198, 593, 3578, 1240, 1270],\n", - " 452: [110, 589, 593, 380, 733, 150, 1210, 1036, 32, 592],\n", - " 453: [150, 457, 480, 110, 318, 590, 377, 356, 161, 593],\n", - " 454: [150, 356, 480, 318, 593, 380, 527, 592, 539, 47],\n", - " 455: [780, 32, 1393, 62, 648, 25, 736, 593, 527, 356],\n", - " 456: [150, 356, 527, 380, 474, 508, 480, 225, 377, 590],\n", - " 458: [2571, 1617, 1196, 2028, 593, 2959, 1704, 2997, 1197, 858],\n", - " 459: [3578, 4993, 1270, 1198, 2762, 1240, 4886, 2858, 2028, 480],\n", - " 460: [480, 356, 592, 589, 318, 377, 364, 47, 292, 474],\n", - " 461: [593, 318, 527, 356, 780, 110, 1210, 36, 589, 25],\n", - " 462: [527, 150, 296, 356, 110, 508, 1, 47, 480, 17],\n", - " 463: [2858, 1291, 608, 541, 1265, 1208, 1387, 1213, 2959, 924],\n", - " 464: [1097, 356, 318, 1196, 2571, 858, 1704, 2762, 593, 2028],\n", - " 465: [4226, 923, 527, 541, 1136, 2997, 750, 2028, 1214, 912],\n", - " 466: [1196, 2571, 1291, 1198, 1036, 593, 1197, 1214, 1240, 1200],\n", - " 467: [2571, 1196, 1210, 1270, 1527, 541, 1291, 1198, 480, 1580],\n", - " 468: [318, 50, 36, 34, 608, 21, 110, 590, 356, 508],\n", - " 469: [1197, 1617, 858, 2959, 1580, 110, 50, 1193, 2716, 750],\n", - " 470: [1193, 593, 1214, 1213, 2571, 527, 923, 2028, 1196, 904],\n", - " 471: [150, 377, 480, 588, 595, 380, 225, 185, 590, 110],\n", - " 472: [377, 110, 508, 380, 592, 527, 594, 1, 597, 161],\n", - " 473: [36, 1, 141, 527, 593, 783, 1393, 6, 318, 296],\n", - " 474: [589, 1374, 1580, 1198, 1291, 1036, 32, 2916, 750, 1584],\n", - " 475: [2858, 1617, 904, 2997, 1196, 1193, 2028, 2571, 2762, 1208],\n", - " 476: [1089, 858, 2762, 1193, 1270, 4886, 111, 1197, 1213, 6874],\n", - " 477: [2858, 1208, 3578, 1240, 750, 589, 7361, 1270, 4886, 608],\n", - " 479: [858, 1230, 1221, 904, 1094, 908, 1089, 923, 1225, 912],\n", - " 480: [1270, 1210, 1036, 1193, 1208, 318, 589, 1089, 527, 1213],\n", - " 481: [110, 2762, 1197, 541, 608, 527, 1610, 1193, 150, 380],\n", - " 482: [593, 3578, 48516, 2571, 6874, 2858, 2762, 1198, 1291, 1196],\n", - " 483: [377, 588, 225, 508, 474, 161, 292, 296, 47, 11],\n", - " 484: [736, 648, 62, 36, 786, 719, 783, 737, 694, 32],\n", - " 485: [1265, 1197, 34, 260, 2028, 1288, 32, 150, 356, 1247],\n", - " 486: [593, 2858, 2762, 318, 296, 1197, 1136, 356, 858, 1036],\n", - " 487: [2858, 296, 593, 1617, 2959, 1089, 2028, 527, 1196, 1265],\n", - " 488: [110, 377, 356, 150, 165, 588, 590, 364, 593, 539],\n", - " 489: [527, 593, 296, 912, 1197, 1196, 1617, 1198, 541, 923],\n", - " 490: [1197, 1193, 593, 1036, 296, 260, 1136, 608, 356, 2571],\n", - " 491: [3578, 296, 593, 2028, 4993, 589, 1198, 1210, 2329, 50],\n", - " 492: [593, 318, 527, 1196, 296, 1197, 2858, 1193, 858, 608],\n", - " 493: [593, 608, 2028, 1196, 1617, 2571, 36, 111, 1208, 150],\n", - " 494: [356, 150, 474, 480, 225, 527, 377, 6, 349, 292],\n", - " 495: [150, 225, 539, 377, 161, 11, 457, 356, 480, 474],\n", - " 496: [1036, 110, 318, 480, 356, 1270, 527, 1196, 1200, 1610],\n", - " 497: [2858, 593, 296, 541, 1193, 1196, 608, 750, 1136, 1214],\n", - " 498: [908, 1288, 923, 912, 1193, 1230, 1136, 904, 1197, 1207],\n", - " 499: [527, 36, 593, 318, 1193, 1196, 1213, 1197, 1265, 25],\n", - " 500: [50, 1094, 1089, 2858, 1193, 1265, 34, 858, 1208, 497],\n", - " 501: [318, 527, 380, 1240, 34, 296, 1610, 780, 1307, 1259],\n", - " 502: [2571, 2959, 3578, 2028, 2355, 2683, 1704, 1196, 3114, 3147],\n", - " 503: [1196, 1291, 1210, 2329, 1214, 47, 1193, 1089, 50, 1208],\n", - " 504: [508, 110, 590, 539, 377, 21, 225, 588, 357, 380],\n", - " 505: [480, 150, 377, 457, 593, 527, 733, 597, 296, 474],\n", - " 506: [608, 110, 1197, 1240, 1036, 1270, 1, 21, 1265, 2858],\n", - " 507: [356, 480, 780, 593, 318, 380, 527, 589, 377, 1],\n", - " 508: [593, 2571, 2858, 296, 2028, 318, 1240, 858, 1193, 608],\n", - " 509: [1196, 3578, 318, 4993, 1210, 110, 1198, 1036, 589, 1197],\n", - " 510: [110, 457, 588, 296, 539, 508, 380, 377, 589, 592],\n", - " 511: [480, 457, 377, 356, 474, 225, 292, 588, 318, 592],\n", - " 512: [1094, 1213, 1193, 296, 36, 527, 593, 858, 994, 1089],\n", - " 513: [1094, 1270, 1225, 1213, 969, 919, 1, 2791, 235, 1097],\n", - " 515: [904, 1247, 923, 903, 913, 899, 1254, 1304, 1250, 1193],\n", - " 516: [589, 1036, 50, 1240, 1136, 1197, 608, 1193, 6377, 1],\n", - " 517: [593, 356, 457, 225, 480, 474, 165, 527, 589, 377],\n", - " 518: [296, 858, 2858, 1198, 1197, 110, 1617, 1291, 1213, 50],\n", - " 520: [858, 296, 593, 527, 1213, 1193, 50, 111, 1208, 608],\n", - " 521: [296, 527, 47, 110, 2762, 589, 2858, 1291, 457, 1198],\n", - " 522: [527, 1193, 50, 32, 1196, 2858, 1221, 110, 150, 1207],\n", - " 523: [296, 593, 111, 25, 1089, 1197, 1196, 150, 2858, 21],\n", - " 524: [593, 2762, 1617, 1196, 527, 1193, 4993, 1136, 1198, 608],\n", - " 525: [110, 589, 356, 480, 318, 592, 380, 47, 296, 150],\n", - " 526: [736, 62, 1393, 356, 593, 1210, 110, 318, 141, 527],\n", - " 527: [150, 380, 1265, 589, 110, 364, 457, 593, 780, 1196],\n", - " 529: [593, 2858, 318, 1196, 1197, 2571, 50, 1136, 608, 2959],\n", - " 530: [225, 161, 356, 377, 539, 480, 457, 588, 593, 508],\n", - " 531: [110, 457, 356, 593, 380, 588, 480, 527, 364, 539],\n", - " 532: [2858, 593, 1089, 1208, 608, 541, 2959, 1193, 750, 1214],\n", - " 533: [2028, 1288, 111, 1304, 1213, 1089, 356, 1097, 150, 1220],\n", - " 534: [7153, 4963, 3578, 5349, 4886, 4226, 2959, 6539, 2571, 47],\n", - " 535: [908, 1207, 1193, 926, 1250, 1617, 1221, 1304, 1288, 910],\n", - " 536: [356, 318, 527, 110, 440, 590, 36, 480, 21, 11],\n", - " 537: [25, 62, 733, 780, 1, 32, 1393, 648, 527, 783],\n", - " 539: [356, 318, 480, 110, 457, 296, 592, 380, 595, 47],\n", - " 540: [2571, 1196, 1240, 1197, 2716, 593, 1210, 1270, 1193, 1333],\n", - " 541: [608, 318, 296, 380, 1580, 1265, 150, 21, 858, 349],\n", - " 542: [923, 1247, 750, 1304, 1208, 608, 1234, 1230, 1276, 969],\n", - " 543: [110, 2028, 608, 296, 1610, 47, 4886, 1193, 50, 924],\n", - " 544: [4226, 593, 2571, 2858, 1136, 1214, 1198, 4886, 4011, 32587],\n", - " 545: [1196, 1197, 1210, 260, 3578, 912, 592, 1207, 904, 150],\n", - " 546: [6539, 4886, 4963, 5445, 33166, 44191, 36529, 32587, 49272, 45722],\n", - " 547: [356, 380, 318, 592, 474, 296, 161, 733, 225, 165],\n", - " 548: [1197, 1270, 356, 1265, 593, 1097, 527, 1291, 150, 480],\n", - " 549: [110, 356, 480, 527, 296, 380, 364, 592, 589, 377],\n", - " 550: [1197, 593, 1307, 1221, 1252, 1208, 1204, 1259, 2028, 1292],\n", - " 551: [1197, 1196, 318, 1240, 608, 1193, 110, 1270, 1221, 457],\n", - " 552: [593, 1197, 1617, 527, 1265, 2571, 1196, 1732, 858, 47],\n", - " 553: [356, 150, 377, 10, 527, 588, 316, 590, 364, 780],\n", - " 554: [1193, 296, 1208, 593, 858, 2997, 50, 608, 923, 750],\n", - " 555: [2571, 1197, 1214, 1036, 1200, 541, 1136, 608, 858, 1387],\n", - " 556: [457, 590, 539, 161, 380, 25, 474, 608, 377, 588],\n", - " 557: [36, 608, 733, 1, 780, 6, 9, 95, 25, 527],\n", - " 558: [1196, 2571, 2762, 1270, 1193, 260, 47, 1210, 589, 1],\n", - " 559: [1196, 260, 1240, 1198, 1527, 1036, 1291, 1197, 2571, 589],\n", - " 560: [1213, 858, 608, 527, 111, 1208, 1196, 1197, 2571, 356],\n", - " 561: [480, 1198, 4886, 2762, 1270, 2028, 318, 592, 50, 527],\n", - " 562: [480, 508, 21, 440, 296, 454, 236, 316, 252, 248],\n", - " 563: [593, 1, 527, 296, 318, 17, 6, 50, 62, 780],\n", - " 564: [1197, 1240, 593, 527, 2571, 1304, 858, 1136, 1278, 912],\n", - " 565: [593, 318, 1196, 1197, 527, 296, 2028, 260, 1210, 2571],\n", - " 566: [1193, 1208, 1207, 111, 318, 527, 36, 1246, 1183, 509],\n", - " 567: [150, 110, 225, 597, 587, 292, 733, 349, 593, 780],\n", - " 568: [648, 260, 25, 32, 376, 9, 474, 832, 380, 608],\n", - " 569: [150, 110, 318, 356, 380, 480, 589, 527, 161, 377],\n", - " 570: [593, 296, 1193, 1196, 858, 1197, 2028, 1617, 2858, 110],\n", - " 571: [593, 1270, 1036, 296, 1197, 2762, 1240, 589, 2858, 2028],\n", - " 572: [1036, 1193, 2762, 3578, 1214, 1200, 1136, 318, 50, 1617],\n", - " 573: [296, 1617, 1193, 150, 2997, 110, 1197, 111, 457, 858],\n", - " 574: [110, 356, 150, 318, 474, 592, 733, 539, 349, 780],\n", - " 575: [780, 733, 1, 36, 805, 719, 783, 736, 9, 765],\n", - " 576: [593, 608, 1193, 36, 858, 1617, 50, 111, 1089, 356],\n", - " 577: [1193, 527, 1304, 1197, 356, 1196, 1265, 296, 1617, 919],\n", - " 578: [1196, 1210, 1197, 1270, 1617, 593, 1374, 924, 2716, 2028],\n", - " 579: [110, 1240, 1270, 2028, 1197, 858, 608, 1200, 457, 1617],\n", - " 580: [356, 593, 1196, 3578, 480, 296, 364, 1270, 318, 588],\n", - " 581: [356, 150, 110, 593, 457, 380, 539, 377, 34, 592],\n", - " 582: [923, 1197, 1288, 953, 1278, 920, 1221, 750, 1265, 1213],\n", - " 583: [1196, 608, 541, 2571, 1214, 1200, 1580, 1210, 593, 1617],\n", - " 584: [150, 110, 165, 588, 225, 364, 161, 590, 292, 780],\n", - " 585: [1197, 1208, 1221, 318, 800, 1259, 1204, 2028, 1250, 1233],\n", - " 586: [608, 1617, 1193, 593, 2028, 527, 296, 318, 1265, 912],\n", - " 587: [296, 1198, 2858, 1089, 47, 50, 1213, 1291, 1197, 2571],\n", - " 588: [150, 318, 593, 110, 21, 380, 377, 508, 590, 364],\n", - " 589: [593, 608, 318, 111, 1197, 1208, 21, 858, 1617, 457],\n", - " 590: [1197, 1617, 110, 1265, 356, 527, 1036, 1270, 2858, 150],\n", - " 591: [1580, 1196, 2571, 1517, 1923, 2762, 593, 2716, 2918, 608],\n", - " 592: [608, 1094, 1617, 2997, 750, 1208, 2858, 296, 904, 111],\n", - " 593: [480, 150, 592, 527, 377, 474, 292, 364, 595, 34],\n", - " 594: [1, 736, 32, 786, 1393, 608, 95, 480, 36, 6],\n", - " 595: [1193, 919, 1259, 318, 1094, 1617, 1265, 1278, 2028, 1394],\n", - " 596: [908, 1207, 1193, 1304, 1094, 1225, 1234, 858, 1394, 1617],\n", - " 597: [17, 527, 1197, 1247, 1617, 593, 497, 34, 25, 1230],\n", - " 598: [1240, 1387, 1200, 1270, 1374, 1997, 1258, 1196, 2571, 2716],\n", - " 599: [908, 904, 946, 899, 903, 910, 926, 1304, 1207, 1247],\n", - " 600: [1196, 2571, 1270, 593, 1197, 1198, 260, 1291, 1036, 296],\n", - " 601: [590, 592, 780, 225, 608, 161, 733, 36, 300, 736],\n", - " 602: [1196, 1193, 1136, 912, 919, 1304, 608, 1288, 1234, 1221],\n", - " 603: [593, 265, 1193, 150, 1094, 17, 2396, 357, 1207, 590],\n", - " 604: [6, 110, 356, 527, 36, 150, 589, 260, 1, 780],\n", - " 605: [593, 111, 2858, 1617, 1213, 858, 1197, 110, 1208, 1214],\n", - " 606: [1196, 1240, 1036, 1197, 1291, 593, 608, 527, 1210, 1617],\n", - " 607: [1196, 296, 2858, 2571, 2028, 527, 1617, 1193, 2762, 1136],\n", - " 608: [541, 1196, 2571, 1198, 1210, 1240, 32, 1089, 593, 1291],\n", - " 609: [150, 593, 377, 592, 165, 539, 292, 474, 508, 597],\n", - " 610: [1207, 908, 912, 608, 1225, 1208, 1234, 1221, 1094, 1252],\n", - " 612: [780, 95, 260, 6, 104, 783, 377, 36, 653, 376],\n", - " 613: [1197, 260, 1270, 1240, 1265, 480, 2571, 1610, 1, 1580],\n", - " 614: [1291, 1036, 1214, 1197, 2571, 1210, 1270, 589, 593, 1610],\n", - " 616: [1196, 1240, 1270, 260, 1197, 1200, 858, 1214, 364, 1617],\n", - " 617: [318, 590, 364, 296, 608, 592, 1265, 595, 161, 36],\n", - " 618: [296, 36, 50, 1094, 25, 1213, 1197, 1265, 356, 457],\n", - " 619: [1196, 1036, 1291, 1197, 2571, 1270, 1221, 1610, 593, 1617],\n", - " 620: [4226, 4993, 4027, 3578, 3996, 4963, 4995, 2959, 4973, 2858],\n", - " 621: [1288, 858, 750, 2571, 260, 1208, 1240, 1213, 1291, 924],\n", - " 622: [1291, 1036, 3578, 1270, 527, 50, 6539, 4886, 592, 1197],\n", - " 623: [150, 457, 356, 527, 377, 480, 588, 590, 508, 11],\n", - " 624: [2571, 2762, 2716, 1580, 1197, 1265, 588, 2858, 2959, 2396],\n", - " 625: [1198, 1240, 1291, 1197, 1200, 858, 2571, 1214, 608, 1221],\n", - " 627: [2959, 1196, 47, 1617, 1036, 1270, 1210, 1197, 2329, 1291],\n", - " 628: [110, 508, 457, 377, 539, 356, 454, 474, 21, 11],\n", - " 629: [539, 21, 440, 508, 356, 318, 457, 357, 590, 527],\n", - " 630: [648, 786, 62, 6, 380, 260, 377, 9, 141, 783],\n", - " 631: [1207, 1208, 858, 908, 912, 904, 1221, 608, 1252, 111],\n", - " 632: [1617, 912, 1197, 2396, 260, 919, 1193, 858, 318, 296],\n", - " 633: [912, 1136, 318, 1288, 1197, 924, 1247, 1291, 1206, 2762],\n", - " 634: [1270, 318, 150, 592, 527, 296, 2571, 2797, 367, 1610],\n", - " 635: [318, 608, 2028, 2762, 1197, 2571, 1265, 1, 1196, 1259],\n", - " 636: [593, 1196, 2858, 1036, 1193, 608, 1208, 50, 1240, 1214],\n", - " 637: [2571, 1196, 589, 593, 457, 356, 480, 1210, 527, 318],\n", - " 638: [21, 265, 593, 161, 457, 236, 110, 252, 497, 377],\n", - " 639: [3578, 2571, 2762, 1196, 110, 4226, 589, 1210, 50, 2329],\n", - " 640: [593, 296, 2762, 1036, 527, 1240, 480, 260, 1200, 2329],\n", - " 641: [110, 356, 150, 588, 592, 364, 296, 527, 590, 47],\n", - " 642: [527, 1307, 356, 1207, 2028, 1208, 2571, 1136, 908, 912],\n", - " 643: [1214, 1230, 1198, 1094, 1265, 1288, 924, 541, 1136, 2858],\n", - " 644: [480, 1580, 1197, 356, 1610, 2762, 1527, 2716, 780, 296],\n", - " 645: [733, 780, 110, 95, 480, 349, 589, 457, 150, 648],\n", - " 646: [380, 356, 480, 364, 110, 150, 592, 589, 595, 593],\n", - " 647: [356, 1036, 736, 316, 592, 10, 292, 161, 494, 1210],\n", - " 648: [608, 908, 1208, 1230, 296, 750, 1288, 527, 1221, 1089],\n", - " 649: [1197, 527, 1270, 110, 593, 150, 1196, 318, 1784, 1],\n", - " 650: [1265, 593, 1617, 296, 1136, 2028, 858, 527, 2791, 1097],\n", - " 651: [904, 1208, 1304, 1230, 913, 1254, 111, 922, 1234, 1288],\n", - " 652: [1247, 919, 1197, 608, 318, 593, 364, 1207, 1230, 1304],\n", - " 653: [318, 593, 527, 296, 356, 1270, 150, 1197, 1784, 1196],\n", - " 654: [457, 480, 380, 589, 527, 592, 296, 377, 47, 588],\n", - " 655: [110, 593, 589, 527, 588, 608, 50, 34, 32, 1097],\n", - " 656: [457, 588, 589, 590, 527, 292, 500, 21, 780, 10],\n", - " 657: [750, 1136, 1304, 1094, 1265, 2762, 1288, 1206, 1394, 1234],\n", - " 658: [2858, 318, 2762, 858, 50, 1196, 527, 1213, 1617, 3147],\n", - " 659: [296, 2959, 1617, 2028, 608, 1089, 1193, 50, 4226, 2329],\n", - " 660: [296, 527, 2959, 356, 110, 2329, 589, 858, 4226, 1196],\n", - " 661: [150, 377, 592, 318, 474, 349, 539, 165, 588, 364],\n", - " 662: [1208, 593, 527, 1247, 904, 1207, 318, 923, 1230, 908],\n", - " 663: [1198, 1196, 1136, 1240, 1291, 260, 858, 296, 1214, 1270],\n", - " 664: [1197, 1196, 318, 527, 608, 1270, 296, 1240, 2571, 110],\n", - " 665: [2858, 1193, 750, 1617, 858, 1089, 593, 904, 1214, 1221],\n", - " 666: [2959, 2858, 4226, 541, 593, 1206, 1208, 1136, 750, 1089],\n", - " 667: [1197, 1193, 2571, 1210, 1036, 593, 527, 1617, 2858, 2716],\n", - " 668: [1208, 541, 750, 1193, 111, 858, 1221, 2858, 1089, 1213],\n", - " 669: [377, 593, 590, 474, 10, 364, 296, 527, 47, 292],\n", - " 670: [780, 736, 648, 1, 260, 25, 95, 376, 32, 608],\n", - " 671: [908, 904, 1207, 1304, 296, 913, 1234, 903, 994, 910],\n", - " 672: [318, 2858, 608, 589, 47, 1270, 1036, 1213, 32, 1265],\n", - " 674: [1200, 1210, 1214, 1198, 1527, 1291, 589, 1097, 1127, 480],\n", - " 675: [110, 589, 380, 47, 457, 780, 377, 588, 2571, 50],\n", - " 676: [377, 225, 539, 161, 110, 356, 587, 457, 474, 480],\n", - " 677: [356, 380, 377, 539, 592, 47, 165, 1, 349, 595],\n", - " 678: [608, 1207, 1265, 1214, 1136, 1, 111, 904, 50, 1617],\n", - " 679: [1197, 589, 1240, 1036, 457, 1198, 380, 318, 1291, 527],\n", - " 680: [1580, 1197, 1036, 1610, 780, 110, 1, 1291, 1198, 592],\n", - " 681: [2028, 2571, 1196, 593, 1270, 318, 1240, 1291, 1197, 1617],\n", - " 683: [2762, 1240, 1610, 4963, 2028, 2959, 592, 377, 593, 457],\n", - " 684: [4886, 593, 4993, 4963, 5952, 7153, 2959, 4306, 47, 588],\n", - " 685: [32, 1196, 593, 1197, 780, 296, 527, 733, 1198, 318],\n", - " 686: [1617, 541, 1193, 912, 1208, 2571, 1270, 296, 1252, 527],\n", - " 688: [593, 1617, 1208, 1198, 1221, 318, 2028, 1200, 2959, 1291],\n", - " 689: [380, 589, 377, 527, 592, 364, 47, 165, 474, 10],\n", - " 690: [648, 62, 95, 104, 32, 356, 377, 1393, 380, 608],\n", - " 691: [1270, 592, 2762, 608, 1200, 150, 858, 1097, 1214, 377],\n", - " 693: [150, 356, 508, 590, 539, 377, 380, 225, 34, 161],\n", - " 694: [608, 527, 1197, 1247, 1193, 318, 1307, 296, 1230, 1304],\n", - " 695: [296, 457, 608, 1196, 1210, 1265, 589, 588, 380, 508],\n", - " 696: [2858, 2571, 1196, 2959, 2716, 1197, 593, 1210, 2706, 1617],\n", - " 697: [],\n", - " 698: [858, 608, 1213, 541, 1136, 1270, 260, 356, 2997, 1221],\n", - " 699: [2571, 1196, 593, 1291, 589, 2028, 110, 296, 3578, 1210],\n", - " 700: [110, 296, 356, 480, 590, 50, 21, 508, 592, 588],\n", - " 701: [248, 377, 356, 150, 380, 500, 367, 589, 292, 110],\n", - " 702: [1197, 1270, 1198, 1193, 2571, 1291, 858, 1617, 1036, 1208],\n", - " 703: [2797, 1197, 1079, 1220, 2918, 2406, 1, 1234, 2174, 1923],\n", - " 704: [2706, 2858, 1291, 4306, 593, 1270, 1036, 356, 1198, 2716],\n", - " 705: [2028, 1617, 593, 1089, 2762, 2571, 296, 1196, 858, 608],\n", - " 706: [736, 6, 260, 95, 1, 786, 1073, 494, 36, 653],\n", - " 707: [318, 608, 265, 337, 1094, 300, 356, 25, 509, 34],\n", - " 708: [1196, 1197, 1198, 1617, 1210, 1270, 1374, 1291, 1036, 1221],\n", - " 709: [1240, 1291, 1036, 1214, 1210, 1270, 593, 541, 110, 527],\n", - " 710: [912, 904, 1136, 593, 1213, 1208, 1304, 1247, 1234, 923],\n", - " 711: [45499, 356, 1196, 110, 1580, 4306, 1270, 593, 1210, 4993],\n", - " 712: [593, 508, 34, 21, 36, 457, 300, 539, 515, 110],\n", - " 714: [593, 608, 1196, 1265, 1193, 2028, 1, 1270, 1210, 1198],\n", - " 715: [593, 318, 110, 356, 150, 457, 589, 527, 50, 480],\n", - " 716: [593, 296, 318, 1094, 858, 1, 1089, 1394, 1580, 1193],\n", - " 718: [318, 296, 2858, 590, 527, 508, 608, 1094, 300, 356],\n", - " 719: [225, 380, 161, 11, 474, 440, 185, 318, 454, 590],\n", - " 720: [356, 110, 593, 589, 592, 597, 595, 47, 587, 165],\n", - " 721: [377, 95, 150, 225, 356, 480, 597, 457, 508, 141],\n", - " 723: [593, 2571, 2858, 296, 1196, 4993, 50, 2028, 1291, 858],\n", - " 724: [36, 25, 780, 593, 527, 141, 318, 62, 6, 356],\n", - " 725: [2028, 1617, 2396, 1196, 2716, 2997, 3578, 2700, 2395, 858],\n", - " 726: [1136, 260, 1270, 1193, 1265, 1220, 608, 1240, 296, 318],\n", - " 727: [457, 480, 588, 589, 1, 508, 377, 592, 539, 34],\n", - " 728: [2959, 1291, 1198, 1036, 593, 858, 2858, 5952, 2762, 3578],\n", - " 729: [539, 236, 282, 377, 440, 590, 292, 587, 356, 508],\n", - " 730: [110, 480, 356, 457, 593, 589, 588, 377, 364, 47],\n", - " 731: [608, 457, 380, 1617, 1610, 1, 1291, 34, 21, 1198],\n", - " 732: [593, 2858, 318, 1193, 296, 527, 7361, 6377, 30707, 4226],\n", - " 733: [2571, 2762, 2959, 47, 1196, 5952, 593, 2858, 4226, 4886],\n", - " 734: [150, 318, 110, 527, 480, 592, 588, 380, 1036, 589],\n", - " 735: [318, 527, 150, 47, 480, 590, 589, 588, 539, 380],\n", - " 736: [2571, 4993, 2762, 2959, 4963, 3897, 4226, 1196, 4886, 2706],\n", - " 737: [780, 6, 260, 1, 1210, 36, 1527, 736, 25, 608],\n", - " 738: [736, 786, 1, 32, 95, 6, 9, 1073, 377, 480],\n", - " 739: [110, 356, 1036, 318, 480, 1210, 2571, 47, 349, 296],\n", - " 740: [527, 858, 1197, 1193, 296, 1270, 1240, 1291, 1213, 1036],\n", - " 741: [2028, 527, 356, 1197, 2959, 110, 1213, 1089, 1, 1784],\n", - " 742: [593, 1197, 527, 858, 4995, 1089, 1193, 1200, 1214, 2502],\n", - " 743: [150, 356, 110, 592, 377, 457, 589, 318, 593, 539],\n", - " 744: [527, 608, 1617, 1207, 1208, 1196, 2858, 1221, 1247, 260],\n", - " 745: [2028, 356, 457, 1580, 1136, 1208, 2396, 592, 4993, 2329],\n", - " 746: [1196, 858, 912, 2028, 2571, 1208, 1221, 111, 1193, 904],\n", - " 748: [593, 296, 457, 161, 21, 36, 34, 589, 608, 337],\n", - " 749: [780, 733, 1073, 736, 260, 480, 364, 786, 1210, 6],\n", - " 750: [4226, 2571, 4993, 2762, 4878, 2329, 2028, 7153, 5952, 3578],\n", - " 751: [110, 380, 480, 457, 377, 592, 589, 356, 590, 318],\n", - " 752: [110, 318, 356, 457, 593, 480, 380, 364, 592, 527],\n", - " 753: [1193, 1197, 1196, 858, 527, 1221, 1208, 296, 1617, 1270],\n", - " 754: [5952, 4226, 6539, 48516, 4886, 4995, 5445, 2959, 5989, 6016],\n", - " 755: [318, 508, 265, 356, 457, 110, 34, 25, 590, 337],\n", - " 756: [62, 260, 1393, 527, 141, 783, 1357, 508, 265, 32],\n", - " 757: [593, 318, 150, 527, 589, 780, 32, 480, 380, 377],\n", - " 758: [480, 356, 380, 364, 457, 377, 539, 318, 592, 161],\n", - " 759: [1210, 1200, 593, 1214, 1197, 1610, 356, 1580, 296, 318],\n", - " 761: [356, 2571, 1196, 2762, 1270, 3578, 110, 589, 593, 480],\n", - " 762: [36, 32, 780, 62, 527, 6, 648, 593, 318, 356],\n", - " 763: [608, 318, 25, 296, 32, 50, 111, 1193, 265, 1094],\n", - " 764: [36, 296, 1094, 1617, 25, 265, 50, 1193, 111, 1358],\n", - " 765: [1196, 1240, 1197, 260, 1198, 527, 318, 1387, 541, 1220],\n", - " 766: [593, 527, 1270, 296, 1291, 2571, 1036, 589, 858, 1265],\n", - " 767: [1240, 1270, 1210, 1200, 110, 2028, 1580, 480, 608, 356],\n", - " 768: [48516, 49272, 48780, 55820, 37733, 36529, 54272, 44199, 6016, 2959],\n", - " 769: [508, 150, 34, 457, 440, 161, 539, 11, 225, 62],\n", - " 770: [62, 733, 36, 260, 95, 9, 653, 765, 1393, 74],\n", - " 771: [1197, 1210, 110, 1580, 592, 2028, 593, 1265, 1097, 474],\n", - " 772: [593, 2858, 296, 1196, 527, 2762, 318, 2571, 356, 1617],\n", - " 773: [356, 1, 593, 32, 608, 527, 318, 296, 480, 589],\n", - " 774: [593, 296, 1196, 2858, 2571, 1197, 608, 527, 1136, 1193],\n", - " 775: [225, 110, 508, 21, 593, 292, 527, 248, 357, 780],\n", - " 776: [1193, 527, 608, 1304, 318, 1221, 1208, 1196, 296, 1617],\n", - " 777: [1230, 1617, 1193, 1265, 750, 1208, 1278, 1304, 1172, 904],\n", - " 780: [1, 2858, 2571, 2797, 1704, 1220, 34, 1221, 2918, 2791],\n", - " 781: [608, 1094, 2858, 1394, 1089, 2396, 593, 296, 50, 1197],\n", - " 782: [1089, 296, 1213, 50, 223, 2858, 593, 778, 608, 318],\n", - " 783: [593, 1198, 1197, 2571, 1291, 1210, 1136, 2858, 296, 356],\n", - " 784: [2959, 2762, 527, 589, 356, 1240, 1193, 1089, 260, 1617],\n", - " 785: [150, 527, 508, 480, 539, 474, 608, 380, 32, 588],\n", - " 786: [589, 110, 356, 593, 380, 377, 2028, 588, 32, 47],\n", - " 787: [36, 318, 1197, 1193, 150, 1225, 1094, 300, 593, 1247],\n", - " 788: [1196, 296, 1210, 1240, 1197, 1089, 260, 541, 5349, 32587],\n", - " 789: [480, 34, 597, 296, 364, 21, 589, 11, 440, 161],\n", - " 790: [608, 356, 110, 1196, 1193, 589, 588, 1207, 919, 1097],\n", - " 791: [1617, 1193, 858, 608, 1247, 908, 1252, 1207, 923, 2028],\n", - " 792: [593, 296, 110, 527, 457, 356, 47, 590, 589, 480],\n", - " 793: [593, 2028, 1291, 1198, 1270, 2959, 2858, 356, 2762, 296],\n", - " 794: [912, 1196, 1617, 904, 1197, 541, 1234, 1193, 1136, 1198],\n", - " 795: [356, 380, 480, 292, 349, 592, 377, 588, 539, 733],\n", - " 796: [36, 780, 32, 25, 1393, 527, 733, 1197, 1073, 858],\n", - " 797: [593, 527, 296, 1197, 1617, 34, 50, 2858, 1196, 110],\n", - " 798: [1291, 593, 858, 2028, 1200, 110, 527, 1617, 296, 1214],\n", - " 799: [380, 589, 592, 364, 47, 539, 316, 508, 50, 153],\n", - " 800: [36, 608, 733, 1, 25, 1393, 780, 648, 104, 527],\n", - " 801: [2858, 1036, 2762, 47, 3578, 1270, 318, 1240, 541, 50],\n", - " 802: [150, 110, 457, 318, 539, 47, 588, 364, 225, 590],\n", - " 803: [1617, 527, 858, 920, 1299, 1197, 1278, 899, 1079, 265],\n", - " 804: [318, 356, 589, 150, 296, 527, 457, 50, 2762, 480],\n", - " 805: [2959, 1036, 1197, 2028, 2762, 1240, 4963, 589, 4226, 1270],\n", - " 806: [150, 296, 508, 380, 539, 377, 588, 34, 592, 589],\n", - " 807: [110, 380, 457, 480, 356, 589, 377, 592, 593, 474],\n", - " 808: [2571, 1580, 1270, 2762, 356, 1291, 2028, 780, 480, 1036],\n", - " 809: [2571, 593, 2028, 296, 318, 608, 1210, 858, 3578, 589],\n", - " 810: [150, 357, 318, 377, 225, 508, 588, 34, 11, 527],\n", - " 811: [648, 95, 260, 376, 494, 1, 783, 9, 6, 653],\n", - " 812: [110, 377, 34, 21, 357, 474, 590, 225, 380, 608],\n", - " 813: [1200, 1270, 1617, 1210, 608, 1580, 2716, 1193, 593, 1265],\n", - " 814: [1265, 1197, 1136, 2797, 356, 608, 1079, 1220, 1270, 2918],\n", - " 815: [1036, 1291, 480, 1197, 1, 457, 3578, 318, 527, 592],\n", - " 816: [110, 377, 161, 480, 380, 457, 356, 590, 318, 527],\n", - " 817: [36, 608, 337, 508, 1230, 1185, 1299, 1225, 25, 1956],\n", - " 818: [858, 1193, 2858, 1617, 296, 1208, 1221, 908, 2762, 1196],\n", - " 819: [4993, 7153, 2329, 4226, 5952, 5989, 2959, 4011, 5673, 4886],\n", - " 820: [593, 1198, 1617, 260, 1270, 32, 608, 2028, 858, 1089],\n", - " 821: [318, 1704, 527, 508, 1961, 593, 2028, 11, 110, 1682],\n", - " 822: [593, 36, 34, 357, 608, 588, 589, 592, 32, 47],\n", - " 823: [356, 593, 318, 1036, 1270, 527, 377, 474, 590, 34],\n", - " 824: [1230, 1193, 1288, 1208, 923, 913, 1292, 1617, 1267, 111],\n", - " 825: [2858, 2762, 318, 2571, 356, 296, 527, 1617, 2329, 2959],\n", - " 826: [1617, 593, 2028, 1198, 1270, 1291, 608, 1387, 750, 912],\n", - " 827: [380, 110, 225, 539, 589, 592, 318, 780, 454, 316],\n", - " 828: [110, 150, 356, 592, 539, 588, 161, 590, 733, 318],\n", - " 829: [608, 648, 1393, 25, 719, 9, 653, 5, 765, 494],\n", - " 830: [318, 1307, 608, 1270, 1265, 919, 357, 17, 457, 110],\n", - " 831: [440, 150, 1197, 34, 457, 318, 377, 588, 151, 593],\n", - " 832: [1200, 1208, 2571, 858, 1210, 1198, 1617, 912, 1197, 1252],\n", - " 833: [1196, 1193, 1210, 1265, 1200, 50, 2762, 1291, 32, 110],\n", - " 834: [593, 296, 1265, 356, 1704, 1617, 1136, 1784, 1089, 2571],\n", - " 835: [150, 527, 356, 110, 34, 36, 337, 590, 161, 265],\n", - " 836: [36, 780, 25, 6, 783, 736, 648, 1073, 9, 494],\n", - " 837: [2997, 1089, 296, 4226, 593, 50, 318, 1617, 1208, 1193],\n", - " 838: [608, 1196, 2858, 904, 750, 1304, 296, 1617, 1291, 1221],\n", - " 839: [904, 750, 908, 1193, 1207, 1208, 1252, 858, 1247, 1288],\n", - " 840: [904, 318, 1094, 1278, 1259, 1270, 1213, 2858, 969, 1097],\n", - " 841: [1580, 1036, 1198, 2916, 1291, 480, 2716, 1374, 780, 2628],\n", - " 842: [480, 364, 380, 356, 110, 377, 589, 590, 318, 457],\n", - " 843: [1304, 912, 908, 904, 608, 1225, 1234, 923, 1288, 1617],\n", - " 844: [2571, 1197, 1270, 1200, 2028, 1214, 1387, 1617, 608, 1265],\n", - " 846: [110, 380, 50, 47, 349, 161, 34, 508, 588, 21],\n", - " 847: [733, 1036, 2571, 380, 589, 1610, 480, 648, 1240, 457],\n", - " 848: [318, 593, 527, 21, 509, 150, 36, 265, 50, 457],\n", - " 849: [912, 2858, 1240, 919, 2716, 3114, 2947, 2571, 1580, 858],\n", - " 851: [593, 527, 318, 1, 608, 1291, 1240, 589, 480, 1036],\n", - " 852: [110, 150, 592, 590, 527, 165, 10, 474, 595, 50],\n", - " 853: [648, 95, 260, 36, 783, 62, 5, 719, 1073, 141],\n", - " 854: [1193, 1247, 1617, 908, 1304, 1230, 923, 904, 1213, 111],\n", - " 855: [527, 2858, 2028, 1193, 1089, 1213, 858, 111, 1704, 2762],\n", - " 856: [780, 110, 457, 1036, 1196, 356, 1291, 1240, 474, 733],\n", - " 857: [1291, 1198, 1210, 1197, 260, 457, 780, 2762, 592, 380],\n", - " 859: [1240, 1197, 2762, 1214, 318, 47, 32, 50, 2858, 858],\n", - " 860: [1641, 1923, 1914, 1784, 1617, 1094, 1307, 2580, 3253, 2762],\n", - " 861: [541, 1196, 1198, 2571, 1200, 1213, 1208, 1089, 1193, 1240],\n", - " 862: [110, 480, 364, 380, 590, 225, 508, 593, 11, 357],\n", - " 863: [110, 1, 1196, 1197, 457, 260, 1270, 858, 36, 25],\n", - " 864: [2028, 1704, 1197, 1196, 2571, 318, 593, 296, 2959, 527],\n", - " 865: [589, 2762, 527, 2028, 480, 1291, 1036, 32, 1270, 1],\n", - " 866: [1193, 541, 2858, 1214, 1617, 1200, 1240, 1036, 1270, 1291],\n", - " 867: [1193, 1265, 912, 593, 1307, 2858, 1240, 1221, 1291, 296],\n", - " 868: [608, 296, 50, 1089, 2571, 1197, 1265, 36, 1196, 2028],\n", - " 869: [593, 2571, 1196, 296, 608, 589, 1270, 1210, 1197, 2858],\n", - " 870: [296, 508, 480, 36, 377, 50, 21, 380, 161, 539],\n", - " 871: [1247, 318, 1230, 1304, 1394, 1197, 1252, 899, 1250, 1617],\n", - " 872: [608, 858, 527, 1617, 750, 541, 593, 318, 111, 296],\n", - " 873: [1196, 1240, 608, 593, 1270, 527, 1210, 260, 1617, 1036],\n", - " 874: [318, 527, 296, 1210, 608, 1270, 1291, 1617, 260, 1036],\n", - " 875: [34, 357, 21, 337, 457, 296, 25, 539, 110, 11],\n", - " 876: [150, 110, 380, 457, 589, 587, 597, 318, 364, 588],\n", - " 878: [908, 527, 296, 1617, 1214, 318, 1304, 1197, 1089, 1200],\n", - " 879: [1197, 1265, 1136, 1278, 1193, 858, 1394, 2918, 1230, 2858],\n", - " 881: [161, 1, 474, 357, 10, 349, 21, 225, 733, 440],\n", - " 882: [733, 356, 150, 380, 480, 377, 110, 539, 32, 457],\n", - " 883: [1196, 2571, 1291, 1197, 593, 318, 1198, 1270, 2028, 356],\n", - " 884: [780, 733, 36, 25, 1, 95, 260, 5, 608, 7],\n", - " 885: [1617, 1278, 1234, 1265, 912, 1307, 1291, 457, 1288, 2028],\n", - " 886: [1617, 296, 1196, 1197, 260, 356, 1210, 1610, 1704, 110],\n", - " 887: [527, 2762, 480, 588, 608, 1197, 1196, 1393, 1036, 1210],\n", - " 888: [593, 318, 296, 527, 47, 110, 50, 1089, 608, 356],\n", - " 889: [457, 356, 110, 377, 318, 225, 588, 474, 539, 480],\n", - " 890: [1196, 1210, 1610, 593, 1198, 380, 1270, 457, 260, 165],\n", - " 891: [593, 1196, 1210, 527, 1291, 2028, 1198, 1089, 541, 3578],\n", - " 892: [589, 480, 380, 1, 592, 377, 1193, 1291, 539, 1240],\n", - " 893: [593, 2959, 296, 47, 4993, 2858, 1291, 2762, 1036, 50],\n", - " 894: [50872, 48780, 52973, 53000, 49530, 53972, 47423, 55820, 48516, 48774],\n", - " 895: [480, 110, 457, 539, 588, 349, 592, 165, 292, 587],\n", - " 896: [593, 318, 111, 2858, 1193, 1208, 1617, 1213, 509, 1094],\n", - " 897: [150, 318, 356, 457, 296, 527, 480, 161, 225, 377],\n", - " 898: [1240, 1200, 1270, 1374, 1580, 480, 316, 1127, 1291, 2985],\n", - " 899: [539, 356, 225, 236, 500, 440, 248, 380, 588, 11],\n", - " 900: [17, 58, 62, 527, 1094, 296, 141, 780, 733, 318],\n", - " 901: [1196, 593, 1240, 1198, 260, 1210, 1291, 527, 1270, 296],\n", - " 902: [110, 1240, 527, 32, 592, 541, 150, 1265, 380, 3147],\n", - " 903: [736, 648, 95, 1, 653, 6, 480, 377, 1210, 380],\n", - " 904: [593, 608, 25, 150, 265, 509, 50, 110, 508, 21],\n", - " 905: [150, 1, 527, 380, 21, 480, 1079, 1097, 1784, 590],\n", - " 906: [318, 1265, 2762, 111, 1208, 2571, 2329, 1394, 912, 923],\n", - " 907: [356, 480, 47, 377, 50, 588, 364, 161, 165, 539],\n", - " 908: [1197, 1376, 593, 318, 1617, 608, 32, 648, 3527, 750],\n", - " 909: [1196, 3578, 2762, 4226, 1210, 1291, 593, 2028, 589, 7153],\n", - " 910: [1196, 527, 2028, 1193, 2762, 608, 2571, 1198, 1291, 1221],\n", - " 911: [1197, 608, 1304, 1193, 912, 1270, 527, 858, 1617, 904],\n", - " 912: [1240, 2571, 1197, 1580, 1210, 1291, 1198, 1036, 589, 1265],\n", - " 913: [1197, 1207, 1193, 318, 527, 858, 1198, 912, 1234, 608],\n", - " 914: [9, 667, 737, 765, 95, 608, 783, 494, 762, 1],\n", - " 915: [1196, 1198, 1291, 1617, 318, 1304, 1136, 919, 296, 110],\n", - " 916: [2858, 3578, 5952, 2571, 2762, 3996, 4226, 2329, 7153, 296],\n", - " 917: [260, 783, 1393, 527, 508, 34, 1183, 805, 7, 733],\n", - " 918: [653, 1, 805, 494, 9, 783, 5, 141, 7, 6],\n", - " 919: [1036, 589, 1196, 2571, 1198, 1270, 1197, 1374, 1200, 1527],\n", - " 920: [1193, 1207, 908, 904, 1247, 1208, 969, 750, 1198, 1136],\n", - " 921: [1, 1270, 364, 919, 1197, 588, 1198, 260, 1097, 356],\n", - " 922: [1196, 593, 589, 1210, 1036, 47, 2028, 1291, 150, 380],\n", - " 923: [780, 62, 648, 736, 95, 36, 260, 783, 25, 32],\n", - " 924: [527, 265, 357, 36, 497, 508, 11, 1784, 1094, 608],\n", - " 925: [608, 1270, 1265, 1193, 1196, 1240, 2716, 1291, 1200, 1079],\n", - " 926: [1136, 2858, 1089, 858, 1617, 1196, 593, 296, 1193, 1080],\n", - " 927: [589, 110, 1291, 1196, 2571, 1270, 593, 457, 380, 1580],\n", - " 928: [593, 2571, 318, 2028, 1197, 527, 1291, 858, 589, 541],\n", - " 930: [225, 110, 11, 380, 480, 440, 34, 357, 364, 292],\n", - " 931: [733, 9, 95, 648, 737, 662, 719, 609, 832, 376],\n", - " 932: [356, 110, 150, 780, 318, 380, 527, 588, 32, 648],\n", - " 933: [1196, 296, 608, 858, 527, 1617, 1197, 2858, 1193, 1240],\n", - " 934: [1196, 1197, 1097, 1270, 1210, 919, 1240, 1374, 1278, 2716],\n", - " 935: [780, 110, 1210, 1580, 2762, 356, 380, 648, 1197, 1527],\n", - " 936: [318, 2762, 608, 858, 1197, 1213, 1270, 1221, 1208, 1],\n", - " 937: [593, 1196, 2571, 296, 1198, 2858, 110, 1210, 2762, 2959],\n", - " 938: [110, 356, 480, 589, 592, 527, 588, 377, 349, 50],\n", - " 939: [110, 480, 356, 589, 527, 32, 296, 380, 733, 377],\n", - " 940: [593, 318, 527, 296, 3996, 1196, 3578, 541, 608, 2762],\n", - " 941: [1304, 912, 908, 750, 1230, 1234, 1193, 924, 1196, 1247],\n", - " 942: [480, 110, 150, 592, 589, 356, 318, 377, 47, 364],\n", - " 943: [1214, 1240, 1196, 1197, 1200, 1291, 1198, 1333, 1221, 924],\n", - " 945: [36, 719, 783, 9, 832, 780, 805, 25, 95, 64],\n", - " 946: [1200, 1036, 1270, 541, 750, 1580, 296, 592, 318, 2028],\n", - " 947: [1198, 1240, 1291, 1214, 1197, 1200, 1270, 1036, 541, 2028],\n", - " 948: [1265, 1196, 1197, 480, 32, 588, 1193, 1089, 260, 1036],\n", - " 949: [1193, 608, 2858, 593, 1617, 1208, 923, 904, 527, 1265],\n", - " 950: [111, 750, 858, 1089, 1213, 527, 1617, 923, 1221, 318],\n", - " 951: [765, 783, 260, 61, 805, 74, 6, 802, 141, 12],\n", - " 952: [783, 62, 1, 786, 9, 653, 36, 5, 141, 719],\n", - " 953: [1197, 1240, 1278, 1291, 1036, 2174, 1198, 608, 380, 1610],\n", - " 954: [1291, 110, 1240, 1036, 1580, 1198, 1270, 593, 1527, 1200],\n", - " 955: [356, 593, 318, 2762, 2571, 1196, 2028, 2706, 47, 3578],\n", - " 956: [150, 457, 480, 380, 364, 161, 508, 349, 474, 10],\n", - " 957: [608, 296, 1208, 750, 1036, 1089, 50, 904, 1094, 1220],\n", - " 958: [593, 589, 3578, 1196, 2858, 296, 110, 4993, 356, 47],\n", - " 960: [318, 457, 50, 110, 356, 36, 590, 508, 25, 32],\n", - " 961: [858, 608, 593, 1197, 1196, 1221, 2028, 318, 296, 1207],\n", - " 962: [2762, 2571, 2716, 3578, 2959, 2572, 1704, 2028, 356, 3114],\n", - " 963: [380, 457, 110, 480, 1036, 1196, 733, 21, 356, 780],\n", - " 964: [2858, 2571, 50, 2762, 1291, 1210, 858, 32, 1197, 1198],\n", - " 965: [527, 457, 110, 25, 1089, 356, 293, 337, 1193, 590],\n", - " 966: [593, 750, 1240, 1198, 1270, 1291, 589, 608, 50, 858],\n", - " 967: [593, 296, 4226, 2028, 50, 2571, 1089, 1213, 527, 608],\n", - " 968: [356, 380, 589, 377, 592, 527, 161, 588, 165, 474],\n", - " 969: [783, 719, 5, 62, 736, 9, 832, 780, 36, 609],\n", - " 970: [356, 47, 457, 380, 480, 589, 165, 296, 161, 592],\n", - " 971: [527, 1136, 1, 1214, 356, 1291, 1193, 1200, 2762, 1307],\n", - " 972: [508, 36, 1197, 21, 300, 377, 1196, 474, 50, 265],\n", - " 973: [1193, 1247, 1207, 1208, 919, 1288, 1278, 1259, 912, 908],\n", - " 974: [1247, 1207, 1221, 1193, 1090, 527, 1208, 1250, 858, 750],\n", - " 975: [593, 318, 527, 47, 356, 1089, 589, 110, 1213, 150],\n", - " 976: [593, 110, 356, 527, 457, 480, 34, 589, 588, 161],\n", - " 977: [1304, 1247, 527, 912, 750, 1197, 1394, 1234, 36, 1089],\n", - " 978: [1304, 908, 912, 17, 594, 1278, 1094, 608, 2396, 1035],\n", - " 979: [318, 296, 593, 1196, 608, 527, 50, 1197, 1270, 1617],\n", - " 980: [858, 1196, 1089, 50, 1193, 318, 2571, 1198, 1221, 2028],\n", - " 982: [36, 1210, 25, 527, 593, 1196, 296, 318, 733, 1197],\n", - " 983: [593, 1196, 2762, 2028, 527, 1197, 2858, 3578, 1198, 1210],\n", - " 984: [593, 527, 2858, 2571, 1197, 1265, 296, 1, 2716, 150],\n", - " 985: [2571, 1196, 5445, 4226, 6539, 2959, 7361, 33794, 1198, 4027],\n", - " 986: [225, 292, 21, 508, 47, 440, 151, 500, 252, 34],\n", - " 987: [161, 248, 292, 539, 11, 252, 282, 508, 236, 339],\n", - " 988: [1197, 1221, 527, 908, 1291, 1265, 1270, 589, 1387, 1304],\n", - " 989: [750, 1265, 593, 1208, 1221, 1197, 1207, 1304, 1230, 1394],\n", - " 990: [150, 110, 457, 47, 508, 589, 480, 592, 34, 595],\n", - " 991: [1197, 1240, 1196, 1198, 1387, 260, 1214, 858, 1208, 1193],\n", - " 992: [1197, 1270, 1210, 1240, 1198, 593, 608, 1580, 1291, 1617],\n", - " 993: [5349, 4995, 2571, 2959, 6539, 3793, 2762, 7153, 2329, 4878],\n", - " 994: [593, 296, 527, 608, 1784, 2858, 1704, 356, 1682, 50],\n", - " 995: [608, 2858, 1617, 1193, 1089, 858, 1221, 2762, 2028, 1387],\n", - " 996: [225, 161, 590, 480, 597, 587, 21, 440, 34, 364],\n", - " 997: [260, 9, 6, 608, 832, 7, 805, 719, 1393, 104],\n", - " 998: [1193, 296, 593, 527, 1265, 2858, 318, 2396, 1197, 36],\n", - " 999: [1077, 1252, 1214, 750, 1200, 904, 1270, 1196, 908, 924],\n", - " 1001: [380, 590, 589, 377, 318, 593, 539, 10, 349, 296],\n", - " 1002: [733, 95, 248, 648, 609, 719, 765, 158, 694, 1],\n", - " 1003: [2959, 2858, 2716, 3578, 2028, 1196, 1617, 1704, 1580, 1610],\n", - " 1004: [527, 150, 589, 260, 480, 50, 1196, 36, 32, 1197],\n", - " 1005: [364, 590, 508, 11, 34, 47, 21, 32, 1036, 141],\n", - " 1006: [36, 296, 593, 25, 17, 50, 508, 590, 21, 110],\n", - " 1007: [357, 356, 593, 527, 1784, 318, 497, 2858, 608, 296],\n", - " 1008: [1197, 2858, 1617, 2028, 1, 111, 110, 1136, 589, 912],\n", - " 1009: [2028, 1196, 2762, 1291, 1036, 1210, 1198, 3578, 1580, 260],\n", - " 1011: [318, 527, 1197, 1196, 260, 1210, 1198, 1240, 356, 858],\n", - " 1012: [2762, 2571, 2716, 1617, 2028, 1196, 296, 2959, 3578, 2396],\n", - " 1013: [318, 47, 356, 50, 110, 2959, 2858, 2571, 1196, 32],\n", - " 1014: [912, 1193, 1617, 923, 1208, 1230, 1094, 1225, 1250, 318],\n", - " 1015: [750, 908, 912, 1193, 541, 608, 1196, 858, 1267, 923],\n", - " 1016: [593, 858, 50, 1617, 1089, 1196, 1208, 2028, 1221, 2762],\n", - " 1017: [2571, 4886, 5445, 6539, 3578, 1198, 1214, 260, 1291, 4226],\n", - " 1018: [318, 50, 527, 541, 1197, 1193, 1200, 1617, 1198, 260],\n", - " 1019: [62, 32, 832, 9, 6, 5, 1073, 36, 737, 653],\n", - " 1020: [318, 1270, 1196, 34, 110, 260, 1259, 1097, 1079, 919],\n", - " 1021: [1617, 608, 2571, 296, 1193, 541, 1210, 1291, 1240, 912],\n", - " 1022: [1197, 1193, 1207, 1247, 912, 1196, 1304, 858, 260, 1208],\n", - " 1023: [1291, 1036, 589, 1210, 1240, 296, 318, 1270, 356, 2028],\n", - " 1025: [904, 1617, 750, 1193, 1196, 1197, 1234, 1204, 1252, 1208],\n", - " 1026: [110, 527, 318, 356, 2028, 296, 1265, 858, 32, 1580],\n", - " 1027: [4993, 5952, 7153, 2329, 4886, 33166, 2571, 45722, 37731, 33794],\n", - " 1028: [110, 377, 589, 592, 318, 588, 316, 474, 161, 292],\n", - " 1029: [110, 150, 161, 474, 225, 380, 356, 349, 480, 589],\n", - " 1030: [1196, 3578, 1210, 1270, 1197, 1291, 780, 480, 260, 589],\n", - " 1031: [380, 589, 356, 377, 150, 457, 318, 588, 349, 292],\n", - " 1032: [733, 1, 260, 9, 62, 376, 474, 380, 783, 377],\n", - " 1033: [1270, 1265, 608, 1036, 1210, 2028, 480, 2858, 2571, 858],\n", - " 1034: [4993, 1196, 593, 356, 4306, 6539, 318, 1210, 2571, 527],\n", - " 1035: [4993, 5952, 1196, 7153, 4886, 3578, 2858, 4878, 2028, 1291],\n", - " 1037: [356, 318, 457, 588, 110, 527, 364, 500, 380, 590],\n", - " 1038: [150, 225, 110, 440, 1, 11, 318, 21, 457, 185],\n", - " 1039: [593, 2858, 1193, 32, 1196, 1197, 1265, 1136, 2028, 111],\n", - " 1040: [356, 539, 480, 457, 588, 500, 110, 367, 377, 364],\n", - " 1041: [858, 356, 1240, 1270, 32, 1136, 608, 541, 1197, 1193],\n", - " 1043: [733, 25, 376, 1, 786, 141, 474, 7, 260, 32],\n", - " 1044: [6, 783, 104, 1356, 141, 36, 62, 480, 494, 608],\n", - " 1045: [2571, 1270, 1197, 589, 608, 4993, 480, 1240, 1265, 5952],\n", - " 1046: [110, 589, 318, 377, 588, 592, 364, 296, 527, 10],\n", - " 1047: [593, 1196, 5952, 3578, 1617, 32, 608, 1193, 1270, 4878],\n", - " 1048: [1291, 2028, 3578, 1089, 1240, 858, 1136, 527, 1197, 1214],\n", - " 1050: [150, 380, 34, 592, 377, 588, 608, 539, 36, 6],\n", - " 1051: [141, 780, 36, 11, 1393, 783, 708, 736, 5, 539],\n", - " 1052: [356, 1704, 2571, 2762, 593, 2858, 1210, 1196, 318, 1197],\n", - " 1053: [593, 1136, 2858, 2028, 1617, 2918, 608, 32, 480, 1220]}" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 각 사용자에 대한 추천 리스트를 작성한다\n", - "\n", - "pred_user2items = dict()\n", - "for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n", - " input_data = []\n", - " for item_id in data.sort_values(\"timestamp\")[\"movie_id\"].tolist():\n", - " if item_id in model.wv.key_to_index:\n", - " input_data.append(item_id)\n", - " if len(input_data) == 0:\n", - " # 추천 계산할 수 없는 경우에는 빈 배열\n", - " pred_user2items[user_id] = []\n", - " continue\n", - " recommended_items = model.wv.most_similar(input_data, topn=10)\n", - " pred_user2items[user_id] = [d[0] for d in recommended_items]\n", - "\n", - "pred_user2items" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "a87b9ae8", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "8381 2 1210 4.0 868245644 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 " - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", - "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "e746dd2c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
476480Jurassic Park (1993)[Action, Adventure, Sci-Fi, Thriller][based on a book, biology, michael crichton, s...
583589Terminator 2: Judgment Day (1991)[Action, Sci-Fi][action, sci-fi, dvd, seen more than once, tim...
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "476 480 Jurassic Park (1993) \n", - "583 589 Terminator 2: Judgment Day (1991) \n", - "1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n", - "\n", - " genre \\\n", - "476 [Action, Adventure, Sci-Fi, Thriller] \n", - "583 [Action, Sci-Fi] \n", - "1171 [Action, Adventure, Sci-Fi] \n", - "\n", - " tag \n", - "476 [based on a book, biology, michael crichton, s... \n", - "583 [action, sci-fi, dvd, seen more than once, tim... \n", - "1171 [lucas, george lucas, george lucas, gfei own i... " - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2에 대한 추천(480, 1196, 589)\n", - "movies[movies.movie_id.isin([480, 1196, 589])]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8107e735", - "metadata": {}, - "outputs": [], - "source": [ - "# item2vec에서는 인자 수, 에폭 수, windows 크기, 사용하는 단어의 출현 횟수의 임곗값 모두가 중요하므루, 그리드 서치를 통해 최적의 값을 결정합니다." - ] - } - ], - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","id":"41d4a649","metadata":{"id":"41d4a649"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/Item2vec.ipynb)"]},{"cell_type":"markdown","id":"e9d7e57d","metadata":{"id":"e9d7e57d"},"source":["# Item2vec"]},{"cell_type":"code","execution_count":1,"id":"5d70dbb6","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"5d70dbb6","executionInfo":{"status":"ok","timestamp":1672118007200,"user_tz":-540,"elapsed":9080,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"de64103d-3866-4307-867d-d113afdebf1a"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:13:14-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 15.2MB/s in 5.6s \n","\n","2022-12-27 05:13:21 (11.1 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"c4f50ee4","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"c4f50ee4","executionInfo":{"status":"ok","timestamp":1672118076735,"user_tz":-540,"elapsed":69538,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"b92eaa23-ded4-4964-8554-6d2d30bad418"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"3a74e8b5","metadata":{"id":"3a74e8b5","executionInfo":{"status":"ok","timestamp":1672118076736,"user_tz":-540,"elapsed":8,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 인자 수\n","factors = 100\n","# 에폭 수\n","n_epochs = 30\n","# window 크기\n","window = 100\n","# 스킵 그램\n","use_skip_gram = 1\n","# 계측적 소프트맥스\n","use_hierarchial_softmax = 0\n","# 사용할 단어의 출현 횟수의 임곗값\n","min_count = 5"]},{"cell_type":"code","execution_count":4,"id":"e70dbcd2","metadata":{"id":"e70dbcd2","executionInfo":{"status":"ok","timestamp":1672118077324,"user_tz":-540,"elapsed":593,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# item2vec의 입력으로 사용할 데이터를 생성한다\n","item2vec_data = []\n","movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n","for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n"," # 평가된 순서대로 나열한다\n"," # item2vec에서는 window라는 파라미터가 있으며, item이 평가된 순서도 중요한 요소이다\n"," item2vec_data.append(data.sort_values(\"timestamp\")[\"movie_id\"].tolist())\n"]},{"cell_type":"code","execution_count":5,"id":"31c6f683","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"31c6f683","executionInfo":{"status":"ok","timestamp":1672118084326,"user_tz":-540,"elapsed":7006,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"a77de23f-2b79-40c5-9e0f-f27877eb938e"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting gensim==4.0.1\n"," Downloading gensim-4.0.1-cp38-cp38-manylinux1_x86_64.whl (23.9 MB)\n","\u001b[K |████████████████████████████████| 23.9 MB 1.4 MB/s \n","\u001b[?25hRequirement already satisfied: scipy>=0.18.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.7.3)\n","Requirement already satisfied: smart-open>=1.8.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (6.3.0)\n","Requirement already satisfied: numpy>=1.11.3 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.21.6)\n","Installing collected packages: gensim\n"," Attempting uninstall: gensim\n"," Found existing installation: gensim 3.6.0\n"," Uninstalling gensim-3.6.0:\n"," Successfully uninstalled gensim-3.6.0\n","Successfully installed gensim-4.0.1\n"]}],"source":["!pip install gensim==4.0.1"]},{"cell_type":"code","execution_count":6,"id":"503fed11","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"503fed11","executionInfo":{"status":"ok","timestamp":1672118193280,"user_tz":-540,"elapsed":108966,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"218adfc6-d5e6-45bf-e1c0-290ac2b92e68"},"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.8/dist-packages/gensim/similarities/__init__.py:15: UserWarning: The gensim.similarities.levenshtein submodule is disabled, because the optional Levenshtein package is unavailable. Install Levenhstein (e.g. `pip install python-Levenshtein`) to suppress this warning.\n"," warnings.warn(msg)\n"]}],"source":["import gensim\n","\n","# item2vec 학습\n","model = gensim.models.word2vec.Word2Vec(\n"," item2vec_data,\n"," vector_size=factors,\n"," window=window,\n"," sg=use_skip_gram,\n"," hs=use_hierarchial_softmax,\n"," epochs=n_epochs,\n"," min_count=min_count,\n",")"]},{"cell_type":"code","execution_count":7,"id":"c68290ed","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"c68290ed","executionInfo":{"status":"ok","timestamp":1672118193280,"user_tz":-540,"elapsed":8,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"a951f33b-d4c7-4915-bb82-72dd6b17624a"},"outputs":[{"output_type":"stream","name":"stdout","text":["movie_id=260, title=Star Wars: Episode IV - A New Hope (a.k.a. Star Wars) (1977), score=0.8508290648460388\n","movie_id=1210, title=Star Wars: Episode VI - Return of the Jedi (1983), score=0.839510977268219\n","movie_id=1198, title=Raiders of the Lost Ark (Indiana Jones and the Raiders of the Lost Ark) (1981), score=0.8310489058494568\n","movie_id=2571, title=Matrix, The (1999), score=0.7958545684814453\n","movie_id=1240, title=Terminator, The (1984), score=0.7907897233963013\n","movie_id=541, title=Blade Runner (1982), score=0.7818757891654968\n","movie_id=1197, title=Princess Bride, The (1987), score=0.7788391709327698\n","movie_id=1200, title=Aliens (1986), score=0.7773821949958801\n","movie_id=1214, title=Alien (1979), score=0.7692050933837891\n","movie_id=1291, title=Indiana Jones and the Last Crusade (1989), score=0.7649016976356506\n"]}],"source":["# 스타워즈/에피소드 5(movie_id=1196)를 입력했을 때의 유사 영화\n","# 스타워즈/에피소드 4, 6이 상위에 나타나므로 학습되었음을 알 수 있다\n","for movie_id, score in model.wv.most_similar(1196):\n"," title = movies[movies.movie_id == movie_id].title.tolist()[0]\n"," print(f'movie_id={movie_id}, title={title}, score={score}')"]},{"cell_type":"code","execution_count":8,"id":"7c07eb79","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"7c07eb79","executionInfo":{"status":"ok","timestamp":1672118195816,"user_tz":-540,"elapsed":2541,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"9fa1c855-057c-4201-cfb7-4bd66c52cec4"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["{1: [380, 457, 110, 150, 590, 592, 318, 595, 165, 500],\n"," 2: [589, 1196, 593, 356, 480, 1198, 457, 318, 296, 1291],\n"," 3: [2571, 1196, 318, 1198, 527, 2028, 593, 4993, 3578, 5952],\n"," 4: [457, 356, 380, 377, 318, 593, 10, 349, 296, 367],\n"," 5: [1208, 1193, 318, 36, 904, 296, 1213, 750, 908, 1617],\n"," 6: [1240, 1291, 1617, 1210, 541, 1036, 589, 593, 2858, 1214],\n"," 7: [750, 1208, 1267, 910, 858, 1193, 1247, 1221, 1204, 541],\n"," 8: [1210, 4993, 110, 260, 356, 2028, 5952, 318, 296, 3147],\n"," 9: [1136, 750, 1617, 2791, 1089, 296, 1265, 1206, 2571, 50],\n"," 10: [1207, 608, 1247, 318, 1271, 593, 1230, 1185, 300, 858],\n"," 11: [1197, 1036, 457, 589, 1214, 110, 1200, 356, 1265, 541],\n"," 12: [2571, 1196, 1240, 2028, 1291, 1210, 589, 1580, 1198, 1617],\n"," 13: [1196, 1198, 1270, 1240, 2571, 110, 260, 356, 593, 589],\n"," 14: [1198, 7153, 4306, 4886, 4993, 5952, 2571, 8360, 356, 912],\n"," 16: [541, 2571, 1198, 1270, 750, 589, 1291, 1374, 1036, 1197],\n"," 17: [1196, 750, 541, 904, 1208, 1617, 1240, 1221, 912, 1198],\n"," 18: [1210, 50, 858, 1197, 1617, 1610, 1270, 1265, 480, 1221],\n"," 19: [593, 34, 150, 296, 1265, 1097, 608, 590, 858, 440],\n"," 22: [318, 457, 590, 592, 377, 34, 349, 10, 165, 1],\n"," 23: [318, 356, 457, 150, 110, 36, 34, 357, 588, 590],\n"," 24: [736, 6, 95, 653, 1393, 141, 356, 783, 608, 32],\n"," 26: [480, 356, 590, 593, 318, 592, 474, 364, 595, 296],\n"," 27: [260, 1, 6, 648, 1210, 786, 653, 95, 589, 1393],\n"," 28: [2797, 1307, 1220, 1198, 2791, 1394, 1079, 1285, 3039, 2716],\n"," 29: [4447, 4369, 3717, 5459, 2000, 1580, 2001, 1610, 1370, 2353],\n"," 30: [457, 589, 1197, 508, 296, 21, 1036, 587, 36, 474],\n"," 33: [25, 58, 62, 318, 296, 34, 593, 527, 260, 1393],\n"," 34: [356, 1196, 1036, 150, 733, 380, 1291, 2762, 1580, 296],\n"," 35: [1196, 858, 593, 1198, 1214, 296, 1240, 318, 1617, 1089],\n"," 36: [1198, 2571, 110, 318, 1197, 2028, 47, 608, 3578, 527],\n"," 37: [1196, 2571, 1214, 1198, 32, 593, 260, 50, 541, 110],\n"," 38: [110, 3578, 2762, 480, 589, 1196, 4993, 1198, 1291, 50],\n"," 40: [356, 858, 2762, 2028, 47, 110, 32, 1265, 223, 2959],\n"," 41: [1265, 1278, 1097, 1079, 1394, 1234, 1304, 1198, 2791, 1196],\n"," 42: [318, 356, 150, 527, 457, 593, 34, 21, 497, 296],\n"," 43: [356, 357, 380, 780, 586, 150, 377, 237, 733, 248],\n"," 44: [36, 1617, 593, 1213, 1784, 800, 1193, 1394, 111, 1704],\n"," 45: [1196, 318, 296, 2571, 527, 1198, 260, 1214, 1210, 1197],\n"," 46: [1196, 1198, 1291, 1136, 4993, 2571, 858, 5952, 3578, 1197],\n"," 47: [356, 47, 480, 527, 457, 1, 1617, 1197, 1704, 4886],\n"," 48: [53322, 51935, 51091, 51662, 45499, 8644, 6059, 8937, 45722, 3578],\n"," 50: [296, 588, 380, 589, 364, 508, 34, 47, 592, 50],\n"," 51: [1207, 1252, 1267, 1250, 1292, 1288, 1219, 800, 1221, 2858],\n"," 52: [1207, 908, 912, 923, 1247, 858, 750, 1221, 1276, 608],\n"," 53: [2571, 1617, 1196, 2959, 1704, 1265, 356, 3147, 3114, 110],\n"," 54: [527, 588, 377, 47, 364, 592, 349, 595, 474, 316],\n"," 55: [1208, 858, 2858, 1617, 111, 904, 1136, 1207, 923, 912],\n"," 56: [1304, 1276, 1288, 608, 899, 1225, 1267, 1233, 1278, 318],\n"," 57: [736, 64, 662, 609, 467, 62, 762, 141, 608, 107],\n"," 58: [1207, 608, 1196, 1193, 858, 1276, 2858, 1221, 1136, 1213],\n"," 59: [110, 296, 527, 356, 589, 380, 161, 480, 588, 377],\n"," 60: [1207, 912, 904, 1276, 908, 111, 750, 1617, 919, 1136],\n"," 61: [527, 858, 1208, 923, 296, 2858, 1225, 111, 904, 1250],\n"," 62: [457, 110, 590, 480, 377, 356, 318, 589, 165, 592],\n"," 63: [1207, 1617, 923, 1208, 1213, 608, 908, 1136, 593, 111],\n"," 64: [733, 6, 736, 62, 32, 1393, 25, 648, 141, 1210],\n"," 65: [1196, 1197, 1270, 2797, 356, 1210, 912, 34, 1240, 2571],\n"," 66: [50, 47, 593, 2571, 318, 1196, 1617, 858, 1136, 4226],\n"," 67: [356, 150, 589, 480, 592, 377, 527, 474, 34, 595],\n"," 68: [923, 912, 1230, 1304, 1208, 910, 750, 1234, 1292, 858],\n"," 69: [1617, 593, 608, 858, 296, 1196, 1207, 356, 1213, 2028],\n"," 70: [1208, 923, 1617, 903, 858, 1136, 1204, 111, 1247, 2858],\n"," 71: [593, 318, 110, 590, 364, 356, 457, 588, 527, 47],\n"," 72: [110, 150, 377, 589, 590, 318, 161, 364, 592, 316],\n"," 73: [1617, 1197, 1265, 912, 1136, 1240, 1214, 527, 1234, 1288],\n"," 74: [356, 587, 380, 597, 539, 185, 225, 11, 440, 150],\n"," 75: [1196, 1240, 1210, 2571, 1291, 260, 1198, 593, 457, 356],\n"," 76: [356, 316, 318, 592, 225, 780, 588, 539, 364, 296],\n"," 77: [318, 110, 150, 592, 527, 34, 50, 6, 474, 10],\n"," 78: [1617, 1196, 1221, 1394, 1213, 593, 2028, 2019, 1204, 50],\n"," 79: [527, 21, 356, 337, 150, 265, 47, 1089, 235, 34],\n"," 80: [593, 356, 150, 589, 527, 47, 590, 588, 592, 34],\n"," 81: [593, 1196, 527, 318, 1617, 858, 1240, 110, 2028, 1198],\n"," 82: [7153, 5952, 6377, 4995, 4226, 8961, 3578, 3996, 1196, 7361],\n"," 83: [858, 1234, 904, 1304, 1196, 1193, 1276, 1288, 1208, 1221],\n"," 84: [25, 608, 733, 780, 736, 508, 6, 95, 1, 527],\n"," 85: [318, 608, 1617, 1213, 356, 858, 111, 2762, 47, 1089],\n"," 86: [260, 1197, 1270, 1387, 1580, 541, 592, 1, 593, 1265],\n"," 87: [2571, 1617, 2706, 1704, 2028, 3114, 2599, 2355, 356, 1265],\n"," 88: [589, 2762, 593, 1291, 380, 480, 1270, 1036, 733, 318],\n"," 89: [593, 356, 457, 590, 589, 527, 377, 349, 47, 592],\n"," 90: [736, 95, 648, 5, 719, 9, 6, 765, 1393, 667],\n"," 91: [1304, 858, 908, 260, 1234, 1276, 1221, 1617, 1240, 608],\n"," 92: [593, 589, 2959, 2858, 4993, 50, 858, 296, 541, 1200],\n"," 93: [51540, 8937, 60069, 51662, 50872, 44199, 47423, 55830, 51935, 54997],\n"," 94: [380, 589, 47, 588, 161, 364, 34, 165, 21, 292],\n"," 95: [457, 380, 480, 590, 527, 47, 50, 592, 377, 316],\n"," 96: [1207, 318, 1196, 1304, 1197, 1276, 1208, 1094, 912, 2858],\n"," 97: [356, 589, 2571, 110, 1210, 1198, 318, 1580, 2028, 593],\n"," 98: [32, 733, 17, 593, 318, 296, 780, 1393, 62, 736],\n"," 99: [1208, 1196, 2858, 2571, 1214, 593, 1213, 1089, 1221, 2959],\n"," 100: [593, 858, 1198, 2858, 2571, 527, 1136, 1617, 1193, 260],\n"," 101: [356, 110, 590, 349, 10, 539, 595, 34, 597, 527],\n"," 102: [593, 150, 110, 356, 527, 50, 590, 589, 380, 592],\n"," 103: [608, 1207, 111, 318, 593, 296, 1193, 1094, 1213, 1089],\n"," 104: [1208, 923, 1304, 904, 750, 608, 1230, 1267, 1234, 1094],\n"," 105: [1240, 1214, 541, 1200, 1291, 2571, 1197, 858, 1036, 1097],\n"," 106: [457, 110, 1036, 780, 589, 1196, 1291, 1210, 1198, 480],\n"," 107: [1214, 750, 1198, 1200, 260, 2571, 1221, 593, 2858, 1270],\n"," 108: [1219, 1208, 923, 2019, 750, 1193, 111, 904, 1207, 527],\n"," 110: [110, 165, 780, 364, 592, 150, 733, 318, 316, 10],\n"," 111: [589, 318, 150, 590, 377, 316, 592, 47, 588, 527],\n"," 112: [1276, 1094, 1304, 1267, 1252, 593, 1617, 1234, 318, 36],\n"," 113: [2571, 1196, 3114, 1197, 1210, 1580, 2706, 356, 2858, 1617],\n"," 114: [912, 904, 750, 1198, 924, 923, 1270, 1207, 899, 1252],\n"," 115: [356, 593, 457, 150, 1198, 50, 1196, 260, 589, 858],\n"," 116: [457, 356, 780, 474, 508, 266, 153, 21, 454, 10],\n"," 117: [356, 1198, 1196, 1136, 4993, 593, 47, 296, 110, 2762],\n"," 118: [356, 150, 380, 47, 588, 349, 34, 377, 364, 6],\n"," 119: [356, 527, 50, 47, 110, 457, 608, 150, 589, 36],\n"," 120: [733, 1, 736, 648, 6, 494, 805, 786, 783, 832],\n"," 121: [1276, 1230, 1214, 1234, 1204, 260, 1225, 2858, 1387, 1278],\n"," 122: [1617, 2028, 1207, 2716, 750, 21, 1247, 923, 1704, 908],\n"," 123: [1196, 1198, 858, 1617, 1197, 919, 1210, 1270, 1, 1265],\n"," 124: [923, 1207, 904, 1193, 1617, 2858, 858, 1214, 1197, 593],\n"," 125: [589, 1214, 858, 1617, 260, 541, 1200, 1197, 2716, 2329],\n"," 126: [1036, 296, 1240, 1617, 1213, 2762, 1136, 541, 750, 912],\n"," 127: [52973, 51091, 51255, 55830, 45722, 47423, 56757, 47610, 48394, 40732],\n"," 128: [508, 588, 296, 377, 21, 364, 380, 440, 595, 161],\n"," 129: [2571, 1196, 1617, 3578, 2028, 1197, 593, 2396, 1210, 1198],\n"," 130: [1617, 750, 1089, 318, 111, 1213, 1221, 1196, 608, 923],\n"," 131: [593, 318, 356, 527, 110, 293, 589, 32, 608, 6],\n"," 132: [296, 527, 50, 110, 150, 47, 356, 457, 590, 589],\n"," 134: [733, 260, 95, 786, 494, 356, 104, 1210, 1393, 36],\n"," 135: [1214, 318, 750, 527, 356, 608, 50, 2571, 1097, 1617],\n"," 136: [1221, 1278, 1197, 750, 1196, 908, 593, 1394, 1276, 260],\n"," 137: [1196, 110, 356, 1210, 3147, 4226, 1617, 260, 858, 480],\n"," 138: [1198, 858, 1291, 1213, 1208, 1221, 527, 110, 1193, 924],\n"," 139: [457, 480, 1291, 50, 608, 1214, 1265, 1200, 150, 1617],\n"," 140: [1208, 858, 296, 1213, 1136, 1196, 1207, 608, 111, 1221],\n"," 141: [318, 150, 110, 588, 480, 364, 590, 539, 34, 597],\n"," 142: [318, 25, 296, 527, 260, 34, 300, 17, 32, 150],\n"," 143: [1580, 1240, 2858, 50, 1036, 1, 589, 1617, 1079, 919],\n"," 144: [2028, 111, 1193, 110, 923, 2762, 904, 1197, 1288, 356],\n"," 145: [318, 527, 110, 356, 47, 590, 589, 380, 508, 21],\n"," 148: [593, 1198, 318, 110, 1197, 527, 356, 1270, 1036, 2571],\n"," 149: [1196, 2571, 4226, 3578, 589, 2762, 2329, 2028, 110, 50],\n"," 150: [318, 36, 593, 296, 150, 265, 337, 357, 608, 515],\n"," 151: [593, 1196, 858, 1198, 1617, 1193, 1197, 904, 1207, 2858],\n"," 152: [589, 1197, 1580, 1387, 750, 480, 527, 1193, 2716, 2858],\n"," 153: [1196, 2571, 1036, 1198, 1210, 1291, 593, 541, 32, 318],\n"," 154: [1240, 318, 1197, 2028, 3578, 457, 47, 1097, 2858, 1610],\n"," 155: [110, 527, 2762, 1036, 1291, 1197, 608, 480, 457, 1704],\n"," 156: [780, 733, 1, 736, 36, 1393, 494, 608, 95, 17],\n"," 157: [5, 62, 648, 765, 653, 141, 64, 786, 79, 6],\n"," 158: [318, 356, 527, 150, 110, 590, 589, 161, 508, 364],\n"," 159: [899, 1304, 912, 594, 904, 969, 1234, 908, 1247, 1207],\n"," 160: [1240, 1214, 1200, 780, 1610, 1197, 593, 380, 2762, 356],\n"," 161: [2959, 1198, 4993, 541, 4226, 1214, 858, 2762, 1240, 32],\n"," 162: [318, 593, 1291, 589, 1036, 50, 4993, 1704, 1617, 32],\n"," 163: [318, 527, 356, 608, 150, 110, 293, 457, 589, 6],\n"," 164: [110, 380, 593, 150, 588, 364, 10, 597, 161, 539],\n"," 165: [1198, 1210, 2571, 260, 1197, 1580, 589, 3114, 2355, 1270],\n"," 166: [589, 1198, 1291, 110, 2571, 480, 356, 2028, 318, 32],\n"," 167: [733, 593, 318, 260, 296, 780, 356, 141, 527, 150],\n"," 168: [380, 34, 457, 539, 440, 150, 110, 1197, 594, 593],\n"," 169: [2571, 1196, 2762, 2028, 2716, 1210, 1198, 2959, 1704, 3578],\n"," 170: [1089, 593, 2858, 2571, 4993, 1213, 2762, 858, 527, 5952],\n"," 171: [593, 589, 1196, 2571, 480, 588, 1291, 1198, 1210, 527],\n"," 172: [457, 480, 380, 316, 356, 349, 377, 318, 150, 593],\n"," 173: [527, 110, 1197, 50, 592, 36, 111, 541, 32, 62],\n"," 174: [1094, 36, 1193, 1207, 21, 34, 1617, 1208, 1230, 2858],\n"," 175: [1207, 1221, 260, 1291, 589, 47, 908, 1265, 1247, 1704],\n"," 176: [110, 356, 318, 380, 590, 349, 480, 377, 296, 589],\n"," 177: [260, 318, 733, 6, 593, 296, 356, 527, 17, 1393],\n"," 178: [110, 296, 1197, 1198, 1265, 50, 858, 1270, 2028, 1617],\n"," 179: [1291, 1210, 2028, 1208, 593, 2858, 1387, 1136, 2716, 318],\n"," 180: [356, 1196, 1036, 1198, 593, 1270, 1097, 1197, 1291, 260],\n"," 182: [608, 1198, 457, 904, 260, 1259, 1213, 899, 246, 750],\n"," 183: [1207, 457, 34, 1247, 1197, 908, 904, 969, 750, 899],\n"," 184: [593, 318, 1196, 356, 2858, 527, 1704, 1213, 2028, 1617],\n"," 185: [1097, 356, 912, 539, 919, 1617, 1196, 1207, 1197, 1247],\n"," 186: [750, 1208, 908, 924, 912, 923, 1240, 1196, 1206, 1213],\n"," 187: [318, 150, 377, 539, 110, 587, 380, 593, 527, 589],\n"," 188: [318, 356, 296, 590, 588, 364, 34, 377, 50, 595],\n"," 189: [318, 356, 296, 480, 527, 1210, 150, 1036, 47, 1196],\n"," 190: [1210, 1214, 593, 2858, 4886, 592, 3996, 2959, 32, 1097],\n"," 191: [608, 21, 527, 1278, 457, 593, 17, 1196, 260, 1193],\n"," 192: [1208, 1617, 1206, 318, 1196, 2571, 593, 2997, 904, 2329],\n"," 193: [110, 380, 377, 527, 589, 588, 474, 225, 34, 592],\n"," 194: [733, 719, 64, 9, 609, 653, 667, 95, 1042, 737],\n"," 195: [912, 923, 904, 1207, 1208, 1221, 1204, 1230, 541, 913],\n"," 196: [1200, 474, 377, 1617, 2791, 733, 608, 2762, 541, 1259],\n"," 197: [1304, 904, 1208, 1198, 912, 1276, 1196, 1193, 908, 1207],\n"," 198: [1198, 1291, 3578, 480, 457, 1580, 2997, 1259, 904, 3147],\n"," 199: [110, 380, 356, 318, 480, 364, 589, 296, 349, 161],\n"," 200: [1, 648, 95, 6, 719, 805, 494, 653, 608, 832],\n"," 201: [318, 1784, 36, 1617, 508, 2762, 47, 588, 21, 589],\n"," 202: [593, 318, 356, 2028, 296, 1193, 110, 590, 457, 150],\n"," 203: [527, 1196, 34, 1210, 858, 36, 357, 480, 590, 377],\n"," 204: [36, 32, 593, 318, 296, 527, 1393, 6, 17, 858],\n"," 205: [1207, 904, 923, 750, 1247, 1304, 1267, 903, 1219, 1617],\n"," 206: [1196, 1198, 260, 1221, 858, 1304, 589, 50, 1387, 2858],\n"," 207: [318, 356, 527, 150, 457, 21, 357, 296, 110, 337],\n"," 208: [457, 356, 377, 589, 480, 292, 593, 733, 474, 780],\n"," 209: [36, 25, 318, 17, 527, 457, 150, 356, 296, 21],\n"," 210: [356, 1196, 260, 527, 457, 1198, 2028, 1265, 1617, 1240],\n"," 211: [1208, 750, 1193, 541, 1207, 1213, 1036, 1291, 1387, 2571],\n"," 212: [2858, 1230, 1247, 1225, 1267, 1276, 1094, 527, 922, 1254],\n"," 213: [589, 3578, 356, 110, 318, 457, 2959, 1291, 1610, 1198],\n"," 214: [593, 318, 1210, 608, 296, 2858, 1580, 589, 2571, 1036],\n"," 215: [527, 1204, 899, 590, 2329, 969, 1201, 265, 1090, 2115],\n"," 216: [356, 1270, 589, 1291, 1617, 457, 1240, 527, 858, 150],\n"," 217: [356, 357, 588, 318, 457, 377, 364, 11, 440, 236],\n"," 218: [608, 1617, 50, 1193, 1089, 1704, 25, 1208, 858, 1094],\n"," 219: [1197, 356, 1265, 608, 1259, 1079, 1278, 593, 17, 539],\n"," 220: [1276, 969, 908, 1234, 904, 1254, 1252, 910, 1207, 1247],\n"," 221: [110, 1291, 1240, 592, 150, 1, 377, 1580, 1197, 1265],\n"," 222: [48780, 52973, 55820, 8950, 54286, 45722, 48394, 46976, 44195, 51255],\n"," 223: [248, 225, 252, 161, 356, 500, 380, 377, 457, 349],\n"," 224: [733, 494, 141, 376, 25, 260, 9, 653, 457, 356],\n"," 225: [908, 912, 1207, 750, 923, 1267, 1204, 1304, 1247, 930],\n"," 226: [260, 2858, 527, 1097, 1193, 2791, 1089, 1278, 1, 1961],\n"," 227: [750, 541, 924, 1214, 858, 1196, 1193, 2571, 2019, 1221],\n"," 228: [356, 165, 733, 474, 225, 592, 161, 588, 593, 367],\n"," 229: [6, 1, 780, 36, 25, 733, 1393, 593, 296, 1196],\n"," 230: [904, 858, 1276, 1208, 1207, 1193, 318, 111, 908, 1252],\n"," 231: [1198, 1265, 2571, 1136, 1610, 4002, 2918, 1270, 2791, 589],\n"," 232: [589, 47, 1036, 32, 1291, 858, 590, 1197, 150, 2571],\n"," 234: [2858, 296, 318, 593, 47, 1617, 2329, 2762, 1196, 541],\n"," 235: [1196, 2028, 2959, 1208, 1089, 1214, 589, 1136, 5952, 527],\n"," 236: [150, 110, 590, 34, 21, 364, 480, 508, 349, 539],\n"," 237: [858, 608, 1198, 318, 296, 527, 2858, 50, 541, 1208],\n"," 238: [1617, 2959, 2762, 2396, 608, 1213, 2395, 296, 1136, 593],\n"," 239: [110, 593, 457, 260, 1210, 318, 589, 1036, 527, 1197],\n"," 241: [356, 593, 500, 367, 380, 454, 1270, 318, 161, 1],\n"," 242: [648, 36, 786, 608, 356, 1393, 457, 783, 832, 1210],\n"," 243: [1197, 1136, 1265, 2791, 1278, 1270, 1214, 1291, 1617, 1234],\n"," 244: [908, 1207, 923, 1617, 1288, 1221, 1213, 111, 903, 1094],\n"," 245: [1208, 2858, 1193, 1617, 1196, 608, 296, 1213, 1136, 593],\n"," 246: [2571, 2959, 1196, 1136, 1198, 608, 593, 1265, 1089, 2762],\n"," 247: [110, 318, 349, 185, 474, 296, 440, 527, 508, 733],\n"," 248: [2858, 2571, 1196, 1617, 2959, 2762, 2028, 1206, 858, 541],\n"," 249: [2858, 110, 296, 260, 1210, 1270, 858, 5349, 1617, 527],\n"," 250: [527, 593, 356, 590, 457, 296, 508, 161, 337, 282],\n"," 251: [318, 457, 1197, 527, 1617, 2571, 50, 356, 1356, 780],\n"," 252: [923, 858, 1247, 750, 1617, 1208, 1196, 1276, 1304, 913],\n"," 253: [1196, 110, 593, 1265, 2762, 1210, 2028, 260, 318, 296],\n"," 254: [1617, 1198, 1213, 1240, 608, 2028, 1291, 110, 1036, 2762],\n"," 255: [457, 110, 377, 380, 527, 588, 539, 480, 296, 364],\n"," 256: [357, 457, 1079, 527, 318, 1197, 539, 21, 1265, 2797],\n"," 257: [1196, 1291, 589, 2028, 260, 457, 1200, 858, 2762, 1221],\n"," 258: [1198, 1240, 1036, 457, 858, 1617, 1221, 1197, 750, 1270],\n"," 259: [318, 1196, 110, 1198, 1197, 1210, 260, 589, 1136, 858],\n"," 260: [1196, 1198, 318, 110, 457, 1214, 50, 356, 1, 1291],\n"," 261: [1196, 2762, 1617, 2858, 1198, 1210, 260, 2028, 1214, 1270],\n"," 262: [589, 1210, 356, 593, 2028, 733, 1610, 480, 1580, 1270],\n"," 263: [356, 2028, 1617, 1208, 150, 924, 1089, 1580, 7153, 4306],\n"," 264: [318, 110, 150, 527, 47, 590, 380, 364, 592, 377],\n"," 265: [457, 589, 1036, 380, 1370, 2571, 648, 480, 736, 1291],\n"," 266: [1198, 1196, 750, 1240, 858, 912, 608, 1221, 1617, 924],\n"," 267: [750, 1208, 1196, 1240, 858, 1221, 1198, 2858, 912, 1252],\n"," 268: [380, 318, 225, 590, 364, 500, 589, 165, 588, 733],\n"," 269: [736, 733, 648, 653, 260, 95, 1073, 786, 788, 104],\n"," 270: [608, 780, 1, 32, 593, 356, 36, 318, 6, 589],\n"," 271: [1240, 589, 2571, 316, 1198, 1097, 1036, 1291, 733, 110],\n"," 272: [1617, 1193, 1213, 2571, 608, 1089, 111, 593, 318, 1136],\n"," 273: [356, 593, 1291, 1196, 1198, 47, 296, 457, 2762, 2858],\n"," 274: [1198, 912, 969, 908, 858, 1617, 1207, 904, 1291, 2571],\n"," 275: [858, 527, 1213, 356, 1198, 36, 1197, 2571, 1394, 1784],\n"," 276: [1617, 1214, 527, 608, 2028, 858, 260, 1213, 1136, 1200],\n"," 277: [589, 1196, 1291, 1240, 1198, 110, 2571, 1210, 457, 356],\n"," 278: [110, 356, 593, 589, 318, 1196, 1210, 1198, 457, 296],\n"," 279: [110, 1197, 2858, 356, 2028, 541, 1036, 32, 858, 1617],\n"," 280: [356, 318, 150, 2858, 2396, 1784, 593, 110, 36, 296],\n"," 281: [356, 380, 588, 590, 480, 34, 377, 364, 161, 508],\n"," 282: [780, 141, 736, 1393, 25, 6, 648, 95, 356, 457],\n"," 285: [608, 1196, 1136, 2858, 1617, 593, 1198, 858, 1213, 1278],\n"," 286: [110, 2762, 1197, 1617, 858, 318, 1580, 356, 480, 1610],\n"," 287: [593, 318, 589, 480, 150, 296, 380, 527, 590, 588],\n"," 288: [912, 1207, 923, 1254, 910, 1247, 1204, 1267, 969, 750],\n"," 289: [1230, 1208, 1198, 1288, 1196, 260, 2396, 541, 910, 899],\n"," 290: [34, 594, 1197, 1028, 1210, 1198, 110, 1270, 356, 480],\n"," 291: [912, 1208, 1198, 908, 1247, 260, 541, 919, 1221, 904],\n"," 292: [2571, 1617, 1270, 1208, 2028, 1036, 2762, 924, 589, 527],\n"," 293: [457, 110, 380, 480, 356, 589, 296, 377, 364, 10],\n"," 294: [593, 589, 150, 480, 590, 733, 474, 527, 316, 10],\n"," 295: [1259, 34, 318, 457, 1193, 593, 858, 608, 260, 440],\n"," 296: [1196, 1617, 1198, 50, 1291, 5445, 608, 3996, 260, 1200],\n"," 297: [780, 36, 733, 1073, 6, 25, 593, 1196, 318, 356],\n"," 298: [1196, 1198, 1210, 260, 588, 356, 608, 593, 497, 1097],\n"," 300: [1198, 593, 1197, 1097, 1207, 2858, 1291, 50, 1036, 1259],\n"," 301: [1617, 1193, 2028, 1197, 111, 1089, 904, 1207, 1214, 924],\n"," 302: [356, 1198, 593, 457, 1610, 1265, 1270, 1036, 480, 1],\n"," 303: [593, 1198, 1214, 50, 589, 1617, 1240, 1291, 2762, 1208],\n"," 304: [1193, 1207, 1247, 318, 1208, 1704, 1259, 608, 527, 593],\n"," 305: [318, 380, 364, 34, 440, 161, 595, 474, 21, 592],\n"," 306: [1197, 1968, 1265, 1136, 2797, 1079, 1394, 1198, 1278, 1784],\n"," 307: [1291, 1036, 1197, 1527, 32, 2762, 1097, 3578, 593, 1374],\n"," 308: [588, 356, 150, 377, 457, 380, 595, 539, 586, 318],\n"," 309: [780, 733, 1393, 141, 608, 356, 1210, 648, 1356, 783],\n"," 310: [1265, 1193, 1210, 904, 908, 150, 1230, 1208, 2028, 953],\n"," 311: [457, 588, 377, 539, 318, 110, 380, 34, 480, 593],\n"," 312: [908, 903, 750, 923, 1204, 1207, 930, 1254, 910, 1267],\n"," 313: [1196, 593, 2858, 1198, 2762, 318, 527, 1617, 1197, 296],\n"," 314: [1193, 1197, 1208, 1214, 608, 1291, 1213, 2571, 1270, 1200],\n"," 315: [380, 590, 593, 110, 225, 588, 364, 34, 589, 474],\n"," 316: [736, 9, 5, 786, 648, 719, 765, 609, 694, 141],\n"," 317: [1196, 858, 2858, 912, 1198, 2762, 2571, 904, 260, 750],\n"," 318: [318, 110, 50, 589, 1, 919, 1240, 588, 541, 1207],\n"," 319: [1198, 1617, 1208, 589, 32, 2985, 858, 2858, 1197, 2529],\n"," 320: [1198, 1291, 318, 2028, 110, 47, 356, 50, 858, 541],\n"," 321: [318, 110, 150, 380, 590, 527, 592, 47, 50, 377],\n"," 322: [912, 899, 1094, 920, 1207, 908, 1304, 1307, 904, 2020],\n"," 323: [1208, 2858, 904, 858, 318, 1278, 541, 296, 1225, 260],\n"," 324: [1196, 2858, 50, 2329, 2762, 1198, 593, 3996, 1136, 47],\n"," 325: [1196, 356, 1265, 2571, 1197, 593, 110, 1210, 457, 2716],\n"," 326: [318, 377, 380, 508, 34, 527, 500, 349, 339, 592],\n"," 327: [36, 780, 593, 6, 318, 356, 296, 1196, 527, 457],\n"," 328: [1198, 1210, 858, 1617, 1291, 593, 1221, 1036, 1208, 1197],\n"," 329: [318, 47, 356, 4993, 2762, 2959, 527, 2571, 1291, 296],\n"," 330: [4226, 1036, 1198, 1214, 3578, 593, 2028, 32, 5445, 6539],\n"," 331: [4993, 2329, 2858, 5952, 4878, 47, 3578, 2762, 50, 7153],\n"," 332: [356, 296, 380, 589, 592, 527, 377, 34, 349, 50],\n"," 333: [150, 36, 508, 11, 457, 34, 590, 300, 151, 21],\n"," 334: [1270, 1240, 1036, 1220, 1580, 593, 1265, 589, 480, 527],\n"," 335: [913, 1204, 1207, 903, 1208, 1617, 1221, 1267, 1193, 2858],\n"," 336: [1198, 1270, 1197, 1291, 858, 1580, 356, 2028, 2762, 4993],\n"," 337: [858, 2858, 296, 608, 1136, 527, 1193, 1208, 1617, 111],\n"," 338: [318, 527, 50, 1196, 47, 1198, 150, 858, 589, 1213],\n"," 339: [457, 593, 150, 110, 356, 589, 527, 161, 480, 377],\n"," 340: [1, 32, 592, 588, 21, 590, 1270, 1097, 858, 34],\n"," 341: [1221, 1197, 2028, 541, 1610, 608, 1210, 750, 1387, 1265],\n"," 342: [1196, 2571, 589, 1240, 1291, 1198, 1036, 2028, 318, 1617],\n"," 343: [457, 110, 377, 590, 356, 316, 165, 593, 474, 318],\n"," 344: [593, 318, 589, 110, 356, 1036, 527, 150, 1197, 480],\n"," 345: [1265, 1196, 2791, 593, 1079, 2716, 318, 260, 1220, 1259],\n"," 346: [500, 1210, 539, 1196, 1265, 780, 2571, 593, 440, 141],\n"," 347: [1214, 1200, 1210, 1198, 1270, 750, 1291, 589, 2716, 1036],\n"," 348: [1196, 50, 1210, 541, 260, 5445, 1136, 1197, 1206, 1704],\n"," 349: [21, 357, 34, 11, 161, 588, 440, 380, 300, 62],\n"," 350: [36, 527, 508, 497, 34, 150, 300, 17, 457, 515],\n"," 351: [527, 1259, 750, 1136, 1278, 1198, 356, 541, 1252, 235],\n"," 352: [356, 539, 150, 1784, 110, 380, 1704, 587, 318, 457],\n"," 353: [2858, 1198, 1240, 50, 318, 260, 858, 1036, 1617, 1291],\n"," 354: [1196, 2028, 527, 296, 4226, 1291, 589, 1198, 47, 4886],\n"," 355: [356, 527, 589, 380, 47, 480, 588, 161, 592, 377],\n"," 356: [608, 6, 260, 141, 1183, 62, 356, 1, 593, 527],\n"," 357: [2797, 1197, 2918, 356, 3039, 357, 1259, 608, 2716, 1307],\n"," 358: [1036, 1291, 110, 1198, 541, 592, 2028, 457, 380, 47],\n"," 359: [7361, 4993, 5952, 7153, 2571, 1208, 2997, 1196, 1206, 1193],\n"," 360: [25, 58, 608, 265, 357, 62, 1393, 497, 21, 509],\n"," 361: [750, 111, 1208, 608, 1213, 1193, 1304, 858, 1276, 1089],\n"," 362: [1196, 2571, 4226, 2959, 2858, 4993, 858, 296, 1291, 5952],\n"," 363: [4226, 2571, 2858, 3578, 2762, 5445, 4878, 2028, 4995, 6539],\n"," 364: [356, 150, 589, 480, 592, 588, 47, 349, 377, 364],\n"," 365: [318, 588, 539, 377, 380, 589, 440, 47, 161, 595],\n"," 366: [356, 593, 1210, 1270, 480, 1, 318, 588, 527, 296],\n"," 367: [1207, 1276, 1208, 910, 1084, 608, 969, 903, 1254, 1299],\n"," 368: [2858, 593, 1265, 318, 1240, 1270, 2762, 2028, 356, 1208],\n"," 369: [593, 356, 110, 150, 50, 527, 457, 589, 47, 590],\n"," 370: [733, 36, 260, 648, 783, 95, 608, 25, 1393, 719],\n"," 371: [1198, 1136, 1197, 2858, 593, 2571, 858, 1240, 1270, 260],\n"," 372: [1240, 260, 2028, 593, 2858, 110, 318, 1270, 356, 858],\n"," 373: [2396, 1197, 1617, 356, 595, 457, 588, 39, 608, 593],\n"," 375: [1278, 1394, 1197, 1307, 1292, 1079, 1265, 2406, 5060, 1270],\n"," 376: [1196, 1198, 858, 750, 1291, 1036, 924, 318, 1136, 2858],\n"," 377: [1207, 1208, 1094, 1225, 1617, 608, 912, 1230, 593, 1213],\n"," 378: [1198, 1197, 1617, 593, 608, 2028, 318, 1270, 1136, 2858],\n"," 379: [356, 110, 457, 589, 593, 318, 480, 380, 1210, 1196],\n"," 380: [2571, 4993, 3996, 1196, 4306, 2762, 4963, 4226, 2959, 1580],\n"," 381: [592, 236, 282, 337, 736, 497, 141, 367, 1, 265],\n"," 382: [457, 150, 356, 480, 110, 590, 364, 377, 589, 318],\n"," 383: [527, 1198, 2028, 1213, 1136, 356, 2959, 32, 750, 589],\n"," 384: [380, 593, 377, 110, 597, 539, 588, 225, 480, 527],\n"," 385: [36, 21, 1393, 265, 508, 783, 1183, 318, 34, 356],\n"," 386: [2571, 1197, 1259, 541, 1193, 1207, 50, 2716, 919, 750],\n"," 387: [2571, 1196, 3717, 4963, 2683, 3578, 2762, 589, 2959, 3793],\n"," 388: [1196, 589, 318, 2028, 858, 593, 2858, 110, 2959, 296],\n"," 389: [4973, 5445, 6539, 4886, 2762, 4306, 6377, 1196, 47, 6874],\n"," 390: [2858, 1036, 47, 527, 32, 541, 6539, 1270, 1214, 1089],\n"," 391: [457, 588, 110, 34, 527, 539, 597, 508, 357, 500],\n"," 392: [590, 380, 508, 608, 161, 595, 1, 349, 733, 165],\n"," 393: [780, 1, 736, 1210, 494, 95, 141, 608, 36, 356],\n"," 394: [2762, 593, 2571, 527, 356, 1210, 110, 1193, 1136, 1240],\n"," 395: [110, 593, 356, 2571, 1196, 589, 1198, 527, 480, 2858],\n"," 396: [589, 1240, 1270, 356, 110, 593, 2028, 1197, 1214, 318],\n"," 397: [2959, 1617, 50, 1213, 1196, 47, 2997, 608, 1208, 4993],\n"," 398: [318, 364, 508, 480, 595, 589, 380, 21, 296, 592],\n"," 399: [1, 36, 62, 25, 1210, 356, 494, 653, 786, 5],\n"," 400: [318, 1704, 2762, 527, 296, 1196, 1265, 356, 2396, 1213],\n"," 401: [1196, 1136, 1208, 1240, 1193, 1200, 904, 1270, 750, 2858],\n"," 402: [4993, 3578, 4226, 4995, 5952, 2571, 4886, 6539, 4306, 5418],\n"," 403: [1196, 1198, 2762, 593, 50, 2858, 4993, 318, 1291, 3578],\n"," 404: [356, 593, 318, 150, 474, 588, 165, 590, 316, 296],\n"," 405: [733, 1, 6, 608, 648, 736, 36, 1393, 356, 95],\n"," 406: [457, 380, 356, 377, 590, 110, 318, 593, 480, 588],\n"," 407: [1196, 1210, 260, 110, 356, 1617, 1270, 2858, 1200, 318],\n"," 408: [2858, 2918, 1136, 1617, 858, 2791, 50, 1080, 1089, 1208],\n"," 409: [225, 457, 380, 539, 356, 248, 110, 736, 588, 733],\n"," 410: [457, 260, 380, 349, 296, 590, 592, 588, 21, 34],\n"," 411: [260, 1, 36, 25, 6, 17, 736, 32, 783, 141],\n"," 412: [527, 1617, 296, 1193, 2571, 1198, 50, 2762, 1213, 110],\n"," 413: [750, 1208, 1221, 1213, 912, 1617, 1206, 1207, 908, 1252],\n"," 414: [608, 318, 50, 527, 2571, 1089, 2762, 47, 1136, 1213],\n"," 415: [318, 593, 356, 527, 608, 150, 110, 50, 457, 36],\n"," 416: [110, 318, 589, 296, 539, 527, 595, 165, 357, 21],\n"," 417: [1196, 912, 608, 904, 1198, 858, 1197, 1208, 1617, 750],\n"," 418: [593, 356, 527, 150, 457, 508, 590, 357, 589, 380],\n"," 419: [1196, 2858, 1240, 1265, 2028, 924, 1207, 1304, 111, 2762],\n"," 420: [318, 593, 25, 608, 509, 508, 337, 150, 356, 590],\n"," 421: [318, 364, 110, 593, 380, 480, 34, 539, 527, 296],\n"," 422: [780, 736, 786, 648, 6, 1210, 95, 832, 1, 62],\n"," 424: [1207, 1094, 1276, 1197, 1193, 1394, 1288, 1225, 858, 593],\n"," 425: [2762, 2858, 2571, 2959, 1617, 593, 318, 2329, 1196, 296],\n"," 426: [318, 2858, 750, 912, 1206, 1221, 1089, 1136, 924, 904],\n"," 427: [1198, 2028, 1036, 1291, 110, 1196, 296, 858, 47, 2571],\n"," 428: [1210, 480, 1197, 457, 1097, 1270, 589, 780, 260, 329],\n"," 429: [593, 1240, 2571, 1196, 589, 50, 260, 318, 1198, 1210],\n"," 430: [3578, 4993, 3147, 2959, 1036, 589, 47, 5952, 4226, 2762],\n"," 431: [3578, 1291, 1196, 2329, 1198, 1036, 4226, 5445, 2959, 32587],\n"," 432: [34, 357, 161, 539, 608, 47, 440, 377, 225, 589],\n"," 433: [480, 150, 593, 1036, 6, 318, 1240, 316, 34, 588],\n"," 434: [1240, 589, 1214, 1270, 1197, 1200, 593, 318, 32, 480],\n"," 435: [2858, 1089, 1196, 5952, 47, 7153, 1208, 296, 1200, 4993],\n"," 436: [593, 150, 588, 589, 590, 527, 47, 377, 592, 161],\n"," 437: [1617, 1193, 1207, 858, 912, 923, 1276, 1225, 1198, 1304],\n"," 438: [1036, 1291, 608, 2028, 527, 50, 1270, 780, 1610, 592],\n"," 439: [858, 2858, 296, 1208, 1196, 1198, 593, 1213, 318, 1617],\n"," 440: [1196, 2571, 2028, 1036, 589, 1617, 1240, 260, 1089, 1270],\n"," 441: [110, 480, 356, 150, 593, 318, 592, 590, 474, 296],\n"," 443: [527, 608, 296, 1617, 1358, 337, 1704, 1213, 300, 2028],\n"," 444: [260, 1210, 110, 1617, 593, 480, 1200, 858, 318, 912],\n"," 445: [4993, 1196, 4226, 912, 858, 750, 1193, 111, 2858, 1206],\n"," 446: [110, 590, 47, 527, 50, 364, 592, 377, 10, 165],\n"," 447: [2858, 50, 1213, 1265, 1193, 858, 1196, 904, 1208, 235],\n"," 448: [2997, 1196, 2959, 1617, 1136, 2571, 2762, 2396, 858, 2028],\n"," 449: [1617, 110, 2028, 1198, 3147, 318, 2502, 1036, 296, 4226],\n"," 450: [356, 1291, 1265, 296, 1136, 457, 1213, 912, 1704, 1],\n"," 451: [1198, 541, 2959, 1214, 1240, 1200, 3578, 1291, 2762, 260],\n"," 452: [110, 589, 593, 1210, 733, 380, 457, 1196, 150, 588],\n"," 453: [457, 150, 356, 318, 590, 593, 110, 589, 377, 527],\n"," 454: [356, 150, 318, 593, 380, 480, 527, 592, 539, 47],\n"," 455: [780, 1393, 32, 356, 62, 593, 648, 736, 25, 457],\n"," 456: [150, 356, 380, 527, 590, 589, 508, 377, 474, 364],\n"," 458: [2571, 1617, 1196, 2028, 2959, 1198, 858, 1704, 1265, 260],\n"," 459: [3578, 4993, 1240, 1198, 2028, 2762, 2858, 1270, 4226, 50],\n"," 460: [356, 318, 480, 589, 592, 377, 364, 292, 47, 527],\n"," 461: [593, 318, 356, 110, 780, 527, 589, 6, 457, 1210],\n"," 462: [527, 296, 356, 150, 110, 508, 1, 47, 21, 589],\n"," 463: [1291, 2858, 541, 1265, 608, 1208, 1213, 924, 2959, 1387],\n"," 464: [1097, 318, 356, 1196, 858, 1704, 2571, 1198, 110, 2028],\n"," 465: [923, 527, 4226, 2997, 541, 1136, 1196, 2028, 32, 750],\n"," 466: [1196, 1198, 2571, 1291, 260, 1214, 1240, 1036, 1200, 1197],\n"," 467: [1196, 2571, 1210, 1291, 1198, 541, 1527, 1270, 260, 480],\n"," 468: [318, 50, 21, 356, 34, 590, 110, 608, 36, 337],\n"," 469: [1197, 1617, 858, 110, 50, 750, 1580, 2959, 1193, 1208],\n"," 470: [1193, 1213, 923, 593, 2571, 1214, 1196, 527, 904, 1288],\n"," 471: [377, 380, 595, 588, 480, 150, 185, 590, 356, 161],\n"," 472: [377, 110, 380, 508, 592, 597, 440, 594, 161, 733],\n"," 473: [36, 1, 593, 141, 296, 6, 318, 21, 1393, 527],\n"," 474: [589, 1198, 1374, 1580, 1291, 1036, 750, 2916, 1584, 32],\n"," 475: [904, 2858, 1617, 1196, 2571, 2762, 2997, 1193, 1208, 2028],\n"," 476: [858, 2762, 1089, 1193, 1213, 111, 912, 1704, 6874, 1270],\n"," 477: [2858, 1208, 1240, 750, 589, 3578, 110, 1206, 32, 111],\n"," 479: [858, 1221, 904, 923, 1230, 908, 1225, 1276, 912, 1089],\n"," 480: [1270, 1210, 1036, 1208, 318, 589, 1193, 1213, 1089, 527],\n"," 481: [110, 2762, 541, 1197, 527, 1610, 1193, 608, 750, 924],\n"," 482: [3578, 2571, 48516, 51662, 2858, 1291, 1196, 7438, 6874, 50],\n"," 483: [377, 588, 296, 161, 225, 292, 508, 11, 474, 47],\n"," 484: [736, 648, 786, 62, 719, 64, 1210, 36, 104, 667],\n"," 485: [1265, 260, 356, 34, 1197, 1207, 1198, 904, 2028, 110],\n"," 486: [318, 2858, 356, 593, 1198, 858, 2762, 296, 1196, 1193],\n"," 487: [2858, 296, 593, 2959, 1617, 527, 1136, 47, 1196, 1213],\n"," 488: [110, 377, 356, 150, 165, 364, 316, 590, 588, 593],\n"," 489: [593, 527, 1198, 912, 296, 1196, 1617, 1197, 541, 923],\n"," 490: [1197, 260, 1036, 593, 1193, 1136, 1097, 356, 1213, 296],\n"," 491: [3578, 589, 1198, 2028, 593, 296, 4993, 50, 1240, 1036],\n"," 492: [318, 593, 1196, 858, 356, 527, 2858, 296, 1198, 260],\n"," 493: [593, 608, 1617, 1196, 110, 2571, 2028, 1208, 111, 1198],\n"," 494: [356, 150, 6, 527, 474, 590, 377, 349, 588, 480],\n"," 495: [150, 457, 377, 161, 539, 11, 356, 225, 266, 474],\n"," 496: [356, 110, 1036, 1196, 318, 527, 480, 1270, 1198, 1291],\n"," 497: [2858, 1196, 541, 593, 50, 1193, 296, 1136, 750, 1617],\n"," 498: [908, 923, 912, 904, 1230, 1193, 1288, 1136, 1207, 1208],\n"," 499: [593, 318, 36, 527, 1196, 25, 1213, 1193, 1617, 111],\n"," 500: [50, 2858, 1089, 1094, 34, 1193, 1265, 337, 1208, 246],\n"," 501: [34, 318, 1240, 527, 380, 1259, 589, 296, 780, 1610],\n"," 502: [2571, 2959, 1196, 2355, 3578, 1704, 2028, 3147, 2683, 2502],\n"," 503: [1196, 1291, 1214, 1208, 50, 260, 47, 2329, 1210, 1617],\n"," 504: [508, 590, 110, 21, 377, 539, 588, 380, 161, 357],\n"," 505: [457, 480, 150, 593, 377, 733, 296, 597, 527, 500],\n"," 506: [608, 110, 1197, 1240, 1036, 590, 21, 293, 1617, 34],\n"," 507: [356, 589, 593, 318, 380, 780, 480, 377, 527, 1],\n"," 508: [593, 858, 2858, 318, 1198, 2028, 1208, 2571, 1240, 1193],\n"," 509: [1196, 318, 3578, 4993, 110, 1198, 589, 1036, 1210, 260],\n"," 510: [457, 110, 588, 296, 380, 377, 589, 508, 539, 592],\n"," 511: [457, 356, 377, 480, 318, 593, 292, 589, 588, 316],\n"," 512: [1213, 36, 1094, 527, 296, 994, 1193, 593, 25, 778],\n"," 513: [1094, 1213, 1270, 2791, 1225, 235, 969, 1097, 1183, 110],\n"," 515: [904, 923, 1247, 913, 903, 910, 1250, 1193, 899, 1252],\n"," 516: [589, 1036, 1240, 50, 1136, 608, 1193, 1197, 1, 1265],\n"," 517: [593, 356, 457, 589, 590, 527, 165, 225, 480, 474],\n"," 518: [1198, 296, 858, 110, 1213, 2858, 1617, 50, 32, 541],\n"," 520: [858, 593, 296, 1213, 527, 1193, 50, 111, 1208, 2858],\n"," 521: [110, 296, 527, 47, 1198, 589, 2762, 1196, 457, 1291],\n"," 522: [527, 1193, 50, 1196, 1198, 32, 1207, 110, 356, 1617],\n"," 523: [593, 296, 25, 111, 1089, 21, 1196, 1183, 1617, 1198],\n"," 524: [2762, 1196, 1617, 593, 4993, 1198, 527, 1193, 1136, 1291],\n"," 525: [318, 110, 589, 296, 356, 380, 150, 480, 592, 527],\n"," 526: [736, 1393, 356, 593, 62, 318, 141, 1210, 104, 296],\n"," 527: [457, 380, 110, 150, 364, 1265, 589, 318, 593, 780],\n"," 529: [593, 318, 2858, 1196, 50, 1198, 1136, 2571, 858, 110],\n"," 530: [356, 457, 161, 593, 225, 377, 588, 539, 11, 480],\n"," 531: [457, 593, 356, 110, 380, 296, 588, 364, 527, 34],\n"," 532: [2858, 1208, 541, 750, 608, 2959, 1089, 1193, 318, 1214],\n"," 533: [1213, 2028, 111, 1304, 1288, 356, 1097, 1089, 150, 1732],\n"," 534: [7153, 4963, 3578, 5349, 4226, 6539, 356, 2959, 4011, 5445],\n"," 535: [908, 1207, 910, 1221, 1617, 1284, 1193, 926, 1250, 2858],\n"," 536: [356, 318, 590, 527, 110, 21, 440, 380, 364, 36],\n"," 537: [25, 62, 733, 780, 1, 1393, 593, 32, 58, 318],\n"," 539: [356, 318, 457, 110, 296, 480, 595, 380, 592, 34],\n"," 540: [1196, 1240, 2571, 2716, 1210, 2762, 1198, 1197, 593, 1036],\n"," 541: [318, 608, 296, 380, 1265, 1580, 21, 150, 858, 2762],\n"," 542: [923, 750, 1247, 1276, 1208, 1304, 969, 1234, 1230, 608],\n"," 543: [110, 2028, 750, 858, 50, 296, 608, 1136, 1610, 47],\n"," 544: [4226, 2858, 1136, 2571, 858, 4011, 593, 1214, 541, 1206],\n"," 545: [1196, 260, 1197, 1210, 3578, 1207, 912, 904, 592, 1219],\n"," 546: [6539, 45722, 36529, 32587, 4963, 4886, 33166, 5445, 44191, 49272],\n"," 547: [356, 380, 318, 592, 296, 34, 733, 316, 161, 165],\n"," 548: [1197, 356, 1097, 1265, 1270, 593, 110, 527, 1291, 150],\n"," 549: [110, 356, 296, 527, 364, 380, 480, 589, 592, 34],\n"," 550: [1197, 593, 1221, 1252, 1208, 1259, 1307, 1213, 1204, 1219],\n"," 551: [1196, 1197, 1240, 110, 318, 457, 1221, 1210, 296, 1193],\n"," 552: [593, 1617, 527, 858, 1208, 2571, 1732, 1196, 47, 1197],\n"," 553: [356, 150, 590, 588, 316, 377, 527, 10, 364, 780],\n"," 554: [1208, 1193, 296, 923, 1617, 750, 858, 593, 2997, 608],\n"," 555: [2571, 1214, 1197, 1036, 1136, 858, 541, 1200, 1208, 924],\n"," 556: [457, 590, 588, 589, 539, 380, 161, 337, 25, 608],\n"," 557: [6, 36, 608, 733, 1, 780, 95, 25, 832, 9],\n"," 558: [1196, 2571, 2762, 260, 47, 589, 1193, 1240, 1210, 1],\n"," 559: [1196, 260, 1240, 1198, 1291, 1036, 1527, 589, 1200, 1214],\n"," 560: [1213, 527, 608, 858, 111, 1208, 1617, 2571, 1196, 356],\n"," 561: [1198, 480, 318, 2762, 2028, 50, 1270, 592, 4226, 4886],\n"," 562: [480, 508, 296, 21, 316, 440, 236, 248, 454, 141],\n"," 563: [593, 296, 318, 527, 6, 1, 356, 17, 50, 858],\n"," 564: [1197, 1240, 593, 858, 457, 527, 912, 2571, 1278, 1234],\n"," 565: [318, 593, 1196, 527, 2028, 1197, 260, 296, 1210, 589],\n"," 566: [1193, 1208, 36, 1246, 923, 1207, 1183, 318, 111, 527],\n"," 567: [150, 110, 597, 225, 593, 349, 587, 733, 292, 780],\n"," 568: [648, 376, 5, 25, 260, 9, 356, 608, 32, 457],\n"," 569: [318, 356, 150, 110, 380, 589, 527, 480, 161, 377],\n"," 570: [593, 296, 858, 1196, 1198, 1193, 110, 2028, 1617, 1197],\n"," 571: [593, 1036, 1240, 1270, 356, 2858, 2762, 296, 110, 589],\n"," 572: [1193, 318, 2762, 1136, 1036, 3578, 1214, 1617, 50, 589],\n"," 573: [296, 1617, 150, 110, 111, 1193, 2997, 457, 1196, 858],\n"," 574: [356, 110, 318, 150, 733, 349, 590, 592, 539, 780],\n"," 575: [733, 780, 1, 736, 36, 719, 805, 765, 9, 64],\n"," 576: [593, 608, 1617, 1193, 36, 50, 858, 111, 356, 1089],\n"," 577: [527, 1304, 1196, 356, 1193, 1265, 260, 34, 1617, 1197],\n"," 578: [1196, 1210, 1270, 1197, 457, 1374, 858, 1617, 924, 110],\n"," 579: [110, 1240, 2028, 858, 1270, 457, 1617, 1200, 1197, 1610],\n"," 580: [356, 1196, 589, 586, 296, 3578, 318, 593, 364, 50],\n"," 581: [356, 457, 593, 150, 110, 380, 34, 377, 296, 539],\n"," 582: [923, 953, 750, 1278, 1197, 1221, 1213, 1288, 1196, 920],\n"," 583: [2571, 1196, 541, 1580, 1617, 608, 1214, 1200, 1089, 1210],\n"," 584: [150, 110, 165, 588, 364, 318, 590, 161, 593, 597],\n"," 585: [1197, 1208, 1221, 800, 318, 1259, 265, 1204, 1233, 1235],\n"," 586: [1617, 608, 527, 1265, 318, 912, 1193, 296, 858, 1394],\n"," 587: [296, 1198, 2858, 1213, 858, 50, 2959, 47, 1291, 110],\n"," 588: [318, 150, 593, 110, 21, 380, 590, 377, 364, 589],\n"," 589: [593, 318, 608, 111, 21, 110, 1213, 457, 1208, 858],\n"," 590: [110, 356, 1036, 1197, 1617, 1265, 858, 527, 1270, 2858],\n"," 591: [1196, 1580, 1198, 1517, 2762, 2571, 2918, 589, 1291, 110],\n"," 592: [608, 1094, 1617, 750, 904, 1208, 908, 1230, 2858, 800],\n"," 593: [150, 480, 592, 527, 377, 364, 292, 474, 595, 32],\n"," 594: [1, 736, 786, 1393, 6, 32, 608, 480, 494, 356],\n"," 595: [1193, 1259, 919, 1278, 1617, 457, 318, 1210, 912, 904],\n"," 596: [1207, 908, 1304, 1193, 1234, 1276, 858, 1094, 1225, 1394],\n"," 597: [17, 356, 527, 34, 1247, 1617, 1197, 1207, 25, 593],\n"," 598: [1240, 1997, 1200, 541, 1258, 1387, 2288, 1196, 750, 1374],\n"," 599: [908, 904, 910, 899, 946, 1247, 1207, 903, 969, 1304],\n"," 600: [1196, 1198, 2571, 260, 1291, 593, 1036, 589, 1270, 1197],\n"," 601: [590, 592, 780, 733, 161, 225, 300, 736, 367, 1036],\n"," 602: [1196, 912, 1136, 919, 1193, 1207, 1225, 1240, 750, 541],\n"," 603: [593, 265, 150, 1207, 1193, 457, 1094, 357, 17, 590],\n"," 604: [6, 356, 110, 589, 527, 36, 150, 260, 1, 780],\n"," 605: [593, 1213, 110, 1617, 858, 111, 2858, 457, 1198, 1208],\n"," 606: [1196, 1240, 1036, 1291, 593, 1197, 1617, 1210, 1270, 589],\n"," 607: [1196, 296, 2571, 2028, 2858, 1617, 1213, 527, 541, 1136],\n"," 608: [1196, 541, 2571, 1240, 1198, 2858, 32, 1291, 1136, 858],\n"," 609: [150, 593, 377, 592, 165, 292, 539, 474, 597, 508],\n"," 610: [1207, 908, 912, 1208, 608, 1225, 1234, 1221, 953, 1252],\n"," 612: [780, 95, 6, 653, 260, 104, 376, 9, 356, 377],\n"," 613: [1197, 260, 1210, 1198, 1240, 457, 589, 1580, 1265, 1270],\n"," 614: [1291, 1036, 1214, 589, 1210, 1270, 1197, 2571, 593, 541],\n"," 616: [1196, 1240, 260, 1270, 858, 1617, 1200, 364, 1214, 1197],\n"," 617: [318, 364, 590, 296, 592, 595, 608, 161, 1265, 587],\n"," 618: [296, 50, 1213, 36, 356, 25, 457, 1265, 150, 21],\n"," 619: [1196, 1036, 1291, 2571, 1197, 1270, 1221, 1610, 593, 541],\n"," 620: [4226, 4993, 3996, 4027, 3578, 4995, 4963, 5952, 4973, 2959],\n"," 621: [858, 260, 750, 1288, 1208, 1213, 2571, 924, 527, 1278],\n"," 622: [1291, 1036, 3578, 50, 6539, 527, 4226, 1270, 858, 541],\n"," 623: [457, 356, 150, 527, 588, 590, 377, 508, 357, 480],\n"," 624: [2762, 2571, 2716, 1210, 110, 588, 589, 2858, 1580, 1265],\n"," 625: [1198, 1240, 1291, 858, 1214, 110, 2571, 1200, 1221, 2028],\n"," 627: [2959, 1196, 1198, 1617, 47, 1036, 1210, 260, 527, 1291],\n"," 628: [457, 593, 356, 377, 110, 508, 21, 266, 380, 539],\n"," 629: [356, 318, 539, 21, 440, 457, 357, 508, 593, 590],\n"," 630: [648, 786, 6, 62, 9, 376, 141, 380, 260, 79],\n"," 631: [1207, 1208, 912, 858, 908, 1221, 904, 923, 1276, 1252],\n"," 632: [1617, 260, 912, 1197, 858, 919, 1198, 2396, 750, 1193],\n"," 633: [912, 1136, 318, 924, 1206, 1247, 1197, 1288, 1291, 1276],\n"," 634: [1270, 318, 592, 150, 527, 296, 2797, 50, 2571, 364],\n"," 635: [2762, 318, 2028, 1259, 608, 1197, 1704, 1196, 2571, 1265],\n"," 636: [1196, 2858, 593, 1036, 1208, 1214, 1193, 50, 1240, 589],\n"," 637: [589, 2571, 1196, 593, 1240, 318, 457, 1210, 356, 527],\n"," 638: [593, 21, 457, 265, 161, 236, 497, 377, 110, 58],\n"," 639: [3578, 110, 2571, 4226, 1196, 2762, 589, 50, 1198, 2028],\n"," 640: [593, 296, 260, 1240, 1036, 2762, 50, 2329, 527, 1200],\n"," 641: [356, 110, 150, 296, 588, 364, 590, 592, 165, 316],\n"," 642: [527, 356, 1198, 1207, 1208, 1136, 2028, 2571, 1307, 904],\n"," 643: [1198, 1276, 1214, 1230, 541, 1136, 1265, 924, 2858, 1267],\n"," 644: [1580, 480, 1197, 356, 1610, 2762, 858, 2716, 780, 32],\n"," 645: [733, 780, 457, 589, 349, 110, 356, 480, 95, 316],\n"," 646: [356, 364, 318, 110, 380, 480, 150, 593, 457, 589],\n"," 647: [356, 736, 1036, 316, 161, 593, 494, 1210, 292, 10],\n"," 648: [608, 1208, 908, 1221, 750, 527, 1276, 1230, 296, 1288],\n"," 649: [110, 1198, 1197, 593, 318, 1196, 527, 150, 1704, 1],\n"," 650: [1265, 593, 1617, 2791, 1136, 110, 858, 1097, 2028, 527],\n"," 651: [904, 1208, 913, 1304, 1230, 111, 1254, 922, 1234, 1288],\n"," 652: [1247, 1197, 919, 1207, 318, 34, 1230, 364, 1097, 608],\n"," 653: [593, 318, 356, 296, 150, 527, 1196, 110, 1784, 1265],\n"," 654: [457, 380, 296, 589, 480, 527, 47, 377, 592, 588],\n"," 655: [589, 593, 110, 527, 588, 50, 34, 1097, 32, 608],\n"," 656: [457, 588, 589, 590, 500, 21, 296, 527, 292, 780],\n"," 657: [750, 1136, 1206, 2762, 1304, 1265, 1276, 1094, 1394, 1234],\n"," 658: [2858, 318, 2762, 1196, 858, 50, 1213, 1617, 527, 3147],\n"," 659: [296, 1617, 2959, 50, 2028, 608, 1198, 1193, 4226, 750],\n"," 660: [296, 527, 356, 110, 2959, 858, 1196, 589, 2329, 1198],\n"," 661: [150, 318, 377, 349, 592, 588, 165, 539, 474, 364],\n"," 662: [1208, 593, 1207, 527, 318, 1247, 923, 904, 1276, 908],\n"," 663: [1198, 1196, 260, 1240, 1214, 1291, 858, 1136, 1200, 296],\n"," 664: [1196, 1198, 318, 1197, 1240, 2571, 527, 110, 608, 296],\n"," 665: [2858, 750, 1193, 1617, 858, 1136, 904, 1221, 1213, 1196],\n"," 666: [541, 2959, 1206, 2858, 1208, 4226, 750, 1136, 924, 1198],\n"," 667: [1197, 1193, 593, 1210, 1036, 1259, 1617, 2571, 527, 1214],\n"," 668: [1208, 541, 750, 1193, 858, 111, 1221, 2858, 1213, 1196],\n"," 669: [593, 377, 590, 364, 296, 10, 474, 527, 47, 595],\n"," 670: [780, 736, 1, 376, 608, 648, 494, 260, 95, 25],\n"," 671: [1207, 904, 908, 1304, 1276, 913, 910, 1234, 800, 318],\n"," 672: [318, 2858, 589, 47, 1213, 1036, 32, 608, 1265, 1240],\n"," 674: [1210, 1200, 1198, 1214, 589, 1291, 1097, 1527, 1376, 2916],\n"," 675: [110, 589, 457, 380, 47, 50, 588, 377, 592, 780],\n"," 676: [377, 457, 225, 161, 356, 539, 587, 440, 597, 21],\n"," 677: [356, 380, 377, 539, 349, 165, 592, 595, 47, 292],\n"," 678: [1207, 608, 1214, 1265, 904, 111, 50, 1617, 1136, 1],\n"," 679: [589, 1198, 1240, 457, 1036, 1197, 1291, 380, 318, 733],\n"," 680: [1580, 1198, 1036, 780, 110, 1197, 1291, 457, 1, 1610],\n"," 681: [2028, 2571, 1196, 1198, 2762, 1240, 1291, 1580, 593, 1617],\n"," 683: [1240, 2762, 2028, 457, 1610, 4963, 260, 2959, 592, 2706],\n"," 684: [4993, 4306, 4886, 7153, 4963, 5952, 2959, 47, 5349, 318],\n"," 685: [32, 1196, 593, 1198, 780, 733, 356, 318, 1036, 1240],\n"," 686: [1617, 541, 1208, 912, 1213, 1207, 1193, 2571, 1252, 1270],\n"," 688: [1208, 1198, 1617, 593, 318, 1221, 1291, 2028, 1200, 2959],\n"," 689: [380, 589, 377, 364, 527, 592, 47, 165, 10, 34],\n"," 690: [648, 356, 62, 1210, 653, 104, 95, 1393, 380, 32],\n"," 691: [1270, 2762, 858, 592, 1214, 1097, 1200, 377, 1617, 150],\n"," 693: [150, 356, 590, 508, 377, 34, 539, 380, 589, 161],\n"," 694: [608, 527, 318, 1247, 1197, 1230, 1193, 1225, 296, 1196],\n"," 695: [457, 1210, 1196, 296, 589, 608, 1265, 588, 380, 1617],\n"," 696: [2571, 2858, 2959, 1196, 2716, 1210, 1617, 1197, 593, 356],\n"," 697: [],\n"," 698: [1213, 858, 608, 541, 260, 1136, 356, 2997, 1221, 1270],\n"," 699: [2571, 1196, 589, 2028, 1291, 110, 3578, 1036, 1210, 32587],\n"," 700: [296, 356, 110, 590, 50, 21, 480, 508, 592, 364],\n"," 701: [356, 500, 248, 367, 380, 377, 165, 150, 364, 161],\n"," 702: [1198, 1197, 1270, 858, 1291, 1193, 2571, 1617, 1213, 1036],\n"," 703: [2797, 1197, 1079, 1220, 2918, 1234, 2174, 1198, 2406, 1285],\n"," 704: [1291, 4306, 1198, 2706, 2858, 1036, 356, 3147, 1617, 318],\n"," 705: [1617, 1196, 2028, 2762, 1089, 50, 2571, 1208, 858, 593],\n"," 706: [736, 6, 260, 95, 786, 1, 494, 1073, 653, 608],\n"," 707: [318, 356, 608, 265, 337, 300, 25, 34, 509, 515],\n"," 708: [1196, 1198, 1210, 1197, 1617, 1036, 1291, 1374, 1270, 1221],\n"," 709: [1240, 1291, 1036, 1214, 1210, 1270, 541, 593, 110, 1213],\n"," 710: [912, 904, 1136, 1213, 593, 923, 1276, 1208, 1196, 1234],\n"," 711: [356, 45499, 110, 588, 480, 4993, 1196, 50, 4306, 51662],\n"," 712: [593, 508, 34, 21, 36, 457, 300, 515, 110, 539],\n"," 714: [593, 1196, 1198, 2028, 608, 1265, 1193, 260, 1213, 1210],\n"," 715: [318, 593, 356, 150, 110, 457, 589, 527, 50, 590],\n"," 716: [593, 296, 318, 858, 110, 1136, 1394, 356, 1, 1094],\n"," 718: [296, 527, 318, 508, 2858, 356, 150, 590, 300, 34],\n"," 719: [380, 225, 161, 318, 11, 185, 440, 593, 589, 349],\n"," 720: [356, 110, 593, 589, 597, 592, 595, 34, 165, 10],\n"," 721: [377, 95, 356, 457, 597, 150, 141, 480, 225, 6],\n"," 723: [2858, 1196, 2571, 4993, 50, 593, 296, 2028, 858, 1291],\n"," 724: [36, 25, 780, 356, 6, 593, 318, 1210, 296, 141],\n"," 725: [1617, 1196, 2396, 2028, 2395, 2716, 2997, 2700, 2580, 2706],\n"," 726: [260, 1136, 1270, 1193, 1265, 1240, 1220, 318, 1278, 1200],\n"," 727: [457, 588, 589, 480, 508, 377, 34, 1, 592, 161],\n"," 728: [2959, 1291, 1036, 1198, 858, 1214, 2858, 260, 3578, 110],\n"," 729: [539, 236, 282, 377, 457, 356, 440, 590, 587, 597],\n"," 730: [110, 356, 593, 457, 480, 589, 588, 364, 377, 47],\n"," 731: [457, 1198, 380, 34, 608, 1291, 1617, 588, 1, 1278],\n"," 732: [318, 7361, 4973, 6711, 1193, 2858, 527, 4226, 6377, 296],\n"," 733: [2762, 2571, 2959, 1196, 47, 5952, 50, 1240, 2028, 4226],\n"," 734: [318, 110, 150, 527, 588, 589, 480, 380, 592, 1036],\n"," 735: [318, 527, 150, 47, 590, 589, 588, 480, 380, 364],\n"," 736: [2571, 4993, 4226, 2762, 2959, 4963, 3897, 1196, 4027, 2028],\n"," 737: [780, 6, 260, 1, 1527, 1210, 36, 608, 589, 25],\n"," 738: [736, 786, 1, 6, 95, 32, 1073, 9, 589, 480],\n"," 739: [356, 110, 1210, 318, 47, 1036, 349, 480, 780, 2571],\n"," 740: [858, 296, 527, 1197, 1193, 1213, 1240, 356, 1291, 541],\n"," 741: [356, 527, 2028, 110, 1213, 2959, 1198, 260, 1784, 1197],\n"," 742: [593, 858, 4995, 1197, 527, 2502, 1193, 1213, 1214, 1089],\n"," 743: [356, 110, 457, 150, 318, 589, 592, 593, 377, 590],\n"," 744: [527, 608, 1207, 1196, 1617, 260, 1208, 2858, 1221, 1276],\n"," 745: [2028, 356, 457, 1580, 1136, 1208, 4993, 904, 592, 380],\n"," 746: [1196, 858, 750, 904, 2571, 912, 1208, 2028, 1221, 111],\n"," 748: [593, 296, 457, 21, 161, 34, 589, 36, 337, 608],\n"," 749: [733, 780, 736, 786, 480, 1073, 95, 1210, 260, 6],\n"," 750: [4226, 2571, 2762, 2329, 4993, 1196, 7153, 3578, 2028, 4878],\n"," 751: [380, 457, 110, 480, 590, 356, 589, 377, 592, 318],\n"," 752: [318, 593, 356, 110, 457, 380, 364, 592, 527, 480],\n"," 753: [858, 1196, 1208, 1193, 1221, 1617, 1213, 527, 1197, 2571],\n"," 754: [5952, 4995, 4226, 6539, 6016, 5445, 4886, 48516, 6711, 8961],\n"," 755: [318, 508, 265, 356, 337, 34, 590, 457, 110, 357],\n"," 756: [1393, 62, 141, 260, 783, 1357, 265, 508, 527, 21],\n"," 757: [593, 318, 589, 780, 150, 527, 588, 380, 6, 480],\n"," 758: [356, 457, 364, 380, 480, 318, 593, 377, 161, 592],\n"," 759: [1210, 1200, 1214, 593, 356, 1197, 1610, 1580, 858, 318],\n"," 761: [356, 1196, 2571, 110, 2762, 589, 3578, 457, 480, 1270],\n"," 762: [36, 780, 6, 32, 356, 62, 593, 318, 648, 736],\n"," 763: [608, 318, 296, 25, 265, 50, 111, 356, 32, 34],\n"," 764: [296, 36, 1617, 25, 265, 1094, 111, 50, 1358, 858],\n"," 765: [1198, 1196, 260, 1240, 1197, 541, 527, 318, 1278, 1136],\n"," 766: [593, 527, 296, 1291, 589, 1270, 858, 2571, 1036, 1265],\n"," 767: [1240, 1270, 110, 1210, 1200, 2028, 1580, 356, 1136, 541],\n"," 768: [48516, 49272, 48780, 55820, 36529, 8950, 51662, 5903, 27660, 54272],\n"," 769: [508, 34, 150, 457, 440, 539, 11, 111, 161, 222],\n"," 770: [733, 62, 95, 653, 830, 74, 9, 765, 1393, 36],\n"," 771: [1197, 1210, 110, 1580, 2028, 1097, 593, 858, 1265, 592],\n"," 772: [593, 2858, 356, 1196, 318, 1198, 2571, 1617, 296, 2762],\n"," 773: [356, 1198, 1, 593, 32, 318, 2762, 589, 1097, 1784],\n"," 774: [1196, 593, 296, 1198, 2858, 2571, 1221, 527, 1136, 356],\n"," 775: [110, 225, 593, 508, 357, 21, 248, 185, 780, 292],\n"," 776: [1193, 527, 1196, 1221, 318, 1208, 608, 912, 1304, 750],\n"," 777: [1230, 1617, 2289, 1276, 1172, 1265, 750, 1278, 1208, 1304],\n"," 780: [2571, 2858, 2797, 34, 1704, 2791, 1221, 1220, 1, 2918],\n"," 781: [608, 2858, 1394, 593, 296, 50, 2396, 1094, 800, 750],\n"," 782: [1089, 1213, 778, 223, 296, 50, 2858, 1617, 111, 318],\n"," 783: [1198, 2571, 356, 1197, 2858, 1291, 1136, 593, 858, 1210],\n"," 784: [2959, 2762, 356, 589, 1240, 527, 260, 1617, 1193, 1089],\n"," 785: [150, 527, 508, 588, 539, 380, 608, 34, 364, 474],\n"," 786: [589, 110, 356, 380, 593, 1097, 150, 2028, 47, 588],\n"," 787: [593, 318, 150, 1207, 300, 36, 1197, 1193, 34, 265],\n"," 788: [1196, 1240, 296, 1210, 260, 5349, 32587, 541, 1089, 1197],\n"," 789: [296, 34, 597, 480, 364, 589, 21, 11, 161, 440],\n"," 790: [356, 110, 608, 589, 1196, 1207, 588, 1210, 1097, 1278],\n"," 791: [1617, 908, 858, 1208, 1207, 1193, 923, 1247, 750, 1252],\n"," 792: [593, 296, 110, 457, 527, 356, 47, 590, 589, 380],\n"," 793: [1198, 356, 1291, 2028, 2959, 2858, 593, 2762, 589, 3996],\n"," 794: [912, 904, 1196, 750, 541, 1198, 1234, 1617, 1136, 924],\n"," 795: [356, 380, 349, 292, 480, 377, 592, 588, 293, 733],\n"," 796: [780, 36, 25, 32, 1393, 733, 356, 6, 1073, 318],\n"," 797: [593, 527, 296, 34, 1617, 1197, 1198, 50, 110, 1196],\n"," 798: [1291, 858, 2028, 110, 2858, 593, 1617, 1214, 1200, 1208],\n"," 799: [380, 589, 364, 592, 47, 316, 50, 34, 539, 508],\n"," 800: [36, 608, 733, 1393, 25, 780, 1, 593, 1210, 648],\n"," 801: [2858, 1036, 1240, 3578, 318, 2762, 47, 858, 541, 50],\n"," 802: [318, 457, 150, 110, 539, 47, 588, 590, 364, 34],\n"," 803: [1617, 527, 858, 593, 1198, 1278, 1299, 1221, 1197, 750],\n"," 804: [318, 356, 589, 527, 150, 50, 296, 457, 3578, 2762],\n"," 805: [2959, 589, 1036, 1240, 2762, 2028, 4226, 4963, 110, 1580],\n"," 806: [150, 296, 380, 588, 377, 508, 34, 589, 539, 349],\n"," 807: [457, 380, 110, 356, 593, 589, 480, 377, 592, 316],\n"," 808: [2571, 1580, 356, 2762, 1198, 1270, 110, 780, 589, 480],\n"," 809: [2571, 593, 2028, 1198, 318, 858, 296, 1240, 1210, 589],\n"," 810: [150, 318, 357, 588, 457, 593, 364, 34, 377, 508],\n"," 811: [648, 494, 1, 95, 376, 6, 653, 9, 5, 260],\n"," 812: [34, 110, 377, 380, 590, 357, 21, 474, 296, 17],\n"," 813: [1200, 1270, 1210, 1617, 2716, 750, 1265, 1580, 593, 541],\n"," 814: [356, 2797, 1265, 1136, 1197, 1220, 1079, 1198, 1234, 2918],\n"," 815: [1036, 1291, 457, 480, 318, 3578, 1, 1197, 592, 1610],\n"," 816: [457, 377, 161, 380, 590, 110, 318, 356, 480, 316],\n"," 817: [36, 608, 337, 593, 508, 1084, 1225, 25, 1185, 1230],\n"," 818: [858, 1193, 1617, 1208, 1196, 1198, 2858, 296, 1221, 908],\n"," 819: [7153, 4993, 5952, 4226, 2959, 2329, 4776, 4011, 5989, 8874],\n"," 820: [1198, 260, 1617, 593, 858, 32, 1270, 2028, 912, 1036],\n"," 821: [318, 1704, 110, 527, 1961, 2028, 508, 593, 11, 1682],\n"," 822: [593, 34, 36, 357, 588, 589, 608, 592, 47, 595],\n"," 823: [356, 593, 1036, 318, 1270, 377, 590, 527, 34, 50],\n"," 824: [1230, 923, 1193, 1208, 913, 1292, 1288, 1617, 1267, 111],\n"," 825: [2762, 356, 2571, 318, 2858, 527, 296, 2329, 110, 1617],\n"," 826: [1617, 2028, 1198, 1291, 750, 593, 912, 1270, 923, 2762],\n"," 827: [380, 110, 589, 318, 539, 225, 593, 780, 736, 316],\n"," 828: [356, 150, 110, 588, 318, 593, 161, 590, 592, 539],\n"," 829: [608, 1393, 648, 719, 25, 494, 356, 653, 765, 5],\n"," 830: [318, 457, 1270, 1307, 34, 1265, 110, 919, 357, 608],\n"," 831: [440, 150, 588, 457, 34, 593, 318, 1197, 377, 110],\n"," 832: [1200, 1198, 858, 2571, 1208, 1210, 912, 1617, 904, 1221],\n"," 833: [1196, 2762, 1265, 50, 1193, 1210, 32, 1291, 1200, 110],\n"," 834: [593, 356, 296, 1265, 1617, 1136, 1704, 1784, 1198, 1196],\n"," 835: [356, 150, 527, 34, 110, 590, 265, 337, 36, 300],\n"," 836: [36, 780, 6, 25, 736, 494, 648, 9, 786, 1210],\n"," 837: [2997, 1089, 4226, 296, 50, 318, 1617, 1208, 2329, 2571],\n"," 838: [1196, 904, 750, 2858, 608, 1291, 296, 1617, 1252, 1221],\n"," 839: [908, 904, 750, 1207, 1208, 1193, 1252, 1247, 1617, 858],\n"," 840: [904, 1278, 1259, 318, 1213, 1094, 2858, 1270, 969, 34],\n"," 841: [1580, 1198, 1036, 1291, 2916, 2628, 316, 2716, 480, 780],\n"," 842: [364, 356, 480, 380, 110, 457, 318, 590, 589, 593],\n"," 843: [912, 908, 1304, 904, 923, 1234, 1225, 608, 1278, 1292],\n"," 844: [1197, 1214, 1270, 1200, 2571, 2028, 1387, 1617, 1234, 1265],\n"," 846: [110, 380, 50, 47, 349, 161, 588, 34, 21, 364],\n"," 847: [1036, 589, 733, 1240, 2571, 457, 648, 380, 1610, 480],\n"," 848: [318, 593, 527, 21, 50, 457, 150, 356, 265, 36],\n"," 849: [912, 858, 2858, 1198, 2571, 2947, 1240, 1938, 750, 904],\n"," 851: [593, 318, 527, 110, 1, 1240, 589, 1291, 457, 1036],\n"," 852: [110, 150, 590, 592, 527, 165, 316, 10, 50, 595],\n"," 853: [95, 648, 260, 5, 653, 786, 719, 62, 783, 36],\n"," 854: [1193, 1617, 923, 1247, 1213, 908, 904, 1230, 111, 1304],\n"," 855: [527, 2858, 1213, 111, 1704, 1193, 858, 2028, 110, 1089],\n"," 856: [457, 780, 110, 1036, 1240, 1291, 1196, 1198, 733, 1210],\n"," 857: [1291, 1198, 1210, 260, 457, 2762, 780, 1197, 858, 318],\n"," 859: [1240, 1214, 1197, 50, 32, 2762, 47, 318, 2858, 858],\n"," 860: [1641, 2580, 3253, 348, 1188, 1265, 2395, 3044, 1060, 1307],\n"," 861: [541, 1196, 1198, 2571, 1200, 1208, 1240, 1213, 1206, 1291],\n"," 862: [364, 380, 480, 590, 110, 593, 225, 508, 357, 11],\n"," 863: [110, 1196, 457, 260, 1, 1197, 34, 1198, 858, 293],\n"," 864: [1704, 1196, 1617, 2571, 2028, 2959, 1198, 593, 1197, 1968],\n"," 865: [589, 1198, 2762, 2028, 1291, 527, 32, 1036, 480, 1617],\n"," 866: [1193, 541, 1617, 2858, 1214, 1240, 1200, 589, 924, 356],\n"," 867: [1265, 912, 1193, 593, 2858, 1240, 1221, 1307, 1291, 1276],\n"," 868: [608, 296, 50, 356, 2571, 1089, 1196, 1265, 1213, 36],\n"," 869: [2571, 1196, 593, 589, 1617, 296, 1210, 32, 1214, 2858],\n"," 870: [296, 508, 21, 36, 50, 380, 377, 161, 47, 588],\n"," 871: [318, 1230, 1247, 1394, 1304, 1252, 1617, 1198, 235, 1197],\n"," 872: [858, 1617, 750, 1221, 541, 608, 1207, 593, 527, 1196],\n"," 873: [1196, 1240, 260, 1198, 593, 1210, 1617, 527, 1036, 608],\n"," 874: [318, 527, 1210, 296, 1198, 1617, 858, 50, 1291, 260],\n"," 875: [34, 337, 357, 296, 21, 457, 25, 110, 539, 608],\n"," 876: [457, 150, 380, 318, 587, 597, 588, 110, 589, 161],\n"," 878: [908, 1617, 318, 527, 296, 1214, 1206, 1304, 2019, 1089],\n"," 879: [1197, 1136, 1278, 1265, 1394, 858, 2918, 1259, 2797, 1193],\n"," 881: [161, 357, 349, 21, 10, 316, 733, 1, 474, 440],\n"," 882: [356, 733, 380, 457, 6, 150, 318, 648, 589, 377],\n"," 883: [1196, 1198, 2571, 356, 1291, 318, 260, 1197, 1240, 593],\n"," 884: [780, 733, 95, 36, 25, 5, 1, 6, 608, 494],\n"," 885: [1617, 457, 912, 1278, 1234, 1265, 750, 1276, 1291, 2028],\n"," 886: [1617, 1196, 356, 1198, 296, 1197, 260, 1210, 1213, 110],\n"," 887: [2762, 527, 588, 1196, 1393, 1210, 480, 1197, 608, 1198],\n"," 888: [318, 593, 296, 47, 527, 50, 111, 608, 356, 293],\n"," 889: [457, 356, 318, 593, 377, 588, 110, 539, 225, 364],\n"," 890: [1196, 1198, 1210, 457, 260, 1610, 380, 593, 165, 3147],\n"," 891: [1196, 593, 1198, 2028, 1291, 858, 541, 527, 1210, 356],\n"," 892: [589, 1198, 380, 480, 1, 377, 592, 1240, 34, 588],\n"," 893: [2959, 4993, 50, 47, 356, 1291, 593, 296, 4226, 1036],\n"," 894: [50872, 48780, 49530, 52973, 53000, 53972, 56174, 55820, 48774, 58559],\n"," 895: [457, 480, 588, 539, 318, 349, 110, 165, 592, 593],\n"," 896: [318, 593, 1213, 1617, 111, 2858, 1208, 21, 47, 260],\n"," 897: [318, 457, 356, 150, 296, 527, 589, 161, 380, 377],\n"," 898: [1240, 1200, 1270, 1374, 1580, 1198, 480, 316, 1291, 1127],\n"," 899: [356, 236, 440, 539, 318, 588, 380, 500, 248, 225],\n"," 900: [17, 58, 62, 141, 593, 318, 296, 733, 780, 21],\n"," 901: [1196, 1198, 1240, 260, 593, 1210, 110, 2028, 1291, 457],\n"," 902: [110, 1240, 32, 527, 541, 592, 1265, 150, 3147, 380],\n"," 903: [736, 648, 95, 1, 653, 6, 1210, 480, 457, 377],\n"," 904: [593, 608, 150, 25, 265, 509, 21, 110, 50, 508],\n"," 905: [150, 527, 1198, 1784, 380, 1097, 21, 1210, 1, 34],\n"," 906: [318, 1208, 1265, 111, 2762, 1198, 2571, 923, 356, 47],\n"," 907: [356, 480, 47, 377, 588, 50, 364, 161, 165, 34],\n"," 908: [1197, 1376, 593, 750, 32, 1617, 1370, 318, 648, 1],\n"," 909: [1196, 2762, 3578, 4226, 1291, 589, 7153, 1210, 1240, 1036],\n"," 910: [1196, 527, 1193, 2028, 1198, 2571, 2762, 111, 608, 1221],\n"," 911: [1197, 912, 858, 1097, 750, 1617, 1304, 1207, 1270, 1240],\n"," 912: [1198, 1240, 1197, 1580, 1210, 1291, 589, 2571, 1265, 1036],\n"," 913: [1198, 1207, 318, 858, 1196, 1193, 1197, 527, 912, 296],\n"," 914: [765, 667, 9, 737, 608, 95, 494, 1, 648, 783],\n"," 915: [1196, 1198, 1291, 1617, 110, 318, 858, 1136, 527, 1304],\n"," 916: [2858, 2571, 3578, 2762, 5952, 4226, 3996, 1196, 318, 7153],\n"," 917: [1393, 783, 1183, 260, 508, 34, 356, 733, 21, 805],\n"," 918: [494, 653, 5, 1, 9, 805, 141, 6, 783, 1393],\n"," 919: [589, 1036, 1198, 1196, 2571, 1374, 1270, 1527, 1356, 2916],\n"," 920: [1207, 908, 1193, 904, 1208, 1198, 750, 1247, 1136, 1278],\n"," 921: [1198, 1, 919, 1197, 364, 1270, 588, 356, 1097, 260],\n"," 922: [589, 1196, 1210, 1198, 1291, 1036, 593, 150, 364, 47],\n"," 923: [780, 736, 62, 95, 648, 36, 260, 783, 356, 1073],\n"," 924: [357, 265, 527, 497, 11, 457, 36, 508, 300, 21],\n"," 925: [1265, 1270, 1196, 1200, 1208, 1240, 1193, 608, 1259, 2716],\n"," 926: [1136, 2858, 858, 1196, 1617, 1080, 2571, 1206, 1198, 1214],\n"," 927: [589, 110, 1291, 457, 1196, 2571, 380, 593, 260, 1580],\n"," 928: [2571, 593, 318, 858, 2028, 1291, 589, 527, 110, 1197],\n"," 930: [225, 11, 380, 440, 110, 357, 34, 266, 364, 480],\n"," 931: [95, 733, 9, 648, 737, 662, 704, 64, 761, 719],\n"," 932: [356, 110, 780, 318, 380, 150, 588, 527, 595, 296],\n"," 933: [1196, 858, 608, 296, 1617, 527, 2858, 1213, 1240, 1210],\n"," 934: [1196, 1197, 1097, 1198, 1270, 1210, 1214, 1240, 1374, 919],\n"," 935: [110, 780, 1210, 380, 356, 1580, 2762, 377, 1197, 2353],\n"," 936: [318, 2762, 858, 608, 1213, 1208, 1197, 5952, 1270, 1221],\n"," 937: [1196, 1198, 593, 2571, 296, 110, 2858, 260, 2762, 356],\n"," 938: [110, 356, 589, 480, 527, 349, 592, 588, 377, 165],\n"," 939: [356, 110, 589, 32, 480, 296, 733, 380, 527, 377],\n"," 940: [318, 527, 593, 3996, 296, 858, 1196, 1617, 541, 1198],\n"," 941: [1304, 912, 750, 908, 1230, 1394, 1265, 969, 1276, 1196],\n"," 942: [110, 480, 589, 356, 150, 318, 592, 590, 364, 377],\n"," 943: [1214, 1240, 1196, 1200, 1198, 1197, 1208, 1206, 1291, 1221],\n"," 945: [719, 36, 780, 64, 733, 783, 95, 608, 802, 9],\n"," 946: [1200, 1036, 541, 1270, 750, 1580, 2028, 318, 592, 1221],\n"," 947: [1198, 1240, 1214, 1291, 1197, 1200, 1270, 1036, 541, 1097],\n"," 948: [1265, 1196, 260, 1197, 1036, 588, 32, 480, 1210, 1213],\n"," 949: [923, 1208, 904, 1617, 2858, 608, 1193, 1198, 750, 593],\n"," 950: [750, 111, 858, 1213, 1617, 1089, 923, 527, 318, 1221],\n"," 951: [765, 61, 6, 783, 74, 260, 141, 802, 805, 3],\n"," 952: [62, 783, 786, 1, 653, 9, 5, 1393, 719, 141],\n"," 953: [1197, 1198, 1240, 1278, 2174, 1291, 1036, 1097, 1394, 110],\n"," 954: [110, 1240, 1291, 1198, 1036, 1580, 1200, 1270, 1527, 356],\n"," 955: [356, 2762, 318, 2028, 2571, 1198, 1196, 110, 2706, 593],\n"," 956: [150, 457, 380, 480, 161, 364, 349, 508, 34, 10],\n"," 957: [608, 296, 750, 1208, 1036, 50, 904, 1089, 1276, 1234],\n"," 958: [589, 1196, 3578, 593, 110, 2858, 356, 32, 47, 296],\n"," 960: [318, 356, 50, 110, 457, 36, 590, 21, 508, 25],\n"," 961: [858, 1196, 593, 1221, 1207, 608, 318, 2028, 1197, 1208],\n"," 962: [2762, 2571, 1704, 356, 3578, 1196, 2572, 2959, 2028, 2716],\n"," 963: [457, 380, 110, 1196, 1036, 1240, 1198, 356, 593, 480],\n"," 964: [50, 2858, 2571, 2762, 1291, 1198, 858, 32, 1210, 1704],\n"," 965: [527, 110, 356, 25, 457, 1213, 293, 1089, 590, 337],\n"," 966: [1198, 1240, 750, 1291, 50, 589, 858, 593, 1270, 2028],\n"," 967: [296, 4226, 2571, 50, 593, 1617, 527, 2762, 1213, 1136],\n"," 968: [356, 589, 380, 377, 592, 588, 296, 527, 161, 165],\n"," 969: [5, 719, 783, 736, 62, 780, 802, 609, 832, 9],\n"," 970: [356, 457, 589, 296, 380, 47, 161, 165, 480, 527],\n"," 971: [1136, 356, 527, 1214, 1291, 541, 2762, 1, 1193, 904],\n"," 972: [508, 36, 377, 21, 1196, 1197, 300, 50, 1198, 260],\n"," 973: [1193, 912, 919, 923, 1207, 1247, 908, 1208, 1278, 1222],\n"," 974: [1207, 1247, 1221, 1208, 750, 1193, 858, 1250, 1276, 924],\n"," 975: [593, 318, 527, 47, 356, 1213, 589, 110, 150, 36],\n"," 976: [593, 356, 110, 457, 527, 589, 380, 34, 480, 364],\n"," 977: [750, 1304, 912, 1247, 527, 1394, 1197, 1198, 1278, 1234],\n"," 978: [1278, 594, 912, 1304, 17, 1035, 908, 2797, 34, 914],\n"," 979: [318, 593, 50, 1196, 296, 260, 110, 527, 1198, 1213],\n"," 980: [1196, 858, 50, 2571, 318, 1193, 1198, 1089, 1617, 1221],\n"," 982: [1210, 318, 36, 593, 25, 733, 1196, 6, 296, 356],\n"," 983: [1196, 1198, 593, 527, 110, 2762, 1210, 260, 2028, 2858],\n"," 984: [593, 2571, 2858, 1265, 527, 1198, 1197, 150, 1617, 296],\n"," 985: [2571, 4226, 5445, 1196, 6539, 7361, 1198, 33794, 4995, 32587],\n"," 986: [225, 292, 440, 47, 21, 508, 34, 500, 185, 364],\n"," 987: [161, 248, 266, 356, 292, 252, 11, 339, 539, 500],\n"," 988: [1197, 1221, 527, 589, 908, 1291, 1207, 1265, 110, 1225],\n"," 989: [750, 1208, 1265, 1221, 593, 1207, 1230, 1276, 1394, 1197],\n"," 990: [150, 110, 457, 47, 508, 589, 34, 592, 21, 480],\n"," 991: [1198, 1240, 260, 1196, 1197, 1214, 858, 1208, 1221, 1387],\n"," 992: [1197, 1198, 1210, 1270, 1240, 1617, 593, 1580, 1291, 356],\n"," 993: [5349, 4995, 2571, 2959, 6539, 7153, 4034, 2762, 4973, 2329],\n"," 994: [527, 356, 1784, 593, 296, 2858, 1968, 1704, 50, 608],\n"," 995: [608, 2858, 1617, 858, 1193, 1221, 1208, 1732, 1089, 2762],\n"," 996: [161, 590, 225, 597, 587, 34, 296, 380, 21, 440],\n"," 997: [6, 9, 260, 608, 832, 719, 104, 1393, 356, 79],\n"," 998: [318, 1193, 527, 593, 2858, 296, 1265, 1207, 356, 1617],\n"," 999: [750, 1252, 1196, 1077, 904, 1214, 908, 1200, 541, 912],\n"," 1001: [380, 590, 318, 589, 593, 377, 296, 10, 539, 34],\n"," 1002: [733, 95, 248, 719, 648, 609, 158, 587, 376, 765],\n"," 1003: [2959, 2858, 1196, 2716, 2028, 3578, 1617, 1704, 1210, 2355],\n"," 1004: [527, 150, 260, 589, 1198, 50, 1196, 32, 1036, 1210],\n"," 1005: [364, 590, 34, 11, 508, 141, 47, 6, 21, 595],\n"," 1006: [593, 36, 296, 25, 50, 21, 17, 356, 590, 508],\n"," 1007: [356, 527, 357, 318, 593, 1784, 2762, 265, 1617, 2858],\n"," 1008: [1198, 2858, 1617, 1197, 110, 1136, 912, 111, 589, 1208],\n"," 1009: [1196, 2028, 1210, 1291, 1036, 1198, 2762, 260, 110, 1617],\n"," 1011: [1196, 1198, 260, 318, 527, 1197, 1210, 858, 110, 356],\n"," 1012: [2762, 2571, 1196, 2716, 2028, 1617, 318, 2959, 1240, 3578],\n"," 1013: [318, 356, 47, 110, 50, 858, 32, 1196, 2571, 1198],\n"," 1014: [912, 1617, 1193, 923, 1208, 318, 750, 1230, 1276, 1250],\n"," 1015: [750, 908, 912, 541, 1196, 858, 1193, 923, 608, 1198],\n"," 1016: [593, 858, 1617, 50, 1196, 1208, 1089, 2762, 541, 1221],\n"," 1017: [2571, 260, 3578, 6539, 1198, 5445, 1240, 1291, 4226, 1214],\n"," 1018: [541, 318, 50, 527, 260, 1198, 1213, 1208, 1617, 858],\n"," 1019: [6, 5, 62, 494, 1393, 104, 653, 1210, 832, 32],\n"," 1020: [318, 34, 1259, 1198, 1196, 110, 1097, 590, 260, 1270],\n"," 1021: [1617, 2571, 608, 296, 541, 750, 318, 1240, 1210, 1265],\n"," 1022: [1207, 1196, 912, 1198, 1197, 260, 858, 1193, 593, 1247],\n"," 1023: [589, 1036, 1240, 1291, 1210, 318, 2028, 356, 296, 1270],\n"," 1025: [904, 750, 1617, 1196, 1197, 1234, 1204, 1193, 1208, 1252],\n"," 1026: [110, 318, 356, 858, 457, 2028, 527, 1265, 296, 1617],\n"," 1027: [4993, 5952, 7153, 4995, 45499, 51662, 2329, 45722, 4878, 2571],\n"," 1028: [110, 318, 589, 377, 592, 316, 588, 161, 292, 364],\n"," 1029: [110, 161, 356, 150, 380, 349, 589, 474, 225, 480],\n"," 1030: [1196, 1210, 260, 589, 110, 3578, 480, 780, 2028, 318],\n"," 1031: [589, 380, 457, 356, 377, 150, 318, 349, 588, 593],\n"," 1032: [733, 1, 9, 62, 260, 376, 141, 104, 788, 377],\n"," 1033: [1265, 1270, 1210, 1036, 858, 2028, 608, 1259, 1617, 2858],\n"," 1034: [1196, 4993, 4306, 356, 1198, 6539, 110, 593, 318, 2571],\n"," 1035: [4993, 1196, 5952, 7153, 3578, 2028, 4878, 2858, 2329, 1291],\n"," 1037: [356, 318, 457, 588, 364, 380, 527, 110, 11, 590],\n"," 1038: [457, 150, 440, 110, 593, 225, 318, 21, 11, 185],\n"," 1039: [593, 2858, 1196, 356, 1136, 32, 1193, 110, 1265, 2028],\n"," 1040: [356, 457, 539, 367, 110, 588, 500, 480, 589, 377],\n"," 1041: [356, 858, 1240, 32, 541, 1213, 1136, 3147, 1270, 1193],\n"," 1043: [733, 786, 376, 141, 1, 25, 457, 783, 7, 653],\n"," 1044: [6, 1356, 104, 141, 494, 356, 480, 9, 62, 783],\n"," 1045: [2571, 589, 1270, 1197, 4993, 608, 1240, 480, 1265, 5952],\n"," 1046: [110, 589, 318, 377, 588, 296, 364, 592, 349, 10],\n"," 1047: [1196, 593, 5952, 1617, 3578, 32, 608, 356, 4878, 260],\n"," 1048: [1291, 2028, 858, 1240, 3578, 110, 1617, 1089, 1136, 356],\n"," 1050: [150, 380, 34, 588, 592, 377, 6, 364, 349, 36],\n"," 1051: [141, 780, 736, 783, 733, 1393, 5, 36, 11, 708],\n"," 1052: [356, 1210, 1196, 2762, 1704, 589, 2858, 2571, 110, 1097],\n"," 1053: [1136, 2858, 2028, 1617, 593, 858, 50, 32, 2918, 4993]}"]},"metadata":{},"execution_count":8}],"source":["# 각 사용자에 대한 추천 리스트를 작성한다\n","\n","pred_user2items = dict()\n","for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n"," input_data = []\n"," for item_id in data.sort_values(\"timestamp\")[\"movie_id\"].tolist():\n"," if item_id in model.wv.key_to_index:\n"," input_data.append(item_id)\n"," if len(input_data) == 0:\n"," # 추천 계산할 수 없는 경우에는 빈 배열\n"," pred_user2items[user_id] = []\n"," continue\n"," recommended_items = model.wv.most_similar(input_data, topn=10)\n"," pred_user2items[user_id] = [d[0] for d in recommended_items]\n","\n","pred_user2items"]},{"cell_type":"code","execution_count":9,"id":"a87b9ae8","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":175},"id":"a87b9ae8","executionInfo":{"status":"ok","timestamp":1672118195817,"user_tz":-540,"elapsed":12,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"a2f0748a-068e-4e8c-9795-dacd19f0d82b"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","8381 2 1210 4.0 868245644 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","8381 [Action, Adventure, Sci-Fi] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":9}],"source":["# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n","movielens_train_high_rating[movielens_train_high_rating.user_id==2]"]},{"cell_type":"code","execution_count":10,"id":"e746dd2c","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"e746dd2c","executionInfo":{"status":"ok","timestamp":1672118195817,"user_tz":-540,"elapsed":10,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"2d3bd41e-e363-4ff4-ded1-02aa366dbca1"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","476 480 Jurassic Park (1993) \n","583 589 Terminator 2: Judgment Day (1991) \n","1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n","\n"," genre \\\n","476 [Action, Adventure, Sci-Fi, Thriller] \n","583 [Action, Sci-Fi] \n","1171 [Action, Adventure, Sci-Fi] \n","\n"," tag \n","476 [based on a book, biology, michael crichton, s... \n","583 [action, sci-fi, dvd, seen more than once, tim... \n","1171 [lucas, george lucas, george lucas, gfei own i... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
476480Jurassic Park (1993)[Action, Adventure, Sci-Fi, Thriller][based on a book, biology, michael crichton, s...
583589Terminator 2: Judgment Day (1991)[Action, Sci-Fi][action, sci-fi, dvd, seen more than once, tim...
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":10}],"source":["# user_id=2에 대한 추천(480, 1196, 589)\n","movies[movies.movie_id.isin([480, 1196, 589])]"]},{"cell_type":"code","execution_count":11,"id":"8107e735","metadata":{"id":"8107e735","executionInfo":{"status":"ok","timestamp":1672118195818,"user_tz":-540,"elapsed":10,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# item2vec에서는 인자 수, 에폭 수, windows 크기, 사용하는 단어의 출현 횟수의 임곗값 모두가 중요하므루, 그리드 서치를 통해 최적의 값을 결정합니다."]}],"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/LDA_collaboration.ipynb b/chapter5/colab/LDA_collaboration.ipynb index 5bd9e85..bb8364a 100644 --- a/chapter5/colab/LDA_collaboration.ipynb +++ b/chapter5/colab/LDA_collaboration.ipynb @@ -1,1841 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "d45967ea", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/LDA_collaboration.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "942a9897", - "metadata": {}, - "source": [ - "# Latent Dirichlet Allocation (LDA)를 행동 데이터에 적용" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "b8cb8f0b", - "metadata": {}, - "outputs": [], - "source": [ - "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", - "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", - "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", - "\n", - "# 데이터 다운로드와 압축 풀기\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "6769fb75", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", - "import pandas as pd\n", - "\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "f650f9d6", - "metadata": {}, - "outputs": [], - "source": [ - "# 인자 수\n", - "factors = 50\n", - "# 에폭 수\n", - "n_epochs = 30" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f703bf73", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install gensim==4.0.1" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "d5348432", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/mk/.pyenv/versions/3.7.8/envs/recsys-test3.7.8/lib/python3.7/site-packages/gensim/similarities/__init__.py:15: UserWarning: The gensim.similarities.levenshtein submodule is disabled, because the optional Levenshtein package is unavailable. Install Levenhstein (e.g. `pip install python-Levenshtein`) to suppress this warning.\n", - " warnings.warn(msg)\n" - ] - } - ], - "source": [ - "from gensim.corpora.dictionary import Dictionary\n", - "\n", - "# LDA 입력으로 사용할 데이터를 작성한다\n", - "lda_data = []\n", - "movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n", - "for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n", - " lda_data.append(data[\"movie_id\"].apply(str).tolist())\n", - "\n", - "common_dictionary = Dictionary(lda_data)\n", - "common_corpus = [common_dictionary.doc2bow(text) for text in lda_data]\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "d0f0e231", - "metadata": {}, - "outputs": [], - "source": [ - "import gensim\n", - "lda_model = gensim.models.LdaModel(\n", - " common_corpus, id2word=common_dictionary, num_topics=factors, passes=n_epochs\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "d568841a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[(0, 0.058512874), (2, 0.056664612), (20, 0.71739906), (33, 0.1163097)]" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 각 사용자의 소속 토픽이 저장된다\n", - "lda_topics = lda_model[common_corpus]\n", - "\n", - "# 예: 어떤 사용자의 소속 토픽\n", - "lda_topics[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "id": "aa768039", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "movie_id=370, title=Naked Gun 33 1/3: The Final Insult (1994), score=0.05946573242545128\n", - "movie_id=256, title=Junior (1994), score=0.02701723948121071\n", - "movie_id=44, title=Mortal Kombat (1995), score=0.02674136497080326\n", - "movie_id=485, title=Last Action Hero (1993), score=0.022686509415507317\n", - "movie_id=442, title=Demolition Man (1993), score=0.013746446929872036\n", - "movie_id=466, title=Hot Shots! Part Deux (1993), score=0.01224201824516058\n", - "movie_id=7153, title=Lord of the Rings: The Return of the King, The (2003), score=0.01153385080397129\n", - "movie_id=315, title=Specialist, The (1994), score=0.01045612245798111\n", - "movie_id=480, title=Jurassic Park (1993), score=0.009095880202949047\n", - "movie_id=160, title=Congo (1995), score=0.008071123622357845\n" - ] - } - ], - "source": [ - "# topic0인 영화 목록\n", - "for token_id, score in lda_model.get_topic_terms(0, topn=10):\n", - " movie_id = int(common_dictionary.id2token[token_id])\n", - " title = movies[movies.movie_id == movie_id].title.tolist()[0]\n", - " print(f'movie_id={movie_id}, title={title}, score={score}')" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "9eb2910f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[(0, 0.010000048),\n", - " (1, 0.010000048),\n", - " (2, 0.010000048),\n", - " (3, 0.010000048),\n", - " (4, 0.010000048),\n", - " (5, 0.010000048),\n", - " (6, 0.010000048),\n", - " (7, 0.010000048),\n", - " (8, 0.010000048),\n", - " (9, 0.010000048),\n", - " (10, 0.010000048),\n", - " (11, 0.010000048),\n", - " (12, 0.010000048),\n", - " (13, 0.010000048),\n", - " (14, 0.010000048),\n", - " (15, 0.010000048),\n", - " (16, 0.010000048),\n", - " (17, 0.010000048),\n", - " (18, 0.010000048),\n", - " (19, 0.010000048),\n", - " (20, 0.010000048),\n", - " (21, 0.010000048),\n", - " (22, 0.010000048),\n", - " (23, 0.010000048),\n", - " (24, 0.010000048),\n", - " (25, 0.010000048),\n", - " (26, 0.010000048),\n", - " (27, 0.010000048),\n", - " (28, 0.010000048),\n", - " (29, 0.010000048),\n", - " (30, 0.010000048),\n", - " (31, 0.010000048),\n", - " (32, 0.010000048),\n", - " (33, 0.010000048),\n", - " (34, 0.010000048),\n", - " (35, 0.010000048),\n", - " (36, 0.010000048),\n", - " (37, 0.010000048),\n", - " (38, 0.010000048),\n", - " (39, 0.010000048),\n", - " (40, 0.010000048),\n", - " (41, 0.010000048),\n", - " (42, 0.010000048),\n", - " (43, 0.010000048),\n", - " (44, 0.010000048),\n", - " (45, 0.010000048),\n", - " (46, 0.010000048),\n", - " (47, 0.010000048),\n", - " (48, 0.010000048),\n", - " (49, 0.5099976)]" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 스타워즈/에피소드 5(movie_id=1196)의 토픽(각 토픽에 소속될 확률)\n", - "lda_model[common_dictionary.doc2bow([\"1196\"])]" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "id": "8de0ac42", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "defaultdict(list,\n", - " {1: [457, 150, 593, 318, 380, 110, 296, 590, 349, 161],\n", - " 2: [1198, 1196, 1240, 1291, 1200, 1197, 1270, 593, 1193, 1234],\n", - " 3: [7151, 337, 1704, 3181, 2771, 1641, 2336, 3157, 1242, 2762],\n", - " 4: [457, 593, 356, 318, 296, 10, 47, 50, 527, 454],\n", - " 5: [1193, 2858, 1617, 1208, 904, 296, 1252, 1213, 50, 1233],\n", - " 6: [1210, 1580, 1036, 480, 589, 1240, 1270, 3793, 780, 1610],\n", - " 7: [1193, 2858, 527, 1208, 858, 296, 1213, 111, 1233, 1247],\n", - " 8: [1610, 110, 356, 3753, 1, 2706, 2716, 1097, 2529, 1356],\n", - " 9: [2959, 296, 5952, 4226, 7153, 2571, 4993, 47, 318, 6874],\n", - " 10: [2908, 3735, 2160, 1358, 3267, 1794, 1274, 1407, 1249, 903],\n", - " 11: [296, 593, 1101, 2002, 1193, 8528, 2490, 858, 1304, 1673],\n", - " 12: [1527, 4799, 1079, 3265, 1298, 1356, 4816, 223, 1884, 3030],\n", - " 13: [1199, 1204, 1291, 919, 1084, 1265, 3897, 2716, 348, 2289],\n", - " 14: [1584, 2571, 1777, 2581, 780, 3081, 318, 1027, 2605, 1393],\n", - " 16: [908, 2010, 1209, 1371, 1270, 1374, 3030, 2019, 2640, 3635],\n", - " 17: [2908, 3735, 2160, 1358, 3267, 1172, 1794, 1274, 1407, 1263],\n", - " 18: [3793, 1610, 4993, 1676, 5349, 2628, 1917, 1200, 4886, 1625],\n", - " 19: [2396, 1968, 2797, 1704, 2716, 2028, 1358, 1784, 593, 1961],\n", - " 22: [457, 318, 590, 10, 1, 434, 539, 474, 733, 586],\n", - " 23: [150, 356, 318, 380, 110, 480, 588, 590, 349, 161],\n", - " 24: [141, 36, 25, 95, 1393, 653, 58, 14, 1042, 52],\n", - " 26: [593, 356, 318, 480, 296, 595, 364, 500, 34, 50],\n", - " 27: [260, 1, 62, 141, 36, 832, 17, 6, 25, 1210],\n", - " 28: [1203, 164, 3005, 3654, 2762, 910, 1912, 4031, 2986, 2858],\n", - " 29: [420, 173, 19, 303, 540, 421, 170, 318, 322, 132],\n", - " 30: [457, 296, 349, 589, 165, 292, 10, 316, 50, 587],\n", - " 33: [260, 733, 832, 802, 494, 25, 805, 1210, 1393, 786],\n", - " 34: [1580, 1036, 1270, 1291, 1527, 1214, 3527, 4993, 5349, 4306],\n", - " 35: [296, 5952, 7153, 318, 50, 1089, 593, 7438, 1214, 2997],\n", - " 36: [1610, 110, 2916, 1214, 3527, 3996, 541, 2985, 1200, 4886],\n", - " 37: [2858, 2329, 7361, 1196, 2997, 2762, 4973, 1206, 2502, 858],\n", - " 38: [260, 1, 780, 608, 32, 141, 36, 17, 494, 6],\n", - " 40: [912, 1208, 904, 858, 1252, 111, 541, 923, 1233, 1247],\n", - " 41: [4333, 5955, 1198, 1097, 1010, 2014, 3114, 3053, 4741, 531],\n", - " 42: [527, 296, 36, 318, 50, 25, 265, 17, 356, 593],\n", - " 43: [2858, 2762, 1544, 6538, 798, 32, 1247, 2700, 1193, 2396],\n", - " 44: [1193, 1617, 912, 1208, 904, 858, 1252, 1213, 111, 541],\n", - " 45: [919, 2396, 1234, 1968, 1197, 1097, 1641, 318, 1278, 2797],\n", - " 46: [2959, 296, 5952, 4226, 2571, 4993, 2858, 47, 318, 6874],\n", - " 47: [47, 1089, 4878, 7361, 1206, 2502, 293, 6377, 1080, 1258],\n", - " 48: [608, 1193, 2858, 527, 1617, 912, 1208, 904, 858, 296],\n", - " 50: [349, 161, 292, 47, 316, 50, 1, 434, 474, 733],\n", - " 51: [3783, 1148, 1914, 6867, 3481, 1449, 7027, 3429, 2677, 5876],\n", - " 52: [608, 2858, 527, 912, 858, 296, 1213, 111, 541, 923],\n", - " 53: [919, 608, 1234, 1968, 1259, 1198, 1197, 1097, 1641, 318],\n", - " 54: [595, 527, 1, 539, 733, 253, 21, 153, 32, 357],\n", - " 55: [1259, 1220, 427, 2143, 356, 1197, 1213, 1372, 1210, 507],\n", - " 56: [1240, 1199, 1371, 1200, 1374, 1175, 1676, 29, 6104, 2968],\n", - " 57: [207, 158, 520, 24, 276, 516, 435, 216, 317, 1485],\n", - " 58: [608, 1968, 1265, 2716, 858, 1207, 5060, 357, 1079, 1784],\n", - " 59: [356, 380, 110, 480, 588, 589, 377, 161, 364, 292],\n", - " 60: [2858, 1617, 912, 904, 111, 1207, 903, 750, 908, 800],\n", - " 61: [2622, 2140, 27820, 147, 3952, 1357, 3978, 3296, 6, 17],\n", - " 62: [457, 356, 110, 480, 589, 377, 364, 500, 47, 34],\n", - " 63: [608, 1208, 296, 1252, 1213, 111, 541, 50, 923, 1233],\n", - " 64: [62, 141, 648, 17, 25, 1210, 95, 786, 1356, 7],\n", - " 65: [608, 1968, 858, 1207, 2028, 1358, 593, 1617, 1250, 2302],\n", - " 66: [5952, 4226, 7153, 2571, 4993, 47, 318, 50, 2329, 593],\n", - " 67: [150, 356, 480, 589, 377, 500, 34, 527, 587, 1],\n", - " 68: [527, 912, 858, 1213, 111, 50, 1233, 593, 1221, 750],\n", - " 69: [1485, 1566, 1544, 6538, 216, 798, 1580, 2700, 1233, 765],\n", - " 70: [608, 2858, 1208, 296, 1213, 111, 50, 923, 1233, 593],\n", - " 71: [457, 593, 356, 318, 110, 480, 588, 590, 589, 377],\n", - " 72: [150, 318, 110, 296, 589, 377, 161, 364, 500, 592],\n", - " 73: [1234, 1259, 1197, 1097, 2797, 1265, 1704, 1358, 5060, 357],\n", - " 74: [1028, 919, 1035, 1947, 2080, 1210, 1282, 1196, 914, 920],\n", - " 75: [2858, 17, 1265, 1566, 1544, 6538, 216, 798, 1580, 39],\n", - " 76: [356, 588, 364, 500, 34, 50, 527, 454, 587, 597],\n", - " 77: [150, 318, 110, 161, 500, 34, 50, 597, 474, 21],\n", - " 78: [3783, 2686, 1914, 4464, 1057, 2384, 4979, 40583, 4225, 50],\n", - " 79: [527, 265, 17, 497, 508, 307, 342, 345, 111, 529],\n", - " 80: [356, 480, 588, 590, 589, 377, 595, 364, 292, 500],\n", - " 81: [1196, 3578, 260, 1210, 1036, 1198, 1240, 1270, 3793, 780],\n", - " 82: [818, 663, 100, 1120, 1035, 2115, 4014, 318, 2114, 2700],\n", - " 83: [2858, 527, 1617, 1208, 904, 296, 1252, 1213, 111, 50],\n", - " 84: [1073, 832, 802, 6, 805, 1210, 1393, 1356, 653, 7],\n", - " 85: [1193, 1617, 912, 1208, 904, 858, 1252, 1213, 111, 541],\n", - " 86: [3578, 260, 1580, 1270, 3793, 2762, 3527, 4993, 1676, 5349],\n", - " 87: [2706, 2987, 356, 2355, 2599, 2541, 52, 1234, 16, 1617],\n", - " 88: [1036, 480, 589, 1240, 1270, 1610, 2916, 1291, 1527, 1214],\n", - " 89: [457, 593, 356, 480, 590, 349, 589, 377, 595, 364],\n", - " 90: [17, 25, 1210, 95, 1393, 1356, 7, 112, 647, 58],\n", - " 91: [1234, 1968, 1641, 1304, 1704, 858, 1358, 357, 1784, 593],\n", - " 92: [1580, 780, 1610, 2916, 1214, 3527, 1676, 4306, 2000, 3996],\n", - " 93: [589, 32, 2918, 260, 1214, 1200, 3466, 1259, 3070, 2406],\n", - " 94: [161, 165, 595, 364, 34, 1, 597, 339, 733, 32],\n", - " 95: [457, 364, 47, 34, 50, 527, 587, 597, 539, 474],\n", - " 96: [1234, 1641, 318, 2797, 1704, 1207, 5060, 1784, 1270, 1250],\n", - " 97: [2571, 3578, 260, 1210, 1580, 1036, 1198, 589, 1240, 3793],\n", - " 98: [733, 62, 1073, 32, 736, 141, 832, 17, 802, 494],\n", - " 99: [2959, 5952, 7153, 2571, 2858, 47, 6874, 50, 1089, 32],\n", - " 100: [2959, 4226, 7153, 4993, 6874, 2329, 4878, 7361, 1214, 4306],\n", - " 101: [10, 527, 597, 539, 733, 586, 21, 357, 288, 508],\n", - " 102: [593, 380, 110, 590, 349, 589, 377, 165, 595, 364],\n", - " 103: [1193, 2858, 1617, 912, 904, 858, 1252, 1213, 593, 1230],\n", - " 104: [2396, 608, 1234, 1968, 1259, 1641, 1304, 1278, 2797, 1265],\n", - " 105: [1240, 858, 1291, 1200, 1197, 593, 1234, 1222, 912, 1036],\n", - " 106: [1203, 164, 3005, 910, 1912, 4031, 2858, 678, 2707, 2628],\n", - " 107: [3578, 1036, 1198, 1270, 3793, 780, 1610, 110, 2916, 1291],\n", - " 108: [3396, 919, 912, 4333, 5955, 1198, 1097, 1022, 1010, 2014],\n", - " 110: [150, 110, 588, 296, 349, 161, 165, 595, 364, 292],\n", - " 111: [590, 589, 377, 595, 364, 500, 47, 34, 50, 527],\n", - " 112: [2858, 1617, 2396, 2289, 1284, 1148, 2599, 2997, 1952, 2395],\n", - " 113: [7151, 337, 110, 1704, 3181, 1148, 4995, 1641, 1242, 1193],\n", - " 114: [2571, 3578, 1580, 1036, 480, 1198, 1240, 3793, 780, 1610],\n", - " 115: [1617, 912, 1208, 904, 858, 1252, 1213, 111, 541, 50],\n", - " 116: [457, 47, 50, 527, 1, 474, 153, 32, 288, 508],\n", - " 117: [48516,\n", - " 49272,\n", - " 54286,\n", - " 7153,\n", - " 8961,\n", - " 33794,\n", - " 4993,\n", - " 40815,\n", - " 8368,\n", - " 5349],\n", - " 118: [588, 595, 364, 500, 34, 1, 539, 339, 733, 586],\n", - " 119: [527, 36, 509, 50, 265, 608, 300, 246, 150, 497],\n", - " 120: [733, 608, 32, 141, 648, 36, 832, 17, 802, 494],\n", - " 121: [2858, 1233, 1225, 800, 2396, 1214, 260, 778, 1179, 1212],\n", - " 122: [1704, 1207, 2028, 5060, 1293, 1617, 1, 953, 1292, 1247],\n", - " 123: [1198, 1196, 1210, 1240, 858, 1291, 1200, 1197, 1270, 593],\n", - " 124: [48516,\n", - " 54286,\n", - " 8961,\n", - " 33794,\n", - " 5349,\n", - " 59315,\n", - " 4306,\n", - " 51662,\n", - " 7147,\n", - " 6539],\n", - " 125: [2329,\n", - " 4878,\n", - " 7438,\n", - " 7361,\n", - " 32587,\n", - " 8961,\n", - " 778,\n", - " 33794,\n", - " 1617,\n", - " 8874],\n", - " 126: [4878, 7361, 4973, 1206, 1080, 3949, 6711, 778, 2542, 750],\n", - " 127: [2908, 3735, 2160, 1358, 3267, 111, 593, 1172, 1252, 1794],\n", - " 128: [380, 588, 296, 589, 377, 161, 165, 364, 10, 47],\n", - " 129: [2987, 2355, 2336, 2712, 2605, 1196, 2396, 3578, 1513, 52],\n", - " 130: [2959, 4226, 2571, 47, 318, 6874, 1089, 32, 2329, 7361],\n", - " 131: [318, 509, 265, 17, 608, 337, 300, 497, 515, 293],\n", - " 132: [150, 110, 480, 588, 589, 377, 161, 364, 292, 500],\n", - " 134: [260, 733, 608, 36, 832, 17, 802, 494, 25, 805],\n", - " 135: [1193, 1242, 2028, 318, 953, 608, 1307, 1263, 11, 750],\n", - " 136: [2396, 1968, 1259, 1197, 1097, 1641, 1278, 1704, 2028, 1358],\n", - " 137: [260, 1210, 480, 110, 1527, 1214, 3527, 1676, 2628, 541],\n", - " 138: [4878, 7438, 7361, 2997, 4973, 2502, 3996, 858, 32587, 4886],\n", - " 139: [919, 2396, 1234, 1304, 1278, 858, 1207, 1358, 5060, 357],\n", - " 140: [5377, 5418, 3147, 2959, 3556, 4995, 4011, 4641, 8784, 7361],\n", - " 141: [150, 318, 110, 296, 349, 161, 165, 364, 292, 47],\n", - " 142: [260, 733, 1073, 832, 17, 802, 6, 805, 1210, 1393],\n", - " 143: [1234, 1304, 1207, 5060, 1079, 1307, 1617, 953, 1250, 2194],\n", - " 144: [2502, 4886, 3897, 1193, 111, 1704, 5989, 231, 33166, 1288],\n", - " 145: [318, 380, 110, 480, 349, 589, 161, 165, 595, 364],\n", - " 148: [908, 924, 2010, 1077, 3030, 1676, 2640, 3635, 8507, 6104],\n", - " 149: [8368, 5816, 4896, 6377, 1252, 2583, 7386, 3504, 4427, 6170],\n", - " 150: [296, 36, 318, 50, 25, 593, 608, 337, 300, 357],\n", - " 151: [1193, 2858, 1617, 1208, 904, 858, 1252, 1213, 111, 541],\n", - " 152: [3793, 1527, 4993, 1676, 5349, 4306, 3996, 1917, 1, 4886],\n", - " 153: [32, 2918, 3466, 1259, 3070, 2406, 21, 2302, 1136, 1080],\n", - " 154: [3578, 1610, 2028, 4993, 4306, 3996, 3753, 2115, 4886, 1625],\n", - " 155: [4226, 7153, 6874, 4878, 7438, 7361, 4973, 1206, 2502, 293],\n", - " 156: [260, 1, 733, 36, 832, 17, 802, 494, 805, 1210],\n", - " 157: [608, 62, 141, 17, 6, 25, 1210, 1356, 112, 58],\n", - " 158: [150, 356, 318, 110, 480, 590, 589, 377, 161, 165],\n", - " 159: [1196, 1380, 914, 920, 3061, 1333, 594, 1247, 1674, 955],\n", - " 160: [1240, 1214, 2762, 4993, 5349, 4306, 541, 356, 2985, 1],\n", - " 161: [1089, 32, 2329, 2997, 4306, 2502, 858, 2028, 1080, 32587],\n", - " 162: [4226, 318, 50, 1089, 32, 2329, 593, 4878, 7361, 2997],\n", - " 163: [318, 265, 608, 337, 300, 497, 515, 508, 293, 58],\n", - " 164: [110, 161, 364, 34, 50, 1, 539, 339, 733, 253],\n", - " 165: [1028, 919, 1035, 1947, 2080, 1210, 1282, 1380, 914, 920],\n", - " 166: [2571, 3578, 1580, 480, 1198, 589, 3793, 780, 110, 2916],\n", - " 167: [260, 733, 1073, 832, 17, 802, 494, 805, 1210, 1393],\n", - " 168: [908, 1214, 1240, 1199, 924, 260, 1196, 541, 2010, 1209],\n", - " 169: [2700, 2716, 2987, 2572, 2355, 2762, 2959, 2336, 223, 2502],\n", - " 170: [5952, 7153, 4993, 6874, 1089, 593, 7438, 7361, 1214, 589],\n", - " 171: [457, 593, 480, 588, 590, 349, 589, 161, 595, 364],\n", - " 172: [593, 356, 318, 380, 296, 590, 349, 377, 161, 595],\n", - " 173: [1197, 1222, 2028, 541, 1225, 1213, 1073, 1263, 1282, 110],\n", - " 174: [3396, 919, 912, 4333, 5955, 1097, 1022, 1010, 2014, 3114],\n", - " 175: [4306, 3996, 5445, 8961, 6539, 778, 1291, 4995, 3897, 1274],\n", - " 176: [356, 318, 110, 480, 588, 296, 349, 589, 377, 595],\n", - " 177: [260, 733, 832, 17, 802, 805, 1210, 1393, 1356, 708],\n", - " 178: [858, 1610, 743, 1258, 18, 521, 479, 737, 780, 1265],\n", - " 179: [3793, 780, 1610, 1291, 2762, 457, 356, 1625, 2706, 3114],\n", - " 180: [1387, 1220, 1304, 2301, 2804, 3104, 3507, 2023, 1219, 1240],\n", - " 182: [1259, 1198, 260, 904, 3421, 1610, 1291, 1674, 1387, 1210],\n", - " 183: [608, 1968, 1259, 1197, 1278, 2797, 1265, 858, 1207, 1079],\n", - " 184: [919, 2396, 1234, 1259, 1198, 1197, 1097, 1641, 318, 1304],\n", - " 185: [1203, 164, 3005, 3654, 2762, 910, 1912, 4031, 2986, 2858],\n", - " 186: [2908, 3735, 3267, 1172, 1794, 2291, 1263, 2863, 2871, 1963],\n", - " 187: [2571, 1196, 3578, 260, 1210, 1580, 1198, 589, 1240, 780],\n", - " 188: [318, 588, 377, 161, 165, 595, 364, 292, 10, 47],\n", - " 189: [1073, 141, 648, 832, 802, 25, 1210, 95, 1393, 1356],\n", - " 190: [48516,\n", - " 54286,\n", - " 48774,\n", - " 8665,\n", - " 44191,\n", - " 4963,\n", - " 48780,\n", - " 4979,\n", - " 2291,\n", - " 3052],\n", - " 191: [5952, 1208, 3996, 509, 7153, 1221, 1213, 260, 1258, 4993],\n", - " 192: [5952, 7153, 4993, 318, 32, 2329, 589, 1196, 2762, 3996],\n", - " 193: [595, 364, 1, 733, 32, 6, 780, 736, 141, 95],\n", - " 194: [733, 608, 36, 494, 6, 805, 786, 708, 653, 112],\n", - " 195: [7064, 50, 9018, 318, 1201, 1732, 44555, 41997, 923, 4848],\n", - " 196: [3578, 3793, 2762, 4993, 5349, 4306, 3996, 541, 3753, 1200],\n", - " 197: [2683, 2858, 2700, 356, 2572, 2355, 2762, 2959, 4022, 2336],\n", - " 198: [2997, 4973, 1080, 32587, 3949, 1198, 4011, 778, 1291, 2542],\n", - " 199: [356, 318, 110, 480, 349, 589, 161, 364, 500, 10],\n", - " 200: [1, 608, 832, 494, 6, 25, 805, 1210, 95, 786],\n", - " 201: [919, 1234, 1968, 1259, 1198, 1197, 1097, 318, 1304, 1278],\n", - " 202: [296, 36, 318, 509, 50, 25, 265, 17, 356, 593],\n", - " 203: [2396, 1968, 1641, 1304, 2797, 1704, 2716, 858, 2028, 5060],\n", - " 204: [1073, 36, 832, 802, 805, 1210, 1393, 1356, 708, 653],\n", - " 205: [2858, 527, 1617, 904, 296, 1213, 50, 923, 1247, 1267],\n", - " 206: [3578, 260, 1580, 480, 1198, 589, 1270, 3793, 780, 110],\n", - " 207: [339, 587, 261, 1084, 105, 442, 257, 168, 236, 277],\n", - " 208: [457, 593, 356, 480, 590, 589, 377, 595, 364, 292],\n", - " 209: [62, 736, 36, 832, 17, 802, 494, 6, 25, 805],\n", - " 210: [1196, 260, 1036, 1198, 1240, 1270, 3793, 1610, 1291, 1214],\n", - " 211: [1193, 527, 1208, 296, 1213, 541, 923, 1247, 1207, 750],\n", - " 212: [2858, 2329, 4878, 3578, 2502, 6377, 4886, 8961, 3949, 4011],\n", - " 213: [1409,\n", - " 1407,\n", - " 34271,\n", - " 6281,\n", - " 1050,\n", - " 849,\n", - " 1049,\n", - " 1447,\n", - " 42725,\n", - " 43936],\n", - " 214: [919, 1234, 318, 1304, 1278, 1207, 2028, 1358, 1394, 1961],\n", - " 215: [1293, 527, 590, 1292, 1271, 902, 1246, 2100, 3421, 1090],\n", - " 216: [3578, 589, 1240, 1270, 2916, 1291, 1214, 2028, 3527, 2000],\n", - " 217: [356, 318, 110, 480, 589, 377, 161, 364, 292, 500],\n", - " 218: [5377, 5418, 4226, 3147, 2959, 3556, 4995, 4011, 4641, 8784],\n", - " 219: [1204, 1207, 913, 356, 2804, 3751, 97, 5475, 5147, 47],\n", - " 220: [420, 173, 19, 303, 540, 421, 170, 318, 322, 132],\n", - " 221: [3578, 1580, 1240, 2916, 1291, 1527, 1214, 2762, 4993, 1676],\n", - " 222: [1617, 2858, 1237, 924, 1234, 7064, 1252, 858, 750, 50],\n", - " 223: [597, 2694, 1500, 1285, 2134, 2416, 188, 1442, 5489, 2827],\n", - " 224: [260, 733, 832, 802, 805, 1210, 1393, 1356, 708, 653],\n", - " 225: [608, 1193, 2858, 527, 912, 1208, 858, 296, 1213, 111],\n", - " 226: [2396, 1097, 1278, 1207, 5060, 357, 1079, 1784, 1293, 1961],\n", - " 227: [1409,\n", - " 1407,\n", - " 34271,\n", - " 6281,\n", - " 1050,\n", - " 849,\n", - " 1049,\n", - " 1447,\n", - " 43936,\n", - " 6887],\n", - " 228: [588, 296, 590, 161, 592, 47, 34, 50, 527, 1],\n", - " 229: [62, 36, 832, 17, 802, 494, 6, 95, 786, 653],\n", - " 230: [1193, 904, 858, 111, 1207, 903, 908, 1225, 1228, 924],\n", - " 231: [1210, 1148, 260, 2028, 1089, 1183, 223, 47, 1200, 1094],\n", - " 232: [1197, 1270, 1193, 1234, 912, 924, 1387, 2028, 1374, 1097],\n", - " 234: [5377, 5418, 3147, 3556, 4995, 318, 4011, 4641, 8784, 7361],\n", - " 235: [924, 1234, 7064, 9018, 3871, 1201, 2019, 1945, 2966, 1732],\n", - " 236: [34, 316, 587, 1, 434, 733, 253, 329, 153, 32],\n", - " 237: [608, 2858, 527, 912, 1208, 904, 858, 1252, 111, 541],\n", - " 238: [2700, 2716, 2987, 356, 2572, 2355, 2762, 2959, 4022, 2710],\n", - " 239: [1961, 457, 858, 1610, 743, 1193, 260, 1258, 1220, 2396],\n", - " 241: [3396, 919, 912, 5955, 1198, 1097, 1022, 1010, 2014, 3114],\n", - " 242: [608, 1073, 36, 832, 1210, 1393, 708, 7, 647, 58],\n", - " 243: [3507, 2023, 1213, 2791, 1080, 1370, 4306, 1136, 1961, 1214],\n", - " 244: [1617, 296, 1213, 111, 923, 1233, 1221, 1207, 903, 908],\n", - " 245: [2908, 3735, 2160, 1358, 3267, 593, 1172, 1252, 1794, 1274],\n", - " 246: [1961, 1196, 457, 356, 1610, 1193, 260, 1258, 1220, 2396],\n", - " 247: [318, 110, 349, 50, 527, 1, 474, 733, 32, 185],\n", - " 248: [1028, 919, 1035, 1947, 2080, 1282, 1196, 1380, 914, 920],\n", - " 249: [1939, 1321, 1219, 2118, 7566, 3118, 6612, 928, 4723, 2612],\n", - " 250: [420, 173, 19, 540, 322, 132, 159, 16, 36, 1270],\n", - " 251: [62, 832, 17, 802, 708, 5, 1042, 52, 3, 838],\n", - " 252: [1617, 1208, 858, 296, 1252, 1213, 111, 541, 50, 923],\n", - " 253: [5952, 1208, 509, 7153, 1221, 1213, 260, 1258, 5060, 4993],\n", - " 254: [4226,\n", - " 7153,\n", - " 4993,\n", - " 6874,\n", - " 2329,\n", - " 7361,\n", - " 4973,\n", - " 2502,\n", - " 6377,\n", - " 32587],\n", - " 255: [457, 380, 110, 480, 296, 349, 589, 377, 165, 595],\n", - " 256: [7139,\n", - " 48394,\n", - " 1784,\n", - " 48043,\n", - " 5956,\n", - " 147,\n", - " 448,\n", - " 49530,\n", - " 46976,\n", - " 5577],\n", - " 257: [1196, 1210, 1580, 589, 1270, 3793, 780, 2916, 1291, 1527],\n", - " 258: [2620, 2571, 593, 2470, 539, 2002, 1198, 8528, 2490, 858],\n", - " 259: [663, 100, 318, 43, 3468, 469, 5392, 3910, 1259, 180],\n", - " 260: [1291, 1197, 1270, 1234, 1222, 1242, 1387, 2028, 1374, 1097],\n", - " 261: [1196, 3578, 260, 1210, 1036, 480, 1198, 589, 1240, 1270],\n", - " 262: [480, 589, 1270, 1214, 1676, 2000, 541, 1917, 2985, 3753],\n", - " 263: [7153, 6874, 1089, 2997, 4306, 1206, 2502, 2028, 293, 1258],\n", - " 264: [150, 318, 590, 349, 161, 364, 292, 34, 527, 587],\n", - " 265: [1961, 1196, 457, 356, 743, 1193, 260, 1258, 1220, 2396],\n", - " 266: [5991, 3844, 3988, 5303, 3203, 3791, 4280, 6296, 2502, 2580],\n", - " 267: [7064, 9018, 3871, 1945, 4308, 1084, 41997, 4034, 3967, 908],\n", - " 268: [588, 349, 292, 592, 34, 50, 1, 733, 253, 21],\n", - " 269: [207, 158, 724, 520, 784, 74, 88, 24, 276, 516],\n", - " 270: [1, 608, 62, 736, 36, 832, 802, 6, 95, 1393],\n", - " 271: [2571, 3578, 1036, 1198, 3793, 1610, 110, 2916, 1291, 2028],\n", - " 272: [2571, 47, 318, 6874, 1089, 32, 593, 7438, 1214, 1196],\n", - " 273: [48516,\n", - " 8961,\n", - " 40815,\n", - " 8368,\n", - " 5349,\n", - " 48774,\n", - " 31658,\n", - " 4306,\n", - " 51662,\n", - " 34405],\n", - " 274: [2396, 608, 1968, 1198, 318, 1704, 858, 1207, 2028, 1358],\n", - " 275: [919, 1234, 1198, 1197, 1304, 1278, 2797, 2716, 858, 5060],\n", - " 276: [3983, 8228, 2728, 3462, 2935, 2871, 1234, 3504, 6787, 8949],\n", - " 277: [370, 256, 485, 442, 466, 315, 160, 3623, 4224, 279],\n", - " 278: [7139,\n", - " 48394,\n", - " 1784,\n", - " 48043,\n", - " 5956,\n", - " 147,\n", - " 448,\n", - " 1307,\n", - " 49530,\n", - " 1441],\n", - " 279: [3983, 3683, 8228, 3089, 923, 1252, 3462, 2935, 2871, 1234],\n", - " 280: [1196, 3578, 260, 1210, 1580, 1036, 1198, 589, 1240, 1270],\n", - " 281: [1, 733, 253, 508, 736, 266, 282, 62, 196, 168],\n", - " 282: [141, 832, 6, 1210, 1393, 1356, 708, 104, 58, 5],\n", - " 285: [608, 1193, 2858, 527, 1617, 912, 1208, 904, 858, 296],\n", - " 286: [1580, 480, 780, 1610, 110, 1527, 2762, 3527, 4993, 5349],\n", - " 287: [593, 318, 296, 349, 589, 377, 161, 165, 364, 292],\n", - " 288: [1210, 1282, 1196, 1380, 1270, 3061, 1333, 594, 1247, 1674],\n", - " 289: [1198, 2194, 2406, 2108, 1291, 1240, 1282, 1073, 1262, 1965],\n", - " 290: [912, 4333, 5955, 1198, 2396, 1028, 3053, 4741, 1247, 531],\n", - " 291: [425, 1354, 261, 3263, 605, 2443, 1465, 1624, 2291, 2943],\n", - " 292: [6874, 293, 3949, 1208, 778, 2542, 1617, 527, 6016, 924],\n", - " 293: [356, 380, 110, 480, 589, 377, 364, 292, 500, 47],\n", - " 294: [593, 480, 590, 589, 500, 10, 34, 527, 1, 339],\n", - " 295: [608, 1259, 318, 1704, 858, 1358, 593, 260, 1617, 1250],\n", - " 296: [1196, 1136, 3996, 6377, 1210, 1080, 1258, 1198, 1291, 1617],\n", - " 297: [733, 736, 832, 802, 494, 6, 95, 786, 653, 7],\n", - " 298: [260, 5991, 5377, 3844, 3988, 5303, 3203, 3791, 2571, 1210],\n", - " 300: [2396, 1234, 1259, 1198, 1197, 1641, 1304, 1278, 1265, 2716],\n", - " 301: [1193, 1617, 904, 111, 1233, 1230, 1267, 1207, 903, 908],\n", - " 302: [4025, 1027, 3988, 2694, 2340, 1682, 2485, 1721, 1527, 2413],\n", - " 303: [50, 1089, 2329, 4878, 7438, 7361, 2997, 4973, 1206, 2502],\n", - " 304: [3396, 912, 4333, 5955, 1198, 1022, 1010, 2014, 588, 2081],\n", - " 305: [318, 380, 161, 595, 364, 292, 47, 34, 316, 50],\n", - " 306: [1387, 1304, 2194, 3104, 3507, 2023, 1219, 1240, 1213, 2797],\n", - " 307: [3578, 1036, 1610, 1291, 2762, 3527, 4993, 2000, 3996, 457],\n", - " 308: [150, 593, 356, 318, 380, 110, 296, 349, 589, 377],\n", - " 309: [733, 608, 1073, 32, 36, 832, 494, 6, 1210, 1393],\n", - " 310: [1968, 2918, 953, 3039, 1271, 3072, 2291, 904, 3421, 1242],\n", - " 311: [457, 593, 318, 110, 296, 589, 377, 161, 292, 500],\n", - " 312: [608, 1193, 2858, 527, 1617, 1208, 858, 296, 1213, 111],\n", - " 313: [1210, 1148, 260, 1089, 1183, 223, 47, 1200, 1094, 1214],\n", - " 314: [2396, 608, 1968, 1259, 1197, 1641, 1278, 2797, 1704, 2716],\n", - " 315: [380, 10, 47, 50, 1, 434, 474, 733, 21, 32],\n", - " 316: [608, 62, 648, 36, 832, 17, 494, 6, 805, 1210],\n", - " 317: [919, 2396, 608, 1234, 1968, 1259, 1198, 1197, 1097, 1641],\n", - " 318: [1259, 1207, 1358, 5060, 1293, 1394, 2791, 1250, 1220, 2804],\n", - " 319: [908, 2010, 1209, 3030, 1175, 2019, 3635, 8507, 6104, 1227],\n", - " 320: [318, 6874, 50, 2329, 4878, 7438, 7361, 2997, 2502, 858],\n", - " 321: [150, 318, 110, 590, 377, 161, 165, 500, 10, 47],\n", - " 322: [912, 318, 1961, 1949, 3105, 2140, 27820, 147, 3952, 62],\n", - " 323: [589, 3466, 1240, 1320, 2302, 2000, 111, 1215, 2240, 551],\n", - " 324: [296, 2858, 47, 318, 6874, 50, 2329, 593, 7438, 7361],\n", - " 325: [1220, 2194, 2301, 2804, 3104, 1196, 2918, 2174, 2064, 1965],\n", - " 326: [318, 380, 349, 165, 292, 500, 10, 47, 34, 316],\n", - " 327: [141, 36, 832, 17, 6, 805, 653, 104, 112, 647],\n", - " 328: [2959, 296, 5952, 4226, 7153, 4993, 47, 6874, 1089, 2329],\n", - " 329: [908, 1214, 1240, 1199, 924, 260, 1196, 541, 2010, 1209],\n", - " 330: [3578, 1580, 1036, 480, 1198, 780, 1610, 2916, 1527, 1214],\n", - " 331: [296, 5952, 47, 1089, 32, 593, 4878, 7438, 1214, 589],\n", - " 332: [589, 377, 165, 500, 10, 527, 587, 597, 344, 539],\n", - " 333: [1259, 1089, 1220, 2143, 1213, 1372, 1210, 1278, 507, 5464],\n", - " 334: [2396, 608, 1097, 318, 1265, 1704, 858, 1207, 1358, 5060],\n", - " 335: [3683, 8228, 2728, 2871, 1234, 3504, 6787, 8949, 6331, 1259],\n", - " 336: [5991, 5303, 3203, 3791, 4280, 2788, 6296, 2396, 2502, 2580],\n", - " 337: [608, 1193, 2858, 527, 1617, 912, 1208, 904, 858, 296],\n", - " 338: [3996, 509, 7153, 1221, 1213, 260, 1258, 5060, 4993, 2924],\n", - " 339: [356, 110, 480, 588, 589, 377, 595, 364, 292, 500],\n", - " 340: [427, 2143, 1372, 507, 5464, 1376, 441, 3869, 1249, 3646],\n", - " 341: [1210, 1148, 2028, 1089, 1183, 223, 47, 1094, 1223, 663],\n", - " 342: [1527, 4799, 1079, 2858, 3265, 1298, 780, 1356, 4816, 223],\n", - " 343: [318, 296, 377, 165, 595, 364, 292, 500, 47, 34],\n", - " 344: [858, 1200, 1197, 593, 1193, 1234, 1222, 1242, 924, 2028],\n", - " 345: [608, 1259, 318, 1704, 858, 1207, 1358, 5060, 357, 1079],\n", - " 346: [207, 158, 783, 784, 74, 88, 516, 61, 653, 435],\n", - " 347: [3578, 1036, 1198, 1610, 1291, 1214, 2028, 2762, 3527, 2000],\n", - " 348: [1196, 1206, 1136, 1210, 1080, 1274, 6016, 5669, 5618, 260],\n", - " 349: [380, 500, 34, 1, 434, 474, 21, 32, 357, 11],\n", - " 350: [527, 36, 17, 300, 246, 150, 497, 515, 307, 32],\n", - " 351: [1278, 2028, 1293, 1250, 2302, 2194, 2762, 1242, 2108, 1090],\n", - " 352: [260, 1198, 1196, 1210, 1240, 858, 1291, 1200, 1197, 1193],\n", - " 353: [2858, 318, 6874, 1089, 2329, 7438, 7361, 2997, 4306, 2762],\n", - " 354: [1584, 1777, 2581, 4025, 1197, 3081, 1027, 1136, 2605, 3988],\n", - " 355: [380, 480, 588, 589, 377, 161, 364, 292, 500, 10],\n", - " 356: [1, 62, 1073, 736, 141, 802, 494, 805, 1210, 1356],\n", - " 357: [193, 327, 177, 2694, 44, 212, 258, 188, 1442, 5489],\n", - " 358: [3578, 1036, 1198, 3793, 1610, 110, 1291, 2028, 2762, 4993],\n", - " 359: [1617, 1237, 1234, 1252, 858, 50, 3871, 318, 1201, 2019],\n", - " 360: [260, 733, 608, 62, 1073, 832, 802, 494, 6, 805],\n", - " 361: [1237, 924, 7064, 750, 9018, 4226, 3871, 318, 1201, 2019],\n", - " 362: [296, 2858, 47, 6874, 1089, 32, 2329, 7438, 1214, 589],\n", - " 363: [4226, 2571, 2858, 47, 318, 50, 1089, 32, 593, 4878],\n", - " 364: [356, 480, 589, 377, 364, 500, 47, 34, 527, 454],\n", - " 365: [318, 588, 349, 589, 377, 161, 165, 595, 292, 10],\n", - " 366: [1387, 2301, 2804, 3104, 3507, 2023, 1219, 1213, 2791, 2797],\n", - " 367: [3793, 8368, 5816, 4896, 6377, 3091, 7386, 4427, 6170, 2826],\n", - " 368: [2858, 318, 2329, 593, 4878, 7438, 2762, 2028, 32587, 3949],\n", - " 369: [356, 110, 480, 589, 377, 364, 500, 47, 34, 50],\n", - " 370: [260, 733, 608, 32, 648, 36, 832, 802, 494, 6],\n", - " 371: [1204, 924, 1210, 2797, 1097, 1234, 50, 1225, 1197, 912],\n", - " 372: [296, 4226, 7153, 2858, 47, 318, 6874, 50, 1089, 32],\n", - " 373: [4308, 4973, 2571, 818, 663, 100, 1120, 2115, 4014, 1721],\n", - " 375: [919, 2396, 608, 1968, 1259, 1198, 1197, 1097, 318, 1278],\n", - " 376: [1198, 1196, 858, 1291, 1197, 1234, 1222, 1036, 1242, 924],\n", - " 377: [608, 1617, 912, 1208, 1252, 1213, 111, 1233, 593, 1230],\n", - " 378: [457, 743, 1193, 1258, 1220, 18, 521, 479, 737, 593],\n", - " 379: [1196, 3578, 260, 1210, 1580, 480, 1198, 589, 1240, 1270],\n", - " 380: [2571, 1196, 260, 1580, 1036, 480, 1198, 589, 1240, 1270],\n", - " 381: [1, 367, 32, 736, 141, 95, 163, 648, 236, 282],\n", - " 382: [457, 150, 593, 356, 318, 110, 480, 589, 377, 161],\n", - " 383: [1213, 1258, 5060, 2924, 11, 337, 360, 2194, 2700, 923],\n", - " 384: [593, 380, 296, 349, 589, 595, 10, 47, 34, 316],\n", - " 385: [260, 733, 1073, 36, 832, 802, 805, 1210, 1393, 1356],\n", - " 386: [919, 1234, 1259, 1197, 1641, 1278, 2797, 2716, 1207, 1079],\n", - " 387: [1028, 919, 1035, 1947, 2080, 1282, 1196, 1380, 914, 920],\n", - " 388: [2959, 296, 5952, 7153, 4993, 2858, 47, 318, 6874, 1089],\n", - " 389: [296, 50, 1089, 1214, 589, 1196, 4306, 4973, 1206, 1136],\n", - " 390: [47, 1089, 32, 7438, 7361, 1214, 1206, 293, 541, 6377],\n", - " 391: [349, 161, 292, 47, 34, 50, 527, 454, 587, 597],\n", - " 392: [161, 500, 316, 1, 474, 733, 586, 329, 357, 225],\n", - " 393: [1, 17, 802, 25, 1210, 1356, 708, 653, 7, 112],\n", - " 394: [164, 3654, 2762, 4031, 2986, 678, 3296, 2406, 1968, 1395],\n", - " 395: [420, 173, 19, 303, 540, 421, 170, 322, 132, 159],\n", - " 396: [3578, 589, 1240, 1270, 3793, 780, 1610, 110, 2916, 1527],\n", - " 397: [5377,\n", - " 5418,\n", - " 3556,\n", - " 4011,\n", - " 4641,\n", - " 8784,\n", - " 44195,\n", - " 8665,\n", - " 1625,\n", - " 54503],\n", - " 398: [1084, 105, 442, 257, 236, 277, 230, 376, 281, 262],\n", - " 399: [1210, 7, 58, 14, 52, 1183, 783, 858, 661, 838],\n", - " 400: [1193, 527, 912, 1208, 904, 858, 296, 1252, 1213, 111],\n", - " 401: [1148, 2028, 1183, 223, 47, 1094, 1223, 663, 1586, 1],\n", - " 402: [2571, 1196, 1210, 1580, 1036, 480, 1198, 589, 1240, 1270],\n", - " 403: [2959, 5952, 4993, 2858, 318, 6874, 50, 1089, 32, 2329],\n", - " 404: [593, 595, 500, 50, 527, 434, 539, 474, 339, 733],\n", - " 405: [1, 608, 832, 17, 494, 6, 805, 1210, 95, 1393],\n", - " 406: [457, 593, 356, 318, 380, 110, 480, 588, 590, 589],\n", - " 407: [1196, 1210, 110, 2916, 5349, 2000, 3753, 2706, 2716, 1584],\n", - " 408: [2959, 296, 5952, 4226, 7153, 2571, 4993, 2858, 47, 318],\n", - " 409: [457, 318, 380, 110, 588, 296, 595, 364, 500, 592],\n", - " 410: [260, 1387, 2028, 1374, 457, 1263, 1282, 1333, 1136, 1253],\n", - " 411: [260, 32, 36, 17, 802, 494, 6, 25, 805, 1210],\n", - " 412: [919, 608, 1234, 1968, 1259, 1198, 1197, 1097, 1641, 1304],\n", - " 413: [608, 527, 1617, 912, 1208, 1252, 1213, 50, 593, 1247],\n", - " 414: [4226, 7153, 318, 50, 1089, 32, 2329, 1214, 589, 1196],\n", - " 415: [527, 318, 509, 50, 265, 356, 593, 608, 337, 300],\n", - " 416: [318, 110, 296, 589, 165, 595, 316, 50, 527, 587],\n", - " 417: [527, 912, 356, 2858, 1, 97, 5475, 5147, 47, 1923],\n", - " 418: [527, 509, 356, 593, 357, 497, 515, 508, 272, 307],\n", - " 419: [923, 1267, 1228, 922, 994, 910, 1394, 2599, 235, 1206],\n", - " 420: [318, 50, 25, 17, 593, 608, 337, 300, 357, 497],\n", - " 421: [593, 318, 380, 110, 296, 349, 377, 165, 364, 292],\n", - " 422: [1, 608, 1073, 32, 141, 36, 832, 17, 6, 805],\n", - " 424: [1968, 1259, 1197, 1704, 2716, 858, 1207, 2028, 1358, 1079],\n", - " 425: [1210, 1148, 260, 1089, 1183, 223, 47, 1200, 1094, 1214],\n", - " 426: [425, 261, 3263, 605, 2443, 1465, 1624, 2442, 932, 1810],\n", - " 427: [1580, 480, 3793, 780, 110, 2916, 1527, 4993, 1676, 5349],\n", - " 428: [288, 4446, 1554, 327, 5400, 3949, 1924, 2571, 2501, 4166],\n", - " 429: [2571, 1196, 3578, 260, 1210, 1580, 480, 1198, 589, 1240],\n", - " 430: [2571, 1196, 3578, 260, 1210, 1580, 1036, 480, 1198, 589],\n", - " 431: [1089, 1220, 427, 2143, 1197, 1213, 1372, 1210, 1278, 507],\n", - " 432: [608, 357, 293, 58, 307, 342, 345, 111, 529, 306],\n", - " 433: [150, 593, 318, 588, 296, 590, 161, 595, 364, 592],\n", - " 434: [1625, 2716, 1584, 1197, 2011, 1573, 1748, 32, 1265, 5010],\n", - " 435: [296, 5952, 7153, 4993, 2858, 318, 50, 1089, 593, 7438],\n", - " 436: [590, 349, 161, 165, 292, 10, 527, 1, 733, 225],\n", - " 437: [1193, 912, 858, 923, 1233, 1230, 1207, 1225, 922, 924],\n", - " 438: [1270, 2028, 3527, 4993, 5349, 3753, 4886, 2706, 4963, 5952],\n", - " 439: [4226, 3147, 2959, 3556, 4995, 318, 4641, 2858, 8784, 7361],\n", - " 440: [919, 1234, 1968, 1304, 1265, 1704, 2716, 5060, 357, 1079],\n", - " 441: [356, 318, 588, 590, 595, 364, 500, 527, 1, 539],\n", - " 443: [1203, 164, 3005, 3654, 2762, 910, 4031, 2986, 2707, 2605],\n", - " 444: [1947, 1380, 3061, 955, 899, 2081, 1219, 902, 918, 1081],\n", - " 445: [3996, 509, 1221, 1213, 260, 1258, 5060, 4993, 2924, 2858],\n", - " 446: [110, 590, 377, 165, 364, 500, 47, 34, 50, 527],\n", - " 447: [1193, 2858, 1208, 904, 858, 1252, 1213, 111, 541, 1233],\n", - " 448: [2706, 2700, 2997, 2716, 2987, 356, 2572, 2762, 2959, 4022],\n", - " 449: [5991, 5377, 3844, 5303, 3791, 4280, 2788, 6296, 2502, 4979],\n", - " 450: [1234, 1304, 1278, 1265, 1704, 5060, 1784, 1293, 953, 1250],\n", - " 451: [2997, 1625, 1230, 1732, 2502, 111, 296, 2858, 1784, 1213],\n", - " 452: [1196, 3578, 260, 1210, 1036, 1198, 589, 1240, 1610, 1291],\n", - " 453: [457, 150, 593, 356, 318, 110, 480, 588, 590, 589],\n", - " 454: [150, 356, 318, 380, 480, 349, 161, 165, 292, 10],\n", - " 455: [1073, 141, 17, 494, 95, 1393, 1356, 708, 653, 7],\n", - " 456: [356, 480, 589, 377, 500, 527, 587, 597, 539, 474],\n", - " 458: [2706, 2700, 2997, 356, 2959, 223, 2710, 2502, 2712, 2605],\n", - " 459: [1198, 457, 3753, 4886, 1625, 1197, 2353, 4085, 2194, 1573],\n", - " 460: [356, 318, 480, 589, 377, 364, 500, 47, 34, 50],\n", - " 461: [62, 141, 36, 802, 494, 6, 25, 95, 1356, 708],\n", - " 462: [1, 1073, 17, 802, 805, 1210, 95, 1393, 786, 1356],\n", - " 463: [1917, 2115, 4963, 4085, 2011, 2167, 3703, 165, 1573, 2012],\n", - " 464: [260, 1198, 1196, 1210, 1240, 858, 1291, 1200, 1197, 1270],\n", - " 465: [2028, 2916, 1196, 2620, 2571, 1210, 2470, 2002, 1198, 1610],\n", - " 466: [2959, 296, 4226, 7153, 2571, 4993, 2858, 47, 318, 6874],\n", - " 467: [2571, 1196, 260, 1210, 1580, 480, 1198, 1270, 3793, 780],\n", - " 468: [36, 318, 509, 50, 25, 265, 17, 608, 337, 246],\n", - " 469: [780, 1610, 110, 1527, 1676, 2000, 2985, 3753, 2115, 1625],\n", - " 470: [2160, 1172, 1794, 1407, 2291, 903, 2863, 1963, 3189, 3033],\n", - " 471: [150, 593, 318, 380, 110, 588, 296, 590, 349, 377],\n", - " 472: [110, 377, 500, 10, 316, 50, 527, 1, 434, 474],\n", - " 473: [1, 36, 802, 805, 1210, 1393, 653, 7, 104, 112],\n", - " 474: [3578, 1580, 1036, 1198, 3793, 1610, 110, 1291, 2028, 2762],\n", - " 475: [288, 4446, 1554, 327, 5400, 3949, 1924, 2571, 2501, 4166],\n", - " 476: [7438, 2502, 858, 4886, 1222, 4995, 1213, 6502, 5618, 2716],\n", - " 477: [2858, 6874, 32, 4878, 7438, 589, 2997, 4306, 4973, 1206],\n", - " 479: [3735, 2160, 3267, 1172, 1274, 1407, 2291, 1263, 1249, 903],\n", - " 480: [7153, 318, 6874, 1089, 2329, 4878, 7438, 7361, 293, 6377],\n", - " 481: [2997, 2762, 4973, 1206, 541, 6377, 1258, 8961, 3949, 1208],\n", - " 482: [7139, 147, 448, 1307, 1441, 5577, 3006, 229, 4901, 603],\n", - " 483: [588, 377, 161, 292, 47, 50, 1, 733, 329, 32],\n", - " 484: [62, 1073, 36, 1210, 708, 7, 104, 647, 58, 5],\n", - " 485: [912, 904, 1252, 1233, 1247, 1230, 1207, 903, 750, 908],\n", - " 486: [1090, 1625, 1230, 1732, 7360, 741, 293, 2542, 1196, 296],\n", - " 487: [48516,\n", - " 49272,\n", - " 7153,\n", - " 8961,\n", - " 33794,\n", - " 5952,\n", - " 4993,\n", - " 40815,\n", - " 8368,\n", - " 5349],\n", - " 488: [356, 318, 110, 588, 296, 377, 165, 595, 364, 292],\n", - " 489: [2858, 1617, 912, 296, 1252, 541, 923, 593, 1230, 903],\n", - " 490: [260, 1197, 593, 1193, 1234, 1222, 1036, 1242, 924, 1387],\n", - " 491: [1208, 509, 7153, 5060, 4993, 593, 11, 2997, 1584, 3793],\n", - " 492: [7153, 1221, 260, 1258, 5060, 4993, 2924, 2858, 858, 2571],\n", - " 493: [448, 46976, 5577, 229, 603, 60069, 180, 1683, 51255, 4880],\n", - " 494: [588, 595, 364, 10, 34, 1, 434, 539, 474, 339],\n", - " 495: [539, 587, 1084, 105, 442, 257, 168, 597, 230, 376],\n", - " 496: [919, 608, 1234, 1259, 1198, 1197, 1097, 1641, 318, 1304],\n", - " 497: [2959, 296, 5952, 2858, 47, 6874, 50, 2329, 4878, 7438],\n", - " 498: [164, 3005, 3654, 2762, 1912, 4031, 2986, 2858, 678, 2707],\n", - " 499: [1193, 2858, 527, 1617, 1208, 904, 1252, 1213, 111, 541],\n", - " 500: [1193, 2858, 912, 1208, 904, 858, 50, 923, 1233, 1247],\n", - " 501: [1259, 1641, 318, 2716, 858, 1207, 1358, 1293, 1307, 1617],\n", - " 502: [2571, 1196, 3578, 260, 1580, 1036, 480, 1198, 589, 1240],\n", - " 503: [47, 50, 1089, 1214, 1196, 3996, 1210, 1200, 3949, 4011],\n", - " 504: [110, 480, 588, 349, 589, 595, 10, 592, 50, 1],\n", - " 505: [593, 349, 161, 292, 500, 50, 527, 434, 474, 733],\n", - " 506: [25, 265, 17, 608, 300, 357, 246, 497, 515, 293],\n", - " 507: [919, 2396, 608, 1234, 1968, 1259, 1198, 1197, 1097, 1641],\n", - " 508: [1220, 1304, 2194, 2301, 2804, 3104, 3507, 2023, 1219, 1240],\n", - " 509: [3556, 318, 4641, 8784, 44195, 1625, 3949, 2023, 4148, 4973],\n", - " 510: [380, 110, 349, 589, 377, 165, 292, 10, 592, 47],\n", - " 511: [457, 593, 356, 318, 480, 588, 589, 377, 364, 500],\n", - " 512: [1193, 912, 1208, 904, 858, 1252, 1213, 541, 50, 923],\n", - " 513: [1358, 1293, 1, 953, 1250, 110, 902, 3421, 1235, 1291],\n", - " 515: [608, 1193, 2858, 527, 1208, 904, 858, 296, 1252, 1213],\n", - " 516: [50, 7361, 293, 6377, 1080, 3949, 2542, 33794, 608, 8874],\n", - " 517: [457, 593, 356, 480, 589, 377, 364, 500, 10, 34],\n", - " 518: [2858, 1617, 912, 1208, 904, 858, 296, 1252, 1213, 541],\n", - " 520: [1584, 2571, 1777, 2581, 4025, 780, 1197, 3081, 1027, 1136],\n", - " 521: [7234, 5147, 1136, 8125, 8154, 4422, 8042, 4144, 6985, 3462],\n", - " 522: [527, 509, 50, 265, 17, 246, 497, 515, 508, 58],\n", - " 523: [2858, 1617, 912, 904, 296, 1252, 111, 923, 1233, 593],\n", - " 524: [7153, 32, 593, 7438, 7361, 1214, 589, 1196, 1136, 3996],\n", - " 525: [356, 380, 480, 589, 377, 161, 364, 292, 500, 47],\n", - " 526: [62, 141, 17, 1210, 1393, 653, 112, 647, 58, 5],\n", - " 527: [457, 150, 593, 318, 380, 110, 296, 590, 349, 589],\n", - " 529: [2959, 5952, 7153, 2571, 4993, 2858, 47, 318, 6874, 50],\n", - " 530: [457, 593, 356, 480, 589, 377, 161, 165, 364, 500],\n", - " 531: [457, 593, 356, 480, 349, 589, 377, 165, 364, 500],\n", - " 532: [2620, 733, 593, 1101, 539, 2002, 1193, 1610, 8528, 2671],\n", - " 533: [1097, 1220, 2194, 3072, 2406, 3421, 1610, 2108, 1090, 2150],\n", - " 534: [48516,\n", - " 49272,\n", - " 54286,\n", - " 7153,\n", - " 8961,\n", - " 33794,\n", - " 40815,\n", - " 8368,\n", - " 5349,\n", - " 48774],\n", - " 535: [4422,\n", - " 4378,\n", - " 48516,\n", - " 6669,\n", - " 4329,\n", - " 3676,\n", - " 6867,\n", - " 3503,\n", - " 4298,\n", - " 2108],\n", - " 536: [356, 318, 380, 110, 480, 590, 589, 161, 165, 364],\n", - " 537: [1, 1073, 32, 141, 648, 832, 802, 1210, 95, 1393],\n", - " 539: [457, 356, 110, 161, 595, 10, 34, 454, 587, 1],\n", - " 540: [1220, 1304, 2194, 2301, 2804, 3104, 3507, 2023, 1240, 1213],\n", - " 541: [1148, 1586, 1407, 1704, 1206, 2762, 1216, 318, 1769, 1213],\n", - " 542: [608, 2858, 527, 1208, 296, 1213, 111, 541, 923, 593],\n", - " 543: [2028, 3753, 4085, 2194, 2011, 1954, 4011, 2273, 145, 3052],\n", - " 544: [4226, 2858, 318, 32, 593, 1214, 589, 2997, 4306, 2762],\n", - " 545: [4306, 3578, 5445, 6539, 6711, 1274, 5618, 4963, 1653, 1527],\n", - " 546: [2571, 1196, 260, 1210, 1580, 1036, 480, 1198, 589, 1240],\n", - " 547: [318, 296, 165, 292, 10, 47, 34, 50, 539, 474],\n", - " 548: [2028, 2916, 2620, 2571, 733, 593, 1101, 2470, 2002, 1193],\n", - " 549: [356, 110, 480, 589, 377, 364, 500, 47, 34, 50],\n", - " 550: [1968, 1259, 1197, 1097, 1704, 2028, 1358, 1784, 593, 1293],\n", - " 551: [1200, 1197, 1270, 1193, 1234, 1222, 1242, 924, 1374, 1097],\n", - " 552: [919, 2396, 1234, 1259, 1198, 1197, 1097, 1304, 1278, 2797],\n", - " 553: [150, 588, 590, 595, 34, 527, 1, 339, 21, 225],\n", - " 554: [3247, 2712, 141, 3871, 2541, 3980, 3566, 27721, 4447, 4085],\n", - " 555: [48516,\n", - " 49272,\n", - " 54286,\n", - " 48774,\n", - " 59315,\n", - " 31658,\n", - " 51662,\n", - " 48394,\n", - " 44191,\n", - " 50872],\n", - " 556: [608, 111, 590, 555, 1357, 1079, 778, 290, 247, 468],\n", - " 557: [733, 32, 648, 36, 832, 17, 25, 805, 1210, 95],\n", - " 558: [919, 1304, 1278, 5060, 1225, 1250, 2174, 1292, 3072, 2762],\n", - " 559: [3247, 5992, 5812, 5878, 4055, 2712, 141, 1446, 1673, 6003],\n", - " 560: [103, 467, 836, 1049, 442, 2028, 377, 589, 5952, 7153],\n", - " 561: [1198, 780, 1610, 2916, 3527, 1676, 2000, 457, 1917, 2985],\n", - " 562: [1, 1036, 111, 362, 494, 376, 383, 381, 720, 218],\n", - " 563: [62, 736, 832, 802, 494, 6, 805, 1210, 95, 1393],\n", - " 564: [919, 1234, 1259, 1197, 1641, 1304, 1278, 1704, 1207, 2028],\n", - " 565: [1234, 1259, 1197, 1641, 318, 1304, 1278, 2797, 2028, 5060],\n", - " 566: [3396, 919, 912, 4333, 5955, 1198, 1097, 1022, 1010, 2014],\n", - " 567: [316, 50, 1, 733, 329, 32, 300, 780, 163, 208],\n", - " 568: [260, 1073, 832, 802, 805, 1210, 1393, 1356, 647, 1042],\n", - " 569: [150, 356, 318, 110, 480, 589, 377, 161, 595, 364],\n", - " 570: [919, 2396, 1234, 1259, 1198, 1197, 1097, 1641, 1304, 1278],\n", - " 571: [2959, 296, 5952, 7153, 4993, 6874, 1089, 32, 593, 4878],\n", - " 572: [3983, 3683, 8228, 3089, 2728, 1252, 3462, 2935, 6787, 4029],\n", - " 573: [919, 1234, 1968, 1259, 1198, 1197, 1097, 1304, 1278, 2797],\n", - " 574: [150, 356, 318, 110, 590, 161, 595, 292, 10, 592],\n", - " 575: [1, 733, 32, 648, 36, 17, 6, 25, 805, 786],\n", - " 576: [608, 1193, 1617, 912, 904, 858, 1252, 111, 541, 50],\n", - " 577: [919, 1968, 1259, 1197, 1304, 1278, 1265, 1704, 2028, 1358],\n", - " 578: [3578, 3793, 780, 1527, 2028, 2762, 4993, 5349, 4306, 2000],\n", - " 579: [1240, 1270, 1610, 110, 2916, 2028, 4993, 5349, 4306, 2000],\n", - " 580: [1387, 1220, 1304, 2194, 2301, 2804, 3104, 3507, 2023, 1219],\n", - " 581: [150, 593, 380, 590, 349, 377, 161, 165, 500, 10],\n", - " 582: [2396, 1968, 1197, 1278, 2797, 1265, 2716, 1358, 2918, 2791],\n", - " 583: [1210, 260, 2028, 1089, 1183, 223, 47, 1200, 1214, 1223],\n", - " 584: [150, 593, 318, 110, 588, 296, 590, 161, 165, 595],\n", - " 585: [1208, 1233, 1221, 1212, 1250, 1041, 1952, 1204, 29, 3435],\n", - " 586: [608, 1193, 527, 1617, 912, 1208, 904, 858, 296, 1252],\n", - " 587: [5377, 5418, 4226, 3147, 2959, 3556, 4995, 4011, 4641, 2858],\n", - " 588: [36, 50, 265, 17, 608, 300, 246, 150, 58, 272],\n", - " 589: [318, 265, 337, 300, 357, 246, 508, 58, 272, 111],\n", - " 590: [1148, 1183, 1214, 1223, 663, 1220, 32, 1222, 1407, 745],\n", - " 591: [2571, 1196, 260, 1210, 1036, 480, 1198, 589, 1240, 3793],\n", - " 592: [296, 4993, 1291, 924, 1210, 2797, 1097, 1234, 50, 1225],\n", - " 593: [377, 500, 527, 587, 1, 597, 539, 474, 733, 586],\n", - " 594: [32, 736, 141, 36, 17, 802, 494, 6, 25, 805],\n", - " 595: [2396, 1641, 318, 1265, 2028, 357, 1617, 2791, 1, 2302],\n", - " 596: [1968, 1259, 1197, 1097, 1358, 1079, 593, 1394, 1961, 1307],\n", - " 597: [919, 1234, 1968, 1259, 1198, 1197, 1097, 1641, 318, 1304],\n", - " 598: [1939, 8366, 246, 292, 1358, 2118, 7566, 41863, 3118, 6617],\n", - " 599: [1028, 1035, 1947, 2080, 1210, 1196, 1380, 914, 1270, 1333],\n", - " 600: [4799, 1079, 3265, 1298, 780, 4816, 1884, 6721, 934, 661],\n", - " 601: [590, 161, 50, 344, 32, 225, 288, 6, 350, 95],\n", - " 602: [48516,\n", - " 49272,\n", - " 54286,\n", - " 7153,\n", - " 8961,\n", - " 33794,\n", - " 5952,\n", - " 4993,\n", - " 40815,\n", - " 8368],\n", - " 603: [919, 2396, 1234, 1259, 1198, 1197, 1641, 1304, 1278, 1265],\n", - " 604: [1, 141, 17, 802, 494, 786, 1356, 708, 653, 7],\n", - " 605: [2028, 1094, 663, 1586, 1407, 593, 1923, 1704, 804, 2571],\n", - " 606: [1240, 1291, 1270, 593, 1193, 1234, 1222, 912, 1036, 924],\n", - " 607: [2959, 296, 7153, 2571, 4993, 2858, 47, 6874, 32, 2329],\n", - " 608: [5952, 4226, 7153, 2571, 4993, 2858, 47, 318, 6874, 50],\n", - " 609: [1, 597, 539, 474, 733, 586, 357, 11, 508, 6],\n", - " 610: [608, 2858, 912, 1208, 296, 1252, 1213, 111, 541, 50],\n", - " 612: [260, 608, 832, 17, 802, 25, 805, 1210, 1393, 1356],\n", - " 613: [2706, 2683, 2858, 2700, 2997, 2716, 2987, 356, 2572, 2762],\n", - " 614: [1210, 1291, 1270, 593, 1193, 1234, 1222, 912, 1036, 1242],\n", - " 616: [6874, 1089, 2329, 4878, 7438, 7361, 1214, 1196, 4306, 4973],\n", - " 617: [318, 367, 225, 185, 288, 736, 266, 553, 163, 282],\n", - " 618: [1148, 260, 1200, 1214, 1223, 663, 1, 1220, 1222, 745],\n", - " 619: [2571, 1196, 3578, 1036, 480, 1270, 3793, 780, 1610, 1291],\n", - " 620: [1617, 2858, 1237, 924, 1234, 7064, 1252, 750, 50, 9018],\n", - " 621: [5991, 3844, 3988, 3791, 4280, 6296, 3712, 7001, 4225, 2606],\n", - " 622: [2542, 3581, 103, 467, 1466, 180, 1049, 431, 1673, 555],\n", - " 623: [292, 50, 527, 733, 586, 367, 357, 225, 185, 288],\n", - " 624: [2858, 2997, 2716, 2762, 2959, 4022, 2336, 2710, 2502, 2712],\n", - " 625: [919, 2396, 608, 1234, 1968, 1259, 1198, 1197, 1097, 1641],\n", - " 627: [1196, 260, 1210, 1036, 1198, 1240, 1270, 3793, 780, 2916],\n", - " 628: [457, 593, 356, 380, 110, 480, 588, 296, 589, 377],\n", - " 629: [527, 296, 36, 318, 509, 50, 25, 356, 593, 608],\n", - " 630: [260, 608, 62, 1073, 141, 36, 832, 17, 6, 1210],\n", - " 631: [1196, 1210, 1240, 858, 1291, 1200, 1197, 1270, 1234, 1222],\n", - " 632: [1028, 919, 1947, 2080, 1282, 914, 920, 1270, 3061, 1333],\n", - " 633: [1247, 800, 924, 778, 994, 1179, 1212, 910, 2289, 1148],\n", - " 634: [1213, 507, 5464, 3869, 3646, 1242, 326, 1704, 1393, 1246],\n", - " 635: [3735, 2160, 3267, 111, 1172, 1252, 1794, 1274, 1407, 1263],\n", - " 636: [1240, 110, 2916, 1527, 1214, 3527, 1676, 5349, 4306, 2000],\n", - " 637: [7151, 337, 1704, 3181, 2771, 1148, 1641, 2336, 3157, 1242],\n", - " 638: [265, 593, 497, 58, 307, 32, 111, 235, 306, 223],\n", - " 639: [4226, 2571, 2858, 6874, 50, 1089, 2329, 4878, 7438, 7361],\n", - " 640: [296, 50, 1089, 2329, 593, 7361, 2997, 2762, 1206, 1136],\n", - " 641: [150, 356, 110, 588, 165, 364, 292, 47, 34, 50],\n", - " 642: [1198, 1641, 1207, 1358, 1784, 1293, 953, 1250, 2804, 110],\n", - " 643: [1282, 920, 1674, 955, 902, 918, 1081, 1059, 370, 1281],\n", - " 644: [1580, 480, 3793, 780, 1610, 2916, 1527, 2762, 3527, 1676],\n", - " 645: [593, 349, 50, 1, 344, 539, 339, 733, 329, 357],\n", - " 646: [150, 318, 110, 349, 589, 377, 161, 165, 364, 292],\n", - " 647: [593, 356, 318, 588, 296, 590, 161, 595, 364, 500],\n", - " 648: [527, 1208, 296, 1230, 1221, 750, 908, 1136, 1214, 922],\n", - " 649: [1089, 427, 2143, 1197, 1372, 1210, 1278, 507, 5464, 1376],\n", - " 650: [1259, 1097, 1641, 1304, 1265, 1207, 2028, 1358, 357, 1079],\n", - " 651: [1208, 904, 296, 111, 50, 593, 1230, 800, 913, 1214],\n", - " 652: [1028, 919, 1947, 1210, 1282, 1196, 1380, 1270, 3061, 1333],\n", - " 653: [5952, 1208, 509, 7153, 1221, 260, 1258, 5060, 4993, 2924],\n", - " 654: [589, 377, 364, 500, 47, 34, 50, 527, 454, 587],\n", - " 655: [593, 110, 34, 50, 527, 587, 339, 253, 586, 329],\n", - " 656: [457, 296, 590, 589, 292, 10, 316, 50, 527, 454],\n", - " 657: [3247,\n", - " 2712,\n", - " 1446,\n", - " 3871,\n", - " 2541,\n", - " 3980,\n", - " 4612,\n", - " 27721,\n", - " 4447,\n", - " 4085],\n", - " 658: [5952, 7153, 4993, 318, 50, 32, 7361, 1214, 1196, 2997],\n", - " 659: [2959, 50, 1089, 2329, 7438, 3578, 2028, 293, 1080, 1258],\n", - " 660: [5952, 4226, 7153, 4993, 6874, 1089, 2329, 4878, 7438, 7361],\n", - " 661: [349, 50, 1, 539, 474, 339, 253, 357, 11, 185],\n", - " 662: [527, 1208, 1252, 923, 1247, 1230, 1267, 1207, 903, 908],\n", - " 663: [260, 1198, 1196, 1210, 1240, 858, 1291, 1200, 1270, 1193],\n", - " 664: [2908, 3735, 2160, 1358, 3267, 111, 1252, 1794, 1274, 1407],\n", - " 665: [527, 904, 858, 1213, 50, 1233, 593, 1247, 1230, 1267],\n", - " 666: [1208, 509, 260, 5060, 2924, 593, 11, 1584, 337, 3793],\n", - " 667: [1210, 1197, 593, 1193, 1234, 1222, 912, 1036, 1242, 924],\n", - " 668: [608, 1193, 2858, 527, 1617, 912, 1208, 904, 858, 1252],\n", - " 669: [377, 595, 364, 500, 10, 47, 34, 50, 527, 454],\n", - " 670: [260, 1, 608, 32, 736, 648, 832, 17, 802, 494],\n", - " 671: [904, 1207, 800, 913, 1179, 910, 1276, 1284, 1148, 1250],\n", - " 672: [1036, 1240, 1270, 3793, 1610, 1214, 3527, 4993, 5349, 4306],\n", - " 674: [3578, 1198, 1610, 2916, 1291, 1527, 2028, 2762, 4993, 5349],\n", - " 675: [2571, 1196, 260, 1210, 1580, 1036, 1198, 1240, 1270, 3793],\n", - " 676: [457, 593, 356, 318, 110, 480, 588, 589, 377, 161],\n", - " 677: [349, 165, 595, 47, 50, 1, 339, 329, 153, 32],\n", - " 678: [1242, 2028, 904, 1203, 1278, 3114, 21, 2628, 3159, 1962],\n", - " 679: [2571, 3578, 1036, 1198, 3793, 2916, 1291, 2028, 2762, 3527],\n", - " 680: [3578, 1580, 1036, 1198, 3793, 780, 1610, 110, 2916, 1291],\n", - " 681: [48516,\n", - " 49272,\n", - " 54286,\n", - " 7153,\n", - " 8961,\n", - " 33794,\n", - " 5952,\n", - " 4993,\n", - " 40815,\n", - " 8368],\n", - " 683: [1240, 1610, 2916, 2762, 3527, 1676, 3996, 541, 457, 1917],\n", - " 684: [5377, 5418, 527, 3147, 2959, 3556, 318, 4011, 4641, 2858],\n", - " 685: [62, 832, 802, 494, 95, 1393, 786, 7, 104, 112],\n", - " 686: [1193, 527, 912, 1208, 296, 1213, 923, 1247, 1207, 1225],\n", - " 688: [318, 4878, 7361, 4973, 2502, 3996, 2028, 293, 5445, 8961],\n", - " 689: [589, 377, 165, 364, 500, 10, 47, 34, 50, 527],\n", - " 690: [608, 62, 1073, 32, 36, 832, 17, 494, 25, 805],\n", - " 691: [1234, 1259, 1097, 1304, 2797, 858, 1207, 1358, 5060, 357],\n", - " 693: [590, 349, 589, 377, 500, 592, 47, 34, 50, 1],\n", - " 694: [608, 1234, 1968, 1259, 1198, 1197, 1097, 1641, 318, 1304],\n", - " 695: [4308, 4973, 818, 100, 1035, 4014, 4246, 1293, 2114, 1073],\n", - " 696: [5991, 5377, 3844, 3988, 5303, 3203, 3791, 2571, 4280, 1210],\n", - " 697: [608, 1193, 2858, 527, 1617, 912, 1208, 904, 858, 296],\n", - " 698: [2997, 4306, 4973, 2502, 858, 293, 541, 1080, 32587, 4886],\n", - " 699: [1247, 912, 1961, 2622, 1949, 3105, 2067, 27820, 147, 3952],\n", - " 700: [110, 296, 595, 364, 500, 50, 587, 597, 434, 539],\n", - " 701: [150, 593, 356, 318, 380, 110, 480, 296, 590, 349],\n", - " 702: [2918, 3466, 3070, 2302, 2240, 1247, 8128, 2947, 858, 2973],\n", - " 703: [7234, 5147, 858, 8125, 8154, 4422, 8042, 4144, 6985, 3462],\n", - " 704: [1036, 1198, 1240, 1270, 1610, 2916, 1291, 1214, 3527, 1676],\n", - " 705: [5952, 2997, 1230, 2502, 7360, 741, 293, 111, 2542, 1196],\n", - " 706: [260, 608, 62, 1073, 36, 832, 17, 802, 6, 805],\n", - " 707: [425, 3263, 2443, 2943, 2732, 535, 932, 507, 1187, 1810],\n", - " 708: [3466, 1259, 2406, 1320, 21, 2302, 1136, 2000, 1080, 2240],\n", - " 709: [3578, 1210, 1580, 1036, 480, 1240, 1270, 3793, 780, 110],\n", - " 710: [912, 1208, 904, 1213, 111, 541, 50, 923, 1233, 593],\n", - " 711: [1090, 2997, 1625, 1230, 1732, 2502, 7360, 741, 293, 111],\n", - " 712: [50, 25, 593, 246, 515, 508, 293, 58, 307, 32],\n", - " 714: [1234, 1641, 1304, 1278, 1265, 1207, 1358, 5060, 357, 1079],\n", - " 715: [457, 593, 356, 318, 110, 480, 590, 349, 589, 377],\n", - " 716: [1193, 912, 1208, 904, 858, 1252, 111, 923, 1233, 1247],\n", - " 718: [288, 4446, 1554, 327, 5400, 3949, 1924, 2571, 2501, 4166],\n", - " 719: [724, 88, 1485, 849, 1022, 1015, 1042, 1407, 86, 1391],\n", - " 720: [110, 589, 165, 595, 10, 592, 34, 316, 50, 587],\n", - " 721: [608, 1073, 32, 141, 36, 17, 6, 25, 1210, 95],\n", - " 723: [296, 2858, 50, 32, 593, 1196, 2997, 4973, 2502, 3996],\n", - " 724: [780, 62, 736, 36, 832, 802, 494, 6, 25, 805],\n", - " 725: [296, 2028, 2916, 1196, 1210, 733, 593, 1101, 2470, 539],\n", - " 726: [919, 2396, 608, 1234, 1641, 318, 1304, 1278, 1265, 1704],\n", - " 727: [588, 349, 589, 161, 292, 10, 592, 316, 454, 587],\n", - " 728: [2959, 5952, 4226, 7153, 4993, 2858, 47, 318, 50, 32],\n", - " 729: [457, 593, 356, 318, 110, 480, 296, 590, 589, 377],\n", - " 730: [457, 593, 356, 110, 480, 589, 377, 161, 364, 292],\n", - " 731: [2396, 1234, 1198, 1641, 1304, 1278, 1207, 1358, 5060, 357],\n", - " 732: [5418, 4226, 527, 3147, 2959, 3556, 4995, 318, 4011, 4641],\n", - " 733: [2959, 296, 5952, 4226, 2858, 47, 318, 6874, 50, 1089],\n", - " 734: [150, 318, 110, 589, 161, 595, 10, 34, 316, 527],\n", - " 735: [150, 318, 588, 349, 589, 595, 10, 34, 527, 454],\n", - " 736: [2571, 1196, 260, 1210, 1580, 1036, 480, 589, 1240, 1270],\n", - " 737: [260, 608, 62, 1073, 141, 36, 832, 17, 802, 494],\n", - " 738: [608, 62, 736, 36, 17, 802, 6, 25, 805, 1393],\n", - " 739: [1961, 1196, 858, 743, 1193, 260, 1258, 1220, 3535, 4007],\n", - " 740: [1240, 858, 1291, 1200, 1197, 1270, 1193, 1234, 1222, 912],\n", - " 741: [919, 1234, 1968, 1259, 1198, 1197, 1097, 1641, 1304, 1278],\n", - " 742: [1610, 1214, 3527, 457, 1917, 3753, 1200, 1625, 2529, 1584],\n", - " 743: [457, 150, 593, 318, 110, 590, 349, 589, 161, 165],\n", - " 744: [919, 2396, 608, 1234, 1968, 1259, 1097, 1641, 1304, 1278],\n", - " 745: [7139,\n", - " 48394,\n", - " 48043,\n", - " 5956,\n", - " 147,\n", - " 49530,\n", - " 1441,\n", - " 46976,\n", - " 7361,\n", - " 229],\n", - " 746: [3983, 8228, 3089, 1252, 2935, 2871, 1234, 3504, 6787, 4029],\n", - " 748: [296, 36, 265, 17, 593, 608, 337, 515, 293, 58],\n", - " 749: [207, 158, 783, 724, 520, 784, 74, 88, 24, 276],\n", - " 750: [296, 5952, 4226, 7153, 2571, 4993, 47, 318, 50, 1089],\n", - " 751: [457, 356, 318, 380, 110, 480, 296, 589, 377, 364],\n", - " 752: [457, 593, 356, 318, 110, 480, 589, 377, 364, 292],\n", - " 753: [919, 2396, 1234, 1968, 1259, 1197, 1641, 1304, 1278, 1265],\n", - " 754: [207, 783, 724, 520, 784, 74, 88, 24, 276, 516],\n", - " 755: [25, 265, 17, 608, 515, 508, 58, 32, 111, 235],\n", - " 756: [260, 494, 1210, 1393, 1356, 104, 647, 5, 3, 788],\n", - " 757: [527, 36, 318, 509, 25, 265, 17, 593, 337, 300],\n", - " 758: [457, 356, 318, 380, 480, 296, 589, 377, 161, 165],\n", - " 759: [3578, 3793, 2762, 3527, 4993, 5349, 4306, 3996, 356, 3753],\n", - " 761: [1196, 3578, 260, 1240, 1610, 110, 2916, 2028, 3527, 1676],\n", - " 762: [32, 36, 832, 6, 805, 1210, 1393, 1356, 708, 647],\n", - " 763: [608, 1193, 2858, 1617, 912, 1208, 904, 858, 1252, 1213],\n", - " 764: [420, 173, 19, 303, 540, 421, 170, 322, 132, 159],\n", - " 765: [2396, 1968, 1259, 1198, 1197, 1641, 318, 1278, 1704, 1207],\n", - " 766: [1240, 858, 1291, 1200, 1270, 593, 1234, 1222, 912, 1242],\n", - " 767: [2959, 296, 4226, 2858, 47, 50, 1089, 32, 2329, 4878],\n", - " 768: [2959, 296, 5952, 4226, 7153, 2571, 4993, 2858, 47, 318],\n", - " 769: [293, 111, 34, 112, 16, 1357, 47, 144, 778, 247],\n", - " 770: [608, 62, 32, 36, 6, 25, 1210, 1393, 104, 112],\n", - " 771: [3578, 3793, 1527, 2762, 3527, 4993, 1676, 5349, 4306, 3996],\n", - " 772: [3334, 1279, 6867, 4226, 2150, 1300, 994, 7027, 1238, 1273],\n", - " 773: [4025, 318, 2605, 3988, 3408, 2762, 339, 3147, 2539, 3510],\n", - " 774: [2959, 296, 5952, 4226, 2571, 4993, 2858, 47, 6874, 1089],\n", - " 775: [593, 110, 292, 47, 50, 527, 253, 21, 32, 357],\n", - " 776: [919, 2396, 608, 1968, 1259, 1197, 1097, 1641, 318, 1304],\n", - " 777: [3783, 3334, 6867, 4226, 4034, 3363, 1300, 6711, 4973, 7027],\n", - " 780: [919, 1304, 1704, 1207, 5060, 1, 953, 1250, 1292, 1247],\n", - " 781: [608, 1193, 2858, 527, 912, 1208, 858, 296, 1252, 1213],\n", - " 782: [3581, 103, 467, 836, 32, 1049, 442, 3147, 2858, 2329],\n", - " 783: [2959, 296, 4226, 2858, 47, 6874, 50, 1089, 32, 2329],\n", - " 784: [1089, 7361, 4973, 1206, 2502, 293, 1200, 1080, 1258, 3949],\n", - " 785: [25, 265, 608, 337, 246, 150, 515, 508, 58, 272],\n", - " 786: [1777, 1088, 2617, 3408, 2340, 110, 1148, 2683, 2424, 2539],\n", - " 787: [919, 2396, 1234, 1198, 1197, 1641, 318, 1304, 1278, 2797],\n", - " 788: [296, 1089, 4878, 1196, 4973, 1206, 1136, 2502, 541, 1210],\n", - " 789: [589, 165, 592, 47, 34, 316, 50, 1, 733, 329],\n", - " 790: [339, 261, 105, 442, 257, 168, 277, 265, 531, 317],\n", - " 791: [608, 1193, 527, 1617, 1208, 904, 858, 296, 1252, 1213],\n", - " 792: [457, 593, 356, 110, 480, 589, 377, 595, 364, 500],\n", - " 793: [2959, 296, 2858, 47, 318, 6874, 50, 1089, 32, 2329],\n", - " 794: [1214, 1240, 1199, 924, 260, 1196, 541, 2010, 1209, 1077],\n", - " 795: [588, 349, 595, 34, 1, 434, 339, 733, 357, 11],\n", - " 796: [733, 1073, 32, 141, 36, 832, 802, 494, 6, 25],\n", - " 797: [7151, 337, 110, 3181, 2771, 4995, 3157, 1242, 2762, 1597],\n", - " 798: [48774,\n", - " 31658,\n", - " 7147,\n", - " 48394,\n", - " 50872,\n", - " 5618,\n", - " 3052,\n", - " 7099,\n", - " 6350,\n", - " 40819],\n", - " 799: [364, 47, 34, 50, 587, 1, 539, 253, 21, 32],\n", - " 800: [733, 608, 36, 832, 17, 494, 25, 805, 1210, 95],\n", - " 801: [2858, 318, 50, 4878, 2997, 2762, 1206, 858, 293, 1258],\n", - " 802: [150, 110, 588, 595, 364, 47, 34, 1, 344, 434],\n", - " 803: [1197, 1278, 1358, 1617, 1, 527, 1136, 3104, 902, 2336],\n", - " 804: [457, 150, 356, 318, 380, 480, 588, 296, 590, 349],\n", - " 805: [1580, 1036, 480, 589, 1240, 1270, 3793, 780, 2916, 1527],\n", - " 806: [589, 316, 587, 597, 539, 474, 733, 253, 586, 329],\n", - " 807: [457, 593, 356, 110, 480, 589, 377, 595, 364, 500],\n", - " 808: [296, 2916, 2620, 2571, 733, 593, 1101, 539, 2002, 1198],\n", - " 809: [912, 913, 2804, 5475, 1732, 5147, 1784, 1923, 8405, 1103],\n", - " 810: [339, 440, 587, 261, 1084, 105, 442, 257, 168, 236],\n", - " 811: [260, 608, 32, 36, 832, 802, 6, 805, 1210, 1393],\n", - " 812: [110, 296, 590, 161, 292, 47, 34, 316, 344, 253],\n", - " 813: [919, 608, 1968, 1259, 1097, 1641, 318, 2797, 1265, 1704],\n", - " 814: [919, 2396, 608, 1968, 1259, 1198, 1197, 1097, 1641, 1304],\n", - " 815: [2620, 2470, 539, 2002, 1193, 1610, 2671, 2490, 1304, 1617],\n", - " 816: [356, 380, 110, 480, 589, 377, 165, 364, 500, 47],\n", - " 817: [3263, 605, 2443, 932, 1729, 1410, 1755, 1642, 113, 1885],\n", - " 818: [296, 36, 509, 25, 265, 17, 337, 300, 357, 246],\n", - " 819: [2959, 296, 5952, 4226, 7153, 2571, 4993, 2858, 47, 318],\n", - " 820: [5400, 3949, 2501, 4166, 3728, 1367, 3203, 3998, 4975, 2083],\n", - " 821: [2571, 1777, 2581, 780, 1197, 3081, 318, 1027, 1136, 2605],\n", - " 822: [36, 17, 593, 608, 337, 515, 272, 342, 345, 32],\n", - " 823: [593, 356, 318, 590, 349, 377, 161, 165, 292, 10],\n", - " 824: [2396, 1198, 318, 1265, 1704, 2028, 1293, 1961, 1617, 1220],\n", - " 825: [296, 2916, 1196, 2620, 2571, 1210, 733, 2470, 539, 2002],\n", - " 826: [2329, 4306, 2762, 2502, 293, 32587, 4886, 8961, 3949, 1198],\n", - " 827: [593, 318, 110, 296, 589, 47, 34, 50, 527, 454],\n", - " 828: [150, 593, 356, 318, 588, 590, 161, 595, 50, 1],\n", - " 829: [608, 25, 1393, 1356, 104, 112, 58, 14, 52, 788],\n", - " 830: [919, 608, 1234, 1641, 318, 1304, 1278, 2797, 2716, 1358],\n", - " 831: [260, 1198, 1196, 1240, 858, 1291, 1200, 1197, 1270, 593],\n", - " 832: [1209, 1077, 1371, 1200, 3030, 1175, 1676, 29, 3635, 8507],\n", - " 833: [919, 1234, 1968, 1259, 1097, 1304, 1265, 1207, 5060, 357],\n", - " 834: [919, 1234, 1259, 1198, 1097, 1304, 1278, 2797, 1704, 2716],\n", - " 835: [527, 36, 25, 265, 17, 608, 337, 246, 150, 497],\n", - " 836: [1073, 141, 36, 802, 494, 25, 805, 1210, 1393, 708],\n", - " 837: [1028, 919, 1035, 1947, 2080, 1282, 1196, 1380, 914, 920],\n", - " 838: [8366,\n", - " 246,\n", - " 41863,\n", - " 3118,\n", - " 6617,\n", - " 42738,\n", - " 5293,\n", - " 4723,\n", - " 40412,\n", - " 501],\n", - " 839: [1204, 1207, 2858, 1, 3751, 97, 1732, 1784, 47, 1923],\n", - " 840: [1259, 318, 1704, 1358, 5060, 1784, 3039, 2804, 1271, 2762],\n", - " 841: [1580, 1036, 480, 1198, 1610, 110, 2916, 1291, 2028, 2762],\n", - " 842: [457, 593, 356, 318, 380, 480, 296, 349, 589, 377],\n", - " 843: [919, 2396, 608, 1968, 1097, 1641, 318, 2797, 1704, 2716],\n", - " 844: [1527, 2028, 4993, 1676, 5349, 2628, 4306, 3996, 541, 1917],\n", - " 846: [34, 1, 733, 225, 288, 780, 236, 252, 282, 1036],\n", - " 847: [7151, 337, 3181, 2771, 1148, 4995, 1641, 2336, 3157, 1242],\n", - " 848: [457, 150, 593, 356, 318, 380, 110, 480, 588, 349],\n", - " 849: [1028, 919, 1035, 1947, 2080, 1210, 1282, 1380, 914, 920],\n", - " 851: [608, 1968, 1259, 1641, 318, 1304, 1278, 2797, 1207, 2028],\n", - " 852: [150, 110, 165, 292, 500, 10, 316, 50, 527, 587],\n", - " 853: [260, 832, 17, 802, 25, 805, 1210, 1393, 1356, 647],\n", - " 854: [1193, 1617, 904, 1252, 1213, 111, 541, 50, 923, 1233],\n", - " 855: [1193, 2858, 527, 912, 1208, 904, 858, 1252, 111, 541],\n", - " 856: [4799, 1079, 2858, 3265, 1298, 780, 4816, 223, 1884, 2959],\n", - " 857: [260, 1210, 1198, 3793, 780, 2916, 1291, 2762, 1676, 5349],\n", - " 859: [2858, 47, 318, 6874, 50, 32, 2329, 4878, 7438, 7361],\n", - " 860: [420, 173, 19, 303, 540, 421, 170, 318, 322, 132],\n", - " 861: [7234, 5147, 8125, 8154, 4422, 8042, 4144, 6985, 3462, 2947],\n", - " 862: [593, 110, 590, 349, 589, 161, 592, 50, 1, 733],\n", - " 863: [919, 2396, 1234, 1968, 1259, 1198, 1197, 1097, 1304, 1278],\n", - " 864: [1485, 17, 1265, 1544, 6538, 216, 798, 32, 1580, 39],\n", - " 865: [5952, 4993, 6874, 32, 2329, 4878, 7438, 7361, 1214, 589],\n", - " 866: [1193, 2858, 1617, 912, 904, 1252, 541, 923, 1233, 1247],\n", - " 867: [1265, 1358, 5060, 357, 593, 1271, 2762, 2291, 902, 1193],\n", - " 868: [260, 2028, 1089, 223, 1200, 1094, 1214, 1223, 663, 1586],\n", - " 869: [1617, 2858, 1237, 924, 1234, 7064, 1252, 858, 750, 9018],\n", - " 870: [36, 50, 17, 608, 497, 515, 508, 58, 272, 307],\n", - " 871: [2858, 1617, 1233, 800, 2396, 994, 1212, 910, 2289, 1284],\n", - " 872: [608, 2858, 527, 1617, 912, 904, 858, 296, 1213, 111],\n", - " 873: [1196, 3578, 260, 1210, 1036, 1198, 1240, 1270, 3793, 780],\n", - " 874: [4226, 318, 50, 1089, 32, 4878, 1214, 1206, 858, 293],\n", - " 875: [50, 25, 608, 337, 246, 293, 58, 342, 32, 111],\n", - " 876: [150, 110, 588, 296, 349, 161, 595, 364, 292, 10],\n", - " 878: [2858, 1617, 1233, 2396, 994, 1212, 910, 2289, 1276, 1148],\n", - " 879: [919, 1259, 1197, 1097, 1641, 318, 1304, 1278, 2797, 1265],\n", - " 881: [349, 1, 434, 733, 21, 357, 300, 780, 368, 163],\n", - " 882: [733, 608, 1073, 36, 832, 17, 802, 494, 6, 805],\n", - " 883: [2959, 296, 5952, 4226, 7153, 2571, 4993, 2858, 47, 318],\n", - " 884: [260, 780, 733, 608, 36, 832, 802, 494, 6, 25],\n", - " 885: [1234, 1278, 5060, 357, 1394, 1617, 2804, 1292, 1271, 2324],\n", - " 886: [919, 1259, 1197, 1304, 1278, 1207, 5060, 2791, 1, 953],\n", - " 887: [919, 2396, 608, 1234, 1968, 1259, 1198, 1197, 1097, 1304],\n", - " 888: [1208, 3996, 7153, 1221, 1213, 260, 5060, 4993, 2924, 2858],\n", - " 889: [457, 593, 356, 318, 480, 589, 377, 364, 500, 527],\n", - " 890: [1196, 1198, 1270, 1610, 2916, 1214, 4993, 5349, 4306, 541],\n", - " 891: [6874, 1089, 2329, 593, 7438, 7361, 1206, 1136, 2502, 858],\n", - " 892: [509, 265, 17, 337, 357, 497, 515, 58, 272, 307],\n", - " 893: [2959, 296, 4226, 7153, 4993, 2858, 47, 6874, 50, 32],\n", - " 894: [296, 2028, 2916, 1196, 2620, 2571, 1210, 733, 593, 1101],\n", - " 895: [457, 593, 318, 110, 480, 349, 165, 292, 47, 34],\n", - " 896: [1210, 2028, 1094, 663, 1586, 1407, 1923, 1704, 804, 2571],\n", - " 897: [457, 150, 356, 318, 480, 588, 349, 589, 377, 161],\n", - " 898: [3578, 1036, 480, 1198, 1240, 3793, 1610, 110, 1291, 2028],\n", - " 899: [457, 593, 356, 318, 110, 480, 588, 349, 589, 377],\n", - " 900: [708, 58, 1042, 3, 628, 79, 1405, 135, 762, 140],\n", - " 901: [2959, 296, 5952, 4226, 7153, 4993, 2858, 47, 6874, 50],\n", - " 902: [32, 4878, 2997, 4973, 1206, 2502, 293, 541, 6377, 3949],\n", - " 903: [608, 1073, 36, 832, 17, 6, 25, 805, 1210, 1393],\n", - " 904: [50, 25, 265, 17, 593, 150, 497, 515, 508, 293],\n", - " 905: [919, 2396, 1234, 1097, 1304, 1278, 858, 1207, 1358, 5060],\n", - " 906: [919, 1234, 1198, 1097, 1641, 318, 1304, 2797, 1265, 2716],\n", - " 907: [588, 161, 595, 292, 34, 316, 587, 1, 434, 339],\n", - " 908: [3578, 3793, 2762, 3527, 4993, 5349, 4306, 3996, 3753, 1],\n", - " 909: [1196, 3578, 260, 1210, 1580, 1036, 480, 589, 1270, 1610],\n", - " 910: [2571, 32, 4878, 7361, 589, 1196, 2997, 2762, 4973, 1206],\n", - " 911: [2080, 920, 1270, 3061, 1333, 1247, 1022, 955, 899, 902],\n", - " 912: [2571, 3578, 260, 1210, 1580, 1036, 1198, 589, 1240, 3793],\n", - " 913: [2396, 608, 1234, 1968, 1197, 1097, 1641, 318, 1304, 1278],\n", - " 914: [34271,\n", - " 2023,\n", - " 6281,\n", - " 42725,\n", - " 43936,\n", - " 6887,\n", - " 48304,\n", - " 8117,\n", - " 32029,\n", - " 5373],\n", - " 915: [919, 1198, 1641, 318, 1304, 1704, 858, 1207, 1293, 1961],\n", - " 916: [5952, 1208, 3996, 7153, 1221, 1213, 260, 1258, 5060, 2924],\n", - " 917: [260, 32, 802, 494, 6, 805, 1210, 1393, 786, 1356],\n", - " 918: [608, 32, 141, 36, 17, 6, 25, 805, 112, 58],\n", - " 919: [1196, 3578, 1036, 1198, 589, 1270, 3793, 1214, 2762, 4993],\n", - " 920: [5952, 1208, 3996, 509, 7153, 1213, 1258, 4993, 2924, 2858],\n", - " 921: [919, 4333, 5955, 1198, 1022, 1010, 2396, 588, 2078, 3053],\n", - " 922: [5812, 5878, 4055, 2712, 1446, 1673, 6003, 3871, 4903, 4612],\n", - " 923: [260, 62, 32, 736, 648, 36, 832, 17, 802, 25],\n", - " 924: [288, 4446, 1554, 327, 5400, 3949, 1924, 2571, 4166, 3728],\n", - " 925: [2396, 608, 1259, 1097, 1641, 2797, 2716, 1207, 2028, 357],\n", - " 926: [5952, 3996, 509, 1221, 1213, 260, 5060, 4993, 2924, 2858],\n", - " 927: [260, 1196, 1240, 858, 1291, 1200, 1270, 593, 1193, 1234],\n", - " 928: [7153, 6874, 1214, 1206, 2502, 858, 2028, 1200, 1258, 32587],\n", - " 930: [440, 261, 1084, 442, 277, 34, 262, 1035, 222, 1097],\n", - " 931: [260, 1, 608, 62, 141, 648, 36, 832, 17, 802],\n", - " 932: [150, 356, 318, 110, 588, 296, 590, 349, 161, 165],\n", - " 933: [2396, 608, 1234, 1197, 1641, 1304, 2797, 1265, 858, 1207],\n", - " 934: [1247, 318, 1961, 1949, 3105, 2067, 27820, 147, 3952, 62],\n", - " 935: [370, 256, 44, 485, 442, 7153, 315, 279, 4993, 95],\n", - " 936: [318, 1258, 1213, 750, 1274, 5618, 924, 2716, 1732, 1653],\n", - " 937: [296, 4226, 2571, 4993, 2858, 6874, 1089, 32, 593, 7438],\n", - " 938: [356, 110, 480, 588, 589, 377, 165, 595, 364, 500],\n", - " 939: [62, 17, 802, 494, 25, 805, 1210, 1393, 786, 1356],\n", - " 940: [1196, 3578, 1210, 1580, 1036, 480, 1198, 589, 780, 1610],\n", - " 941: [1333, 1939, 8366, 1215, 1214, 292, 1321, 1358, 1219, 2118],\n", - " 942: [150, 356, 110, 480, 590, 589, 377, 161, 364, 500],\n", - " 943: [1961, 1196, 457, 858, 356, 1610, 743, 260, 1220, 2396],\n", - " 945: [780, 608, 648, 36, 832, 6, 805, 1210, 95, 708],\n", - " 946: [3578, 1580, 1036, 1270, 3793, 780, 2028, 2762, 3527, 4993],\n", - " 947: [1028, 1947, 2080, 1282, 1380, 914, 920, 3061, 1333, 594],\n", - " 948: [919, 1234, 1259, 1197, 1097, 1304, 1278, 2797, 2716, 1207],\n", - " 949: [818, 663, 100, 1120, 4246, 1293, 43, 469, 3553, 1411],\n", - " 950: [1028, 919, 1035, 1947, 2080, 1282, 1380, 914, 920, 1270],\n", - " 951: [260, 802, 25, 805, 1210, 1393, 1356, 647, 58, 14],\n", - " 952: [1, 608, 32, 141, 36, 6, 25, 1393, 786, 1356],\n", - " 953: [3466, 1240, 1320, 111, 2240, 1247, 923, 8128, 750, 1376],\n", - " 954: [1036, 1198, 1240, 1270, 1610, 110, 1291, 1527, 4993, 1676],\n", - " 955: [207, 783, 724, 520, 784, 74, 88, 24, 276, 516],\n", - " 956: [316, 1, 733, 11, 508, 6, 780, 736, 368, 141],\n", - " 957: [2396, 1234, 1641, 2797, 1704, 5060, 357, 1293, 2918, 2791],\n", - " 958: [1777, 2581, 4025, 1197, 3081, 1027, 1136, 2605, 1393, 3988],\n", - " 960: [36, 318, 509, 50, 25, 265, 17, 337, 246, 515],\n", - " 961: [608, 912, 1208, 904, 858, 296, 1252, 111, 541, 50],\n", - " 962: [1584, 2571, 1777, 2581, 4025, 780, 1197, 3081, 318, 1027],\n", - " 963: [2542, 3581, 103, 467, 1466, 180, 836, 32, 1049, 3147],\n", - " 964: [5952, 7153, 4993, 2858, 6874, 50, 32, 4878, 7438, 7361],\n", - " 965: [527, 509, 25, 17, 356, 337, 357, 497, 515, 508],\n", - " 966: [47, 318, 6874, 50, 2329, 593, 7361, 4306, 2762, 3578],\n", - " 967: [1196, 3578, 260, 1210, 1580, 1036, 480, 1198, 589, 1240],\n", - " 968: [356, 380, 588, 589, 377, 161, 595, 364, 500, 10],\n", - " 969: [260, 608, 648, 832, 802, 494, 6, 805, 1210, 95],\n", - " 970: [457, 356, 480, 588, 349, 589, 377, 161, 165, 595],\n", - " 971: [1234, 1259, 1304, 1207, 1358, 5060, 1293, 1961, 1307, 953],\n", - " 972: [919, 1234, 1198, 1197, 1304, 1278, 2797, 2716, 5060, 1079],\n", - " 973: [1409,\n", - " 1407,\n", - " 34271,\n", - " 2023,\n", - " 6281,\n", - " 1050,\n", - " 849,\n", - " 1049,\n", - " 1447,\n", - " 42725],\n", - " 974: [207, 158, 783, 724, 520, 784, 74, 88, 24, 276],\n", - " 975: [527, 36, 318, 509, 25, 265, 17, 356, 593, 337],\n", - " 976: [457, 593, 356, 110, 480, 589, 377, 364, 292, 500],\n", - " 977: [1233, 2396, 1219, 778, 994, 1212, 1284, 1394, 2599, 2997],\n", - " 978: [1035, 2080, 1210, 1282, 1196, 1380, 914, 920, 1270, 1333],\n", - " 979: [1259, 1220, 427, 2143, 1197, 1213, 1372, 1278, 507, 1376],\n", - " 980: [5952, 2571, 47, 318, 6874, 32, 2329, 589, 1196, 2997],\n", - " 982: [733, 62, 36, 832, 17, 802, 494, 6, 805, 1210],\n", - " 983: [1252, 2583, 3091, 3504, 4427, 6170, 3812, 2826, 3196, 2644],\n", - " 984: [1234, 1968, 1198, 1197, 1097, 1641, 1304, 1278, 1358, 5060],\n", - " 985: [48516,\n", - " 49272,\n", - " 33794,\n", - " 48774,\n", - " 59315,\n", - " 51662,\n", - " 6539,\n", - " 4963,\n", - " 1291,\n", - " 48780],\n", - " 986: [595, 364, 292, 10, 47, 34, 1, 733, 21, 329],\n", - " 987: [457, 593, 356, 110, 480, 588, 349, 589, 377, 364],\n", - " 988: [527, 1230, 1221, 1207, 908, 2396, 1179, 1212, 910, 1276],\n", - " 989: [1208, 111, 923, 593, 1247, 1230, 1267, 1221, 1207, 903],\n", - " 990: [110, 349, 161, 595, 292, 500, 47, 34, 316, 1],\n", - " 991: [608, 1193, 2858, 1617, 1208, 904, 858, 296, 1252, 1213],\n", - " 992: [2396, 608, 1234, 1259, 1198, 1197, 1641, 1304, 1278, 1704],\n", - " 993: [2571, 260, 1580, 1036, 1198, 589, 1240, 1270, 780, 1610],\n", - " 994: [48516,\n", - " 49272,\n", - " 54286,\n", - " 7153,\n", - " 8961,\n", - " 33794,\n", - " 5952,\n", - " 40815,\n", - " 8368,\n", - " 5349],\n", - " 995: [1090, 1732, 2502, 7360, 741, 293, 111, 2542, 1196, 296],\n", - " 996: [480, 588, 589, 595, 364, 592, 316, 50, 587, 1],\n", - " 997: [260, 608, 832, 802, 805, 1210, 1393, 1356, 7, 104],\n", - " 998: [919, 2396, 1234, 1968, 1198, 1197, 1641, 318, 1304, 1278],\n", - " 999: [1203, 164, 3005, 3654, 2762, 910, 1912, 4031, 2986, 2858],\n", - " 1001: [593, 318, 380, 296, 590, 349, 165, 292, 47, 34],\n", - " 1002: [207, 158, 783, 724, 784, 74, 88, 24, 276, 516],\n", - " 1003: [105, 425, 1207, 1354, 261, 3263, 605, 2443, 1465, 1624],\n", - " 1004: [161, 527, 474, 339, 586, 21, 225, 11, 288, 508],\n", - " 1005: [590, 34, 316, 50, 253, 32, 11, 231, 288, 508],\n", - " 1006: [296, 36, 50, 25, 17, 356, 593, 300, 357, 246],\n", - " 1007: [608, 1193, 2858, 527, 1617, 912, 1208, 904, 858, 296],\n", - " 1008: [1234,\n", - " 1641,\n", - " 1304,\n", - " 1278,\n", - " 2797,\n", - " 2028,\n", - " 1358,\n", - " 5060,\n", - " 1079,\n", - " 1784],\n", - " 1009: [1584,\n", - " 1777,\n", - " 2581,\n", - " 1197,\n", - " 3081,\n", - " 1027,\n", - " 1136,\n", - " 2605,\n", - " 1393,\n", - " 3988],\n", - " 1011: [2396, 1234, 1259, 1197, 318, 2797, 1704, 2716, 858, 1358],\n", - " 1012: [5952, 1208, 3996, 509, 7153, 1221, 1213, 260, 1258, 5060],\n", - " 1013: [1208, 1213, 1258, 5060, 2924, 2858, 11, 2997, 1584, 3793],\n", - " 1014: [1193, 912, 1208, 1213, 111, 50, 923, 1230, 1221, 903],\n", - " 1015: [608, 1193, 527, 912, 1208, 858, 296, 1213, 111, 541],\n", - " 1016: [1617, 912, 1208, 904, 858, 1252, 541, 50, 1233, 593],\n", - " 1017: [2959, 296, 4226, 2571, 2858, 47, 318, 6874, 50, 1089],\n", - " 1018: [4446,\n", - " 1554,\n", - " 5400,\n", - " 2501,\n", - " 4166,\n", - " 3728,\n", - " 3203,\n", - " 3998,\n", - " 1243,\n", - " 1610],\n", - " 1019: [62, 1073, 32, 36, 832, 17, 802, 494, 6, 25],\n", - " 1020: [919, 2396, 1259, 1198, 1097, 1641, 318, 2797, 1704, 2716],\n", - " 1021: [608, 1234, 1968, 1097, 1641, 318, 1278, 2797, 1265, 1704],\n", - " 1022: [260, 1198, 1196, 1240, 858, 1291, 1197, 1270, 593, 1193],\n", - " 1023: [1210, 1580, 1036, 589, 1240, 1270, 3793, 780, 1610, 2916],\n", - " 1025: [1234, 1968, 1259, 1097, 2797, 1704, 2716, 1358, 357, 1079],\n", - " 1026: [1234, 1259, 1641, 318, 1304, 2797, 1265, 858, 1207, 1358],\n", - " 1027: [7153,\n", - " 8961,\n", - " 33794,\n", - " 5952,\n", - " 4993,\n", - " 40815,\n", - " 8368,\n", - " 59315,\n", - " 31658,\n", - " 4306],\n", - " 1028: [318, 110, 588, 589, 377, 595, 364, 500, 47, 34],\n", - " 1029: [356, 110, 480, 349, 589, 377, 161, 500, 527, 587],\n", - " 1030: [3396,\n", - " 4333,\n", - " 1097,\n", - " 1022,\n", - " 1010,\n", - " 2014,\n", - " 3114,\n", - " 2396,\n", - " 2081,\n", - " 1028],\n", - " 1031: [457, 150, 356, 318, 380, 588, 296, 349, 589, 377],\n", - " 1032: [260, 1, 733, 608, 62, 32, 141, 36, 832, 17],\n", - " 1033: [2396, 608, 1234, 1259, 1641, 1278, 1265, 1704, 858, 5060],\n", - " 1034: [2542, 3581, 103, 467, 1466, 180, 836, 32, 1049, 442],\n", - " 1035: [50, 2329, 4878, 7361, 1214, 1196, 2997, 4973, 1206, 2502],\n", - " 1037: [457, 318, 380, 110, 588, 590, 349, 589, 161, 165],\n", - " 1038: [74, 276, 61, 653, 748, 1485, 491, 3, 788, 694],\n", - " 1039: [1183, 1200, 1094, 1214, 663, 1586, 1, 1220, 32, 1222],\n", - " 1040: [1028, 919, 1035, 1947, 2080, 1282, 1196, 1380, 914, 920],\n", - " 1041: [32, 4306, 1206, 1136, 2502, 293, 541, 6377, 1080, 1258],\n", - " 1043: [260, 733, 608, 1073, 832, 802, 805, 1210, 1393, 786],\n", - " 1044: [608, 62, 141, 36, 832, 17, 494, 6, 805, 1356],\n", - " 1045: [5952, 1214, 4973, 3996, 1200, 1080, 3949, 6711, 778, 2542],\n", - " 1046: [318, 110, 588, 589, 377, 161, 364, 292, 500, 10],\n", - " 1047: [5377,\n", - " 5418,\n", - " 8665,\n", - " 1961,\n", - " 1193,\n", - " 2023,\n", - " 4148,\n", - " 593,\n", - " 1704,\n", - " 30707],\n", - " 1048: [1089, 4878, 7361, 1214, 4973, 1136, 3578, 3996, 858, 541],\n", - " 1050: [34, 1, 733, 11, 780, 266, 236, 39, 282, 1036],\n", - " 1051: [608, 32, 36, 832, 494, 6, 25, 805, 1210, 95],\n", - " 1052: [2571, 1196, 260, 1210, 1580, 1036, 480, 1198, 589, 1240],\n", - " 1053: [480, 780, 2028, 4993, 1676, 2628, 2000, 3996, 457, 1917]})" - ] - }, - "execution_count": 46, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from collections import defaultdict\n", - "\n", - "# 각 사용자에 대한 추천 리스트를 작성한다\n", - "# 각 사용자의 소속 확률이 가장 높은 토픽을 얻고, 해당 토픽 안에서 확률이 높은 아이템을 저장해 나간다\n", - "\n", - "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", - "\n", - "pred_user2items = defaultdict(list)\n", - "for i, (user_id, data) in enumerate(movielens_train_high_rating.groupby(\"user_id\")):\n", - " evaluated_movie_ids = user_evaluated_movies[user_id]\n", - " # 사용자의 소속 확률이 가장 높은 토픽을 얻는다\n", - " user_topic = sorted(lda_topics[i], key=lambda x: -x[1])[0][0]\n", - " # 해당 토픽 안에서 확률이 높은 아이템을 얻는다\n", - " topic_movies = lda_model.get_topic_terms(user_topic, topn=len(movies))\n", - "\n", - " for token_id, score in topic_movies:\n", - " movie_id = int(common_dictionary.id2token[token_id])\n", - " if movie_id not in evaluated_movie_ids:\n", - " pred_user2items[user_id].append(movie_id)\n", - " if len(pred_user2items[user_id]) == 10:\n", - " break\n", - "\n", - "pred_user2items" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "id": "1701bd43", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "8381 2 1210 4.0 868245644 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 " - ] - }, - "execution_count": 48, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", - "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "id": "16eddf46", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
11731198Raiders of the Lost Ark (Indiana Jones and the...[Action, Adventure][egypt, lucas, seen more than once, dvd collec...
12121240Terminator, The (1984)[Action, Sci-Fi, Thriller][arnold schwarzenegger, sci-fi, time travel, d...
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n", - "1173 1198 Raiders of the Lost Ark (Indiana Jones and the... \n", - "1212 1240 Terminator, The (1984) \n", - "\n", - " genre \\\n", - "1171 [Action, Adventure, Sci-Fi] \n", - "1173 [Action, Adventure] \n", - "1212 [Action, Sci-Fi, Thriller] \n", - "\n", - " tag \n", - "1171 [lucas, george lucas, george lucas, gfei own i... \n", - "1173 [egypt, lucas, seen more than once, dvd collec... \n", - "1212 [arnold schwarzenegger, sci-fi, time travel, d... " - ] - }, - "execution_count": 49, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2에 대한 추천(1198, 1196, 1240)\n", - "movies[movies.movie_id.isin([1198, 1196, 1240])]" - ] - } - ], - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","id":"d45967ea","metadata":{"id":"d45967ea"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/LDA_collaboration.ipynb)"]},{"cell_type":"markdown","id":"942a9897","metadata":{"id":"942a9897"},"source":["# Latent Dirichlet Allocation (LDA)를 행동 데이터에 적용"]},{"cell_type":"code","execution_count":1,"id":"b8cb8f0b","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"b8cb8f0b","executionInfo":{"status":"ok","timestamp":1672118267114,"user_tz":-540,"elapsed":4818,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"ca848f2f-0377-4da9-e770-5b4f7e92d5b6"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:15:58-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 63.6MB/s in 1.0s \n","\n","2022-12-27 05:15:59 (63.6 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"6769fb75","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"6769fb75","executionInfo":{"status":"ok","timestamp":1672118333071,"user_tz":-540,"elapsed":65965,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"5ab1c72d-1ab3-46bb-ce4e-9463a2c6e6a2"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"f650f9d6","metadata":{"id":"f650f9d6","executionInfo":{"status":"ok","timestamp":1672118333072,"user_tz":-540,"elapsed":31,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 인자 수\n","factors = 50\n","# 에폭 수\n","n_epochs = 30"]},{"cell_type":"code","execution_count":4,"id":"f703bf73","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"f703bf73","executionInfo":{"status":"ok","timestamp":1672118340381,"user_tz":-540,"elapsed":7337,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"47c9ad1a-7786-4285-ecbb-b86ca5cf30de"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting gensim==4.0.1\n"," Downloading gensim-4.0.1-cp38-cp38-manylinux1_x86_64.whl (23.9 MB)\n","\u001b[K |████████████████████████████████| 23.9 MB 1.6 MB/s \n","\u001b[?25hRequirement already satisfied: numpy>=1.11.3 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.21.6)\n","Requirement already satisfied: scipy>=0.18.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.7.3)\n","Requirement already satisfied: smart-open>=1.8.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (6.3.0)\n","Installing collected packages: gensim\n"," Attempting uninstall: gensim\n"," Found existing installation: gensim 3.6.0\n"," Uninstalling gensim-3.6.0:\n"," Successfully uninstalled gensim-3.6.0\n","Successfully installed gensim-4.0.1\n"]}],"source":["!pip install gensim==4.0.1"]},{"cell_type":"code","execution_count":5,"id":"d5348432","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"d5348432","executionInfo":{"status":"ok","timestamp":1672118342033,"user_tz":-540,"elapsed":1656,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"3c8d0dc9-8126-4750-d870-08019b81e513"},"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.8/dist-packages/gensim/similarities/__init__.py:15: UserWarning: The gensim.similarities.levenshtein submodule is disabled, because the optional Levenshtein package is unavailable. Install Levenhstein (e.g. `pip install python-Levenshtein`) to suppress this warning.\n"," warnings.warn(msg)\n"]}],"source":["from gensim.corpora.dictionary import Dictionary\n","\n","# LDA 입력으로 사용할 데이터를 작성한다\n","lda_data = []\n","movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n","for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n"," lda_data.append(data[\"movie_id\"].apply(str).tolist())\n","\n","common_dictionary = Dictionary(lda_data)\n","common_corpus = [common_dictionary.doc2bow(text) for text in lda_data]\n"]},{"cell_type":"code","execution_count":6,"id":"d0f0e231","metadata":{"id":"d0f0e231","executionInfo":{"status":"ok","timestamp":1672118435326,"user_tz":-540,"elapsed":93308,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["import gensim\n","lda_model = gensim.models.LdaModel(\n"," common_corpus, id2word=common_dictionary, num_topics=factors, passes=n_epochs\n",")"]},{"cell_type":"code","execution_count":7,"id":"d568841a","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"d568841a","executionInfo":{"status":"ok","timestamp":1672118435327,"user_tz":-540,"elapsed":41,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"cfc9c430-1bea-4f52-d193-73e15a1ac543"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[(2, 0.13143347), (42, 0.81523174)]"]},"metadata":{},"execution_count":7}],"source":["# 각 사용자의 소속 토픽이 저장된다\n","lda_topics = lda_model[common_corpus]\n","\n","# 예: 어떤 사용자의 소속 토픽\n","lda_topics[0]"]},{"cell_type":"code","execution_count":8,"id":"aa768039","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"aa768039","executionInfo":{"status":"ok","timestamp":1672118435327,"user_tz":-540,"elapsed":33,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"00099179-91eb-4fd9-80b6-33b281b38e6c"},"outputs":[{"output_type":"stream","name":"stdout","text":["movie_id=2858, title=American Beauty (1999), score=0.014902905561029911\n","movie_id=4022, title=Cast Away (2000), score=0.013141673058271408\n","movie_id=356, title=Forrest Gump (1994), score=0.009344562888145447\n","movie_id=1625, title=Game, The (1997), score=0.009039949625730515\n","movie_id=3408, title=Erin Brockovich (2000), score=0.008023954927921295\n","movie_id=1610, title=Hunt for Red October, The (1990), score=0.007280151825398207\n","movie_id=2762, title=Sixth Sense, The (1999), score=0.007244058884680271\n","movie_id=1833, title=Mercury Rising (1998), score=0.007027590647339821\n","movie_id=50, title=Usual Suspects, The (1995), score=0.00636146729812026\n","movie_id=2706, title=American Pie (1999), score=0.006130032241344452\n"]}],"source":["# topic0인 영화 목록\n","for token_id, score in lda_model.get_topic_terms(0, topn=10):\n"," movie_id = int(common_dictionary.id2token[token_id])\n"," title = movies[movies.movie_id == movie_id].title.tolist()[0]\n"," print(f'movie_id={movie_id}, title={title}, score={score}')"]},{"cell_type":"code","execution_count":9,"id":"9eb2910f","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9eb2910f","executionInfo":{"status":"ok","timestamp":1672118435328,"user_tz":-540,"elapsed":29,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"5ecbcb33-daaa-422c-a155-abdcc16844d3"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[(0, 0.010000083),\n"," (1, 0.010000083),\n"," (2, 0.010000083),\n"," (3, 0.010000083),\n"," (4, 0.010000083),\n"," (5, 0.010000083),\n"," (6, 0.010000083),\n"," (7, 0.010000083),\n"," (8, 0.010000083),\n"," (9, 0.010000083),\n"," (10, 0.010000083),\n"," (11, 0.010000083),\n"," (12, 0.010000083),\n"," (13, 0.010000083),\n"," (14, 0.010000083),\n"," (15, 0.010000083),\n"," (16, 0.010000083),\n"," (17, 0.010000083),\n"," (18, 0.010000083),\n"," (19, 0.010000083),\n"," (20, 0.010000083),\n"," (21, 0.010000083),\n"," (22, 0.010000083),\n"," (23, 0.010000083),\n"," (24, 0.010000083),\n"," (25, 0.010000083),\n"," (26, 0.010000083),\n"," (27, 0.010000083),\n"," (28, 0.010000083),\n"," (29, 0.010000083),\n"," (30, 0.010000083),\n"," (31, 0.010000083),\n"," (32, 0.010000083),\n"," (33, 0.010000083),\n"," (34, 0.010000083),\n"," (35, 0.010000083),\n"," (36, 0.010000083),\n"," (37, 0.010000083),\n"," (38, 0.010000083),\n"," (39, 0.010000083),\n"," (40, 0.010000083),\n"," (41, 0.50999594),\n"," (42, 0.010000083),\n"," (43, 0.010000083),\n"," (44, 0.010000083),\n"," (45, 0.010000083),\n"," (46, 0.010000083),\n"," (47, 0.010000083),\n"," (48, 0.010000083),\n"," (49, 0.010000083)]"]},"metadata":{},"execution_count":9}],"source":["# 스타워즈/에피소드 5(movie_id=1196)의 토픽(각 토픽에 소속될 확률)\n","lda_model[common_dictionary.doc2bow([\"1196\"])]"]},{"cell_type":"code","execution_count":10,"id":"8de0ac42","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"8de0ac42","executionInfo":{"status":"ok","timestamp":1672118441267,"user_tz":-540,"elapsed":5964,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"325da666-9b8b-43b7-ce14-dc81474631fd"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {1: [457, 380, 593, 150, 349, 590, 318, 165, 110, 296],\n"," 2: [457, 380, 593, 150, 480, 349, 589, 318, 165, 588],\n"," 3: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 356, 2762, 2273],\n"," 4: [457, 593, 318, 296, 356, 10, 47, 50, 1, 474],\n"," 5: [1193, 904, 1252, 750, 1208, 908, 913, 1136, 260, 1304],\n"," 6: [1240, 1210, 589, 1200, 1214, 541, 593, 1374, 1356, 1617],\n"," 7: [1193, 858, 750, 1208, 527, 111, 1247, 1221, 1136, 1206],\n"," 8: [3481, 4034, 4973, 1258, 2692, 7361, 2502, 5902, 296, 4262],\n"," 9: [260, 1196, 1240, 1210, 589, 1200, 2571, 1198, 1214, 541],\n"," 10: [1465, 3082, 1610, 474, 2804, 4709, 3469, 2197, 1792, 2989],\n"," 11: [1307, 1197, 1079, 1234, 1278, 1220, 2797, 1968, 1259, 2791],\n"," 12: [720, 1265, 852, 2891, 3254, 4448, 4002, 608, 4223, 4963],\n"," 13: [2571, 4963, 3147, 5349, 6539, 356, 2762, 2273, 6377, 4701],\n"," 14: [2571, 4993, 4963, 3147, 3578, 1580, 356, 2762, 2273, 4701],\n"," 16: [589, 2571, 1198, 2028, 593, 1374, 1356, 1617, 1291, 858],\n"," 17: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 6539, 356, 2762],\n"," 18: [5952, 4993, 7153, 4226, 50, 858, 2329, 1200, 6874, 4886],\n"," 19: [1028, 2797, 2406, 1968, 2791, 2100, 3039, 1784, 1663, 2918],\n"," 22: [457, 590, 318, 10, 434, 1, 474, 204, 442, 733],\n"," 23: [597, 150, 356, 587, 34, 508, 357, 11, 440, 590],\n"," 24: [141, 36, 95, 25, 653, 1393, 58, 52, 14, 783],\n"," 26: [593, 480, 318, 296, 356, 595, 364, 253, 231, 50],\n"," 27: [1, 260, 62, 141, 832, 36, 25, 6, 17, 104],\n"," 28: [1307, 1079, 1234, 1220, 1028, 2797, 1259, 2791, 1380, 914],\n"," 29: [2572, 2683, 2762, 2605, 2706, 2581, 3081, 1210, 1777, 2485],\n"," 30: [587, 508, 457, 350, 236, 474, 497, 39, 349, 21],\n"," 33: [260, 733, 494, 832, 25, 802, 104, 805, 653, 1210],\n"," 34: [2572, 3081, 2716, 2396, 1586, 2336, 2858, 1580, 2353, 2541],\n"," 35: [5952, 296, 7153, 3578, 318, 356, 593, 260, 1036, 1198],\n"," 36: [2901, 3005, 2320, 1620, 2997, 3708, 1608, 1258, 1298, 4661],\n"," 37: [1196, 2858, 2762, 356, 260, 1198, 858, 2329, 527, 1270],\n"," 38: [6539, 2273, 4701, 3793, 4886, 780, 4306, 3977, 2028, 3052],\n"," 40: [904, 541, 858, 1252, 923, 912, 750, 1208, 903, 908],\n"," 41: [1234, 1278, 1097, 2791, 1136, 1394, 1663, 1297, 1304, 342],\n"," 42: [150, 356, 587, 34, 508, 593, 339, 11, 440, 457],\n"," 43: [150, 508, 593, 357, 457, 527, 377, 590, 110, 364],\n"," 44: [110, 1968, 2718, 5563, 6281, 5400, 4447, 5418, 2114, 2607],\n"," 45: [5952, 2959, 296, 4993, 7153, 3578, 318, 1210, 4226, 4306],\n"," 46: [2571, 5952, 2959, 296, 4993, 1196, 3578, 318, 1210, 4226],\n"," 47: [356, 47, 527, 1704, 480, 1222, 4886, 1089, 1213, 6377],\n"," 48: [356, 2355, 1265, 2567, 1136, 1215, 1196, 1220, 1060, 1343],\n"," 50: [349, 161, 316, 292, 434, 329, 47, 50, 1, 474],\n"," 51: [3468, 3983, 1084, 694, 4234, 3456, 762, 1250, 1964, 2677],\n"," 52: [541, 858, 923, 912, 608, 750, 903, 908, 527, 111],\n"," 53: [1097, 1193, 356, 919, 3545, 2971, 32, 5504, 1968, 8917],\n"," 54: [595, 153, 253, 1, 527, 32, 204, 442, 225, 208],\n"," 55: [904, 541, 858, 1252, 923, 912, 608, 750, 1208, 903],\n"," 56: [5072, 2905, 1554, 34542, 4144, 4422, 7044, 4085, 1132, 3552],\n"," 57: [466, 543, 520, 2717, 2735, 1982, 5254, 2953, 2002, 2402],\n"," 58: [608, 858, 1094, 2194, 3104, 2289, 457, 1954, 1674, 1299],\n"," 59: [380, 480, 589, 110, 588, 161, 356, 10, 377, 292],\n"," 60: [904, 912, 750, 903, 908, 111, 913, 1207, 1206, 924],\n"," 61: [1307, 2997, 3148, 2804, 2918, 1259, 778, 1704, 1220, 2028],\n"," 62: [457, 480, 589, 110, 356, 377, 364, 47, 50, 1],\n"," 63: [541, 1252, 923, 608, 750, 1208, 903, 908, 111, 913],\n"," 64: [62, 141, 648, 95, 25, 17, 104, 1210, 112, 1356],\n"," 65: [1358, 2028, 2324, 608, 858, 1617, 593, 1094, 2762, 2194],\n"," 66: [55820, 1234, 858, 5147, 923, 4873, 44195, 33880, 111, 4973],\n"," 67: [150, 480, 589, 356, 377, 1, 500, 474, 527, 32],\n"," 68: [858, 912, 750, 527, 111, 1221, 1136, 1304, 910, 1213],\n"," 69: [904, 541, 858, 1252, 923, 608, 750, 1208, 903, 111],\n"," 70: [923, 608, 1208, 903, 111, 1247, 1136, 260, 1206, 1219],\n"," 71: [457, 593, 480, 589, 590, 318, 110, 588, 161, 356],\n"," 72: [150, 589, 318, 110, 296, 161, 316, 377, 592, 364],\n"," 73: [1358, 1704, 590, 2324, 1961, 1617, 1242, 2289, 2243, 36],\n"," 74: [371, 318, 544, 68, 514, 270, 71, 1302, 248, 440],\n"," 75: [2571, 5952, 2959, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n"," 76: [588, 356, 364, 253, 50, 500, 527, 454, 32, 288],\n"," 77: [150, 318, 110, 161, 329, 50, 500, 474, 32, 34],\n"," 78: [4993, 2329, 5952, 5349, 293, 4886, 4878, 4011, 47, 8636],\n"," 79: [527, 111, 353, 112, 232, 307, 290, 6, 306, 16],\n"," 80: [480, 589, 590, 588, 356, 595, 10, 377, 592, 292],\n"," 81: [1307, 1197, 1079, 1234, 1278, 1220, 1270, 1028, 2797, 1097],\n"," 82: [2959, 1196, 7153, 3578, 318, 1210, 2858, 2762, 356, 2028],\n"," 83: [904, 1252, 1208, 903, 527, 111, 1247, 1206, 1267, 1230],\n"," 84: [1073, 832, 6, 802, 104, 805, 653, 1210, 112, 1356],\n"," 85: [2901, 1732, 1573, 2976, 1617, 2959, 1552, 1917, 3753, 3005],\n"," 86: [260, 541, 32, 593, 1617, 924, 1199, 296, 608, 50],\n"," 87: [2706, 1777, 2485, 2125, 2571, 2394, 1586, 2355, 780, 2424],\n"," 88: [3147, 4246, 4896, 3753, 4306, 4995, 6378, 1704, 2028, 2763],\n"," 89: [457, 593, 480, 349, 589, 590, 356, 595, 316, 10],\n"," 90: [95, 25, 17, 1210, 112, 1356, 1393, 58, 7, 52],\n"," 91: [858, 1252, 908, 111, 1221, 1304, 1225, 910, 1213, 593],\n"," 92: [2959, 296, 4306, 593, 50, 858, 2329, 1214, 1200, 3996],\n"," 93: [5464, 610, 2987, 1089, 5679, 7445, 2140, 1968, 1172, 7254],\n"," 94: [597, 34, 357, 339, 11, 364, 17, 282, 236, 497],\n"," 95: [457, 364, 47, 50, 474, 527, 34, 204, 442, 225],\n"," 96: [1704, 2324, 318, 1094, 2289, 2243, 36, 1641, 1299, 2355],\n"," 97: [446, 317, 500, 2141, 2046, 3409, 92, 708, 919, 2803],\n"," 98: [733, 62, 736, 141, 1073, 32, 494, 832, 95, 17],\n"," 99: [904, 1252, 923, 912, 608, 1208, 903, 908, 913, 1247],\n"," 100: [2959, 4993, 7153, 3578, 4226, 2762, 4306, 1036, 2329, 1214],\n"," 101: [10, 527, 288, 442, 21, 733, 586, 786, 420, 6],\n"," 102: [380, 593, 349, 589, 590, 165, 110, 595, 377, 364],\n"," 103: [1193, 904, 858, 1252, 912, 903, 908, 913, 1221, 1207],\n"," 104: [1358, 1704, 2028, 590, 608, 2396, 1094, 2762, 2194, 3104],\n"," 105: [1240, 589, 1200, 2571, 541, 2028, 593, 1374, 1356, 1617],\n"," 106: [2997, 2683, 858, 1252, 1230, 1221, 1213, 2810, 52, 2706],\n"," 107: [1198, 1214, 593, 1291, 1610, 1036, 2916, 296, 608, 457],\n"," 108: [3468, 1683, 4034, 5013, 3022, 3983, 4226, 2858, 919, 1617],\n"," 110: [150, 349, 165, 110, 588, 296, 161, 595, 316, 10],\n"," 111: [589, 590, 595, 377, 364, 329, 47, 231, 50, 1],\n"," 112: [1148, 1617, 2858, 1952, 1284, 2396, 2395, 720, 1953, 3435],\n"," 113: [2572, 2683, 2706, 3081, 1210, 1777, 2125, 3578, 2571, 2394],\n"," 114: [3949, 55820, 1213, 1222, 7361, 5147, 6874, 2858, 2959, 923],\n"," 115: [2571, 5952, 2959, 4993, 1196, 7153, 1210, 4226, 2028, 4306],\n"," 116: [508, 457, 527, 17, 474, 497, 39, 266, 261, 509],\n"," 117: [1307, 1079, 1234, 1278, 1220, 1270, 1028, 2797, 1097, 1259],\n"," 118: [588, 595, 364, 1, 500, 34, 339, 733, 367, 586],\n"," 119: [50, 36, 527, 32, 608, 246, 300, 112, 232, 150],\n"," 120: [733, 608, 141, 32, 648, 494, 832, 36, 25, 6],\n"," 121: [260, 1206, 1225, 1212, 1234, 1148, 2019, 1276, 1214, 1254],\n"," 122: [1028, 914, 2100, 342, 1580, 1282, 2407, 1777, 902, 2081],\n"," 123: [370, 318, 1380, 1207, 3053, 188, 2599, 1203, 432, 2081],\n"," 124: [4226, 2959, 3481, 2858, 2542, 2997, 4034, 4973, 2329, 1258],\n"," 125: [2329, 7361, 4878, 778, 8636, 4262, 1748, 2395, 8874, 8464],\n"," 126: [1080, 4973, 4878, 7361, 750, 778, 3949, 1206, 1274, 5618],\n"," 127: [539, 597, 150, 356, 587, 34, 508, 593, 357, 339],\n"," 128: [508, 440, 377, 364, 236, 474, 588, 454, 62, 39],\n"," 129: [1625, 3408, 1610, 1833, 50, 1249, 593, 3101, 1552, 479],\n"," 130: [904, 923, 912, 750, 903, 908, 111, 913, 1247, 1221],\n"," 131: [318, 32, 608, 293, 111, 555, 337, 300, 232, 307],\n"," 132: [150, 480, 589, 110, 588, 161, 10, 377, 292, 364],\n"," 134: [260, 733, 608, 494, 832, 36, 25, 17, 802, 104],\n"," 135: [2571, 2028, 1617, 1610, 2916, 1199, 608, 50, 1676, 318],\n"," 136: [541, 750, 903, 908, 527, 111, 913, 1247, 1221, 260],\n"," 137: [3147, 6539, 356, 2273, 6377, 4246, 2353, 4896, 4886, 5299],\n"," 138: [1291, 858, 527, 3996, 1270, 480, 4886, 1, 1213, 1221],\n"," 139: [4226, 4027, 6711, 2542, 2997, 4993, 4034, 4973, 5952, 1732],\n"," 140: [2571, 5952, 2959, 296, 4993, 1196, 3578, 1210, 2762, 356],\n"," 141: [539, 597, 150, 587, 34, 508, 339, 11, 440, 110],\n"," 142: [296, 50, 318, 223, 527, 293, 47, 246, 555, 337],\n"," 143: [4027, 6711, 2692, 7361, 293, 8636, 6502, 5902, 541, 50],\n"," 144: [2502, 4886, 4979, 3897, 923, 1921, 3911, 1246, 2761, 1784],\n"," 145: [380, 480, 349, 589, 318, 165, 110, 161, 595, 316],\n"," 148: [2571, 1198, 2028, 593, 1356, 1617, 924, 1291, 858, 1610],\n"," 149: [4226, 3481, 4027, 6711, 2542, 4034, 4973, 2329, 1258, 2692],\n"," 150: [296, 50, 318, 36, 25, 223, 32, 593, 608, 293],\n"," 151: [356, 1271, 5418, 2797, 1307, 1721, 2858, 4995, 1246, 3083],\n"," 152: [1704, 590, 2324, 608, 1242, 1094, 3104, 2289, 2243, 1954],\n"," 153: [2571, 5952, 4993, 1196, 7153, 3578, 318, 1210, 4226, 2858],\n"," 154: [5952, 4993, 7153, 3578, 318, 4226, 2858, 2028, 4306, 858],\n"," 155: [7153, 4226, 1291, 527, 1200, 6874, 6539, 1222, 4886, 6377],\n"," 156: [1, 260, 733, 494, 832, 36, 95, 17, 802, 805],\n"," 157: [608, 62, 141, 25, 6, 17, 1210, 112, 1356, 58],\n"," 158: [539, 597, 150, 356, 587, 508, 357, 339, 11, 527],\n"," 159: [2140, 2959, 7254, 2143, 1006, 1354, 1967, 3020, 2161, 2683],\n"," 160: [466, 104, 543, 88, 520, 2717, 743, 1982, 724, 1562],\n"," 161: [356, 2028, 4306, 1036, 858, 2329, 1704, 480, 32, 1222],\n"," 162: [318, 4226, 593, 1036, 50, 1291, 2329, 1200, 1704, 1270],\n"," 163: [318, 608, 293, 555, 337, 353, 300, 112, 232, 307],\n"," 164: [110, 161, 364, 329, 253, 50, 1, 34, 185, 204],\n"," 165: [1584,\n"," 431,\n"," 4308,\n"," 45186,\n"," 53322,\n"," 214,\n"," 1213,\n"," 49530,\n"," 306,\n"," 31696],\n"," 166: [589, 2571, 1198, 541, 32, 2028, 1374, 1356, 1617, 1291],\n"," 167: [260, 733, 1073, 494, 832, 17, 802, 805, 1210, 1356],\n"," 168: [19, 2028, 1784, 1004, 274, 1092, 575, 1610, 2403, 3578],\n"," 169: [1625, 3408, 1610, 2762, 1833, 50, 1249, 593, 3101, 1552],\n"," 170: [5952, 4993, 1196, 7153, 3578, 1210, 2028, 593, 589, 260],\n"," 171: [2571, 5952, 4993, 1196, 7153, 3578, 1210, 4226, 4306, 593],\n"," 172: [380, 593, 349, 590, 318, 296, 161, 356, 595, 316],\n"," 173: [110, 17, 282, 497, 39, 266, 261, 509, 224, 367],\n"," 174: [342, 261, 372, 537, 531, 147, 427, 481, 45, 452],\n"," 175: [908, 1247, 1207, 1304, 1267, 1230, 910, 1148, 1276, 1254],\n"," 176: [480, 349, 589, 318, 110, 588, 296, 356, 595, 10],\n"," 177: [260, 733, 832, 17, 802, 104, 805, 653, 1210, 1356],\n"," 178: [1265, 2567, 1215, 1060, 1343, 2571, 368, 2001, 1500, 2000],\n"," 179: [4226, 2959, 3481, 6711, 2858, 2997, 4034, 4973, 2329, 5952],\n"," 180: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210],\n"," 182: [457, 1674, 260, 1610, 1584, 1198, 1210, 2871, 1036, 1200],\n"," 183: [2324, 608, 1961, 858, 1617, 1242, 2762, 2194, 3104, 2289],\n"," 184: [1466, 1673, 25, 1120, 290, 1912, 1041, 3125, 2718, 5563],\n"," 185: [1230, 912, 527, 3244, 3707, 260, 1233, 2918, 1240, 1358],\n"," 186: [1193, 858, 923, 912, 750, 1208, 908, 527, 913, 1247],\n"," 187: [2571, 5952, 2959, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n"," 188: [318, 165, 588, 161, 595, 10, 377, 292, 364, 47],\n"," 189: [141, 1073, 648, 832, 95, 25, 802, 104, 653, 1210],\n"," 190: [4226, 3481, 4027, 6711, 2858, 2542, 2997, 4034, 4973, 2329],\n"," 191: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 318],\n"," 192: [1234, 5147, 4873, 33880, 1080, 555, 16, 1, 2585, 55805],\n"," 193: [364, 17, 62, 595, 141, 261, 509, 277, 224, 105],\n"," 194: [733, 608, 494, 36, 6, 805, 653, 112, 3, 58],\n"," 195: [1683, 694, 762, 40583, 3730, 1964, 3006, 3363, 2973, 667],\n"," 196: [2863, 2804, 2160, 1256, 346, 2363, 2186, 2273, 861, 1278],\n"," 197: [2683,\n"," 2268,\n"," 648,\n"," 1213,\n"," 2810,\n"," 3000,\n"," 2598,\n"," 8157,\n"," 56286,\n"," 55814],\n"," 198: [3481, 2542, 2997, 4034, 4973, 4011, 778, 4848, 1219, 5618],\n"," 199: [480, 349, 589, 318, 110, 161, 356, 10, 364, 47],\n"," 200: [1, 608, 494, 832, 95, 25, 6, 805, 653, 1210],\n"," 201: [1961, 318, 1242, 2762, 2194, 3104, 2289, 2243, 1954, 1962],\n"," 202: [3578, 2959, 2858, 2707, 589, 2571, 4993, 3157, 1176, 4022],\n"," 203: [2355, 2567, 1968, 2571, 2001, 2396, 2406, 2000, 2706, 1367],\n"," 204: [1073, 832, 36, 802, 104, 805, 653, 1210, 112, 1356],\n"," 205: [904, 923, 750, 903, 527, 1247, 1207, 1219, 1304, 1267],\n"," 206: [1358, 1704, 590, 2324, 1961, 858, 318, 2396, 1242, 1094],\n"," 207: [356, 587, 357, 339, 11, 457, 110, 17, 350, 236],\n"," 208: [457, 593, 480, 589, 590, 356, 595, 377, 292, 364],\n"," 209: [539, 597, 587, 357, 339, 11, 440, 527, 590, 110],\n"," 210: [5952, 2959, 1196, 356, 2028, 260, 1036, 1198, 47, 50],\n"," 211: [1193, 541, 923, 750, 1208, 527, 913, 1247, 1136, 1207],\n"," 212: [1203,\n"," 4406,\n"," 5072,\n"," 7116,\n"," 3310,\n"," 1253,\n"," 39292,\n"," 2726,\n"," 7132,\n"," 3730],\n"," 213: [4993, 3578, 5349, 1580, 6539, 356, 6377, 4701, 3793, 4246],\n"," 214: [1234, 1278, 919, 1394, 1663, 1304, 1246, 2109, 1035, 1081],\n"," 215: [6711, 2329, 6502, 5669, 5377, 4308, 1246, 3471, 3421, 5679],\n"," 216: [3147, 3578, 6539, 356, 6377, 4701, 4025, 2353, 3753, 4995],\n"," 217: [356, 34, 508, 357, 527, 377, 110, 364, 318, 500],\n"," 218: [1265, 852, 3624, 3254, 4448, 3578, 4002, 608, 3745, 4223],\n"," 219: [1079, 1220, 2797, 2406, 1968, 1259, 2791, 1285, 1136, 1101],\n"," 220: [904, 912, 1219, 913, 1193, 928, 903, 1198, 920, 1207],\n"," 221: [2959, 4993, 7153, 3578, 4226, 2762, 4306, 1291, 2329, 1214],\n"," 222: [1210, 97, 2858, 714, 2571, 1094, 1147, 1304, 924, 1090],\n"," 223: [324, 534, 2359, 2858, 2336, 1183, 1252, 2997, 532, 1564],\n"," 224: [260, 733, 832, 802, 805, 653, 1210, 1356, 1393, 58],\n"," 225: [912, 1219, 1193, 928, 1198, 920, 1207, 1258, 4784, 953],\n"," 226: [2959, 6711, 2858, 2997, 4034, 4973, 1258, 1732, 2692, 7361],\n"," 227: [1702, 158, 1713, 239, 256, 2142, 2083, 2089, 1196, 1373],\n"," 228: [590, 588, 296, 161, 592, 47, 153, 50, 1, 474],\n"," 229: [62, 494, 832, 36, 95, 6, 17, 802, 104, 653],\n"," 230: [1193, 904, 858, 903, 908, 111, 1207, 1206, 1225, 924],\n"," 231: [6985, 7234, 7072, 3742, 1209, 1260, 3307, 1348, 8125, 6666],\n"," 232: [2571, 2028, 1374, 1356, 1617, 924, 1610, 2916, 1199, 1197],\n"," 234: [5952, 296, 4993, 1196, 7153, 3578, 318, 1210, 2762, 356],\n"," 235: [5952, 1196, 1210, 2762, 356, 2028, 4306, 589, 110, 2329],\n"," 236: [316, 434, 329, 153, 253, 1, 32, 34, 733, 587],\n"," 237: [589, 541, 32, 2028, 1356, 924, 858, 1610, 1036, 2916],\n"," 238: [410, 193, 324, 534, 2359, 1183, 1252, 532, 1564, 3112],\n"," 239: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 6539, 2762, 2273],\n"," 241: [4027, 2054, 318, 2858, 1019, 1380, 2761, 1193, 1207, 912],\n"," 242: [608, 1073, 832, 36, 1210, 1393, 3, 58, 7, 52],\n"," 243: [1721, 3148, 1617, 1961, 778, 1704, 1183, 4350, 15, 62],\n"," 244: [923, 903, 908, 111, 1221, 1207, 260, 1206, 1219, 1213],\n"," 245: [3949,\n"," 55820,\n"," 1213,\n"," 1222,\n"," 7361,\n"," 1234,\n"," 5147,\n"," 6874,\n"," 2858,\n"," 2959],\n"," 246: [4226, 2959, 4027, 6711, 2542, 2997, 4993, 4034, 4973, 5952],\n"," 247: [349, 318, 110, 50, 1, 474, 527, 32, 185, 204],\n"," 248: [3578, 2959, 2858, 527, 2707, 589, 2571, 4993, 3157, 1176],\n"," 249: [3481, 2858, 2997, 4973, 1732, 2692, 3996, 3052, 778, 8636],\n"," 250: [296, 50, 36, 25, 223, 527, 32, 593, 608, 293],\n"," 251: [2571, 2028, 1617, 924, 1610, 2916, 1199, 50, 1197, 1676],\n"," 252: [541, 858, 1252, 923, 750, 1208, 903, 111, 913, 1247],\n"," 253: [5952, 2959, 296, 4993, 1196, 7153, 318, 1210, 4226, 2762],\n"," 254: [4993, 7153, 4226, 1036, 1198, 110, 1291, 2329, 1704, 1270],\n"," 255: [457, 380, 480, 349, 589, 165, 110, 296, 595, 316],\n"," 256: [1197, 1079, 1234, 1278, 1220, 1270, 1028, 2797, 1097, 1968],\n"," 257: [5952, 2959, 296, 4993, 1196, 7153, 318, 1210, 4226, 2858],\n"," 258: [1358, 1704, 2324, 858, 318, 593, 2396, 1242, 1094, 2762],\n"," 259: [3481, 4027, 2542, 4034, 1732, 1089, 293, 4011, 223, 8636],\n"," 260: [2571, 2028, 1374, 1617, 1291, 1610, 2916, 1199, 50, 1197],\n"," 261: [527, 356, 2762, 1080, 919, 2028, 2858, 3534, 5504, 1968],\n"," 262: [2863, 2948, 2947, 1136, 2160, 2951, 1997, 1256, 5060, 346],\n"," 263: [7153, 356, 2028, 4306, 6874, 1222, 1089, 4011, 1527, 1580],\n"," 264: [150, 349, 590, 318, 161, 292, 364, 434, 329, 253],\n"," 265: [2572, 2683, 2762, 2605, 2706, 2581, 3081, 1210, 1777, 2485],\n"," 266: [97, 714, 1147, 924, 1090, 4002, 1238, 1235, 1288, 2064],\n"," 267: [3949, 1213, 4873, 44195, 33880, 3089, 56367, 555, 16, 4878],\n"," 268: [34, 508, 357, 11, 440, 17, 282, 236, 588, 497],\n"," 269: [260, 733, 608, 62, 32, 494, 832, 36, 6, 17],\n"," 270: [1, 608, 62, 736, 832, 36, 95, 6, 802, 104],\n"," 271: [1200, 2571, 1198, 2028, 593, 1356, 1617, 1291, 858, 1610],\n"," 272: [6711, 2542, 4973, 1732, 2692, 1206, 32, 1089, 2571, 3052],\n"," 273: [2959, 296, 1196, 4226, 2762, 356, 4306, 1198, 47, 1291],\n"," 274: [1968, 1285, 1101, 1297, 2396, 342, 1198, 440, 1291, 1777],\n"," 275: [2324, 858, 1242, 2194, 3104, 2243, 36, 260, 527, 1271],\n"," 276: [4027, 3052, 4262, 5618, 2918, 5377, 8464, 5995, 6539, 1246],\n"," 277: [2571, 2959, 1196, 3578, 318, 1210, 4226, 2858, 2028, 4306],\n"," 278: [356, 296, 1271, 5418, 2797, 1307, 1721, 318, 2858, 4995],\n"," 279: [4226, 3481, 6711, 2858, 4993, 4034, 4973, 2329, 1732, 1206],\n"," 280: [2959, 296, 1196, 3578, 318, 1210, 4226, 2762, 593, 589],\n"," 281: [253, 1, 733, 196, 48, 111, 160, 555, 198, 1092],\n"," 282: [141, 832, 6, 104, 1210, 1356, 1393, 58, 52, 788],\n"," 285: [1196, 1240, 589, 1200, 2571, 1198, 1214, 541, 32, 2028],\n"," 286: [32, 1356, 1617, 924, 858, 1610, 1199, 296, 608, 1197],\n"," 287: [593, 349, 589, 318, 165, 296, 161, 10, 377, 292],\n"," 288: [1193, 541, 858, 1252, 923, 912, 608, 750, 1208, 527],\n"," 289: [2406, 1380, 1285, 1297, 1282, 2371, 1198, 1291, 2081, 1073],\n"," 290: [239, 256, 2142, 1373, 1036, 4799, 1206, 107, 1348, 146],\n"," 291: [4027, 2054, 370, 318, 2858, 1380, 2761, 3053, 912, 188],\n"," 292: [3481, 2542, 293, 778, 4262, 1748, 4848, 923, 1921, 1219],\n"," 293: [380, 480, 589, 110, 356, 377, 292, 364, 47, 50],\n"," 294: [593, 480, 589, 590, 10, 329, 1, 500, 527, 34],\n"," 295: [1259, 914, 1285, 1101, 1297, 342, 440, 2174, 902, 2081],\n"," 296: [3481, 1258, 3996, 8636, 4979, 1748, 2395, 1219, 5618, 8874],\n"," 297: [733, 736, 494, 832, 95, 6, 802, 653, 3, 58],\n"," 298: [2567, 1136, 1215, 1196, 1220, 1060, 1968, 2571, 368, 2001],\n"," 300: [2324, 593, 2396, 3104, 457, 2243, 36, 1962, 1674, 34],\n"," 301: [1193, 904, 903, 908, 111, 913, 1207, 1206, 1219, 1304],\n"," 302: [2572, 2485, 2716, 2125, 2355, 2710, 2336, 2006, 2700, 1597],\n"," 303: [1036, 50, 2329, 1704, 1270, 6539, 1089, 1, 6377, 4963],\n"," 304: [1358, 1704, 2028, 590, 2324, 608, 858, 1617, 318, 593],\n"," 305: [34, 339, 11, 440, 364, 318, 350, 474, 454, 595],\n"," 306: [1721, 2997, 3148, 1617, 608, 778, 2028, 1221, 1183, 858],\n"," 307: [4226, 2959, 3481, 4027, 6711, 2858, 2542, 2997, 4993, 4034],\n"," 308: [539, 597, 150, 356, 587, 508, 593, 357, 339, 11],\n"," 309: [733, 608, 1073, 32, 494, 832, 36, 6, 104, 653],\n"," 310: [1242, 2289, 2243, 2355, 1271, 1090, 1095, 3114, 2916, 2890],\n"," 311: [457, 593, 589, 318, 110, 296, 161, 10, 377, 292],\n"," 312: [1617, 1219, 1193, 903, 1198, 920, 1207, 1258, 4784, 953],\n"," 313: [965, 2186, 1617, 2858, 2935, 931, 1066, 2324, 2208, 929],\n"," 314: [608, 1208, 913, 1206, 1230, 910, 1213, 924, 1212, 50],\n"," 315: [17, 236, 474, 497, 141, 266, 21, 509, 22, 277],\n"," 316: [608, 62, 648, 494, 832, 36, 6, 17, 805, 1210],\n"," 317: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 318, 593],\n"," 318: [4226, 2329, 2692, 32, 293, 4878, 223, 6502, 4262, 4848],\n"," 319: [786, 708, 362, 1028, 1029, 79, 1035, 1012, 1022, 661],\n"," 320: [318, 1198, 50, 1291, 858, 2329, 1200, 1704, 6874, 1222],\n"," 321: [150, 590, 318, 165, 110, 161, 10, 377, 434, 47],\n"," 322: [1197, 1079, 1234, 1278, 1220, 1028, 2797, 1097, 2406, 1968],\n"," 323: [2804, 2951, 1997, 1256, 346, 2363, 3508, 2273, 2571, 861],\n"," 324: [296, 1196, 318, 2858, 2762, 356, 2028, 4306, 593, 589],\n"," 325: [3394, 3861, 2447, 1268, 4571, 2622, 1248, 2248, 2021, 4896],\n"," 326: [34, 508, 339, 527, 318, 500, 282, 350, 62, 141],\n"," 327: [141, 832, 36, 6, 17, 104, 805, 653, 112, 3],\n"," 328: [1210, 1198, 2028, 593, 1356, 1617, 1291, 858, 1610, 1036],\n"," 329: [1466, 1673, 608, 25, 50, 296, 1120, 290, 1912, 1041],\n"," 330: [4226, 3481, 4027, 6711, 2997, 4034, 4973, 1258, 1732, 2692],\n"," 331: [5952, 296, 1196, 3578, 1210, 2762, 356, 2028, 4306, 593],\n"," 332: [589, 165, 10, 377, 329, 344, 500, 474, 527, 204],\n"," 333: [2997, 3148, 1617, 2804, 1961, 2918, 1259, 1220, 2028, 1221],\n"," 334: [1079, 1097, 2791, 914, 1285, 1101, 1265, 1394, 2918, 2396],\n"," 335: [1193, 541, 608, 1208, 903, 527, 111, 913, 1221, 1136],\n"," 336: [342, 261, 265, 372, 537, 247, 531, 147, 427, 318],\n"," 337: [1219, 2268, 648, 858, 1252, 2764, 1221, 2810, 3000, 924],\n"," 338: [2571, 2959, 4993, 1196, 7153, 3578, 1210, 4226, 2858, 2762],\n"," 339: [480, 589, 110, 588, 356, 595, 316, 10, 377, 292],\n"," 340: [1028, 2797, 2406, 1968, 2791, 1380, 1641, 2100, 3039, 1784],\n"," 341: [2028, 965, 2186, 919, 2935, 931, 1066, 2208, 929, 947],\n"," 342: [2396, 1699, 1704, 593, 1429, 3671, 923, 1148, 2791, 3897],\n"," 343: [318, 165, 296, 595, 377, 292, 364, 329, 47, 50],\n"," 344: [1200, 2571, 1214, 541, 2028, 593, 1374, 1356, 1617, 924],\n"," 345: [1307, 1079, 1220, 1259, 2791, 1380, 914, 1101, 1663, 342],\n"," 346: [3081, 1210, 2125, 2571, 2394, 1586, 2336, 780, 2424, 2006],\n"," 347: [4558, 7004, 3394, 2410, 3861, 3524, 2447, 2118, 4489, 1268],\n"," 348: [3481, 1732, 1206, 3052, 223, 5902, 2395, 5618, 5669, 2918],\n"," 349: [34, 357, 11, 440, 500, 350, 474, 497, 62, 39],\n"," 350: [427, 1059, 2245, 1131, 1132, 1658, 724, 2657, 2291, 327],\n"," 351: [541, 1252, 1206, 1219, 1267, 910, 1212, 1228, 2019, 1254],\n"," 352: [786, 708, 1210, 362, 1196, 1028, 1097, 260, 1029, 79],\n"," 353: [260, 1240, 1210, 1198, 1374, 1356, 1617, 924, 1291, 858],\n"," 354: [3147, 2273, 4701, 4025, 3793, 2353, 4896, 4886, 3753, 4018],\n"," 355: [380, 480, 589, 588, 161, 10, 377, 592, 292, 364],\n"," 356: [1, 62, 736, 141, 1073, 494, 802, 104, 805, 653],\n"," 357: [1197, 1270, 2797, 1097, 1259, 914, 919, 1641, 2100, 3039],\n"," 358: [5952, 2959, 4993, 7153, 3578, 4226, 2762, 2028, 1036, 1198],\n"," 359: [527, 2707, 589, 1176, 593, 2712, 16, 2700, 1046, 3623],\n"," 360: [260, 733, 608, 62, 1073, 494, 832, 6, 802, 104],\n"," 361: [1193, 904, 541, 923, 912, 750, 903, 908, 527, 111],\n"," 362: [296, 3578, 1210, 2858, 356, 2028, 4306, 589, 1036, 47],\n"," 363: [2571, 3578, 318, 1210, 4226, 2858, 2762, 356, 2028, 4306],\n"," 364: [480, 589, 356, 377, 364, 47, 500, 474, 527, 454],\n"," 365: [539, 440, 377, 318, 282, 350, 474, 588, 454, 62],\n"," 366: [1307, 1270, 1028, 2797, 1097, 1968, 1259, 2791, 1380, 914],\n"," 367: [1704, 590, 2324, 1961, 1617, 593, 2396, 2762, 3104, 2289],\n"," 368: [6711, 2858, 2542, 4034, 2329, 4878, 6502, 4262, 2762, 4848],\n"," 369: [480, 589, 110, 356, 377, 364, 47, 50, 1, 500],\n"," 370: [260, 733, 608, 32, 648, 494, 832, 36, 95, 25],\n"," 371: [2571, 5952, 2959, 7153, 3578, 318, 1210, 4226, 2858, 2762],\n"," 372: [296, 7153, 318, 4226, 2858, 356, 2028, 4306, 593, 260],\n"," 373: [4027, 2054, 370, 2858, 1019, 1380, 2761, 1193, 1207, 3053],\n"," 375: [1307, 1197, 1079, 1278, 1220, 1270, 1028, 1097, 2406, 1968],\n"," 376: [1196, 1198, 1374, 924, 1291, 858, 1610, 1036, 2916, 1199],\n"," 377: [2028, 608, 1961, 1617, 593, 1094, 2762, 2194, 3104, 2289],\n"," 378: [1240, 589, 1200, 2571, 1198, 1214, 541, 32, 2028, 593],\n"," 379: [5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n"," 380: [97, 2858, 714, 2571, 1094, 1147, 1304, 924, 1090, 4002],\n"," 381: [282, 236, 497, 141, 509, 224, 367, 265, 736, 230],\n"," 382: [457, 593, 150, 480, 589, 318, 110, 161, 356, 377],\n"," 383: [2959, 1210, 356, 4306, 1036, 110, 47, 1291, 2329, 527],\n"," 384: [380, 593, 349, 589, 296, 595, 316, 10, 434, 329],\n"," 385: [260, 733, 1073, 832, 36, 802, 805, 653, 1210, 1356],\n"," 386: [1094, 3104, 2289, 1225, 1641, 1299, 2355, 2336, 1207, 1090],\n"," 387: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 6539, 356, 2762],\n"," 388: [5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210, 2858],\n"," 389: [3481, 2542, 4973, 1258, 1732, 1206, 1089, 1214, 6502, 5902],\n"," 390: [1036, 47, 527, 1214, 1270, 32, 6539, 1222, 1089, 541],\n"," 391: [349, 161, 292, 434, 47, 231, 50, 474, 527, 454],\n"," 392: [161, 316, 329, 1, 500, 474, 185, 204, 442, 225],\n"," 393: [1, 25, 17, 802, 653, 1210, 112, 1356, 58, 7],\n"," 394: [648, 1230, 2764, 2810, 52, 2706, 16, 1080, 3000, 1234],\n"," 395: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 1210, 4226],\n"," 396: [5952, 296, 4993, 7153, 3578, 318, 4226, 2762, 356, 593],\n"," 397: [5952, 4993, 1196, 7153, 1210, 4306, 589, 260, 1036, 1198],\n"," 398: [508, 318, 17, 236, 474, 39, 161, 141, 21, 296],\n"," 399: [1210, 58, 7, 52, 14, 858, 783, 1183, 41, 140],\n"," 400: [965, 2186, 919, 2935, 931, 1066, 2208, 929, 1207, 947],\n"," 401: [1193, 904, 1252, 923, 912, 750, 1208, 903, 908, 111],\n"," 402: [720, 2858, 1265, 852, 2891, 3254, 4002, 608, 4223, 736],\n"," 403: [5952, 2959, 4993, 1196, 3578, 318, 1210, 2858, 2028, 4306],\n"," 404: [593, 595, 434, 231, 50, 500, 474, 527, 32, 288],\n"," 405: [1, 608, 494, 832, 95, 6, 17, 805, 653, 1210],\n"," 406: [457, 380, 593, 480, 589, 590, 318, 110, 588, 356],\n"," 407: [1196, 1210, 1374, 1617, 2916, 1197, 318, 1376, 110, 1213],\n"," 408: [912, 527, 3244, 3707, 260, 1233, 2918, 1240, 1358, 3347],\n"," 409: [508, 339, 457, 527, 110, 364, 318, 500, 17, 282],\n"," 410: [708, 362, 260, 531, 1015, 1367, 837, 1042, 1032, 1282],\n"," 411: [260, 32, 494, 36, 95, 25, 6, 17, 802, 104],\n"," 412: [1252, 1429, 3671, 7153, 1148, 2791, 3897, 1587, 627, 837],\n"," 413: [1252, 912, 608, 750, 1208, 903, 908, 527, 913, 1247],\n"," 414: [2901, 2976, 2028, 1552, 1917, 3753, 3005, 1387, 2320, 1620],\n"," 415: [457, 380, 593, 150, 480, 589, 318, 110, 161, 356],\n"," 416: [589, 318, 165, 110, 296, 595, 316, 329, 253, 50],\n"," 417: [1193, 904, 541, 858, 1252, 923, 912, 608, 750, 1208],\n"," 418: [527, 593, 353, 232, 307, 290, 306, 778, 509, 356],\n"," 419: [923, 1206, 1267, 910, 922, 1228, 2019, 1250, 235, 1952],\n"," 420: [50, 318, 25, 223, 32, 593, 608, 293, 47, 555],\n"," 421: [380, 593, 349, 318, 165, 110, 296, 316, 377, 292],\n"," 422: [1, 608, 141, 1073, 32, 832, 36, 95, 6, 17],\n"," 424: [858, 111, 1221, 1207, 1219, 1225, 1213, 593, 50, 296],\n"," 425: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210],\n"," 426: [2502, 5902, 4848, 1921, 2395, 8464, 5995, 3911, 3175, 3000],\n"," 427: [4226, 2959, 3481, 4027, 6711, 2858, 2542, 2997, 4993, 4034],\n"," 428: [256, 1073, 4799, 1206, 1031, 1348, 5373, 8117, 1792, 1333],\n"," 429: [1358, 1704, 2028, 590, 2324, 1961, 858, 318, 593, 2396],\n"," 430: [410, 193, 324, 534, 2359, 2858, 2336, 1183, 1252, 2997],\n"," 431: [2571, 2959, 296, 1196, 3578, 1210, 4226, 2858, 2762, 593],\n"," 432: [539, 587, 357, 39, 161, 141, 266, 252, 367, 380],\n"," 433: [19, 274, 2195, 1092, 575, 2403, 3578, 590, 2329, 3623],\n"," 434: [296, 318, 4226, 47, 50, 2329, 32, 1136, 1089, 1213],\n"," 435: [3481, 4027, 6711, 2858, 2997, 4993, 4034, 4973, 5952, 1258],\n"," 436: [349, 590, 165, 161, 10, 292, 1, 527, 204, 225],\n"," 437: [1193, 858, 923, 912, 1207, 1206, 1304, 1230, 1225, 924],\n"," 438: [904, 1252, 923, 912, 608, 1208, 903, 908, 527, 111],\n"," 439: [1097, 2762, 1080, 919, 2858, 3545, 3534, 2971, 8917, 3101],\n"," 440: [1196, 3578, 1210, 4306, 589, 260, 3996, 1704, 6874, 1136],\n"," 441: [590, 318, 588, 356, 595, 364, 253, 1, 500, 474],\n"," 443: [965, 2186, 919, 1617, 2935, 931, 1066, 2324, 2208, 929],\n"," 444: [1079, 1234, 1220, 1968, 1380, 1641, 1285, 1136, 1784, 1101],\n"," 445: [2028, 965, 2186, 919, 1617, 2858, 2935, 931, 1066, 2324],\n"," 446: [590, 165, 110, 377, 364, 47, 153, 50, 1, 500],\n"," 447: [1193, 904, 541, 858, 1252, 750, 1208, 903, 908, 111],\n"," 448: [720, 1265, 852, 3624, 2891, 3254, 4448, 3578, 4002, 608],\n"," 449: [4993, 1176, 750, 4226, 1046, 6296, 5992, 4848, 3911, 1721],\n"," 450: [2959, 6711, 1258, 2692, 1206, 7361, 4878, 4011, 778, 8636],\n"," 451: [97, 2858, 714, 1094, 1147, 1304, 3753, 5378, 1394, 800],\n"," 452: [5952, 2959, 296, 4993, 1196, 7153, 3578, 1210, 4226, 2858],\n"," 453: [457, 593, 150, 480, 589, 590, 318, 110, 588, 161],\n"," 454: [380, 150, 480, 349, 318, 165, 161, 356, 316, 10],\n"," 455: [141, 1073, 494, 95, 17, 104, 653, 112, 1356, 1393],\n"," 456: [539, 597, 356, 587, 508, 357, 527, 377, 500, 480],\n"," 458: [2605, 2706, 2581, 1210, 1777, 2485, 2125, 2571, 2394, 1586],\n"," 459: [318, 1198, 50, 858, 4886, 1213, 1221, 4995, 8961, 33794],\n"," 460: [480, 589, 318, 356, 377, 364, 47, 50, 1, 500],\n"," 461: [62, 141, 494, 36, 95, 25, 6, 802, 104, 653],\n"," 462: [597, 150, 356, 587, 34, 508, 357, 339, 440, 527],\n"," 463: [590, 1961, 2396, 1094, 3104, 2243, 1962, 2355, 1247, 1271],\n"," 464: [356, 2355, 1265, 2567, 1136, 1215, 1196, 1220, 1060, 1343],\n"," 465: [2542, 5952, 3793, 2502, 32, 2571, 3052, 4886, 223, 1214],\n"," 466: [2571, 2959, 296, 4993, 1196, 7153, 3578, 318, 4226, 2858],\n"," 467: [2571, 5952, 2959, 296, 4993, 1196, 7153, 1210, 4226, 2858],\n"," 468: [50, 318, 36, 25, 223, 608, 293, 47, 246, 111],\n"," 469: [2959, 3481, 2542, 2329, 1258, 1732, 1206, 7361, 2502, 1089],\n"," 470: [2542, 4993, 3793, 2502, 5349, 293, 4886, 4011, 223, 6502],\n"," 471: [539, 597, 150, 587, 508, 593, 357, 339, 11, 440],\n"," 472: [508, 440, 527, 377, 110, 500, 17, 236, 474, 497],\n"," 473: [1, 36, 802, 104, 805, 653, 1210, 112, 1393, 3],\n"," 474: [1198, 32, 2028, 1374, 1617, 1291, 858, 1610, 1036, 1199],\n"," 475: [1732, 2858, 296, 1573, 593, 2762, 1617, 2908, 2028, 1639],\n"," 476: [4034, 2502, 3052, 4886, 223, 6502, 1219, 5618, 2918, 3499],\n"," 477: [3578, 2858, 356, 4306, 589, 110, 1704, 1270, 480, 6874],\n"," 479: [904, 541, 858, 923, 912, 903, 908, 913, 1221, 260],\n"," 480: [6711, 2542, 4034, 2329, 1258, 1732, 7361, 1089, 3052, 293],\n"," 481: [4027, 2997, 4973, 1258, 1732, 2692, 1206, 778, 4979, 5902],\n"," 482: [4027, 6711, 2858, 2997, 4034, 4973, 1258, 2692, 1206, 3996],\n"," 483: [508, 11, 440, 377, 282, 236, 588, 497, 62, 39],\n"," 484: [62, 1073, 36, 104, 1210, 3, 58, 7, 52, 14],\n"," 485: [1358, 1704, 2028, 590, 2324, 1961, 1242, 2194, 3104, 2243],\n"," 486: [2571, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n"," 487: [2355, 1265, 2567, 1136, 1215, 1196, 1220, 1343, 1968, 368],\n"," 488: [318, 165, 110, 588, 296, 356, 595, 316, 377, 292],\n"," 489: [541, 1252, 923, 912, 903, 908, 913, 1219, 1304, 1230],\n"," 490: [260, 2571, 1214, 541, 32, 593, 1374, 1356, 1617, 924],\n"," 491: [3481, 4027, 6711, 2997, 4993, 4034, 2329, 3793, 1732, 2692],\n"," 492: [431,\n"," 4308,\n"," 45186,\n"," 53322,\n"," 214,\n"," 49530,\n"," 306,\n"," 31696,\n"," 2858,\n"," 8644],\n"," 493: [4993, 5952, 1258, 1206, 2502, 223, 8636, 1214, 4979, 6502],\n"," 494: [588, 595, 10, 364, 434, 329, 153, 1, 474, 32],\n"," 495: [539, 597, 356, 587, 34, 508, 593, 357, 11, 457],\n"," 496: [2858, 1617, 2908, 2959, 1639, 39, 431, 1206, 1923, 4720],\n"," 497: [5952, 2959, 296, 3578, 2858, 356, 2028, 589, 260, 1036],\n"," 498: [6985, 7234, 7072, 3742, 1209, 1260, 3307, 1348, 8125, 6666],\n"," 499: [780, 733, 736, 141, 1073, 648, 494, 832, 95, 17],\n"," 500: [590, 2324, 1961, 858, 1242, 1094, 2762, 2194, 3104, 457],\n"," 501: [1307, 1259, 914, 1641, 3039, 1285, 1101, 1663, 1297, 342],\n"," 502: [1777, 2125, 3578, 2571, 1586, 2355, 780, 2424, 1197, 2006],\n"," 503: [1196, 1210, 260, 1036, 110, 47, 50, 1291, 1214, 1200],\n"," 504: [508, 110, 17, 480, 474, 588, 497, 62, 595, 39],\n"," 505: [508, 593, 357, 527, 500, 282, 350, 236, 474, 497],\n"," 506: [2571, 2028, 1617, 1610, 2916, 1199, 608, 1197, 1676, 1376],\n"," 507: [904, 912, 1219, 913, 1193, 928, 950, 903, 1198, 920],\n"," 508: [2571, 5952, 2959, 296, 4993, 7153, 3578, 318, 1210, 4226],\n"," 509: [4027, 2542, 2997, 4993, 4973, 3052, 4878, 1214, 4979, 3897],\n"," 510: [380, 349, 589, 165, 110, 316, 10, 377, 592, 292],\n"," 511: [457, 593, 480, 589, 318, 588, 356, 10, 377, 364],\n"," 512: [1584, 431, 4308, 11, 45186, 53322, 214, 1213, 49530, 31696],\n"," 513: [1358, 1962, 110, 3114, 1678, 1956, 2890, 1213, 1293, 1250],\n"," 515: [904, 1219, 913, 1193, 950, 903, 1198, 920, 1258, 953],\n"," 516: [1036, 50, 6377, 1080, 33794, 608, 7361, 2918, 1193, 16],\n"," 517: [36, 25, 527, 593, 608, 246, 111, 337, 353, 112],\n"," 518: [1200, 1198, 541, 32, 1374, 1356, 1617, 924, 1291, 858],\n"," 520: [371, 544, 68, 514, 270, 71, 315, 1302, 248, 440],\n"," 521: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 1210, 4226],\n"," 522: [904, 1252, 923, 912, 750, 903, 908, 527, 913, 1247],\n"," 523: [904, 1252, 923, 912, 750, 903, 908, 111, 913, 1136],\n"," 524: [3481, 1258, 3793, 1732, 7361, 32, 3996, 5349, 293, 4886],\n"," 525: [380, 480, 589, 161, 356, 377, 292, 364, 434, 47],\n"," 526: [62, 141, 17, 653, 1210, 112, 1393, 3, 58, 52],\n"," 527: [539, 597, 150, 587, 508, 593, 357, 11, 440, 457],\n"," 529: [2571, 5952, 2959, 4993, 1196, 7153, 3578, 318, 2858, 2762],\n"," 530: [539, 597, 356, 587, 508, 593, 357, 11, 440, 457],\n"," 531: [457, 593, 480, 349, 589, 165, 356, 377, 592, 364],\n"," 532: [1307, 1721, 608, 2804, 2918, 1259, 1704, 1220, 2301, 4350],\n"," 533: [2329, 1732, 293, 4886, 4878, 4011, 778, 4262, 5669, 3081],\n"," 534: [5464, 610, 2987, 1089, 5679, 2140, 1968, 1172, 593, 1193],\n"," 535: [7153, 4226, 2858, 2762, 2329, 1214, 1200, 3996, 1704, 1270],\n"," 536: [597, 356, 587, 11, 440, 527, 590, 110, 364, 318],\n"," 537: [1, 141, 1073, 32, 648, 832, 95, 802, 104, 653],\n"," 539: [457, 110, 161, 356, 595, 10, 344, 253, 231, 1],\n"," 540: [26, 637, 1042, 711, 708, 49278, 786, 719, 1752, 609],\n"," 541: [1234, 914, 919, 1285, 1663, 1297, 1304, 342, 2302, 2144],\n"," 542: [950, 1258, 1271, 2028, 1345, 969, 47, 1023, 2206, 1580],\n"," 543: [3481, 2542, 4034, 2329, 1732, 3052, 4011, 223, 4979, 3897],\n"," 544: [3578, 318, 1210, 4226, 2858, 2762, 356, 2028, 4306, 593],\n"," 545: [3578, 4306, 6539, 4963, 5445, 1527, 1784, 5418, 6333, 2628],\n"," 546: [26, 637, 1042, 711, 724, 708, 786, 12, 719, 1752],\n"," 547: [318, 165, 296, 10, 292, 47, 253, 50, 474, 288],\n"," 548: [371, 544, 68, 514, 270, 71, 315, 248, 342, 105],\n"," 549: [480, 589, 110, 356, 377, 364, 47, 50, 1, 500],\n"," 550: [111, 1206, 1213, 593, 1228, 235, 1199, 1080, 1172, 1175],\n"," 551: [2324, 608, 1961, 1617, 318, 2396, 1242, 1094, 2762, 2194],\n"," 552: [4027, 6711, 4993, 5952, 3793, 1732, 2692, 7361, 32, 3996],\n"," 553: [150, 590, 588, 595, 1, 527, 34, 204, 225, 21],\n"," 554: [541, 858, 1252, 923, 912, 750, 1208, 908, 1247, 1221],\n"," 555: [3481, 4034, 4973, 2692, 7361, 1214, 6502, 5902, 541, 5445],\n"," 556: [590, 380, 1, 592, 253, 555, 1020, 1036, 647, 852],\n"," 557: [733, 32, 648, 832, 36, 95, 25, 17, 104, 805],\n"," 558: [2542, 2997, 4973, 2329, 1258, 1732, 2692, 1206, 7361, 3052],\n"," 559: [2572, 2683, 2762, 2605, 2706, 2581, 3081, 1777, 2485, 2716],\n"," 560: [3481, 4027, 6711, 4993, 4973, 5952, 3793, 7361, 2502, 3996],\n"," 561: [318, 1198, 50, 858, 527, 1704, 1136, 1222, 1089, 1],\n"," 562: [376, 1, 524, 596, 281, 257, 708, 7, 289, 262],\n"," 563: [62, 736, 494, 832, 95, 6, 802, 104, 805, 653],\n"," 564: [1358, 1704, 2028, 590, 2324, 593, 1242, 1094, 2762, 2289],\n"," 565: [2571, 5952, 2959, 4993, 1196, 7153, 318, 1210, 4226, 2028],\n"," 566: [19, 21, 2028, 1784, 1004, 274, 2195, 1092, 575, 1610],\n"," 567: [17, 282, 509, 22, 224, 50, 265, 376, 151, 230],\n"," 568: [260, 1073, 832, 802, 805, 1210, 1356, 1393, 52, 788],\n"," 569: [150, 480, 589, 318, 110, 161, 356, 595, 316, 377],\n"," 570: [1358, 1704, 2028, 590, 2324, 1961, 858, 1617, 593, 2396],\n"," 571: [2959, 3481, 4027, 6711, 4993, 4034, 5952, 1258, 1732, 1206],\n"," 572: [5147,\n"," 33880,\n"," 4973,\n"," 3089,\n"," 2585,\n"," 3507,\n"," 6339,\n"," 6235,\n"," 27773,\n"," 2019],\n"," 573: [1961, 858, 1242, 2194, 3104, 2243, 1954, 1962, 1674, 1097],\n"," 574: [150, 590, 318, 110, 161, 356, 595, 316, 10, 592],\n"," 575: [1, 733, 32, 648, 36, 25, 6, 17, 104, 805],\n"," 576: [19, 1004, 274, 2195, 1092, 575, 2403, 3578, 1527, 3623],\n"," 577: [410, 193, 324, 2858, 2997, 532, 1564, 1148, 212, 327],\n"," 578: [2028, 593, 1617, 457, 50, 1197, 318, 47, 1213, 1527],\n"," 579: [1240, 1200, 2028, 1374, 1356, 1617, 924, 858, 1610, 2916],\n"," 580: [4027, 318, 2858, 1019, 2761, 1193, 1207, 3053, 912, 188],\n"," 581: [150, 34, 593, 339, 11, 440, 377, 590, 500, 17],\n"," 582: [541, 923, 750, 1221, 1136, 1206, 1213, 924, 922, 1148],\n"," 583: [4226, 2959, 3481, 4027, 6711, 2858, 2542, 2997, 4993, 4034],\n"," 584: [593, 150, 590, 318, 165, 110, 588, 296, 161, 595],\n"," 585: [1208, 1221, 1212, 1250, 1233, 1952, 1204, 1263, 3435, 3683],\n"," 586: [410, 193, 324, 2359, 2336, 1252, 532, 3112, 2341, 212],\n"," 587: [2571, 5952, 2959, 4993, 7153, 3578, 4226, 2858, 2762, 2028],\n"," 588: [150, 11, 110, 17, 282, 350, 236, 161, 141, 349],\n"," 589: [1252, 923, 912, 903, 908, 111, 913, 1247, 1221, 1136],\n"," 590: [1214, 541, 32, 1374, 1356, 1617, 924, 858, 1199, 1197],\n"," 591: [720, 3624, 2891, 608, 736, 2108, 6016, 2976, 1537, 2609],\n"," 592: [260, 1196, 1240, 1210, 589, 1200, 2571, 1198, 1214, 541],\n"," 593: [377, 329, 1, 500, 474, 527, 32, 204, 442, 733],\n"," 594: [736, 141, 32, 494, 36, 95, 25, 6, 17, 802],\n"," 595: [2028, 2324, 1617, 318, 2396, 1094, 3104, 457, 1641, 2355],\n"," 596: [4027, 1732, 1639, 2997, 1500, 2890, 2692, 2108, 5004, 4086],\n"," 597: [720, 852, 3624, 2891, 3254, 4448, 3578, 4002, 3745, 4223],\n"," 598: [1617, 904, 912, 913, 1193, 928, 950, 903, 1198, 920],\n"," 599: [2028, 2858, 2324, 1207, 364, 593, 318, 2731, 3114, 2700],\n"," 600: [2571, 5952, 296, 4993, 1196, 7153, 318, 2762, 356, 2028],\n"," 601: [590, 350, 497, 161, 509, 224, 50, 105, 265, 376],\n"," 602: [1196, 1240, 589, 1200, 2571, 1214, 541, 32, 2028, 1374],\n"," 603: [260, 3083, 2080, 912, 899, 2137, 3448, 1094, 3189, 3174],\n"," 604: [1, 141, 494, 17, 802, 653, 1356, 3, 58, 7],\n"," 605: [593, 246, 111, 300, 232, 6, 16, 509, 31, 175],\n"," 606: [1240, 541, 32, 593, 1374, 1356, 1617, 924, 1291, 1036],\n"," 607: [2571, 2959, 296, 4993, 1196, 7153, 3578, 1210, 2858, 2762],\n"," 608: [2571, 5952, 4993, 1196, 7153, 3578, 318, 1210, 4226, 2858],\n"," 609: [1, 474, 204, 442, 733, 586, 786, 196, 553, 6],\n"," 610: [541, 1252, 912, 608, 750, 1208, 908, 111, 913, 1221],\n"," 612: [260, 608, 832, 25, 17, 802, 104, 805, 653, 1210],\n"," 613: [2572, 2683, 2762, 2605, 2706, 2581, 3081, 1210, 1777, 2485],\n"," 614: [1210, 589, 2571, 1214, 541, 32, 593, 1374, 1356, 1617],\n"," 616: [1196, 4306, 858, 2329, 1214, 1200, 3996, 1704, 1270, 6874],\n"," 617: [318, 282, 266, 509, 22, 277, 224, 367, 105, 376],\n"," 618: [2324, 1961, 858, 1242, 2194, 3104, 2289, 2243, 36, 1962],\n"," 619: [1196, 2571, 541, 32, 593, 1374, 1356, 1617, 924, 1291],\n"," 620: [3578, 2959, 2858, 527, 2707, 589, 2571, 4993, 3157, 1176],\n"," 621: [2542, 2329, 5952, 2692, 4878, 4011, 3897, 1748, 4848, 7153],\n"," 622: [1200, 1214, 1374, 1356, 1617, 1291, 858, 1036, 2916, 1199],\n"," 623: [508, 357, 527, 282, 236, 497, 586, 292, 22, 224],\n"," 624: [2762, 3081, 1210, 1777, 2716, 2125, 3578, 2571, 2394, 2396],\n"," 625: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 318],\n"," 627: [6539, 6377, 3793, 4886, 780, 4995, 5989, 6378, 2959, 3408],\n"," 628: [539, 597, 356, 587, 34, 508, 593, 357, 339, 11],\n"," 629: [539, 597, 356, 587, 508, 593, 357, 440, 457, 527],\n"," 630: [260, 608, 62, 141, 1073, 832, 36, 6, 17, 1210],\n"," 631: [904, 541, 858, 1252, 923, 912, 608, 1208, 903, 908],\n"," 632: [4022, 356, 1625, 1610, 1833, 2706, 3101, 1552, 479, 260],\n"," 633: [1247, 910, 924, 1212, 1148, 235, 1952, 969, 1199, 899],\n"," 634: [1234, 2797, 2791, 1380, 914, 919, 3039, 1663, 1297, 2918],\n"," 635: [5418, 1307, 318, 4995, 260, 3083, 608, 2080, 912, 899],\n"," 636: [4226, 2959, 2858, 2997, 1258, 1732, 7361, 2502, 32, 3996],\n"," 637: [2572, 2683, 2605, 2706, 2581, 3081, 1210, 1777, 2485, 2716],\n"," 638: [593, 457, 377, 364, 480, 474, 588, 497, 595, 161],\n"," 639: [2571, 1196, 3578, 1210, 4226, 2858, 2762, 2028, 589, 260],\n"," 640: [296, 2762, 593, 260, 1036, 50, 2329, 527, 1200, 3996],\n"," 641: [150, 165, 110, 588, 356, 292, 364, 434, 47, 253],\n"," 642: [1358, 2324, 1962, 1641, 527, 110, 1299, 1610, 1584, 1207],\n"," 643: [2948, 2947, 2951, 5060, 3508, 2186, 2949, 861, 1198, 2406],\n"," 644: [32, 1374, 1356, 1617, 924, 858, 1610, 2916, 1199, 296],\n"," 645: [593, 349, 329, 344, 50, 1, 288, 225, 339, 733],\n"," 646: [150, 349, 589, 318, 165, 110, 161, 316, 10, 377],\n"," 647: [708, 362, 1196, 1028, 1097, 260, 1029, 79, 1035, 1012],\n"," 648: [750, 1208, 908, 527, 1221, 1136, 260, 1206, 1219, 1304],\n"," 649: [2571, 5952, 2959, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n"," 650: [2959, 4027, 6711, 4973, 5952, 1732, 2692, 1206, 7361, 32],\n"," 651: [904, 1208, 111, 913, 1304, 1230, 924, 593, 922, 1234],\n"," 652: [296, 1271, 2797, 1721, 318, 2858, 260, 1246, 3083, 608],\n"," 653: [431,\n"," 4308,\n"," 45186,\n"," 53322,\n"," 214,\n"," 49530,\n"," 306,\n"," 31696,\n"," 2858,\n"," 8644],\n"," 654: [589, 377, 364, 47, 50, 1, 500, 474, 527, 454],\n"," 655: [1079, 1234, 1278, 1220, 2797, 2406, 1968, 2791, 914, 1641],\n"," 656: [357, 457, 527, 590, 17, 282, 497, 454, 62, 586],\n"," 657: [3793, 2692, 1206, 2502, 293, 4886, 4011, 1748, 4848, 5618],\n"," 658: [3481, 4027, 6711, 2997, 4993, 4034, 4973, 5952, 1258, 3793],\n"," 659: [2959, 3578, 2028, 110, 50, 1291, 2329, 1270, 480, 6539],\n"," 660: [5952, 4993, 1196, 7153, 1210, 4226, 589, 260, 1036, 1198],\n"," 661: [539, 357, 339, 11, 17, 350, 236, 474, 497, 62],\n"," 662: [1252, 923, 1208, 903, 908, 527, 913, 1247, 1136, 1207],\n"," 663: [1702, 158, 1713, 239, 256, 2142, 2083, 2089, 1196, 1373],\n"," 664: [7445, 7254, 3897, 1831, 3701, 7022, 180, 5952, 4993, 2424],\n"," 665: [904, 858, 527, 913, 1247, 1221, 1136, 1207, 260, 1219],\n"," 666: [3578, 318, 1210, 2762, 356, 2028, 4306, 593, 589, 260],\n"," 667: [762, 662, 280, 1476, 828, 467, 8327, 836, 2019, 733],\n"," 668: [1193, 904, 541, 858, 1252, 912, 608, 1208, 903, 908],\n"," 669: [595, 10, 377, 364, 434, 47, 50, 1, 500, 474],\n"," 670: [1, 260, 608, 736, 32, 648, 494, 832, 95, 25],\n"," 671: [904, 913, 1207, 910, 1234, 1148, 1276, 1250, 969, 1179],\n"," 672: [5952, 4993, 7153, 318, 4226, 4306, 1036, 1214, 1200, 3996],\n"," 674: [1198, 32, 2028, 1617, 1291, 858, 1610, 2916, 1199, 296],\n"," 675: [2858, 3408, 2762, 1833, 50, 2706, 1249, 2683, 1127, 3101],\n"," 676: [539, 597, 356, 587, 34, 508, 593, 357, 440, 457],\n"," 677: [349, 165, 595, 329, 47, 153, 50, 1, 32, 288],\n"," 678: [904, 111, 1207, 1230, 910, 922, 1212, 1148, 1617, 1288],\n"," 679: [1307, 1197, 1079, 1278, 1220, 1028, 2797, 1097, 2406, 1968],\n"," 680: [3468, 1683, 4034, 5013, 3022, 3983, 4226, 919, 1617, 903],\n"," 681: [4022, 356, 1625, 1610, 2762, 1833, 50, 2706, 1249, 593],\n"," 683: [4963, 3147, 2762, 2353, 4896, 4995, 597, 5989, 2959, 3408],\n"," 684: [527, 1097, 1193, 2762, 1080, 919, 2028, 2858, 3545, 3534],\n"," 685: [62, 494, 832, 95, 802, 104, 112, 1393, 58, 7],\n"," 686: [1356, 1610, 1199, 296, 1676, 318, 1148, 1127, 47, 110],\n"," 688: [2542, 4973, 7361, 2502, 3996, 293, 4878, 223, 8636, 3897],\n"," 689: [589, 165, 10, 377, 364, 329, 47, 253, 50, 1],\n"," 690: [608, 62, 1073, 32, 494, 832, 36, 25, 17, 805],\n"," 691: [2567, 1215, 1343, 1500, 1457, 1079, 373, 1515, 1270, 3114],\n"," 693: [539, 34, 508, 11, 440, 377, 590, 500, 282, 236],\n"," 694: [904, 541, 858, 1252, 923, 608, 750, 1208, 903, 908],\n"," 695: [2572, 2762, 2605, 2706, 3081, 1210, 1777, 2716, 3578, 2355],\n"," 696: [2605, 1210, 1777, 2485, 2716, 2125, 3578, 2571, 2394, 1586],\n"," 697: [3468, 1683, 4034, 5013, 3022, 3983, 4226, 2858, 919, 1617],\n"," 698: [3481, 4027, 2997, 4034, 4973, 2692, 2502, 5349, 3052, 293],\n"," 699: [2087, 2143, 1006, 1354, 3020, 2161, 2683, 2023, 1221, 858],\n"," 700: [110, 296, 595, 364, 434, 329, 253, 231, 50, 500],\n"," 701: [380, 593, 150, 480, 349, 589, 590, 318, 165, 110],\n"," 702: [2571, 1198, 2028, 1356, 1617, 1291, 858, 1610, 1036, 2916],\n"," 703: [1307, 1197, 1079, 1234, 1220, 1028, 2797, 1097, 2406, 1259],\n"," 704: [3147, 6539, 356, 6377, 4018, 5299, 597, 6378, 2763, 588],\n"," 705: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210],\n"," 706: [260, 608, 62, 1073, 832, 36, 95, 6, 17, 802],\n"," 707: [1219, 2683, 2268, 648, 858, 1252, 1230, 2764, 1221, 1213],\n"," 708: [1196, 1210, 1198, 593, 1374, 1356, 1617, 1291, 1610, 1036],\n"," 709: [1240, 1210, 1214, 541, 32, 593, 1356, 924, 1291, 1036],\n"," 710: [904, 541, 923, 912, 1208, 903, 111, 913, 1247, 1136],\n"," 711: [2858, 4022, 356, 1625, 3408, 1610, 2762, 1833, 50, 2706],\n"," 712: [539, 597, 587, 34, 508, 593, 339, 11, 440, 457],\n"," 714: [1196, 1210, 593, 589, 1036, 47, 1214, 1200, 1222, 1089],\n"," 715: [457, 593, 480, 349, 589, 590, 318, 110, 356, 377],\n"," 716: [858, 1036, 1676, 110, 1387, 1089, 1201, 2288, 1275, 223],\n"," 718: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 318],\n"," 719: [1020, 1036, 647, 852, 1569, 1035, 541, 1042, 1021, 1566],\n"," 720: [589, 165, 110, 595, 316, 10, 592, 434, 329, 153],\n"," 721: [597, 150, 356, 508, 593, 357, 339, 440, 457, 527],\n"," 723: [296, 1196, 1210, 2858, 2028, 593, 260, 1036, 1198, 50],\n"," 724: [780, 62, 736, 494, 832, 36, 95, 25, 6, 802],\n"," 725: [2863, 2804, 2948, 2947, 1136, 2160, 2951, 1197, 2918, 1997],\n"," 726: [260, 1240, 589, 1200, 2571, 1214, 541, 32, 2028, 1374],\n"," 727: [349, 589, 588, 161, 316, 10, 592, 292, 434, 329],\n"," 728: [260, 1200, 1198, 1214, 541, 32, 593, 1374, 1356, 1617],\n"," 729: [539, 597, 356, 587, 508, 593, 357, 440, 457, 527],\n"," 730: [457, 593, 480, 589, 110, 161, 356, 377, 292, 364],\n"," 731: [1234, 1278, 1220, 1028, 2791, 1380, 1641, 3039, 1297, 2396],\n"," 732: [1465, 1231, 457, 2943, 531, 1056, 593, 3082, 1277, 474],\n"," 733: [2959, 2858, 527, 3157, 1176, 4022, 750, 593, 4226, 2712],\n"," 734: [762, 662, 608, 1476, 828, 467, 8327, 836, 2797, 2028],\n"," 735: [150, 349, 589, 318, 588, 595, 10, 329, 344, 1],\n"," 736: [356, 296, 1271, 5418, 2797, 1307, 1721, 318, 2858, 4995],\n"," 737: [260, 608, 62, 141, 1073, 494, 832, 36, 95, 25],\n"," 738: [608, 62, 736, 36, 25, 6, 17, 802, 104, 805],\n"," 739: [2858, 4022, 3408, 2706, 1127, 3101, 260, 3751, 1210, 1961],\n"," 740: [1240, 589, 1200, 1214, 541, 32, 1374, 1356, 1617, 924],\n"," 741: [260, 1240, 1210, 1200, 1198, 1214, 541, 32, 2028, 1374],\n"," 742: [3753, 2763, 3510, 3623, 1917, 2396, 4367, 8368, 3255, 858],\n"," 743: [457, 593, 150, 349, 589, 590, 318, 165, 110, 161],\n"," 744: [590, 2324, 608, 1961, 1617, 2396, 1242, 1094, 2762, 3104],\n"," 745: [4973, 2329, 5952, 2692, 1206, 7361, 3052, 4878, 8636, 6502],\n"," 746: [2054, 370, 1019, 1380, 1193, 912, 188, 2599, 1203, 432],\n"," 748: [296, 36, 223, 32, 593, 608, 293, 111, 337, 353],\n"," 749: [260, 733, 608, 62, 736, 141, 32, 494, 832, 36],\n"," 750: [55820, 1213, 1222, 7361, 1234, 858, 5147, 923, 4873, 44195],\n"," 751: [457, 380, 480, 589, 318, 110, 296, 356, 377, 292],\n"," 752: [457, 593, 480, 589, 318, 110, 356, 377, 292, 364],\n"," 753: [1358, 2028, 590, 2324, 858, 1617, 2396, 1242, 1094, 2762],\n"," 754: [2959, 2858, 527, 2707, 589, 3157, 1176, 750, 593, 2712],\n"," 755: [25, 32, 608, 47, 111, 353, 112, 235, 290, 6],\n"," 756: [260, 494, 104, 1210, 1356, 1393, 3, 788, 858, 5],\n"," 757: [1234, 1278, 1028, 2797, 2406, 1968, 2791, 1380, 914, 919],\n"," 758: [457, 380, 480, 589, 318, 165, 296, 161, 356, 316],\n"," 759: [1200, 593, 1617, 924, 858, 1199, 296, 608, 50, 318],\n"," 761: [3147, 3578, 5349, 6377, 4701, 4025, 4246, 4896, 4995, 4018],\n"," 762: [32, 832, 36, 6, 805, 1210, 1356, 1393, 3, 52],\n"," 763: [1193, 904, 541, 858, 1252, 923, 912, 608, 750, 1208],\n"," 764: [3578, 2707, 589, 2571, 4993, 3157, 4022, 750, 4226, 1046],\n"," 765: [1358, 1704, 2324, 1961, 318, 2396, 1242, 2194, 2289, 2243],\n"," 766: [5952, 2959, 296, 4993, 7153, 3578, 4226, 2762, 4306, 593],\n"," 767: [88, 1552, 743, 1982, 724, 1562, 2953, 1210, 575, 1573],\n"," 768: [5464, 610, 2987, 1089, 5679, 7445, 2140, 1968, 1172, 7254],\n"," 769: [34, 377, 364, 595, 161, 380, 589, 105, 736, 733],\n"," 770: [608, 62, 32, 36, 25, 6, 104, 1210, 112, 1393],\n"," 771: [1197, 1079, 1234, 1278, 1220, 1259, 1380, 2100, 1285, 1136],\n"," 772: [4226, 2959, 4027, 2858, 2329, 5952, 1258, 2692, 7361, 2502],\n"," 773: [786, 362, 1028, 1029, 79, 1035, 1012, 1022, 661, 1198],\n"," 774: [2571, 5952, 2959, 296, 4993, 1196, 3578, 1210, 4226, 2858],\n"," 775: [508, 593, 357, 527, 110, 282, 62, 21, 509, 292],\n"," 776: [2324, 608, 1961, 1617, 318, 2396, 1242, 2762, 2194, 3104],\n"," 777: [1210, 97, 2571, 1304, 3753, 5378, 1287, 3947, 4643, 920],\n"," 780: [1704, 2289, 2243, 2858, 1299, 2355, 1247, 1207, 1960, 1272],\n"," 781: [260, 1196, 1240, 1210, 589, 1200, 2571, 1198, 1214, 541],\n"," 782: [608, 25, 50, 296, 1120, 110, 1968, 1912, 1041, 3125],\n"," 783: [2959, 296, 3578, 1210, 4226, 2858, 2762, 356, 2028, 589],\n"," 784: [1200, 1222, 1089, 4011, 1080, 1527, 4973, 2502, 1617, 7361],\n"," 785: [150, 34, 508, 339, 11, 440, 364, 500, 282, 474],\n"," 786: [2572, 2683, 2706, 1777, 2716, 2396, 1586, 2355, 2710, 2424],\n"," 787: [1358, 2028, 590, 1617, 318, 593, 2396, 1094, 2762, 2194],\n"," 788: [3481, 2542, 4034, 4973, 1732, 2692, 1206, 2502, 1089, 4878],\n"," 789: [34, 17, 282, 236, 497, 39, 22, 277, 224, 367],\n"," 790: [1193, 923, 912, 608, 750, 1208, 903, 908, 913, 1207],\n"," 791: [3468, 1683, 4034, 5013, 3983, 4226, 1617, 903, 1084, 3307],\n"," 792: [457, 593, 480, 589, 110, 356, 595, 10, 377, 364],\n"," 793: [2959, 296, 318, 2858, 2762, 356, 2028, 593, 589, 1036],\n"," 794: [1193, 904, 541, 1252, 923, 912, 608, 750, 1208, 903],\n"," 795: [34, 357, 339, 11, 440, 17, 282, 236, 588, 497],\n"," 796: [733, 141, 1073, 32, 494, 832, 36, 95, 25, 6],\n"," 797: [2858, 852, 3624, 2891, 3254, 4448, 3745, 4223, 736, 4963],\n"," 798: [3481, 4027, 4034, 2329, 1732, 7361, 2502, 3052, 4011, 223],\n"," 799: [364, 47, 253, 50, 1, 32, 34, 204, 442, 21],\n"," 800: [733, 608, 494, 832, 36, 95, 25, 17, 805, 653],\n"," 801: [318, 2858, 2762, 356, 1036, 50, 858, 1240, 1222, 1213],\n"," 802: [150, 34, 357, 339, 11, 110, 364, 17, 282, 236],\n"," 803: [1358, 1617, 3104, 527, 2355, 2336, 1095, 3114, 2916, 2571],\n"," 804: [457, 380, 150, 480, 349, 589, 590, 318, 165, 588],\n"," 805: [2959, 296, 318, 4226, 2858, 2762, 356, 2028, 589, 1036],\n"," 806: [539, 597, 587, 508, 17, 350, 474, 497, 62, 141],\n"," 807: [457, 593, 480, 589, 110, 356, 595, 316, 377, 364],\n"," 808: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 6539, 356, 2762],\n"," 809: [1833, 2706, 593, 2683, 3101, 1552, 479, 608, 1210, 3675],\n"," 810: [597, 150, 587, 34, 508, 593, 357, 339, 11, 440],\n"," 811: [260, 608, 32, 832, 36, 6, 802, 104, 805, 1210],\n"," 812: [34, 357, 590, 110, 39, 161, 266, 21, 296, 509],\n"," 813: [1358, 1704, 590, 608, 1961, 1617, 318, 593, 1242, 1094],\n"," 814: [1197, 1079, 1270, 1028, 2797, 1097, 1968, 1259, 1380, 914],\n"," 815: [2959, 3578, 318, 4226, 2858, 1036, 47, 50, 1291, 2329],\n"," 816: [380, 480, 589, 165, 110, 356, 377, 364, 434, 329],\n"," 817: [2028, 590, 608, 858, 1617, 593, 2396, 1242, 2762, 3104],\n"," 818: [371, 544, 68, 514, 270, 71, 315, 1302, 248, 1196],\n"," 819: [720, 2858, 1265, 852, 3624, 2891, 4448, 3578, 4002, 608],\n"," 820: [3481, 2542, 4034, 2329, 4011, 223, 778, 3897, 6502, 4262],\n"," 821: [2571, 4993, 4963, 3578, 5349, 1580, 6539, 2273, 6377, 4701],\n"," 822: [36, 32, 593, 608, 47, 555, 337, 353, 290, 6],\n"," 823: [786, 708, 362, 79, 531, 852, 919, 1270, 1015, 837],\n"," 824: [923, 527, 111, 913, 1267, 1230, 1213, 50, 296, 1148],\n"," 825: [1617, 904, 912, 1219, 913, 928, 950, 903, 1207, 1258],\n"," 826: [2329, 2692, 2502, 5349, 293, 4886, 8636, 2762, 2395, 5669],\n"," 827: [593, 589, 318, 110, 296, 434, 329, 47, 253, 50],\n"," 828: [593, 150, 590, 318, 588, 161, 356, 595, 329, 344],\n"," 829: [608, 25, 104, 112, 1356, 1393, 58, 52, 788, 14],\n"," 830: [1307, 1079, 1234, 1278, 1270, 2797, 2791, 914, 919, 1641],\n"," 831: [2762, 2581, 3081, 3578, 2571, 2394, 1586, 2355, 780, 1197],\n"," 832: [1200, 2571, 1198, 2028, 593, 1356, 1617, 1291, 858, 1610],\n"," 833: [1699, 1429, 7153, 923, 2791, 3897, 2541, 627, 837, 1234],\n"," 834: [5952, 296, 4993, 7153, 3578, 1210, 589, 260, 1036, 1198],\n"," 835: [150, 587, 34, 527, 377, 590, 110, 364, 17, 282],\n"," 836: [141, 1073, 494, 36, 25, 802, 104, 805, 1210, 1393],\n"," 837: [370, 256, 19, 410, 420, 333, 248, 355, 455, 466],\n"," 838: [3244,\n"," 3707,\n"," 2918,\n"," 8405,\n"," 3189,\n"," 27878,\n"," 3733,\n"," 1569,\n"," 2949,\n"," 1090],\n"," 839: [1230, 3244, 3707, 1233, 2918, 1240, 1358, 3347, 2396, 1197],\n"," 840: [1028, 1259, 1380, 3039, 1784, 1101, 1297, 342, 1777, 594],\n"," 841: [2959, 2858, 527, 2707, 3157, 1176, 4022, 593, 2712, 16],\n"," 842: [457, 380, 593, 480, 349, 589, 318, 165, 296, 161],\n"," 843: [923, 912, 608, 908, 913, 1213, 593, 922, 1212, 50],\n"," 844: [1465, 1231, 1225, 2943, 531, 1056, 509, 2804, 613, 3469],\n"," 846: [36, 608, 111, 337, 232, 290, 778, 52, 288, 468],\n"," 847: [1702, 158, 1713, 239, 256, 2142, 2083, 2089, 1196, 588],\n"," 848: [50, 318, 36, 223, 527, 32, 593, 608, 293, 47],\n"," 849: [371, 318, 544, 68, 514, 270, 71, 315, 1302, 248],\n"," 851: [5952, 2959, 4993, 7153, 3578, 318, 4226, 2858, 2028, 593],\n"," 852: [150, 165, 110, 316, 10, 292, 329, 153, 50, 1],\n"," 853: [260, 832, 25, 17, 802, 805, 1210, 1356, 1393, 858],\n"," 854: [1358, 1704, 590, 1617, 318, 2396, 1242, 1094, 3104, 2289],\n"," 855: [1358, 1704, 2028, 590, 1961, 858, 2396, 1242, 1094, 2762],\n"," 856: [260, 1196, 1240, 1210, 1200, 1198, 1214, 541, 32, 593],\n"," 857: [2959, 296, 318, 1210, 4226, 2858, 2762, 4306, 260, 1198],\n"," 859: [318, 2858, 4306, 47, 50, 2329, 527, 1214, 6874, 32],\n"," 860: [410, 193, 324, 534, 2858, 2336, 1183, 1252, 2997, 532],\n"," 861: [5952, 2959, 4993, 1196, 7153, 3578, 318, 1210, 4226, 2858],\n"," 862: [508, 593, 11, 590, 110, 17, 497, 62, 161, 141],\n"," 863: [260, 1196, 1240, 1200, 1198, 1214, 541, 1374, 924, 1291],\n"," 864: [4014,\n"," 8645,\n"," 3148,\n"," 4296,\n"," 6870,\n"," 2023,\n"," 40819,\n"," 3252,\n"," 5364,\n"," 30707],\n"," 865: [5952, 4993, 2762, 2028, 589, 1036, 1198, 1291, 858, 2329],\n"," 866: [1240, 589, 2571, 541, 2028, 1356, 1617, 924, 1291, 1610],\n"," 867: [6711, 2542, 1258, 1206, 7361, 2502, 32, 1089, 3052, 293],\n"," 868: [260, 1196, 1240, 1200, 2571, 1198, 1214, 541, 2028, 1374],\n"," 869: [1639, 2997, 3996, 1500, 2890, 1747, 5004, 4086, 1213, 912],\n"," 870: [50, 36, 32, 608, 47, 555, 353, 235, 307, 290],\n"," 871: [910, 1212, 1148, 2019, 1617, 1254, 1250, 2858, 1233, 1952],\n"," 872: [904, 541, 858, 923, 912, 608, 750, 903, 908, 527],\n"," 873: [912, 527, 3244, 260, 2918, 1240, 3347, 1197, 8405, 3189],\n"," 874: [2273, 4701, 4025, 2353, 4018, 5299, 6378, 3977, 3052, 3510],\n"," 875: [539, 597, 34, 11, 440, 457, 377, 110, 364, 500],\n"," 876: [150, 587, 34, 508, 357, 11, 110, 364, 17, 350],\n"," 878: [1304, 910, 1212, 1234, 1148, 1276, 1617, 1254, 2858, 1233],\n"," 879: [858, 1699, 1429, 7153, 923, 2541, 1587, 627, 837, 1208],\n"," 881: [349, 434, 1, 204, 21, 733, 300, 786, 196, 1036],\n"," 882: [733, 608, 1073, 494, 832, 36, 6, 17, 802, 104],\n"," 883: [539, 597, 150, 356, 587, 34, 508, 593, 357, 339],\n"," 884: [260, 780, 733, 608, 494, 832, 36, 95, 25, 6],\n"," 885: [1234, 1278, 1394, 1663, 1297, 2144, 2371, 440, 2150, 902],\n"," 886: [2324, 1954, 110, 2355, 1247, 1207, 1272, 3114, 2890, 1183],\n"," 887: [1358, 2324, 608, 1961, 858, 2396, 1242, 1094, 2762, 2194],\n"," 888: [296, 50, 318, 36, 25, 223, 527, 32, 593, 608],\n"," 889: [539, 597, 356, 587, 508, 593, 357, 11, 440, 457],\n"," 890: [2901, 1732, 2976, 593, 1617, 2908, 1639, 2396, 2320, 1620],\n"," 891: [593, 858, 2329, 6874, 6539, 1136, 1222, 1089, 1213, 6377],\n"," 892: [337, 112, 232, 235, 307, 290, 306, 509, 31, 288],\n"," 893: [2959, 296, 4993, 7153, 1210, 4226, 2858, 2762, 356, 4306],\n"," 894: [296, 50, 318, 36, 25, 223, 527, 32, 593, 608],\n"," 895: [457, 593, 480, 349, 318, 165, 110, 292, 47, 50],\n"," 896: [318, 246, 111, 555, 337, 300, 232, 6, 16, 509],\n"," 897: [457, 150, 480, 349, 589, 318, 588, 161, 356, 377],\n"," 898: [1240, 1200, 1198, 2028, 593, 1374, 1617, 924, 1291, 858],\n"," 899: [539, 597, 356, 587, 508, 593, 357, 11, 440, 457],\n"," 900: [3, 58, 628, 140, 135, 1405, 76, 748, 743, 671],\n"," 901: [5952, 2959, 296, 4993, 1196, 7153, 3578, 1210, 4226, 2858],\n"," 902: [110, 527, 32, 541, 6377, 1221, 1961, 4973, 4878, 2502],\n"," 903: [608, 1073, 832, 36, 25, 6, 17, 104, 805, 653],\n"," 904: [2028, 1961, 858, 593, 2396, 1242, 2762, 2194, 3104, 2289],\n"," 905: [762, 662, 280, 828, 467, 8327, 836, 2019, 1291, 441],\n"," 906: [1258, 3793, 5349, 3052, 4886, 47, 8636, 1214, 4979, 6502],\n"," 907: [588, 161, 595, 316, 292, 434, 329, 1, 34, 185],\n"," 908: [32, 593, 1617, 1199, 296, 608, 50, 1197, 318, 1148],\n"," 909: [4226, 3481, 4027, 6711, 2542, 4034, 4973, 1732, 2692, 1206],\n"," 910: [2571, 1196, 3578, 1210, 2762, 356, 2028, 589, 260, 1036],\n"," 911: [786, 708, 1097, 1029, 79, 1012, 1022, 661, 531, 852],\n"," 912: [2028, 965, 2186, 919, 2858, 2935, 931, 1066, 2324, 2208],\n"," 913: [1465, 2943, 531, 1056, 3082, 1277, 590, 613, 4709, 2397],\n"," 914: [1270, 1246, 280, 608, 828, 8327, 2019, 1291, 2797, 2028],\n"," 915: [1220, 2406, 1380, 914, 919, 1641, 1285, 1136, 1101, 1663],\n"," 916: [2571, 5952, 296, 1196, 7153, 3578, 318, 1210, 4226, 2858],\n"," 917: [260, 32, 494, 6, 802, 104, 805, 1210, 112, 1356],\n"," 918: [608, 141, 32, 36, 25, 6, 17, 805, 112, 58],\n"," 919: [26, 637, 1042, 711, 724, 708, 49278, 12, 719, 609],\n"," 920: [527, 3707, 1233, 2918, 1358, 3347, 2396, 1197, 8405, 3189],\n"," 921: [1230, 527, 3244, 3707, 260, 1233, 2918, 1240, 1358, 3347],\n"," 922: [4025, 3793, 2353, 5989, 6378, 3408, 1704, 2028, 3052, 2763],\n"," 923: [260, 62, 736, 32, 648, 832, 36, 25, 17, 802],\n"," 924: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 593],\n"," 925: [2863, 2948, 2918, 1256, 346, 1580, 2363, 2186, 2949, 2273],\n"," 926: [858, 2396, 1252, 1699, 1704, 593, 1429, 3671, 1148, 2541],\n"," 927: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 4226],\n"," 928: [7153, 2028, 1036, 110, 1291, 858, 527, 1214, 1200, 1704],\n"," 930: [34, 357, 11, 440, 110, 364, 17, 497, 454, 62],\n"," 931: [1, 260, 608, 62, 141, 648, 832, 36, 95, 25],\n"," 932: [150, 356, 508, 339, 440, 527, 590, 110, 318, 500],\n"," 933: [1374, 924, 858, 1199, 608, 1197, 1376, 1148, 110, 1213],\n"," 934: [2959, 7254, 1006, 1354, 1967, 3020, 2683, 318, 2023, 1221],\n"," 935: [19, 21, 1784, 274, 2195, 1092, 575, 1527, 590, 2329],\n"," 936: [318, 1270, 1, 1213, 1527, 2716, 1580, 2918, 2628, 3114],\n"," 937: [2571, 296, 4993, 1196, 3578, 1210, 4226, 2858, 356, 2028],\n"," 938: [480, 589, 165, 110, 588, 356, 595, 10, 377, 592],\n"," 939: [62, 494, 25, 17, 802, 104, 805, 653, 1210, 112],\n"," 940: [431,\n"," 11,\n"," 45186,\n"," 53322,\n"," 1213,\n"," 49530,\n"," 31696,\n"," 8644,\n"," 3298,\n"," 1573],\n"," 941: [370, 256, 19, 410, 420, 333, 248, 355, 455, 466],\n"," 942: [150, 480, 589, 590, 110, 161, 356, 377, 364, 47],\n"," 943: [466, 104, 543, 88, 520, 1552, 2717, 2735, 743, 1982],\n"," 945: [780, 608, 648, 832, 36, 95, 6, 104, 805, 1210],\n"," 946: [1200, 541, 2028, 1036, 1199, 296, 318, 1148, 1270, 47],\n"," 947: [5952, 2959, 296, 4993, 7153, 3578, 318, 4226, 2858, 2762],\n"," 948: [1358, 590, 1961, 1242, 2194, 3104, 2289, 2243, 1954, 1962],\n"," 949: [1732, 2890, 1747, 4086, 4242, 246, 5303, 1468, 608, 4034],\n"," 950: [4226, 2959, 3481, 4027, 2542, 4993, 4034, 4973, 5952, 3793],\n"," 951: [260, 25, 802, 805, 1210, 1356, 1393, 3, 58, 52],\n"," 952: [1, 608, 141, 32, 36, 25, 6, 104, 653, 112],\n"," 953: [1343, 2396, 1457, 373, 1515, 1967, 73, 919, 1197, 892],\n"," 954: [5952, 296, 4993, 7153, 318, 4226, 2858, 356, 4306, 593],\n"," 955: [1230, 912, 3244, 3707, 260, 1233, 1240, 1358, 3347, 8405],\n"," 956: [316, 1, 204, 733, 786, 196, 173, 6, 1036, 780],\n"," 957: [1704, 2324, 2396, 1094, 2762, 2194, 3104, 2289, 2243, 1962],\n"," 958: [4993, 4963, 3147, 3578, 1580, 6539, 356, 2273, 6377, 4701],\n"," 960: [50, 318, 36, 25, 223, 32, 293, 246, 111, 555],\n"," 961: [904, 541, 858, 1252, 923, 912, 608, 750, 1208, 903],\n"," 962: [356, 1625, 1610, 2762, 1833, 50, 1249, 593, 1127, 3101],\n"," 963: [296, 50, 318, 36, 25, 223, 527, 32, 593, 608],\n"," 964: [5952, 4993, 7153, 2858, 2762, 4306, 1198, 50, 1291, 1214],\n"," 965: [25, 527, 293, 555, 337, 353, 112, 235, 307, 6],\n"," 966: [2329, 1258, 7361, 3996, 3052, 4011, 778, 47, 4262, 2762],\n"," 967: [5952, 4993, 1196, 7153, 3578, 1210, 4226, 2028, 4306, 589],\n"," 968: [380, 589, 588, 161, 356, 595, 10, 377, 592, 364],\n"," 969: [260, 608, 648, 494, 832, 95, 6, 802, 104, 805],\n"," 970: [457, 480, 349, 589, 165, 588, 161, 356, 595, 316],\n"," 971: [3481, 6711, 2542, 7361, 2502, 32, 1089, 4878, 4011, 778],\n"," 972: [1961, 3104, 2289, 2243, 36, 1674, 260, 1299, 2355, 1960],\n"," 973: [3949, 55820, 1222, 7361, 1234, 858, 5147, 6874, 2858, 2959],\n"," 974: [371, 318, 544, 68, 514, 270, 71, 315, 248, 440],\n"," 975: [318, 36, 25, 223, 527, 593, 293, 47, 246, 555],\n"," 976: [457, 593, 480, 589, 110, 356, 316, 10, 377, 292],\n"," 977: [1219, 1304, 1212, 2019, 1254, 1233, 1204, 1394, 1284, 2396],\n"," 978: [527, 1097, 1193, 356, 2762, 1080, 2028, 2858, 3534, 32],\n"," 979: [610, 5679, 7445, 2140, 1172, 7254, 593, 3897, 1193, 1831],\n"," 980: [2571, 5952, 1196, 3578, 318, 2028, 4306, 589, 1036, 1198],\n"," 982: [733, 62, 494, 832, 36, 6, 17, 802, 104, 805],\n"," 983: [4993, 4963, 3578, 2273, 4025, 2353, 3753, 780, 5989, 6378],\n"," 984: [2571, 5952, 4993, 7153, 3578, 4226, 2858, 4306, 589, 260],\n"," 985: [4226, 2959, 3481, 6711, 2858, 2542, 2997, 4034, 2329, 1258],\n"," 986: [34, 508, 364, 17, 497, 62, 595, 39, 141, 21],\n"," 987: [539, 597, 356, 587, 34, 508, 593, 357, 11, 440],\n"," 988: [4027, 6711, 4034, 2329, 1732, 7361, 8636, 4979, 6502, 5902],\n"," 989: [923, 750, 1208, 903, 111, 913, 1247, 1221, 1207, 1206],\n"," 990: [349, 110, 161, 595, 316, 292, 329, 47, 153, 253],\n"," 991: [3949, 55820, 1213, 7361, 858, 5147, 6874, 2858, 2959, 923],\n"," 992: [786, 708, 1210, 362, 1028, 1029, 79, 1035, 1012, 1022],\n"," 993: [2571, 2959, 296, 7153, 318, 2858, 2762, 356, 593, 589],\n"," 994: [261, 265, 372, 537, 247, 531, 147, 427, 481, 45],\n"," 995: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 593],\n"," 996: [587, 440, 364, 17, 282, 480, 588, 497, 595, 141],\n"," 997: [260, 608, 832, 802, 104, 805, 1210, 1356, 1393, 58],\n"," 998: [1732, 318, 1500, 2692, 5004, 4086, 1682, 4242, 5303, 1],\n"," 999: [1702, 158, 1713, 239, 256, 2142, 2083, 2089, 1196, 1373],\n"," 1001: [380, 593, 349, 590, 318, 165, 296, 292, 434, 47],\n"," 1002: [1, 733, 608, 62, 648, 494, 832, 36, 95, 25],\n"," 1003: [2581,\n"," 3081,\n"," 1210,\n"," 1777,\n"," 2485,\n"," 2716,\n"," 2125,\n"," 3578,\n"," 2394,\n"," 2396],\n"," 1004: [527, 1080, 919, 3545, 3534, 2971, 5504, 1968, 8917, 3101],\n"," 1005: [34, 508, 11, 590, 17, 282, 497, 266, 261, 509],\n"," 1006: [296, 50, 36, 25, 223, 593, 293, 47, 246, 111],\n"," 1007: [356, 2355, 1265, 2567, 1136, 1215, 1196, 1220, 1060, 1343],\n"," 1008: [3481, 4027, 2542, 4034, 1258, 1206, 2502, 1089, 4011, 223],\n"," 1009: [4993,\n"," 4963,\n"," 3147,\n"," 3578,\n"," 5349,\n"," 6539,\n"," 2762,\n"," 2273,\n"," 4701,\n"," 3793],\n"," 1011: [762, 662, 280, 1476, 828, 467, 8327, 836, 2797, 1242],\n"," 1012: [356, 1625, 3408, 1610, 2762, 1833, 50, 2706, 1249, 2683],\n"," 1013: [2959, 3578, 4226, 2858, 2762, 1036, 47, 1291, 2329, 1214],\n"," 1014: [1193, 923, 912, 750, 1208, 903, 111, 913, 1221, 1136],\n"," 1015: [3468, 4034, 5013, 3022, 3983, 4226, 919, 1084, 3307, 694],\n"," 1016: [904, 541, 858, 1252, 912, 750, 1208, 903, 908, 913],\n"," 1017: [2571, 2959, 296, 3578, 318, 4226, 2858, 2762, 356, 2028],\n"," 1018: [4027, 2692, 2502, 8636, 4979, 5902, 4262, 50, 1748, 923],\n"," 1019: [62, 1073, 32, 494, 832, 36, 25, 6, 17, 802],\n"," 1020: [1079, 1270, 2797, 1097, 1259, 2791, 919, 1641, 3039, 1285],\n"," 1021: [1193, 904, 541, 1252, 912, 608, 750, 1208, 903, 908],\n"," 1022: [1193, 356, 2762, 1080, 2028, 2858, 3545, 3534, 2971, 32],\n"," 1023: [296, 318, 1210, 4226, 2762, 356, 2028, 4306, 589, 1036],\n"," 1025: [1193, 904, 541, 1252, 750, 1208, 903, 527, 913, 1206],\n"," 1026: [6711, 2858, 2542, 2997, 4034, 1732, 2692, 1206, 32, 3996],\n"," 1027: [2571, 5952, 4993, 1196, 7153, 318, 1210, 2858, 2762, 356],\n"," 1028: [589, 318, 110, 588, 595, 377, 364, 344, 47, 253],\n"," 1029: [36, 25, 223, 527, 32, 608, 293, 246, 111, 300],\n"," 1030: [4963,\n"," 3147,\n"," 3578,\n"," 5349,\n"," 6377,\n"," 4701,\n"," 4025,\n"," 4246,\n"," 4896,\n"," 4886],\n"," 1031: [457, 380, 150, 349, 589, 318, 588, 296, 161, 356],\n"," 1032: [1, 260, 733, 608, 62, 141, 32, 832, 36, 25],\n"," 1033: [2571, 5952, 2959, 4993, 7153, 3578, 4226, 2858, 1036, 858],\n"," 1034: [2571, 2959, 296, 4993, 1196, 318, 1210, 4226, 2858, 2762],\n"," 1035: [2140, 2087, 2143, 1006, 1354, 1967, 3020, 2161, 4878, 912],\n"," 1037: [508, 11, 440, 457, 527, 590, 110, 364, 318, 17],\n"," 1038: [786, 362, 79, 1198, 852, 1291, 1367, 837, 653, 745],\n"," 1039: [1196, 1240, 589, 1200, 2571, 1198, 1214, 32, 1374, 1356],\n"," 1040: [466, 104, 543, 88, 520, 1552, 2717, 2735, 743, 1982],\n"," 1041: [356, 4306, 1270, 480, 32, 1136, 1240, 1222, 541, 1213],\n"," 1043: [260, 733, 608, 1073, 832, 802, 104, 805, 653, 1210],\n"," 1044: [608, 62, 141, 494, 832, 36, 6, 17, 104, 805],\n"," 1045: [5952,\n"," 1214,\n"," 1200,\n"," 3996,\n"," 480,\n"," 1240,\n"," 1080,\n"," 33794,\n"," 2716,\n"," 4973],\n"," 1046: [589, 318, 110, 588, 161, 10, 377, 292, 364, 329],\n"," 1047: [1222,\n"," 1234,\n"," 5147,\n"," 4873,\n"," 1080,\n"," 2585,\n"," 55805,\n"," 3507,\n"," 6339,\n"," 5792],\n"," 1048: [3578, 356, 260, 110, 858, 527, 1214, 3996, 480, 1136],\n"," 1050: [36, 608, 246, 111, 112, 232, 235, 307, 290, 306],\n"," 1051: [608, 32, 494, 832, 36, 95, 25, 6, 805, 653],\n"," 1052: [21, 2028, 1004, 274, 2195, 1092, 575, 1610, 2403, 3623],\n"," 1053: [2028, 593, 1374, 1356, 1617, 858, 1199, 296, 608, 457]})"]},"metadata":{},"execution_count":10}],"source":["from collections import defaultdict\n","\n","# 각 사용자에 대한 추천 리스트를 작성한다\n","# 각 사용자의 소속 확률이 가장 높은 토픽을 얻고, 해당 토픽 안에서 확률이 높은 아이템을 저장해 나간다\n","\n","user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","\n","pred_user2items = defaultdict(list)\n","for i, (user_id, data) in enumerate(movielens_train_high_rating.groupby(\"user_id\")):\n"," evaluated_movie_ids = user_evaluated_movies[user_id]\n"," # 사용자의 소속 확률이 가장 높은 토픽을 얻는다\n"," user_topic = sorted(lda_topics[i], key=lambda x: -x[1])[0][0]\n"," # 해당 토픽 안에서 확률이 높은 아이템을 얻는다\n"," topic_movies = lda_model.get_topic_terms(user_topic, topn=len(movies))\n","\n"," for token_id, score in topic_movies:\n"," movie_id = int(common_dictionary.id2token[token_id])\n"," if movie_id not in evaluated_movie_ids:\n"," pred_user2items[user_id].append(movie_id)\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","\n","pred_user2items"]},{"cell_type":"code","execution_count":11,"id":"1701bd43","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":288},"id":"1701bd43","executionInfo":{"status":"ok","timestamp":1672118441268,"user_tz":-540,"elapsed":24,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"ee59bd31-4381-4245-f7ae-752409de578c"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","8381 2 1210 4.0 868245644 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","8381 [Action, Adventure, Sci-Fi] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":11}],"source":["# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n","movielens_train_high_rating[movielens_train_high_rating.user_id==2]"]},{"cell_type":"code","execution_count":12,"id":"16eddf46","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"16eddf46","executionInfo":{"status":"ok","timestamp":1672118441268,"user_tz":-540,"elapsed":18,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"da0309a9-ae28-406a-bcf1-f5d45c559abc"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n","1173 1198 Raiders of the Lost Ark (Indiana Jones and the... \n","1212 1240 Terminator, The (1984) \n","\n"," genre \\\n","1171 [Action, Adventure, Sci-Fi] \n","1173 [Action, Adventure] \n","1212 [Action, Sci-Fi, Thriller] \n","\n"," tag \n","1171 [lucas, george lucas, george lucas, gfei own i... \n","1173 [egypt, lucas, seen more than once, dvd collec... \n","1212 [arnold schwarzenegger, sci-fi, time travel, d... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
11731198Raiders of the Lost Ark (Indiana Jones and the...[Action, Adventure][egypt, lucas, seen more than once, dvd collec...
12121240Terminator, The (1984)[Action, Sci-Fi, Thriller][arnold schwarzenegger, sci-fi, time travel, d...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":12}],"source":["# user_id=2에 대한 추천(1198, 1196, 1240)\n","movies[movies.movie_id.isin([1198, 1196, 1240])]"]}],"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/LDA_content.ipynb b/chapter5/colab/LDA_content.ipynb index 4ed495f..11cf8eb 100644 --- a/chapter5/colab/LDA_content.ipynb +++ b/chapter5/colab/LDA_content.ipynb @@ -1,4001 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "0a902087", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/LDA_content.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "98853cdc", - "metadata": {}, - "source": [ - "# Latent Dirichlet Allocation (LDA)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "dd0a4718", - "metadata": {}, - "outputs": [], - "source": [ - "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", - "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", - "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", - "\n", - "# 데이터 다운로드와 압축 풀기\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "38f1eabd", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", - "import pandas as pd\n", - "\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "ea40c411", - "metadata": {}, - "outputs": [], - "source": [ - "# 인자 수\n", - "factors = 50\n", - "# 에폭 수\n", - "n_epochs = 30" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "7aa2bed1", - "metadata": {}, - "outputs": [], - "source": [ - "movie_content = movies.copy()\n", - "# tag가 부여되어 있지 않은 영화가 있지만, genre는 모든 영화에 부여되어 있다\n", - "# tag와 genre를 결합한 것을 영화 콘텐츠 정보로 하여 비슷한 영화를 찾아서 추천한다\n", - "# tag가 없는 영화는 NaN으로 되어 있으므로, 빈 리스트로 변환한 뒤 처리한다\n", - "movie_content[\"tag_genre\"] = movie_content[\"tag\"].fillna(\"\").apply(list) + movie_content[\"genre\"].apply(list)\n", - "movie_content[\"tag_genre\"] = movie_content[\"tag_genre\"].apply(lambda x: list(map(str, x)))\n", - "\n", - "# 태그와 장르 데이터를 사용해 lda를 학습한다\n", - "tag_genre_data = movie_content.tag_genre.tolist()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d5804af1", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install gensim==4.0.1" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "c448ef53", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/mk/.pyenv/versions/3.7.8/envs/recsys-test3.7.8/lib/python3.7/site-packages/gensim/similarities/__init__.py:15: UserWarning: The gensim.similarities.levenshtein submodule is disabled, because the optional Levenshtein package is unavailable. Install Levenhstein (e.g. `pip install python-Levenshtein`) to suppress this warning.\n", - " warnings.warn(msg)\n" - ] - } - ], - "source": [ - "from gensim.corpora.dictionary import Dictionary\n", - "\n", - "# LDA의 입력으로 사용할 데이터를 작성한다\n", - "common_dictionary = Dictionary(tag_genre_data)\n", - "common_corpus = [common_dictionary.doc2bow(text) for text in tag_genre_data]\n" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "a4449eb1", - "metadata": {}, - "outputs": [], - "source": [ - "import gensim\n", - "\n", - "# LDA 학습\n", - "lda_model = gensim.models.LdaModel(\n", - " common_corpus, id2word=common_dictionary, num_topics=factors, passes=n_epochs\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "a5911f4e", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "word=drugs, score=0.12014076858758926\n", - "word=japan, score=0.0761302188038826\n", - "word=quentin tarantino, score=0.05024522915482521\n", - "word=will smith, score=0.03854871168732643\n", - "word=tarantino, score=0.029550844803452492\n", - "word=tommy lee jones, score=0.02945614792406559\n", - "word=akira kurosawa, score=0.028017211705446243\n", - "word=samurai, score=0.025930559262633324\n", - "word=ummarti2007, score=0.02379794418811798\n", - "word=addiction, score=0.018428761512041092\n" - ] - } - ], - "source": [ - "# topic0인 단어 목록\n", - "for token_id, score in lda_model.get_topic_terms(0, topn=10):\n", - " word = common_dictionary.id2token[token_id]\n", - " print(f'word={word}, score={score}')" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "858bf7ea", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[(0, 0.509997),\n", - " (1, 0.010000061),\n", - " (2, 0.010000061),\n", - " (3, 0.010000061),\n", - " (4, 0.010000061),\n", - " (5, 0.010000061),\n", - " (6, 0.010000061),\n", - " (7, 0.010000061),\n", - " (8, 0.010000061),\n", - " (9, 0.010000061),\n", - " (10, 0.010000061),\n", - " (11, 0.010000061),\n", - " (12, 0.010000061),\n", - " (13, 0.010000061),\n", - " (14, 0.010000061),\n", - " (15, 0.010000061),\n", - " (16, 0.010000061),\n", - " (17, 0.010000061),\n", - " (18, 0.010000061),\n", - " (19, 0.010000061),\n", - " (20, 0.010000061),\n", - " (21, 0.010000061),\n", - " (22, 0.010000061),\n", - " (23, 0.010000061),\n", - " (24, 0.010000061),\n", - " (25, 0.010000061),\n", - " (26, 0.010000061),\n", - " (27, 0.010000061),\n", - " (28, 0.010000061),\n", - " (29, 0.010000061),\n", - " (30, 0.010000061),\n", - " (31, 0.010000061),\n", - " (32, 0.010000061),\n", - " (33, 0.010000061),\n", - " (34, 0.010000061),\n", - " (35, 0.010000061),\n", - " (36, 0.010000061),\n", - " (37, 0.010000061),\n", - " (38, 0.010000061),\n", - " (39, 0.010000061),\n", - " (40, 0.010000061),\n", - " (41, 0.010000061),\n", - " (42, 0.010000061),\n", - " (43, 0.010000061),\n", - " (44, 0.010000061),\n", - " (45, 0.010000061),\n", - " (46, 0.010000061),\n", - " (47, 0.010000061),\n", - " (48, 0.010000061),\n", - " (49, 0.010000061)]" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# samurai라는 단어의 토픽(각 토픽에 소속될 확률)\n", - "lda_model[common_dictionary.doc2bow(['samurai'])]" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "e03ab49d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretagtag_genretopictopic_score
01Toy Story (1995)[Adventure, Animation, Children, Comedy, Fantasy][pixar, pixar, pixar, animation, pixar, animat...[pixar, pixar, pixar, animation, pixar, animat...200.642943
12Jumanji (1995)[Adventure, Children, Fantasy][for children, game, animals, joe johnston, ro...[for children, game, animals, joe johnston, ro...10.473445
23Grumpier Old Men (1995)[Comedy, Romance][funniest movies, comedinha de velhinhos engra...[funniest movies, comedinha de velhinhos engra...380.601124
34Waiting to Exhale (1995)[Comedy, Drama, Romance][girl movie][girl movie, Comedy, Drama, Romance]330.755000
45Father of the Bride Part II (1995)[Comedy][steve martin, pregnancy, remake, steve martin...[steve martin, pregnancy, remake, steve martin...210.600993
........................
1067665088Bedtime Stories (2008)[Adventure, Children, Comedy]NaN[Adventure, Children, Comedy]10.755000
1067765091Manhattan Melodrama (1934)[Crime, Drama, Romance]NaN[Crime, Drama, Romance]330.388229
1067865126Choke (2008)[Comedy, Drama][chuck palahniuk, based on book][chuck palahniuk, based on book, Comedy, Drama]330.505002
1067965130Revolutionary Road (2008)[Drama, Romance][toplist08][toplist08, Drama, Romance]330.673333
1068065133Blackadder Back & Forth (1999)[Comedy]NaN[Comedy]330.510000
\n", - "

10681 rows × 7 columns

\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "0 1 Toy Story (1995) \n", - "1 2 Jumanji (1995) \n", - "2 3 Grumpier Old Men (1995) \n", - "3 4 Waiting to Exhale (1995) \n", - "4 5 Father of the Bride Part II (1995) \n", - "... ... ... \n", - "10676 65088 Bedtime Stories (2008) \n", - "10677 65091 Manhattan Melodrama (1934) \n", - "10678 65126 Choke (2008) \n", - "10679 65130 Revolutionary Road (2008) \n", - "10680 65133 Blackadder Back & Forth (1999) \n", - "\n", - " genre \\\n", - "0 [Adventure, Animation, Children, Comedy, Fantasy] \n", - "1 [Adventure, Children, Fantasy] \n", - "2 [Comedy, Romance] \n", - "3 [Comedy, Drama, Romance] \n", - "4 [Comedy] \n", - "... ... \n", - "10676 [Adventure, Children, Comedy] \n", - "10677 [Crime, Drama, Romance] \n", - "10678 [Comedy, Drama] \n", - "10679 [Drama, Romance] \n", - "10680 [Comedy] \n", - "\n", - " tag \\\n", - "0 [pixar, pixar, pixar, animation, pixar, animat... \n", - "1 [for children, game, animals, joe johnston, ro... \n", - "2 [funniest movies, comedinha de velhinhos engra... \n", - "3 [girl movie] \n", - "4 [steve martin, pregnancy, remake, steve martin... \n", - "... ... \n", - "10676 NaN \n", - "10677 NaN \n", - "10678 [chuck palahniuk, based on book] \n", - "10679 [toplist08] \n", - "10680 NaN \n", - "\n", - " tag_genre topic topic_score \n", - "0 [pixar, pixar, pixar, animation, pixar, animat... 20 0.642943 \n", - "1 [for children, game, animals, joe johnston, ro... 1 0.473445 \n", - "2 [funniest movies, comedinha de velhinhos engra... 38 0.601124 \n", - "3 [girl movie, Comedy, Drama, Romance] 33 0.755000 \n", - "4 [steve martin, pregnancy, remake, steve martin... 21 0.600993 \n", - "... ... ... ... \n", - "10676 [Adventure, Children, Comedy] 1 0.755000 \n", - "10677 [Crime, Drama, Romance] 33 0.388229 \n", - "10678 [chuck palahniuk, based on book, Comedy, Drama] 33 0.505002 \n", - "10679 [toplist08, Drama, Romance] 33 0.673333 \n", - "10680 [Comedy] 33 0.510000 \n", - "\n", - "[10681 rows x 7 columns]" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 각 영화의 토픽을 저장한다\n", - "lda_topics = lda_model[common_corpus]\n", - "\n", - "# 각 영화에 가장 확률이 높은 토픽을 1개 추출해서 저장한다\n", - "movie_topics = []\n", - "movie_topic_scores = []\n", - "for movie_index, lda_topic in enumerate(lda_topics):\n", - " sorted_topic = sorted(lda_topics[movie_index], key=lambda x: -x[1])\n", - " # 가장 확률이 높은 토픽\n", - " movie_topic, topic_score = sorted_topic[0]\n", - " movie_topics.append(movie_topic)\n", - " movie_topic_scores.append(topic_score)\n", - "movie_content[\"topic\"] = movie_topics\n", - "movie_content[\"topic_score\"] = movie_topic_scores\n", - "movie_content" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "961bb095", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "defaultdict(list,\n", - " {1: [3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414, 2566],\n", - " 2: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 3: [150, 2375, 4022, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 4: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 5: [1256, 3742, 7091, 913, 25777, 1358, 1186, 34002, 8734, 25766],\n", - " 6: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 7: [3742,\n", - " 7091,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018,\n", - " 7132],\n", - " 8: [5780, 4687, 3693, 4928, 193, 4532, 2897, 7577, 5604, 26915],\n", - " 9: [1223, 1148, 1020, 6104, 745, 788, 6807, 2788, 38038, 1136],\n", - " 10: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 11: [2204, 2178, 2185, 2179, 1269, 930, 949, 903, 933, 904],\n", - " 12: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 13: [1, 3086, 3510, 3114, 2014, 4350, 5816, 1270, 4896, 40815],\n", - " 14: [2115, 76, 1587, 1779, 8644, 4643, 377, 6934, 2848, 1198],\n", - " 16: [2115, 76, 2006, 1587, 8644, 4643, 377, 6934, 2848, 1198],\n", - " 17: [2204, 2178, 2185, 2179, 1269, 930, 949, 933, 904, 2177],\n", - " 18: [76, 1779, 8644, 4643, 6934, 2848, 39435, 3937, 26, 5445],\n", - " 19: [3786, 3631, 6680, 4033, 1037, 605, 2774, 5222, 866, 1747],\n", - " 22: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 23: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 24: [597, 1125, 6662, 2497, 1222, 4992, 339, 74, 6143, 36525],\n", - " 26: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 27: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 28: [1046, 185, 170, 4722, 45221, 4942, 2665, 47836, 1257, 3005],\n", - " 29: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 3362],\n", - " 30: [535, 1966, 190, 201, 8143, 538, 265, 4612, 6460, 40946],\n", - " 33: [3086, 3510, 3114, 2014, 4350, 5816, 1270, 2012, 4896, 40815],\n", - " 34: [1245,\n", - " 4881,\n", - " 3683,\n", - " 26350,\n", - " 4262,\n", - " 3529,\n", - " 2249,\n", - " 2023,\n", - " 3362,\n", - " 56587],\n", - " 35: [1119, 2019, 2905, 58059, 1089, 7925, 4439, 18, 3030, 4176],\n", - " 36: [2990, 3984, 2948, 2376, 2991, 63113, 2949, 1722, 3633, 3082],\n", - " 37: [1119, 2019, 2905, 58059, 7925, 778, 4439, 18, 3030, 4176],\n", - " 38: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 40: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 41: [3759, 3964, 3775, 1030, 2096, 48, 2687, 6414, 2566, 4154],\n", - " 42: [1223, 1148, 1020, 6104, 745, 788, 6807, 2788, 38038, 2727],\n", - " 43: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 44: [1223, 1148, 1020, 6104, 745, 788, 6807, 2788, 38038, 2727],\n", - " 45: [6457,\n", - " 3643,\n", - " 3372,\n", - " 33124,\n", - " 3066,\n", - " 6439,\n", - " 53342,\n", - " 55402,\n", - " 49688,\n", - " 63791],\n", - " 46: [3869, 466, 43919, 520, 8512, 743, 719, 3785, 6888, 947],\n", - " 47: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435],\n", - " 48: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 50: [832, 4124, 2555, 5483, 4181, 2379, 1389, 2382, 1597, 8859],\n", - " 51: [3100, 1933, 1935, 4292, 1943, 8153, 7771, 1937, 3467, 4420],\n", - " 52: [2990, 3984, 5872, 2948, 2376, 2991, 63113, 2949, 1722, 3633],\n", - " 53: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023],\n", - " 54: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 55: [150, 2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501],\n", - " 56: [3086, 3510, 2014, 4350, 5816, 2012, 4896, 40815, 4886, 6377],\n", - " 57: [4434, 64234, 5609, 5523, 5181, 5822, 6574, 286, 5235, 8241],\n", - " 58: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 59: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 60: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018,\n", - " 7132],\n", - " 61: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 62: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 63: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023],\n", - " 64: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 65: [3759, 3964, 3775, 1022, 1030, 2096, 6414, 2566, 4154, 3776],\n", - " 66: [1119, 2019, 2905, 58059, 7925, 778, 4439, 18, 3030, 4176],\n", - " 67: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 68: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 69: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 70: [1245, 333, 4881, 26350, 4262, 3529, 2249, 2023, 3362, 608],\n", - " 71: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 72: [150, 2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501],\n", - " 73: [4531, 5847, 51666, 4514, 1130, 2454, 6709, 6059, 6215, 2783],\n", - " 74: [3869, 466, 43919, 520, 8512, 743, 719, 3785, 6888, 947],\n", - " 75: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 76: [4434, 64234, 5609, 5523, 5181, 5822, 6574, 286, 5235, 8241],\n", - " 77: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 78: [2115, 76, 2006, 1587, 1779, 8644, 377, 2848, 39435, 1059],\n", - " 79: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 80: [832, 4124, 2555, 5483, 4181, 2379, 1389, 2382, 1597, 8859],\n", - " 81: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 82: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 83: [1256,\n", - " 3742,\n", - " 7091,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 84: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 85: [1119, 2019, 2905, 58059, 1089, 7925, 4439, 18, 3030, 4176],\n", - " 86: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 87: [1012,\n", - " 27850,\n", - " 2064,\n", - " 6775,\n", - " 1051,\n", - " 44195,\n", - " 7976,\n", - " 1206,\n", - " 7762,\n", - " 60530],\n", - " 88: [3086, 2014, 4350, 5816, 1270, 2012, 4896, 40815, 2011, 2161],\n", - " 89: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 90: [364, 3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414],\n", - " 91: [2990, 3984, 5872, 2376, 63113, 1722, 3633, 10, 3082, 7570],\n", - " 92: [1245, 333, 4881, 3683, 26350, 3529, 2249, 2023, 3362, 858],\n", - " 93: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 94: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 95: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 96: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 97: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 98: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023],\n", - " 99: [3652, 1921, 6952, 4794, 3970, 6530, 4210, 4046, 3075, 4658],\n", - " 100: [2204, 2178, 2185, 2179, 1269, 930, 949, 903, 933, 2177],\n", - " 101: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 102: [1119, 2019, 2905, 58059, 1089, 7925, 778, 4439, 18, 3030],\n", - " 103: [5780, 4687, 3693, 4928, 193, 4532, 2897, 7577, 5604, 26915],\n", - " 104: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 105: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 106: [364, 3759, 3964, 3775, 1030, 2096, 48, 2687, 6414, 2566],\n", - " 107: [2924, 2582, 5621, 1201, 1092, 44, 393, 1445, 4444, 112],\n", - " 108: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 110: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 111: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 112: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 113: [597, 1125, 6662, 2497, 1222, 4992, 339, 74, 6143, 36525],\n", - " 114: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 115: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 116: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435],\n", - " 117: [1046, 185, 170, 4722, 45221, 4942, 2665, 47836, 2144, 1257],\n", - " 118: [42728, 849, 4485, 7236, 509, 653, 51084, 45106, 2528, 3479],\n", - " 119: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 120: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 121: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 122: [832, 4124, 2555, 5483, 4181, 2379, 2382, 1597, 8859, 7317],\n", - " 123: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 124: [76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435, 1059],\n", - " 125: [6876, 4273, 8451, 7372, 6641, 5408, 7761, 5533, 1624, 7613],\n", - " 126: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 127: [4518,\n", - " 5771,\n", - " 32011,\n", - " 48518,\n", - " 61931,\n", - " 6695,\n", - " 4758,\n", - " 58964,\n", - " 1992,\n", - " 2113],\n", - " 128: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 129: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 130: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 131: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 132: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 134: [42728,\n", - " 849,\n", - " 4485,\n", - " 7236,\n", - " 509,\n", - " 51084,\n", - " 45106,\n", - " 2528,\n", - " 3479,\n", - " 5903],\n", - " 135: [1256,\n", - " 3742,\n", - " 7091,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 136: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 137: [3086,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 2012,\n", - " 4896,\n", - " 40815,\n", - " 2011,\n", - " 4886,\n", - " 6377],\n", - " 138: [1119, 2019, 2905, 58059, 7925, 4439, 18, 3030, 4176, 42217],\n", - " 139: [1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937, 3475],\n", - " 140: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 141: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 142: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 143: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 144: [76, 1779, 8644, 2848, 39435, 3937, 26, 836, 6595, 2622],\n", - " 145: [1119, 2019, 2905, 58059, 1089, 7925, 778, 4439, 18, 3030],\n", - " 148: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 149: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023],\n", - " 150: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 151: [1256,\n", - " 3742,\n", - " 7091,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 152: [150, 2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2822],\n", - " 153: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 154: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 155: [3869, 370, 466, 43919, 8512, 743, 719, 3785, 6888, 947],\n", - " 156: [42728,\n", - " 849,\n", - " 4485,\n", - " 7236,\n", - " 509,\n", - " 51084,\n", - " 45106,\n", - " 2528,\n", - " 3479,\n", - " 5903],\n", - " 157: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 158: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023],\n", - " 159: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 160: [76, 2006, 1587, 1779, 8644, 6934, 2848, 39435, 1059, 3937],\n", - " 161: [3086, 3510, 2014, 4350, 2012, 40815, 2011, 2161, 355, 7058],\n", - " 162: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 163: [1682, 553, 5590, 7281, 7280, 32082, 1032, 8910, 3263, 2539],\n", - " 164: [3869, 466, 43919, 520, 8512, 743, 719, 3785, 6888, 947],\n", - " 165: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 166: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 167: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023],\n", - " 168: [150, 2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501],\n", - " 169: [3869, 370, 466, 43919, 520, 8512, 743, 3785, 6888, 947],\n", - " 170: [1119, 2019, 2905, 58059, 1089, 7925, 4439, 18, 3030, 4176],\n", - " 171: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 172: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 173: [1373, 2393, 5944, 7811, 223, 33493, 5785, 7812, 4009, 4856],\n", - " 174: [2115, 76, 1587, 8644, 4643, 377, 6934, 2848, 39435, 3937],\n", - " 175: [3652, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075, 4658],\n", - " 176: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 177: [3086,\n", - " 3510,\n", - " 3114,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 1270,\n", - " 2012,\n", - " 4896,\n", - " 40815],\n", - " 178: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 179: [63859,\n", - " 26495,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159,\n", - " 55955],\n", - " 180: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 182: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 183: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 184: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 185: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 186: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 187: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 188: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 189: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435],\n", - " 190: [153,\n", - " 3213,\n", - " 2642,\n", - " 7439,\n", - " 26152,\n", - " 1562,\n", - " 31221,\n", - " 1377,\n", - " 2641,\n", - " 61352],\n", - " 191: [3869, 370, 43919, 8512, 743, 719, 3785, 6888, 947, 7378],\n", - " 192: [1119, 2905, 58059, 7925, 4439, 18, 4176, 42217, 7959, 381],\n", - " 193: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 194: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 195: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 196: [3869, 370, 43919, 520, 8512, 743, 719, 3785, 6888, 947],\n", - " 197: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 198: [5780, 4687, 3693, 4928, 193, 4532, 2897, 7577, 5604, 26915],\n", - " 199: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 200: [1223, 1148, 1020, 6104, 745, 6807, 2788, 38038, 1136, 2727],\n", - " 201: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 202: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 203: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 204: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 205: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 206: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 207: [1372,\n", - " 1373,\n", - " 1371,\n", - " 2393,\n", - " 5944,\n", - " 7811,\n", - " 1375,\n", - " 33493,\n", - " 5785,\n", - " 7812],\n", - " 208: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 209: [185, 170, 1968, 4722, 45221, 4942, 2665, 47836, 2144, 1257],\n", - " 210: [2115, 76, 2006, 1587, 8644, 4643, 377, 6934, 2848, 1198],\n", - " 211: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 212: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 213: [1156, 6599, 263, 4785, 5682, 3847, 4769, 37475, 2433, 1938],\n", - " 214: [76, 1779, 8644, 6934, 2848, 39435, 1059, 3937, 26, 6595],\n", - " 215: [7091,\n", - " 25777,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018,\n", - " 3365,\n", - " 3462,\n", - " 2136],\n", - " 216: [1125, 6662, 2497, 1222, 4992, 74, 6143, 36525, 2671, 7320],\n", - " 217: [1125, 6662, 2497, 1222, 4992, 74, 6143, 36525, 2671, 7320],\n", - " 218: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 219: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 220: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 221: [1695, 1285, 638, 2387, 1284, 3632, 50923, 1900, 907, 1635],\n", - " 222: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 223: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 224: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 225: [2204, 2178, 2185, 2179, 930, 949, 933, 2177, 1219, 2186],\n", - " 226: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 227: [54787,\n", - " 56169,\n", - " 33819,\n", - " 8915,\n", - " 2881,\n", - " 55946,\n", - " 2810,\n", - " 6555,\n", - " 6809,\n", - " 5282],\n", - " 228: [3869, 466, 43919, 520, 8512, 743, 719, 3785, 6888, 947],\n", - " 229: [2924, 2582, 5621, 2951, 1201, 1092, 44, 393, 3681, 1209],\n", - " 230: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 231: [4434, 64234, 5609, 5523, 5181, 5822, 6574, 286, 5235, 8241],\n", - " 232: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435],\n", - " 234: [2924, 2582, 5621, 2951, 1201, 44, 393, 3681, 1209, 1445],\n", - " 235: [76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848, 39435],\n", - " 236: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 237: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 238: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 239: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 241: [3869, 466, 43919, 520, 8512, 743, 719, 3785, 6888, 947],\n", - " 242: [1156, 6599, 263, 4785, 5682, 3847, 4769, 37475, 2433, 1938],\n", - " 243: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435],\n", - " 244: [5780, 4687, 3693, 4928, 193, 4532, 2897, 7577, 5604, 26915],\n", - " 245: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 3362],\n", - " 246: [3869, 370, 466, 43919, 8512, 719, 3785, 6888, 947, 7378],\n", - " 247: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 248: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 249: [1245, 333, 4881, 3683, 26350, 3529, 2249, 2023, 3362, 858],\n", - " 250: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 251: [1373, 329, 2393, 5944, 7811, 223, 33493, 5785, 7812, 4009],\n", - " 252: [1, 3086, 3510, 2014, 4350, 5816, 2012, 4896, 40815, 2011],\n", - " 253: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 254: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 255: [1125, 6662, 2497, 1222, 4992, 339, 74, 6143, 36525, 2671],\n", - " 256: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 257: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 258: [2990,\n", - " 3984,\n", - " 5872,\n", - " 2376,\n", - " 2991,\n", - " 63113,\n", - " 2949,\n", - " 3633,\n", - " 3082,\n", - " 7570],\n", - " 259: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 260: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435],\n", - " 261: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 262: [5944, 7811, 223, 5785, 7812, 4009, 4856, 5754, 52462, 585],\n", - " 263: [3213,\n", - " 2642,\n", - " 58559,\n", - " 7439,\n", - " 26152,\n", - " 1562,\n", - " 31221,\n", - " 1377,\n", - " 2641,\n", - " 61352],\n", - " 264: [150, 2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501],\n", - " 265: [4434, 64234, 5609, 5523, 5181, 5822, 6574, 286, 5235, 8241],\n", - " 266: [1223, 1148, 1020, 6104, 745, 788, 6807, 38038, 1136, 2727],\n", - " 267: [1256,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 268: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 269: [3086,\n", - " 3510,\n", - " 3114,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 1270,\n", - " 2012,\n", - " 4896,\n", - " 40815],\n", - " 270: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 271: [2115, 76, 2006, 1587, 8644, 4643, 377, 6934, 2848, 1198],\n", - " 272: [1020, 6104, 788, 6807, 2788, 38038, 1136, 2727, 3751, 4164],\n", - " 273: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 274: [3759,\n", - " 3964,\n", - " 3775,\n", - " 2687,\n", - " 6414,\n", - " 2566,\n", - " 4154,\n", - " 2018,\n", - " 3776,\n", - " 31687],\n", - " 275: [1223,\n", - " 1020,\n", - " 6104,\n", - " 6807,\n", - " 2788,\n", - " 38038,\n", - " 1136,\n", - " 2727,\n", - " 3751,\n", - " 4164],\n", - " 276: [5780,\n", - " 4687,\n", - " 3693,\n", - " 4928,\n", - " 2897,\n", - " 7577,\n", - " 5604,\n", - " 26915,\n", - " 4605,\n", - " 7222],\n", - " 277: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 278: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 1198],\n", - " 279: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 280: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 281: [1682,\n", - " 5590,\n", - " 7281,\n", - " 7280,\n", - " 32082,\n", - " 1032,\n", - " 8910,\n", - " 3263,\n", - " 2539,\n", - " 44301],\n", - " 282: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 285: [1, 3086, 3510, 2014, 4350, 5816, 1270, 2012, 4896, 40815],\n", - " 286: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 287: [4790, 6462, 2896, 58, 8976, 3025, 32149, 4324, 5654, 6420],\n", - " 288: [1256,\n", - " 3742,\n", - " 7091,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 289: [1966, 190, 201, 8143, 538, 6460, 40946, 1552, 4330, 823],\n", - " 290: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 291: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 292: [54787,\n", - " 56169,\n", - " 33819,\n", - " 8915,\n", - " 2881,\n", - " 55946,\n", - " 2810,\n", - " 6555,\n", - " 6809,\n", - " 5282],\n", - " 293: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 294: [1245, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362, 608],\n", - " 295: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 296: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 297: [150, 2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501],\n", - " 298: [3086,\n", - " 3510,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 1270,\n", - " 2012,\n", - " 4896,\n", - " 40815,\n", - " 2011],\n", - " 300: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 301: [1046, 185, 170, 1968, 4722, 45221, 4942, 2665, 47836, 2144],\n", - " 302: [364, 3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414],\n", - " 303: [1223, 1148, 1020, 6104, 745, 788, 2788, 38038, 2727, 3751],\n", - " 304: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 305: [3079, 7178, 5035, 3179, 28, 7580, 2104, 43556, 5947, 8208],\n", - " 306: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023],\n", - " 307: [3086,\n", - " 3510,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 4896,\n", - " 40815,\n", - " 6377,\n", - " 8368,\n", - " 2161],\n", - " 308: [3086,\n", - " 3510,\n", - " 3114,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 1270,\n", - " 2012,\n", - " 4896,\n", - " 40815],\n", - " 309: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 310: [63859,\n", - " 26495,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159,\n", - " 55955],\n", - " 311: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 312: [150, 2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501],\n", - " 313: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 314: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 315: [3079, 7178, 5035, 3179, 28, 17, 7580, 2104, 43556, 5947],\n", - " 316: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 317: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 318: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 319: [4434, 64234, 5609, 5523, 5181, 5822, 6574, 286, 5235, 8241],\n", - " 320: [76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198, 39435],\n", - " 321: [150, 2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501],\n", - " 322: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 323: [1256,\n", - " 3742,\n", - " 7091,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 324: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 325: [54787,\n", - " 56169,\n", - " 33819,\n", - " 8915,\n", - " 2881,\n", - " 55946,\n", - " 2810,\n", - " 6555,\n", - " 6809,\n", - " 5282],\n", - " 326: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 327: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 328: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 329: [597, 1125, 6662, 2497, 1222, 4992, 339, 74, 6143, 36525],\n", - " 330: [3652, 1921, 1464, 4794, 3970, 6530, 4210, 4046, 3075, 4658],\n", - " 331: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 332: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 333: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 334: [3869, 370, 43919, 520, 8512, 743, 719, 3785, 6888, 947],\n", - " 335: [8749, 334, 2610, 523, 4428, 7396, 1446, 47778, 2068, 8367],\n", - " 336: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 337: [1223, 1148, 1020, 6104, 745, 788, 6807, 2788, 38038, 1136],\n", - " 338: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 339: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 340: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 341: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 342: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 3362],\n", - " 343: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 344: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 345: [76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848, 39435],\n", - " 346: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 347: [1, 3086, 3510, 3114, 2014, 4350, 5816, 2012, 40815, 4886],\n", - " 348: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 349: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 350: [3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018,\n", - " 7132],\n", - " 351: [1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937, 3475],\n", - " 352: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 353: [2115, 76, 1587, 1779, 8644, 4643, 377, 6934, 2848, 1198],\n", - " 354: [3079, 7178, 5035, 3179, 7580, 2104, 43556, 5947, 8208, 944],\n", - " 355: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 356: [1223, 1148, 1020, 6104, 745, 6807, 2788, 38038, 1136, 2727],\n", - " 357: [4434, 64234, 5609, 5523, 5181, 5822, 6574, 286, 5235, 8241],\n", - " 358: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 359: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 360: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 361: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 362: [1, 3086, 3510, 2014, 4350, 5816, 1270, 2012, 4896, 40815],\n", - " 363: [1119, 2019, 2905, 58059, 1089, 7925, 778, 4439, 18, 3030],\n", - " 364: [3086,\n", - " 3510,\n", - " 3114,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 1270,\n", - " 2012,\n", - " 4896,\n", - " 40815],\n", - " 365: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 366: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 367: [2990,\n", - " 3984,\n", - " 5872,\n", - " 2948,\n", - " 2376,\n", - " 2991,\n", - " 63113,\n", - " 2949,\n", - " 1722,\n", - " 3633],\n", - " 368: [3869, 466, 43919, 520, 8512, 743, 719, 3785, 6888, 947],\n", - " 369: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 370: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 371: [1223, 1020, 6104, 745, 788, 6807, 2788, 38038, 1136, 2727],\n", - " 372: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 373: [5780, 4687, 3693, 4928, 193, 4532, 2897, 7577, 5604, 26915],\n", - " 375: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 376: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 377: [1223, 1148, 1020, 6104, 745, 788, 6807, 2788, 38038, 1136],\n", - " 378: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 379: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 380: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 381: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 382: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 383: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 384: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 385: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 386: [1125, 6662, 2497, 1222, 4992, 74, 6143, 36525, 7320, 5942],\n", - " 387: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 388: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 389: [54787,\n", - " 56169,\n", - " 33819,\n", - " 8915,\n", - " 2881,\n", - " 55946,\n", - " 2810,\n", - " 6555,\n", - " 6809,\n", - " 5282],\n", - " 390: [1012,\n", - " 27850,\n", - " 2064,\n", - " 6775,\n", - " 1051,\n", - " 44195,\n", - " 7976,\n", - " 1206,\n", - " 7762,\n", - " 60530],\n", - " 391: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 392: [1682, 553, 5590, 7281, 7280, 32082, 1032, 8910, 3263, 2539],\n", - " 393: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 394: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 395: [150, 2375, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 396: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 397: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 398: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435],\n", - " 399: [1156, 6599, 263, 4785, 5682, 3847, 4769, 37475, 2433, 1938],\n", - " 400: [3759, 3964, 3775, 1022, 1030, 2096, 48, 6414, 2566, 4154],\n", - " 401: [1320,\n", - " 6754,\n", - " 2167,\n", - " 8985,\n", - " 6152,\n", - " 4030,\n", - " 54785,\n", - " 5128,\n", - " 43679,\n", - " 42738],\n", - " 402: [153,\n", - " 3213,\n", - " 2642,\n", - " 58559,\n", - " 7439,\n", - " 26152,\n", - " 1562,\n", - " 592,\n", - " 31221,\n", - " 1377],\n", - " 403: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 404: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 405: [597, 1125, 6662, 2497, 1222, 4992, 339, 74, 6143, 36525],\n", - " 406: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 407: [76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435, 1059],\n", - " 408: [2990,\n", - " 3984,\n", - " 5872,\n", - " 2948,\n", - " 2376,\n", - " 2991,\n", - " 63113,\n", - " 2949,\n", - " 1722,\n", - " 3633],\n", - " 409: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 410: [1125, 6662, 2497, 4992, 74, 6143, 36525, 2671, 7320, 5942],\n", - " 411: [150, 2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501],\n", - " 412: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 413: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 414: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 415: [1119, 2019, 2905, 58059, 1089, 7925, 778, 4439, 18, 3030],\n", - " 416: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 417: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 418: [2924, 2582, 5621, 2951, 1201, 1092, 393, 3681, 1209, 1445],\n", - " 419: [1, 3086, 3510, 3114, 2014, 4350, 40815, 4886, 6377, 8368],\n", - " 420: [1119, 2019, 2905, 58059, 1089, 7925, 778, 4439, 18, 3030],\n", - " 421: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 422: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 424: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 425: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 426: [2848, 39435, 3937, 26, 836, 2622, 6374, 3181, 53996, 7069],\n", - " 427: [2924, 2582, 5621, 1092, 44, 393, 1209, 1445, 4444, 112],\n", - " 428: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 429: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 430: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 431: [3086,\n", - " 3114,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 2012,\n", - " 40815,\n", - " 2011,\n", - " 8368,\n", - " 2161],\n", - " 432: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 433: [3086,\n", - " 3510,\n", - " 3114,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 1270,\n", - " 4896,\n", - " 40815,\n", - " 2011],\n", - " 434: [76, 1779, 8644, 2848, 39435, 3937, 26, 836, 3113, 2622],\n", - " 435: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 436: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 437: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 438: [76, 1587, 8644, 4643, 6934, 2848, 39435, 1059, 3937, 26],\n", - " 439: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 440: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 441: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 443: [333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362, 608],\n", - " 444: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 445: [1, 3086, 3510, 3114, 2014, 4350, 5816, 1270, 2012, 4896],\n", - " 446: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 447: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 448: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 449: [4518,\n", - " 5771,\n", - " 32011,\n", - " 48518,\n", - " 61931,\n", - " 6695,\n", - " 4758,\n", - " 58964,\n", - " 1992,\n", - " 2113],\n", - " 450: [2990, 3984, 5872, 2948, 2991, 63113, 2949, 1722, 3633, 10],\n", - " 451: [6457,\n", - " 3643,\n", - " 3372,\n", - " 33124,\n", - " 3066,\n", - " 6439,\n", - " 53342,\n", - " 55402,\n", - " 49688,\n", - " 63791],\n", - " 452: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 453: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 454: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 455: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 456: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 458: [153,\n", - " 3213,\n", - " 2642,\n", - " 58559,\n", - " 7439,\n", - " 26152,\n", - " 1562,\n", - " 592,\n", - " 5349,\n", - " 31221],\n", - " 459: [76, 2006, 1779, 2848, 1198, 39435, 1059, 3937, 26, 836],\n", - " 460: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 461: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 462: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 463: [2115, 76, 2006, 1587, 1779, 6934, 2848, 39435, 1059, 3937],\n", - " 464: [1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937, 3475],\n", - " 465: [333,\n", - " 3683,\n", - " 26350,\n", - " 4262,\n", - " 3529,\n", - " 2249,\n", - " 2023,\n", - " 3362,\n", - " 56587,\n", - " 25999],\n", - " 466: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 467: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 468: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023],\n", - " 469: [153,\n", - " 3213,\n", - " 2642,\n", - " 58559,\n", - " 7439,\n", - " 26152,\n", - " 1562,\n", - " 592,\n", - " 31221,\n", - " 1377],\n", - " 470: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 471: [3759, 3964, 3775, 1022, 1030, 2096, 2687, 6414, 2566, 4154],\n", - " 472: [3759, 3964, 3775, 1022, 1030, 2096, 2687, 6414, 2566, 4154],\n", - " 473: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 474: [2115, 76, 2006, 1587, 8644, 4643, 377, 6934, 2848, 1198],\n", - " 475: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 476: [54787,\n", - " 56169,\n", - " 33819,\n", - " 8915,\n", - " 2881,\n", - " 55946,\n", - " 2810,\n", - " 6555,\n", - " 6809,\n", - " 5282],\n", - " 477: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 479: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 480: [2204, 2178, 2185, 2179, 1269, 930, 949, 903, 933, 2177],\n", - " 481: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 482: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 3362, 608],\n", - " 483: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 484: [42728,\n", - " 4485,\n", - " 7236,\n", - " 509,\n", - " 51084,\n", - " 45106,\n", - " 2528,\n", - " 3479,\n", - " 5903,\n", - " 2117],\n", - " 485: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 486: [1, 3086, 3510, 3114, 2014, 4350, 5816, 1270, 2012, 4896],\n", - " 487: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 488: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 489: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 490: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 491: [1245, 333, 4881, 3683, 26350, 3529, 2249, 3362, 608, 56587],\n", - " 492: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023],\n", - " 493: [5780, 4687, 3693, 4928, 193, 4532, 2897, 7577, 5604, 26915],\n", - " 494: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 495: [135, 1822, 1541, 1172, 6944, 4214, 6041, 6684, 43836, 326],\n", - " 496: [1119, 2019, 2905, 58059, 7925, 778, 4439, 18, 3030, 4176],\n", - " 497: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 498: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 499: [1119, 2905, 58059, 1089, 7925, 4439, 18, 3030, 4176, 42217],\n", - " 500: [333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362, 858],\n", - " 501: [2115, 76, 1587, 1779, 8644, 4643, 6934, 2848, 39435, 1059],\n", - " 502: [1695, 1285, 638, 2387, 1284, 3632, 50923, 1900, 500, 907],\n", - " 503: [3869, 466, 43919, 8512, 743, 719, 3785, 6888, 947, 7378],\n", - " 504: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 505: [1125, 6662, 2497, 1222, 4992, 74, 6143, 36525, 2671, 7320],\n", - " 506: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 507: [3759, 3964, 3775, 1022, 1030, 2096, 2687, 6414, 2566, 4154],\n", - " 508: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 509: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 510: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 511: [364, 3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414],\n", - " 512: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 513: [4189,\n", - " 6981,\n", - " 40833,\n", - " 64114,\n", - " 5318,\n", - " 8025,\n", - " 232,\n", - " 2933,\n", - " 50477,\n", - " 37287],\n", - " 515: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 516: [54787,\n", - " 56169,\n", - " 33819,\n", - " 8915,\n", - " 2881,\n", - " 55946,\n", - " 2810,\n", - " 6555,\n", - " 6809,\n", - " 5282],\n", - " 517: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 59362,\n", - " 6757,\n", - " 56700,\n", - " 59729],\n", - " 518: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 520: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 521: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 522: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 523: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 524: [1060, 413, 663, 3211, 3484, 6938, 2342, 46850, 2435, 8868],\n", - " 525: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 526: [150, 2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501],\n", - " 527: [1156, 6599, 263, 4785, 5682, 3847, 4769, 37475, 2433, 1938],\n", - " 529: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 530: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 531: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 532: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 533: [3213,\n", - " 7439,\n", - " 26152,\n", - " 31221,\n", - " 61352,\n", - " 502,\n", - " 3439,\n", - " 4636,\n", - " 5782,\n", - " 2751],\n", - " 534: [1, 3086, 3510, 3114, 2014, 4350, 5816, 1270, 2012, 4896],\n", - " 535: [8749, 334, 2610, 523, 4428, 7396, 1446, 47778, 2068, 8367],\n", - " 536: [597, 1125, 6662, 2497, 1222, 4992, 74, 6143, 36525, 2671],\n", - " 537: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 539: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 540: [4531,\n", - " 5847,\n", - " 51666,\n", - " 4514,\n", - " 1130,\n", - " 2454,\n", - " 6709,\n", - " 6059,\n", - " 6215,\n", - " 2783],\n", - " 541: [3652, 1921, 6952, 4794, 3970, 6530, 4210, 4046, 3075, 4658],\n", - " 542: [1256,\n", - " 3742,\n", - " 7091,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 543: [3213,\n", - " 7439,\n", - " 26152,\n", - " 31221,\n", - " 2641,\n", - " 61352,\n", - " 2863,\n", - " 502,\n", - " 3439,\n", - " 4636],\n", - " 544: [1119, 2019, 2905, 58059, 7925, 778, 4439, 18, 3030, 4176],\n", - " 545: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435],\n", - " 546: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 547: [1156, 6599, 263, 4785, 5682, 3847, 4769, 37475, 2433, 1938],\n", - " 548: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 549: [364, 3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414],\n", - " 550: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 551: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 552: [1046,\n", - " 185,\n", - " 4722,\n", - " 45221,\n", - " 4942,\n", - " 2665,\n", - " 47836,\n", - " 3005,\n", - " 7451,\n", - " 6586],\n", - " 553: [1245, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362, 858],\n", - " 554: [5780, 4687, 3693, 4928, 193, 4532, 2897, 7577, 5604, 26915],\n", - " 555: [1020,\n", - " 6104,\n", - " 788,\n", - " 2727,\n", - " 4164,\n", - " 48982,\n", - " 32019,\n", - " 5390,\n", - " 4967,\n", - " 2721],\n", - " 556: [5780, 4687, 3693, 4928, 193, 4532, 2897, 7577, 5604, 26915],\n", - " 557: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 558: [1223,\n", - " 1148,\n", - " 1020,\n", - " 6104,\n", - " 745,\n", - " 2788,\n", - " 38038,\n", - " 2727,\n", - " 4164,\n", - " 48982],\n", - " 559: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 560: [150, 2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501],\n", - " 561: [54787,\n", - " 56169,\n", - " 33819,\n", - " 8915,\n", - " 2881,\n", - " 55946,\n", - " 6555,\n", - " 6809,\n", - " 5282,\n", - " 4803],\n", - " 562: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 563: [3086,\n", - " 3510,\n", - " 3114,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 1270,\n", - " 2012,\n", - " 4896,\n", - " 40815],\n", - " 564: [2115, 76, 1587, 1779, 8644, 4643, 6934, 2848, 39435, 1059],\n", - " 565: [1223, 1148, 1020, 6104, 745, 788, 6807, 2788, 38038, 2727],\n", - " 566: [4531,\n", - " 5847,\n", - " 51666,\n", - " 4514,\n", - " 1130,\n", - " 2454,\n", - " 6709,\n", - " 6059,\n", - " 6215,\n", - " 2783],\n", - " 567: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 568: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 569: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 570: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 571: [2115, 76, 1587, 1779, 377, 2848, 39435, 1059, 3937, 26],\n", - " 572: [1223, 1148, 1020, 6104, 745, 788, 2788, 38038, 2727, 3751],\n", - " 573: [333, 4881, 26350, 4262, 3529, 2249, 2023, 3362, 858, 56587],\n", - " 574: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 575: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 576: [1156, 6599, 263, 4785, 5682, 3847, 4769, 37475, 2433, 1938],\n", - " 577: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 578: [3086,\n", - " 3510,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 4896,\n", - " 40815,\n", - " 2011,\n", - " 4886,\n", - " 6377],\n", - " 579: [1, 3086, 3510, 3114, 2014, 4350, 5816, 1270, 2012, 40815],\n", - " 580: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 581: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 582: [364, 3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414],\n", - " 583: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 584: [1156, 6599, 263, 4785, 5682, 3847, 4769, 37475, 2433, 1938],\n", - " 585: [6754,\n", - " 2167,\n", - " 8985,\n", - " 6152,\n", - " 4030,\n", - " 54785,\n", - " 5128,\n", - " 43679,\n", - " 42738,\n", - " 4753],\n", - " 586: [135, 1822, 5, 1541, 6944, 4214, 6041, 6684, 43836, 326],\n", - " 587: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 588: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 589: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 590: [2115, 76, 1587, 8644, 4643, 377, 6934, 2848, 39435, 1059],\n", - " 591: [3869, 370, 43919, 520, 8512, 743, 719, 6888, 947, 7378],\n", - " 592: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 593: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 594: [42728,\n", - " 4485,\n", - " 7236,\n", - " 509,\n", - " 51084,\n", - " 45106,\n", - " 2528,\n", - " 3479,\n", - " 5903,\n", - " 2117],\n", - " 595: [76, 2006, 1779, 8644, 4643, 377, 6934, 2848, 39435, 3937],\n", - " 596: [2204, 2178, 2185, 2179, 930, 949, 903, 933, 2177, 2186],\n", - " 597: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 598: [4531,\n", - " 5847,\n", - " 51666,\n", - " 4514,\n", - " 1130,\n", - " 2454,\n", - " 6709,\n", - " 6059,\n", - " 6215,\n", - " 2783],\n", - " 599: [3742,\n", - " 7091,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018,\n", - " 7132],\n", - " 600: [1, 3086, 3510, 3114, 2014, 4350, 1270, 2012, 40815, 2011],\n", - " 601: [8749, 334, 2610, 523, 4428, 7396, 1446, 47778, 2068, 8367],\n", - " 602: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 603: [3100, 1933, 1929, 1935, 1946, 1943, 8153, 7771, 1937, 3475],\n", - " 604: [1156, 6599, 263, 4785, 5682, 3847, 4769, 37475, 2433, 1938],\n", - " 605: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 606: [832, 4124, 2555, 5483, 4181, 2379, 1389, 2382, 1597, 8859],\n", - " 607: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 608: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 609: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 610: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 612: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 613: [1156, 6599, 263, 4785, 5682, 3847, 4769, 37475, 2433, 1938],\n", - " 614: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 616: [3086,\n", - " 3510,\n", - " 3114,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 1270,\n", - " 2012,\n", - " 4896,\n", - " 40815],\n", - " 617: [6104,\n", - " 788,\n", - " 6807,\n", - " 2788,\n", - " 38038,\n", - " 2727,\n", - " 3751,\n", - " 4164,\n", - " 48982,\n", - " 32019],\n", - " 618: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 619: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 620: [1223, 1148, 1020, 6104, 745, 788, 6807, 2788, 38038, 1136],\n", - " 621: [54787,\n", - " 56169,\n", - " 33819,\n", - " 8915,\n", - " 2881,\n", - " 55946,\n", - " 2810,\n", - " 6555,\n", - " 6809,\n", - " 5282],\n", - " 622: [3786, 3631, 6680, 4033, 1037, 605, 2774, 5222, 866, 1747],\n", - " 623: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 624: [1, 3086, 3510, 2014, 4350, 5816, 1270, 2012, 4896, 40815],\n", - " 625: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 627: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 628: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 629: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 630: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 631: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 632: [2204, 2178, 2185, 2179, 1269, 949, 903, 933, 2177, 2186],\n", - " 633: [1060, 413, 663, 3211, 3484, 6938, 2342, 46850, 2471, 2435],\n", - " 634: [4434, 64234, 5609, 5523, 5181, 5822, 6574, 286, 5235, 8241],\n", - " 635: [1223, 1148, 6104, 745, 788, 6807, 2788, 38038, 1136, 2727],\n", - " 636: [76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848, 39435],\n", - " 637: [54787,\n", - " 56169,\n", - " 33819,\n", - " 8915,\n", - " 2881,\n", - " 55946,\n", - " 2810,\n", - " 6555,\n", - " 6809,\n", - " 5282],\n", - " 638: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 639: [3086, 3510, 2014, 4350, 1270, 2012, 40815, 2011, 2161, 355],\n", - " 640: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 2848, 39435],\n", - " 641: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 642: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 643: [1046, 185, 170, 4722, 45221, 4942, 47836, 2144, 1257, 3005],\n", - " 644: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 645: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 646: [364, 3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414],\n", - " 647: [2924, 2582, 5621, 2951, 1201, 1092, 393, 3681, 1209, 1445],\n", - " 648: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 649: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 650: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 651: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 652: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 653: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 654: [4531,\n", - " 5847,\n", - " 51666,\n", - " 4514,\n", - " 1130,\n", - " 2454,\n", - " 6709,\n", - " 6059,\n", - " 6215,\n", - " 2783],\n", - " 655: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 656: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 657: [1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937, 3475],\n", - " 658: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 659: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 660: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 661: [4434, 64234, 5609, 5523, 5181, 5822, 6574, 286, 5235, 8241],\n", - " 662: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 663: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 664: [1320,\n", - " 6754,\n", - " 2167,\n", - " 8985,\n", - " 6152,\n", - " 4030,\n", - " 54785,\n", - " 5128,\n", - " 43679,\n", - " 42738],\n", - " 665: [5780, 4687, 3693, 4928, 193, 4532, 2897, 7577, 5604, 26915],\n", - " 666: [318, 1245, 333, 3683, 26350, 3529, 2249, 2023, 3362, 608],\n", - " 667: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 668: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 669: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 670: [1060, 413, 663, 3211, 3484, 6938, 2342, 46850, 2471, 2435],\n", - " 671: [1302, 1967, 204, 6963, 3098, 3138, 5141, 4322, 6299, 59731],\n", - " 672: [318, 1245, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 674: [4434, 64234, 5609, 5523, 5181, 5822, 6574, 286, 5235, 8241],\n", - " 675: [2375, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822, 1231],\n", - " 676: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 677: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 678: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 679: [2115, 76, 2006, 1587, 8644, 4643, 6934, 2848, 1198, 39435],\n", - " 680: [1, 3086, 3510, 3114, 2014, 4350, 5816, 2012, 4896, 40815],\n", - " 681: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 683: [3086,\n", - " 3510,\n", - " 3114,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 4896,\n", - " 40815,\n", - " 8368,\n", - " 2161],\n", - " 684: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 685: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 686: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 688: [76, 1779, 8644, 4643, 6934, 2848, 39435, 3937, 26, 5445],\n", - " 689: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 690: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 691: [76, 2006, 1779, 8644, 4643, 6934, 2848, 39435, 1059, 3937],\n", - " 693: [1156, 6599, 263, 4785, 5682, 3847, 4769, 37475, 2433, 1938],\n", - " 694: [364, 3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414],\n", - " 695: [76, 1587, 1779, 8644, 4643, 377, 6934, 2848, 39435, 3937],\n", - " 696: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 697: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 698: [832, 4124, 2555, 5483, 4181, 2379, 1389, 2382, 1597, 8859],\n", - " 699: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 700: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 701: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 702: [6754,\n", - " 2167,\n", - " 8985,\n", - " 6152,\n", - " 4030,\n", - " 54785,\n", - " 5128,\n", - " 43679,\n", - " 42738,\n", - " 610],\n", - " 703: [3869, 466, 43919, 520, 8512, 743, 719, 3785, 6888, 947],\n", - " 704: [3086,\n", - " 3510,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 1270,\n", - " 2012,\n", - " 40815,\n", - " 2011,\n", - " 6377],\n", - " 705: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 706: [150, 2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501],\n", - " 707: [6876, 4273, 8451, 7372, 6641, 5408, 7761, 5533, 7613, 67],\n", - " 708: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 709: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 710: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 711: [364, 3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414],\n", - " 712: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 714: [5780, 4687, 3693, 4928, 193, 4532, 2897, 7577, 5604, 26915],\n", - " 715: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 716: [1020,\n", - " 6104,\n", - " 788,\n", - " 6807,\n", - " 2788,\n", - " 38038,\n", - " 1136,\n", - " 2727,\n", - " 4164,\n", - " 48982],\n", - " 718: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 719: [3869, 43919, 8512, 719, 3785, 6888, 947, 7378, 4402, 26386],\n", - " 720: [1156, 6599, 263, 4785, 5682, 3847, 4769, 37475, 2433, 1938],\n", - " 721: [1156, 6599, 263, 4785, 5682, 3847, 4769, 37475, 2433, 1938],\n", - " 723: [1046, 185, 170, 4722, 45221, 4942, 2665, 47836, 2144, 1257],\n", - " 724: [3086,\n", - " 3510,\n", - " 3114,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 1270,\n", - " 2012,\n", - " 4896,\n", - " 40815],\n", - " 725: [4189,\n", - " 6981,\n", - " 40833,\n", - " 64114,\n", - " 5318,\n", - " 8025,\n", - " 232,\n", - " 2933,\n", - " 50477,\n", - " 37287],\n", - " 726: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 727: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 728: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 729: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 730: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 731: [2115, 76, 1587, 1779, 8644, 4643, 6934, 2848, 1198, 39435],\n", - " 732: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 733: [1, 3086, 3510, 3114, 2014, 4350, 5816, 1270, 2012, 4896],\n", - " 734: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 735: [4790, 6462, 2896, 58, 8976, 3025, 32149, 4324, 5654, 6420],\n", - " 736: [4434, 64234, 5609, 5523, 5181, 5822, 6574, 286, 5235, 8241],\n", - " 737: [3086,\n", - " 3510,\n", - " 3114,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 1270,\n", - " 2012,\n", - " 4896,\n", - " 40815],\n", - " 738: [42728,\n", - " 4485,\n", - " 7236,\n", - " 509,\n", - " 51084,\n", - " 45106,\n", - " 2528,\n", - " 3479,\n", - " 5903,\n", - " 2117],\n", - " 739: [2115, 76, 1587, 8644, 4643, 6934, 2848, 1198, 39435, 1059],\n", - " 740: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 741: [1119, 2019, 2905, 58059, 7925, 778, 4439, 18, 3030, 4176],\n", - " 742: [1223,\n", - " 6104,\n", - " 745,\n", - " 6807,\n", - " 2788,\n", - " 38038,\n", - " 2727,\n", - " 4164,\n", - " 48982,\n", - " 32019],\n", - " 743: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 744: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 745: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 746: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 748: [1119, 2019, 2905, 58059, 1089, 7925, 778, 4439, 18, 3030],\n", - " 749: [364, 3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414],\n", - " 750: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 751: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 752: [1119, 2019, 2905, 58059, 1089, 7925, 778, 4439, 18, 3030],\n", - " 753: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 754: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426,\n", - " 27644],\n", - " 755: [3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414, 2566],\n", - " 756: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 757: [1695, 638, 2387, 1284, 3632, 50923, 1900, 907, 1635, 4562],\n", - " 758: [364, 3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414],\n", - " 759: [1, 3086, 3510, 2014, 4350, 5816, 4896, 40815, 2011, 4886],\n", - " 761: [2115, 76, 1587, 1779, 8644, 4643, 6934, 2848, 39435, 1059],\n", - " 762: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 763: [1223, 1020, 6104, 745, 788, 6807, 2788, 38038, 1136, 2727],\n", - " 764: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 765: [318,\n", - " 1245,\n", - " 4881,\n", - " 26350,\n", - " 4262,\n", - " 2249,\n", - " 2023,\n", - " 56587,\n", - " 25999,\n", - " 121],\n", - " 766: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 767: [1344,\n", - " 1310,\n", - " 55071,\n", - " 3002,\n", - " 27879,\n", - " 4171,\n", - " 7096,\n", - " 5137,\n", - " 1361,\n", - " 1192],\n", - " 768: [1119, 2019, 2905, 58059, 1089, 7925, 778, 4439, 18, 3030],\n", - " 769: [8749,\n", - " 2610,\n", - " 523,\n", - " 4428,\n", - " 7396,\n", - " 1446,\n", - " 47778,\n", - " 2068,\n", - " 8367,\n", - " 33832],\n", - " 770: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 771: [3086,\n", - " 3510,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 4896,\n", - " 40815,\n", - " 4886,\n", - " 6377,\n", - " 8368],\n", - " 772: [2115, 76, 2006, 1587, 1779, 8644, 4643, 2848, 1198, 39435],\n", - " 773: [3869, 370, 466, 43919, 8512, 743, 719, 3785, 6888, 947],\n", - " 774: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 775: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 776: [2204, 2178, 2185, 2179, 1269, 930, 949, 903, 933, 2177],\n", - " 777: [1485, 8194, 4113, 89, 1625, 3355, 882, 51911, 3020, 4239],\n", - " 780: [1245,\n", - " 4881,\n", - " 3683,\n", - " 26350,\n", - " 4262,\n", - " 3529,\n", - " 2249,\n", - " 2023,\n", - " 3362,\n", - " 56587],\n", - " 781: [5780, 4687, 3693, 4928, 193, 4532, 2897, 7577, 5604, 26915],\n", - " 782: [1223, 1148, 1020, 6104, 745, 788, 6807, 2788, 38038, 1136],\n", - " 783: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 784: [3086,\n", - " 3510,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 4896,\n", - " 40815,\n", - " 2011,\n", - " 8368,\n", - " 2161],\n", - " 785: [1223, 1148, 6104, 745, 788, 6807, 2788, 38038, 1136, 2727],\n", - " 786: [76, 1587, 8644, 377, 6934, 2848, 39435, 3937, 26, 5445],\n", - " 787: [1060, 413, 663, 3211, 3484, 6938, 2342, 46850, 2471, 2435],\n", - " 788: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 789: [1060, 413, 663, 3211, 3484, 6938, 2342, 46850, 2471, 2435],\n", - " 790: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 791: [1256,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 792: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 793: [2115, 76, 1587, 1779, 8644, 4643, 377, 6934, 2848, 1198],\n", - " 794: [2204, 2178, 2185, 2179, 1269, 930, 949, 903, 933, 904],\n", - " 795: [1119, 2019, 2905, 58059, 1089, 7925, 778, 4439, 18, 3030],\n", - " 796: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 797: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 798: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 26792,\n", - " 5006,\n", - " 48159,\n", - " 55955],\n", - " 799: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 800: [1060, 413, 3211, 3484, 6938, 2342, 46850, 2471, 2435, 8868],\n", - " 801: [1223, 1148, 1020, 6104, 745, 788, 2788, 38038, 2727, 3751],\n", - " 802: [4434, 64234, 5609, 5523, 5181, 5822, 6574, 286, 5235, 8241],\n", - " 803: [76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435, 1059],\n", - " 804: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 805: [76, 1587, 1779, 4643, 377, 2848, 39435, 1059, 3937, 26],\n", - " 806: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 807: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 808: [3869, 370, 466, 43919, 520, 8512, 743, 719, 6888, 947],\n", - " 809: [54787,\n", - " 56169,\n", - " 33819,\n", - " 8915,\n", - " 2881,\n", - " 55946,\n", - " 2810,\n", - " 6555,\n", - " 6809,\n", - " 5282],\n", - " 810: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 811: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 812: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 813: [2990, 3984, 5872, 2376, 2991, 63113, 1722, 3633, 10, 3082],\n", - " 814: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 608],\n", - " 815: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 816: [535, 1966, 190, 201, 8143, 538, 4612, 6460, 40946, 7299],\n", - " 817: [6876, 4273, 8451, 7372, 6641, 5408, 7761, 5533, 7613, 67],\n", - " 818: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 819: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 820: [4434, 64234, 5609, 5523, 5181, 5822, 6574, 286, 5235, 8241],\n", - " 821: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 822: [3759, 3964, 3775, 1030, 2096, 48, 2687, 6414, 2566, 4154],\n", - " 823: [3869, 370, 43919, 520, 8512, 719, 3785, 6888, 947, 7378],\n", - " 824: [2924, 2582, 5621, 1092, 44, 393, 3681, 1445, 4444, 112],\n", - " 825: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 826: [3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 827: [1060, 413, 663, 3211, 3484, 6938, 2342, 46850, 2471, 2435],\n", - " 828: [1156, 6599, 263, 4785, 5682, 3847, 4769, 37475, 2433, 1938],\n", - " 829: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 830: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 831: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 832: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 833: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 834: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 835: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 836: [2115, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848, 1198],\n", - " 837: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 838: [4518,\n", - " 5771,\n", - " 32011,\n", - " 48518,\n", - " 61931,\n", - " 6695,\n", - " 4758,\n", - " 58964,\n", - " 1992,\n", - " 2113],\n", - " 839: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 840: [3652, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075, 4658],\n", - " 841: [1372, 1373, 1371, 5944, 7811, 1375, 223, 33493, 5785, 7812],\n", - " 842: [364, 3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414],\n", - " 843: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 844: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 3362],\n", - " 846: [104, 1837, 27830, 1760, 6797, 2613, 948, 3979, 2694, 1777],\n", - " 847: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 848: [1119, 2019, 2905, 58059, 1089, 7925, 778, 4439, 18, 3030],\n", - " 849: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 851: [5780, 4687, 3693, 4928, 193, 4532, 2897, 7577, 5604, 26915],\n", - " 852: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 853: [2115, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848, 1198],\n", - " 854: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 855: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362],\n", - " 856: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 857: [2115, 76, 2006, 1587, 8644, 4643, 2848, 1198, 39435, 1059],\n", - " 859: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 860: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 861: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 3362],\n", - " 862: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 863: [333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 3362, 858],\n", - " 864: [1682, 553, 5590, 7281, 7280, 32082, 1032, 8910, 3263, 2539],\n", - " 865: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 866: [597, 1125, 6662, 2497, 4992, 339, 74, 6143, 36525, 2671],\n", - " 867: [3079, 7178, 5035, 3179, 28, 17, 7580, 2104, 43556, 5947],\n", - " 868: [3079, 7178, 5035, 3179, 28, 17, 7580, 2104, 43556, 5947],\n", - " 869: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 870: [2924, 2582, 5621, 2951, 1201, 1092, 44, 393, 3681, 1209],\n", - " 871: [1256,\n", - " 3742,\n", - " 7091,\n", - " 25777,\n", - " 1358,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018,\n", - " 7132],\n", - " 872: [1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937, 3475],\n", - " 873: [2924, 2582, 5621, 2951, 1201, 1092, 44, 393, 3681, 1209],\n", - " 874: [3759, 3964, 3775, 1022, 1030, 2096, 2687, 6414, 2566, 4154],\n", - " 875: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 876: [3869, 43919, 8512, 743, 719, 3785, 6888, 947, 7378, 4402],\n", - " 878: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435],\n", - " 879: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 881: [1060, 413, 663, 3211, 3484, 6938, 2342, 46850, 2471, 2435],\n", - " 882: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 883: [6457,\n", - " 3643,\n", - " 3372,\n", - " 33124,\n", - " 3066,\n", - " 6439,\n", - " 53342,\n", - " 55402,\n", - " 49688,\n", - " 63791],\n", - " 884: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 885: [8749,\n", - " 2610,\n", - " 523,\n", - " 4428,\n", - " 7396,\n", - " 1446,\n", - " 47778,\n", - " 2068,\n", - " 8367,\n", - " 33832],\n", - " 886: [1344,\n", - " 1310,\n", - " 55071,\n", - " 3002,\n", - " 27879,\n", - " 4171,\n", - " 7096,\n", - " 5137,\n", - " 55620,\n", - " 33134],\n", - " 887: [1125, 6662, 2497, 1222, 4992, 74, 6143, 36525, 7320, 5942],\n", - " 888: [1, 3086, 3510, 2014, 4350, 5816, 1270, 4896, 40815, 2011],\n", - " 889: [1119, 2019, 2905, 58059, 1089, 7925, 778, 4439, 18, 3030],\n", - " 890: [2924, 2582, 5621, 2951, 1201, 44, 393, 3681, 1209, 1445],\n", - " 891: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 892: [1245,\n", - " 4881,\n", - " 3683,\n", - " 26350,\n", - " 4262,\n", - " 3529,\n", - " 2249,\n", - " 2023,\n", - " 3362,\n", - " 56587],\n", - " 893: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 894: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 895: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 896: [3869, 466, 43919, 8512, 743, 719, 3785, 6888, 947, 7378],\n", - " 897: [1156, 6599, 263, 4785, 5682, 3847, 4769, 37475, 2433, 1938],\n", - " 898: [5944, 7811, 223, 33493, 5785, 7812, 1374, 4009, 4856, 5754],\n", - " 899: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 900: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 901: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 902: [150, 2375, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 903: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 904: [104, 1837, 27830, 1760, 6797, 2613, 948, 3979, 308, 2694],\n", - " 905: [150, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 906: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 907: [42728,\n", - " 849,\n", - " 4485,\n", - " 7236,\n", - " 653,\n", - " 51084,\n", - " 45106,\n", - " 2528,\n", - " 3479,\n", - " 5903],\n", - " 908: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 909: [2115, 76, 2006, 1587, 1779, 8644, 377, 2848, 39435, 3937],\n", - " 910: [54787,\n", - " 56169,\n", - " 33819,\n", - " 8915,\n", - " 2881,\n", - " 55946,\n", - " 2810,\n", - " 6555,\n", - " 6809,\n", - " 5282],\n", - " 911: [2204, 2178, 2179, 1269, 930, 949, 933, 904, 2177, 2186],\n", - " 912: [1, 3086, 3510, 2014, 4350, 5816, 2012, 4896, 40815, 4886],\n", - " 913: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 914: [2115, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848, 1198],\n", - " 915: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 916: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 917: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 918: [597, 1125, 6662, 2497, 1222, 4992, 339, 6143, 36525, 2671],\n", - " 919: [4434, 64234, 5609, 5523, 5181, 5822, 6574, 286, 5235, 8241],\n", - " 920: [2990, 3984, 5872, 2376, 2991, 63113, 1722, 3633, 10, 3082],\n", - " 921: [364, 3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414],\n", - " 922: [1223, 1148, 1020, 6104, 745, 6807, 2788, 38038, 2727, 4164],\n", - " 923: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023],\n", - " 924: [8749, 334, 2610, 523, 4428, 7396, 1446, 47778, 2068, 8367],\n", - " 925: [1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023, 608],\n", - " 926: [1012,\n", - " 27850,\n", - " 2064,\n", - " 6775,\n", - " 1051,\n", - " 44195,\n", - " 7976,\n", - " 1206,\n", - " 7762,\n", - " 60530],\n", - " 927: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 928: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435],\n", - " 930: [3869, 370, 43919, 520, 8512, 743, 719, 3785, 6888, 947],\n", - " 931: [2115, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848, 1198],\n", - " 932: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 933: [153,\n", - " 3213,\n", - " 2642,\n", - " 58559,\n", - " 7439,\n", - " 26152,\n", - " 5349,\n", - " 31221,\n", - " 1377,\n", - " 33794],\n", - " 934: [63859,\n", - " 26495,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159,\n", - " 55955],\n", - " 935: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435],\n", - " 936: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 937: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 938: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 939: [4124, 2555, 5483, 4181, 2379, 1389, 2382, 1597, 8859, 7317],\n", - " 940: [6457,\n", - " 3643,\n", - " 3372,\n", - " 33124,\n", - " 3066,\n", - " 6439,\n", - " 53342,\n", - " 55402,\n", - " 49688,\n", - " 63791],\n", - " 941: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 942: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 943: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023],\n", - " 945: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 946: [3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414, 2566],\n", - " 947: [2115, 76, 2006, 1587, 1779, 8644, 377, 6934, 2848, 39435],\n", - " 948: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 949: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4046, 3075, 4658],\n", - " 950: [2204, 2178, 2185, 2179, 1269, 930, 949, 903, 933, 2177],\n", - " 951: [3869, 370, 466, 43919, 520, 8512, 743, 3785, 6888, 947],\n", - " 952: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 953: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 954: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 955: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 956: [42728,\n", - " 849,\n", - " 4485,\n", - " 7236,\n", - " 653,\n", - " 51084,\n", - " 45106,\n", - " 2528,\n", - " 3479,\n", - " 5903],\n", - " 957: [54787,\n", - " 56169,\n", - " 33819,\n", - " 8915,\n", - " 2881,\n", - " 55946,\n", - " 2810,\n", - " 6555,\n", - " 6809,\n", - " 5282],\n", - " 958: [1046,\n", - " 170,\n", - " 1968,\n", - " 4722,\n", - " 45221,\n", - " 4942,\n", - " 2665,\n", - " 47836,\n", - " 2144,\n", - " 1257],\n", - " 960: [1119, 2019, 2905, 58059, 1089, 7925, 778, 4439, 18, 3030],\n", - " 961: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 962: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 963: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 964: [1245,\n", - " 333,\n", - " 4881,\n", - " 3683,\n", - " 26350,\n", - " 3529,\n", - " 2249,\n", - " 2023,\n", - " 3362,\n", - " 56587],\n", - " 965: [1, 3086, 3510, 3114, 2014, 4350, 5816, 1270, 2012, 4896],\n", - " 966: [1223, 1148, 1020, 6104, 745, 788, 38038, 2727, 3751, 4164],\n", - " 967: [1223, 1148, 1020, 6104, 745, 788, 6807, 2788, 38038, 1136],\n", - " 968: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 969: [597, 1125, 6662, 2497, 1222, 4992, 339, 6143, 36525, 2671],\n", - " 970: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 971: [3869, 43919, 8512, 743, 719, 3785, 6888, 947, 7378, 4402],\n", - " 972: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 973: [3100, 1933, 1929, 1935, 4292, 1946, 1943, 8153, 7771, 1937],\n", - " 974: [6457,\n", - " 3643,\n", - " 3372,\n", - " 33124,\n", - " 3066,\n", - " 6439,\n", - " 53342,\n", - " 55402,\n", - " 49688,\n", - " 63791],\n", - " 975: [1119, 2019, 2905, 58059, 1089, 7925, 778, 4439, 18, 3030],\n", - " 976: [3086,\n", - " 3510,\n", - " 3114,\n", - " 2014,\n", - " 4350,\n", - " 5816,\n", - " 1270,\n", - " 2012,\n", - " 4896,\n", - " 40815],\n", - " 977: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 978: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 979: [150, 2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501],\n", - " 980: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 982: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 983: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 984: [3079, 7178, 5035, 3179, 28, 17, 7580, 2104, 43556, 5947],\n", - " 985: [1, 3086, 3114, 2014, 4350, 2012, 2011, 2161, 355, 7058],\n", - " 986: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 987: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 988: [2006, 1779, 8644, 4643, 377, 6934, 2848, 39435, 1059, 3937],\n", - " 989: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 990: [3869, 43919, 8512, 743, 719, 3785, 6888, 947, 7378, 4402],\n", - " 991: [76, 2006, 1779, 8644, 4643, 377, 6934, 2848, 39435, 1059],\n", - " 992: [150, 2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501],\n", - " 993: [3652, 1921, 1464, 6952, 4794, 3970, 6530, 4210, 4046, 3075],\n", - " 994: [5780, 4687, 3693, 4928, 193, 4532, 2897, 7577, 5604, 26915],\n", - " 995: [1111, 1302, 1967, 204, 6963, 80, 3098, 3138, 5141, 4322],\n", - " 996: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 997: [42728,\n", - " 849,\n", - " 4485,\n", - " 7236,\n", - " 509,\n", - " 51084,\n", - " 45106,\n", - " 2528,\n", - " 3479,\n", - " 5903],\n", - " 998: [6876, 4273, 2432, 8451, 7372, 6641, 5408, 7761, 5533, 1624],\n", - " 999: [1256,\n", - " 3742,\n", - " 7091,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 1001: [3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414, 2566],\n", - " 1002: [3869, 43919, 8512, 743, 719, 3785, 6888, 947, 7378, 4402],\n", - " 1003: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 1004: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435],\n", - " 1005: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 1198],\n", - " 1006: [1837,\n", - " 27830,\n", - " 1760,\n", - " 6797,\n", - " 2613,\n", - " 948,\n", - " 3979,\n", - " 2694,\n", - " 1777,\n", - " 1917],\n", - " 1007: [6876,\n", - " 4273,\n", - " 2432,\n", - " 8451,\n", - " 7372,\n", - " 6641,\n", - " 5408,\n", - " 7761,\n", - " 5533,\n", - " 1624],\n", - " 1008: [2115, 76, 2006, 1587, 1779, 8644, 4643, 6934, 2848, 39435],\n", - " 1009: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 1011: [76, 2006, 8644, 4643, 6934, 2848, 39435, 3937, 26, 5445],\n", - " 1012: [4434,\n", - " 64234,\n", - " 5609,\n", - " 5523,\n", - " 5181,\n", - " 5822,\n", - " 6574,\n", - " 286,\n", - " 5235,\n", - " 8241],\n", - " 1013: [1125, 6662, 2497, 1222, 4992, 339, 74, 6143, 36525, 2671],\n", - " 1014: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 1015: [1, 3086, 3510, 2014, 4350, 5816, 1270, 2012, 4896, 40815],\n", - " 1016: [1245,\n", - " 333,\n", - " 4881,\n", - " 3683,\n", - " 26350,\n", - " 4262,\n", - " 3529,\n", - " 2249,\n", - " 2023,\n", - " 3362],\n", - " 1017: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 1018: [4518,\n", - " 5771,\n", - " 32011,\n", - " 48518,\n", - " 61931,\n", - " 6695,\n", - " 4758,\n", - " 58964,\n", - " 1992,\n", - " 2113],\n", - " 1019: [47830,\n", - " 52005,\n", - " 7728,\n", - " 50858,\n", - " 54958,\n", - " 60566,\n", - " 259,\n", - " 59362,\n", - " 6757,\n", - " 56700],\n", - " 1020: [1256,\n", - " 3742,\n", - " 7091,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766,\n", - " 34018],\n", - " 1021: [3759, 3964, 3775, 1030, 2096, 48, 2687, 6414, 2566, 4154],\n", - " 1022: [364, 3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414],\n", - " 1023: [3100,\n", - " 1933,\n", - " 1929,\n", - " 1935,\n", - " 4292,\n", - " 1946,\n", - " 1943,\n", - " 8153,\n", - " 7771,\n", - " 1937],\n", - " 1025: [1012,\n", - " 27850,\n", - " 6775,\n", - " 1051,\n", - " 44195,\n", - " 7976,\n", - " 1206,\n", - " 7762,\n", - " 60530,\n", - " 59290],\n", - " 1026: [318, 1245, 333, 4881, 3683, 26350, 4262, 3529, 2249, 2023],\n", - " 1027: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 1028: [3652,\n", - " 1921,\n", - " 1464,\n", - " 6952,\n", - " 4794,\n", - " 3970,\n", - " 6530,\n", - " 4210,\n", - " 4046,\n", - " 3075],\n", - " 1029: [54787,\n", - " 56169,\n", - " 33819,\n", - " 8915,\n", - " 2881,\n", - " 55946,\n", - " 2810,\n", - " 6555,\n", - " 6809,\n", - " 5282],\n", - " 1030: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 1031: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 1032: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 1033: [3759, 3964, 3775, 1022, 1030, 2096, 48, 2687, 6414, 2566],\n", - " 1034: [1, 3086, 3510, 3114, 2014, 4350, 5816, 1270, 2012, 4896],\n", - " 1035: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 2848, 1198],\n", - " 1037: [3869, 370, 466, 43919, 520, 8512, 743, 719, 3785, 6888],\n", - " 1038: [2675,\n", - " 54193,\n", - " 6513,\n", - " 8302,\n", - " 8294,\n", - " 6875,\n", - " 56941,\n", - " 8273,\n", - " 2556,\n", - " 2426],\n", - " 1039: [1020,\n", - " 6104,\n", - " 788,\n", - " 6807,\n", - " 2788,\n", - " 38038,\n", - " 1136,\n", - " 2727,\n", - " 3751,\n", - " 4164],\n", - " 1040: [63859,\n", - " 26495,\n", - " 1848,\n", - " 1525,\n", - " 32153,\n", - " 2041,\n", - " 8811,\n", - " 26792,\n", - " 5006,\n", - " 48159],\n", - " 1041: [2115, 76, 1587, 1779, 8644, 4643, 377, 6934, 2848, 39435],\n", - " 1043: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 1044: [2115, 76, 2006, 1587, 1779, 8644, 4643, 377, 6934, 2848],\n", - " 1045: [1256,\n", - " 3742,\n", - " 7091,\n", - " 913,\n", - " 25777,\n", - " 1358,\n", - " 1186,\n", - " 34002,\n", - " 8734,\n", - " 25766],\n", - " 1046: [2375, 4022, 8529, 993, 5341, 4468, 7456, 4192, 2501, 2822],\n", - " 1047: [1223, 1148, 1020, 6104, 745, 788, 6807, 2788, 38038, 2727],\n", - " 1048: [2990,\n", - " 3984,\n", - " 5872,\n", - " 2948,\n", - " 2376,\n", - " 2991,\n", - " 63113,\n", - " 2949,\n", - " 1722,\n", - " 3633],\n", - " 1050: [1060, 413, 663, 3211, 3484, 6938, 2342, 46850, 2471, 2435],\n", - " 1051: [1060, 413, 663, 3211, 3484, 6938, 2342, 46850, 2471, 2435],\n", - " 1052: [3100,\n", - " 1933,\n", - " 1929,\n", - " 1935,\n", - " 4292,\n", - " 1946,\n", - " 1943,\n", - " 8153,\n", - " 7771,\n", - " 1937],\n", - " 1053: [2115, 76, 1587, 1779, 4643, 377, 6934, 2848, 39435, 1059]})" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from collections import defaultdict\n", - "from collections import Counter\n", - "\n", - "# 각 사용자에 대한 추천 리스트를 작성한다\n", - "# 사용자가 높게 평가한 영화가, 어떤 토픽에 많이 소속되어 있는지 카운트한다\n", - "# 가장 많은 토픽을 사용자가 좋아하는 토픽으로 간주하고, 해당 토픽의 영화를 추천한다\n", - "\n", - "movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n", - "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", - "\n", - "movie_id2index = dict(zip(movie_content.movie_id.tolist(), range(len(movie_content))))\n", - "pred_user2items = defaultdict(list)\n", - "for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n", - " # 사용자가 높이 평가한 영화\n", - " evaluated_movie_ids = user_evaluated_movies[user_id]\n", - " # 최근 열람한 영화를 얻는다\n", - " movie_ids = data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-10:]\n", - "\n", - " movie_indexes = [movie_id2index[id] for id in movie_ids]\n", - " \n", - " # 최근 열람한 영화의 토픽을 얻고, 풀현 횟수를 카운트한다\n", - " topic_counter = Counter([movie_topics[i] for i in movie_indexes])\n", - " # 가장 출현 횟수가 많았던 토픽을 얻는다\n", - " frequent_topic = topic_counter.most_common(1)[0][0]\n", - " # 해당 토픽의 영화 중에서도 점수가 높은 것을 추천한다\n", - " topic_movies = (\n", - " movie_content[movie_content.topic == frequent_topic]\n", - " .sort_values(\"topic_score\", ascending=False)\n", - " .movie_id.tolist()\n", - " )\n", - "\n", - " for movie_id in topic_movies:\n", - " if movie_id not in evaluated_movie_ids:\n", - " pred_user2items[user_id].append(movie_id)\n", - " if len(pred_user2items[user_id]) == 10:\n", - " break\n", - "pred_user2items" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "8d238322", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "8381 2 1210 4.0 868245644 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 " - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", - "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "d6877799", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
7576Screamers (1995)[Action, Sci-Fi, Thriller][philip k. dick, artificial intelligence, post...
19222006Mask of Zorro, The (1998)[Action, Adventure, Romance][california, mexico, funny, banderas, anthony ...
20312115Indiana Jones and the Temple of Doom (1984)[Action, Adventure][lucas, want it, dvd collection, harrison ford...
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "75 76 Screamers (1995) \n", - "1922 2006 Mask of Zorro, The (1998) \n", - "2031 2115 Indiana Jones and the Temple of Doom (1984) \n", - "\n", - " genre \\\n", - "75 [Action, Sci-Fi, Thriller] \n", - "1922 [Action, Adventure, Romance] \n", - "2031 [Action, Adventure] \n", - "\n", - " tag \n", - "75 [philip k. dick, artificial intelligence, post... \n", - "1922 [california, mexico, funny, banderas, anthony ... \n", - "2031 [lucas, want it, dvd collection, harrison ford... " - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2에 대한 추천(2115, 76, 2006)\n", - "movies[movies.movie_id.isin([2115, 76, 2006])]" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "129f2877", - "metadata": {}, - "outputs": [], - "source": [ - "# 여기에서는 각 사용자의 평가 이력으로부터 1개의 토픽을 픽업했지만, 토픽의 확률값을 사용해서 가중치를 주면서 아이템을 추출할 수도 있습니다." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6a30f15c", - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","id":"0a902087","metadata":{"id":"0a902087"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/LDA_content.ipynb)"]},{"cell_type":"markdown","id":"98853cdc","metadata":{"id":"98853cdc"},"source":["# Latent Dirichlet Allocation (LDA)"]},{"cell_type":"code","execution_count":1,"id":"dd0a4718","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"dd0a4718","executionInfo":{"status":"ok","timestamp":1672118379265,"user_tz":-540,"elapsed":3985,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c3c7a4e6-690d-431c-a767-3ff7cd0aea7a"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:19:32-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 106MB/s in 0.6s \n","\n","2022-12-27 05:19:33 (106 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"38f1eabd","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"38f1eabd","executionInfo":{"status":"ok","timestamp":1672118460251,"user_tz":-540,"elapsed":80989,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"7dbb3693-16e5-4e38-fd8e-c20f1595a08f"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"ea40c411","metadata":{"id":"ea40c411","executionInfo":{"status":"ok","timestamp":1672118460251,"user_tz":-540,"elapsed":11,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 인자 수\n","factors = 50\n","# 에폭 수\n","n_epochs = 30"]},{"cell_type":"code","execution_count":4,"id":"7aa2bed1","metadata":{"id":"7aa2bed1","executionInfo":{"status":"ok","timestamp":1672118460252,"user_tz":-540,"elapsed":12,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["movie_content = movies.copy()\n","# tag가 부여되어 있지 않은 영화가 있지만, genre는 모든 영화에 부여되어 있다\n","# tag와 genre를 결합한 것을 영화 콘텐츠 정보로 하여 비슷한 영화를 찾아서 추천한다\n","# tag가 없는 영화는 NaN으로 되어 있으므로, 빈 리스트로 변환한 뒤 처리한다\n","movie_content[\"tag_genre\"] = movie_content[\"tag\"].fillna(\"\").apply(list) + movie_content[\"genre\"].apply(list)\n","movie_content[\"tag_genre\"] = movie_content[\"tag_genre\"].apply(lambda x: list(map(str, x)))\n","\n","# 태그와 장르 데이터를 사용해 lda를 학습한다\n","tag_genre_data = movie_content.tag_genre.tolist()"]},{"cell_type":"code","execution_count":5,"id":"d5804af1","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"d5804af1","executionInfo":{"status":"ok","timestamp":1672118468216,"user_tz":-540,"elapsed":7975,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"04a68cd3-8b0e-45ee-a1ee-d1a952a63437"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting gensim==4.0.1\n"," Downloading gensim-4.0.1-cp38-cp38-manylinux1_x86_64.whl (23.9 MB)\n","\u001b[K |████████████████████████████████| 23.9 MB 1.4 MB/s \n","\u001b[?25hRequirement already satisfied: scipy>=0.18.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.7.3)\n","Requirement already satisfied: numpy>=1.11.3 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.21.6)\n","Requirement already satisfied: smart-open>=1.8.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (6.3.0)\n","Installing collected packages: gensim\n"," Attempting uninstall: gensim\n"," Found existing installation: gensim 3.6.0\n"," Uninstalling gensim-3.6.0:\n"," Successfully uninstalled gensim-3.6.0\n","Successfully installed gensim-4.0.1\n"]}],"source":["!pip install gensim==4.0.1"]},{"cell_type":"code","execution_count":6,"id":"c448ef53","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"c448ef53","executionInfo":{"status":"ok","timestamp":1672118469654,"user_tz":-540,"elapsed":1442,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"040b678f-bb33-4b0e-eea1-9c147aa589c6"},"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.8/dist-packages/gensim/similarities/__init__.py:15: UserWarning: The gensim.similarities.levenshtein submodule is disabled, because the optional Levenshtein package is unavailable. Install Levenhstein (e.g. `pip install python-Levenshtein`) to suppress this warning.\n"," warnings.warn(msg)\n"]}],"source":["from gensim.corpora.dictionary import Dictionary\n","\n","# LDA의 입력으로 사용할 데이터를 작성한다\n","common_dictionary = Dictionary(tag_genre_data)\n","common_corpus = [common_dictionary.doc2bow(text) for text in tag_genre_data]\n"]},{"cell_type":"code","execution_count":7,"id":"a4449eb1","metadata":{"id":"a4449eb1","executionInfo":{"status":"ok","timestamp":1672118564370,"user_tz":-540,"elapsed":94718,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["import gensim\n","\n","# LDA 학습\n","lda_model = gensim.models.LdaModel(\n"," common_corpus, id2word=common_dictionary, num_topics=factors, passes=n_epochs\n",")"]},{"cell_type":"code","execution_count":8,"id":"a5911f4e","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"a5911f4e","executionInfo":{"status":"ok","timestamp":1672118564371,"user_tz":-540,"elapsed":13,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"851e44c7-0605-4c9b-cd83-701340697d26"},"outputs":[{"output_type":"stream","name":"stdout","text":["word=coen brothers, score=0.06292896717786789\n","word=bechdel test:fail, score=0.04510311409831047\n","word=based on book, score=0.04402820020914078\n","word=philip k. dick, score=0.04182061925530434\n","word=kidnapping, score=0.03534778952598572\n","word=quirky, score=0.02876952663064003\n","word=david lynch, score=0.022975284606218338\n","word=fascism, score=0.01680714637041092\n","word=sure thing, score=0.015899477526545525\n","word=robert altman, score=0.015737345442175865\n"]}],"source":["# topic0인 단어 목록\n","for token_id, score in lda_model.get_topic_terms(0, topn=10):\n"," word = common_dictionary.id2token[token_id]\n"," print(f'word={word}, score={score}')"]},{"cell_type":"code","execution_count":9,"id":"858bf7ea","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"858bf7ea","executionInfo":{"status":"ok","timestamp":1672118564371,"user_tz":-540,"elapsed":11,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"df48bb09-d2ad-4570-fa8f-e5b38679a98c"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[(0, 0.01000004),\n"," (1, 0.01000004),\n"," (2, 0.01000004),\n"," (3, 0.01000004),\n"," (4, 0.01000004),\n"," (5, 0.01000004),\n"," (6, 0.01000004),\n"," (7, 0.01000004),\n"," (8, 0.01000004),\n"," (9, 0.01000004),\n"," (10, 0.01000004),\n"," (11, 0.01000004),\n"," (12, 0.01000004),\n"," (13, 0.01000004),\n"," (14, 0.01000004),\n"," (15, 0.01000004),\n"," (16, 0.01000004),\n"," (17, 0.01000004),\n"," (18, 0.01000004),\n"," (19, 0.01000004),\n"," (20, 0.01000004),\n"," (21, 0.01000004),\n"," (22, 0.01000004),\n"," (23, 0.01000004),\n"," (24, 0.01000004),\n"," (25, 0.01000004),\n"," (26, 0.01000004),\n"," (27, 0.01000004),\n"," (28, 0.01000004),\n"," (29, 0.01000004),\n"," (30, 0.01000004),\n"," (31, 0.01000004),\n"," (32, 0.509998),\n"," (33, 0.01000004),\n"," (34, 0.01000004),\n"," (35, 0.01000004),\n"," (36, 0.01000004),\n"," (37, 0.01000004),\n"," (38, 0.01000004),\n"," (39, 0.01000004),\n"," (40, 0.01000004),\n"," (41, 0.01000004),\n"," (42, 0.01000004),\n"," (43, 0.01000004),\n"," (44, 0.01000004),\n"," (45, 0.01000004),\n"," (46, 0.01000004),\n"," (47, 0.01000004),\n"," (48, 0.01000004),\n"," (49, 0.01000004)]"]},"metadata":{},"execution_count":9}],"source":["# samurai라는 단어의 토픽(각 토픽에 소속될 확률)\n","lda_model[common_dictionary.doc2bow(['samurai'])]"]},{"cell_type":"code","execution_count":10,"id":"e03ab49d","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":554},"id":"e03ab49d","executionInfo":{"status":"ok","timestamp":1672118571397,"user_tz":-540,"elapsed":7036,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"04f31642-f84a-4a5b-a7a7-17f5e79ad431"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","0 1 Toy Story (1995) \n","1 2 Jumanji (1995) \n","2 3 Grumpier Old Men (1995) \n","3 4 Waiting to Exhale (1995) \n","4 5 Father of the Bride Part II (1995) \n","... ... ... \n","10676 65088 Bedtime Stories (2008) \n","10677 65091 Manhattan Melodrama (1934) \n","10678 65126 Choke (2008) \n","10679 65130 Revolutionary Road (2008) \n","10680 65133 Blackadder Back & Forth (1999) \n","\n"," genre \\\n","0 [Adventure, Animation, Children, Comedy, Fantasy] \n","1 [Adventure, Children, Fantasy] \n","2 [Comedy, Romance] \n","3 [Comedy, Drama, Romance] \n","4 [Comedy] \n","... ... \n","10676 [Adventure, Children, Comedy] \n","10677 [Crime, Drama, Romance] \n","10678 [Comedy, Drama] \n","10679 [Drama, Romance] \n","10680 [Comedy] \n","\n"," tag \\\n","0 [pixar, pixar, pixar, animation, pixar, animat... \n","1 [for children, game, animals, joe johnston, ro... \n","2 [funniest movies, comedinha de velhinhos engra... \n","3 [girl movie] \n","4 [steve martin, pregnancy, remake, steve martin... \n","... ... \n","10676 NaN \n","10677 NaN \n","10678 [chuck palahniuk, based on book] \n","10679 [toplist08] \n","10680 NaN \n","\n"," tag_genre topic topic_score \n","0 [pixar, pixar, pixar, animation, pixar, animat... 34 0.777594 \n","1 [for children, game, animals, joe johnston, ro... 40 0.275520 \n","2 [funniest movies, comedinha de velhinhos engra... 7 0.501525 \n","3 [girl movie, Comedy, Drama, Romance] 49 0.755000 \n","4 [steve martin, pregnancy, remake, steve martin... 34 0.692084 \n","... ... ... ... \n","10676 [Adventure, Children, Comedy] 34 0.755000 \n","10677 [Crime, Drama, Romance] 49 0.456076 \n","10678 [chuck palahniuk, based on book, Comedy, Drama] 49 0.505002 \n","10679 [toplist08, Drama, Romance] 49 0.673333 \n","10680 [Comedy] 17 0.510000 \n","\n","[10681 rows x 7 columns]"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretagtag_genretopictopic_score
01Toy Story (1995)[Adventure, Animation, Children, Comedy, Fantasy][pixar, pixar, pixar, animation, pixar, animat...[pixar, pixar, pixar, animation, pixar, animat...340.777594
12Jumanji (1995)[Adventure, Children, Fantasy][for children, game, animals, joe johnston, ro...[for children, game, animals, joe johnston, ro...400.275520
23Grumpier Old Men (1995)[Comedy, Romance][funniest movies, comedinha de velhinhos engra...[funniest movies, comedinha de velhinhos engra...70.501525
34Waiting to Exhale (1995)[Comedy, Drama, Romance][girl movie][girl movie, Comedy, Drama, Romance]490.755000
45Father of the Bride Part II (1995)[Comedy][steve martin, pregnancy, remake, steve martin...[steve martin, pregnancy, remake, steve martin...340.692084
........................
1067665088Bedtime Stories (2008)[Adventure, Children, Comedy]NaN[Adventure, Children, Comedy]340.755000
1067765091Manhattan Melodrama (1934)[Crime, Drama, Romance]NaN[Crime, Drama, Romance]490.456076
1067865126Choke (2008)[Comedy, Drama][chuck palahniuk, based on book][chuck palahniuk, based on book, Comedy, Drama]490.505002
1067965130Revolutionary Road (2008)[Drama, Romance][toplist08][toplist08, Drama, Romance]490.673333
1068065133Blackadder Back & Forth (1999)[Comedy]NaN[Comedy]170.510000
\n","

10681 rows × 7 columns

\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":10}],"source":["# 각 영화의 토픽을 저장한다\n","lda_topics = lda_model[common_corpus]\n","\n","# 각 영화에 가장 확률이 높은 토픽을 1개 추출해서 저장한다\n","movie_topics = []\n","movie_topic_scores = []\n","for movie_index, lda_topic in enumerate(lda_topics):\n"," sorted_topic = sorted(lda_topics[movie_index], key=lambda x: -x[1])\n"," # 가장 확률이 높은 토픽\n"," movie_topic, topic_score = sorted_topic[0]\n"," movie_topics.append(movie_topic)\n"," movie_topic_scores.append(topic_score)\n","movie_content[\"topic\"] = movie_topics\n","movie_content[\"topic_score\"] = movie_topic_scores\n","movie_content"]},{"cell_type":"code","execution_count":11,"id":"961bb095","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"961bb095","executionInfo":{"status":"ok","timestamp":1672118572985,"user_tz":-540,"elapsed":1592,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"e05ef7b3-811d-4c1e-a76b-32c2721be3ad"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {1: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 2: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788],\n"," 3: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 4: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 5: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n"," 6: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n"," 7: [25766, 910, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494],\n"," 8: [3683, 4881, 1394, 5756, 33823, 2583, 76, 663, 1464, 45028],\n"," 9: [1513, 45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102],\n"," 10: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n"," 11: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 12: [1210, 1196, 260, 5378, 33493, 1200, 1580, 377, 1584, 1438],\n"," 13: [260, 5378, 33493, 780, 2628, 1200, 377, 1584, 1438, 788],\n"," 14: [780, 2628, 1200, 1580, 377, 1584, 1438, 788, 8644, 736],\n"," 16: [5378, 33493, 780, 2628, 377, 1584, 1438, 788, 8644, 736],\n"," 17: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 18: [5378, 33493, 2628, 1200, 1584, 8644, 1690, 4812, 3699, 2311],\n"," 19: [104,\n"," 59900,\n"," 1777,\n"," 2014,\n"," 27830,\n"," 60487,\n"," 3979,\n"," 1241,\n"," 6593,\n"," 27873],\n"," 22: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 23: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 1584, 1438, 788],\n"," 24: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 26: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 27: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 28: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 29: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 457],\n"," 30: [135, 5146, 2810, 27731, 42217, 1537, 3484, 4850, 1717, 1343],\n"," 33: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 34: [5378, 33493, 1580, 8644, 4812, 2311, 6882, 3527, 2193, 2115],\n"," 35: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2622],\n"," 36: [262,\n"," 1130,\n"," 5335,\n"," 60530,\n"," 59290,\n"," 27513,\n"," 3012,\n"," 4514,\n"," 8025,\n"," 5833],\n"," 37: [2249, 3833, 32019, 1785, 18, 3744, 27734, 1729, 1635, 1213],\n"," 38: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 40: [555, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n"," 41: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 42: [1513, 45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102],\n"," 43: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 44: [1513, 45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102],\n"," 45: [48161, 993, 930, 2178, 2375, 904, 2186, 290, 43710, 2236],\n"," 46: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 47: [5378, 33493, 1438, 788, 8644, 1690, 4812, 3699, 2311, 6882],\n"," 48: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 50: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 51: [586, 1734, 7091, 317, 7058, 34002, 8734, 34018, 4763, 2804],\n"," 52: [2924, 2582, 112, 51277, 5621, 1429, 2879, 2880, 3139, 1867],\n"," 53: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 54: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 55: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n"," 56: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 57: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 58: [1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848, 63237],\n"," 59: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 60: [1210, 1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 61: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 62: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 63: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 64: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 65: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1881,\n"," 63237,\n"," 8713,\n"," 48159],\n"," 66: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n"," 67: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 68: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 69: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 70: [48161, 993, 2178, 524, 2375, 2186, 290, 43710, 2236, 47644],\n"," 71: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 72: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 73: [1513, 45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102],\n"," 74: [1261, 26915, 1215, 4105, 8928, 256, 33834, 8874, 8225, 4553],\n"," 75: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 76: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 77: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n"," 78: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 79: [8457, 2610, 700, 47778, 1057, 4408, 492, 31038, 8801, 3178],\n"," 80: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 81: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1942, 1937],\n"," 82: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 83: [61352,\n"," 6699,\n"," 56719,\n"," 27255,\n"," 55726,\n"," 1893,\n"," 279,\n"," 3192,\n"," 4977,\n"," 8619],\n"," 84: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 85: [555, 1089, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n"," 86: [260, 5378, 33493, 2628, 1580, 377, 1584, 1438, 788, 8644],\n"," 87: [45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102, 6212],\n"," 88: [33493, 1200, 377, 1584, 1438, 788, 8644, 1690, 4812, 3699],\n"," 89: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n"," 90: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 91: [5378, 33493, 2628, 1580, 377, 1584, 1438, 788, 8644, 736],\n"," 92: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n"," 93: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n"," 94: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 95: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 96: [2513,\n"," 2120,\n"," 5022,\n"," 4178,\n"," 7178,\n"," 2517,\n"," 26788,\n"," 26007,\n"," 4921,\n"," 2121],\n"," 97: [1210, 260, 5378, 33493, 780, 1200, 1580, 377, 1584, 1438],\n"," 98: [3683, 4881, 1394, 5756, 33823, 2583, 76, 1732, 7163, 1464],\n"," 99: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 100: [48161, 993, 930, 2178, 524, 2375, 290, 43710, 2236, 47644],\n"," 101: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 102: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 103: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 104: [1210, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n"," 105: [5378, 33493, 780, 2628, 1200, 377, 1584, 1438, 788, 8644],\n"," 106: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 107: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 108: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 110: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 111: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 112: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 113: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 114: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 115: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n"," 116: [1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438, 8644],\n"," 117: [6374, 6380, 1586, 29, 121, 943, 8337, 225, 351, 8516],\n"," 118: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 119: [2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734, 1729],\n"," 120: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 8644],\n"," 121: [260, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n"," 122: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 123: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 124: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 125: [176,\n"," 3631,\n"," 3786,\n"," 5222,\n"," 51666,\n"," 5847,\n"," 33136,\n"," 4389,\n"," 1897,\n"," 1615],\n"," 126: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 127: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 2107],\n"," 128: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 129: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 130: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 131: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 132: [1348,\n"," 27850,\n"," 2783,\n"," 1694,\n"," 3872,\n"," 8194,\n"," 4113,\n"," 2454,\n"," 2064,\n"," 26306],\n"," 134: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 135: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 136: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584, 1438],\n"," 137: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 138: [2249, 7438, 3833, 32019, 1785, 18, 3744, 27734, 1729, 1635],\n"," 139: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 63237],\n"," 140: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n"," 141: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 142: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 143: [4740, 7211, 7221, 745, 1148, 6501, 3501, 27509, 1075, 2884],\n"," 144: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 2094, 6305],\n"," 145: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 148: [5378, 33493, 780, 2628, 1580, 1584, 1438, 788, 8644, 736],\n"," 149: [555, 1089, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1635],\n"," 150: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 151: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 152: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 153: [1210, 1196, 5378, 33493, 780, 1580, 377, 1584, 1438, 788],\n"," 154: [33493, 1438, 8644, 4812, 2311, 6882, 2193, 2115, 8810, 748],\n"," 155: [1302, 5644, 1940, 3100, 7771, 1943, 1929, 1225, 1942, 1937],\n"," 156: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 157: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 158: [1695, 1060, 719, 502, 4021, 6876, 2059, 4273, 5517, 6341],\n"," 159: [2401,\n"," 44168,\n"," 5959,\n"," 318,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889,\n"," 8340,\n"," 4714],\n"," 160: [63113,\n"," 2989,\n"," 7570,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005,\n"," 3984,\n"," 7573],\n"," 161: [5378, 33493, 780, 1580, 377, 1438, 788, 8644, 736, 1690],\n"," 162: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 163: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 164: [58059,\n"," 1608,\n"," 8939,\n"," 1704,\n"," 4176,\n"," 2889,\n"," 2019,\n"," 3030,\n"," 4640,\n"," 7919],\n"," 165: [1210, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 166: [5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788, 8644],\n"," 167: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n"," 168: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1848, 63237, 8713],\n"," 169: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 170: [1753, 8807, 194, 4034, 7959, 4439, 4994, 410, 784, 2150],\n"," 171: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 172: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 173: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 174: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 175: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 176: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 177: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 178: [5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438, 788],\n"," 179: [596, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 63237, 8713],\n"," 180: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n"," 182: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 183: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 184: [1196, 260, 5378, 33493, 780, 1200, 1580, 377, 1584, 1438],\n"," 185: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 186: [1196, 33493, 780, 2628, 1580, 377, 1584, 1438, 788, 8644],\n"," 187: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 188: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 189: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 1584, 1438, 788],\n"," 190: [5378, 377, 788, 1690, 4812, 2311, 6882, 748, 5290, 3927],\n"," 191: [7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619, 445],\n"," 192: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 193: [2924, 2582, 112, 51277, 5621, 1429, 2879, 2880, 3139, 1867],\n"," 194: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 195: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n"," 196: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 197: [1485, 344, 19, 1753, 8807, 194, 4034, 7959, 4439, 4994],\n"," 198: [377, 1438, 788, 736, 4812, 3699, 2311, 6882, 3527, 2193],\n"," 199: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 200: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 201: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 202: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 203: [5378, 33493, 2628, 377, 1584, 1438, 788, 8644, 1690, 4812],\n"," 204: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 205: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n"," 206: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 207: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 208: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 209: [2550,\n"," 1789,\n"," 1103,\n"," 1340,\n"," 4722,\n"," 4942,\n"," 2665,\n"," 47836,\n"," 4518,\n"," 2650],\n"," 210: [1196, 260, 5378, 33493, 1200, 377, 1438, 8644, 736, 1690],\n"," 211: [1210, 5378, 33493, 780, 2628, 377, 1584, 1438, 788, 8644],\n"," 212: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 50259,\n"," 5842,\n"," 61724],\n"," 213: [500, 58059, 8939, 4176, 2889, 2019, 3030, 4640, 7919, 8292],\n"," 214: [33493,\n"," 1200,\n"," 1438,\n"," 8644,\n"," 1690,\n"," 4812,\n"," 6882,\n"," 3527,\n"," 2193,\n"," 8810],\n"," 215: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 32525],\n"," 216: [4740, 7211, 5077, 7221, 838, 1148, 3454, 6501, 3501, 27509],\n"," 217: [1485, 19, 231, 1753, 8807, 194, 4034, 7959, 4439, 4994],\n"," 218: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 219: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 220: [1266, 2401, 44168, 5959, 318, 4945, 54787, 4785, 7889, 599],\n"," 221: [5378, 33493, 2628, 1200, 1580, 1584, 1438, 788, 8644, 1690],\n"," 222: [1261, 26915, 1215, 4105, 342, 8928, 256, 33834, 8874, 8225],\n"," 223: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 224: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 225: [2924, 2582, 112, 51277, 5621, 1429, 2879, 2880, 3139, 1867],\n"," 226: [1046,\n"," 2550,\n"," 1789,\n"," 1103,\n"," 1340,\n"," 4722,\n"," 4942,\n"," 2665,\n"," 47836,\n"," 4518],\n"," 227: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 228: [1261,\n"," 26915,\n"," 1215,\n"," 4105,\n"," 342,\n"," 8928,\n"," 33834,\n"," 8874,\n"," 8225,\n"," 4553],\n"," 229: [2924,\n"," 2582,\n"," 51277,\n"," 5621,\n"," 2879,\n"," 2880,\n"," 3139,\n"," 1867,\n"," 5702,\n"," 7113],\n"," 230: [2848, 7069, 3723, 26, 2820, 3719, 2011, 2622, 4319, 4324],\n"," 231: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 232: [5378, 33493, 2628, 1580, 1584, 1438, 788, 8644, 1690, 4812],\n"," 234: [2924, 2582, 112, 51277, 5621, 1429, 2879, 2880, 3139, 1867],\n"," 235: [1210, 1196, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n"," 236: [1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n"," 237: [5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788, 8644],\n"," 238: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 239: [1210, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 241: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 242: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n"," 243: [5378, 33493, 780, 2628, 1200, 1584, 1438, 788, 8644, 736],\n"," 244: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 245: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 246: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 247: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 248: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 249: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 2107],\n"," 250: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 251: [5378, 33493, 2628, 1580, 377, 1584, 1438, 8644, 1690, 4812],\n"," 252: [48161, 993, 2178, 524, 2375, 290, 43710, 2236, 47644, 2335],\n"," 253: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n"," 254: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n"," 255: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 256: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 257: [1210, 1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 258: [63113, 7570, 2642, 2990, 2376, 2991, 3633, 2949, 4005, 153],\n"," 259: [49282, 2546, 448, 1288, 7770, 1179, 1968, 2248, 6558, 6776],\n"," 260: [5378, 33493, 2628, 1580, 1584, 1438, 788, 8644, 736, 1690],\n"," 261: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 262: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 263: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 264: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 265: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 266: [2848, 1411, 7069, 26, 3598, 2820, 497, 3719, 2011, 2622],\n"," 267: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n"," 268: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 269: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 270: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 271: [5378, 33493, 2628, 1200, 377, 1438, 8644, 736, 1690, 4812],\n"," 272: [4740, 7211, 5077, 7221, 838, 3454, 6501, 3501, 27509, 1075],\n"," 273: [1196, 33493, 780, 2628, 1580, 1584, 1438, 788, 8644, 736],\n"," 274: [596, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848, 63237],\n"," 275: [1210, 260, 5378, 33493, 780, 2628, 1200, 1438, 8644, 736],\n"," 276: [26915,\n"," 8928,\n"," 33834,\n"," 8225,\n"," 4531,\n"," 7225,\n"," 5195,\n"," 6134,\n"," 5040,\n"," 7000],\n"," 277: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 278: [1210, 1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 279: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 280: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n"," 281: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n"," 282: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 285: [1967, 6374, 6380, 1586, 29, 121, 943, 8337, 225, 351],\n"," 286: [5378, 33493, 780, 1580, 377, 1584, 1438, 788, 8644, 736],\n"," 287: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 2023],\n"," 288: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1225, 1942],\n"," 289: [2513,\n"," 2120,\n"," 5022,\n"," 7178,\n"," 2517,\n"," 906,\n"," 26788,\n"," 26007,\n"," 2118,\n"," 4921],\n"," 290: [596, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848, 63237],\n"," 291: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 318,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785],\n"," 292: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 293: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 294: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 295: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n"," 296: [6952,\n"," 3652,\n"," 3970,\n"," 3832,\n"," 5980,\n"," 27317,\n"," 2159,\n"," 5165,\n"," 2460,\n"," 8906],\n"," 297: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 298: [596,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3611,\n"," 1848,\n"," 63237,\n"," 8713,\n"," 48159,\n"," 32153],\n"," 300: [1496, 4420, 5483, 4181, 6460, 5177, 89, 3467, 550, 916],\n"," 301: [1302, 5644, 1961, 1940, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 302: [350, 6296, 49282, 2546, 448, 6187, 6323, 7770, 1179, 1449],\n"," 303: [350, 6296, 49282, 2546, 448, 50, 6187, 6323, 7770, 1179],\n"," 304: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1942, 1937],\n"," 305: [951, 2330, 537, 26770, 6001, 7100, 4870, 3038, 5142, 1641],\n"," 306: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n"," 307: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 308: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 309: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 310: [1485, 344, 19, 231, 1753, 8807, 194, 7959, 4439, 4994],\n"," 311: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 312: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 313: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 314: [5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788, 8644],\n"," 315: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 316: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 317: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 318: [5644, 1940, 3100, 7771, 1943, 1929, 1942, 1937, 1946, 1936],\n"," 319: [33493, 780, 1580, 377, 1438, 788, 8644, 736, 4812, 3699],\n"," 320: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 321: [597, 1059, 3619, 605, 1552, 5942, 6996, 5245, 2023, 3512],\n"," 322: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 323: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 324: [1196, 260, 5378, 33493, 780, 1200, 1580, 377, 1438, 788],\n"," 325: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 326: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 327: [348, 8457, 2610, 700, 47778, 1057, 4408, 492, 31038, 8801],\n"," 328: [1210, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n"," 329: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 330: [780, 1580, 377, 1584, 1438, 788, 8644, 736, 4812, 3699],\n"," 331: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 332: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 333: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 334: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 335: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n"," 336: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 337: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 338: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n"," 339: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 340: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 341: [1348,\n"," 27850,\n"," 2783,\n"," 1694,\n"," 3872,\n"," 8194,\n"," 4113,\n"," 2454,\n"," 2064,\n"," 26306],\n"," 342: [555, 1089, 296, 2249, 3833, 32019, 1785, 18, 3744, 27734],\n"," 343: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 344: [5378, 33493, 780, 2628, 1200, 1580, 1584, 1438, 788, 8644],\n"," 345: [5378, 33493, 780, 1200, 377, 1584, 1438, 8644, 1690, 4812],\n"," 346: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 347: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 348: [1302, 5644, 1940, 3100, 7771, 1943, 1929, 1225, 1942, 1937],\n"," 349: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 350: [1757, 994, 59141, 69, 1889, 7324, 7297, 7062, 947, 1952],\n"," 351: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 352: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 353: [1210, 260, 5378, 33493, 780, 2628, 377, 1584, 1438, 788],\n"," 354: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 355: [2513,\n"," 2120,\n"," 5022,\n"," 4178,\n"," 7178,\n"," 2517,\n"," 3256,\n"," 906,\n"," 26788,\n"," 26007],\n"," 356: [2848, 7069, 3723, 3598, 2820, 497, 3719, 2011, 2622, 4319],\n"," 357: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 358: [33493, 1584, 1438, 788, 8644, 1690, 4812, 3699, 2311, 6882],\n"," 359: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 360: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 361: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 362: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 363: [555, 1089, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1729],\n"," 364: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 365: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 366: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 367: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 368: [2582,\n"," 51277,\n"," 5621,\n"," 1429,\n"," 2880,\n"," 3139,\n"," 1867,\n"," 5702,\n"," 7113,\n"," 5302],\n"," 369: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 370: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n"," 371: [1210, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 372: [260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1438, 788],\n"," 373: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 375: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 376: [1196, 5378, 780, 1580, 377, 1584, 1438, 788, 8644, 736],\n"," 377: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 378: [5378, 33493, 780, 1200, 1580, 377, 1584, 1438, 788, 8644],\n"," 379: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 380: [1196, 260, 33493, 780, 1200, 1580, 377, 1584, 1438, 788],\n"," 381: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 382: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 383: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 384: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 385: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 386: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 387: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 388: [1210, 1196, 260, 5378, 33493, 780, 1200, 1580, 377, 1584],\n"," 389: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n"," 390: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 391: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 392: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 393: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 394: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 395: [5574, 27193, 8605, 2555, 3738, 1220, 237, 58, 3717, 1350],\n"," 396: [33493, 780, 1200, 377, 1584, 1438, 788, 8644, 736, 1690],\n"," 397: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 398: [1210, 5378, 33493, 780, 2628, 1200, 1580, 1584, 1438, 788],\n"," 399: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 400: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 401: [4030, 2167, 2006, 1191, 6754, 8985, 70, 6500, 7886, 2958],\n"," 402: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 403: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 404: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 405: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 406: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 407: [1210, 1196, 5378, 33493, 1584, 1438, 788, 8644, 736, 4812],\n"," 408: [348, 8457, 2610, 700, 47778, 1057, 4408, 492, 31038, 8801],\n"," 409: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 410: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 411: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n"," 412: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 413: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 414: [45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 415: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 416: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 417: [1210, 1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 418: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n"," 419: [1210, 1196, 33493, 1584, 1438, 788, 8644, 1690, 4812, 3699],\n"," 420: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 421: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 422: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 424: [8749,\n"," 6921,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985,\n"," 32525],\n"," 425: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n"," 426: [2924, 2582, 112, 51277, 1429, 2879, 2880, 3139, 1867, 5702],\n"," 427: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 428: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1848, 63237],\n"," 429: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 430: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 431: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 432: [1348,\n"," 27850,\n"," 2783,\n"," 1694,\n"," 3872,\n"," 8194,\n"," 4113,\n"," 2454,\n"," 2064,\n"," 26306],\n"," 433: [58059,\n"," 8939,\n"," 1704,\n"," 4176,\n"," 2889,\n"," 2019,\n"," 3030,\n"," 4640,\n"," 7919,\n"," 8292],\n"," 434: [33493, 1584, 1438, 8644, 4812, 3699, 2311, 6882, 8810, 748],\n"," 435: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1584],\n"," 436: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 437: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 438: [5378, 33493, 1584, 8644, 736, 4812, 3699, 2311, 6882, 3527],\n"," 439: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 440: [555, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n"," 441: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 443: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 444: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n"," 445: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 446: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 447: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 448: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 449: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 450: [1261, 26915, 1215, 4105, 342, 8928, 256, 33834, 8874, 8225],\n"," 451: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 452: [529, 951, 2330, 537, 26770, 6001, 7100, 4870, 3038, 5142],\n"," 453: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 454: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 455: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n"," 456: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 458: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n"," 459: [4030, 2006, 1191, 6500, 7886, 2958, 5128, 2328, 6709, 4753],\n"," 460: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 461: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788],\n"," 462: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n"," 463: [33493, 1438, 788, 1690, 4812, 3699, 2311, 6882, 2193, 2115],\n"," 464: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 465: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 466: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 467: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1438],\n"," 468: [104,\n"," 59900,\n"," 1777,\n"," 2014,\n"," 27830,\n"," 60487,\n"," 3979,\n"," 1241,\n"," 1022,\n"," 6593],\n"," 469: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 470: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 471: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 472: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 473: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n"," 474: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 2107],\n"," 475: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 476: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1343],\n"," 477: [2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889,\n"," 599],\n"," 479: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 480: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n"," 481: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 482: [780, 1200, 1584, 1438, 1690, 4812, 3699, 2311, 6882, 3527],\n"," 483: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 484: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 485: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 486: [1210, 1196, 260, 5378, 780, 2628, 1200, 1580, 377, 1584],\n"," 487: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 488: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 489: [5644, 1961, 1940, 3100, 7771, 1943, 1929, 1942, 1937, 1946],\n"," 490: [5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942, 1937],\n"," 491: [555, 1089, 296, 2249, 3833, 32019, 1785, 18, 3744, 27734],\n"," 492: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n"," 493: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 494: [6952,\n"," 3652,\n"," 3970,\n"," 3832,\n"," 5980,\n"," 27317,\n"," 2159,\n"," 5165,\n"," 2460,\n"," 8906],\n"," 495: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 496: [2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734, 1729],\n"," 497: [555, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 498: [1261, 26915, 1215, 4105, 342, 8928, 256, 33834, 8874, 8225],\n"," 499: [1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n"," 500: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 501: [5378, 33493, 1200, 1438, 788, 8644, 1690, 4812, 3699, 2311],\n"," 502: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 503: [7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619, 445],\n"," 504: [1059, 3619, 605, 1552, 5942, 6996, 5245, 2023, 3512, 1831],\n"," 505: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 506: [5378, 33493, 2628, 1580, 377, 1584, 1438, 788, 8644, 736],\n"," 507: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 508: [1210, 260, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438],\n"," 509: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 510: [1059, 3619, 605, 1552, 5942, 6996, 5245, 2023, 3512, 1831],\n"," 511: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 512: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 513: [48161, 993, 930, 2178, 524, 290, 43710, 47644, 5473, 6207],\n"," 515: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 516: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n"," 517: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 518: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 520: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 521: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 522: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 43710, 2236],\n"," 523: [3683, 4881, 5756, 33823, 2583, 76, 1732, 7163, 1464, 45028],\n"," 524: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 525: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 526: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 527: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 529: [1196, 5378, 33493, 780, 2628, 1200, 377, 1584, 1438, 788],\n"," 530: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 531: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 532: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 533: [63113, 2989, 7570, 2990, 2376, 2991, 4005, 3984, 7573, 10],\n"," 534: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 535: [8749,\n"," 6921,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 32525,\n"," 3620],\n"," 536: [1196, 5378, 33493, 2628, 1200, 1580, 1584, 788, 8644, 736],\n"," 537: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 539: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 540: [4030, 2167, 2006, 1191, 6754, 8985, 70, 6500, 7886, 2958],\n"," 541: [6952,\n"," 3652,\n"," 3970,\n"," 3832,\n"," 5980,\n"," 27317,\n"," 2159,\n"," 5165,\n"," 2460,\n"," 8906],\n"," 542: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 543: [63113,\n"," 2989,\n"," 7570,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005,\n"," 3984],\n"," 544: [555, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1729, 1635],\n"," 545: [5378, 33493, 2628, 1584, 1438, 788, 8644, 1690, 4812, 3699],\n"," 546: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 547: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 548: [5378, 33493, 780, 2628, 1200, 1580, 377, 1438, 788, 8644],\n"," 549: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 550: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 551: [2513,\n"," 2120,\n"," 5022,\n"," 4178,\n"," 7178,\n"," 2517,\n"," 3256,\n"," 906,\n"," 26788,\n"," 26007],\n"," 552: [45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212,\n"," 7261],\n"," 553: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 554: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 555: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n"," 556: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 557: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 558: [45221,\n"," 4452,\n"," 5802,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212,\n"," 7261,\n"," 6104],\n"," 559: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 560: [26915,\n"," 1215,\n"," 8928,\n"," 256,\n"," 33834,\n"," 8874,\n"," 8225,\n"," 4553,\n"," 4531,\n"," 7225],\n"," 561: [135, 248, 27731, 42217, 1537, 3484, 4850, 1717, 1343, 5069],\n"," 562: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 563: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n"," 564: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 565: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 566: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 567: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 568: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 569: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 570: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 571: [33493, 1580, 377, 1438, 788, 1690, 4812, 2311, 6882, 2115],\n"," 572: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 573: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 574: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 575: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 576: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 577: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 578: [5378, 33493, 780, 377, 1584, 1438, 8644, 1690, 4812, 3699],\n"," 579: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 580: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 581: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 582: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 583: [1210, 1196, 260, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 584: [6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770, 1179],\n"," 585: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 5691],\n"," 586: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 587: [5378, 33493, 2628, 1200, 1580, 1584, 1438, 788, 8644, 736],\n"," 588: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 589: [48161, 993, 930, 2178, 524, 2375, 2186, 43710, 2236, 47644],\n"," 590: [5378, 33493, 377, 1584, 1438, 8644, 736, 4812, 3699, 2311],\n"," 591: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 4619, 445],\n"," 592: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 593: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 594: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 595: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 596: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 597: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 598: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 599: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 600: [1196, 260, 33493, 780, 1580, 377, 1438, 788, 8644, 736],\n"," 601: [5378, 33493, 2628, 1200, 1584, 1438, 788, 8644, 1690, 4812],\n"," 602: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 603: [25766, 910, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494],\n"," 604: [6296, 49282, 2546, 448, 1288, 6187, 6323, 7770, 1179, 1449],\n"," 605: [3683, 4881, 1394, 5756, 33823, 2583, 76, 1732, 663, 7163],\n"," 606: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 607: [555, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 608: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1584],\n"," 609: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 610: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 612: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n"," 613: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 614: [1210, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n"," 616: [1196,\n"," 5378,\n"," 33493,\n"," 2628,\n"," 1200,\n"," 1580,\n"," 1438,\n"," 8644,\n"," 1690,\n"," 4812],\n"," 617: [4740,\n"," 7211,\n"," 5077,\n"," 7221,\n"," 3454,\n"," 6501,\n"," 3501,\n"," 27509,\n"," 1075,\n"," 2884],\n"," 618: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 619: [1196, 5378, 33493, 780, 2628, 377, 1584, 1438, 788, 8644],\n"," 620: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 621: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n"," 622: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n"," 623: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 624: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 625: [5378, 33493, 780, 2628, 1580, 1584, 1438, 788, 8644, 736],\n"," 627: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 628: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 629: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 630: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 631: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n"," 632: [260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n"," 633: [33493, 1438, 788, 8644, 1690, 4812, 3699, 2311, 6882, 3527],\n"," 634: [5378,\n"," 33493,\n"," 2628,\n"," 1438,\n"," 8644,\n"," 4812,\n"," 3699,\n"," 2311,\n"," 6882,\n"," 3527],\n"," 635: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 636: [555, 1089, 3833, 32019, 1785, 18, 3744, 27734, 1635, 4164],\n"," 637: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 638: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 639: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 640: [260, 5378, 2628, 1200, 1580, 377, 1584, 1438, 788, 8644],\n"," 641: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 642: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 643: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n"," 644: [33493, 780, 1580, 377, 1584, 1438, 788, 8644, 1690, 4812],\n"," 645: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 646: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 647: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 648: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 649: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 650: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 6212,\n"," 7261],\n"," 651: [61352,\n"," 6699,\n"," 56719,\n"," 27255,\n"," 55726,\n"," 1893,\n"," 279,\n"," 3192,\n"," 4977,\n"," 8619],\n"," 652: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 653: [500, 58059, 1608, 8939, 1704, 4176, 2889, 2019, 3030, 4640],\n"," 654: [2513,\n"," 2120,\n"," 5022,\n"," 4178,\n"," 7178,\n"," 2517,\n"," 3256,\n"," 906,\n"," 26788,\n"," 26007],\n"," 655: [3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237,\n"," 8713],\n"," 656: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 657: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 658: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 457],\n"," 659: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n"," 660: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 377, 1584],\n"," 661: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 662: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n"," 663: [4030, 2167, 2006, 1191, 6754, 8985, 70, 6500, 7886, 2958],\n"," 664: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 665: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n"," 666: [555, 2249, 7438, 3833, 32019, 1785, 18, 3744, 27734, 1729],\n"," 667: [1210, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n"," 668: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 669: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 670: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 671: [39425,\n"," 53883,\n"," 4237,\n"," 55071,\n"," 3002,\n"," 1446,\n"," 6368,\n"," 5137,\n"," 1827,\n"," 6677],\n"," 672: [555, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n"," 674: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 2107],\n"," 675: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 676: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 677: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 678: [5644, 1961, 1940, 3100, 7771, 1943, 1929, 1942, 1937, 1946],\n"," 679: [5378, 33493, 2628, 1200, 1438, 788, 8644, 4812, 3699, 2311],\n"," 680: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 681: [235, 1496, 4420, 5483, 4181, 6460, 5177, 89, 3467, 550],\n"," 683: [5378, 33493, 377, 1584, 1438, 8644, 736, 4812, 3699, 2311],\n"," 684: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1881, 1848, 63237],\n"," 685: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 8644],\n"," 686: [5378, 33493, 780, 1580, 377, 1584, 1438, 788, 8644, 736],\n"," 688: [1584, 1438, 788, 8644, 736, 4812, 3699, 6882, 2193, 8810],\n"," 689: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 690: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 691: [5378, 33493, 1200, 1584, 1438, 788, 8644, 736, 1690, 4812],\n"," 693: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 694: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 695: [2513,\n"," 2120,\n"," 5022,\n"," 4178,\n"," 7178,\n"," 2517,\n"," 3256,\n"," 906,\n"," 26788,\n"," 26007],\n"," 696: [45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 697: [500, 58059, 1608, 8939, 1704, 4176, 2889, 2019, 3030, 4640],\n"," 698: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 699: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 700: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 701: [1967, 6374, 6380, 1586, 29, 121, 943, 8337, 351, 8516],\n"," 702: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 2107],\n"," 703: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 704: [262,\n"," 180,\n"," 1130,\n"," 5335,\n"," 60530,\n"," 59290,\n"," 27513,\n"," 3012,\n"," 4514,\n"," 8025],\n"," 705: [3683, 4881, 1394, 608, 5756, 33823, 2583, 76, 663, 7163],\n"," 706: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 707: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 708: [1210, 1196, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438],\n"," 709: [1210, 5378, 33493, 780, 1580, 377, 1584, 1438, 788, 8644],\n"," 710: [25766, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494, 1077],\n"," 711: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 712: [951, 2330, 26770, 6001, 7100, 4870, 3038, 5142, 1641, 85],\n"," 714: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 715: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 716: [4740, 7211, 5077, 7221, 838, 3454, 6501, 3501, 27509, 1075],\n"," 718: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 719: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 720: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 721: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 723: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 724: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 725: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 726: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 727: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 728: [260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n"," 729: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 730: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 731: [5378, 33493, 1438, 8644, 4812, 2311, 6882, 2115, 8810, 748],\n"," 732: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 733: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 734: [5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 735: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 2023],\n"," 736: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 737: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 738: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n"," 739: [34, 1059, 3619, 605, 5942, 6996, 5245, 2023, 3512, 31],\n"," 740: [5378, 33493, 780, 1200, 1580, 377, 1584, 1438, 788, 8644],\n"," 741: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 742: [555, 1089, 2249, 7438, 3833, 32019, 1785, 18, 3744, 27734],\n"," 743: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 744: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 745: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 746: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 748: [951, 2330, 537, 26770, 6001, 7100, 4870, 3038, 5142, 1641],\n"," 749: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 750: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 751: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 752: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 753: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 754: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 755: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 756: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n"," 757: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 758: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 759: [3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237,\n"," 8713],\n"," 761: [1196, 260, 5378, 33493, 1200, 1438, 788, 8644, 736, 1690],\n"," 762: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 763: [4740, 7211, 5077, 7221, 838, 745, 3454, 6501, 3501, 27509],\n"," 764: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 765: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 766: [5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438, 788],\n"," 767: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 768: [1695, 1060, 719, 502, 4021, 6876, 2059, 4273, 5517, 381],\n"," 769: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 770: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 771: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2622],\n"," 772: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 773: [7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619, 445],\n"," 774: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 775: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 776: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n"," 777: [529, 951, 537, 26770, 6001, 7100, 4870, 3038, 5142, 1641],\n"," 780: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 781: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 782: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 783: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 784: [235, 1496, 4420, 5483, 4181, 6460, 5177, 89, 3467, 550],\n"," 785: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 786: [3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237,\n"," 8713],\n"," 787: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n"," 788: [1210, 1196, 260, 5378, 33493, 2628, 1438, 1690, 4812, 3699],\n"," 789: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 790: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1881,\n"," 1848,\n"," 63237,\n"," 8713],\n"," 791: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n"," 792: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 793: [33493, 780, 1200, 377, 1438, 788, 8644, 736, 1690, 4812],\n"," 794: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 795: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 796: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788],\n"," 797: [2513,\n"," 2120,\n"," 5022,\n"," 4178,\n"," 7178,\n"," 2517,\n"," 906,\n"," 26788,\n"," 26007,\n"," 2118],\n"," 798: [63113, 2989, 2990, 2376, 2991, 3633, 4005, 153, 7573, 3639],\n"," 799: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 800: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n"," 801: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 802: [3061,\n"," 1734,\n"," 7091,\n"," 317,\n"," 7058,\n"," 34002,\n"," 8734,\n"," 34018,\n"," 4763,\n"," 2804],\n"," 803: [5378, 33493, 2628, 1438, 788, 8644, 736, 1690, 4812, 2311],\n"," 804: [1348,\n"," 27850,\n"," 2783,\n"," 1694,\n"," 3872,\n"," 8194,\n"," 4113,\n"," 2454,\n"," 2064,\n"," 26306],\n"," 805: [33493, 780, 1200, 1580, 377, 1584, 1438, 788, 736, 1690],\n"," 806: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 807: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 808: [260, 5378, 33493, 780, 1200, 1580, 1584, 1438, 788, 8644],\n"," 809: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n"," 810: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 811: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 812: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 813: [63113, 2989, 7570, 2642, 2990, 2376, 2991, 3633, 4005, 153],\n"," 814: [48161, 993, 930, 2178, 524, 904, 2186, 290, 43710, 2236],\n"," 815: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n"," 816: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 817: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 818: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 819: [5574, 27193, 8605, 2555, 3738, 1220, 237, 58, 3717, 1350],\n"," 820: [2582,\n"," 51277,\n"," 5621,\n"," 1429,\n"," 2879,\n"," 2880,\n"," 3139,\n"," 1867,\n"," 5702,\n"," 7113],\n"," 821: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 822: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1881, 1848, 63237],\n"," 823: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 824: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 825: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n"," 826: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n"," 827: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 828: [3061,\n"," 345,\n"," 1734,\n"," 7091,\n"," 7058,\n"," 34002,\n"," 8734,\n"," 34018,\n"," 4763,\n"," 2804],\n"," 829: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 830: [5378, 33493, 780, 1200, 1584, 1438, 8644, 1690, 4812, 3699],\n"," 831: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 832: [5378, 33493, 780, 1200, 1580, 377, 1584, 1438, 788, 8644],\n"," 833: [1210, 1196, 5378, 33493, 1438, 8644, 736, 1690, 4812, 2311],\n"," 834: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 835: [58059,\n"," 1608,\n"," 8939,\n"," 1704,\n"," 4176,\n"," 2889,\n"," 2019,\n"," 3030,\n"," 4640,\n"," 7919],\n"," 836: [4740, 7211, 5077, 7221, 838, 1148, 3454, 6501, 3501, 27509],\n"," 837: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 838: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 839: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 840: [3631,\n"," 3786,\n"," 5222,\n"," 51666,\n"," 5847,\n"," 33136,\n"," 4389,\n"," 1897,\n"," 1615,\n"," 444],\n"," 841: [33493, 1580, 377, 1438, 788, 8644, 736, 1690, 4812, 2311],\n"," 842: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 843: [529, 951, 2330, 537, 26770, 6001, 7100, 4870, 3038, 5142],\n"," 844: [5378, 33493, 2628, 1584, 1438, 788, 8644, 1690, 4812, 3699],\n"," 846: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n"," 847: [1196, 260, 5378, 33493, 2628, 1200, 1584, 1438, 788, 8644],\n"," 848: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 849: [1261, 26915, 1215, 4105, 342, 8928, 256, 33834, 8874, 8225],\n"," 851: [61352,\n"," 6699,\n"," 56719,\n"," 27255,\n"," 55726,\n"," 1893,\n"," 279,\n"," 3192,\n"," 4977,\n"," 8619],\n"," 852: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 853: [4740, 7211, 5077, 7221, 838, 1148, 3454, 6501, 3501, 27509],\n"," 854: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 855: [350, 6296, 49282, 2546, 448, 1288, 6187, 6323, 7770, 1179],\n"," 856: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 857: [1210, 260, 5378, 33493, 780, 2628, 1584, 1438, 788, 8644],\n"," 859: [33493, 1584, 1438, 788, 736, 1690, 4812, 3699, 2311, 6882],\n"," 860: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 861: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 862: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 863: [2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734, 1635],\n"," 864: [500, 58059, 1608, 8939, 1704, 4176, 2889, 2019, 3030, 4640],\n"," 865: [5378, 33493, 2628, 1200, 1580, 377, 1438, 788, 8644, 736],\n"," 866: [3683, 4881, 5756, 33823, 2583, 76, 1732, 663, 7163, 1464],\n"," 867: [1967, 6374, 6380, 1586, 29, 121, 943, 225, 351, 8516],\n"," 868: [25766, 910, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494],\n"," 869: [25766, 910, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494],\n"," 870: [61352,\n"," 6699,\n"," 56719,\n"," 27255,\n"," 55726,\n"," 1893,\n"," 3192,\n"," 4977,\n"," 8619,\n"," 3570],\n"," 871: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 872: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n"," 873: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 377, 1438],\n"," 874: [34, 3619, 605, 1552, 5942, 6996, 5245, 457, 2023, 3512],\n"," 875: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 876: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 878: [1210, 5378, 33493, 2628, 1580, 1584, 1438, 788, 8644, 1690],\n"," 879: [4740, 7211, 5077, 7221, 838, 745, 3454, 6501, 3501, 27509],\n"," 881: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 882: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 883: [39425,\n"," 53883,\n"," 4237,\n"," 55071,\n"," 3002,\n"," 1446,\n"," 6368,\n"," 5137,\n"," 246,\n"," 1827],\n"," 884: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 885: [586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018, 4763],\n"," 886: [45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 2107,\n"," 5691,\n"," 5476],\n"," 887: [1210, 1196, 260, 5378, 33493, 1200, 1438, 788, 8644, 736],\n"," 888: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 889: [6952,\n"," 3652,\n"," 3970,\n"," 3832,\n"," 5980,\n"," 27317,\n"," 2159,\n"," 5165,\n"," 2460,\n"," 8906],\n"," 890: [104,\n"," 59900,\n"," 1777,\n"," 2014,\n"," 27830,\n"," 60487,\n"," 3979,\n"," 1241,\n"," 1022,\n"," 6593],\n"," 891: [6952,\n"," 3652,\n"," 3970,\n"," 3832,\n"," 5980,\n"," 27317,\n"," 2159,\n"," 5165,\n"," 2460,\n"," 8906],\n"," 892: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 893: [1210, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 894: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n"," 895: [58059,\n"," 1608,\n"," 8939,\n"," 1704,\n"," 4176,\n"," 2889,\n"," 2019,\n"," 3030,\n"," 4640,\n"," 7919],\n"," 896: [4030, 2167, 2006, 1191, 6754, 8985, 6500, 7886, 2958, 5128],\n"," 897: [6296, 49282, 2546, 448, 1288, 6187, 6323, 7770, 1179, 1449],\n"," 898: [5378, 33493, 1200, 377, 1584, 1438, 788, 8644, 736, 4812],\n"," 899: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 900: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 901: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1584],\n"," 902: [4030, 2167, 2006, 1191, 6754, 8985, 70, 6500, 7886, 2958],\n"," 903: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 904: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 905: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 906: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1942, 1937],\n"," 907: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 908: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 909: [500, 58059, 1608, 8939, 1704, 4176, 2889, 2019, 3030, 4640],\n"," 910: [555, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1729, 1635],\n"," 911: [5378, 33493, 780, 1200, 1580, 377, 1584, 788, 8644, 736],\n"," 912: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 913: [6422,\n"," 4033,\n"," 40946,\n"," 556,\n"," 5008,\n"," 8753,\n"," 8375,\n"," 4465,\n"," 27912,\n"," 1883],\n"," 914: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 915: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 916: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 917: [2848, 1411, 7069, 3723, 3598, 2820, 497, 3719, 2011, 2622],\n"," 918: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 8644],\n"," 919: [4466,\n"," 5252,\n"," 64231,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237,\n"," 46430,\n"," 56700],\n"," 920: [1210, 1196, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438],\n"," 921: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1881, 1848, 63237],\n"," 922: [1210, 1196, 260, 5378, 33493, 2628, 8644, 4812, 3699, 2311],\n"," 923: [3683, 4881, 1394, 5756, 33823, 2583, 76, 1732, 7163, 1464],\n"," 924: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 925: [555,\n"," 1089,\n"," 2249,\n"," 7438,\n"," 3833,\n"," 6874,\n"," 32019,\n"," 1785,\n"," 3744,\n"," 27734],\n"," 926: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 927: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 928: [1200, 1438, 788, 8644, 1690, 4812, 3699, 2311, 6882, 3527],\n"," 930: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 931: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 932: [1196, 5378, 33493, 2628, 1200, 1580, 1584, 1438, 788, 8644],\n"," 933: [63113, 2989, 7570, 2642, 2376, 3633, 2949, 4005, 153, 3984],\n"," 934: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 63237],\n"," 935: [1210, 5378, 33493, 780, 1200, 1580, 1584, 1438, 788, 8644],\n"," 936: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 937: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n"," 938: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 939: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 940: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 941: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 942: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 943: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 945: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 946: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 947: [5378, 33493, 780, 1200, 1580, 377, 1584, 1438, 788, 8644],\n"," 948: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 377, 1584],\n"," 949: [33493, 2628, 1200, 1580, 1438, 788, 8644, 736, 1690, 4812],\n"," 950: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n"," 951: [3683,\n"," 4881,\n"," 1394,\n"," 5756,\n"," 33823,\n"," 2583,\n"," 1732,\n"," 7163,\n"," 1464,\n"," 45028],\n"," 952: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788],\n"," 953: [5378, 33493, 2628, 377, 1584, 1438, 788, 8644, 736, 1690],\n"," 954: [5378, 33493, 2628, 1200, 1584, 1438, 788, 8644, 736, 1690],\n"," 955: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 956: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 957: [6374, 6380, 1586, 121, 943, 8337, 225, 351, 8516, 4808],\n"," 958: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 960: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 961: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n"," 962: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 963: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 964: [1753, 8807, 194, 4034, 7959, 4439, 4994, 410, 784, 1884],\n"," 965: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 966: [2249, 3833, 6874, 32019, 1785, 18, 3744, 27734, 1635, 4164],\n"," 967: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 968: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 969: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n"," 970: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 971: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 972: [393,\n"," 1681,\n"," 1111,\n"," 2549,\n"," 33819,\n"," 59908,\n"," 55020,\n"," 8915,\n"," 57536,\n"," 1497],\n"," 973: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 974: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 975: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 976: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 977: [39425,\n"," 53883,\n"," 4237,\n"," 55071,\n"," 3002,\n"," 1446,\n"," 6368,\n"," 5137,\n"," 1827,\n"," 6677],\n"," 978: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 979: [555, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 980: [1196, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n"," 982: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 983: [48161, 993, 930, 2178, 2375, 904, 2186, 290, 43710, 47644],\n"," 984: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n"," 985: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 986: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 987: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 988: [33493, 377, 1438, 788, 8644, 736, 4812, 6882, 2193, 8810],\n"," 989: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 990: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 991: [1210, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n"," 992: [1210, 5378, 33493, 1200, 377, 1438, 788, 8644, 736, 1690],\n"," 993: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 2107],\n"," 994: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 995: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n"," 996: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 997: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 457],\n"," 998: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 999: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 1001: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 1002: [7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619, 445],\n"," 1003: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 1004: [5378,\n"," 33493,\n"," 1200,\n"," 1584,\n"," 1438,\n"," 788,\n"," 8644,\n"," 1690,\n"," 4812,\n"," 3699],\n"," 1005: [1196,\n"," 5378,\n"," 33493,\n"," 2628,\n"," 1200,\n"," 1438,\n"," 788,\n"," 8644,\n"," 1690,\n"," 4812],\n"," 1006: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 1007: [1302,\n"," 5644,\n"," 1961,\n"," 1940,\n"," 3100,\n"," 1393,\n"," 7771,\n"," 1943,\n"," 1929,\n"," 1225],\n"," 1008: [5378,\n"," 33493,\n"," 1438,\n"," 788,\n"," 8644,\n"," 1690,\n"," 4812,\n"," 3699,\n"," 2311,\n"," 6882],\n"," 1009: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 1011: [5378,\n"," 33493,\n"," 2628,\n"," 1438,\n"," 788,\n"," 8644,\n"," 1690,\n"," 4812,\n"," 3699,\n"," 2311],\n"," 1012: [1046,\n"," 2550,\n"," 1789,\n"," 1103,\n"," 1340,\n"," 4722,\n"," 4942,\n"," 2665,\n"," 47836,\n"," 4518],\n"," 1013: [5378, 33493, 2628, 1200, 1580, 1584, 1438, 788, 8644, 736],\n"," 1014: [1348,\n"," 27850,\n"," 2783,\n"," 1694,\n"," 3872,\n"," 8194,\n"," 4113,\n"," 2454,\n"," 2064,\n"," 26306],\n"," 1015: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n"," 1016: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 1017: [260, 780, 1200, 1580, 377, 1584, 1438, 788, 8644, 736],\n"," 1018: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 1969,\n"," 5691],\n"," 1019: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 1020: [1046,\n"," 2550,\n"," 1789,\n"," 1340,\n"," 4722,\n"," 4942,\n"," 2665,\n"," 47836,\n"," 4518,\n"," 2650],\n"," 1021: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 1022: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 1023: [1210, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n"," 1025: [45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 1026: [3061,\n"," 345,\n"," 1734,\n"," 7091,\n"," 7058,\n"," 34002,\n"," 8734,\n"," 34018,\n"," 4763,\n"," 2432],\n"," 1027: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1584],\n"," 1028: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 1029: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 1030: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 377, 1584],\n"," 1031: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 1032: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 1033: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 1034: [1210, 1196, 260, 5378, 780, 2628, 1200, 1580, 377, 1584],\n"," 1035: [1210, 1196, 260, 5378, 33493, 2628, 1200, 377, 1584, 1438],\n"," 1037: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 1038: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 1039: [4740,\n"," 7211,\n"," 5077,\n"," 7221,\n"," 838,\n"," 3454,\n"," 6501,\n"," 3501,\n"," 27509,\n"," 1075],\n"," 1040: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 1041: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 1043: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 1044: [1196,\n"," 5378,\n"," 33493,\n"," 2628,\n"," 1200,\n"," 1580,\n"," 377,\n"," 1584,\n"," 1438,\n"," 8644],\n"," 1045: [262,\n"," 180,\n"," 1130,\n"," 5335,\n"," 60530,\n"," 59290,\n"," 27513,\n"," 3012,\n"," 4514,\n"," 8025],\n"," 1046: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 1047: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 1048: [555, 1089, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1729],\n"," 1050: [104,\n"," 59900,\n"," 1777,\n"," 2014,\n"," 27830,\n"," 60487,\n"," 3979,\n"," 1241,\n"," 1022,\n"," 6593],\n"," 1051: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 1052: [1302,\n"," 5644,\n"," 1961,\n"," 1940,\n"," 3100,\n"," 1393,\n"," 7771,\n"," 1943,\n"," 1929,\n"," 1225],\n"," 1053: [5378, 780, 2628, 377, 1438, 788, 736, 1690, 4812, 3699]})"]},"metadata":{},"execution_count":11}],"source":["from collections import defaultdict\n","from collections import Counter\n","\n","# 각 사용자에 대한 추천 리스트를 작성한다\n","# 사용자가 높게 평가한 영화가, 어떤 토픽에 많이 소속되어 있는지 카운트한다\n","# 가장 많은 토픽을 사용자가 좋아하는 토픽으로 간주하고, 해당 토픽의 영화를 추천한다\n","\n","movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n","user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","\n","movie_id2index = dict(zip(movie_content.movie_id.tolist(), range(len(movie_content))))\n","pred_user2items = defaultdict(list)\n","for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n"," # 사용자가 높이 평가한 영화\n"," evaluated_movie_ids = user_evaluated_movies[user_id]\n"," # 최근 열람한 영화를 얻는다\n"," movie_ids = data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-10:]\n","\n"," movie_indexes = [movie_id2index[id] for id in movie_ids]\n"," \n"," # 최근 열람한 영화의 토픽을 얻고, 풀현 횟수를 카운트한다\n"," topic_counter = Counter([movie_topics[i] for i in movie_indexes])\n"," # 가장 출현 횟수가 많았던 토픽을 얻는다\n"," frequent_topic = topic_counter.most_common(1)[0][0]\n"," # 해당 토픽의 영화 중에서도 점수가 높은 것을 추천한다\n"," topic_movies = (\n"," movie_content[movie_content.topic == frequent_topic]\n"," .sort_values(\"topic_score\", ascending=False)\n"," .movie_id.tolist()\n"," )\n","\n"," for movie_id in topic_movies:\n"," if movie_id not in evaluated_movie_ids:\n"," pred_user2items[user_id].append(movie_id)\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","pred_user2items"]},{"cell_type":"code","execution_count":12,"id":"8d238322","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":175},"id":"8d238322","executionInfo":{"status":"ok","timestamp":1672118572986,"user_tz":-540,"elapsed":10,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"68a428f8-984a-4fab-b1e3-8d24e4c5369a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","8381 2 1210 4.0 868245644 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","8381 [Action, Adventure, Sci-Fi] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":12}],"source":["# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n","movielens_train_high_rating[movielens_train_high_rating.user_id==2]"]},{"cell_type":"code","execution_count":13,"id":"d6877799","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"d6877799","executionInfo":{"status":"ok","timestamp":1672118572986,"user_tz":-540,"elapsed":9,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"6892e806-a4b2-4a5b-dfd9-da01db2f2d4a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","75 76 Screamers (1995) \n","1922 2006 Mask of Zorro, The (1998) \n","2031 2115 Indiana Jones and the Temple of Doom (1984) \n","\n"," genre \\\n","75 [Action, Sci-Fi, Thriller] \n","1922 [Action, Adventure, Romance] \n","2031 [Action, Adventure] \n","\n"," tag \n","75 [philip k. dick, artificial intelligence, post... \n","1922 [california, mexico, funny, banderas, anthony ... \n","2031 [lucas, want it, dvd collection, harrison ford... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
7576Screamers (1995)[Action, Sci-Fi, Thriller][philip k. dick, artificial intelligence, post...
19222006Mask of Zorro, The (1998)[Action, Adventure, Romance][california, mexico, funny, banderas, anthony ...
20312115Indiana Jones and the Temple of Doom (1984)[Action, Adventure][lucas, want it, dvd collection, harrison ford...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":13}],"source":["# user_id=2에 대한 추천(2115, 76, 2006)\n","movies[movies.movie_id.isin([2115, 76, 2006])]"]},{"cell_type":"code","execution_count":14,"id":"129f2877","metadata":{"id":"129f2877","executionInfo":{"status":"ok","timestamp":1672118572986,"user_tz":-540,"elapsed":8,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 여기에서는 각 사용자의 평가 이력으로부터 1개의 토픽을 픽업했지만, 토픽의 확률값을 사용해서 가중치를 주면서 아이템을 추출할 수도 있습니다."]},{"cell_type":"code","execution_count":14,"id":"6a30f15c","metadata":{"id":"6a30f15c","executionInfo":{"status":"ok","timestamp":1672118572987,"user_tz":-540,"elapsed":9,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/MF.ipynb b/chapter5/colab/MF.ipynb index fbbe1db..9c5ef59 100644 --- a/chapter5/colab/MF.ipynb +++ b/chapter5/colab/MF.ipynb @@ -1,1607 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "88a3be74", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/MF.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "47e2fec5", - "metadata": {}, - "source": [ - "# Matrix Factorization" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "99e09acf", - "metadata": {}, - "outputs": [], - "source": [ - "# Colab用のnotebookです。このnotebook1枚でデータのダウンロードから、レコメンドまで完結するようになっています。(予測評価は含めていません。)\n", - "# MovieLensデータがまだダウンロードされてなければこのセルを実行して、ダウンロードしてください\n", - "# MovieLensデータの分析は、data_download.ipynbをご参照ください\n", - "\n", - "# データのダウンロードと解凍\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "179ce864", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielensのデータの読み込み(データ量が多いため、読み込みに時間がかかる場合があります)\n", - "import pandas as pd\n", - "\n", - "# movieIDとタイトル名のみ使用\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genreをlist形式で保持する\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# ユーザが付与した映画のタグ情報の読み込み\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tagを小文字にする\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tagを映画ごとにlist形式で保持する\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# タグ情報を結合する\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 評価値データの読み込み\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# データ量が多いため、ユーザー数を1000に絞って、試していく\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 映画のデータと評価のデータを結合する\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 学習用とテスト用にデータを分割する\n", - "# 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする\n", - "# まずは、それぞれのユーザが評価した映画の順序を計算する\n", - "# 直近付与した映画から順番を付与していく(1始まり)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "8c10d538", - "metadata": {}, - "outputs": [], - "source": [ - "# 因子数\n", - "factors = 5\n", - "# 評価数の閾値\n", - "minimum_num_rating = 100\n", - "# バイアス項の使用\n", - "use_biase = False\n", - "# 学習率\n", - "lr_all = 0.005\n", - "# エポック数\n", - "n_epochs = 50" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "af591e1a", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install surprise" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "735ff486", - "metadata": {}, - "outputs": [], - "source": [ - "from surprise import SVD, Reader\n", - "from surprise import Dataset as SurpriseDataset\n", - "\n", - "# 評価数がminimum_num_rating件以上ある映画に絞る\n", - "filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n", - " lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n", - ")\n", - "\n", - "# Surprise用にデータを加工\n", - "reader = Reader(rating_scale=(0.5, 5))\n", - "data_train = SurpriseDataset.load_from_df(\n", - " filtered_movielens_train[[\"user_id\", \"movie_id\", \"rating\"]], reader\n", - ").build_full_trainset()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "cbc512a3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Surpriseで行列分解を学習\n", - "# SVDという名前だが、特異値分解ではなく、Matrix Factorizationが実行される\n", - "matrix_factorization = SVD(n_factors=factors, n_epochs=n_epochs, lr_all=lr_all, biased=use_biase)\n", - "matrix_factorization.fit(data_train)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "48876224", - "metadata": {}, - "outputs": [], - "source": [ - "from collections import defaultdict\n", - "\n", - "def get_top_n(predictions, n=10):\n", - " # 各ユーザーごとに、予測されたアイテムを格納する\n", - " top_n = defaultdict(list)\n", - " for uid, iid, true_r, est, _ in predictions:\n", - " top_n[uid].append((iid, est))\n", - "\n", - " # ユーザーごとに、アイテムを予測評価値順に並べ上位n個を格納する\n", - " for uid, user_ratings in top_n.items():\n", - " user_ratings.sort(key=lambda x: x[1], reverse=True)\n", - " top_n[uid] = [d[0] for d in user_ratings[:n]]\n", - "\n", - " return top_n" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "a2b23304", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "defaultdict(list,\n", - " {1: [110, 260, 590, 733, 780, 858, 1073, 1210, 1356, 1148],\n", - " 22: [2571, 318, 7153, 260, 5952, 4993, 2959, 1198, 1136, 1196],\n", - " 26: [318, 260, 2571, 1198, 7153, 5952, 1148, 527, 4993, 1036],\n", - " 30: [858, 912, 1584, 1234, 1704, 1233, 1250, 2324, 3147, 1148],\n", - " 34: [1036, 7153, 4993, 4306, 5952, 1291, 2115, 1234, 1101, 1527],\n", - " 38: [527, 1036, 1240, 589, 260, 1198, 780, 4306, 2028, 1148],\n", - " 50: [50, 2959, 1233, 2028, 3578, 2858, 2571, 1148, 1234, 912],\n", - " 53: [318, 260, 2571, 2959, 1233, 1234, 593, 4226, 296, 4973],\n", - " 54: [1240, 2571, 2959, 3578, 527, 2028, 6874, 7153, 1198, 4993],\n", - " 67: [260, 1210, 1196, 2571, 3578, 7153, 2959, 4993, 1234, 5952],\n", - " 71: [318, 2858, 912, 858, 593, 1233, 4973, 527, 50, 1193],\n", - " 76: [597, 1721, 587, 539, 500, 780, 356, 62, 802, 3578],\n", - " 88: [590, 318, 1036, 1240, 165, 589, 2115, 527, 1101, 733],\n", - " 89: [260, 858, 912, 923, 1207, 1196, 904, 1234, 1213, 1233],\n", - " 94: [1233, 912, 1148, 1234, 1193, 2324, 904, 1207, 4226, 1247],\n", - " 95: [2959, 50, 2858, 2571, 527, 4973, 2329, 47, 1233, 3578],\n", - " 100: [1206, 750, 1221, 1199, 1213, 541, 2019, 2959, 4973, 1208],\n", - " 101: [527, 2324, 919, 912, 1233, 3147, 2396, 1234, 1148, 3578],\n", - " 102: [1136, 50, 608, 4226, 2858, 541, 2571, 1148, 1221, 750],\n", - " 103: [912, 858, 318, 904, 1148, 1207, 1193, 2019, 4226, 1252],\n", - " 111: [2959, 527, 50, 3578, 2324, 1233, 2571, 2028, 1234, 2858],\n", - " 116: [1721, 1380, 2000, 1917, 919, 802, 832, 457, 2324, 3578],\n", - " 118: [1136, 1148, 2571, 7153, 5952, 1198, 260, 4226, 1240, 4993],\n", - " 139: [7153, 4993, 5952, 2115, 50, 1291, 2542, 1200, 1234, 4306],\n", - " 143: [7153, 50, 1213, 293, 1234, 1221, 750, 1036, 1201, 4027],\n", - " 144: [908, 904, 1193, 111, 1288, 1234, 1225, 1207, 2502, 923],\n", - " 162: [318, 50, 1233, 593, 912, 1193, 4226, 608, 904, 1213],\n", - " 172: [318, 260, 527, 1234, 50, 2324, 3578, 1196, 1233, 1210],\n", - " 173: [2324, 3578, 3147, 1148, 2028, 1704, 2762, 2396, 58, 4226],\n", - " 187: [1028, 919, 2000, 1035, 11, 780, 1242, 457, 2797, 318],\n", - " 193: [1240, 1148, 1036, 3578, 3147, 1198, 2028, 2762, 2571, 4306],\n", - " 208: [356, 364, 590, 858, 1246, 527, 912, 919, 1207, 1230],\n", - " 210: [527, 912, 1148, 1234, 50, 2324, 904, 1193, 1207, 260],\n", - " 214: [318, 1234, 912, 904, 1207, 919, 1233, 1242, 1193, 2019],\n", - " 228: [1721, 1917, 3578, 590, 2000, 1380, 1035, 1101, 733, 802],\n", - " 232: [2959, 2858, 2571, 1136, 1221, 1089, 4226, 4973, 1233, 7153],\n", - " 236: [912, 1233, 2858, 1193, 1148, 4226, 904, 1247, 1234, 858],\n", - " 259: [318, 1233, 912, 1230, 58, 1193, 858, 1222, 3578, 924],\n", - " 260: [318, 2571, 50, 527, 7153, 5952, 4993, 3578, 1148, 2959],\n", - " 267: [1148, 912, 904, 908, 4011, 1265, 4306, 1304, 1197, 21],\n", - " 268: [1035, 1028, 919, 1721, 2324, 1242, 1584, 920, 11, 1380],\n", - " 271: [104, 1035, 2000, 110, 344, 1028, 3578, 1380, 1242, 2324],\n", - " 274: [318, 50, 858, 4973, 1213, 296, 1233, 2571, 904, 2959],\n", - " 281: [1148, 912, 260, 1234, 904, 858, 1207, 1233, 1250, 1193],\n", - " 287: [318, 527, 1233, 50, 593, 912, 1234, 858, 2858, 1193],\n", - " 292: [2019, 1199, 908, 904, 1208, 1233, 923, 924, 1219, 778],\n", - " 296: [260, 1234, 912, 1196, 1207, 908, 2324, 1148, 1247, 1198],\n", - " 303: [1199, 50, 1089, 2019, 2997, 1206, 1193, 4973, 908, 1148],\n", - " 307: [2959, 296, 7153, 50, 318, 5952, 4993, 47, 1221, 1213],\n", - " 310: [1233, 1193, 3147, 58, 1148, 904, 3578, 1242, 150, 4226],\n", - " 315: [1721, 786, 2396, 494, 380, 2797, 497, 3147, 832, 919],\n", - " 320: [50, 318, 1221, 541, 750, 1213, 1198, 908, 608, 1234],\n", - " 326: [858, 1148, 912, 1207, 1193, 904, 4226, 1233, 318, 2019],\n", - " 332: [260, 1234, 858, 1196, 2324, 1242, 1035, 904, 1250, 1207],\n", - " 339: [527, 3578, 2324, 356, 50, 1233, 1234, 2028, 2959, 110],\n", - " 343: [318, 527, 919, 2324, 1035, 1721, 1242, 3578, 597, 3147],\n", - " 355: [2858, 2959, 1233, 4226, 608, 527, 4973, 1221, 1193, 1136],\n", - " 364: [260, 858, 904, 1234, 1233, 912, 1148, 1207, 527, 1193],\n", - " 365: [858, 912, 1233, 1193, 1247, 2858, 904, 318, 1207, 1252],\n", - " 368: [318, 1221, 2858, 1213, 904, 1233, 1193, 1234, 1201, 527],\n", - " 381: [858, 1148, 912, 919, 1207, 1247, 1193, 2396, 904, 1234],\n", - " 382: [1035, 919, 2324, 912, 1242, 858, 1247, 1207, 318, 1584],\n", - " 383: [923, 1219, 1206, 2019, 1394, 1213, 750, 912, 1252, 1199],\n", - " 391: [527, 1233, 912, 2396, 2028, 1148, 50, 3147, 2858, 58],\n", - " 396: [858, 111, 912, 923, 1221, 1193, 904, 1234, 1213, 318],\n", - " 398: [318, 2324, 1233, 3578, 919, 1234, 1230, 1247, 50, 858],\n", - " 406: [2324, 318, 919, 1035, 912, 1242, 527, 858, 1247, 1207],\n", - " 409: [1721, 780, 500, 1035, 2000, 1380, 919, 1028, 736, 2324],\n", - " 410: [2000, 260, 3578, 457, 1148, 1917, 2001, 4993, 3147, 2797],\n", - " 416: [318, 527, 2324, 1233, 912, 858, 50, 1234, 1247, 4973],\n", - " 418: [858, 593, 912, 1199, 1193, 904, 4226, 2858, 2997, 1233],\n", - " 419: [7153, 1196, 2019, 235, 293, 1080, 1206, 1079, 2959, 1266],\n", - " 421: [2396, 919, 912, 497, 597, 1721, 11, 17, 527, 3147],\n", - " 424: [2019, 858, 4226, 1213, 1233, 1207, 111, 1221, 4973, 1079],\n", - " 426: [2502, 2791, 1242, 1278, 1073, 112, 17, 1374, 2302, 1356],\n", - " 432: [858, 2858, 912, 4973, 1233, 1193, 904, 1213, 1247, 4226],\n", - " 434: [296, 318, 50, 2502, 47, 2329, 2542, 4973, 1089, 2324],\n", - " 436: [1233, 858, 527, 904, 260, 912, 4226, 2858, 1234, 4973],\n", - " 438: [608, 5952, 4226, 1199, 7153, 2019, 50, 1233, 1288, 4993],\n", - " 441: [318, 260, 1198, 1148, 7153, 1036, 5952, 4993, 527, 2571],\n", - " 446: [50, 858, 1233, 527, 4973, 2858, 1234, 904, 912, 1193],\n", - " 452: [1035, 1028, 919, 2000, 260, 1242, 1234, 1704, 1198, 1207],\n", - " 456: [260, 5952, 7153, 1221, 1196, 1136, 750, 1213, 4993, 2019],\n", - " 459: [1198, 50, 318, 1197, 1201, 1221, 750, 223, 1199, 2502],\n", - " 460: [260, 318, 2324, 3578, 1234, 527, 1035, 1210, 1196, 1242],\n", - " 463: [7153, 1148, 1234, 4011, 293, 6377, 1304, 1246, 1266, 1213],\n", - " 468: [1136, 5952, 1199, 541, 608, 7153, 1148, 2019, 4226, 750],\n", - " 469: [110, 1207, 1193, 50, 904, 3147, 1233, 1242, 2329, 858],\n", - " 472: [1721, 3578, 2000, 527, 500, 919, 3147, 733, 377, 1380],\n", - " 476: [858, 1193, 912, 1234, 904, 1213, 1222, 1247, 908, 1207],\n", - " 480: [111, 923, 1213, 908, 1208, 1193, 1089, 1252, 1080, 778],\n", - " 482: [912, 1247, 1233, 2858, 904, 1207, 4973, 593, 923, 1252],\n", - " 493: [1233, 912, 1234, 904, 593, 1148, 1207, 1247, 1250, 908],\n", - " 494: [1196, 260, 858, 1213, 750, 904, 1221, 4973, 1234, 7153],\n", - " 496: [318, 1148, 1136, 1233, 50, 912, 527, 608, 1193, 2019],\n", - " 501: [527, 318, 1233, 2324, 858, 50, 1247, 1207, 904, 4973],\n", - " 504: [912, 858, 1233, 1247, 2324, 1193, 2858, 1207, 4973, 904],\n", - " 505: [527, 3578, 2324, 1234, 1704, 50, 1233, 919, 593, 2028],\n", - " 511: [318, 3578, 527, 356, 2324, 1035, 919, 780, 1704, 1721],\n", - " 516: [50, 1234, 904, 1233, 1250, 1193, 1207, 908, 1230, 912],\n", - " 525: [912, 1148, 2019, 608, 4226, 1193, 2396, 1136, 1233, 1252],\n", - " 530: [260, 1196, 1210, 7153, 1198, 4993, 5952, 1234, 1197, 1036],\n", - " 531: [919, 527, 2396, 912, 1148, 3147, 497, 2324, 1242, 457],\n", - " 533: [1213, 111, 4011, 1090, 2329, 2194, 3147, 4886, 1220, 58],\n", - " 536: [912, 2396, 919, 527, 318, 2324, 597, 1247, 1721, 1233],\n", - " 543: [1234, 1233, 2797, 1304, 4011, 1242, 1250, 474, 2028, 497],\n", - " 547: [7153, 5952, 1136, 1148, 1198, 2571, 4993, 1240, 260, 318],\n", - " 549: [2324, 527, 912, 919, 1233, 858, 1247, 1035, 1242, 1207],\n", - " 553: [260, 858, 1210, 5952, 7153, 111, 923, 1221, 1196, 904],\n", - " 556: [608, 2858, 2997, 1199, 2959, 541, 1206, 1089, 4226, 1136],\n", - " 558: [904, 1233, 1250, 1193, 4973, 919, 2019, 1148, 1230, 1225],\n", - " 562: [3578, 104, 1035, 1380, 1721, 2324, 1917, 2000, 1101, 919],\n", - " 567: [1721, 780, 2000, 786, 1380, 1917, 802, 3578, 832, 1035],\n", - " 571: [7153, 5952, 1213, 750, 4993, 296, 1234, 908, 541, 1208],\n", - " 572: [318, 3578, 1036, 1233, 1148, 4973, 908, 2692, 1201, 1704],\n", - " 577: [527, 1233, 2324, 1193, 4973, 2858, 1148, 919, 4226, 1242],\n", - " 581: [1148, 1198, 1136, 260, 50, 1233, 4226, 7153, 5952, 2571],\n", - " 585: [4226, 1233, 3996, 1221, 4973, 2291, 4034, 1208, 1250, 5952],\n", - " 593: [2959, 2571, 527, 260, 1233, 2858, 4226, 1136, 1234, 1148],\n", - " 601: [2396, 1233, 2324, 3147, 1721, 2028, 58, 1247, 497, 1148],\n", - " 604: [2959, 1196, 4973, 1213, 1221, 2858, 2502, 750, 110, 2571],\n", - " 605: [2959, 1221, 4973, 2571, 858, 1213, 2858, 7153, 4226, 1233],\n", - " 609: [3578, 260, 2324, 1234, 1233, 2571, 1704, 1198, 2028, 1210],\n", - " 628: [527, 2324, 919, 1035, 1234, 1242, 3578, 1704, 1233, 260],\n", - " 629: [2858, 608, 318, 912, 527, 593, 1233, 2959, 296, 4226],\n", - " 634: [5952, 7153, 2571, 4993, 318, 50, 1234, 527, 293, 4306],\n", - " 645: [260, 1148, 1234, 1198, 919, 1207, 1242, 904, 1233, 912],\n", - " 650: [1148, 5952, 7153, 1221, 1136, 1200, 750, 2019, 293, 1201],\n", - " 656: [2324, 527, 912, 919, 1233, 1035, 1247, 1230, 1242, 2396],\n", - " 657: [1394, 2019, 750, 1206, 1233, 1222, 1199, 1080, 1288, 1234],\n", - " 669: [3578, 780, 527, 1036, 260, 2571, 1240, 1198, 2000, 733],\n", - " 678: [3578, 2959, 2571, 2324, 2028, 2329, 2115, 1704, 47, 4993],\n", - " 683: [318, 1035, 1917, 2324, 527, 1704, 1234, 1246, 1380, 1610],\n", - " 688: [1221, 4973, 1208, 1288, 2502, 1394, 2542, 1094, 318, 223],\n", - " 689: [527, 2324, 1234, 260, 1233, 50, 3578, 858, 1207, 1242],\n", - " 693: [912, 2324, 919, 1247, 2396, 1233, 1035, 1230, 1242, 58],\n", - " 701: [1035, 858, 2324, 1242, 318, 1234, 919, 1250, 1213, 4973],\n", - " 716: [1136, 5952, 7153, 4226, 1079, 4993, 111, 1221, 3996, 1288],\n", - " 719: [1035, 1028, 919, 1242, 2000, 920, 2324, 1380, 1584, 1246],\n", - " 720: [1035, 2324, 919, 1242, 858, 1234, 1207, 1250, 1704, 1028],\n", - " 734: [318, 2324, 527, 3578, 1704, 1233, 150, 3147, 110, 912],\n", - " 735: [318, 2959, 2858, 527, 1233, 4973, 912, 858, 1193, 2324],\n", - " 739: [1136, 7153, 5952, 1148, 1198, 318, 1240, 4993, 260, 1036],\n", - " 745: [1234, 4973, 1233, 2329, 7153, 904, 2324, 750, 5952, 908],\n", - " 755: [858, 923, 912, 111, 1219, 904, 1213, 1193, 2019, 4973],\n", - " 758: [1721, 527, 380, 318, 597, 377, 457, 3578, 356, 62],\n", - " 767: [1210, 50, 1234, 110, 1148, 1233, 2324, 904, 1704, 47],\n", - " 769: [912, 2858, 1233, 1193, 4226, 2396, 2997, 1247, 1148, 2019],\n", - " 775: [1148, 58, 527, 593, 912, 1247, 1193, 2028, 2396, 50],\n", - " 785: [912, 1233, 904, 858, 1148, 1193, 1207, 1234, 4226, 1247],\n", - " 786: [5952, 7153, 4993, 293, 2000, 2716, 1148, 1200, 6539, 2791],\n", - " 789: [1240, 3578, 589, 2571, 2959, 2028, 1036, 50, 1214, 1198],\n", - " 792: [1148, 912, 527, 1198, 1233, 260, 1234, 904, 1207, 2396],\n", - " 795: [858, 260, 1213, 750, 1221, 4973, 904, 2019, 4226, 1196],\n", - " 798: [2329, 590, 4011, 1233, 2502, 4027, 1784, 6377, 1080, 1997],\n", - " 799: [260, 3578, 1234, 1198, 1148, 50, 2571, 2324, 1704, 1233],\n", - " 802: [3578, 2324, 110, 1035, 1704, 919, 1242, 1234, 104, 1230],\n", - " 806: [1148, 260, 1234, 919, 1207, 1242, 912, 904, 1198, 1233],\n", - " 807: [260, 858, 1148, 527, 593, 912, 1207, 1193, 1196, 1198],\n", - " 816: [919, 2396, 527, 1148, 1028, 3147, 1721, 11, 497, 597],\n", - " 827: [912, 318, 1148, 1233, 1207, 904, 527, 858, 1234, 1193],\n", - " 828: [539, 1721, 11, 339, 786, 62, 150, 736, 2396, 919],\n", - " 846: [2324, 1035, 858, 1234, 3578, 1242, 260, 4973, 1233, 1230],\n", - " 859: [50, 318, 47, 1221, 2858, 2502, 750, 2542, 2329, 1213],\n", - " 862: [1721, 3578, 62, 3147, 919, 590, 2324, 2396, 802, 780],\n", - " 870: [1233, 50, 858, 1234, 2324, 912, 904, 4973, 260, 1193],\n", - " 876: [1035, 104, 2324, 1242, 260, 919, 1234, 1028, 1210, 1196],\n", - " 881: [3578, 2959, 2324, 1035, 2028, 1784, 1704, 1210, 2329, 1230],\n", - " 885: [912, 1233, 4973, 2858, 4226, 1234, 750, 923, 111, 2324],\n", - " 886: [6874, 1148, 7153, 5952, 4306, 4226, 4993, 3793, 3147, 1304],\n", - " 889: [912, 1207, 1148, 904, 858, 1247, 1233, 919, 2396, 1193],\n", - " 890: [318, 2324, 1035, 919, 1242, 1234, 1704, 590, 1233, 1246],\n", - " 891: [1136, 750, 1221, 1199, 2019, 1089, 1213, 908, 1148, 904],\n", - " 896: [923, 858, 111, 2019, 1219, 1213, 912, 750, 904, 1193],\n", - " 897: [858, 260, 923, 1250, 904, 1234, 1207, 1242, 1213, 1028],\n", - " 898: [3578, 318, 110, 527, 2959, 356, 50, 590, 1240, 2324],\n", - " 908: [364, 590, 1148, 1246, 7153, 150, 919, 1207, 3578, 50],\n", - " 922: [1035, 2324, 919, 1242, 527, 1028, 1234, 1704, 104, 2000],\n", - " 930: [919, 1035, 2324, 1242, 912, 1207, 1584, 2396, 1247, 1028],\n", - " 938: [527, 260, 1234, 3578, 2324, 50, 1233, 1148, 1198, 1704],\n", - " 956: [2571, 2959, 7153, 6874, 1200, 5952, 1089, 1240, 4993, 1210],\n", - " 958: [296, 2858, 593, 1230, 858, 912, 2324, 4973, 1247, 1233],\n", - " 968: [527, 260, 3578, 1234, 2324, 1198, 356, 1704, 919, 1148],\n", - " 977: [2959, 2997, 4973, 2019, 4226, 1219, 2502, 1394, 778, 1233],\n", - " 987: [1035, 1721, 1028, 919, 500, 597, 1242, 2324, 11, 587],\n", - " 990: [1196, 2959, 110, 1210, 260, 858, 4973, 1213, 2324, 1234],\n", - " 996: [2324, 1035, 919, 1242, 912, 858, 1207, 1234, 1233, 1247],\n", - " 1004: [527, 912, 1233, 2324, 1234, 1207, 1148, 904, 919, 1247],\n", - " 1005: [2324, 912, 3578, 919, 2028, 1247, 58, 3147, 1230, 1234],\n", - " 1008: [904, 1213, 1234, 1233, 1250, 923, 750, 2019, 1148, 908],\n", - " 1029: [260, 1196, 1234, 858, 7153, 904, 5952, 1213, 1198, 1148],\n", - " 1037: [912, 318, 1233, 2858, 608, 527, 1148, 1193, 4226, 904],\n", - " 1050: [608, 2858, 2959, 1221, 541, 750, 4226, 1199, 2019, 4973],\n", - " 4: [260, 3578, 318, 2571, 1036, 527, 1198, 1240, 7153, 356],\n", - " 8: [318, 750, 1221, 1201, 2791, 110, 2716, 1213, 904, 908],\n", - " 18: [50, 1233, 4226, 1148, 1193, 1221, 4973, 904, 1234, 912],\n", - " 36: [318, 1035, 2324, 1234, 110, 4973, 1242, 1250, 904, 1230],\n", - " 47: [527, 356, 1234, 1704, 2324, 1148, 2000, 47, 1246, 1233],\n", - " 59: [527, 1148, 912, 1233, 2396, 3147, 1234, 2762, 2028, 1207],\n", - " 62: [260, 1035, 919, 1028, 1242, 2000, 1234, 2324, 527, 1148],\n", - " 77: [318, 1233, 3578, 50, 2028, 1148, 2324, 1234, 912, 3147],\n", - " 79: [2858, 2959, 858, 4973, 1221, 1213, 750, 1233, 4226, 1193],\n", - " 80: [858, 2324, 1234, 912, 1242, 1207, 904, 1035, 1250, 1233],\n", - " 119: [912, 1233, 2324, 904, 4973, 1234, 1207, 1247, 1193, 527],\n", - " 122: [541, 912, 923, 1199, 908, 4226, 1233, 750, 2019, 4973],\n", - " 125: [1201, 2329, 1197, 908, 1234, 778, 1527, 1288, 1250, 1090],\n", - " 126: [4973, 750, 2542, 908, 1233, 1080, 1199, 223, 1206, 1201],\n", - " 132: [2324, 1035, 527, 1234, 1242, 919, 3578, 1704, 858, 110],\n", - " 141: [2396, 597, 1721, 318, 3147, 2028, 912, 150, 58, 497],\n", - " 154: [318, 7153, 5952, 4993, 3578, 1234, 293, 527, 2329, 1136],\n", - " 155: [4973, 1233, 1234, 904, 2324, 912, 527, 1207, 1250, 4226],\n", - " 163: [923, 1219, 2019, 608, 858, 912, 1252, 2858, 2997, 1394],\n", - " 164: [1035, 2324, 858, 104, 1242, 110, 1230, 919, 1234, 920],\n", - " 170: [4973, 1221, 1089, 593, 608, 2502, 858, 541, 1213, 750],\n", - " 171: [260, 919, 1035, 1028, 1242, 2324, 1234, 858, 1250, 1196],\n", - " 176: [919, 912, 318, 1242, 2324, 1035, 858, 1207, 1234, 904],\n", - " 182: [1233, 1148, 904, 1035, 1584, 1252, 457, 1259, 1198, 1222],\n", - " 190: [2000, 1356, 1148, 293, 353, 2001, 1917, 2918, 2791, 21],\n", - " 197: [1213, 4973, 111, 904, 1196, 2019, 1208, 296, 260, 318],\n", - " 198: [904, 1233, 4973, 1148, 908, 1198, 2019, 4011, 1247, 1201],\n", - " 199: [318, 527, 1148, 919, 3147, 1198, 1234, 260, 1242, 2324],\n", - " 212: [25, 2858, 1079, 1094, 1233, 1247, 36, 1222, 1234, 1358],\n", - " 221: [3578, 1234, 2324, 7153, 4993, 1704, 1240, 1148, 1291, 1233],\n", - " 223: [356, 589, 110, 260, 858, 1210, 1148, 1246, 1288, 5952],\n", - " 226: [912, 923, 1207, 1219, 1247, 1193, 1233, 2019, 4973, 750],\n", - " 241: [260, 858, 1196, 1234, 318, 1213, 904, 50, 4973, 1233],\n", - " 247: [1035, 1028, 2000, 919, 1242, 260, 318, 2324, 1234, 780],\n", - " 249: [260, 527, 1234, 1148, 1233, 1210, 904, 4973, 1221, 858],\n", - " 254: [608, 7153, 4226, 2019, 1148, 908, 4993, 904, 1213, 4973],\n", - " 264: [912, 2858, 318, 1233, 1193, 858, 608, 4226, 527, 1247],\n", - " 273: [2000, 780, 1198, 1196, 1234, 1291, 1197, 1270, 1148, 1035],\n", - " 275: [912, 2019, 1252, 4226, 923, 1219, 1199, 858, 1394, 1233],\n", - " 276: [1221, 2019, 1233, 908, 1148, 912, 904, 1201, 4027, 1234],\n", - " 293: [260, 1035, 3578, 2000, 2324, 780, 527, 919, 1234, 356],\n", - " 294: [2959, 2571, 527, 260, 593, 4973, 2858, 3578, 1196, 2329],\n", - " 295: [858, 912, 904, 1233, 318, 1250, 1242, 1193, 2324, 1148],\n", - " 318: [2019, 1252, 1219, 4226, 750, 1207, 1266, 1250, 1233, 25],\n", - " 321: [318, 527, 1148, 912, 2396, 1233, 3147, 150, 1207, 1234],\n", - " 345: [858, 527, 593, 608, 912, 1247, 1233, 924, 318, 4973],\n", - " 346: [318, 2959, 110, 527, 2324, 590, 2028, 593, 50, 2571],\n", - " 348: [260, 1196, 1210, 1234, 904, 1233, 2324, 908, 1207, 1136],\n", - " 349: [2858, 912, 1233, 2959, 2028, 2396, 2324, 1247, 1193, 608],\n", - " 354: [527, 1234, 2324, 260, 1233, 1148, 1207, 919, 904, 1242],\n", - " 359: [608, 111, 912, 1394, 25, 1252, 858, 1206, 1094, 2019],\n", - " 366: [318, 527, 3578, 1210, 2324, 50, 1242, 1704, 1148, 1035],\n", - " 369: [2959, 2858, 608, 50, 1233, 4226, 912, 2997, 527, 1193],\n", - " 384: [1148, 1198, 527, 1036, 260, 3147, 1240, 2762, 4306, 7153],\n", - " 390: [1221, 750, 1233, 541, 2019, 908, 111, 1208, 1089, 912],\n", - " 392: [858, 904, 1213, 912, 2019, 750, 4973, 923, 1193, 1233],\n", - " 403: [858, 923, 912, 1213, 111, 2019, 4973, 1193, 750, 1219],\n", - " 407: [318, 527, 3147, 1197, 4226, 1304, 904, 912, 4011, 1193],\n", - " 414: [912, 608, 924, 858, 1394, 1193, 1233, 1230, 111, 1219],\n", - " 431: [260, 1234, 527, 1198, 1196, 1148, 1210, 3578, 2324, 1233],\n", - " 454: [318, 527, 1148, 1240, 1198, 1136, 1233, 2571, 2028, 2762],\n", - " 465: [912, 1233, 904, 2019, 1394, 750, 1247, 1207, 1225, 1250],\n", - " 481: [1148, 1234, 1233, 527, 1197, 1207, 750, 1193, 1250, 4973],\n", - " 485: [924, 912, 58, 1394, 4973, 1233, 1230, 1247, 1206, 2028],\n", - " 503: [912, 1233, 50, 608, 1193, 1247, 1230, 904, 2324, 908],\n", - " 513: [4226, 3996, 4973, 1222, 2959, 2692, 1213, 778, 1266, 3897],\n", - " 517: [260, 5952, 7153, 2571, 1136, 4993, 1198, 1148, 1196, 541],\n", - " 545: [1199, 908, 1148, 912, 1234, 3578, 1997, 1207, 4306, 58],\n", - " 552: [593, 527, 2571, 1233, 541, 1199, 2028, 6874, 1221, 47],\n", - " 554: [1199, 541, 750, 1221, 1136, 2019, 50, 1080, 4226, 1213],\n", - " 555: [1036, 904, 1214, 541, 1207, 1221, 4973, 908, 1304, 1704],\n", - " 561: [318, 50, 293, 1136, 1198, 527, 2542, 2115, 2692, 1639],\n", - " 565: [318, 527, 260, 1234, 1148, 50, 1233, 2324, 2571, 904],\n", - " 591: [1196, 1210, 260, 110, 7153, 4993, 318, 5952, 2571, 1234],\n", - " 617: [318, 2396, 3147, 2762, 1265, 4306, 1214, 2916, 3996, 2028],\n", - " 621: [5952, 7153, 1233, 1080, 4011, 1387, 36, 1278, 4306, 2692],\n", - " 622: [527, 3578, 50, 1234, 2324, 1233, 1148, 904, 858, 1036],\n", - " 623: [912, 1233, 858, 1193, 527, 904, 1247, 1207, 2858, 4226],\n", - " 633: [2997, 924, 4973, 1199, 1080, 1247, 1094, 778, 2329, 4011],\n", - " 636: [1234, 1240, 4306, 4226, 1197, 47, 1214, 1704, 1207, 541],\n", - " 638: [912, 1148, 1233, 1193, 2396, 904, 1207, 1247, 4226, 593],\n", - " 641: [2571, 260, 527, 7153, 1198, 3578, 1036, 1240, 4993, 50],\n", - " 646: [318, 858, 260, 1233, 1234, 50, 527, 904, 912, 1193],\n", - " 654: [1035, 260, 2324, 1234, 1242, 919, 527, 858, 1207, 1250],\n", - " 655: [1148, 5952, 7153, 904, 1234, 4993, 50, 1250, 2571, 1207],\n", - " 658: [318, 858, 4973, 50, 1213, 904, 1234, 260, 1193, 912],\n", - " 660: [858, 1233, 912, 1234, 260, 1207, 1148, 1250, 1247, 4226],\n", - " 661: [1148, 912, 904, 858, 260, 1234, 1207, 1233, 1250, 1193],\n", - " 677: [2324, 919, 1035, 1234, 1242, 1233, 912, 1207, 858, 1704],\n", - " 714: [912, 1234, 1242, 1207, 1233, 1250, 1213, 1247, 1193, 593],\n", - " 715: [858, 912, 2858, 4973, 1193, 923, 904, 1233, 2019, 1213],\n", - " 723: [296, 858, 4973, 50, 2858, 1213, 593, 2324, 1196, 1221],\n", - " 731: [3578, 1234, 1198, 50, 4993, 7153, 1148, 1291, 5952, 4306],\n", - " 742: [527, 1234, 1233, 593, 904, 2324, 1193, 858, 1221, 908],\n", - " 743: [318, 527, 260, 1234, 1148, 1198, 919, 2324, 3578, 150],\n", - " 752: [318, 2959, 593, 50, 2858, 527, 1233, 4973, 858, 2324],\n", - " 772: [296, 858, 2858, 1213, 750, 1221, 111, 318, 2019, 904],\n", - " 780: [3578, 1704, 919, 912, 2959, 1207, 4973, 1230, 1247, 1035],\n", - " 788: [260, 1234, 1233, 1148, 919, 1207, 904, 1196, 1035, 1210],\n", - " 814: [1196, 260, 1210, 104, 1197, 7153, 4993, 5952, 1291, 1198],\n", - " 823: [318, 2959, 527, 50, 593, 1233, 2858, 2571, 3578, 2028],\n", - " 826: [2329, 1234, 527, 2502, 1199, 1198, 293, 110, 1148, 1225],\n", - " 833: [50, 1233, 4973, 904, 912, 1234, 1193, 4226, 1207, 1247],\n", - " 838: [2019, 1252, 750, 1250, 1394, 1148, 1221, 924, 4034, 1079],\n", - " 842: [858, 1148, 527, 912, 919, 1207, 1247, 1193, 2396, 904],\n", - " 852: [527, 2324, 1233, 1234, 3578, 50, 260, 1148, 912, 1704],\n", - " 878: [4973, 1233, 2858, 4226, 1234, 1222, 1394, 1148, 1617, 4011],\n", - " 887: [260, 858, 1148, 527, 912, 919, 923, 1207, 1225, 1230],\n", - " 895: [457, 527, 318, 1721, 3147, 1148, 1036, 3578, 2396, 1198],\n", - " 899: [912, 858, 318, 1233, 1193, 1247, 904, 2858, 1207, 593],\n", - " 902: [1234, 904, 4973, 1233, 527, 2324, 1207, 1250, 1221, 110],\n", - " 907: [858, 2324, 1035, 912, 1242, 1247, 1230, 919, 1207, 4973],\n", - " 928: [912, 1233, 858, 527, 904, 1247, 1221, 2019, 1222, 1213],\n", - " 936: [318, 1234, 2324, 1213, 1258, 904, 908, 1230, 750, 590],\n", - " 964: [1035, 2324, 1242, 1234, 919, 1230, 4973, 1250, 1207, 904],\n", - " 970: [104, 1028, 2000, 260, 1035, 1196, 1210, 1197, 1242, 2011],\n", - " 972: [1233, 912, 50, 1234, 919, 4973, 1230, 904, 58, 3147],\n", - " 988: [1221, 7153, 908, 1732, 1222, 2329, 6874, 4027, 527, 1207],\n", - " 1001: [318, 527, 2324, 1233, 1234, 912, 593, 858, 50, 1207],\n", - " 1013: [2324, 1233, 912, 1234, 1242, 1207, 1035, 1247, 904, 4973],\n", - " 1018: [50, 1221, 1233, 858, 750, 1193, 1213, 908, 904, 2019],\n", - " 1020: [110, 260, 919, 1230, 3578, 50, 904, 1704, 1233, 318],\n", - " 1028: [527, 318, 2324, 1234, 3578, 1148, 919, 260, 1233, 3147],\n", - " 1031: [260, 1210, 1196, 318, 104, 3578, 2000, 4993, 7153, 1198],\n", - " 1035: [2324, 1230, 1035, 2712, 527, 912, 1247, 58, 1233, 919],\n", - " 1038: [2000, 1242, 1234, 2011, 1198, 1148, 2716, 318, 1250, 3114],\n", - " 1045: [1035, 1230, 4973, 1242, 1247, 2712, 1233, 1250, 1207, 904],\n", - " 1046: [318, 527, 3578, 3147, 1148, 2324, 1234, 919, 1036, 1198],\n", - " 35: [296, 1089, 50, 593, 2997, 318, 1199, 541, 4973, 924],\n", - " 72: [318, 527, 912, 1148, 1233, 1234, 1207, 2324, 904, 919],\n", - " 91: [2019, 1252, 858, 1233, 4226, 111, 36, 4973, 908, 1225],\n", - " 106: [1721, 597, 527, 62, 587, 2324, 318, 593, 58, 2396],\n", - " 128: [858, 1148, 1288, 608, 912, 1207, 1221, 1225, 1230, 1247],\n", - " 158: [858, 912, 2858, 318, 4973, 1233, 1193, 904, 608, 1247],\n", - " 160: [1148, 1288, 111, 541, 593, 608, 912, 1080, 1199, 1206],\n", - " 175: [1230, 2324, 1247, 908, 1207, 1199, 16, 1704, 1242, 3897],\n", - " 196: [4993, 7153, 3578, 5952, 4306, 1148, 733, 1704, 6539, 1380],\n", - " 203: [527, 1233, 912, 1193, 4226, 858, 1247, 2324, 2762, 3147],\n", - " 206: [858, 1193, 4226, 2858, 1233, 2019, 4973, 923, 318, 2997],\n", - " 207: [912, 923, 2019, 111, 858, 1252, 1219, 608, 1193, 2858],\n", - " 215: [527, 3147, 58, 2329, 1090, 1246, 1201, 337, 1035, 1028],\n", - " 255: [527, 260, 1234, 50, 2324, 1233, 858, 904, 3578, 1148],\n", - " 265: [2000, 104, 2001, 1380, 260, 1210, 500, 356, 1036, 590],\n", - " 340: [3578, 2571, 7153, 4993, 2028, 4306, 1148, 2959, 590, 2762],\n", - " 404: [260, 3578, 1035, 527, 2324, 1234, 2000, 919, 1242, 1704],\n", - " 433: [318, 527, 50, 2959, 1240, 1148, 2571, 593, 1233, 1136],\n", - " 440: [912, 1233, 1148, 904, 1234, 1247, 4973, 2019, 2324, 1250],\n", - " 444: [318, 527, 3578, 260, 1148, 150, 3147, 1234, 1704, 4993],\n", - " 450: [1234, 750, 912, 2959, 1250, 2019, 2324, 1247, 1148, 7153],\n", - " 479: [923, 858, 1219, 912, 4973, 904, 1221, 908, 1250, 1225],\n", - " 491: [296, 608, 912, 111, 1193, 1233, 50, 924, 593, 904],\n", - " 506: [608, 4226, 2858, 2019, 1199, 1221, 5952, 7153, 1233, 904],\n", - " 523: [2858, 4226, 1233, 296, 912, 2019, 904, 4973, 750, 593],\n", - " 539: [260, 1197, 1148, 1198, 5952, 904, 1234, 7153, 1196, 4993],\n", - " 541: [318, 296, 4973, 1233, 858, 2329, 1221, 1234, 1213, 4226],\n", - " 616: [1234, 2324, 1233, 858, 904, 1207, 912, 4973, 1242, 1148],\n", - " 647: [597, 587, 2324, 356, 318, 527, 1035, 3578, 539, 62],\n", - " 659: [912, 904, 1233, 1213, 1193, 50, 1234, 1207, 750, 1250],\n", - " 695: [858, 1234, 2324, 1242, 1035, 919, 1207, 904, 1250, 1233],\n", - " 700: [1136, 50, 4226, 1148, 2019, 608, 541, 260, 750, 5952],\n", - " 707: [1148, 912, 904, 260, 318, 2019, 1233, 858, 1234, 1193],\n", - " 748: [260, 2571, 1234, 1233, 1196, 593, 1198, 2959, 7153, 858],\n", - " 759: [2959, 296, 2858, 50, 318, 608, 1089, 593, 1199, 47],\n", - " 784: [904, 1148, 908, 1234, 111, 4973, 1193, 1233, 4011, 1201],\n", - " 790: [912, 2396, 1233, 919, 1207, 1193, 2324, 58, 1641, 3147],\n", - " 835: [858, 111, 608, 912, 923, 1193, 904, 2019, 4226, 2858],\n", - " 844: [318, 4993, 7153, 1148, 1197, 5952, 527, 1234, 150, 4306],\n", - " 871: [2019, 2858, 4973, 4226, 5952, 7153, 2997, 2959, 1394, 1233],\n", - " 875: [912, 1233, 2324, 1247, 919, 2396, 1207, 858, 1193, 904],\n", - " 892: [912, 923, 1193, 904, 908, 4226, 2858, 1233, 750, 2019],\n", - " 919: [1721, 150, 3578, 356, 500, 318, 1380, 597, 587, 590],\n", - " 935: [7153, 5952, 4993, 318, 1136, 1210, 293, 1148, 1200, 47],\n", - " 942: [527, 1148, 1198, 1240, 1036, 3147, 2762, 2571, 260, 50],\n", - " 960: [2858, 2959, 50, 4226, 1199, 541, 318, 1221, 2019, 2997],\n", - " 1006: [2858, 4226, 296, 912, 50, 1233, 1193, 2019, 1136, 541],\n", - " 1026: [858, 923, 904, 2019, 1213, 912, 1250, 1234, 1207, 318],\n", - " 1047: [260, 904, 750, 1196, 1221, 1234, 1233, 1193, 908, 912],\n", - " 65: [527, 3147, 457, 1036, 2762, 1233, 3578, 1207, 2324, 50],\n", - " 135: [5952, 7153, 1148, 4993, 318, 2571, 50, 4226, 527, 750],\n", - " 152: [7153, 4993, 5952, 1234, 527, 2959, 2329, 4011, 293, 1213],\n", - " 166: [318, 3578, 527, 356, 110, 1198, 590, 780, 1234, 2324],\n", - " 179: [912, 923, 904, 1148, 4226, 1207, 318, 1219, 1247, 1250],\n", - " 188: [318, 260, 1148, 1234, 1198, 1233, 1207, 904, 919, 912],\n", - " 217: [1035, 2324, 919, 1242, 318, 912, 858, 1207, 1234, 527],\n", - " 253: [318, 527, 1233, 912, 593, 50, 1193, 4226, 1148, 904],\n", - " 262: [589, 1148, 1136, 1214, 590, 1234, 1200, 150, 2329, 1233],\n", - " 277: [260, 318, 2571, 50, 1198, 1148, 4226, 541, 750, 1196],\n", - " 289: [1233, 541, 1198, 1073, 1035, 6377, 1199, 2194, 555, 364],\n", - " 300: [1250, 1219, 1207, 4973, 1234, 4226, 36, 4034, 1148, 2324],\n", - " 302: [7153, 5952, 4993, 1198, 1234, 1036, 2000, 4011, 293, 1213],\n", - " 308: [912, 318, 2324, 919, 858, 1247, 1233, 527, 1207, 1242],\n", - " 311: [318, 527, 919, 1234, 2324, 260, 1242, 1035, 1148, 1207],\n", - " 328: [858, 1252, 111, 608, 912, 923, 1219, 1221, 1193, 904],\n", - " 329: [318, 912, 1233, 858, 904, 1193, 50, 4226, 2858, 527],\n", - " 344: [1148, 318, 1207, 1233, 904, 858, 919, 1247, 1193, 1234],\n", - " 347: [296, 318, 750, 2858, 1221, 1136, 608, 4226, 2019, 858],\n", - " 358: [7153, 5952, 4993, 1198, 1036, 3578, 1234, 50, 1291, 1148],\n", - " 474: [318, 7153, 5952, 1198, 1148, 4993, 1136, 50, 1234, 1197],\n", - " 483: [3578, 780, 2000, 919, 3147, 1036, 260, 1198, 1148, 2324],\n", - " 509: [110, 260, 1210, 1148, 912, 919, 923, 1207, 1221, 1230],\n", - " 578: [2959, 6874, 7153, 5952, 50, 318, 4993, 2692, 2028, 293],\n", - " 589: [1213, 318, 923, 4973, 1221, 2019, 1233, 4226, 1250, 908],\n", - " 643: [344, 2324, 1242, 920, 231, 104, 4973, 1584, 1954, 2712],\n", - " 672: [318, 2542, 4973, 1258, 16, 4027, 1234, 1230, 293, 1240],\n", - " 679: [919, 912, 1242, 1035, 2396, 1028, 1207, 2324, 497, 1247],\n", - " 680: [780, 3578, 318, 110, 590, 2000, 1917, 527, 1036, 733],\n", - " 691: [1234, 1242, 50, 1148, 1207, 1246, 4993, 858, 904, 1250],\n", - " 702: [1148, 50, 4226, 1233, 1198, 2571, 7153, 5952, 904, 1234],\n", - " 708: [7153, 527, 1198, 318, 3578, 1036, 4993, 5952, 1148, 1234],\n", - " 730: [260, 858, 527, 912, 919, 1207, 1247, 1193, 904, 1234],\n", - " 751: [318, 260, 1198, 527, 1234, 1148, 7153, 1036, 4993, 3578],\n", - " 773: [2000, 1036, 1198, 4993, 7153, 1917, 5952, 3578, 1291, 318],\n", - " 803: [597, 62, 527, 497, 339, 3147, 58, 380, 802, 736],\n", - " 809: [318, 1198, 1234, 7153, 2571, 904, 1136, 4226, 858, 1036],\n", - " 820: [318, 1233, 527, 608, 904, 912, 1198, 1221, 1234, 908],\n", - " 824: [2858, 296, 1230, 4973, 318, 923, 1213, 1222, 111, 36],\n", - " 863: [1240, 1136, 2959, 1214, 7153, 5952, 541, 6874, 1199, 1198],\n", - " 865: [527, 1234, 1233, 858, 2324, 904, 1148, 912, 1207, 4973],\n", - " 867: [1148, 912, 1193, 1358, 2000, 4011, 1221, 36, 111, 1265],\n", - " 911: [858, 923, 1213, 4973, 296, 912, 111, 904, 1230, 2324],\n", - " 915: [527, 3578, 318, 590, 1198, 150, 1704, 2324, 110, 1233],\n", - " 939: [1234, 527, 2324, 1233, 50, 858, 1148, 904, 1198, 1207],\n", - " 946: [1148, 527, 912, 1207, 1247, 1193, 1234, 4226, 2858, 1233],\n", - " 954: [110, 7153, 4993, 5952, 318, 2115, 104, 1036, 293, 50],\n", - " 957: [2019, 750, 5952, 923, 904, 7153, 1148, 4226, 4993, 908],\n", - " 971: [923, 1219, 1221, 1193, 904, 1208, 1213, 1233, 1247, 1234],\n", - " 986: [2959, 3578, 2571, 1233, 1234, 260, 2324, 4973, 2329, 2858],\n", - " 992: [858, 1234, 904, 1148, 1213, 1198, 5952, 7153, 1197, 50],\n", - " 92: [2324, 1035, 1234, 1242, 919, 50, 593, 1233, 1246, 2329],\n", - " 107: [2858, 296, 2959, 608, 318, 593, 50, 2997, 4226, 1193],\n", - " 131: [111, 923, 1219, 858, 2858, 912, 924, 1394, 608, 2019],\n", - " 138: [1527, 1199, 2502, 5378, 1221, 2692, 1639, 608, 4027, 2115],\n", - " 145: [858, 2858, 111, 1213, 4973, 750, 1221, 608, 923, 2019],\n", - " 183: [858, 1207, 1247, 1242, 2324, 1028, 920, 904, 497, 4973],\n", - " 209: [912, 318, 1148, 1233, 904, 858, 1193, 1207, 4226, 1234],\n", - " 230: [318, 4226, 2019, 1193, 904, 858, 4973, 908, 1234, 2571],\n", - " 263: [1148, 7153, 904, 1234, 1233, 2324, 1250, 4011, 908, 1225],\n", - " 305: [318, 3578, 2028, 2324, 2959, 1721, 1233, 3147, 50, 1240],\n", - " 314: [7153, 50, 2571, 4226, 2019, 608, 1199, 1148, 1213, 1089],\n", - " 319: [858, 1252, 111, 912, 923, 1219, 904, 2019, 1193, 1213],\n", - " 325: [260, 7153, 5952, 4993, 527, 2571, 2762, 457, 150, 3147],\n", - " 341: [1148, 1288, 5952, 7153, 111, 541, 608, 912, 923, 1199],\n", - " 471: [318, 527, 912, 1148, 1233, 1234, 1207, 904, 1193, 919],\n", - " 488: [318, 527, 912, 1233, 2324, 2396, 3147, 1148, 919, 1234],\n", - " 495: [1721, 597, 377, 2396, 457, 587, 539, 527, 3147, 318],\n", - " 532: [608, 912, 111, 2019, 923, 1219, 1394, 924, 25, 1094],\n", - " 564: [1148, 5952, 7153, 1197, 1234, 4993, 527, 1207, 1242, 919],\n", - " 574: [318, 3578, 356, 590, 2324, 1721, 2028, 110, 1240, 2959],\n", - " 590: [912, 858, 2858, 1233, 1193, 904, 4226, 4973, 2019, 1247],\n", - " 603: [2396, 912, 34, 919, 440, 1641, 1035, 1584, 920, 497],\n", - " 674: [5952, 7153, 4993, 1198, 1148, 1136, 21, 1265, 1079, 1291],\n", - " 753: [858, 1148, 541, 912, 1199, 1207, 1221, 1225, 1193, 50],\n", - " 810: [260, 318, 1210, 110, 3578, 1196, 2571, 7153, 4993, 1198],\n", - " 830: [318, 3578, 110, 2959, 2571, 50, 1240, 1234, 1036, 1233],\n", - " 841: [7153, 50, 1136, 318, 5952, 1198, 1148, 527, 1036, 1233],\n", - " 856: [318, 527, 1233, 912, 50, 593, 1193, 858, 2858, 904],\n", - " 921: [260, 318, 2571, 1198, 527, 7153, 1036, 3578, 1148, 5952],\n", - " 933: [912, 2858, 608, 1193, 858, 1233, 1247, 1252, 904, 924],\n", - " 976: [1148, 4226, 50, 1136, 1233, 260, 904, 912, 2019, 1193],\n", - " 10: [1148, 318, 912, 1198, 904, 1234, 1136, 2396, 260, 4226],\n", - " 19: [7153, 5952, 4993, 2571, 2000, 4306, 3578, 2762, 3147, 780],\n", - " 41: [104, 2324, 1242, 344, 318, 500, 1584, 1246, 1704, 110],\n", - " 43: [364, 858, 150, 508, 527, 912, 919, 1207, 1247, 1584],\n", - " 44: [858, 1148, 1252, 111, 912, 923, 1207, 1219, 1221, 1247],\n", - " 45: [318, 527, 3578, 2959, 2324, 1234, 590, 58, 1704, 1784],\n", - " 51: [231, 344, 1196, 1213, 1250, 1197, 1210, 1219, 223, 25],\n", - " 56: [25, 608, 2997, 1394, 1233, 1199, 1094, 4034, 1225, 36],\n", - " 61: [1028, 1148, 2000, 919, 260, 150, 1198, 1242, 1234, 1197],\n", - " 68: [912, 858, 593, 1233, 4973, 924, 318, 58, 36, 1222],\n", - " 69: [1148, 1198, 260, 150, 1234, 3147, 1233, 1136, 1036, 457],\n", - " 78: [2019, 1221, 50, 593, 1213, 1094, 36, 4011, 1266, 5952],\n", - " 110: [1721, 1035, 587, 597, 500, 3578, 2324, 539, 919, 104],\n", - " 115: [912, 1233, 593, 4226, 1148, 904, 858, 50, 1207, 2019],\n", - " 129: [858, 1148, 5952, 7153, 527, 541, 593, 1221, 1193, 1196],\n", - " 149: [2571, 1200, 1136, 1240, 260, 293, 47, 1089, 1210, 1036],\n", - " 150: [318, 912, 1233, 1148, 1193, 904, 858, 593, 1207, 1234],\n", - " 168: [318, 527, 1148, 1233, 912, 1234, 50, 593, 904, 1207],\n", - " 169: [858, 1148, 1252, 1288, 58, 111, 527, 541, 593, 608],\n", - " 178: [2324, 3578, 1233, 1234, 919, 912, 50, 2028, 1242, 3147],\n", - " 186: [858, 25, 923, 1213, 750, 2019, 1221, 1208, 1206, 2858],\n", - " 201: [318, 912, 1230, 1247, 1035, 1233, 919, 58, 4973, 1242],\n", - " 239: [318, 50, 527, 1233, 593, 858, 1234, 4973, 260, 904],\n", - " 248: [260, 858, 50, 1213, 318, 4973, 1221, 904, 4226, 1233],\n", - " 256: [318, 527, 1233, 912, 50, 1148, 1193, 904, 4226, 1234],\n", - " 257: [318, 527, 589, 50, 1148, 4306, 7153, 2762, 457, 1234],\n", - " 272: [111, 608, 1206, 924, 1213, 750, 4973, 2019, 1199, 1394],\n", - " 279: [858, 111, 912, 923, 1193, 2858, 1213, 1233, 2019, 4973],\n", - " 280: [919, 2324, 318, 1242, 912, 1207, 1234, 1233, 150, 1247],\n", - " 285: [858, 1252, 608, 912, 923, 1207, 1219, 1247, 1193, 904],\n", - " 298: [260, 1196, 1213, 858, 750, 923, 2019, 5952, 904, 7153],\n", - " 301: [4226, 111, 4973, 904, 1193, 1233, 908, 1148, 1234, 924],\n", - " 304: [527, 912, 597, 1721, 318, 497, 3147, 62, 2324, 17],\n", - " 333: [1028, 919, 1035, 2000, 150, 11, 1242, 780, 500, 2797],\n", - " 334: [3578, 318, 527, 2324, 1035, 104, 2959, 1704, 50, 1036],\n", - " 338: [1196, 2959, 50, 260, 858, 1213, 1210, 4973, 1221, 2571],\n", - " 350: [912, 858, 904, 1233, 1207, 1193, 1247, 923, 1234, 1250],\n", - " 351: [1219, 1252, 1233, 2019, 4226, 1250, 1206, 4034, 541, 1199],\n", - " 353: [1136, 260, 1089, 6874, 1210, 1240, 1221, 1080, 750, 1201],\n", - " 378: [912, 318, 1233, 1193, 1148, 904, 4226, 2019, 2858, 608],\n", - " 386: [1234, 1148, 919, 1207, 904, 1233, 1250, 1028, 1197, 2000],\n", - " 397: [1035, 919, 1233, 1242, 1234, 1247, 50, 1207, 590, 58],\n", - " 420: [923, 858, 912, 2019, 1219, 608, 2858, 1252, 1193, 750],\n", - " 439: [260, 858, 1148, 5952, 7153, 912, 1207, 1221, 1196, 1198],\n", - " 449: [318, 7153, 110, 4993, 5952, 1198, 1234, 1036, 1291, 2329],\n", - " 478: [527, 2324, 3578, 1233, 593, 1234, 919, 1035, 1242, 50],\n", - " 487: [527, 1233, 912, 1148, 904, 1234, 1193, 260, 4226, 858],\n", - " 489: [912, 2324, 593, 4973, 2858, 4226, 1230, 1242, 1148, 908],\n", - " 500: [912, 858, 2019, 923, 1193, 2858, 904, 4226, 1233, 750],\n", - " 510: [1233, 1148, 50, 1234, 912, 260, 904, 1193, 4226, 1207],\n", - " 521: [1234, 904, 260, 2324, 4973, 1213, 912, 1207, 1250, 527],\n", - " 522: [2019, 750, 904, 4226, 912, 923, 1148, 50, 4973, 908],\n", - " 524: [912, 1233, 2324, 593, 1247, 1193, 904, 1230, 527, 1207],\n", - " 527: [260, 318, 1198, 1234, 1197, 1036, 4993, 7153, 1207, 904],\n", - " 529: [2858, 608, 912, 2019, 858, 1193, 111, 1233, 750, 4973],\n", - " 535: [25, 1247, 1207, 36, 1250, 4034, 1233, 1394, 1242, 4973],\n", - " 550: [1242, 1028, 1035, 2324, 1584, 11, 3147, 1307, 1213, 4973],\n", - " 560: [1196, 1210, 110, 1213, 260, 858, 4973, 2502, 1221, 2571],\n", - " 573: [296, 912, 858, 1247, 924, 4973, 1193, 2959, 1394, 58],\n", - " 579: [7153, 5952, 4993, 1200, 110, 1240, 1221, 2542, 2329, 1089],\n", - " 582: [923, 1233, 4973, 2858, 1213, 924, 4226, 2324, 1242, 17],\n", - " 583: [260, 7153, 5952, 318, 1198, 4993, 1136, 2571, 50, 1196],\n", - " 584: [1721, 318, 3578, 597, 587, 590, 2324, 150, 919, 62],\n", - " 587: [923, 2019, 858, 111, 750, 1213, 904, 912, 1219, 1221],\n", - " 588: [260, 50, 1196, 1234, 2571, 858, 7153, 1233, 904, 1198],\n", - " 596: [36, 1394, 593, 2997, 2019, 4226, 1250, 1222, 25, 1242],\n", - " 602: [318, 912, 1233, 1148, 904, 1193, 4226, 2019, 50, 1234],\n", - " 618: [912, 1233, 1193, 4226, 1247, 1148, 2997, 904, 2019, 1288],\n", - " 624: [110, 260, 858, 1210, 1148, 1252, 1288, 4995, 5952, 7153],\n", - " 627: [260, 7153, 1196, 5952, 1136, 1198, 1221, 750, 1234, 1210],\n", - " 635: [260, 858, 1148, 912, 919, 1207, 1247, 1193, 50, 904],\n", - " 639: [260, 858, 111, 923, 1196, 904, 1213, 750, 4973, 1221],\n", - " 640: [260, 50, 527, 1234, 1233, 1148, 593, 904, 1136, 2329],\n", - " 642: [912, 1233, 904, 527, 4226, 1207, 1198, 1250, 750, 908],\n", - " 649: [527, 318, 2324, 3578, 597, 919, 593, 1233, 3147, 2028],\n", - " 652: [2324, 919, 318, 1242, 1721, 597, 1584, 1247, 1207, 1230],\n", - " 662: [923, 924, 1219, 2997, 4973, 4226, 1252, 1206, 908, 1208],\n", - " 671: [25, 904, 4226, 17, 4034, 1207, 1148, 509, 4973, 3996],\n", - " 675: [858, 912, 904, 1233, 4973, 923, 1213, 1193, 1207, 1247],\n", - " 684: [318, 527, 2324, 1234, 1233, 50, 593, 260, 858, 3578],\n", - " 703: [318, 527, 912, 1233, 1234, 1148, 593, 904, 50, 1207],\n", - " 712: [1233, 593, 50, 2858, 912, 1148, 2028, 2959, 4226, 1193],\n", - " 726: [1252, 111, 608, 912, 923, 1219, 1193, 904, 4226, 2858],\n", - " 727: [2959, 2858, 1233, 912, 2028, 2324, 4973, 1193, 4226, 3578],\n", - " 744: [527, 1233, 50, 912, 1148, 1234, 2324, 4226, 904, 2858],\n", - " 746: [2959, 50, 1089, 1221, 4973, 4226, 2571, 750, 1206, 1136],\n", - " 757: [858, 1148, 58, 527, 593, 912, 919, 1207, 1230, 1247],\n", - " 761: [260, 1148, 3578, 527, 1240, 1234, 3147, 1196, 1917, 1704],\n", - " 765: [318, 50, 527, 1233, 1148, 1198, 7153, 2959, 4226, 3578],\n", - " 766: [104, 780, 2000, 1035, 3578, 1917, 590, 1380, 2324, 733],\n", - " 771: [1917, 3578, 104, 165, 4993, 1527, 7153, 316, 5952, 2617],\n", - " 776: [318, 527, 1148, 912, 4226, 1193, 1136, 4973, 2019, 608],\n", - " 797: [260, 1197, 1198, 5952, 7153, 4993, 1036, 1234, 2716, 1136],\n", - " 812: [919, 2324, 1242, 2396, 1207, 1233, 1247, 1148, 3147, 904],\n", - " 815: [318, 527, 919, 2324, 1242, 1234, 1035, 912, 1233, 1148],\n", - " 818: [2858, 296, 1233, 858, 1193, 4973, 4226, 1247, 924, 2959],\n", - " 821: [1035, 587, 2324, 919, 500, 377, 1242, 527, 318, 920],\n", - " 822: [858, 912, 904, 1213, 923, 4973, 1207, 1233, 1250, 1234],\n", - " 831: [110, 590, 58, 527, 593, 1230, 2028, 3578, 50, 1035],\n", - " 834: [912, 858, 1193, 1233, 904, 2019, 923, 1247, 1213, 111],\n", - " 837: [923, 2019, 858, 1219, 750, 1213, 1221, 924, 1199, 912],\n", - " 839: [608, 111, 2019, 2858, 858, 750, 296, 1193, 1221, 1219],\n", - " 840: [904, 4226, 1148, 1233, 2858, 4973, 36, 2997, 25, 4034],\n", - " 851: [318, 527, 593, 1233, 50, 2858, 2028, 2324, 2959, 4226],\n", - " 855: [2959, 2858, 527, 1233, 4973, 4226, 912, 1193, 858, 904],\n", - " 857: [318, 260, 1198, 527, 1148, 1234, 150, 1704, 780, 1197],\n", - " 868: [296, 608, 50, 1221, 858, 750, 4973, 2959, 1213, 4226],\n", - " 874: [318, 527, 1233, 50, 1234, 1148, 912, 904, 4226, 858],\n", - " 904: [912, 858, 923, 111, 2858, 1219, 2019, 1252, 1193, 904],\n", - " 905: [919, 1028, 1242, 150, 2324, 1584, 2396, 500, 497, 339],\n", - " 906: [750, 2019, 318, 541, 904, 111, 908, 1233, 7153, 1199],\n", - " 924: [1148, 527, 912, 919, 497, 3147, 457, 1207, 1234, 2762],\n", - " 925: [608, 2858, 1199, 541, 2997, 50, 4226, 1089, 2019, 1206],\n", - " 927: [318, 3578, 110, 527, 2324, 590, 260, 1234, 1704, 2571],\n", - " 940: [858, 912, 1193, 1233, 318, 4226, 904, 608, 593, 2019],\n", - " 948: [1233, 1234, 912, 4973, 904, 1193, 260, 1207, 1247, 1213],\n", - " 953: [1148, 5952, 7153, 1197, 1198, 3578, 1234, 1917, 4306, 1036],\n", - " 966: [750, 1221, 111, 778, 608, 235, 2019, 50, 47, 908],\n", - " 967: [608, 1199, 1136, 541, 1089, 50, 4226, 1206, 1214, 2019],\n", - " 979: [318, 50, 1233, 4226, 912, 904, 858, 1193, 1148, 2858],\n", - " 980: [4973, 1221, 318, 1206, 1199, 47, 924, 2571, 2329, 111],\n", - " 983: [527, 593, 1230, 1233, 3578, 296, 58, 2028, 50, 4973],\n", - " 984: [3578, 780, 590, 1721, 1917, 527, 589, 733, 1036, 1101],\n", - " 991: [858, 923, 25, 2858, 1219, 111, 1394, 924, 296, 1252],\n", - " 995: [2324, 858, 912, 593, 1247, 1233, 527, 4973, 2858, 1035],\n", - " 1009: [5952, 4993, 1036, 1198, 260, 1527, 3793, 589, 1197, 1291],\n", - " 1011: [858, 2858, 4973, 1247, 1233, 923, 318, 1230, 904, 1213],\n", - " 1014: [912, 923, 36, 1193, 1219, 17, 1230, 1250, 1394, 1242],\n", - " 1021: [912, 25, 1219, 111, 1252, 1394, 1247, 924, 2019, 1193],\n", - " 1030: [318, 1148, 260, 527, 1234, 1233, 904, 50, 4226, 1207],\n", - " 1033: [2571, 7153, 5952, 4993, 1036, 1148, 3578, 293, 1234, 1214],\n", - " 1039: [1196, 750, 1221, 5952, 7153, 2019, 111, 4973, 904, 908],\n", - " 1040: [1721, 539, 587, 377, 11, 919, 457, 339, 2396, 62],\n", - " 1053: [318, 7153, 4993, 527, 50, 5952, 2000, 1704, 590, 2324],\n", - " 42: [912, 318, 858, 1233, 1247, 1193, 2858, 593, 904, 4973],\n", - " 73: [7153, 5952, 4993, 1234, 1197, 1210, 1136, 527, 4226, 4011],\n", - " 82: [318, 527, 3578, 2324, 1035, 260, 919, 356, 1234, 1242],\n", - " 159: [318, 1242, 260, 1148, 1234, 1207, 912, 1250, 904, 2324],\n", - " 161: [1148, 2019, 750, 1079, 1221, 235, 1199, 1213, 1266, 1234],\n", - " 192: [904, 260, 318, 908, 1233, 1199, 912, 5952, 1208, 1196],\n", - " 216: [527, 1148, 1234, 3578, 150, 3147, 1704, 2000, 457, 1233],\n", - " 219: [1035, 2324, 1242, 858, 1584, 1207, 318, 1230, 1250, 1233],\n", - " 290: [318, 260, 1234, 527, 1233, 1148, 904, 858, 1207, 2324],\n", - " 379: [318, 912, 1233, 1234, 858, 904, 527, 1148, 1207, 260],\n", - " 389: [1136, 50, 541, 296, 608, 1199, 260, 1214, 1089, 1200],\n", - " 400: [912, 1233, 318, 1193, 858, 904, 4226, 2019, 1247, 4973],\n", - " 428: [356, 527, 593, 3578, 1233, 318, 2324, 2028, 50, 1234],\n", - " 462: [527, 1233, 858, 2858, 2324, 4973, 1247, 904, 1234, 1207],\n", - " 507: [318, 1148, 527, 912, 1233, 1234, 1207, 904, 919, 260],\n", - " 600: [7153, 5952, 2571, 260, 4993, 1196, 1198, 1036, 318, 50],\n", - " 721: [1721, 1035, 527, 919, 2324, 356, 3578, 597, 150, 590],\n", - " 793: [318, 2959, 50, 1136, 1198, 1240, 541, 1200, 47, 293],\n", - " 912: [318, 527, 260, 50, 1234, 1148, 1198, 1233, 2571, 3578],\n", - " 932: [318, 912, 527, 1233, 858, 1207, 904, 1234, 2324, 1247],\n", - " 949: [2324, 1234, 904, 1242, 1250, 1233, 1207, 593, 923, 1193],\n", - " 1025: [1148, 904, 1234, 527, 1193, 497, 17, 1242, 150, 4226],\n", - " 46: [318, 2959, 2571, 50, 527, 260, 3578, 1240, 593, 296],\n", - " 74: [318, 260, 527, 3578, 1198, 2571, 1036, 7153, 1234, 4993],\n", - " 342: [260, 1148, 5952, 1198, 2571, 50, 1234, 1036, 1136, 4993],\n", - " 508: [608, 2858, 296, 2019, 50, 4226, 750, 541, 1221, 1136],\n", - " 580: [780, 2000, 260, 1917, 104, 2001, 1028, 1210, 1198, 1270],\n", - " 774: [260, 1210, 1196, 3578, 110, 2571, 1234, 527, 1198, 4993],\n", - " 783: [1148, 1197, 904, 1234, 1079, 2019, 1207, 1233, 4226, 21],\n", - " 1002: [2000, 1917, 3578, 356, 1721, 590, 1380, 500, 1036, 2001],\n", - " 1023: [318, 1234, 1210, 1197, 1148, 1036, 1291, 1242, 904, 1704],\n", - " 1048: [1199, 608, 541, 750, 1221, 1089, 1136, 111, 2019, 1080],\n", - " 23: [858, 318, 912, 1233, 904, 1193, 4973, 4226, 1207, 1213],\n", - " 96: [318, 2959, 356, 6874, 2692, 4306, 597, 150, 58, 1784],\n", - " 124: [2959, 1240, 318, 50, 1214, 6874, 527, 1200, 1148, 589],\n", - " 136: [4973, 260, 50, 1233, 750, 1196, 1221, 1250, 4226, 2858],\n", - " 148: [858, 1252, 111, 527, 593, 912, 923, 1207, 1219, 1221],\n", - " 189: [318, 527, 1234, 1148, 1233, 50, 3578, 2324, 912, 1207],\n", - " 213: [912, 919, 2324, 1035, 597, 1247, 1242, 1584, 1230, 497],\n", - " 243: [1199, 296, 1206, 111, 1089, 541, 924, 2019, 4226, 750],\n", - " 323: [318, 1148, 1233, 904, 1234, 919, 4226, 497, 3147, 1242],\n", - " 352: [919, 912, 2324, 1035, 318, 1242, 527, 1207, 150, 497],\n", - " 429: [1136, 2019, 750, 541, 4226, 1221, 1199, 2858, 5952, 1148],\n", - " 625: [1035, 919, 2324, 318, 527, 912, 1207, 1234, 1584, 1247],\n", - " 808: [318, 3578, 2324, 527, 1035, 356, 919, 1234, 110, 260],\n", - " 843: [608, 2858, 912, 4226, 1233, 2997, 296, 923, 4973, 593],\n", - " 847: [318, 527, 3578, 2324, 356, 1721, 919, 150, 3147, 597],\n", - " 963: [318, 527, 260, 1148, 1198, 1234, 3578, 1036, 150, 3147],\n", - " 975: [2959, 2858, 318, 1136, 541, 1199, 4226, 1221, 1089, 2571],\n", - " 998: [2858, 296, 1233, 593, 1193, 318, 4226, 858, 924, 4973],\n", - " 75: [2959, 2571, 50, 318, 7153, 1136, 1240, 5952, 47, 541],\n", - " 427: [912, 1233, 904, 1193, 4226, 4973, 1148, 1207, 1213, 2858],\n", - " 466: [318, 260, 50, 2571, 7153, 527, 1196, 1234, 2959, 1198],\n", - " 801: [318, 50, 858, 2858, 1221, 1213, 750, 904, 1233, 908],\n", - " 848: [527, 593, 50, 1233, 318, 2324, 2959, 3578, 1234, 912],\n", - " 888: [2858, 296, 608, 318, 912, 50, 858, 1233, 4973, 4226],\n", - " 191: [318, 912, 858, 1233, 2858, 593, 1193, 4973, 904, 527],\n", - " 227: [318, 2858, 50, 527, 912, 593, 608, 4226, 1193, 296],\n", - " 245: [318, 1233, 912, 527, 50, 904, 1234, 1193, 1148, 593],\n", - " 380: [318, 527, 150, 919, 2324, 3147, 1148, 1234, 457, 1233],\n", - " 408: [2858, 296, 2959, 608, 318, 593, 912, 1233, 50, 2997],\n", - " 668: [2858, 608, 111, 1221, 858, 2019, 4973, 50, 2959, 1199],\n", - " 747: [858, 260, 1213, 904, 318, 923, 1234, 912, 750, 4973],\n", - " 754: [318, 260, 527, 50, 1196, 1198, 1148, 1233, 904, 858],\n", - " 11: [919, 318, 1242, 527, 1035, 2324, 1234, 1148, 150, 1207],\n", - " 16: [318, 7153, 5952, 50, 2571, 4993, 1198, 1136, 1148, 1234],\n", - " 81: [318, 50, 260, 1196, 4973, 858, 1221, 1213, 1234, 2858],\n", - " 86: [527, 318, 150, 1148, 2324, 3147, 3578, 1234, 260, 1704],\n", - " 97: [527, 318, 2324, 3578, 593, 1233, 1234, 50, 919, 912],\n", - " 151: [1233, 1148, 904, 858, 1193, 4226, 1234, 1207, 1247, 2019],\n", - " 235: [1136, 608, 1148, 2019, 1233, 912, 1199, 1221, 5952, 527],\n", - " 251: [111, 1199, 1206, 4226, 1136, 2858, 2997, 750, 2019, 1089],\n", - " 258: [527, 318, 593, 50, 1233, 2959, 3578, 1148, 912, 2858],\n", - " 278: [318, 1233, 50, 1234, 912, 593, 858, 1148, 904, 1193],\n", - " 388: [318, 260, 1148, 1136, 7153, 5952, 4993, 1233, 1234, 527],\n", - " 551: [318, 3578, 356, 2324, 1721, 1035, 597, 919, 587, 539],\n", - " 606: [912, 318, 1148, 1233, 527, 1193, 904, 1207, 4226, 1247],\n", - " 614: [318, 527, 912, 1233, 593, 2858, 50, 1193, 1247, 4226],\n", - " 681: [858, 912, 923, 2019, 111, 1219, 1252, 904, 1193, 608],\n", - " 686: [1148, 912, 4226, 1193, 1199, 3996, 318, 1079, 5952, 7153],\n", - " 704: [1148, 7153, 527, 1197, 1198, 1234, 1036, 2000, 318, 1291],\n", - " 711: [2858, 858, 318, 4973, 50, 608, 1233, 912, 4226, 1193],\n", - " 718: [318, 50, 2858, 296, 1233, 4226, 2959, 608, 527, 4973],\n", - " 873: [912, 318, 527, 858, 1247, 1207, 2324, 904, 1193, 1234],\n", - " 962: [296, 2959, 318, 50, 608, 593, 1233, 4226, 4973, 1221],\n", - " 985: [608, 912, 2858, 4226, 1233, 1193, 318, 2019, 1148, 1136],\n", - " 993: [260, 527, 593, 2571, 50, 1234, 2959, 1233, 318, 1148],\n", - " 58: [1148, 1207, 858, 1250, 1028, 1035, 1193, 1213, 1196, 2019],\n", - " 112: [2858, 4973, 4226, 2997, 36, 1617, 1148, 4034, 2324, 3996],\n", - " 357: [318, 50, 260, 750, 4226, 858, 2019, 1221, 904, 1233],\n", - " 367: [1233, 1207, 4973, 1213, 2019, 1234, 4226, 1148, 2858, 593],\n", - " 548: [527, 1234, 1233, 1148, 912, 50, 904, 858, 1207, 2324],\n", - " 791: [318, 50, 858, 1233, 260, 904, 1234, 527, 4973, 1193],\n", - " 909: [260, 1196, 318, 1234, 858, 1213, 904, 1250, 1210, 1207],\n", - " 1041: [2502, 1221, 541, 293, 1213, 1234, 750, 1240, 1136, 1233],\n", - " 13: [318, 260, 110, 2324, 858, 527, 4973, 1213, 1233, 2959],\n", - " 83: [1148, 318, 5952, 7153, 904, 1233, 4226, 4993, 2019, 527],\n", - " 869: [7153, 2571, 5952, 260, 4993, 1136, 1196, 1198, 541, 1221],\n", - " 246: [318, 260, 1234, 904, 1213, 2324, 1196, 1207, 1250, 4973],\n", - " 415: [858, 318, 2858, 4973, 2959, 593, 50, 1213, 1233, 2324],\n", - " 477: [1233, 904, 1148, 1234, 4973, 750, 1207, 2858, 908, 1250],\n", - " 569: [260, 858, 527, 912, 1207, 1196, 904, 1234, 1213, 1233],\n", - " 694: [318, 2324, 527, 858, 1233, 1247, 1230, 1242, 904, 4973],\n", - " 729: [318, 527, 3578, 1148, 2324, 1234, 1233, 3147, 919, 260],\n", - " 741: [527, 3578, 260, 1240, 1036, 1198, 2959, 1234, 356, 2028],\n", - " 965: [2019, 2858, 912, 1199, 4226, 750, 1193, 1136, 541, 923],\n", - " 17: [527, 912, 919, 1207, 1247, 904, 1234, 1233, 318, 1242],\n", - " 37: [2858, 1206, 1199, 608, 541, 2502, 1221, 1080, 750, 4973],\n", - " 40: [2959, 1136, 541, 1221, 7153, 4226, 260, 750, 5952, 1199],\n", - " 114: [7153, 5952, 318, 4993, 2571, 1198, 50, 1197, 1213, 1291],\n", - " 137: [7153, 5952, 380, 1527, 260, 1148, 1136, 1356, 786, 1214],\n", - " 153: [923, 904, 912, 1213, 2019, 1193, 1207, 318, 1250, 1233],\n", - " 211: [318, 4226, 2019, 1193, 1148, 750, 4973, 1213, 1136, 1234],\n", - " 286: [318, 1136, 7153, 527, 5952, 4993, 296, 1148, 6874, 47],\n", - " 330: [318, 3578, 50, 593, 2028, 356, 1234, 1233, 1036, 2324],\n", - " 336: [318, 7153, 5952, 50, 1136, 4993, 2959, 1198, 1148, 527],\n", - " 372: [296, 50, 1221, 2858, 1089, 750, 318, 4973, 1213, 541],\n", - " 376: [318, 50, 1136, 2959, 7153, 5952, 4993, 4226, 1198, 1148],\n", - " 412: [912, 1193, 904, 2019, 1247, 608, 1252, 111, 4226, 4973],\n", - " 447: [2019, 1199, 2858, 541, 4226, 750, 1221, 111, 1193, 904],\n", - " 467: [260, 1198, 1148, 2571, 457, 1234, 7153, 356, 2762, 4993],\n", - " 490: [260, 1148, 1197, 1234, 2000, 1036, 4993, 7153, 5952, 919],\n", - " 518: [7153, 50, 1198, 5952, 1136, 4993, 1148, 1036, 2959, 3578],\n", - " 608: [2858, 1089, 50, 608, 6874, 2571, 318, 593, 1199, 541],\n", - " 619: [318, 527, 1148, 2571, 50, 1233, 1136, 1036, 3578, 1234],\n", - " 644: [356, 364, 480, 539, 588, 590, 733, 780, 802, 1148],\n", - " 667: [527, 50, 1233, 593, 1234, 2571, 1148, 3578, 2959, 4226],\n", - " 698: [858, 4973, 608, 1233, 1221, 912, 1213, 904, 750, 2019],\n", - " 709: [5952, 1148, 1136, 7153, 318, 50, 4993, 4226, 2019, 750],\n", - " 728: [318, 2959, 2858, 50, 608, 593, 1233, 4226, 527, 4973],\n", - " 733: [318, 527, 2324, 1234, 356, 50, 110, 260, 1233, 593],\n", - " 777: [912, 923, 858, 111, 2019, 1219, 1252, 1193, 904, 25],\n", - " 813: [2019, 1148, 904, 750, 4226, 912, 318, 1193, 1213, 923],\n", - " 832: [318, 858, 50, 1233, 4973, 2858, 912, 904, 593, 296],\n", - " 893: [50, 2959, 527, 2858, 1233, 296, 593, 4226, 1136, 260],\n", - " 901: [260, 1148, 5952, 7153, 527, 593, 912, 919, 1207, 1221],\n", - " 937: [2571, 260, 1198, 4993, 1136, 1148, 3578, 1200, 1196, 1234],\n", - " 947: [2959, 296, 110, 318, 50, 47, 2502, 3578, 2329, 2542],\n", - " 362: [912, 1148, 1233, 1193, 2019, 608, 904, 2396, 2858, 1136],\n", - " 375: [318, 527, 50, 1233, 260, 593, 2571, 2959, 4226, 4973],\n", - " 599: [260, 858, 1148, 527, 593, 1207, 1247, 1193, 50, 904],\n", - " 632: [260, 5952, 7153, 4993, 1198, 1136, 318, 1148, 1197, 1036],\n", - " 779: [923, 1213, 111, 4973, 750, 296, 1219, 1208, 1221, 904],\n", - " 1022: [912, 858, 318, 1233, 1247, 2858, 1193, 904, 4973, 593],\n", - " 1034: [318, 527, 260, 50, 2571, 1234, 110, 2324, 356, 1233],\n", - " 2: [3578, 2571, 2959, 318, 1196, 7153, 50, 1240, 4993, 356],\n", - " 3: [318, 260, 50, 1234, 527, 1233, 904, 858, 1198, 4226],\n", - " 104: [1210, 1148, 5952, 6377, 7153, 150, 527, 1304, 3578, 50],\n", - " 105: [318, 858, 1234, 904, 1213, 1207, 1148, 1250, 1233, 912],\n", - " 184: [1196, 260, 318, 2571, 7153, 5952, 1213, 47, 1221, 4993],\n", - " 218: [2019, 858, 912, 923, 750, 608, 904, 1193, 4226, 1221],\n", - " 250: [527, 2324, 1233, 912, 593, 858, 1234, 50, 1247, 1193],\n", - " 313: [318, 527, 2959, 50, 593, 1233, 2858, 296, 2571, 1234],\n", - " 377: [1035, 919, 912, 1230, 1584, 1207, 1233, 1234, 593, 1250],\n", - " 413: [2019, 5952, 750, 608, 1148, 7153, 4226, 1221, 1079, 235],\n", - " 576: [858, 923, 111, 912, 2019, 904, 750, 4973, 1193, 1219],\n", - " 586: [912, 608, 1233, 1193, 1247, 858, 593, 318, 924, 4226],\n", - " 595: [1210, 5952, 7153, 4993, 344, 104, 6539, 3114, 223, 2791],\n", - " 610: [1035, 2324, 1028, 1242, 1584, 920, 1207, 318, 912, 1234],\n", - " 613: [318, 527, 1233, 2324, 593, 50, 912, 858, 904, 1207],\n", - " 637: [318, 2959, 50, 296, 260, 1196, 2571, 4973, 858, 527],\n", - " 663: [608, 2858, 318, 4226, 912, 50, 2019, 1233, 1193, 296],\n", - " 740: [3578, 527, 356, 1036, 1234, 2324, 590, 1704, 50, 780],\n", - " 787: [356, 3578, 318, 590, 1721, 919, 1035, 597, 2028, 150],\n", - " 804: [318, 858, 904, 1233, 4973, 1234, 912, 1213, 50, 260],\n", - " 805: [858, 1148, 111, 541, 608, 912, 1221, 1193, 50, 904],\n", - " 866: [2019, 923, 541, 2858, 4226, 4973, 908, 904, 1193, 5952],\n", - " 883: [318, 50, 527, 1233, 593, 2858, 2959, 1234, 858, 4973],\n", - " 941: [923, 111, 912, 2019, 1219, 858, 1252, 25, 608, 1193],\n", - " 1007: [318, 527, 1148, 912, 1233, 4226, 50, 593, 2858, 1193],\n", - " 6: [1148, 527, 593, 912, 1207, 50, 904, 1234, 4226, 1136],\n", - " 7: [858, 1247, 111, 25, 1193, 2858, 1394, 2019, 36, 924],\n", - " 14: [318, 1148, 904, 2019, 858, 750, 50, 4226, 5952, 1234],\n", - " 24: [318, 527, 919, 1148, 912, 150, 2396, 3147, 1234, 1207],\n", - " 57: [527, 1198, 3578, 1234, 318, 1036, 2324, 356, 1148, 110],\n", - " 60: [912, 1250, 1207, 904, 1242, 111, 919, 4973, 2324, 2019],\n", - " 64: [318, 1148, 1234, 527, 1198, 904, 1233, 912, 1207, 858],\n", - " 84: [318, 527, 1148, 1233, 1234, 1198, 50, 912, 3147, 2762],\n", - " 90: [318, 527, 150, 3578, 919, 3147, 2324, 457, 1148, 356],\n", - " 98: [858, 1252, 111, 912, 923, 1219, 1221, 1247, 1193, 904],\n", - " 113: [318, 858, 1233, 912, 527, 593, 4973, 50, 2324, 2858],\n", - " 120: [1035, 110, 356, 3578, 590, 2324, 500, 1380, 318, 1721],\n", - " 123: [356, 110, 590, 3578, 318, 2324, 1035, 1704, 1234, 50],\n", - " 157: [356, 110, 858, 1210, 1148, 1246, 1288, 5952, 6377, 7153],\n", - " 194: [597, 527, 919, 2396, 1035, 1721, 318, 2324, 587, 539],\n", - " 200: [356, 858, 1148, 527, 593, 912, 919, 1207, 1247, 1193],\n", - " 204: [858, 912, 904, 2019, 923, 1193, 318, 1233, 1213, 1148],\n", - " 205: [2858, 296, 2019, 4973, 923, 1213, 750, 924, 4226, 904],\n", - " 225: [318, 1148, 912, 1233, 527, 1234, 1193, 4226, 1207, 1198],\n", - " 229: [2959, 318, 296, 50, 2858, 1136, 2571, 4226, 541, 1233],\n", - " 237: [1035, 1028, 344, 1242, 919, 2324, 104, 858, 920, 1250],\n", - " 242: [1148, 527, 919, 1234, 1233, 318, 2324, 912, 1207, 1242],\n", - " 252: [858, 2019, 4226, 318, 923, 1247, 4973, 1148, 111, 1252],\n", - " 266: [5952, 7153, 1221, 1196, 50, 1136, 4993, 750, 318, 541],\n", - " 270: [912, 1247, 2858, 4973, 1233, 1193, 923, 2324, 1230, 318],\n", - " 282: [318, 527, 1148, 1233, 912, 50, 3147, 593, 1234, 1198],\n", - " 297: [2571, 2959, 7153, 5952, 50, 1136, 318, 4993, 296, 541],\n", - " 309: [318, 3578, 527, 1240, 589, 2571, 1036, 356, 2028, 1198],\n", - " 316: [318, 3578, 527, 356, 2324, 919, 150, 1234, 590, 2000],\n", - " 327: [1221, 904, 1213, 750, 318, 2019, 4973, 50, 111, 923],\n", - " 356: [318, 912, 2324, 858, 593, 1233, 527, 1247, 2858, 1230],\n", - " 393: [1035, 318, 2324, 110, 1210, 1242, 3578, 1234, 919, 1196],\n", - " 394: [527, 593, 1193, 2571, 904, 1234, 4226, 1233, 4973, 2324],\n", - " 395: [2324, 527, 3578, 1035, 356, 110, 919, 1234, 1704, 1242],\n", - " 399: [1210, 1196, 318, 110, 2571, 3578, 7153, 4993, 5952, 1198],\n", - " 401: [912, 1148, 2019, 904, 1193, 1233, 923, 1207, 1252, 4226],\n", - " 402: [318, 356, 110, 2324, 590, 527, 1035, 1704, 780, 733],\n", - " 405: [318, 1240, 1036, 2571, 1198, 527, 589, 1148, 3578, 7153],\n", - " 417: [318, 50, 1136, 4226, 1148, 2019, 750, 1233, 904, 1221],\n", - " 422: [318, 527, 1234, 1148, 1233, 2324, 50, 1198, 1207, 3578],\n", - " 437: [5952, 4226, 1206, 7153, 858, 923, 4973, 1193, 1201, 1233],\n", - " 455: [318, 2324, 1035, 919, 1242, 527, 858, 1234, 912, 1233],\n", - " 461: [912, 318, 858, 1233, 904, 1193, 1207, 1247, 4973, 1234],\n", - " 473: [318, 912, 1233, 858, 904, 4226, 1193, 1148, 2019, 50],\n", - " 484: [318, 527, 1234, 2324, 1233, 1148, 50, 1198, 904, 1207],\n", - " 499: [2959, 318, 50, 2571, 7153, 1136, 2858, 1221, 541, 5952],\n", - " 526: [858, 912, 1213, 904, 318, 4973, 923, 1233, 1193, 1207],\n", - " 537: [912, 858, 904, 318, 1233, 1193, 1148, 2019, 1207, 4226],\n", - " 542: [318, 4226, 750, 2019, 1213, 4973, 2858, 1234, 608, 541],\n", - " 557: [1148, 318, 1198, 527, 150, 1036, 3147, 457, 2762, 1234],\n", - " 563: [111, 296, 750, 1213, 1221, 858, 2019, 923, 2858, 4973],\n", - " 570: [858, 1148, 5952, 7153, 912, 1221, 1193, 1198, 50, 904],\n", - " 575: [1148, 527, 593, 912, 1207, 1247, 1193, 1198, 50, 904],\n", - " 594: [2000, 150, 1028, 1721, 457, 919, 1380, 786, 2797, 500],\n", - " 607: [2959, 2571, 1196, 1210, 110, 7153, 3578, 296, 4993, 47],\n", - " 631: [858, 912, 2858, 4973, 296, 923, 1233, 1230, 111, 1394],\n", - " 651: [318, 4226, 904, 50, 593, 4973, 1288, 1234, 2997, 924],\n", - " 664: [318, 858, 912, 904, 1233, 1148, 1234, 1207, 4226, 527],\n", - " 685: [5952, 7153, 1136, 4993, 2571, 1198, 1196, 1200, 541, 50],\n", - " 690: [318, 527, 1233, 2324, 593, 50, 1234, 912, 858, 904],\n", - " 696: [318, 527, 2571, 1240, 1148, 1198, 1036, 50, 3578, 1136],\n", - " 724: [912, 2858, 318, 1233, 1193, 4226, 858, 2019, 593, 904],\n", - " 738: [318, 3578, 527, 356, 1036, 1198, 2571, 1234, 110, 2324],\n", - " 762: [912, 2019, 1148, 1193, 4226, 904, 923, 1252, 111, 858],\n", - " 763: [318, 912, 919, 1233, 2324, 1234, 1207, 1242, 858, 904],\n", - " 770: [912, 2324, 858, 318, 1247, 1035, 1230, 1233, 919, 593],\n", - " 796: [318, 1136, 50, 1148, 5952, 4226, 750, 7153, 2019, 904],\n", - " 800: [318, 527, 2571, 50, 1148, 1198, 1136, 1240, 7153, 1233],\n", - " 829: [1148, 1288, 7153, 527, 541, 593, 608, 912, 1207, 1221],\n", - " 836: [912, 1233, 318, 1193, 527, 1148, 904, 858, 4226, 2858],\n", - " 882: [318, 1234, 2324, 527, 1035, 1242, 3578, 919, 1196, 858],\n", - " 900: [2019, 750, 111, 1221, 1213, 1136, 904, 4226, 923, 541],\n", - " 903: [318, 527, 1148, 150, 3147, 457, 1198, 1234, 2762, 919],\n", - " 914: [318, 2324, 1035, 527, 1234, 858, 1242, 919, 110, 3578],\n", - " 918: [3578, 318, 1035, 356, 110, 590, 2324, 2000, 527, 919],\n", - " 920: [318, 50, 1233, 904, 4226, 4973, 1193, 1213, 750, 1148],\n", - " 934: [318, 2571, 1198, 7153, 1036, 527, 4993, 5952, 3578, 1240],\n", - " 945: [912, 318, 527, 2324, 1233, 1247, 919, 2396, 593, 1207],\n", - " 950: [858, 318, 912, 1213, 4973, 50, 750, 4226, 1221, 1234],\n", - " 952: [318, 527, 1234, 2324, 3578, 1198, 1148, 919, 1242, 1704],\n", - " 982: [318, 1148, 527, 50, 1233, 4226, 912, 1136, 1193, 904],\n", - " 989: [1148, 923, 1221, 4226, 750, 318, 2019, 4973, 1207, 111],\n", - " 1016: [858, 750, 1221, 4973, 1208, 1219, 1196, 2019, 1206, 908],\n", - " 1019: [527, 318, 2324, 919, 1234, 1035, 1242, 1704, 1148, 3578],\n", - " 1044: [356, 364, 377, 539, 588, 589, 110, 590, 858, 1148],\n", - " 1051: [318, 527, 912, 2324, 593, 1233, 1247, 858, 919, 1230],\n", - " 174: [2959, 2858, 58, 597, 62, 2324, 912, 1233, 1230, 1784],\n", - " 676: [318, 527, 919, 2324, 912, 2396, 597, 1721, 1242, 1233],\n", - " 764: [50, 1233, 260, 1234, 858, 2324, 4973, 904, 3578, 2571],\n", - " 1052: [260, 318, 1196, 7153, 1198, 4993, 5952, 1210, 1234, 1036],\n", - " 5: [296, 750, 2019, 1213, 2858, 4973, 50, 1089, 4226, 1208],\n", - " 27: [318, 260, 527, 1234, 3578, 50, 1196, 2324, 1198, 110],\n", - " 33: [912, 858, 904, 2019, 318, 1193, 1233, 1148, 4226, 923],\n", - " 134: [260, 858, 1148, 1252, 527, 593, 912, 919, 923, 1207],\n", - " 142: [2019, 858, 2858, 4226, 318, 750, 912, 904, 50, 1193],\n", - " 156: [2396, 919, 912, 497, 17, 11, 1721, 597, 440, 1028],\n", - " 167: [2858, 296, 2959, 1221, 750, 111, 1213, 50, 1206, 541],\n", - " 177: [858, 912, 318, 1233, 904, 1193, 4973, 1247, 1207, 2858],\n", - " 224: [356, 110, 260, 590, 527, 919, 3578, 1234, 1035, 1704],\n", - " 269: [318, 527, 1233, 1234, 912, 1148, 1207, 260, 2324, 904],\n", - " 312: [318, 858, 1233, 2858, 593, 50, 527, 4973, 1193, 4226],\n", - " 360: [912, 1148, 2019, 1193, 904, 2396, 1233, 1252, 1207, 1247],\n", - " 385: [912, 318, 1233, 1193, 527, 1247, 858, 904, 1207, 1148],\n", - " 411: [318, 527, 1148, 260, 50, 1198, 2571, 1233, 1234, 1136],\n", - " 464: [858, 527, 593, 912, 50, 1234, 1233, 318, 2324, 904],\n", - " 568: [1721, 597, 356, 318, 587, 1035, 3578, 527, 500, 150],\n", - " 612: [318, 527, 3578, 50, 260, 1234, 1233, 2571, 2324, 593],\n", - " 630: [3578, 356, 1721, 318, 590, 2000, 527, 587, 500, 597],\n", - " 706: [260, 1210, 5952, 7153, 1196, 2571, 4993, 1198, 1197, 1136],\n", - " 737: [2019, 750, 1136, 1221, 4226, 541, 608, 111, 5952, 260],\n", - " 749: [318, 260, 527, 1234, 50, 1233, 858, 904, 1148, 2324],\n", - " 756: [912, 858, 923, 904, 1193, 1252, 1247, 1219, 2019, 111],\n", - " 811: [318, 527, 3578, 260, 1198, 1234, 1036, 2571, 1148, 50],\n", - " 853: [260, 1210, 1196, 110, 318, 3578, 2000, 4993, 7153, 1198],\n", - " 884: [527, 318, 2324, 1233, 912, 1234, 593, 919, 1207, 858],\n", - " 917: [318, 527, 1233, 912, 50, 1148, 1234, 904, 593, 1193],\n", - " 951: [318, 527, 2324, 1035, 3578, 919, 356, 1242, 1234, 1704],\n", - " 955: [260, 858, 3578, 50, 1234, 1233, 318, 2324, 904, 1196],\n", - " 997: [858, 1148, 527, 593, 912, 919, 1207, 1247, 1193, 904],\n", - " 1032: [356, 364, 539, 589, 260, 858, 1148, 1246, 1252, 1288],\n", - " 1043: [356, 377, 539, 589, 590, 733, 802, 150, 380, 587],\n", - " 670: [912, 2858, 318, 858, 1233, 593, 1193, 1247, 4973, 296],\n", - " 923: [1148, 527, 593, 912, 919, 1247, 2396, 1233, 318, 2324],\n", - " 931: [1721, 597, 587, 539, 500, 377, 150, 1035, 919, 356],\n", - " 969: [318, 527, 2028, 1240, 2959, 593, 3578, 50, 1233, 1148],\n", - " 12: [318, 260, 527, 1198, 1148, 1234, 1036, 2571, 7153, 50],\n", - " 370: [527, 318, 260, 3578, 1234, 50, 2324, 1233, 1198, 2571],\n", - " 597: [318, 1148, 1233, 527, 1193, 4226, 593, 904, 1247, 1207],\n", - " 195: [923, 904, 912, 260, 1242, 1148, 1028, 1213, 1197, 318],\n", - " 337: [912, 2858, 858, 1193, 296, 4973, 608, 904, 4226, 50],\n", - " 910: [111, 1206, 750, 1221, 608, 923, 4973, 2019, 1219, 1199],\n", - " 63: [318, 593, 296, 2959, 1233, 2324, 50, 4973, 1247, 1230],\n", - " 70: [2858, 608, 4226, 1233, 50, 296, 111, 1213, 593, 1136],\n", - " 99: [2858, 608, 2997, 912, 2019, 1394, 4973, 1219, 1233, 1252],\n", - " 121: [260, 1148, 1234, 1233, 7153, 5952, 4226, 4993, 1036, 2762],\n", - " 130: [912, 924, 1394, 1247, 2959, 1230, 111, 1222, 509, 1219],\n", - " 244: [1233, 318, 2019, 4226, 1207, 923, 4973, 1250, 1213, 908],\n", - " 291: [923, 111, 1213, 1219, 25, 912, 2019, 904, 4973, 750],\n", - " 335: [111, 1213, 1193, 1233, 1207, 1250, 1221, 1208, 2858, 1234],\n", - " 361: [912, 2997, 924, 1193, 4973, 593, 111, 1233, 4226, 1394],\n", - " 470: [7153, 2019, 260, 908, 1233, 1193, 1196, 904, 1288, 4993],\n", - " 497: [296, 2858, 2959, 608, 1221, 50, 750, 541, 1199, 1206],\n", - " 620: [912, 318, 1233, 2858, 1193, 2019, 4226, 904, 608, 50],\n", - " 648: [527, 17, 497, 4226, 1234, 2019, 36, 1250, 3147, 150],\n", - " 666: [1148, 260, 318, 1197, 527, 1234, 1233, 904, 50, 912],\n", - " 710: [50, 260, 2571, 3578, 1234, 1233, 2959, 593, 1148, 2324],\n", - " 794: [260, 904, 1213, 2019, 750, 923, 318, 1196, 1234, 5952],\n", - " 854: [318, 904, 1233, 1193, 1234, 1247, 923, 1250, 4973, 1213],\n", - " 861: [912, 318, 1233, 904, 1247, 1207, 1193, 1148, 527, 1234],\n", - " 819: [318, 527, 912, 2396, 1233, 593, 1148, 3147, 2028, 2324],\n", - " 87: [356, 364, 110, 260, 858, 1148, 1246, 1252, 1288, 4995],\n", - " 317: [858, 904, 2019, 912, 260, 318, 1213, 923, 750, 1148],\n", - " 324: [1136, 1199, 608, 1221, 260, 1200, 50, 2019, 296, 1080],\n", - " 387: [318, 260, 50, 858, 1196, 4973, 1213, 1234, 296, 1233],\n", - " 451: [1136, 541, 608, 1199, 50, 750, 1148, 1221, 260, 318],\n", - " 502: [1148, 912, 919, 1207, 497, 150, 318, 1028, 904, 17],\n", - " 559: [260, 2571, 50, 318, 527, 2959, 3578, 7153, 1198, 4993],\n", - " 973: [912, 858, 923, 904, 1193, 2019, 1233, 1247, 111, 4973],\n", - " 1015: [318, 912, 1233, 1148, 4226, 50, 1193, 858, 2019, 260],\n", - " 1017: [318, 2571, 2959, 50, 3578, 527, 260, 1240, 1036, 1198],\n", - " 85: [858, 923, 111, 912, 1219, 2019, 4973, 1193, 924, 1213],\n", - " 306: [318, 50, 858, 1233, 2858, 904, 4973, 4226, 912, 1193],\n", - " 653: [912, 858, 923, 1247, 1207, 904, 1250, 1242, 1193, 36],\n", - " 371: [318, 50, 260, 858, 1221, 2571, 4973, 2959, 1213, 1233],\n", - " 566: [1721, 1035, 356, 587, 590, 104, 3578, 2324, 500, 110],\n", - " 331: [296, 608, 1089, 1199, 593, 541, 2997, 1206, 1221, 47],\n", - " 665: [318, 1233, 50, 904, 858, 1136, 4973, 593, 1221, 527],\n", - " 872: [858, 318, 912, 904, 1233, 4973, 1213, 1234, 1207, 4226],\n", - " 879: [858, 111, 912, 923, 1207, 1247, 1193, 4226, 2858, 296],\n", - " 486: [318, 527, 1148, 260, 50, 1198, 1233, 1234, 2571, 4226],\n", - " 817: [919, 1028, 1148, 1242, 1234, 1035, 260, 497, 3147, 1198],\n", - " 864: [318, 260, 1234, 1196, 2324, 1242, 1210, 1035, 1198, 858],\n", - " 52: [912, 318, 919, 1207, 1233, 527, 1148, 1247, 858, 1242],\n", - " 9: [5952, 1136, 7153, 2571, 541, 1199, 2959, 50, 4993, 296],\n", - " 117: [1136, 7153, 260, 750, 541, 2019, 1199, 4993, 1221, 4226],\n", - " 220: [318, 50, 2571, 527, 2959, 260, 1136, 1233, 4226, 1148],\n", - " 544: [608, 2858, 1199, 1206, 2997, 541, 111, 1221, 2019, 750],\n", - " 546: [260, 1198, 1148, 1136, 50, 2571, 1196, 1234, 4226, 527],\n", - " 363: [318, 260, 50, 1148, 527, 1233, 1234, 2571, 4226, 1136],\n", - " 445: [318, 260, 858, 904, 1148, 1234, 1233, 912, 1207, 1213],\n", - " 492: [318, 858, 1233, 912, 4973, 50, 593, 527, 904, 2324],\n", - " 534: [750, 50, 296, 1221, 2858, 608, 2019, 318, 1136, 4226],\n", - " 234: [5952, 7153, 1136, 4993, 1198, 1148, 1240, 1200, 260, 1036],\n", - " 430: [318, 50, 527, 2959, 2571, 1233, 593, 2858, 296, 4226],\n", - " 1027: [318, 527, 2324, 1234, 260, 50, 858, 1233, 593, 4973],\n", - " 140: [858, 1247, 1233, 4973, 2324, 296, 924, 904, 1207, 1394],\n", - " 373: [919, 912, 1242, 2324, 1028, 1207, 858, 1247, 1250, 1584],\n", - " 926: [318, 50, 858, 260, 4973, 296, 1213, 1221, 2858, 904],\n", - " 781: [260, 858, 1148, 5952, 541, 608, 912, 923, 1221, 1193],\n", - " 825: [527, 912, 318, 1247, 2858, 858, 1230, 919, 58, 4973],\n", - " 913: [858, 912, 1035, 2324, 1207, 318, 1250, 904, 1234, 1247],\n", - " 453: [318, 527, 912, 2324, 1233, 919, 1148, 1234, 3147, 593],\n", - " 540: [858, 527, 593, 912, 1247, 1193, 50, 904, 1234, 2858],\n", - " 66: [318, 50, 2571, 1221, 260, 4973, 541, 47, 593, 1196],\n", - " 185: [318, 527, 3578, 356, 2324, 590, 1721, 919, 597, 1704],\n", - " 222: [318, 260, 1196, 858, 1234, 50, 1210, 2324, 1213, 4973],\n", - " 498: [858, 318, 4973, 904, 1213, 1233, 912, 50, 2858, 1193],\n", - " 994: [912, 2858, 593, 1233, 1247, 1193, 527, 858, 608, 2396],\n", - " 165: [318, 260, 527, 50, 1234, 1148, 1198, 2571, 1233, 7153],\n", - " 202: [912, 919, 1207, 1234, 1035, 1233, 318, 1242, 2324, 1704],\n", - " 180: [260, 858, 1148, 527, 541, 593, 608, 912, 1207, 1221],\n", - " 261: [318, 1148, 260, 1233, 1234, 527, 904, 50, 1198, 912],\n", - " 435: [318, 50, 1233, 2858, 912, 608, 1193, 904, 1148, 2019],\n", - " 322: [912, 1233, 2858, 318, 1193, 858, 593, 527, 904, 1207],\n", - " 238: [296, 858, 608, 912, 924, 4973, 593, 1193, 2959, 1233],\n", - " 425: [858, 318, 2858, 912, 2019, 904, 4226, 1193, 4973, 750],\n", - " 512: [858, 912, 923, 2019, 904, 1193, 1213, 1233, 4226, 750],\n", - " 725: [1136, 7153, 50, 5952, 318, 296, 541, 4993, 1199, 260],\n", - " 732: [912, 858, 1207, 919, 904, 318, 1242, 1233, 1250, 1247],\n", - " 916: [296, 608, 2858, 1199, 1089, 541, 50, 1136, 1214, 6874],\n", - " 736: [260, 5952, 7153, 1136, 318, 2571, 1148, 50, 4993, 4226],\n", - " 961: [318, 593, 2959, 50, 296, 1233, 912, 4973, 4226, 858],\n", - " 974: [318, 260, 858, 50, 1213, 904, 1196, 1234, 4973, 750],\n", - " 443: [527, 50, 1233, 912, 4226, 1193, 858, 904, 1148, 4973],\n", - " 1012: [318, 527, 1233, 912, 2324, 50, 858, 1234, 4973, 1247],\n", - " 515: [318, 527, 1233, 858, 593, 2324, 2858, 1193, 4973, 904],\n", - " 288: [858, 1148, 527, 912, 1207, 1234, 1233, 318, 2324, 1247],\n", - " 978: [1035, 318, 2324, 3578, 527, 1242, 356, 2000, 1704, 780],\n", - " 28: [318, 260, 2571, 527, 50, 7153, 1198, 4993, 3578, 1234],\n", - " 458: [858, 318, 912, 1233, 904, 4973, 1247, 1207, 1213, 1234],\n", - " 475: [318, 50, 527, 296, 593, 2858, 2571, 1233, 2028, 3578],\n", - " 592: [318, 50, 260, 2571, 527, 2959, 1233, 4226, 296, 2858],\n", - " 598: [318, 260, 50, 1148, 1233, 527, 2571, 1234, 7153, 1136],\n", - " 943: [912, 318, 2858, 608, 1233, 4226, 527, 593, 50, 1148],\n", - " 55: [858, 923, 2019, 912, 904, 111, 1213, 1219, 750, 1252],\n", - " 520: [50, 1233, 912, 527, 904, 1148, 4226, 858, 260, 1193],\n", - " 697: [318, 2959, 3578, 527, 2571, 50, 110, 1240, 356, 2028],\n", - " 849: [260, 1148, 527, 1198, 50, 904, 1234, 1233, 318, 2324],\n", - " 1003: [260, 858, 1148, 5952, 7153, 527, 1196, 1198, 50, 904],\n", - " 705: [2959, 296, 318, 50, 593, 608, 527, 1233, 4226, 4973],\n", - " 231: [260, 1196, 1213, 318, 858, 750, 1221, 5952, 7153, 904],\n", - " 699: [260, 858, 527, 904, 4226, 1233, 1234, 4973, 1193, 1148],\n", - " 448: [318, 912, 1233, 858, 50, 608, 4226, 1193, 296, 4973],\n", - " 750: [318, 858, 912, 1233, 904, 4973, 1193, 50, 4226, 1213],\n", - " 782: [318, 50, 260, 2959, 2571, 296, 527, 7153, 1196, 1233],\n", - " 108: [912, 858, 318, 2324, 1247, 1233, 1207, 593, 4973, 1193],\n", - " 29: [318, 527, 3578, 1036, 356, 1198, 457, 1240, 1148, 150]})" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 学習データに出てこないユーザーとアイテムの組み合わせを準備\n", - "data_test = data_train.build_anti_testset(None)\n", - "predictions = matrix_factorization.test(data_test)\n", - "pred_user2items = get_top_n(predictions, n=10)\n", - "pred_user2items" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "afa174f5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "6150 2 648 2.0 868244699 \n", - "6531 2 733 3.0 868244562 \n", - "6813 2 736 3.0 868244698 \n", - "7113 2 780 3.0 868244698 \n", - "7506 2 786 3.0 868244562 \n", - "7661 2 802 2.0 868244603 \n", - "7779 2 858 2.0 868245645 \n", - "8077 2 1049 3.0 868245920 \n", - "8127 2 1073 3.0 868244562 \n", - "8381 2 1210 4.0 868245644 \n", - "8771 2 1356 3.0 868244603 \n", - "9097 2 1544 3.0 868245920 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "6150 Mission: Impossible (1996) \n", - "6531 Rock, The (1996) \n", - "6813 Twister (1996) \n", - "7113 Independence Day (a.k.a. ID4) (1996) \n", - "7506 Eraser (1996) \n", - "7661 Phenomenon (1996) \n", - "7779 Godfather, The (1972) \n", - "8077 Ghost and the Darkness, The (1996) \n", - "8127 Willy Wonka & the Chocolate Factory (1971) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "8771 Star Trek: First Contact (1996) \n", - "9097 Lost World: Jurassic Park, The (Jurassic Park ... \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "6150 [Action, Adventure, Mystery, Thriller] \n", - "6531 [Action, Adventure, Thriller] \n", - "6813 [Action, Adventure, Romance, Thriller] \n", - "7113 [Action, Adventure, Sci-Fi, War] \n", - "7506 [Action, Drama, Thriller] \n", - "7661 [Drama, Romance] \n", - "7779 [Crime, Drama] \n", - "8077 [Action, Adventure] \n", - "8127 [Children, Comedy, Fantasy, Musical] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "8771 [Action, Adventure, Sci-Fi, Thriller] \n", - "9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "6150 [confusing, confusing plot, memorable sequence... 12.0 \n", - "6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n", - "6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n", - "7113 [action, alien invasion, aliens, will smith, a... 14.0 \n", - "7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n", - "7661 [interesting concept, own, john travolta, john... 15.0 \n", - "7779 [oscar (best picture), marlon brando, classic,... 9.0 \n", - "8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n", - "8127 [based on a book, roald dahl, based on a book,... 20.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n", - "8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n", - "9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 " - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2のユーザーが学習データで評価を付けた映画一覧\n", - "movielens_train[movielens_train.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "06bb1a90", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
24872571Matrix, The (1999)[Action, Sci-Fi, Thriller][artificial intelligence, hackers, heroine in ...
28742959Fight Club (1999)[Action, Crime, Drama, Thriller][based on a book, chuck palahniuk, edward nort...
34893578Gladiator (2000)[Action, Adventure, Drama][revenge, crowe's best, gfei own it, dvd, glad...
\n", - "
" - ], - "text/plain": [ - " movie_id title genre \\\n", - "2487 2571 Matrix, The (1999) [Action, Sci-Fi, Thriller] \n", - "2874 2959 Fight Club (1999) [Action, Crime, Drama, Thriller] \n", - "3489 3578 Gladiator (2000) [Action, Adventure, Drama] \n", - "\n", - " tag \n", - "2487 [artificial intelligence, hackers, heroine in ... \n", - "2874 [based on a book, chuck palahniuk, edward nort... \n", - "3489 [revenge, crowe's best, gfei own it, dvd, glad... " - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2に対するおすすめ(3578, 2571, 2959)\n", - "movies[movies.movie_id.isin([3578, 2571, 2959])]" - ] - } - ], - "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.7.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","id":"88a3be74","metadata":{"id":"88a3be74"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/MF.ipynb)"]},{"cell_type":"markdown","id":"47e2fec5","metadata":{"id":"47e2fec5"},"source":["# Matrix Factorization"]},{"cell_type":"code","execution_count":1,"id":"99e09acf","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"99e09acf","executionInfo":{"status":"ok","timestamp":1672119437385,"user_tz":-540,"elapsed":3804,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"294107d4-f398-41b9-a605-09d7c15bb44f"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:35:29-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 63.1MB/s in 1.0s \n","\n","2022-12-27 05:35:30 (63.1 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"179ce864","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"179ce864","executionInfo":{"status":"ok","timestamp":1672119502987,"user_tz":-540,"elapsed":65608,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"4e5a1760-788a-4246-e64d-8cda917e1a11"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"8c10d538","metadata":{"id":"8c10d538","executionInfo":{"status":"ok","timestamp":1672119502988,"user_tz":-540,"elapsed":28,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 인자 수\n","factors = 5\n","# 평가수 임곗값\n","minimum_num_rating = 100\n","# 바이어스 항 사용\n","use_biase = False\n","# 학습률\n","lr_all = 0.005\n","# 에폭 수\n","n_epochs = 50"]},{"cell_type":"code","execution_count":4,"id":"af591e1a","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"af591e1a","executionInfo":{"status":"ok","timestamp":1672119547233,"user_tz":-540,"elapsed":44271,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"f5f3025d-2ead-479f-c315-94433d318640"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting surprise\n"," Downloading surprise-0.1-py2.py3-none-any.whl (1.8 kB)\n","Collecting scikit-surprise\n"," Downloading scikit-surprise-1.1.3.tar.gz (771 kB)\n","\u001b[K |████████████████████████████████| 771 kB 4.8 MB/s \n","\u001b[?25hRequirement already satisfied: joblib>=1.0.0 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.2.0)\n","Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.21.6)\n","Requirement already satisfied: scipy>=1.3.2 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.7.3)\n","Building wheels for collected packages: scikit-surprise\n"," Building wheel for scikit-surprise (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for scikit-surprise: filename=scikit_surprise-1.1.3-cp38-cp38-linux_x86_64.whl size=2626477 sha256=a922027e3c7f6d8735b7192824bc8d1a46af450d003dde385ce514ec0ae33d2d\n"," Stored in directory: /root/.cache/pip/wheels/af/db/86/2c18183a80ba05da35bf0fb7417aac5cddbd93bcb1b92fd3ea\n","Successfully built scikit-surprise\n","Installing collected packages: scikit-surprise, surprise\n","Successfully installed scikit-surprise-1.1.3 surprise-0.1\n"]}],"source":["!pip install surprise"]},{"cell_type":"code","execution_count":5,"id":"735ff486","metadata":{"id":"735ff486","executionInfo":{"status":"ok","timestamp":1672119548405,"user_tz":-540,"elapsed":1188,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["from surprise import SVD, Reader\n","from surprise import Dataset as SurpriseDataset\n","\n","# 평가 수가 minimum_num_rating 건 이상 있는 영화로 줄인다\n","filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n"," lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n",")\n","\n","# Surprise용으로 데이터를 가공한다\n","reader = Reader(rating_scale=(0.5, 5))\n","data_train = SurpriseDataset.load_from_df(\n"," filtered_movielens_train[[\"user_id\", \"movie_id\", \"rating\"]], reader\n",").build_full_trainset()"]},{"cell_type":"code","execution_count":6,"id":"cbc512a3","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"cbc512a3","executionInfo":{"status":"ok","timestamp":1672119549729,"user_tz":-540,"elapsed":1327,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"b776c506-902c-4525-a5de-88ecc825e60b"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[""]},"metadata":{},"execution_count":6}],"source":["# Surprise로 행렬 분해를 학습한다\n","# 이름은 SVD지만, 특이값 분석이 아니라 Matrix Factorization가 실행된다\n","matrix_factorization = SVD(n_factors=factors, n_epochs=n_epochs, lr_all=lr_all, biased=use_biase)\n","matrix_factorization.fit(data_train)"]},{"cell_type":"code","execution_count":7,"id":"48876224","metadata":{"id":"48876224","executionInfo":{"status":"ok","timestamp":1672119549730,"user_tz":-540,"elapsed":13,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["from collections import defaultdict\n","\n","def get_top_n(predictions, n=10):\n"," # 각 사용자별로 예측된 아이템을 저장한다\n"," top_n = defaultdict(list)\n"," for uid, iid, true_r, est, _ in predictions:\n"," top_n[uid].append((iid, est))\n","\n"," # 사용자별로 아이템을 예측 평갓값 순으로 나열해 상위 n개를 저장한다\n"," for uid, user_ratings in top_n.items():\n"," user_ratings.sort(key=lambda x: x[1], reverse=True)\n"," top_n[uid] = [d[0] for d in user_ratings[:n]]\n","\n"," return top_n"]},{"cell_type":"code","execution_count":8,"id":"a2b23304","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"a2b23304","executionInfo":{"status":"ok","timestamp":1672119551833,"user_tz":-540,"elapsed":2114,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"2318faf1-5003-42d9-f6aa-bc551e8ab571"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {1: [110, 260, 590, 733, 802, 858, 1073, 1210, 1148, 1246],\n"," 22: [318, 260, 608, 1196, 912, 1234, 1213, 858, 904, 2959],\n"," 26: [260, 1210, 318, 527, 1196, 50, 593, 1234, 3578, 1704],\n"," 30: [1148, 912, 457, 3578, 1234, 2762, 1704, 3147, 1233, 2324],\n"," 34: [2324, 1148, 1234, 1207, 4306, 1233, 904, 497, 1247, 17],\n"," 38: [1380, 50, 920, 1036, 1234, 1210, 2324, 2081, 165, 589],\n"," 50: [260, 1207, 904, 2858, 1148, 4993, 1704, 5952, 912, 1233],\n"," 53: [318, 1233, 858, 912, 1193, 904, 2019, 4973, 4226, 1234],\n"," 54: [1210, 1380, 3578, 260, 1196, 1704, 527, 2324, 1234, 1198],\n"," 67: [2959, 1234, 1089, 858, 1213, 1036, 912, 4226, 1221, 1201],\n"," 71: [318, 260, 50, 593, 912, 1234, 527, 1196, 858, 904],\n"," 76: [1721, 597, 587, 3578, 356, 539, 780, 500, 527, 786],\n"," 88: [318, 1036, 50, 589, 1234, 3147, 2000, 457, 593, 733],\n"," 89: [593, 1234, 2959, 858, 912, 1213, 47, 4226, 1036, 1221],\n"," 94: [260, 1704, 1148, 4993, 1207, 2028, 17, 904, 2324, 2762],\n"," 95: [50, 260, 1196, 1210, 47, 1234, 1213, 2959, 4226, 1198],\n"," 100: [1199, 1206, 2019, 541, 1221, 750, 924, 1208, 923, 1219],\n"," 101: [3147, 3578, 1234, 1036, 919, 1242, 2000, 733, 1035, 2324],\n"," 102: [50, 260, 1196, 593, 1210, 1213, 2959, 1234, 4226, 1221],\n"," 103: [318, 1148, 1193, 858, 2858, 904, 912, 2571, 4226, 7153],\n"," 111: [50, 260, 1210, 1036, 47, 3578, 1196, 1234, 2571, 1198],\n"," 116: [1721, 1380, 920, 3578, 919, 527, 1704, 457, 2324, 832],\n"," 118: [260, 1196, 1210, 1234, 904, 5952, 4993, 912, 1704, 7153],\n"," 139: [50, 2542, 2692, 4011, 1200, 4226, 6874, 858, 1193, 1221],\n"," 143: [912, 1233, 1207, 2019, 908, 750, 1247, 1213, 1250, 1234],\n"," 144: [111, 1193, 908, 904, 2502, 1234, 1288, 923, 1225, 1247],\n"," 162: [318, 50, 593, 1234, 608, 912, 1213, 904, 4226, 2324],\n"," 172: [318, 260, 2571, 50, 1148, 527, 3578, 1234, 1198, 4993],\n"," 173: [3578, 1704, 2324, 1148, 2762, 2571, 4306, 2028, 3147, 4993],\n"," 187: [780, 3147, 587, 2396, 62, 11, 736, 1242, 733, 1641],\n"," 193: [3578, 1035, 919, 1234, 2324, 1704, 1036, 3147, 1242, 912],\n"," 208: [733, 780, 597, 919, 457, 3578, 1234, 1036, 2000, 3147],\n"," 210: [912, 50, 1234, 527, 858, 2324, 904, 919, 1193, 1207],\n"," 214: [318, 1207, 1233, 904, 2858, 1247, 2028, 912, 1288, 5952],\n"," 228: [3147, 733, 736, 2000, 802, 1610, 11, 786, 2706, 1242],\n"," 232: [2571, 7153, 5952, 4993, 2858, 1288, 1148, 1136, 4226, 1221],\n"," 236: [2959, 858, 1193, 1234, 1233, 1036, 4226, 4011, 1213, 912],\n"," 259: [318, 1036, 1240, 589, 1234, 380, 3578, 4011, 110, 1213],\n"," 260: [50, 318, 2959, 1234, 2571, 4226, 3578, 1213, 4011, 110],\n"," 267: [1148, 1213, 904, 36, 908, 4011, 912, 1197, 1304, 1250],\n"," 268: [1721, 1035, 919, 920, 1380, 1641, 3147, 2671, 1242, 3578],\n"," 271: [527, 3578, 1704, 356, 150, 318, 17, 2324, 590, 2762],\n"," 274: [527, 593, 608, 912, 50, 318, 904, 296, 1213, 4226],\n"," 281: [1234, 858, 912, 1233, 1193, 2959, 919, 904, 4973, 4226],\n"," 287: [318, 260, 2571, 50, 1148, 3578, 527, 1198, 4993, 1234],\n"," 292: [1219, 2019, 904, 908, 1199, 923, 1201, 1233, 1208, 778],\n"," 296: [260, 1234, 1196, 1148, 1198, 912, 1136, 1210, 608, 908],\n"," 303: [111, 1199, 2019, 923, 1208, 1148, 904, 1193, 1206, 908],\n"," 307: [4993, 1288, 7153, 1148, 5952, 2858, 318, 1136, 293, 4226],\n"," 310: [3578, 1210, 904, 150, 4306, 1148, 1233, 6539, 1242, 4226],\n"," 315: [1721, 494, 653, 1917, 2628, 1584, 3, 786, 832, 802],\n"," 320: [50, 1221, 1213, 318, 1201, 858, 608, 1234, 1198, 2019],\n"," 326: [260, 858, 1148, 527, 912, 1193, 904, 2858, 1233, 318],\n"," 332: [527, 912, 1207, 904, 919, 1233, 4973, 1394, 1035, 1247],\n"," 339: [260, 527, 50, 1234, 3578, 2571, 2324, 1210, 1196, 1704],\n"," 343: [318, 3578, 3147, 733, 1242, 1234, 2000, 1036, 527, 597],\n"," 355: [260, 1196, 1234, 4226, 1213, 527, 912, 2571, 858, 904],\n"," 364: [858, 912, 1234, 1233, 2959, 1193, 1213, 904, 4226, 4973],\n"," 365: [858, 912, 904, 1233, 318, 4973, 1394, 1207, 608, 919],\n"," 368: [1221, 1213, 1193, 318, 1233, 2858, 111, 1208, 904, 1222],\n"," 381: [260, 1148, 912, 1207, 1247, 1193, 2028, 2396, 3578, 904],\n"," 382: [527, 318, 1207, 1233, 1148, 904, 912, 1247, 1704, 2028],\n"," 383: [1219, 923, 1199, 1288, 904, 1094, 1394, 1136, 2019, 1080],\n"," 391: [1234, 50, 3578, 527, 1233, 1148, 3147, 2324, 1036, 912],\n"," 396: [858, 593, 608, 912, 1221, 1193, 50, 904, 296, 1213],\n"," 398: [1704, 318, 1210, 17, 2324, 3578, 1207, 6539, 919, 4993],\n"," 406: [318, 527, 1207, 912, 1233, 904, 1234, 919, 2324, 1148],\n"," 409: [780, 1917, 3578, 380, 2628, 733, 786, 2001, 2000, 3147],\n"," 410: [3147, 1148, 3578, 2762, 1233, 2000, 2396, 2028, 1230, 457],\n"," 416: [318, 912, 527, 919, 1207, 904, 1035, 1233, 1234, 4973],\n"," 418: [260, 1148, 1288, 5952, 7153, 527, 541, 923, 1199, 1196],\n"," 419: [2959, 1206, 6874, 2502, 7153, 223, 2019, 293, 1080, 1196],\n"," 421: [527, 1035, 1704, 1028, 17, 919, 364, 1721, 1207, 2324],\n"," 424: [1207, 1219, 1233, 4973, 1394, 111, 5952, 2019, 858, 1288],\n"," 426: [2502, 1374, 1242, 17, 1278, 2791, 1356, 112, 1376, 1073],\n"," 432: [912, 608, 904, 2858, 4973, 923, 1233, 858, 260, 1219],\n"," 434: [1288, 1148, 318, 17, 904, 34, 1207, 923, 509, 1358],\n"," 436: [260, 2571, 1234, 4226, 1213, 858, 1198, 1148, 1196, 912],\n"," 438: [4993, 7153, 50, 5952, 1288, 4226, 47, 1213, 6874, 527],\n"," 441: [260, 318, 527, 3578, 1210, 1704, 2571, 356, 1148, 4993],\n"," 446: [50, 260, 858, 4226, 2571, 1213, 1193, 1233, 1148, 1221],\n"," 452: [1036, 2959, 2000, 380, 1234, 589, 733, 919, 593, 1035],\n"," 456: [541, 1221, 2959, 2571, 1136, 4226, 858, 750, 2019, 1213],\n"," 459: [50, 2502, 1201, 1221, 223, 1206, 1213, 2692, 6, 1198],\n"," 460: [527, 50, 1234, 318, 3578, 260, 2324, 356, 912, 1036],\n"," 463: [1234, 1213, 4011, 912, 1148, 1304, 380, 919, 1247, 7153],\n"," 468: [260, 1196, 4993, 5952, 7153, 1210, 2571, 1288, 2858, 318],\n"," 469: [733, 858, 1252, 1288, 1207, 1247, 1193, 50, 904, 1617],\n"," 472: [1721, 919, 527, 1207, 2324, 3578, 500, 2396, 1246, 920],\n"," 476: [1193, 858, 904, 912, 1288, 1247, 1213, 111, 908, 1207],\n"," 480: [111, 1089, 1213, 923, 908, 778, 1208, 1233, 1201, 1193],\n"," 482: [1233, 1222, 912, 1230, 2019, 4973, 1252, 750, 2692, 904],\n"," 493: [912, 904, 1234, 593, 1196, 1207, 1233, 919, 1148, 1247],\n"," 494: [2959, 2502, 2542, 1206, 858, 1200, 1221, 2997, 2692, 1201],\n"," 496: [260, 1196, 318, 50, 527, 1234, 1198, 1704, 110, 2324],\n"," 501: [527, 1207, 318, 904, 1233, 2324, 1247, 4973, 2858, 1035],\n"," 504: [1233, 1148, 904, 1193, 2858, 912, 1247, 1207, 858, 1288],\n"," 505: [527, 1704, 3578, 2324, 1207, 1234, 919, 1148, 904, 912],\n"," 511: [527, 318, 1704, 356, 260, 3578, 2324, 919, 1035, 17],\n"," 516: [1233, 1193, 912, 904, 1148, 1247, 1252, 1207, 50, 923],\n"," 525: [260, 1210, 1196, 527, 50, 356, 1704, 3578, 2324, 1234],\n"," 530: [912, 919, 1035, 1207, 593, 1234, 904, 4973, 527, 1394],\n"," 531: [527, 1207, 919, 1035, 2324, 912, 1704, 2396, 1233, 904],\n"," 533: [1213, 111, 2329, 4011, 58, 778, 1090, 2194, 4995, 150],\n"," 536: [527, 318, 1704, 2324, 1207, 3578, 919, 356, 1035, 590],\n"," 543: [2028, 1234, 1233, 1288, 36, 1242, 497, 4011, 1250, 2329],\n"," 547: [260, 1210, 1196, 1704, 318, 4993, 5952, 17, 2571, 7153],\n"," 549: [912, 919, 1035, 1207, 527, 1233, 904, 1234, 4973, 364],\n"," 553: [858, 541, 778, 1206, 1221, 1193, 1732, 4226, 1089, 1200],\n"," 556: [260, 1196, 1210, 5952, 4993, 7153, 2571, 608, 1198, 1704],\n"," 558: [1233, 4973, 904, 919, 1193, 1250, 2019, 908, 1225, 750],\n"," 562: [1035, 1721, 919, 1380, 920, 2000, 1101, 3147, 2706, 786],\n"," 567: [780, 786, 733, 2000, 1917, 3147, 1721, 2001, 802, 3578],\n"," 571: [296, 608, 2019, 912, 1213, 750, 1233, 1193, 2959, 111],\n"," 572: [318, 1148, 36, 3578, 1036, 1233, 1704, 2019, 1225, 1304],\n"," 577: [356, 1036, 2959, 919, 47, 3578, 2324, 1213, 1380, 110],\n"," 581: [912, 1233, 904, 1207, 4973, 858, 2858, 1247, 923, 1193],\n"," 585: [1221, 4973, 1233, 1208, 4226, 2502, 3897, 2542, 1250, 7153],\n"," 593: [1210, 260, 1196, 1036, 2571, 1240, 1198, 3578, 1234, 2959],\n"," 601: [1035, 2324, 1704, 3578, 1234, 590, 1207, 6539, 50, 4306],\n"," 604: [2959, 2502, 1221, 1089, 2542, 1200, 1201, 1206, 1213, 541],\n"," 605: [593, 1213, 912, 1221, 858, 1234, 4226, 904, 2019, 2959],\n"," 609: [1234, 912, 260, 2324, 904, 919, 1233, 1207, 858, 3578],\n"," 628: [1234, 527, 50, 3578, 593, 2324, 260, 912, 1148, 1233],\n"," 629: [260, 4993, 318, 2571, 7153, 1148, 5952, 1288, 527, 2858],\n"," 634: [527, 3578, 50, 1234, 296, 318, 2324, 1704, 1213, 912],\n"," 645: [3147, 1193, 1233, 858, 2959, 1036, 2692, 733, 4011, 1242],\n"," 650: [111, 912, 923, 1221, 1136, 2959, 296, 1213, 1233, 750],\n"," 656: [527, 3578, 260, 1704, 2324, 1148, 1234, 2762, 2571, 2028],\n"," 657: [1394, 1199, 2019, 1233, 750, 1136, 1080, 1288, 1222, 1148],\n"," 669: [527, 3578, 919, 1035, 2324, 1234, 1704, 1207, 912, 260],\n"," 678: [3578, 2571, 47, 2324, 1704, 1148, 4011, 2000, 4226, 36],\n"," 683: [3147, 318, 50, 1240, 457, 4011, 2959, 1234, 2706, 1610],\n"," 688: [1288, 1221, 1208, 223, 293, 1148, 3996, 1079, 318, 1197],\n"," 689: [527, 912, 1207, 904, 919, 1234, 1233, 4973, 1035, 260],\n"," 693: [1035, 919, 912, 1207, 1233, 1234, 904, 4973, 2324, 1242],\n"," 701: [858, 912, 2959, 1233, 4973, 318, 593, 1193, 1234, 919],\n"," 716: [5952, 111, 1288, 7153, 4993, 923, 1136, 1208, 1219, 1080],\n"," 719: [3147, 1233, 1641, 2396, 919, 2706, 1242, 1035, 1230, 912],\n"," 720: [1233, 3147, 858, 1193, 912, 1242, 1234, 1230, 2959, 1222],\n"," 734: [527, 318, 3578, 2324, 1704, 150, 912, 904, 1148, 2762],\n"," 735: [318, 260, 1196, 1234, 527, 1210, 912, 1198, 1213, 2324],\n"," 739: [296, 2502, 858, 1036, 1234, 318, 1213, 1201, 1220, 4011],\n"," 745: [1234, 912, 919, 2324, 356, 4973, 904, 1201, 1304, 2019],\n"," 755: [858, 1233, 912, 2019, 1193, 750, 4973, 904, 1221, 2858],\n"," 758: [527, 1704, 17, 356, 260, 3578, 318, 1210, 2324, 1028],\n"," 767: [1193, 50, 1233, 1234, 1148, 4226, 2959, 912, 4011, 1213],\n"," 769: [260, 1196, 4993, 1210, 5952, 7153, 2571, 1288, 1148, 2858],\n"," 775: [260, 1210, 1148, 1288, 5952, 6539, 7153, 527, 1207, 1196],\n"," 785: [858, 2959, 1234, 912, 1213, 1193, 4226, 1233, 904, 1221],\n"," 786: [589, 293, 2692, 1148, 380, 4993, 7153, 1288, 296, 36],\n"," 789: [260, 1210, 1704, 3578, 17, 1196, 2324, 4993, 6539, 2571],\n"," 792: [527, 260, 1704, 4993, 1148, 3578, 17, 2571, 2028, 1210],\n"," 795: [260, 2571, 1196, 1221, 4226, 1213, 2959, 7153, 858, 1136],\n"," 798: [36, 4011, 1233, 2329, 223, 163, 1358, 1997, 4027, 16],\n"," 799: [919, 1035, 1234, 2324, 912, 3578, 260, 1207, 1704, 50],\n"," 802: [2571, 3578, 1036, 2000, 1148, 1240, 3147, 1917, 2001, 1291],\n"," 806: [1207, 912, 1233, 904, 2396, 1247, 923, 919, 4973, 1394],\n"," 807: [260, 858, 527, 593, 912, 50, 1234, 1213, 4226, 2324],\n"," 816: [527, 1721, 2396, 62, 1207, 1584, 539, 919, 597, 500],\n"," 827: [260, 1148, 527, 904, 4993, 318, 2858, 2571, 7153, 1196],\n"," 828: [356, 539, 920, 1035, 1380, 1721, 786, 919, 1101, 3578],\n"," 846: [2959, 858, 1193, 2542, 2502, 1233, 1036, 1234, 4011, 3147],\n"," 859: [50, 1221, 47, 1213, 608, 318, 1201, 750, 1234, 2502],\n"," 862: [1035, 1721, 919, 1028, 1207, 62, 590, 2324, 2396, 920],\n"," 870: [50, 260, 1234, 2571, 3578, 1148, 1198, 2324, 4226, 1036],\n"," 876: [1035, 919, 912, 1207, 1234, 364, 904, 2324, 1233, 4973],\n"," 881: [1035, 1380, 919, 920, 2324, 1234, 1210, 3578, 1704, 260],\n"," 885: [912, 4973, 1234, 1233, 2858, 4226, 1394, 923, 750, 2324],\n"," 886: [7153, 1148, 4993, 5952, 4226, 4011, 111, 6874, 1291, 1213],\n"," 889: [1148, 318, 1233, 527, 4993, 1288, 2762, 2028, 1247, 2858],\n"," 890: [380, 165, 318, 3147, 1148, 2001, 36, 1610, 1270, 1198],\n"," 891: [1288, 111, 1136, 1221, 1148, 750, 2019, 1213, 1199, 1208],\n"," 896: [912, 1219, 1394, 4973, 904, 858, 2019, 111, 2858, 923],\n"," 897: [1233, 912, 318, 858, 1193, 904, 4973, 1207, 1247, 1234],\n"," 898: [527, 318, 1148, 1704, 3578, 4993, 2762, 2028, 2324, 1207],\n"," 908: [1148, 593, 912, 1207, 1225, 1247, 1193, 3578, 50, 904],\n"," 922: [1242, 733, 2000, 919, 457, 1234, 1233, 1035, 1036, 2324],\n"," 930: [919, 1207, 1233, 1035, 912, 3147, 2396, 1242, 3578, 2324],\n"," 938: [3578, 50, 1234, 1036, 356, 527, 2324, 3147, 919, 1198],\n"," 956: [1196, 1210, 2959, 260, 6874, 1240, 1089, 223, 1201, 2571],\n"," 958: [1394, 912, 1035, 919, 4973, 608, 364, 1207, 1073, 904],\n"," 968: [527, 912, 1207, 904, 919, 1233, 1234, 2324, 1247, 1035],\n"," 977: [5952, 7153, 4993, 2997, 2019, 1219, 1233, 4034, 3996, 3897],\n"," 987: [1721, 1035, 919, 597, 539, 2396, 1641, 3147, 500, 1242],\n"," 990: [608, 912, 1394, 1035, 858, 2959, 4973, 919, 1089, 1234],\n"," 996: [1233, 912, 1207, 904, 1193, 1247, 2396, 858, 4973, 919],\n"," 1004: [527, 3578, 1234, 2324, 1148, 912, 1036, 1704, 919, 1233],\n"," 1005: [1148,\n"," 4993,\n"," 1704,\n"," 2028,\n"," 3578,\n"," 2762,\n"," 2571,\n"," 1288,\n"," 1207,\n"," 7153],\n"," 1008: [1234, 1213, 1233, 904, 2019, 1089, 750, 4011, 908, 2324],\n"," 1029: [2959, 1036, 589, 1240, 2502, 2542, 1234, 4011, 1213, 1089],\n"," 1037: [858, 1233, 912, 1193, 318, 904, 4973, 2019, 750, 4226],\n"," 1050: [260, 2571, 7153, 5952, 4993, 1288, 541, 2858, 1136, 1196],\n"," 4: [356, 260, 1210, 527, 1196, 3578, 1704, 17, 318, 2324],\n"," 8: [296, 2502, 2692, 1221, 318, 1201, 1213, 750, 1193, 1288],\n"," 18: [50, 4226, 1221, 1200, 293, 2692, 1213, 6874, 858, 1148],\n"," 36: [318, 1234, 912, 47, 1193, 2542, 4973, 1233, 1035, 1201],\n"," 47: [380, 1234, 356, 47, 2000, 457, 3147, 2324, 6, 1304],\n"," 59: [527, 260, 1704, 1207, 1148, 2324, 904, 912, 1234, 3578],\n"," 62: [356, 1035, 3578, 919, 1234, 2324, 457, 50, 1036, 527],\n"," 77: [318, 3578, 50, 1234, 260, 2324, 1210, 1704, 1036, 919],\n"," 79: [858, 912, 2959, 1221, 1213, 2019, 4973, 750, 4226, 1089],\n"," 80: [1233, 858, 1193, 912, 1234, 904, 1148, 4226, 4973, 1247],\n"," 119: [912, 50, 1234, 919, 904, 4973, 1233, 527, 608, 1207],\n"," 122: [541, 912, 923, 1199, 1219, 908, 1233, 750, 924, 2019],\n"," 125: [1201, 1288, 778, 1617, 908, 1304, 2329, 1090, 1234, 1252],\n"," 126: [4973, 908, 1035, 2019, 1233, 17, 750, 58, 551, 1199],\n"," 132: [912, 1234, 919, 1233, 858, 50, 1035, 1193, 1207, 904],\n"," 141: [3578, 318, 1704, 150, 2324, 919, 1035, 1234, 260, 1721],\n"," 154: [318, 4226, 858, 1234, 1221, 4011, 1233, 1136, 7153, 2019],\n"," 155: [1233, 912, 2019, 904, 4973, 1234, 4226, 750, 1221, 1222],\n"," 163: [2571, 2959, 1200, 541, 1206, 6874, 1240, 1221, 293, 7153],\n"," 164: [1233, 858, 912, 1193, 4973, 904, 1234, 1222, 1207, 919],\n"," 170: [1221, 6874, 1200, 1201, 1213, 2502, 541, 1089, 260, 589],\n"," 171: [912, 919, 1035, 364, 1207, 1234, 1233, 1242, 2324, 593],\n"," 176: [318, 527, 1207, 260, 904, 912, 1233, 1148, 2324, 1704],\n"," 182: [260, 1148, 904, 1233, 1584, 1035, 1288, 1198, 1252, 1210],\n"," 190: [527, 1288, 17, 1704, 2858, 1148, 34, 509, 318, 1358],\n"," 197: [2959, 296, 912, 2502, 608, 4973, 2019, 1222, 593, 1213],\n"," 198: [1233, 2019, 4973, 904, 908, 4011, 1201, 2542, 1198, 1247],\n"," 199: [527, 1035, 919, 318, 1207, 1704, 2324, 364, 356, 1028],\n"," 212: [2858, 2502, 1222, 1233, 2542, 3897, 1230, 1079, 1247, 4011],\n"," 221: [2959, 1240, 1234, 3578, 4011, 2542, 3147, 6, 2502, 4226],\n"," 223: [356, 364, 110, 260, 858, 1210, 1148, 1246, 1252, 1288],\n"," 226: [912, 1193, 2959, 1233, 2019, 4973, 750, 1252, 1230, 1247],\n"," 241: [2959, 858, 296, 50, 1193, 912, 2502, 1233, 318, 2542],\n"," 247: [1035, 919, 318, 3578, 1234, 2324, 1721, 1380, 527, 3147],\n"," 249: [858, 1234, 1233, 912, 1193, 904, 260, 1148, 2019, 1221],\n"," 254: [7153, 4226, 2019, 1213, 4993, 1148, 608, 1198, 1201, 904],\n"," 264: [318, 912, 260, 904, 858, 608, 527, 1234, 1233, 4973],\n"," 273: [1234, 1233, 912, 1193, 858, 904, 1148, 1207, 1242, 919],\n"," 275: [1219, 1394, 912, 4973, 858, 923, 2019, 1221, 908, 1213],\n"," 276: [1221, 2019, 1148, 1233, 908, 904, 1201, 1230, 912, 1266],\n"," 293: [527, 356, 3578, 2324, 1234, 919, 1035, 1704, 260, 50],\n"," 294: [2959, 593, 1213, 858, 1234, 1036, 1089, 1221, 4226, 1240],\n"," 295: [858, 912, 904, 1233, 318, 4973, 1193, 1250, 593, 923],\n"," 318: [1288, 1094, 1233, 1207, 924, 1199, 1358, 1219, 908, 1252],\n"," 321: [318, 527, 919, 912, 1207, 1035, 1234, 2324, 904, 1233],\n"," 345: [318, 50, 858, 1233, 4226, 1213, 1221, 912, 2019, 1148],\n"," 346: [3147, 733, 2000, 1242, 1233, 318, 1036, 1193, 858, 589],\n"," 348: [1234, 260, 1233, 912, 904, 1136, 1247, 908, 1225, 2324],\n"," 349: [260, 1704, 1210, 1196, 4993, 1148, 2324, 5952, 3578, 7153],\n"," 354: [527, 1207, 919, 2324, 260, 1234, 904, 1233, 1035, 1148],\n"," 359: [608, 111, 1394, 1199, 2019, 912, 1221, 858, 904, 1208],\n"," 366: [1233, 318, 1193, 1148, 912, 858, 904, 1247, 1230, 1207],\n"," 369: [2571, 50, 1240, 260, 47, 1210, 1036, 589, 6874, 1196],\n"," 384: [3578, 527, 1704, 260, 380, 2324, 1210, 1148, 2762, 2571],\n"," 390: [1221, 912, 2019, 750, 1233, 1089, 908, 541, 111, 1222],\n"," 392: [858, 912, 1233, 2019, 2858, 904, 608, 1193, 4973, 750],\n"," 403: [2959, 858, 912, 2019, 608, 4973, 1221, 1213, 1193, 1089],\n"," 407: [318, 36, 293, 1288, 4011, 4226, 1193, 3147, 527, 2858],\n"," 414: [858, 1193, 2502, 1222, 2019, 1233, 750, 1221, 2542, 912],\n"," 431: [858, 912, 1234, 1233, 904, 1193, 593, 527, 1207, 4226],\n"," 454: [260, 527, 1210, 318, 1196, 1704, 3578, 4993, 2324, 356],\n"," 465: [912, 2019, 750, 1394, 1233, 904, 541, 1199, 1201, 1136],\n"," 481: [1193, 1233, 1234, 1148, 750, 1222, 2692, 1247, 4973, 3147],\n"," 485: [2019, 750, 912, 4973, 2502, 1233, 1206, 2542, 1394, 1201],\n"," 503: [260, 50, 1196, 608, 1210, 1234, 912, 47, 904, 1089],\n"," 513: [7153, 5952, 4993, 4226, 4973, 3897, 1358, 1250, 235, 1213],\n"," 517: [260, 1210, 1196, 593, 527, 1234, 2571, 1198, 1213, 5952],\n"," 545: [1199, 1230, 912, 908, 1234, 1148, 1997, 1250, 36, 3147],\n"," 552: [260, 47, 2571, 1221, 593, 1196, 1240, 1198, 1036, 858],\n"," 554: [260, 1196, 1288, 1199, 1210, 1136, 541, 923, 1080, 1221],\n"," 555: [1036, 1221, 36, 1304, 2692, 541, 2324, 1200, 904, 6],\n"," 561: [50, 293, 318, 1198, 1148, 1288, 223, 36, 1136, 1221],\n"," 565: [318, 527, 1234, 912, 1233, 50, 2324, 904, 593, 260],\n"," 591: [1233, 2396, 1230, 912, 1193, 858, 1252, 1073, 4973, 3897],\n"," 617: [1704, 4993, 3578, 318, 2571, 2028, 2628, 2762, 5952, 1288],\n"," 621: [1233, 2542, 1080, 1278, 4011, 2329, 2692, 3897, 1387, 7153],\n"," 622: [858, 1148, 1193, 3578, 50, 1234, 1233, 4226, 1036, 912],\n"," 623: [1233, 912, 858, 1193, 50, 904, 1234, 1148, 4226, 2858],\n"," 633: [1199, 4973, 924, 2997, 1080, 778, 1247, 1079, 2329, 1148],\n"," 636: [2858, 1234, 1247, 4226, 1288, 1207, 1230, 36, 1252, 1242],\n"," 638: [1148, 4993, 1704, 2571, 7153, 1288, 2028, 5952, 2858, 2762],\n"," 641: [356, 3578, 50, 1210, 260, 527, 1234, 2324, 110, 1196],\n"," 646: [318, 50, 260, 1234, 527, 912, 858, 4226, 904, 1213],\n"," 654: [919, 527, 1035, 912, 1234, 2324, 1207, 904, 50, 3578],\n"," 655: [527, 593, 912, 3578, 50, 1234, 2324, 4226, 904, 1233],\n"," 658: [50, 858, 318, 1221, 1213, 1193, 2019, 750, 541, 2502],\n"," 660: [1233, 1207, 923, 912, 1247, 1148, 2396, 1252, 1230, 1250],\n"," 661: [50, 2571, 1148, 1036, 1193, 1234, 4226, 858, 1233, 4011],\n"," 677: [1207, 912, 904, 1233, 2324, 260, 1148, 1234, 919, 1247],\n"," 714: [912, 1234, 1233, 593, 1207, 1193, 1247, 1250, 1213, 1242],\n"," 715: [2959, 858, 1221, 50, 541, 2019, 750, 1193, 1213, 4226],\n"," 723: [912, 858, 4973, 1394, 904, 593, 1207, 2019, 919, 1234],\n"," 731: [3578, 50, 1148, 1234, 1198, 3147, 457, 4993, 4306, 36],\n"," 742: [1233, 1193, 1288, 1230, 36, 858, 904, 2692, 1252, 527],\n"," 743: [527, 318, 3578, 260, 1210, 1704, 2324, 1035, 110, 593],\n"," 752: [912, 318, 858, 4973, 904, 1233, 608, 2019, 1193, 593],\n"," 772: [1394, 912, 1219, 904, 858, 923, 318, 2019, 1207, 908],\n"," 780: [3578, 912, 919, 904, 1207, 1704, 1035, 1148, 4226, 1247],\n"," 788: [1234, 912, 919, 1233, 1193, 1213, 296, 904, 1035, 4973],\n"," 814: [858, 1193, 912, 1222, 4973, 1230, 1252, 2019, 904, 750],\n"," 823: [593, 50, 318, 1234, 356, 2324, 919, 527, 47, 3578],\n"," 826: [1148, 1199, 2692, 2502, 293, 36, 1247, 1198, 1225, 1266],\n"," 833: [1233, 1193, 904, 2019, 912, 4226, 7153, 50, 1247, 4973],\n"," 838: [2019, 1394, 750, 1199, 1221, 924, 1222, 1080, 1250, 1252],\n"," 842: [858, 1148, 527, 912, 919, 1207, 1247, 1193, 904, 1234],\n"," 852: [50, 3578, 1234, 1036, 260, 110, 527, 1210, 2324, 1704],\n"," 878: [2858, 7153, 1148, 5952, 4993, 1233, 2571, 4226, 1617, 2997],\n"," 887: [260, 858, 1148, 1252, 1288, 5952, 7153, 111, 527, 541],\n"," 895: [527, 1704, 3578, 1721, 318, 17, 2324, 62, 587, 1584],\n"," 899: [318, 50, 858, 260, 1233, 1234, 912, 1193, 4226, 1148],\n"," 902: [912, 1234, 1233, 4973, 904, 1221, 2019, 919, 908, 2324],\n"," 907: [1233, 1193, 1148, 858, 904, 912, 2858, 1247, 1230, 4226],\n"," 928: [912, 1233, 904, 858, 2019, 1207, 111, 1394, 1247, 1219],\n"," 936: [318, 1234, 1213, 2324, 904, 1304, 1148, 750, 908, 1250],\n"," 964: [1233, 912, 904, 4973, 1234, 1207, 1247, 1148, 1250, 1252],\n"," 970: [858, 912, 1073, 1233, 919, 1035, 2959, 104, 4973, 2791],\n"," 972: [260, 1234, 1148, 912, 904, 1233, 50, 1198, 919, 1250],\n"," 988: [7153, 1221, 908, 36, 6874, 4034, 1732, 1222, 4027, 2329],\n"," 1001: [318, 527, 912, 919, 1234, 260, 1207, 2324, 1035, 904],\n"," 1013: [1233, 1193, 1230, 1148, 912, 1252, 1247, 904, 3147, 1207],\n"," 1018: [50, 1221, 1213, 858, 2019, 750, 1193, 1201, 912, 1234],\n"," 1020: [912, 1230, 2959, 3147, 1233, 318, 1090, 1242, 2692, 2542],\n"," 1028: [260, 1210, 527, 1196, 3578, 1704, 318, 2324, 17, 110],\n"," 1031: [50, 1234, 318, 912, 858, 1233, 1193, 2959, 4226, 1213],\n"," 1035: [2502, 2542, 50, 1625, 6, 1220, 1234, 1201, 4011, 1278],\n"," 1038: [1148, 150, 527, 912, 1207, 1247, 2396, 904, 1234, 2762],\n"," 1045: [1035, 1234, 4973, 608, 1394, 904, 1207, 1233, 908, 1250],\n"," 1046: [318, 3578, 1234, 1036, 50, 527, 2324, 3147, 919, 1242],\n"," 35: [2997, 858, 231, 2019, 924, 1221, 1199, 541, 1193, 2502],\n"," 72: [318, 50, 2571, 1036, 1234, 1148, 1193, 858, 1233, 4226],\n"," 91: [1233, 111, 1199, 2019, 858, 4973, 1252, 7153, 5952, 908],\n"," 106: [1721, 597, 539, 587, 3147, 500, 62, 2396, 150, 3578],\n"," 128: [260, 858, 1148, 1288, 5952, 7153, 608, 912, 923, 1207],\n"," 158: [260, 318, 2571, 1196, 4226, 7153, 1213, 1221, 1198, 1148],\n"," 160: [47, 111, 541, 593, 608, 912, 1219, 1221, 1193, 50],\n"," 175: [1207, 908, 1247, 1199, 1148, 3897, 1230, 1073, 2324, 1242],\n"," 196: [3578, 1148, 1704, 3147, 733, 2762, 2324, 50, 4993, 36],\n"," 203: [2959, 858, 3578, 4011, 4226, 1193, 912, 3147, 2571, 1233],\n"," 206: [858, 923, 1199, 1207, 1247, 1193, 2858, 1233, 1394, 2019],\n"," 207: [2858, 1288, 7153, 5952, 4993, 111, 260, 1148, 1136, 2571],\n"," 215: [527, 2329, 3147, 1246, 58, 1090, 337, 1035, 1201, 509],\n"," 255: [50, 1234, 3578, 1036, 2324, 527, 260, 1198, 47, 919],\n"," 265: [356, 597, 527, 150, 1704, 587, 318, 2000, 457, 3147],\n"," 340: [1380, 3578, 2959, 2324, 920, 858, 1968, 2081, 4011, 1304],\n"," 404: [3578, 1036, 1234, 50, 3147, 593, 1242, 733, 2000, 2324],\n"," 433: [1148, 1233, 318, 2858, 1288, 1193, 2571, 7153, 4993, 904],\n"," 440: [1234, 912, 1233, 919, 904, 4973, 4011, 2324, 2019, 1250],\n"," 444: [318, 3578, 527, 1234, 2324, 1704, 1148, 3147, 150, 260],\n"," 450: [912, 1234, 2324, 1035, 2019, 923, 1704, 1247, 364, 1250],\n"," 479: [260, 1196, 5952, 1210, 7153, 4993, 1219, 1288, 1221, 904],\n"," 491: [2997, 541, 1193, 750, 1233, 2502, 296, 1208, 924, 1732],\n"," 506: [2858, 7153, 1221, 2019, 5952, 2571, 4226, 4993, 1233, 904],\n"," 523: [2858, 1233, 904, 912, 1148, 111, 2019, 923, 7153, 1288],\n"," 539: [260, 1207, 904, 912, 1219, 923, 2858, 17, 1196, 1704],\n"," 541: [7153, 318, 4993, 5952, 1148, 4226, 111, 904, 1233, 2019],\n"," 616: [1234, 2324, 919, 912, 1704, 1035, 904, 1207, 1196, 1233],\n"," 647: [3147, 2000, 597, 2706, 587, 539, 1242, 3578, 104, 1036],\n"," 659: [1148, 1288, 1233, 904, 1193, 2028, 2019, 750, 50, 36],\n"," 695: [1233, 2858, 904, 1193, 4993, 1247, 1288, 2762, 1207, 7153],\n"," 700: [260, 50, 296, 1196, 2571, 1210, 4226, 1213, 1221, 7153],\n"," 707: [260, 318, 1196, 1210, 4993, 5952, 1148, 7153, 3578, 904],\n"," 748: [260, 593, 1234, 1196, 1210, 3578, 1198, 2324, 2571, 296],\n"," 759: [296, 2959, 50, 47, 593, 1089, 1221, 1213, 318, 608],\n"," 784: [912, 1233, 1193, 904, 4973, 111, 908, 1199, 1222, 1247],\n"," 790: [1233, 1148, 1207, 912, 2762, 1193, 2028, 2324, 3578, 2858],\n"," 835: [858, 111, 608, 912, 923, 1199, 1221, 1193, 904, 908],\n"," 844: [318, 527, 1704, 50, 2324, 1234, 150, 1148, 733, 4306],\n"," 871: [2019, 2858, 2959, 2997, 4226, 5952, 4973, 7153, 1394, 1233],\n"," 875: [1148, 4993, 260, 1288, 2028, 2762, 2858, 1704, 7153, 2571],\n"," 892: [4226, 2959, 2019, 750, 912, 1193, 1136, 541, 1234, 1233],\n"," 919: [3578, 3147, 318, 597, 1036, 589, 1148, 356, 587, 150],\n"," 935: [1148, 2692, 318, 1193, 296, 2959, 541, 293, 7153, 1288],\n"," 942: [356, 3578, 1210, 260, 110, 50, 1036, 527, 1704, 1234],\n"," 960: [260, 318, 2858, 50, 1221, 2019, 858, 1213, 111, 1196],\n"," 1006: [912, 2858, 904, 1233, 923, 858, 4973, 1207, 5952, 2019],\n"," 1026: [912, 923, 1207, 904, 2858, 1233, 1247, 318, 527, 858],\n"," 1047: [260, 912, 904, 1233, 5952, 1196, 1221, 1193, 908, 1148],\n"," 65: [1233, 1207, 527, 904, 1193, 2762, 3147, 2028, 1250, 1252],\n"," 135: [318, 50, 2571, 1148, 4993, 7153, 527, 4226, 5952, 2858],\n"," 152: [296, 527, 1234, 4226, 1213, 7153, 4993, 5952, 1148, 2324],\n"," 166: [1035, 919, 318, 1234, 356, 527, 2324, 912, 364, 50],\n"," 179: [912, 2959, 4973, 318, 904, 4226, 2997, 2502, 1136, 1208],\n"," 188: [318, 260, 3578, 2324, 1234, 1704, 50, 919, 912, 1207],\n"," 217: [318, 527, 1207, 912, 1233, 919, 904, 1035, 1234, 1247],\n"," 253: [1148, 1233, 318, 1288, 904, 4993, 1193, 527, 7153, 1247],\n"," 262: [589, 2000, 1234, 1148, 36, 2324, 2001, 1270, 1304, 1917],\n"," 277: [318, 260, 50, 2571, 1148, 4226, 1196, 1198, 1234, 2858],\n"," 289: [1233, 1199, 541, 6377, 1198, 1073, 364, 778, 1035, 2194],\n"," 300: [1394, 4973, 1207, 1219, 1250, 1234, 593, 2858, 1035, 4226],\n"," 302: [4993, 7153, 1198, 5952, 36, 1036, 293, 4226, 1234, 2324],\n"," 308: [318, 912, 919, 1233, 1207, 1035, 1234, 904, 527, 858],\n"," 311: [318, 527, 919, 1035, 2324, 1234, 912, 1207, 260, 593],\n"," 328: [1288, 5952, 7153, 111, 1221, 1136, 4993, 296, 2019, 4226],\n"," 329: [318, 912, 1234, 50, 858, 919, 1233, 904, 1193, 1035],\n"," 344: [1233, 1193, 1230, 858, 1252, 923, 904, 1247, 4973, 1207],\n"," 347: [2858, 111, 5952, 608, 7153, 923, 2019, 904, 318, 1136],\n"," 358: [50, 2959, 1036, 47, 4011, 1234, 858, 4226, 2542, 3578],\n"," 474: [318, 1148, 4993, 7153, 2858, 1288, 1233, 50, 5952, 527],\n"," 483: [3578, 919, 1035, 1721, 2324, 1704, 1207, 1234, 3147, 1242],\n"," 509: [260, 1148, 912, 1207, 1221, 1230, 1247, 1198, 3578, 904],\n"," 578: [2959, 2502, 6874, 2542, 47, 50, 2692, 1206, 293, 1221],\n"," 589: [318, 5952, 4993, 7153, 2858, 2571, 1288, 4226, 912, 1213],\n"," 643: [4973, 1394, 2324, 2019, 4226, 1242, 2329, 1246, 1198, 2959],\n"," 672: [318, 1234, 4226, 5952, 7153, 4993, 1240, 1036, 1148, 1136],\n"," 679: [919, 1207, 1035, 912, 1233, 2396, 318, 527, 904, 364],\n"," 680: [318, 527, 3578, 2324, 1704, 919, 1234, 150, 457, 593],\n"," 691: [1148, 1233, 2762, 904, 1247, 1207, 1193, 1234, 3147, 912],\n"," 702: [2571, 4993, 7153, 5952, 1148, 2858, 1288, 50, 4226, 1198],\n"," 708: [318, 1148, 1234, 527, 1233, 1193, 4226, 1198, 3578, 904],\n"," 730: [858, 912, 1193, 50, 1234, 3147, 1233, 1148, 1242, 4011],\n"," 751: [318, 527, 1234, 50, 919, 1035, 260, 2324, 356, 912],\n"," 773: [527, 4993, 1704, 2028, 17, 150, 509, 2762, 1288, 497],\n"," 803: [62, 736, 597, 3147, 802, 653, 1148, 586, 527, 509],\n"," 809: [1210, 318, 2571, 7153, 1704, 1198, 1288, 593, 1234, 3578],\n"," 820: [1288, 318, 1233, 111, 904, 1221, 1213, 1247, 1198, 1617],\n"," 824: [4973, 364, 318, 527, 923, 1183, 588, 1213, 50, 595],\n"," 863: [858, 1193, 912, 2019, 4226, 1221, 2959, 750, 904, 1136],\n"," 865: [527, 1234, 1148, 912, 904, 1233, 1198, 858, 2324, 1193],\n"," 867: [912, 593, 357, 1193, 17, 1682, 58, 1148, 2291, 2762],\n"," 911: [608, 318, 527, 912, 904, 5952, 593, 50, 1207, 4973],\n"," 915: [527, 3578, 1704, 318, 110, 2324, 150, 1196, 1198, 17],\n"," 939: [527, 919, 1035, 2324, 912, 1207, 1234, 1704, 904, 3578],\n"," 946: [912, 1221, 1193, 908, 1234, 4226, 2959, 296, 1213, 1233],\n"," 954: [527, 318, 593, 1704, 50, 356, 2324, 1234, 110, 1198],\n"," 957: [1148, 5952, 7153, 4993, 1199, 923, 750, 2019, 904, 1094],\n"," 971: [1252, 541, 923, 1247, 1193, 904, 1208, 1233, 1207, 1148],\n"," 986: [260, 1210, 1196, 3578, 1234, 1704, 2324, 1198, 1036, 2571],\n"," 992: [2858, 527, 1148, 4993, 904, 5952, 1288, 7153, 1233, 923],\n"," 92: [593, 919, 50, 1035, 1380, 1234, 920, 2324, 296, 2959],\n"," 107: [1193, 318, 2019, 1148, 750, 904, 2858, 4226, 1252, 1230],\n"," 131: [2959, 1200, 1206, 6874, 2571, 541, 1240, 2502, 1221, 293],\n"," 138: [223, 288, 1221, 1288, 111, 1527, 1213, 2502, 2997, 2692],\n"," 145: [2959, 1221, 858, 1213, 608, 2019, 318, 4226, 750, 541],\n"," 183: [356, 150, 3578, 2324, 17, 4306, 50, 1148, 6539, 2762],\n"," 209: [1233, 912, 1193, 923, 858, 904, 2858, 4973, 2019, 1247],\n"," 230: [318, 858, 1193, 904, 2019, 4226, 111, 7153, 4973, 908],\n"," 263: [904, 1234, 1233, 1148, 2324, 1247, 4011, 1250, 919, 1225],\n"," 305: [318, 919, 1234, 912, 1207, 3578, 1233, 2324, 1035, 904],\n"," 314: [50, 1213, 2019, 4226, 608, 7153, 2571, 1233, 2959, 1148],\n"," 319: [858, 608, 912, 1394, 2019, 4973, 2959, 1221, 1233, 1193],\n"," 325: [2571, 2692, 733, 4011, 780, 3147, 3578, 293, 2959, 36],\n"," 341: [5952, 7153, 111, 541, 608, 912, 1221, 1193, 50, 904],\n"," 471: [318, 1233, 912, 904, 1193, 858, 1207, 527, 1148, 1234],\n"," 488: [318, 1036, 3147, 2000, 3578, 733, 50, 1234, 1242, 2959],\n"," 495: [527, 3578, 1704, 318, 780, 17, 1148, 2028, 11, 356],\n"," 532: [231, 2959, 1732, 2502, 924, 1222, 750, 2019, 2542, 1193],\n"," 564: [1148, 527, 912, 919, 1207, 1247, 2028, 3578, 1234, 2762],\n"," 574: [356, 3578, 2000, 318, 733, 3147, 50, 1234, 1101, 110],\n"," 590: [912, 858, 904, 1234, 4973, 527, 1233, 1207, 4226, 919],\n"," 603: [1035, 919, 364, 62, 2396, 500, 1028, 1641, 920, 1207],\n"," 674: [2959, 296, 2502, 2692, 2542, 858, 1221, 750, 50, 4226],\n"," 753: [858, 1148, 541, 912, 1221, 1193, 50, 904, 4226, 1136],\n"," 810: [1035, 919, 912, 593, 318, 1234, 858, 50, 4973, 2324],\n"," 830: [318, 3578, 17, 4993, 1148, 2762, 6539, 4306, 1234, 2571],\n"," 841: [50, 318, 1148, 7153, 2858, 858, 1233, 296, 1198, 1136],\n"," 856: [318, 50, 912, 593, 858, 1234, 904, 1233, 1213, 4973],\n"," 921: [50, 318, 593, 260, 1234, 296, 1036, 3578, 2571, 1198],\n"," 933: [1233, 912, 904, 4973, 1207, 858, 1193, 2858, 1394, 924],\n"," 976: [912, 904, 608, 4973, 1233, 858, 260, 2858, 1207, 923],\n"," 10: [1148, 2858, 1288, 1247, 1207, 1230, 904, 923, 2396, 318],\n"," 19: [1704, 4993, 3578, 2571, 2324, 5952, 7153, 2028, 2762, 4306],\n"," 41: [318, 527, 2324, 593, 1234, 3578, 1704, 590, 150, 1207],\n"," 43: [780, 1148, 1252, 150, 527, 1207, 1230, 1247, 1584, 2028],\n"," 44: [858, 1148, 1252, 7153, 111, 541, 912, 923, 1199, 1207],\n"," 45: [2959, 318, 1234, 2542, 4011, 296, 1193, 2502, 2000, 733],\n"," 51: [47, 1221, 50, 1089, 2959, 1213, 318, 1201, 1394, 2019],\n"," 56: [608, 1199, 1394, 1183, 1233, 1073, 318, 778, 2997, 2959],\n"," 61: [919, 1035, 2396, 1233, 904, 150, 2324, 1242, 1246, 364],\n"," 68: [318, 527, 3578, 1035, 1234, 912, 150, 1233, 1704, 3147],\n"," 69: [1207, 904, 1233, 923, 1148, 2028, 919, 4973, 1704, 1250],\n"," 78: [2019, 1221, 1213, 3897, 7153, 1266, 50, 5952, 2329, 4011],\n"," 110: [2000, 733, 597, 3578, 3147, 786, 1036, 165, 587, 1101],\n"," 115: [1233, 923, 904, 1148, 1207, 1288, 912, 1252, 4973, 2028],\n"," 129: [858, 541, 608, 912, 1221, 1193, 50, 904, 908, 1234],\n"," 149: [1200, 47, 1206, 1201, 1089, 1240, 2571, 1213, 223, 2542],\n"," 150: [318, 1148, 1233, 2571, 1193, 260, 904, 4993, 2858, 1288],\n"," 168: [50, 318, 593, 296, 2959, 1234, 858, 912, 1213, 47],\n"," 169: [260, 858, 1148, 1252, 7153, 47, 527, 541, 593, 608],\n"," 178: [3578, 1234, 2324, 919, 50, 1035, 912, 1198, 1207, 1036],\n"," 186: [1199, 2019, 2858, 923, 750, 924, 1221, 858, 1208, 2997],\n"," 201: [318, 260, 1035, 919, 1207, 3578, 17, 1234, 912, 904],\n"," 239: [318, 50, 912, 593, 1234, 260, 527, 858, 904, 1233],\n"," 248: [260, 858, 912, 904, 2858, 318, 1233, 50, 2019, 608],\n"," 256: [318, 527, 260, 1148, 1234, 50, 3578, 1233, 2324, 904],\n"," 257: [318, 50, 593, 1234, 2959, 296, 912, 4011, 47, 1193],\n"," 272: [1206, 111, 541, 1199, 2019, 750, 924, 1136, 608, 1080],\n"," 279: [858, 608, 912, 1221, 1233, 750, 2019, 4973, 1193, 1394],\n"," 280: [318, 3147, 1233, 3578, 1242, 1207, 1148, 1234, 919, 150],\n"," 285: [858, 541, 923, 1199, 1193, 1208, 2858, 1233, 750, 924],\n"," 298: [912, 1394, 608, 923, 4973, 904, 1233, 858, 1219, 2019],\n"," 301: [111, 7153, 5952, 1233, 4226, 1193, 904, 1148, 4993, 924],\n"," 304: [527, 318, 1704, 1207, 3578, 1584, 62, 2028, 1148, 17],\n"," 333: [150, 2396, 1207, 500, 3578, 919, 11, 3147, 1035, 1961],\n"," 334: [318, 527, 3578, 2324, 1704, 593, 1035, 50, 150, 1207],\n"," 338: [50, 2959, 608, 1213, 1221, 858, 260, 912, 1089, 4226],\n"," 350: [2858, 527, 923, 904, 1233, 1207, 1288, 5952, 1148, 4993],\n"," 351: [1219, 5952, 7153, 2019, 4993, 1199, 4226, 1233, 541, 1080],\n"," 353: [1136, 1221, 2858, 6874, 260, 1080, 750, 223, 2997, 1208],\n"," 378: [318, 1233, 1193, 2858, 904, 1148, 912, 2019, 1247, 4226],\n"," 386: [1148, 1234, 1233, 50, 2571, 1207, 904, 1193, 4306, 919],\n"," 397: [260, 1207, 1234, 919, 904, 150, 1035, 1148, 1233, 17],\n"," 420: [541, 1206, 1199, 2997, 924, 750, 2019, 1208, 2858, 1221],\n"," 439: [260, 858, 593, 912, 1221, 50, 904, 1234, 4226, 296],\n"," 449: [296, 318, 110, 1036, 1234, 1198, 1240, 1213, 4226, 2324],\n"," 478: [50, 593, 1234, 912, 919, 2959, 296, 1036, 858, 2324],\n"," 487: [1233, 912, 858, 1234, 1193, 904, 593, 1148, 527, 1207],\n"," 489: [912, 4973, 593, 4226, 2959, 1242, 908, 1148, 2324, 1252],\n"," 500: [858, 912, 2019, 1233, 1221, 1193, 904, 50, 750, 4973],\n"," 510: [260, 904, 1207, 912, 2858, 1233, 1148, 1247, 923, 5952],\n"," 521: [260, 527, 1210, 1234, 1196, 3578, 1198, 2324, 2571, 110],\n"," 522: [50, 2858, 4226, 7153, 5952, 2019, 904, 912, 750, 2571],\n"," 524: [1233, 912, 904, 1207, 527, 1193, 1148, 1247, 260, 1234],\n"," 527: [912, 318, 1233, 1234, 1207, 904, 919, 858, 1193, 1247],\n"," 529: [1233, 1193, 858, 1230, 2858, 1252, 1148, 2019, 750, 923],\n"," 535: [1233, 2858, 3897, 1230, 2396, 1247, 1207, 1288, 1148, 1094],\n"," 550: [3578, 3147, 2324, 1242, 2028, 1704, 4306, 1246, 6377, 4973],\n"," 560: [858, 2502, 1221, 1222, 2019, 1213, 912, 1201, 750, 4973],\n"," 573: [260, 1196, 1210, 912, 1207, 904, 1219, 919, 1035, 5952],\n"," 579: [1240, 6874, 110, 4226, 223, 1221, 7153, 1200, 1213, 4993],\n"," 582: [1233, 923, 924, 4973, 750, 2858, 1148, 3897, 2997, 1199],\n"," 583: [1233, 2858, 1193, 858, 2019, 923, 111, 924, 904, 1288],\n"," 584: [318, 919, 3578, 1234, 1035, 2324, 593, 3147, 912, 1242],\n"," 587: [111, 923, 2858, 2019, 1199, 912, 858, 1233, 4973, 904],\n"," 588: [260, 1148, 4993, 2571, 7153, 1288, 2858, 5952, 1233, 904],\n"," 596: [1094, 3114, 5952, 4993, 1148, 1394, 7153, 1250, 1358, 1246],\n"," 602: [2858, 318, 1148, 7153, 1233, 1288, 1193, 2571, 1136, 5952],\n"," 618: [1233, 912, 904, 1193, 1207, 1247, 858, 1148, 4973, 923],\n"," 624: [589, 260, 858, 1210, 1148, 1252, 1288, 5952, 7153, 32],\n"," 627: [260, 7153, 1148, 5952, 1288, 1136, 1196, 527, 904, 1233],\n"," 635: [858, 1148, 912, 1207, 1247, 1193, 50, 904, 1234, 4226],\n"," 639: [858, 1073, 1252, 111, 608, 912, 919, 923, 1199, 1207],\n"," 640: [260, 50, 1148, 296, 1234, 1193, 1213, 527, 1233, 593],\n"," 642: [1233, 912, 1222, 4973, 904, 4226, 750, 2542, 2502, 4011],\n"," 649: [318, 1233, 3147, 919, 1242, 1207, 912, 2396, 527, 1234],\n"," 652: [919, 318, 3578, 2324, 364, 1234, 1380, 1721, 1704, 593],\n"," 662: [2997, 1206, 924, 1208, 1222, 2959, 923, 1136, 1252, 1230],\n"," 671: [3897, 4973, 904, 1207, 1073, 1222, 231, 2291, 1250, 1682],\n"," 675: [260, 1196, 1210, 527, 50, 608, 5952, 1234, 912, 904],\n"," 684: [318, 593, 50, 260, 912, 1234, 527, 608, 904, 1196],\n"," 703: [318, 1233, 912, 904, 858, 1207, 1193, 1234, 4973, 1247],\n"," 712: [260, 1704, 1207, 904, 1196, 2324, 912, 1148, 1210, 4993],\n"," 726: [2858, 1233, 1193, 318, 904, 923, 7153, 2019, 111, 1136],\n"," 727: [260, 912, 1234, 904, 1207, 2324, 919, 1704, 1233, 1196],\n"," 744: [527, 912, 919, 1234, 260, 904, 1207, 2324, 1035, 50],\n"," 746: [1221, 2959, 2019, 858, 750, 111, 1136, 50, 1213, 4226],\n"," 757: [1148, 1288, 5952, 7153, 527, 1247, 1193, 2028, 2571, 3578],\n"," 761: [1148, 3147, 3578, 1288, 2028, 733, 1233, 527, 1230, 36],\n"," 765: [2959, 2502, 2542, 50, 318, 1233, 1222, 912, 4011, 4226],\n"," 766: [527, 593, 3578, 2324, 1234, 47, 17, 1380, 296, 6539],\n"," 771: [3578, 1917, 1148, 165, 4993, 3147, 2762, 36, 1704, 150],\n"," 776: [318, 912, 1193, 4226, 1213, 1148, 2019, 296, 527, 2571],\n"," 797: [527, 1207, 260, 904, 2762, 2028, 1247, 912, 2324, 4993],\n"," 812: [919, 1207, 2324, 3578, 904, 1704, 1233, 1246, 1242, 1721],\n"," 815: [318, 3578, 1148, 1233, 1234, 1036, 527, 1242, 2000, 1193],\n"," 818: [1233, 1148, 1247, 1193, 1234, 260, 2858, 858, 1250, 2762],\n"," 821: [1035, 919, 587, 500, 920, 364, 1028, 1641, 527, 2396],\n"," 822: [1233, 912, 904, 1148, 858, 260, 1193, 2858, 4226, 1234],\n"," 831: [589, 733, 527, 593, 919, 457, 3578, 50, 1234, 1036],\n"," 834: [912, 858, 1394, 1233, 2019, 1193, 904, 1222, 1073, 923],\n"," 837: [924, 1199, 923, 231, 2019, 858, 1394, 1208, 750, 912],\n"," 839: [296, 541, 1221, 2858, 750, 111, 2019, 2571, 50, 2959],\n"," 840: [4973, 904, 1233, 2858, 318, 4226, 2997, 3897, 2959, 5952],\n"," 851: [1233, 318, 1247, 2858, 904, 527, 1230, 1288, 1207, 1252],\n"," 855: [2959, 47, 1036, 1234, 858, 4226, 1240, 4011, 1221, 1198],\n"," 857: [318, 527, 260, 50, 1704, 1234, 2324, 1148, 1198, 1210],\n"," 868: [858, 1233, 2019, 1193, 750, 541, 1221, 1136, 912, 4226],\n"," 874: [318, 50, 527, 1234, 1036, 912, 4226, 1213, 904, 457],\n"," 904: [260, 5952, 2858, 1196, 111, 1219, 4993, 7153, 923, 1288],\n"," 905: [500, 150, 2396, 527, 919, 1584, 3147, 3578, 1207, 780],\n"," 906: [2019, 912, 111, 318, 750, 1219, 904, 541, 908, 1233],\n"," 924: [527, 1704, 260, 2324, 3578, 1207, 919, 1035, 590, 1234],\n"," 925: [1089, 608, 50, 2019, 4973, 47, 778, 2542, 4226, 2997],\n"," 927: [318, 3578, 593, 1035, 1234, 919, 50, 2324, 527, 1380],\n"," 940: [912, 1233, 318, 904, 1207, 1193, 527, 1247, 858, 1148],\n"," 948: [260, 1234, 912, 1196, 904, 3578, 1213, 1210, 1233, 1207],\n"," 953: [110, 733, 1148, 165, 380, 527, 457, 1193, 1198, 3578],\n"," 966: [608, 111, 1221, 1219, 2019, 750, 778, 50, 858, 908],\n"," 967: [111, 260, 2019, 541, 5952, 7153, 1136, 1199, 750, 608],\n"," 979: [318, 50, 593, 260, 1234, 1196, 912, 296, 527, 608],\n"," 980: [1221, 1196, 318, 2019, 912, 47, 1219, 4973, 111, 1234],\n"," 983: [50, 593, 1234, 3578, 1036, 919, 527, 260, 457, 110],\n"," 984: [1721, 1035, 3578, 527, 150, 539, 457, 1242, 590, 1234],\n"," 991: [231, 344, 1500, 2997, 1732, 3897, 858, 104, 2791, 2959],\n"," 995: [2959, 858, 1233, 912, 1222, 2542, 1234, 50, 2502, 4973],\n"," 1009: [1288, 4993, 11, 3147, 1230, 733, 2762, 2692, 36, 2028],\n"," 1011: [858, 1233, 4973, 1222, 750, 904, 2959, 1252, 318, 1230],\n"," 1014: [1394, 912, 1183, 923, 1219, 4973, 318, 357, 1028, 17],\n"," 1021: [1394, 912, 4973, 608, 2019, 1199, 1233, 924, 111, 750],\n"," 1030: [260, 527, 318, 1196, 904, 1207, 1704, 2324, 1234, 1210],\n"," 1033: [912, 858, 1234, 1233, 1193, 904, 4226, 1213, 4973, 1148],\n"," 1039: [111, 2858, 1136, 2019, 7153, 750, 1221, 1288, 1199, 5952],\n"," 1040: [1721, 539, 500, 587, 1035, 62, 919, 2396, 3147, 527],\n"," 1053: [50, 318, 296, 593, 2959, 47, 1213, 4226, 858, 912],\n"," 42: [1233, 1148, 2858, 1193, 1288, 1230, 318, 1252, 1247, 904],\n"," 73: [912, 527, 1234, 4973, 4226, 2324, 1193, 2019, 1247, 1210],\n"," 82: [1035, 919, 912, 318, 1207, 1234, 527, 1394, 593, 904],\n"," 159: [527, 318, 260, 1207, 1148, 1704, 904, 2028, 4993, 1233],\n"," 161: [1221, 111, 1213, 2019, 750, 858, 1288, 1089, 1080, 1199],\n"," 192: [1233, 912, 1199, 1208, 318, 904, 908, 924, 1201, 1080],\n"," 216: [527, 1704, 3578, 150, 356, 1207, 6539, 1148, 2028, 590],\n"," 219: [17, 1210, 318, 1196, 590, 6539, 1207, 4993, 2324, 2028],\n"," 290: [318, 912, 1035, 1234, 593, 527, 1207, 1233, 904, 2324],\n"," 379: [318, 912, 1234, 1233, 527, 593, 50, 904, 858, 919],\n"," 389: [260, 1196, 50, 1288, 1148, 904, 1136, 111, 2019, 1213],\n"," 400: [318, 1233, 912, 858, 904, 1193, 2019, 4973, 750, 4226],\n"," 428: [527, 1234, 318, 260, 593, 50, 912, 2324, 919, 904],\n"," 462: [1234, 527, 904, 1233, 858, 1148, 4226, 2324, 1198, 1213],\n"," 507: [318, 1233, 527, 1148, 904, 912, 1207, 1193, 1247, 1234],\n"," 600: [296, 50, 318, 260, 47, 593, 2571, 1196, 1036, 1198],\n"," 721: [1148, 527, 2762, 3147, 2028, 1233, 3578, 150, 4993, 2396],\n"," 793: [318, 2858, 1233, 1148, 858, 1193, 1288, 1136, 2019, 50],\n"," 912: [2959, 858, 318, 50, 296, 912, 1193, 1233, 593, 1234],\n"," 932: [318, 1233, 912, 904, 1207, 858, 1193, 1234, 527, 1247],\n"," 949: [231, 1278, 593, 1222, 2502, 1089, 2791, 1233, 608, 1193],\n"," 1025: [4973, 593, 1394, 1234, 2959, 904, 1073, 1193, 50, 1222],\n"," 46: [2858, 1233, 904, 318, 912, 923, 858, 1193, 2019, 111],\n"," 74: [318, 50, 1234, 1148, 1233, 527, 3578, 1193, 912, 2571],\n"," 342: [260, 1148, 912, 1207, 1247, 1193, 2571, 50, 904, 1234],\n"," 508: [2858, 111, 2019, 923, 1199, 608, 750, 858, 1136, 904],\n"," 580: [1035, 919, 1234, 593, 2706, 356, 1036, 3147, 318, 457],\n"," 774: [1234, 1233, 593, 919, 904, 4973, 1193, 1207, 1035, 527],\n"," 783: [1207, 527, 904, 919, 1233, 1035, 1247, 364, 2324, 1250],\n"," 1002: [1721, 597, 3147, 539, 587, 919, 500, 1035, 1242, 2396],\n"," 1023: [318, 1148, 2762, 1704, 2028, 1288, 1233, 1247, 150, 904],\n"," 1048: [111, 608, 1221, 541, 1199, 2019, 260, 750, 1136, 1219],\n"," 23: [318, 912, 904, 1196, 2858, 1207, 1234, 1233, 1148, 5952],\n"," 96: [318, 1704, 2324, 356, 150, 1234, 1207, 4306, 912, 497],\n"," 124: [1148, 2858, 318, 111, 1617, 1252, 904, 2762, 4226, 36],\n"," 136: [2959, 2502, 2542, 1221, 50, 1222, 750, 1233, 541, 2692],\n"," 148: [858, 527, 593, 912, 904, 1234, 1213, 318, 4226, 1233],\n"," 189: [318, 2571, 1148, 50, 3578, 4993, 527, 7153, 1233, 1234],\n"," 213: [150, 318, 1207, 62, 1584, 1148, 3578, 11, 1233, 497],\n"," 243: [296, 2019, 111, 750, 912, 1213, 1199, 1089, 4973, 541],\n"," 323: [1233, 904, 1148, 2858, 2028, 318, 1584, 3114, 2762, 6377],\n"," 352: [1207, 527, 62, 1233, 919, 318, 539, 1584, 150, 3147],\n"," 429: [2858, 111, 923, 912, 2019, 858, 1233, 904, 4973, 1199],\n"," 625: [356, 318, 3578, 527, 1035, 919, 2324, 1234, 1704, 1380],\n"," 808: [318, 1233, 1234, 50, 1193, 1148, 3147, 858, 3578, 912],\n"," 843: [923, 2858, 1233, 1288, 1148, 7153, 3897, 5952, 4993, 912],\n"," 847: [318, 1233, 1234, 912, 527, 3147, 919, 3578, 1242, 1207],\n"," 963: [318, 593, 50, 1234, 356, 919, 1035, 3578, 1036, 2324],\n"," 975: [2959, 1221, 47, 1213, 858, 318, 1089, 593, 4226, 1201],\n"," 998: [2858, 1233, 4973, 1207, 1219, 318, 858, 260, 527, 2019],\n"," 75: [50, 260, 1196, 1210, 318, 47, 593, 2571, 2959, 1213],\n"," 427: [1233, 912, 1193, 904, 1148, 4226, 1247, 1207, 2858, 4973],\n"," 466: [1148, 1288, 2858, 4993, 7153, 318, 2571, 260, 1233, 1193],\n"," 801: [608, 318, 2858, 50, 1219, 111, 904, 912, 1213, 1221],\n"," 848: [260, 527, 318, 50, 1234, 593, 2324, 912, 904, 1704],\n"," 888: [260, 318, 2858, 7153, 50, 2571, 1148, 4993, 1288, 4226],\n"," 191: [912, 904, 1233, 4973, 608, 858, 318, 923, 1207, 1394],\n"," 227: [318, 858, 50, 296, 912, 1221, 1213, 608, 4226, 1193],\n"," 245: [318, 1233, 912, 904, 2858, 1207, 527, 260, 1247, 1148],\n"," 380: [3147, 318, 780, 1148, 1233, 733, 1242, 2762, 2000, 527],\n"," 408: [541, 2858, 750, 1193, 1136, 1206, 1288, 1233, 2019, 111],\n"," 668: [541, 2571, 7153, 1136, 2858, 1288, 1221, 111, 2019, 4226],\n"," 747: [1148, 2858, 4993, 1233, 7153, 5952, 923, 318, 904, 527],\n"," 754: [318, 527, 1148, 1233, 260, 904, 912, 1207, 1247, 50],\n"," 11: [1148, 150, 527, 912, 919, 1207, 3578, 904, 1234, 2762],\n"," 16: [4993, 2571, 318, 5952, 7153, 527, 1288, 50, 1148, 2858],\n"," 81: [318, 858, 50, 1233, 912, 1213, 4226, 1221, 2019, 1234],\n"," 86: [912, 1207, 1193, 1234, 1233, 318, 1242, 3147, 904, 4973],\n"," 97: [260, 527, 912, 50, 1234, 1233, 318, 904, 593, 1148],\n"," 151: [1233, 904, 1207, 2858, 1193, 1148, 1247, 858, 4973, 923],\n"," 235: [1240, 293, 1148, 1288, 1136, 1221, 5952, 6874, 1196, 36],\n"," 251: [1219, 111, 1089, 1394, 2019, 2959, 912, 4973, 50, 750],\n"," 258: [318, 1234, 50, 3578, 1233, 1148, 3147, 1036, 527, 593],\n"," 278: [318, 1234, 1704, 2324, 3578, 904, 1148, 1207, 912, 50],\n"," 388: [318, 260, 296, 593, 1196, 1234, 1213, 47, 1210, 858],\n"," 551: [318, 3147, 3578, 780, 1148, 150, 597, 11, 2762, 2396],\n"," 606: [1233, 231, 1193, 1230, 924, 1252, 2997, 1222, 2019, 923],\n"," 614: [318, 912, 1233, 904, 1234, 1193, 527, 1207, 50, 1148],\n"," 681: [1233, 923, 912, 904, 1207, 4973, 1247, 1193, 858, 924],\n"," 686: [2959, 912, 4973, 1193, 231, 1213, 296, 2502, 318, 919],\n"," 704: [1148, 1036, 3147, 318, 1233, 1234, 733, 1198, 527, 1193],\n"," 711: [2959, 50, 1221, 858, 318, 1213, 4226, 593, 2019, 608],\n"," 718: [260, 318, 50, 1196, 527, 1210, 1234, 2571, 1198, 904],\n"," 873: [318, 1148, 527, 1207, 904, 1247, 1193, 912, 2762, 3147],\n"," 962: [1233, 318, 858, 1193, 912, 904, 1234, 1148, 50, 1247],\n"," 985: [1233, 1230, 231, 1193, 1252, 858, 2997, 1222, 1208, 923],\n"," 993: [260, 858, 527, 593, 912, 1198, 2571, 50, 904, 1234],\n"," 58: [2959, 858, 1193, 4973, 2542, 1222, 2502, 1213, 1035, 4011],\n"," 112: [2858, 4973, 1148, 7153, 5952, 2997, 3897, 4993, 4226, 1617],\n"," 357: [2959, 296, 858, 50, 1089, 593, 1221, 1213, 912, 2502],\n"," 367: [1233, 1148, 50, 2571, 2858, 4226, 260, 7153, 1234, 1136],\n"," 548: [1148, 1233, 527, 904, 1193, 912, 2858, 2571, 50, 1234],\n"," 791: [318, 50, 858, 1233, 1193, 904, 1234, 4226, 1213, 260],\n"," 909: [318, 858, 1233, 912, 1193, 50, 1234, 593, 904, 4973],\n"," 1041: [608, 1213, 1234, 1221, 912, 1219, 904, 2324, 2019, 908],\n"," 13: [318, 2959, 1036, 2571, 1240, 47, 589, 4226, 4011, 593],\n"," 83: [1233, 904, 2858, 1148, 1247, 1230, 1252, 318, 4973, 2019],\n"," 869: [858, 912, 2019, 1233, 1193, 1221, 608, 4973, 750, 1213],\n"," 246: [318, 1234, 3578, 50, 527, 593, 1036, 2324, 1148, 1233],\n"," 415: [858, 2959, 912, 608, 2019, 4973, 1221, 50, 1213, 318],\n"," 477: [1234, 1233, 904, 4973, 608, 1148, 750, 908, 2858, 1247],\n"," 569: [260, 858, 1148, 527, 912, 1207, 1247, 1193, 904, 1234],\n"," 694: [527, 1035, 318, 364, 2324, 904, 1234, 1028, 1246, 4973],\n"," 729: [527, 318, 1234, 912, 260, 2324, 1207, 904, 1233, 50],\n"," 741: [527, 912, 1207, 1233, 919, 904, 1234, 2324, 1247, 1035],\n"," 965: [260, 2571, 7153, 4993, 5952, 1288, 2858, 541, 1136, 4226],\n"," 17: [1148, 527, 912, 923, 1207, 1247, 2396, 904, 2858, 1233],\n"," 37: [2502, 1221, 1206, 1213, 541, 778, 1997, 608, 858, 750],\n"," 40: [912, 858, 260, 1221, 904, 2019, 4226, 4973, 1234, 2959],\n"," 114: [527, 318, 1207, 904, 912, 1233, 2858, 1148, 1247, 923],\n"," 137: [380, 356, 1917, 733, 597, 165, 3147, 2001, 786, 587],\n"," 153: [1196, 1210, 318, 2571, 4993, 5952, 50, 7153, 2858, 1288],\n"," 211: [318, 527, 1213, 1234, 4226, 5952, 7153, 2019, 4973, 1148],\n"," 286: [296, 318, 1148, 7153, 293, 1136, 2692, 1288, 4011, 47],\n"," 330: [318, 50, 1036, 1234, 593, 3578, 1198, 4226, 1148, 858],\n"," 336: [318, 50, 296, 7153, 4993, 5952, 4226, 1198, 1148, 2858],\n"," 372: [858, 593, 608, 1221, 50, 1089, 296, 1213, 1201, 47],\n"," 376: [50, 7153, 1221, 1136, 4226, 2959, 318, 2858, 1288, 750],\n"," 412: [527, 1207, 260, 904, 1148, 912, 1247, 4993, 1288, 5952],\n"," 447: [2858, 541, 111, 924, 7153, 1199, 1233, 1208, 750, 1193],\n"," 467: [2571, 260, 1148, 4993, 7153, 296, 1198, 1288, 4226, 293],\n"," 490: [1148, 1233, 260, 904, 2858, 2571, 1193, 4993, 1247, 1288],\n"," 518: [1233, 912, 858, 1234, 904, 1148, 50, 1207, 1247, 4973],\n"," 608: [6874, 47, 1240, 50, 1201, 2542, 1089, 1221, 223, 541],\n"," 619: [318, 50, 2571, 296, 4226, 1234, 1148, 2959, 1193, 593],\n"," 644: [733, 780, 802, 858, 1148, 1252, 1288, 4995, 6377, 7153],\n"," 667: [527, 904, 2858, 912, 1233, 1148, 7153, 1207, 5952, 50],\n"," 698: [608, 260, 858, 912, 1213, 1221, 2019, 904, 750, 4973],\n"," 709: [50, 296, 318, 7153, 4226, 1213, 1136, 541, 5952, 2019],\n"," 728: [318, 858, 50, 1193, 1233, 4226, 2019, 2858, 1221, 1148],\n"," 733: [318, 50, 260, 1234, 1148, 4226, 858, 1233, 593, 527],\n"," 777: [527, 904, 318, 912, 923, 1207, 1233, 5952, 1219, 4973],\n"," 813: [593, 608, 318, 50, 296, 912, 1213, 4973, 904, 527],\n"," 832: [1233, 318, 2858, 1148, 904, 858, 912, 1288, 1247, 923],\n"," 893: [50, 593, 260, 1234, 527, 912, 904, 858, 2324, 1233],\n"," 901: [260, 1148, 1252, 1288, 5952, 7153, 527, 593, 912, 923],\n"," 937: [296, 593, 260, 1234, 1196, 2571, 1198, 4226, 1213, 1210],\n"," 947: [5952, 4993, 527, 7153, 2858, 1288, 17, 1704, 1219, 111],\n"," 362: [912, 1207, 919, 904, 1035, 4973, 1233, 1394, 1234, 364],\n"," 375: [1233, 1193, 858, 318, 1148, 2019, 750, 4226, 50, 2959],\n"," 599: [260, 858, 1148, 527, 593, 1247, 1193, 1198, 2571, 3578],\n"," 632: [260, 318, 296, 527, 1234, 5952, 1213, 1198, 4226, 47],\n"," 779: [260, 2858, 5952, 111, 1288, 4993, 1196, 1136, 923, 1199],\n"," 1022: [1233, 1193, 318, 904, 912, 1148, 1247, 2858, 1207, 858],\n"," 1034: [318, 527, 1233, 1207, 904, 912, 1148, 1247, 260, 1193],\n"," 2: [527, 1196, 318, 1704, 356, 3578, 2324, 17, 50, 4993],\n"," 3: [318, 50, 1234, 527, 260, 593, 912, 904, 1233, 2324],\n"," 104: [1148, 1288, 7153, 527, 1230, 2028, 3578, 50, 904, 1234],\n"," 105: [318, 2858, 1233, 858, 904, 1148, 912, 2019, 7153, 4226],\n"," 184: [260, 1196, 318, 2571, 593, 5952, 7153, 4993, 527, 1198],\n"," 218: [858, 2019, 1233, 1193, 750, 541, 1221, 1136, 4226, 912],\n"," 250: [527, 260, 912, 1234, 904, 1233, 1207, 1148, 50, 2324],\n"," 313: [527, 318, 260, 1148, 4993, 3578, 904, 2324, 2762, 1233],\n"," 377: [1207, 919, 912, 1035, 1233, 1234, 364, 4973, 1246, 150],\n"," 413: [50, 318, 608, 1221, 1213, 2019, 912, 4226, 593, 750],\n"," 576: [858, 912, 608, 2019, 4973, 50, 904, 1233, 750, 1193],\n"," 586: [1233, 912, 858, 4973, 904, 923, 1193, 1207, 1247, 2019],\n"," 595: [1210, 4993, 2628, 3578, 380, 318, 356, 1527, 7153, 50],\n"," 610: [318, 1207, 3578, 150, 2324, 1035, 1233, 1234, 3147, 912],\n"," 613: [318, 260, 527, 50, 904, 912, 1148, 593, 1233, 2858],\n"," 637: [260, 318, 2571, 527, 1148, 50, 4993, 7153, 2858, 1196],\n"," 663: [858, 912, 1233, 4973, 1193, 2019, 904, 318, 608, 750],\n"," 740: [527, 50, 1704, 3578, 1234, 2324, 356, 4993, 1148, 904],\n"," 787: [260, 150, 3578, 318, 356, 17, 1148, 2028, 2762, 497],\n"," 804: [2959, 296, 50, 858, 318, 1234, 1213, 912, 1193, 1221],\n"," 805: [858, 47, 608, 1221, 50, 1234, 1089, 2959, 296, 1213],\n"," 866: [2959, 4226, 2019, 1234, 912, 5952, 541, 908, 7153, 1079],\n"," 883: [318, 260, 1148, 2571, 527, 4993, 50, 7153, 1233, 2858],\n"," 941: [2997, 858, 1233, 924, 1193, 2019, 1206, 750, 1199, 541],\n"," 1007: [1233, 1193, 1230, 858, 1252, 1222, 2019, 750, 924, 912],\n"," 6: [1148, 527, 593, 912, 1207, 1247, 50, 904, 1234, 4226],\n"," 7: [1394, 1233, 4973, 858, 919, 1193, 1247, 318, 1035, 1073],\n"," 14: [527, 318, 4993, 1148, 2858, 5952, 904, 1288, 1207, 1233],\n"," 24: [527, 318, 1704, 1148, 1207, 150, 2028, 2762, 904, 3578],\n"," 57: [1148, 527, 1193, 1233, 318, 2571, 904, 1234, 1247, 3147],\n"," 60: [912, 919, 1207, 904, 4973, 364, 1250, 2324, 908, 1242],\n"," 64: [527, 1148, 318, 2858, 4993, 1288, 904, 1233, 5952, 7153],\n"," 84: [527, 318, 1148, 4993, 1704, 2028, 1207, 2858, 5952, 904],\n"," 90: [1148, 1233, 318, 527, 1207, 1247, 2028, 904, 2762, 2396],\n"," 98: [858, 47, 593, 912, 1221, 1196, 50, 4226, 1089, 2959],\n"," 113: [318, 1233, 912, 904, 1193, 858, 527, 1234, 1207, 1148],\n"," 120: [1148, 2571, 3578, 3147, 733, 318, 11, 2762, 2000, 4993],\n"," 123: [1148, 1230, 1233, 11, 2762, 1288, 1247, 318, 3147, 1252],\n"," 157: [364, 858, 1148, 1246, 1252, 1288, 4995, 5952, 6377, 7153],\n"," 194: [1230, 2396, 1233, 3147, 1207, 11, 1252, 1641, 1242, 1247],\n"," 200: [858, 1148, 1252, 1288, 912, 923, 1207, 1225, 1230, 1247],\n"," 204: [318, 912, 904, 527, 2858, 1233, 1207, 4973, 858, 923],\n"," 205: [318, 2019, 750, 2858, 904, 4226, 4973, 1213, 50, 1148],\n"," 225: [318, 1148, 2571, 527, 50, 4993, 1233, 7153, 1234, 1198],\n"," 229: [318, 50, 593, 912, 1196, 296, 858, 1213, 904, 1234],\n"," 237: [527, 17, 1721, 150, 1028, 590, 1035, 62, 919, 508],\n"," 242: [858, 1148, 1252, 1288, 527, 912, 923, 1207, 1230, 1247],\n"," 252: [318, 4973, 923, 1247, 1234, 858, 1148, 1219, 1250, 1394],\n"," 266: [858, 111, 541, 1221, 50, 4226, 1136, 296, 1213, 750],\n"," 270: [2858, 318, 527, 904, 5952, 1148, 1233, 4993, 7153, 1288],\n"," 282: [1233, 318, 912, 1193, 904, 858, 1207, 1247, 1148, 4973],\n"," 297: [318, 50, 296, 1196, 1213, 593, 4226, 1221, 2858, 858],\n"," 309: [1148, 1233, 318, 527, 1247, 1193, 2858, 1288, 904, 2762],\n"," 316: [1148, 1233, 318, 1230, 1193, 1288, 1247, 2762, 3147, 2858],\n"," 327: [593, 1221, 50, 2959, 296, 1213, 318, 912, 4226, 2019],\n"," 356: [318, 1233, 912, 904, 1148, 1193, 858, 527, 1247, 1234],\n"," 393: [1233, 318, 1193, 912, 1148, 3147, 1207, 904, 1247, 858],\n"," 394: [1148, 1288, 7153, 527, 1247, 1193, 2571, 904, 1234, 4226],\n"," 395: [780, 733, 1148, 2000, 1233, 1193, 1036, 589, 2571, 2692],\n"," 399: [1233, 1193, 858, 318, 912, 1230, 1148, 1252, 904, 2019],\n"," 401: [2959, 1233, 1193, 912, 2019, 50, 750, 4226, 296, 4973],\n"," 402: [318, 2959, 50, 1234, 858, 593, 1036, 1193, 912, 3147],\n"," 405: [527, 1207, 2396, 1148, 1233, 318, 2028, 1247, 904, 1584],\n"," 417: [318, 912, 50, 904, 858, 1233, 2858, 1213, 4226, 608],\n"," 422: [318, 1148, 1233, 527, 904, 1247, 1207, 2858, 1193, 912],\n"," 437: [5952, 7153, 4993, 923, 924, 4226, 1148, 858, 1206, 1233],\n"," 455: [318, 527, 1148, 1233, 904, 4993, 2858, 1207, 912, 1247],\n"," 461: [318, 50, 858, 2959, 1193, 1233, 1234, 4226, 912, 1213],\n"," 473: [318, 527, 1196, 5952, 2858, 904, 4993, 912, 1210, 7153],\n"," 484: [1148, 1233, 318, 2858, 1288, 1193, 4993, 2571, 7153, 904],\n"," 499: [318, 1196, 593, 50, 904, 1219, 1213, 4973, 527, 1234],\n"," 526: [318, 50, 858, 1233, 1193, 2858, 4226, 1148, 2019, 2571],\n"," 537: [318, 527, 50, 1196, 904, 912, 593, 2858, 1234, 5952],\n"," 542: [318, 2858, 2019, 4973, 4226, 1213, 608, 750, 1234, 1247],\n"," 557: [527, 1148, 1207, 2858, 1233, 2028, 4993, 1288, 2396, 904],\n"," 563: [296, 1221, 2959, 50, 111, 541, 1213, 2019, 858, 750],\n"," 570: [858, 1148, 5952, 7153, 593, 912, 1196, 2571, 50, 904],\n"," 575: [1148, 1288, 5952, 7153, 527, 912, 919, 923, 1207, 1219],\n"," 594: [11, 1148, 3147, 2762, 2396, 527, 597, 2028, 150, 1584],\n"," 607: [2571, 1148, 1234, 296, 527, 7153, 1213, 1193, 3578, 1036],\n"," 631: [912, 858, 318, 1233, 4973, 904, 50, 1234, 2019, 1213],\n"," 651: [4973, 904, 318, 1222, 4226, 2959, 50, 1208, 111, 924],\n"," 664: [318, 1233, 1148, 912, 904, 858, 2858, 1247, 1207, 527],\n"," 685: [1219, 912, 1394, 904, 4973, 923, 2858, 318, 1207, 1196],\n"," 690: [318, 1148, 527, 1233, 2858, 904, 4993, 1288, 7153, 1247],\n"," 696: [318, 527, 1234, 912, 904, 50, 1148, 1207, 2324, 1233],\n"," 724: [318, 912, 904, 1233, 527, 858, 50, 2858, 4973, 1234],\n"," 738: [527, 318, 1148, 4993, 1704, 2571, 3578, 2028, 2762, 1288],\n"," 762: [1196, 318, 2858, 50, 5952, 904, 7153, 912, 527, 1213],\n"," 763: [318, 3578, 1234, 1704, 2324, 2571, 50, 2762, 1233, 1198],\n"," 770: [1233, 2396, 923, 1230, 1207, 1252, 1247, 3897, 904, 1193],\n"," 796: [318, 912, 904, 2858, 1233, 858, 527, 4973, 923, 1207],\n"," 800: [318, 50, 1148, 2571, 1233, 1193, 858, 4226, 1234, 904],\n"," 829: [1148, 1252, 1288, 5952, 7153, 111, 527, 608, 912, 923],\n"," 836: [527, 318, 904, 1207, 912, 1233, 1148, 2858, 1247, 1704],\n"," 882: [858, 912, 1207, 1193, 904, 1233, 318, 4973, 1247, 919],\n"," 900: [296, 50, 318, 1221, 1213, 912, 2019, 1196, 593, 4226],\n"," 903: [318, 1148, 527, 1233, 904, 3578, 2762, 1207, 1247, 1234],\n"," 914: [318, 1233, 912, 1234, 527, 1193, 904, 1148, 858, 1207],\n"," 918: [1148, 2571, 1288, 318, 1233, 4993, 1230, 3147, 1193, 2762],\n"," 920: [2959, 1193, 2019, 296, 1233, 750, 318, 50, 1213, 4226],\n"," 934: [318, 1148, 1233, 2858, 527, 904, 1193, 7153, 1288, 4993],\n"," 945: [527, 1207, 2396, 1233, 904, 923, 1247, 912, 1148, 2858],\n"," 950: [912, 858, 318, 4973, 1207, 923, 1247, 750, 908, 1213],\n"," 952: [1148, 1233, 2571, 318, 1288, 4993, 1193, 2858, 7153, 1230],\n"," 982: [318, 1233, 1193, 912, 904, 2858, 1148, 2019, 50, 4226],\n"," 989: [1221, 4226, 2959, 750, 318, 2019, 4973, 593, 111, 1148],\n"," 1016: [5952, 7153, 1196, 541, 4993, 1288, 1136, 1221, 2571, 1199],\n"," 1019: [1148, 1233, 318, 1193, 3147, 2571, 1230, 1247, 2762, 858],\n"," 1044: [364, 539, 858, 1148, 1246, 1252, 1288, 4995, 5952, 6377],\n"," 1051: [318, 527, 1207, 1233, 904, 912, 1148, 1247, 1234, 2858],\n"," 174: [1210, 260, 1196, 356, 1035, 1704, 1380, 2324, 919, 1234],\n"," 676: [318, 527, 3578, 1148, 1704, 3147, 2324, 2762, 356, 1234],\n"," 764: [260, 904, 912, 1207, 1196, 1234, 2324, 1148, 1233, 50],\n"," 1052: [318, 50, 1234, 527, 1148, 2571, 1036, 260, 1233, 1198],\n"," 5: [296, 1196, 50, 260, 1213, 1089, 2959, 318, 2019, 4226],\n"," 27: [318, 1148, 1233, 2858, 1193, 1288, 904, 2571, 527, 4993],\n"," 33: [318, 260, 527, 593, 50, 1196, 1234, 1210, 2324, 912],\n"," 134: [858, 1148, 1252, 1288, 541, 912, 923, 1207, 1221, 1225],\n"," 142: [260, 318, 50, 1196, 296, 1210, 1213, 1234, 527, 912],\n"," 156: [2396, 11, 1148, 1233, 527, 1584, 2028, 2762, 1207, 1230],\n"," 167: [593, 1196, 50, 296, 1089, 2959, 1213, 260, 912, 318],\n"," 177: [1233, 858, 1193, 912, 318, 904, 2019, 2858, 4973, 750],\n"," 224: [1148, 3147, 1233, 318, 733, 1230, 1193, 1242, 2000, 3578],\n"," 269: [318, 527, 260, 1148, 1234, 3578, 904, 2324, 1233, 1704],\n"," 312: [318, 1233, 1148, 1193, 858, 2858, 2571, 4226, 50, 1288],\n"," 360: [527, 318, 260, 912, 1207, 904, 919, 1196, 2324, 4973],\n"," 385: [527, 318, 2858, 260, 904, 1148, 1233, 1207, 4993, 1288],\n"," 411: [318, 527, 1233, 260, 1234, 912, 1148, 904, 50, 1207],\n"," 464: [1148, 527, 912, 904, 2858, 1233, 318, 260, 1247, 1207],\n"," 568: [11, 3147, 1230, 1148, 1233, 2396, 802, 2762, 1252, 1193],\n"," 612: [1233, 1148, 318, 904, 1193, 1247, 2858, 1207, 912, 1230],\n"," 630: [2396, 11, 1233, 1230, 62, 1584, 1148, 1207, 3147, 1247],\n"," 706: [296, 50, 318, 2571, 2959, 260, 4226, 1221, 1213, 47],\n"," 737: [296, 2959, 50, 1221, 858, 1213, 318, 1089, 593, 4226],\n"," 749: [318, 1148, 50, 1233, 1234, 527, 260, 2571, 1193, 912],\n"," 756: [260, 527, 318, 912, 904, 1196, 1207, 2858, 1234, 4973],\n"," 811: [1233, 1193, 1230, 3147, 858, 1252, 318, 912, 1242, 1148],\n"," 853: [318, 1233, 1148, 527, 1193, 904, 912, 1207, 1234, 1247],\n"," 884: [318, 1148, 527, 2571, 3578, 260, 1233, 2762, 4993, 1234],\n"," 917: [318, 527, 260, 904, 1148, 1233, 912, 1207, 2858, 1247],\n"," 951: [3147, 1233, 1193, 318, 1230, 1242, 858, 1148, 2000, 2692],\n"," 955: [260, 858, 1148, 47, 593, 912, 1193, 1198, 2571, 3578],\n"," 997: [858, 1148, 1252, 1288, 527, 912, 923, 1207, 1225, 1230],\n"," 1032: [260, 733, 858, 1148, 1246, 1252, 1288, 4995, 5952, 6377],\n"," 1043: [1148, 3147, 11, 733, 597, 2396, 2762, 802, 1230, 1233],\n"," 670: [318, 50, 593, 296, 1234, 2959, 858, 912, 1213, 260],\n"," 923: [260, 1148, 150, 527, 912, 1207, 1247, 2028, 3578, 904],\n"," 931: [11, 597, 3147, 802, 1148, 2000, 587, 2396, 539, 500],\n"," 969: [527, 318, 1704, 260, 1207, 1148, 150, 2028, 2324, 904],\n"," 12: [1148, 318, 1233, 1193, 1230, 1247, 2571, 527, 1288, 904],\n"," 370: [1148, 318, 1233, 527, 260, 2571, 1193, 904, 1234, 4993],\n"," 597: [318, 1233, 904, 858, 1193, 50, 260, 1234, 1148, 527],\n"," 195: [1233, 912, 904, 318, 2396, 1222, 923, 1242, 3147, 1148],\n"," 337: [858, 912, 50, 296, 608, 2019, 2959, 4973, 904, 1193],\n"," 910: [608, 1221, 1219, 111, 2019, 912, 750, 1394, 4973, 541],\n"," 63: [318, 260, 50, 1148, 1196, 2571, 4993, 1234, 7153, 5952],\n"," 70: [1233, 1247, 923, 1250, 919, 2858, 1394, 2396, 1230, 1225],\n"," 99: [2997, 2019, 2959, 1221, 1208, 1233, 1222, 2858, 1732, 2502],\n"," 121: [260, 4993, 5952, 7153, 1704, 1148, 1234, 110, 3578, 4226],\n"," 130: [2959, 2019, 1221, 912, 750, 1222, 2502, 1213, 4226, 318],\n"," 244: [318, 1233, 260, 1207, 4973, 923, 2019, 4226, 908, 1250],\n"," 291: [912, 904, 4973, 608, 1233, 923, 1394, 318, 2858, 1219],\n"," 335: [318, 608, 1233, 50, 2959, 1213, 296, 1221, 1193, 593],\n"," 361: [1233, 912, 904, 318, 923, 1193, 1207, 1247, 4973, 1148],\n"," 470: [2019, 260, 912, 1196, 904, 1193, 908, 1233, 1201, 7153],\n"," 497: [296, 2959, 1221, 2019, 608, 541, 1206, 750, 1213, 50],\n"," 620: [260, 318, 2571, 7153, 4993, 5952, 2858, 50, 1148, 1196],\n"," 648: [3147, 780, 1230, 733, 1242, 2762, 3578, 2692, 2571, 11],\n"," 666: [260, 527, 318, 1288, 904, 923, 111, 1148, 912, 1207],\n"," 710: [260, 912, 904, 1233, 1148, 1247, 1234, 4973, 2324, 923],\n"," 794: [2571, 4993, 1288, 260, 5952, 2858, 318, 1136, 293, 541],\n"," 854: [260, 318, 2571, 1148, 4993, 7153, 1288, 5952, 3578, 1704],\n"," 861: [318, 912, 1233, 904, 1193, 4973, 1234, 50, 2019, 1207],\n"," 819: [1233, 912, 1207, 904, 2396, 4973, 1193, 923, 1247, 858],\n"," 87: [589, 260, 858, 1148, 1252, 1288, 4995, 5952, 6377, 7153],\n"," 317: [1233, 318, 858, 912, 904, 2858, 1148, 2019, 4973, 1247],\n"," 324: [296, 608, 1221, 50, 1196, 593, 260, 1201, 2019, 858],\n"," 387: [318, 912, 50, 593, 1234, 858, 260, 904, 527, 1233],\n"," 451: [296, 260, 50, 1221, 2858, 318, 541, 1136, 111, 1213],\n"," 502: [527, 150, 1207, 62, 1584, 1704, 1721, 17, 2028, 318],\n"," 559: [260, 1148, 527, 904, 2858, 4993, 318, 1233, 2571, 7153],\n"," 973: [858, 1233, 1193, 2019, 912, 750, 318, 4973, 904, 1221],\n"," 1015: [318, 912, 1233, 858, 1207, 1193, 527, 1234, 1247, 4973],\n"," 1017: [318, 2571, 1148, 50, 260, 4226, 1233, 1193, 2858, 1288],\n"," 85: [260, 1196, 1210, 318, 110, 1234, 47, 1198, 1704, 2324],\n"," 306: [318, 1233, 912, 858, 1193, 904, 1234, 1207, 4973, 1247],\n"," 653: [318, 1233, 912, 904, 858, 1193, 50, 1148, 1234, 2858],\n"," 371: [318, 50, 260, 2571, 4226, 1234, 593, 1213, 1198, 858],\n"," 566: [780, 3147, 736, 104, 733, 802, 1233, 2000, 11, 597],\n"," 331: [296, 858, 1221, 2019, 1089, 912, 1222, 750, 2997, 608],\n"," 665: [50, 318, 858, 2959, 1221, 1213, 1233, 1136, 2571, 260],\n"," 872: [318, 912, 858, 1233, 904, 1234, 4973, 4226, 593, 1213],\n"," 879: [858, 527, 912, 923, 1207, 2858, 1233, 318, 4973, 1247],\n"," 486: [318, 1233, 1148, 1193, 858, 50, 2571, 912, 4226, 904],\n"," 817: [2396, 1233, 1584, 1148, 2028, 3147, 2762, 1230, 904, 1242],\n"," 864: [260, 318, 1704, 1207, 904, 1148, 2324, 17, 4993, 912],\n"," 52: [1233, 912, 858, 4973, 1207, 1247, 1230, 318, 923, 2019],\n"," 9: [2571, 1148, 7153, 318, 541, 1136, 1193, 1233, 4226, 858],\n"," 117: [527, 260, 318, 1207, 904, 1704, 1148, 912, 2858, 1233],\n"," 220: [318, 50, 858, 1233, 1193, 4226, 912, 1234, 2959, 1213],\n"," 544: [1206, 1221, 541, 2997, 608, 111, 1201, 2019, 750, 1200],\n"," 546: [2858, 1148, 1288, 1233, 2571, 260, 1193, 1136, 904, 541],\n"," 363: [318, 1233, 1148, 260, 904, 2858, 1193, 912, 527, 858],\n"," 445: [318, 2571, 1148, 260, 50, 2858, 1233, 1193, 4226, 1288],\n"," 492: [260, 4993, 1288, 7153, 1148, 2858, 2571, 527, 318, 2028],\n"," 534: [2858, 541, 111, 1136, 750, 2019, 7153, 1288, 1221, 858],\n"," 234: [296, 589, 1240, 1036, 47, 2502, 380, 2542, 1200, 6874],\n"," 430: [296, 50, 318, 2959, 593, 858, 1213, 4226, 260, 1234],\n"," 1027: [318, 912, 1233, 1234, 858, 1193, 50, 904, 593, 1207],\n"," 140: [1233, 904, 858, 4973, 923, 1207, 2019, 1247, 608, 908],\n"," 373: [919, 356, 1234, 593, 3578, 2324, 50, 527, 1380, 457],\n"," 926: [2959, 296, 1206, 2997, 858, 1221, 2502, 2019, 541, 1222],\n"," 781: [260, 858, 1148, 541, 608, 912, 923, 1221, 1193, 50],\n"," 825: [318, 912, 1207, 904, 1148, 1247, 527, 3147, 1242, 2396],\n"," 913: [1035, 912, 318, 1234, 858, 1233, 364, 4973, 3147, 1207],\n"," 453: [318, 3578, 356, 527, 2324, 1704, 1234, 260, 50, 1036],\n"," 540: [260, 47, 593, 1221, 1196, 50, 1234, 4226, 2959, 296],\n"," 66: [50, 1221, 858, 2019, 318, 4226, 593, 750, 608, 541],\n"," 185: [318, 527, 1207, 1233, 3578, 1148, 3147, 150, 2324, 2762],\n"," 222: [296, 2959, 50, 858, 318, 1221, 4226, 1193, 1213, 2019],\n"," 498: [1233, 2858, 858, 1193, 2019, 111, 750, 923, 904, 1136],\n"," 994: [912, 608, 904, 1394, 527, 1207, 4973, 1219, 260, 923],\n"," 165: [318, 2571, 260, 50, 7153, 1148, 2858, 4226, 1288, 1136],\n"," 202: [260, 858, 1148, 150, 912, 919, 1207, 1247, 1193, 3578],\n"," 180: [260, 1148, 1288, 5952, 7153, 527, 912, 923, 1207, 1225],\n"," 261: [318, 912, 527, 904, 1207, 1233, 4973, 919, 1234, 260],\n"," 435: [318, 1233, 527, 912, 904, 1207, 1148, 1247, 2858, 1193],\n"," 322: [318, 50, 858, 912, 1233, 1193, 4226, 904, 1213, 260],\n"," 238: [260, 7153, 4993, 318, 5952, 1288, 1148, 2571, 527, 904],\n"," 425: [2858, 923, 1233, 1199, 924, 904, 1288, 2019, 912, 1208],\n"," 512: [858, 1233, 912, 2019, 1193, 4973, 904, 750, 923, 1221],\n"," 725: [296, 50, 858, 318, 1221, 1213, 4226, 2019, 1193, 750],\n"," 732: [1148, 527, 4993, 1288, 2028, 1233, 318, 2762, 1247, 7153],\n"," 916: [296, 541, 1221, 2571, 7153, 111, 1136, 1206, 260, 2858],\n"," 736: [2571, 50, 296, 318, 2959, 4226, 1221, 541, 260, 7153],\n"," 961: [318, 50, 1233, 912, 1234, 858, 904, 1148, 593, 260],\n"," 974: [318, 50, 260, 912, 1234, 593, 904, 858, 4226, 1148],\n"," 443: [50, 296, 2571, 260, 1234, 4226, 1036, 1198, 858, 2959],\n"," 1012: [318, 912, 1234, 1233, 858, 919, 904, 527, 50, 1207],\n"," 515: [318, 593, 50, 1234, 858, 904, 1233, 4973, 527, 919],\n"," 288: [260, 527, 912, 1207, 1234, 318, 2324, 1704, 1233, 3578],\n"," 978: [1207, 1035, 527, 912, 318, 364, 2396, 1233, 904, 1247],\n"," 28: [318, 260, 50, 527, 2571, 1148, 1234, 4226, 593, 1198],\n"," 458: [527, 1207, 904, 318, 912, 1233, 1247, 923, 260, 1148],\n"," 475: [858, 1233, 1193, 318, 912, 2019, 50, 750, 4226, 1221],\n"," 592: [318, 2571, 50, 1148, 260, 4226, 1193, 1233, 7153, 858],\n"," 598: [912, 318, 858, 1233, 904, 4973, 1193, 2019, 608, 2858],\n"," 943: [2858, 318, 260, 1148, 1233, 1288, 7153, 904, 4993, 5952],\n"," 55: [858, 2959, 912, 2019, 1233, 4973, 608, 750, 296, 1213],\n"," 520: [1233, 858, 1193, 912, 904, 2019, 4973, 1148, 1247, 50],\n"," 697: [1233, 2396, 923, 1230, 1207, 1252, 1193, 1247, 912, 904],\n"," 849: [858, 1148, 593, 912, 1193, 2571, 50, 1234, 4226, 1233],\n"," 1003: [260, 1148, 1288, 7153, 50, 2858, 4993, 318, 5952, 527],\n"," 705: [912, 608, 858, 318, 4973, 593, 904, 50, 1213, 2019],\n"," 231: [296, 318, 260, 593, 2959, 1213, 1196, 4226, 1221, 47],\n"," 699: [858, 912, 1234, 1233, 593, 1193, 904, 4226, 1213, 260],\n"," 448: [318, 1233, 904, 912, 1148, 1193, 260, 858, 1247, 527],\n"," 750: [318, 527, 260, 1148, 904, 912, 1233, 1234, 1207, 50],\n"," 782: [318, 50, 858, 912, 1233, 1234, 1193, 4226, 904, 593],\n"," 108: [296, 858, 2959, 1221, 2019, 50, 1213, 318, 750, 912],\n"," 29: [318, 1036, 50, 589, 3578, 380, 2571, 1234, 1240, 3147]})"]},"metadata":{},"execution_count":8}],"source":["# 학습 데이터에 나오지 않는 사용자와 아이템의 조합을 준비한다\n","data_test = data_train.build_anti_testset(None)\n","predictions = matrix_factorization.test(data_test)\n","pred_user2items = get_top_n(predictions, n=10)\n","pred_user2items"]},{"cell_type":"code","execution_count":9,"id":"afa174f5","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":841},"id":"afa174f5","executionInfo":{"status":"ok","timestamp":1672119551834,"user_tz":-540,"elapsed":26,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"cc01c6d1-c6f5-4616-a63f-2add1448726a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","6150 2 648 2.0 868244699 \n","6531 2 733 3.0 868244562 \n","6813 2 736 3.0 868244698 \n","7113 2 780 3.0 868244698 \n","7506 2 786 3.0 868244562 \n","7661 2 802 2.0 868244603 \n","7779 2 858 2.0 868245645 \n","8077 2 1049 3.0 868245920 \n","8127 2 1073 3.0 868244562 \n","8381 2 1210 4.0 868245644 \n","8771 2 1356 3.0 868244603 \n","9097 2 1544 3.0 868245920 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","6150 Mission: Impossible (1996) \n","6531 Rock, The (1996) \n","6813 Twister (1996) \n","7113 Independence Day (a.k.a. ID4) (1996) \n","7506 Eraser (1996) \n","7661 Phenomenon (1996) \n","7779 Godfather, The (1972) \n","8077 Ghost and the Darkness, The (1996) \n","8127 Willy Wonka & the Chocolate Factory (1971) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","8771 Star Trek: First Contact (1996) \n","9097 Lost World: Jurassic Park, The (Jurassic Park ... \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","6150 [Action, Adventure, Mystery, Thriller] \n","6531 [Action, Adventure, Thriller] \n","6813 [Action, Adventure, Romance, Thriller] \n","7113 [Action, Adventure, Sci-Fi, War] \n","7506 [Action, Drama, Thriller] \n","7661 [Drama, Romance] \n","7779 [Crime, Drama] \n","8077 [Action, Adventure] \n","8127 [Children, Comedy, Fantasy, Musical] \n","8381 [Action, Adventure, Sci-Fi] \n","8771 [Action, Adventure, Sci-Fi, Thriller] \n","9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","6150 [confusing, confusing plot, memorable sequence... 12.0 \n","6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n","6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n","7113 [action, alien invasion, aliens, will smith, a... 14.0 \n","7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n","7661 [interesting concept, own, john travolta, john... 15.0 \n","7779 [oscar (best picture), marlon brando, classic,... 9.0 \n","8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n","8127 [based on a book, roald dahl, based on a book,... 20.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n","8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n","9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":9}],"source":["# user_id=2인 사용자가 학습 데이터로 평가를 부여한 영화 목록\n","movielens_train[movielens_train.user_id==2]"]},{"cell_type":"code","execution_count":10,"id":"06bb1a90","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"06bb1a90","executionInfo":{"status":"ok","timestamp":1672119551835,"user_tz":-540,"elapsed":23,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"d1d3d0cf-cae7-41ff-bd6c-76121fe4689e"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title genre \\\n","2487 2571 Matrix, The (1999) [Action, Sci-Fi, Thriller] \n","2874 2959 Fight Club (1999) [Action, Crime, Drama, Thriller] \n","3489 3578 Gladiator (2000) [Action, Adventure, Drama] \n","\n"," tag \n","2487 [artificial intelligence, hackers, heroine in ... \n","2874 [based on a book, chuck palahniuk, edward nort... \n","3489 [revenge, crowe's best, gfei own it, dvd, glad... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
24872571Matrix, The (1999)[Action, Sci-Fi, Thriller][artificial intelligence, hackers, heroine in ...
28742959Fight Club (1999)[Action, Crime, Drama, Thriller][based on a book, chuck palahniuk, edward nort...
34893578Gladiator (2000)[Action, Adventure, Drama][revenge, crowe's best, gfei own it, dvd, glad...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":10}],"source":["# user_id=2에 대한 추천(3578, 2571, 2959)\n","movies[movies.movie_id.isin([3578, 2571, 2959])]"]}],"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.7.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/NMF.ipynb b/chapter5/colab/NMF.ipynb index cd11431..0f8192f 100644 --- a/chapter5/colab/NMF.ipynb +++ b/chapter5/colab/NMF.ipynb @@ -1,1881 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "b9224173", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/NMF.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "f8caaceb", - "metadata": {}, - "source": [ - "# 비부값 행렬 분석" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "9cb2f773", - "metadata": {}, - "outputs": [], - "source": [ - "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", - "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", - "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", - "\n", - "# 데이터 다운로드와 압축 풀기\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "ed3c6a08", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", - "import pandas as pd\n", - "\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "8e6879e3", - "metadata": {}, - "outputs": [], - "source": [ - "# 결손값을 채우는 방법\n", - "fillna_with_zero = True\n", - "# 인자 수\n", - "factors = 5" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "52281452", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[0., 0., 0., ..., 0., 0., 0.],\n", - " [0., 0., 0., ..., 0., 0., 0.],\n", - " [0., 0., 0., ..., 0., 0., 0.],\n", - " ...,\n", - " [5., 0., 3., ..., 0., 0., 0.],\n", - " [0., 0., 0., ..., 0., 0., 0.],\n", - " [5., 0., 0., ..., 0., 0., 0.]])" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다.\n", - "user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n", - "user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n", - "movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n", - "if fillna_with_zero:\n", - " matrix = user_movie_matrix.fillna(0).to_numpy()\n", - "else:\n", - " matrix = user_movie_matrix.fillna(movielens_train.rating.mean()).to_numpy()\n", - "matrix" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "708dda3c", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/mk/.pyenv/versions/3.7.8/envs/recsys-test3.7.8/lib/python3.7/site-packages/sklearn/decomposition/_nmf.py:315: FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).\n", - " \"'nndsvda' in 1.1 (renaming of 0.26).\"), FutureWarning)\n", - "/Users/mk/.pyenv/versions/3.7.8/envs/recsys-test3.7.8/lib/python3.7/site-packages/sklearn/decomposition/_nmf.py:1091: ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve convergence.\n", - " \" improve convergence.\" % max_iter, ConvergenceWarning)\n" - ] - }, - { - "data": { - "text/plain": [ - "NMF(n_components=5)" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from sklearn.decomposition import NMF\n", - "\n", - "# NMF 실행\n", - "nmf = NMF(n_components=factors)\n", - "nmf.fit(matrix)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "687a16b1", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/mk/.pyenv/versions/3.7.8/envs/recsys-test3.7.8/lib/python3.7/site-packages/sklearn/decomposition/_nmf.py:315: FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).\n", - " \"'nndsvda' in 1.1 (renaming of 0.26).\"), FutureWarning)\n", - "/Users/mk/.pyenv/versions/3.7.8/envs/recsys-test3.7.8/lib/python3.7/site-packages/sklearn/decomposition/_nmf.py:1091: ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve convergence.\n", - " \" improve convergence.\" % max_iter, ConvergenceWarning)\n" - ] - }, - { - "data": { - "text/plain": [ - "array([[0.02183305, 0.53589333, 0. , 0. , 0. ],\n", - " [0.21316287, 0.10881497, 0. , 0. , 0. ],\n", - " [0. , 0.02976101, 0.05290754, 0.15364687, 0.02014396],\n", - " ...,\n", - " [0.13635948, 0.14281692, 0. , 0. , 0.00656248],\n", - " [0.09754 , 0.01077277, 0. , 0.13238006, 0.13515664],\n", - " [0.99759019, 0. , 0. , 0.64704357, 0.05969731]])" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "P = nmf.fit_transform(matrix)\n", - "P" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "a731dbb1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[1.96418693, 0.50120485, 0.39873535, ..., 0. , 0. ,\n", - " 0. ],\n", - " [1.15067665, 0.96078243, 0.40197059, ..., 0. , 0.00289228,\n", - " 0.00216921],\n", - " [0.47179502, 0. , 0. , ..., 0. , 0. ,\n", - " 0. ],\n", - " [0.79016702, 0.3041748 , 0. , ..., 0.02803924, 0.01446954,\n", - " 0.01085215],\n", - " [0.29612837, 0.30057646, 0.17845097, ..., 0. , 0. ,\n", - " 0. ]])" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Q = nmf.components_\n", - "Q" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "36669c15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[6.59524137e-01, 5.25819727e-01, 2.24118966e-01, ...,\n", - " 0.00000000e+00, 1.54995325e-03, 1.16246494e-03],\n", - " [5.43902575e-01, 2.11385779e-01, 1.28735991e-01, ...,\n", - " 0.00000000e+00, 3.14723309e-04, 2.36042481e-04],\n", - " [1.86578695e-01, 8.13841578e-02, 1.55577588e-02, ...,\n", - " 4.30814090e-03, 2.30927602e-03, 1.73195702e-03],\n", - " ...,\n", - " [4.34114948e-01, 2.07532549e-01, 1.12950629e-01, ...,\n", - " 0.00000000e+00, 4.13066441e-04, 3.09799830e-04],\n", - " [3.48608841e-01, 1.40129388e-01, 6.73418166e-02, ...,\n", - " 3.71183579e-03, 1.94663585e-03, 1.45997689e-03],\n", - " [2.48840417e+00, 7.14754992e-01, 4.08427521e-01, ...,\n", - " 1.81426079e-02, 9.36242017e-03, 7.02181513e-03]])" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import numpy as np\n", - "# 예측 평갓값 행렬\n", - "pred_matrix = np.dot(P, Q)\n", - "pred_matrix" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "08eb2849", - "metadata": {}, - "outputs": [], - "source": [ - "# 학습용에 나타나지 않는 사용자나 영화의 예측 평갓값은 평균 평갓값으로 한다\n", - "average_score = movielens_train.rating.mean()\n", - "movie_rating_predict = movielens_test.copy()\n", - "pred_results = []\n", - "for i, row in movielens_test.iterrows():\n", - " user_id = row[\"user_id\"]\n", - " if user_id not in user_id2index or row[\"movie_id\"] not in movie_id2index:\n", - " pred_results.append(average_score)\n", - " continue\n", - " user_index = user_id2index[row[\"user_id\"]]\n", - " movie_index = movie_id2index[row[\"movie_id\"]]\n", - " pred_score = pred_matrix[user_index, movie_index]\n", - " pred_results.append(pred_score)\n", - "movie_rating_predict[\"rating_pred\"] = pred_results" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "7aa822a0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "defaultdict(list,\n", - " {139: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n", - " 149: [4226, 2571, 2762, 47, 3996, 318, 6539, 5445, 4963, 1704],\n", - " 182: [47, 6874, 2329, 3793, 4011, 7361, 4878, 7438, 6333, 2502],\n", - " 215: [2329, 527, 6711, 3147, 2683, 8360, 5669, 6502, 3948, 1246],\n", - " 281: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 326: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 351: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n", - " 357: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 426: [2502,\n", - " 33794,\n", - " 3949,\n", - " 7147,\n", - " 33493,\n", - " 5902,\n", - " 44191,\n", - " 33166,\n", - " 4848,\n", - " 6016],\n", - " 456: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 459: [318, 4886, 2997, 50, 4995, 4973, 7361, 4878, 3897, 2502],\n", - " 494: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 517: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 524: [7153, 3996, 6539, 5349, 4886, 3793, 7361, 593, 7438, 527],\n", - " 556: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 588: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 589: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 590: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 4306, 3996, 6539],\n", - " 601: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 621: [5952, 7153, 4306, 2329, 4995, 4011, 4878, 1682, 3897, 7438],\n", - " 634: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 672: [4993, 5952, 4226, 7153, 4306, 3996, 318, 6539, 5445, 6874],\n", - " 701: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 719: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 745: [5952, 7153, 4306, 6539, 5445, 6874, 2329, 6377, 356, 4973],\n", - " 757: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 775: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 780: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 4306, 3996],\n", - " 785: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 788: [296, 4973, 4878, 3897, 1089, 2502, 1136, 1961, 2542, 4034],\n", - " 870: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 987: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 988: [7153, 6539, 5445, 6874, 4963, 2329, 6377, 4995, 7361, 4027],\n", - " 1020: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 1: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 22: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 26: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 30: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 34: [4993, 5952, 4226, 2858, 7153, 4306, 3996, 6539, 5445, 6874],\n", - " 38: [4226, 2858, 4306, 6539, 5445, 4886, 2329, 3793, 2997, 50],\n", - " 50: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 53: [2959, 4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996],\n", - " 54: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 67: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 71: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 76: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 88: [4226, 296, 47, 4306, 3996, 318, 1704, 2997, 50, 4995],\n", - " 89: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 94: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 95: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 100: [2959, 4993, 4226, 7153, 3578, 2762, 4306, 5445, 6874, 4963],\n", - " 101: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 102: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 103: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 111: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 116: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 118: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 143: [7153, 6539, 6874, 6377, 50, 7361, 4027, 7438, 8961, 6711],\n", - " 144: [1704, 4886, 3897, 5989, 2502, 2706, 3147, 1784, 3114, 4979],\n", - " 162: [4226, 318, 4963, 1704, 2329, 2997, 50, 4011, 7361, 4878],\n", - " 172: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 173: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 187: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 193: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 208: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 210: [2959, 5952, 47, 6539, 5445, 6874, 4963, 5349, 4886, 2329],\n", - " 214: [2959, 5952, 2858, 7153, 4306, 318, 6539, 6874, 2329, 6377],\n", - " 228: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 232: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 236: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 259: [3578, 318, 6377, 4011, 4027, 1089, 8961, 1961, 2542, 4034],\n", - " 260: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 267: [4306, 1704, 4886, 4011, 4878, 1682, 5989, 2502, 6711, 4034],\n", - " 268: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 271: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 274: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n", - " 287: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 292: [6874, 4963, 527, 6333, 5989, 2542, 3147, 5418, 1517, 3481],\n", - " 296: [3996, 1704, 6377, 1136, 2683, 1270, 1784, 1258, 364, 1517],\n", - " 303: [6539, 4963, 1704, 5349, 2329, 6377, 2997, 50, 4995, 4973],\n", - " 307: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 310: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n", - " 315: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 320: [318, 6874, 1704, 5349, 2329, 3793, 2997, 50, 7361, 4878],\n", - " 332: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 339: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 343: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 355: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 364: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 365: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 368: [2858, 2762, 318, 1704, 2329, 4995, 2028, 4878, 593, 7438],\n", - " 381: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 382: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 383: [2959, 47, 4306, 6539, 6874, 4963, 5349, 2329, 356, 4011],\n", - " 391: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 396: [4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 3996, 318],\n", - " 398: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 406: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 409: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 410: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 416: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 418: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 419: [2959, 7153, 3578, 6539, 6874, 1704, 4886, 2329, 6377, 356],\n", - " 421: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 424: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 432: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 434: [4226, 296, 47, 318, 2329, 2997, 50, 4973, 7361, 4878],\n", - " 436: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 438: [2959, 4993, 5952, 4226, 7153, 47, 6539, 5445, 6874, 4963],\n", - " 441: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 446: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 452: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 3996],\n", - " 460: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 463: [7153, 6874, 4963, 6377, 4973, 4011, 7361, 1682, 3897, 7438],\n", - " 468: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 469: [2959, 47, 2329, 50, 4995, 4011, 7361, 4878, 1682, 3897],\n", - " 472: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 476: [1704, 4886, 4995, 7438, 2502, 2291, 1923, 1721, 4034, 1270],\n", - " 480: [7153, 318, 6539, 6874, 1704, 2329, 6377, 7361, 4878, 1682],\n", - " 482: [2858, 2762, 3996, 5445, 6874, 2997, 50, 4973, 1682, 3897],\n", - " 493: [4993, 5952, 7153, 593, 7438, 6333, 2502, 1136, 6365, 1258],\n", - " 496: [2959, 4993, 5952, 2858, 7153, 3578, 4306, 3996, 318, 6539],\n", - " 501: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 504: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 505: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 511: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 516: [6377, 50, 7361, 1682, 4027, 2542, 33794, 364, 3481, 2918],\n", - " 525: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 530: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 531: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 533: [4886, 2329, 4995, 4011, 4878, 2706, 3147, 6365, 2683, 778],\n", - " 536: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 543: [2329, 2028, 4011, 3897, 5989, 1923, 2542, 4034, 3481, 3052],\n", - " 547: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 549: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 553: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 558: [7153, 2762, 6874, 4886, 2329, 2997, 4973, 4011, 7361, 4878],\n", - " 562: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 567: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 571: [2959, 4993, 5952, 7153, 2762, 296, 3996, 6874, 356, 4878],\n", - " 572: [3578, 3996, 318, 1704, 4973, 1961, 4034, 33794, 5418, 1784],\n", - " 577: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 581: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 585: [4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996, 6539],\n", - " 593: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 604: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 605: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 609: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 628: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 629: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 645: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 650: [2959, 5952, 7153, 296, 4306, 6539, 5445, 6874, 4963, 4886],\n", - " 656: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 657: [4306, 4963, 4886, 3793, 4011, 7438, 6333, 2502, 1136, 8961],\n", - " 669: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 678: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 683: [2959, 5952, 4226, 2858, 2762, 296, 3996, 318, 6874, 4963],\n", - " 688: [3996, 318, 5445, 4973, 2028, 7361, 4878, 1682, 3897, 2502],\n", - " 689: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 693: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 716: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n", - " 720: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 734: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 735: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 739: [4993, 5952, 4226, 2858, 7153, 3578, 296, 4306, 3996, 318],\n", - " 755: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 758: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 767: [2959, 4226, 2858, 296, 47, 4306, 5445, 4963, 1704, 4886],\n", - " 769: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 786: [2959, 4993, 5952, 2858, 7153, 296, 47, 6539, 5445, 6874],\n", - " 789: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 792: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 795: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 798: [2329, 6377, 4011, 7361, 4027, 2502, 2706, 4034, 1784, 3481],\n", - " 799: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 802: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 806: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 807: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 816: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 827: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 828: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 846: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 859: [2858, 47, 4306, 318, 6874, 4963, 2329, 6377, 2997, 50],\n", - " 862: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 876: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 881: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 885: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 4306, 3996],\n", - " 886: [4993, 5952, 4226, 7153, 4306, 6539, 5445, 6874, 4963, 5349],\n", - " 889: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 890: [4993, 5952, 4226, 7153, 47, 4306, 318, 6539, 5445, 6874],\n", - " 891: [6539, 5445, 6874, 4963, 2329, 6377, 4995, 4011, 7361, 593],\n", - " 896: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 897: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 898: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 908: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 922: [4226, 2858, 296, 3996, 5445, 6874, 1704, 2329, 3793, 2997],\n", - " 930: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 938: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 956: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 958: [4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306, 3996],\n", - " 968: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 977: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 4306, 3996, 6539],\n", - " 990: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 996: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 1004: [4993,\n", - " 5952,\n", - " 4226,\n", - " 7153,\n", - " 3578,\n", - " 4306,\n", - " 3996,\n", - " 6539,\n", - " 5445,\n", - " 6874],\n", - " 1005: [2959,\n", - " 4993,\n", - " 5952,\n", - " 4226,\n", - " 2571,\n", - " 2858,\n", - " 7153,\n", - " 3578,\n", - " 2762,\n", - " 4306],\n", - " 1008: [6539,\n", - " 4963,\n", - " 4995,\n", - " 2028,\n", - " 4011,\n", - " 1682,\n", - " 3897,\n", - " 4027,\n", - " 1089,\n", - " 5989],\n", - " 1029: [2959,\n", - " 4993,\n", - " 5952,\n", - " 4226,\n", - " 2571,\n", - " 2858,\n", - " 7153,\n", - " 3578,\n", - " 2762,\n", - " 4306],\n", - " 1037: [2959,\n", - " 4993,\n", - " 5952,\n", - " 4226,\n", - " 2571,\n", - " 2858,\n", - " 7153,\n", - " 3578,\n", - " 2762,\n", - " 4306],\n", - " 1050: [2959,\n", - " 4993,\n", - " 5952,\n", - " 4226,\n", - " 2571,\n", - " 2858,\n", - " 7153,\n", - " 3578,\n", - " 2762,\n", - " 4306],\n", - " 4: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 8: [296, 318, 6377, 356, 4995, 4973, 7361, 5989, 2502, 2706],\n", - " 18: [4993, 5952, 4226, 7153, 5445, 6874, 5349, 4886, 2329, 3793],\n", - " 36: [7153, 47, 3996, 318, 5445, 6874, 1704, 4886, 2329, 2997],\n", - " 47: [47, 4963, 1704, 5349, 4886, 6377, 356, 7361, 4878, 1682],\n", - " 59: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 62: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 77: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 79: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 80: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 119: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 122: [4993, 5952, 4226, 7153, 47, 4306, 6539, 5445, 6874, 4963],\n", - " 125: [2329,\n", - " 7361,\n", - " 4878,\n", - " 1682,\n", - " 7438,\n", - " 8961,\n", - " 33794,\n", - " 5418,\n", - " 32587,\n", - " 8636],\n", - " 126: [4973, 7361, 4878, 6711, 2542, 6365, 3052, 778, 1206, 5669],\n", - " 132: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 141: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 154: [4993, 5952, 4226, 2858, 7153, 3578, 4306, 3996, 318, 6874],\n", - " 155: [4226, 7153, 6539, 5445, 6874, 4963, 5349, 4886, 6377, 3793],\n", - " 163: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 164: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 170: [4993, 5952, 7153, 3578, 3996, 6539, 5445, 6874, 1704, 5349],\n", - " 171: [4993, 5952, 4226, 2571, 7153, 3578, 4306, 3996, 6539, 5445],\n", - " 176: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 190: [4226, 2858, 47, 318, 4963, 1704, 2329, 6377, 2997, 50],\n", - " 197: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 198: [2997,\n", - " 4973,\n", - " 4011,\n", - " 6333,\n", - " 5989,\n", - " 2291,\n", - " 2542,\n", - " 4034,\n", - " 3147,\n", - " 33794],\n", - " 199: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 212: [2858, 3578, 1704, 4886, 2329, 6377, 4011, 4878, 1682, 3897],\n", - " 221: [2959, 4993, 4226, 7153, 3578, 2762, 4306, 3996, 6539, 5445],\n", - " 223: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 226: [2959, 2858, 7153, 6539, 6874, 4963, 6377, 2997, 4973, 7361],\n", - " 241: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 247: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 249: [2858, 3996, 6874, 2997, 4973, 3897, 7438, 527, 6333, 8961],\n", - " 254: [4993, 4226, 7153, 6539, 6874, 4963, 1704, 4886, 2329, 6377],\n", - " 264: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 273: [2959, 4226, 2762, 296, 47, 4306, 3996, 5445, 6874, 4963],\n", - " 275: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 6539, 5445],\n", - " 276: [6539, 4963, 4995, 4027, 33794, 5418, 1517, 2918, 3052, 110],\n", - " 293: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 294: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 295: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 318: [4226, 2329, 4878, 1923, 3147, 32, 2692, 293, 5669, 1213],\n", - " 321: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 345: [4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318, 6539],\n", - " 346: [2959, 4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996],\n", - " 348: [1136, 6365, 5418, 3481, 2918, 3052, 1580, 4022, 1732, 1265],\n", - " 349: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 354: [4226, 296, 47, 6874, 4886, 2329, 3793, 2997, 50, 2028],\n", - " 359: [47, 318, 6874, 1704, 5349, 4886, 2329, 356, 50, 2028],\n", - " 366: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 369: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 384: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 390: [47, 6539, 6377, 7361, 3897, 1089, 7438, 527, 2291, 1961],\n", - " 392: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 403: [2959, 4993, 5952, 2858, 3578, 4306, 3996, 318, 6539, 6874],\n", - " 407: [4226, 2858, 318, 1704, 5349, 4995, 4973, 4011, 7361, 4878],\n", - " 414: [4226, 7153, 3578, 4306, 318, 6539, 5445, 5349, 4886, 2329],\n", - " 431: [2959, 4226, 2571, 2858, 3578, 2762, 296, 47, 3996, 5445],\n", - " 454: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 465: [5952, 2571, 7153, 5445, 4963, 4886, 3793, 2028, 3897, 6333],\n", - " 481: [2762, 6377, 2997, 4973, 4027, 527, 5989, 8961, 1961, 3147],\n", - " 485: [4993, 5952, 4226, 7153, 47, 4306, 3996, 6539, 5445, 6874],\n", - " 503: [47, 3996, 4963, 1704, 5349, 50, 4011, 3897, 4027, 1089],\n", - " 513: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n", - " 545: [3578, 4306, 6539, 5445, 4963, 5349, 3793, 1682, 6333, 2706],\n", - " 552: [4993, 5952, 2571, 7153, 3578, 47, 3996, 5445, 6874, 4963],\n", - " 554: [4226, 2571, 3578, 47, 6539, 5445, 5349, 4886, 2329, 50],\n", - " 555: [5445, 1704, 4973, 7361, 1682, 5989, 1923, 1721, 4034, 6365],\n", - " 561: [318, 1704, 2997, 50, 4995, 7361, 1682, 3897, 4027, 1089],\n", - " 565: [2959, 4993, 5952, 4226, 2571, 7153, 47, 4306, 318, 6539],\n", - " 591: [2959, 4993, 5952, 4226, 2571, 7153, 2762, 296, 47, 4306],\n", - " 617: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 622: [4226, 3578, 3996, 6539, 6874, 4886, 6377, 3793, 2997, 50],\n", - " 623: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 633: [2762, 5445, 4963, 2329, 2997, 4995, 4973, 4011, 4878, 1682],\n", - " 636: [2959, 4226, 2858, 47, 4306, 3996, 1704, 5349, 4886, 6377],\n", - " 638: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 641: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 646: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 654: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 655: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 658: [4993, 5952, 7153, 2762, 4306, 3996, 318, 5445, 1704, 5349],\n", - " 660: [4993, 5952, 4226, 7153, 6539, 5445, 6874, 1704, 5349, 4886],\n", - " 661: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 677: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 714: [47, 5349, 3793, 4011, 7361, 4878, 593, 1089, 7438, 6333],\n", - " 715: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 723: [2858, 296, 3996, 5445, 4963, 1704, 4886, 6377, 3793, 2997],\n", - " 731: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 47, 4306, 3996],\n", - " 742: [593, 1089, 7438, 527, 2502, 1258, 2692, 858, 1732, 293],\n", - " 743: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 752: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 772: [2959, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47, 318],\n", - " 814: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 823: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 826: [2762, 4306, 5349, 4886, 2329, 527, 5989, 2502, 2291, 8961],\n", - " 833: [2959, 4226, 7153, 3578, 2762, 47, 6539, 6874, 4886, 2329],\n", - " 838: [2959, 7153, 4306, 3996, 6874, 4963, 5349, 4886, 2329, 3793],\n", - " 842: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 852: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 878: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 887: [4993, 5952, 4226, 7153, 2762, 4306, 3996, 6539, 5445, 6874],\n", - " 895: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 899: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 902: [6377, 2997, 4973, 4878, 1682, 4027, 527, 2502, 2291, 1923],\n", - " 907: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 928: [7153, 6539, 6874, 1704, 5349, 3793, 4995, 2028, 1682, 4027],\n", - " 936: [318, 5349, 3793, 5989, 2706, 2291, 1721, 4034, 1270, 1258],\n", - " 964: [4993, 5952, 2858, 7153, 2762, 4306, 3996, 5445, 6874, 1704],\n", - " 970: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 972: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n", - " 1001: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 1013: [2959, 4226, 2858, 3578, 2762, 47, 6539, 5445, 6874, 1704],\n", - " 1018: [3578, 4963, 1704, 6377, 50, 4995, 4027, 527, 2502, 8961],\n", - " 1028: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 1031: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 1035: [3996, 6539, 4963, 1704, 2329, 2997, 50, 4995, 4973, 4011],\n", - " 1038: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 1045: [5952,\n", - " 3996,\n", - " 4973,\n", - " 6711,\n", - " 2542,\n", - " 33794,\n", - " 5418,\n", - " 2692,\n", - " 1580,\n", - " 480],\n", - " 1046: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 35: [5952, 7153, 3578, 296, 318, 6539, 1704, 5349, 4886, 6377],\n", - " 72: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 91: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 4306, 3996],\n", - " 106: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 4306, 3996],\n", - " 128: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 158: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 160: [2959, 4993, 5952, 4226, 7153, 2762, 296, 47, 4306, 318],\n", - " 175: [4306, 3996, 6539, 5445, 4963, 1704, 5349, 3793, 4995, 1682],\n", - " 196: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306, 3996],\n", - " 203: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 206: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n", - " 207: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 255: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 265: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 296, 4306, 3996],\n", - " 340: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 404: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 433: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 440: [3578, 4306, 3996, 5445, 6874, 4963, 1704, 5349, 4886, 6377],\n", - " 444: [2959, 4993, 5952, 4226, 7153, 3578, 3996, 318, 6539, 5445],\n", - " 450: [2959, 7153, 6539, 6874, 1704, 6377, 4011, 7361, 4878, 1682],\n", - " 479: [4993, 5952, 7153, 3578, 47, 4306, 3996, 6539, 5445, 6874],\n", - " 491: [4993, 7153, 296, 4306, 6539, 5445, 4886, 2329, 6377, 3793],\n", - " 506: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 523: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 539: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 541: [4993, 5952, 4226, 7153, 3578, 2762, 296, 4306, 3996, 318],\n", - " 616: [4306, 3996, 6874, 4963, 1704, 5349, 2329, 6377, 3793, 4995],\n", - " 647: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 659: [2959, 3578, 6539, 4963, 5349, 4886, 2329, 3793, 50, 2028],\n", - " 695: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 4306, 3996],\n", - " 700: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 707: [4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996, 318],\n", - " 748: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 759: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 784: [4973, 4011, 7361, 1682, 4027, 1089, 5989, 2502, 6711, 2542],\n", - " 790: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 835: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 844: [2959, 4993, 5952, 4226, 7153, 296, 47, 4306, 3996, 318],\n", - " 871: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 875: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 892: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 919: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 935: [2959, 4993, 5952, 2858, 7153, 2762, 296, 47, 4306, 318],\n", - " 942: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 960: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 1006: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 1026: [2858, 296, 47, 3996, 318, 6539, 5445, 356, 2997, 50],\n", - " 1047: [5952, 6539, 1704, 593, 7438, 5989, 2291, 1961, 2683, 5418],\n", - " 65: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 3996],\n", - " 135: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 152: [2959, 4993, 5952, 4226, 2858, 7153, 296, 4306, 3996, 6539],\n", - " 166: [2959, 4226, 2571, 2858, 7153, 3578, 296, 47, 4306, 3996],\n", - " 179: [2959, 5952, 4226, 2858, 7153, 2762, 47, 318, 6539, 6874],\n", - " 188: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 217: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 253: [2959, 4993, 5952, 4226, 7153, 2762, 296, 47, 4306, 318],\n", - " 262: [2858, 2329, 6377, 1682, 3897, 4027, 1089, 5989, 1136, 6711],\n", - " 277: [2959, 4226, 2571, 2858, 3578, 47, 4306, 3996, 318, 6539],\n", - " 289: [6377, 4878, 7438, 6333, 2502, 2542, 6365, 2683, 5418, 364],\n", - " 300: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 47, 4306, 3996],\n", - " 302: [4993, 5952, 4226, 7153, 47, 4306, 3996, 6539, 5445, 6874],\n", - " 308: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 311: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 328: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", - " 329: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 344: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 347: [2959, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47, 3996],\n", - " 358: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 3996, 6539],\n", - " 474: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 483: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 509: [4993, 3578, 4306, 318, 6539, 5445, 6377, 2997, 4973, 4878],\n", - " 578: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n", - " 643: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n", - " 679: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 680: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n", - " 691: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 47, 4306, 3996],\n", - " 702: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 708: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 730: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 751: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 773: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n", - " 803: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996],\n", - " 809: [2959, 4226, 2571, 7153, 3578, 296, 4306, 3996, 318, 6539],\n", - " 820: [2762, 318, 1704, 2329, 4995, 4011, 3897, 527, 5989, 2542],\n", - " 824: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 4306],\n", - " 863: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 4306, 3996, 6539],\n", - " 865: [4993, 5952, 2762, 3996, 6539, 5445, 6874, 5349, 4886, 2329],\n", - " 867: [2762, 47, 6874, 4995, 4011, 7361, 4878, 1682, 593, 1089],\n", - " 911: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", - " 915: [2959, 4226, 7153, 3578, 296, 3996, 318, 6539, 6874, 1704],\n", - " 939: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 946: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 954: [4993, 5952, 4226, 2858, 7153, 296, 4306, 3996, 318, 6539],\n", - " 957: [4993, 5952, 4226, 7153, 3578, 2762, 4306, 3996, 6539, 5445],\n", - " 971: [7153, 3578, 2762, 47, 4306, 6539, 5445, 6874, 4963, 6377],\n", - " 986: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 992: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n", - " 92: [2959, 296, 4306, 3996, 6874, 4886, 2329, 6377, 2997, 50],\n", - " 107: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 131: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 138: [3996, 4963, 5349, 4886, 3793, 2997, 4973, 7361, 4878, 1682],\n", - " 145: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 183: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 209: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 230: [4993, 5952, 4226, 2571, 7153, 2762, 47, 4306, 3996, 318],\n", - " 263: [7153, 4306, 6874, 356, 2997, 2028, 4011, 1682, 3897, 1089],\n", - " 305: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 314: [2959, 4226, 2571, 7153, 47, 4306, 6539, 5445, 6874, 4963],\n", - " 319: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 325: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 341: [4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996, 6539],\n", - " 471: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 488: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 495: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 532: [2959, 5952, 7153, 47, 4306, 318, 6539, 5445, 6874, 1704],\n", - " 564: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 574: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 603: [4226, 3578, 2762, 47, 3996, 6539, 5445, 6874, 4963, 5349],\n", - " 674: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 753: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 810: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 830: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 841: [2959, 5952, 2858, 7153, 2762, 296, 47, 4306, 318, 6539],\n", - " 856: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 921: [2959, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", - " 933: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 4306, 3996, 6539],\n", - " 976: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 37: [2858, 2762, 6539, 5445, 4963, 5349, 4886, 2329, 6377, 356],\n", - " 83: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 248: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 387: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 428: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 451: [2959, 2858, 3578, 296, 47, 4306, 3996, 318, 6539, 5445],\n", - " 584: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 874: [4226, 318, 50, 4011, 4878, 1089, 527, 2291, 1961, 6711],\n", - " 995: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", - " 10: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 19: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 41: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 43: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 44: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 45: [2959, 4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996],\n", - " 51: [2959, 4993, 5952, 2571, 7153, 47, 4306, 318, 6539, 5445],\n", - " 56: [2959, 2762, 47, 3996, 318, 6539, 5445, 4963, 1704, 5349],\n", - " 61: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 68: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n", - " 69: [2959, 4993, 5952, 4226, 2571, 7153, 47, 4306, 3996, 6539],\n", - " 78: [4993, 5952, 7153, 3578, 47, 4306, 6539, 4963, 1704, 5349],\n", - " 110: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 115: [2959, 4993, 5952, 4226, 2571, 7153, 47, 4306, 3996, 6539],\n", - " 129: [4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306, 3996],\n", - " 150: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 168: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 169: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 178: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 186: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n", - " 201: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 4306, 3996],\n", - " 239: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 256: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 257: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 296, 47, 4306],\n", - " 272: [2571, 2762, 47, 318, 6874, 4963, 1704, 4886, 4995, 4973],\n", - " 279: [4993, 4226, 2858, 5445, 4963, 1704, 2329, 50, 4995, 4973],\n", - " 280: [2959, 4226, 3578, 2762, 296, 47, 3996, 318, 6539, 5445],\n", - " 285: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n", - " 298: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 301: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n", - " 304: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", - " 333: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 334: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 338: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n", - " 350: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 353: [2858, 3578, 2762, 4306, 318, 6539, 5445, 6874, 4963, 1704],\n", - " 378: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 386: [4993, 5952, 2571, 7153, 47, 4306, 6539, 5445, 6874, 4963],\n", - " 397: [4993, 5952, 7153, 47, 4306, 3996, 6539, 5445, 6874, 4963],\n", - " 420: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 439: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 449: [4993, 5952, 4226, 7153, 296, 4306, 3996, 318, 6539, 5445],\n", - " 478: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 487: [4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539, 5445],\n", - " 489: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 500: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 510: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 521: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 522: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 527: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 529: [2959, 4993, 5952, 2571, 2858, 7153, 3578, 2762, 47, 3996],\n", - " 535: [4226, 2858, 7153, 2762, 3996, 6539, 6874, 4963, 1704, 5349],\n", - " 550: [2959, 4226, 2571, 7153, 3578, 47, 4306, 6539, 5445, 6874],\n", - " 560: [4993, 5952, 2571, 7153, 3578, 4306, 3996, 6539, 5445, 6874],\n", - " 573: [2959, 4993, 5952, 7153, 3578, 296, 47, 4306, 3996, 6539],\n", - " 579: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n", - " 582: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 583: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 587: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 596: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n", - " 602: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 618: [2959, 4993, 5952, 4226, 7153, 3578, 296, 4306, 3996, 6539],\n", - " 624: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 627: [2959, 5952, 7153, 47, 6539, 5445, 6874, 4886, 2329, 6377],\n", - " 635: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 639: [4226, 2571, 2858, 3578, 2762, 3996, 5445, 6874, 4963, 1704],\n", - " 640: [2762, 296, 3996, 4963, 1704, 2329, 2997, 50, 4995, 4011],\n", - " 642: [4993, 5952, 4226, 7153, 4306, 6539, 5445, 6874, 4963, 5349],\n", - " 649: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 652: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 662: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 671: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996],\n", - " 675: [2959, 5952, 4226, 2571, 2858, 7153, 2762, 47, 4306, 3996],\n", - " 684: [2959, 4993, 5952, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", - " 703: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 712: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 726: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 727: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 744: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 746: [2959, 4993, 4226, 2571, 7153, 2762, 6539, 4963, 5349, 4886],\n", - " 761: [2959, 4226, 3578, 296, 47, 3996, 6874, 1704, 5349, 2329],\n", - " 765: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n", - " 766: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", - " 771: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 776: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 797: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 47, 4306],\n", - " 812: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 815: [2959, 4226, 2858, 3578, 47, 3996, 318, 6539, 5445, 4963],\n", - " 818: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 821: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n", - " 822: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 831: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 834: [4993, 5952, 7153, 3578, 296, 47, 3996, 5445, 6874, 1704],\n", - " 837: [5952, 4226, 7153, 2762, 47, 4306, 6539, 5445, 6874, 4963],\n", - " 839: [2959, 2571, 2858, 3578, 296, 47, 4306, 3996, 318, 6874],\n", - " 840: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 851: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 47, 3996, 318],\n", - " 855: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 857: [2959, 4226, 2858, 2762, 296, 4306, 3996, 318, 5445, 1704],\n", - " 868: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 4306, 3996],\n", - " 904: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 905: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", - " 906: [7153, 3578, 47, 4306, 318, 6539, 5445, 5349, 4886, 6377],\n", - " 924: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 925: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n", - " 927: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 940: [2959, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306, 3996],\n", - " 948: [2959, 7153, 3578, 4306, 6539, 5445, 6874, 4963, 5349, 4886],\n", - " 953: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 966: [3578, 2762, 47, 4306, 3996, 318, 6539, 6874, 1704, 2329],\n", - " 967: [4993, 5952, 4226, 7153, 3578, 4306, 3996, 5445, 6874, 4963],\n", - " 979: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 980: [5952, 2571, 3578, 47, 4306, 318, 6539, 5445, 6874, 4963],\n", - " 983: [4993, 3578, 296, 47, 6874, 4963, 1704, 2329, 2997, 50],\n", - " 984: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 47, 4306, 3996],\n", - " 991: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 1009: [2959, 4993, 5952, 4226, 3578, 2762, 296, 47, 4306, 3996],\n", - " 1011: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 1014: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 1021: [4993, 5952, 7153, 296, 47, 318, 6539, 5445, 6874, 4963],\n", - " 1030: [2959, 4226, 2858, 7153, 3578, 296, 47, 4306, 3996, 318],\n", - " 1033: [2959,\n", - " 4993,\n", - " 5952,\n", - " 4226,\n", - " 2571,\n", - " 2858,\n", - " 7153,\n", - " 3578,\n", - " 3996,\n", - " 6539],\n", - " 1039: [2959,\n", - " 4993,\n", - " 5952,\n", - " 4226,\n", - " 2571,\n", - " 2858,\n", - " 7153,\n", - " 3578,\n", - " 2762,\n", - " 4306],\n", - " 1040: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 1053: [2959, 4993, 5952, 4226, 7153, 296, 47, 3996, 318, 6874],\n", - " 704: [2858, 7153, 296, 318, 6539, 6874, 2329, 6377, 356, 2997],\n", - " 934: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 42: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 73: [4993, 5952, 4226, 7153, 3578, 4306, 3996, 6539, 5445, 6874],\n", - " 82: [2959, 2858, 7153, 3578, 2762, 47, 3996, 318, 5445, 1704],\n", - " 159: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 161: [4306, 4963, 1704, 2329, 356, 2997, 4995, 2028, 4011, 1682],\n", - " 192: [4993, 5952, 7153, 2762, 3996, 318, 6539, 2329, 356, 4995],\n", - " 216: [2959, 4226, 7153, 3578, 296, 6539, 5445, 6874, 1704, 6377],\n", - " 219: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n", - " 290: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 379: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 4306, 3996],\n", - " 389: [296, 4306, 4963, 356, 50, 4973, 1089, 2706, 1136, 1923],\n", - " 400: [4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996, 318],\n", - " 462: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 507: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 600: [4993, 5952, 2571, 7153, 2762, 296, 47, 4306, 3996, 318],\n", - " 721: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 793: [2959, 2858, 2762, 296, 47, 3996, 318, 6539, 6874, 4963],\n", - " 912: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 932: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 949: [4993, 5952, 4226, 47, 4306, 6539, 6874, 2329, 356, 50],\n", - " 1025: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", - " 46: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", - " 74: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 342: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", - " 508: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 580: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", - " 774: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", - " 783: [2959, 4226, 2858, 3578, 2762, 296, 47, 5445, 6874, 4963],\n", - " 1002: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 1023: [4226, 2762, 296, 4306, 3996, 318, 5445, 4963, 1704, 5349],\n", - " 1048: [3578, 3996, 4963, 6377, 3793, 356, 4973, 7361, 4878, 1682],\n", - " 23: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 96: [2959, 4993, 5952, 4226, 7153, 47, 4306, 3996, 318, 6539],\n", - " 124: [2959, 4226, 2858, 3578, 2762, 296, 47, 4306, 318, 6539],\n", - " 136: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 148: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 189: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 213: [2959, 4993, 5952, 4226, 7153, 3578, 4306, 3996, 318, 6539],\n", - " 243: [4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996, 318],\n", - " 323: [2959, 4226, 2571, 2858, 3578, 2762, 47, 4306, 3996, 318],\n", - " 352: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 429: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", - " 625: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 808: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 843: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 847: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 963: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 975: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 998: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47, 318],\n", - " 75: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 47, 4306],\n", - " 427: [2959, 4993, 5952, 4226, 2858, 7153, 296, 4306, 3996, 5445],\n", - " 466: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", - " 801: [2858, 2762, 318, 5445, 356, 2997, 50, 4995, 4011, 4878],\n", - " 848: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 888: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", - " 191: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 227: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 245: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 380: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n", - " 408: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 668: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 747: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 754: [2959, 2858, 2762, 296, 318, 1704, 2329, 356, 2997, 50],\n", - " 11: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 16: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 81: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306, 3996],\n", - " 86: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 97: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", - " 151: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n", - " 235: [5952, 2762, 4306, 3996, 6874, 4963, 1704, 5349, 4886, 2329],\n", - " 251: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 258: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 278: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 388: [2959, 4993, 5952, 2858, 7153, 3578, 2762, 296, 47, 4306],\n", - " 551: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 606: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 614: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 681: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 686: [2959, 4993, 5952, 4226, 7153, 296, 47, 4306, 3996, 318],\n", - " 711: [2959, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306, 3996],\n", - " 718: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 873: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", - " 962: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 985: [2959, 4226, 2571, 2858, 2762, 296, 47, 318, 6539, 6874],\n", - " 993: [2959, 2571, 2858, 7153, 2762, 296, 47, 318, 6539, 6874],\n", - " 184: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n", - " 246: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 373: [2959, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306],\n", - " 430: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 534: [2959, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47, 4306],\n", - " 805: [2959, 4226, 2858, 2762, 296, 47, 3996, 318, 5445, 6874],\n", - " 58: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n", - " 112: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 367: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 548: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 791: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 909: [4226, 7153, 3578, 296, 47, 4306, 3996, 318, 6874, 4963],\n", - " 1041: [4306, 5445, 5349, 6377, 3793, 356, 4995, 1682, 3897, 4027],\n", - " 13: [2959, 5952, 4226, 2571, 2858, 7153, 2762, 47, 4306, 3996],\n", - " 869: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", - " 415: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 477: [2858, 3578, 4306, 6539, 5445, 6874, 4963, 1704, 5349, 4886],\n", - " 569: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 694: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 729: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 741: [2959, 4993, 5952, 4226, 7153, 3578, 4306, 3996, 6539, 5445],\n", - " 965: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 17: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", - " 40: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n", - " 114: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 137: [5952, 4226, 7153, 6539, 5445, 6874, 4886, 6377, 356, 4973],\n", - " 153: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 47, 4306, 3996],\n", - " 211: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n", - " 286: [4993, 5952, 7153, 2762, 296, 47, 4306, 3996, 318, 6539],\n", - " 330: [4226, 3578, 4306, 3996, 318, 6539, 5445, 4963, 1704, 4886],\n", - " 336: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 372: [4226, 2858, 7153, 296, 47, 4306, 3996, 318, 6539, 5445],\n", - " 376: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 3996],\n", - " 412: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", - " 447: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n", - " 467: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n", - " 490: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 518: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 608: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 3996],\n", - " 619: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", - " 644: [2959, 4226, 2858, 7153, 2762, 296, 47, 3996, 318, 6539],\n", - " 667: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", - " 698: [4306, 6539, 5349, 4886, 356, 2997, 4973, 4027, 2502, 2706],\n", - " 709: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", - " 728: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n", - " 733: [2959, 5952, 4226, 2858, 2762, 296, 47, 4306, 3996, 318],\n", - " 777: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 813: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", - " 832: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 893: [2959, 4993, 4226, 2858, 7153, 2762, 296, 47, 4306, 3996],\n", - " 901: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 937: [4993, 4226, 2571, 2858, 3578, 296, 3996, 6539, 5445, 6874],\n", - " 947: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 362: [2858, 3578, 296, 47, 4306, 3996, 6539, 5445, 6874, 4963],\n", - " 375: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 599: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 632: [2959, 4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996],\n", - " 779: [2959, 4993, 5952, 2571, 2858, 3578, 2762, 296, 47, 4306],\n", - " 1022: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 1034: [2959, 4993, 4226, 2571, 2858, 2762, 296, 47, 4306, 3996],\n", - " 819: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 2: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 3: [2959, 4993, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306],\n", - " 104: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 105: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 218: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 250: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 313: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 377: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n", - " 413: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 576: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 586: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 595: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n", - " 610: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 613: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 637: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", - " 663: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 740: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 787: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 804: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 866: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 883: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 941: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 1007: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 817: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 6: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 296, 47, 4306],\n", - " 7: [2959, 4993, 5952, 2571, 2858, 7153, 3578, 296, 47, 3996],\n", - " 14: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", - " 24: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 57: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 60: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 64: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 84: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 90: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 98: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 113: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", - " 120: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 123: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 157: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 194: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 200: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 204: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 205: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 225: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 229: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 237: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n", - " 242: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 252: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 266: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", - " 270: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 282: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 297: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 309: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 316: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 327: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 356: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 393: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 394: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 4306, 3996, 6539],\n", - " 395: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", - " 399: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 401: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n", - " 402: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n", - " 405: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 417: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 422: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 437: [2959, 4993, 5952, 4226, 7153, 3578, 4306, 3996, 6539, 5445],\n", - " 455: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 461: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 473: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 484: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 499: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 526: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 537: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 542: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", - " 557: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 563: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 570: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 575: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 594: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 607: [2959, 4993, 2571, 2858, 7153, 3578, 2762, 296, 47, 4306],\n", - " 631: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 651: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 664: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 685: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 690: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 696: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 4306, 3996],\n", - " 724: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 738: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 762: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 763: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 770: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 796: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 800: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 829: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 836: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 882: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 900: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 903: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 914: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 918: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 920: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 945: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 950: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 952: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 982: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 989: [2959, 4993, 5952, 4226, 7153, 2762, 47, 4306, 3996, 318],\n", - " 1016: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 1019: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 1044: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 1051: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 917: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 951: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 997: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 174: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 676: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", - " 764: [4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996, 6539],\n", - " 1052: [4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47, 4306],\n", - " 5: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 27: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 33: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 134: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 142: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 156: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 167: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 177: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 224: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 269: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 312: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 360: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 385: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 411: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 464: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n", - " 568: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 612: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 630: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 706: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 737: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 749: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 756: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 811: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 853: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 884: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 955: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", - " 1032: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 1043: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 370: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 670: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 923: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 931: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 969: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 12: [4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996, 318],\n", - " 597: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 195: [2959, 5952, 2571, 7153, 47, 318, 6539, 5445, 6874, 1704],\n", - " 337: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 910: [2571, 3578, 2762, 6539, 5445, 4963, 5349, 356, 2997, 4973],\n", - " 63: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 70: [2959, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47, 3996],\n", - " 99: [2959, 5952, 2571, 2858, 7153, 3578, 47, 4306, 3996, 6539],\n", - " 121: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n", - " 130: [2959, 4226, 2571, 3578, 2762, 47, 4306, 318, 6539, 5445],\n", - " 244: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 291: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 335: [2959, 5952, 2571, 2858, 7153, 2762, 296, 47, 4306, 318],\n", - " 361: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 4306, 3996],\n", - " 470: [4993, 7153, 3578, 4306, 4963, 1704, 5349, 4886, 3793, 356],\n", - " 497: [2959, 5952, 2858, 3578, 296, 47, 3996, 6539, 5445, 6874],\n", - " 620: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 648: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 666: [3578, 2762, 4306, 318, 6539, 5445, 4963, 1704, 5349, 4886],\n", - " 710: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 794: [2959, 4993, 5952, 2571, 2858, 3578, 296, 47, 4306, 3996],\n", - " 854: [4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996, 318],\n", - " 861: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n", - " 87: [4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996, 318],\n", - " 317: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 324: [2858, 2762, 296, 47, 4306, 3996, 318, 6539, 6874, 4963],\n", - " 502: [4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306, 3996],\n", - " 559: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 973: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n", - " 1015: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 1017: [2959, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306, 3996],\n", - " 85: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n", - " 306: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 653: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 371: [2959, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n", - " 566: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", - " 331: [5952, 3578, 2762, 296, 47, 4306, 3996, 5445, 1704, 5349],\n", - " 665: [2959, 4993, 2571, 7153, 3578, 2762, 47, 4306, 318, 6539],\n", - " 872: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 879: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 486: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", - " 864: [4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306, 3996],\n", - " 52: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 288: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 9: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 117: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", - " 220: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 544: [4226, 2858, 3578, 2762, 4306, 3996, 318, 6539, 5445, 4963],\n", - " 999: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 458: [2959, 4993, 5952, 2571, 7153, 296, 47, 4306, 3996, 318],\n", - " 974: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 546: [2959, 4226, 2571, 2858, 2762, 296, 47, 6874, 4963, 1704],\n", - " 55: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 363: [4226, 2571, 2858, 3578, 2762, 47, 4306, 3996, 318, 6539],\n", - " 445: [2959, 4993, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306],\n", - " 492: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", - " 234: [4993, 5952, 7153, 3578, 2762, 296, 47, 318, 6539, 6874],\n", - " 1027: [4993, 5952, 2571, 2858, 7153, 2762, 47, 4306, 3996, 318],\n", - " 140: [2959, 4993, 5952, 2571, 3578, 2762, 296, 47, 4306, 3996],\n", - " 926: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", - " 781: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 825: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 913: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", - " 453: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", - " 540: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", - " 66: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306, 3996],\n", - " 185: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 222: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 498: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 994: [2959, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", - " 165: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 202: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 180: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", - " 93: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 261: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", - " 435: [4993, 5952, 2858, 7153, 3578, 2762, 296, 4306, 3996, 318],\n", - " 322: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 238: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 425: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 512: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", - " 725: [4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996, 318],\n", - " 732: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 108: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 592: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 443: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 916: [5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47, 4306],\n", - " 736: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n", - " 961: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n", - " 1012: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 515: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 978: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 28: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 475: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", - " 598: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 943: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 520: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 697: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 849: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 1003: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n", - " 705: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 48: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 29: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 231: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 699: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n", - " 448: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", - " 750: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n", - " 782: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 860: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 768: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 127: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", - " 894: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296]})" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from collections import defaultdict\n", - "\n", - "# 각 사용자에 대한 추천 영화는 해당 사용자가 아직 평가하지 않은 영화 중에서 예측값이 높은 순으로 한다\n", - "pred_user2items = defaultdict(list)\n", - "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", - "for user_id in movielens_train.user_id.unique():\n", - " if user_id not in user_id2index:\n", - " continue\n", - " user_index = user_id2index[row[\"user_id\"]]\n", - " movie_indexes = np.argsort(-pred_matrix[user_index, :])\n", - " for movie_index in movie_indexes:\n", - " movie_id = user_movie_matrix.columns[movie_index]\n", - " if movie_id not in user_evaluated_movies[user_id]:\n", - " pred_user2items[user_id].append(movie_id)\n", - " if len(pred_user2items[user_id]) == 10:\n", - " break\n", - "pred_user2items" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "27b87c98", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "6150 2 648 2.0 868244699 \n", - "6531 2 733 3.0 868244562 \n", - "6813 2 736 3.0 868244698 \n", - "7113 2 780 3.0 868244698 \n", - "7506 2 786 3.0 868244562 \n", - "7661 2 802 2.0 868244603 \n", - "7779 2 858 2.0 868245645 \n", - "8077 2 1049 3.0 868245920 \n", - "8127 2 1073 3.0 868244562 \n", - "8381 2 1210 4.0 868245644 \n", - "8771 2 1356 3.0 868244603 \n", - "9097 2 1544 3.0 868245920 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "6150 Mission: Impossible (1996) \n", - "6531 Rock, The (1996) \n", - "6813 Twister (1996) \n", - "7113 Independence Day (a.k.a. ID4) (1996) \n", - "7506 Eraser (1996) \n", - "7661 Phenomenon (1996) \n", - "7779 Godfather, The (1972) \n", - "8077 Ghost and the Darkness, The (1996) \n", - "8127 Willy Wonka & the Chocolate Factory (1971) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "8771 Star Trek: First Contact (1996) \n", - "9097 Lost World: Jurassic Park, The (Jurassic Park ... \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "6150 [Action, Adventure, Mystery, Thriller] \n", - "6531 [Action, Adventure, Thriller] \n", - "6813 [Action, Adventure, Romance, Thriller] \n", - "7113 [Action, Adventure, Sci-Fi, War] \n", - "7506 [Action, Drama, Thriller] \n", - "7661 [Drama, Romance] \n", - "7779 [Crime, Drama] \n", - "8077 [Action, Adventure] \n", - "8127 [Children, Comedy, Fantasy, Musical] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "8771 [Action, Adventure, Sci-Fi, Thriller] \n", - "9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "6150 [confusing, confusing plot, memorable sequence... 12.0 \n", - "6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n", - "6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n", - "7113 [action, alien invasion, aliens, will smith, a... 14.0 \n", - "7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n", - "7661 [interesting concept, own, john travolta, john... 15.0 \n", - "7779 [oscar (best picture), marlon brando, classic,... 9.0 \n", - "8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n", - "8127 [based on a book, roald dahl, based on a book,... 20.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n", - "8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n", - "9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 " - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2의 사용자가 학습 데이터에 평가를 부여한 영화 목록\n", - "movielens_train[movielens_train.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "1940df09", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296]" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pred_user2items[2]" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "d1786a85", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
28742959Fight Club (1999)[Action, Crime, Drama, Thriller][based on a book, chuck palahniuk, edward nort...
48994993Lord of the Rings: The Fellowship of the Ring,...[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
58525952Lord of the Rings: The Two Towers, The (2002)[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "2874 2959 Fight Club (1999) \n", - "4899 4993 Lord of the Rings: The Fellowship of the Ring,... \n", - "5852 5952 Lord of the Rings: The Two Towers, The (2002) \n", - "\n", - " genre \\\n", - "2874 [Action, Crime, Drama, Thriller] \n", - "4899 [Action, Adventure, Fantasy] \n", - "5852 [Action, Adventure, Fantasy] \n", - "\n", - " tag \n", - "2874 [based on a book, chuck palahniuk, edward nort... \n", - "4899 [based on a book, big budget, new zealand, sce... \n", - "5852 [based on a book, big budget, new zealand, sce... " - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2에 대한 추천(2959, 4993, 5952)\n", - "movies[movies.movie_id.isin([2959, 4993, 5952])]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "441ff6da", - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","id":"b9224173","metadata":{"id":"b9224173"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/NMF.ipynb)"]},{"cell_type":"markdown","id":"f8caaceb","metadata":{"id":"f8caaceb"},"source":["# 비부값 행렬 분석"]},{"cell_type":"code","execution_count":1,"id":"9cb2f773","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9cb2f773","executionInfo":{"status":"ok","timestamp":1672119380127,"user_tz":-540,"elapsed":4459,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"3b3441b6-3940-4b5a-ef0c-99ca4e312e13"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:36:13-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 64.1MB/s in 1.0s \n","\n","2022-12-27 05:36:14 (64.1 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"ed3c6a08","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ed3c6a08","executionInfo":{"status":"ok","timestamp":1672119449934,"user_tz":-540,"elapsed":69811,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"740a21e4-a8ae-42cc-f142-e51190fa0f81"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"8e6879e3","metadata":{"id":"8e6879e3","executionInfo":{"status":"ok","timestamp":1672119449934,"user_tz":-540,"elapsed":21,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 결손값을 채우는 방법\n","fillna_with_zero = True\n","# 인자 수\n","factors = 5"]},{"cell_type":"code","execution_count":4,"id":"52281452","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"52281452","executionInfo":{"status":"ok","timestamp":1672119449935,"user_tz":-540,"elapsed":20,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"1bb4e599-cc7a-4fc5-cb95-4ef09185a7a2"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[0., 0., 0., ..., 0., 0., 0.],\n"," [0., 0., 0., ..., 0., 0., 0.],\n"," [0., 0., 0., ..., 0., 0., 0.],\n"," ...,\n"," [5., 0., 3., ..., 0., 0., 0.],\n"," [0., 0., 0., ..., 0., 0., 0.],\n"," [5., 0., 0., ..., 0., 0., 0.]])"]},"metadata":{},"execution_count":4}],"source":["# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다.\n","user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n","user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n","movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n","if fillna_with_zero:\n"," matrix = user_movie_matrix.fillna(0).to_numpy()\n","else:\n"," matrix = user_movie_matrix.fillna(movielens_train.rating.mean()).to_numpy()\n","matrix"]},{"cell_type":"code","execution_count":5,"id":"708dda3c","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"708dda3c","executionInfo":{"status":"ok","timestamp":1672119463518,"user_tz":-540,"elapsed":13601,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"e404fb9c-9bd5-4466-95a6-79c39e5ea205"},"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.8/dist-packages/sklearn/decomposition/_nmf.py:289: FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).\n"," warnings.warn(\n","/usr/local/lib/python3.8/dist-packages/sklearn/decomposition/_nmf.py:1637: ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve convergence.\n"," warnings.warn(\n"]},{"output_type":"execute_result","data":{"text/plain":["NMF(n_components=5)"]},"metadata":{},"execution_count":5}],"source":["from sklearn.decomposition import NMF\n","\n","# NMF 실행\n","nmf = NMF(n_components=factors)\n","nmf.fit(matrix)\n"]},{"cell_type":"code","execution_count":6,"id":"687a16b1","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"687a16b1","executionInfo":{"status":"ok","timestamp":1672119475949,"user_tz":-540,"elapsed":12450,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"64397446-be94-4869-bc6c-61d351679634"},"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.8/dist-packages/sklearn/decomposition/_nmf.py:289: FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).\n"," warnings.warn(\n","/usr/local/lib/python3.8/dist-packages/sklearn/decomposition/_nmf.py:1637: ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve convergence.\n"," warnings.warn(\n"]},{"output_type":"execute_result","data":{"text/plain":["array([[0.02183306, 0.53589472, 0. , 0. , 0. ],\n"," [0.21316649, 0.10881363, 0. , 0. , 0. ],\n"," [0. , 0.02976153, 0.05290897, 0.15364729, 0.02014201],\n"," ...,\n"," [0.13635649, 0.14281654, 0. , 0. , 0.00656846],\n"," [0.09753435, 0.01077205, 0. , 0.13237952, 0.13516597],\n"," [0.99758645, 0. , 0. , 0.64704016, 0.0597298 ]])"]},"metadata":{},"execution_count":6}],"source":["P = nmf.fit_transform(matrix)\n","P"]},{"cell_type":"code","execution_count":7,"id":"a731dbb1","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"a731dbb1","executionInfo":{"status":"ok","timestamp":1672119475949,"user_tz":-540,"elapsed":5,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"f6e9c43b-428e-4a65-e742-25a037fbe084"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[1.96418272, 0.50117827, 0.39871676, ..., 0. , 0. ,\n"," 0. ],\n"," [1.15067071, 0.96077987, 0.40196914, ..., 0. , 0.00289232,\n"," 0.00216924],\n"," [0.47176639, 0. , 0. , ..., 0. , 0. ,\n"," 0. ],\n"," [0.79016059, 0.30417491, 0. , ..., 0.02803924, 0.01446954,\n"," 0.01085215],\n"," [0.29616062, 0.30060155, 0.17846866, ..., 0. , 0. ,\n"," 0. ]])"]},"metadata":{},"execution_count":7}],"source":["Q = nmf.components_\n","Q"]},{"cell_type":"code","execution_count":8,"id":"36669c15","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"36669c15","executionInfo":{"status":"ok","timestamp":1672119475949,"user_tz":-540,"elapsed":3,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"6c3b7cb4-feb2-460f-8f90-42484580128c"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[6.59522475e-01, 5.25819116e-01, 2.24118350e-01, ...,\n"," 0.00000000e+00, 1.54997784e-03, 1.16248338e-03],\n"," [5.43906588e-01, 2.11380357e-01, 1.28732773e-01, ...,\n"," 0.00000000e+00, 3.14723598e-04, 2.36042698e-04],\n"," [1.86577692e-01, 8.13846441e-02, 1.55579328e-02, ...,\n"," 4.30815294e-03, 2.30928521e-03, 1.73196391e-03],\n"," ...,\n"," [4.34109190e-01, 2.07528655e-01, 1.12947724e-01, ...,\n"," 0.00000000e+00, 4.13070817e-04, 3.09803112e-04],\n"," [3.48602292e-01, 1.40129296e-01, 6.73415036e-02, ...,\n"," 3.71182091e-03, 1.94662680e-03, 1.45997010e-03],\n"," [2.48839731e+00, 7.14736905e-01, 4.08414332e-01, ...,\n"," 1.81425136e-02, 9.36237290e-03, 7.02177967e-03]])"]},"metadata":{},"execution_count":8}],"source":["import numpy as np\n","# 예측 평갓값 행렬\n","pred_matrix = np.dot(P, Q)\n","pred_matrix"]},{"cell_type":"code","execution_count":9,"id":"08eb2849","metadata":{"id":"08eb2849","executionInfo":{"status":"ok","timestamp":1672119476234,"user_tz":-540,"elapsed":287,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 학습용에 나타나지 않는 사용자나 영화의 예측 평갓값은 평균 평갓값으로 한다\n","average_score = movielens_train.rating.mean()\n","movie_rating_predict = movielens_test.copy()\n","pred_results = []\n","for i, row in movielens_test.iterrows():\n"," user_id = row[\"user_id\"]\n"," if user_id not in user_id2index or row[\"movie_id\"] not in movie_id2index:\n"," pred_results.append(average_score)\n"," continue\n"," user_index = user_id2index[row[\"user_id\"]]\n"," movie_index = movie_id2index[row[\"movie_id\"]]\n"," pred_score = pred_matrix[user_index, movie_index]\n"," pred_results.append(pred_score)\n","movie_rating_predict[\"rating_pred\"] = pred_results"]},{"cell_type":"code","execution_count":10,"id":"7aa822a0","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"7aa822a0","executionInfo":{"status":"ok","timestamp":1672119477563,"user_tz":-540,"elapsed":1330,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"12551108-c9b0-445a-fe32-eb39af8205c8"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {139: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n"," 149: [4226, 2571, 2762, 47, 3996, 318, 6539, 5445, 4963, 1704],\n"," 182: [47, 6874, 2329, 3793, 4011, 7361, 4878, 7438, 6333, 2502],\n"," 215: [2329, 527, 6711, 3147, 2683, 8360, 5669, 6502, 3948, 1246],\n"," 281: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 326: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 351: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n"," 357: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 426: [2502,\n"," 33794,\n"," 3949,\n"," 7147,\n"," 33493,\n"," 5902,\n"," 44191,\n"," 33166,\n"," 4848,\n"," 6016],\n"," 456: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 459: [318, 4886, 2997, 50, 4995, 4973, 7361, 4878, 3897, 2502],\n"," 494: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 517: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 524: [7153, 3996, 6539, 5349, 4886, 3793, 7361, 593, 7438, 527],\n"," 556: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 588: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 589: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 590: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 4306, 3996, 6539],\n"," 601: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 621: [5952, 7153, 4306, 2329, 4995, 4011, 4878, 1682, 3897, 7438],\n"," 634: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 672: [4993, 5952, 4226, 7153, 4306, 3996, 318, 6539, 5445, 6874],\n"," 701: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 719: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 745: [5952, 7153, 4306, 6539, 5445, 6874, 2329, 6377, 356, 4973],\n"," 757: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 775: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 780: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 4306, 3996],\n"," 785: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 788: [296, 4973, 4878, 3897, 1089, 2502, 1136, 1961, 2542, 4034],\n"," 870: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 987: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 988: [7153, 6539, 5445, 6874, 4963, 2329, 6377, 4995, 7361, 4027],\n"," 1020: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 1: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 22: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 26: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 30: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 34: [4993, 5952, 4226, 2858, 7153, 4306, 3996, 6539, 5445, 6874],\n"," 38: [4226, 2858, 4306, 6539, 5445, 4886, 2329, 3793, 2997, 50],\n"," 50: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 53: [2959, 4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996],\n"," 54: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 67: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 71: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 76: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 88: [4226, 296, 47, 4306, 3996, 318, 1704, 2997, 50, 4995],\n"," 89: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 94: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 95: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 100: [2959, 4993, 4226, 7153, 3578, 2762, 4306, 5445, 6874, 4963],\n"," 101: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 102: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 103: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 111: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 116: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 118: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 143: [7153, 6539, 6874, 6377, 50, 7361, 4027, 7438, 8961, 6711],\n"," 144: [1704, 4886, 3897, 5989, 2502, 2706, 3147, 1784, 3114, 4979],\n"," 162: [4226, 318, 4963, 1704, 2329, 2997, 50, 4011, 7361, 4878],\n"," 172: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 173: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 187: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 193: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 208: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 210: [2959, 5952, 47, 6539, 5445, 6874, 4963, 5349, 4886, 2329],\n"," 214: [2959, 5952, 2858, 7153, 4306, 318, 6539, 6874, 2329, 6377],\n"," 228: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 232: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 236: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 259: [3578, 318, 6377, 4011, 4027, 1089, 8961, 1961, 2542, 4034],\n"," 260: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 267: [4306, 1704, 4886, 4011, 4878, 1682, 5989, 2502, 6711, 4034],\n"," 268: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 271: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 274: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n"," 287: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 292: [6874, 4963, 527, 6333, 5989, 2542, 3147, 5418, 1517, 3481],\n"," 296: [3996, 1704, 6377, 1136, 2683, 1270, 1784, 1258, 364, 1517],\n"," 303: [6539, 4963, 1704, 5349, 2329, 6377, 2997, 50, 4995, 4973],\n"," 307: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 310: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n"," 315: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 320: [318, 6874, 1704, 5349, 2329, 3793, 2997, 50, 7361, 4878],\n"," 332: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 339: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 343: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 355: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 364: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 365: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 368: [2858, 2762, 318, 1704, 2329, 4995, 2028, 4878, 593, 7438],\n"," 381: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 382: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 383: [2959, 47, 4306, 6539, 6874, 4963, 5349, 2329, 356, 4011],\n"," 391: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 396: [4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 3996, 318],\n"," 398: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 406: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 409: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 410: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 416: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 418: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 419: [2959, 7153, 3578, 6539, 6874, 1704, 4886, 2329, 6377, 356],\n"," 421: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 424: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 432: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 434: [4226, 296, 47, 318, 2329, 2997, 50, 4973, 7361, 4878],\n"," 436: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 438: [2959, 4993, 5952, 4226, 7153, 47, 6539, 5445, 6874, 4963],\n"," 441: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 446: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 452: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 3996],\n"," 460: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 463: [7153, 6874, 4963, 6377, 4973, 4011, 7361, 1682, 3897, 7438],\n"," 468: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 469: [2959, 47, 2329, 50, 4995, 4011, 7361, 4878, 1682, 3897],\n"," 472: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 476: [1704, 4886, 4995, 7438, 2502, 2291, 1923, 1721, 4034, 1270],\n"," 480: [7153, 318, 6539, 6874, 1704, 2329, 6377, 7361, 4878, 1682],\n"," 482: [2858, 2762, 3996, 5445, 6874, 2997, 50, 4973, 1682, 3897],\n"," 493: [4993, 5952, 7153, 593, 7438, 6333, 2502, 1136, 6365, 1258],\n"," 496: [2959, 4993, 5952, 2858, 7153, 3578, 4306, 3996, 318, 6539],\n"," 501: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 504: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 505: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 511: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 516: [6377, 50, 7361, 1682, 4027, 2542, 33794, 364, 3481, 2918],\n"," 525: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 530: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 531: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 533: [4886, 2329, 4995, 4011, 4878, 2706, 3147, 6365, 2683, 778],\n"," 536: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 543: [2329, 2028, 4011, 3897, 5989, 1923, 2542, 4034, 3481, 3052],\n"," 547: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 549: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 553: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 558: [7153, 2762, 6874, 4886, 2329, 2997, 4973, 4011, 7361, 4878],\n"," 562: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 567: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 571: [2959, 4993, 5952, 7153, 2762, 296, 3996, 6874, 356, 4878],\n"," 572: [3578, 3996, 318, 1704, 4973, 1961, 4034, 33794, 5418, 1784],\n"," 577: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 581: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 585: [4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996, 6539],\n"," 593: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 604: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 605: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 609: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 628: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 629: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 645: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 650: [2959, 5952, 7153, 296, 4306, 6539, 5445, 6874, 4963, 4886],\n"," 656: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 657: [4306, 4963, 4886, 3793, 4011, 7438, 6333, 2502, 1136, 8961],\n"," 669: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 678: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 683: [2959, 5952, 4226, 2858, 2762, 296, 3996, 318, 6874, 4963],\n"," 688: [3996, 318, 5445, 4973, 2028, 7361, 4878, 1682, 3897, 2502],\n"," 689: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 693: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 716: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n"," 720: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 734: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 735: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 739: [4993, 5952, 4226, 2858, 7153, 3578, 296, 4306, 3996, 318],\n"," 755: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 758: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 767: [2959, 4226, 2858, 296, 47, 4306, 5445, 4963, 1704, 4886],\n"," 769: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 786: [2959, 4993, 5952, 2858, 7153, 296, 47, 6539, 5445, 6874],\n"," 789: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 792: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 795: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 798: [2329, 6377, 4011, 7361, 4027, 2502, 2706, 4034, 1784, 3481],\n"," 799: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 802: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 806: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 807: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 816: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 827: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 828: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 846: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 859: [2858, 47, 4306, 318, 6874, 4963, 2329, 6377, 2997, 50],\n"," 862: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 876: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 881: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 885: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 4306, 3996],\n"," 886: [4993, 5952, 4226, 7153, 4306, 6539, 5445, 6874, 4963, 5349],\n"," 889: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 890: [4993, 5952, 4226, 7153, 47, 4306, 318, 6539, 5445, 6874],\n"," 891: [6539, 5445, 6874, 4963, 2329, 6377, 4995, 4011, 7361, 593],\n"," 896: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 897: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 898: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 908: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 922: [4226, 2858, 296, 3996, 5445, 6874, 1704, 2329, 3793, 2997],\n"," 930: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 938: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 956: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 958: [4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306, 3996],\n"," 968: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 977: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 4306, 3996, 6539],\n"," 990: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 996: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 1004: [4993,\n"," 5952,\n"," 4226,\n"," 7153,\n"," 3578,\n"," 4306,\n"," 3996,\n"," 6539,\n"," 5445,\n"," 6874],\n"," 1005: [2959,\n"," 4993,\n"," 5952,\n"," 4226,\n"," 2571,\n"," 2858,\n"," 7153,\n"," 3578,\n"," 2762,\n"," 4306],\n"," 1008: [6539,\n"," 4963,\n"," 4995,\n"," 2028,\n"," 4011,\n"," 1682,\n"," 3897,\n"," 4027,\n"," 1089,\n"," 5989],\n"," 1029: [2959,\n"," 4993,\n"," 5952,\n"," 4226,\n"," 2571,\n"," 2858,\n"," 7153,\n"," 3578,\n"," 2762,\n"," 4306],\n"," 1037: [2959,\n"," 4993,\n"," 5952,\n"," 4226,\n"," 2571,\n"," 2858,\n"," 7153,\n"," 3578,\n"," 2762,\n"," 4306],\n"," 1050: [2959,\n"," 4993,\n"," 5952,\n"," 4226,\n"," 2571,\n"," 2858,\n"," 7153,\n"," 3578,\n"," 2762,\n"," 4306],\n"," 4: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 8: [296, 318, 6377, 356, 4995, 4973, 7361, 5989, 2502, 2706],\n"," 18: [4993, 5952, 4226, 7153, 5445, 6874, 5349, 4886, 2329, 3793],\n"," 36: [7153, 47, 3996, 318, 5445, 6874, 1704, 4886, 2329, 2997],\n"," 47: [47, 4963, 1704, 5349, 4886, 6377, 356, 7361, 4878, 1682],\n"," 59: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 62: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 77: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 79: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 80: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 119: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 122: [4993, 5952, 4226, 7153, 47, 4306, 6539, 5445, 6874, 4963],\n"," 125: [2329,\n"," 7361,\n"," 4878,\n"," 1682,\n"," 7438,\n"," 8961,\n"," 33794,\n"," 5418,\n"," 32587,\n"," 8636],\n"," 126: [4973, 7361, 4878, 6711, 2542, 6365, 3052, 778, 1206, 5669],\n"," 132: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 141: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 154: [4993, 5952, 4226, 2858, 7153, 3578, 4306, 3996, 318, 6874],\n"," 155: [4226, 7153, 6539, 5445, 6874, 4963, 5349, 4886, 6377, 3793],\n"," 163: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 164: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 170: [4993, 5952, 7153, 3578, 3996, 6539, 5445, 6874, 1704, 5349],\n"," 171: [4993, 5952, 4226, 2571, 7153, 3578, 4306, 3996, 6539, 5445],\n"," 176: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 190: [4226, 2858, 47, 318, 4963, 1704, 2329, 6377, 2997, 50],\n"," 197: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 198: [2997,\n"," 4973,\n"," 4011,\n"," 6333,\n"," 5989,\n"," 2291,\n"," 2542,\n"," 4034,\n"," 3147,\n"," 33794],\n"," 199: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 212: [2858, 3578, 1704, 4886, 2329, 6377, 4011, 4878, 1682, 3897],\n"," 221: [2959, 4993, 4226, 7153, 3578, 2762, 4306, 3996, 6539, 5445],\n"," 223: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 226: [2959, 2858, 7153, 6539, 6874, 4963, 6377, 2997, 4973, 7361],\n"," 241: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 247: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 249: [2858, 3996, 6874, 2997, 4973, 3897, 7438, 527, 6333, 8961],\n"," 254: [4993, 4226, 7153, 6539, 6874, 4963, 1704, 4886, 2329, 6377],\n"," 264: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 273: [2959, 4226, 2762, 296, 47, 4306, 3996, 5445, 6874, 4963],\n"," 275: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 6539, 5445],\n"," 276: [6539, 4963, 4995, 4027, 33794, 5418, 1517, 2918, 3052, 110],\n"," 293: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 294: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 295: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 318: [4226, 2329, 4878, 1923, 3147, 32, 2692, 293, 5669, 1213],\n"," 321: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 345: [4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318, 6539],\n"," 346: [2959, 4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996],\n"," 348: [1136, 6365, 5418, 3481, 2918, 3052, 1580, 4022, 1732, 1265],\n"," 349: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 354: [4226, 296, 47, 6874, 4886, 2329, 3793, 2997, 50, 2028],\n"," 359: [47, 318, 6874, 1704, 5349, 4886, 2329, 356, 50, 2028],\n"," 366: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 369: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 384: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 390: [47, 6539, 6377, 7361, 3897, 1089, 7438, 527, 2291, 1961],\n"," 392: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 403: [2959, 4993, 5952, 2858, 3578, 4306, 3996, 318, 6539, 6874],\n"," 407: [4226, 2858, 318, 1704, 5349, 4995, 4973, 4011, 7361, 4878],\n"," 414: [4226, 7153, 3578, 4306, 318, 6539, 5445, 5349, 4886, 2329],\n"," 431: [2959, 4226, 2571, 2858, 3578, 2762, 296, 47, 3996, 5445],\n"," 454: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 465: [5952, 2571, 7153, 5445, 4963, 4886, 3793, 2028, 3897, 6333],\n"," 481: [2762, 6377, 2997, 4973, 4027, 527, 5989, 8961, 1961, 3147],\n"," 485: [4993, 5952, 4226, 7153, 47, 4306, 3996, 6539, 5445, 6874],\n"," 503: [47, 3996, 4963, 1704, 5349, 50, 4011, 3897, 4027, 1089],\n"," 513: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n"," 545: [3578, 4306, 6539, 5445, 4963, 5349, 3793, 1682, 6333, 2706],\n"," 552: [4993, 5952, 2571, 7153, 3578, 47, 3996, 5445, 6874, 4963],\n"," 554: [4226, 2571, 3578, 47, 6539, 5445, 5349, 4886, 2329, 50],\n"," 555: [5445, 1704, 4973, 7361, 1682, 5989, 1923, 1721, 4034, 6365],\n"," 561: [318, 1704, 2997, 50, 4995, 7361, 1682, 3897, 4027, 1089],\n"," 565: [2959, 4993, 5952, 4226, 2571, 7153, 47, 4306, 318, 6539],\n"," 591: [2959, 4993, 5952, 4226, 2571, 7153, 2762, 296, 47, 4306],\n"," 617: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 622: [4226, 3578, 3996, 6539, 6874, 4886, 6377, 3793, 2997, 50],\n"," 623: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 633: [2762, 5445, 4963, 2329, 2997, 4995, 4973, 4011, 4878, 1682],\n"," 636: [2959, 4226, 2858, 47, 4306, 3996, 1704, 5349, 4886, 6377],\n"," 638: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 641: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 646: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 654: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 655: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 658: [4993, 5952, 7153, 2762, 4306, 3996, 318, 5445, 1704, 5349],\n"," 660: [4993, 5952, 4226, 7153, 6539, 5445, 6874, 1704, 5349, 4886],\n"," 661: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 677: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 714: [47, 5349, 3793, 4011, 7361, 4878, 593, 1089, 7438, 6333],\n"," 715: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 723: [2858, 296, 3996, 5445, 4963, 1704, 4886, 6377, 3793, 2997],\n"," 731: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 47, 4306, 3996],\n"," 742: [593, 1089, 7438, 527, 2502, 1258, 2692, 858, 1732, 293],\n"," 743: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 752: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 772: [2959, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47, 318],\n"," 814: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 823: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 826: [2762, 4306, 5349, 4886, 2329, 527, 5989, 2502, 2291, 8961],\n"," 833: [2959, 4226, 7153, 3578, 2762, 47, 6539, 6874, 4886, 2329],\n"," 838: [2959, 7153, 4306, 3996, 6874, 4963, 5349, 4886, 2329, 3793],\n"," 842: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 852: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 878: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 887: [4993, 5952, 4226, 7153, 2762, 4306, 3996, 6539, 5445, 6874],\n"," 895: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 899: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 902: [6377, 2997, 4973, 4878, 1682, 4027, 527, 2502, 2291, 1923],\n"," 907: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 928: [7153, 6539, 6874, 1704, 5349, 3793, 4995, 2028, 1682, 4027],\n"," 936: [318, 5349, 3793, 5989, 2706, 2291, 1721, 4034, 1270, 1258],\n"," 964: [4993, 5952, 2858, 7153, 2762, 4306, 3996, 5445, 6874, 1704],\n"," 970: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 972: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n"," 1001: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1013: [2959, 4226, 2858, 3578, 2762, 47, 6539, 5445, 6874, 1704],\n"," 1018: [3578, 4963, 1704, 6377, 50, 4995, 4027, 527, 2502, 8961],\n"," 1028: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 1031: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1035: [3996, 6539, 4963, 1704, 2329, 2997, 50, 4995, 4973, 4011],\n"," 1038: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1045: [5952,\n"," 3996,\n"," 4973,\n"," 6711,\n"," 2542,\n"," 33794,\n"," 5418,\n"," 2692,\n"," 1580,\n"," 480],\n"," 1046: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 35: [5952, 7153, 3578, 296, 318, 6539, 1704, 5349, 4886, 6377],\n"," 72: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 91: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 4306, 3996],\n"," 106: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 4306, 3996],\n"," 128: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 158: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 160: [2959, 4993, 5952, 4226, 7153, 2762, 296, 47, 4306, 318],\n"," 175: [4306, 3996, 6539, 5445, 4963, 1704, 5349, 3793, 4995, 1682],\n"," 196: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306, 3996],\n"," 203: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 206: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n"," 207: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 255: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 265: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 296, 4306, 3996],\n"," 340: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 404: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 433: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 440: [3578, 4306, 3996, 5445, 6874, 4963, 1704, 5349, 4886, 6377],\n"," 444: [2959, 4993, 5952, 4226, 7153, 3578, 3996, 318, 6539, 5445],\n"," 450: [2959, 7153, 6539, 6874, 1704, 6377, 4011, 7361, 4878, 1682],\n"," 479: [4993, 5952, 7153, 3578, 47, 4306, 3996, 6539, 5445, 6874],\n"," 491: [4993, 7153, 296, 4306, 6539, 5445, 4886, 2329, 6377, 3793],\n"," 506: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 523: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 539: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 541: [4993, 5952, 4226, 7153, 3578, 2762, 296, 4306, 3996, 318],\n"," 616: [4306, 3996, 6874, 4963, 1704, 5349, 2329, 6377, 3793, 4995],\n"," 647: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 659: [2959, 3578, 6539, 4963, 5349, 4886, 2329, 3793, 50, 2028],\n"," 695: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 4306, 3996],\n"," 700: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 707: [4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996, 318],\n"," 748: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 759: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 784: [4973, 4011, 7361, 1682, 4027, 1089, 5989, 2502, 6711, 2542],\n"," 790: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 835: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 844: [2959, 4993, 5952, 4226, 7153, 296, 47, 4306, 3996, 318],\n"," 871: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 875: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 892: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 919: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 935: [2959, 4993, 5952, 2858, 7153, 2762, 296, 47, 4306, 318],\n"," 942: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 960: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 1006: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1026: [2858, 296, 47, 3996, 318, 6539, 5445, 356, 2997, 50],\n"," 1047: [5952, 6539, 1704, 593, 7438, 5989, 2291, 1961, 2683, 5418],\n"," 65: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 3996],\n"," 135: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 152: [2959, 4993, 5952, 4226, 2858, 7153, 296, 4306, 3996, 6539],\n"," 166: [2959, 4226, 2571, 2858, 7153, 3578, 296, 47, 4306, 3996],\n"," 179: [2959, 5952, 4226, 2858, 7153, 2762, 47, 318, 6539, 6874],\n"," 188: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 217: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 253: [2959, 4993, 5952, 4226, 7153, 2762, 296, 47, 4306, 318],\n"," 262: [2858, 2329, 6377, 1682, 3897, 4027, 1089, 5989, 1136, 6711],\n"," 277: [2959, 4226, 2571, 2858, 3578, 47, 4306, 3996, 318, 6539],\n"," 289: [6377, 4878, 7438, 6333, 2502, 2542, 6365, 2683, 5418, 364],\n"," 300: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 47, 4306, 3996],\n"," 302: [4993, 5952, 4226, 7153, 47, 4306, 3996, 6539, 5445, 6874],\n"," 308: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 311: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 328: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 329: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 344: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 347: [2959, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47, 3996],\n"," 358: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 3996, 6539],\n"," 474: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 483: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 509: [4993, 3578, 4306, 318, 6539, 5445, 6377, 2997, 4973, 4878],\n"," 578: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n"," 643: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n"," 679: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 680: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n"," 691: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 47, 4306, 3996],\n"," 702: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 708: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 730: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 751: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 773: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n"," 803: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996],\n"," 809: [2959, 4226, 2571, 7153, 3578, 296, 4306, 3996, 318, 6539],\n"," 820: [2762, 318, 1704, 2329, 4995, 4011, 3897, 527, 5989, 2542],\n"," 824: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 4306],\n"," 863: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 4306, 3996, 6539],\n"," 865: [4993, 5952, 2762, 3996, 6539, 5445, 6874, 5349, 4886, 2329],\n"," 867: [2762, 47, 6874, 4995, 4011, 7361, 4878, 1682, 593, 1089],\n"," 911: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 915: [2959, 4226, 7153, 3578, 296, 3996, 318, 6539, 6874, 1704],\n"," 939: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 946: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 954: [4993, 5952, 4226, 2858, 7153, 296, 4306, 3996, 318, 6539],\n"," 957: [4993, 5952, 4226, 7153, 3578, 2762, 4306, 3996, 6539, 5445],\n"," 971: [7153, 3578, 2762, 47, 4306, 6539, 5445, 6874, 4963, 6377],\n"," 986: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 992: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n"," 92: [2959, 296, 4306, 3996, 6874, 4886, 2329, 6377, 2997, 50],\n"," 107: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 131: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 138: [3996, 4963, 5349, 4886, 3793, 2997, 4973, 7361, 4878, 1682],\n"," 145: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 183: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 209: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 230: [4993, 5952, 4226, 2571, 7153, 2762, 47, 4306, 3996, 318],\n"," 263: [7153, 4306, 6874, 356, 2997, 2028, 4011, 1682, 3897, 1089],\n"," 305: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 314: [2959, 4226, 2571, 7153, 47, 4306, 6539, 5445, 6874, 4963],\n"," 319: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 325: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 341: [4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996, 6539],\n"," 471: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 488: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 495: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 532: [2959, 5952, 7153, 47, 4306, 318, 6539, 5445, 6874, 1704],\n"," 564: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 574: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 603: [4226, 3578, 2762, 47, 3996, 6539, 5445, 6874, 4963, 5349],\n"," 674: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 753: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 810: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 830: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 841: [2959, 5952, 2858, 7153, 2762, 296, 47, 4306, 318, 6539],\n"," 856: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 921: [2959, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 933: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 4306, 3996, 6539],\n"," 976: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 37: [2858, 2762, 6539, 5445, 4963, 5349, 4886, 2329, 6377, 356],\n"," 83: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 248: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 387: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 428: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 451: [2959, 2858, 3578, 296, 47, 4306, 3996, 318, 6539, 5445],\n"," 584: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 874: [4226, 318, 50, 4011, 4878, 1089, 527, 2291, 1961, 6711],\n"," 995: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 10: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 19: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 41: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 43: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 44: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 45: [2959, 4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996],\n"," 51: [2959, 4993, 5952, 2571, 7153, 47, 4306, 318, 6539, 5445],\n"," 56: [2959, 2762, 47, 3996, 318, 6539, 5445, 4963, 1704, 5349],\n"," 61: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 68: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n"," 69: [2959, 4993, 5952, 4226, 2571, 7153, 47, 4306, 3996, 6539],\n"," 78: [4993, 5952, 7153, 3578, 47, 4306, 6539, 4963, 1704, 5349],\n"," 110: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 115: [2959, 4993, 5952, 4226, 2571, 7153, 47, 4306, 3996, 6539],\n"," 129: [4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306, 3996],\n"," 150: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 168: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 169: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 178: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 186: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n"," 201: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 4306, 3996],\n"," 239: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 256: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 257: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 296, 47, 4306],\n"," 272: [2571, 2762, 47, 318, 6874, 4963, 1704, 4886, 4995, 4973],\n"," 279: [4993, 4226, 2858, 5445, 4963, 1704, 2329, 50, 4995, 4973],\n"," 280: [2959, 4226, 3578, 2762, 296, 47, 3996, 318, 6539, 5445],\n"," 285: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n"," 298: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 301: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n"," 304: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 333: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 334: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 338: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n"," 350: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 353: [2858, 3578, 2762, 4306, 318, 6539, 5445, 6874, 4963, 1704],\n"," 378: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 386: [4993, 5952, 2571, 7153, 47, 4306, 6539, 5445, 6874, 4963],\n"," 397: [4993, 5952, 7153, 47, 4306, 3996, 6539, 5445, 6874, 4963],\n"," 420: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 439: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 449: [4993, 5952, 4226, 7153, 296, 4306, 3996, 318, 6539, 5445],\n"," 478: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 487: [4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539, 5445],\n"," 489: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 500: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 510: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 521: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 522: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 527: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 529: [2959, 4993, 5952, 2571, 2858, 7153, 3578, 2762, 47, 3996],\n"," 535: [4226, 2858, 7153, 2762, 3996, 6539, 6874, 4963, 1704, 5349],\n"," 550: [2959, 4226, 2571, 7153, 3578, 47, 4306, 6539, 5445, 6874],\n"," 560: [4993, 5952, 2571, 7153, 3578, 4306, 3996, 6539, 5445, 6874],\n"," 573: [2959, 4993, 5952, 7153, 3578, 296, 47, 4306, 3996, 6539],\n"," 579: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n"," 582: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 583: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 587: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 596: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n"," 602: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 618: [2959, 4993, 5952, 4226, 7153, 3578, 296, 4306, 3996, 6539],\n"," 624: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 627: [2959, 5952, 7153, 47, 6539, 5445, 6874, 4886, 2329, 6377],\n"," 635: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 639: [4226, 2571, 2858, 3578, 2762, 3996, 5445, 6874, 4963, 1704],\n"," 640: [2762, 296, 3996, 4963, 1704, 2329, 2997, 50, 4995, 4011],\n"," 642: [4993, 5952, 4226, 7153, 4306, 6539, 5445, 6874, 4963, 5349],\n"," 649: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 652: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 662: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 671: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996],\n"," 675: [2959, 5952, 4226, 2571, 2858, 7153, 2762, 47, 4306, 3996],\n"," 684: [2959, 4993, 5952, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 703: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 712: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 726: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 727: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 744: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 746: [2959, 4993, 4226, 2571, 7153, 2762, 6539, 4963, 5349, 4886],\n"," 761: [2959, 4226, 3578, 296, 47, 3996, 6874, 1704, 5349, 2329],\n"," 765: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n"," 766: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 771: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 776: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 797: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 47, 4306],\n"," 812: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 815: [2959, 4226, 2858, 3578, 47, 3996, 318, 6539, 5445, 4963],\n"," 818: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 821: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n"," 822: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 831: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 834: [4993, 5952, 7153, 3578, 296, 47, 3996, 5445, 6874, 1704],\n"," 837: [5952, 4226, 7153, 2762, 47, 4306, 6539, 5445, 6874, 4963],\n"," 839: [2959, 2571, 2858, 3578, 296, 47, 4306, 3996, 318, 6874],\n"," 840: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 851: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 47, 3996, 318],\n"," 855: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 857: [2959, 4226, 2858, 2762, 296, 4306, 3996, 318, 5445, 1704],\n"," 868: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 4306, 3996],\n"," 904: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 905: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 906: [7153, 3578, 47, 4306, 318, 6539, 5445, 5349, 4886, 6377],\n"," 924: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 925: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n"," 927: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 940: [2959, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306, 3996],\n"," 948: [2959, 7153, 3578, 4306, 6539, 5445, 6874, 4963, 5349, 4886],\n"," 953: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 966: [3578, 2762, 47, 4306, 3996, 318, 6539, 6874, 1704, 2329],\n"," 967: [4993, 5952, 4226, 7153, 3578, 4306, 3996, 5445, 6874, 4963],\n"," 979: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 980: [5952, 2571, 3578, 47, 4306, 318, 6539, 5445, 6874, 4963],\n"," 983: [4993, 3578, 296, 47, 6874, 4963, 1704, 2329, 2997, 50],\n"," 984: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 47, 4306, 3996],\n"," 991: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1009: [2959, 4993, 5952, 4226, 3578, 2762, 296, 47, 4306, 3996],\n"," 1011: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 1014: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 1021: [4993, 5952, 7153, 296, 47, 318, 6539, 5445, 6874, 4963],\n"," 1030: [2959, 4226, 2858, 7153, 3578, 296, 47, 4306, 3996, 318],\n"," 1033: [2959,\n"," 4993,\n"," 5952,\n"," 4226,\n"," 2571,\n"," 2858,\n"," 7153,\n"," 3578,\n"," 3996,\n"," 6539],\n"," 1039: [2959,\n"," 4993,\n"," 5952,\n"," 4226,\n"," 2571,\n"," 2858,\n"," 7153,\n"," 3578,\n"," 2762,\n"," 4306],\n"," 1040: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 1053: [2959, 4993, 5952, 4226, 7153, 296, 47, 3996, 318, 6874],\n"," 704: [2858, 7153, 296, 318, 6539, 6874, 2329, 6377, 356, 2997],\n"," 934: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 42: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 73: [4993, 5952, 4226, 7153, 3578, 4306, 3996, 6539, 5445, 6874],\n"," 82: [2959, 2858, 7153, 3578, 2762, 47, 3996, 318, 5445, 1704],\n"," 159: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 161: [4306, 4963, 1704, 2329, 356, 2997, 4995, 2028, 4011, 1682],\n"," 192: [4993, 5952, 7153, 2762, 3996, 318, 6539, 2329, 356, 4995],\n"," 216: [2959, 4226, 7153, 3578, 296, 6539, 5445, 6874, 1704, 6377],\n"," 219: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n"," 290: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 379: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 4306, 3996],\n"," 389: [296, 4306, 4963, 356, 50, 4973, 1089, 2706, 1136, 1923],\n"," 400: [4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996, 318],\n"," 462: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 507: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 600: [4993, 5952, 2571, 7153, 2762, 296, 47, 4306, 3996, 318],\n"," 721: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 793: [2959, 2858, 2762, 296, 47, 3996, 318, 6539, 6874, 4963],\n"," 912: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 932: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 949: [4993, 5952, 4226, 47, 4306, 6539, 6874, 2329, 356, 50],\n"," 1025: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 46: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 74: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 342: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 508: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 580: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 774: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 783: [2959, 4226, 2858, 3578, 2762, 296, 47, 5445, 6874, 4963],\n"," 1002: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1023: [4226, 2762, 296, 4306, 3996, 318, 5445, 4963, 1704, 5349],\n"," 1048: [3578, 3996, 4963, 6377, 3793, 356, 4973, 7361, 4878, 1682],\n"," 23: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 96: [2959, 4993, 5952, 4226, 7153, 47, 4306, 3996, 318, 6539],\n"," 124: [2959, 4226, 2858, 3578, 2762, 296, 47, 4306, 318, 6539],\n"," 136: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 148: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 189: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 213: [2959, 4993, 5952, 4226, 7153, 3578, 4306, 3996, 318, 6539],\n"," 243: [4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996, 318],\n"," 323: [2959, 4226, 2571, 2858, 3578, 2762, 47, 4306, 3996, 318],\n"," 352: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 429: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 625: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 808: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 843: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 847: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 963: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 975: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 998: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47, 318],\n"," 75: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 47, 4306],\n"," 427: [2959, 4993, 5952, 4226, 2858, 7153, 296, 4306, 3996, 5445],\n"," 466: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 801: [2858, 2762, 318, 5445, 356, 2997, 50, 4995, 4011, 4878],\n"," 848: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 888: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 191: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 227: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 245: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 380: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n"," 408: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 668: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 747: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 754: [2959, 2858, 2762, 296, 318, 1704, 2329, 356, 2997, 50],\n"," 11: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 16: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 81: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306, 3996],\n"," 86: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 97: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 151: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n"," 235: [5952, 2762, 4306, 3996, 6874, 4963, 1704, 5349, 4886, 2329],\n"," 251: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 258: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 278: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 388: [2959, 4993, 5952, 2858, 7153, 3578, 2762, 296, 47, 4306],\n"," 551: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 606: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 614: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 681: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 686: [2959, 4993, 5952, 4226, 7153, 296, 47, 4306, 3996, 318],\n"," 711: [2959, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306, 3996],\n"," 718: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 873: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 962: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 985: [2959, 4226, 2571, 2858, 2762, 296, 47, 318, 6539, 6874],\n"," 993: [2959, 2571, 2858, 7153, 2762, 296, 47, 318, 6539, 6874],\n"," 184: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n"," 246: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 373: [2959, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306],\n"," 430: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 534: [2959, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47, 4306],\n"," 805: [2959, 4226, 2858, 2762, 296, 47, 3996, 318, 5445, 6874],\n"," 58: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n"," 112: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 367: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 548: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 791: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 909: [4226, 7153, 3578, 296, 47, 4306, 3996, 318, 6874, 4963],\n"," 1041: [4306, 5445, 5349, 6377, 3793, 356, 4995, 1682, 3897, 4027],\n"," 13: [2959, 5952, 4226, 2571, 2858, 7153, 2762, 47, 4306, 3996],\n"," 869: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 415: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 477: [2858, 3578, 4306, 6539, 5445, 6874, 4963, 1704, 5349, 4886],\n"," 569: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 694: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 729: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 741: [2959, 4993, 5952, 4226, 7153, 3578, 4306, 3996, 6539, 5445],\n"," 965: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 17: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 40: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n"," 114: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 137: [5952, 4226, 7153, 6539, 5445, 6874, 4886, 6377, 356, 4973],\n"," 153: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 47, 4306, 3996],\n"," 211: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n"," 286: [4993, 5952, 7153, 2762, 296, 47, 4306, 3996, 318, 6539],\n"," 330: [4226, 3578, 4306, 3996, 318, 6539, 5445, 4963, 1704, 4886],\n"," 336: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 372: [4226, 2858, 7153, 296, 47, 4306, 3996, 318, 6539, 5445],\n"," 376: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 3996],\n"," 412: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 447: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n"," 467: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n"," 490: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 518: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 608: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 3996],\n"," 619: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 644: [2959, 4226, 2858, 7153, 2762, 296, 47, 3996, 318, 6539],\n"," 667: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 698: [4306, 6539, 5349, 4886, 356, 2997, 4973, 4027, 2502, 2706],\n"," 709: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 728: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n"," 733: [2959, 5952, 4226, 2858, 2762, 296, 47, 4306, 3996, 318],\n"," 777: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 813: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 832: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 893: [2959, 4993, 4226, 2858, 7153, 2762, 296, 47, 4306, 3996],\n"," 901: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 937: [4993, 4226, 2571, 2858, 3578, 296, 3996, 6539, 5445, 6874],\n"," 947: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 362: [2858, 3578, 296, 47, 4306, 3996, 6539, 5445, 6874, 4963],\n"," 375: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 599: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 632: [2959, 4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996],\n"," 779: [2959, 4993, 5952, 2571, 2858, 3578, 2762, 296, 47, 4306],\n"," 1022: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1034: [2959, 4993, 4226, 2571, 2858, 2762, 296, 47, 4306, 3996],\n"," 819: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 2: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 3: [2959, 4993, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306],\n"," 104: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 105: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 218: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 250: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 313: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 377: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n"," 413: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 576: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 586: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 595: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n"," 610: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 613: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 637: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 663: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 740: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 787: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 804: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 866: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 883: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 941: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1007: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 817: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 6: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 296, 47, 4306],\n"," 7: [2959, 4993, 5952, 2571, 2858, 7153, 3578, 296, 47, 3996],\n"," 14: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 24: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 57: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 60: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 64: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 84: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 90: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 98: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 113: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 120: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 123: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 157: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 194: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 200: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 204: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 205: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 225: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 229: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 237: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n"," 242: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 252: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 266: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 270: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 282: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 297: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 309: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 316: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 327: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 356: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 393: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 394: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 4306, 3996, 6539],\n"," 395: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 399: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 401: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n"," 402: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n"," 405: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 417: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 422: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 437: [2959, 4993, 5952, 4226, 7153, 3578, 4306, 3996, 6539, 5445],\n"," 455: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 461: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 473: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 484: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 499: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 526: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 537: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 542: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 557: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 563: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 570: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 575: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 594: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 607: [2959, 4993, 2571, 2858, 7153, 3578, 2762, 296, 47, 4306],\n"," 631: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 651: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 664: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 685: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 690: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 696: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 4306, 3996],\n"," 724: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 738: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 762: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 763: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 770: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 796: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 800: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 829: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 836: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 882: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 900: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 903: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 914: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 918: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 920: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 945: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 950: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 952: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 982: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 989: [2959, 4993, 5952, 4226, 7153, 2762, 47, 4306, 3996, 318],\n"," 1016: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 1019: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1044: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1051: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 917: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 951: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 997: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 174: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 676: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 764: [4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996, 6539],\n"," 1052: [4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47, 4306],\n"," 5: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 27: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 33: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 134: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 142: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 156: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 167: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 177: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 224: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 269: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 312: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 360: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 385: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 411: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 464: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n"," 568: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 612: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 630: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 706: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 737: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 749: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 756: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 811: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 853: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 884: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 955: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 1032: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1043: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 370: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 670: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 923: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 931: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 969: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 12: [4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996, 318],\n"," 597: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 195: [2959, 5952, 2571, 7153, 47, 318, 6539, 5445, 6874, 1704],\n"," 337: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 910: [2571, 3578, 2762, 6539, 5445, 4963, 5349, 356, 2997, 4973],\n"," 63: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 70: [2959, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47, 3996],\n"," 99: [2959, 5952, 2571, 2858, 7153, 3578, 47, 4306, 3996, 6539],\n"," 121: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n"," 130: [2959, 4226, 2571, 3578, 2762, 47, 4306, 318, 6539, 5445],\n"," 244: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 291: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 335: [2959, 5952, 2571, 2858, 7153, 2762, 296, 47, 4306, 318],\n"," 361: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 4306, 3996],\n"," 470: [4993, 7153, 3578, 4306, 4963, 1704, 5349, 4886, 3793, 356],\n"," 497: [2959, 5952, 2858, 3578, 296, 47, 3996, 6539, 5445, 6874],\n"," 620: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 648: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 666: [3578, 2762, 4306, 318, 6539, 5445, 4963, 1704, 5349, 4886],\n"," 710: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 794: [2959, 4993, 5952, 2571, 2858, 3578, 296, 47, 4306, 3996],\n"," 854: [4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996, 318],\n"," 861: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n"," 87: [4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996, 318],\n"," 317: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 324: [2858, 2762, 296, 47, 4306, 3996, 318, 6539, 6874, 4963],\n"," 502: [4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306, 3996],\n"," 559: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 973: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n"," 1015: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 1017: [2959, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306, 3996],\n"," 85: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n"," 306: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 653: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 371: [2959, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n"," 566: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 331: [5952, 3578, 2762, 296, 47, 4306, 3996, 5445, 1704, 5349],\n"," 665: [2959, 4993, 2571, 7153, 3578, 2762, 47, 4306, 318, 6539],\n"," 872: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 879: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 486: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 864: [4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306, 3996],\n"," 52: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 288: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 9: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 117: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 220: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 544: [4226, 2858, 3578, 2762, 4306, 3996, 318, 6539, 5445, 4963],\n"," 999: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 458: [2959, 4993, 5952, 2571, 7153, 296, 47, 4306, 3996, 318],\n"," 974: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 546: [2959, 4226, 2571, 2858, 2762, 296, 47, 6874, 4963, 1704],\n"," 55: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 363: [4226, 2571, 2858, 3578, 2762, 47, 4306, 3996, 318, 6539],\n"," 445: [2959, 4993, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306],\n"," 492: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 234: [4993, 5952, 7153, 3578, 2762, 296, 47, 318, 6539, 6874],\n"," 1027: [4993, 5952, 2571, 2858, 7153, 2762, 47, 4306, 3996, 318],\n"," 140: [2959, 4993, 5952, 2571, 3578, 2762, 296, 47, 4306, 3996],\n"," 926: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 781: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 825: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 913: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 453: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 540: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 66: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306, 3996],\n"," 185: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 222: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 498: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 994: [2959, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 165: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 202: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 180: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 93: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 261: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 435: [4993, 5952, 2858, 7153, 3578, 2762, 296, 4306, 3996, 318],\n"," 322: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 238: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 425: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 512: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 725: [4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996, 318],\n"," 732: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 108: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 592: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 443: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 916: [5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47, 4306],\n"," 736: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n"," 961: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n"," 1012: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 515: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 978: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 28: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 475: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 598: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 943: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 520: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 697: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 849: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1003: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n"," 705: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 48: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 29: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 231: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 699: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n"," 448: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 750: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n"," 782: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 860: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 768: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 127: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 894: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296]})"]},"metadata":{},"execution_count":10}],"source":["from collections import defaultdict\n","\n","# 각 사용자에 대한 추천 영화는 해당 사용자가 아직 평가하지 않은 영화 중에서 예측값이 높은 순으로 한다\n","pred_user2items = defaultdict(list)\n","user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","for user_id in movielens_train.user_id.unique():\n"," if user_id not in user_id2index:\n"," continue\n"," user_index = user_id2index[row[\"user_id\"]]\n"," movie_indexes = np.argsort(-pred_matrix[user_index, :])\n"," for movie_index in movie_indexes:\n"," movie_id = user_movie_matrix.columns[movie_index]\n"," if movie_id not in user_evaluated_movies[user_id]:\n"," pred_user2items[user_id].append(movie_id)\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","pred_user2items"]},{"cell_type":"code","execution_count":11,"id":"27b87c98","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":564},"id":"27b87c98","executionInfo":{"status":"ok","timestamp":1672119477563,"user_tz":-540,"elapsed":25,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"3b53ae05-8f2b-4bcd-e3e5-72cac813ffcf"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","6150 2 648 2.0 868244699 \n","6531 2 733 3.0 868244562 \n","6813 2 736 3.0 868244698 \n","7113 2 780 3.0 868244698 \n","7506 2 786 3.0 868244562 \n","7661 2 802 2.0 868244603 \n","7779 2 858 2.0 868245645 \n","8077 2 1049 3.0 868245920 \n","8127 2 1073 3.0 868244562 \n","8381 2 1210 4.0 868245644 \n","8771 2 1356 3.0 868244603 \n","9097 2 1544 3.0 868245920 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","6150 Mission: Impossible (1996) \n","6531 Rock, The (1996) \n","6813 Twister (1996) \n","7113 Independence Day (a.k.a. ID4) (1996) \n","7506 Eraser (1996) \n","7661 Phenomenon (1996) \n","7779 Godfather, The (1972) \n","8077 Ghost and the Darkness, The (1996) \n","8127 Willy Wonka & the Chocolate Factory (1971) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","8771 Star Trek: First Contact (1996) \n","9097 Lost World: Jurassic Park, The (Jurassic Park ... \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","6150 [Action, Adventure, Mystery, Thriller] \n","6531 [Action, Adventure, Thriller] \n","6813 [Action, Adventure, Romance, Thriller] \n","7113 [Action, Adventure, Sci-Fi, War] \n","7506 [Action, Drama, Thriller] \n","7661 [Drama, Romance] \n","7779 [Crime, Drama] \n","8077 [Action, Adventure] \n","8127 [Children, Comedy, Fantasy, Musical] \n","8381 [Action, Adventure, Sci-Fi] \n","8771 [Action, Adventure, Sci-Fi, Thriller] \n","9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","6150 [confusing, confusing plot, memorable sequence... 12.0 \n","6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n","6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n","7113 [action, alien invasion, aliens, will smith, a... 14.0 \n","7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n","7661 [interesting concept, own, john travolta, john... 15.0 \n","7779 [oscar (best picture), marlon brando, classic,... 9.0 \n","8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n","8127 [based on a book, roald dahl, based on a book,... 20.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n","8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n","9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":11}],"source":["# user_id=2의 사용자가 학습 데이터에 평가를 부여한 영화 목록\n","movielens_train[movielens_train.user_id==2]"]},{"cell_type":"code","execution_count":12,"id":"1940df09","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"1940df09","executionInfo":{"status":"ok","timestamp":1672119477563,"user_tz":-540,"elapsed":24,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c9d4698b-99ae-48dd-8628-92b6791aaa0e"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296]"]},"metadata":{},"execution_count":12}],"source":["pred_user2items[2]"]},{"cell_type":"code","execution_count":13,"id":"d1786a85","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"d1786a85","executionInfo":{"status":"ok","timestamp":1672119477563,"user_tz":-540,"elapsed":5,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"9bf45053-0677-4bd4-b3e2-e27b4f1c6384"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","2874 2959 Fight Club (1999) \n","4899 4993 Lord of the Rings: The Fellowship of the Ring,... \n","5852 5952 Lord of the Rings: The Two Towers, The (2002) \n","\n"," genre \\\n","2874 [Action, Crime, Drama, Thriller] \n","4899 [Action, Adventure, Fantasy] \n","5852 [Action, Adventure, Fantasy] \n","\n"," tag \n","2874 [based on a book, chuck palahniuk, edward nort... \n","4899 [based on a book, big budget, new zealand, sce... \n","5852 [based on a book, big budget, new zealand, sce... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
28742959Fight Club (1999)[Action, Crime, Drama, Thriller][based on a book, chuck palahniuk, edward nort...
48994993Lord of the Rings: The Fellowship of the Ring,...[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
58525952Lord of the Rings: The Two Towers, The (2002)[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":13}],"source":["# user_id=2에 대한 추천(2959, 4993, 5952)\n","movies[movies.movie_id.isin([2959, 4993, 5952])]"]},{"cell_type":"code","execution_count":13,"id":"441ff6da","metadata":{"id":"441ff6da","executionInfo":{"status":"ok","timestamp":1672119477563,"user_tz":-540,"elapsed":4,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/Popularity.ipynb b/chapter5/colab/Popularity.ipynb index 82b7723..4ba90e7 100644 --- a/chapter5/colab/Popularity.ipynb +++ b/chapter5/colab/Popularity.ipynb @@ -1,1812 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "b058b784", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/Popularity.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "4ffa2166", - "metadata": {}, - "source": [ - "# 인기도 순 추천\n", - "## 인기도의 정의\n", - "* 여기에서는 평갓값이 높은 것을 인기가 높은 영화로 간주합니다\n", - "* 인기도는 '클릭 수가 많은 것', '구매가 많은 것', '평갓값이 높은 것' 등 다양하게 정의할 수 있으므로 자사 서비스에 맞춰 적합한 정의를 사용합니다.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "dddeebb1", - "metadata": {}, - "outputs": [], - "source": [ - "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", - "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", - "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", - "\n", - "# 데이터 다운로드와 압축 풀기\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "373c704d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", - "import pandas as pd\n", - "\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "95116bab", - "metadata": {}, - "outputs": [], - "source": [ - "# 평가 수의 임곗값\n", - "minimum_num_rating = 200\n" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "035cfe3b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
rating
sizemean
movie_idtitle
4095Cry Freedom (1987)15.0
7227Trouble with Angels, The (1966)15.0
27255Wind Will Carry Us, The (Bad ma ra khahad bord) (1999)15.0
4453Michael Jordan to the Max (2000)25.0
3415Mirror, The (Zerkalo) (1975)15.0
\n", - "
" - ], - "text/plain": [ - " rating \n", - " size mean\n", - "movie_id title \n", - "4095 Cry Freedom (1987) 1 5.0\n", - "7227 Trouble with Angels, The (1966) 1 5.0\n", - "27255 Wind Will Carry Us, The (Bad ma ra khahad bord)... 1 5.0\n", - "4453 Michael Jordan to the Max (2000) 2 5.0\n", - "3415 Mirror, The (Zerkalo) (1975) 1 5.0" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import numpy as np\n", - "\n", - "# 평갓값의 평균이 높은 영화를 확인한다\n", - "# 평가 수가 1건인 영화가 상위에 여럿 나타난다\n", - "movie_stats = movielens_train.groupby(['movie_id', 'title']).agg({'rating': [np.size, np.mean]})\n", - "movie_stats.sort_values(by=('rating', 'mean'), ascending=False).head()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "fcfef4c3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
rating
sizemean
movie_idtitle
318Shawshank Redemption, The (1994)4244.491745
50Usual Suspects, The (1995)3344.459581
912Casablanca (1942)1634.444785
904Rear Window (1954)1294.441860
2019Seven Samurai (Shichinin no samurai) (1954)1044.408654
\n", - "
" - ], - "text/plain": [ - " rating \n", - " size mean\n", - "movie_id title \n", - "318 Shawshank Redemption, The (1994) 424 4.491745\n", - "50 Usual Suspects, The (1995) 334 4.459581\n", - "912 Casablanca (1942) 163 4.444785\n", - "904 Rear Window (1954) 129 4.441860\n", - "2019 Seven Samurai (Shichinin no samurai) (1954) 104 4.408654" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 임곗값을 도입해 평가 수가 적은 영화를 제거한다\n", - "# 쇼생크 탈출이나 7인의 사무라이 등 익숙한 영화가 상위에 나타난다\n", - "movie_stats = movielens_train.groupby(['movie_id', 'title']).agg({'rating': [np.size, np.mean]})\n", - "atleast_flg = movie_stats['rating']['size'] >= 100\n", - "movies_sorted_by_rating = movie_stats[atleast_flg].sort_values(by=('rating', 'mean'), ascending=False)\n", - "movies_sorted_by_rating.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "2827d6f8", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np \n", - "# 각 아이템별로 평균 평갓값을 계싼하고, 해당 평균 평갓값을 예측값으로 사용한다\n", - "movie_rating_average = movielens_train.groupby(\"movie_id\").agg({\"rating\": np.mean})\n", - "# 테스트 데이터에 예측값을 저장한다. 테스트 데이터에만 존재하는 아이템의 예측 평갓값은 0으로 한다.\n", - "movie_rating_predict = movielens_test.merge(\n", - " movie_rating_average, on=\"movie_id\", how=\"left\", suffixes=(\"_test\", \"_pred\")\n", - ").fillna(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "e18fcf5b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "defaultdict(list,\n", - " {139: [50, 858, 1193, 1214, 1200, 1291, 457, 150, 2396, 34],\n", - " 149: [318, 527, 260, 1193, 593, 2571, 1136, 2028, 1197, 2762],\n", - " 182: [260, 541, 1198, 1214, 1200, 47, 1036, 1291, 1210, 1240],\n", - " 215: [527, 590, 1073, 539, 253, 2683, 231],\n", - " 281: [858, 260, 1193, 2571, 2959, 1196, 2858, 1198, 1617, 1136],\n", - " 326: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 351: [541, 2959, 2028, 2762, 1200, 3578, 47, 1291, 1240, 589],\n", - " 357: [318, 50, 858, 260, 1193, 593, 541, 2959, 1196, 2858],\n", - " 426: [1073, 141, 329],\n", - " 456: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 459: [318, 50, 858, 1193, 1198, 1617, 1197, 608, 457, 1265],\n", - " 494: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 517: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 524: [527, 260, 1193, 593, 1196, 1198, 1617, 1136, 1197, 608],\n", - " 556: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 588: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 589: [318, 2571, 2959, 2858, 1617, 1136, 2028, 1197, 2762, 3578],\n", - " 590: [858, 527, 1193, 541, 2959, 2858, 1617, 1136, 1197, 1214],\n", - " 601: [50, 858, 2571, 541, 2959, 2858, 1617, 1136, 2028, 608],\n", - " 621: [110, 34, 595, 25, 141, 597, 253, 587, 500, 454],\n", - " 634: [318, 50, 858, 527, 1193, 2571, 2959, 2858, 2028, 296],\n", - " 672: [318, 1193, 541, 1136, 1214, 1200, 1036, 1240, 457, 1270],\n", - " 701: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 719: [858, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617, 1136],\n", - " 745: [1136, 356, 457, 34, 1073, 588, 357, 21, 539, 380],\n", - " 757: [318, 858, 527, 1193, 593, 2571, 2959, 2858, 1617, 2028],\n", - " 775: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 780: [2571, 2959, 2858, 3578, 1, 595, 1580, 165, 10, 316],\n", - " 785: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 788: [260, 1193, 541, 1196, 1136, 1197, 608, 296, 1210, 150],\n", - " 870: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 987: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 988: [527, 110, 2396, 733, 34, 1073, 480, 25, 539, 141],\n", - " 1020: [318, 50, 260, 2571, 541, 2959, 1196, 2858, 1198, 1136],\n", - " 1: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 22: [318, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 26: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 30: [50, 858, 2571, 541, 2959, 2858, 1617, 2028, 1197, 296],\n", - " 34: [1193, 2858, 1617, 1214, 1036, 1291, 2396, 1270, 2716, 1097],\n", - " 38: [50, 858, 527, 260, 1193, 541, 1196, 2858, 1198, 1617],\n", - " 50: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 53: [318, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 1198],\n", - " 54: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 67: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 71: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 76: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 88: [318, 50, 858, 527, 1193, 593, 541, 1617, 2028, 608],\n", - " 89: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 94: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 95: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 100: [1193, 541, 2959, 1617, 1136, 1197, 2762, 1214, 1200, 3578],\n", - " 101: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 102: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 103: [318, 858, 1193, 593, 2571, 2959, 2858, 1617, 2028, 1197],\n", - " 111: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 116: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 118: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 143: [50, 541, 1617, 1036, 1240, 589, 349, 165, 253, 587],\n", - " 144: [1193, 1197, 2396, 590, 1073, 595, 349, 539, 587, 39],\n", - " 162: [318, 50, 1193, 593, 541, 1617, 1197, 608, 1200, 1036],\n", - " 172: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 173: [2571, 541, 2959, 2858, 1617, 1136, 2028, 1197, 2762, 110],\n", - " 187: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 193: [858, 1193, 2571, 2959, 1196, 2858, 1198, 1617, 1136, 2028],\n", - " 208: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 210: [50, 858, 527, 260, 1193, 2959, 1196, 1198, 1617, 1136],\n", - " 214: [318, 1193, 541, 2959, 2858, 2028, 1214, 1200, 32, 349],\n", - " 228: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 232: [1193, 2571, 2959, 2858, 1617, 1136, 2028, 1197, 2762, 3578],\n", - " 236: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 259: [318, 858, 1193, 541, 110, 3578, 1036, 1, 1240, 589],\n", - " 260: [318, 50, 527, 2571, 2959, 2858, 1617, 2028, 1197, 2762],\n", - " 267: [1197, 2396, 2716, 364, 1265, 34, 1073, 588, 595, 349],\n", - " 268: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 271: [318, 50, 858, 527, 1193, 593, 2571, 2959, 2858, 1198],\n", - " 274: [318, 50, 858, 527, 1193, 593, 2571, 2959, 1198, 1617],\n", - " 287: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 292: [527, 1617, 110, 1036, 457, 2396, 34, 590, 595, 349],\n", - " 296: [260, 1196, 1198, 1617, 1136, 1197, 608, 110, 1291, 1210],\n", - " 303: [50, 1193, 1617, 1197, 1036, 1, 457, 2396, 1270, 733],\n", - " 307: [318, 50, 858, 527, 1193, 593, 2959, 2858, 1617, 1136],\n", - " 310: [1193, 2959, 3578, 47, 1210, 150, 588, 141, 10, 500],\n", - " 315: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 320: [318, 50, 858, 1193, 541, 1198, 1197, 608, 1200, 1291],\n", - " 332: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 339: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 343: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 355: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 364: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 365: [318, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 368: [318, 527, 1193, 593, 2858, 2028, 2762, 2396, 34, 349],\n", - " 381: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 382: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 383: [527, 2959, 1136, 1197, 110, 1200, 47, 1036, 1291, 1210],\n", - " 391: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 396: [318, 50, 858, 527, 1193, 593, 1617, 1136, 1197, 608],\n", - " 398: [318, 50, 858, 1193, 2571, 541, 2959, 2858, 1617, 2028],\n", - " 406: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 409: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 410: [260, 2571, 2959, 2858, 1617, 1136, 2028, 296, 2762, 3578],\n", - " 416: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 418: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 419: [2959, 1196, 2028, 3578, 1210, 1, 356, 150, 34, 25],\n", - " 421: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 424: [50, 858, 593, 2571, 2959, 2028, 1197, 296, 2762, 1214],\n", - " 432: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 434: [318, 50, 1136, 1197, 296, 47, 150, 2396, 32, 2716],\n", - " 436: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 438: [50, 527, 2959, 2028, 608, 47, 150, 1270, 588, 357],\n", - " 441: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 446: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 452: [50, 858, 260, 1193, 593, 541, 2959, 1196, 2858, 1198],\n", - " 460: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 463: [2396, 364, 1265, 590, 588, 595, 357, 539, 380, 165],\n", - " 468: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 469: [50, 858, 1193, 2959, 1617, 1197, 110, 47, 733, 1073],\n", - " 472: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 476: [858, 1193, 1197, 1, 150, 1270, 2716, 1265, 34, 1097],\n", - " 480: [318, 527, 1193, 1036, 457, 150, 2396, 733, 364, 34],\n", - " 482: [50, 593, 541, 2858, 1617, 1197, 608, 2762, 1214, 110],\n", - " 493: [593, 1196, 1198, 1136, 1214, 1200, 1240, 589, 733, 1265],\n", - " 496: [318, 50, 858, 527, 260, 1193, 541, 2959, 1196, 2858],\n", - " 501: [318, 50, 858, 527, 541, 2959, 2858, 1617, 296, 2762],\n", - " 504: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 505: [50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 511: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 516: [50, 1193, 1197, 608, 1036, 2396, 364, 1073, 349, 25],\n", - " 525: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 530: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 531: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 533: [150, 1097, 349, 21, 380, 165, 10, 2683, 367, 288],\n", - " 536: [318, 50, 858, 527, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 543: [2028, 21, 10, 288],\n", - " 547: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 549: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 553: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 558: [1193, 541, 2762, 316, 329],\n", - " 562: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 567: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 571: [1193, 593, 541, 2959, 608, 296, 2762, 1214, 110, 356],\n", - " 572: [318, 3578, 1036, 150, 2396, 34, 1097, 590, 588, 357],\n", - " 577: [527, 260, 1193, 2571, 541, 2959, 2858, 1617, 1136, 2028],\n", - " 581: [50, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 585: [2762, 110, 3578, 47, 733, 597, 253, 292, 288, 344],\n", - " 593: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 604: [1193, 2571, 541, 2959, 1196, 2858, 1198, 1617, 1136, 2028],\n", - " 605: [858, 593, 2571, 2959, 2858, 1617, 2028, 1197, 2762, 3578],\n", - " 609: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 628: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 629: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 645: [50, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 650: [527, 593, 2959, 1617, 1136, 2028, 296, 110, 1200, 457],\n", - " 656: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 657: [1136, 1200, 1240, 39, 316, 329, 288],\n", - " 669: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 678: [2571, 2959, 2858, 1617, 2028, 2762, 3578, 47, 1, 2396],\n", - " 683: [318, 50, 527, 1193, 593, 541, 2959, 2858, 1617, 1136],\n", - " 688: [318, 1617, 2028, 1197, 457, 1265, 34, 1073, 588, 595],\n", - " 689: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 693: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 716: [858, 1193, 1136, 110, 1036, 150, 733, 590, 1073, 595],\n", - " 720: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 734: [318, 858, 527, 1193, 2571, 541, 2959, 2858, 1617, 1136],\n", - " 735: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 739: [318, 858, 527, 260, 1193, 541, 1196, 2858, 1198, 1136],\n", - " 755: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 758: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 767: [50, 1193, 541, 2959, 2858, 1617, 1136, 2028, 608, 296],\n", - " 769: [858, 260, 1193, 2571, 2959, 1196, 2858, 1198, 1617, 2028],\n", - " 786: [50, 858, 1193, 593, 541, 2959, 2858, 1617, 2028, 608],\n", - " 789: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 792: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 795: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 798: [2396, 590, 595, 25, 21, 141, 292, 329, 153],\n", - " 799: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 802: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 806: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 807: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 816: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 827: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 828: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 846: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 859: [318, 50, 527, 1193, 2858, 1617, 608, 1214, 47, 457],\n", - " 862: [50, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 876: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 881: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 885: [2959, 2858, 1617, 2762, 3578, 364, 357, 539, 141, 597],\n", - " 886: [1197, 110, 1291, 1, 364, 588, 595, 25, 165, 367],\n", - " 889: [318, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 890: [318, 50, 858, 1193, 593, 541, 1196, 1198, 1617, 1136],\n", - " 891: [858, 593, 1136, 349, 25, 21, 141, 165, 10, 454],\n", - " 896: [318, 858, 1193, 2571, 2959, 1196, 2858, 1198, 1617, 2028],\n", - " 897: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 898: [318, 50, 858, 527, 1193, 593, 2959, 2858, 1198, 1617],\n", - " 908: [318, 50, 1193, 593, 2959, 2858, 1617, 1136, 1197, 608],\n", - " 922: [50, 858, 527, 260, 1193, 593, 541, 1196, 2858, 1198],\n", - " 930: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 938: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 956: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 958: [50, 858, 527, 260, 1193, 593, 541, 1196, 2858, 1198],\n", - " 968: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 977: [2959, 2762, 110, 3578, 356, 457, 150, 2396, 32, 1270],\n", - " 990: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 996: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 1004: [527, 541, 1197, 1214, 1200, 3578, 1036, 1291, 2396, 2716],\n", - " 1005: [50, 858, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 1008: [1136, 2028, 1240, 589, 349, 25, 21, 165, 10, 454],\n", - " 1029: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 1037: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 1050: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 4: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 8: [318, 858, 1193, 296, 110, 1, 356, 150, 2396, 2716],\n", - " 18: [50, 858, 1193, 1617, 1197, 1200, 588, 595, 21, 141],\n", - " 36: [318, 527, 1193, 541, 1136, 1197, 1214, 110, 1200, 47],\n", - " 47: [527, 1193, 1617, 1197, 608, 47, 356, 457, 1265, 1097],\n", - " 59: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 62: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 77: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 79: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 80: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 119: [50, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1617],\n", - " 122: [541, 1617, 2028, 47, 1, 32, 364, 595, 349, 1580],\n", - " 125: [1617, 1197, 357, 10, 329, 153],\n", - " 126: [357, 21, 329],\n", - " 132: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 141: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 154: [318, 858, 527, 2858, 1617, 1136, 2028, 1197, 3578, 2396],\n", - " 155: [527, 1197, 608, 1200, 1291, 2396, 733, 364, 590, 588],\n", - " 163: [318, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 164: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 170: [858, 527, 260, 1193, 593, 541, 1196, 1198, 1617, 2028],\n", - " 171: [858, 527, 260, 1193, 593, 2571, 541, 1196, 1198, 1617],\n", - " 176: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 190: [318, 50, 527, 1193, 2858, 1617, 608, 47, 457, 733],\n", - " 197: [318, 50, 260, 593, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 198: [1198, 1291, 457, 349, 480, 357, 25, 21, 539, 141],\n", - " 199: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 212: [2858, 110, 3578, 1036, 2396, 364, 1073, 25, 141, 597],\n", - " 221: [1193, 541, 2959, 1617, 1136, 1197, 608, 2762, 1214, 1200],\n", - " 223: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 226: [527, 1193, 2959, 2858, 1, 150, 2396, 364, 34, 1097],\n", - " 241: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 247: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 249: [858, 527, 260, 1193, 2858, 1617, 110, 1210, 1, 457],\n", - " 254: [1198, 1617, 1197, 608, 110, 1036, 1291, 1, 457, 150],\n", - " 264: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 273: [858, 1193, 541, 2959, 1196, 1198, 1617, 1136, 1197, 608],\n", - " 275: [858, 527, 260, 541, 2959, 1198, 1136, 1197, 1214, 1200],\n", - " 276: [110, 2716, 208],\n", - " 293: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 294: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 295: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 2858],\n", - " 318: [1200, 32, 25, 380, 454, 316, 329, 288, 434, 344],\n", - " 321: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 345: [318, 50, 858, 527, 593, 541, 1617, 608, 1214, 1200],\n", - " 346: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 348: [260, 1196, 1136, 1197, 1210, 2396, 1265, 34, 1073, 595],\n", - " 349: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 354: [50, 527, 260, 1193, 541, 1196, 1198, 1617, 1136, 2028],\n", - " 359: [318, 50, 858, 527, 260, 1193, 593, 541, 1196, 1617],\n", - " 366: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 2858],\n", - " 369: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 384: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 390: [527, 541, 1197, 1214, 47, 1036, 150, 32, 1270, 2716],\n", - " 392: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 403: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n", - " 407: [318, 527, 1193, 1196, 2858, 1617, 1197, 110, 1210, 2716],\n", - " 414: [318, 50, 858, 527, 260, 1193, 541, 1196, 1198, 1136],\n", - " 431: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 454: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 465: [260, 2571, 541, 1196, 1198, 1136, 2028, 1197, 1214, 1200],\n", - " 481: [527, 1193, 541, 1197, 608, 2762, 110, 150, 2396, 1073],\n", - " 485: [1136, 2028, 1197, 110, 47, 1036, 1210, 150, 1270, 2716],\n", - " 503: [50, 260, 1193, 1196, 1617, 1197, 608, 1214, 110, 1200],\n", - " 513: [2959, 110, 3578, 47, 1291, 1, 733, 25, 165, 253],\n", - " 545: [3578, 2396, 1073, 595, 25, 21, 141, 39, 2683, 288],\n", - " 552: [858, 527, 260, 593, 2571, 541, 1196, 1198, 1617, 2028],\n", - " 554: [50, 858, 260, 2571, 541, 1196, 1617, 1136, 1197, 3578],\n", - " 555: [541, 1197, 1214, 1200, 1036, 457, 2396, 364, 34, 1097],\n", - " 561: [318, 50, 858, 527, 1193, 1198, 1617, 1136, 1197, 608],\n", - " 565: [318, 50, 527, 260, 593, 2571, 541, 2959, 1196, 2028],\n", - " 591: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 617: [318, 858, 1193, 2571, 2959, 2858, 1617, 2028, 608, 2762],\n", - " 622: [50, 858, 527, 1193, 1617, 1136, 1197, 608, 1214, 1200],\n", - " 623: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 633: [2762, 1036, 1291, 1240, 589, 1270, 1097, 595, 357, 25],\n", - " 636: [541, 2959, 2858, 1197, 608, 1214, 110, 1200, 47, 1],\n", - " 638: [858, 1193, 593, 2571, 2959, 1196, 2858, 1198, 1617, 1136],\n", - " 641: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 646: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 654: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 655: [50, 527, 593, 2571, 2959, 2858, 1617, 2028, 2762, 110],\n", - " 658: [318, 50, 858, 527, 260, 1193, 541, 1196, 1198, 1617],\n", - " 660: [858, 260, 1196, 1198, 1617, 1136, 1197, 1214, 110, 1200],\n", - " 661: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 677: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 714: [1193, 593, 541, 1196, 1214, 1200, 47, 1036, 1210, 1],\n", - " 715: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 723: [50, 858, 260, 593, 1196, 2858, 1198, 1617, 2028, 296],\n", - " 731: [50, 2959, 2858, 1198, 1617, 3578, 47, 1291, 1, 457],\n", - " 742: [858, 527, 1193, 593, 608, 1214, 1200, 457, 2396, 733],\n", - " 743: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 752: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 772: [318, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 814: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 1198, 1617],\n", - " 823: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 2858],\n", - " 826: [527, 1198, 2762, 110, 1291, 150, 2396, 2716, 364, 34],\n", - " 833: [50, 1193, 2959, 1196, 2762, 110, 3578, 47, 1036, 1291],\n", - " 838: [2959, 733, 364, 1073, 588, 595, 357, 21, 165, 10],\n", - " 842: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 852: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 878: [2571, 2959, 2858, 1617, 2028, 2762, 110, 3578, 47, 1291],\n", - " 887: [858, 527, 260, 1193, 541, 1196, 1198, 1136, 1197, 608],\n", - " 895: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 899: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 902: [527, 541, 110, 150, 32, 1265, 34, 590, 357, 25],\n", - " 907: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 928: [858, 527, 2028, 1214, 110, 1200, 1036, 1291, 2396, 2716],\n", - " 936: [318, 1197, 1, 457, 1270, 2716, 733, 364, 34, 1097],\n", - " 964: [50, 541, 2858, 1198, 1617, 1136, 1197, 2762, 1214, 1200],\n", - " 970: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 972: [50, 260, 541, 1196, 1198, 1136, 1197, 1214, 1200, 1036],\n", - " 1001: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 1013: [1193, 541, 2959, 2858, 1617, 1136, 1197, 608, 2762, 1214],\n", - " 1018: [50, 858, 527, 1193, 1198, 1200, 3578, 1036, 1291, 1240],\n", - " 1028: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 1031: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 1035: [50, 527, 260, 1193, 541, 1196, 1198, 1617, 1197, 608],\n", - " 1038: [318, 50, 858, 527, 2571, 541, 2959, 2858, 1198, 1617],\n", - " 1045: [608, 1214, 1200, 1240, 2716, 34, 349, 480, 357, 25],\n", - " 1046: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 35: [318, 50, 858, 527, 260, 1193, 593, 541, 1198, 1617],\n", - " 72: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 91: [858, 593, 2959, 1617, 296, 2762, 110, 3578, 457, 589],\n", - " 106: [318, 50, 858, 527, 1193, 593, 541, 2959, 2858, 1198],\n", - " 128: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 158: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 160: [318, 50, 527, 1193, 593, 541, 2959, 1617, 1136, 1197],\n", - " 175: [1291, 34, 1073, 141, 165, 10, 780, 316, 2683, 329],\n", - " 196: [50, 1193, 541, 2858, 1617, 2762, 1200, 3578, 47, 2396],\n", - " 203: [858, 527, 1193, 2571, 2959, 2858, 2028, 2762, 3578, 2396],\n", - " 206: [318, 50, 858, 260, 1193, 2959, 2858, 1198, 1136, 1197],\n", - " 207: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 255: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 265: [318, 50, 527, 260, 1193, 593, 541, 2959, 1196, 2858],\n", - " 340: [858, 1193, 2571, 2959, 2858, 1617, 2028, 2762, 3578, 1],\n", - " 404: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 433: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 440: [260, 541, 1196, 1617, 1136, 3578, 1210, 1, 1240, 589],\n", - " 444: [318, 50, 858, 527, 260, 593, 2959, 1617, 1136, 2028],\n", - " 450: [2959, 1136, 150, 364, 1265, 34, 21, 141, 165, 10],\n", - " 479: [858, 260, 541, 1196, 1198, 1197, 3578, 47, 1036, 1291],\n", - " 491: [50, 1193, 593, 541, 1198, 1617, 1136, 2028, 608, 296],\n", - " 506: [2571, 2959, 2858, 1617, 2028, 1197, 608, 2762, 110, 3578],\n", - " 523: [593, 2571, 2959, 1196, 2858, 1198, 1617, 1136, 2028, 1197],\n", - " 539: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 541: [318, 858, 1193, 296, 2762, 3578, 150, 364, 595, 357],\n", - " 616: [858, 1193, 541, 1196, 1617, 1136, 1197, 1214, 1200, 1240],\n", - " 647: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 659: [50, 1193, 2959, 1617, 2028, 110, 3578, 1291, 1, 150],\n", - " 695: [858, 1193, 541, 2959, 1196, 2858, 1617, 1136, 2762, 1214],\n", - " 700: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 707: [318, 50, 858, 260, 1193, 2571, 541, 1196, 1198, 1617],\n", - " 748: [858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 759: [318, 50, 858, 527, 1193, 593, 2959, 2858, 1617, 1136],\n", - " 784: [1193, 1617, 1200, 150, 34, 595, 349, 25, 21, 539],\n", - " 790: [1193, 2571, 2959, 2858, 1617, 2028, 608, 2762, 3578, 356],\n", - " 835: [858, 527, 1193, 2571, 2959, 1196, 2858, 1198, 1617, 1136],\n", - " 844: [318, 50, 527, 1193, 541, 2959, 1617, 1136, 2028, 1197],\n", - " 871: [2571, 2959, 2858, 1617, 2028, 1197, 2762, 110, 3578, 1036],\n", - " 875: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 892: [1193, 2571, 541, 2959, 2858, 1198, 1617, 1136, 2028, 2762],\n", - " 919: [318, 50, 858, 527, 1193, 593, 541, 2959, 1196, 2858],\n", - " 935: [318, 858, 527, 1193, 593, 541, 2959, 2858, 1617, 1136],\n", - " 942: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 960: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 1006: [50, 858, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 1026: [318, 50, 858, 527, 2858, 1617, 296, 110, 47, 356],\n", - " 1047: [260, 1193, 593, 1196, 1617, 1214, 1200, 1240, 32, 2716],\n", - " 65: [50, 858, 527, 1193, 593, 541, 2959, 1617, 2028, 608],\n", - " 135: [318, 50, 527, 1193, 2571, 2959, 2858, 1617, 2028, 608],\n", - " 152: [527, 1193, 2959, 2858, 1136, 1197, 608, 296, 1, 150],\n", - " 166: [318, 50, 858, 527, 1193, 2571, 541, 2959, 2858, 1198],\n", - " 179: [318, 527, 593, 2959, 2858, 1136, 2762, 47, 1291, 356],\n", - " 188: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 217: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 253: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n", - " 262: [1193, 541, 2858, 1136, 1214, 1200, 1, 589, 150, 32],\n", - " 277: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 289: [541, 1198, 1291, 1240, 589, 733, 364, 1073, 588, 292],\n", - " 300: [593, 2959, 2858, 1198, 1136, 1197, 3578, 47, 1036, 1291],\n", - " 302: [858, 593, 541, 1198, 1214, 1200, 47, 1036, 1, 356],\n", - " 308: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 311: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 328: [858, 527, 1193, 593, 2959, 1198, 1617, 1136, 2028, 1197],\n", - " 329: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 344: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 2858],\n", - " 347: [318, 858, 527, 1193, 593, 2959, 2858, 1198, 1136, 2028],\n", - " 358: [50, 858, 527, 1193, 541, 2959, 1198, 1617, 1136, 2028],\n", - " 474: [318, 50, 858, 527, 1193, 2959, 2858, 1198, 1617, 1136],\n", - " 483: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 509: [318, 260, 1196, 1198, 1197, 608, 1214, 110, 1200, 3578],\n", - " 578: [318, 50, 527, 1193, 593, 2959, 1617, 2028, 1197, 2762],\n", - " 643: [2959, 2858, 1198, 2762, 3578, 47, 1036, 1291, 1, 150],\n", - " 679: [318, 50, 527, 1193, 2571, 541, 2959, 2858, 1198, 1617],\n", - " 680: [318, 50, 858, 527, 1193, 593, 541, 2959, 1198, 1617],\n", - " 691: [50, 858, 1193, 541, 2959, 2858, 1617, 2762, 1214, 1200],\n", - " 702: [50, 858, 2571, 2959, 2858, 1198, 1617, 2028, 1197, 2762],\n", - " 708: [318, 527, 1193, 593, 2959, 1196, 2858, 1198, 1617, 1136],\n", - " 730: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 751: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 773: [318, 50, 858, 527, 1193, 2959, 1198, 1617, 2028, 608],\n", - " 803: [50, 527, 2571, 2959, 1617, 1136, 1197, 3578, 47, 1],\n", - " 809: [318, 858, 1193, 593, 2571, 2959, 1198, 1136, 2028, 1197],\n", - " 820: [318, 527, 1198, 1617, 608, 2762, 457, 34, 590, 588],\n", - " 824: [318, 50, 527, 2959, 2858, 1198, 1617, 2028, 296, 2762],\n", - " 863: [858, 260, 1193, 541, 2959, 1196, 1198, 1136, 1197, 2762],\n", - " 865: [858, 527, 1193, 541, 1198, 1617, 1136, 2028, 608, 2762],\n", - " 867: [1193, 593, 2762, 1214, 47, 1036, 32, 1265, 357, 539],\n", - " 911: [318, 50, 858, 527, 1193, 593, 541, 2959, 1617, 1136],\n", - " 915: [318, 858, 527, 1193, 2959, 1196, 1198, 1617, 1136, 296],\n", - " 939: [50, 858, 527, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 946: [318, 527, 1193, 541, 2959, 2858, 1136, 2028, 296, 2762],\n", - " 954: [318, 50, 858, 527, 1193, 593, 541, 2858, 1198, 1617],\n", - " 957: [2762, 3578, 2396, 733, 364, 34, 588, 595, 349, 357],\n", - " 971: [527, 1193, 541, 2762, 1214, 1200, 3578, 47, 1036, 1291],\n", - " 986: [858, 260, 1193, 2571, 2959, 1196, 2858, 1198, 1617, 1136],\n", - " 992: [50, 858, 527, 1193, 541, 2959, 2858, 1198, 1617, 1136],\n", - " 92: [50, 858, 1193, 593, 541, 2959, 1617, 1136, 1197, 296],\n", - " 107: [318, 50, 1193, 593, 2959, 2858, 1198, 1136, 1197, 608],\n", - " 131: [318, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 138: [858, 527, 1193, 1197, 608, 1291, 1, 457, 150, 2396],\n", - " 145: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 183: [50, 858, 2571, 541, 2959, 2858, 1617, 1197, 608, 296],\n", - " 209: [318, 50, 858, 527, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 230: [318, 858, 1193, 2571, 1198, 2762, 47, 1036, 1291, 1210],\n", - " 263: [1617, 2028, 356, 150, 733, 34, 1073, 595, 357, 25],\n", - " 305: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 314: [50, 2571, 2959, 1197, 608, 1214, 1200, 47, 1036, 1291],\n", - " 319: [318, 50, 858, 527, 1193, 2959, 2858, 1198, 1617, 1136],\n", - " 325: [527, 260, 593, 2571, 541, 2959, 1196, 2858, 1617, 2028],\n", - " 341: [50, 1193, 541, 1136, 2028, 1197, 608, 2762, 3578, 47],\n", - " 471: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 488: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 495: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 532: [318, 527, 1193, 593, 541, 2959, 1136, 1197, 608, 1214],\n", - " 564: [527, 593, 2571, 541, 2959, 2858, 1136, 2028, 1197, 2762],\n", - " 574: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 603: [50, 260, 1193, 593, 1198, 1617, 1197, 2762, 3578, 47],\n", - " 674: [318, 50, 858, 527, 2959, 2858, 1198, 1617, 1136, 2028],\n", - " 753: [50, 858, 527, 1193, 2571, 541, 2959, 1196, 1617, 1136],\n", - " 810: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 830: [318, 50, 2571, 541, 2959, 1617, 1136, 608, 2762, 1214],\n", - " 841: [318, 50, 858, 527, 593, 2959, 2858, 1198, 1617, 1136],\n", - " 856: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n", - " 921: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 933: [858, 527, 1193, 2858, 1136, 1197, 608, 2762, 110, 3578],\n", - " 976: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 37: [858, 527, 260, 1193, 541, 1196, 2858, 1198, 1617, 1197],\n", - " 83: [318, 50, 527, 593, 2571, 2959, 2858, 1617, 2028, 296],\n", - " 248: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 387: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 428: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 451: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 2858],\n", - " 584: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 874: [318, 50, 858, 527, 541, 1617, 608, 1214, 1200, 1036],\n", - " 995: [50, 858, 527, 260, 593, 2571, 541, 2959, 1196, 2858],\n", - " 10: [318, 50, 858, 260, 2571, 2959, 1196, 2858, 1198, 1136],\n", - " 19: [593, 2571, 2959, 2858, 1617, 2028, 296, 2762, 1214, 1200],\n", - " 41: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 43: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 44: [858, 260, 1193, 593, 2571, 541, 2959, 1196, 1198, 1617],\n", - " 45: [318, 527, 1193, 541, 2959, 1136, 1197, 296, 1214, 3578],\n", - " 51: [318, 50, 2571, 541, 2959, 1196, 1198, 1136, 1197, 110],\n", - " 56: [318, 2959, 1197, 608, 2762, 1200, 47, 1240, 457, 150],\n", - " 61: [50, 858, 260, 2571, 541, 2959, 1196, 1198, 1136, 2028],\n", - " 68: [318, 50, 858, 527, 593, 2959, 1196, 1198, 1136, 2028],\n", - " 69: [50, 858, 260, 593, 2571, 541, 2959, 1196, 1198, 1617],\n", - " 78: [50, 593, 3578, 47, 1036, 1291, 1, 457, 733, 364],\n", - " 110: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 115: [50, 858, 260, 593, 2571, 541, 2959, 1196, 1198, 1617],\n", - " 129: [318, 50, 858, 527, 1193, 593, 2571, 541, 1196, 1198],\n", - " 150: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 168: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 169: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 178: [50, 858, 2571, 541, 2959, 2858, 1198, 1617, 2028, 1197],\n", - " 186: [318, 858, 527, 1193, 2959, 1196, 2858, 1136, 2028, 1197],\n", - " 201: [318, 260, 1193, 2571, 541, 2959, 1196, 1198, 1136, 1197],\n", - " 239: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 256: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 257: [318, 50, 527, 1193, 593, 541, 2959, 1196, 2858, 1617],\n", - " 272: [318, 260, 1193, 593, 2571, 541, 1196, 1198, 1617, 1136],\n", - " 279: [50, 858, 1193, 541, 2858, 1197, 608, 457, 150, 2396],\n", - " 280: [318, 50, 858, 260, 1193, 593, 541, 2959, 1196, 1198],\n", - " 285: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 298: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 301: [1193, 2959, 1617, 2028, 1197, 1214, 110, 1200, 3578, 47],\n", - " 304: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 333: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 334: [318, 50, 858, 527, 1193, 593, 541, 2959, 2858, 1617],\n", - " 338: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 350: [858, 527, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 353: [318, 858, 527, 260, 1193, 2858, 1198, 1617, 1136, 1197],\n", - " 378: [318, 50, 527, 1193, 593, 2571, 541, 2959, 2858, 1198],\n", - " 386: [50, 1193, 2571, 541, 1136, 1197, 47, 32, 2716, 588],\n", - " 397: [50, 260, 541, 1196, 1198, 1617, 1136, 1197, 608, 1214],\n", - " 420: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 439: [318, 50, 858, 260, 593, 2571, 541, 2959, 1196, 2858],\n", - " 449: [318, 858, 1193, 541, 1198, 1617, 1136, 2028, 608, 296],\n", - " 478: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 487: [858, 527, 260, 1193, 593, 541, 1196, 1198, 1617, 1136],\n", - " 489: [593, 2571, 541, 2959, 1196, 2858, 1198, 1617, 2028, 1197],\n", - " 500: [50, 858, 260, 1193, 2571, 2959, 1196, 2858, 1198, 1136],\n", - " 510: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 521: [527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 522: [50, 527, 2571, 2959, 2858, 1617, 2028, 2762, 1200, 3578],\n", - " 527: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 529: [318, 50, 858, 1193, 593, 2571, 2959, 1196, 2858, 1198],\n", - " 535: [2858, 1617, 2762, 1214, 1200, 1240, 457, 2396, 32, 1270],\n", - " 550: [593, 2571, 2959, 2028, 1197, 110, 1200, 3578, 47, 1036],\n", - " 560: [858, 260, 2571, 541, 1196, 1198, 2028, 1197, 1214, 110],\n", - " 573: [858, 260, 1193, 541, 2959, 1196, 1198, 1136, 1197, 296],\n", - " 579: [858, 1193, 1617, 2028, 1197, 608, 110, 1200, 1, 1240],\n", - " 582: [2571, 541, 2959, 2858, 1136, 1197, 2762, 3578, 47, 1036],\n", - " 583: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 587: [50, 858, 2571, 541, 2959, 2858, 1198, 1617, 2028, 1197],\n", - " 596: [50, 593, 2571, 541, 2959, 1197, 296, 1214, 110, 3578],\n", - " 602: [318, 50, 527, 1193, 2571, 541, 2959, 1196, 2858, 1617],\n", - " 618: [858, 260, 1193, 541, 2959, 1196, 1198, 1136, 1197, 296],\n", - " 624: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 627: [527, 260, 1193, 541, 2959, 1196, 1198, 1617, 1136, 1197],\n", - " 635: [318, 50, 858, 260, 1193, 2571, 2959, 1196, 1198, 1617],\n", - " 639: [50, 858, 527, 260, 1193, 2571, 541, 1196, 2858, 1198],\n", - " 640: [50, 527, 260, 1193, 593, 1617, 1136, 1197, 608, 296],\n", - " 642: [527, 1198, 110, 733, 364, 1073, 588, 595, 349, 380],\n", - " 649: [318, 50, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 652: [318, 50, 858, 260, 593, 2571, 541, 2959, 1196, 2858],\n", - " 662: [527, 2571, 2959, 1198, 1136, 2762, 1200, 3578, 47, 1036],\n", - " 671: [318, 2571, 2959, 1197, 110, 1200, 3578, 47, 1036, 1210],\n", - " 675: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 684: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 703: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 712: [50, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 726: [318, 50, 260, 1193, 2571, 541, 2959, 2858, 1136, 2028],\n", - " 727: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 744: [50, 527, 260, 2571, 2959, 1196, 2858, 1617, 1136, 608],\n", - " 746: [50, 858, 260, 1193, 2571, 2959, 1196, 1198, 1136, 2028],\n", - " 761: [858, 527, 260, 1193, 541, 2959, 1196, 1617, 2028, 608],\n", - " 765: [318, 50, 527, 541, 2959, 1196, 1198, 1136, 1197, 3578],\n", - " 766: [858, 527, 593, 541, 2959, 1617, 1136, 608, 296, 2762],\n", - " 771: [50, 858, 1193, 541, 2959, 2858, 1136, 1197, 296, 2762],\n", - " 776: [318, 527, 1193, 2571, 2959, 1196, 1617, 1136, 1197, 608],\n", - " 797: [50, 858, 527, 260, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 812: [1193, 2571, 541, 2959, 1196, 2858, 1198, 1617, 1136, 2028],\n", - " 815: [318, 50, 527, 1193, 541, 2959, 2858, 1617, 1136, 1197],\n", - " 818: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 821: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 822: [858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 831: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 834: [858, 260, 1193, 541, 1198, 1617, 1136, 296, 1214, 110],\n", - " 837: [858, 527, 1193, 541, 1196, 1617, 2028, 2762, 1200, 47],\n", - " 839: [318, 50, 858, 1193, 2571, 541, 2959, 1196, 2858, 1617],\n", - " 840: [318, 2571, 2959, 2858, 2762, 3578, 47, 1036, 589, 34],\n", - " 851: [318, 50, 527, 593, 2959, 2858, 1617, 2028, 608, 1214],\n", - " 855: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 857: [318, 50, 858, 527, 260, 1193, 541, 2959, 2858, 1198],\n", - " 868: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 1198, 1136],\n", - " 904: [50, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 905: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 906: [318, 541, 1198, 1214, 110, 1200, 3578, 47, 1036, 1291],\n", - " 924: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1198],\n", - " 925: [50, 527, 1193, 2571, 541, 1196, 2858, 1617, 2028, 608],\n", - " 927: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 940: [318, 858, 527, 1193, 593, 541, 2959, 1196, 1198, 1617],\n", - " 948: [260, 1193, 541, 2959, 1196, 1136, 1197, 1214, 1200, 3578],\n", - " 953: [318, 50, 858, 527, 1193, 593, 2959, 2858, 1198, 1617],\n", - " 966: [318, 50, 858, 527, 593, 1198, 2028, 608, 2762, 3578],\n", - " 967: [50, 858, 527, 260, 541, 1196, 1198, 1617, 1136, 2028],\n", - " 979: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 980: [318, 527, 1193, 2571, 1196, 1198, 1617, 2028, 1197, 110],\n", - " 983: [50, 527, 260, 1193, 593, 541, 1196, 1617, 2028, 608],\n", - " 984: [50, 527, 260, 2571, 541, 2858, 1198, 1617, 1136, 1197],\n", - " 991: [858, 1193, 593, 2571, 541, 2959, 2858, 1617, 2028, 608],\n", - " 1009: [50, 858, 527, 260, 593, 541, 2959, 1196, 1198, 1617],\n", - " 1011: [318, 858, 527, 2571, 2959, 2858, 1197, 2762, 110, 3578],\n", - " 1014: [318, 50, 1193, 2571, 2959, 1196, 1198, 1136, 1197, 2762],\n", - " 1021: [318, 50, 527, 1193, 541, 1617, 1136, 608, 296, 110],\n", - " 1030: [318, 50, 527, 260, 1193, 541, 2959, 1196, 2858, 1617],\n", - " 1033: [858, 1193, 2571, 541, 2959, 2858, 1617, 608, 1214, 3578],\n", - " 1039: [1193,\n", - " 2571,\n", - " 2959,\n", - " 1196,\n", - " 2858,\n", - " 1198,\n", - " 1136,\n", - " 1197,\n", - " 2762,\n", - " 1214],\n", - " 1040: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 1053: [318, 50, 858, 527, 1193, 593, 2959, 1617, 1136, 2028],\n", - " 704: [318, 858, 527, 1193, 593, 2858, 1198, 1617, 1136, 1197],\n", - " 934: [318, 50, 858, 527, 1193, 593, 2571, 2959, 1196, 2858],\n", - " 42: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 73: [527, 1193, 1617, 1136, 1197, 1214, 110, 3578, 1291, 1210],\n", - " 82: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n", - " 159: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 161: [858, 1193, 1617, 2028, 1036, 356, 457, 150, 2396, 32],\n", - " 192: [318, 260, 1196, 1198, 2028, 1197, 2762, 110, 1200, 1036],\n", - " 216: [858, 527, 2959, 1617, 2028, 608, 296, 1214, 1200, 3578],\n", - " 219: [318, 50, 858, 593, 2571, 541, 1196, 1198, 1617, 1136],\n", - " 290: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 379: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n", - " 389: [50, 858, 260, 1193, 541, 1196, 1198, 1136, 1197, 608],\n", - " 400: [318, 858, 527, 260, 1193, 541, 1196, 1198, 1136, 1197],\n", - " 462: [858, 527, 2571, 541, 2959, 1196, 2858, 1198, 1617, 1136],\n", - " 507: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 600: [318, 50, 527, 260, 1193, 593, 2571, 541, 1196, 1198],\n", - " 721: [50, 858, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 793: [318, 50, 858, 527, 1193, 593, 541, 2959, 2858, 1198],\n", - " 912: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 932: [318, 50, 858, 527, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 949: [50, 1193, 593, 541, 1198, 608, 1214, 1200, 47, 1036],\n", - " 1025: [50, 527, 1193, 593, 541, 2959, 1617, 296, 2762, 3578],\n", - " 46: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 74: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 342: [318, 50, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 508: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 2858],\n", - " 580: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 774: [527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 783: [50, 858, 527, 1193, 2959, 2858, 1617, 2028, 1197, 296],\n", - " 1002: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 1023: [318, 50, 858, 1193, 1617, 1136, 2028, 1197, 608, 296],\n", - " 1048: [858, 527, 260, 1193, 541, 1617, 1136, 1197, 608, 1214],\n", - " 23: [318, 858, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n", - " 96: [318, 2959, 47, 356, 150, 1270, 733, 364, 1073, 588],\n", - " 124: [318, 50, 858, 527, 593, 2959, 2858, 1617, 1197, 296],\n", - " 136: [50, 527, 260, 593, 2571, 541, 2959, 1196, 2858, 1617],\n", - " 148: [318, 858, 527, 1193, 593, 2571, 2959, 2858, 1198, 1617],\n", - " 189: [318, 50, 858, 527, 1193, 2571, 2959, 1196, 2858, 1617],\n", - " 213: [318, 858, 260, 1193, 541, 2959, 1198, 1136, 1197, 110],\n", - " 243: [318, 50, 527, 1193, 593, 541, 1617, 1136, 1197, 296],\n", - " 323: [318, 50, 2571, 541, 2959, 2858, 2028, 2762, 110, 3578],\n", - " 352: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 429: [318, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 625: [318, 50, 858, 527, 1193, 2571, 541, 2959, 2858, 1198],\n", - " 808: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 843: [318, 50, 593, 2571, 2959, 2858, 1617, 2028, 608, 296],\n", - " 847: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 963: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 975: [318, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 998: [318, 50, 858, 527, 260, 1193, 593, 541, 1196, 2858],\n", - " 75: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 427: [1193, 541, 2959, 2858, 1136, 1197, 608, 296, 110, 356],\n", - " 466: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 801: [318, 50, 858, 2858, 1617, 608, 2762, 1036, 1240, 356],\n", - " 848: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 888: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 191: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 227: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 245: [318, 50, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 380: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 408: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 668: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 747: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 754: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n", - " 11: [318, 50, 858, 527, 1193, 593, 541, 2959, 2858, 1136],\n", - " 16: [318, 50, 858, 527, 1193, 593, 2571, 2959, 2858, 1198],\n", - " 81: [318, 50, 858, 527, 260, 593, 1196, 2858, 1198, 1617],\n", - " 86: [318, 50, 527, 260, 1193, 593, 541, 2959, 2858, 1617],\n", - " 97: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 151: [858, 1193, 593, 541, 2959, 2858, 1198, 1617, 2028, 1197],\n", - " 235: [527, 1196, 1136, 2028, 1197, 608, 2762, 1214, 110, 1200],\n", - " 251: [318, 50, 527, 1193, 2571, 2959, 2858, 1617, 1136, 2028],\n", - " 258: [318, 50, 858, 527, 593, 2571, 541, 2959, 2858, 1198],\n", - " 278: [318, 50, 858, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 388: [318, 858, 527, 260, 1193, 593, 541, 2959, 1196, 2858],\n", - " 551: [318, 50, 1193, 2571, 541, 2959, 2858, 1617, 1136, 1197],\n", - " 606: [318, 50, 527, 1193, 593, 541, 2959, 2858, 1617, 1136],\n", - " 614: [318, 50, 527, 1193, 593, 2571, 541, 2959, 2858, 1617],\n", - " 681: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 686: [318, 527, 1193, 2959, 296, 110, 47, 1, 356, 150],\n", - " 711: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 718: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 873: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n", - " 962: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 985: [318, 50, 858, 527, 1193, 593, 2571, 2959, 2858, 1198],\n", - " 993: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 184: [318, 858, 527, 260, 1193, 593, 2571, 541, 1196, 2858],\n", - " 246: [318, 50, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 373: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 430: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 534: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 805: [318, 50, 858, 527, 1193, 541, 2959, 2858, 1617, 2028],\n", - " 58: [858, 1193, 2959, 1196, 1136, 608, 1214, 1200, 3578, 47],\n", - " 112: [2571, 2959, 2858, 1617, 2028, 2762, 3578, 356, 589, 2396],\n", - " 367: [50, 527, 260, 593, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 548: [50, 858, 527, 1193, 593, 2571, 541, 2959, 2858, 1617],\n", - " 791: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 909: [318, 50, 858, 260, 1193, 593, 541, 1196, 1617, 1136],\n", - " 1041: [1193, 541, 1136, 1197, 608, 1240, 356, 457, 150, 32],\n", - " 13: [318, 858, 527, 260, 593, 2571, 541, 2959, 2858, 1198],\n", - " 869: [858, 260, 1193, 2571, 541, 1196, 2858, 1198, 1617, 1136],\n", - " 415: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 477: [2858, 608, 110, 3578, 1, 1240, 356, 457, 589, 150],\n", - " 569: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 694: [318, 50, 858, 527, 2571, 541, 2959, 1196, 1198, 1136],\n", - " 729: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 741: [527, 260, 1193, 541, 2959, 1198, 1136, 2028, 1197, 1214],\n", - " 965: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 17: [318, 527, 2571, 541, 2959, 1196, 2858, 1198, 1617, 1136],\n", - " 40: [858, 260, 541, 2959, 1198, 1136, 2028, 1197, 2762, 1214],\n", - " 114: [318, 50, 527, 593, 2571, 541, 2959, 2858, 1198, 1617],\n", - " 137: [858, 260, 1193, 541, 1617, 1136, 1197, 608, 1214, 110],\n", - " 153: [318, 50, 1193, 593, 2571, 541, 1196, 2858, 1198, 1617],\n", - " 211: [318, 527, 1193, 2571, 541, 1136, 296, 2762, 3578, 47],\n", - " 286: [318, 858, 527, 1193, 1617, 1136, 1197, 608, 296, 2762],\n", - " 330: [318, 50, 858, 1193, 593, 541, 1198, 1617, 1136, 2028],\n", - " 336: [318, 50, 858, 527, 1193, 541, 2959, 2858, 1198, 1617],\n", - " 372: [318, 50, 858, 527, 260, 1193, 593, 541, 2858, 1617],\n", - " 376: [318, 50, 858, 527, 2959, 1196, 2858, 1198, 1136, 1197],\n", - " 412: [50, 527, 260, 1193, 541, 2959, 1198, 1617, 1136, 1197],\n", - " 447: [858, 1193, 541, 2959, 1196, 2858, 1198, 2028, 2762, 1214],\n", - " 467: [858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 490: [50, 260, 1193, 593, 2571, 541, 2959, 2858, 1617, 1136],\n", - " 518: [50, 858, 541, 2959, 2858, 1198, 1617, 1136, 1197, 296],\n", - " 608: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n", - " 619: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 644: [318, 50, 858, 527, 1193, 2959, 2858, 1617, 1136, 1197],\n", - " 667: [50, 527, 1193, 593, 2571, 541, 2959, 2858, 1136, 1197],\n", - " 698: [858, 260, 541, 608, 1, 356, 457, 150, 2396, 1270],\n", - " 709: [318, 50, 527, 1193, 593, 541, 2959, 1136, 608, 296],\n", - " 728: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 2858],\n", - " 733: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n", - " 777: [318, 858, 527, 1193, 593, 2571, 541, 2959, 1196, 1198],\n", - " 813: [318, 50, 527, 1193, 593, 541, 2959, 1617, 608, 296],\n", - " 832: [318, 50, 858, 527, 593, 2571, 2959, 2858, 1198, 1617],\n", - " 893: [50, 858, 527, 260, 1193, 593, 541, 2959, 2858, 1617],\n", - " 901: [50, 527, 260, 1193, 593, 541, 2959, 1196, 2858, 1198],\n", - " 937: [858, 260, 1193, 593, 2571, 1196, 2858, 1198, 1136, 2028],\n", - " 947: [318, 50, 858, 527, 593, 541, 2959, 2858, 1617, 1136],\n", - " 362: [858, 1193, 541, 2858, 1617, 1136, 2028, 608, 296, 1214],\n", - " 375: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 599: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 632: [318, 858, 527, 260, 1193, 541, 2959, 1198, 1617, 1136],\n", - " 779: [318, 50, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 1022: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 1034: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 819: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 2: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 3: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 104: [50, 527, 541, 2959, 2858, 1136, 2028, 608, 296, 2762],\n", - " 105: [318, 50, 858, 527, 593, 2571, 541, 2959, 2858, 1617],\n", - " 218: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 1198, 1617],\n", - " 250: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 313: [318, 50, 858, 527, 260, 593, 2571, 541, 2959, 1196],\n", - " 377: [260, 593, 2959, 1198, 1617, 1136, 2028, 1197, 608, 2762],\n", - " 413: [318, 50, 527, 593, 2571, 2959, 1617, 2028, 608, 2762],\n", - " 576: [50, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 1198],\n", - " 586: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 595: [318, 50, 1193, 2959, 1617, 2028, 1200, 3578, 47, 1210],\n", - " 610: [318, 50, 2571, 541, 2959, 1196, 2858, 1197, 608, 296],\n", - " 613: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 637: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 663: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 740: [50, 858, 527, 1193, 541, 2959, 2858, 1617, 1197, 296],\n", - " 787: [318, 50, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 804: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 866: [1193, 2571, 541, 2959, 2858, 1617, 2028, 2762, 3578, 1036],\n", - " 883: [318, 50, 858, 527, 260, 593, 2571, 541, 2959, 1196],\n", - " 941: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 1007: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 817: [50, 858, 260, 593, 2571, 541, 2959, 1198, 1617, 1136],\n", - " 6: [318, 50, 527, 593, 541, 2959, 2858, 1617, 1136, 608],\n", - " 7: [318, 858, 527, 1193, 2571, 2959, 2858, 1198, 1136, 2028],\n", - " 14: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 2858],\n", - " 24: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 57: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 60: [2571, 2959, 1196, 2858, 1198, 1617, 2028, 1197, 2762, 110],\n", - " 64: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 84: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 90: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 98: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 113: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 120: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 123: [318, 50, 858, 593, 2571, 541, 2959, 1196, 1198, 1617],\n", - " 157: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 194: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 200: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 204: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 205: [318, 50, 527, 2571, 2959, 1196, 2858, 1198, 1617, 2028],\n", - " 225: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 229: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 237: [318, 50, 858, 527, 541, 2959, 2858, 1136, 2028, 608],\n", - " 242: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 252: [318, 50, 858, 593, 2571, 541, 2959, 1196, 1198, 1617],\n", - " 266: [318, 50, 858, 527, 1193, 593, 541, 2959, 1196, 1198],\n", - " 270: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 282: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 297: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 309: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 316: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 327: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 356: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 393: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 394: [527, 1193, 593, 2571, 541, 1136, 2762, 1214, 110, 1200],\n", - " 395: [858, 527, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 399: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 401: [50, 1193, 2571, 2959, 1196, 1617, 1136, 2028, 296, 110],\n", - " 402: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 405: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 417: [318, 50, 858, 527, 1193, 593, 541, 2959, 1196, 2858],\n", - " 422: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 437: [858, 1193, 2959, 1198, 2028, 110, 1200, 3578, 1036, 1291],\n", - " 455: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 461: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 473: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 484: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 499: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 526: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 537: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 542: [318, 527, 593, 2571, 541, 2959, 2858, 2028, 1197, 608],\n", - " 557: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 563: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 570: [50, 858, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 575: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 594: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 607: [527, 1193, 2571, 541, 2959, 1196, 2858, 1617, 1136, 2028],\n", - " 631: [318, 50, 858, 2571, 541, 2959, 1196, 2858, 1617, 1136],\n", - " 651: [318, 50, 593, 2571, 2959, 1196, 2028, 1197, 296, 2762],\n", - " 664: [318, 50, 858, 527, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 685: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 690: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 696: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 724: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 738: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 762: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 763: [318, 50, 858, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 770: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 796: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 800: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 829: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 836: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 882: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 900: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 903: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 914: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 918: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 920: [318, 50, 527, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n", - " 945: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 950: [318, 50, 858, 527, 2571, 2959, 1617, 2028, 1197, 2762],\n", - " 952: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 982: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n", - " 989: [318, 593, 2959, 1197, 2762, 1214, 110, 1200, 47, 1036],\n", - " 1016: [50, 858, 593, 2571, 541, 2959, 1196, 1198, 1617, 1136],\n", - " 1019: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 1044: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 1051: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n", - " 917: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 951: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 997: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 174: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1136],\n", - " 676: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 764: [50, 858, 260, 1193, 2571, 541, 1196, 1198, 1617, 1136],\n", - " 1052: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n", - " 5: [318, 50, 260, 1193, 2571, 2959, 1196, 2858, 1198, 1617],\n", - " 27: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 33: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 134: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 142: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 156: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 167: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 177: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 224: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 269: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 312: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 360: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 385: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 411: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 464: [318, 50, 858, 527, 260, 593, 2571, 541, 2959, 1196],\n", - " 568: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 612: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 630: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 706: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 737: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 749: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 756: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 811: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 853: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 884: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 955: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 1032: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 1043: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 370: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 670: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 923: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 931: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 969: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 12: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n", - " 597: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 195: [318, 50, 260, 593, 2571, 541, 2959, 1196, 1198, 1136],\n", - " 337: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 910: [527, 260, 1193, 2571, 541, 1196, 1198, 2028, 1197, 608],\n", - " 63: [318, 50, 260, 593, 2571, 541, 2959, 1196, 1198, 1136],\n", - " 70: [50, 260, 593, 2571, 2959, 1196, 2858, 1136, 2028, 1197],\n", - " 99: [50, 260, 593, 2571, 2959, 1196, 2858, 1198, 2028, 1197],\n", - " 121: [260, 2959, 2858, 2028, 2762, 1214, 110, 3578, 47, 1036],\n", - " 130: [318, 260, 2571, 2959, 1196, 1617, 2028, 1197, 2762, 1214],\n", - " 244: [318, 260, 2571, 2959, 1196, 1198, 1617, 2028, 296, 2762],\n", - " 291: [318, 50, 260, 593, 2571, 541, 2959, 2858, 1198, 1617],\n", - " 335: [318, 50, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 361: [318, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 1198],\n", - " 470: [260, 1193, 1196, 2028, 1197, 110, 3578, 1036, 1291, 1210],\n", - " 497: [50, 260, 1193, 541, 2959, 2858, 1198, 1617, 1136, 2028],\n", - " 620: [318, 50, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 648: [527, 260, 2571, 2959, 1198, 1136, 1197, 296, 2762, 1214],\n", - " 666: [318, 50, 527, 260, 593, 1617, 2028, 1197, 608, 2762],\n", - " 710: [50, 260, 593, 2571, 541, 2959, 1196, 1136, 2028, 1197],\n", - " 794: [318, 50, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 854: [318, 50, 260, 1193, 2571, 541, 1196, 1198, 1617, 1136],\n", - " 861: [318, 50, 527, 260, 1193, 593, 541, 2959, 1196, 2858],\n", - " 87: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1198],\n", - " 317: [318, 50, 858, 527, 260, 593, 2571, 2959, 1196, 2858],\n", - " 324: [318, 50, 858, 527, 260, 1193, 593, 1196, 2858, 1198],\n", - " 502: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n", - " 559: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 973: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 1015: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 1017: [318, 50, 858, 527, 260, 1193, 593, 2571, 2959, 2858],\n", - " 85: [318, 858, 260, 1193, 541, 2959, 1196, 1198, 1617, 1136],\n", - " 306: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 653: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 371: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 566: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 331: [858, 527, 260, 1193, 593, 541, 1196, 1198, 1617, 1136],\n", - " 665: [318, 50, 858, 527, 260, 593, 2571, 2959, 1196, 1198],\n", - " 872: [318, 858, 527, 260, 593, 2571, 541, 2959, 1196, 2858],\n", - " 879: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 486: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 864: [318, 50, 858, 260, 1193, 593, 2571, 541, 1196, 1198],\n", - " 52: [318, 858, 527, 260, 593, 2571, 541, 2959, 1196, 2858],\n", - " 288: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 9: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 117: [318, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 220: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 544: [318, 858, 527, 260, 1193, 593, 541, 2858, 1198, 1617],\n", - " 999: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 458: [318, 50, 858, 527, 260, 593, 2571, 541, 2959, 1196],\n", - " 974: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 546: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 55: [318, 50, 858, 527, 260, 593, 2571, 541, 2959, 1196],\n", - " 363: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2858],\n", - " 445: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 492: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 234: [318, 858, 260, 1193, 593, 541, 1196, 1198, 1136, 2028],\n", - " 1027: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n", - " 140: [858, 260, 2571, 541, 2959, 1196, 1198, 1617, 1136, 2028],\n", - " 926: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 781: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 825: [318, 50, 858, 527, 260, 2571, 541, 2959, 1196, 2858],\n", - " 913: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n", - " 453: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 540: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 66: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n", - " 185: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 222: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 498: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 994: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 165: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 202: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 180: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 93: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 261: [318, 50, 858, 527, 260, 593, 541, 2959, 1196, 2858],\n", - " 435: [318, 50, 858, 527, 260, 1193, 593, 1196, 2858, 1198],\n", - " 322: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 238: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 425: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 512: [50, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 1198],\n", - " 725: [318, 50, 858, 527, 260, 1193, 593, 541, 1196, 1198],\n", - " 732: [318, 50, 858, 527, 260, 593, 2571, 541, 2959, 1196],\n", - " 108: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 592: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 443: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 1198],\n", - " 916: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n", - " 736: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 961: [318, 50, 858, 260, 593, 2571, 541, 2959, 1196, 1136],\n", - " 1012: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n", - " 515: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 978: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 28: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 475: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n", - " 598: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 943: [318, 50, 858, 527, 260, 593, 2571, 541, 2959, 1196],\n", - " 520: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 697: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 849: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 1003: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n", - " 705: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 48: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 29: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 231: [318, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n", - " 699: [858, 527, 260, 1193, 593, 2571, 541, 1196, 1198, 1617],\n", - " 448: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 750: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n", - " 782: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 860: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 768: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 127: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n", - " 894: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959]})" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from collections import defaultdict\n", - "\n", - "# 각 사용자에 대한 추천 영화는 해당 사용자가 아직 평가하지 않은 영화 중에서 평갓값이 높은 10작품으로 한다\n", - "# 단, 평가 건수가 작으면 노이즈가 크므로 minimum_num_rating건 이상 평가가 있는 영화로 필터링한다\n", - "pred_user2items = defaultdict(list)\n", - "user_watched_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", - "movie_stats = movielens_train.groupby(\"movie_id\").agg({\"rating\": [np.size, np.mean]})\n", - "atleast_flg = movie_stats[\"rating\"][\"size\"] >= minimum_num_rating\n", - "movies_sorted_by_rating = (\n", - " movie_stats[atleast_flg].sort_values(by=(\"rating\", \"mean\"), ascending=False).index.tolist()\n", - ")\n", - "\n", - "for user_id in movielens_train.user_id.unique():\n", - " for movie_id in movies_sorted_by_rating:\n", - " if movie_id not in user_watched_movies[user_id]:\n", - " pred_user2items[user_id].append(movie_id)\n", - " if len(pred_user2items[user_id]) == 10:\n", - " break\n", - "pred_user2items" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "f242af0f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "6150 2 648 2.0 868244699 \n", - "6531 2 733 3.0 868244562 \n", - "6813 2 736 3.0 868244698 \n", - "7113 2 780 3.0 868244698 \n", - "7506 2 786 3.0 868244562 \n", - "7661 2 802 2.0 868244603 \n", - "7779 2 858 2.0 868245645 \n", - "8077 2 1049 3.0 868245920 \n", - "8127 2 1073 3.0 868244562 \n", - "8381 2 1210 4.0 868245644 \n", - "8771 2 1356 3.0 868244603 \n", - "9097 2 1544 3.0 868245920 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "6150 Mission: Impossible (1996) \n", - "6531 Rock, The (1996) \n", - "6813 Twister (1996) \n", - "7113 Independence Day (a.k.a. ID4) (1996) \n", - "7506 Eraser (1996) \n", - "7661 Phenomenon (1996) \n", - "7779 Godfather, The (1972) \n", - "8077 Ghost and the Darkness, The (1996) \n", - "8127 Willy Wonka & the Chocolate Factory (1971) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "8771 Star Trek: First Contact (1996) \n", - "9097 Lost World: Jurassic Park, The (Jurassic Park ... \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "6150 [Action, Adventure, Mystery, Thriller] \n", - "6531 [Action, Adventure, Thriller] \n", - "6813 [Action, Adventure, Romance, Thriller] \n", - "7113 [Action, Adventure, Sci-Fi, War] \n", - "7506 [Action, Drama, Thriller] \n", - "7661 [Drama, Romance] \n", - "7779 [Crime, Drama] \n", - "8077 [Action, Adventure] \n", - "8127 [Children, Comedy, Fantasy, Musical] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "8771 [Action, Adventure, Sci-Fi, Thriller] \n", - "9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "6150 [confusing, confusing plot, memorable sequence... 12.0 \n", - "6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n", - "6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n", - "7113 [action, alien invasion, aliens, will smith, a... 14.0 \n", - "7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n", - "7661 [interesting concept, own, john travolta, john... 15.0 \n", - "7779 [oscar (best picture), marlon brando, classic,... 9.0 \n", - "8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n", - "8127 [based on a book, roald dahl, based on a book,... 20.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n", - "8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n", - "9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 " - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2인 사용자가 학습 데이터에 평가를 부여한 영화 목록\n", - "movielens_train[movielens_train.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "44ab20ed", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858]" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pred_user2items[2]" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "8c8b00e4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
4950Usual Suspects, The (1995)[Crime, Mystery, Thriller][kevin spacey, ensemble cast, complicated, mus...
315318Shawshank Redemption, The (1994)[Drama][based on a short story, directorial debut, fr...
523527Schindler's List (1993)[Drama, War][speilberg, drama, holocaust, steven spielberg...
\n", - "
" - ], - "text/plain": [ - " movie_id title genre \\\n", - "49 50 Usual Suspects, The (1995) [Crime, Mystery, Thriller] \n", - "315 318 Shawshank Redemption, The (1994) [Drama] \n", - "523 527 Schindler's List (1993) [Drama, War] \n", - "\n", - " tag \n", - "49 [kevin spacey, ensemble cast, complicated, mus... \n", - "315 [based on a short story, directorial debut, fr... \n", - "523 [speilberg, drama, holocaust, steven spielberg... " - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2에 대한 추천(318, 50, 527)\n", - "movies[movies.movie_id.isin([318, 50, 527])]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9deafa9b", - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","id":"b058b784","metadata":{"id":"b058b784"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/Popularity.ipynb)"]},{"cell_type":"markdown","id":"4ffa2166","metadata":{"id":"4ffa2166"},"source":["# 인기도 순 추천\n","## 인기도의 정의\n","* 여기에서는 평갓값이 높은 것을 인기가 높은 영화로 간주합니다\n","* 인기도는 '클릭 수가 많은 것', '구매가 많은 것', '평갓값이 높은 것' 등 다양하게 정의할 수 있으므로 자사 서비스에 맞춰 적합한 정의를 사용합니다.\n"]},{"cell_type":"code","execution_count":1,"id":"dddeebb1","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"dddeebb1","executionInfo":{"status":"ok","timestamp":1672119640719,"user_tz":-540,"elapsed":3067,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"306ffbe3-8bf3-43c5-c8e0-9fd045d29c13"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:40:34-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 92.1MB/s in 0.7s \n","\n","2022-12-27 05:40:35 (92.1 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"373c704d","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"373c704d","executionInfo":{"status":"ok","timestamp":1672119702658,"user_tz":-540,"elapsed":61943,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"5d00a5b5-d98f-456c-df97-ce9f96a23767"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"95116bab","metadata":{"id":"95116bab","executionInfo":{"status":"ok","timestamp":1672119702658,"user_tz":-540,"elapsed":24,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 평가 수의 임곗값\n","minimum_num_rating = 200\n"]},{"cell_type":"code","execution_count":4,"id":"035cfe3b","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":269},"id":"035cfe3b","executionInfo":{"status":"ok","timestamp":1672119702658,"user_tz":-540,"elapsed":22,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"54cf3a99-c9e4-4249-bdcc-a3e9245763a1"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" rating \n"," size mean\n","movie_id title \n","4095 Cry Freedom (1987) 1 5.0\n","7227 Trouble with Angels, The (1966) 1 5.0\n","27255 Wind Will Carry Us, The (Bad ma ra khahad bord)... 1 5.0\n","4453 Michael Jordan to the Max (2000) 2 5.0\n","3415 Mirror, The (Zerkalo) (1975) 1 5.0"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
rating
sizemean
movie_idtitle
4095Cry Freedom (1987)15.0
7227Trouble with Angels, The (1966)15.0
27255Wind Will Carry Us, The (Bad ma ra khahad bord) (1999)15.0
4453Michael Jordan to the Max (2000)25.0
3415Mirror, The (Zerkalo) (1975)15.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":4}],"source":["import numpy as np\n","\n","# 평갓값의 평균이 높은 영화를 확인한다\n","# 평가 수가 1건인 영화가 상위에 여럿 나타난다\n","movie_stats = movielens_train.groupby(['movie_id', 'title']).agg({'rating': [np.size, np.mean]})\n","movie_stats.sort_values(by=('rating', 'mean'), ascending=False).head()"]},{"cell_type":"code","execution_count":5,"id":"fcfef4c3","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":269},"id":"fcfef4c3","executionInfo":{"status":"ok","timestamp":1672119702659,"user_tz":-540,"elapsed":7,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"3b1d6192-9d79-434e-a9ff-349d906d2b04"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" rating \n"," size mean\n","movie_id title \n","318 Shawshank Redemption, The (1994) 424 4.491745\n","50 Usual Suspects, The (1995) 334 4.459581\n","912 Casablanca (1942) 163 4.444785\n","904 Rear Window (1954) 129 4.441860\n","2019 Seven Samurai (Shichinin no samurai) (1954) 104 4.408654"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
rating
sizemean
movie_idtitle
318Shawshank Redemption, The (1994)4244.491745
50Usual Suspects, The (1995)3344.459581
912Casablanca (1942)1634.444785
904Rear Window (1954)1294.441860
2019Seven Samurai (Shichinin no samurai) (1954)1044.408654
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":5}],"source":["# 임곗값을 도입해 평가 수가 적은 영화를 제거한다\n","# 쇼생크 탈출이나 7인의 사무라이 등 익숙한 영화가 상위에 나타난다\n","movie_stats = movielens_train.groupby(['movie_id', 'title']).agg({'rating': [np.size, np.mean]})\n","atleast_flg = movie_stats['rating']['size'] >= 100\n","movies_sorted_by_rating = movie_stats[atleast_flg].sort_values(by=('rating', 'mean'), ascending=False)\n","movies_sorted_by_rating.head()"]},{"cell_type":"code","execution_count":6,"id":"2827d6f8","metadata":{"id":"2827d6f8","executionInfo":{"status":"ok","timestamp":1672119703181,"user_tz":-540,"elapsed":528,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["import numpy as np \n","# 각 아이템별로 평균 평갓값을 계싼하고, 해당 평균 평갓값을 예측값으로 사용한다\n","movie_rating_average = movielens_train.groupby(\"movie_id\").agg({\"rating\": np.mean})\n","# 테스트 데이터에 예측값을 저장한다. 테스트 데이터에만 존재하는 아이템의 예측 평갓값은 0으로 한다.\n","movie_rating_predict = movielens_test.merge(\n"," movie_rating_average, on=\"movie_id\", how=\"left\", suffixes=(\"_test\", \"_pred\")\n",").fillna(0)"]},{"cell_type":"code","execution_count":7,"id":"e18fcf5b","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"e18fcf5b","executionInfo":{"status":"ok","timestamp":1672119703182,"user_tz":-540,"elapsed":529,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"eef6631e-96dd-4508-aee6-8f8a1b0ca23a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {139: [50, 858, 1193, 1214, 1200, 1291, 457, 150, 2396, 34],\n"," 149: [318, 527, 260, 1193, 593, 2571, 1136, 2028, 1197, 2762],\n"," 182: [260, 541, 1198, 1214, 1200, 47, 1036, 1291, 1210, 1240],\n"," 215: [527, 590, 1073, 539, 253, 2683, 231],\n"," 281: [858, 260, 1193, 2571, 2959, 1196, 2858, 1198, 1617, 1136],\n"," 326: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 351: [541, 2959, 2028, 2762, 1200, 3578, 47, 1291, 1240, 589],\n"," 357: [318, 50, 858, 260, 1193, 593, 541, 2959, 1196, 2858],\n"," 426: [1073, 141, 329],\n"," 456: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 459: [318, 50, 858, 1193, 1198, 1617, 1197, 608, 457, 1265],\n"," 494: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 517: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 524: [527, 260, 1193, 593, 1196, 1198, 1617, 1136, 1197, 608],\n"," 556: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 588: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 589: [318, 2571, 2959, 2858, 1617, 1136, 2028, 1197, 2762, 3578],\n"," 590: [858, 527, 1193, 541, 2959, 2858, 1617, 1136, 1197, 1214],\n"," 601: [50, 858, 2571, 541, 2959, 2858, 1617, 1136, 2028, 608],\n"," 621: [110, 34, 595, 25, 141, 597, 253, 587, 500, 454],\n"," 634: [318, 50, 858, 527, 1193, 2571, 2959, 2858, 2028, 296],\n"," 672: [318, 1193, 541, 1136, 1214, 1200, 1036, 1240, 457, 1270],\n"," 701: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 719: [858, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617, 1136],\n"," 745: [1136, 356, 457, 34, 1073, 588, 357, 21, 539, 380],\n"," 757: [318, 858, 527, 1193, 593, 2571, 2959, 2858, 1617, 2028],\n"," 775: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 780: [2571, 2959, 2858, 3578, 1, 595, 1580, 165, 10, 316],\n"," 785: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 788: [260, 1193, 541, 1196, 1136, 1197, 608, 296, 1210, 150],\n"," 870: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 987: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 988: [527, 110, 2396, 733, 34, 1073, 480, 25, 539, 141],\n"," 1020: [318, 50, 260, 2571, 541, 2959, 1196, 2858, 1198, 1136],\n"," 1: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 22: [318, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 26: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 30: [50, 858, 2571, 541, 2959, 2858, 1617, 2028, 1197, 296],\n"," 34: [1193, 2858, 1617, 1214, 1036, 1291, 2396, 1270, 2716, 1097],\n"," 38: [50, 858, 527, 260, 1193, 541, 1196, 2858, 1198, 1617],\n"," 50: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 53: [318, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 1198],\n"," 54: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 67: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 71: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 76: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 88: [318, 50, 858, 527, 1193, 593, 541, 1617, 2028, 608],\n"," 89: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 94: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 95: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 100: [1193, 541, 2959, 1617, 1136, 1197, 2762, 1214, 1200, 3578],\n"," 101: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 102: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 103: [318, 858, 1193, 593, 2571, 2959, 2858, 1617, 2028, 1197],\n"," 111: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 116: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 118: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 143: [50, 541, 1617, 1036, 1240, 589, 349, 165, 253, 587],\n"," 144: [1193, 1197, 2396, 590, 1073, 595, 349, 539, 587, 39],\n"," 162: [318, 50, 1193, 593, 541, 1617, 1197, 608, 1200, 1036],\n"," 172: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 173: [2571, 541, 2959, 2858, 1617, 1136, 2028, 1197, 2762, 110],\n"," 187: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 193: [858, 1193, 2571, 2959, 1196, 2858, 1198, 1617, 1136, 2028],\n"," 208: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 210: [50, 858, 527, 260, 1193, 2959, 1196, 1198, 1617, 1136],\n"," 214: [318, 1193, 541, 2959, 2858, 2028, 1214, 1200, 32, 349],\n"," 228: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 232: [1193, 2571, 2959, 2858, 1617, 1136, 2028, 1197, 2762, 3578],\n"," 236: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 259: [318, 858, 1193, 541, 110, 3578, 1036, 1, 1240, 589],\n"," 260: [318, 50, 527, 2571, 2959, 2858, 1617, 2028, 1197, 2762],\n"," 267: [1197, 2396, 2716, 364, 1265, 34, 1073, 588, 595, 349],\n"," 268: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 271: [318, 50, 858, 527, 1193, 593, 2571, 2959, 2858, 1198],\n"," 274: [318, 50, 858, 527, 1193, 593, 2571, 2959, 1198, 1617],\n"," 287: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 292: [527, 1617, 110, 1036, 457, 2396, 34, 590, 595, 349],\n"," 296: [260, 1196, 1198, 1617, 1136, 1197, 608, 110, 1291, 1210],\n"," 303: [50, 1193, 1617, 1197, 1036, 1, 457, 2396, 1270, 733],\n"," 307: [318, 50, 858, 527, 1193, 593, 2959, 2858, 1617, 1136],\n"," 310: [1193, 2959, 3578, 47, 1210, 150, 588, 141, 10, 500],\n"," 315: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 320: [318, 50, 858, 1193, 541, 1198, 1197, 608, 1200, 1291],\n"," 332: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 339: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 343: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 355: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 364: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 365: [318, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 368: [318, 527, 1193, 593, 2858, 2028, 2762, 2396, 34, 349],\n"," 381: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 382: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 383: [527, 2959, 1136, 1197, 110, 1200, 47, 1036, 1291, 1210],\n"," 391: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 396: [318, 50, 858, 527, 1193, 593, 1617, 1136, 1197, 608],\n"," 398: [318, 50, 858, 1193, 2571, 541, 2959, 2858, 1617, 2028],\n"," 406: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 409: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 410: [260, 2571, 2959, 2858, 1617, 1136, 2028, 296, 2762, 3578],\n"," 416: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 418: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 419: [2959, 1196, 2028, 3578, 1210, 1, 356, 150, 34, 25],\n"," 421: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 424: [50, 858, 593, 2571, 2959, 2028, 1197, 296, 2762, 1214],\n"," 432: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 434: [318, 50, 1136, 1197, 296, 47, 150, 2396, 32, 2716],\n"," 436: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 438: [50, 527, 2959, 2028, 608, 47, 150, 1270, 588, 357],\n"," 441: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 446: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 452: [50, 858, 260, 1193, 593, 541, 2959, 1196, 2858, 1198],\n"," 460: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 463: [2396, 364, 1265, 590, 588, 595, 357, 539, 380, 165],\n"," 468: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 469: [50, 858, 1193, 2959, 1617, 1197, 110, 47, 733, 1073],\n"," 472: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 476: [858, 1193, 1197, 1, 150, 1270, 2716, 1265, 34, 1097],\n"," 480: [318, 527, 1193, 1036, 457, 150, 2396, 733, 364, 34],\n"," 482: [50, 593, 541, 2858, 1617, 1197, 608, 2762, 1214, 110],\n"," 493: [593, 1196, 1198, 1136, 1214, 1200, 1240, 589, 733, 1265],\n"," 496: [318, 50, 858, 527, 260, 1193, 541, 2959, 1196, 2858],\n"," 501: [318, 50, 858, 527, 541, 2959, 2858, 1617, 296, 2762],\n"," 504: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 505: [50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n"," 511: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 516: [50, 1193, 1197, 608, 1036, 2396, 364, 1073, 349, 25],\n"," 525: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 530: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 531: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 533: [150, 1097, 349, 21, 380, 165, 10, 2683, 367, 288],\n"," 536: [318, 50, 858, 527, 1193, 2571, 541, 2959, 1196, 2858],\n"," 543: [2028, 21, 10, 288],\n"," 547: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 549: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 553: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 558: [1193, 541, 2762, 316, 329],\n"," 562: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 567: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 571: [1193, 593, 541, 2959, 608, 296, 2762, 1214, 110, 356],\n"," 572: [318, 3578, 1036, 150, 2396, 34, 1097, 590, 588, 357],\n"," 577: [527, 260, 1193, 2571, 541, 2959, 2858, 1617, 1136, 2028],\n"," 581: [50, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 585: [2762, 110, 3578, 47, 733, 597, 253, 292, 288, 344],\n"," 593: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 604: [1193, 2571, 541, 2959, 1196, 2858, 1198, 1617, 1136, 2028],\n"," 605: [858, 593, 2571, 2959, 2858, 1617, 2028, 1197, 2762, 3578],\n"," 609: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 628: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 629: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 645: [50, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 650: [527, 593, 2959, 1617, 1136, 2028, 296, 110, 1200, 457],\n"," 656: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 657: [1136, 1200, 1240, 39, 316, 329, 288],\n"," 669: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 678: [2571, 2959, 2858, 1617, 2028, 2762, 3578, 47, 1, 2396],\n"," 683: [318, 50, 527, 1193, 593, 541, 2959, 2858, 1617, 1136],\n"," 688: [318, 1617, 2028, 1197, 457, 1265, 34, 1073, 588, 595],\n"," 689: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 693: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 716: [858, 1193, 1136, 110, 1036, 150, 733, 590, 1073, 595],\n"," 720: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 734: [318, 858, 527, 1193, 2571, 541, 2959, 2858, 1617, 1136],\n"," 735: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 739: [318, 858, 527, 260, 1193, 541, 1196, 2858, 1198, 1136],\n"," 755: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 758: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 767: [50, 1193, 541, 2959, 2858, 1617, 1136, 2028, 608, 296],\n"," 769: [858, 260, 1193, 2571, 2959, 1196, 2858, 1198, 1617, 2028],\n"," 786: [50, 858, 1193, 593, 541, 2959, 2858, 1617, 2028, 608],\n"," 789: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 792: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 795: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 798: [2396, 590, 595, 25, 21, 141, 292, 329, 153],\n"," 799: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 802: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 806: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 807: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 816: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 827: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 828: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 846: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 859: [318, 50, 527, 1193, 2858, 1617, 608, 1214, 47, 457],\n"," 862: [50, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 876: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 881: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 885: [2959, 2858, 1617, 2762, 3578, 364, 357, 539, 141, 597],\n"," 886: [1197, 110, 1291, 1, 364, 588, 595, 25, 165, 367],\n"," 889: [318, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 890: [318, 50, 858, 1193, 593, 541, 1196, 1198, 1617, 1136],\n"," 891: [858, 593, 1136, 349, 25, 21, 141, 165, 10, 454],\n"," 896: [318, 858, 1193, 2571, 2959, 1196, 2858, 1198, 1617, 2028],\n"," 897: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 898: [318, 50, 858, 527, 1193, 593, 2959, 2858, 1198, 1617],\n"," 908: [318, 50, 1193, 593, 2959, 2858, 1617, 1136, 1197, 608],\n"," 922: [50, 858, 527, 260, 1193, 593, 541, 1196, 2858, 1198],\n"," 930: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 938: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 956: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 958: [50, 858, 527, 260, 1193, 593, 541, 1196, 2858, 1198],\n"," 968: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 977: [2959, 2762, 110, 3578, 356, 457, 150, 2396, 32, 1270],\n"," 990: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 996: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 1004: [527, 541, 1197, 1214, 1200, 3578, 1036, 1291, 2396, 2716],\n"," 1005: [50, 858, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 1008: [1136, 2028, 1240, 589, 349, 25, 21, 165, 10, 454],\n"," 1029: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 1037: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 1050: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 4: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 8: [318, 858, 1193, 296, 110, 1, 356, 150, 2396, 2716],\n"," 18: [50, 858, 1193, 1617, 1197, 1200, 588, 595, 21, 141],\n"," 36: [318, 527, 1193, 541, 1136, 1197, 1214, 110, 1200, 47],\n"," 47: [527, 1193, 1617, 1197, 608, 47, 356, 457, 1265, 1097],\n"," 59: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 62: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 77: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 79: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 80: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 119: [50, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1617],\n"," 122: [541, 1617, 2028, 47, 1, 32, 364, 595, 349, 1580],\n"," 125: [1617, 1197, 357, 10, 329, 153],\n"," 126: [357, 21, 329],\n"," 132: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 141: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 154: [318, 858, 527, 2858, 1617, 1136, 2028, 1197, 3578, 2396],\n"," 155: [527, 1197, 608, 1200, 1291, 2396, 733, 364, 590, 588],\n"," 163: [318, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 164: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 170: [858, 527, 260, 1193, 593, 541, 1196, 1198, 1617, 2028],\n"," 171: [858, 527, 260, 1193, 593, 2571, 541, 1196, 1198, 1617],\n"," 176: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 190: [318, 50, 527, 1193, 2858, 1617, 608, 47, 457, 733],\n"," 197: [318, 50, 260, 593, 2571, 541, 2959, 1196, 2858, 1198],\n"," 198: [1198, 1291, 457, 349, 480, 357, 25, 21, 539, 141],\n"," 199: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 212: [2858, 110, 3578, 1036, 2396, 364, 1073, 25, 141, 597],\n"," 221: [1193, 541, 2959, 1617, 1136, 1197, 608, 2762, 1214, 1200],\n"," 223: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 226: [527, 1193, 2959, 2858, 1, 150, 2396, 364, 34, 1097],\n"," 241: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 247: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 249: [858, 527, 260, 1193, 2858, 1617, 110, 1210, 1, 457],\n"," 254: [1198, 1617, 1197, 608, 110, 1036, 1291, 1, 457, 150],\n"," 264: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 273: [858, 1193, 541, 2959, 1196, 1198, 1617, 1136, 1197, 608],\n"," 275: [858, 527, 260, 541, 2959, 1198, 1136, 1197, 1214, 1200],\n"," 276: [110, 2716, 208],\n"," 293: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 294: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 295: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 2858],\n"," 318: [1200, 32, 25, 380, 454, 316, 329, 288, 434, 344],\n"," 321: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 345: [318, 50, 858, 527, 593, 541, 1617, 608, 1214, 1200],\n"," 346: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 348: [260, 1196, 1136, 1197, 1210, 2396, 1265, 34, 1073, 595],\n"," 349: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 354: [50, 527, 260, 1193, 541, 1196, 1198, 1617, 1136, 2028],\n"," 359: [318, 50, 858, 527, 260, 1193, 593, 541, 1196, 1617],\n"," 366: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 2858],\n"," 369: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 384: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 390: [527, 541, 1197, 1214, 47, 1036, 150, 32, 1270, 2716],\n"," 392: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 403: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n"," 407: [318, 527, 1193, 1196, 2858, 1617, 1197, 110, 1210, 2716],\n"," 414: [318, 50, 858, 527, 260, 1193, 541, 1196, 1198, 1136],\n"," 431: [858, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 454: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 465: [260, 2571, 541, 1196, 1198, 1136, 2028, 1197, 1214, 1200],\n"," 481: [527, 1193, 541, 1197, 608, 2762, 110, 150, 2396, 1073],\n"," 485: [1136, 2028, 1197, 110, 47, 1036, 1210, 150, 1270, 2716],\n"," 503: [50, 260, 1193, 1196, 1617, 1197, 608, 1214, 110, 1200],\n"," 513: [2959, 110, 3578, 47, 1291, 1, 733, 25, 165, 253],\n"," 545: [3578, 2396, 1073, 595, 25, 21, 141, 39, 2683, 288],\n"," 552: [858, 527, 260, 593, 2571, 541, 1196, 1198, 1617, 2028],\n"," 554: [50, 858, 260, 2571, 541, 1196, 1617, 1136, 1197, 3578],\n"," 555: [541, 1197, 1214, 1200, 1036, 457, 2396, 364, 34, 1097],\n"," 561: [318, 50, 858, 527, 1193, 1198, 1617, 1136, 1197, 608],\n"," 565: [318, 50, 527, 260, 593, 2571, 541, 2959, 1196, 2028],\n"," 591: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 617: [318, 858, 1193, 2571, 2959, 2858, 1617, 2028, 608, 2762],\n"," 622: [50, 858, 527, 1193, 1617, 1136, 1197, 608, 1214, 1200],\n"," 623: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 633: [2762, 1036, 1291, 1240, 589, 1270, 1097, 595, 357, 25],\n"," 636: [541, 2959, 2858, 1197, 608, 1214, 110, 1200, 47, 1],\n"," 638: [858, 1193, 593, 2571, 2959, 1196, 2858, 1198, 1617, 1136],\n"," 641: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 646: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 654: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 655: [50, 527, 593, 2571, 2959, 2858, 1617, 2028, 2762, 110],\n"," 658: [318, 50, 858, 527, 260, 1193, 541, 1196, 1198, 1617],\n"," 660: [858, 260, 1196, 1198, 1617, 1136, 1197, 1214, 110, 1200],\n"," 661: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 677: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 714: [1193, 593, 541, 1196, 1214, 1200, 47, 1036, 1210, 1],\n"," 715: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 723: [50, 858, 260, 593, 1196, 2858, 1198, 1617, 2028, 296],\n"," 731: [50, 2959, 2858, 1198, 1617, 3578, 47, 1291, 1, 457],\n"," 742: [858, 527, 1193, 593, 608, 1214, 1200, 457, 2396, 733],\n"," 743: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 752: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 772: [318, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 814: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 1198, 1617],\n"," 823: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 2858],\n"," 826: [527, 1198, 2762, 110, 1291, 150, 2396, 2716, 364, 34],\n"," 833: [50, 1193, 2959, 1196, 2762, 110, 3578, 47, 1036, 1291],\n"," 838: [2959, 733, 364, 1073, 588, 595, 357, 21, 165, 10],\n"," 842: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 852: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 878: [2571, 2959, 2858, 1617, 2028, 2762, 110, 3578, 47, 1291],\n"," 887: [858, 527, 260, 1193, 541, 1196, 1198, 1136, 1197, 608],\n"," 895: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 899: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 902: [527, 541, 110, 150, 32, 1265, 34, 590, 357, 25],\n"," 907: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 928: [858, 527, 2028, 1214, 110, 1200, 1036, 1291, 2396, 2716],\n"," 936: [318, 1197, 1, 457, 1270, 2716, 733, 364, 34, 1097],\n"," 964: [50, 541, 2858, 1198, 1617, 1136, 1197, 2762, 1214, 1200],\n"," 970: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 972: [50, 260, 541, 1196, 1198, 1136, 1197, 1214, 1200, 1036],\n"," 1001: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 1013: [1193, 541, 2959, 2858, 1617, 1136, 1197, 608, 2762, 1214],\n"," 1018: [50, 858, 527, 1193, 1198, 1200, 3578, 1036, 1291, 1240],\n"," 1028: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 1031: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 1035: [50, 527, 260, 1193, 541, 1196, 1198, 1617, 1197, 608],\n"," 1038: [318, 50, 858, 527, 2571, 541, 2959, 2858, 1198, 1617],\n"," 1045: [608, 1214, 1200, 1240, 2716, 34, 349, 480, 357, 25],\n"," 1046: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 35: [318, 50, 858, 527, 260, 1193, 593, 541, 1198, 1617],\n"," 72: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 91: [858, 593, 2959, 1617, 296, 2762, 110, 3578, 457, 589],\n"," 106: [318, 50, 858, 527, 1193, 593, 541, 2959, 2858, 1198],\n"," 128: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 158: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 160: [318, 50, 527, 1193, 593, 541, 2959, 1617, 1136, 1197],\n"," 175: [1291, 34, 1073, 141, 165, 10, 780, 316, 2683, 329],\n"," 196: [50, 1193, 541, 2858, 1617, 2762, 1200, 3578, 47, 2396],\n"," 203: [858, 527, 1193, 2571, 2959, 2858, 2028, 2762, 3578, 2396],\n"," 206: [318, 50, 858, 260, 1193, 2959, 2858, 1198, 1136, 1197],\n"," 207: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 255: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 265: [318, 50, 527, 260, 1193, 593, 541, 2959, 1196, 2858],\n"," 340: [858, 1193, 2571, 2959, 2858, 1617, 2028, 2762, 3578, 1],\n"," 404: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 433: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 440: [260, 541, 1196, 1617, 1136, 3578, 1210, 1, 1240, 589],\n"," 444: [318, 50, 858, 527, 260, 593, 2959, 1617, 1136, 2028],\n"," 450: [2959, 1136, 150, 364, 1265, 34, 21, 141, 165, 10],\n"," 479: [858, 260, 541, 1196, 1198, 1197, 3578, 47, 1036, 1291],\n"," 491: [50, 1193, 593, 541, 1198, 1617, 1136, 2028, 608, 296],\n"," 506: [2571, 2959, 2858, 1617, 2028, 1197, 608, 2762, 110, 3578],\n"," 523: [593, 2571, 2959, 1196, 2858, 1198, 1617, 1136, 2028, 1197],\n"," 539: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 541: [318, 858, 1193, 296, 2762, 3578, 150, 364, 595, 357],\n"," 616: [858, 1193, 541, 1196, 1617, 1136, 1197, 1214, 1200, 1240],\n"," 647: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 659: [50, 1193, 2959, 1617, 2028, 110, 3578, 1291, 1, 150],\n"," 695: [858, 1193, 541, 2959, 1196, 2858, 1617, 1136, 2762, 1214],\n"," 700: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 707: [318, 50, 858, 260, 1193, 2571, 541, 1196, 1198, 1617],\n"," 748: [858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n"," 759: [318, 50, 858, 527, 1193, 593, 2959, 2858, 1617, 1136],\n"," 784: [1193, 1617, 1200, 150, 34, 595, 349, 25, 21, 539],\n"," 790: [1193, 2571, 2959, 2858, 1617, 2028, 608, 2762, 3578, 356],\n"," 835: [858, 527, 1193, 2571, 2959, 1196, 2858, 1198, 1617, 1136],\n"," 844: [318, 50, 527, 1193, 541, 2959, 1617, 1136, 2028, 1197],\n"," 871: [2571, 2959, 2858, 1617, 2028, 1197, 2762, 110, 3578, 1036],\n"," 875: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 892: [1193, 2571, 541, 2959, 2858, 1198, 1617, 1136, 2028, 2762],\n"," 919: [318, 50, 858, 527, 1193, 593, 541, 2959, 1196, 2858],\n"," 935: [318, 858, 527, 1193, 593, 541, 2959, 2858, 1617, 1136],\n"," 942: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 960: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 1006: [50, 858, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n"," 1026: [318, 50, 858, 527, 2858, 1617, 296, 110, 47, 356],\n"," 1047: [260, 1193, 593, 1196, 1617, 1214, 1200, 1240, 32, 2716],\n"," 65: [50, 858, 527, 1193, 593, 541, 2959, 1617, 2028, 608],\n"," 135: [318, 50, 527, 1193, 2571, 2959, 2858, 1617, 2028, 608],\n"," 152: [527, 1193, 2959, 2858, 1136, 1197, 608, 296, 1, 150],\n"," 166: [318, 50, 858, 527, 1193, 2571, 541, 2959, 2858, 1198],\n"," 179: [318, 527, 593, 2959, 2858, 1136, 2762, 47, 1291, 356],\n"," 188: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 217: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 253: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n"," 262: [1193, 541, 2858, 1136, 1214, 1200, 1, 589, 150, 32],\n"," 277: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 289: [541, 1198, 1291, 1240, 589, 733, 364, 1073, 588, 292],\n"," 300: [593, 2959, 2858, 1198, 1136, 1197, 3578, 47, 1036, 1291],\n"," 302: [858, 593, 541, 1198, 1214, 1200, 47, 1036, 1, 356],\n"," 308: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 311: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 328: [858, 527, 1193, 593, 2959, 1198, 1617, 1136, 2028, 1197],\n"," 329: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 344: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 2858],\n"," 347: [318, 858, 527, 1193, 593, 2959, 2858, 1198, 1136, 2028],\n"," 358: [50, 858, 527, 1193, 541, 2959, 1198, 1617, 1136, 2028],\n"," 474: [318, 50, 858, 527, 1193, 2959, 2858, 1198, 1617, 1136],\n"," 483: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 509: [318, 260, 1196, 1198, 1197, 608, 1214, 110, 1200, 3578],\n"," 578: [318, 50, 527, 1193, 593, 2959, 1617, 2028, 1197, 2762],\n"," 643: [2959, 2858, 1198, 2762, 3578, 47, 1036, 1291, 1, 150],\n"," 679: [318, 50, 527, 1193, 2571, 541, 2959, 2858, 1198, 1617],\n"," 680: [318, 50, 858, 527, 1193, 593, 541, 2959, 1198, 1617],\n"," 691: [50, 858, 1193, 541, 2959, 2858, 1617, 2762, 1214, 1200],\n"," 702: [50, 858, 2571, 2959, 2858, 1198, 1617, 2028, 1197, 2762],\n"," 708: [318, 527, 1193, 593, 2959, 1196, 2858, 1198, 1617, 1136],\n"," 730: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 751: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 773: [318, 50, 858, 527, 1193, 2959, 1198, 1617, 2028, 608],\n"," 803: [50, 527, 2571, 2959, 1617, 1136, 1197, 3578, 47, 1],\n"," 809: [318, 858, 1193, 593, 2571, 2959, 1198, 1136, 2028, 1197],\n"," 820: [318, 527, 1198, 1617, 608, 2762, 457, 34, 590, 588],\n"," 824: [318, 50, 527, 2959, 2858, 1198, 1617, 2028, 296, 2762],\n"," 863: [858, 260, 1193, 541, 2959, 1196, 1198, 1136, 1197, 2762],\n"," 865: [858, 527, 1193, 541, 1198, 1617, 1136, 2028, 608, 2762],\n"," 867: [1193, 593, 2762, 1214, 47, 1036, 32, 1265, 357, 539],\n"," 911: [318, 50, 858, 527, 1193, 593, 541, 2959, 1617, 1136],\n"," 915: [318, 858, 527, 1193, 2959, 1196, 1198, 1617, 1136, 296],\n"," 939: [50, 858, 527, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 946: [318, 527, 1193, 541, 2959, 2858, 1136, 2028, 296, 2762],\n"," 954: [318, 50, 858, 527, 1193, 593, 541, 2858, 1198, 1617],\n"," 957: [2762, 3578, 2396, 733, 364, 34, 588, 595, 349, 357],\n"," 971: [527, 1193, 541, 2762, 1214, 1200, 3578, 47, 1036, 1291],\n"," 986: [858, 260, 1193, 2571, 2959, 1196, 2858, 1198, 1617, 1136],\n"," 992: [50, 858, 527, 1193, 541, 2959, 2858, 1198, 1617, 1136],\n"," 92: [50, 858, 1193, 593, 541, 2959, 1617, 1136, 1197, 296],\n"," 107: [318, 50, 1193, 593, 2959, 2858, 1198, 1136, 1197, 608],\n"," 131: [318, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 138: [858, 527, 1193, 1197, 608, 1291, 1, 457, 150, 2396],\n"," 145: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 183: [50, 858, 2571, 541, 2959, 2858, 1617, 1197, 608, 296],\n"," 209: [318, 50, 858, 527, 1193, 2571, 541, 2959, 1196, 2858],\n"," 230: [318, 858, 1193, 2571, 1198, 2762, 47, 1036, 1291, 1210],\n"," 263: [1617, 2028, 356, 150, 733, 34, 1073, 595, 357, 25],\n"," 305: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 314: [50, 2571, 2959, 1197, 608, 1214, 1200, 47, 1036, 1291],\n"," 319: [318, 50, 858, 527, 1193, 2959, 2858, 1198, 1617, 1136],\n"," 325: [527, 260, 593, 2571, 541, 2959, 1196, 2858, 1617, 2028],\n"," 341: [50, 1193, 541, 1136, 2028, 1197, 608, 2762, 3578, 47],\n"," 471: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 488: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 495: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 532: [318, 527, 1193, 593, 541, 2959, 1136, 1197, 608, 1214],\n"," 564: [527, 593, 2571, 541, 2959, 2858, 1136, 2028, 1197, 2762],\n"," 574: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 603: [50, 260, 1193, 593, 1198, 1617, 1197, 2762, 3578, 47],\n"," 674: [318, 50, 858, 527, 2959, 2858, 1198, 1617, 1136, 2028],\n"," 753: [50, 858, 527, 1193, 2571, 541, 2959, 1196, 1617, 1136],\n"," 810: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 830: [318, 50, 2571, 541, 2959, 1617, 1136, 608, 2762, 1214],\n"," 841: [318, 50, 858, 527, 593, 2959, 2858, 1198, 1617, 1136],\n"," 856: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n"," 921: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 933: [858, 527, 1193, 2858, 1136, 1197, 608, 2762, 110, 3578],\n"," 976: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 37: [858, 527, 260, 1193, 541, 1196, 2858, 1198, 1617, 1197],\n"," 83: [318, 50, 527, 593, 2571, 2959, 2858, 1617, 2028, 296],\n"," 248: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 387: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 428: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 451: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 2858],\n"," 584: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 874: [318, 50, 858, 527, 541, 1617, 608, 1214, 1200, 1036],\n"," 995: [50, 858, 527, 260, 593, 2571, 541, 2959, 1196, 2858],\n"," 10: [318, 50, 858, 260, 2571, 2959, 1196, 2858, 1198, 1136],\n"," 19: [593, 2571, 2959, 2858, 1617, 2028, 296, 2762, 1214, 1200],\n"," 41: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 43: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 44: [858, 260, 1193, 593, 2571, 541, 2959, 1196, 1198, 1617],\n"," 45: [318, 527, 1193, 541, 2959, 1136, 1197, 296, 1214, 3578],\n"," 51: [318, 50, 2571, 541, 2959, 1196, 1198, 1136, 1197, 110],\n"," 56: [318, 2959, 1197, 608, 2762, 1200, 47, 1240, 457, 150],\n"," 61: [50, 858, 260, 2571, 541, 2959, 1196, 1198, 1136, 2028],\n"," 68: [318, 50, 858, 527, 593, 2959, 1196, 1198, 1136, 2028],\n"," 69: [50, 858, 260, 593, 2571, 541, 2959, 1196, 1198, 1617],\n"," 78: [50, 593, 3578, 47, 1036, 1291, 1, 457, 733, 364],\n"," 110: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 115: [50, 858, 260, 593, 2571, 541, 2959, 1196, 1198, 1617],\n"," 129: [318, 50, 858, 527, 1193, 593, 2571, 541, 1196, 1198],\n"," 150: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 168: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 169: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 178: [50, 858, 2571, 541, 2959, 2858, 1198, 1617, 2028, 1197],\n"," 186: [318, 858, 527, 1193, 2959, 1196, 2858, 1136, 2028, 1197],\n"," 201: [318, 260, 1193, 2571, 541, 2959, 1196, 1198, 1136, 1197],\n"," 239: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 256: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 257: [318, 50, 527, 1193, 593, 541, 2959, 1196, 2858, 1617],\n"," 272: [318, 260, 1193, 593, 2571, 541, 1196, 1198, 1617, 1136],\n"," 279: [50, 858, 1193, 541, 2858, 1197, 608, 457, 150, 2396],\n"," 280: [318, 50, 858, 260, 1193, 593, 541, 2959, 1196, 1198],\n"," 285: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 298: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 301: [1193, 2959, 1617, 2028, 1197, 1214, 110, 1200, 3578, 47],\n"," 304: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 333: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 334: [318, 50, 858, 527, 1193, 593, 541, 2959, 2858, 1617],\n"," 338: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 350: [858, 527, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 353: [318, 858, 527, 260, 1193, 2858, 1198, 1617, 1136, 1197],\n"," 378: [318, 50, 527, 1193, 593, 2571, 541, 2959, 2858, 1198],\n"," 386: [50, 1193, 2571, 541, 1136, 1197, 47, 32, 2716, 588],\n"," 397: [50, 260, 541, 1196, 1198, 1617, 1136, 1197, 608, 1214],\n"," 420: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 439: [318, 50, 858, 260, 593, 2571, 541, 2959, 1196, 2858],\n"," 449: [318, 858, 1193, 541, 1198, 1617, 1136, 2028, 608, 296],\n"," 478: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 487: [858, 527, 260, 1193, 593, 541, 1196, 1198, 1617, 1136],\n"," 489: [593, 2571, 541, 2959, 1196, 2858, 1198, 1617, 2028, 1197],\n"," 500: [50, 858, 260, 1193, 2571, 2959, 1196, 2858, 1198, 1136],\n"," 510: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 521: [527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 522: [50, 527, 2571, 2959, 2858, 1617, 2028, 2762, 1200, 3578],\n"," 527: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 529: [318, 50, 858, 1193, 593, 2571, 2959, 1196, 2858, 1198],\n"," 535: [2858, 1617, 2762, 1214, 1200, 1240, 457, 2396, 32, 1270],\n"," 550: [593, 2571, 2959, 2028, 1197, 110, 1200, 3578, 47, 1036],\n"," 560: [858, 260, 2571, 541, 1196, 1198, 2028, 1197, 1214, 110],\n"," 573: [858, 260, 1193, 541, 2959, 1196, 1198, 1136, 1197, 296],\n"," 579: [858, 1193, 1617, 2028, 1197, 608, 110, 1200, 1, 1240],\n"," 582: [2571, 541, 2959, 2858, 1136, 1197, 2762, 3578, 47, 1036],\n"," 583: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 587: [50, 858, 2571, 541, 2959, 2858, 1198, 1617, 2028, 1197],\n"," 596: [50, 593, 2571, 541, 2959, 1197, 296, 1214, 110, 3578],\n"," 602: [318, 50, 527, 1193, 2571, 541, 2959, 1196, 2858, 1617],\n"," 618: [858, 260, 1193, 541, 2959, 1196, 1198, 1136, 1197, 296],\n"," 624: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 627: [527, 260, 1193, 541, 2959, 1196, 1198, 1617, 1136, 1197],\n"," 635: [318, 50, 858, 260, 1193, 2571, 2959, 1196, 1198, 1617],\n"," 639: [50, 858, 527, 260, 1193, 2571, 541, 1196, 2858, 1198],\n"," 640: [50, 527, 260, 1193, 593, 1617, 1136, 1197, 608, 296],\n"," 642: [527, 1198, 110, 733, 364, 1073, 588, 595, 349, 380],\n"," 649: [318, 50, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 652: [318, 50, 858, 260, 593, 2571, 541, 2959, 1196, 2858],\n"," 662: [527, 2571, 2959, 1198, 1136, 2762, 1200, 3578, 47, 1036],\n"," 671: [318, 2571, 2959, 1197, 110, 1200, 3578, 47, 1036, 1210],\n"," 675: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 684: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 703: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 712: [50, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 726: [318, 50, 260, 1193, 2571, 541, 2959, 2858, 1136, 2028],\n"," 727: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 744: [50, 527, 260, 2571, 2959, 1196, 2858, 1617, 1136, 608],\n"," 746: [50, 858, 260, 1193, 2571, 2959, 1196, 1198, 1136, 2028],\n"," 761: [858, 527, 260, 1193, 541, 2959, 1196, 1617, 2028, 608],\n"," 765: [318, 50, 527, 541, 2959, 1196, 1198, 1136, 1197, 3578],\n"," 766: [858, 527, 593, 541, 2959, 1617, 1136, 608, 296, 2762],\n"," 771: [50, 858, 1193, 541, 2959, 2858, 1136, 1197, 296, 2762],\n"," 776: [318, 527, 1193, 2571, 2959, 1196, 1617, 1136, 1197, 608],\n"," 797: [50, 858, 527, 260, 2571, 541, 2959, 1196, 2858, 1198],\n"," 812: [1193, 2571, 541, 2959, 1196, 2858, 1198, 1617, 1136, 2028],\n"," 815: [318, 50, 527, 1193, 541, 2959, 2858, 1617, 1136, 1197],\n"," 818: [858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 821: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 822: [858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n"," 831: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 834: [858, 260, 1193, 541, 1198, 1617, 1136, 296, 1214, 110],\n"," 837: [858, 527, 1193, 541, 1196, 1617, 2028, 2762, 1200, 47],\n"," 839: [318, 50, 858, 1193, 2571, 541, 2959, 1196, 2858, 1617],\n"," 840: [318, 2571, 2959, 2858, 2762, 3578, 47, 1036, 589, 34],\n"," 851: [318, 50, 527, 593, 2959, 2858, 1617, 2028, 608, 1214],\n"," 855: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 857: [318, 50, 858, 527, 260, 1193, 541, 2959, 2858, 1198],\n"," 868: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 1198, 1136],\n"," 904: [50, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 905: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 906: [318, 541, 1198, 1214, 110, 1200, 3578, 47, 1036, 1291],\n"," 924: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1198],\n"," 925: [50, 527, 1193, 2571, 541, 1196, 2858, 1617, 2028, 608],\n"," 927: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 940: [318, 858, 527, 1193, 593, 541, 2959, 1196, 1198, 1617],\n"," 948: [260, 1193, 541, 2959, 1196, 1136, 1197, 1214, 1200, 3578],\n"," 953: [318, 50, 858, 527, 1193, 593, 2959, 2858, 1198, 1617],\n"," 966: [318, 50, 858, 527, 593, 1198, 2028, 608, 2762, 3578],\n"," 967: [50, 858, 527, 260, 541, 1196, 1198, 1617, 1136, 2028],\n"," 979: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 980: [318, 527, 1193, 2571, 1196, 1198, 1617, 2028, 1197, 110],\n"," 983: [50, 527, 260, 1193, 593, 541, 1196, 1617, 2028, 608],\n"," 984: [50, 527, 260, 2571, 541, 2858, 1198, 1617, 1136, 1197],\n"," 991: [858, 1193, 593, 2571, 541, 2959, 2858, 1617, 2028, 608],\n"," 1009: [50, 858, 527, 260, 593, 541, 2959, 1196, 1198, 1617],\n"," 1011: [318, 858, 527, 2571, 2959, 2858, 1197, 2762, 110, 3578],\n"," 1014: [318, 50, 1193, 2571, 2959, 1196, 1198, 1136, 1197, 2762],\n"," 1021: [318, 50, 527, 1193, 541, 1617, 1136, 608, 296, 110],\n"," 1030: [318, 50, 527, 260, 1193, 541, 2959, 1196, 2858, 1617],\n"," 1033: [858, 1193, 2571, 541, 2959, 2858, 1617, 608, 1214, 3578],\n"," 1039: [1193,\n"," 2571,\n"," 2959,\n"," 1196,\n"," 2858,\n"," 1198,\n"," 1136,\n"," 1197,\n"," 2762,\n"," 1214],\n"," 1040: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 1053: [318, 50, 858, 527, 1193, 593, 2959, 1617, 1136, 2028],\n"," 704: [318, 858, 527, 1193, 593, 2858, 1198, 1617, 1136, 1197],\n"," 934: [318, 50, 858, 527, 1193, 593, 2571, 2959, 1196, 2858],\n"," 42: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 73: [527, 1193, 1617, 1136, 1197, 1214, 110, 3578, 1291, 1210],\n"," 82: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n"," 159: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 161: [858, 1193, 1617, 2028, 1036, 356, 457, 150, 2396, 32],\n"," 192: [318, 260, 1196, 1198, 2028, 1197, 2762, 110, 1200, 1036],\n"," 216: [858, 527, 2959, 1617, 2028, 608, 296, 1214, 1200, 3578],\n"," 219: [318, 50, 858, 593, 2571, 541, 1196, 1198, 1617, 1136],\n"," 290: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 379: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n"," 389: [50, 858, 260, 1193, 541, 1196, 1198, 1136, 1197, 608],\n"," 400: [318, 858, 527, 260, 1193, 541, 1196, 1198, 1136, 1197],\n"," 462: [858, 527, 2571, 541, 2959, 1196, 2858, 1198, 1617, 1136],\n"," 507: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 600: [318, 50, 527, 260, 1193, 593, 2571, 541, 1196, 1198],\n"," 721: [50, 858, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 793: [318, 50, 858, 527, 1193, 593, 541, 2959, 2858, 1198],\n"," 912: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 932: [318, 50, 858, 527, 1193, 2571, 541, 2959, 1196, 2858],\n"," 949: [50, 1193, 593, 541, 1198, 608, 1214, 1200, 47, 1036],\n"," 1025: [50, 527, 1193, 593, 541, 2959, 1617, 296, 2762, 3578],\n"," 46: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 74: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 342: [318, 50, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 508: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 2858],\n"," 580: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 774: [527, 260, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n"," 783: [50, 858, 527, 1193, 2959, 2858, 1617, 2028, 1197, 296],\n"," 1002: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 1023: [318, 50, 858, 1193, 1617, 1136, 2028, 1197, 608, 296],\n"," 1048: [858, 527, 260, 1193, 541, 1617, 1136, 1197, 608, 1214],\n"," 23: [318, 858, 1193, 2571, 541, 2959, 1196, 2858, 1198, 1617],\n"," 96: [318, 2959, 47, 356, 150, 1270, 733, 364, 1073, 588],\n"," 124: [318, 50, 858, 527, 593, 2959, 2858, 1617, 1197, 296],\n"," 136: [50, 527, 260, 593, 2571, 541, 2959, 1196, 2858, 1617],\n"," 148: [318, 858, 527, 1193, 593, 2571, 2959, 2858, 1198, 1617],\n"," 189: [318, 50, 858, 527, 1193, 2571, 2959, 1196, 2858, 1617],\n"," 213: [318, 858, 260, 1193, 541, 2959, 1198, 1136, 1197, 110],\n"," 243: [318, 50, 527, 1193, 593, 541, 1617, 1136, 1197, 296],\n"," 323: [318, 50, 2571, 541, 2959, 2858, 2028, 2762, 110, 3578],\n"," 352: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 429: [318, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 625: [318, 50, 858, 527, 1193, 2571, 541, 2959, 2858, 1198],\n"," 808: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 843: [318, 50, 593, 2571, 2959, 2858, 1617, 2028, 608, 296],\n"," 847: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 963: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 975: [318, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 998: [318, 50, 858, 527, 260, 1193, 593, 541, 1196, 2858],\n"," 75: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 427: [1193, 541, 2959, 2858, 1136, 1197, 608, 296, 110, 356],\n"," 466: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 801: [318, 50, 858, 2858, 1617, 608, 2762, 1036, 1240, 356],\n"," 848: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 888: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 191: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 227: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 245: [318, 50, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 380: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 408: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 668: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 747: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 754: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n"," 11: [318, 50, 858, 527, 1193, 593, 541, 2959, 2858, 1136],\n"," 16: [318, 50, 858, 527, 1193, 593, 2571, 2959, 2858, 1198],\n"," 81: [318, 50, 858, 527, 260, 593, 1196, 2858, 1198, 1617],\n"," 86: [318, 50, 527, 260, 1193, 593, 541, 2959, 2858, 1617],\n"," 97: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 151: [858, 1193, 593, 541, 2959, 2858, 1198, 1617, 2028, 1197],\n"," 235: [527, 1196, 1136, 2028, 1197, 608, 2762, 1214, 110, 1200],\n"," 251: [318, 50, 527, 1193, 2571, 2959, 2858, 1617, 1136, 2028],\n"," 258: [318, 50, 858, 527, 593, 2571, 541, 2959, 2858, 1198],\n"," 278: [318, 50, 858, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 388: [318, 858, 527, 260, 1193, 593, 541, 2959, 1196, 2858],\n"," 551: [318, 50, 1193, 2571, 541, 2959, 2858, 1617, 1136, 1197],\n"," 606: [318, 50, 527, 1193, 593, 541, 2959, 2858, 1617, 1136],\n"," 614: [318, 50, 527, 1193, 593, 2571, 541, 2959, 2858, 1617],\n"," 681: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 686: [318, 527, 1193, 2959, 296, 110, 47, 1, 356, 150],\n"," 711: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 718: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 873: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n"," 962: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 985: [318, 50, 858, 527, 1193, 593, 2571, 2959, 2858, 1198],\n"," 993: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 184: [318, 858, 527, 260, 1193, 593, 2571, 541, 1196, 2858],\n"," 246: [318, 50, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 373: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 430: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 534: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 805: [318, 50, 858, 527, 1193, 541, 2959, 2858, 1617, 2028],\n"," 58: [858, 1193, 2959, 1196, 1136, 608, 1214, 1200, 3578, 47],\n"," 112: [2571, 2959, 2858, 1617, 2028, 2762, 3578, 356, 589, 2396],\n"," 367: [50, 527, 260, 593, 2571, 541, 2959, 1196, 2858, 1198],\n"," 548: [50, 858, 527, 1193, 593, 2571, 541, 2959, 2858, 1617],\n"," 791: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 909: [318, 50, 858, 260, 1193, 593, 541, 1196, 1617, 1136],\n"," 1041: [1193, 541, 1136, 1197, 608, 1240, 356, 457, 150, 32],\n"," 13: [318, 858, 527, 260, 593, 2571, 541, 2959, 2858, 1198],\n"," 869: [858, 260, 1193, 2571, 541, 1196, 2858, 1198, 1617, 1136],\n"," 415: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 477: [2858, 608, 110, 3578, 1, 1240, 356, 457, 589, 150],\n"," 569: [318, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 694: [318, 50, 858, 527, 2571, 541, 2959, 1196, 1198, 1136],\n"," 729: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 741: [527, 260, 1193, 541, 2959, 1198, 1136, 2028, 1197, 1214],\n"," 965: [858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 17: [318, 527, 2571, 541, 2959, 1196, 2858, 1198, 1617, 1136],\n"," 40: [858, 260, 541, 2959, 1198, 1136, 2028, 1197, 2762, 1214],\n"," 114: [318, 50, 527, 593, 2571, 541, 2959, 2858, 1198, 1617],\n"," 137: [858, 260, 1193, 541, 1617, 1136, 1197, 608, 1214, 110],\n"," 153: [318, 50, 1193, 593, 2571, 541, 1196, 2858, 1198, 1617],\n"," 211: [318, 527, 1193, 2571, 541, 1136, 296, 2762, 3578, 47],\n"," 286: [318, 858, 527, 1193, 1617, 1136, 1197, 608, 296, 2762],\n"," 330: [318, 50, 858, 1193, 593, 541, 1198, 1617, 1136, 2028],\n"," 336: [318, 50, 858, 527, 1193, 541, 2959, 2858, 1198, 1617],\n"," 372: [318, 50, 858, 527, 260, 1193, 593, 541, 2858, 1617],\n"," 376: [318, 50, 858, 527, 2959, 1196, 2858, 1198, 1136, 1197],\n"," 412: [50, 527, 260, 1193, 541, 2959, 1198, 1617, 1136, 1197],\n"," 447: [858, 1193, 541, 2959, 1196, 2858, 1198, 2028, 2762, 1214],\n"," 467: [858, 260, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n"," 490: [50, 260, 1193, 593, 2571, 541, 2959, 2858, 1617, 1136],\n"," 518: [50, 858, 541, 2959, 2858, 1198, 1617, 1136, 1197, 296],\n"," 608: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n"," 619: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 644: [318, 50, 858, 527, 1193, 2959, 2858, 1617, 1136, 1197],\n"," 667: [50, 527, 1193, 593, 2571, 541, 2959, 2858, 1136, 1197],\n"," 698: [858, 260, 541, 608, 1, 356, 457, 150, 2396, 1270],\n"," 709: [318, 50, 527, 1193, 593, 541, 2959, 1136, 608, 296],\n"," 728: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 2858],\n"," 733: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n"," 777: [318, 858, 527, 1193, 593, 2571, 541, 2959, 1196, 1198],\n"," 813: [318, 50, 527, 1193, 593, 541, 2959, 1617, 608, 296],\n"," 832: [318, 50, 858, 527, 593, 2571, 2959, 2858, 1198, 1617],\n"," 893: [50, 858, 527, 260, 1193, 593, 541, 2959, 2858, 1617],\n"," 901: [50, 527, 260, 1193, 593, 541, 2959, 1196, 2858, 1198],\n"," 937: [858, 260, 1193, 593, 2571, 1196, 2858, 1198, 1136, 2028],\n"," 947: [318, 50, 858, 527, 593, 541, 2959, 2858, 1617, 1136],\n"," 362: [858, 1193, 541, 2858, 1617, 1136, 2028, 608, 296, 1214],\n"," 375: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 599: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 632: [318, 858, 527, 260, 1193, 541, 2959, 1198, 1617, 1136],\n"," 779: [318, 50, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 1022: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 1034: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 819: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 2: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 3: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 104: [50, 527, 541, 2959, 2858, 1136, 2028, 608, 296, 2762],\n"," 105: [318, 50, 858, 527, 593, 2571, 541, 2959, 2858, 1617],\n"," 218: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 1198, 1617],\n"," 250: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 313: [318, 50, 858, 527, 260, 593, 2571, 541, 2959, 1196],\n"," 377: [260, 593, 2959, 1198, 1617, 1136, 2028, 1197, 608, 2762],\n"," 413: [318, 50, 527, 593, 2571, 2959, 1617, 2028, 608, 2762],\n"," 576: [50, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 1198],\n"," 586: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 595: [318, 50, 1193, 2959, 1617, 2028, 1200, 3578, 47, 1210],\n"," 610: [318, 50, 2571, 541, 2959, 1196, 2858, 1197, 608, 296],\n"," 613: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 637: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 663: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 740: [50, 858, 527, 1193, 541, 2959, 2858, 1617, 1197, 296],\n"," 787: [318, 50, 260, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 804: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 866: [1193, 2571, 541, 2959, 2858, 1617, 2028, 2762, 3578, 1036],\n"," 883: [318, 50, 858, 527, 260, 593, 2571, 541, 2959, 1196],\n"," 941: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 1007: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 817: [50, 858, 260, 593, 2571, 541, 2959, 1198, 1617, 1136],\n"," 6: [318, 50, 527, 593, 541, 2959, 2858, 1617, 1136, 608],\n"," 7: [318, 858, 527, 1193, 2571, 2959, 2858, 1198, 1136, 2028],\n"," 14: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 2858],\n"," 24: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 57: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 60: [2571, 2959, 1196, 2858, 1198, 1617, 2028, 1197, 2762, 110],\n"," 64: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 84: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 90: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 98: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 113: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 120: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 123: [318, 50, 858, 593, 2571, 541, 2959, 1196, 1198, 1617],\n"," 157: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 194: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 200: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 204: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 205: [318, 50, 527, 2571, 2959, 1196, 2858, 1198, 1617, 2028],\n"," 225: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 229: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 237: [318, 50, 858, 527, 541, 2959, 2858, 1136, 2028, 608],\n"," 242: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 252: [318, 50, 858, 593, 2571, 541, 2959, 1196, 1198, 1617],\n"," 266: [318, 50, 858, 527, 1193, 593, 541, 2959, 1196, 1198],\n"," 270: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 282: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 297: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 309: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 316: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 327: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 356: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 393: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 394: [527, 1193, 593, 2571, 541, 1136, 2762, 1214, 110, 1200],\n"," 395: [858, 527, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n"," 399: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 401: [50, 1193, 2571, 2959, 1196, 1617, 1136, 2028, 296, 110],\n"," 402: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 405: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 417: [318, 50, 858, 527, 1193, 593, 541, 2959, 1196, 2858],\n"," 422: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 437: [858, 1193, 2959, 1198, 2028, 110, 1200, 3578, 1036, 1291],\n"," 455: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 461: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 473: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 484: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 499: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 526: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 537: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 542: [318, 527, 593, 2571, 541, 2959, 2858, 2028, 1197, 608],\n"," 557: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 563: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 570: [50, 858, 1193, 593, 2571, 541, 2959, 1196, 2858, 1198],\n"," 575: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 594: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 607: [527, 1193, 2571, 541, 2959, 1196, 2858, 1617, 1136, 2028],\n"," 631: [318, 50, 858, 2571, 541, 2959, 1196, 2858, 1617, 1136],\n"," 651: [318, 50, 593, 2571, 2959, 1196, 2028, 1197, 296, 2762],\n"," 664: [318, 50, 858, 527, 2571, 541, 2959, 1196, 2858, 1198],\n"," 685: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 690: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 696: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 724: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 738: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 762: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 763: [318, 50, 858, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 770: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 796: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 800: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 829: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 836: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 882: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 900: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 903: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 914: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 918: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 920: [318, 50, 527, 1193, 2571, 541, 2959, 1196, 2858, 1198],\n"," 945: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 950: [318, 50, 858, 527, 2571, 2959, 1617, 2028, 1197, 2762],\n"," 952: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 982: [318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858],\n"," 989: [318, 593, 2959, 1197, 2762, 1214, 110, 1200, 47, 1036],\n"," 1016: [50, 858, 593, 2571, 541, 2959, 1196, 1198, 1617, 1136],\n"," 1019: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 1044: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 1051: [318, 50, 858, 527, 1193, 593, 2571, 541, 2959, 1196],\n"," 917: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 951: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 997: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 174: [50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858, 1136],\n"," 676: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 764: [50, 858, 260, 1193, 2571, 541, 1196, 1198, 1617, 1136],\n"," 1052: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n"," 5: [318, 50, 260, 1193, 2571, 2959, 1196, 2858, 1198, 1617],\n"," 27: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 33: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 134: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 142: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 156: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 167: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 177: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 224: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 269: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 312: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 360: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 385: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 411: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 464: [318, 50, 858, 527, 260, 593, 2571, 541, 2959, 1196],\n"," 568: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 612: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 630: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 706: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 737: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 749: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 756: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 811: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 853: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 884: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 955: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 1032: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 1043: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 370: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 670: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 923: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 931: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 969: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 12: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n"," 597: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 195: [318, 50, 260, 593, 2571, 541, 2959, 1196, 1198, 1136],\n"," 337: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 910: [527, 260, 1193, 2571, 541, 1196, 1198, 2028, 1197, 608],\n"," 63: [318, 50, 260, 593, 2571, 541, 2959, 1196, 1198, 1136],\n"," 70: [50, 260, 593, 2571, 2959, 1196, 2858, 1136, 2028, 1197],\n"," 99: [50, 260, 593, 2571, 2959, 1196, 2858, 1198, 2028, 1197],\n"," 121: [260, 2959, 2858, 2028, 2762, 1214, 110, 3578, 47, 1036],\n"," 130: [318, 260, 2571, 2959, 1196, 1617, 2028, 1197, 2762, 1214],\n"," 244: [318, 260, 2571, 2959, 1196, 1198, 1617, 2028, 296, 2762],\n"," 291: [318, 50, 260, 593, 2571, 541, 2959, 2858, 1198, 1617],\n"," 335: [318, 50, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 361: [318, 527, 260, 1193, 593, 2571, 541, 2959, 1196, 1198],\n"," 470: [260, 1193, 1196, 2028, 1197, 110, 3578, 1036, 1291, 1210],\n"," 497: [50, 260, 1193, 541, 2959, 2858, 1198, 1617, 1136, 2028],\n"," 620: [318, 50, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 648: [527, 260, 2571, 2959, 1198, 1136, 1197, 296, 2762, 1214],\n"," 666: [318, 50, 527, 260, 593, 1617, 2028, 1197, 608, 2762],\n"," 710: [50, 260, 593, 2571, 541, 2959, 1196, 1136, 2028, 1197],\n"," 794: [318, 50, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 854: [318, 50, 260, 1193, 2571, 541, 1196, 1198, 1617, 1136],\n"," 861: [318, 50, 527, 260, 1193, 593, 541, 2959, 1196, 2858],\n"," 87: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1198],\n"," 317: [318, 50, 858, 527, 260, 593, 2571, 2959, 1196, 2858],\n"," 324: [318, 50, 858, 527, 260, 1193, 593, 1196, 2858, 1198],\n"," 502: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n"," 559: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 973: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 1015: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 1017: [318, 50, 858, 527, 260, 1193, 593, 2571, 2959, 2858],\n"," 85: [318, 858, 260, 1193, 541, 2959, 1196, 1198, 1617, 1136],\n"," 306: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 653: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 371: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 566: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 331: [858, 527, 260, 1193, 593, 541, 1196, 1198, 1617, 1136],\n"," 665: [318, 50, 858, 527, 260, 593, 2571, 2959, 1196, 1198],\n"," 872: [318, 858, 527, 260, 593, 2571, 541, 2959, 1196, 2858],\n"," 879: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 486: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 864: [318, 50, 858, 260, 1193, 593, 2571, 541, 1196, 1198],\n"," 52: [318, 858, 527, 260, 593, 2571, 541, 2959, 1196, 2858],\n"," 288: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 9: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 117: [318, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 220: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 544: [318, 858, 527, 260, 1193, 593, 541, 2858, 1198, 1617],\n"," 999: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 458: [318, 50, 858, 527, 260, 593, 2571, 541, 2959, 1196],\n"," 974: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 546: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 55: [318, 50, 858, 527, 260, 593, 2571, 541, 2959, 1196],\n"," 363: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2858],\n"," 445: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 492: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 234: [318, 858, 260, 1193, 593, 541, 1196, 1198, 1136, 2028],\n"," 1027: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n"," 140: [858, 260, 2571, 541, 2959, 1196, 1198, 1617, 1136, 2028],\n"," 926: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 781: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 825: [318, 50, 858, 527, 260, 2571, 541, 2959, 1196, 2858],\n"," 913: [318, 50, 858, 260, 1193, 2571, 541, 2959, 1196, 2858],\n"," 453: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 540: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 66: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n"," 185: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 222: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 498: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 994: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 165: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 202: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 180: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 93: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 261: [318, 50, 858, 527, 260, 593, 541, 2959, 1196, 2858],\n"," 435: [318, 50, 858, 527, 260, 1193, 593, 1196, 2858, 1198],\n"," 322: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 238: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 425: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 512: [50, 858, 260, 1193, 593, 2571, 541, 2959, 1196, 1198],\n"," 725: [318, 50, 858, 527, 260, 1193, 593, 541, 1196, 1198],\n"," 732: [318, 50, 858, 527, 260, 593, 2571, 541, 2959, 1196],\n"," 108: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 592: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 443: [50, 858, 527, 260, 1193, 2571, 541, 2959, 1196, 1198],\n"," 916: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n"," 736: [318, 50, 858, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 961: [318, 50, 858, 260, 593, 2571, 541, 2959, 1196, 1136],\n"," 1012: [318, 50, 858, 527, 260, 1193, 2571, 541, 2959, 1196],\n"," 515: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 978: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 28: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 475: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n"," 598: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 943: [318, 50, 858, 527, 260, 593, 2571, 541, 2959, 1196],\n"," 520: [50, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 697: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 849: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 1003: [318, 50, 858, 527, 260, 1193, 593, 541, 2959, 1196],\n"," 705: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 48: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 29: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 231: [318, 858, 527, 260, 1193, 593, 2571, 541, 2959, 1196],\n"," 699: [858, 527, 260, 1193, 593, 2571, 541, 1196, 1198, 1617],\n"," 448: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 750: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 1196],\n"," 782: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 860: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 768: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 127: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959],\n"," 894: [318, 50, 858, 527, 260, 1193, 593, 2571, 541, 2959]})"]},"metadata":{},"execution_count":7}],"source":["from collections import defaultdict\n","\n","# 각 사용자에 대한 추천 영화는 해당 사용자가 아직 평가하지 않은 영화 중에서 평갓값이 높은 10작품으로 한다\n","# 단, 평가 건수가 작으면 노이즈가 크므로 minimum_num_rating건 이상 평가가 있는 영화로 필터링한다\n","pred_user2items = defaultdict(list)\n","user_watched_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","movie_stats = movielens_train.groupby(\"movie_id\").agg({\"rating\": [np.size, np.mean]})\n","atleast_flg = movie_stats[\"rating\"][\"size\"] >= minimum_num_rating\n","movies_sorted_by_rating = (\n"," movie_stats[atleast_flg].sort_values(by=(\"rating\", \"mean\"), ascending=False).index.tolist()\n",")\n","\n","for user_id in movielens_train.user_id.unique():\n"," for movie_id in movies_sorted_by_rating:\n"," if movie_id not in user_watched_movies[user_id]:\n"," pred_user2items[user_id].append(movie_id)\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","pred_user2items"]},{"cell_type":"code","execution_count":8,"id":"f242af0f","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":564},"id":"f242af0f","executionInfo":{"status":"ok","timestamp":1672119703182,"user_tz":-540,"elapsed":29,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"dcaede65-6ebd-4874-c57b-35af1e18a837"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","6150 2 648 2.0 868244699 \n","6531 2 733 3.0 868244562 \n","6813 2 736 3.0 868244698 \n","7113 2 780 3.0 868244698 \n","7506 2 786 3.0 868244562 \n","7661 2 802 2.0 868244603 \n","7779 2 858 2.0 868245645 \n","8077 2 1049 3.0 868245920 \n","8127 2 1073 3.0 868244562 \n","8381 2 1210 4.0 868245644 \n","8771 2 1356 3.0 868244603 \n","9097 2 1544 3.0 868245920 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","6150 Mission: Impossible (1996) \n","6531 Rock, The (1996) \n","6813 Twister (1996) \n","7113 Independence Day (a.k.a. ID4) (1996) \n","7506 Eraser (1996) \n","7661 Phenomenon (1996) \n","7779 Godfather, The (1972) \n","8077 Ghost and the Darkness, The (1996) \n","8127 Willy Wonka & the Chocolate Factory (1971) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","8771 Star Trek: First Contact (1996) \n","9097 Lost World: Jurassic Park, The (Jurassic Park ... \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","6150 [Action, Adventure, Mystery, Thriller] \n","6531 [Action, Adventure, Thriller] \n","6813 [Action, Adventure, Romance, Thriller] \n","7113 [Action, Adventure, Sci-Fi, War] \n","7506 [Action, Drama, Thriller] \n","7661 [Drama, Romance] \n","7779 [Crime, Drama] \n","8077 [Action, Adventure] \n","8127 [Children, Comedy, Fantasy, Musical] \n","8381 [Action, Adventure, Sci-Fi] \n","8771 [Action, Adventure, Sci-Fi, Thriller] \n","9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","6150 [confusing, confusing plot, memorable sequence... 12.0 \n","6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n","6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n","7113 [action, alien invasion, aliens, will smith, a... 14.0 \n","7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n","7661 [interesting concept, own, john travolta, john... 15.0 \n","7779 [oscar (best picture), marlon brando, classic,... 9.0 \n","8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n","8127 [based on a book, roald dahl, based on a book,... 20.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n","8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n","9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":8}],"source":["# user_id=2인 사용자가 학습 데이터에 평가를 부여한 영화 목록\n","movielens_train[movielens_train.user_id==2]"]},{"cell_type":"code","execution_count":9,"id":"44ab20ed","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"44ab20ed","executionInfo":{"status":"ok","timestamp":1672119703182,"user_tz":-540,"elapsed":28,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"01445057-1e2c-4c9c-ed90-5a47e8d18394"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[318, 50, 527, 1193, 593, 2571, 541, 2959, 1196, 2858]"]},"metadata":{},"execution_count":9}],"source":["pred_user2items[2]"]},{"cell_type":"code","execution_count":10,"id":"8c8b00e4","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"8c8b00e4","executionInfo":{"status":"ok","timestamp":1672119703183,"user_tz":-540,"elapsed":6,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"4b2a7509-204f-47cb-8245-b78e5dda056a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title genre \\\n","49 50 Usual Suspects, The (1995) [Crime, Mystery, Thriller] \n","315 318 Shawshank Redemption, The (1994) [Drama] \n","523 527 Schindler's List (1993) [Drama, War] \n","\n"," tag \n","49 [kevin spacey, ensemble cast, complicated, mus... \n","315 [based on a short story, directorial debut, fr... \n","523 [speilberg, drama, holocaust, steven spielberg... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
4950Usual Suspects, The (1995)[Crime, Mystery, Thriller][kevin spacey, ensemble cast, complicated, mus...
315318Shawshank Redemption, The (1994)[Drama][based on a short story, directorial debut, fr...
523527Schindler's List (1993)[Drama, War][speilberg, drama, holocaust, steven spielberg...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":10}],"source":["# user_id=2에 대한 추천(318, 50, 527)\n","movies[movies.movie_id.isin([318, 50, 527])]"]},{"cell_type":"code","execution_count":10,"id":"9deafa9b","metadata":{"id":"9deafa9b","executionInfo":{"status":"ok","timestamp":1672119703183,"user_tz":-540,"elapsed":5,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/RF.ipynb b/chapter5/colab/RF.ipynb index 06f8fda..3e14165 100644 --- a/chapter5/colab/RF.ipynb +++ b/chapter5/colab/RF.ipynb @@ -1,4915 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "0d5889b3", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/RF.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "4935d845", - "metadata": {}, - "source": [ - "# RandomForest(회귀 모델)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "52eedd0b", - "metadata": {}, - "outputs": [], - "source": [ - "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", - "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", - "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", - "\n", - "# 데이터 다운로드와 압축 풀기\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "d3c02fa7", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", - "import pandas as pd\n", - "\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "683d7c01-91e8-4835-b9cc-332b16c13966", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_id12345678910...62000621136229362344623946280162803631136399264716
user_id
1NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
2NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
3NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
51.0NaNNaNNaNNaNNaN3.0NaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
..................................................................
1048NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1050NaN3.0NaNNaNNaN3.0NaNNaNNaN3.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
10515.0NaN3.0NaN3.0NaN4.0NaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1052NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
10535.0NaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", - "

1000 rows × 6673 columns

\n", - "
" - ], - "text/plain": [ - "movie_id 1 2 3 4 5 6 7 8 9 \\\n", - "user_id \n", - "1 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", - "2 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", - "3 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", - "4 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", - "5 1.0 NaN NaN NaN NaN NaN 3.0 NaN NaN \n", - "... ... ... ... ... ... ... ... ... ... \n", - "1048 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", - "1050 NaN 3.0 NaN NaN NaN 3.0 NaN NaN NaN \n", - "1051 5.0 NaN 3.0 NaN 3.0 NaN 4.0 NaN NaN \n", - "1052 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", - "1053 5.0 NaN NaN NaN NaN NaN NaN NaN NaN \n", - "\n", - "movie_id 10 ... 62000 62113 62293 62344 62394 62801 62803 63113 \\\n", - "user_id ... \n", - "1 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "2 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "3 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "4 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "5 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "... ... ... ... ... ... ... ... ... ... ... \n", - "1048 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "1050 3.0 ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "1051 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "1052 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "1053 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "\n", - "movie_id 63992 64716 \n", - "user_id \n", - "1 NaN NaN \n", - "2 NaN NaN \n", - "3 NaN NaN \n", - "4 NaN NaN \n", - "5 NaN NaN \n", - "... ... ... \n", - "1048 NaN NaN \n", - "1050 NaN NaN \n", - "1051 NaN NaN \n", - "1052 NaN NaN \n", - "1053 NaN NaN \n", - "\n", - "[1000 rows x 6673 columns]" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다\n", - "user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n", - "user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n", - "movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n", - "user_movie_matrix" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "1f34610c", - "metadata": {}, - "outputs": [], - "source": [ - "# 학습에 사용하는 학습용 데이터 안의 사용자와 영화의 조합을 얻는다\n", - "train_keys = movielens_train[[\"user_id\", \"movie_id\"]]\n", - "# 학습용 데이터 안의 평갓값을 학습의 정답 데이터로 얻는다\n", - "train_y = movielens_train.rating.values\n", - "\n", - "# 평갓값을 예측할 테스트용 데이터 안의 사용자와 영화의 조합을 얻는다\n", - "test_keys = movielens_test[[\"user_id\", \"movie_id\"]]\n", - "# 순위 형식의 추천 리스트 작성을 위해 학습용 데이터에 존재하는 모든 사용자와 모든 영화의 조합을 얻는다\n", - "train_all_keys = user_movie_matrix.stack(dropna=False).reset_index()[[\"user_id\", \"movie_id\"]]\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "9f5053fe", - "metadata": {}, - "outputs": [], - "source": [ - "# 특징량을 작성한다\n", - "train_x = train_keys.copy()\n", - "test_x = test_keys.copy()\n", - "train_all_x = train_all_keys.copy()" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "3b756eca", - "metadata": {}, - "outputs": [], - "source": [ - "# 학습용 데이터에 존재하는 사용자별 평갓값의 최솟값, 최댓값, 평균값\n", - "# 및, 영화별 평갓값의 최솟값, 최댓값, 평균값을 특징량으로 추가한다\n", - "aggregators = [\"min\", \"max\", \"mean\"]\n", - "user_features = movielens_train.groupby(\"user_id\").rating.agg(aggregators).to_dict()\n", - "movie_features = movielens_train.groupby(\"movie_id\").rating.agg(aggregators).to_dict()\n", - "for agg in aggregators:\n", - " train_x[f\"u_{agg}\"] = train_x[\"user_id\"].map(user_features[agg])\n", - " test_x[f\"u_{agg}\"] = test_x[\"user_id\"].map(user_features[agg])\n", - " train_all_x[f\"u_{agg}\"] = train_all_x[\"user_id\"].map(user_features[agg])\n", - " train_x[f\"m_{agg}\"] = train_x[\"movie_id\"].map(movie_features[agg])\n", - " test_x[f\"m_{agg}\"] = test_x[\"movie_id\"].map(movie_features[agg])\n", - " train_all_x[f\"m_{agg}\"] = train_all_x[\"movie_id\"].map(movie_features[agg])\n", - "# 테스트용 데이터에만 존재하는 사용자나 영화의 특징량을, 학습용 데이터 전체의 평균 평갓값으로 채운다\n", - "average_rating = train_y.mean()\n", - "test_x.fillna(average_rating, inplace=True)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3499ae5a", - "metadata": {}, - "outputs": [], - "source": [ - "import itertools\n", - "\n", - "# 영화가 특정한 genre인지 나타내는 특징량을 추가한다\n", - "movie_genres = movies[[\"movie_id\", \"genre\"]]\n", - "genres = set(list(itertools.chain(*movie_genres.genre)))\n", - "for genre in genres:\n", - " movie_genres[f\"is_{genre}\"] = movie_genres.genre.apply(lambda x: genre in x)\n", - "movie_genres.drop(\"genre\", axis=1, inplace=True)\n", - "train_x = train_x.merge(movie_genres, on=\"movie_id\")\n", - "test_x = test_x.merge(movie_genres, on=\"movie_id\")\n", - "train_all_x = train_all_x.merge(movie_genres, on=\"movie_id\")" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "eca70ebb", - "metadata": {}, - "outputs": [], - "source": [ - "# 특징량으로 사용하지 않는 정보는 삭제한다\n", - "train_x = train_x.drop(columns=[\"user_id\", \"movie_id\"])\n", - "test_x = test_x.drop(columns=[\"user_id\", \"movie_id\"])\n", - "train_all_x = train_all_x.drop(columns=[\"user_id\", \"movie_id\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "78bde7fd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "RandomForestRegressor(n_jobs=-1, random_state=0)" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from sklearn.ensemble import RandomForestRegressor as RFR\n", - "\n", - "# Random Forest를 사용한 학습\n", - "reg = RFR(n_jobs=-1, random_state=0)\n", - "reg.fit(train_x.values, train_y)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "ca01da90", - "metadata": {}, - "outputs": [], - "source": [ - "# 테스트용 데이터 안의 사용와 영화의 조합에 대해 평갓값을 예측한다\n", - "test_pred = reg.predict(test_x.values)\n", - "\n", - "movie_rating_predict = test_keys.copy()\n", - "movie_rating_predict[\"rating_pred\"] = test_pred" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "3ec280f6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "defaultdict(list,\n", - " {139: [7986, 6565, 5817, 6356, 4828, 6538, 4270, 26974, 631, 3588],\n", - " 149: [5914, 640, 555, 1672, 1570, 5996, 5928, 1326, 6689, 719],\n", - " 182: [6729,\n", - " 4956,\n", - " 5971,\n", - " 8379,\n", - " 6713,\n", - " 30894,\n", - " 5662,\n", - " 6890,\n", - " 7647,\n", - " 5090],\n", - " 215: [5598, 4626, 4679, 6286, 6279, 848, 1600, 4458, 4802, 5572],\n", - " 281: [8482, 1497, 880, 4531, 715, 748, 6583, 5472, 1483, 1992],\n", - " 326: [2211, 1084, 2393, 2269, 1643, 1711, 1336, 1186, 1156, 2334],\n", - " 351: [6312, 6058, 7458, 7117, 7523, 6008, 7340, 7836, 8485, 8369],\n", - " 357: [56949, 59037, 13, 2569, 56587, 2362, 2142, 2013, 2243, 295],\n", - " 426: [3718, 3035, 7817, 3620, 3892, 3387, 5723, 3496, 3223, 5352],\n", - " 456: [5060, 5688, 5634, 4975, 6672, 5909, 5275, 4988, 6568, 1880],\n", - " 459: [6005,\n", - " 40851,\n", - " 33903,\n", - " 42004,\n", - " 56333,\n", - " 8827,\n", - " 47810,\n", - " 42021,\n", - " 8638,\n", - " 27773],\n", - " 494: [26144,\n", - " 8722,\n", - " 7153,\n", - " 6874,\n", - " 32596,\n", - " 25850,\n", - " 8404,\n", - " 32387,\n", - " 7030,\n", - " 27773],\n", - " 517: [2770, 3423, 6333, 6250, 6772, 3468, 218, 5930, 6005, 47099],\n", - " 524: [3338, 4486, 3135, 3186, 3992, 4535, 2727, 3939, 2659, 3924],\n", - " 556: [1783, 26, 467, 58293, 82, 1215, 1719, 1135, 32011, 1265],\n", - " 588: [1938, 2898, 2010, 2478, 2454, 2824, 2529, 2381, 1873, 1809],\n", - " 589: [7704, 6375, 25850, 5668, 1661, 4701, 423, 910, 137, 393],\n", - " 590: [6281,\n", - " 5372,\n", - " 59985,\n", - " 5427,\n", - " 51088,\n", - " 8939,\n", - " 32596,\n", - " 7223,\n", - " 39381,\n", - " 53318],\n", - " 601: [335, 6330, 6423, 7150, 8873, 7075, 6569, 7381, 8746, 6314],\n", - " 621: [2043, 2443, 2906, 2412, 2103, 2455, 2342, 1985, 3008, 2492],\n", - " 634: [559, 767, 840, 1595, 1350, 661, 726, 1750, 1296, 854],\n", - " 672: [1667, 2210, 1149, 1370, 1874, 2275, 4272, 1388, 1701, 4926],\n", - " 701: [2533, 3270, 4470, 3802, 258, 1095, 31083, 1237, 4373, 500],\n", - " 719: [423, 798, 799, 833, 862, 868, 893, 909, 957, 967],\n", - " 745: [1185, 1128, 599, 3, 1759, 691, 116, 5333, 6098, 347],\n", - " 757: [1218, 58306, 60688, 521, 757, 550, 5117, 526, 1084, 515],\n", - " 775: [6914,\n", - " 8595,\n", - " 31687,\n", - " 8093,\n", - " 8363,\n", - " 8998,\n", - " 32019,\n", - " 58803,\n", - " 8831,\n", - " 6934],\n", - " 780: [4178, 4108, 6702, 4729, 5529, 4893, 4102, 4077, 5516, 4927],\n", - " 785: [605, 423, 466, 579, 801, 326, 518, 880, 270, 1086],\n", - " 788: [1885, 1081, 907, 876, 2750, 54281, 58047, 65, 553, 3436],\n", - " 870: [8578, 6914, 7840, 8927, 7834, 7115, 6898, 6897, 6896, 6893],\n", - " 987: [6214, 5114, 6927, 5881, 5302, 3760, 704, 765, 513, 57],\n", - " 988: [927, 465, 614, 246, 1615, 53956, 615, 1518, 1525, 220],\n", - " 1020: [2693,\n", - " 3208,\n", - " 2748,\n", - " 2687,\n", - " 42015,\n", - " 45852,\n", - " 3158,\n", - " 2879,\n", - " 3884,\n", - " 2920],\n", - " 1: [854, 449, 1025, 196, 802, 100, 1172, 31689, 1100, 158],\n", - " 22: [7299, 7075, 8779, 26171, 7090, 7812, 7769, 8796, 7757, 7756],\n", - " 26: [520, 4823, 4284, 4845, 3476, 5843, 38, 376, 441, 4296],\n", - " 30: [4723, 3876, 1498, 5341, 2163, 6412, 5324, 45722, 2603, 1378],\n", - " 34: [6709, 6590, 7384, 7820, 7321, 7068, 26391, 8743, 6597, 6581],\n", - " 38: [881, 4662, 250, 3827, 781, 39381, 46, 1034, 485, 135],\n", - " 50: [5412, 4591, 4595, 4598, 4599, 4610, 4611, 4612, 4614, 4619],\n", - " 53: [6002, 6503, 7215, 6508, 5792, 7211, 3173, 7209, 3196, 7201],\n", - " 54: [48043, 8939, 352, 1407, 331, 271, 3402, 27790, 4067, 4614],\n", - " 67: [2605,\n", - " 3565,\n", - " 55442,\n", - " 61262,\n", - " 54775,\n", - " 57536,\n", - " 47997,\n", - " 4433,\n", - " 3678,\n", - " 34143],\n", - " 71: [58025,\n", - " 51935,\n", - " 58299,\n", - " 47950,\n", - " 62000,\n", - " 48385,\n", - " 5459,\n", - " 52375,\n", - " 279,\n", - " 58559],\n", - " 76: [431, 378, 5, 837, 542, 235, 753, 485, 291, 555],\n", - " 88: [1574,\n", - " 1713,\n", - " 1018,\n", - " 26729,\n", - " 52717,\n", - " 1747,\n", - " 2003,\n", - " 1636,\n", - " 2194,\n", - " 1940],\n", - " 89: [7566, 7176, 7764, 8633, 7292, 7170, 8779, 7167, 7164, 7437],\n", - " 94: [4876, 4799, 5494, 5668, 5437, 6387, 5225, 6063, 4788, 4774],\n", - " 95: [61160, 58490, 862, 43871, 234, 835, 371, 785, 361, 40614],\n", - " 100: [1286, 1805, 1465, 1809, 1812, 1085, 1822, 1824, 1461, 1826],\n", - " 101: [4418,\n", - " 6993,\n", - " 8907,\n", - " 4488,\n", - " 4789,\n", - " 3968,\n", - " 3881,\n", - " 4560,\n", - " 4164,\n", - " 32076],\n", - " 102: [7739,\n", - " 7771,\n", - " 33193,\n", - " 2929,\n", - " 2889,\n", - " 4017,\n", - " 4161,\n", - " 3691,\n", - " 4160,\n", - " 5696],\n", - " 103: [3943, 3435, 4069, 3893, 4384, 3351, 3359, 3716, 3330, 4623],\n", - " 111: [6886, 8754, 33138, 33312, 19, 60069, 911, 3165, 2440, 613],\n", - " 116: [4521, 8789, 6204, 7323, 6346, 3189, 4001, 6441, 8782, 4009],\n", - " 118: [51091,\n", - " 47629,\n", - " 47970,\n", - " 54256,\n", - " 48780,\n", - " 59315,\n", - " 53953,\n", - " 59985,\n", - " 48516,\n", - " 60522],\n", - " 143: [40148,\n", - " 25995,\n", - " 7297,\n", - " 8913,\n", - " 55274,\n", - " 7168,\n", - " 5379,\n", - " 49793,\n", - " 8784,\n", - " 55280],\n", - " 144: [3096, 100, 4440, 3627, 3038, 3760, 4366, 5004, 3566, 4279],\n", - " 162: [2659, 3342, 2193, 226, 2141, 3414, 279, 4084, 3334, 33],\n", - " 172: [2512, 5189, 3118, 3269, 2504, 2639, 6724, 3765, 3343, 7000],\n", - " 173: [8016,\n", - " 30820,\n", - " 36525,\n", - " 8905,\n", - " 8131,\n", - " 8125,\n", - " 41997,\n", - " 26491,\n", - " 8605,\n", - " 7936],\n", - " 187: [3300, 4224, 4307, 2474, 4102, 3362, 1955, 4188, 1913, 3682],\n", - " 193: [3841, 3147, 3684, 3038, 4350, 3812, 7084, 4231, 5949, 3799],\n", - " 208: [54256,\n", - " 60037,\n", - " 58303,\n", - " 58418,\n", - " 53953,\n", - " 53999,\n", - " 55442,\n", - " 53988,\n", - " 58291,\n", - " 502],\n", - " 210: [3831, 4428, 3978, 3896, 3814, 3985, 4371, 4129, 3824, 4578],\n", - " 214: [535, 463, 436, 1665, 1554, 668, 5682, 6870, 1035, 1095],\n", - " 228: [7139,\n", - " 6884,\n", - " 7211,\n", - " 8609,\n", - " 6979,\n", - " 7084,\n", - " 25764,\n", - " 7828,\n", - " 6874,\n", - " 3628],\n", - " 232: [45880, 2154, 2335, 1640, 197, 2027, 1855, 2284, 1747, 1835],\n", - " 236: [2278, 1624, 2427, 2178, 5470, 6614, 2033, 1533, 1495, 2717],\n", - " 259: [1769, 2834, 2937, 2884, 2286, 2577, 2669, 2429, 2559, 2679],\n", - " 260: [4867, 5685, 6279, 6383, 4722, 6346, 5522, 5847, 5918, 5026],\n", - " 267: [67, 81, 34405, 72, 802, 6241, 5164, 1255, 6973, 5334],\n", - " 268: [5688, 425, 19, 1647, 6875, 1202, 441, 414, 7728, 50872],\n", - " 271: [1020, 519, 1151, 970, 7844, 2410, 49530, 32587, 7720, 8024],\n", - " 274: [31923,\n", - " 7577,\n", - " 48780,\n", - " 5009,\n", - " 5611,\n", - " 5016,\n", - " 4126,\n", - " 121,\n", - " 48883,\n", - " 26318],\n", - " 287: [64716,\n", - " 33171,\n", - " 3981,\n", - " 3983,\n", - " 4424,\n", - " 48319,\n", - " 3984,\n", - " 48262,\n", - " 3985,\n", - " 3986],\n", - " 292: [501, 411, 215, 101, 8884, 5362, 2002, 5105, 4512, 4578],\n", - " 296: [1042, 747, 4163, 4855, 3683, 4765, 5930, 232, 3663, 562],\n", - " 303: [73, 337, 122, 159, 39, 854, 31, 292, 611, 391],\n", - " 307: [61361,\n", - " 45501,\n", - " 5299,\n", - " 760,\n", - " 3996,\n", - " 59103,\n", - " 48678,\n", - " 4725,\n", - " 1499,\n", - " 43904],\n", - " 310: [58334, 44929, 42197, 7314, 907, 271, 60074, 805, 8526, 560],\n", - " 315: [7698, 7235, 7325, 6252, 929, 5690, 6508, 4728, 7937, 1682],\n", - " 320: [51939, 7834, 43, 33677, 1347, 5309, 21, 51412, 5101, 4215],\n", - " 332: [8045,\n", - " 31617,\n", - " 7915,\n", - " 8711,\n", - " 5610,\n", - " 6780,\n", - " 52712,\n", - " 33154,\n", - " 48774,\n", - " 45081],\n", - " 339: [8377, 7287, 6268, 6537, 8535, 6315, 6626, 6620, 6969, 7584],\n", - " 343: [4406, 3584, 1919, 2344, 2395, 1111, 2359, 2457, 3069, 2872],\n", - " 355: [4916, 4921, 5094, 5621, 4903, 5101, 4990, 5855, 5643, 5303],\n", - " 364: [4767,\n", - " 5736,\n", - " 52241,\n", - " 26391,\n", - " 27340,\n", - " 6433,\n", - " 53921,\n", - " 51088,\n", - " 6291,\n", - " 5343],\n", - " 365: [3587, 2616, 6345, 2936, 5433, 52, 2605, 3505, 3147, 2693],\n", - " 368: [8639,\n", - " 7202,\n", - " 31032,\n", - " 8941,\n", - " 8501,\n", - " 7104,\n", - " 2107,\n", - " 7086,\n", - " 7844,\n", - " 37386],\n", - " 381: [5295, 6203, 1642, 2023, 1233, 5180, 2447, 6025, 6425, 5692],\n", - " 382: [6810, 7334, 6545, 5816, 5648, 7573, 6646, 6232, 7044, 2399],\n", - " 383: [2118, 2359, 2110, 8698, 7728, 2095, 2926, 2781, 2536, 2069],\n", - " 391: [2830, 2977, 3543, 2970, 3104, 3773, 2837, 3408, 3395, 3240],\n", - " 396: [2461, 3073, 2405, 3284, 2363, 3576, 2410, 2961, 2550, 2921],\n", - " 398: [43919, 813, 8633, 1238, 3180, 1279, 58154, 7204, 6077, 748],\n", - " 406: [4047,\n", - " 5398,\n", - " 3941,\n", - " 4510,\n", - " 3993,\n", - " 26828,\n", - " 5300,\n", - " 4602,\n", - " 5362,\n", - " 7386],\n", - " 409: [3412,\n", - " 2762,\n", - " 26425,\n", - " 2191,\n", - " 7364,\n", - " 1409,\n", - " 41573,\n", - " 26148,\n", - " 3232,\n", - " 8873],\n", - " 410: [6130, 7075, 2387, 2570, 17, 2470, 6005, 2342, 3838, 2628],\n", - " 416: [2530, 1826, 1293, 1151, 1799, 1459, 1214, 8800, 647, 570],\n", - " 418: [42197,\n", - " 4502,\n", - " 160,\n", - " 42009,\n", - " 4641,\n", - " 896,\n", - " 3327,\n", - " 44665,\n", - " 1328,\n", - " 4677],\n", - " 419: [6772, 5999, 3157, 3599, 6970, 3752, 3016, 7206, 3544, 6525],\n", - " 421: [5339, 5572, 5648, 6333, 5512, 5415, 5321, 5324, 6006, 5688],\n", - " 424: [452, 448, 447, 446, 445, 444, 443, 442, 437, 429],\n", - " 432: [4300,\n", - " 4807,\n", - " 4867,\n", - " 3676,\n", - " 4229,\n", - " 2875,\n", - " 4236,\n", - " 4612,\n", - " 54286,\n", - " 4458],\n", - " 434: [8365,\n", - " 8584,\n", - " 26152,\n", - " 8157,\n", - " 7079,\n", - " 33649,\n", - " 6997,\n", - " 7781,\n", - " 8768,\n", - " 27563],\n", - " 436: [4739, 4654, 165, 5362, 207, 5516, 5305, 618, 114, 5064],\n", - " 438: [4187, 4397, 4470, 4169, 992, 493, 1115, 510, 4265, 5485],\n", - " 441: [1727, 1845, 2160, 1650, 2798, 2409, 2744, 2202, 1904, 1660],\n", - " 446: [4645, 1281, 1333, 6166, 870, 4840, 4580, 5472, 4833, 5448],\n", - " 452: [3726, 3774, 4395, 4333, 3992, 2676, 3740, 3173, 2073, 3171],\n", - " 460: [3580, 4153, 3732, 4094, 3653, 3573, 3564, 3014, 4637, 3840],\n", - " 463: [3547, 3552, 3624, 4126, 4274, 3755, 4204, 4182, 4371, 4063],\n", - " 468: [7058, 5915, 51925, 143, 459, 8235, 188, 54995, 8197, 38798],\n", - " 469: [3504,\n", - " 4792,\n", - " 3566,\n", - " 3499,\n", - " 3918,\n", - " 4144,\n", - " 4444,\n", - " 3859,\n", - " 4714,\n", - " 53004],\n", - " 472: [118, 934, 695, 230, 932, 680, 702, 736, 664, 517],\n", - " 476: [355, 844, 702, 124, 7440, 5580, 182, 577, 879, 1282],\n", - " 480: [2333, 1805, 4932, 2446, 2283, 4276, 2906, 2118, 1814, 1793],\n", - " 482: [3056, 2942, 3447, 3629, 3133, 3631, 2938, 3134, 3135, 3399],\n", - " 493: [26064,\n", - " 801,\n", - " 1550,\n", - " 41569,\n", - " 45730,\n", - " 3286,\n", - " 59615,\n", - " 55282,\n", - " 46976,\n", - " 4032],\n", - " 496: [8799, 2723, 5840, 4600, 2590, 2545, 2082, 2087, 2137, 6218],\n", - " 501: [50804,\n", - " 47099,\n", - " 58972,\n", - " 54997,\n", - " 48142,\n", - " 62394,\n", - " 48678,\n", - " 47254,\n", - " 48518,\n", - " 50068],\n", - " 504: [5859, 5662, 6240, 6312, 6094, 6063, 5636, 5992, 6667, 6261],\n", - " 505: [105, 759, 750, 922, 1704, 387, 674, 1703, 246, 459],\n", - " 511: [3202, 206, 3733, 4231, 3306, 3688, 3086, 377, 4270, 3107],\n", - " 516: [54736,\n", - " 31903,\n", - " 3351,\n", - " 4279,\n", - " 4130,\n", - " 4310,\n", - " 2844,\n", - " 2968,\n", - " 4208,\n", - " 2460],\n", - " 525: [2451, 2977, 2707, 540, 2086, 2540, 2397, 2183, 2252, 2517],\n", - " 530: [7355,\n", - " 6664,\n", - " 7820,\n", - " 6540,\n", - " 7748,\n", - " 8426,\n", - " 26138,\n", - " 7036,\n", - " 8661,\n", - " 7461],\n", - " 531: [5423, 6125, 5470, 6920, 5382, 7048, 5351, 5333, 6020, 5604],\n", - " 533: [476, 807, 123, 419, 519, 763, 893, 522, 717, 512],\n", - " 536: [31694,\n", - " 26425,\n", - " 33085,\n", - " 31184,\n", - " 3473,\n", - " 3980,\n", - " 50354,\n", - " 27618,\n", - " 43869,\n", - " 26270],\n", - " 543: [5604, 4783, 5410, 5568, 5472, 4690, 369, 5205, 5841, 6286],\n", - " 547: [747, 42, 8275, 6990, 8732, 26085, 1216, 7064, 8531, 2244],\n", - " 549: [4828, 4643, 5944, 5508, 5823, 4837, 4821, 5142, 5287, 5985],\n", - " 553: [5331, 5251, 6718, 5875, 6584, 6312, 6467, 6254, 5883, 6525],\n", - " 558: [270, 2552, 2102, 135, 87, 7265, 2050, 6162, 248, 2036],\n", - " 562: [546, 394, 391, 389, 388, 908, 383, 379, 910, 375],\n", - " 567: [875, 1283, 1472, 1398, 635, 3927, 3591, 3742, 3741, 3739],\n", - " 571: [149, 32011, 54780, 549, 210, 4, 618, 715, 807, 94],\n", - " 572: [606, 615, 617, 630, 634, 588, 635, 641, 645, 649],\n", - " 577: [17, 567, 562, 255, 43, 602, 615, 910, 668, 729],\n", - " 581: [3169, 2654, 2712, 3114, 2843, 3780, 3846, 2730, 2886, 2639],\n", - " 585: [505, 1759, 757, 665, 1735, 1643, 1423, 688, 709, 1753],\n", - " 593: [3810, 5139, 3816, 4161, 4876, 4787, 4486, 72, 24, 5004],\n", - " 604: [49932,\n", - " 56587,\n", - " 52668,\n", - " 27850,\n", - " 27839,\n", - " 40962,\n", - " 56775,\n", - " 56782,\n", - " 27834,\n", - " 41569],\n", - " 605: [3, 4, 2, 5, 6, 2462, 2470, 2606, 2656, 2445],\n", - " 609: [2336, 6714, 1569, 5541, 5663, 2003, 240, 27801, 35, 2764],\n", - " 628: [40723,\n", - " 8375,\n", - " 3358,\n", - " 55729,\n", - " 3289,\n", - " 27722,\n", - " 40870,\n", - " 3379,\n", - " 1063,\n", - " 55402],\n", - " 629: [1570, 1725, 1064, 2059, 2060, 1715, 1237, 2066, 2068, 2070],\n", - " 645: [839, 1278, 122, 1283, 1002, 729, 1269, 806, 1032, 1196],\n", - " 650: [974, 2046, 1114, 1440, 923, 2147, 2824, 2211, 1592, 3285],\n", - " 656: [5546, 4589, 4735, 6243, 5302, 4711, 5646, 5556, 4898, 5560],\n", - " 657: [362, 958, 703, 485, 39, 4164, 673, 728, 275, 481],\n", - " 669: [529, 4298, 813, 4229, 477, 4411, 4588, 337, 616, 4384],\n", - " 678: [618, 1917, 673, 1642, 41863, 906, 8501, 1335, 1366, 1888],\n", - " 683: [8130,\n", - " 6789,\n", - " 6603,\n", - " 27674,\n", - " 7070,\n", - " 7459,\n", - " 7104,\n", - " 8511,\n", - " 7063,\n", - " 7986],\n", - " 688: [7327,\n", - " 8833,\n", - " 8722,\n", - " 7206,\n", - " 7386,\n", - " 25995,\n", - " 32153,\n", - " 5356,\n", - " 6429,\n", - " 30894],\n", - " 689: [8094, 6646, 6484, 7369, 7016, 6718, 6201, 5930, 6997, 7046],\n", - " 693: [2752, 2567, 2871, 2096, 2562, 2194, 2195, 2439, 2863, 2862],\n", - " 716: [26012,\n", - " 39183,\n", - " 27839,\n", - " 39444,\n", - " 40581,\n", - " 31114,\n", - " 26163,\n", - " 8870,\n", - " 59404,\n", - " 25856],\n", - " 720: [2134, 731, 6356, 2586, 2084, 485, 755, 7095, 169, 290],\n", - " 734: [1444, 5873, 6287, 5588, 1384, 1940, 6279, 1850, 1085, 5496],\n", - " 735: [3303,\n", - " 2714,\n", - " 50153,\n", - " 3831,\n", - " 3964,\n", - " 2889,\n", - " 3168,\n", - " 3578,\n", - " 53189,\n", - " 3618],\n", - " 739: [3106, 3111, 3868, 3708, 3176, 3061, 1960, 4383, 2085, 2090],\n", - " 755: [6966, 7834, 6969, 8959, 7842, 7845, 6724, 8831, 7883, 7889],\n", - " 758: [952, 1475, 1661, 2123, 1087, 1134, 1649, 1011, 947, 941],\n", - " 767: [1004, 619, 616, 614, 610, 600, 599, 594, 590, 581],\n", - " 769: [1266, 1870, 1271, 1328, 1992, 1605, 2004, 2440, 2435, 2232],\n", - " 786: [835, 888, 1038, 389, 328, 419, 423, 1379, 1280, 1194],\n", - " 789: [2813, 3243, 3293, 3472, 3963, 1483, 3660, 3066, 2749, 3903],\n", - " 792: [4809,\n", - " 47970,\n", - " 4003,\n", - " 4063,\n", - " 4262,\n", - " 4661,\n", - " 5380,\n", - " 5034,\n", - " 5388,\n", - " 3951],\n", - " 795: [330, 754, 6198, 809, 943, 2202, 1421, 5445, 5968, 5529],\n", - " 798: [3399,\n", - " 2751,\n", - " 2721,\n", - " 2635,\n", - " 3893,\n", - " 6626,\n", - " 3365,\n", - " 3161,\n", - " 2696,\n", - " 27266],\n", - " 799: [4700, 5090, 4614, 5093, 5752, 5094, 5527, 5529, 4442, 5745],\n", - " 802: [1303, 541, 1826, 118, 4583, 5140, 700, 5324, 5525, 4880],\n", - " 806: [5685, 5508, 4899, 5452, 4819, 6337, 5072, 5737, 4809, 6430],\n", - " 807: [7027,\n", - " 3635,\n", - " 1496,\n", - " 5927,\n", - " 3181,\n", - " 2191,\n", - " 3600,\n", - " 6713,\n", - " 5770,\n", - " 39292],\n", - " 816: [1513, 1923, 1460, 1542, 1872, 1822, 1595, 2054, 1377, 2050],\n", - " 827: [64716,\n", - " 33722,\n", - " 33677,\n", - " 51698,\n", - " 33672,\n", - " 51834,\n", - " 33646,\n", - " 51937,\n", - " 51091,\n", - " 33312],\n", - " 828: [1, 3, 4030, 3798, 4941, 3719, 59141, 4995, 6116, 4484],\n", - " 846: [5109, 4475, 5054, 4467, 4533, 5643, 5310, 4441, 6093, 4458],\n", - " 859: [25923,\n", - " 7898,\n", - " 25788,\n", - " 25793,\n", - " 7891,\n", - " 25866,\n", - " 7889,\n", - " 7883,\n", - " 7879,\n", - " 36527],\n", - " 862: [7227, 2621, 2627, 3145, 2691, 7147, 3287, 8970, 8698, 2932],\n", - " 876: [64716,\n", - " 40955,\n", - " 41527,\n", - " 41831,\n", - " 41863,\n", - " 42002,\n", - " 42009,\n", - " 42015,\n", - " 42018,\n", - " 42197],\n", - " 881: [64716,\n", - " 8927,\n", - " 58964,\n", - " 36517,\n", - " 58154,\n", - " 58105,\n", - " 57532,\n", - " 56949,\n", - " 38886,\n", - " 39414],\n", - " 885: [5327,\n", - " 1190,\n", - " 6530,\n", - " 5411,\n", - " 5291,\n", - " 5893,\n", - " 2409,\n", - " 5648,\n", - " 6857,\n", - " 32296],\n", - " 886: [1649, 1841, 2643, 2538, 2345, 2208, 2078, 2471, 1826, 1940],\n", - " 889: [54190,\n", - " 58154,\n", - " 54268,\n", - " 53921,\n", - " 52950,\n", - " 55247,\n", - " 53988,\n", - " 52042,\n", - " 56775,\n", - " 55250],\n", - " 890: [30898,\n", - " 46347,\n", - " 46337,\n", - " 46322,\n", - " 45950,\n", - " 45928,\n", - " 45852,\n", - " 26138,\n", - " 45730,\n", - " 45728],\n", - " 891: [57669, 34153, 5360, 53000, 144, 197, 505, 1011, 54995, 688],\n", - " 896: [4519, 4525, 5194, 4585, 5373, 6044, 4467, 7002, 4767, 5053],\n", - " 897: [3556, 2340, 4383, 3050, 1080, 4928, 3547, 641, 239, 597],\n", - " 898: [8987,\n", - " 7487,\n", - " 7355,\n", - " 8916,\n", - " 7366,\n", - " 34162,\n", - " 27391,\n", - " 7372,\n", - " 7338,\n", - " 6554],\n", - " 908: [1042,\n", - " 56915,\n", - " 60069,\n", - " 1731,\n", - " 58492,\n", - " 57464,\n", - " 58998,\n", - " 55288,\n", - " 56715,\n", - " 1348],\n", - " 922: [3246, 3102, 2648, 3057, 2910, 2573, 2806, 2893, 3453, 2952],\n", - " 930: [51091,\n", - " 52375,\n", - " 58964,\n", - " 50806,\n", - " 58655,\n", - " 52283,\n", - " 58490,\n", - " 58418,\n", - " 53000,\n", - " 56775],\n", - " 938: [2219, 1342, 1375, 1437, 2364, 1625, 2328, 1850, 6502, 1336],\n", - " 956: [6883, 6436, 7706, 7618, 6232, 8235, 7117, 6067, 7115, 8373],\n", - " 958: [26870,\n", - " 7389,\n", - " 43560,\n", - " 25777,\n", - " 2078,\n", - " 31696,\n", - " 1881,\n", - " 2446,\n", - " 1484,\n", - " 8930],\n", - " 968: [4082, 4641, 4640, 4638, 4637, 4635, 4629, 3996, 4626, 4619],\n", - " 977: [1272, 1093, 810, 1021, 183, 994, 732, 269, 394, 889],\n", - " 990: [3175, 4392, 2559, 3809, 4681, 2971, 4945, 3022, 3910, 3755],\n", - " 996: [688, 4443, 96, 4285, 4476, 3968, 3768, 3706, 33, 3658],\n", - " 1004: [3343,\n", - " 2857,\n", - " 3491,\n", - " 3285,\n", - " 3770,\n", - " 2788,\n", - " 2794,\n", - " 3104,\n", - " 2775,\n", - " 3996],\n", - " 1005: [2678, 1663, 1422, 917, 2075, 755, 1038, 1794, 1298, 3186],\n", - " 1008: [37475,\n", - " 40851,\n", - " 32031,\n", - " 56801,\n", - " 8614,\n", - " 56915,\n", - " 32627,\n", - " 50514,\n", - " 43917,\n", - " 8987],\n", - " 1029: [4173,\n", - " 7771,\n", - " 6548,\n", - " 6558,\n", - " 4019,\n", - " 26122,\n", - " 26148,\n", - " 3707,\n", - " 59615,\n", - " 7034],\n", - " 1037: [2516,\n", - " 1843,\n", - " 1845,\n", - " 1848,\n", - " 1367,\n", - " 1855,\n", - " 1858,\n", - " 1859,\n", - " 1365,\n", - " 1861],\n", - " 1050: [5118,\n", - " 4753,\n", - " 5752,\n", - " 4719,\n", - " 5268,\n", - " 6020,\n", - " 5046,\n", - " 5873,\n", - " 4619,\n", - " 5172],\n", - " 4: [3105, 5875, 58246, 4450, 3632, 4990, 5398, 2392, 1144, 5298],\n", - " 8: [1769, 1747, 1924, 2440, 27873, 2420, 1569, 7697, 2507, 1825],\n", - " 18: [1725, 1511, 1801, 2243, 1676, 1499, 1496, 1854, 2421, 2209],\n", - " 36: [6540,\n", - " 5852,\n", - " 8010,\n", - " 6305,\n", - " 44193,\n", - " 7349,\n", - " 6419,\n", - " 33154,\n", - " 36519,\n", - " 6785],\n", - " 47: [1631, 996, 4405, 4127, 3316, 393, 3453, 4646, 2841, 3371],\n", - " 59: [7, 1136, 933, 203, 48744, 176, 90, 271, 7448, 179],\n", - " 62: [354, 5472, 572, 4069, 4381, 1581, 48142, 4954, 5139, 5307],\n", - " 77: [2798, 3269, 2738, 3428, 5617, 5577, 6291, 6789, 3219, 3941],\n", - " 79: [3729, 3468, 544, 4323, 3638, 522, 411, 3473, 3487, 27584],\n", - " 80: [5382, 3250, 3936, 3402, 3190, 4788, 2778, 2802, 3654, 3592],\n", - " 119: [56788,\n", - " 8874,\n", - " 8864,\n", - " 33085,\n", - " 26198,\n", - " 26614,\n", - " 8969,\n", - " 49647,\n", - " 47778,\n", - " 3816],\n", - " 122: [839, 1298, 764, 1427, 1091, 1723, 1969, 757, 741, 778],\n", - " 125: [732, 2009, 96, 7003, 2068, 1902, 6254, 8781, 1844, 2515],\n", - " 126: [6886, 2809, 7621, 2971, 2382, 2421, 2523, 2606, 2867, 3439],\n", - " 132: [6811, 2400, 3773, 6729, 2667, 7636, 1170, 2351, 2627, 2519],\n", - " 141: [4307,\n", - " 1318,\n", - " 674,\n", - " 33794,\n", - " 1482,\n", - " 1233,\n", - " 45081,\n", - " 58367,\n", - " 54612,\n", - " 8154],\n", - " 154: [3103, 3917, 2649, 4447, 3463, 3247, 2894, 2953, 5092, 4517],\n", - " 155: [515, 509, 571, 674, 1173, 1078, 1461, 1212, 1533, 870],\n", - " 163: [5954,\n", - " 5186,\n", - " 8623,\n", - " 8254,\n", - " 4543,\n", - " 7265,\n", - " 8199,\n", - " 7366,\n", - " 26680,\n", - " 6639],\n", - " 164: [6813,\n", - " 5823,\n", - " 53894,\n", - " 6129,\n", - " 6252,\n", - " 7151,\n", - " 5706,\n", - " 6235,\n", - " 6486,\n", - " 2962],\n", - " 170: [4223, 84, 585, 4781, 472, 31427, 2917, 921, 317, 265],\n", - " 171: [3328,\n", - " 3260,\n", - " 1513,\n", - " 2749,\n", - " 8740,\n", - " 897,\n", - " 25777,\n", - " 1217,\n", - " 58105,\n", - " 60943],\n", - " 176: [1671, 180, 1690, 1608, 7730, 1840, 2874, 314, 506, 2804],\n", - " 190: [1369, 599, 5974, 3057, 1887, 582, 3866, 1893, 181, 3698],\n", - " 197: [49824,\n", - " 5102,\n", - " 53000,\n", - " 5741,\n", - " 5570,\n", - " 58078,\n", - " 31101,\n", - " 52694,\n", - " 4857,\n", - " 52287],\n", - " 198: [1865, 1930, 2375, 2376, 2378, 1924, 2380, 1920, 2383, 1919],\n", - " 199: [93, 6210, 200, 474, 7319, 525, 7009, 2972, 1831, 2533],\n", - " 212: [7222, 6423, 6410, 8404, 6371, 6392, 6951, 5629, 8138, 7338],\n", - " 221: [1547, 46972, 97, 920, 26055, 507, 6, 1780, 138, 262],\n", - " 223: [6412, 6510, 3597, 2921, 5198, 4228, 4864, 5749, 476, 6729],\n", - " 226: [1096, 2275, 1586, 1699, 1960, 2237, 347, 1824, 2605, 2497],\n", - " 241: [1393, 630, 1918, 920, 1264, 8529, 42011, 1673, 1653, 5636],\n", - " 247: [1352, 581, 4370, 5305, 5454, 1875, 5152, 4889, 4422, 3042],\n", - " 249: [4628,\n", - " 4012,\n", - " 4748,\n", - " 4959,\n", - " 4391,\n", - " 2749,\n", - " 42018,\n", - " 4317,\n", - " 1441,\n", - " 2679],\n", - " 254: [2406, 2328, 1079, 2908, 2440, 2399, 3189, 2527, 3114, 2259],\n", - " 264: [3566, 3903, 6270, 4378, 3005, 2761, 3240, 2854, 2566, 3662],\n", - " 273: [4527, 26, 60753, 31, 33669, 2015, 3824, 3707, 4864, 1224],\n", - " 275: [4578, 5529, 2771, 4035, 3240, 6228, 2162, 2105, 2059, 3222],\n", - " 276: [4265,\n", - " 4512,\n", - " 4504,\n", - " 37731,\n", - " 4065,\n", - " 5425,\n", - " 59729,\n", - " 6713,\n", - " 719,\n", - " 7206],\n", - " 293: [44929,\n", - " 41617,\n", - " 51698,\n", - " 51662,\n", - " 47894,\n", - " 58972,\n", - " 34323,\n", - " 51412,\n", - " 41573,\n", - " 60040],\n", - " 294: [131, 237, 60, 240, 220, 149, 94, 54, 242, 96],\n", - " 295: [26, 614, 7035, 216, 6221, 525, 1252, 7161, 7418, 452],\n", - " 318: [1660, 2045, 909, 333, 6374, 893, 563, 724, 129, 422],\n", - " 321: [394, 8188, 7349, 5177, 6965, 8981, 8482, 873, 6413, 5638],\n", - " 345: [6280, 8201, 5404, 4465, 6180, 6314, 8520, 7069, 6550, 6620],\n", - " 346: [55830,\n", - " 31000,\n", - " 2436,\n", - " 49772,\n", - " 3289,\n", - " 2893,\n", - " 3025,\n", - " 3048,\n", - " 2849,\n", - " 2456],\n", - " 348: [6152, 8859, 5140, 42718, 4499, 6130, 213, 639, 1401, 6082],\n", - " 349: [3667,\n", - " 4350,\n", - " 4895,\n", - " 27912,\n", - " 3531,\n", - " 55276,\n", - " 4167,\n", - " 47997,\n", - " 3938,\n", - " 4534],\n", - " 354: [831, 1172, 1425, 6890, 6168, 3961, 1216, 2593, 7068, 2002],\n", - " 359: [6714, 5480, 4711, 5860, 6213, 4979, 3947, 6284, 4085, 4102],\n", - " 366: [31431,\n", - " 32587,\n", - " 8196,\n", - " 8948,\n", - " 52668,\n", - " 8832,\n", - " 26686,\n", - " 43871,\n", - " 45668,\n", - " 51088],\n", - " 369: [2296, 1814, 1895, 2643, 2346, 2849, 2868, 2398, 2130, 2024],\n", - " 384: [747, 1016, 479, 477, 475, 473, 472, 470, 469, 464],\n", - " 390: [1249,\n", - " 34536,\n", - " 2238,\n", - " 58347,\n", - " 1395,\n", - " 1747,\n", - " 1266,\n", - " 2088,\n", - " 2208,\n", - " 1437],\n", - " 392: [4574, 4641, 4809, 5194, 4878, 4749, 4566, 4569, 5276, 4563],\n", - " 403: [6380, 5496, 5971, 6811, 5588, 6300, 5501, 6062, 6525, 5483],\n", - " 407: [6039, 6897, 6180, 6045, 6818, 7073, 6027, 5028, 3169, 7560],\n", - " 414: [491, 2276, 2342, 574, 3217, 3243, 254, 645, 2283, 2791],\n", - " 431: [56274,\n", - " 37739,\n", - " 55247,\n", - " 37720,\n", - " 40851,\n", - " 62000,\n", - " 36509,\n", - " 37380,\n", - " 49910,\n", - " 2050],\n", - " 454: [7380,\n", - " 1620,\n", - " 8228,\n", - " 27765,\n", - " 7562,\n", - " 26152,\n", - " 9010,\n", - " 2273,\n", - " 47099,\n", - " 8011],\n", - " 465: [39715,\n", - " 3844,\n", - " 3039,\n", - " 33585,\n", - " 3825,\n", - " 3250,\n", - " 43560,\n", - " 47423,\n", - " 3469,\n", - " 55267],\n", - " 481: [26269,\n", - " 44929,\n", - " 4835,\n", - " 48982,\n", - " 4765,\n", - " 43684,\n", - " 6346,\n", - " 34336,\n", - " 57243,\n", - " 5449],\n", - " 485: [2054, 4571, 1261, 3746, 5008, 5135, 3230, 2496, 799, 2483],\n", - " 503: [3060, 2929, 2472, 2884, 2407, 2728, 3340, 2413, 628, 3255],\n", - " 513: [2337, 2301, 1772, 1671, 2066, 1976, 1723, 1450, 2229, 2383],\n", - " 545: [2411, 1946, 2541, 1793, 1805, 2266, 1911, 2744, 2415, 2749],\n", - " 552: [310, 3271, 289, 176, 3333, 4184, 229, 4418, 3908, 2727],\n", - " 554: [51931,\n", - " 4067,\n", - " 4964,\n", - " 49793,\n", - " 55269,\n", - " 52579,\n", - " 55363,\n", - " 52604,\n", - " 55908,\n", - " 57532],\n", - " 555: [5101, 5434, 5215, 5214, 5212, 5681, 4674, 5970, 5186, 5182],\n", - " 561: [60397,\n", - " 59795,\n", - " 60647,\n", - " 60649,\n", - " 60766,\n", - " 59729,\n", - " 59727,\n", - " 61160,\n", - " 63992,\n", - " 60069],\n", - " 565: [6784, 7104, 3551, 2334, 6522, 5958, 3045, 6768, 7386, 8872],\n", - " 591: [5817,\n", - " 7396,\n", - " 6880,\n", - " 5923,\n", - " 5936,\n", - " 7101,\n", - " 33162,\n", - " 6684,\n", - " 7228,\n", - " 5804],\n", - " 617: [4043, 4059, 4349, 4131, 4296, 4226, 4888, 5481, 5352, 6636],\n", - " 622: [1748, 1094, 1500, 2021, 1189, 1872, 1617, 2297, 4168, 3598],\n", - " 623: [45668,\n", - " 50802,\n", - " 53123,\n", - " 48304,\n", - " 52458,\n", - " 54513,\n", - " 47997,\n", - " 59615,\n", - " 52462,\n", - " 56788],\n", - " 633: [765, 297, 433, 246, 316, 428, 712, 469, 1375, 836],\n", - " 636: [3981,\n", - " 4705,\n", - " 8910,\n", - " 7166,\n", - " 162,\n", - " 39715,\n", - " 8782,\n", - " 3862,\n", - " 39052,\n", - " 5308],\n", - " 638: [2429, 2255, 2480, 2315, 2920, 2396, 3104, 2721, 2517, 2898],\n", - " 641: [5496, 4880, 5670, 5231, 5313, 5963, 4792, 5439, 5584, 4808],\n", - " 646: [1232, 470, 1696, 2460, 1921, 1704, 1051, 2887, 2806, 2526],\n", - " 654: [5120, 5391, 5963, 5459, 6743, 6597, 6239, 5840, 5285, 5768],\n", - " 655: [2379, 2252, 1688, 1890, 443, 1336, 452, 876, 529, 2622],\n", - " 658: [6786,\n", - " 5783,\n", - " 6754,\n", - " 6645,\n", - " 7019,\n", - " 4090,\n", - " 3618,\n", - " 2827,\n", - " 6212,\n", - " 56801],\n", - " 660: [8691, 7020, 709, 111, 536, 495, 671, 279, 48, 923],\n", - " 661: [7844,\n", - " 7697,\n", - " 1654,\n", - " 26558,\n", - " 2154,\n", - " 31026,\n", - " 1723,\n", - " 7624,\n", - " 2198,\n", - " 26052],\n", - " 677: [3964, 4828, 2699, 3464, 3953, 4174, 5427, 4807, 3948, 5255],\n", - " 714: [6352, 5431, 5147, 6184, 5264, 6714, 5367, 5272, 5840, 5733],\n", - " 715: [494, 1147, 1611, 383, 116, 180, 944, 405, 362, 274],\n", - " 723: [2488,\n", - " 1912,\n", - " 1635,\n", - " 2641,\n", - " 2188,\n", - " 2152,\n", - " 1623,\n", - " 26269,\n", - " 2102,\n", - " 2678],\n", - " 731: [33615,\n", - " 32019,\n", - " 1145,\n", - " 1096,\n", - " 53956,\n", - " 51931,\n", - " 55363,\n", - " 44761,\n", - " 2323,\n", - " 31923],\n", - " 742: [55805,\n", - " 26729,\n", - " 26713,\n", - " 54736,\n", - " 26696,\n", - " 33085,\n", - " 47254,\n", - " 26680,\n", - " 54775,\n", - " 26606],\n", - " 743: [36517, 981, 341, 40870, 54881, 986, 555, 335, 334, 333],\n", - " 752: [5448, 6385, 5051, 5504, 5090, 5630, 4787, 4803, 5703, 5600],\n", - " 772: [4262, 3724, 3795, 4323, 4047, 4477, 1994, 4782, 1301, 3882],\n", - " 814: [2952,\n", - " 2962,\n", - " 3707,\n", - " 3022,\n", - " 4077,\n", - " 30822,\n", - " 3605,\n", - " 3104,\n", - " 4166,\n", - " 3249],\n", - " 823: [5458, 4863, 4865, 4866, 4870, 4871, 4873, 4880, 4384, 4881],\n", - " 826: [6777, 5664, 7454, 7215, 5927, 5867, 2204, 2374, 6748, 7054],\n", - " 833: [38304,\n", - " 33817,\n", - " 8852,\n", - " 34534,\n", - " 8970,\n", - " 44193,\n", - " 54780,\n", - " 49932,\n", - " 55820,\n", - " 26939],\n", - " 838: [4844, 4128, 4676, 4618, 4728, 5073, 4210, 4756, 5289, 4229],\n", - " 842: [429, 427, 175, 423, 422, 178, 417, 181, 415, 413],\n", - " 852: [2090, 2002, 2434, 2493, 2007, 2008, 2009, 1507, 2382, 2015],\n", - " 878: [35, 42, 19, 34, 24, 12, 30, 43, 9, 44],\n", - " 887: [64716,\n", - " 62801,\n", - " 63113,\n", - " 62803,\n", - " 62394,\n", - " 62293,\n", - " 62344,\n", - " 61323,\n", - " 61361,\n", - " 62113],\n", - " 895: [1507, 2289, 6639, 2727, 5483, 2379, 1759, 2585, 7311, 2706],\n", - " 899: [6251, 6810, 6408, 6409, 7226, 6530, 6920, 7326, 6950, 7340],\n", - " 902: [2423, 2023, 55, 108, 3064, 371, 174, 2469, 337, 3006],\n", - " 907: [3970, 7260, 4776, 8870, 7570, 4240, 7361, 4130, 3962, 4743],\n", - " 928: [178, 602, 110, 555, 305, 122, 42718, 564, 759, 45950],\n", - " 936: [4245, 4807, 5460, 5495, 4467, 5219, 4700, 4985, 5226, 4545],\n", - " 964: [3593, 5784, 5527, 4033, 512, 5603, 6214, 328, 4816, 4094],\n", - " 970: [5529, 6577, 4830, 4918, 5743, 7791, 4734, 6686, 7375, 5621],\n", - " 972: [619, 1079, 1127, 5193, 1862, 4276, 1255, 4418, 3766, 2966],\n", - " 1001: [6508,\n", - " 7136,\n", - " 6300,\n", - " 7132,\n", - " 7131,\n", - " 7124,\n", - " 6294,\n", - " 6617,\n", - " 7116,\n", - " 6624],\n", - " 1013: [3576,\n", - " 3824,\n", - " 3557,\n", - " 4541,\n", - " 4019,\n", - " 4720,\n", - " 4595,\n", - " 4305,\n", - " 3573,\n", - " 4155],\n", - " 1018: [3688,\n", - " 3093,\n", - " 3152,\n", - " 1324,\n", - " 1156,\n", - " 3633,\n", - " 3245,\n", - " 1207,\n", - " 3252,\n", - " 3405],\n", - " 1028: [1131, 568, 628, 1083, 728, 737, 556, 1150, 889, 1280],\n", - " 1031: [2424,\n", - " 2129,\n", - " 2128,\n", - " 2126,\n", - " 2667,\n", - " 2120,\n", - " 2119,\n", - " 2117,\n", - " 2116,\n", - " 2677],\n", - " 1035: [1623, 1476, 1135, 1178, 942, 5749, 1935, 5137, 1658, 4952],\n", - " 1038: [4903,\n", - " 4846,\n", - " 5065,\n", - " 4251,\n", - " 4531,\n", - " 4368,\n", - " 5068,\n", - " 4855,\n", - " 5420,\n", - " 4250],\n", - " 1045: [7720, 177, 267, 32296, 8019, 64, 8919, 26138, 43919, 237],\n", - " 1046: [4749,\n", - " 6271,\n", - " 7410,\n", - " 6259,\n", - " 5568,\n", - " 5373,\n", - " 8914,\n", - " 5312,\n", - " 5796,\n", - " 4610],\n", - " 35: [3342, 6370, 5448, 1357, 2141, 906, 2643, 5311, 5521, 7084],\n", - " 72: [508, 608, 258, 131, 443, 504, 511, 24, 531, 78],\n", - " 91: [3117, 455, 3056, 242, 2191, 2910, 501, 634, 44, 785],\n", - " 106: [8464, 7065, 6466, 6973, 7117, 7247, 830, 2600, 8891, 2188],\n", - " 128: [3217, 5147, 76, 2212, 790, 5092, 2550, 5584, 4503, 2533],\n", - " 158: [3518, 2879, 3168, 3469, 3010, 3760, 3329, 3666, 3547, 3508],\n", - " 160: [8633,\n", - " 33838,\n", - " 26425,\n", - " 8810,\n", - " 8865,\n", - " 2599,\n", - " 3221,\n", - " 8405,\n", - " 7116,\n", - " 7020],\n", - " 175: [58047,\n", - " 3661,\n", - " 39446,\n", - " 3675,\n", - " 8493,\n", - " 34198,\n", - " 51884,\n", - " 7941,\n", - " 6974,\n", - " 5073],\n", - " 196: [4405, 4475, 5272, 4338, 5896, 4624, 4389, 5039, 4981, 4372],\n", - " 203: [6658, 7347, 6552, 3514, 26138, 4063, 926, 4204, 7810, 454],\n", - " 206: [4169, 3363, 2561, 372, 389, 2876, 2255, 3122, 4703, 2880],\n", - " 207: [2094,\n", - " 1412,\n", - " 43396,\n", - " 1299,\n", - " 2430,\n", - " 2084,\n", - " 2526,\n", - " 1875,\n", - " 58293,\n", - " 40412],\n", - " 255: [3970, 949, 4511, 2138, 2707, 25866, 1470, 4125, 7260, 7395],\n", - " 265: [7036, 6785, 6899, 7334, 39, 6628, 6709, 7314, 7096, 6286],\n", - " 340: [3091,\n", - " 2479,\n", - " 3574,\n", - " 3067,\n", - " 2938,\n", - " 56367,\n", - " 51412,\n", - " 52973,\n", - " 2460,\n", - " 2606],\n", - " 404: [4482, 5117, 3103, 4541, 2025, 3190, 1385, 4476, 4639, 5064],\n", - " 433: [227, 280, 340, 511, 185, 7179, 7300, 34, 7386, 7450],\n", - " 440: [712, 14, 1180, 5, 4, 1078, 32721, 59387, 719, 556],\n", - " 444: [4082, 7831, 7828, 4224, 7820, 4225, 7811, 7810, 4226, 7789],\n", - " 450: [1360, 1601, 1600, 1598, 2085, 1596, 1594, 2090, 1592, 1589],\n", - " 479: [8959,\n", - " 7030,\n", - " 36537,\n", - " 31770,\n", - " 847,\n", - " 7334,\n", - " 7706,\n", - " 26303,\n", - " 7566,\n", - " 32598],\n", - " 491: [7060, 8261, 8042, 8784, 6978, 27, 2561, 8526, 3821, 4524],\n", - " 506: [51939,\n", - " 55451,\n", - " 55946,\n", - " 36537,\n", - " 5951,\n", - " 7834,\n", - " 31221,\n", - " 5096,\n", - " 39421,\n", - " 5734],\n", - " 523: [7045,\n", - " 7573,\n", - " 8930,\n", - " 6800,\n", - " 8643,\n", - " 7440,\n", - " 25923,\n", - " 7891,\n", - " 6615,\n", - " 7208],\n", - " 539: [33660,\n", - " 7828,\n", - " 7284,\n", - " 5981,\n", - " 7577,\n", - " 7444,\n", - " 6378,\n", - " 5971,\n", - " 51575,\n", - " 6809],\n", - " 541: [4438, 4682, 4219, 4217, 4690, 4705, 4709, 4713, 4714, 4207],\n", - " 616: [2867, 5109, 5108, 5106, 2450, 3947, 5096, 5095, 3948, 2449],\n", - " 647: [1641, 893, 2847, 2130, 982, 2120, 2509, 1645, 2856, 2168],\n", - " 659: [2049, 2761, 1372, 1504, 1539, 1431, 2559, 1722, 2032, 914],\n", - " 695: [47629,\n", - " 52712,\n", - " 58803,\n", - " 60069,\n", - " 47518,\n", - " 42217,\n", - " 47254,\n", - " 45728,\n", - " 53519,\n", - " 50872],\n", - " 700: [27741,\n", - " 44022,\n", - " 31270,\n", - " 45442,\n", - " 49772,\n", - " 60286,\n", - " 34048,\n", - " 31422,\n", - " 50685,\n", - " 32325],\n", - " 707: [7118, 8241, 7032, 8447, 8813, 7070, 2051, 7038, 1258, 7636],\n", - " 748: [1951, 2353, 2394, 5244, 2514, 5852, 1881, 4446, 2021, 4964],\n", - " 759: [2244, 2420, 2312, 2097, 2385, 1439, 2329, 2450, 1431, 2128],\n", - " 784: [106, 3184, 3949, 3189, 3355, 3470, 3181, 3361, 225, 3257],\n", - " 790: [3734,\n", - " 8825,\n", - " 47099,\n", - " 53894,\n", - " 3128,\n", - " 8798,\n", - " 3870,\n", - " 3689,\n", - " 33722,\n", - " 26939],\n", - " 835: [50149,\n", - " 42723,\n", - " 48319,\n", - " 48412,\n", - " 46347,\n", - " 27882,\n", - " 56251,\n", - " 7701,\n", - " 57243,\n", - " 30707],\n", - " 844: [78, 8957, 8951, 8636, 76, 27660, 27, 31705, 33781, 245],\n", - " 871: [808, 3572, 194, 3244, 3095, 2797, 2755, 87, 2879, 3138],\n", - " 875: [5932, 7300, 5957, 7299, 7295, 6436, 5947, 7461, 5961, 6294],\n", - " 892: [1063, 426, 972, 918, 1230, 1525, 953, 4911, 674, 869],\n", - " 919: [1525, 1970, 1585, 1535, 1929, 1431, 2095, 2536, 1640, 2306],\n", - " 935: [6057, 6808, 6855, 5540, 6247, 55286, 27, 5357, 6027, 5099],\n", - " 942: [3559, 4021, 2892, 2786, 4033, 2752, 1907, 3464, 4038, 3739],\n", - " 960: [5297, 5097, 4519, 5034, 5625, 4441, 4458, 4834, 4696, 4426],\n", - " 1006: [4111,\n", - " 56339,\n", - " 3763,\n", - " 4916,\n", - " 44759,\n", - " 49649,\n", - " 3596,\n", - " 4710,\n", - " 58162,\n", - " 59022],\n", - " 1026: [5346,\n", - " 5496,\n", - " 6235,\n", - " 6286,\n", - " 5505,\n", - " 5507,\n", - " 5092,\n", - " 4946,\n", - " 4945,\n", - " 5307],\n", - " 1047: [8722,\n", - " 8268,\n", - " 33437,\n", - " 7062,\n", - " 6988,\n", - " 6980,\n", - " 7263,\n", - " 6995,\n", - " 31903,\n", - " 8154],\n", - " 65: [1565, 6711, 4936, 5539, 7364, 5194, 2334, 320, 5103, 4188],\n", - " 135: [6179, 3168, 3105, 155, 6816, 6025, 3100, 6896, 35, 3653],\n", - " 152: [4959, 818, 762, 4317, 5483, 535, 5479, 594, 540, 5652],\n", - " 166: [1321,\n", - " 6181,\n", - " 34271,\n", - " 5597,\n", - " 1958,\n", - " 2064,\n", - " 3171,\n", - " 44195,\n", - " 5836,\n", - " 5268],\n", - " 179: [412, 904, 849, 27834, 347, 7620, 1277, 294, 1024, 6367],\n", - " 188: [3649, 3013, 2404, 4092, 4506, 2523, 4152, 3780, 3563, 4419],\n", - " 217: [8542,\n", - " 7836,\n", - " 8711,\n", - " 32325,\n", - " 8379,\n", - " 8012,\n", - " 26614,\n", - " 7815,\n", - " 8800,\n", - " 7810],\n", - " 253: [6042, 5966, 8601, 8128, 2539, 7161, 1953, 5959, 6254, 6270],\n", - " 262: [54272,\n", - " 4034,\n", - " 2925,\n", - " 7895,\n", - " 3726,\n", - " 33880,\n", - " 55729,\n", - " 3125,\n", - " 60074,\n", - " 2473],\n", - " 277: [4982, 3604, 2925, 1033, 1282, 4960, 4234, 1592, 4792, 4098],\n", - " 289: [4535, 762, 1375, 3925, 3194, 4543, 3785, 2015, 3734, 2480],\n", - " 300: [1156, 1087, 1641, 1804, 1592, 1400, 2267, 2062, 1092, 1081],\n", - " 302: [58047,\n", - " 4437,\n", - " 3158,\n", - " 4508,\n", - " 59795,\n", - " 5081,\n", - " 7096,\n", - " 57536,\n", - " 57522,\n", - " 4442],\n", - " 308: [393, 101, 114, 270, 466, 533, 191, 302, 253, 8607],\n", - " 311: [634, 463, 568, 1136, 1264, 1088, 1533, 930, 1784, 103],\n", - " 328: [8607,\n", - " 33681,\n", - " 60943,\n", - " 4508,\n", - " 3987,\n", - " 31594,\n", - " 8367,\n", - " 7704,\n", - " 7254,\n", - " 32031],\n", - " 329: [2898, 3078, 3133, 2950, 3646, 3044, 3844, 3619, 2887, 2884],\n", - " 344: [7386,\n", - " 45183,\n", - " 3876,\n", - " 3007,\n", - " 3939,\n", - " 2985,\n", - " 7366,\n", - " 40962,\n", - " 7572,\n", - " 3287],\n", - " 347: [266, 45028, 48774, 7293, 3479, 2715, 129, 3587, 54736, 140],\n", - " 358: [362, 8722, 6660, 6881, 7934, 8943, 6867, 321, 7059, 6643],\n", - " 474: [1871,\n", - " 60037,\n", - " 2374,\n", - " 4011,\n", - " 55276,\n", - " 6005,\n", - " 3014,\n", - " 7003,\n", - " 6708,\n", - " 6777],\n", - " 483: [6477, 6322, 6978, 6319, 7201, 7486, 7487, 7047, 7199, 7523],\n", - " 509: [3102, 3247, 3316, 3365, 4928, 3412, 2448, 3451, 2842, 3047],\n", - " 578: [4143, 4695, 4541, 3928, 4433, 4733, 5294, 4144, 4187, 4855],\n", - " 643: [382, 325, 319, 317, 312, 132, 310, 136, 327, 309],\n", - " 679: [27834,\n", - " 55063,\n", - " 8207,\n", - " 6653,\n", - " 38798,\n", - " 3966,\n", - " 4390,\n", - " 4570,\n", - " 4849,\n", - " 4873],\n", - " 680: [4603, 4799, 1326, 981, 240, 5391, 4768, 231, 4677, 226],\n", - " 691: [2151,\n", - " 1485,\n", - " 2130,\n", - " 1810,\n", - " 1670,\n", - " 49824,\n", - " 45183,\n", - " 47610,\n", - " 2014,\n", - " 59729],\n", - " 702: [573, 1236, 517, 511, 1388, 1145, 1715, 474, 1031, 934],\n", - " 708: [3677,\n", - " 2876,\n", - " 54290,\n", - " 2423,\n", - " 1673,\n", - " 52287,\n", - " 1983,\n", - " 2365,\n", - " 58299,\n", - " 2861],\n", - " 730: [6124, 7891, 6918, 8195, 6325, 6858, 6378, 7284, 8392, 8275],\n", - " 751: [1799, 2516, 2956, 1931, 2331, 1913, 2493, 2520, 2094, 5202],\n", - " 773: [6356, 6754, 6680, 5707, 6678, 6436, 6287, 6284, 6281, 7235],\n", - " 803: [1178, 1024, 1171, 1965, 2105, 2058, 2026, 1585, 1016, 1898],\n", - " 809: [6784,\n", - " 7023,\n", - " 8239,\n", - " 9005,\n", - " 7026,\n", - " 8228,\n", - " 6480,\n", - " 25750,\n", - " 7027,\n", - " 8198],\n", - " 820: [42728,\n", - " 39449,\n", - " 46970,\n", - " 33162,\n", - " 45440,\n", - " 32632,\n", - " 30818,\n", - " 33826,\n", - " 46850,\n", - " 8938],\n", - " 824: [4082, 3671, 4206, 4208, 4210, 4211, 4215, 4216, 4218, 4225],\n", - " 863: [4406, 5125, 5692, 4974, 5792, 4561, 4951, 4658, 4915, 4511],\n", - " 865: [5404, 5327, 5638, 5317, 6223, 5996, 6315, 5580, 5555, 5496],\n", - " 867: [3721, 4139, 4392, 3566, 3420, 4565, 4511, 4477, 3688, 3581],\n", - " 911: [2989,\n", - " 1912,\n", - " 2406,\n", - " 2034,\n", - " 2560,\n", - " 2078,\n", - " 2535,\n", - " 8833,\n", - " 2750,\n", - " 38886],\n", - " 915: [7158, 8531, 7075, 8930, 8644, 7925, 8868, 7074, 6520, 8593],\n", - " 939: [471, 1115, 920, 962, 1588, 361, 1929, 1384, 2363, 1057],\n", - " 946: [505, 691, 1136, 1263, 1439, 842, 668, 488, 892, 1369],\n", - " 954: [7088,\n", - " 1878,\n", - " 7061,\n", - " 7585,\n", - " 1194,\n", - " 7211,\n", - " 7749,\n", - " 7118,\n", - " 6932,\n", - " 27831],\n", - " 957: [3011, 7809, 2349, 7059, 2983, 2342, 8128, 2917, 3171, 2860],\n", - " 971: [372, 211, 431, 261, 206, 719, 200, 340, 463, 597],\n", - " 986: [8698, 7150, 6367, 6772, 7389, 8833, 6794, 7190, 6744, 7334],\n", - " 992: [6396, 7368, 7063, 6238, 6296, 6659, 4030, 8712, 3230, 8860],\n", - " 92: [34155, 1392, 7369, 1601, 1946, 1453, 1986, 1661, 1383, 1696],\n", - " 107: [2517, 3037, 2815, 2948, 3060, 3243, 3214, 3502, 2826, 2541],\n", - " 131: [8810,\n", - " 6380,\n", - " 2470,\n", - " 6204,\n", - " 32721,\n", - " 8620,\n", - " 3189,\n", - " 6948,\n", - " 6869,\n", - " 8645],\n", - " 138: [493, 538, 263, 571, 132, 1343, 509, 562, 353, 482],\n", - " 145: [2768, 2318, 2889, 2723, 2259, 2250, 3535, 3414, 4754, 6680],\n", - " 183: [48943,\n", - " 47261,\n", - " 56176,\n", - " 27741,\n", - " 7303,\n", - " 50601,\n", - " 45208,\n", - " 47894,\n", - " 50153,\n", - " 55908],\n", - " 209: [391, 421, 270, 881, 414, 44, 668, 228, 779, 13],\n", - " 230: [871, 781, 1793, 1913, 8799, 1528, 44759, 8961, 931, 848],\n", - " 263: [559, 82, 2140, 2860, 4149, 366, 1653, 3341, 2665, 618],\n", - " 305: [702, 6116, 1191, 7916, 6858, 6784, 63, 9, 1134, 1658],\n", - " 314: [5808,\n", - " 6987,\n", - " 7980,\n", - " 26122,\n", - " 6678,\n", - " 34520,\n", - " 7937,\n", - " 5987,\n", - " 6213,\n", - " 53004],\n", - " 319: [42418,\n", - " 57951,\n", - " 53189,\n", - " 36529,\n", - " 39292,\n", - " 2509,\n", - " 59900,\n", - " 51086,\n", - " 39449,\n", - " 55946],\n", - " 325: [2040, 1249, 1958, 4559, 1358, 57, 3733, 2414, 2462, 1501],\n", - " 341: [5669, 6385, 970, 4159, 5588, 4903, 6626, 5598, 7342, 1513],\n", - " 471: [653, 582, 1156, 1276, 1101, 1806, 1550, 943, 563, 574],\n", - " 488: [5131, 5134, 5809, 5810, 6764, 5817, 5295, 5826, 5829, 5833],\n", - " 495: [2701, 2752, 4865, 5574, 1658, 1953, 2176, 5202, 2300, 4957],\n", - " 532: [615, 1029, 1701, 1488, 1044, 947, 1300, 1219, 924, 1292],\n", - " 564: [7191, 230, 650, 3905, 148, 181, 3241, 6244, 3, 3714],\n", - " 574: [5618, 4987, 5802, 6540, 6116, 4912, 5097, 5346, 5013, 5341],\n", - " 603: [54190,\n", - " 7486,\n", - " 31658,\n", - " 48394,\n", - " 1132,\n", - " 486,\n", - " 5611,\n", - " 375,\n", - " 1602,\n", - " 60649],\n", - " 674: [48879,\n", - " 59103,\n", - " 4853,\n", - " 56885,\n", - " 46850,\n", - " 3985,\n", - " 46972,\n", - " 47202,\n", - " 54001,\n", - " 49649],\n", - " 753: [41585,\n", - " 55292,\n", - " 56274,\n", - " 60074,\n", - " 48879,\n", - " 52241,\n", - " 52245,\n", - " 43928,\n", - " 55069,\n", - " 52462],\n", - " 810: [4082, 4296, 4294, 4857, 4293, 4285, 4866, 4284, 4279, 4871],\n", - " 830: [2730, 2072, 2738, 2059, 2122, 3168, 4782, 2574, 4595, 5457],\n", - " 841: [64716,\n", - " 45186,\n", - " 45183,\n", - " 45175,\n", - " 56176,\n", - " 56174,\n", - " 56171,\n", - " 56156,\n", - " 56152,\n", - " 45106],\n", - " 856: [5555, 5504, 5468, 5721, 4545, 4789, 4616, 5276, 5839, 5034],\n", - " 921: [8700,\n", - " 7362,\n", - " 8620,\n", - " 3910,\n", - " 7581,\n", - " 6687,\n", - " 2871,\n", - " 7074,\n", - " 7001,\n", - " 50798],\n", - " 933: [510, 1171, 708, 421, 805, 217, 452, 1631, 411, 182],\n", - " 976: [963, 1497, 1644, 1027, 1879, 1444, 1279, 1575, 1546, 969],\n", - " 37: [3465, 4734, 8451, 45028, 4219, 3459, 3525, 3451, 4023, 3620],\n", - " 83: [6460, 5506, 2387, 7177, 315, 928, 258, 383, 793, 7166],\n", - " 248: [1064, 1058, 1211, 1610, 1252, 1563, 1125, 1218, 1341, 1051],\n", - " 387: [4306, 5453, 5119, 5109, 33830, 5225, 110, 5392, 5346, 6152],\n", - " 428: [94, 818, 2624, 3219, 3040, 3083, 2071, 1262, 1276, 2709],\n", - " 451: [3721, 3097, 3847, 3849, 3851, 3852, 3853, 3002, 3855, 3856],\n", - " 584: [885, 202, 252, 854, 153, 1326, 1057, 754, 710, 1302],\n", - " 874: [2761, 2734, 2530, 3504, 3184, 3055, 2780, 3667, 2593, 3463],\n", - " 995: [3263, 3333, 3255, 3538, 3854, 4009, 4017, 4426, 3200, 3798],\n", - " 10: [56286, 31225, 291, 606, 1087, 27410, 8973, 4964, 5984, 5841],\n", - " 19: [3667, 3714, 6060, 3873, 747, 6044, 848, 6193, 6932, 1231],\n", - " 41: [8367, 6624, 7324, 7419, 7697, 7092, 8724, 7234, 7014, 666],\n", - " 43: [484, 5768, 1246, 6957, 2454, 2476, 1804, 1722, 2261, 2391],\n", - " 44: [2431, 2669, 2863, 2261, 2518, 3330, 5666, 2143, 2398, 4845],\n", - " 45: [42217,\n", - " 53129,\n", - " 59795,\n", - " 38304,\n", - " 55908,\n", - " 59729,\n", - " 62344,\n", - " 25,\n", - " 36527,\n", - " 5],\n", - " 51: [6510, 7067, 6378, 7204, 8712, 6486, 7142, 55080, 6725, 8595],\n", - " 56: [1161, 503, 2882, 382, 4109, 222, 1305, 3872, 3978, 3327],\n", - " 61: [59014, 32460, 5, 703, 1187, 2415, 50601, 3134, 1977, 3645],\n", - " 68: [5506, 6669, 43, 2057, 2398, 2016, 2150, 2455, 7340, 2739],\n", - " 69: [4532, 5312, 6077, 5941, 4614, 5428, 3262, 5231, 3171, 4518],\n", - " 78: [5096, 5503, 4535, 5502, 5677, 5500, 5680, 5682, 5684, 5685],\n", - " 110: [2117, 2112, 2253, 2626, 2302, 2169, 2577, 2263, 2388, 2765],\n", - " 115: [2802, 3585, 3926, 3016, 3693, 6764, 4063, 1112, 358, 5737],\n", - " 129: [6858, 6764, 2877, 1096, 1191, 6773, 7743, 7562, 4354, 3535],\n", - " 150: [1436, 1511, 1515, 1528, 1538, 1544, 1551, 1554, 1563, 1565],\n", - " 168: [40966,\n", - " 26002,\n", - " 6311,\n", - " 3359,\n", - " 3286,\n", - " 2271,\n", - " 2833,\n", - " 27255,\n", - " 5222,\n", - " 32179],\n", - " 169: [3789,\n", - " 2531,\n", - " 2992,\n", - " 60286,\n", - " 4310,\n", - " 53988,\n", - " 4251,\n", - " 113,\n", - " 3717,\n", - " 2612],\n", - " 178: [33826,\n", - " 6944,\n", - " 4417,\n", - " 56805,\n", - " 5684,\n", - " 131,\n", - " 3719,\n", - " 3594,\n", - " 5763,\n", - " 4967],\n", - " 186: [8967, 313, 1598, 2248, 851, 8874, 7327, 26840, 362, 7451],\n", - " 201: [885, 418, 444, 450, 479, 1193, 482, 488, 492, 501],\n", - " 239: [60, 2747, 2758, 252, 3446, 3241, 3289, 2810, 3726, 174],\n", - " 256: [3614,\n", - " 5457,\n", - " 1132,\n", - " 6010,\n", - " 1400,\n", - " 3745,\n", - " 57368,\n", - " 564,\n", - " 7007,\n", - " 36477],\n", - " 257: [458, 1054, 2083, 1475, 1702, 971, 945, 1534, 74, 2172],\n", - " 272: [26242,\n", - " 4063,\n", - " 47970,\n", - " 2793,\n", - " 3399,\n", - " 5446,\n", - " 2181,\n", - " 3618,\n", - " 3459,\n", - " 2053],\n", - " 279: [697, 5103, 101, 8659, 7009, 25996, 5214, 36517, 7123, 6988],\n", - " 280: [46972,\n", - " 7827,\n", - " 6744,\n", - " 31223,\n", - " 5729,\n", - " 27618,\n", - " 2352,\n", - " 1587,\n", - " 47778,\n", - " 69],\n", - " 285: [5688,\n", - " 6708,\n", - " 7757,\n", - " 30825,\n", - " 7377,\n", - " 7366,\n", - " 5843,\n", - " 46965,\n", - " 5531,\n", - " 25753],\n", - " 298: [5339,\n", - " 4404,\n", - " 5966,\n", - " 41527,\n", - " 189,\n", - " 8796,\n", - " 55292,\n", - " 40412,\n", - " 33781,\n", - " 50851],\n", - " 301: [3915, 2695, 3807, 3313, 3605, 3688, 3083, 3426, 2709, 2774],\n", - " 304: [5503,\n", - " 6230,\n", - " 43919,\n", - " 260,\n", - " 107,\n", - " 46335,\n", - " 5438,\n", - " 6410,\n", - " 6057,\n", - " 44193],\n", - " 333: [2755, 2144, 7352, 179, 6226, 292, 2042, 3200, 8831, 633],\n", - " 334: [4486,\n", - " 59016,\n", - " 32584,\n", - " 3781,\n", - " 5033,\n", - " 3667,\n", - " 8667,\n", - " 4299,\n", - " 3135,\n", - " 6855],\n", - " 338: [8042,\n", - " 41571,\n", - " 8019,\n", - " 7396,\n", - " 44397,\n", - " 32591,\n", - " 32011,\n", - " 37240,\n", - " 7766,\n", - " 8589],\n", - " 350: [7440,\n", - " 1454,\n", - " 27391,\n", - " 2241,\n", - " 44022,\n", - " 7234,\n", - " 27523,\n", - " 4077,\n", - " 32019,\n", - " 8375],\n", - " 353: [4041, 4789, 2779, 3251, 4543, 3732, 2864, 3095, 6520, 5410],\n", - " 378: [7111,\n", - " 8861,\n", - " 6970,\n", - " 33896,\n", - " 3861,\n", - " 31026,\n", - " 4563,\n", - " 7704,\n", - " 5454,\n", - " 5431],\n", - " 386: [7311, 8198, 6969, 7448, 8966, 7123, 8008, 6957, 7355, 6952],\n", - " 397: [5569, 6062, 6761, 3334, 5808, 6550, 5900, 5841, 6582, 5966],\n", - " 420: [3171, 2518, 2515, 3202, 3201, 3200, 3199, 3198, 2514, 2513],\n", - " 439: [3275,\n", - " 3287,\n", - " 3872,\n", - " 41025,\n", - " 3360,\n", - " 4005,\n", - " 4560,\n", - " 26005,\n", - " 45720,\n", - " 3224],\n", - " 449: [844, 6416, 1463, 7372, 7054, 714, 1979, 6750, 6970, 6223],\n", - " 478: [4719, 5681, 435, 912, 2247, 6378, 3066, 3239, 3364, 907],\n", - " 487: [3225, 2739, 3139, 2738, 2733, 2727, 2725, 2718, 2229, 2713],\n", - " 489: [1797, 1650, 2847, 2407, 2752, 2204, 32291, 394, 7647, 2858],\n", - " 500: [7980,\n", - " 8959,\n", - " 6872,\n", - " 6852,\n", - " 7831,\n", - " 27005,\n", - " 7086,\n", - " 27803,\n", - " 26391,\n", - " 8239],\n", - " 510: [48560, 51709, 47999, 361, 904, 52668, 1151, 268, 1012, 568],\n", - " 521: [8221,\n", - " 27875,\n", - " 27873,\n", - " 8016,\n", - " 27851,\n", - " 27838,\n", - " 7442,\n", - " 8014,\n", - " 27882,\n", - " 27822],\n", - " 522: [154, 464, 546, 347, 378, 460, 7062, 411, 5928, 550],\n", - " 527: [83, 727, 268, 1099, 153, 2898, 135, 2749, 735, 1054],\n", - " 529: [4426,\n", - " 4355,\n", - " 3683,\n", - " 4266,\n", - " 4990,\n", - " 36509,\n", - " 8040,\n", - " 4939,\n", - " 3949,\n", - " 4516],\n", - " 535: [61, 8984, 4510, 472, 7157, 30803, 46, 5954, 5597, 4577],\n", - " 550: [64716,\n", - " 43556,\n", - " 43560,\n", - " 53752,\n", - " 53550,\n", - " 43679,\n", - " 43869,\n", - " 53435,\n", - " 53322,\n", - " 53189],\n", - " 560: [5872,\n", - " 7300,\n", - " 48997,\n", - " 7450,\n", - " 5820,\n", - " 7119,\n", - " 6803,\n", - " 7442,\n", - " 7381,\n", - " 42007],\n", - " 573: [8532,\n", - " 39234,\n", - " 33358,\n", - " 3047,\n", - " 40581,\n", - " 8985,\n", - " 8743,\n", - " 34520,\n", - " 55080,\n", - " 46335],\n", - " 579: [4397, 5040, 5049, 4445, 4444, 5054, 5056, 5059, 5065, 5068],\n", - " 582: [4354, 4433, 4994, 4361, 5169, 4947, 5820, 4333, 5506, 4732],\n", - " 583: [3527, 4025, 3462, 4186, 3982, 3807, 4736, 4487, 3467, 3440],\n", - " 587: [4636, 3930, 2665, 3793, 2549, 3289, 3694, 2560, 2841, 3635],\n", - " 596: [5313, 5902, 5970, 6196, 6590, 5219, 6679, 5637, 5464, 5189],\n", - " 602: [129, 65, 510, 969, 172, 152, 552, 1183, 972, 703],\n", - " 618: [905, 6166, 1427, 1501, 7001, 1400, 7771, 809, 1539, 742],\n", - " 624: [3678, 4250, 3447, 3623, 3274, 3766, 3289, 316, 4091, 3866],\n", - " 627: [2073, 5541, 7179, 2186, 5469, 5411, 6264, 3435, 5737, 2378],\n", - " 635: [52042,\n", - " 52885,\n", - " 47830,\n", - " 49647,\n", - " 31026,\n", - " 27706,\n", - " 57669,\n", - " 6482,\n", - " 42632,\n", - " 5781],\n", - " 639: [1948, 1991, 2106, 1394, 1389, 1382, 2081, 2506, 1614, 2565],\n", - " 640: [1923, 2506, 1994, 1862, 2946, 1784, 1857, 1999, 2034, 4409],\n", - " 642: [46322,\n", - " 45928,\n", - " 45950,\n", - " 46335,\n", - " 46572,\n", - " 46970,\n", - " 47099,\n", - " 47202,\n", - " 47382,\n", - " 47516],\n", - " 649: [6920, 6554, 7033, 7038, 7044, 7046, 7047, 5961, 7054, 7059],\n", - " 652: [9, 420, 150, 218, 358, 5675, 6858, 270, 373, 324],\n", - " 662: [762,\n", - " 6210,\n", - " 62113,\n", - " 1508,\n", - " 7325,\n", - " 2012,\n", - " 2017,\n", - " 62801,\n", - " 6813,\n", - " 1520],\n", - " 671: [4483, 4690, 5225, 2672, 4772, 5743, 5882, 5445, 1966, 5098],\n", - " 675: [78, 359, 197, 137, 35, 628, 308, 554, 432, 218],\n", - " 684: [5517, 6204, 5385, 7163, 6664, 4771, 6188, 5690, 7088, 5505],\n", - " 703: [7620,\n", - " 6356,\n", - " 6567,\n", - " 7178,\n", - " 25752,\n", - " 4949,\n", - " 5651,\n", - " 4756,\n", - " 3330,\n", - " 4142],\n", - " 712: [1017, 2634, 1024, 1161, 885, 1554, 1928, 1810, 1410, 2583],\n", - " 726: [3539, 2819, 3512, 2876, 2767, 4021, 3420, 3998, 2956, 3622],\n", - " 727: [8879,\n", - " 32116,\n", - " 31952,\n", - " 51939,\n", - " 31696,\n", - " 52241,\n", - " 31584,\n", - " 52287,\n", - " 31437,\n", - " 32179],\n", - " 744: [73, 161, 53, 86, 61, 177, 200, 28, 179, 182],\n", - " 746: [27801,\n", - " 31116,\n", - " 48043,\n", - " 52375,\n", - " 27816,\n", - " 46322,\n", - " 27674,\n", - " 60649,\n", - " 40339,\n", - " 58105],\n", - " 761: [1059, 496, 1587, 1444, 558, 1372, 1016, 1124, 1220, 766],\n", - " 765: [7459, 6493, 6303, 8949, 8740, 6902, 7194, 8014, 7308, 6367],\n", - " 766: [36537,\n", - " 45074,\n", - " 40278,\n", - " 54780,\n", - " 55820,\n", - " 46972,\n", - " 48304,\n", - " 36509,\n", - " 35957,\n", - " 43936],\n", - " 771: [2041, 1002, 1565, 5289, 4880, 865, 4640, 4720, 4958, 1042],\n", - " 776: [51903,\n", - " 2630,\n", - " 1831,\n", - " 1821,\n", - " 1739,\n", - " 2479,\n", - " 1595,\n", - " 49649,\n", - " 2070,\n", - " 58490],\n", - " 797: [6244, 5034, 6448, 6378, 5410, 5025, 1655, 1804, 5427, 5736],\n", - " 812: [26491,\n", - " 26375,\n", - " 45074,\n", - " 3036,\n", - " 3224,\n", - " 3095,\n", - " 3260,\n", - " 2874,\n", - " 2297,\n", - " 2917],\n", - " 815: [5636, 994, 5434, 4812, 5502, 5882, 1629, 5603, 5127, 6320],\n", - " 818: [4098, 3287, 858, 1606, 3730, 2093, 8970, 48698, 967, 1585],\n", - " 821: [25777,\n", - " 59037,\n", - " 27731,\n", - " 48322,\n", - " 31553,\n", - " 25750,\n", - " 25764,\n", - " 56152,\n", - " 27773,\n", - " 34336],\n", - " 822: [1997, 1397, 1398, 1399, 2368, 2365, 2363, 1950, 2370, 2360],\n", - " 831: [34520,\n", - " 33237,\n", - " 53550,\n", - " 57522,\n", - " 52245,\n", - " 46530,\n", - " 33154,\n", - " 32598,\n", - " 33499,\n", - " 39446],\n", - " 834: [1938,\n", - " 1131,\n", - " 2367,\n", - " 1247,\n", - " 1827,\n", - " 1688,\n", - " 57532,\n", - " 1377,\n", - " 1914,\n", - " 2362],\n", - " 837: [7791, 7178, 7713, 6807, 7255, 8872, 6265, 6349, 6573, 6017],\n", - " 839: [1959,\n", - " 2664,\n", - " 34538,\n", - " 43744,\n", - " 42197,\n", - " 8740,\n", - " 3101,\n", - " 54997,\n", - " 5400,\n", - " 4463],\n", - " 840: [2380, 2385, 3046, 2513, 2612, 2377, 2518, 2434, 2891, 5074],\n", - " 851: [852, 387, 384, 381, 379, 378, 375, 373, 369, 368],\n", - " 855: [5358, 5596, 5670, 6222, 6856, 6480, 6977, 782, 1173, 6093],\n", - " 857: [30894,\n", - " 52712,\n", - " 49347,\n", - " 51935,\n", - " 47644,\n", - " 39419,\n", - " 57536,\n", - " 32179,\n", - " 60040,\n", - " 45672],\n", - " 868: [5974, 6887, 1615, 1614, 6396, 6885, 6392, 1610, 6387, 1608],\n", - " 904: [3436, 2781, 3197, 3034, 3616, 3324, 3253, 3839, 2702, 2979],\n", - " 905: [59404,\n", - " 61262,\n", - " 563,\n", - " 5318,\n", - " 58299,\n", - " 59306,\n", - " 57640,\n", - " 59615,\n", - " 61361,\n", - " 56152],\n", - " 906: [30820,\n", - " 48997,\n", - " 31687,\n", - " 47810,\n", - " 33646,\n", - " 27912,\n", - " 49647,\n", - " 40278,\n", - " 54270,\n", - " 33681],\n", - " 924: [7617, 6774, 8796, 6564, 7256, 8125, 6794, 6550, 6452, 6863],\n", - " 925: [6006,\n", - " 5351,\n", - " 6229,\n", - " 48744,\n", - " 5949,\n", - " 3214,\n", - " 56251,\n", - " 5959,\n", - " 1274,\n", - " 5265],\n", - " 927: [4661, 4896, 378, 5434, 4974, 6001, 5662, 6157, 5334, 4901],\n", - " 940: [2706, 2754, 2753, 2917, 3052, 3141, 2252, 2402, 2403, 2736],\n", - " 948: [5762, 5110, 5968, 5682, 5358, 5323, 5026, 5023, 6650, 6750],\n", - " 953: [336, 329, 326, 324, 322, 320, 338, 316, 308, 300],\n", - " 966: [5036, 595, 582, 6331, 834, 1180, 4388, 5111, 5852, 5460],\n", - " 967: [52283,\n", - " 47970,\n", - " 27731,\n", - " 52975,\n", - " 58047,\n", - " 49822,\n", - " 39886,\n", - " 31086,\n", - " 60514,\n", - " 26939],\n", - " 979: [2408, 280, 2828, 2249, 6265, 4876, 6040, 4886, 501, 442],\n", - " 980: [5955, 6233, 6013, 5357, 5269, 5593, 6522, 5693, 6659, 6978],\n", - " 983: [382, 565, 2686, 862, 71, 769, 249, 645, 2633, 2221],\n", - " 984: [1370, 1551, 2424, 2480, 1296, 1517, 2027, 1914, 1299, 1863],\n", - " 991: [3399, 3452, 2941, 2875, 3624, 3514, 2863, 4030, 4098, 3612],\n", - " 1009: [8360,\n", - " 7762,\n", - " 6783,\n", - " 6872,\n", - " 32300,\n", - " 26614,\n", - " 37857,\n", - " 32598,\n", - " 60522,\n", - " 8932],\n", - " 1011: [4090,\n", - " 4835,\n", - " 4167,\n", - " 4297,\n", - " 2252,\n", - " 3969,\n", - " 4219,\n", - " 5453,\n", - " 4961,\n", - " 1601],\n", - " 1014: [49, 59985, 6984, 236, 6331, 34338, 6947, 5636, 8593, 6477],\n", - " 1021: [145, 549, 461, 58655, 278, 55286, 38, 227, 538, 117],\n", - " 1030: [59016,\n", - " 8998,\n", - " 49278,\n", - " 50005,\n", - " 58025,\n", - " 44022,\n", - " 7062,\n", - " 40955,\n", - " 48560,\n", - " 44759],\n", - " 1033: [5318,\n", - " 5544,\n", - " 5630,\n", - " 5496,\n", - " 6315,\n", - " 5308,\n", - " 6643,\n", - " 5672,\n", - " 6281,\n", - " 5923],\n", - " 1039: [4090,\n", - " 3956,\n", - " 5600,\n", - " 4123,\n", - " 5633,\n", - " 3612,\n", - " 3313,\n", - " 4618,\n", - " 2694,\n", - " 2692],\n", - " 1040: [43460,\n", - " 54268,\n", - " 42730,\n", - " 60037,\n", - " 52644,\n", - " 46572,\n", - " 50872,\n", - " 58315,\n", - " 46530,\n", - " 54094],\n", - " 1053: [3870,\n", - " 4294,\n", - " 4442,\n", - " 4221,\n", - " 4131,\n", - " 4437,\n", - " 4392,\n", - " 4035,\n", - " 4168,\n", - " 4293],\n", - " 704: [4426, 3894, 3975, 3983, 4442, 4595, 3812, 4127, 5177, 3822],\n", - " 934: [30793,\n", - " 27611,\n", - " 42725,\n", - " 43558,\n", - " 55288,\n", - " 50804,\n", - " 52668,\n", - " 40955,\n", - " 51939,\n", - " 55247],\n", - " 42: [36708, 5225, 4634, 1861, 7038, 3802, 8969, 6311, 2812, 3206],\n", - " 73: [2477, 6223, 53460, 46322, 3024, 5808, 5960, 3514, 2375, 707],\n", - " 82: [1397, 1262, 1348, 1590, 3614, 1358, 1257, 2050, 2261, 1658],\n", - " 159: [2568, 2562, 2472, 3247, 2819, 2824, 3048, 2557, 2554, 2835],\n", - " 161: [54281,\n", - " 4453,\n", - " 4299,\n", - " 5373,\n", - " 5341,\n", - " 5433,\n", - " 4186,\n", - " 4766,\n", - " 4148,\n", - " 4806],\n", - " 192: [2899, 3511, 3179, 2130, 267, 1686, 2498, 2006, 3239, 2918],\n", - " 216: [766, 58, 2967, 3087, 3374, 3174, 3467, 3486, 1076, 3199],\n", - " 219: [144,\n", - " 741,\n", - " 34405,\n", - " 38886,\n", - " 1326,\n", - " 55269,\n", - " 1867,\n", - " 8040,\n", - " 34530,\n", - " 59404],\n", - " 290: [1167, 1172, 1914, 1721, 1224, 1104, 6448, 468, 2345, 4398],\n", - " 379: [46965,\n", - " 32591,\n", - " 49910,\n", - " 31026,\n", - " 37727,\n", - " 8753,\n", - " 39419,\n", - " 33138,\n", - " 2856,\n", - " 7844],\n", - " 389: [569, 1667, 248, 882, 298, 283, 418, 507, 869, 480],\n", - " 400: [6593,\n", - " 5618,\n", - " 4735,\n", - " 4650,\n", - " 4272,\n", - " 53189,\n", - " 4599,\n", - " 4023,\n", - " 5380,\n", - " 4823],\n", - " 462: [4463, 4521, 4614, 5036, 5099, 5112, 4787, 5325, 4621, 5962],\n", - " 507: [277, 209, 3497, 226, 2836, 146, 268, 278, 261, 11],\n", - " 600: [53464,\n", - " 4188,\n", - " 4265,\n", - " 4770,\n", - " 4995,\n", - " 4373,\n", - " 5303,\n", - " 4654,\n", - " 4356,\n", - " 5431],\n", - " 721: [3122, 2406, 3632, 4021, 4544, 3037, 3303, 3861, 2768, 2972],\n", - " 793: [165, 46, 5, 2791, 187, 5553, 5646, 100, 5826, 5749],\n", - " 912: [6812,\n", - " 55814,\n", - " 42011,\n", - " 42007,\n", - " 6942,\n", - " 6936,\n", - " 41863,\n", - " 6914,\n", - " 6903,\n", - " 6897],\n", - " 932: [59985,\n", - " 43871,\n", - " 53953,\n", - " 46572,\n", - " 55820,\n", - " 55999,\n", - " 53972,\n", - " 44974,\n", - " 55288,\n", - " 50796],\n", - " 949: [844, 351, 350, 345, 851, 852, 843, 864, 333, 873],\n", - " 1025: [96, 528, 477, 460, 523, 346, 449, 265, 434, 268],\n", - " 46: [42, 7781, 189, 6777, 7132, 6909, 33672, 7832, 6409, 7226],\n", - " 74: [259, 34150, 4103, 4847, 8661, 7349, 4, 26122, 32387, 3301],\n", - " 342: [8941, 4547, 5137, 4776, 4615, 5236, 4846, 4536, 4889, 4533],\n", - " 508: [56885, 1416, 801, 1928, 1840, 43558, 662, 1945, 1583, 8874],\n", - " 580: [2207, 2928, 4237, 3430, 2937, 3412, 3420, 2500, 2454, 3181],\n", - " 774: [1262, 921, 1022, 1023, 1580, 1080, 1326, 1629, 1341, 1000],\n", - " 783: [2982,\n", - " 3289,\n", - " 2860,\n", - " 2802,\n", - " 3040,\n", - " 2935,\n", - " 2794,\n", - " 2797,\n", - " 52950,\n", - " 3351],\n", - " 1002: [937, 1060, 1686, 1447, 1324, 1831, 930, 941, 1190, 926],\n", - " 1023: [2019,\n", - " 1976,\n", - " 60943,\n", - " 1413,\n", - " 1493,\n", - " 2135,\n", - " 176,\n", - " 43708,\n", - " 177,\n", - " 45431],\n", - " 1048: [6663,\n", - " 1767,\n", - " 7485,\n", - " 6554,\n", - " 7032,\n", - " 5878,\n", - " 6770,\n", - " 2827,\n", - " 2185,\n", - " 2839],\n", - " 23: [7376, 230, 7299, 1683, 6506, 965, 2551, 2126, 26614, 1422],\n", - " 96: [44, 67, 473, 213, 4241, 5131, 488, 4705, 60147, 59014],\n", - " 124: [2847,\n", - " 7616,\n", - " 47952,\n", - " 3741,\n", - " 2787,\n", - " 8957,\n", - " 2792,\n", - " 3271,\n", - " 2548,\n", - " 3988],\n", - " 136: [7169,\n", - " 25888,\n", - " 8691,\n", - " 7442,\n", - " 25963,\n", - " 7743,\n", - " 7396,\n", - " 26116,\n", - " 8617,\n", - " 7385],\n", - " 148: [1459, 1391, 1993, 2108, 4676, 1950, 3962, 1755, 2364, 2561],\n", - " 189: [4367, 26903, 3945, 4801, 5093, 6535, 4610, 3972, 242, 5404],\n", - " 213: [798, 77, 1260, 2053, 3745, 2476, 3225, 1251, 4570, 2606],\n", - " 243: [511, 363, 742, 1342, 745, 359, 746, 357, 356, 355],\n", - " 323: [1044, 1669, 496, 2886, 483, 3688, 445, 1357, 1426, 6315],\n", - " 352: [3665, 2669, 2289, 3004, 4521, 4798, 3835, 4727, 3862, 4139],\n", - " 429: [2894,\n", - " 3698,\n", - " 1192,\n", - " 2303,\n", - " 1054,\n", - " 32598,\n", - " 491,\n", - " 34538,\n", - " 42723,\n", - " 32721],\n", - " 625: [2876, 2781, 3142, 3143, 2779, 3146, 2776, 2775, 2771, 2768],\n", - " 808: [25788,\n", - " 31694,\n", - " 31705,\n", - " 31770,\n", - " 31804,\n", - " 32011,\n", - " 32031,\n", - " 4543,\n", - " 32076,\n", - " 32179],\n", - " 843: [1565, 1284, 1285, 1885, 1887, 1290, 1295, 2221, 2211, 2227],\n", - " 847: [1094, 1237, 1086, 2170, 1335, 5194, 2094, 1542, 1824, 2029],\n", - " 963: [59387,\n", - " 5299,\n", - " 3334,\n", - " 33138,\n", - " 38388,\n", - " 27822,\n", - " 39446,\n", - " 3639,\n", - " 3683,\n", - " 45722],\n", - " 975: [5875, 5890, 6261, 5973, 6975, 7570, 5872, 6239, 6582, 6744],\n", - " 998: [2567, 2065, 2700, 2520, 2115, 2528, 3083, 2264, 2052, 2133],\n", - " 75: [6338,\n", - " 7564,\n", - " 7149,\n", - " 7915,\n", - " 6568,\n", - " 59421,\n", - " 59306,\n", - " 6144,\n", - " 7368,\n", - " 6988],\n", - " 427: [5650, 4745, 5445, 6352, 6319, 267, 4754, 7619, 6033, 6216],\n", - " 466: [3469, 4276, 2499, 3210, 2972, 2898, 2511, 2966, 2769, 2252],\n", - " 801: [122, 40, 180, 175, 82, 85, 185, 6303, 11, 5448],\n", - " 848: [3727, 4787, 2861, 3070, 3932, 3262, 2790, 3256, 3709, 3017],\n", - " 888: [720, 421, 417, 1006, 1007, 412, 409, 1010, 397, 393],\n", - " 191: [2987,\n", - " 2385,\n", - " 1827,\n", - " 3479,\n", - " 1028,\n", - " 2275,\n", - " 2402,\n", - " 54290,\n", - " 2334,\n", - " 2264],\n", - " 227: [2568, 2195, 3016, 2183, 2711, 2973, 3145, 2701, 2978, 2925],\n", - " 245: [3555, 3628, 4129, 4308, 3721, 4067, 3550, 3544, 3714, 3859],\n", - " 380: [840, 1593, 2089, 2080, 4573, 3339, 1233, 3329, 4080, 2801],\n", - " 408: [1081, 2154, 3457, 1143, 1824, 1624, 4268, 1076, 6787, 4121],\n", - " 668: [44657,\n", - " 8698,\n", - " 61361,\n", - " 58998,\n", - " 3962,\n", - " 58655,\n", - " 3145,\n", - " 59333,\n", - " 258,\n", - " 4484],\n", - " 747: [171, 118, 176, 175, 7, 100, 2881, 40962, 3142, 165],\n", - " 754: [485, 63, 105, 222, 250, 279, 43, 483, 206, 137],\n", - " 11: [7316,\n", - " 27790,\n", - " 5069,\n", - " 4750,\n", - " 45183,\n", - " 2758,\n", - " 4868,\n", - " 5453,\n", - " 4034,\n", - " 3683],\n", - " 16: [1921,\n", - " 54256,\n", - " 1396,\n", - " 8584,\n", - " 633,\n", - " 8620,\n", - " 56251,\n", - " 2634,\n", - " 27878,\n", - " 1937],\n", - " 81: [6001, 8228, 6889, 6017, 8336, 3857, 1359, 6812, 7352, 7925],\n", - " 86: [45635,\n", - " 55805,\n", - " 42734,\n", - " 59315,\n", - " 1212,\n", - " 43836,\n", - " 2104,\n", - " 41585,\n", - " 2273,\n", - " 1425],\n", - " 97: [2867, 2265, 3627, 4705, 5670, 4650, 2133, 1436, 3596, 4526],\n", - " 151: [692, 4642, 8643, 1641, 1739, 852, 3940, 4478, 1432, 4618],\n", - " 235: [5095,\n", - " 2863,\n", - " 5733,\n", - " 56176,\n", - " 5980,\n", - " 3108,\n", - " 2907,\n", - " 31193,\n", - " 2630,\n", - " 3099],\n", - " 251: [3502, 4069, 3853, 4447, 3572, 3507, 4148, 4228, 3496, 4527],\n", - " 258: [2788, 2721, 148, 281, 1197, 1302, 3217, 351, 1012, 240],\n", - " 278: [2037,\n", - " 2751,\n", - " 228,\n", - " 27728,\n", - " 3196,\n", - " 365,\n", - " 53956,\n", - " 31923,\n", - " 32316,\n", - " 34405],\n", - " 388: [5424,\n", - " 4213,\n", - " 53468,\n", - " 54881,\n", - " 49772,\n", - " 5135,\n", - " 50005,\n", - " 52279,\n", - " 48326,\n", - " 8365],\n", - " 551: [1, 159, 166, 169, 355, 176, 178, 358, 183, 190],\n", - " 606: [1525, 981, 973, 1542, 970, 969, 962, 564, 565, 957],\n", - " 614: [2032, 2026, 2165, 2977, 2549, 2300, 2155, 2532, 2086, 2409],\n", - " 681: [3055,\n", - " 179,\n", - " 3864,\n", - " 60147,\n", - " 31660,\n", - " 33237,\n", - " 56152,\n", - " 34336,\n", - " 39400,\n", - " 43926],\n", - " 686: [2962, 4599, 826, 2248, 4139, 411, 791, 4565, 4239, 3658],\n", - " 711: [4300, 4713, 4433, 4434, 5085, 4498, 5151, 4799, 4814, 5142],\n", - " 718: [2478, 3147, 2533, 2995, 2473, 6, 2945, 3667, 2425, 2614],\n", - " 873: [3270, 2107, 2820, 2829, 2674, 3169, 2797, 2522, 2150, 3275],\n", - " 962: [3238, 3390, 2711, 2764, 3178, 3015, 3678, 2697, 3648, 3402],\n", - " 985: [8138,\n", - " 32721,\n", - " 27801,\n", - " 7879,\n", - " 50189,\n", - " 7743,\n", - " 43460,\n", - " 3678,\n", - " 39715,\n", - " 2877],\n", - " 993: [66,\n", - " 54775,\n", - " 117,\n", - " 53189,\n", - " 198,\n", - " 33830,\n", - " 714,\n", - " 58490,\n", - " 38701,\n", - " 37475],\n", - " 184: [650, 1410, 4568, 5385, 537, 42734, 614, 220, 8589, 609],\n", - " 246: [2769, 3078, 3422, 3308, 3598, 2691, 3183, 3910, 2704, 3683],\n", - " 373: [44729,\n", - " 27416,\n", - " 48774,\n", - " 42734,\n", - " 26138,\n", - " 34164,\n", - " 56782,\n", - " 26163,\n", - " 26203,\n", - " 49220],\n", - " 430: [8593, 7300, 380, 8493, 7440, 6614, 7023, 6948, 8795, 7022],\n", - " 534: [8967,\n", - " 7184,\n", - " 1304,\n", - " 8928,\n", - " 2099,\n", - " 8617,\n", - " 8789,\n", - " 27611,\n", - " 37733,\n", - " 2526],\n", - " 805: [4356, 4350, 4991, 5666, 5159, 4427, 5503, 5423, 4727, 5214],\n", - " 58: [39419,\n", - " 41585,\n", - " 33166,\n", - " 33615,\n", - " 45210,\n", - " 43928,\n", - " 59900,\n", - " 50514,\n", - " 42002,\n", - " 45501],\n", - " 112: [48856, 368, 278, 346, 248, 347, 52885, 49910, 50189, 56775],\n", - " 367: [2699,\n", - " 3296,\n", - " 2745,\n", - " 2208,\n", - " 2196,\n", - " 2800,\n", - " 2289,\n", - " 51088,\n", - " 2888,\n", - " 27820],\n", - " 548: [1132, 795, 798, 799, 803, 805, 806, 793, 810, 838],\n", - " 791: [4967, 5036, 5609, 5878, 5670, 5927, 4972, 4960, 6273, 6541],\n", - " 909: [1749, 1629, 1625, 1623, 1620, 1616, 2152, 2153, 1633, 1612],\n", - " 1041: [249, 177, 368, 372, 336, 32, 304, 248, 106, 233],\n", - " 13: [1082, 6709, 8366, 1887, 2331, 3531, 3203, 5956, 3043, 2946],\n", - " 869: [2488, 2441, 2435, 2433, 2429, 2425, 2419, 2409, 2442, 2402],\n", - " 415: [5459, 3358, 2719, 5999, 708, 1252, 6347, 224, 5777, 434],\n", - " 477: [6978,\n", - " 2494,\n", - " 4251,\n", - " 5147,\n", - " 5975,\n", - " 42007,\n", - " 5792,\n", - " 1760,\n", - " 8376,\n", - " 1259],\n", - " 569: [1333, 803, 297, 506, 965, 1382, 523, 840, 489, 926],\n", - " 694: [2738,\n", - " 3262,\n", - " 6481,\n", - " 2313,\n", - " 7847,\n", - " 2342,\n", - " 2778,\n", - " 26230,\n", - " 2364,\n", - " 3054],\n", - " 729: [1812, 2053, 2342, 2389, 2386, 1772, 2594, 2707, 2713, 1647],\n", - " 741: [3241, 2714, 2767, 3181, 2844, 2976, 2701, 3253, 3420, 3914],\n", - " 965: [15, 83, 141, 1, 106, 70, 25, 198, 174, 146],\n", - " 17: [6368, 5928, 5319, 5903, 5152, 5644, 5039, 26680, 7647, 6383],\n", - " 40: [6841, 5860, 1916, 6502, 2361, 7190, 5986, 6986, 2731, 1837],\n", - " 114: [108, 707, 6126, 5054, 804, 1091, 9, 6816, 94, 498],\n", - " 137: [44828,\n", - " 46850,\n", - " 55069,\n", - " 44729,\n", - " 59014,\n", - " 51412,\n", - " 50851,\n", - " 60514,\n", - " 47518,\n", - " 45730],\n", - " 153: [7720, 6595, 4853, 6180, 5469, 4970, 7072, 4776, 7386, 2803],\n", - " 211: [8241,\n", - " 51007,\n", - " 51080,\n", - " 51084,\n", - " 33312,\n", - " 33166,\n", - " 33164,\n", - " 51540,\n", - " 51575,\n", - " 51662],\n", - " 286: [64716,\n", - " 60037,\n", - " 60147,\n", - " 60069,\n", - " 8740,\n", - " 59795,\n", - " 5447,\n", - " 4633,\n", - " 5264,\n", - " 61323],\n", - " 330: [4641,\n", - " 7149,\n", - " 4646,\n", - " 6419,\n", - " 27839,\n", - " 4728,\n", - " 62394,\n", - " 5768,\n", - " 7899,\n", - " 5958],\n", - " 336: [8927,\n", - " 27584,\n", - " 50153,\n", - " 9002,\n", - " 26138,\n", - " 1474,\n", - " 39444,\n", - " 56176,\n", - " 26662,\n", - " 61160],\n", - " 372: [6027, 6144, 6132, 6889, 6890, 6125, 6124, 6896, 6118, 6152],\n", - " 376: [27839,\n", - " 8198,\n", - " 7781,\n", - " 48783,\n", - " 8690,\n", - " 8972,\n", - " 34405,\n", - " 50851,\n", - " 8782,\n", - " 8128],\n", - " 412: [4949, 4552, 4005, 4304, 4620, 2686, 4167, 3946, 4707, 4094],\n", - " 447: [4443, 3624, 649, 4989, 4688, 3628, 4976, 4824, 359, 516],\n", - " 467: [43926,\n", - " 1860,\n", - " 940,\n", - " 42009,\n", - " 204,\n", - " 47629,\n", - " 2176,\n", - " 1392,\n", - " 58972,\n", - " 1633],\n", - " 490: [3909, 889, 26198, 1078, 2068, 3323, 3854, 1399, 3396, 3313],\n", - " 518: [3837, 166, 4200, 4355, 4129, 3247, 556, 3251, 3178, 566],\n", - " 608: [86, 471, 8614, 512, 6809, 551, 733, 1086, 969, 31698],\n", - " 619: [7307,\n", - " 1088,\n", - " 25777,\n", - " 1894,\n", - " 7303,\n", - " 8372,\n", - " 6963,\n", - " 26242,\n", - " 8266,\n", - " 31804],\n", - " 644: [1667, 1513, 2870, 1168, 1489, 1997, 2149, 2135, 1570, 1894],\n", - " 667: [1542, 2318, 2748, 2327, 49, 2655, 295, 223, 1600, 312],\n", - " 698: [43926,\n", - " 41566,\n", - " 58964,\n", - " 42718,\n", - " 47810,\n", - " 38701,\n", - " 46335,\n", - " 46578,\n", - " 52950,\n", - " 48416],\n", - " 709: [8958,\n", - " 48412,\n", - " 33621,\n", - " 26513,\n", - " 55442,\n", - " 7451,\n", - " 6481,\n", - " 2135,\n", - " 53921,\n", - " 45186],\n", - " 728: [458, 595, 282, 281, 280, 597, 1032, 605, 275, 274],\n", - " 733: [43396,\n", - " 38798,\n", - " 8870,\n", - " 8595,\n", - " 57669,\n", - " 48416,\n", - " 27851,\n", - " 6157,\n", - " 34437,\n", - " 6502],\n", - " 777: [288, 3309, 3780, 3247, 3408, 3472, 1339, 126, 1495, 4297],\n", - " 813: [5298, 5293, 6025, 5364, 7001, 5459, 6855, 5289, 6993, 5603],\n", - " 832: [126, 319, 6666, 2884, 6427, 5690, 223, 63, 6124, 6478],\n", - " 893: [59725,\n", - " 60766,\n", - " 4828,\n", - " 59404,\n", - " 59421,\n", - " 6041,\n", - " 59900,\n", - " 59729,\n", - " 4757,\n", - " 5164],\n", - " 901: [3640, 3053, 3272, 2744, 3432, 3354, 2801, 2749, 2734, 2944],\n", - " 937: [55402,\n", - " 42730,\n", - " 54999,\n", - " 26555,\n", - " 45517,\n", - " 2016,\n", - " 33817,\n", - " 32179,\n", - " 33794,\n", - " 58246],\n", - " 947: [3370, 3444, 3810, 3823, 4245, 3769, 4128, 4062, 4104, 4231],\n", - " 362: [1347, 911, 918, 176, 364, 1222, 1000, 387, 219, 269],\n", - " 375: [7142,\n", - " 8511,\n", - " 7054,\n", - " 8859,\n", - " 8337,\n", - " 27822,\n", - " 34319,\n", - " 7720,\n", - " 7061,\n", - " 7027],\n", - " 599: [35, 8800, 22, 7069, 8743, 18, 31, 26, 6957, 8336],\n", - " 632: [1782, 1003, 2232, 5308, 2221, 4267, 3462, 1544, 5570, 1112],\n", - " 779: [3868, 4448, 3631, 3928, 4994, 4989, 4422, 4341, 3667, 4265],\n", - " 1022: [46335,\n", - " 48082,\n", - " 31184,\n", - " 52448,\n", - " 53123,\n", - " 36531,\n", - " 52885,\n", - " 4147,\n", - " 27788,\n", - " 475],\n", - " 1034: [580, 1085, 522, 527, 1219, 516, 1471, 1723, 6951, 480],\n", - " 819: [6221, 5310, 6897, 6192, 5966, 5292, 5460, 6226, 6053, 6448],\n", - " 2: [4210, 4961, 4105, 2351, 4032, 1586, 2804, 5159, 4840, 3350],\n", - " 3: [3310, 3408, 3903, 4178, 3606, 3781, 3833, 3248, 3680, 4466],\n", - " 104: [1361, 1856, 1663, 1303, 1975, 1353, 1534, 1806, 1269, 2310],\n", - " 105: [982, 50440, 1592, 7649, 5673, 5856, 1027, 466, 6856, 526],\n", - " 218: [6344, 6337, 6436, 8910, 1545, 7162, 3200, 3107, 1398, 7367],\n", - " 250: [3666, 3608, 3128, 3725, 3822, 146, 4342, 3061, 3793, 4479],\n", - " 313: [4664, 3830, 5275, 2122, 1337, 2553, 5103, 6339, 3315, 5427],\n", - " 377: [5613, 4793, 4641, 5481, 6305, 6297, 5856, 4682, 4849, 5109],\n", - " 413: [58381,\n", - " 32294,\n", - " 8633,\n", - " 36708,\n", - " 55687,\n", - " 45106,\n", - " 26513,\n", - " 30749,\n", - " 8376,\n", - " 8930],\n", - " 576: [55282,\n", - " 57368,\n", - " 58347,\n", - " 59784,\n", - " 64716,\n", - " 151,\n", - " 56805,\n", - " 58418,\n", - " 56587,\n", - " 58381],\n", - " 586: [930, 1683, 1037, 2155, 2019, 2150, 1692, 2068, 1457, 1145],\n", - " 595: [6291,\n", - " 8951,\n", - " 8974,\n", - " 60074,\n", - " 48744,\n", - " 7484,\n", - " 5609,\n", - " 6316,\n", - " 4638,\n", - " 6380],\n", - " 610: [1564, 7380, 6442, 2690, 963, 6316, 2557, 927, 2616, 6997],\n", - " 613: [3529, 6780, 6672, 2758, 6387, 2867, 4012, 5670, 5600, 7307],\n", - " 637: [7561, 7387, 7394, 7405, 6679, 7416, 7419, 7442, 7444, 7445],\n", - " 663: [90, 516, 640, 1964, 475, 34, 17, 28, 322, 936],\n", - " 740: [5102, 5512, 5186, 6286, 6283, 6279, 5182, 6270, 5700, 6288],\n", - " 787: [4516, 5179, 6021, 5409, 4675, 4510, 5890, 4574, 6033, 4452],\n", - " 804: [3165, 2709, 3111, 2649, 2642, 3309, 2633, 3606, 3774, 2840],\n", - " 866: [8640,\n", - " 4306,\n", - " 31083,\n", - " 8142,\n", - " 4523,\n", - " 8128,\n", - " 8665,\n", - " 33819,\n", - " 4580,\n", - " 43987],\n", - " 883: [958, 725, 726, 727, 1145, 1003, 729, 1150, 1151, 1152],\n", - " 941: [2453, 2969, 2448, 1274, 1799, 2511, 2651, 1730, 1944, 3289],\n", - " 1007: [5541,\n", - " 6542,\n", - " 6516,\n", - " 5609,\n", - " 7481,\n", - " 8798,\n", - " 26055,\n", - " 27803,\n", - " 6653,\n", - " 35015],\n", - " 817: [411, 54, 80, 257, 416, 1643, 187, 145, 345, 5690],\n", - " 6: [6305, 7043, 6225, 268, 2550, 2099, 7216, 2407, 3143, 6989],\n", - " 7: [4426, 3605, 7706, 7394, 8451, 8191, 8195, 8859, 8581, 7891],\n", - " 14: [4842,\n", - " 3973,\n", - " 8977,\n", - " 5516,\n", - " 32300,\n", - " 27020,\n", - " 7474,\n", - " 8643,\n", - " 6319,\n", - " 26085],\n", - " 24: [3048,\n", - " 4077,\n", - " 59784,\n", - " 4002,\n", - " 4326,\n", - " 4091,\n", - " 3937,\n", - " 4213,\n", - " 3556,\n", - " 40414],\n", - " 57: [6416, 7223, 7379, 8195, 7898, 6290, 2165, 2775, 7147, 6855],\n", - " 60: [1529, 908, 784, 2031, 2025, 1223, 761, 1711, 1343, 1317],\n", - " 64: [58299,\n", - " 32019,\n", - " 42004,\n", - " 34332,\n", - " 34153,\n", - " 40851,\n", - " 58334,\n", - " 44004,\n", - " 55820,\n", - " 33312],\n", - " 84: [973, 1345, 1662, 1053, 705, 805, 847, 1542, 664, 945],\n", - " 90: [8117,\n", - " 36531,\n", - " 6548,\n", - " 61160,\n", - " 4566,\n", - " 5221,\n", - " 59103,\n", - " 54780,\n", - " 3783,\n", - " 59037],\n", - " 98: [3099, 2643, 2581, 3713, 3243, 2780, 3054, 2790, 3604, 1276],\n", - " 113: [2147, 2239, 2097, 2962, 2733, 2414, 2557, 3005, 5508, 2729],\n", - " 120: [4407,\n", - " 4249,\n", - " 3871,\n", - " 1943,\n", - " 1289,\n", - " 26965,\n", - " 8528,\n", - " 8484,\n", - " 26939,\n", - " 8266],\n", - " 123: [5107, 5994, 614, 5679, 1095, 5962, 5016, 6252, 5859, 5747],\n", - " 157: [5352, 5502, 7149, 5893, 6953, 5517, 7347, 5951, 5189, 6987],\n", - " 194: [5604, 5528, 2250, 6513, 4887, 5414, 2965, 6542, 5162, 308],\n", - " 200: [26555,\n", - " 7376,\n", - " 52375,\n", - " 2182,\n", - " 26122,\n", - " 3689,\n", - " 6567,\n", - " 4847,\n", - " 4840,\n", - " 5530],\n", - " 204: [2677, 3304, 5418, 3422, 5324, 6012, 6327, 6192, 5462, 5276],\n", - " 205: [34319,\n", - " 7938,\n", - " 53121,\n", - " 54881,\n", - " 49272,\n", - " 8972,\n", - " 52722,\n", - " 5146,\n", - " 52456,\n", - " 40148],\n", - " 225: [46, 97, 522, 650, 4477, 691, 1169, 3659, 4531, 225],\n", - " 229: [26119,\n", - " 2878,\n", - " 9015,\n", - " 3544,\n", - " 4023,\n", - " 2769,\n", - " 4921,\n", - " 44161,\n", - " 7745,\n", - " 31770],\n", - " 237: [3158, 4132, 3232, 3330, 3923, 2203, 4251, 2469, 2462, 661],\n", - " 242: [44191,\n", - " 49347,\n", - " 33838,\n", - " 49647,\n", - " 33836,\n", - " 49651,\n", - " 33834,\n", - " 49772,\n", - " 49822,\n", - " 49824],\n", - " 252: [1725, 1938, 1937, 2475, 1935, 2476, 2480, 1928, 1924, 1918],\n", - " 266: [9010,\n", - " 49272,\n", - " 4124,\n", - " 3311,\n", - " 55820,\n", - " 25750,\n", - " 44929,\n", - " 60943,\n", - " 27186,\n", - " 32149],\n", - " 270: [55872,\n", - " 40412,\n", - " 7094,\n", - " 8372,\n", - " 3203,\n", - " 60649,\n", - " 5308,\n", - " 26230,\n", - " 54796,\n", - " 2585],\n", - " 282: [6045, 5011, 5928, 6790, 5164, 6305, 6631, 5504, 8604, 5812],\n", - " 297: [44197, 1917, 251, 2237, 1448, 994, 1291, 981, 51412, 1438],\n", - " 309: [5729,\n", - " 5481,\n", - " 52668,\n", - " 5546,\n", - " 2206,\n", - " 4850,\n", - " 2927,\n", - " 4857,\n", - " 4236,\n", - " 5111],\n", - " 316: [4124, 4381, 8623, 5012, 3072, 8491, 126, 3115, 4911, 3299],\n", - " 327: [2085, 2797, 27266, 45, 3249, 8941, 3254, 353, 48082, 2804],\n", - " 356: [56367,\n", - " 46572,\n", - " 54999,\n", - " 60147,\n", - " 44204,\n", - " 44665,\n", - " 951,\n", - " 215,\n", - " 44759,\n", - " 3405],\n", - " 393: [6970,\n", - " 7938,\n", - " 3095,\n", - " 2382,\n", - " 6875,\n", - " 8485,\n", - " 31584,\n", - " 25788,\n", - " 6787,\n", - " 5782],\n", - " 394: [50442,\n", - " 51088,\n", - " 48416,\n", - " 59387,\n", - " 53129,\n", - " 52694,\n", - " 56563,\n", - " 56286,\n", - " 5025,\n", - " 49793],\n", - " 395: [75, 891, 840, 596, 615, 595, 1457, 1583, 965, 118],\n", - " 399: [5285, 5009, 5348, 5222, 5085, 5980, 5392, 6271, 5655, 4995],\n", - " 401: [606, 502, 299, 42728, 8581, 7176, 217, 7169, 6513, 30749],\n", - " 402: [5942,\n", - " 5055,\n", - " 7564,\n", - " 6862,\n", - " 7745,\n", - " 27186,\n", - " 7883,\n", - " 8198,\n", - " 6774,\n", - " 4971],\n", - " 405: [2401, 2347, 2858, 2979, 364, 2808, 2653, 416, 3250, 3496],\n", - " 417: [2916,\n", - " 2769,\n", - " 2320,\n", - " 2890,\n", - " 2827,\n", - " 3074,\n", - " 7845,\n", - " 6480,\n", - " 26203,\n", - " 2618],\n", - " 422: [56801,\n", - " 55280,\n", - " 58972,\n", - " 58975,\n", - " 58998,\n", - " 59014,\n", - " 55276,\n", - " 59016,\n", - " 59022,\n", - " 55272],\n", - " 437: [5927, 5269, 2557, 3019, 5839, 6130, 2496, 2501, 3143, 3689],\n", - " 455: [3250, 3224, 3751, 4340, 81, 3477, 4339, 7173, 3893, 3766],\n", - " 461: [6356,\n", - " 6273,\n", - " 47830,\n", - " 6791,\n", - " 7190,\n", - " 6480,\n", - " 5372,\n", - " 4205,\n", - " 4555,\n", - " 4611],\n", - " 473: [3967,\n", - " 4682,\n", - " 4452,\n", - " 7834,\n", - " 7217,\n", - " 35836,\n", - " 7134,\n", - " 3895,\n", - " 27768,\n", - " 4508],\n", - " 484: [988, 3308, 4119, 1623, 876, 963, 2108, 1397, 1198, 4186],\n", - " 499: [1493, 876, 745, 2000, 1581, 1337, 2005, 1285, 1675, 1465],\n", - " 526: [4082, 4262, 4256, 4255, 4250, 4249, 4248, 4247, 4246, 4245],\n", - " 537: [4299, 4283, 4936, 4642, 4280, 4945, 4278, 4640, 4949, 4930],\n", - " 542: [486, 491, 1563, 960, 780, 626, 1542, 959, 1642, 1466],\n", - " 557: [51007,\n", - " 333,\n", - " 47261,\n", - " 31923,\n", - " 45722,\n", - " 55269,\n", - " 8208,\n", - " 7706,\n", - " 8012,\n", - " 1545],\n", - " 563: [7561,\n", - " 39183,\n", - " 8383,\n", - " 39052,\n", - " 8387,\n", - " 38701,\n", - " 38499,\n", - " 8950,\n", - " 38388,\n", - " 8447],\n", - " 570: [60766,\n", - " 58293,\n", - " 41566,\n", - " 8477,\n", - " 58303,\n", - " 56563,\n", - " 49278,\n", - " 58291,\n", - " 56782,\n", - " 57951],\n", - " 575: [42632,\n", - " 3402,\n", - " 2641,\n", - " 3663,\n", - " 46337,\n", - " 3330,\n", - " 2686,\n", - " 5679,\n", - " 3896,\n", - " 2929],\n", - " 594: [33166,\n", - " 8195,\n", - " 27831,\n", - " 32325,\n", - " 7899,\n", - " 25916,\n", - " 5076,\n", - " 446,\n", - " 4190,\n", - " 31359],\n", - " 607: [2022, 2733, 613, 45635, 3178, 25753, 8808, 60649, 74, 302],\n", - " 631: [162, 4161, 472, 554, 328, 141, 426, 3232, 26, 3243],\n", - " 651: [40815,\n", - " 37729,\n", - " 36537,\n", - " 34164,\n", - " 55094,\n", - " 56174,\n", - " 37380,\n", - " 45672,\n", - " 47518,\n", - " 2812],\n", - " 664: [1814, 1690, 2178, 2185, 1627, 1725, 2315, 1621, 1882, 1926],\n", - " 685: [159, 559, 4682, 166, 476, 5266, 5788, 4803, 4732, 8183],\n", - " 690: [3563, 4062, 4220, 7933, 4011, 6724, 3496, 3472, 3486, 4520],\n", - " 696: [286, 271, 210, 361, 83, 503, 333, 487, 188, 79],\n", - " 724: [2577, 2753, 2105, 2184, 2267, 2708, 2441, 3171, 2252, 2816],\n", - " 738: [5159, 4649, 5112, 4125, 4768, 4445, 4370, 5291, 4444, 4484],\n", - " 762: [2702, 2800, 2794, 2787, 2786, 2784, 2780, 2775, 2772, 2766],\n", - " 763: [3747,\n", - " 4572,\n", - " 6982,\n", - " 34162,\n", - " 8873,\n", - " 7123,\n", - " 5136,\n", - " 34164,\n", - " 4345,\n", - " 27850],\n", - " 770: [498, 998, 1151, 436, 1610, 292, 1053, 1593, 443, 389],\n", - " 796: [2823, 2629, 2398, 2230, 2635, 2462, 2391, 2611, 2105, 2242],\n", - " 800: [2864, 2526, 3100, 3408, 2524, 2717, 2718, 3414, 3405, 3098],\n", - " 829: [6748, 5732, 353, 5636, 6708, 1104, 6583, 6986, 6473, 7394],\n", - " 836: [5397, 5226, 251, 8667, 44197, 568, 4531, 516, 5734, 688],\n", - " 882: [3301, 3689, 3688, 3686, 2842, 3303, 3680, 3679, 2829, 3675],\n", - " 900: [1873, 1345, 2094, 1673, 1190, 2312, 847, 965, 779, 592],\n", - " 903: [4881, 1242, 2106, 1951, 2193, 1189, 2051, 1920, 1997, 6618],\n", - " 914: [7076,\n", - " 59037,\n", - " 54745,\n", - " 59725,\n", - " 60760,\n", - " 58975,\n", - " 57464,\n", - " 54513,\n", - " 60649,\n", - " 58381],\n", - " 918: [3508, 4195, 3966, 3390, 3421, 4723, 3436, 4470, 4718, 1985],\n", - " 920: [2545, 2528, 2527, 2526, 2525, 2523, 2522, 2521, 2519, 2517],\n", - " 945: [25771,\n", - " 2865,\n", - " 8607,\n", - " 2870,\n", - " 3597,\n", - " 2874,\n", - " 2875,\n", - " 2879,\n", - " 2881,\n", - " 2889],\n", - " 950: [36477,\n", - " 8915,\n", - " 42728,\n", - " 8796,\n", - " 33836,\n", - " 58295,\n", - " 43708,\n", - " 25916,\n", - " 55080,\n", - " 27618],\n", - " 952: [56145,\n", - " 55999,\n", - " 55995,\n", - " 48738,\n", - " 55820,\n", - " 48741,\n", - " 55814,\n", - " 55805,\n", - " 55765,\n", - " 55687],\n", - " 982: [504, 55094, 53460, 763, 53129, 499, 496, 1584, 806, 59729],\n", - " 989: [4055, 3394, 1580, 2059, 1973, 827, 3303, 2066, 3444, 3966],\n", - " 1016: [2990,\n", - " 2279,\n", - " 3483,\n", - " 2795,\n", - " 2388,\n", - " 8967,\n", - " 7745,\n", - " 5248,\n", - " 8919,\n", - " 5588],\n", - " 1019: [5836, 4979, 5570, 4837, 6561, 5608, 516, 4895, 1003, 5213],\n", - " 1044: [43987,\n", - " 48319,\n", - " 61132,\n", - " 56251,\n", - " 44161,\n", - " 43917,\n", - " 52283,\n", - " 43836,\n", - " 36517,\n", - " 5961],\n", - " 1051: [4080,\n", - " 4926,\n", - " 3998,\n", - " 4982,\n", - " 4131,\n", - " 4945,\n", - " 4193,\n", - " 3839,\n", - " 3947,\n", - " 4388],\n", - " 917: [4238, 3073, 3539, 3761, 2961, 4256, 1123, 908, 3006, 1272],\n", - " 951: [8378,\n", - " 6889,\n", - " 52281,\n", - " 6725,\n", - " 30850,\n", - " 7306,\n", - " 31270,\n", - " 48262,\n", - " 59727,\n", - " 36529],\n", - " 997: [26270,\n", - " 25908,\n", - " 7811,\n", - " 7562,\n", - " 7218,\n", - " 30803,\n", - " 5582,\n", - " 45210,\n", - " 8268,\n", - " 26870],\n", - " 174: [2112,\n", - " 2060,\n", - " 55995,\n", - " 58154,\n", - " 1856,\n", - " 6244,\n", - " 2563,\n", - " 954,\n", - " 3078,\n", - " 56941],\n", - " 676: [2321, 3034, 3500, 3526, 3358, 3505, 2506, 3117, 2519, 3374],\n", - " 764: [2784, 2597, 2667, 2450, 2745, 5668, 2300, 5066, 2209, 4873],\n", - " 1052: [7493,\n", - " 8198,\n", - " 8451,\n", - " 27005,\n", - " 41527,\n", - " 44555,\n", - " 32029,\n", - " 25993,\n", - " 8014,\n", - " 7844],\n", - " 5: [50851, 62803, 2019, 440, 6424, 1679, 4928, 931, 7061, 4036],\n", - " 27: [603, 6448, 236, 1445, 1089, 3639, 2182, 6721, 852, 6193],\n", - " 33: [7035, 1821, 6383, 6053, 6839, 1224, 2542, 6261, 1472, 1282],\n", - " 134: [62394,\n", - " 47629,\n", - " 45442,\n", - " 45208,\n", - " 50005,\n", - " 52281,\n", - " 50153,\n", - " 44225,\n", - " 49957,\n", - " 45499],\n", - " 142: [4526, 4600, 3869, 4602, 3873, 4605, 3881, 3893, 3897, 3901],\n", - " 156: [3053, 2848, 2847, 2843, 2839, 2837, 2836, 2835, 2834, 2858],\n", - " 167: [5785, 442, 7418, 6375, 1586, 1488, 492, 910, 711, 5689],\n", - " 177: [1627, 1236, 5438, 5323, 824, 6102, 5952, 5650, 1701, 1097],\n", - " 224: [901, 1518, 1696, 1304, 806, 45732, 826, 25850, 8772, 305],\n", - " 269: [59985,\n", - " 6308,\n", - " 7461,\n", - " 26606,\n", - " 4094,\n", - " 3424,\n", - " 8968,\n", - " 48678,\n", - " 8983,\n", - " 4599],\n", - " 312: [463, 3403, 4213, 4735, 31225, 940, 3461, 7842, 7624, 4220],\n", - " 360: [3054, 3112, 3649, 3061, 3781, 3592, 5380, 4304, 3037, 4043],\n", - " 385: [50806,\n", - " 56274,\n", - " 52950,\n", - " 58315,\n", - " 50514,\n", - " 55250,\n", - " 55276,\n", - " 50354,\n", - " 987,\n", - " 26965],\n", - " 411: [2300, 3432, 3175, 2810, 2307, 3333, 3425, 5321, 6520, 2291],\n", - " 464: [2766, 2713, 3419, 2708, 2194, 2404, 2843, 2848, 2095, 2656],\n", - " 568: [4672, 4213, 4633, 4307, 3714, 3996, 3936, 3994, 4771, 4024],\n", - " 612: [8542,\n", - " 6784,\n", - " 6965,\n", - " 7791,\n", - " 31445,\n", - " 2379,\n", - " 8531,\n", - " 8584,\n", - " 8941,\n", - " 8196],\n", - " 630: [44761,\n", - " 52717,\n", - " 44555,\n", - " 44694,\n", - " 49347,\n", - " 53988,\n", - " 49132,\n", - " 46578,\n", - " 56563,\n", - " 44225],\n", - " 706: [37382,\n", - " 27584,\n", - " 54281,\n", - " 26840,\n", - " 41573,\n", - " 59727,\n", - " 33836,\n", - " 25927,\n", - " 55908,\n", - " 39052],\n", - " 737: [1051, 1859, 555, 945, 2289, 1041, 235, 1030, 659, 161],\n", - " 749: [1020, 1167, 1077, 1498, 2189, 1563, 1220, 1258, 1924, 1210],\n", - " 756: [1361, 1621, 1353, 2104, 2432, 2324, 1503, 2523, 1870, 2360],\n", - " 811: [5957, 420, 473, 6954, 2938, 3115, 6720, 202, 6636, 3573],\n", - " 853: [64716,\n", - " 58246,\n", - " 58293,\n", - " 58559,\n", - " 58622,\n", - " 59022,\n", - " 59103,\n", - " 58162,\n", - " 59141,\n", - " 59387],\n", - " 884: [3866,\n", - " 3353,\n", - " 3998,\n", - " 3274,\n", - " 3812,\n", - " 3269,\n", - " 2146,\n", - " 2757,\n", - " 46572,\n", - " 25963],\n", - " 955: [484, 1101, 7250, 27513, 8012, 27611, 300, 1444, 354, 44199],\n", - " 1032: [49932,\n", - " 27776,\n", - " 45517,\n", - " 44974,\n", - " 47950,\n", - " 44197,\n", - " 36517,\n", - " 55577,\n", - " 50804,\n", - " 27706],\n", - " 1043: [5404,\n", - " 5563,\n", - " 5343,\n", - " 4686,\n", - " 6042,\n", - " 6130,\n", - " 5956,\n", - " 4772,\n", - " 5682,\n", - " 4781],\n", - " 370: [1437, 1488, 1021, 1636, 951, 954, 1872, 1169, 1152, 1865],\n", - " 670: [27826, 45431, 7327, 8959, 98, 7618, 75, 45501, 297, 160],\n", - " 923: [1412, 490, 1574, 1575, 940, 941, 1583, 942, 1585, 935],\n", - " 931: [1, 747, 838, 186, 187, 487, 339, 748, 380, 194],\n", - " 969: [848, 1111, 988, 1096, 791, 1539, 1034, 1647, 1592, 1204],\n", - " 12: [6991, 6242, 7157, 6920, 6770, 8261, 7461, 7063, 6156, 6269],\n", - " 597: [27731,\n", - " 7844,\n", - " 7883,\n", - " 1663,\n", - " 2415,\n", - " 32011,\n", - " 44197,\n", - " 7832,\n", - " 27563,\n", - " 8008],\n", - " 195: [3955, 4008, 4223, 3946, 4644, 4169, 4741, 4503, 4153, 4102],\n", - " 337: [667,\n", - " 7084,\n", - " 8045,\n", - " 7166,\n", - " 2397,\n", - " 8991,\n", - " 27851,\n", - " 26163,\n", - " 6978,\n", - " 25927],\n", - " 910: [7158,\n", - " 7459,\n", - " 7720,\n", - " 8860,\n", - " 26558,\n", - " 32600,\n", - " 34336,\n", - " 8644,\n", - " 7382,\n", - " 7311],\n", - " 63: [293, 741, 732, 502, 725, 581, 300, 489, 375, 330],\n", - " 70: [3068,\n", - " 5989,\n", - " 2456,\n", - " 5102,\n", - " 31364,\n", - " 56563,\n", - " 5958,\n", - " 3165,\n", - " 5740,\n", - " 5080],\n", - " 99: [1993,\n", - " 1797,\n", - " 48877,\n", - " 2041,\n", - " 1958,\n", - " 1872,\n", - " 30803,\n", - " 2468,\n", - " 58299,\n", - " 516],\n", - " 121: [1411, 760, 764, 765, 766, 778, 781, 783, 785, 788],\n", - " 130: [5585,\n", - " 27434,\n", - " 7445,\n", - " 4243,\n", - " 6299,\n", - " 4249,\n", - " 2528,\n", - " 5349,\n", - " 4081,\n", - " 5424],\n", - " 244: [3108, 3178, 3710, 3846, 3113, 3664, 2580, 4378, 2456, 4124],\n", - " 291: [52462,\n", - " 55999,\n", - " 52644,\n", - " 60397,\n", - " 27821,\n", - " 52241,\n", - " 51077,\n", - " 8369,\n", - " 27005,\n", - " 27584],\n", - " 335: [4082, 4889, 5527, 5015, 5026, 5034, 5048, 4614, 5503, 4535],\n", - " 361: [7920, 6718, 1748, 973, 8983, 2931, 2210, 500, 6525, 7587],\n", - " 470: [7318,\n", - " 37386,\n", - " 26686,\n", - " 8526,\n", - " 37240,\n", - " 8520,\n", - " 36535,\n", - " 36531,\n", - " 7307,\n", - " 8493],\n", - " 497: [58655,\n", - " 8643,\n", - " 32296,\n", - " 692,\n", - " 7005,\n", - " 1023,\n", - " 194,\n", - " 32017,\n", - " 800,\n", - " 45662],\n", - " 620: [5517, 5506, 6969, 6326, 7486, 6552, 5611, 5995, 8915, 6424],\n", - " 648: [2068, 1384, 2262, 2151, 1937, 2043, 2126, 1783, 2253, 1474],\n", - " 666: [57951,\n", - " 7063,\n", - " 7070,\n", - " 34164,\n", - " 6971,\n", - " 7980,\n", - " 31364,\n", - " 20,\n", - " 6031,\n", - " 25938],\n", - " 710: [45, 6603, 5970, 40, 6378, 5464, 5398, 6337, 6582, 6460],\n", - " 794: [5397, 5942, 5940, 5938, 5937, 5936, 5935, 5930, 4903, 5928],\n", - " 854: [948, 788, 792, 795, 799, 801, 806, 263, 807, 785],\n", - " 861: [4721, 728, 335, 101, 786, 329, 3909, 865, 639, 26],\n", - " 87: [129, 45, 273, 532, 337, 537, 104, 43, 77, 175],\n", - " 317: [7915, 34072, 5125, 64, 5706, 470, 4377, 4238, 5747, 5613],\n", - " 324: [48741,\n", - " 7482,\n", - " 26686,\n", - " 60522,\n", - " 42004,\n", - " 34338,\n", - " 26398,\n", - " 6513,\n", - " 7318,\n", - " 6315],\n", - " 502: [849, 1468, 266, 7257, 6301, 1983, 5444, 1266, 718, 1649],\n", - " 559: [6157, 5463, 5276, 5066, 6724, 5246, 5747, 5058, 6257, 5325],\n", - " 973: [7728,\n", - " 6881,\n", - " 6657,\n", - " 8985,\n", - " 6869,\n", - " 7809,\n", - " 25927,\n", - " 6816,\n", - " 7260,\n", - " 8825],\n", - " 1015: [1961,\n", - " 3046,\n", - " 2086,\n", - " 2614,\n", - " 2126,\n", - " 1956,\n", - " 2589,\n", - " 2868,\n", - " 2800,\n", - " 2947],\n", - " 1017: [270, 806, 327, 275, 748, 940, 263, 252, 1201, 1399],\n", - " 85: [1779, 3717, 4821, 5809, 4800, 7706, 7191, 8610, 26870, 8808],\n", - " 306: [2505, 2946, 2701, 2614, 2613, 2704, 3285, 2942, 3276, 2938],\n", - " 653: [7383, 7176, 6743, 7119, 6473, 6722, 7445, 7295, 8810, 7984],\n", - " 371: [36708,\n", - " 1902,\n", - " 1949,\n", - " 2065,\n", - " 1928,\n", - " 1623,\n", - " 1658,\n", - " 2077,\n", - " 1340,\n", - " 1570],\n", - " 566: [922, 1224, 1278, 831, 985, 813, 793, 1371, 526, 1197],\n", - " 331: [5556, 5874, 5193, 5099, 6423, 5194, 5202, 5512, 5508, 5869],\n", - " 665: [3453, 3257, 1220, 3253, 3252, 3245, 3242, 3239, 3238, 1219],\n", - " 872: [2436, 1844, 1687, 2592, 2879, 2142, 2357, 2431, 1746, 2669],\n", - " 879: [7019, 7445, 5983, 6413, 5980, 6250, 7135, 6984, 5971, 6979],\n", - " 486: [5065, 4177, 5667, 5105, 5673, 6897, 6885, 7008, 4626, 5462],\n", - " 864: [5677, 4986, 5505, 4798, 5146, 5493, 4977, 6005, 4803, 5331],\n", - " 52: [4558, 3732, 7010, 8376, 5108, 8795, 1233, 90, 617, 102],\n", - " 288: [143, 174, 239, 240, 59, 243, 248, 172, 234, 252],\n", - " 9: [3077, 2693, 2198, 2696, 2699, 2700, 2701, 2702, 2196, 2704],\n", - " 117: [5078, 5832, 6793, 3643, 4466, 5002, 6720, 5940, 5379, 5743],\n", - " 220: [56715,\n", - " 56176,\n", - " 49957,\n", - " 53121,\n", - " 5003,\n", - " 48738,\n", - " 52579,\n", - " 56941,\n", - " 4250,\n", - " 60037],\n", - " 544: [4082, 3729, 4556, 3853, 4326, 314, 4397, 4245, 4929, 5111],\n", - " 999: [56885,\n", - " 53322,\n", - " 34321,\n", - " 6795,\n", - " 51927,\n", - " 3153,\n", - " 31685,\n", - " 6978,\n", - " 42718,\n", - " 8593],\n", - " 458: [852, 363, 982, 802, 3467, 2702, 678, 448, 314, 380],\n", - " 974: [6326, 5275, 7042, 241, 870, 143, 1310, 1291, 593, 8985],\n", - " 546: [2125, 2794, 2131, 2644, 2182, 946, 2082, 3251, 1107, 1405],\n", - " 55: [1336,\n", - " 1271,\n", - " 6196,\n", - " 1875,\n", - " 39381,\n", - " 1997,\n", - " 5289,\n", - " 1821,\n", - " 42734,\n", - " 1611],\n", - " 363: [3623, 3563, 3093, 3869, 3755, 3247, 3214, 3235, 2798, 3857],\n", - " 445: [5633, 5706, 492, 7199, 453, 344, 380, 6684, 1093, 5694],\n", - " 492: [613, 5004, 4251, 727, 1317, 1508, 1380, 1154, 481, 1010],\n", - " 234: [245, 6058, 5420, 5304, 5630, 4479, 673, 6066, 4602, 4928],\n", - " 1027: [2115, 1957, 2000, 1468, 1769, 2150, 2190, 4510, 157, 1392],\n", - " 140: [3267, 3388, 2738, 3049, 3556, 1372, 199, 934, 3148, 2657],\n", - " 926: [5085, 1213, 4332, 1692, 1051, 5053, 631, 1472, 4893, 495],\n", - " 781: [2647, 2704, 2290, 2928, 2381, 2574, 3102, 2713, 2924, 3054],\n", - " 825: [14, 1305, 1782, 1850, 1342, 2408, 1974, 1756, 1590, 1245],\n", - " 913: [1, 120, 122, 53, 52, 124, 48, 58, 47, 45],\n", - " 453: [1095,\n", - " 1904,\n", - " 6731,\n", - " 8383,\n", - " 5013,\n", - " 5358,\n", - " 5823,\n", - " 5893,\n", - " 5111,\n", - " 30825],\n", - " 540: [6319, 3313, 4125, 5635, 4662, 4729, 5646, 6198, 3695, 390],\n", - " 66: [710, 2001, 2712, 6166, 279, 726, 272, 49793, 60037, 44937],\n", - " 185: [2423, 3036, 2323, 3528, 4359, 3539, 4903, 4780, 3677, 1879],\n", - " 222: [8718, 6873, 8, 3150, 3122, 26554, 7247, 8520, 2536, 2572],\n", - " 498: [8605,\n", - " 31590,\n", - " 42721,\n", - " 42723,\n", - " 31617,\n", - " 31658,\n", - " 31689,\n", - " 31696,\n", - " 42738,\n", - " 31770],\n", - " 994: [8371,\n", - " 7706,\n", - " 8587,\n", - " 31590,\n", - " 8208,\n", - " 7883,\n", - " 37853,\n", - " 7646,\n", - " 8667,\n", - " 26085],\n", - " 165: [6429, 259, 2356, 387, 6667, 27, 164, 3068, 2876, 347],\n", - " 202: [877, 1266, 1276, 1107, 1111, 1112, 1114, 1036, 1290, 1115],\n", - " 180: [6181, 6157, 7079, 8602, 3942, 3251, 3357, 8379, 6263, 2261],\n", - " 93: [8207,\n", - " 8235,\n", - " 8484,\n", - " 31429,\n", - " 34143,\n", - " 4975,\n", - " 8831,\n", - " 32584,\n", - " 38499,\n", - " 32139],\n", - " 261: [8966, 7034, 5248, 6303, 4526, 4629, 4212, 4837, 4566, 4370],\n", - " 435: [2240, 2083, 2519, 2078, 2074, 2073, 2072, 2071, 2517, 2067],\n", - " 322: [6247, 5343, 6221, 5996, 6568, 6118, 5447, 6510, 5764, 6231],\n", - " 238: [51080,\n", - " 33004,\n", - " 55118,\n", - " 49280,\n", - " 31435,\n", - " 31590,\n", - " 44191,\n", - " 31359,\n", - " 62803,\n", - " 31685],\n", - " 425: [3918, 4448, 4393, 4588, 4972, 4334, 4637, 4743, 4995, 4621],\n", - " 512: [55250,\n", - " 32296,\n", - " 1055,\n", - " 43921,\n", - " 2294,\n", - " 1862,\n", - " 54612,\n", - " 27873,\n", - " 34321,\n", - " 50162],\n", - " 725: [4389, 4705, 4164, 4695, 4087, 3635, 4969, 4409, 3901, 4003],\n", - " 732: [3440, 3984, 3856, 3506, 3702, 2732, 3823, 3537, 3101, 3965],\n", - " 108: [3640,\n", - " 2847,\n", - " 4124,\n", - " 50796,\n", - " 49649,\n", - " 4116,\n", - " 56174,\n", - " 53468,\n", - " 1388,\n", - " 51086],\n", - " 592: [44665,\n", - " 26172,\n", - " 42728,\n", - " 26150,\n", - " 27340,\n", - " 56715,\n", - " 48738,\n", - " 7584,\n", - " 26002,\n", - " 26119],\n", - " 443: [45726,\n", - " 25788,\n", - " 4603,\n", - " 5494,\n", - " 40412,\n", - " 4679,\n", - " 45175,\n", - " 8827,\n", - " 42734,\n", - " 61132],\n", - " 916: [27768,\n", - " 37382,\n", - " 25940,\n", - " 37475,\n", - " 25938,\n", - " 37720,\n", - " 25927,\n", - " 25923,\n", - " 37731,\n", - " 25916],\n", - " 736: [6093, 6957, 8371, 6215, 7154, 6794, 7027, 8377, 8459, 8365],\n", - " 961: [1583,\n", - " 1785,\n", - " 6790,\n", - " 1145,\n", - " 7572,\n", - " 7405,\n", - " 27689,\n", - " 26492,\n", - " 1626,\n", - " 8131],\n", - " 1012: [6216,\n", - " 6377,\n", - " 6125,\n", - " 6482,\n", - " 6094,\n", - " 7163,\n", - " 6326,\n", - " 7155,\n", - " 6101,\n", - " 7134],\n", - " 515: [7124, 6191, 7445, 6299, 6159, 1880, 3871, 6339, 6180, 1374],\n", - " 978: [706, 1059, 1036, 727, 1034, 1029, 729, 1275, 1589, 1473],\n", - " 28: [3132, 3825, 2566, 149, 1867, 55269, 3064, 3797, 3728, 3993],\n", - " 475: [3515, 4205, 1696, 1050, 2236, 26198, 575, 51709, 810, 345],\n", - " 598: [27803,\n", - " 25764,\n", - " 59306,\n", - " 47644,\n", - " 54513,\n", - " 57538,\n", - " 27768,\n", - " 25805,\n", - " 32179,\n", - " 43836],\n", - " 943: [1421, 1963, 1107, 1747, 1428, 1125, 1729, 1281, 1226, 1980],\n", - " 520: [4104, 4039, 4795, 3600, 3518, 3738, 4251, 3527, 4677, 2461],\n", - " 697: [938, 1693, 2166, 1046, 1669, 2175, 2893, 1968, 981, 1468],\n", - " 849: [5385, 4393, 4985, 4391, 4390, 4389, 4388, 4987, 4387, 4989],\n", - " 1003: [8484,\n", - " 31367,\n", - " 7013,\n", - " 7237,\n", - " 7047,\n", - " 7194,\n", - " 7828,\n", - " 8827,\n", - " 626,\n", - " 8811],\n", - " 705: [2421, 2306, 1754, 2445, 2600, 2365, 2095, 1857, 2677, 2864],\n", - " 48: [3073, 2613, 5172, 7134, 8275, 2542, 33138, 6244, 3204, 8492],\n", - " 29: [7943,\n", - " 7698,\n", - " 1593,\n", - " 26745,\n", - " 25753,\n", - " 1045,\n", - " 8604,\n", - " 1103,\n", - " 1040,\n", - " 6746],\n", - " 231: [627, 58, 56949, 1032, 33836, 1113, 5499, 157, 164, 719],\n", - " 699: [485, 468, 301, 73, 69, 436, 50794, 8537, 378, 37741],\n", - " 448: [4722, 4168, 5111, 4477, 4886, 6686, 5523, 4085, 4102, 1841],\n", - " 750: [3968, 4453, 4509, 5295, 3849, 5202, 5214, 4121, 1352, 4683],\n", - " 782: [2930, 2885, 2473, 2408, 3061, 3519, 2610, 2443, 3396, 1380],\n", - " 860: [4366, 5236, 4521, 4355, 5823, 5187, 4517, 4995, 5464, 4531],\n", - " 768: [960, 2017, 1997, 1126, 1780, 1400, 1983, 928, 961, 1237],\n", - " 127: [2824, 3189, 3605, 3252, 7373, 8636, 3592, 58047, 269, 3528],\n", - " 894: [486, 118, 177, 1014, 830, 900, 38, 862, 416, 298]})" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from collections import defaultdict\n", - "import numpy as np\n", - "\n", - "# 학습용 데이터에 존재하는 모든 사용자와 모든 영화의 조합에 대해 평갓값을 예측한다\n", - "train_all_pred = reg.predict(train_all_x.values)\n", - "\n", - "pred_train_all = train_all_keys.copy()\n", - "pred_train_all[\"rating_pred\"] = train_all_pred\n", - "pred_matrix = pred_train_all.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating_pred\")\n", - "\n", - "# 사용자가 학습용 데이터 안에서 평가하지 않은 영화 중에서\n", - "# 예측 평갓값이 높은 순으로 10편의 영화를 순위 형식으로 추천 리스트로 만든다\n", - "pred_user2items = defaultdict(list)\n", - "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", - "for user_id in movielens_train.user_id.unique():\n", - " movie_indexes = np.argsort(-pred_matrix.loc[user_id, :]).values\n", - " for movie_index in movie_indexes:\n", - " movie_id = user_movie_matrix.columns[movie_index]\n", - " if movie_id not in (user_evaluated_movies[user_id]):\n", - " pred_user2items[user_id].append(movie_id)\n", - " if len(pred_user2items[user_id]) == 10:\n", - " break\n", - "pred_user2items" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "c3a25c25", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "6150 2 648 2.0 868244699 \n", - "6531 2 733 3.0 868244562 \n", - "6813 2 736 3.0 868244698 \n", - "7113 2 780 3.0 868244698 \n", - "7506 2 786 3.0 868244562 \n", - "7661 2 802 2.0 868244603 \n", - "7779 2 858 2.0 868245645 \n", - "8077 2 1049 3.0 868245920 \n", - "8127 2 1073 3.0 868244562 \n", - "8381 2 1210 4.0 868245644 \n", - "8771 2 1356 3.0 868244603 \n", - "9097 2 1544 3.0 868245920 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "6150 Mission: Impossible (1996) \n", - "6531 Rock, The (1996) \n", - "6813 Twister (1996) \n", - "7113 Independence Day (a.k.a. ID4) (1996) \n", - "7506 Eraser (1996) \n", - "7661 Phenomenon (1996) \n", - "7779 Godfather, The (1972) \n", - "8077 Ghost and the Darkness, The (1996) \n", - "8127 Willy Wonka & the Chocolate Factory (1971) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "8771 Star Trek: First Contact (1996) \n", - "9097 Lost World: Jurassic Park, The (Jurassic Park ... \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "6150 [Action, Adventure, Mystery, Thriller] \n", - "6531 [Action, Adventure, Thriller] \n", - "6813 [Action, Adventure, Romance, Thriller] \n", - "7113 [Action, Adventure, Sci-Fi, War] \n", - "7506 [Action, Drama, Thriller] \n", - "7661 [Drama, Romance] \n", - "7779 [Crime, Drama] \n", - "8077 [Action, Adventure] \n", - "8127 [Children, Comedy, Fantasy, Musical] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "8771 [Action, Adventure, Sci-Fi, Thriller] \n", - "9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "6150 [confusing, confusing plot, memorable sequence... 12.0 \n", - "6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n", - "6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n", - "7113 [action, alien invasion, aliens, will smith, a... 14.0 \n", - "7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n", - "7661 [interesting concept, own, john travolta, john... 15.0 \n", - "7779 [oscar (best picture), marlon brando, classic,... 9.0 \n", - "8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n", - "8127 [based on a book, roald dahl, based on a book,... 20.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n", - "8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n", - "9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 " - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2인 사용자가 학습 데이터에 평가를 부여한 영화 목록\n", - "movielens_train[movielens_train.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "a178ecdc", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[4210, 4961, 4105, 2351, 4032, 1586, 2804, 5159, 4840, 3350]" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pred_user2items[2]" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "09555a1f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
40134105Evil Dead, The (1981)[Fantasy, Horror][directorial debut, bruce campbell, cult class...
41184210Manhunter (1986)[Action, Crime, Drama, Horror, Thriller][hannibal lecter, serial killer, ei muista, er...
48674961Pornstar: The Legend of Ron Jeremy (2001)[Documentary][pornography]
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "4013 4105 Evil Dead, The (1981) \n", - "4118 4210 Manhunter (1986) \n", - "4867 4961 Pornstar: The Legend of Ron Jeremy (2001) \n", - "\n", - " genre \\\n", - "4013 [Fantasy, Horror] \n", - "4118 [Action, Crime, Drama, Horror, Thriller] \n", - "4867 [Documentary] \n", - "\n", - " tag \n", - "4013 [directorial debut, bruce campbell, cult class... \n", - "4118 [hannibal lecter, serial killer, ei muista, er... \n", - "4867 [pornography] " - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2에 대한 추천(4210, 4961, 4105)\n", - "movies[movies.movie_id.isin([4210, 4961, 4105])]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7a42fa17", - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","metadata":{"id":"0d5889b3"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/RF.ipynb)"],"id":"0d5889b3"},{"cell_type":"markdown","metadata":{"id":"4935d845"},"source":["# RandomForest(회귀 모델)"],"id":"4935d845"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":4283,"status":"ok","timestamp":1672119776862,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"},"user_tz":-540},"id":"52eedd0b","outputId":"d53d23e4-53b5-440a-b5d5-5432ccedb2d6"},"outputs":[{"name":"stdout","output_type":"stream","text":["--2022-12-27 05:42:50-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 64.4MB/s in 1.0s \n","\n","2022-12-27 05:42:51 (64.4 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"],"id":"52eedd0b"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":73811,"status":"ok","timestamp":1672119850668,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"},"user_tz":-540},"id":"d3c02fa7","outputId":"2703b391-837b-4ced-8876-73fe4b6b7a9e"},"outputs":[{"name":"stdout","output_type":"stream","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"],"id":"d3c02fa7"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":455},"executionInfo":{"elapsed":24,"status":"ok","timestamp":1672119850668,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"},"user_tz":-540},"id":"683d7c01-91e8-4835-b9cc-332b16c13966","outputId":"3df466b9-dbeb-47f1-ecd2-105e2288c100"},"outputs":[{"data":{"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_id12345678910...62000621136229362344623946280162803631136399264716
user_id
1NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
2NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
3NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
51.0NaNNaNNaNNaNNaN3.0NaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
..................................................................
1048NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1050NaN3.0NaNNaNNaN3.0NaNNaNNaN3.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
10515.0NaN3.0NaN3.0NaN4.0NaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1052NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
10535.0NaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n","

1000 rows × 6673 columns

\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "],"text/plain":["movie_id 1 2 3 4 5 6 7 8 9 \\\n","user_id \n","1 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n","2 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n","3 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n","4 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n","5 1.0 NaN NaN NaN NaN NaN 3.0 NaN NaN \n","... ... ... ... ... ... ... ... ... ... \n","1048 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n","1050 NaN 3.0 NaN NaN NaN 3.0 NaN NaN NaN \n","1051 5.0 NaN 3.0 NaN 3.0 NaN 4.0 NaN NaN \n","1052 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n","1053 5.0 NaN NaN NaN NaN NaN NaN NaN NaN \n","\n","movie_id 10 ... 62000 62113 62293 62344 62394 62801 62803 63113 \\\n","user_id ... \n","1 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","2 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","3 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","4 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","5 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","... ... ... ... ... ... ... ... ... ... ... \n","1048 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","1050 3.0 ... NaN NaN NaN NaN NaN NaN NaN NaN \n","1051 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","1052 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","1053 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","\n","movie_id 63992 64716 \n","user_id \n","1 NaN NaN \n","2 NaN NaN \n","3 NaN NaN \n","4 NaN NaN \n","5 NaN NaN \n","... ... ... \n","1048 NaN NaN \n","1050 NaN NaN \n","1051 NaN NaN \n","1052 NaN NaN \n","1053 NaN NaN \n","\n","[1000 rows x 6673 columns]"]},"execution_count":3,"metadata":{},"output_type":"execute_result"}],"source":["# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다\n","user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n","user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n","movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n","user_movie_matrix"],"id":"683d7c01-91e8-4835-b9cc-332b16c13966"},{"cell_type":"code","execution_count":null,"metadata":{"id":"1f34610c"},"outputs":[],"source":["# 학습에 사용하는 학습용 데이터 안의 사용자와 영화의 조합을 얻는다\n","train_keys = movielens_train[[\"user_id\", \"movie_id\"]]\n","# 학습용 데이터 안의 평갓값을 학습의 정답 데이터로 얻는다\n","train_y = movielens_train.rating.values\n","\n","# 평갓값을 예측할 테스트용 데이터 안의 사용자와 영화의 조합을 얻는다\n","test_keys = movielens_test[[\"user_id\", \"movie_id\"]]\n","# 순위 형식의 추천 리스트 작성을 위해 학습용 데이터에 존재하는 모든 사용자와 모든 영화의 조합을 얻는다\n","train_all_keys = user_movie_matrix.stack(dropna=False).reset_index()[[\"user_id\", \"movie_id\"]]\n"],"id":"1f34610c"},{"cell_type":"code","execution_count":null,"metadata":{"id":"9f5053fe"},"outputs":[],"source":["# 특징량을 작성한다\n","train_x = train_keys.copy()\n","test_x = test_keys.copy()\n","train_all_x = train_all_keys.copy()"],"id":"9f5053fe"},{"cell_type":"code","execution_count":null,"metadata":{"id":"3b756eca"},"outputs":[],"source":["# 학습용 데이터에 존재하는 사용자별 평갓값의 최솟값, 최댓값, 평균값\n","# 및, 영화별 평갓값의 최솟값, 최댓값, 평균값을 특징량으로 추가한다\n","aggregators = [\"min\", \"max\", \"mean\"]\n","user_features = movielens_train.groupby(\"user_id\").rating.agg(aggregators).to_dict()\n","movie_features = movielens_train.groupby(\"movie_id\").rating.agg(aggregators).to_dict()\n","for agg in aggregators:\n"," train_x[f\"u_{agg}\"] = train_x[\"user_id\"].map(user_features[agg])\n"," test_x[f\"u_{agg}\"] = test_x[\"user_id\"].map(user_features[agg])\n"," train_all_x[f\"u_{agg}\"] = train_all_x[\"user_id\"].map(user_features[agg])\n"," train_x[f\"m_{agg}\"] = train_x[\"movie_id\"].map(movie_features[agg])\n"," test_x[f\"m_{agg}\"] = test_x[\"movie_id\"].map(movie_features[agg])\n"," train_all_x[f\"m_{agg}\"] = train_all_x[\"movie_id\"].map(movie_features[agg])\n","# 테스트용 데이터에만 존재하는 사용자나 영화의 특징량을, 학습용 데이터 전체의 평균 평갓값으로 채운다\n","average_rating = train_y.mean()\n","test_x.fillna(average_rating, inplace=True)"],"id":"3b756eca"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":1492,"status":"ok","timestamp":1672119853162,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"},"user_tz":-540},"id":"3499ae5a","outputId":"ae542425-5ea1-46bd-fe3f-b68df0abae71"},"outputs":[{"name":"stderr","output_type":"stream","text":[":7: SettingWithCopyWarning: \n","A value is trying to be set on a copy of a slice from a DataFrame.\n","Try using .loc[row_indexer,col_indexer] = value instead\n","\n","See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n"," movie_genres[f\"is_{genre}\"] = movie_genres.genre.apply(lambda x: genre in x)\n"]}],"source":["import itertools\n","\n","# 영화가 특정한 genre인지 나타내는 특징량을 추가한다\n","movie_genres = movies[[\"movie_id\", \"genre\"]]\n","genres = set(list(itertools.chain(*movie_genres.genre)))\n","for genre in genres:\n"," movie_genres[f\"is_{genre}\"] = movie_genres.genre.apply(lambda x: genre in x)\n","movie_genres.drop(\"genre\", axis=1, inplace=True)\n","train_x = train_x.merge(movie_genres, on=\"movie_id\")\n","test_x = test_x.merge(movie_genres, on=\"movie_id\")\n","train_all_x = train_all_x.merge(movie_genres, on=\"movie_id\")"],"id":"3499ae5a"},{"cell_type":"code","execution_count":null,"metadata":{"id":"eca70ebb"},"outputs":[],"source":["# 특징량으로 사용하지 않는 정보는 삭제한다\n","train_x = train_x.drop(columns=[\"user_id\", \"movie_id\"])\n","test_x = test_x.drop(columns=[\"user_id\", \"movie_id\"])\n","train_all_x = train_all_x.drop(columns=[\"user_id\", \"movie_id\"])"],"id":"eca70ebb"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":47235,"status":"ok","timestamp":1672119900826,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"},"user_tz":-540},"id":"78bde7fd","outputId":"6aa184b5-c138-4343-8e8c-918a5383c6a4"},"outputs":[{"data":{"text/plain":["RandomForestRegressor(n_jobs=-1, random_state=0)"]},"execution_count":9,"metadata":{},"output_type":"execute_result"}],"source":["from sklearn.ensemble import RandomForestRegressor as RFR\n","\n","# Random Forest를 사용한 학습\n","reg = RFR(n_jobs=-1, random_state=0)\n","reg.fit(train_x.values, train_y)\n"],"id":"78bde7fd"},{"cell_type":"code","execution_count":null,"metadata":{"id":"ca01da90"},"outputs":[],"source":["# 테스트용 데이터 안의 사용와 영화의 조합에 대해 평갓값을 예측한다\n","test_pred = reg.predict(test_x.values)\n","\n","movie_rating_predict = test_keys.copy()\n","movie_rating_predict[\"rating_pred\"] = test_pred"],"id":"ca01da90"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true},"id":"3ec280f6","outputId":"2757cf67-bb2c-4111-8871-e88cbe01853b"},"outputs":[{"data":{"text/plain":["defaultdict(list,\n"," {139: [7986, 6356, 6565, 4270, 6538, 5817, 4828, 3588, 631, 26974],\n"," 149: [5914, 1672, 1570, 555, 5928, 616, 640, 5996, 1326, 1671],\n"," 182: [4956,\n"," 5971,\n"," 6729,\n"," 8379,\n"," 6713,\n"," 5662,\n"," 30894,\n"," 6890,\n"," 7647,\n"," 5090],\n"," 215: [5598, 4626, 4679, 6286, 4458, 4802, 4887, 848, 3274, 5572],\n"," 281: [8482, 1497, 715, 880, 1483, 4531, 6583, 5472, 6722, 1992],\n"," 326: [2269, 2211, 2393, 1084, 1643, 1711, 1336, 1186, 1156, 523],\n"," 351: [6312, 6058, 7458, 7117, 7523, 7340, 6008, 8485, 7836, 8369],\n"," 357: [56949,\n"," 56587,\n"," 59037,\n"," 13,\n"," 2569,\n"," 2243,\n"," 2993,\n"," 2013,\n"," 56801,\n"," 126],\n"," 426: [3718, 3035, 3620, 7817, 3892, 3387, 3496, 3223, 3546, 5723],\n"," 456: [5060, 5634, 5688, 4975, 5909, 5275, 4988, 6568, 1880, 6672],\n"," 459: [6005,\n"," 42004,\n"," 8827,\n"," 40851,\n"," 33903,\n"," 47810,\n"," 56333,\n"," 1940,\n"," 42021,\n"," 27773],\n"," 494: [26144, 8722, 7153, 9, 6874, 8191, 7111, 8, 32596, 7030],\n"," 517: [2770, 3423, 218, 3468, 6772, 6250, 6333, 6005, 3525, 5930],\n"," 524: [3186, 3338, 3992, 4486, 4535, 3135, 2727, 3939, 2665, 3924],\n"," 556: [26, 1783, 1265, 1210, 1215, 32011, 58293, 1135, 166, 82],\n"," 588: [1938, 2898, 2010, 2454, 2824, 2478, 2381, 1809, 1873, 2529],\n"," 589: [7704, 6375, 25850, 5668, 423, 4701, 1661, 910, 729, 854],\n"," 590: [59985,\n"," 6281,\n"," 51088,\n"," 5372,\n"," 32596,\n"," 5427,\n"," 39381,\n"," 53318,\n"," 8939,\n"," 7223],\n"," 601: [6330, 335, 6423, 7150, 8873, 6569, 7075, 8746, 6672, 7025],\n"," 621: [2043, 2443, 2455, 2103, 2906, 2342, 2492, 2412, 2116, 3008],\n"," 634: [559, 840, 767, 1350, 1750, 1496, 1704, 1296, 854, 1342],\n"," 672: [2210, 4272, 1149, 2275, 4926, 1874, 1667, 1370, 4565, 1351],\n"," 701: [2533, 3270, 3802, 4470, 253, 500, 1203, 1237, 5046, 104],\n"," 719: [423, 967, 957, 918, 909, 1585, 893, 1574, 969, 1353],\n"," 745: [1185, 1128, 599, 3, 1759, 116, 5333, 1583, 4634, 691],\n"," 757: [521, 58306, 60688, 550, 757, 1084, 526, 1218, 273, 53921],\n"," 775: [8595,\n"," 6914,\n"," 31687,\n"," 8093,\n"," 8363,\n"," 8998,\n"," 58803,\n"," 8253,\n"," 32019,\n"," 6934],\n"," 780: [4178, 4729, 4108, 4893, 6702, 5529, 4102, 5516, 4483, 4077],\n"," 785: [605, 423, 579, 466, 801, 326, 518, 880, 270, 1086],\n"," 788: [1081, 1885, 907, 553, 876, 58047, 54281, 65, 251, 2340],\n"," 870: [6862, 7375, 7373, 8961, 7368, 7361, 7355, 8981, 3395, 8957],\n"," 987: [6214, 5114, 6927, 5881, 704, 3760, 5302, 513, 765, 6183],\n"," 988: [927, 465, 246, 53956, 1525, 55765, 614, 220, 1615, 1518],\n"," 1020: [2693,\n"," 2748,\n"," 3208,\n"," 3158,\n"," 2687,\n"," 2879,\n"," 3884,\n"," 3821,\n"," 42015,\n"," 45852],\n"," 1: [100, 854, 449, 1025, 802, 196, 1100, 31689, 685, 1136],\n"," 22: [26138,\n"," 6806,\n"," 9005,\n"," 26745,\n"," 8932,\n"," 6887,\n"," 8128,\n"," 7383,\n"," 8256,\n"," 26171],\n"," 26: [520, 4823, 5843, 4845, 4284, 3476, 376, 38, 4296, 4701],\n"," 30: [4723, 3876, 1498, 2163, 5324, 6412, 5341, 2603, 45722, 1378],\n"," 34: [7384, 6709, 6590, 7820, 8743, 7068, 6597, 7321, 3549, 6581],\n"," 38: [881, 4662, 3827, 250, 46, 781, 39381, 1034, 708, 485],\n"," 50: [5480, 4776, 4772, 4771, 5452, 4768, 4766, 4765, 4757, 4756],\n"," 53: [6744, 5792, 6429, 6430, 5788, 6436, 5786, 7163, 5785, 7162],\n"," 54: [48043, 8939, 352, 27790, 1407, 5573, 271, 948, 1556, 4614],\n"," 67: [2605,\n"," 61262,\n"," 55442,\n"," 4433,\n"," 54775,\n"," 3565,\n"," 57536,\n"," 47997,\n"," 3732,\n"," 34143],\n"," 71: [58025,\n"," 51935,\n"," 47950,\n"," 58299,\n"," 62000,\n"," 48385,\n"," 5459,\n"," 52375,\n"," 56367,\n"," 279],\n"," 76: [431, 5, 542, 378, 837, 235, 485, 753, 1045, 555],\n"," 88: [1713,\n"," 1574,\n"," 1018,\n"," 52717,\n"," 26729,\n"," 2003,\n"," 1636,\n"," 2194,\n"," 1940,\n"," 1747],\n"," 89: [7764, 7566, 7170, 7176, 7164, 8779, 7292, 8633, 39446, 7167],\n"," 94: [5494, 4876, 4799, 5668, 6063, 5225, 4806, 4788, 5437, 4774],\n"," 95: [43871, 862, 61160, 58490, 234, 835, 52279, 361, 681, 378],\n"," 100: [1471, 1617, 1172, 1170, 1878, 1616, 1154, 1356, 1882, 1365],\n"," 101: [4418,\n"," 8907,\n"," 6993,\n"," 4488,\n"," 4789,\n"," 3881,\n"," 3968,\n"," 32076,\n"," 4164,\n"," 4560],\n"," 102: [7739,\n"," 2929,\n"," 33193,\n"," 7771,\n"," 4160,\n"," 2889,\n"," 4017,\n"," 4161,\n"," 6892,\n"," 6884],\n"," 103: [3435, 3943, 3351, 4384, 3893, 3330, 3359, 4069, 3364, 3716],\n"," 111: [6886, 8754, 33138, 33312, 19, 60069, 2440, 14, 3165, 911],\n"," 116: [4521, 7323, 6346, 6204, 8789, 4001, 3189, 4009, 8782, 6441],\n"," 118: [51091,\n"," 47629,\n"," 48780,\n"," 47970,\n"," 54256,\n"," 53953,\n"," 59315,\n"," 48516,\n"," 59985,\n"," 60522],\n"," 143: [40148,\n"," 7168,\n"," 25995,\n"," 7297,\n"," 8270,\n"," 5379,\n"," 8913,\n"," 55280,\n"," 8784,\n"," 7156],\n"," 144: [3627, 3096, 4440, 100, 4366, 3038, 3760, 5004, 3392, 3043],\n"," 162: [2659, 3342, 2193, 4084, 226, 2130, 3414, 2141, 2607, 88],\n"," 172: [2512, 3118, 5189, 2639, 3269, 2504, 6724, 4471, 2597, 7000],\n"," 173: [8016,\n"," 36525,\n"," 30820,\n"," 8905,\n"," 8605,\n"," 26491,\n"," 8125,\n"," 8131,\n"," 41997,\n"," 30848],\n"," 187: [3300, 4307, 4224, 2474, 4102, 4188, 4405, 3362, 3877, 3287],\n"," 193: [3841,\n"," 3147,\n"," 3684,\n"," 4231,\n"," 7084,\n"," 4007,\n"," 3038,\n"," 4350,\n"," 61132,\n"," 5949],\n"," 208: [53953,\n"," 54256,\n"," 60037,\n"," 58303,\n"," 58418,\n"," 53999,\n"," 502,\n"," 55442,\n"," 513,\n"," 58291],\n"," 210: [3831, 4428, 3978, 3824, 3985, 3896, 3814, 4267, 4371, 3972],\n"," 214: [535, 463, 436, 1665, 5682, 1554, 6870, 1035, 668, 1658],\n"," 228: [7139,\n"," 7211,\n"," 6870,\n"," 8609,\n"," 3628,\n"," 6884,\n"," 7084,\n"," 7216,\n"," 31594,\n"," 6874],\n"," 232: [45880, 197, 2154, 2335, 2027, 1855, 2284, 1640, 2395, 2745],\n"," 236: [1624, 2278, 2427, 2178, 6614, 5470, 1533, 2033, 3503, 2717],\n"," 259: [1769, 2834, 2937, 2884, 2286, 2559, 2577, 2669, 2429, 1912],\n"," 260: [4867, 5685, 6279, 6383, 4722, 6346, 5847, 5522, 5918, 6252],\n"," 267: [67, 34405, 81, 72, 802, 6241, 5164, 1255, 5334, 6973],\n"," 268: [425, 5688, 1647, 19, 6875, 441, 1202, 414, 7728, 50872],\n"," 271: [1020, 519, 970, 1151, 7844, 2410, 1804, 32587, 49530, 7720],\n"," 274: [31923,\n"," 7577,\n"," 5611,\n"," 5016,\n"," 48780,\n"," 5009,\n"," 4126,\n"," 48883,\n"," 26318,\n"," 5478],\n"," 287: [64716,\n"," 4777,\n"," 4772,\n"," 4770,\n"," 4768,\n"," 4766,\n"," 4758,\n"," 4757,\n"," 4754,\n"," 4753],\n"," 292: [411, 501, 215, 101, 4512, 8884, 5362, 2002, 5182, 341],\n"," 296: [747, 1042, 232, 4163, 4855, 3683, 3574, 5930, 3663, 4352],\n"," 303: [73, 337, 122, 39, 854, 159, 391, 247, 31, 611],\n"," 307: [45501,\n"," 61361,\n"," 5299,\n"," 760,\n"," 48678,\n"," 59103,\n"," 3996,\n"," 4725,\n"," 1288,\n"," 43904],\n"," 310: [58334,\n"," 44929,\n"," 805,\n"," 907,\n"," 271,\n"," 60074,\n"," 42197,\n"," 7314,\n"," 8526,\n"," 1057],\n"," 315: [7698, 7235, 7325, 6252, 929, 6508, 7937, 6626, 5690, 7757],\n"," 320: [51939, 43, 7834, 1347, 33677, 5309, 4215, 5101, 21, 5709],\n"," 332: [8045,\n"," 31617,\n"," 7915,\n"," 8711,\n"," 52712,\n"," 45081,\n"," 33154,\n"," 50149,\n"," 5610,\n"," 6780],\n"," 339: [6268, 8377, 7287, 8535, 6537, 6315, 6626, 6620, 6969, 6373],\n"," 343: [4406, 2457, 3069, 3584, 2359, 2395, 1919, 2344, 1111, 3571],\n"," 355: [5621, 4916, 4921, 5094, 5643, 4903, 5101, 5303, 5855, 5826],\n"," 364: [5736,\n"," 4767,\n"," 52241,\n"," 27340,\n"," 26391,\n"," 5343,\n"," 6291,\n"," 6433,\n"," 5901,\n"," 51088],\n"," 365: [2616, 3587, 2605, 2936, 2624, 2693, 3147, 6345, 3330, 3098],\n"," 368: [7202,\n"," 8639,\n"," 7104,\n"," 31032,\n"," 8501,\n"," 7086,\n"," 2107,\n"," 8941,\n"," 1428,\n"," 7844],\n"," 381: [6203, 5295, 1642, 1233, 2447, 2023, 6025, 6425, 5193, 5692],\n"," 382: [7334, 6545, 6810, 5816, 7573, 6646, 5648, 2399, 1942, 6232],\n"," 383: [2118, 7728, 2110, 2359, 8698, 2926, 2069, 2170, 2431, 3239],\n"," 391: [2977, 3408, 3705, 3104, 3773, 3543, 3395, 2830, 2837, 2970],\n"," 396: [2461, 3073, 3284, 2405, 2550, 2921, 2876, 2961, 2410, 3050],\n"," 398: [813, 3180, 1238, 1279, 7204, 6077, 43919, 748, 3735, 3350],\n"," 406: [5398,\n"," 4047,\n"," 3993,\n"," 4602,\n"," 26828,\n"," 4510,\n"," 7386,\n"," 5300,\n"," 3941,\n"," 5321],\n"," 409: [3412,\n"," 2762,\n"," 26425,\n"," 7364,\n"," 2191,\n"," 1409,\n"," 41573,\n"," 3387,\n"," 3232,\n"," 2695],\n"," 410: [6130, 7075, 2387, 2470, 2570, 17, 2628, 2342, 2005, 6005],\n"," 416: [1293, 1826, 2530, 1151, 647, 1459, 1799, 1214, 570, 8800],\n"," 418: [4502,\n"," 42197,\n"," 160,\n"," 896,\n"," 42009,\n"," 44665,\n"," 4641,\n"," 59725,\n"," 4677,\n"," 53000],\n"," 419: [6772, 3599, 5999, 3752, 3157, 6970, 4257, 6690, 3016, 6525],\n"," 421: [5572, 5321, 6333, 5648, 5512, 5339, 5688, 5944, 5324, 5651],\n"," 424: [457, 456, 455, 453, 452, 448, 447, 446, 445, 444],\n"," 432: [4300,\n"," 4229,\n"," 4236,\n"," 4807,\n"," 4867,\n"," 4458,\n"," 3676,\n"," 54286,\n"," 4612,\n"," 2875],\n"," 434: [8365,\n"," 8157,\n"," 8584,\n"," 26152,\n"," 7079,\n"," 6997,\n"," 33649,\n"," 7781,\n"," 27563,\n"," 8768],\n"," 436: [5362, 4739, 207, 165, 4654, 5516, 618, 5913, 219, 70],\n"," 438: [4187, 4397, 4470, 4169, 4265, 5485, 510, 992, 2363, 4692],\n"," 441: [1727, 1845, 2798, 2744, 1904, 2409, 2202, 2272, 2512, 1650],\n"," 446: [870, 1281, 4645, 6166, 1333, 4840, 4580, 4833, 6037, 5472],\n"," 452: [3774, 3726, 4395, 2676, 4333, 3992, 2073, 3173, 3157, 3740],\n"," 460: [3580, 4153, 3732, 3564, 3573, 3014, 3653, 2405, 4094, 4637],\n"," 463: [3552, 3624, 3547, 4274, 4126, 4182, 4622, 4371, 3755, 4063],\n"," 468: [7058, 5915, 8197, 51925, 459, 42002, 143, 8235, 54995, 188],\n"," 469: [3504, 3566, 3499, 4792, 4428, 4444, 4144, 3937, 3600, 4714],\n"," 472: [118, 932, 702, 680, 230, 695, 65, 934, 147, 664],\n"," 476: [355, 702, 844, 5580, 7440, 27731, 6597, 577, 124, 38992],\n"," 480: [2333, 1805, 4932, 2446, 4276, 2118, 1814, 2283, 1793, 2906],\n"," 482: [3161, 3169, 3168, 3155, 3152, 3145, 3142, 3173, 3135, 3133],\n"," 493: [26064,\n"," 41569,\n"," 801,\n"," 1550,\n"," 45730,\n"," 59615,\n"," 3286,\n"," 46976,\n"," 58293,\n"," 8874],\n"," 496: [8799, 2590, 2723, 5840, 4600, 2137, 2082, 2545, 2087, 5009],\n"," 501: [50804,\n"," 47099,\n"," 58972,\n"," 48142,\n"," 54997,\n"," 47254,\n"," 62394,\n"," 48678,\n"," 48518,\n"," 50068],\n"," 504: [5859, 5992, 6240, 5662, 6405, 6312, 6777, 6063, 6261, 7293],\n"," 505: [105, 759, 750, 922, 1703, 1287, 1407, 1081, 879, 64],\n"," 511: [3202, 206, 3733, 3688, 4231, 3086, 4270, 4411, 3306, 3107],\n"," 516: [31903,\n"," 54736,\n"," 3351,\n"," 4310,\n"," 2408,\n"," 4130,\n"," 2844,\n"," 4279,\n"," 4208,\n"," 3629],\n"," 525: [2451, 2707, 2540, 540, 2977, 2517, 2397, 2183, 2086, 2252],\n"," 530: [7355,\n"," 6664,\n"," 6540,\n"," 7820,\n"," 7287,\n"," 8661,\n"," 8426,\n"," 7748,\n"," 7036,\n"," 26138],\n"," 531: [5423, 6125, 5470, 5333, 6920, 5351, 6020, 5339, 5604, 5662],\n"," 533: [476, 123, 522, 893, 519, 763, 419, 637, 807, 717],\n"," 536: [31694,\n"," 26230,\n"," 50354,\n"," 33085,\n"," 31184,\n"," 26425,\n"," 3980,\n"," 3473,\n"," 2191,\n"," 33794],\n"," 543: [5604, 4783, 5410, 5568, 5472, 369, 4690, 5205, 5841, 843],\n"," 547: [747, 42, 6990, 8275, 1216, 8732, 26085, 8531, 2071, 7064],\n"," 549: [4828, 5944, 4643, 5508, 5823, 4837, 6003, 5938, 4821, 5081],\n"," 553: [5331, 5251, 6718, 5875, 6312, 6584, 6467, 6254, 6423, 5883],\n"," 558: [270, 2552, 2102, 135, 87, 7265, 6162, 248, 2050, 189],\n"," 562: [408, 397, 394, 908, 391, 389, 388, 383, 379, 910],\n"," 567: [875, 1472, 1283, 1398, 635, 1572, 3591, 3742, 4285, 1185],\n"," 571: [549, 149, 210, 715, 807, 223, 409, 32011, 54780, 94],\n"," 572: [656, 661, 286, 663, 665, 281, 280, 667, 668, 289],\n"," 577: [17, 567, 43, 255, 910, 602, 729, 562, 668, 615],\n"," 581: [2712, 2654, 3169, 2843, 3114, 3780, 3846, 2730, 2886, 2639],\n"," 585: [1759, 505, 757, 665, 1643, 1735, 688, 1423, 709, 1753],\n"," 593: [3810, 5139, 3816, 34170, 72, 4876, 4570, 76, 77, 24],\n"," 604: [49822,\n"," 53993,\n"," 58154,\n"," 34538,\n"," 26939,\n"," 58103,\n"," 34536,\n"," 26974,\n"," 58025,\n"," 27005],\n"," 605: [3, 4, 2, 5, 6, 2470, 2462, 2656, 2445, 2606],\n"," 609: [6714, 2336, 5541, 1569, 240, 35, 27801, 2764, 2003, 5663],\n"," 628: [40723,\n"," 8375,\n"," 55729,\n"," 3358,\n"," 3289,\n"," 55402,\n"," 40870,\n"," 27722,\n"," 55247,\n"," 3379],\n"," 629: [2207, 1973, 1255, 1256, 1258, 1261, 1263, 1265, 1267, 1272],\n"," 645: [839, 1278, 122, 1002, 806, 1269, 1283, 729, 1196, 1032],\n"," 650: [974, 1114, 1440, 923, 2046, 2147, 2824, 2211, 2136, 1592],\n"," 656: [5546, 4589, 5302, 4735, 6243, 5646, 4711, 5556, 6238, 4898],\n"," 657: [362, 703, 958, 485, 673, 39, 728, 4164, 313, 4466],\n"," 669: [4229, 4411, 477, 529, 4298, 4588, 616, 813, 3717, 337],\n"," 678: [618, 1917, 673, 41863, 906, 1642, 8501, 1888, 957, 1366],\n"," 683: [8130,\n"," 6789,\n"," 7459,\n"," 7070,\n"," 7104,\n"," 8511,\n"," 6603,\n"," 27674,\n"," 7986,\n"," 27660],\n"," 688: [8833,\n"," 7327,\n"," 7206,\n"," 8722,\n"," 7386,\n"," 25995,\n"," 5356,\n"," 32153,\n"," 6429,\n"," 7844],\n"," 689: [8094, 6646, 6484, 7016, 7369, 6718, 6201, 6997, 5930, 7046],\n"," 693: [1950, 2100, 2460, 2726, 2188, 2187, 2453, 2847, 2849, 2328],\n"," 716: [39183,\n"," 26012,\n"," 39444,\n"," 27839,\n"," 40581,\n"," 31114,\n"," 26163,\n"," 8870,\n"," 46967,\n"," 41285],\n"," 720: [2134, 2586, 6356, 731, 485, 2084, 7033, 169, 290, 7095],\n"," 734: [1444, 5873, 1384, 1940, 6287, 1850, 5588, 6279, 1112, 6639],\n"," 735: [3303,\n"," 3831,\n"," 58295,\n"," 3168,\n"," 3964,\n"," 50153,\n"," 3578,\n"," 2889,\n"," 3729,\n"," 3618],\n"," 739: [3106, 3111, 3868, 3061, 4383, 3176, 3334, 3708, 1960, 2090],\n"," 755: [7067, 7134, 7142, 7150, 7157, 7160, 7161, 7165, 7126, 7166],\n"," 758: [2123, 952, 941, 1661, 1475, 947, 1087, 1094, 1134, 1633],\n"," 767: [1404, 905, 1535, 913, 916, 427, 923, 1417, 904, 926],\n"," 769: [1870, 1271, 1328, 1266, 1605, 1992, 2004, 2232, 2440, 1260],\n"," 786: [835, 888, 389, 1038, 1379, 423, 328, 419, 1194, 1280],\n"," 789: [3243, 2813, 3293, 3472, 1483, 3660, 3066, 3963, 2749, 3448],\n"," 792: [4809,\n"," 4063,\n"," 4003,\n"," 47970,\n"," 4661,\n"," 5034,\n"," 3998,\n"," 5388,\n"," 4262,\n"," 4780],\n"," 795: [330, 754, 6198, 809, 943, 1421, 5445, 2202, 5433, 5529],\n"," 798: [2751,\n"," 3399,\n"," 2721,\n"," 3893,\n"," 2635,\n"," 3161,\n"," 27266,\n"," 3365,\n"," 32017,\n"," 6626],\n"," 799: [4868, 5836, 4799, 4801, 4802, 4803, 5608, 5606, 4809, 4814],\n"," 802: [1303, 541, 1826, 4583, 5140, 5324, 118, 3439, 4077, 5421],\n"," 806: [5685, 5508, 4899, 4819, 5452, 5072, 6337, 6430, 4809, 4828],\n"," 807: [7027,\n"," 2191,\n"," 5927,\n"," 3635,\n"," 1496,\n"," 39292,\n"," 3272,\n"," 3181,\n"," 5770,\n"," 3600],\n"," 816: [2059, 1923, 1542, 1460, 1872, 1513, 1377, 1822, 2054, 1595],\n"," 827: [64716,\n"," 40339,\n"," 40614,\n"," 40732,\n"," 40946,\n"," 41285,\n"," 41571,\n"," 41617,\n"," 41831,\n"," 41997],\n"," 828: [1, 3, 3798, 4941, 4030, 4995, 59141, 6116, 3719, 5047],\n"," 846: [5109, 4467, 4533, 4475, 5310, 5054, 6197, 4441, 5643, 6093],\n"," 859: [26163,\n"," 33312,\n"," 8581,\n"," 33358,\n"," 8575,\n"," 8542,\n"," 8535,\n"," 8532,\n"," 8531,\n"," 8528],\n"," 862: [7227, 3145, 2627, 8698, 2691, 2621, 8970, 2932, 3287, 7147],\n"," 876: [64716,\n"," 40581,\n"," 40614,\n"," 40723,\n"," 40732,\n"," 40870,\n"," 40946,\n"," 40955,\n"," 41527,\n"," 41716],\n"," 881: [64716,\n"," 8991,\n"," 55290,\n"," 40870,\n"," 41585,\n"," 25766,\n"," 25769,\n"," 42007,\n"," 55094,\n"," 55063],\n"," 885: [5411,\n"," 5327,\n"," 1190,\n"," 2409,\n"," 5893,\n"," 5291,\n"," 6530,\n"," 6857,\n"," 5418,\n"," 32296],\n"," 886: [1841, 1649, 2643, 2538, 2345, 2208, 2471, 2078, 1826, 1940],\n"," 889: [54190,\n"," 58154,\n"," 54268,\n"," 53921,\n"," 55247,\n"," 52950,\n"," 60514,\n"," 52042,\n"," 56775,\n"," 52283],\n"," 890: [31705,\n"," 40581,\n"," 40574,\n"," 40412,\n"," 40278,\n"," 40148,\n"," 54004,\n"," 39715,\n"," 54259,\n"," 54268],\n"," 891: [5360, 57669, 34153, 144, 197, 391, 148, 1011, 54995, 688],\n"," 896: [4519, 4525, 5194, 4585, 5373, 6044, 7002, 4467, 4767, 5893],\n"," 897: [3556, 4383, 4928, 2340, 3050, 1080, 539, 239, 641, 597],\n"," 898: [7366,\n"," 8987,\n"," 7487,\n"," 8916,\n"," 7355,\n"," 34162,\n"," 7372,\n"," 27391,\n"," 7338,\n"," 8493],\n"," 908: [60069,\n"," 58998,\n"," 56915,\n"," 1042,\n"," 1731,\n"," 57464,\n"," 58492,\n"," 800,\n"," 57522,\n"," 55288],\n"," 922: [3102, 3246, 3453, 2910, 2905, 2806, 2648, 2576, 2993, 2823],\n"," 930: [59016,\n"," 58490,\n"," 54736,\n"," 54612,\n"," 54503,\n"," 54290,\n"," 58655,\n"," 54281,\n"," 58964,\n"," 58975],\n"," 938: [1625, 2328, 1375, 1437, 1336, 2037, 5334, 5416, 2219, 1342],\n"," 956: [6883, 6436, 8235, 7706, 6232, 7986, 7117, 6212, 7618, 6067],\n"," 958: [26870,\n"," 7389,\n"," 1484,\n"," 2446,\n"," 1574,\n"," 1881,\n"," 25777,\n"," 43560,\n"," 1493,\n"," 2078],\n"," 968: [4082, 4561, 4559, 4558, 4556, 4547, 4534, 4531, 4527, 4526],\n"," 977: [1272, 810, 496, 378, 579, 1093, 183, 269, 889, 994],\n"," 990: [2559, 4392, 3175, 2971, 3809, 4681, 3022, 4945, 3755, 4045],\n"," 996: [688, 96, 4443, 4285, 3706, 3768, 33, 4247, 5016, 649],\n"," 1004: [3343,\n"," 2857,\n"," 3770,\n"," 2788,\n"," 2775,\n"," 3285,\n"," 2794,\n"," 3491,\n"," 2799,\n"," 3104],\n"," 1005: [2678, 917, 910, 1422, 1663, 2075, 755, 1038, 1794, 1298],\n"," 1008: [44195,\n"," 52975,\n"," 56801,\n"," 53189,\n"," 49132,\n"," 56156,\n"," 56915,\n"," 33193,\n"," 51709,\n"," 30816],\n"," 1029: [6558,\n"," 7771,\n"," 6548,\n"," 4173,\n"," 26148,\n"," 26122,\n"," 3707,\n"," 4019,\n"," 59615,\n"," 46972],\n"," 1037: [2241,\n"," 2084,\n"," 2076,\n"," 2075,\n"," 2070,\n"," 2067,\n"," 2066,\n"," 2065,\n"," 2062,\n"," 2060],\n"," 1050: [5752,\n"," 4719,\n"," 5268,\n"," 4753,\n"," 6020,\n"," 5118,\n"," 5046,\n"," 5603,\n"," 5172,\n"," 6192],\n"," 4: [58246, 5875, 3105, 34338, 5398, 4990, 2392, 5298, 1144, 80],\n"," 8: [1769, 7697, 27873, 2048, 1707, 1747, 2420, 2507, 1897, 1924],\n"," 18: [1725, 2243, 1496, 1801, 1511, 1676, 1499, 1806, 1997, 1854],\n"," 36: [8010, 6540, 5852, 7349, 6305, 5215, 7000, 6785, 4428, 44193],\n"," 47: [1631, 996, 4127, 4405, 3316, 4646, 3453, 3371, 2841, 3797],\n"," 59: [7, 1136, 933, 203, 7448, 6626, 176, 6271, 7012, 364],\n"," 62: [5472, 354, 4381, 572, 5139, 4069, 4954, 702, 5307, 1581],\n"," 77: [3269, 2798, 6291, 2738, 5577, 3428, 6231, 5617, 3713, 6789],\n"," 79: [3729, 544, 3468, 4323, 3638, 3473, 3487, 411, 4510, 522],\n"," 80: [3936, 5382, 3250, 4788, 3190, 3402, 2778, 3654, 7201, 1609],\n"," 119: [56788,\n"," 8874,\n"," 49647,\n"," 8969,\n"," 26198,\n"," 3816,\n"," 8864,\n"," 52241,\n"," 33085,\n"," 47778],\n"," 122: [1298, 839, 764, 1427, 1723, 778, 1091, 757, 741, 1865],\n"," 125: [6254, 2009, 732, 6191, 2515, 8781, 1902, 1844, 7003, 1227],\n"," 126: [6886, 2809, 2459, 2421, 2606, 2382, 2390, 2971, 2867, 5081],\n"," 132: [2400, 7636, 3773, 6811, 1170, 6729, 3500, 2294, 2351, 2529],\n"," 141: [1318,\n"," 4307,\n"," 674,\n"," 1233,\n"," 33794,\n"," 45081,\n"," 54612,\n"," 58367,\n"," 1482,\n"," 8154],\n"," 154: [3103, 3917, 4447, 2649, 4267, 3463, 4217, 2953, 3247, 5092],\n"," 155: [515, 571, 1078, 1212, 509, 1234, 870, 1173, 674, 1533],\n"," 163: [8623, 5186, 8254, 4543, 5954, 7265, 3839, 6639, 8199, 7366],\n"," 164: [6235,\n"," 5706,\n"," 53894,\n"," 6813,\n"," 6129,\n"," 6252,\n"," 5823,\n"," 6486,\n"," 7151,\n"," 57243],\n"," 170: [4223, 585, 84, 921, 31427, 4781, 2917, 616, 678, 8535],\n"," 171: [3260,\n"," 3328,\n"," 1513,\n"," 25777,\n"," 897,\n"," 2749,\n"," 1217,\n"," 8740,\n"," 58105,\n"," 1499],\n"," 176: [1690, 1671, 2874, 7730, 1608, 180, 506, 314, 2755, 3308],\n"," 190: [1369, 599, 5974, 1887, 582, 3866, 3057, 181, 3943, 1893],\n"," 197: [49824,\n"," 53000,\n"," 5102,\n"," 58078,\n"," 5570,\n"," 5741,\n"," 31101,\n"," 52694,\n"," 5440,\n"," 4857],\n"," 198: [1497, 2107, 2104, 2097, 2091, 2090, 2088, 2087, 2108, 2083],\n"," 199: [93, 6210, 474, 200, 525, 7319, 7009, 8040, 2972, 2533],\n"," 212: [7222, 6410, 6423, 8404, 6371, 6392, 6951, 746, 5629, 4803],\n"," 221: [1547, 920, 46972, 26055, 97, 262, 507, 6, 2155, 138],\n"," 223: [6412, 2921, 3597, 6510, 5198, 4864, 5749, 968, 476, 6729],\n"," 226: [1096, 1586, 2275, 1699, 347, 2605, 2237, 1960, 1570, 1824],\n"," 241: [630, 1393, 920, 1918, 1264, 42011, 8529, 1673, 5636, 1653],\n"," 247: [1352, 581, 1875, 4370, 4422, 5454, 5305, 5152, 4889, 5603],\n"," 249: [4012,\n"," 4628,\n"," 4748,\n"," 4959,\n"," 4391,\n"," 2749,\n"," 4317,\n"," 5036,\n"," 42018,\n"," 26203],\n"," 254: [2440, 2328, 2908, 1079, 2406, 3114, 3189, 2253, 2399, 2527],\n"," 264: [3903, 2854, 3566, 3240, 3005, 3197, 2761, 2078, 2566, 6270],\n"," 273: [60753, 2015, 4527, 33669, 26, 3824, 3707, 31, 1224, 4721],\n"," 275: [6228, 4578, 5529, 2771, 4035, 2162, 3240, 2105, 3950, 2059],\n"," 276: [4265,\n"," 4512,\n"," 4504,\n"," 59729,\n"," 4065,\n"," 37731,\n"," 6713,\n"," 5425,\n"," 719,\n"," 7206],\n"," 293: [45852,\n"," 59900,\n"," 48560,\n"," 48416,\n"," 48385,\n"," 48326,\n"," 48319,\n"," 48262,\n"," 48142,\n"," 48043],\n"," 294: [137, 103, 102, 101, 204, 206, 96, 94, 208, 92],\n"," 295: [26, 614, 7035, 6221, 525, 216, 7161, 7418, 452, 474],\n"," 318: [2045, 1660, 909, 333, 893, 1703, 724, 563, 6374, 422],\n"," 321: [8188, 6965, 7349, 394, 5177, 8981, 8482, 6413, 5780, 873],\n"," 345: [6280, 8201, 5404, 4465, 8520, 6180, 6314, 7069, 6620, 6550],\n"," 346: [55830,\n"," 31000,\n"," 3025,\n"," 2893,\n"," 2436,\n"," 3289,\n"," 2849,\n"," 49772,\n"," 2456,\n"," 3048],\n"," 348: [5140, 6152, 8859, 4499, 6130, 213, 42718, 639, 1401, 7708],\n"," 349: [3667,\n"," 4350,\n"," 4895,\n"," 3531,\n"," 27912,\n"," 4167,\n"," 55276,\n"," 3938,\n"," 47997,\n"," 4534],\n"," 354: [831, 1172, 1425, 6890, 7068, 3961, 1216, 664, 1784, 6168],\n"," 359: [5480, 5387, 4085, 6213, 4979, 6714, 4711, 4396, 3947, 4102],\n"," 366: [8196,\n"," 31431,\n"," 32587,\n"," 8948,\n"," 52668,\n"," 8832,\n"," 26686,\n"," 45668,\n"," 51088,\n"," 43871],\n"," 369: [1895, 1814, 2296, 2346, 2643, 2868, 2849, 2398, 2024, 2130],\n"," 384: [561, 405, 886, 888, 889, 389, 896, 383, 897, 379],\n"," 390: [34536,\n"," 1249,\n"," 58347,\n"," 1395,\n"," 2238,\n"," 2208,\n"," 1747,\n"," 1969,\n"," 1255,\n"," 1266],\n"," 392: [4878, 4641, 5194, 4809, 4574, 4569, 4749, 4563, 4566, 5276],\n"," 403: [6380, 5588, 5496, 6300, 6811, 5971, 5501, 6525, 5483, 4826],\n"," 407: [6039, 6180, 6897, 6818, 6045, 4517, 7073, 5095, 5028, 6008],\n"," 414: [491, 2276, 2342, 3217, 574, 254, 3243, 735, 2283, 2791],\n"," 431: [56274,\n"," 40851,\n"," 37720,\n"," 37739,\n"," 62000,\n"," 55247,\n"," 36509,\n"," 37380,\n"," 49910,\n"," 58418],\n"," 454: [7380,\n"," 1620,\n"," 26152,\n"," 8228,\n"," 7562,\n"," 26082,\n"," 2273,\n"," 26696,\n"," 8011,\n"," 8970],\n"," 465: [39715,\n"," 3844,\n"," 3039,\n"," 33585,\n"," 3825,\n"," 3250,\n"," 43560,\n"," 4040,\n"," 47423,\n"," 39234],\n"," 481: [44929,\n"," 4835,\n"," 4765,\n"," 26269,\n"," 48982,\n"," 57243,\n"," 6346,\n"," 5449,\n"," 4941,\n"," 26375],\n"," 485: [4571, 3746, 5008, 2054, 1261, 5135, 3230, 2496, 799, 78],\n"," 503: [2472, 2929, 3060, 2407, 2884, 2728, 3340, 2413, 2396, 628],\n"," 513: [2301, 2337, 1772, 2066, 1671, 1976, 2229, 1913, 1723, 1450],\n"," 545: [2411, 2266, 1805, 1793, 2541, 1911, 1946, 2744, 2455, 2798],\n"," 552: [310, 3333, 2727, 4184, 4418, 229, 3271, 176, 3908, 3487],\n"," 554: [51931,\n"," 4067,\n"," 4964,\n"," 52579,\n"," 49793,\n"," 55269,\n"," 52604,\n"," 55363,\n"," 57532,\n"," 55805],\n"," 555: [4806, 5389, 4695, 5902, 5903, 5388, 5912, 5381, 5896, 5372],\n"," 561: [60649,\n"," 59725,\n"," 59727,\n"," 59729,\n"," 59795,\n"," 59333,\n"," 59315,\n"," 59306,\n"," 60069,\n"," 59141],\n"," 565: [6784,\n"," 7104,\n"," 3551,\n"," 5958,\n"," 8966,\n"," 26303,\n"," 7386,\n"," 6522,\n"," 2334,\n"," 3045],\n"," 591: [5817, 6880, 5936, 7396, 191, 6684, 5923, 7101, 7228, 6319],\n"," 617: [4059, 4349, 4043, 5352, 4888, 4131, 5462, 4509, 4296, 4226],\n"," 622: [1748, 1094, 1500, 2021, 1872, 1189, 2088, 3668, 2297, 3598],\n"," 623: [45668,\n"," 50802,\n"," 53123,\n"," 48304,\n"," 47997,\n"," 52458,\n"," 54513,\n"," 59615,\n"," 60514,\n"," 52462],\n"," 633: [297, 246, 765, 712, 316, 433, 234, 469, 428, 836],\n"," 636: [3981,\n"," 4705,\n"," 7166,\n"," 8910,\n"," 8782,\n"," 30898,\n"," 39052,\n"," 39715,\n"," 162,\n"," 8266],\n"," 638: [2242, 2920, 2429, 2480, 2255, 2396, 2245, 3394, 2517, 3104],\n"," 641: [5496, 4880, 5670, 5963, 5313, 5231, 5439, 5584, 4792, 4909],\n"," 646: [1232, 470, 1696, 2460, 1921, 1704, 2887, 2806, 1051, 2437],\n"," 654: [5120, 5459, 5391, 6743, 5398, 5768, 6239, 6812, 6777, 6448],\n"," 655: [1890, 2379, 876, 1336, 443, 2252, 1688, 452, 1421, 613],\n"," 658: [6786, 5783, 6754, 6645, 4090, 7019, 2827, 6212, 3618, 6794],\n"," 660: [8691, 7020, 111, 709, 536, 495, 279, 671, 632, 243],\n"," 661: [7844,\n"," 26558,\n"," 1723,\n"," 1654,\n"," 2154,\n"," 7697,\n"," 31026,\n"," 26052,\n"," 2338,\n"," 7624],\n"," 677: [3964, 4828, 2699, 3464, 3953, 3948, 4174, 4807, 4193, 5427],\n"," 714: [6352, 5264, 6714, 6184, 5431, 5272, 5367, 5147, 5733, 5840],\n"," 715: [494, 1147, 383, 1611, 116, 180, 362, 1296, 993, 405],\n"," 723: [2488, 1635, 2641, 2152, 1912, 1623, 2188, 2102, 1695, 1586],\n"," 731: [1145,\n"," 33615,\n"," 32019,\n"," 51931,\n"," 2323,\n"," 55363,\n"," 1096,\n"," 53956,\n"," 44761,\n"," 31923],\n"," 742: [34323,\n"," 53752,\n"," 33085,\n"," 53921,\n"," 32892,\n"," 32627,\n"," 53956,\n"," 32600,\n"," 32591,\n"," 32584],\n"," 743: [671, 674, 681, 691, 692, 694, 695, 664, 56145, 707],\n"," 752: [6385, 5448, 5051, 5504, 4787, 4803, 5703, 5630, 5090, 5078],\n"," 772: [4262, 3724, 4323, 3795, 4477, 4047, 1301, 4782, 1994, 3882],\n"," 814: [2952,\n"," 2962,\n"," 3707,\n"," 3022,\n"," 4166,\n"," 30822,\n"," 3249,\n"," 3605,\n"," 47644,\n"," 4193],\n"," 823: [5136, 5072, 5596, 5086, 5588, 4443, 5099, 4570, 4441, 5101],\n"," 826: [5664, 6777, 7454, 7215, 2204, 6748, 5867, 5927, 2374, 1609],\n"," 833: [38304,\n"," 8852,\n"," 33817,\n"," 34534,\n"," 49932,\n"," 8970,\n"," 44849,\n"," 44193,\n"," 54780,\n"," 26939],\n"," 838: [4844, 4128, 4676, 4618, 4728, 4210, 4229, 5377, 5289, 5074],\n"," 842: [332, 331, 330, 320, 318, 317, 315, 336, 314, 307],\n"," 852: [2535, 2026, 2024, 2023, 2022, 2015, 2009, 2029, 2008, 2002],\n"," 878: [24, 30, 42, 12, 9, 35, 43, 44, 5, 4],\n"," 887: [64716,\n"," 62801,\n"," 63113,\n"," 62803,\n"," 62394,\n"," 62293,\n"," 62344,\n"," 61323,\n"," 62113,\n"," 61361],\n"," 895: [1507, 2289, 2727, 6639, 5483, 7311, 6294, 1855, 2706, 2379],\n"," 899: [6251, 6810, 6408, 6530, 6920, 7570, 7153, 6342, 7226, 7326],\n"," 902: [2423, 2023, 55, 371, 2469, 3064, 3006, 108, 196, 337],\n"," 907: [3970, 7260, 4776, 4240, 7570, 8870, 5237, 3962, 5358, 7250],\n"," 928: [178, 41617, 602, 37475, 564, 759, 555, 42718, 324, 56176],\n"," 936: [4807, 4245, 5460, 4467, 5219, 5495, 5226, 4700, 4545, 4511],\n"," 964: [3593, 5603, 5527, 5784, 4033, 4094, 328, 512, 4816, 5202],\n"," 970: [5529, 6577, 4830, 6584, 4734, 6686, 7791, 5621, 5743, 4918],\n"," 972: [619, 1079, 1127, 5193, 1862, 3766, 1255, 2966, 4276, 4418],\n"," 1001: [5928,\n"," 6287,\n"," 6579,\n"," 6283,\n"," 6281,\n"," 7069,\n"," 6279,\n"," 7067,\n"," 7072,\n"," 7065],\n"," 1013: [3576,\n"," 3824,\n"," 4019,\n"," 4720,\n"," 4595,\n"," 3573,\n"," 3557,\n"," 4094,\n"," 4496,\n"," 4541],\n"," 1018: [3688,\n"," 3093,\n"," 1324,\n"," 3633,\n"," 3088,\n"," 3152,\n"," 3079,\n"," 3245,\n"," 1156,\n"," 3252],\n"," 1028: [1131, 568, 628, 1083, 563, 556, 728, 737, 1784, 889],\n"," 1031: [1873,\n"," 1855,\n"," 1858,\n"," 1866,\n"," 1867,\n"," 1872,\n"," 1875,\n"," 1878,\n"," 1879,\n"," 1882],\n"," 1035: [1623, 1476, 1135, 942, 1935, 1178, 1551, 1658, 1985, 5749],\n"," 1038: [4903,\n"," 4846,\n"," 5065,\n"," 4251,\n"," 4531,\n"," 5423,\n"," 4341,\n"," 4855,\n"," 4368,\n"," 5068],\n"," 1045: [177, 267, 32296, 7720, 8019, 38499, 8375, 26138, 237, 64],\n"," 1046: [4749,\n"," 7410,\n"," 6271,\n"," 5373,\n"," 6259,\n"," 5525,\n"," 5072,\n"," 5568,\n"," 5312,\n"," 5445],\n"," 35: [3342, 6370, 5448, 1357, 2141, 5521, 2643, 906, 7073, 6666],\n"," 72: [258, 508, 608, 131, 443, 504, 24, 537, 78, 531],\n"," 91: [3117, 455, 3056, 242, 2191, 4801, 2910, 501, 634, 2692],\n"," 106: [8464, 7065, 6466, 7247, 830, 7117, 6973, 2188, 8891, 7044],\n"," 128: [3217, 5147, 76, 790, 2533, 2212, 5092, 2550, 49822, 3062],\n"," 158: [3010,\n"," 3518,\n"," 3168,\n"," 2879,\n"," 3469,\n"," 3547,\n"," 3329,\n"," 3666,\n"," 55288,\n"," 3760],\n"," 160: [8633,\n"," 33838,\n"," 26425,\n"," 8810,\n"," 2599,\n"," 8865,\n"," 3221,\n"," 8405,\n"," 7116,\n"," 7841],\n"," 175: [58047,\n"," 34198,\n"," 51884,\n"," 3661,\n"," 4442,\n"," 39446,\n"," 6974,\n"," 7941,\n"," 4254,\n"," 6035],\n"," 196: [4405, 4475, 4624, 4338, 5272, 5896, 5039, 5787, 4389, 4981],\n"," 203: [6658, 6552, 7347, 3514, 926, 4063, 4204, 26138, 7263, 3921],\n"," 206: [4169, 3363, 2561, 389, 372, 2876, 2255, 2880, 911, 3122],\n"," 207: [2094,\n"," 43396,\n"," 2084,\n"," 2430,\n"," 1412,\n"," 1299,\n"," 1875,\n"," 2526,\n"," 2363,\n"," 2072],\n"," 255: [3970, 949, 2138, 4511, 25866, 2707, 7260, 1470, 4125, 4396],\n"," 265: [7036, 6785, 7334, 6899, 39, 7314, 7587, 6286, 7116, 6672],\n"," 340: [3091,\n"," 2479,\n"," 3574,\n"," 3067,\n"," 2938,\n"," 56367,\n"," 2460,\n"," 2606,\n"," 3095,\n"," 52973],\n"," 404: [4482, 2025, 3103, 3190, 5117, 4467, 4541, 4639, 4476, 3889],\n"," 433: [227, 280, 7179, 185, 340, 7450, 7300, 511, 34, 7991],\n"," 440: [712, 14, 1180, 5, 4, 1078, 239, 556, 32721, 59387],\n"," 444: [4082, 7318, 7316, 7311, 7310, 7308, 7307, 4142, 4144, 4146],\n"," 450: [1541, 1633, 2103, 2104, 1631, 1627, 2108, 2110, 2111, 2112],\n"," 479: [8959,\n"," 7030,\n"," 36537,\n"," 31770,\n"," 7334,\n"," 7706,\n"," 26303,\n"," 7293,\n"," 32598,\n"," 7566],\n"," 491: [8261, 7060, 6978, 27, 8042, 8526, 8784, 8712, 2561, 2875],\n"," 506: [51939,\n"," 55451,\n"," 5951,\n"," 59729,\n"," 36537,\n"," 7834,\n"," 39421,\n"," 50153,\n"," 31221,\n"," 55946],\n"," 523: [7045,\n"," 7573,\n"," 8930,\n"," 7891,\n"," 7440,\n"," 6800,\n"," 6770,\n"," 6615,\n"," 25923,\n"," 8643],\n"," 539: [7828,\n"," 33660,\n"," 5971,\n"," 7444,\n"," 7577,\n"," 6378,\n"," 51575,\n"," 7284,\n"," 5981,\n"," 6997],\n"," 541: [4182, 4612, 4611, 4602, 4600, 4599, 4598, 4595, 4591, 4589],\n"," 616: [2833, 4881, 2842, 5731, 2841, 5726, 2837, 4155, 5723, 3978],\n"," 647: [893, 1641, 2847, 982, 2120, 2130, 1645, 2856, 2509, 2168],\n"," 659: [2761, 2049, 1539, 1372, 1431, 1504, 2559, 3206, 1722, 914],\n"," 695: [52712,\n"," 47629,\n"," 56775,\n"," 42011,\n"," 60069,\n"," 42217,\n"," 47254,\n"," 47518,\n"," 45728,\n"," 53519],\n"," 700: [44022,\n"," 31270,\n"," 27741,\n"," 49772,\n"," 45442,\n"," 60286,\n"," 34048,\n"," 50685,\n"," 32179,\n"," 31225],\n"," 707: [7118,\n"," 8241,\n"," 7032,\n"," 8447,\n"," 8813,\n"," 7038,\n"," 7070,\n"," 2051,\n"," 34148,\n"," 1258],\n"," 748: [1951, 2394, 2353, 5244, 5852, 4964, 2514, 2114, 1881, 2021],\n"," 759: [2128, 2312, 2420, 2385, 2244, 2097, 1431, 1439, 2329, 1746],\n"," 784: [106, 3184, 3355, 3189, 3949, 3470, 3181, 3130, 3257, 3361],\n"," 790: [3734,\n"," 8825,\n"," 47099,\n"," 53894,\n"," 3128,\n"," 3870,\n"," 3689,\n"," 8798,\n"," 3569,\n"," 4062],\n"," 835: [50149,\n"," 48412,\n"," 42723,\n"," 48319,\n"," 46347,\n"," 27882,\n"," 57243,\n"," 56251,\n"," 7701,\n"," 30707],\n"," 844: [78, 76, 31705, 8636, 27, 245, 8951, 8957, 27660, 7983],\n"," 871: [808, 194, 3244, 3572, 2797, 3095, 2755, 3138, 2616, 3076],\n"," 875: [6020, 7445, 7451, 7456, 7459, 7461, 6405, 7484, 7489, 7560],\n"," 892: [1063, 426, 1525, 953, 918, 972, 4911, 1230, 869, 537],\n"," 919: [1525, 1585, 1535, 1970, 2306, 2536, 2095, 1929, 1431, 1363],\n"," 935: [6057, 6808, 6247, 6855, 5540, 5357, 5685, 6027, 5099, 6592],\n"," 942: [4021, 3559, 2892, 3464, 4033, 2786, 3739, 2752, 4038, 1888],\n"," 960: [5097, 5297, 4519, 5034, 4441, 5625, 4696, 4834, 4458, 4426],\n"," 1006: [4111,\n"," 3763,\n"," 56339,\n"," 4916,\n"," 4710,\n"," 44828,\n"," 4336,\n"," 44759,\n"," 4641,\n"," 3596],\n"," 1026: [5820,\n"," 4929,\n"," 5783,\n"," 5782,\n"," 5220,\n"," 5768,\n"," 5740,\n"," 5739,\n"," 5736,\n"," 5734],\n"," 1047: [8722,\n"," 8268,\n"," 7062,\n"," 7263,\n"," 6980,\n"," 6995,\n"," 6988,\n"," 31903,\n"," 33437,\n"," 8057],\n"," 65: [1565, 4936, 6711, 5539, 320, 2334, 7364, 5194, 4188, 5103],\n"," 135: [3168, 6179, 3105, 6816, 6896, 155, 3100, 6025, 35, 7072],\n"," 152: [535, 4959, 540, 818, 5479, 5483, 594, 762, 4317, 4994],\n"," 166: [1321,\n"," 34271,\n"," 6181,\n"," 44195,\n"," 2064,\n"," 1958,\n"," 5597,\n"," 3171,\n"," 1461,\n"," 48698],\n"," 179: [412, 904, 7620, 27834, 849, 347, 341, 1277, 33493, 26492],\n"," 188: [3649, 3013, 2404, 4152, 4092, 3780, 2523, 4506, 4299, 2298],\n"," 217: [8542,\n"," 32325,\n"," 7810,\n"," 8711,\n"," 8379,\n"," 7836,\n"," 49280,\n"," 26055,\n"," 8800,\n"," 40629],\n"," 253: [6042, 5966, 120, 8128, 8601, 2539, 5959, 1953, 7892, 7161],\n"," 262: [2925,\n"," 54272,\n"," 7895,\n"," 3726,\n"," 4034,\n"," 33880,\n"," 60074,\n"," 55729,\n"," 3125,\n"," 53322],\n"," 277: [4982, 3604, 2925, 1282, 4960, 4792, 1033, 4234, 1592, 1127],\n"," 289: [4535, 762, 4543, 3194, 3925, 1375, 3785, 1013, 3734, 1754],\n"," 300: [1641, 1156, 1087, 1804, 2062, 1092, 1400, 5011, 1081, 1592],\n"," 302: [4437,\n"," 58047,\n"," 57522,\n"," 4508,\n"," 59795,\n"," 57669,\n"," 7096,\n"," 5285,\n"," 5081,\n"," 57536],\n"," 308: [393, 101, 466, 270, 253, 302, 42, 191, 114, 8607],\n"," 311: [1136, 634, 568, 463, 22, 1264, 103, 1533, 930, 573],\n"," 328: [8607,\n"," 7172,\n"," 33681,\n"," 3767,\n"," 7292,\n"," 4356,\n"," 60943,\n"," 7254,\n"," 31594,\n"," 7704],\n"," 329: [3078, 2884, 3646, 3133, 4290, 3044, 2898, 3174, 4700, 2950],\n"," 344: [7386,\n"," 3876,\n"," 3939,\n"," 40962,\n"," 45183,\n"," 7572,\n"," 8576,\n"," 2985,\n"," 7585,\n"," 34532],\n"," 347: [266, 45028, 48774, 7293, 3479, 129, 2715, 3587, 140, 54736],\n"," 358: [6753, 6881, 362, 7934, 6660, 8722, 7365, 6867, 8943, 6631],\n"," 474: [1871,\n"," 60037,\n"," 2374,\n"," 6005,\n"," 55276,\n"," 3014,\n"," 4011,\n"," 7003,\n"," 6708,\n"," 6777],\n"," 483: [6567, 6077, 6322, 6067, 7284, 7587, 7585, 6909, 6062, 6323],\n"," 509: [3247, 4928, 3451, 3365, 3102, 3316, 2448, 3412, 5954, 2429],\n"," 578: [4143, 4541, 4695, 4433, 3928, 5294, 4733, 5014, 4613, 3980],\n"," 643: [319, 321, 136, 137, 317, 313, 144, 145, 146, 312],\n"," 679: [27834,\n"," 55063,\n"," 8207,\n"," 6653,\n"," 4390,\n"," 4570,\n"," 38798,\n"," 4583,\n"," 4873,\n"," 4849],\n"," 680: [4603, 4799, 1326, 5391, 4677, 4768, 4994, 231, 981, 240],\n"," 691: [2151,\n"," 1485,\n"," 49824,\n"," 59729,\n"," 1810,\n"," 1670,\n"," 58047,\n"," 2130,\n"," 54513,\n"," 45183],\n"," 702: [1236, 573, 517, 1145, 1388, 511, 474, 1715, 934, 1031],\n"," 708: [3677,\n"," 2876,\n"," 54290,\n"," 1673,\n"," 2423,\n"," 52287,\n"," 1983,\n"," 2365,\n"," 58299,\n"," 394],\n"," 730: [6124, 6378, 8195, 6858, 8392, 8275, 7587, 7831, 6918, 7284],\n"," 751: [1799, 2516, 2956, 1931, 2331, 2493, 1913, 2094, 2520, 5202],\n"," 773: [6856, 6568, 7191, 6567, 5765, 6561, 6558, 7177, 5743, 6554],\n"," 803: [1178, 1024, 1965, 1171, 2058, 2105, 2026, 1585, 1898, 1016],\n"," 809: [7454, 8641, 8640, 6795, 6794, 6793, 6791, 6789, 8623, 6784],\n"," 820: [46850,\n"," 8980,\n"," 33826,\n"," 30818,\n"," 39449,\n"," 33162,\n"," 46970,\n"," 32632,\n"," 42728,\n"," 48997],\n"," 824: [4082, 3646, 3643, 4208, 4210, 4211, 3639, 4215, 4216, 4218],\n"," 863: [5792, 4406, 5125, 5692, 4974, 4561, 4511, 4951, 4915, 5147],\n"," 865: [5327, 5404, 6223, 5638, 5317, 5580, 5996, 5680, 6315, 6078],\n"," 867: [3721, 4392, 4139, 3566, 3420, 4511, 4477, 4565, 3688, 3849],\n"," 911: [2042,\n"," 8833,\n"," 38886,\n"," 54513,\n"," 2560,\n"," 1895,\n"," 2535,\n"," 8426,\n"," 1912,\n"," 2406],\n"," 915: [8972,\n"," 7925,\n"," 7897,\n"," 7895,\n"," 8620,\n"," 7883,\n"," 6814,\n"," 7840,\n"," 26116,\n"," 7828],\n"," 939: [471, 920, 361, 1929, 1588, 1115, 1384, 2363, 1725, 1057],\n"," 946: [505, 1136, 691, 1439, 842, 1369, 668, 1263, 892, 1279],\n"," 954: [7088,\n"," 7585,\n"," 7061,\n"," 8973,\n"," 1878,\n"," 7118,\n"," 6867,\n"," 1194,\n"," 27831,\n"," 6932],\n"," 957: [3011, 7809, 2349, 7059, 8128, 2983, 2917, 3171, 2860, 8811],\n"," 971: [431, 372, 206, 200, 211, 719, 1333, 261, 550, 1242],\n"," 986: [8698, 6367, 8833, 7389, 7150, 6772, 6744, 7190, 6794, 7334],\n"," 992: [6396, 7368, 7063, 6296, 6238, 8860, 6659, 8712, 6279, 4030],\n"," 92: [1392, 1380, 1601, 34155, 7369, 1986, 1946, 1453, 1661, 1563],\n"," 107: [3037, 2517, 3214, 3502, 3060, 3390, 2826, 2734, 3132, 2815],\n"," 131: [8810,\n"," 32721,\n"," 2470,\n"," 6948,\n"," 6380,\n"," 6204,\n"," 2024,\n"," 6869,\n"," 8620,\n"," 1968],\n"," 138: [571, 493, 1343, 263, 538, 482, 353, 562, 132, 509],\n"," 145: [2318, 2768, 2723, 2889, 2250, 2259, 3535, 3414, 4220, 4754],\n"," 183: [47261,\n"," 48943,\n"," 56176,\n"," 27741,\n"," 7303,\n"," 59784,\n"," 55908,\n"," 45208,\n"," 50601,\n"," 50153],\n"," 209: [421, 270, 391, 881, 44, 282, 714, 779, 668, 414],\n"," 230: [1913, 1793, 781, 8799, 871, 848, 8961, 44759, 1528, 8724],\n"," 263: [559, 82, 366, 2860, 1653, 4149, 2140, 618, 387, 3341],\n"," 305: [702, 1191, 7916, 6116, 9, 6858, 7976, 6784, 1658, 6312],\n"," 314: [5808,\n"," 6987,\n"," 7937,\n"," 26122,\n"," 6678,\n"," 7980,\n"," 34520,\n"," 5987,\n"," 6213,\n"," 53004],\n"," 319: [42418,\n"," 57951,\n"," 53189,\n"," 39292,\n"," 36529,\n"," 39449,\n"," 59900,\n"," 2509,\n"," 51086,\n"," 55946],\n"," 325: [2040, 1358, 1958, 1249, 4559, 57, 2414, 2462, 3733, 1501],\n"," 341: [6385, 5669, 970, 4159, 4903, 5588, 5598, 5498, 4021, 4053],\n"," 471: [1156, 653, 582, 1276, 1550, 588, 943, 574, 1101, 563],\n"," 488: [5221, 6324, 6325, 6800, 6803, 5705, 6576, 6573, 6330, 5712],\n"," 495: [2752, 2701, 4865, 1953, 1658, 2176, 5574, 5202, 1936, 2300],\n"," 532: [1589, 1029, 1701, 898, 1219, 889, 1488, 870, 1246, 1525],\n"," 564: [230, 7191, 3905, 650, 148, 3, 89, 3241, 181, 3714],\n"," 574: [5618, 5802, 4987, 6540, 6116, 4912, 5013, 5097, 5341, 5346],\n"," 603: [54190,\n"," 7486,\n"," 31658,\n"," 1132,\n"," 486,\n"," 5611,\n"," 60649,\n"," 375,\n"," 1602,\n"," 48394],\n"," 674: [59103,\n"," 48879,\n"," 56885,\n"," 4853,\n"," 3985,\n"," 46850,\n"," 46972,\n"," 49649,\n"," 47202,\n"," 54999],\n"," 753: [41585,\n"," 55069,\n"," 56274,\n"," 43928,\n"," 52241,\n"," 52245,\n"," 55292,\n"," 48879,\n"," 60074,\n"," 40959],\n"," 810: [4082, 4615, 4610, 4603, 4598, 4589, 4588, 4582, 4572, 4571],\n"," 830: [2738, 2059, 4782, 3168, 2574, 2122, 2730, 2072, 4578, 5932],\n"," 841: [64716,\n"," 53988,\n"," 53956,\n"," 53921,\n"," 53752,\n"," 53466,\n"," 53464,\n"," 53189,\n"," 53125,\n"," 53121],\n"," 856: [4616, 4545, 4789, 5777, 5555, 5177, 4774, 5504, 5690, 4501],\n"," 921: [8700, 2871, 7581, 7362, 8620, 2150, 6687, 7001, 3910, 1668],\n"," 933: [510, 1171, 708, 421, 411, 1631, 452, 805, 217, 182],\n"," 976: [963, 1497, 1027, 1644, 1879, 1444, 1279, 1546, 957, 1575],\n"," 37: [4219,\n"," 3465,\n"," 3451,\n"," 45028,\n"," 4734,\n"," 8451,\n"," 3459,\n"," 3620,\n"," 4023,\n"," 46723],\n"," 83: [6460, 5506, 2387, 315, 383, 7177, 258, 793, 7166, 928],\n"," 248: [1064, 1610, 1058, 1252, 1211, 1051, 1218, 1563, 2240, 1125],\n"," 387: [5453, 5106, 6152, 4306, 5109, 5392, 3786, 110, 3720, 33830],\n"," 428: [818, 94, 2624, 3219, 3040, 3083, 1262, 2765, 2071, 1276],\n"," 451: [3371, 3717, 3721, 3081, 3726, 3727, 3079, 3077, 3076, 3730],\n"," 584: [885, 252, 202, 1057, 854, 754, 153, 1326, 710, 1302],\n"," 874: [2761, 3184, 3504, 2734, 2593, 2780, 2530, 3725, 3672, 2524],\n"," 995: [3263, 3538, 4017, 3255, 3854, 4426, 3333, 4531, 4009, 3698],\n"," 10: [56286, 31225, 291, 1087, 27410, 606, 8973, 5841, 5525, 6796],\n"," 19: [3667, 3714, 6193, 3873, 6060, 6044, 6932, 747, 848, 3181],\n"," 41: [7092, 7324, 6624, 7697, 8367, 8724, 7419, 6522, 666, 7234],\n"," 43: [5768, 6957, 484, 1246, 2454, 2476, 7880, 1722, 1804, 2261],\n"," 44: [2261, 2431, 2518, 2863, 4845, 5666, 2669, 2259, 2655, 2787],\n"," 45: [53129,\n"," 42217,\n"," 38304,\n"," 59795,\n"," 55908,\n"," 59729,\n"," 36527,\n"," 62344,\n"," 25,\n"," 5],\n"," 51: [6510, 7204, 6378, 7142, 55080, 7067, 7418, 6725, 8712, 6486],\n"," 56: [1161, 503, 1305, 2882, 382, 4109, 222, 4095, 3872, 3978],\n"," 61: [5, 32460, 59014, 703, 50601, 3645, 2415, 3134, 1187, 36527],\n"," 68: [6669, 5506, 2057, 2150, 2455, 7340, 2016, 2398, 2739, 2284],\n"," 69: [4532, 6077, 4614, 5312, 5428, 5941, 4518, 4487, 5231, 6098],\n"," 78: [5483, 4798, 4799, 4613, 4800, 4801, 4610, 4803, 4602, 4806],\n"," 110: [2626, 2112, 2302, 2253, 2117, 2106, 2263, 3224, 2577, 2169],\n"," 115: [2802, 3585, 3693, 3926, 3016, 4063, 6764, 1112, 358, 5737],\n"," 129: [6764, 6858, 1096, 2877, 1191, 6773, 7562, 7743, 1874, 2371],\n"," 150: [1457, 1113, 1620, 1110, 1623, 1627, 1633, 1639, 1646, 1654],\n"," 168: [3359,\n"," 6311,\n"," 40966,\n"," 26002,\n"," 2271,\n"," 2833,\n"," 2879,\n"," 4710,\n"," 27255,\n"," 5279],\n"," 169: [4310,\n"," 2531,\n"," 2992,\n"," 3789,\n"," 4251,\n"," 53988,\n"," 113,\n"," 497,\n"," 60286,\n"," 55094],\n"," 178: [6944,\n"," 4417,\n"," 33826,\n"," 56805,\n"," 5763,\n"," 3719,\n"," 5684,\n"," 3594,\n"," 4300,\n"," 5111],\n"," 186: [313, 8967, 1598, 851, 2248, 8874, 7327, 7451, 26840, 27523],\n"," 201: [298, 852, 592, 289, 1129, 273, 272, 266, 881, 885],\n"," 239: [60, 2758, 2747, 252, 3241, 3289, 2810, 3446, 3726, 174],\n"," 256: [3614, 1132, 3745, 5457, 1400, 564, 1750, 2503, 3217, 574],\n"," 257: [1054, 2083, 1702, 1475, 458, 971, 1534, 945, 2118, 852],\n"," 272: [4063,\n"," 26242,\n"," 2793,\n"," 3399,\n"," 47970,\n"," 5446,\n"," 2181,\n"," 3618,\n"," 3459,\n"," 2125],\n"," 279: [697, 101, 5103, 8659, 7009, 5214, 7123, 36517, 6988, 25996],\n"," 280: [46972, 7827, 31223, 186, 27618, 6744, 5729, 129, 69, 47778],\n"," 285: [5688,\n"," 6708,\n"," 7757,\n"," 30825,\n"," 7377,\n"," 46965,\n"," 7366,\n"," 25753,\n"," 5843,\n"," 5531],\n"," 298: [5966,\n"," 41527,\n"," 5339,\n"," 4404,\n"," 189,\n"," 55292,\n"," 8796,\n"," 33781,\n"," 40412,\n"," 5349],\n"," 301: [3915, 3605, 2695, 3313, 3688, 3807, 3083, 2709, 3426, 3028],\n"," 304: [5503,\n"," 6230,\n"," 43919,\n"," 46335,\n"," 260,\n"," 5438,\n"," 107,\n"," 6410,\n"," 60069,\n"," 6057],\n"," 333: [2755, 6226, 2144, 7352, 179, 292, 2042, 8831, 3200, 633],\n"," 334: [4486,\n"," 59016,\n"," 32584,\n"," 3781,\n"," 8667,\n"," 4299,\n"," 3667,\n"," 5033,\n"," 3135,\n"," 6855],\n"," 338: [8042,\n"," 41571,\n"," 8019,\n"," 7396,\n"," 37240,\n"," 44397,\n"," 32011,\n"," 32591,\n"," 7385,\n"," 33826],\n"," 350: [7440,\n"," 27391,\n"," 1454,\n"," 2241,\n"," 44022,\n"," 7234,\n"," 4077,\n"," 27523,\n"," 32019,\n"," 8375],\n"," 353: [3251, 2779, 4041, 4789, 1428, 4543, 2864, 2208, 5410, 3095],\n"," 378: [7111,\n"," 8861,\n"," 31026,\n"," 4563,\n"," 6970,\n"," 3861,\n"," 5454,\n"," 33896,\n"," 5431,\n"," 5346],\n"," 386: [7340, 8609, 6545, 7003, 8605, 8602, 8596, 8589, 6408, 6409],\n"," 397: [5569, 3334, 5841, 6582, 5966, 6784, 6062, 6550, 5808, 3272],\n"," 420: [2255, 2802, 2800, 2798, 2793, 2792, 2791, 2785, 2784, 2780],\n"," 439: [3275,\n"," 3287,\n"," 3872,\n"," 3360,\n"," 41025,\n"," 45720,\n"," 4005,\n"," 4560,\n"," 46965,\n"," 26005],\n"," 449: [6416, 844, 7054, 7372, 6668, 6750, 1463, 714, 6970, 6296],\n"," 478: [4719, 435, 5681, 907, 6378, 912, 2247, 2827, 3066, 843],\n"," 487: [2462, 2552, 3073, 2554, 2555, 3074, 3075, 2562, 2565, 2566],\n"," 489: [1650, 1797, 2847, 2204, 2407, 2752, 32291, 394, 8261, 2858],\n"," 500: [7980,\n"," 6872,\n"," 7831,\n"," 8239,\n"," 8959,\n"," 27005,\n"," 31617,\n"," 8576,\n"," 7086,\n"," 7454],\n"," 510: [48560, 51709, 47999, 361, 1151, 904, 1012, 52668, 268, 716],\n"," 521: [30894,\n"," 40574,\n"," 40614,\n"," 25923,\n"," 40723,\n"," 40819,\n"," 40851,\n"," 25777,\n"," 25752,\n"," 25993],\n"," 522: [464, 154, 347, 546, 378, 460, 411, 550, 7062, 136],\n"," 527: [83, 727, 268, 1099, 2898, 2749, 735, 153, 50, 135],\n"," 529: [4426,\n"," 3683,\n"," 4355,\n"," 4266,\n"," 36509,\n"," 4990,\n"," 3949,\n"," 8040,\n"," 4939,\n"," 5186],\n"," 535: [61, 472, 4510, 8984, 7157, 30803, 178, 5954, 6603, 46],\n"," 550: [64716,\n"," 48516,\n"," 48518,\n"," 48696,\n"," 48741,\n"," 48783,\n"," 49220,\n"," 48416,\n"," 49647,\n"," 50068],\n"," 560: [5872,\n"," 7300,\n"," 48997,\n"," 5820,\n"," 7442,\n"," 7119,\n"," 6803,\n"," 7450,\n"," 53129,\n"," 7381],\n"," 573: [8532,\n"," 3047,\n"," 39234,\n"," 33358,\n"," 40581,\n"," 8985,\n"," 8743,\n"," 46335,\n"," 34520,\n"," 55288],\n"," 579: [4915, 5013, 5015, 4420, 5021, 5023, 5025, 4418, 5028, 4417],\n"," 582: [4354, 4433, 4994, 5169, 4361, 4947, 4333, 5820, 5506, 4520],\n"," 583: [4025, 3527, 3462, 4186, 4487, 3807, 3467, 3982, 3453, 3440],\n"," 587: [3930, 4636, 2665, 2549, 3793, 3694, 3289, 2560, 2841, 2921],\n"," 596: [5313, 5902, 5970, 6196, 5219, 6590, 6679, 5464, 5637, 5189],\n"," 602: [129, 152, 969, 552, 510, 65, 1183, 972, 172, 703],\n"," 618: [905, 7001, 1427, 1501, 6166, 809, 1400, 742, 7771, 1931],\n"," 624: [3659, 316, 3534, 3678, 3623, 4091, 3447, 3289, 3821, 3639],\n"," 627: [2073, 5541, 7179, 5469, 6264, 2186, 5411, 1321, 2378, 3435],\n"," 635: [52885,\n"," 31026,\n"," 49647,\n"," 52042,\n"," 47830,\n"," 57669,\n"," 27706,\n"," 6482,\n"," 4795,\n"," 42632],\n"," 639: [1948, 1991, 1394, 2106, 1389, 1382, 1614, 2506, 2081, 2565],\n"," 640: [1923, 2506, 1862, 1784, 2946, 1994, 1999, 1857, 2770, 2034],\n"," 642: [55830,\n"," 47099,\n"," 46970,\n"," 46948,\n"," 46572,\n"," 46335,\n"," 46322,\n"," 47202,\n"," 45950,\n"," 45880],\n"," 649: [5731, 7416, 6219, 5902, 6221, 5909, 5912, 7439, 6379, 7440],\n"," 652: [9, 420, 150, 358, 397, 218, 248, 373, 6858, 29],\n"," 662: [762, 1508, 6210, 62113, 7325, 2017, 6813, 2012, 6582, 1615],\n"," 671: [4483, 4772, 4690, 5048, 5882, 4699, 5445, 5970, 5637, 5935],\n"," 675: [78, 197, 359, 35, 137, 554, 628, 432, 103, 634],\n"," 684: [5517, 5385, 6188, 7163, 6204, 7076, 7088, 5705, 7019, 5690],\n"," 703: [7620,\n"," 6567,\n"," 6356,\n"," 7178,\n"," 25752,\n"," 4949,\n"," 5651,\n"," 5446,\n"," 7614,\n"," 4142],\n"," 712: [1017, 2634, 2175, 2118, 2123, 885, 1024, 1161, 1554, 1928],\n"," 726: [3539, 3512, 2819, 2876, 3420, 3998, 2767, 4021, 2956, 3622],\n"," 727: [49649,\n"," 48698,\n"," 8782,\n"," 8789,\n"," 48856,\n"," 48879,\n"," 48943,\n"," 8807,\n"," 49132,\n"," 49220],\n"," 744: [177, 36, 39, 40, 47, 182, 179, 53, 55, 61],\n"," 746: [27801,\n"," 31116,\n"," 48043,\n"," 52375,\n"," 27816,\n"," 46322,\n"," 27674,\n"," 60649,\n"," 32584,\n"," 49932],\n"," 761: [1059, 1587, 496, 558, 1444, 766, 1220, 1372, 1016, 580],\n"," 765: [7459, 6493, 8740, 6303, 8949, 7194, 7308, 8014, 6367, 6902],\n"," 766: [36537,\n"," 35957,\n"," 45074,\n"," 55820,\n"," 40278,\n"," 54780,\n"," 46972,\n"," 36525,\n"," 36509,\n"," 43936],\n"," 771: [865, 1002, 1565, 2041, 4720, 4880, 5289, 4958, 1783, 1042],\n"," 776: [51903,\n"," 1821,\n"," 2630,\n"," 1831,\n"," 1739,\n"," 2479,\n"," 58490,\n"," 49649,\n"," 2340,\n"," 2597],\n"," 797: [5025, 5410, 6448, 6378, 1655, 6244, 5034, 5943, 5256, 5349],\n"," 812: [26491,\n"," 26375,\n"," 3095,\n"," 2917,\n"," 45074,\n"," 3036,\n"," 3224,\n"," 2297,\n"," 3217,\n"," 2552],\n"," 815: [5636, 5502, 5882, 5434, 4812, 1629, 994, 5603, 5127, 6320],\n"," 818: [858, 1606, 4098, 8970, 3730, 3287, 2093, 48698, 967, 1585],\n"," 821: [25777,\n"," 48322,\n"," 59037,\n"," 27731,\n"," 31553,\n"," 56152,\n"," 25750,\n"," 27773,\n"," 25764,\n"," 34336],\n"," 822: [2215, 2034, 2040, 2042, 2043, 2046, 2048, 2052, 2054, 2058],\n"," 831: [53550,\n"," 34520,\n"," 33237,\n"," 57522,\n"," 46530,\n"," 33499,\n"," 33154,\n"," 52245,\n"," 32598,\n"," 34323],\n"," 834: [1938, 1131, 2367, 1247, 1827, 1688, 1171, 1914, 2310, 1379],\n"," 837: [7178,\n"," 7791,\n"," 7713,\n"," 6807,\n"," 7255,\n"," 6093,\n"," 5516,\n"," 8872,\n"," 26285,\n"," 6565],\n"," 839: [1959,\n"," 2664,\n"," 34538,\n"," 43744,\n"," 42197,\n"," 5400,\n"," 8740,\n"," 3101,\n"," 8894,\n"," 4463],\n"," 840: [2380, 2513, 2385, 2612, 3046, 2377, 2434, 2335, 2518, 3543],\n"," 851: [302, 647, 300, 298, 297, 295, 663, 664, 289, 303],\n"," 855: [5358, 5670, 5596, 1173, 6977, 6010, 1245, 950, 5601, 1096],\n"," 857: [30894,\n"," 52712,\n"," 47644,\n"," 51935,\n"," 49347,\n"," 45672,\n"," 39419,\n"," 60040,\n"," 26713,\n"," 57536],\n"," 868: [6218, 1426, 1425, 1422, 6038, 6035, 1416, 1413, 1412, 1411],\n"," 904: [3436, 2781, 3197, 3034, 3616, 3253, 2671, 2979, 2702, 3324],\n"," 905: [563,\n"," 5318,\n"," 61361,\n"," 4386,\n"," 59404,\n"," 58299,\n"," 59501,\n"," 58418,\n"," 59615,\n"," 174],\n"," 906: [30820,\n"," 48997,\n"," 47810,\n"," 27912,\n"," 31687,\n"," 33646,\n"," 33681,\n"," 49647,\n"," 40278,\n"," 45732],\n"," 924: [7617, 6564, 6794, 8796, 7256, 6774, 8125, 6550, 6452, 7326],\n"," 925: [6006,\n"," 6229,\n"," 5949,\n"," 5351,\n"," 48744,\n"," 56251,\n"," 3214,\n"," 39231,\n"," 5556,\n"," 5959],\n"," 927: [378, 4661, 4974, 4896, 6157, 5291, 4901, 5662, 6232, 6196],\n"," 940: [2818, 2453, 2708, 2706, 2456, 2462, 3052, 3050, 3064, 2693],\n"," 948: [5762, 5110, 5968, 5682, 5358, 5323, 5023, 6750, 6650, 5026],\n"," 953: [338, 329, 326, 324, 322, 320, 316, 312, 300, 297],\n"," 966: [595, 5036, 582, 834, 6331, 1180, 4388, 5460, 5852, 5231],\n"," 967: [52283,\n"," 47970,\n"," 27731,\n"," 52975,\n"," 49822,\n"," 58047,\n"," 31086,\n"," 39886,\n"," 60514,\n"," 42728],\n"," 979: [2408, 4876, 2669, 280, 442, 6265, 753, 5734, 501, 5250],\n"," 980: [5955, 6233, 6013, 5357, 5269, 6659, 5593, 1583, 6522, 3252],\n"," 983: [382, 862, 565, 2686, 769, 249, 504, 795, 228, 71],\n"," 984: [1551, 2480, 1370, 2424, 1517, 1814, 1296, 1914, 2023, 1863],\n"," 991: [2941, 3452, 3399, 3514, 3624, 4030, 2875, 2863, 4098, 3269],\n"," 1009: [8360,\n"," 6872,\n"," 7762,\n"," 6783,\n"," 32300,\n"," 8932,\n"," 26614,\n"," 6776,\n"," 32598,\n"," 37857],\n"," 1011: [4090, 4835, 4167, 2252, 4297, 3969, 4219, 5453, 4635, 234],\n"," 1014: [49, 236, 59985, 6984, 6477, 34338, 6331, 8366, 6947, 8593],\n"," 1021: [145, 549, 461, 55286, 58655, 117, 278, 38, 227, 538],\n"," 1030: [59016,\n"," 44022,\n"," 49278,\n"," 58025,\n"," 8998,\n"," 57532,\n"," 40959,\n"," 48560,\n"," 50005,\n"," 40955],\n"," 1033: [5630,\n"," 5544,\n"," 6315,\n"," 5496,\n"," 5318,\n"," 5308,\n"," 5832,\n"," 5634,\n"," 6643,\n"," 6281],\n"," 1039: [4090,\n"," 5600,\n"," 3956,\n"," 5633,\n"," 3612,\n"," 4123,\n"," 4409,\n"," 3313,\n"," 3906,\n"," 3624],\n"," 1040: [43460,\n"," 52042,\n"," 52644,\n"," 50872,\n"," 42730,\n"," 46572,\n"," 60037,\n"," 46530,\n"," 54094,\n"," 54268],\n"," 1053: [4035,\n"," 4392,\n"," 4294,\n"," 4221,\n"," 4442,\n"," 3870,\n"," 3691,\n"," 4437,\n"," 3861,\n"," 4082],\n"," 704: [4426, 3894, 3822, 3975, 3812, 3983, 4127, 5177, 4442, 4084],\n"," 934: [30793,\n"," 27611,\n"," 42725,\n"," 8933,\n"," 59014,\n"," 53322,\n"," 39231,\n"," 55250,\n"," 48385,\n"," 57669],\n"," 42: [36708, 5225, 1861, 1902, 2130, 6311, 3206, 2812, 1984, 4634],\n"," 73: [53460,\n"," 6223,\n"," 46322,\n"," 3024,\n"," 3514,\n"," 2375,\n"," 5808,\n"," 2892,\n"," 2477,\n"," 6684],\n"," 82: [1590, 1397, 1348, 3614, 1262, 1255, 1257, 2050, 1358, 2261],\n"," 159: [3100, 2291, 2841, 2285, 2835, 2282, 2279, 2824, 2276, 2819],\n"," 161: [4453,\n"," 4299,\n"," 54281,\n"," 5433,\n"," 5341,\n"," 5373,\n"," 56333,\n"," 4186,\n"," 4806,\n"," 4148],\n"," 192: [2899, 3511, 2006, 2498, 2130, 1686, 2964, 3092, 2765, 3239],\n"," 216: [58, 766, 3087, 2967, 3174, 3467, 1076, 3374, 3486, 2768],\n"," 219: [34405,\n"," 144,\n"," 741,\n"," 38886,\n"," 8040,\n"," 1867,\n"," 55269,\n"," 7059,\n"," 8783,\n"," 1326],\n"," 290: [1167, 1172, 1914, 1104, 2345, 1224, 1356, 1721, 6448, 170],\n"," 379: [32591,\n"," 46965,\n"," 49910,\n"," 31026,\n"," 8753,\n"," 39419,\n"," 7714,\n"," 7844,\n"," 8119,\n"," 37727],\n"," 389: [569, 1667, 248, 882, 298, 283, 418, 275, 480, 7088],\n"," 400: [6593,\n"," 5618,\n"," 4650,\n"," 4272,\n"," 5380,\n"," 53189,\n"," 4023,\n"," 4735,\n"," 4599,\n"," 4823],\n"," 462: [4521, 4463, 4614, 5036, 5099, 5962, 4787, 4621, 182, 5325],\n"," 507: [209, 3497, 268, 2836, 226, 146, 277, 278, 11, 208],\n"," 600: [53464,\n"," 4188,\n"," 4265,\n"," 5347,\n"," 4770,\n"," 4373,\n"," 5303,\n"," 4167,\n"," 4995,\n"," 4830],\n"," 721: [3122, 2406, 3632, 4021, 3037, 3303, 4544, 2768, 4988, 3838],\n"," 793: [165, 2791, 46, 5, 187, 5553, 5826, 5646, 5749, 5363],\n"," 912: [27831,\n"," 55063,\n"," 55052,\n"," 6624,\n"," 6615,\n"," 6603,\n"," 6593,\n"," 6586,\n"," 54999,\n"," 6581],\n"," 932: [59985,\n"," 43871,\n"," 53953,\n"," 46572,\n"," 55820,\n"," 44974,\n"," 53972,\n"," 55999,\n"," 55765,\n"," 55687],\n"," 949: [1352, 489, 484, 483, 482, 481, 477, 473, 472, 471],\n"," 1025: [96, 477, 528, 2778, 2717, 2891, 2562, 460, 98, 255],\n"," 46: [42, 7781, 7132, 6777, 189, 7226, 449, 6409, 6909, 33672],\n"," 74: [259, 4847, 4103, 34150, 7349, 8661, 26122, 4, 32387, 8485],\n"," 342: [8941, 4547, 4533, 4776, 5236, 5137, 4615, 4541, 4846, 5854],\n"," 508: [56885, 1416, 801, 1928, 43558, 1840, 1945, 662, 1583, 8874],\n"," 580: [2207, 2928, 4237, 3430, 2937, 3420, 2500, 3412, 3181, 2800],\n"," 774: [921, 1262, 1022, 1080, 1750, 987, 1326, 1580, 1501, 1629],\n"," 783: [3289, 2982, 3040, 2860, 2797, 2791, 2802, 2935, 2794, 3351],\n"," 1002: [937, 1060, 1447, 1686, 1324, 1831, 1611, 1027, 769, 1190],\n"," 1023: [2019,\n"," 1976,\n"," 1493,\n"," 2135,\n"," 1413,\n"," 60943,\n"," 176,\n"," 45431,\n"," 177,\n"," 1517],\n"," 1048: [1767,\n"," 2185,\n"," 6663,\n"," 6554,\n"," 2827,\n"," 7032,\n"," 7485,\n"," 2839,\n"," 3629,\n"," 4111],\n"," 23: [7376, 230, 1683, 7299, 2551, 6506, 1422, 4783, 2126, 965],\n"," 96: [67, 44, 213, 473, 4241, 5131, 488, 4705, 60147, 5762],\n"," 124: [7616,\n"," 47952,\n"," 8957,\n"," 2792,\n"," 2787,\n"," 2847,\n"," 2548,\n"," 3988,\n"," 1575,\n"," 3741],\n"," 136: [6764, 8459, 8426, 8378, 8376, 7062, 7063, 8368, 8363, 7069],\n"," 148: [1993, 1459, 1391, 4676, 2108, 3962, 2364, 1755, 1396, 1950],\n"," 189: [4367, 4801, 3945, 6535, 5418, 5404, 26903, 3972, 4998, 985],\n"," 213: [77, 798, 1260, 2053, 2476, 1251, 3225, 3745, 4570, 2606],\n"," 243: [452, 1190, 520, 521, 1189, 523, 526, 527, 1186, 529],\n"," 323: [1044, 483, 496, 445, 1426, 1357, 1669, 1184, 2886, 1105],\n"," 352: [3665, 2669, 2289, 3004, 4768, 4798, 3862, 4521, 4139, 4727],\n"," 429: [2894,\n"," 3698,\n"," 1192,\n"," 491,\n"," 2303,\n"," 1054,\n"," 32598,\n"," 1438,\n"," 42723,\n"," 32721],\n"," 625: [2946, 2801, 2802, 2807, 2808, 2809, 2817, 2827, 2828, 2830],\n"," 808: [33679,\n"," 46965,\n"," 8939,\n"," 46970,\n"," 8932,\n"," 8928,\n"," 4333,\n"," 30894,\n"," 8941,\n"," 47200],\n"," 843: [1731, 1610, 1608, 1605, 1597, 1595, 1591, 1611, 1590, 2073],\n"," 847: [1094, 1237, 1086, 5194, 1335, 2170, 2029, 1245, 1824, 2094],\n"," 963: [59387,\n"," 3334,\n"," 27822,\n"," 5299,\n"," 39446,\n"," 38388,\n"," 3639,\n"," 33138,\n"," 45722,\n"," 8700],\n"," 975: [5875, 5872, 5890, 6261, 5973, 6663, 6975, 7570, 6744, 6582],\n"," 998: [2567, 2065, 2700, 2115, 2528, 2520, 2264, 2051, 3083, 2702],\n"," 75: [6338,\n"," 7915,\n"," 59306,\n"," 7149,\n"," 7564,\n"," 59421,\n"," 6568,\n"," 1213,\n"," 7368,\n"," 6988],\n"," 427: [5650, 5445, 6319, 267, 6352, 4745, 4754, 378, 5472, 7619],\n"," 466: [3469, 4276, 2499, 3210, 2972, 2898, 2511, 2769, 4821, 2252],\n"," 801: [40, 122, 175, 82, 180, 85, 6, 6303, 49278, 165],\n"," 848: [4787, 3727, 3070, 2790, 3035, 2861, 3932, 2965, 2733, 3262],\n"," 888: [1004, 427, 1010, 421, 417, 408, 397, 393, 382, 380],\n"," 191: [2385,\n"," 1028,\n"," 2987,\n"," 1827,\n"," 3479,\n"," 2275,\n"," 2402,\n"," 2264,\n"," 54290,\n"," 3002],\n"," 227: [2568, 2195, 3016, 2183, 2973, 2711, 2826, 2187, 2701, 2925],\n"," 245: [3555, 4129, 3721, 3628, 3544, 3550, 4308, 3714, 4067, 4654],\n"," 380: [1593, 840, 2080, 2089, 1233, 4080, 3329, 4573, 3408, 2801],\n"," 408: [1081, 1824, 1143, 1624, 4268, 2154, 3457, 1359, 2382, 2983],\n"," 668: [44657,\n"," 8698,\n"," 58655,\n"," 61361,\n"," 3962,\n"," 58998,\n"," 3145,\n"," 4484,\n"," 59333,\n"," 27721],\n"," 747: [171, 176, 118, 175, 100, 7, 2881, 3544, 3142, 3846],\n"," 754: [485, 222, 63, 258, 250, 34, 105, 480, 278, 206],\n"," 11: [27790,\n"," 7316,\n"," 5069,\n"," 45183,\n"," 2758,\n"," 3683,\n"," 4750,\n"," 4868,\n"," 5453,\n"," 3399],\n"," 16: [8620,\n"," 1921,\n"," 56251,\n"," 1396,\n"," 31435,\n"," 1937,\n"," 41573,\n"," 54256,\n"," 26172,\n"," 633],\n"," 81: [6001, 8228, 6889, 8336, 3857, 7925, 6812, 7102, 7352, 6017],\n"," 86: [45635,\n"," 55805,\n"," 42734,\n"," 59315,\n"," 43836,\n"," 2273,\n"," 41585,\n"," 1212,\n"," 1305,\n"," 1432],\n"," 97: [2867, 2265, 4705, 5670, 2133, 3627, 4650, 6366, 25788, 1436],\n"," 151: [692, 8643, 4642, 1641, 3940, 852, 1432, 1092, 1739, 8520],\n"," 235: [2863,\n"," 5095,\n"," 3108,\n"," 2387,\n"," 2376,\n"," 2907,\n"," 3061,\n"," 56176,\n"," 31193,\n"," 2630],\n"," 251: [3502, 4447, 3853, 4069, 3572, 3507, 4228, 4148, 3496, 4527],\n"," 258: [148, 2721, 2788, 281, 1197, 1302, 351, 1012, 240, 1214],\n"," 278: [2037, 2751, 3196, 228, 27728, 365, 53956, 31923, 521, 81],\n"," 388: [5424,\n"," 4213,\n"," 50005,\n"," 54881,\n"," 5135,\n"," 49772,\n"," 52279,\n"," 53468,\n"," 54736,\n"," 8365],\n"," 551: [1, 159, 161, 166, 169, 176, 178, 328, 183, 355],\n"," 606: [918, 1128, 1129, 582, 590, 1136, 1143, 1145, 1127, 1147],\n"," 614: [2032, 2165, 2026, 2977, 2300, 2549, 2263, 2155, 2023, 2532],\n"," 681: [3055,\n"," 3864,\n"," 179,\n"," 31660,\n"," 60147,\n"," 33237,\n"," 34336,\n"," 56152,\n"," 39400,\n"," 43926],\n"," 686: [826, 4599, 2962, 486, 4239, 4139, 411, 2248, 791, 4565],\n"," 711: [4300, 4713, 4433, 4498, 4799, 5312, 5009, 4387, 5085, 5151],\n"," 718: [2995, 2478, 2473, 2533, 3147, 2614, 2467, 3667, 2425, 2720],\n"," 873: [3270, 2820, 2107, 2829, 2674, 3169, 2797, 3265, 2912, 2695],\n"," 962: [3238, 2764, 3390, 2711, 3178, 3678, 3015, 2697, 3402, 3648],\n"," 985: [8138,\n"," 27801,\n"," 32721,\n"," 7879,\n"," 43460,\n"," 27186,\n"," 50189,\n"," 2877,\n"," 39449,\n"," 3678],\n"," 993: [54775, 66, 117, 53189, 1189, 714, 16, 198, 33830, 243],\n"," 184: [4568, 650, 1410, 5385, 537, 614, 13, 42734, 8589, 220],\n"," 246: [3308, 3422, 2769, 3078, 3598, 2691, 3183, 3683, 3910, 2704],\n"," 373: [44729,\n"," 48774,\n"," 27416,\n"," 26203,\n"," 42734,\n"," 56782,\n"," 34164,\n"," 26138,\n"," 26163,\n"," 49220],\n"," 430: [8593, 7440, 7300, 8493, 6614, 6948, 380, 7023, 7107, 7062],\n"," 534: [8967,\n"," 2099,\n"," 7184,\n"," 1304,\n"," 8617,\n"," 8789,\n"," 8928,\n"," 27611,\n"," 26828,\n"," 37733],\n"," 805: [4356, 5666, 4727, 4350, 4991, 5503, 5423, 4342, 4427, 5159],\n"," 58: [45210,\n"," 41585,\n"," 39419,\n"," 43928,\n"," 33615,\n"," 42002,\n"," 37380,\n"," 50514,\n"," 45501,\n"," 42021],\n"," 112: [368, 48856, 278, 346, 248, 347, 52885, 56775, 49910, 282],\n"," 367: [2699,\n"," 2745,\n"," 2208,\n"," 2196,\n"," 3296,\n"," 2289,\n"," 2800,\n"," 2888,\n"," 27820,\n"," 51088],\n"," 548: [852, 934, 935, 943, 945, 947, 948, 954, 955, 961],\n"," 791: [4967, 5036, 5609, 5878, 5670, 4972, 4960, 6273, 6541, 5136],\n"," 909: [1485, 2142, 2144, 2145, 1459, 1460, 1186, 1930, 1464, 1190],\n"," 1041: [177, 249, 336, 368, 372, 304, 32, 187, 174, 150],\n"," 13: [1082, 6709, 8366, 1887, 30793, 3043, 5956, 2331, 3531, 4930],\n"," 869: [2353, 2796, 2402, 1940, 2400, 1836, 2394, 2393, 2804, 1941],\n"," 415: [5459, 3358, 2719, 6347, 7099, 1252, 224, 5999, 1298, 5777],\n"," 477: [6978,\n"," 2494,\n"," 4251,\n"," 5975,\n"," 5147,\n"," 1259,\n"," 42007,\n"," 8376,\n"," 1760,\n"," 3744],\n"," 569: [1333, 297, 1382, 965, 803, 506, 489, 840, 523, 926],\n"," 694: [2738,\n"," 3262,\n"," 6481,\n"," 2313,\n"," 7847,\n"," 2778,\n"," 2342,\n"," 26230,\n"," 3054,\n"," 2364],\n"," 729: [1812, 2053, 2342, 2389, 2386, 2594, 1772, 1754, 1918, 2579],\n"," 741: [2714, 3241, 2767, 2844, 3181, 2701, 3253, 2976, 3914, 3744],\n"," 965: [83, 141, 106, 1, 70, 15, 25, 198, 174, 27],\n"," 17: [6368, 5928, 5319, 5903, 26680, 5152, 5644, 5039, 7647, 5973],\n"," 40: [6841, 5860, 1916, 6502, 2361, 7190, 5986, 6986, 1837, 2731],\n"," 114: [707, 108, 6126, 5054, 804, 6816, 1091, 901, 372, 498],\n"," 137: [44828,\n"," 46850,\n"," 44729,\n"," 59014,\n"," 55830,\n"," 45730,\n"," 60753,\n"," 47518,\n"," 50851,\n"," 55069],\n"," 153: [7720, 6595, 4853, 6180, 4970, 5469, 7072, 7386, 2417, 2803],\n"," 211: [43904,\n"," 40278,\n"," 39449,\n"," 39446,\n"," 39444,\n"," 39292,\n"," 39231,\n"," 39183,\n"," 8336,\n"," 38992],\n"," 286: [64716,\n"," 60037,\n"," 5264,\n"," 61323,\n"," 8740,\n"," 60069,\n"," 59795,\n"," 5179,\n"," 5422,\n"," 60147],\n"," 330: [4641,\n"," 7149,\n"," 4646,\n"," 4728,\n"," 5768,\n"," 27839,\n"," 5958,\n"," 7899,\n"," 5523,\n"," 6856],\n"," 336: [8927,\n"," 39444,\n"," 27584,\n"," 9002,\n"," 50153,\n"," 26138,\n"," 26662,\n"," 56176,\n"," 1028,\n"," 45517],\n"," 372: [6592, 7126, 7295, 7132, 5923, 5927, 6573, 6195, 6951, 5936],\n"," 376: [27839,\n"," 8198,\n"," 7781,\n"," 38701,\n"," 48783,\n"," 8972,\n"," 8690,\n"," 50851,\n"," 27523,\n"," 31485],\n"," 412: [4552, 4949, 4005, 4304, 4620, 4167, 4707, 2686, 3946, 3939],\n"," 447: [4443, 3624, 649, 4989, 4976, 4824, 200, 516, 4688, 3628],\n"," 467: [1860,\n"," 940,\n"," 47629,\n"," 42009,\n"," 204,\n"," 43926,\n"," 2176,\n"," 1392,\n"," 58972,\n"," 2612],\n"," 490: [3909, 3313, 3396, 889, 3323, 942, 1078, 1399, 1546, 2068],\n"," 518: [3837, 166, 3480, 4200, 556, 3821, 4129, 3251, 4355, 3178],\n"," 608: [86, 471, 512, 733, 551, 8614, 6809, 969, 1086, 31698],\n"," 619: [7307,\n"," 25777,\n"," 1088,\n"," 1894,\n"," 8372,\n"," 7303,\n"," 6963,\n"," 8266,\n"," 26242,\n"," 6862],\n"," 644: [1667, 1168, 1513, 2870, 2149, 1997, 1489, 1392, 1022, 1894],\n"," 667: [1542, 2318, 2748, 2327, 2655, 295, 49, 223, 1600, 171],\n"," 698: [43926,\n"," 41566,\n"," 42718,\n"," 47810,\n"," 58964,\n"," 46335,\n"," 52950,\n"," 38701,\n"," 46578,\n"," 48416],\n"," 709: [33621,\n"," 48412,\n"," 8958,\n"," 53921,\n"," 26513,\n"," 2135,\n"," 2383,\n"," 45186,\n"," 34538,\n"," 2143],\n"," 728: [416, 595, 956, 299, 298, 297, 1043, 295, 597, 955],\n"," 733: [43396,\n"," 57669,\n"," 8595,\n"," 8870,\n"," 38798,\n"," 6157,\n"," 6502,\n"," 48416,\n"," 27851,\n"," 34437],\n"," 777: [3309, 288, 3780, 3247, 3555, 3408, 3462, 3472, 126, 4517],\n"," 813: [5298, 5293, 6025, 5459, 7001, 6993, 5364, 6855, 5603, 5289],\n"," 832: [126, 6427, 2884, 6666, 223, 319, 5690, 5912, 6478, 63],\n"," 893: [59725,\n"," 60766,\n"," 4828,\n"," 59404,\n"," 59900,\n"," 59421,\n"," 59729,\n"," 4757,\n"," 6041,\n"," 5433],\n"," 901: [3272, 2744, 3432, 3053, 2749, 2801, 3640, 2962, 2944, 3354],\n"," 937: [55402,\n"," 45517,\n"," 42730,\n"," 54999,\n"," 26555,\n"," 32179,\n"," 2016,\n"," 33817,\n"," 36531,\n"," 34332],\n"," 947: [3444, 3370, 3810, 3158, 4155, 4378, 3728, 4232, 3985, 4329],\n"," 362: [1347, 911, 176, 918, 1000, 364, 1222, 387, 269, 1040],\n"," 375: [8511,\n"," 7142,\n"," 7054,\n"," 8859,\n"," 27822,\n"," 7720,\n"," 7061,\n"," 7043,\n"," 8337,\n"," 7027],\n"," 599: [35, 22, 8800, 7069, 31, 26, 8743, 18, 8336, 45],\n"," 632: [1782, 1003, 2232, 2221, 1112, 5308, 1544, 4267, 5570, 3462],\n"," 779: [3868, 4448, 3631, 4994, 4989, 3928, 4628, 4341, 3681, 4422],\n"," 1022: [31184,\n"," 46335,\n"," 48082,\n"," 52448,\n"," 27788,\n"," 36531,\n"," 52885,\n"," 4147,\n"," 475,\n"," 35836],\n"," 1034: [580, 1085, 516, 522, 527, 1219, 1471, 1723, 880, 688],\n"," 819: [6221, 5310, 6897, 6192, 5966, 5292, 6226, 5460, 6053, 6448],\n"," 2: [4210, 4961, 4105, 2351, 3573, 4032, 1586, 5159, 4840, 2804],\n"," 3: [3680, 3310, 3903, 4178, 3606, 3781, 3833, 4161, 3248, 4127],\n"," 104: [1361, 1856, 1663, 1303, 1975, 1806, 2310, 1534, 1353, 54],\n"," 105: [50440, 982, 5856, 5673, 1027, 6856, 466, 526, 1592, 7649],\n"," 218: [6344, 6337, 6436, 1545, 8910, 7162, 1398, 3107, 3200, 7367],\n"," 250: [3666, 3608, 3725, 3793, 146, 3061, 3128, 4342, 5902, 3822],\n"," 313: [4664, 3830, 5275, 2553, 1337, 2122, 5103, 8836, 2559, 3315],\n"," 377: [5613, 4793, 4641, 6305, 5481, 4682, 4849, 5856, 6297, 5418],\n"," 413: [58381,\n"," 32294,\n"," 8633,\n"," 36708,\n"," 55687,\n"," 8376,\n"," 30749,\n"," 45106,\n"," 31435,\n"," 8464],\n"," 576: [55282,\n"," 58347,\n"," 57368,\n"," 59784,\n"," 64716,\n"," 151,\n"," 56587,\n"," 56805,\n"," 58418,\n"," 62293],\n"," 586: [930, 1683, 2155, 1037, 2150, 1692, 2068, 1457, 1145, 2032],\n"," 595: [8951,\n"," 6291,\n"," 60074,\n"," 8974,\n"," 48744,\n"," 4638,\n"," 6316,\n"," 5609,\n"," 7484,\n"," 5620],\n"," 610: [1564, 7380, 8661, 6316, 963, 927, 6442, 2616, 6997, 2557],\n"," 613: [3529, 6780, 6387, 2758, 6672, 2867, 4012, 5670, 5577, 6920],\n"," 637: [6687, 6178, 7883, 6127, 6980, 6985, 7845, 6989, 6991, 7840],\n"," 663: [516, 90, 640, 1964, 28, 475, 17, 936, 322, 1273],\n"," 740: [5596, 6057, 6045, 6044, 6373, 6041, 6040, 5563, 6038, 5559],\n"," 787: [4516, 5409, 5179, 6021, 4675, 4978, 5890, 4510, 4574, 5392],\n"," 804: [3165, 3111, 2709, 2633, 2642, 2649, 3606, 3309, 2840, 3774],\n"," 866: [8633,\n"," 8142,\n"," 4580,\n"," 8665,\n"," 8128,\n"," 5140,\n"," 8640,\n"," 4523,\n"," 33819,\n"," 31083],\n"," 883: [1370, 1385, 411, 904, 907, 406, 397, 394, 393, 908],\n"," 941: [2453, 2448, 2969, 1274, 2651, 2511, 2529, 1730, 3559, 2921],\n"," 1007: [5541,\n"," 6542,\n"," 6516,\n"," 3963,\n"," 5609,\n"," 7124,\n"," 6078,\n"," 6284,\n"," 7142,\n"," 5606],\n"," 817: [54, 411, 80, 416, 145, 257, 6879, 187, 5690, 4147],\n"," 6: [7043, 2550, 268, 6305, 6225, 2099, 2696, 2961, 3143, 7216],\n"," 7: [7706, 7394, 3605, 8191, 8195, 8451, 4426, 8581, 8859, 7891],\n"," 14: [3973,\n"," 8977,\n"," 4842,\n"," 5516,\n"," 5604,\n"," 27020,\n"," 8643,\n"," 6319,\n"," 32300,\n"," 7474],\n"," 24: [3048, 3937, 59784, 4077, 4002, 4326, 4213, 3556, 4091, 3358],\n"," 57: [8195, 7223, 6416, 7379, 7898, 6290, 2165, 2775, 48082, 6855],\n"," 60: [1529, 908, 2025, 1223, 1516, 2029, 784, 2031, 1343, 4560],\n"," 64: [32019,\n"," 58299,\n"," 42004,\n"," 34332,\n"," 34153,\n"," 44004,\n"," 58334,\n"," 40851,\n"," 3638,\n"," 55820],\n"," 84: [1345, 1662, 805, 973, 705, 1053, 1485, 1326, 1339, 847],\n"," 90: [6548,\n"," 8117,\n"," 7360,\n"," 4566,\n"," 36531,\n"," 3783,\n"," 6021,\n"," 5221,\n"," 54780,\n"," 7016],\n"," 98: [3099, 2643, 2581, 3243, 1276, 3771, 3054, 3604, 3713, 2780],\n"," 113: [2147, 2239, 2733, 2097, 2962, 2414, 2557, 2612, 3005, 317],\n"," 120: [3871,\n"," 4407,\n"," 4249,\n"," 1943,\n"," 8484,\n"," 26965,\n"," 8528,\n"," 7131,\n"," 8266,\n"," 7766],\n"," 123: [5107, 5994, 614, 1095, 5679, 5962, 5859, 6252, 5016, 5747],\n"," 157: [5352, 5502, 7149, 6953, 5893, 7347, 7365, 5517, 8360, 5951],\n"," 194: [5604, 5528, 6513, 6542, 5414, 2250, 308, 4887, 2965, 5127],\n"," 200: [7376,\n"," 26555,\n"," 2182,\n"," 26122,\n"," 52375,\n"," 6567,\n"," 4840,\n"," 960,\n"," 3689,\n"," 5530],\n"," 204: [3304, 2677, 6012, 3422, 5324, 5418, 6327, 6732, 6192, 6294],\n"," 205: [53121,\n"," 54881,\n"," 7938,\n"," 34319,\n"," 49272,\n"," 8972,\n"," 52722,\n"," 40148,\n"," 52456,\n"," 25923],\n"," 225: [46, 97, 522, 650, 4477, 1169, 3659, 6827, 670, 174],\n"," 229: [2878,\n"," 26119,\n"," 3544,\n"," 9015,\n"," 4023,\n"," 2769,\n"," 4921,\n"," 44161,\n"," 31770,\n"," 57],\n"," 237: [4132, 3232, 3330, 3158, 2203, 3923, 4251, 2462, 2469, 661],\n"," 242: [33836,\n"," 47382,\n"," 33085,\n"," 54001,\n"," 33004,\n"," 32892,\n"," 54190,\n"," 47254,\n"," 37240,\n"," 54259],\n"," 252: [2545, 1752, 1753, 1759, 1762, 1769, 1770, 1782, 1783, 1784],\n"," 266: [4124,\n"," 9010,\n"," 49272,\n"," 3311,\n"," 25750,\n"," 55820,\n"," 60943,\n"," 44929,\n"," 52668,\n"," 31445],\n"," 270: [40412,\n"," 55872,\n"," 7094,\n"," 3203,\n"," 8372,\n"," 60649,\n"," 2585,\n"," 54796,\n"," 33819,\n"," 5893],\n"," 282: [6045, 5011, 6790, 5164, 6631, 5928, 5812, 6305, 6784, 5504],\n"," 297: [44197, 1917, 251, 2237, 1448, 994, 1438, 1291, 51412, 981],\n"," 309: [5546,\n"," 52668,\n"," 5481,\n"," 4850,\n"," 2206,\n"," 4857,\n"," 2927,\n"," 5729,\n"," 2174,\n"," 30848],\n"," 316: [4381, 4124, 8623, 5012, 4015, 8491, 3299, 3072, 2664, 4911],\n"," 327: [2085, 2797, 45, 27266, 3254, 3249, 8941, 353, 48082, 45732],\n"," 356: [56367,\n"," 46572,\n"," 54999,\n"," 44204,\n"," 60147,\n"," 44665,\n"," 47382,\n"," 951,\n"," 3269,\n"," 215],\n"," 393: [6970,\n"," 7938,\n"," 3095,\n"," 2382,\n"," 6875,\n"," 8485,\n"," 31584,\n"," 6857,\n"," 5782,\n"," 25788],\n"," 394: [50442,\n"," 48416,\n"," 51088,\n"," 59387,\n"," 53129,\n"," 52694,\n"," 56563,\n"," 49793,\n"," 56286,\n"," 55052],\n"," 395: [75, 891, 1457, 615, 840, 965, 1583, 263, 596, 595],\n"," 399: [5348, 5285, 5980, 4992, 5009, 5222, 5507, 5392, 6690, 5085],\n"," 401: [606, 299, 502, 42728, 8581, 7176, 217, 6513, 30749, 33615],\n"," 402: [5055,\n"," 5942,\n"," 27186,\n"," 7883,\n"," 6862,\n"," 7564,\n"," 8198,\n"," 6774,\n"," 7745,\n"," 55288],\n"," 405: [2858, 2401, 2347, 2979, 3250, 416, 364, 2352, 2653, 6650],\n"," 417: [2916,\n"," 2320,\n"," 2769,\n"," 2890,\n"," 2827,\n"," 26203,\n"," 3074,\n"," 2558,\n"," 2618,\n"," 6480],\n"," 422: [56805,\n"," 58490,\n"," 54286,\n"," 59795,\n"," 58418,\n"," 58381,\n"," 59985,\n"," 58367,\n"," 60037,\n"," 2069],\n"," 437: [5269, 5927, 2557, 3019, 5839, 6130, 2496, 2501, 5171, 3143],\n"," 455: [3224, 3250, 3751, 7173, 4340, 3893, 6235, 81, 4339, 3705],\n"," 461: [6356,\n"," 47830,\n"," 6273,\n"," 6791,\n"," 7190,\n"," 5372,\n"," 6480,\n"," 4205,\n"," 7169,\n"," 4772],\n"," 473: [3967,\n"," 4682,\n"," 7134,\n"," 4452,\n"," 7834,\n"," 35836,\n"," 7880,\n"," 7217,\n"," 7301,\n"," 27768],\n"," 484: [988, 4119, 3308, 876, 1623, 2108, 963, 2834, 4186, 1397],\n"," 499: [1493, 876, 1581, 745, 1337, 2005, 2000, 1285, 4526, 1675],\n"," 526: [4082, 4267, 4266, 4265, 4263, 4262, 4255, 4250, 4249, 4248],\n"," 537: [4887, 4867, 4868, 4133, 4351, 4111, 3972, 4574, 4037, 4881],\n"," 542: [491, 1563, 486, 780, 1648, 1642, 959, 960, 1542, 1466],\n"," 557: [51007,\n"," 333,\n"," 31923,\n"," 45722,\n"," 8012,\n"," 8208,\n"," 324,\n"," 55269,\n"," 7706,\n"," 1545],\n"," 563: [32591,\n"," 45440,\n"," 33164,\n"," 8884,\n"," 8142,\n"," 8894,\n"," 8138,\n"," 8132,\n"," 8130,\n"," 8125],\n"," 570: [60766,\n"," 58293,\n"," 8477,\n"," 41566,\n"," 58303,\n"," 49278,\n"," 56563,\n"," 56171,\n"," 8604,\n"," 58291],\n"," 575: [42632,\n"," 3402,\n"," 2641,\n"," 3663,\n"," 46337,\n"," 2686,\n"," 3330,\n"," 3896,\n"," 2929,\n"," 3876],\n"," 594: [33166,\n"," 8195,\n"," 27831,\n"," 32325,\n"," 5076,\n"," 25916,\n"," 31359,\n"," 7899,\n"," 4190,\n"," 446],\n"," 607: [2733, 2022, 45635, 613, 8808, 25753, 60649, 3178, 74, 674],\n"," 631: [162, 472, 4161, 554, 328, 141, 3232, 26, 3396, 426],\n"," 651: [40815,\n"," 37729,\n"," 34164,\n"," 56174,\n"," 36537,\n"," 55094,\n"," 45672,\n"," 37380,\n"," 47518,\n"," 2812],\n"," 664: [1814, 1690, 2185, 1725, 2178, 1627, 1621, 2315, 2774, 2702],\n"," 685: [159, 559, 166, 4682, 476, 5788, 5266, 5068, 5004, 4803],\n"," 690: [4062, 3563, 7933, 4220, 6724, 3486, 4011, 3472, 4520, 3844],\n"," 696: [286, 271, 210, 361, 79, 487, 416, 188, 333, 7000],\n"," 724: [2577, 2753, 2441, 2708, 2267, 2105, 3171, 2816, 2847, 2947],\n"," 738: [5159, 4768, 4649, 5112, 4125, 4370, 4445, 4517, 4484, 4444],\n"," 762: [3196, 2780, 2775, 2772, 2766, 2765, 2763, 2762, 2757, 2751],\n"," 763: [4572,\n"," 3747,\n"," 6982,\n"," 34162,\n"," 7123,\n"," 8873,\n"," 5136,\n"," 34164,\n"," 27850,\n"," 4345],\n"," 770: [998, 436, 498, 1610, 1151, 1053, 292, 1593, 443, 1123],\n"," 796: [2473, 2094, 2095, 2856, 2371, 2852, 2368, 2848, 2593, 2105],\n"," 800: [2876, 2259, 2862, 2864, 2871, 2875, 2878, 2879, 2255, 2885],\n"," 829: [6748, 5732, 353, 1104, 6583, 6708, 6986, 1580, 5636, 6473],\n"," 836: [5397, 5226, 44197, 8667, 568, 251, 4531, 516, 5734, 5311],\n"," 882: [2887, 3179, 3180, 3181, 3182, 3183, 2709, 2708, 3187, 2706],\n"," 900: [1345, 2094, 2312, 1190, 1873, 779, 1969, 965, 592, 929],\n"," 903: [2106, 1242, 4881, 1189, 2193, 1951, 1694, 1946, 1282, 1997],\n"," 914: [54745,\n"," 59725,\n"," 59037,\n"," 7076,\n"," 60760,\n"," 58975,\n"," 58299,\n"," 60649,\n"," 54513,\n"," 57464],\n"," 918: [3508, 4195, 3966, 3421, 3390, 4723, 4470, 3436, 4641, 1082],\n"," 920: [2625, 2530, 2528, 2527, 2526, 2523, 2522, 2521, 2519, 2517],\n"," 945: [2719, 3600, 2921, 3604, 3605, 2506, 3276, 3270, 2502, 2857],\n"," 950: [8915,\n"," 36477,\n"," 33836,\n"," 8796,\n"," 42728,\n"," 43708,\n"," 27618,\n"," 58295,\n"," 25916,\n"," 55080],\n"," 952: [52668,\n"," 55805,\n"," 48698,\n"," 55765,\n"," 55729,\n"," 55687,\n"," 55577,\n"," 55451,\n"," 48738,\n"," 55442],\n"," 982: [504, 499, 53460, 763, 55094, 496, 1584, 51709, 1680, 1224],\n"," 989: [4055, 3394, 1580, 2059, 1973, 827, 3444, 3792, 1117, 2066],\n"," 1016: [2990,\n"," 2279,\n"," 3483,\n"," 2795,\n"," 2388,\n"," 8967,\n"," 7990,\n"," 7745,\n"," 5588,\n"," 8919],\n"," 1019: [5836, 4979, 5570, 4837, 6561, 516, 4895, 5608, 5081, 5213],\n"," 1044: [43987,\n"," 48319,\n"," 61132,\n"," 56251,\n"," 36517,\n"," 46976,\n"," 52283,\n"," 43836,\n"," 43917,\n"," 44161],\n"," 1051: [3839,\n"," 4982,\n"," 4945,\n"," 4131,\n"," 4080,\n"," 3998,\n"," 4926,\n"," 4193,\n"," 3847,\n"," 4812],\n"," 917: [4238, 3073, 3539, 3761, 1123, 2961, 4256, 908, 3006, 1251],\n"," 951: [8378,\n"," 6889,\n"," 52281,\n"," 30850,\n"," 48262,\n"," 59727,\n"," 36529,\n"," 6725,\n"," 61160,\n"," 7306],\n"," 997: [26270,\n"," 25908,\n"," 7562,\n"," 7811,\n"," 7218,\n"," 45210,\n"," 5582,\n"," 26870,\n"," 8661,\n"," 30803],\n"," 174: [2112,\n"," 58154,\n"," 55995,\n"," 2060,\n"," 1856,\n"," 3770,\n"," 6244,\n"," 2563,\n"," 3078,\n"," 49220],\n"," 676: [2321, 3034, 3500, 3526, 3358, 2506, 3505, 3464, 3374, 2519],\n"," 764: [5668, 5066, 2597, 2784, 2745, 5028, 2450, 2667, 2209, 4873],\n"," 1052: [7493,\n"," 8451,\n"," 8198,\n"," 8985,\n"," 8208,\n"," 44555,\n"," 32029,\n"," 45950,\n"," 45183,\n"," 37380],\n"," 5: [62803, 50851, 440, 2019, 6424, 1679, 378, 6662, 2670, 2580],\n"," 27: [603, 6448, 236, 1089, 1445, 6721, 3639, 852, 1670, 1383],\n"," 33: [7035, 6383, 6839, 6053, 6261, 2542, 1821, 1224, 1472, 1956],\n"," 134: [62394,\n"," 45208,\n"," 47629,\n"," 45442,\n"," 50005,\n"," 52281,\n"," 50153,\n"," 44225,\n"," 49957,\n"," 45499],\n"," 142: [3643, 3663, 3664, 3668, 3669, 4598, 3677, 3680, 3684, 3688],\n"," 156: [3289, 3031, 3276, 2839, 2681, 2842, 3286, 2843, 3293, 2678],\n"," 167: [2665, 442, 5785, 6375, 7418, 1609, 492, 910, 1517, 1964],\n"," 177: [1236, 1627, 5438, 5323, 6102, 824, 5650, 1701, 5952, 716],\n"," 224: [901, 1518, 1696, 1304, 1799, 806, 8772, 45732, 305, 25850],\n"," 269: [59985,\n"," 8968,\n"," 6308,\n"," 26606,\n"," 7461,\n"," 4094,\n"," 48678,\n"," 8983,\n"," 4599,\n"," 3424],\n"," 312: [3403, 463, 4213, 4735, 31225, 940, 3461, 4220, 7842, 7624],\n"," 360: [3054, 3112, 3781, 3649, 3061, 5380, 3592, 3037, 4304, 5706],\n"," 385: [58315,\n"," 56274,\n"," 50354,\n"," 52950,\n"," 987,\n"," 55250,\n"," 55276,\n"," 50806,\n"," 58367,\n"," 50514],\n"," 411: [2300, 3432, 3175, 2307, 3425, 3333, 2810, 5321, 2854, 2291],\n"," 464: [2766, 2713, 3419, 2708, 2656, 2843, 3912, 2095, 2848, 2194],\n"," 568: [4672, 4307, 4213, 4633, 3714, 3936, 3996, 4061, 4024, 4863],\n"," 612: [8542,\n"," 6965,\n"," 6784,\n"," 7791,\n"," 31445,\n"," 2379,\n"," 8531,\n"," 8584,\n"," 3599,\n"," 8196],\n"," 630: [44761,\n"," 52717,\n"," 44555,\n"," 49347,\n"," 44694,\n"," 53988,\n"," 44225,\n"," 56563,\n"," 49132,\n"," 46578],\n"," 706: [54281,\n"," 26840,\n"," 41573,\n"," 27584,\n"," 59727,\n"," 37382,\n"," 33836,\n"," 39052,\n"," 50794,\n"," 1619],\n"," 737: [1051, 1859, 2289, 555, 1041, 945, 235, 471, 161, 659],\n"," 749: [1077, 1020, 1167, 1498, 2189, 1220, 1563, 2136, 1009, 1258],\n"," 756: [1361, 1621, 1353, 2432, 2104, 2324, 2523, 1503, 2360, 1870],\n"," 811: [420, 473, 5957, 2938, 3115, 3183, 3446, 3122, 12, 4084],\n"," 853: [64716,\n"," 56915,\n"," 57243,\n"," 57522,\n"," 60688,\n"," 57910,\n"," 57949,\n"," 58078,\n"," 58103,\n"," 58154],\n"," 884: [3353,\n"," 3866,\n"," 3812,\n"," 3274,\n"," 3998,\n"," 3269,\n"," 2757,\n"," 25963,\n"," 2146,\n"," 8941],\n"," 955: [484, 1101, 7250, 1413, 735, 300, 27513, 1237, 354, 44199],\n"," 1032: [49932,\n"," 27776,\n"," 44197,\n"," 45517,\n"," 44974,\n"," 50804,\n"," 36517,\n"," 47950,\n"," 27706,\n"," 32591],\n"," 1043: [5404,\n"," 5563,\n"," 4686,\n"," 5956,\n"," 5343,\n"," 5682,\n"," 5099,\n"," 6130,\n"," 6042,\n"," 5360],\n"," 370: [1437, 1021, 1488, 1636, 951, 2139, 2087, 1169, 954, 1152],\n"," 670: [45431, 27826, 7327, 8959, 98, 75, 7618, 160, 45501, 297],\n"," 923: [926, 541, 539, 538, 536, 534, 533, 525, 522, 519],\n"," 931: [1, 475, 155, 474, 472, 471, 159, 160, 469, 465],\n"," 969: [848, 1096, 1111, 1731, 791, 1669, 1034, 1647, 1276, 1539],\n"," 12: [6991, 6242, 6920, 7157, 6770, 6156, 6269, 8261, 7063, 6166],\n"," 597: [27731,\n"," 7883,\n"," 32011,\n"," 7844,\n"," 1663,\n"," 2415,\n"," 44197,\n"," 46948,\n"," 8008,\n"," 31804],\n"," 195: [4008, 3955, 4644, 4223, 3946, 4169, 4503, 4262, 4556, 4741],\n"," 337: [667,\n"," 7166,\n"," 7084,\n"," 26163,\n"," 27851,\n"," 8991,\n"," 2397,\n"," 8045,\n"," 25993,\n"," 7382],\n"," 910: [7158,\n"," 7720,\n"," 7459,\n"," 34336,\n"," 7478,\n"," 8533,\n"," 50514,\n"," 26558,\n"," 48520,\n"," 38304],\n"," 63: [293, 741, 502, 732, 581, 725, 300, 489, 577, 372],\n"," 70: [5989,\n"," 3068,\n"," 5102,\n"," 2456,\n"," 31364,\n"," 56563,\n"," 3165,\n"," 5958,\n"," 5740,\n"," 5080],\n"," 99: [2468, 2041, 1779, 1993, 1958, 48877, 1797, 516, 58299, 2445],\n"," 121: [861, 514, 1046, 1047, 518, 1050, 1051, 1056, 1041, 520],\n"," 130: [5585,\n"," 4243,\n"," 27434,\n"," 7445,\n"," 4249,\n"," 4081,\n"," 4625,\n"," 5349,\n"," 6299,\n"," 5424],\n"," 244: [3108, 3178, 3846, 3710, 3113, 2580, 3664, 2456, 6297, 4378],\n"," 291: [52462,\n"," 55999,\n"," 52644,\n"," 60397,\n"," 27821,\n"," 52241,\n"," 8369,\n"," 51077,\n"," 27584,\n"," 58347],\n"," 335: [4082, 4758, 5331, 4989, 5334, 4774, 4445, 4444, 4777, 5503],\n"," 361: [7920, 6718, 973, 1748, 8983, 2210, 26585, 6525, 7587, 8542],\n"," 470: [8928,\n"," 8125,\n"," 8128,\n"," 34148,\n"," 34143,\n"," 34072,\n"," 33880,\n"," 33838,\n"," 8138,\n"," 33832],\n"," 497: [8643,\n"," 32296,\n"," 58655,\n"," 692,\n"," 7005,\n"," 6828,\n"," 45662,\n"," 32076,\n"," 7898,\n"," 1170],\n"," 620: [5517, 5611, 7486, 6326, 6552, 5506, 8915, 6261, 6969, 5525],\n"," 648: [2068, 1384, 2151, 2262, 1937, 2253, 2043, 1783, 2126, 1367],\n"," 666: [57951,\n"," 34164,\n"," 7063,\n"," 6971,\n"," 7070,\n"," 31364,\n"," 20,\n"," 7980,\n"," 6031,\n"," 5137],\n"," 710: [45, 6603, 5970, 40, 5127, 6460, 6783, 5852, 6235, 6582],\n"," 794: [5475, 6058, 4971, 4972, 6053, 4974, 6045, 4976, 4977, 4978],\n"," 854: [514, 645, 640, 639, 218, 634, 632, 630, 617, 615],\n"," 861: [728, 26, 4721, 3909, 335, 329, 267, 865, 786, 101],\n"," 87: [129, 45, 273, 337, 532, 537, 104, 43, 77, 372],\n"," 317: [34072, 7915, 64, 5125, 5706, 4377, 470, 5734, 5292, 5613],\n"," 324: [7482,\n"," 48741,\n"," 26686,\n"," 26398,\n"," 34338,\n"," 60522,\n"," 42004,\n"," 6513,\n"," 8045,\n"," 33683],\n"," 502: [849, 1468, 266, 7257, 1266, 6301, 718, 1983, 1649, 5444],\n"," 559: [6157, 6724, 5276, 5463, 5246, 5066, 5747, 5058, 6257, 5447],\n"," 973: [6881,\n"," 7728,\n"," 8985,\n"," 6710,\n"," 25927,\n"," 6816,\n"," 6869,\n"," 7809,\n"," 7394,\n"," 8825],\n"," 1015: [1961,\n"," 2614,\n"," 3046,\n"," 2086,\n"," 2093,\n"," 2800,\n"," 2589,\n"," 2126,\n"," 1956,\n"," 2322],\n"," 1017: [270, 327, 806, 748, 275, 940, 252, 263, 1201, 1399],\n"," 85: [4821, 5809, 4800, 1779, 3717, 26870, 7191, 8610, 7706, 8808],\n"," 306: [2256, 2989, 2986, 2695, 2979, 2978, 2977, 2279, 3425, 2974],\n"," 653: [7383, 7176, 6743, 7119, 6473, 7295, 8810, 6722, 6346, 7984],\n"," 371: [36708,\n"," 1658,\n"," 1902,\n"," 1949,\n"," 1623,\n"," 2065,\n"," 1928,\n"," 1570,\n"," 2077,\n"," 1340],\n"," 566: [362, 886, 1440, 1275, 873, 871, 1432, 893, 868, 553],\n"," 331: [6675, 6666, 5878, 6669, 5876, 5212, 6678, 5202, 5874, 6687],\n"," 665: [3475, 1929, 1921, 1920, 1914, 1912, 1909, 1885, 1884, 1883],\n"," 872: [1844, 2436, 2142, 2592, 2879, 1687, 2357, 2431, 1746, 2246],\n"," 879: [5893, 5670, 5930, 5668, 5667, 5666, 7045, 7044, 7043, 5663],\n"," 486: [5065, 4177, 5667, 5673, 5105, 5462, 6897, 4626, 7008, 6885],\n"," 864: [5493, 5331, 5914, 5677, 4977, 4986, 4803, 4973, 6005, 4798],\n"," 52: [4558, 3732, 5108, 7010, 90, 1233, 8376, 8795, 888, 426],\n"," 288: [71, 158, 160, 239, 240, 243, 193, 164, 81, 79],\n"," 9: [3050, 2135, 2139, 2140, 2141, 2143, 2148, 2149, 2150, 2151],\n"," 117: [5078, 5832, 6793, 3643, 4466, 5743, 5002, 6720, 5940, 5379],\n"," 220: [56715,\n"," 60037,\n"," 56176,\n"," 53121,\n"," 49957,\n"," 5003,\n"," 53999,\n"," 58156,\n"," 573,\n"," 58105],\n"," 544: [4082, 3729, 4556, 3853, 314, 4326, 4397, 4929, 4989, 4245],\n"," 999: [53322,\n"," 56885,\n"," 6978,\n"," 6795,\n"," 34321,\n"," 8593,\n"," 31685,\n"," 51927,\n"," 3153,\n"," 42718],\n"," 458: [852, 802, 363, 982, 3467, 2702, 448, 678, 314, 2376],\n"," 974: [6326, 5275, 7042, 241, 870, 1310, 143, 799, 1291, 864],\n"," 546: [2125, 2794, 2131, 2082, 1405, 3251, 2182, 946, 2331, 2644],\n"," 55: [1875,\n"," 1336,\n"," 6196,\n"," 1271,\n"," 5289,\n"," 1997,\n"," 55288,\n"," 3739,\n"," 39381,\n"," 2240],\n"," 363: [3623, 3563, 3093, 3869, 3755, 3247, 3214, 4217, 3235, 4167],\n"," 445: [492, 5633, 453, 344, 5706, 1093, 1565, 7199, 380, 665],\n"," 492: [613, 5004, 4251, 727, 1010, 1224, 481, 1154, 497, 795],\n"," 234: [245, 6058, 673, 5420, 4479, 5304, 5630, 6066, 4960, 4510],\n"," 1027: [2115,\n"," 1957,\n"," 2000,\n"," 1468,\n"," 2190,\n"," 2336,\n"," 1392,\n"," 2150,\n"," 4510,\n"," 4649],\n"," 140: [3388, 2738, 3267, 3556, 3049, 1372, 199, 934, 7122, 2657],\n"," 926: [5085, 1213, 4332, 1472, 1051, 1692, 550, 495, 500, 631],\n"," 781: [2344, 2364, 2991, 2566, 2025, 2989, 2442, 2983, 2357, 2974],\n"," 825: [1305, 1782, 14, 1850, 1342, 1411, 2408, 1974, 1756, 1352],\n"," 913: [1, 108, 106, 104, 101, 100, 95, 94, 85, 113],\n"," 453: [1095, 1904, 6731, 8383, 5013, 2336, 5358, 5111, 5823, 5893],\n"," 540: [6319, 4662, 3313, 4125, 5635, 5646, 4729, 3695, 6198, 6325],\n"," 66: [710, 726, 279, 6166, 2001, 2712, 49793, 592, 44937, 272],\n"," 185: [2423, 3036, 2323, 3528, 3539, 4903, 4780, 4359, 3677, 1879],\n"," 222: [8718, 6873, 8, 3150, 3122, 2536, 26554, 8520, 7247, 3060],\n"," 498: [8191,\n"," 7827,\n"," 25753,\n"," 27731,\n"," 7817,\n"," 32627,\n"," 43869,\n"," 8623,\n"," 8622,\n"," 8620],\n"," 994: [31590,\n"," 8587,\n"," 8371,\n"," 7621,\n"," 7706,\n"," 8208,\n"," 37853,\n"," 8667,\n"," 8989,\n"," 31225],\n"," 165: [2356, 259, 6667, 6429, 491, 3068, 164, 8836, 593, 347],\n"," 202: [842, 1777, 980, 1772, 1771, 1767, 1380, 986, 965, 1389],\n"," 180: [6157, 8602, 6181, 7079, 3942, 3251, 6263, 240, 8533, 3357],\n"," 93: [8207,\n"," 8235,\n"," 8484,\n"," 34143,\n"," 31429,\n"," 4975,\n"," 47382,\n"," 38499,\n"," 32139,\n"," 8831],\n"," 261: [7034, 8966, 4629, 5248, 6303, 4212, 4526, 4566, 4837, 3925],\n"," 435: [1825, 2048, 2578, 2574, 2042, 2040, 2038, 2037, 2569, 2035],\n"," 322: [6247, 5343, 5996, 6221, 6568, 6118, 5447, 6510, 6433, 5764],\n"," 238: [33004,\n"," 51080,\n"," 31435,\n"," 49280,\n"," 31359,\n"," 31590,\n"," 55118,\n"," 31685,\n"," 44191,\n"," 62803],\n"," 425: [3918, 4448, 4393, 4972, 4637, 4588, 4334, 4743, 4686, 4153],\n"," 512: [55250,\n"," 32296,\n"," 1055,\n"," 2294,\n"," 1862,\n"," 43921,\n"," 54612,\n"," 27873,\n"," 34321,\n"," 51925],\n"," 725: [4389, 4705, 4164, 4695, 4969, 4252, 4409, 3901, 4003, 4087],\n"," 732: [3819, 3088, 3204, 3962, 3702, 3051, 2845, 3101, 3221, 3361],\n"," 108: [3640,\n"," 2847,\n"," 4124,\n"," 49649,\n"," 50796,\n"," 53468,\n"," 1388,\n"," 1011,\n"," 1009,\n"," 51086],\n"," 592: [44665,\n"," 26150,\n"," 27340,\n"," 26172,\n"," 48738,\n"," 42728,\n"," 56715,\n"," 26002,\n"," 7584,\n"," 26119],\n"," 443: [45726,\n"," 25788,\n"," 5494,\n"," 40412,\n"," 4603,\n"," 4679,\n"," 4546,\n"," 6198,\n"," 62394,\n"," 42734],\n"," 916: [7621,\n"," 8864,\n"," 8860,\n"," 33171,\n"," 33237,\n"," 33312,\n"," 8852,\n"," 8841,\n"," 33493,\n"," 33499],\n"," 736: [6093, 6957, 8371, 6794, 8377, 7027, 8459, 8365, 7394, 7646],\n"," 961: [1583,\n"," 1785,\n"," 6790,\n"," 1145,\n"," 7405,\n"," 27689,\n"," 7572,\n"," 26492,\n"," 1626,\n"," 27416],\n"," 1012: [6482,\n"," 6094,\n"," 6377,\n"," 6216,\n"," 6125,\n"," 7134,\n"," 7155,\n"," 7163,\n"," 7486,\n"," 6326],\n"," 515: [7124, 6191, 6299, 6159, 3871, 7445, 1880, 6339, 7102, 1374],\n"," 978: [729, 1655, 1587, 546, 1334, 1662, 1582, 709, 1262, 1261],\n"," 28: [3132, 3825, 2566, 1867, 149, 55269, 3064, 3797, 3728, 58975],\n"," 475: [4205, 3515, 1696, 345, 575, 1050, 810, 2300, 2236, 213],\n"," 598: [27803,\n"," 25764,\n"," 47644,\n"," 54513,\n"," 57538,\n"," 27768,\n"," 59306,\n"," 31594,\n"," 32179,\n"," 25805],\n"," 943: [1251, 1365, 1373, 1152, 1797, 1144, 1785, 1125, 1421, 1428],\n"," 520: [4039, 4104, 4795, 3600, 3738, 3518, 3527, 4677, 4251, 2461],\n"," 697: [938, 2166, 1693, 1669, 1046, 1284, 1468, 1968, 981, 964],\n"," 849: [5024, 4970, 4968, 5602, 4961, 4960, 4958, 4957, 4951, 5606],\n"," 1003: [7194,\n"," 7828,\n"," 8484,\n"," 31367,\n"," 7013,\n"," 8827,\n"," 7237,\n"," 8811,\n"," 6855,\n"," 7047],\n"," 705: [2421, 2306, 1754, 2445, 2365, 2600, 1857, 2095, 2677, 2864],\n"," 48: [3073, 2613, 7134, 5172, 8275, 2754, 2542, 3743, 3204, 6244],\n"," 29: [7943,\n"," 1103,\n"," 7698,\n"," 1593,\n"," 1040,\n"," 1045,\n"," 26745,\n"," 25753,\n"," 8604,\n"," 1733],\n"," 231: [627, 58, 1032, 56949, 33836, 1113, 5499, 164, 719, 157],\n"," 699: [485, 468, 301, 37741, 436, 8537, 50794, 73, 378, 69],\n"," 448: [4722, 4168, 5111, 4477, 4886, 6686, 5523, 4085, 1841, 5099],\n"," 750: [3968, 4453, 5295, 4509, 5202, 3849, 4121, 5214, 4599, 4683],\n"," 782: [2473, 2885, 2930, 2408, 3061, 3519, 2610, 2975, 2443, 3135],\n"," 860: [4366, 4521, 5823, 4355, 5236, 4517, 5187, 4531, 5464, 5560],\n"," 768: [960, 2017, 1126, 1997, 961, 1371, 1575, 1465, 1145, 1780],\n"," 127: [47099,\n"," 3189,\n"," 2824,\n"," 7373,\n"," 3528,\n"," 3605,\n"," 58047,\n"," 3252,\n"," 3592,\n"," 8636],\n"," 894: [118, 177, 900, 830, 1014, 486, 868, 298, 640, 969]})"]},"execution_count":11,"metadata":{},"output_type":"execute_result"}],"source":["from collections import defaultdict\n","import numpy as np\n","\n","# 학습용 데이터에 존재하는 모든 사용자와 모든 영화의 조합에 대해 평갓값을 예측한다\n","train_all_pred = reg.predict(train_all_x.values)\n","\n","pred_train_all = train_all_keys.copy()\n","pred_train_all[\"rating_pred\"] = train_all_pred\n","pred_matrix = pred_train_all.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating_pred\")\n","\n","# 사용자가 학습용 데이터 안에서 평가하지 않은 영화 중에서\n","# 예측 평갓값이 높은 순으로 10편의 영화를 순위 형식으로 추천 리스트로 만든다\n","pred_user2items = defaultdict(list)\n","user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","for user_id in movielens_train.user_id.unique():\n"," movie_indexes = np.argsort(-pred_matrix.loc[user_id, :]).values\n"," for movie_index in movie_indexes:\n"," movie_id = user_movie_matrix.columns[movie_index]\n"," if movie_id not in (user_evaluated_movies[user_id]):\n"," pred_user2items[user_id].append(movie_id)\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","pred_user2items"],"id":"3ec280f6"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true},"id":"c3a25c25","outputId":"aa1f9306-1bdb-43c6-f692-1731569f185f"},"outputs":[{"data":{"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "],"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","6150 2 648 2.0 868244699 \n","6531 2 733 3.0 868244562 \n","6813 2 736 3.0 868244698 \n","7113 2 780 3.0 868244698 \n","7506 2 786 3.0 868244562 \n","7661 2 802 2.0 868244603 \n","7779 2 858 2.0 868245645 \n","8077 2 1049 3.0 868245920 \n","8127 2 1073 3.0 868244562 \n","8381 2 1210 4.0 868245644 \n","8771 2 1356 3.0 868244603 \n","9097 2 1544 3.0 868245920 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","6150 Mission: Impossible (1996) \n","6531 Rock, The (1996) \n","6813 Twister (1996) \n","7113 Independence Day (a.k.a. ID4) (1996) \n","7506 Eraser (1996) \n","7661 Phenomenon (1996) \n","7779 Godfather, The (1972) \n","8077 Ghost and the Darkness, The (1996) \n","8127 Willy Wonka & the Chocolate Factory (1971) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","8771 Star Trek: First Contact (1996) \n","9097 Lost World: Jurassic Park, The (Jurassic Park ... \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","6150 [Action, Adventure, Mystery, Thriller] \n","6531 [Action, Adventure, Thriller] \n","6813 [Action, Adventure, Romance, Thriller] \n","7113 [Action, Adventure, Sci-Fi, War] \n","7506 [Action, Drama, Thriller] \n","7661 [Drama, Romance] \n","7779 [Crime, Drama] \n","8077 [Action, Adventure] \n","8127 [Children, Comedy, Fantasy, Musical] \n","8381 [Action, Adventure, Sci-Fi] \n","8771 [Action, Adventure, Sci-Fi, Thriller] \n","9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","6150 [confusing, confusing plot, memorable sequence... 12.0 \n","6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n","6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n","7113 [action, alien invasion, aliens, will smith, a... 14.0 \n","7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n","7661 [interesting concept, own, john travolta, john... 15.0 \n","7779 [oscar (best picture), marlon brando, classic,... 9.0 \n","8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n","8127 [based on a book, roald dahl, based on a book,... 20.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n","8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n","9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 "]},"execution_count":12,"metadata":{},"output_type":"execute_result"}],"source":["# user_id=2인 사용자가 학습 데이터에 평가를 부여한 영화 목록\n","movielens_train[movielens_train.user_id==2]"],"id":"c3a25c25"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true},"id":"a178ecdc","outputId":"9254da3c-39f8-4c2d-f850-120f1e9b7e68"},"outputs":[{"data":{"text/plain":["[4210, 4961, 4105, 2351, 3573, 4032, 1586, 5159, 4840, 2804]"]},"execution_count":13,"metadata":{},"output_type":"execute_result"}],"source":["pred_user2items[2]"],"id":"a178ecdc"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true},"id":"09555a1f","outputId":"0a669df8-2100-4815-af2c-0ab68484aab4"},"outputs":[{"data":{"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
40134105Evil Dead, The (1981)[Fantasy, Horror][directorial debut, bruce campbell, cult class...
41184210Manhunter (1986)[Action, Crime, Drama, Horror, Thriller][hannibal lecter, serial killer, ei muista, er...
48674961Pornstar: The Legend of Ron Jeremy (2001)[Documentary][pornography]
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "],"text/plain":[" movie_id title \\\n","4013 4105 Evil Dead, The (1981) \n","4118 4210 Manhunter (1986) \n","4867 4961 Pornstar: The Legend of Ron Jeremy (2001) \n","\n"," genre \\\n","4013 [Fantasy, Horror] \n","4118 [Action, Crime, Drama, Horror, Thriller] \n","4867 [Documentary] \n","\n"," tag \n","4013 [directorial debut, bruce campbell, cult class... \n","4118 [hannibal lecter, serial killer, ei muista, er... \n","4867 [pornography] "]},"execution_count":14,"metadata":{},"output_type":"execute_result"}],"source":["# user_id=2에 대한 추천(4210, 4961, 4105)\n","movies[movies.movie_id.isin([4210, 4961, 4105])]"],"id":"09555a1f"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true},"id":"7a42fa17"},"outputs":[],"source":[],"id":"7a42fa17"}],"metadata":{"colab":{"provenance":[]},"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.10.8"}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/Random.ipynb b/chapter5/colab/Random.ipynb index 5719d24..5c4d1b4 100644 --- a/chapter5/colab/Random.ipynb +++ b/chapter5/colab/Random.ipynb @@ -1,5152 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "9dbb7b61", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/Random.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "b8e120c7", - "metadata": {}, - "source": [ - "# 무작위 추천\n", - "0.5부터 5사이의 균등 난수를 예측 평갓값으로 한다" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "2e403fbc", - "metadata": {}, - "outputs": [], - "source": [ - "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", - "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", - "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", - "\n", - "# 데이터 다운로드와 압축 풀기\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "9827acbb", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", - "import pandas as pd\n", - "\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "bdfd3743", - "metadata": {}, - "outputs": [], - "source": [ - "# 사용자 ID와 아이템 ID에 대해 0부터 시작하는 인덱스를 할당한다\n", - "unique_user_ids = sorted(movielens_train.user_id.unique())\n", - "unique_movie_ids = sorted(movielens_train.movie_id.unique())\n", - "user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n", - "movie_id2index = dict(zip(unique_movie_ids, range(len(unique_movie_ids))))\n" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "b26a7e38", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "# 사용자 x 아이템 행결에서 각 셀의 예측 평갓값은 0.5~5.0의 균등 난수로 한다\n", - "pred_matrix = np.random.uniform(0.5, 5.0, (len(unique_user_ids), len(unique_movie_ids)))\n" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "39dc3945", - "metadata": {}, - "outputs": [], - "source": [ - "# rmse 평가용으로 테스트 데이터에 나타나는 사용자와 아이템의 예측 평갓값을 저장한다.\n", - "movie_rating_predict = movielens_test.copy()\n", - "pred_results = []\n", - "for i, row in movielens_test.iterrows():\n", - " user_id = row[\"user_id\"]\n", - " # 테스트 데이터의 아이템 ID가 학습용에 나타나지 않는 경우에도 난수를 저장한다\n", - " if row[\"movie_id\"] not in movie_id2index:\n", - " pred_results.append(np.random.uniform(0.5, 5.0))\n", - " continue\n", - " # 테스트 데이터에 나타난 사용자 ID와 아이템 ID의 인덱스를 얻어, 평갓값 행렬의 값을 얻는다\n", - " user_index = user_id2index[row[\"user_id\"]]\n", - " movie_index = movie_id2index[row[\"movie_id\"]]\n", - " pred_score = pred_matrix[user_index, movie_index]\n", - " pred_results.append(pred_score)\n", - "movie_rating_predict[\"rating_pred\"] = pred_results" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "8f3c304f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "defaultdict(list,\n", - " {1: [38992, 32213, 847, 3932, 6217, 1782, 3592, 2131, 4758, 206],\n", - " 2: [5656, 714, 4560, 40946, 2729, 7842, 5569, 4551, 570, 2922],\n", - " 3: [32584, 5791, 7027, 7156, 6316, 32770, 7369, 4104, 1407, 8584],\n", - " 4: [1244,\n", - " 1513,\n", - " 2674,\n", - " 47778,\n", - " 42728,\n", - " 6653,\n", - " 8659,\n", - " 1917,\n", - " 1306,\n", - " 40946],\n", - " 5: [3071, 628, 5322, 2197, 5323, 5802, 6510, 53000, 1377, 3107],\n", - " 6: [4310, 589, 26085, 6126, 1880, 6653, 1103, 3401, 29, 6973],\n", - " 7: [2018, 990, 1534, 44828, 2949, 2833, 4351, 31685, 1841, 5345],\n", - " 8: [959, 49274, 40629, 1980, 3754, 3075, 62113, 1979, 1121, 6196],\n", - " 9: [2976, 5936, 51931, 2758, 6554, 309, 8977, 355, 839, 6155],\n", - " 10: [7828, 2010, 2983, 1552, 1884, 3634, 5098, 4701, 4970, 3849],\n", - " 11: [7307, 7893, 6322, 3083, 2214, 32302, 2488, 2463, 5796, 379],\n", - " 12: [2918, 367, 60688, 3065, 1480, 5944, 276, 6760, 65, 534],\n", - " 13: [2279, 2359, 1482, 15, 1564, 58975, 181, 963, 40629, 5119],\n", - " 14: [27513, 1589, 3159, 204, 1660, 2575, 8906, 3735, 2750, 4572],\n", - " 16: [2951, 4307, 2455, 1730, 7176, 45880, 8872, 8154, 2414, 6568],\n", - " 17: [2859, 1565, 712, 31000, 2140, 425, 145, 5214, 4086, 3667],\n", - " 18: [1762, 2252, 1600, 369, 4732, 2041, 897, 2771, 7311, 6033],\n", - " 19: [3967, 3755, 3002, 5678, 5093, 4928, 8972, 3718, 1438, 4144],\n", - " 22: [6954, 1348, 9010, 30803, 2333, 3930, 2796, 7419, 3989, 4447],\n", - " 23: [42018, 5791, 7321, 7387, 1969, 567, 2578, 3973, 949, 3863],\n", - " 24: [44828, 1085, 2456, 2155, 26055, 3235, 2131, 507, 980, 6920],\n", - " 26: [5351,\n", - " 1240,\n", - " 1323,\n", - " 51575,\n", - " 6790,\n", - " 4251,\n", - " 34336,\n", - " 4153,\n", - " 1269,\n", - " 4615],\n", - " 27: [3176, 52456, 5930, 8910, 471, 6650, 2745, 4276, 7016, 41831],\n", - " 28: [7560, 59103, 2779, 4661, 1392, 5226, 732, 7366, 2089, 58162],\n", - " 29: [324, 3396, 659, 1997, 1111, 4234, 5796, 5700, 6375, 2761],\n", - " 30: [2656, 3872, 2422, 3069, 8786, 114, 4054, 408, 1563, 8241],\n", - " 33: [1091, 565, 3062, 4497, 240, 50601, 2004, 6190, 8700, 2501],\n", - " 34: [7916, 4766, 8835, 1759, 3430, 4018, 3219, 5237, 140, 2983],\n", - " 35: [2873, 2375, 2759, 3720, 56274, 1668, 6279, 2242, 40412, 573],\n", - " 36: [45499, 741, 2171, 6927, 4618, 1871, 2522, 7444, 1093, 55768],\n", - " 37: [6100,\n", - " 8241,\n", - " 54775,\n", - " 2100,\n", - " 2017,\n", - " 47644,\n", - " 915,\n", - " 26555,\n", - " 3063,\n", - " 1073],\n", - " 38: [4949,\n", - " 5481,\n", - " 4108,\n", - " 3627,\n", - " 4407,\n", - " 39715,\n", - " 3484,\n", - " 31424,\n", - " 1009,\n", - " 1382],\n", - " 40: [3043, 7086, 6603, 5980, 5464, 1398, 5186, 3469, 1426, 1930],\n", - " 41: [5171,\n", - " 34143,\n", - " 1095,\n", - " 50153,\n", - " 4531,\n", - " 51698,\n", - " 1025,\n", - " 4610,\n", - " 27410,\n", - " 60522],\n", - " 42: [2762, 5420, 4010, 3293, 4265, 5505, 3744, 8587, 8484, 54290],\n", - " 43: [1411, 2147, 3391, 3184, 2391, 3600, 1256, 1124, 1754, 2007],\n", - " 44: [2568, 3968, 58347, 1174, 6193, 2700, 78, 6001, 6679, 618],\n", - " 45: [2973,\n", - " 252,\n", - " 3028,\n", - " 2620,\n", - " 3386,\n", - " 2043,\n", - " 56587,\n", - " 26606,\n", - " 25993,\n", - " 2017],\n", - " 46: [409, 78, 3745, 42725, 27721, 2150, 8754, 2803, 8906, 110],\n", - " 47: [5231,\n", - " 3323,\n", - " 7219,\n", - " 5497,\n", - " 8291,\n", - " 46578,\n", - " 1855,\n", - " 1770,\n", - " 3497,\n", - " 30749],\n", - " 48: [5312, 1457, 6735, 495, 1186, 4241, 8375, 1572, 7349, 6380],\n", - " 50: [6266, 1609, 319, 59306, 52579, 3937, 237, 1912, 8492, 2876],\n", - " 51: [4409, 6779, 47423, 164, 44225, 1941, 1696, 1631, 5531, 3157],\n", - " 52: [3837,\n", - " 3035,\n", - " 5867,\n", - " 4100,\n", - " 43558,\n", - " 7649,\n", - " 5524,\n", - " 5310,\n", - " 2136,\n", - " 30820],\n", - " 53: [2132, 148, 645, 5597, 4263, 6290, 5447, 305, 240, 6460],\n", - " 54: [2858,\n", - " 1454,\n", - " 45081,\n", - " 2202,\n", - " 47952,\n", - " 2945,\n", - " 5854,\n", - " 53993,\n", - " 3728,\n", - " 3450],\n", - " 55: [5485, 3993, 242, 59016, 4988, 3150, 1668, 373, 5356, 163],\n", - " 56: [7487, 2678, 733, 5563, 5559, 4739, 1459, 5193, 4028, 4125],\n", - " 57: [2374,\n", - " 59729,\n", - " 4292,\n", - " 1263,\n", - " 4436,\n", - " 6751,\n", - " 48982,\n", - " 4047,\n", - " 1598,\n", - " 6668],\n", - " 58: [114, 3222, 48304, 1163, 2345, 2286, 5679, 8447, 1337, 1843],\n", - " 59: [2123, 5854, 4255, 6839, 8501, 155, 2818, 7979, 6587, 4085],\n", - " 60: [2803, 11, 3898, 6, 44788, 3929, 3453, 477, 3518, 938],\n", - " 61: [3813,\n", - " 5940,\n", - " 48879,\n", - " 4007,\n", - " 58418,\n", - " 3310,\n", - " 6010,\n", - " 3635,\n", - " 31685,\n", - " 7003],\n", - " 62: [2575, 3966, 8782, 7101, 36401, 2816, 5433, 3927, 371, 7461],\n", - " 63: [1361,\n", - " 49910,\n", - " 5783,\n", - " 5028,\n", - " 432,\n", - " 8370,\n", - " 34523,\n", - " 4468,\n", - " 33781,\n", - " 3813],\n", - " 64: [2280, 6974, 1487, 41571, 6270, 5679, 4640, 1785, 5508, 8501],\n", - " 65: [1504,\n", - " 3906,\n", - " 8520,\n", - " 4487,\n", - " 8341,\n", - " 6664,\n", - " 1625,\n", - " 44761,\n", - " 2347,\n", - " 44161],\n", - " 66: [4534, 27434, 2507, 8235, 22, 7899, 58559, 7938, 546, 1623],\n", - " 67: [8667, 39446, 4895, 4059, 368, 2010, 8587, 2434, 8866, 2349],\n", - " 68: [8131, 2055, 4570, 93, 2161, 2034, 7316, 6950, 58103, 4274],\n", - " 69: [8529,\n", - " 45074,\n", - " 4059,\n", - " 5428,\n", - " 5458,\n", - " 4788,\n", - " 4128,\n", - " 54256,\n", - " 1797,\n", - " 1241],\n", - " 70: [5574,\n", - " 8197,\n", - " 33164,\n", - " 3402,\n", - " 27838,\n", - " 5177,\n", - " 2714,\n", - " 8340,\n", - " 1460,\n", - " 2171],\n", - " 71: [26491,\n", - " 4855,\n", - " 6481,\n", - " 5114,\n", - " 3668,\n", - " 4035,\n", - " 4111,\n", - " 3156,\n", - " 3101,\n", - " 44199],\n", - " 72: [4404, 74, 1125, 1655, 6689, 8207, 6958, 4029, 3667, 5607],\n", - " 73: [7621, 950, 6888, 854, 1412, 4355, 3990, 47261, 6323, 7346],\n", - " 74: [2240, 3343, 4285, 2259, 1978, 29, 2860, 4824, 6803, 50149],\n", - " 75: [39435, 5248, 2074, 3354, 6442, 1792, 493, 1302, 2411, 5480],\n", - " 76: [1874, 1411, 3710, 8253, 965, 7815, 27513, 1892, 4029, 3880],\n", - " 77: [3952, 6037, 2287, 43921, 53464, 8965, 3147, 98, 1992, 47610],\n", - " 78: [929, 328, 5875, 2263, 32721, 6320, 4645, 33004, 5665, 6350],\n", - " 79: [6875, 5139, 324, 4143, 217, 200, 43558, 3768, 7310, 60286],\n", - " 80: [5312, 4310, 3324, 5740, 998, 45726, 3399, 965, 4388, 3424],\n", - " 81: [4495, 1199, 2761, 1421, 2616, 253, 3435, 3333, 44397, 2928],\n", - " 82: [1679,\n", - " 26555,\n", - " 782,\n", - " 3717,\n", - " 56152,\n", - " 618,\n", - " 2497,\n", - " 62293,\n", - " 6538,\n", - " 33896],\n", - " 83: [2823, 621, 4650, 4146, 1483, 4462, 498, 4664, 1897, 7743],\n", - " 84: [7449, 2295, 4285, 4408, 3529, 5681, 509, 581, 712, 8870],\n", - " 85: [4682, 5415, 336, 1412, 1240, 379, 5256, 1950, 1088, 34583],\n", - " 86: [2826, 2787, 4377, 5606, 2123, 66, 2383, 3175, 634, 53322],\n", - " 87: [7766, 1004, 6430, 52456, 962, 45382, 3640, 1916, 5255, 6731],\n", - " 88: [3615,\n", - " 158,\n", - " 3600,\n", - " 59725,\n", - " 1184,\n", - " 2580,\n", - " 37475,\n", - " 39381,\n", - " 49651,\n", - " 2545],\n", - " 89: [50005,\n", - " 5065,\n", - " 3105,\n", - " 3526,\n", - " 4084,\n", - " 1377,\n", - " 46972,\n", - " 1571,\n", - " 1284,\n", - " 54775],\n", - " 90: [924, 2131, 6477, 1671, 5489, 1134, 2191, 54270, 2221, 4407],\n", - " 91: [2809, 3275, 3633, 4787, 345, 1595, 5523, 5099, 48741, 7172],\n", - " 92: [7156,\n", - " 4410,\n", - " 283,\n", - " 26713,\n", - " 54997,\n", - " 32296,\n", - " 2865,\n", - " 4670,\n", - " 3163,\n", - " 4850],\n", - " 93: [34520, 4239, 1870, 8207, 4347, 950, 3801, 1189, 358, 1963],\n", - " 94: [7739,\n", - " 47810,\n", - " 6815,\n", - " 2239,\n", - " 3053,\n", - " 1950,\n", - " 3704,\n", - " 3089,\n", - " 7749,\n", - " 26558],\n", - " 95: [6768, 8016, 8201, 345, 1748, 1147, 3774, 2553, 8808, 7759],\n", - " 96: [4310, 502, 5876, 4899, 42002, 4851, 7789, 40946, 393, 6902],\n", - " 97: [1759,\n", - " 2382,\n", - " 6098,\n", - " 43684,\n", - " 55269,\n", - " 3896,\n", - " 615,\n", - " 32316,\n", - " 4300,\n", - " 3258],\n", - " 98: [5770, 3844, 7981, 26513, 602, 2072, 1841, 5026, 4442, 26119],\n", - " 99: [3180, 420, 2012, 828, 163, 58291, 735, 4555, 55442, 637],\n", - " 100: [3946,\n", - " 1194,\n", - " 25850,\n", - " 33145,\n", - " 3874,\n", - " 958,\n", - " 5507,\n", - " 34148,\n", - " 5881,\n", - " 340],\n", - " 101: [6486,\n", - " 6012,\n", - " 45382,\n", - " 8969,\n", - " 8008,\n", - " 6814,\n", - " 2598,\n", - " 32892,\n", - " 2392,\n", - " 2503],\n", - " 102: [182, 6660, 4803, 731, 148, 57640, 2491, 6349, 1951, 32596],\n", - " 103: [3087, 1810, 5016, 1772, 4677, 2810, 3152, 2501, 3272, 2579],\n", - " 104: [1054,\n", - " 7347,\n", - " 47518,\n", - " 5047,\n", - " 1663,\n", - " 5569,\n", - " 8008,\n", - " 1470,\n", - " 5732,\n", - " 5668],\n", - " 105: [2573, 4661, 4823, 2468, 3326, 34332, 2153, 522, 1979, 6322],\n", - " 106: [6896, 3351, 1956, 455, 548, 4366, 2916, 3564, 4255, 4768],\n", - " 107: [2871, 799, 3014, 2068, 1385, 45722, 3499, 3225, 6249, 2690],\n", - " 108: [1701, 7739, 56274, 6666, 383, 3928, 6230, 5901, 1749, 2009],\n", - " 110: [224,\n", - " 4272,\n", - " 2748,\n", - " 57368,\n", - " 1283,\n", - " 2533,\n", - " 5667,\n", - " 45382,\n", - " 2704,\n", - " 7827],\n", - " 111: [171, 3830, 506, 996, 5213, 2535, 7700, 1729, 449, 27741],\n", - " 112: [6631, 7347, 5093, 5212, 2893, 442, 352, 6718, 6214, 59387],\n", - " 113: [58156, 6886, 3210, 958, 4108, 4197, 8869, 6270, 5033, 7327],\n", - " 114: [25916, 876, 27773, 8938, 3504, 1035, 7942, 70, 812, 26391],\n", - " 115: [2642, 6808, 4173, 1422, 2761, 49274, 8991, 909, 1374, 1264],\n", - " 116: [2399, 3844, 5523, 6892, 5293, 39231, 2410, 6975, 492, 6751],\n", - " 117: [7310, 6558, 4707, 5643, 1587, 570, 7060, 3499, 8866, 4470],\n", - " 118: [3881, 2608, 53894, 1374, 914, 2182, 32770, 4654, 6942, 812],\n", - " 119: [5358,\n", - " 2441,\n", - " 3472,\n", - " 3163,\n", - " 31435,\n", - " 7117,\n", - " 3629,\n", - " 3938,\n", - " 6839,\n", - " 3581],\n", - " 120: [6646, 41831, 5736, 4081, 5, 1547, 8868, 7369, 1358, 3247],\n", - " 121: [31347,\n", - " 5840,\n", - " 2747,\n", - " 5098,\n", - " 5307,\n", - " 2170,\n", - " 481,\n", - " 1114,\n", - " 5956,\n", - " 41571],\n", - " 122: [26198,\n", - " 3492,\n", - " 55282,\n", - " 7206,\n", - " 3258,\n", - " 5325,\n", - " 2496,\n", - " 5968,\n", - " 2320,\n", - " 56941],\n", - " 123: [4615, 33817, 451, 2555, 31923, 832, 4921, 5663, 7175, 3632],\n", - " 124: [1192,\n", - " 4844,\n", - " 1552,\n", - " 1643,\n", - " 5341,\n", - " 45183,\n", - " 294,\n", - " 8526,\n", - " 31433,\n", - " 4290],\n", - " 125: [4158,\n", - " 2805,\n", - " 4207,\n", - " 31221,\n", - " 4690,\n", - " 2845,\n", - " 1334,\n", - " 2501,\n", - " 5677,\n", - " 6405],\n", - " 126: [4294, 4467, 3801, 582, 3421, 2627, 7222, 6198, 3884, 5610],\n", - " 127: [606, 6718, 2395, 3463, 3511, 4410, 6590, 5389, 2269, 1822],\n", - " 128: [6947,\n", - " 2406,\n", - " 8808,\n", - " 40412,\n", - " 2272,\n", - " 930,\n", - " 27850,\n", - " 2139,\n", - " 5060,\n", - " 32116],\n", - " 129: [2346, 5215, 393, 880, 80, 1686, 3777, 694, 54281, 7698],\n", - " 130: [929, 6506, 51007, 55830, 4979, 3537, 547, 1836, 1343, 4031],\n", - " 131: [8722,\n", - " 3056,\n", - " 2870,\n", - " 2062,\n", - " 4279,\n", - " 3608,\n", - " 8392,\n", - " 2842,\n", - " 1878,\n", - " 27618],\n", - " 132: [4583, 1873, 3073, 1788, 1094, 1525, 3342, 4512, 7040, 241],\n", - " 134: [3710, 1237, 5662, 7810, 3992, 4342, 46972, 2144, 249, 2673],\n", - " 135: [4488, 4297, 5706, 4903, 2948, 1897, 6220, 1032, 2007, 3258],\n", - " 136: [4736,\n", - " 3176,\n", - " 3034,\n", - " 57528,\n", - " 3497,\n", - " 1755,\n", - " 7299,\n", - " 2540,\n", - " 7303,\n", - " 4135],\n", - " 137: [5696,\n", - " 33722,\n", - " 33138,\n", - " 48520,\n", - " 7147,\n", - " 1073,\n", - " 4890,\n", - " 2469,\n", - " 7025,\n", - " 6731],\n", - " 138: [4389,\n", - " 2982,\n", - " 2935,\n", - " 4903,\n", - " 5068,\n", - " 5085,\n", - " 1858,\n", - " 1468,\n", - " 41566,\n", - " 3852],\n", - " 139: [64716,\n", - " 25766,\n", - " 1221,\n", - " 3120,\n", - " 4290,\n", - " 5648,\n", - " 7284,\n", - " 2146,\n", - " 52042,\n", - " 32460],\n", - " 140: [1035,\n", - " 5323,\n", - " 2552,\n", - " 25750,\n", - " 4679,\n", - " 7347,\n", - " 2688,\n", - " 2555,\n", - " 6437,\n", - " 3043],\n", - " 141: [1206, 6252, 34, 570, 1208, 2382, 612, 1619, 56156, 5105],\n", - " 142: [8870, 371, 6290, 7748, 7924, 27721, 2267, 6473, 4251, 6988],\n", - " 143: [7236, 22, 33660, 3806, 6685, 5470, 345, 2363, 3955, 59404],\n", - " 144: [1439, 470, 8188, 1012, 4783, 2414, 1326, 3811, 4195, 6473],\n", - " 145: [1101, 5171, 1121, 2135, 641, 25771, 1381, 1358, 2338, 3872],\n", - " 148: [4722, 4990, 2722, 5673, 2050, 6584, 5048, 7941, 4574, 914],\n", - " 149: [847, 2753, 932, 4098, 5046, 61361, 3950, 2062, 58622, 7306],\n", - " 150: [53550,\n", - " 5735,\n", - " 1064,\n", - " 38388,\n", - " 4344,\n", - " 753,\n", - " 7939,\n", - " 5221,\n", - " 25788,\n", - " 4795],\n", - " 151: [2198, 1967, 166, 4518, 4510, 824, 1947, 8643, 2988, 1296],\n", - " 152: [748, 1696, 4916, 5012, 588, 3911, 34162, 1423, 826, 2482],\n", - " 153: [2519, 8785, 7892, 8366, 1612, 345, 7385, 2501, 507, 170],\n", - " 154: [32632, 1772, 5649, 5080, 1801, 45517, 4393, 70, 7915, 5958],\n", - " 155: [5034, 5883, 3395, 4537, 535, 6370, 4662, 56251, 7121, 6396],\n", - " 156: [3514,\n", - " 5279,\n", - " 6001,\n", - " 3165,\n", - " 417,\n", - " 2787,\n", - " 55290,\n", - " 438,\n", - " 25996,\n", - " 51939],\n", - " 157: [1347, 1615, 1945, 412, 3248, 7485, 3807, 5684, 3203, 1621],\n", - " 158: [59022,\n", - " 3685,\n", - " 2716,\n", - " 4434,\n", - " 6345,\n", - " 33830,\n", - " 37720,\n", - " 1230,\n", - " 3252,\n", - " 5900],\n", - " 159: [4583,\n", - " 5745,\n", - " 31032,\n", - " 1601,\n", - " 5097,\n", - " 2436,\n", - " 5457,\n", - " 50354,\n", - " 4062,\n", - " 2195],\n", - " 160: [6166, 30803, 5305, 901, 4053, 4688, 4678, 166, 7572, 2287],\n", - " 161: [5102, 3802, 2335, 4853, 3533, 4086, 5496, 2457, 2420, 784],\n", - " 162: [993,\n", - " 8872,\n", - " 2060,\n", - " 7137,\n", - " 5034,\n", - " 26152,\n", - " 5444,\n", - " 1722,\n", - " 4577,\n", - " 26680],\n", - " 163: [5763, 552, 2797, 6132, 3196, 222, 31223, 58, 6813, 6811],\n", - " 164: [1791,\n", - " 915,\n", - " 8235,\n", - " 26386,\n", - " 2385,\n", - " 3301,\n", - " 7891,\n", - " 30848,\n", - " 169,\n", - " 25995],\n", - " 165: [6044,\n", - " 25753,\n", - " 2499,\n", - " 253,\n", - " 3177,\n", - " 30850,\n", - " 2889,\n", - " 3008,\n", - " 5801,\n", - " 4642],\n", - " 166: [1572,\n", - " 2176,\n", - " 2231,\n", - " 34148,\n", - " 5812,\n", - " 548,\n", - " 4766,\n", - " 32213,\n", - " 2087,\n", - " 32149],\n", - " 167: [3744,\n", - " 8943,\n", - " 1654,\n", - " 1189,\n", - " 53996,\n", - " 1704,\n", - " 3678,\n", - " 7000,\n", - " 45732,\n", - " 331],\n", - " 168: [5548,\n", - " 2991,\n", - " 5356,\n", - " 4028,\n", - " 6914,\n", - " 55274,\n", - " 2700,\n", - " 5721,\n", - " 27434,\n", - " 932],\n", - " 169: [2383,\n", - " 6301,\n", - " 5650,\n", - " 53993,\n", - " 53189,\n", - " 1671,\n", - " 1722,\n", - " 714,\n", - " 8932,\n", - " 4444],\n", - " 170: [3492, 2795, 89, 3531, 4059, 41285, 3672, 5630, 1188, 7646],\n", - " 171: [44195, 303, 7132, 3456, 52, 1950, 4895, 5002, 3533, 4148],\n", - " 172: [1262, 48783, 3317, 5363, 453, 580, 7936, 8531, 2941, 2071],\n", - " 173: [3264, 4369, 226, 7064, 56333, 3781, 8970, 3840, 5935, 2756],\n", - " 174: [1167,\n", - " 2907,\n", - " 3035,\n", - " 2034,\n", - " 5527,\n", - " 1821,\n", - " 43396,\n", - " 3325,\n", - " 2075,\n", - " 5784],\n", - " 175: [8862,\n", - " 5836,\n", - " 3555,\n", - " 3105,\n", - " 5540,\n", - " 51903,\n", - " 4208,\n", - " 4896,\n", - " 120,\n", - " 52458],\n", - " 176: [9018,\n", - " 31221,\n", - " 54001,\n", - " 54281,\n", - " 1095,\n", - " 1812,\n", - " 31660,\n", - " 4062,\n", - " 2572,\n", - " 8852],\n", - " 177: [5266, 1243, 2214, 2029, 1298, 1826, 2554, 4061, 8477, 585],\n", - " 178: [1860,\n", - " 3125,\n", - " 5325,\n", - " 8117,\n", - " 1653,\n", - " 2029,\n", - " 2280,\n", - " 31584,\n", - " 6216,\n", - " 7176],\n", - " 179: [5047, 2593, 5186, 120, 3669, 4029, 198, 7941, 2982, 8722],\n", - " 180: [7450, 3211, 2927, 32139, 2990, 1292, 3585, 7636, 201, 3325],\n", - " 182: [49132,\n", - " 5398,\n", - " 58293,\n", - " 1058,\n", - " 2142,\n", - " 6664,\n", - " 3269,\n", - " 7191,\n", - " 7072,\n", - " 522],\n", - " 183: [55269,\n", - " 3024,\n", - " 2563,\n", - " 33649,\n", - " 27513,\n", - " 5681,\n", - " 8781,\n", - " 352,\n", - " 53121,\n", - " 4014],\n", - " 184: [1208, 100, 3505, 3392, 308, 3238, 5941, 3015, 2261, 2286],\n", - " 185: [8949, 7756, 4808, 818, 2525, 36401, 325, 7212, 158, 2949],\n", - " 186: [8865, 5853, 6178, 5100, 558, 38992, 3682, 2249, 2408, 5696],\n", - " 187: [3032, 609, 1149, 5404, 25938, 650, 6185, 35015, 3053, 5343],\n", - " 188: [27850, 2132, 8978, 4464, 742, 9015, 6669, 33162, 750, 5418],\n", - " 189: [7706, 2384, 27722, 4809, 3545, 834, 39, 8367, 3864, 4598],\n", - " 190: [2563,\n", - " 6041,\n", - " 2856,\n", - " 2313,\n", - " 4828,\n", - " 27788,\n", - " 2867,\n", - " 7132,\n", - " 1282,\n", - " 3918],\n", - " 191: [1263, 7419, 1143, 6371, 2796, 33154, 4703, 191, 1653, 5801],\n", - " 192: [6346, 3525, 5147, 50189, 737, 61160, 1589, 237, 5051, 89],\n", - " 193: [77, 375, 6247, 3996, 6783, 3548, 7211, 117, 48883, 2809],\n", - " 194: [53953,\n", - " 7624,\n", - " 4001,\n", - " 3469,\n", - " 3910,\n", - " 31956,\n", - " 985,\n", - " 1375,\n", - " 43684,\n", - " 5555],\n", - " 195: [2893, 8040, 5251, 3581, 177, 6466, 700, 1468, 8581, 2977],\n", - " 196: [30803,\n", - " 4695,\n", - " 4681,\n", - " 476,\n", - " 39715,\n", - " 5343,\n", - " 4236,\n", - " 5588,\n", - " 37386,\n", - " 4466],\n", - " 197: [2283,\n", - " 7285,\n", - " 8950,\n", - " 27513,\n", - " 4941,\n", - " 4909,\n", - " 36708,\n", - " 6958,\n", - " 2911,\n", - " 2618],\n", - " 198: [453, 5313, 6225, 8256, 5531, 327, 2592, 4699, 3093, 30822],\n", - " 199: [43928,\n", - " 4947,\n", - " 5452,\n", - " 2597,\n", - " 8764,\n", - " 3260,\n", - " 1744,\n", - " 40826,\n", - " 3185,\n", - " 5460],\n", - " 200: [3037,\n", - " 2175,\n", - " 59404,\n", - " 3391,\n", - " 2102,\n", - " 54736,\n", - " 5949,\n", - " 1879,\n", - " 3401,\n", - " 2159],\n", - " 201: [922, 8378, 2590, 4641, 1958, 1930, 8363, 2121, 7762, 180],\n", - " 202: [615,\n", - " 46723,\n", - " 3551,\n", - " 5563,\n", - " 8712,\n", - " 5361,\n", - " 5636,\n", - " 6247,\n", - " 31770,\n", - " 8482],\n", - " 203: [7899, 3467, 7564, 2147, 3074, 7369, 868, 2758, 5601, 6858],\n", - " 204: [4126, 4207, 8198, 31026, 2667, 747, 2941, 2253, 4165, 2731],\n", - " 205: [4147, 90, 5443, 5361, 6157, 638, 6346, 3360, 5065, 7915],\n", - " 206: [4898, 1916, 2546, 383, 6954, 1353, 2804, 896, 612, 173],\n", - " 207: [42002, 3363, 5860, 289, 8169, 912, 5282, 53519, 5440, 6982],\n", - " 208: [1041, 8094, 1855, 2659, 6892, 1412, 513, 5269, 541, 3022],\n", - " 209: [1390,\n", - " 55280,\n", - " 5655,\n", - " 4644,\n", - " 5221,\n", - " 4577,\n", - " 27838,\n", - " 2041,\n", - " 7845,\n", - " 5577],\n", - " 210: [3741,\n", - " 2670,\n", - " 25805,\n", - " 25995,\n", - " 50162,\n", - " 2982,\n", - " 2627,\n", - " 6839,\n", - " 4868,\n", - " 45722],\n", - " 211: [59404, 3347, 161, 6977, 3198, 7294, 6269, 4602, 668, 7810],\n", - " 212: [4537,\n", - " 2976,\n", - " 2149,\n", - " 4193,\n", - " 864,\n", - " 5611,\n", - " 4415,\n", - " 31116,\n", - " 7564,\n", - " 43558],\n", - " 213: [6761, 6367, 179, 6322, 1089, 568, 59, 2310, 27340, 1057],\n", - " 214: [6116,\n", - " 3616,\n", - " 2333,\n", - " 1034,\n", - " 2912,\n", - " 1214,\n", - " 5202,\n", - " 3190,\n", - " 32153,\n", - " 1084],\n", - " 215: [40148, 4006, 4154, 452, 2908, 231, 2800, 4090, 5294, 3180],\n", - " 216: [7121, 567, 2425, 1980, 7362, 4296, 54612, 3393, 510, 375],\n", - " 217: [2211,\n", - " 5918,\n", - " 2194,\n", - " 60688,\n", - " 1956,\n", - " 5885,\n", - " 6341,\n", - " 26680,\n", - " 2018,\n", - " 7383],\n", - " 218: [1017,\n", - " 4552,\n", - " 5853,\n", - " 3924,\n", - " 34336,\n", - " 2243,\n", - " 2578,\n", - " 1457,\n", - " 43708,\n", - " 2697],\n", - " 219: [5292,\n", - " 1208,\n", - " 164,\n", - " 3507,\n", - " 57949,\n", - " 827,\n", - " 1107,\n", - " 49132,\n", - " 6405,\n", - " 37733],\n", - " 220: [5816,\n", - " 5743,\n", - " 5617,\n", - " 4445,\n", - " 4396,\n", - " 50354,\n", - " 432,\n", - " 33903,\n", - " 3581,\n", - " 5503],\n", - " 221: [4338, 829, 2894, 426, 8955, 4637, 1583, 4345, 1010, 5139],\n", - " 222: [711, 4426, 8643, 685, 2940, 6163, 670, 3754, 6806, 7616],\n", - " 223: [3679,\n", - " 2729,\n", - " 8722,\n", - " 54775,\n", - " 4529,\n", - " 4929,\n", - " 6062,\n", - " 5843,\n", - " 3211,\n", - " 2424],\n", - " 224: [2587, 4278, 5360, 2982, 861, 44937, 6773, 4446, 5179, 7297],\n", - " 225: [40819,\n", - " 34338,\n", - " 3648,\n", - " 6202,\n", - " 7924,\n", - " 1516,\n", - " 57522,\n", - " 4037,\n", - " 4028,\n", - " 2719],\n", - " 226: [4727, 26578, 7349, 2121, 833, 3106, 37853, 992, 4296, 7301],\n", - " 227: [7757, 4384, 2058, 238, 2518, 45852, 26554, 1456, 121, 6436],\n", - " 228: [7742,\n", - " 2893,\n", - " 7131,\n", - " 3074,\n", - " 51698,\n", - " 897,\n", - " 3846,\n", - " 30850,\n", - " 2290,\n", - " 2181],\n", - " 229: [3156, 5782, 8620, 2112, 6486, 3994, 6436, 1809, 55290, 760],\n", - " 230: [32076, 5528, 2498, 5517, 299, 197, 1111, 1984, 1022, 2843],\n", - " 231: [3682,\n", - " 4338,\n", - " 5004,\n", - " 8711,\n", - " 1392,\n", - " 7142,\n", - " 36529,\n", - " 1867,\n", - " 6102,\n", - " 2878],\n", - " 232: [1230,\n", - " 53956,\n", - " 45028,\n", - " 735,\n", - " 63,\n", - " 45208,\n", - " 4161,\n", - " 38992,\n", - " 2113,\n", - " 4603],\n", - " 234: [3715, 4231, 4417, 2778, 4803, 213, 33669, 3622, 6203, 6597],\n", - " 235: [3140,\n", - " 731,\n", - " 7074,\n", - " 45728,\n", - " 43923,\n", - " 2334,\n", - " 1793,\n", - " 4336,\n", - " 4206,\n", - " 3923],\n", - " 236: [5221, 52885, 4529, 2852, 4126, 848, 2398, 936, 1271, 2051],\n", - " 237: [6287, 1831, 194, 4080, 4293, 4193, 5121, 6989, 3866, 2654],\n", - " 238: [3071, 322, 4427, 55257, 3892, 240, 4350, 6963, 2050, 4526],\n", - " 239: [6725, 7419, 1300, 48883, 4038, 335, 4682, 5409, 2086, 2788],\n", - " 241: [5246, 6785, 32029, 5377, 3152, 30707, 97, 3533, 3680, 408],\n", - " 242: [495, 5949, 1936, 1223, 2607, 2424, 32294, 589, 4039, 1412],\n", - " 243: [4389,\n", - " 31364,\n", - " 55995,\n", - " 428,\n", - " 3585,\n", - " 414,\n", - " 5412,\n", - " 31437,\n", - " 2493,\n", - " 7047],\n", - " 244: [5564, 5529, 6852, 30, 78, 8387, 1080, 58655, 40966, 8800],\n", - " 245: [344,\n", - " 6228,\n", - " 7014,\n", - " 4485,\n", - " 40959,\n", - " 3926,\n", - " 27816,\n", - " 8593,\n", - " 2785,\n", - " 8798],\n", - " 246: [7227, 1176, 3551, 2205, 53, 382, 1094, 1843, 207, 3844],\n", - " 247: [5296,\n", - " 6765,\n", - " 3994,\n", - " 31086,\n", - " 1437,\n", - " 8644,\n", - " 8270,\n", - " 7092,\n", - " 45635,\n", - " 5736],\n", - " 248: [2463, 532, 1227, 8965, 8614, 3824, 3315, 6734, 6568, 44788],\n", - " 249: [8913, 2750, 2798, 4765, 6990, 27821, 450, 4533, 2287, 7898],\n", - " 250: [3877, 4356, 5343, 31660, 8207, 1833, 1995, 488, 3125, 5984],\n", - " 251: [6183, 8, 6300, 3862, 3087, 31083, 6707, 2198, 53000, 6783],\n", - " 252: [5007,\n", - " 3999,\n", - " 6934,\n", - " 498,\n", - " 1282,\n", - " 37386,\n", - " 4204,\n", - " 5525,\n", - " 3020,\n", - " 31685],\n", - " 253: [1980,\n", - " 5305,\n", - " 2395,\n", - " 4226,\n", - " 7621,\n", - " 4191,\n", - " 55995,\n", - " 58347,\n", - " 1177,\n", - " 4961],\n", - " 254: [1222, 4167, 6288, 2260, 4242, 5686, 554, 4066, 5027, 1030],\n", - " 255: [5066, 742, 1089, 8426, 6323, 4792, 1574, 7581, 4306, 3115],\n", - " 256: [525, 2803, 3047, 6593, 2263, 1117, 5092, 26513, 5961, 2757],\n", - " 257: [2558,\n", - " 5947,\n", - " 53953,\n", - " 7060,\n", - " 5409,\n", - " 2572,\n", - " 5684,\n", - " 3547,\n", - " 44849,\n", - " 6366],\n", - " 258: [1857, 7074, 372, 1071, 4729, 7444, 2512, 52579, 6370, 2810],\n", - " 259: [53519,\n", - " 1271,\n", - " 2320,\n", - " 3194,\n", - " 3574,\n", - " 1110,\n", - " 34143,\n", - " 4556,\n", - " 1323,\n", - " 7478],\n", - " 260: [3581,\n", - " 32153,\n", - " 2569,\n", - " 31116,\n", - " 1749,\n", - " 1466,\n", - " 7920,\n", - " 3262,\n", - " 5218,\n", - " 2042],\n", - " 261: [600, 2037, 888, 4600, 131, 1704, 6567, 2520, 43936, 2839],\n", - " 262: [3327, 4998, 3299, 331, 4966, 5299, 54286, 5122, 3477, 3967],\n", - " 263: [1729, 3928, 4312, 1045, 6784, 5781, 4517, 3255, 5391, 1661],\n", - " 264: [63113, 3204, 16, 3640, 4242, 5803, 3343, 908, 1692, 7925],\n", - " 265: [2987,\n", - " 1080,\n", - " 5046,\n", - " 1149,\n", - " 32076,\n", - " 664,\n", - " 2622,\n", - " 2538,\n", - " 63992,\n", - " 2608],\n", - " 266: [3107, 6536, 1408, 1049, 1996, 2813, 2781, 6014, 8950, 7001],\n", - " 267: [6442, 59421, 5098, 247, 664, 2540, 107, 30816, 4989, 5425],\n", - " 268: [5334, 656, 1365, 3646, 1322, 166, 2648, 51935, 3604, 2979],\n", - " 269: [3219, 4661, 44929, 31367, 3153, 991, 1953, 76, 1369, 305],\n", - " 270: [4637, 6626, 4007, 1328, 3873, 65, 7713, 4139, 632, 4297],\n", - " 271: [2143,\n", - " 50440,\n", - " 51931,\n", - " 3967,\n", - " 4510,\n", - " 1464,\n", - " 8045,\n", - " 1091,\n", - " 4035,\n", - " 6584],\n", - " 272: [32300, 4422, 4583, 7076, 3159, 3065, 6059, 6815, 223, 513],\n", - " 273: [600,\n", - " 1767,\n", - " 34170,\n", - " 2238,\n", - " 6944,\n", - " 26151,\n", - " 5364,\n", - " 5961,\n", - " 6668,\n", - " 5105],\n", - " 274: [2912, 6935, 6350, 56145, 1954, 425, 2289, 3160, 2992, 3271],\n", - " 275: [6408, 5803, 2520, 4701, 3480, 1654, 525, 5804, 6303, 3632],\n", - " 276: [5608, 8337, 2114, 903, 2681, 7150, 3959, 51931, 1184, 8369],\n", - " 277: [5267, 4971, 2199, 1463, 281, 8978, 4600, 5309, 45730, 3429],\n", - " 278: [5164,\n", - " 3133,\n", - " 4007,\n", - " 6950,\n", - " 2385,\n", - " 8941,\n", - " 4847,\n", - " 4543,\n", - " 1793,\n", - " 51540],\n", - " 279: [6269,\n", - " 5053,\n", - " 7147,\n", - " 2712,\n", - " 5832,\n", - " 4031,\n", - " 4676,\n", - " 5379,\n", - " 31956,\n", - " 27674],\n", - " 280: [4614, 4229, 2268, 410, 8260, 1193, 3909, 4571, 3503, 52],\n", - " 281: [2835, 5991, 1151, 6044, 1428, 8859, 6573, 32296, 314, 4090],\n", - " 282: [8372, 781, 2361, 3770, 44761, 3592, 4480, 8869, 5696, 246],\n", - " 285: [2701,\n", - " 34150,\n", - " 1153,\n", - " 7898,\n", - " 4463,\n", - " 2969,\n", - " 5763,\n", - " 31116,\n", - " 4186,\n", - " 1570],\n", - " 286: [8862, 599, 33162, 2269, 111, 3436, 630, 27618, 5113, 1287],\n", - " 287: [5598, 3046, 86, 1650, 1125, 6437, 34520, 3598, 3045, 5125],\n", - " 288: [2495, 27, 3606, 1346, 6963, 79, 4947, 4863, 3047, 6996],\n", - " 289: [5607, 1289, 27584, 1924, 4206, 782, 54, 3244, 5339, 3666],\n", - " 290: [3726, 3742, 2187, 7092, 183, 453, 3263, 748, 6620, 5362],\n", - " 291: [1448, 7096, 449, 33683, 6804, 7190, 1150, 1083, 3252, 2745],\n", - " 292: [8291, 449, 6179, 5852, 3477, 4327, 2877, 1382, 4354, 1582],\n", - " 293: [7614,\n", - " 4160,\n", - " 1431,\n", - " 4871,\n", - " 1571,\n", - " 6130,\n", - " 3160,\n", - " 2985,\n", - " 7941,\n", - " 33437],\n", - " 294: [1917, 1399, 842, 5668, 5637, 45186, 6338, 5431, 7892, 366],\n", - " 295: [59387,\n", - " 918,\n", - " 1611,\n", - " 33171,\n", - " 43923,\n", - " 292,\n", - " 4611,\n", - " 124,\n", - " 6152,\n", - " 55765],\n", - " 296: [4623, 7616, 3639, 29, 2507, 51255, 2974, 335, 2142, 2067],\n", - " 297: [5733, 2259, 5064, 52967, 409, 2350, 5832, 242, 2395, 6550],\n", - " 298: [912,\n", - " 2988,\n", - " 1949,\n", - " 2416,\n", - " 6279,\n", - " 1649,\n", - " 3895,\n", - " 8228,\n", - " 51084,\n", - " 37545],\n", - " 300: [34538, 4395, 2912, 6531, 3201, 2930, 1170, 256, 1304, 2702],\n", - " 301: [7047, 1752, 2491, 7616, 5162, 1910, 5885, 4683, 58025, 668],\n", - " 302: [8426, 1392, 3333, 8947, 5352, 48394, 1810, 7236, 72, 44974],\n", - " 303: [2787,\n", - " 4968,\n", - " 3045,\n", - " 30803,\n", - " 2570,\n", - " 926,\n", - " 5971,\n", - " 2808,\n", - " 48319,\n", - " 2555],\n", - " 304: [34072,\n", - " 7016,\n", - " 6231,\n", - " 8371,\n", - " 48943,\n", - " 4988,\n", - " 8813,\n", - " 6371,\n", - " 8024,\n", - " 6902],\n", - " 305: [5349, 5452, 1929, 2193, 3557, 4612, 2538, 2757, 1053, 5936],\n", - " 306: [1731,\n", - " 1585,\n", - " 3641,\n", - " 6947,\n", - " 100,\n", - " 34534,\n", - " 2028,\n", - " 46850,\n", - " 4921,\n", - " 4270],\n", - " 307: [4968,\n", - " 2682,\n", - " 2804,\n", - " 5781,\n", - " 4021,\n", - " 1541,\n", - " 31445,\n", - " 4025,\n", - " 5485,\n", - " 3629],\n", - " 308: [49, 6229, 5649, 7769, 1232, 1601, 176, 4017, 1476, 1273],\n", - " 309: [3648, 6093, 4411, 1885, 1495, 5515, 3755, 877, 1998, 3633],\n", - " 310: [2351, 40946, 360, 416, 1348, 5951, 4084, 556, 49274, 49647],\n", - " 311: [52973,\n", - " 2019,\n", - " 27821,\n", - " 2014,\n", - " 5292,\n", - " 5357,\n", - " 5015,\n", - " 8261,\n", - " 446,\n", - " 3099],\n", - " 312: [1051, 3557, 2207, 6516, 25856, 2022, 911, 6478, 8195, 3755],\n", - " 313: [7076,\n", - " 45431,\n", - " 5731,\n", - " 8533,\n", - " 3152,\n", - " 2033,\n", - " 34323,\n", - " 3716,\n", - " 1646,\n", - " 1432],\n", - " 314: [5472,\n", - " 3889,\n", - " 6816,\n", - " 4971,\n", - " 44828,\n", - " 4242,\n", - " 8917,\n", - " 1581,\n", - " 32116,\n", - " 6392],\n", - " 315: [649, 4780, 6010, 745, 2548, 3, 2473, 54290, 7941, 4113],\n", - " 316: [5476, 1834, 4447, 1204, 455, 8879, 5493, 4432, 4686, 4999],\n", - " 317: [51077,\n", - " 26662,\n", - " 2389,\n", - " 49822,\n", - " 1502,\n", - " 1354,\n", - " 46347,\n", - " 1951,\n", - " 1472,\n", - " 7847],\n", - " 318: [2068,\n", - " 1354,\n", - " 52604,\n", - " 6783,\n", - " 34523,\n", - " 5663,\n", - " 2333,\n", - " 650,\n", - " 3763,\n", - " 3773],\n", - " 319: [482, 1442, 2952, 4812, 3004, 3035, 3616, 25752, 7883, 1379],\n", - " 320: [3501, 21, 5169, 747, 4232, 2142, 4880, 1344, 46948, 6038],\n", - " 321: [1107, 2433, 6377, 779, 5606, 3925, 656, 6816, 2000, 331],\n", - " 322: [435, 1654, 950, 2550, 48082, 2045, 9002, 6237, 5026, 6884],\n", - " 323: [2450, 2854, 2514, 781, 1649, 2571, 645, 1413, 2899, 556],\n", - " 324: [7396, 48997, 1879, 2741, 5302, 1725, 299, 8711, 8987, 2515],\n", - " 325: [3145,\n", - " 53519,\n", - " 55290,\n", - " 4682,\n", - " 27410,\n", - " 2060,\n", - " 2119,\n", - " 5109,\n", - " 33085,\n", - " 55872],\n", - " 326: [2495, 5682, 1351, 2918, 6312, 1174, 1257, 3464, 3079, 6959],\n", - " 327: [7618,\n", - " 5852,\n", - " 6279,\n", - " 2081,\n", - " 43921,\n", - " 1270,\n", - " 2002,\n", - " 55999,\n", - " 8040,\n", - " 1871],\n", - " 328: [5640,\n", - " 44731,\n", - " 60514,\n", - " 48416,\n", - " 2395,\n", - " 5945,\n", - " 1711,\n", - " 49932,\n", - " 2903,\n", - " 6537],\n", - " 329: [2202, 6768, 5251, 6323, 2247, 2244, 2902, 8492, 3957, 5312],\n", - " 330: [1533,\n", - " 7054,\n", - " 2001,\n", - " 2587,\n", - " 5617,\n", - " 2295,\n", - " 8367,\n", - " 2368,\n", - " 56788,\n", - " 2520],\n", - " 331: [5454, 8809, 8581, 1648, 27700, 911, 3428, 4506, 3914, 1032],\n", - " 332: [1643, 8753, 6858, 2506, 2953, 5893, 5689, 1179, 8984, 5788],\n", - " 333: [4067, 8884, 5452, 7706, 2976, 1456, 4577, 1009, 5541, 1479],\n", - " 334: [4386,\n", - " 3129,\n", - " 3181,\n", - " 43926,\n", - " 6568,\n", - " 47382,\n", - " 3273,\n", - " 4108,\n", - " 2095,\n", - " 55288],\n", - " 335: [1826,\n", - " 3787,\n", - " 3415,\n", - " 7442,\n", - " 55069,\n", - " 2985,\n", - " 5036,\n", - " 2929,\n", - " 3743,\n", - " 2071],\n", - " 336: [31221,\n", - " 3804,\n", - " 56152,\n", - " 4728,\n", - " 8138,\n", - " 7383,\n", - " 7243,\n", - " 40819,\n", - " 8836,\n", - " 2501],\n", - " 337: [6966,\n", - " 3763,\n", - " 2206,\n", - " 4129,\n", - " 314,\n", - " 47629,\n", - " 589,\n", - " 6265,\n", - " 60040,\n", - " 33312],\n", - " 338: [4842,\n", - " 59306,\n", - " 1365,\n", - " 2995,\n", - " 27005,\n", - " 3385,\n", - " 1175,\n", - " 1014,\n", - " 3864,\n", - " 40955],\n", - " 339: [1444,\n", - " 3448,\n", - " 2255,\n", - " 5677,\n", - " 45028,\n", - " 3309,\n", - " 34530,\n", - " 271,\n", - " 2034,\n", - " 2352],\n", - " 340: [1721,\n", - " 60147,\n", - " 42632,\n", - " 7250,\n", - " 2308,\n", - " 8537,\n", - " 60760,\n", - " 2721,\n", - " 4245,\n", - " 1194],\n", - " 341: [3155, 4900, 2506, 3354, 7038, 7303, 7847, 6807, 2402, 8617],\n", - " 342: [2644, 54995, 5215, 4622, 880, 266, 2115, 3768, 483, 38701],\n", - " 343: [31433, 2184, 6710, 594, 4146, 6952, 209, 1827, 725, 2383],\n", - " 344: [1517, 27839, 5655, 5564, 1253, 3248, 2424, 459, 4130, 5470],\n", - " 345: [46572,\n", - " 49132,\n", - " 2900,\n", - " 4964,\n", - " 8949,\n", - " 4986,\n", - " 2818,\n", - " 4900,\n", - " 4623,\n", - " 381],\n", - " 346: [1878,\n", - " 8919,\n", - " 2178,\n", - " 5302,\n", - " 48326,\n", - " 6155,\n", - " 46850,\n", - " 1180,\n", - " 60286,\n", - " 2111],\n", - " 347: [8368, 213, 3355, 1307, 759, 45880, 1409, 2116, 273, 628],\n", - " 348: [3574,\n", - " 2442,\n", - " 1470,\n", - " 5076,\n", - " 5817,\n", - " 3363,\n", - " 27648,\n", - " 4954,\n", - " 6010,\n", - " 4603],\n", - " 349: [3626,\n", - " 2977,\n", - " 48738,\n", - " 5777,\n", - " 3606,\n", - " 3851,\n", - " 4572,\n", - " 6312,\n", - " 3619,\n", - " 7260],\n", - " 350: [4294,\n", - " 3333,\n", - " 5506,\n", - " 4896,\n", - " 1053,\n", - " 3882,\n", - " 7203,\n", - " 26425,\n", - " 4410,\n", - " 1170],\n", - " 351: [19, 8870, 8808, 7811, 2279, 2340, 59141, 7570, 46578, 793],\n", - " 352: [1728, 6974, 199, 7764, 6196, 4229, 2102, 8732, 435, 27846],\n", - " 353: [2252, 5420, 5239, 93, 5329, 2360, 1299, 3712, 3853, 1539],\n", - " 354: [7624, 3491, 5345, 4510, 353, 48877, 8535, 4512, 1129, 2019],\n", - " 355: [6892, 800, 30850, 1078, 3903, 8928, 5593, 3846, 1488, 8852],\n", - " 356: [4972, 4529, 712, 2365, 1396, 970, 54281, 3451, 5678, 4496],\n", - " 357: [1432, 39715, 3268, 303, 442, 5555, 621, 6724, 2987, 53550],\n", - " 358: [2321, 5120, 1812, 4267, 731, 3699, 3997, 5992, 8905, 4124],\n", - " 359: [1873, 2719, 1850, 1423, 569, 1501, 481, 3584, 32302, 538],\n", - " 360: [1648,\n", - " 26318,\n", - " 697,\n", - " 1801,\n", - " 4221,\n", - " 1645,\n", - " 4393,\n", - " 4527,\n", - " 40959,\n", - " 7255],\n", - " 361: [3415, 5009, 535, 588, 31000, 3271, 6210, 3108, 7938, 4560],\n", - " 362: [2807, 6107, 32149, 1635, 1780, 7167, 5060, 407, 3874, 1383],\n", - " 363: [5004,\n", - " 2558,\n", - " 1350,\n", - " 5014,\n", - " 61323,\n", - " 1929,\n", - " 2599,\n", - " 3734,\n", - " 3806,\n", - " 3181],\n", - " 364: [1275,\n", - " 44864,\n", - " 7706,\n", - " 55288,\n", - " 4228,\n", - " 3765,\n", - " 7227,\n", - " 40278,\n", - " 4079,\n", - " 3992],\n", - " 365: [3441, 4239, 4190, 1626, 2159, 4591, 3766, 2753, 6156, 4914],\n", - " 366: [7004,\n", - " 6540,\n", - " 34048,\n", - " 60753,\n", - " 1503,\n", - " 54503,\n", - " 2700,\n", - " 1882,\n", - " 121,\n", - " 410],\n", - " 367: [3171, 7158, 5302, 3264, 3732, 32460, 843, 1859, 27721, 435],\n", - " 368: [3339,\n", - " 5414,\n", - " 1355,\n", - " 5686,\n", - " 8690,\n", - " 3928,\n", - " 4765,\n", - " 32387,\n", - " 1360,\n", - " 49793],\n", - " 369: [8786, 2782, 6020, 8370, 7000, 1636, 387, 8154, 57951, 4840],\n", - " 370: [2353, 2649, 5527, 4969, 2482, 2942, 280, 994, 286, 6986],\n", - " 371: [6720,\n", - " 49957,\n", - " 7454,\n", - " 49910,\n", - " 2922,\n", - " 5971,\n", - " 6979,\n", - " 3505,\n", - " 1393,\n", - " 7984],\n", - " 372: [4255, 1260, 3964, 26242, 2509, 2300, 5810, 70, 6473, 3950],\n", - " 373: [3418,\n", - " 1892,\n", - " 7209,\n", - " 3667,\n", - " 42002,\n", - " 6957,\n", - " 3675,\n", - " 7437,\n", - " 30850,\n", - " 6987],\n", - " 375: [4595, 1769, 249, 6335, 3543, 4208, 1203, 6513, 5219, 882],\n", - " 376: [1940, 5986, 5179, 252, 51077, 5786, 2883, 4080, 542, 164],\n", - " 377: [4368,\n", - " 1856,\n", - " 4936,\n", - " 32770,\n", - " 4188,\n", - " 5479,\n", - " 2190,\n", - " 1226,\n", - " 1952,\n", - " 39231],\n", - " 378: [5304,\n", - " 2665,\n", - " 5034,\n", - " 3388,\n", - " 2024,\n", - " 6686,\n", - " 5073,\n", - " 838,\n", - " 25750,\n", - " 26662],\n", - " 379: [3197, 3855, 3501, 9005, 4340, 58622, 781, 1955, 117, 1188],\n", - " 380: [6856,\n", - " 59022,\n", - " 3757,\n", - " 1035,\n", - " 8768,\n", - " 62803,\n", - " 33237,\n", - " 2361,\n", - " 5890,\n", - " 2888],\n", - " 381: [3768, 2946, 2336, 3545, 48385, 55, 4218, 3011, 25866, 905],\n", - " 382: [2321, 1389, 3200, 32076, 1483, 5071, 344, 1866, 4214, 4855],\n", - " 383: [6031, 1919, 3223, 203, 2182, 7342, 2013, 866, 26662, 3685],\n", - " 384: [2548, 6953, 2806, 30, 27193, 8197, 4477, 1814, 4732, 3250],\n", - " 385: [5017, 1991, 50851, 7845, 8491, 2610, 2771, 1400, 41, 25963],\n", - " 386: [6042, 864, 3355, 5656, 4418, 4957, 4432, 518, 48304, 3397],\n", - " 387: [6645,\n", - " 5118,\n", - " 2780,\n", - " 2051,\n", - " 5763,\n", - " 3142,\n", - " 3671,\n", - " 56152,\n", - " 4127,\n", - " 5385],\n", - " 388: [6271,\n", - " 607,\n", - " 2482,\n", - " 5469,\n", - " 26082,\n", - " 26242,\n", - " 43917,\n", - " 5609,\n", - " 4146,\n", - " 1203],\n", - " 389: [5345, 2582, 45517, 1328, 290, 471, 2908, 56782, 938, 5723],\n", - " 390: [8638, 2450, 6780, 415, 3284, 4501, 2124, 2297, 8336, 361],\n", - " 391: [813, 3501, 8372, 759, 2699, 2780, 4739, 2123, 6573, 6219],\n", - " 392: [2728, 927, 2242, 7649, 4635, 3873, 6060, 5893, 3210, 7984],\n", - " 393: [5617,\n", - " 4629,\n", - " 2613,\n", - " 3676,\n", - " 4917,\n", - " 40339,\n", - " 3129,\n", - " 54281,\n", - " 66,\n", - " 33781],\n", - " 394: [4252,\n", - " 4517,\n", - " 8973,\n", - " 4007,\n", - " 7920,\n", - " 336,\n", - " 34648,\n", - " 49286,\n", - " 5189,\n", - " 2670],\n", - " 395: [6899, 3962, 424, 42738, 702, 2246, 5427, 3134, 33834, 4115],\n", - " 396: [5747,\n", - " 8640,\n", - " 7210,\n", - " 5304,\n", - " 7201,\n", - " 33499,\n", - " 1612,\n", - " 4228,\n", - " 4848,\n", - " 7306],\n", - " 397: [3477, 8912, 3861, 4342, 727, 2905, 2690, 1396, 3730, 26680],\n", - " 398: [47423,\n", - " 32596,\n", - " 3484,\n", - " 5448,\n", - " 5171,\n", - " 6763,\n", - " 2892,\n", - " 3061,\n", - " 5652,\n", - " 435],\n", - " 399: [7841, 5094, 3564, 5398, 2529, 235, 4418, 48877, 8584, 603],\n", - " 400: [5572, 3141, 6786, 3993, 8930, 51698, 7191, 7243, 326, 7123],\n", - " 401: [4998, 106, 471, 102, 5854, 3032, 5100, 5649, 8841, 5657],\n", - " 402: [2728, 3036, 3169, 102, 8604, 26, 3135, 58964, 66, 3171],\n", - " 403: [6428, 3257, 5739, 3287, 326, 5379, 6, 1837, 33145, 5913],\n", - " 404: [1230,\n", - " 8094,\n", - " 1180,\n", - " 7789,\n", - " 8363,\n", - " 7362,\n", - " 39400,\n", - " 42723,\n", - " 4775,\n", - " 3030],\n", - " 405: [5329, 3066, 6685, 4368, 2608, 1535, 6159, 6345, 6789, 249],\n", - " 406: [5325, 6270, 6213, 7171, 6989, 2381, 4142, 1036, 4876, 3034],\n", - " 407: [4025, 1388, 965, 2369, 7036, 5388, 3360, 5501, 15, 7979],\n", - " 408: [5902, 6888, 2246, 4213, 596, 1396, 5202, 1914, 5505, 7009],\n", - " 409: [3296,\n", - " 6958,\n", - " 193,\n", - " 34648,\n", - " 5034,\n", - " 49772,\n", - " 1683,\n", - " 2344,\n", - " 2706,\n", - " 6419],\n", - " 410: [3975, 3689, 1770, 4208, 3125, 5072, 32296, 5936, 8919, 877],\n", - " 411: [57951,\n", - " 8601,\n", - " 8872,\n", - " 8698,\n", - " 6170,\n", - " 1439,\n", - " 81,\n", - " 55292,\n", - " 37475,\n", - " 45726],\n", - " 412: [2386,\n", - " 40339,\n", - " 5443,\n", - " 4981,\n", - " 58047,\n", - " 4095,\n", - " 31223,\n", - " 47644,\n", - " 4571,\n", - " 5307],\n", - " 413: [4862,\n", - " 5312,\n", - " 5276,\n", - " 2313,\n", - " 6614,\n", - " 3969,\n", - " 1396,\n", - " 6868,\n", - " 55814,\n", - " 1797],\n", - " 414: [3705, 8638, 376, 2520, 3103, 2091, 1189, 3201, 4006, 2714],\n", - " 415: [3270,\n", - " 4975,\n", - " 5563,\n", - " 3370,\n", - " 56274,\n", - " 2183,\n", - " 1105,\n", - " 4390,\n", - " 3423,\n", - " 33193],\n", - " 416: [66, 40815, 7101, 5481, 2287, 25777, 1310, 177, 2122, 4369],\n", - " 417: [5427,\n", - " 6795,\n", - " 1550,\n", - " 2478,\n", - " 7636,\n", - " 2800,\n", - " 5883,\n", - " 43936,\n", - " 1285,\n", - " 6367],\n", - " 418: [3648, 301, 56801, 50851, 451, 1116, 291, 363, 37727, 48082],\n", - " 419: [4569,\n", - " 2854,\n", - " 7937,\n", - " 3017,\n", - " 7199,\n", - " 7023,\n", - " 43869,\n", - " 8426,\n", - " 5606,\n", - " 4191],\n", - " 420: [4531, 2112, 3240, 6617, 3678, 8501, 7017, 4355, 2845, 5269],\n", - " 421: [8482, 8201, 3438, 8208, 230, 554, 2546, 6214, 36708, 42418],\n", - " 422: [5538,\n", - " 32031,\n", - " 8008,\n", - " 3364,\n", - " 2501,\n", - " 48518,\n", - " 4927,\n", - " 4384,\n", - " 43869,\n", - " 1242],\n", - " 424: [3201,\n", - " 26555,\n", - " 1503,\n", - " 5205,\n", - " 51575,\n", - " 43708,\n", - " 5058,\n", - " 2395,\n", - " 26002,\n", - " 1366],\n", - " 425: [6979, 1021, 927, 3459, 4443, 4729, 2357, 7318, 3471, 233],\n", - " 426: [6820, 1223, 341, 4828, 4534, 7210, 1771, 40583, 152, 4116],\n", - " 427: [5275, 38499, 8493, 5763, 5411, 5324, 5738, 4166, 70, 5985],\n", - " 428: [3060,\n", - " 4347,\n", - " 1965,\n", - " 3627,\n", - " 27839,\n", - " 34523,\n", - " 728,\n", - " 6107,\n", - " 5081,\n", - " 5033],\n", - " 429: [8275,\n", - " 2640,\n", - " 2316,\n", - " 47810,\n", - " 5508,\n", - " 960,\n", - " 33171,\n", - " 6695,\n", - " 3628,\n", - " 6669],\n", - " 430: [63, 2572, 2545, 313, 2553, 7445, 27456, 2605, 4899, 1822],\n", - " 431: [45852, 8754, 2736, 257, 7003, 1556, 3550, 39400, 448, 4347],\n", - " 432: [55269, 5577, 5014, 1254, 4407, 1008, 3943, 5752, 416, 4242],\n", - " 433: [3704, 2069, 1445, 5246, 5100, 2114, 8365, 6530, 3721, 1541],\n", - " 434: [47970,\n", - " 1547,\n", - " 32584,\n", - " 4030,\n", - " 3989,\n", - " 594,\n", - " 4489,\n", - " 2382,\n", - " 3867,\n", - " 5975],\n", - " 435: [6193,\n", - " 2361,\n", - " 5804,\n", - " 5139,\n", - " 1490,\n", - " 2578,\n", - " 6953,\n", - " 5803,\n", - " 6903,\n", - " 52042],\n", - " 436: [850, 4113, 2662, 7216, 26111, 2720, 7991, 5770, 8520, 2565],\n", - " 437: [1772,\n", - " 4343,\n", - " 2987,\n", - " 25752,\n", - " 3134,\n", - " 5357,\n", - " 52458,\n", - " 5272,\n", - " 3646,\n", - " 1767],\n", - " 438: [49772,\n", - " 4844,\n", - " 843,\n", - " 1280,\n", - " 33585,\n", - " 5002,\n", - " 55363,\n", - " 2285,\n", - " 30825,\n", - " 252],\n", - " 439: [242, 632, 5213, 4186, 320, 3730, 4563, 3714, 1312, 26555],\n", - " 440: [1457, 2477, 6816, 1730, 2552, 2908, 6567, 4200, 3445, 4727],\n", - " 441: [4754, 2307, 200, 2950, 1734, 4378, 6319, 5422, 47640, 1574],\n", - " 443: [2261, 3804, 7218, 4036, 720, 5611, 7101, 1079, 2346, 472],\n", - " 444: [1952, 7941, 1961, 1947, 3276, 248, 7154, 3635, 7418, 1615],\n", - " 445: [6429, 7762, 535, 2921, 81, 6325, 5629, 2095, 2329, 1210],\n", - " 446: [38886,\n", - " 1007,\n", - " 3895,\n", - " 1189,\n", - " 6017,\n", - " 8955,\n", - " 53466,\n", - " 5435,\n", - " 3064,\n", - " 8464],\n", - " 447: [594, 5398, 31903, 670, 5092, 3051, 6577, 8008, 44195, 7324],\n", - " 448: [58803,\n", - " 4109,\n", - " 1562,\n", - " 2066,\n", - " 6724,\n", - " 59387,\n", - " 2949,\n", - " 56333,\n", - " 558,\n", - " 2199],\n", - " 449: [1013,\n", - " 3827,\n", - " 2081,\n", - " 2005,\n", - " 1305,\n", - " 27410,\n", - " 2419,\n", - " 5625,\n", - " 2730,\n", - " 2921],\n", - " 450: [6486, 1019, 6244, 3871, 4129, 175, 2710, 37382, 1570, 3807],\n", - " 451: [42732, 3052, 32, 53123, 4458, 1445, 2238, 628, 458, 6416],\n", - " 452: [2615,\n", - " 692,\n", - " 45635,\n", - " 1204,\n", - " 6883,\n", - " 2835,\n", - " 26131,\n", - " 4579,\n", - " 1016,\n", - " 2991],\n", - " 453: [5348, 3730, 3719, 735, 2624, 2209, 7320, 1910, 861, 7022],\n", - " 454: [1729,\n", - " 6254,\n", - " 2558,\n", - " 3139,\n", - " 4056,\n", - " 2111,\n", - " 4868,\n", - " 4844,\n", - " 2170,\n", - " 48560],\n", - " 455: [33660, 4129, 2712, 5752, 374, 5024, 2788, 2368, 6874, 3999],\n", - " 456: [4855,\n", - " 57949,\n", - " 2287,\n", - " 7074,\n", - " 3608,\n", - " 5128,\n", - " 4207,\n", - " 5480,\n", - " 2621,\n", - " 1112],\n", - " 458: [3051, 54190, 3494, 6818, 2628, 1515, 55, 6920, 52644, 71],\n", - " 459: [4125,\n", - " 5506,\n", - " 45635,\n", - " 2176,\n", - " 6806,\n", - " 8984,\n", - " 1612,\n", - " 4816,\n", - " 2952,\n", - " 53752],\n", - " 460: [3038, 8383, 1914, 2492, 4450, 6101, 1352, 6870, 2865, 5918],\n", - " 461: [162, 4422, 3409, 3068, 45106, 2416, 539, 1343, 2386, 2709],\n", - " 462: [2721,\n", - " 589,\n", - " 56171,\n", - " 3585,\n", - " 1045,\n", - " 2340,\n", - " 2997,\n", - " 117,\n", - " 54503,\n", - " 25866],\n", - " 463: [5980, 3187, 7380, 3248, 4428, 436, 4675, 6301, 55402, 3941],\n", - " 464: [47099,\n", - " 7368,\n", - " 6187,\n", - " 2433,\n", - " 34536,\n", - " 3773,\n", - " 2168,\n", - " 7377,\n", - " 838,\n", - " 6358],\n", - " 465: [33145, 2447, 6280, 5378, 8659, 5656, 299, 4359, 4195, 4024],\n", - " 466: [6409,\n", - " 5298,\n", - " 6233,\n", - " 1401,\n", - " 4195,\n", - " 26203,\n", - " 3099,\n", - " 3682,\n", - " 2693,\n", - " 1645],\n", - " 467: [5483, 4871, 2605, 708, 2815, 2006, 6556, 54997, 2147, 7915],\n", - " 468: [2037, 7223, 7157, 3343, 6975, 3854, 851, 4471, 6152, 33437],\n", - " 469: [750,\n", - " 25777,\n", - " 3223,\n", - " 2919,\n", - " 26840,\n", - " 5347,\n", - " 32019,\n", - " 4734,\n", - " 61132,\n", - " 2884],\n", - " 470: [8633,\n", - " 5912,\n", - " 2729,\n", - " 2080,\n", - " 8917,\n", - " 33193,\n", - " 26939,\n", - " 4113,\n", - " 4142,\n", - " 7943],\n", - " 471: [6410,\n", - " 4501,\n", - " 4100,\n", - " 156,\n", - " 2824,\n", - " 52462,\n", - " 32302,\n", - " 1834,\n", - " 6800,\n", - " 3716],\n", - " 472: [3270, 1679, 5833, 785, 3726, 3978, 1025, 4901, 8604, 4978],\n", - " 473: [6794,\n", - " 1544,\n", - " 25963,\n", - " 6950,\n", - " 45447,\n", - " 3679,\n", - " 56715,\n", - " 2603,\n", - " 2882,\n", - " 6803],\n", - " 474: [6832, 1460, 40414, 8451, 8879, 6094, 1464, 141, 5135, 5285],\n", - " 475: [904, 49286, 55286, 2774, 390, 2569, 3515, 1493, 6789, 5377],\n", - " 476: [51935,\n", - " 3167,\n", - " 1488,\n", - " 8813,\n", - " 352,\n", - " 2973,\n", - " 49649,\n", - " 4532,\n", - " 2361,\n", - " 8690],\n", - " 477: [3807, 2634, 37382, 40583, 3139, 8930, 6, 691, 302, 4722],\n", - " 478: [2169,\n", - " 30803,\n", - " 4625,\n", - " 145,\n", - " 4251,\n", - " 4980,\n", - " 48774,\n", - " 531,\n", - " 5478,\n", - " 45662],\n", - " 479: [4599, 5361, 6593, 5250, 52287, 3660, 4133, 6973, 417, 1859],\n", - " 480: [27317, 6124, 729, 1396, 3787, 4447, 44974, 494, 2504, 4190],\n", - " 481: [4719, 46578, 691, 2447, 5078, 32296, 3667, 3174, 5899, 291],\n", - " 482: [7306, 3266, 6760, 8852, 2143, 6538, 5363, 1678, 3250, 3341],\n", - " 483: [4806, 1597, 3008, 20, 5962, 1335, 1929, 5287, 5074, 4036],\n", - " 484: [7376,\n", - " 4239,\n", - " 746,\n", - " 1669,\n", - " 2785,\n", - " 27882,\n", - " 26870,\n", - " 2447,\n", - " 7618,\n", - " 3879],\n", - " 485: [2209, 2073, 8732, 4780, 7170, 2977, 4499, 6067, 1961, 1898],\n", - " 486: [5049, 7579, 1465, 55765, 5285, 5632, 507, 5435, 4152, 2494],\n", - " 487: [56801, 7063, 731, 391, 8983, 7569, 289, 1419, 33817, 2752],\n", - " 488: [417, 4520, 4019, 1405, 3965, 2467, 4844, 5251, 4599, 138],\n", - " 489: [544, 876, 3936, 2797, 3256, 1950, 1649, 6734, 45950, 3710],\n", - " 490: [18, 4470, 3873, 537, 5574, 4231, 4031, 827, 4536, 3448],\n", - " 491: [8869, 6098, 3622, 3200, 301, 4367, 2437, 48394, 5975, 3275],\n", - " 492: [6927, 4211, 29, 8239, 1844, 4322, 3970, 6988, 3921, 2846],\n", - " 493: [931, 782, 6707, 810, 5054, 6473, 479, 30816, 3117, 6797],\n", - " 494: [6796, 8207, 7389, 2381, 2483, 2776, 1591, 3945, 3713, 2362],\n", - " 495: [5276, 1298, 956, 3932, 6798, 1995, 2113, 6170, 7481, 5095],\n", - " 496: [6722, 1973, 62, 485, 2904, 1247, 2092, 4988, 54997, 54503],\n", - " 497: [8404, 459, 8978, 2805, 3284, 8849, 2721, 68, 839, 471],\n", - " 498: [5304, 5013, 3638, 6226, 2856, 5765, 2389, 6858, 497, 5853],\n", - " 499: [4871,\n", - " 5423,\n", - " 32213,\n", - " 6238,\n", - " 27689,\n", - " 3751,\n", - " 1633,\n", - " 25774,\n", - " 6297,\n", - " 3635],\n", - " 500: [3066, 8365, 851, 908, 7227, 2463, 3971, 5008, 5493, 6374],\n", - " 501: [2215, 4243, 565, 4158, 2057, 6270, 1647, 4164, 37729, 2409],\n", - " 502: [4613, 2016, 2071, 4807, 864, 542, 8207, 7003, 2181, 37382],\n", - " 503: [4876, 6243, 3752, 51077, 4941, 1013, 505, 2790, 3478, 431],\n", - " 504: [26713,\n", - " 2804,\n", - " 301,\n", - " 1919,\n", - " 1991,\n", - " 1207,\n", - " 8966,\n", - " 7193,\n", - " 4518,\n", - " 51255],\n", - " 505: [341,\n", - " 57949,\n", - " 5588,\n", - " 7844,\n", - " 5354,\n", - " 3469,\n", - " 4452,\n", - " 3438,\n", - " 6548,\n", - " 56949],\n", - " 506: [3054,\n", - " 6058,\n", - " 3855,\n", - " 4621,\n", - " 3979,\n", - " 3730,\n", - " 8659,\n", - " 63992,\n", - " 32213,\n", - " 424],\n", - " 507: [3350, 53468, 1296, 39, 53464, 36527, 6396, 1089, 572, 6220],\n", - " 508: [2550, 1468, 2436, 2723, 1914, 4959, 3712, 6815, 53466, 603],\n", - " 509: [41, 3993, 5142, 2500, 2145, 4573, 7044, 53953, 5879, 8768],\n", - " 510: [6503, 1351, 7926, 907, 49530, 6287, 6237, 4834, 5438, 4721],\n", - " 511: [5692, 1874, 8622, 48, 6179, 993, 4052, 2929, 5668, 5418],\n", - " 512: [4082, 5438, 1200, 5343, 4537, 1363, 26, 5464, 8589, 25753],\n", - " 513: [3571, 1856, 733, 5415, 5064, 1390, 6156, 1999, 4094, 2761],\n", - " 515: [839, 6198, 300, 229, 8831, 2580, 1879, 7134, 3138, 5508],\n", - " 516: [1496,\n", - " 902,\n", - " 4570,\n", - " 5316,\n", - " 8989,\n", - " 48982,\n", - " 33819,\n", - " 47644,\n", - " 1411,\n", - " 55052],\n", - " 517: [1484, 5944, 3521, 491, 3313, 1909, 5362, 26116, 6863, 2938],\n", - " 518: [854, 5323, 2188, 55274, 8830, 119, 778, 57, 1728, 3497],\n", - " 520: [1966,\n", - " 4977,\n", - " 1215,\n", - " 2456,\n", - " 3392,\n", - " 955,\n", - " 4143,\n", - " 51088,\n", - " 3849,\n", - " 45106],\n", - " 521: [4664,\n", - " 6568,\n", - " 5867,\n", - " 1114,\n", - " 2077,\n", - " 1090,\n", - " 523,\n", - " 43558,\n", - " 1269,\n", - " 48518],\n", - " 522: [3079, 46, 375, 1812, 2961, 4874, 7391, 3951, 3246, 31223],\n", - " 523: [7325,\n", - " 7300,\n", - " 8131,\n", - " 7137,\n", - " 42725,\n", - " 7481,\n", - " 4038,\n", - " 6223,\n", - " 8978,\n", - " 44694],\n", - " 524: [2848, 881, 8337, 358, 6217, 1381, 6190, 8130, 7749, 44729],\n", - " 525: [2052, 1517, 9, 1894, 2992, 5096, 5258, 3849, 2462, 2322],\n", - " 526: [4351,\n", - " 3139,\n", - " 31083,\n", - " 2070,\n", - " 6545,\n", - " 4517,\n", - " 7260,\n", - " 2472,\n", - " 44022,\n", - " 7004],\n", - " 527: [3384,\n", - " 6188,\n", - " 3881,\n", - " 5397,\n", - " 3906,\n", - " 39449,\n", - " 49961,\n", - " 5475,\n", - " 1302,\n", - " 971],\n", - " 529: [1378, 4029, 2019, 2410, 4190, 4646, 3037, 2445, 280, 7191],\n", - " 530: [8937, 2935, 5357, 632, 119, 3539, 7566, 5388, 479, 5059],\n", - " 531: [32770,\n", - " 46850,\n", - " 7111,\n", - " 6754,\n", - " 4562,\n", - " 3909,\n", - " 3880,\n", - " 1328,\n", - " 8880,\n", - " 3726],\n", - " 532: [441, 525, 520, 6590, 4386, 1193, 4536, 4002, 2780, 7836],\n", - " 533: [5300, 5559, 704, 1344, 26555, 5951, 183, 1431, 3057, 3061],\n", - " 534: [5879, 8698, 1930, 8447, 504, 1334, 8874, 3159, 26012, 6426],\n", - " 535: [7569,\n", - " 52712,\n", - " 1863,\n", - " 7809,\n", - " 2585,\n", - " 3068,\n", - " 59037,\n", - " 8947,\n", - " 879,\n", - " 2080],\n", - " 536: [4886,\n", - " 5365,\n", - " 56805,\n", - " 53125,\n", - " 6300,\n", - " 3262,\n", - " 594,\n", - " 8581,\n", - " 2582,\n", - " 7295],\n", - " 537: [5002, 8746, 8951, 70, 5969, 5860, 5088, 1785, 2093, 2445],\n", - " 539: [1374, 1642, 2059, 5568, 3087, 2746, 8970, 4516, 1672, 2991],\n", - " 540: [25771, 7487, 92, 47952, 47970, 289, 565, 3910, 261, 5382],\n", - " 541: [5721,\n", - " 6502,\n", - " 54745,\n", - " 3308,\n", - " 5694,\n", - " 7094,\n", - " 8810,\n", - " 48738,\n", - " 2798,\n", - " 5122],\n", - " 542: [6791, 2600, 4453, 3812, 3207, 1054, 458, 6863, 1258, 1066],\n", - " 543: [55052,\n", - " 3301,\n", - " 43926,\n", - " 458,\n", - " 5989,\n", - " 32294,\n", - " 2457,\n", - " 7460,\n", - " 6244,\n", - " 932],\n", - " 544: [5074, 2380, 2706, 4650, 927, 60, 5540, 2483, 5955, 5564],\n", - " 545: [4406, 5984, 6344, 6180, 465, 56915, 2497, 3426, 2548, 4427],\n", - " 546: [1128,\n", - " 5034,\n", - " 6202,\n", - " 1843,\n", - " 4127,\n", - " 7898,\n", - " 33722,\n", - " 8327,\n", - " 6242,\n", - " 2327],\n", - " 547: [1942, 3004, 7032, 53460, 4585, 79, 3918, 5365, 2723, 1538],\n", - " 548: [4872,\n", - " 27523,\n", - " 3840,\n", - " 7166,\n", - " 5881,\n", - " 4081,\n", - " 59795,\n", - " 6021,\n", - " 1597,\n", - " 6556],\n", - " 549: [4388, 5088, 8377, 3201, 869, 4771, 1224, 7074, 5663, 1747],\n", - " 550: [1263, 2140, 4567, 1226, 6797, 3535, 8772, 2478, 2563, 6818],\n", - " 551: [50147, 363, 1171, 6003, 9005, 3161, 3419, 1172, 1187, 2576],\n", - " 552: [4828, 5740, 3937, 2935, 6374, 3812, 6540, 4487, 101, 4240],\n", - " 553: [47382,\n", - " 8587,\n", - " 1373,\n", - " 3535,\n", - " 1854,\n", - " 2662,\n", - " 45431,\n", - " 51935,\n", - " 3867,\n", - " 7326],\n", - " 554: [3972, 2717, 2255, 243, 6899, 57528, 4862, 2763, 1428, 6653],\n", - " 555: [8659, 30, 8667, 5675, 4305, 4009, 1627, 50794, 4578, 27912],\n", - " 556: [893, 8253, 2593, 1115, 4283, 2065, 7366, 6685, 2633, 438],\n", - " 557: [5312, 1087, 138, 41, 3260, 5540, 4525, 7176, 5601, 3204],\n", - " 558: [3152, 4038, 6319, 4213, 5179, 2329, 4221, 2688, 4964, 3371],\n", - " 559: [3980, 473, 34538, 724, 48783, 7194, 6643, 5378, 3160, 2499],\n", - " 560: [7745,\n", - " 8980,\n", - " 3403,\n", - " 2679,\n", - " 4750,\n", - " 8919,\n", - " 3516,\n", - " 3811,\n", - " 7101,\n", - " 33880],\n", - " 561: [3393,\n", - " 1396,\n", - " 4792,\n", - " 1460,\n", - " 1440,\n", - " 53129,\n", - " 2974,\n", - " 36509,\n", - " 112,\n", - " 45028],\n", - " 562: [1590, 4951, 140, 6858, 1719, 58025, 512, 767, 904, 26082],\n", - " 563: [49272,\n", - " 4968,\n", - " 56152,\n", - " 2500,\n", - " 562,\n", - " 2871,\n", - " 8643,\n", - " 43928,\n", - " 4391,\n", - " 5918],\n", - " 564: [31032, 8949, 6122, 438, 5602, 44399, 5275, 302, 2391, 334],\n", - " 565: [1046,\n", - " 4488,\n", - " 7209,\n", - " 5214,\n", - " 422,\n", - " 5843,\n", - " 7636,\n", - " 54270,\n", - " 58162,\n", - " 2378],\n", - " 566: [4247, 3225, 4526, 2042, 1, 2097, 56805, 1128, 2616, 1640],\n", - " 567: [54256, 6356, 2138, 138, 8859, 7164, 611, 1442, 3243, 33437],\n", - " 568: [1464, 7372, 39183, 700, 88, 6880, 1879, 1335, 8916, 6793],\n", - " 569: [4369, 846, 56251, 174, 5411, 47044, 3449, 4985, 3668, 1214],\n", - " 570: [4047, 3697, 1916, 5498, 8057, 58303, 5667, 707, 3466, 4517],\n", - " 571: [8239, 1728, 2748, 4322, 2278, 7445, 2452, 5833, 5670, 3784],\n", - " 572: [1639, 3592, 1256, 2415, 585, 4985, 4898, 42725, 1431, 452],\n", - " 573: [709,\n", - " 8057,\n", - " 51540,\n", - " 48774,\n", - " 276,\n", - " 1168,\n", - " 31658,\n", - " 48698,\n", - " 8094,\n", - " 6624],\n", - " 574: [3521, 40826, 4297, 4213, 6460, 2045, 3394, 4676, 281, 2756],\n", - " 575: [2273, 4354, 876, 586, 2720, 4091, 3863, 33669, 1060, 169],\n", - " 576: [900, 5139, 46865, 4640, 5397, 3161, 3284, 293, 3683, 7460],\n", - " 577: [2829, 2513, 4954, 39234, 7151, 372, 2261, 5630, 6927, 7915],\n", - " 578: [58418,\n", - " 8620,\n", - " 36509,\n", - " 656,\n", - " 8225,\n", - " 5932,\n", - " 3274,\n", - " 4599,\n", - " 1227,\n", - " 4527],\n", - " 579: [3841,\n", - " 101,\n", - " 33794,\n", - " 53322,\n", - " 2939,\n", - " 3135,\n", - " 7832,\n", - " 31698,\n", - " 7012,\n", - " 2135],\n", - " 580: [3067, 697, 4902, 2085, 5311, 5040, 8782, 1603, 3201, 40946],\n", - " 581: [888, 6947, 3836, 8949, 1340, 1251, 301, 4566, 27912, 6315],\n", - " 582: [4284,\n", - " 2106,\n", - " 282,\n", - " 5282,\n", - " 48698,\n", - " 3196,\n", - " 27838,\n", - " 5251,\n", - " 1878,\n", - " 4215],\n", - " 583: [3728, 7484, 842, 2682, 5610, 34155, 718, 5833, 50798, 7026],\n", - " 584: [553, 58246, 2312, 1972, 4928, 663, 5820, 4148, 488, 3783],\n", - " 585: [5193, 5958, 2501, 2315, 4082, 3467, 4799, 534, 2653, 3372],\n", - " 586: [7391,\n", - " 1016,\n", - " 2558,\n", - " 5009,\n", - " 4407,\n", - " 1590,\n", - " 7167,\n", - " 1949,\n", - " 55286,\n", - " 4174],\n", - " 587: [5675, 44193, 536, 3160, 4266, 33817, 898, 2594, 2716, 4786],\n", - " 588: [26148,\n", - " 2262,\n", - " 7123,\n", - " 26064,\n", - " 5598,\n", - " 3930,\n", - " 2028,\n", - " 3308,\n", - " 4207,\n", - " 2819],\n", - " 589: [31804,\n", - " 6060,\n", - " 3309,\n", - " 5665,\n", - " 8795,\n", - " 33164,\n", - " 5415,\n", - " 810,\n", - " 794,\n", - " 33154],\n", - " 590: [3565,\n", - " 6611,\n", - " 8535,\n", - " 47997,\n", - " 2959,\n", - " 3884,\n", - " 6897,\n", - " 8645,\n", - " 2774,\n", - " 3937],\n", - " 591: [1453,\n", - " 2804,\n", - " 3213,\n", - " 5327,\n", - " 8633,\n", - " 5951,\n", - " 5137,\n", - " 4696,\n", - " 1172,\n", - " 36525],\n", - " 592: [265, 1185, 3367, 3872, 4519, 7018, 26002, 718, 4563, 1733],\n", - " 593: [6810, 8542, 2688, 889, 26965, 607, 3806, 2387, 45852, 2639],\n", - " 594: [5521, 2475, 3301, 3087, 1295, 2382, 2265, 650, 27826, 5288],\n", - " 595: [1144, 75, 2121, 207, 25923, 3053, 5071, 346, 1930, 5193],\n", - " 596: [8239,\n", - " 8670,\n", - " 55765,\n", - " 2724,\n", - " 44972,\n", - " 7184,\n", - " 1502,\n", - " 269,\n", - " 1479,\n", - " 58246],\n", - " 597: [27875,\n", - " 2655,\n", - " 2609,\n", - " 42723,\n", - " 3247,\n", - " 7139,\n", - " 4216,\n", - " 6341,\n", - " 6241,\n", - " 1323],\n", - " 598: [2056, 1779, 56587, 52, 6828, 44759, 3180, 706, 5068, 3615],\n", - " 599: [3822, 2946, 1009, 8939, 3423, 4398, 5952, 5135, 2090, 8983],\n", - " 600: [7028, 1594, 3502, 309, 1171, 4788, 8154, 55363, 938, 55272],\n", - " 601: [843, 8501, 4654, 2291, 4678, 5051, 4471, 3253, 3133, 4167],\n", - " 602: [2371,\n", - " 55063,\n", - " 3298,\n", - " 5093,\n", - " 3699,\n", - " 3181,\n", - " 4045,\n", - " 54004,\n", - " 59421,\n", - " 5140],\n", - " 603: [27618,\n", - " 3211,\n", - " 2177,\n", - " 3734,\n", - " 57949,\n", - " 2042,\n", - " 4466,\n", - " 2401,\n", - " 353,\n", - " 5125],\n", - " 604: [1878,\n", - " 37240,\n", - " 2149,\n", - " 3033,\n", - " 2055,\n", - " 1454,\n", - " 56587,\n", - " 1871,\n", - " 4750,\n", - " 32213],\n", - " 605: [8831,\n", - " 7984,\n", - " 6347,\n", - " 4177,\n", - " 2265,\n", - " 53000,\n", - " 4887,\n", - " 1300,\n", - " 8745,\n", - " 5458],\n", - " 606: [27826, 44929, 3940, 55292, 28, 6539, 1998, 8985, 8830, 259],\n", - " 607: [1917, 2599, 4, 561, 33164, 425, 49, 3978, 55872, 7820],\n", - " 608: [3893, 15, 3547, 6198, 27831, 27731, 724, 8972, 5541, 7748],\n", - " 609: [31956, 2378, 515, 6624, 1961, 8832, 7243, 7706, 564, 4332],\n", - " 610: [5105, 1397, 4307, 2574, 3908, 897, 893, 2074, 5269, 2301],\n", - " 612: [144, 7212, 4765, 55069, 2633, 8532, 6045, 3929, 1998, 7316],\n", - " 613: [7459,\n", - " 5411,\n", - " 1194,\n", - " 996,\n", - " 2160,\n", - " 5300,\n", - " 4602,\n", - " 48518,\n", - " 3869,\n", - " 26085],\n", - " 614: [1699, 659, 1504, 5735, 53460, 668, 3798, 5927, 1890, 3862],\n", - " 616: [7013,\n", - " 53752,\n", - " 59333,\n", - " 3472,\n", - " 3264,\n", - " 2448,\n", - " 8781,\n", - " 2879,\n", - " 7303,\n", - " 2996],\n", - " 617: [2298, 8340, 5803, 3537, 220, 3545, 5693, 4384, 5028, 8862],\n", - " 618: [55232,\n", - " 180,\n", - " 7368,\n", - " 1260,\n", - " 2751,\n", - " 26614,\n", - " 27660,\n", - " 2673,\n", - " 1105,\n", - " 3632],\n", - " 619: [3615, 3466, 27674, 1857, 3997, 6510, 308, 73, 3124, 234],\n", - " 620: [1324,\n", - " 1006,\n", - " 8604,\n", - " 1112,\n", - " 2529,\n", - " 6473,\n", - " 1667,\n", - " 4558,\n", - " 41997,\n", - " 3854],\n", - " 621: [217, 4847, 1187, 8617, 8197, 34538, 25764, 8870, 6902, 544],\n", - " 622: [6639, 8529, 3306, 31410, 3494, 6016, 312, 1840, 4527, 5448],\n", - " 623: [3515,\n", - " 2717,\n", - " 8130,\n", - " 6800,\n", - " 58291,\n", - " 54503,\n", - " 54290,\n", - " 36537,\n", - " 2301,\n", - " 306],\n", - " 624: [692, 3214, 27604, 5990, 8835, 7162, 2328, 5540, 1411, 8754],\n", - " 625: [5741, 4108, 5317, 2490, 39234, 627, 1972, 2026, 3557, 4903],\n", - " 627: [5048,\n", - " 7450,\n", - " 3915,\n", - " 4833,\n", - " 6763,\n", - " 8836,\n", - " 48783,\n", - " 2752,\n", - " 26662,\n", - " 737],\n", - " 628: [6791, 2813, 2965, 2710, 6757, 2393, 7325, 727, 2517, 1484],\n", - " 629: [1731, 6576, 3792, 1523, 6851, 8057, 5244, 4673, 3041, 759],\n", - " 630: [2177,\n", - " 58156,\n", - " 26386,\n", - " 7023,\n", - " 4705,\n", - " 3880,\n", - " 2008,\n", - " 6002,\n", - " 5117,\n", - " 62293],\n", - " 631: [582, 1971, 2092, 911, 4842, 2905, 53550, 1589, 26513, 5787],\n", - " 632: [2775,\n", - " 5816,\n", - " 7318,\n", - " 5008,\n", - " 3941,\n", - " 37741,\n", - " 3063,\n", - " 3018,\n", - " 3029,\n", - " 5447],\n", - " 633: [34338, 5796, 26, 207, 1186, 5419, 3274, 2261, 55052, 59387],\n", - " 634: [1412,\n", - " 7107,\n", - " 4274,\n", - " 42632,\n", - " 8235,\n", - " 2168,\n", - " 34072,\n", - " 27865,\n", - " 2382,\n", - " 5468],\n", - " 635: [2695, 81, 5525, 27765, 606, 3257, 1197, 1033, 603, 1918],\n", - " 636: [2694,\n", - " 2722,\n", - " 2450,\n", - " 4252,\n", - " 26150,\n", - " 8484,\n", - " 3462,\n", - " 8972,\n", - " 2451,\n", - " 4936],\n", - " 637: [51698,\n", - " 2385,\n", - " 5572,\n", - " 2166,\n", - " 4005,\n", - " 7095,\n", - " 3004,\n", - " 1231,\n", - " 5094,\n", - " 1916],\n", - " 638: [4342, 304, 1995, 1204, 4780, 2130, 792, 5432, 32, 3784],\n", - " 639: [1681,\n", - " 7362,\n", - " 7458,\n", - " 55257,\n", - " 1726,\n", - " 3094,\n", - " 4815,\n", - " 32584,\n", - " 6196,\n", - " 6896],\n", - " 640: [33683,\n", - " 6265,\n", - " 6851,\n", - " 2985,\n", - " 7137,\n", - " 39292,\n", - " 48883,\n", - " 8859,\n", - " 44161,\n", - " 3894],\n", - " 641: [4279,\n", - " 49347,\n", - " 2731,\n", - " 30793,\n", - " 5489,\n", - " 1573,\n", - " 2555,\n", - " 1599,\n", - " 8493,\n", - " 42217],\n", - " 642: [1379, 3997, 5128, 3889, 5444, 6365, 3500, 5363, 959, 1978],\n", - " 643: [422, 54190, 3033, 5860, 5476, 4811, 1941, 3906, 8772, 2782],\n", - " 644: [61132,\n", - " 870,\n", - " 1909,\n", - " 40574,\n", - " 4393,\n", - " 5007,\n", - " 48741,\n", - " 1034,\n", - " 26696,\n", - " 3473],\n", - " 645: [1124,\n", - " 4635,\n", - " 6650,\n", - " 2462,\n", - " 25769,\n", - " 1956,\n", - " 5762,\n", - " 32029,\n", - " 53121,\n", - " 1859],\n", - " 646: [31086, 4741, 4164, 2227, 2600, 3203, 3423, 4266, 2449, 394],\n", - " 647: [4033, 5471, 2315, 3972, 2312, 5438, 472, 1346, 1916, 2122],\n", - " 648: [33358,\n", - " 4775,\n", - " 2647,\n", - " 2873,\n", - " 1791,\n", - " 5853,\n", - " 3790,\n", - " 53956,\n", - " 3011,\n", - " 27850],\n", - " 649: [206,\n", - " 39414,\n", - " 1596,\n", - " 2883,\n", - " 47999,\n", - " 7485,\n", - " 1079,\n", - " 525,\n", - " 1030,\n", - " 30894],\n", - " 650: [235, 5223, 6405, 50802, 4903, 4546, 8884, 187, 6879, 45074],\n", - " 651: [3363, 4851, 6392, 5847, 3984, 1616, 3051, 3677, 6877, 1605],\n", - " 652: [3313,\n", - " 8195,\n", - " 6179,\n", - " 33819,\n", - " 4465,\n", - " 3714,\n", - " 832,\n", - " 31437,\n", - " 376,\n", - " 61262],\n", - " 653: [913,\n", - " 5523,\n", - " 42021,\n", - " 3920,\n", - " 3038,\n", - " 6016,\n", - " 1841,\n", - " 3034,\n", - " 2776,\n", - " 56174],\n", - " 654: [2341,\n", - " 4492,\n", - " 6757,\n", - " 4087,\n", - " 6107,\n", - " 30848,\n", - " 8923,\n", - " 2996,\n", - " 7255,\n", - " 7899],\n", - " 655: [26144, 27706, 4846, 9005, 5937, 34, 302, 53189, 2062, 5741],\n", - " 656: [30, 4420, 6567, 4024, 2766, 4823, 3756, 27815, 4332, 7925],\n", - " 657: [6348,\n", - " 58347,\n", - " 7570,\n", - " 4733,\n", - " 27904,\n", - " 3742,\n", - " 486,\n", - " 1631,\n", - " 5840,\n", - " 5899],\n", - " 658: [1565, 225, 5569, 2125, 55999, 3453, 6143, 5397, 3258, 2696],\n", - " 659: [757, 469, 4190, 2149, 4393, 3304, 1586, 915, 8781, 6851],\n", - " 660: [2082, 1804, 268, 4406, 2042, 4041, 2007, 3402, 1432, 1055],\n", - " 661: [2429,\n", - " 4366,\n", - " 2278,\n", - " 53993,\n", - " 6231,\n", - " 6862,\n", - " 3952,\n", - " 4537,\n", - " 7771,\n", - " 8369],\n", - " 662: [791, 3698, 3391, 33145, 5110, 7820, 6170, 3641, 5544, 6237],\n", - " 663: [1872,\n", - " 3010,\n", - " 3264,\n", - " 3256,\n", - " 52722,\n", - " 1047,\n", - " 7939,\n", - " 8208,\n", - " 8360,\n", - " 2389],\n", - " 664: [8923,\n", - " 808,\n", - " 2799,\n", - " 51884,\n", - " 2988,\n", - " 2879,\n", - " 4501,\n", - " 4541,\n", - " 6770,\n", - " 53956],\n", - " 665: [188, 6003, 27391, 6779, 948, 3830, 6104, 3918, 5077, 2747],\n", - " 666: [7212,\n", - " 5068,\n", - " 1965,\n", - " 1002,\n", - " 6053,\n", - " 3372,\n", - " 5363,\n", - " 3204,\n", - " 3986,\n", - " 34162],\n", - " 667: [4391, 8492, 27584, 375, 1822, 48412, 5343, 3252, 691, 4130],\n", - " 668: [485, 4065, 5094, 5809, 25766, 1366, 6897, 7343, 1104, 4982],\n", - " 669: [60649,\n", - " 42732,\n", - " 1749,\n", - " 57951,\n", - " 39398,\n", - " 1359,\n", - " 8764,\n", - " 146,\n", - " 1963,\n", - " 6266],\n", - " 670: [764,\n", - " 26318,\n", - " 1569,\n", - " 42217,\n", - " 7766,\n", - " 42725,\n", - " 6380,\n", - " 6320,\n", - " 1680,\n", - " 47810],\n", - " 671: [963, 22, 1713, 6235, 5074, 5017, 78, 4275, 34153, 2977],\n", - " 672: [4105,\n", - " 5117,\n", - " 5677,\n", - " 4021,\n", - " 4998,\n", - " 45186,\n", - " 31035,\n", - " 6251,\n", - " 55232,\n", - " 55729],\n", - " 674: [2505, 899, 980, 5390, 3107, 8337, 4719, 294, 5074, 4964],\n", - " 675: [39715, 461, 3101, 7879, 2562, 50798, 1681, 2550, 7115, 854],\n", - " 676: [4526, 1095, 3052, 1267, 4054, 1804, 7367, 1440, 7172, 1099],\n", - " 677: [6818, 3057, 1902, 577, 570, 59900, 1310, 4949, 165, 1345],\n", - " 678: [605, 31687, 2089, 2473, 3184, 3679, 1986, 2125, 7126, 2356],\n", - " 679: [4784,\n", - " 805,\n", - " 228,\n", - " 3472,\n", - " 49278,\n", - " 27822,\n", - " 4167,\n", - " 58559,\n", - " 4144,\n", - " 6624],\n", - " 680: [334,\n", - " 3006,\n", - " 3761,\n", - " 2700,\n", - " 52245,\n", - " 7111,\n", - " 26974,\n", - " 5678,\n", - " 59022,\n", - " 5458],\n", - " 681: [3168, 2062, 6863, 6685, 1645, 4310, 2562, 2937, 1925, 3953],\n", - " 683: [6408,\n", - " 42730,\n", - " 5560,\n", - " 3324,\n", - " 3423,\n", - " 916,\n", - " 33621,\n", - " 30818,\n", - " 1110,\n", - " 4911],\n", - " 684: [3157,\n", - " 2348,\n", - " 1575,\n", - " 3879,\n", - " 3548,\n", - " 31347,\n", - " 2295,\n", - " 3780,\n", - " 1373,\n", - " 33621],\n", - " 685: [6772,\n", - " 2975,\n", - " 1982,\n", - " 40819,\n", - " 5241,\n", - " 6877,\n", - " 4868,\n", - " 1007,\n", - " 1460,\n", - " 2133],\n", - " 686: [5164,\n", - " 5928,\n", - " 1427,\n", - " 38038,\n", - " 60069,\n", - " 7069,\n", - " 48262,\n", - " 56782,\n", - " 1006,\n", - " 5693],\n", - " 688: [6482,\n", - " 31000,\n", - " 6287,\n", - " 3988,\n", - " 2138,\n", - " 2719,\n", - " 6244,\n", - " 4812,\n", - " 106,\n", - " 46865],\n", - " 689: [5555,\n", - " 53123,\n", - " 6098,\n", - " 8607,\n", - " 5265,\n", - " 8158,\n", - " 1476,\n", - " 8743,\n", - " 7618,\n", - " 7054],\n", - " 690: [2406,\n", - " 6980,\n", - " 6535,\n", - " 31086,\n", - " 7986,\n", - " 2579,\n", - " 8880,\n", - " 40278,\n", - " 4223,\n", - " 8695],\n", - " 691: [792, 44788, 7981, 4617, 2066, 6039, 5288, 6987, 123, 5322],\n", - " 693: [2433,\n", - " 8493,\n", - " 51662,\n", - " 4867,\n", - " 1635,\n", - " 2816,\n", - " 7257,\n", - " 3765,\n", - " 3161,\n", - " 55288],\n", - " 694: [6591,\n", - " 1879,\n", - " 2939,\n", - " 868,\n", - " 5053,\n", - " 1525,\n", - " 2935,\n", - " 55276,\n", - " 3261,\n", - " 34437],\n", - " 695: [4023, 1482, 2104, 4681, 3704, 4009, 2025, 1475, 5086, 3069],\n", - " 696: [2434, 1208, 882, 27822, 2206, 446, 7203, 4553, 2734, 6958],\n", - " 697: [40412,\n", - " 4619,\n", - " 1575,\n", - " 4011,\n", - " 8838,\n", - " 58315,\n", - " 37731,\n", - " 1982,\n", - " 3092,\n", - " 5847],\n", - " 698: [2683, 3306, 231, 986, 4341, 6855, 1311, 6872, 5113, 7072],\n", - " 699: [2545, 3824, 161, 2102, 7117, 3528, 3703, 948, 44197, 1605],\n", - " 700: [807, 4669, 8501, 3184, 2264, 58078, 6554, 4167, 1639, 2859],\n", - " 701: [2874, 664, 7042, 5333, 7023, 8947, 8753, 1042, 1588, 3951],\n", - " 702: [34437,\n", - " 2576,\n", - " 5883,\n", - " 3015,\n", - " 41566,\n", - " 5732,\n", - " 8665,\n", - " 4679,\n", - " 4624,\n", - " 2148],\n", - " 703: [2434,\n", - " 3990,\n", - " 3910,\n", - " 2308,\n", - " 2244,\n", - " 7342,\n", - " 3952,\n", - " 45210,\n", - " 3034,\n", - " 2119],\n", - " 704: [4178,\n", - " 6434,\n", - " 256,\n", - " 60126,\n", - " 2165,\n", - " 1900,\n", - " 5251,\n", - " 1200,\n", - " 7191,\n", - " 49932],\n", - " 705: [4725,\n", - " 1874,\n", - " 4745,\n", - " 7072,\n", - " 8208,\n", - " 6660,\n", - " 2940,\n", - " 2693,\n", - " 49910,\n", - " 3465],\n", - " 706: [53972, 6946, 759, 5762, 2966, 1957, 3572, 2362, 6793, 1837],\n", - " 707: [1484, 670, 6710, 1898, 4700, 5424, 2775, 3984, 474, 26303],\n", - " 708: [3034, 5275, 2513, 2710, 151, 2140, 7169, 48043, 1343, 4836],\n", - " 709: [5782, 6473, 1587, 788, 6858, 7101, 5354, 3579, 8884, 2885],\n", - " 710: [3124,\n", - " 58975,\n", - " 3556,\n", - " 1257,\n", - " 876,\n", - " 3181,\n", - " 1010,\n", - " 4081,\n", - " 4489,\n", - " 40732],\n", - " 711: [3538, 2653, 6482, 6568, 1389, 529, 4278, 3310, 8951, 1449],\n", - " 712: [6212,\n", - " 8531,\n", - " 1444,\n", - " 3115,\n", - " 6365,\n", - " 2163,\n", - " 3430,\n", - " 4623,\n", - " 2642,\n", - " 33794],\n", - " 714: [4292, 2562, 8057, 8260, 31270, 1379, 879, 1447, 3078, 5012],\n", - " 715: [5056, 3461, 7889, 1575, 2105, 3143, 2969, 834, 6812, 614],\n", - " 716: [48678,\n", - " 2356,\n", - " 2427,\n", - " 3867,\n", - " 34536,\n", - " 7091,\n", - " 2428,\n", - " 2461,\n", - " 7317,\n", - " 412],\n", - " 718: [3771, 6884, 3486, 1130, 6533, 4377, 2393, 5770, 319, 1383],\n", - " 719: [4296, 8810, 6346, 46347, 2663, 716, 1682, 3110, 1850, 4561],\n", - " 720: [965, 8601, 54796, 7307, 8933, 4047, 5875, 183, 4545, 4113],\n", - " 721: [2488, 4334, 4605, 1569, 5890, 4008, 3951, 57, 2318, 6324],\n", - " 723: [2833,\n", - " 8008,\n", - " 3176,\n", - " 2241,\n", - " 1334,\n", - " 6203,\n", - " 2150,\n", - " 33154,\n", - " 1064,\n", - " 4182],\n", - " 724: [5634,\n", - " 2864,\n", - " 47516,\n", - " 1201,\n", - " 1328,\n", - " 50354,\n", - " 5379,\n", - " 4901,\n", - " 5544,\n", - " 239],\n", - " 725: [3019,\n", - " 26578,\n", - " 3439,\n", - " 1406,\n", - " 3957,\n", - " 4386,\n", - " 1450,\n", - " 3525,\n", - " 27648,\n", - " 1591],\n", - " 726: [516,\n", - " 7561,\n", - " 32153,\n", - " 2066,\n", - " 4562,\n", - " 1262,\n", - " 5873,\n", - " 1956,\n", - " 26386,\n", - " 7831],\n", - " 727: [5705, 7005, 2724, 1941, 4958, 7000, 7307, 3106, 3977, 3686],\n", - " 728: [6179,\n", - " 34155,\n", - " 6233,\n", - " 178,\n", - " 27912,\n", - " 7380,\n", - " 2436,\n", - " 2579,\n", - " 3315,\n", - " 1626],\n", - " 729: [4771, 6408, 2974, 7300, 7418, 434, 4154, 5975, 8589, 43869],\n", - " 730: [6368, 272, 3547, 4215, 1857, 2338, 532, 6577, 3646, 5829],\n", - " 731: [1117,\n", - " 4214,\n", - " 6979,\n", - " 55442,\n", - " 2459,\n", - " 1507,\n", - " 7075,\n", - " 4278,\n", - " 6932,\n", - " 8825],\n", - " 732: [1339,\n", - " 34271,\n", - " 36535,\n", - " 2475,\n", - " 2255,\n", - " 4426,\n", - " 1585,\n", - " 6720,\n", - " 1574,\n", - " 2787],\n", - " 733: [4543,\n", - " 2211,\n", - " 230,\n", - " 52245,\n", - " 1191,\n", - " 1192,\n", - " 4673,\n", - " 4885,\n", - " 55286,\n", - " 5352],\n", - " 734: [25753,\n", - " 6294,\n", - " 4105,\n", - " 3552,\n", - " 5489,\n", - " 8781,\n", - " 2599,\n", - " 4109,\n", - " 1689,\n", - " 56251],\n", - " 735: [51412,\n", - " 5784,\n", - " 3339,\n", - " 6852,\n", - " 50442,\n", - " 8484,\n", - " 50153,\n", - " 5220,\n", - " 36529,\n", - " 2519],\n", - " 736: [5647, 8872, 3788, 8985, 4837, 2086, 6410, 2538, 1504, 2730],\n", - " 737: [2888,\n", - " 5726,\n", - " 56805,\n", - " 5736,\n", - " 2312,\n", - " 2792,\n", - " 4220,\n", - " 5529,\n", - " 1562,\n", - " 7193],\n", - " 738: [8542, 5729, 2625, 4139, 1213, 4899, 2495, 5986, 3949, 7891],\n", - " 739: [7035, 6452, 26554, 732, 3524, 741, 51086, 5081, 988, 4493],\n", - " 740: [113, 3777, 5984, 1940, 5743, 2843, 6646, 6287, 7879, 48518],\n", - " 741: [3140,\n", - " 52042,\n", - " 186,\n", - " 2941,\n", - " 2407,\n", - " 1185,\n", - " 5105,\n", - " 2540,\n", - " 2945,\n", - " 26152],\n", - " 742: [6667, 9018, 56949, 2732, 1926, 1979, 3895, 924, 7334, 1750],\n", - " 743: [32302,\n", - " 44225,\n", - " 1767,\n", - " 6191,\n", - " 5027,\n", - " 5016,\n", - " 8914,\n", - " 6346,\n", - " 2266,\n", - " 3473],\n", - " 744: [3074, 5313, 2026, 844, 307, 997, 30822, 251, 4798, 1226],\n", - " 745: [2338, 45503, 7366, 5783, 4555, 5118, 4919, 2380, 5134, 532],\n", - " 746: [6561,\n", - " 26398,\n", - " 343,\n", - " 464,\n", - " 5903,\n", - " 2656,\n", - " 2571,\n", - " 8575,\n", - " 58492,\n", - " 34155],\n", - " 747: [1663, 5024, 2872, 8526, 377, 47382, 5142, 2699, 2166, 1050],\n", - " 748: [5339, 581, 6385, 299, 5151, 2351, 1406, 5099, 5563, 6005],\n", - " 749: [7091, 2146, 3760, 2108, 599, 2699, 28, 4453, 2042, 4080],\n", - " 750: [62113,\n", - " 3534,\n", - " 6297,\n", - " 5345,\n", - " 5489,\n", - " 48696,\n", - " 1703,\n", - " 6190,\n", - " 187,\n", - " 4529],\n", - " 751: [4900, 882, 6858, 3685, 873, 4066, 1272, 5553, 5517, 2970],\n", - " 752: [6973, 4492, 6331, 3338, 1916, 4896, 4061, 6882, 8968, 1087],\n", - " 753: [2432,\n", - " 34583,\n", - " 46972,\n", - " 2815,\n", - " 1897,\n", - " 3188,\n", - " 305,\n", - " 1080,\n", - " 54771,\n", - " 6323],\n", - " 754: [603, 2067, 2860, 258, 48262, 937, 2503, 39446, 1268, 4578],\n", - " 755: [25888, 8501, 4274, 2106, 3128, 917, 1829, 1546, 4739, 8764],\n", - " 756: [7815,\n", - " 8983,\n", - " 2848,\n", - " 5677,\n", - " 60514,\n", - " 5250,\n", - " 8197,\n", - " 146,\n", - " 48322,\n", - " 5694],\n", - " 757: [2006,\n", - " 4545,\n", - " 970,\n", - " 5556,\n", - " 44929,\n", - " 63992,\n", - " 1655,\n", - " 7034,\n", - " 26386,\n", - " 6675],\n", - " 758: [3957,\n", - " 3387,\n", - " 7107,\n", - " 4397,\n", - " 5276,\n", - " 44195,\n", - " 59900,\n", - " 42007,\n", - " 6839,\n", - " 6044],\n", - " 759: [48319, 960, 5952, 5682, 4672, 7153, 3494, 7073, 4482, 3330],\n", - " 761: [6569, 5275, 4468, 1844, 1177, 6288, 1255, 3108, 4077, 4086],\n", - " 762: [2794,\n", - " 4786,\n", - " 26662,\n", - " 2081,\n", - " 31347,\n", - " 6126,\n", - " 3326,\n", - " 5066,\n", - " 968,\n", - " 39419],\n", - " 763: [4247, 5762, 6646, 2201, 3767, 3284, 718, 1127, 986, 1728],\n", - " 764: [727, 5295, 5504, 26903, 8738, 8633, 6116, 491, 4386, 55267],\n", - " 765: [2114,\n", - " 5313,\n", - " 1423,\n", - " 4195,\n", - " 26285,\n", - " 3388,\n", - " 1373,\n", - " 47950,\n", - " 1809,\n", - " 4535],\n", - " 766: [52287,\n", - " 711,\n", - " 2414,\n", - " 7377,\n", - " 3099,\n", - " 57243,\n", - " 7781,\n", - " 48997,\n", - " 3717,\n", - " 54001],\n", - " 767: [3882, 5255, 7572, 7014, 3628, 717, 8040, 6217, 336, 4867],\n", - " 768: [3631,\n", - " 4116,\n", - " 42723,\n", - " 3929,\n", - " 8605,\n", - " 3398,\n", - " 4591,\n", - " 4532,\n", - " 33154,\n", - " 8796],\n", - " 769: [3854,\n", - " 4149,\n", - " 1582,\n", - " 50005,\n", - " 6251,\n", - " 716,\n", - " 7815,\n", - " 41573,\n", - " 57464,\n", - " 4582],\n", - " 770: [188, 1591, 6711, 3978, 241, 450, 5539, 48304, 39435, 7058],\n", - " 771: [4278, 6016, 2231, 2321, 3868, 1015, 7377, 718, 6308, 1340],\n", - " 772: [1307, 2792, 26172, 786, 7218, 7090, 260, 435, 905, 4199],\n", - " 773: [2563, 199, 4217, 3476, 6657, 5999, 920, 4056, 4972, 32153],\n", - " 774: [1446,\n", - " 1189,\n", - " 5629,\n", - " 7817,\n", - " 34148,\n", - " 26119,\n", - " 51925,\n", - " 47640,\n", - " 6979,\n", - " 6377],\n", - " 775: [5377,\n", - " 4102,\n", - " 1943,\n", - " 44004,\n", - " 31956,\n", - " 943,\n", - " 3323,\n", - " 4290,\n", - " 3464,\n", - " 2120],\n", - " 776: [2697, 6985, 4945, 44199, 4870, 1036, 88, 3879, 42002, 6974],\n", - " 777: [3274,\n", - " 2609,\n", - " 2160,\n", - " 3324,\n", - " 34321,\n", - " 7002,\n", - " 6240,\n", - " 3952,\n", - " 43744,\n", - " 33834],\n", - " 779: [3179, 2348, 7307, 8379, 48, 170, 715, 3268, 2523, 27772],\n", - " 780: [4643,\n", - " 5102,\n", - " 1375,\n", - " 5749,\n", - " 5784,\n", - " 52579,\n", - " 3112,\n", - " 6590,\n", - " 2964,\n", - " 1733],\n", - " 781: [1417,\n", - " 2136,\n", - " 7027,\n", - " 5416,\n", - " 1168,\n", - " 5947,\n", - " 4167,\n", - " 8869,\n", - " 55257,\n", - " 2084],\n", - " 782: [1839,\n", - " 3798,\n", - " 53464,\n", - " 33312,\n", - " 1199,\n", - " 5425,\n", - " 59315,\n", - " 3804,\n", - " 6326,\n", - " 5632],\n", - " 783: [50147,\n", - " 1092,\n", - " 7012,\n", - " 6185,\n", - " 3130,\n", - " 7321,\n", - " 3983,\n", - " 54286,\n", - " 47644,\n", - " 51927],\n", - " 784: [6535, 1824, 2082, 1799, 3041, 8138, 4263, 6478, 1854, 1887],\n", - " 785: [2582,\n", - " 6003,\n", - " 4094,\n", - " 3420,\n", - " 44929,\n", - " 2212,\n", - " 1352,\n", - " 2763,\n", - " 2219,\n", - " 7072],\n", - " 786: [6368,\n", - " 4128,\n", - " 2918,\n", - " 6286,\n", - " 4368,\n", - " 56949,\n", - " 1977,\n", - " 5287,\n", - " 44729,\n", - " 1369],\n", - " 787: [1413, 3303, 2091, 7028, 5065, 29, 46530, 181, 7713, 4479],\n", - " 788: [3616,\n", - " 2377,\n", - " 3910,\n", - " 4232,\n", - " 1927,\n", - " 4089,\n", - " 4585,\n", - " 33832,\n", - " 54001,\n", - " 7154],\n", - " 789: [2057, 3398, 4036, 3705, 4208, 4166, 5489, 742, 31000, 2237],\n", - " 790: [2873, 2512, 8253, 2153, 216, 2147, 5404, 7073, 47937, 6383],\n", - " 791: [6538,\n", - " 1375,\n", - " 2445,\n", - " 2856,\n", - " 2016,\n", - " 58998,\n", - " 1310,\n", - " 1779,\n", - " 8491,\n", - " 7316],\n", - " 792: [899, 7035, 3856, 38, 5606, 1045, 31221, 52448, 33004, 2828],\n", - " 793: [3264, 3896, 8977, 1466, 3999, 3022, 286, 51698, 7986, 8641],\n", - " 794: [3697,\n", - " 4536,\n", - " 3268,\n", - " 3881,\n", - " 7396,\n", - " 2410,\n", - " 3955,\n", - " 33832,\n", - " 6257,\n", - " 2787],\n", - " 795: [3795, 2699, 518, 5205, 3254, 1596, 6312, 4388, 5709, 4161],\n", - " 796: [8989,\n", - " 2827,\n", - " 39446,\n", - " 2648,\n", - " 4115,\n", - " 5014,\n", - " 6679,\n", - " 5483,\n", - " 7340,\n", - " 4930],\n", - " 797: [7342, 1498, 2082, 8501, 1150, 1120, 3951, 6530, 8633, 7016],\n", - " 798: [2905, 6320, 33669, 5172, 869, 554, 1453, 6813, 2823, 4354],\n", - " 799: [27838,\n", - " 1538,\n", - " 2852,\n", - " 5248,\n", - " 1981,\n", - " 2964,\n", - " 994,\n", - " 6226,\n", - " 54259,\n", - " 3354],\n", - " 800: [4809,\n", - " 991,\n", - " 5021,\n", - " 4031,\n", - " 3697,\n", - " 2620,\n", - " 26138,\n", - " 7560,\n", - " 46530,\n", - " 5302],\n", - " 801: [3262,\n", - " 1355,\n", - " 7841,\n", - " 4757,\n", - " 33164,\n", - " 3412,\n", - " 1635,\n", - " 1754,\n", - " 215,\n", - " 43556],\n", - " 802: [62803, 5415, 6858, 333, 1301, 3676, 53, 33358, 7204, 7201],\n", - " 803: [4895, 7387, 55577, 3180, 967, 7460, 1640, 3616, 1701, 2153],\n", - " 804: [858, 58972, 1534, 27005, 302, 662, 6058, 43744, 1131, 5854],\n", - " 805: [3384, 31617, 1472, 8905, 5619, 341, 2155, 1154, 5015, 6508],\n", - " 806: [2372,\n", - " 2308,\n", - " 4213,\n", - " 3941,\n", - " 1542,\n", - " 1556,\n", - " 6522,\n", - " 34155,\n", - " 39400,\n", - " 597],\n", - " 807: [2719,\n", - " 3712,\n", - " 6852,\n", - " 1752,\n", - " 4312,\n", - " 48322,\n", - " 8827,\n", - " 40732,\n", - " 5700,\n", - " 4506],\n", - " 808: [8609, 544, 1856, 355, 2607, 26686, 2965, 4390, 2308, 6750],\n", - " 809: [27912, 4245, 3732, 197, 6163, 3942, 4025, 4563, 2919, 4579],\n", - " 810: [32029, 3774, 956, 2987, 5218, 3222, 1889, 820, 1744, 2809],\n", - " 811: [8849, 5361, 3204, 25752, 185, 1878, 533, 2745, 363, 6791],\n", - " 812: [5264, 2693, 2175, 4674, 2424, 8378, 4310, 4541, 3740, 5741],\n", - " 813: [7581,\n", - " 7349,\n", - " 4628,\n", - " 1083,\n", - " 1040,\n", - " 25908,\n", - " 3747,\n", - " 52448,\n", - " 6713,\n", - " 3171],\n", - " 814: [2806,\n", - " 2973,\n", - " 1715,\n", - " 1104,\n", - " 8337,\n", - " 50872,\n", - " 3627,\n", - " 27689,\n", - " 4411,\n", - " 6238],\n", - " 815: [4932, 2100, 61, 1822, 141, 52975, 5900, 27340, 6484, 64],\n", - " 816: [3781,\n", - " 8754,\n", - " 3872,\n", - " 163,\n", - " 59725,\n", - " 37729,\n", - " 3036,\n", - " 39234,\n", - " 40583,\n", - " 5179],\n", - " 817: [158, 53460, 34162, 3569, 5935, 8873, 46578, 82, 2962, 7308],\n", - " 818: [4408, 3081, 64, 1606, 104, 2180, 3471, 2321, 4842, 27788],\n", - " 819: [4757,\n", - " 45720,\n", - " 6609,\n", - " 37720,\n", - " 970,\n", - " 4398,\n", - " 6349,\n", - " 4852,\n", - " 4326,\n", - " 7123],\n", - " 820: [59306,\n", - " 3102,\n", - " 4188,\n", - " 7383,\n", - " 5255,\n", - " 1256,\n", - " 4237,\n", - " 7345,\n", - " 5685,\n", - " 4452],\n", - " 821: [4636, 294, 5095, 7564, 3608, 3964, 4014, 606, 62801, 1951],\n", - " 822: [1968, 3044, 3682, 4529, 5341, 5853, 3736, 8125, 5613, 6577],\n", - " 823: [5675,\n", - " 2738,\n", - " 40815,\n", - " 5118,\n", - " 3513,\n", - " 8861,\n", - " 4012,\n", - " 54259,\n", - " 47610,\n", - " 4492],\n", - " 824: [2976,\n", - " 31427,\n", - " 26082,\n", - " 6442,\n", - " 8010,\n", - " 2973,\n", - " 8640,\n", - " 52281,\n", - " 4729,\n", - " 2095],\n", - " 825: [1620,\n", - " 680,\n", - " 39234,\n", - " 27776,\n", - " 6448,\n", - " 3671,\n", - " 1910,\n", - " 52668,\n", - " 2795,\n", - " 2383],\n", - " 826: [6684, 994, 3757, 3398, 1534, 5186, 5531, 4641, 4342, 2943],\n", - " 827: [45726,\n", - " 5218,\n", - " 2864,\n", - " 2953,\n", - " 1383,\n", - " 4339,\n", - " 7095,\n", - " 4111,\n", - " 5620,\n", - " 5690],\n", - " 828: [7306,\n", - " 6873,\n", - " 44022,\n", - " 3187,\n", - " 5246,\n", - " 49272,\n", - " 8865,\n", - " 2287,\n", - " 2482,\n", - " 2921],\n", - " 829: [6127, 4849, 1067, 2891, 5768, 6060, 3924, 47970, 25, 665],\n", - " 830: [5250,\n", - " 49396,\n", - " 1172,\n", - " 6234,\n", - " 45074,\n", - " 6646,\n", - " 2003,\n", - " 7720,\n", - " 42723,\n", - " 944],\n", - " 831: [3324, 7123, 7033, 3351, 5365, 7023, 2836, 2575, 5382, 946],\n", - " 832: [5961, 4664, 661, 111, 2940, 41025, 606, 1449, 1127, 58291],\n", - " 833: [86, 4618, 2357, 8958, 5212, 40339, 708, 3707, 2580, 3034],\n", - " 834: [5373,\n", - " 5812,\n", - " 3082,\n", - " 6885,\n", - " 27020,\n", - " 2671,\n", - " 7235,\n", - " 2964,\n", - " 2874,\n", - " 7700],\n", - " 835: [33832,\n", - " 5930,\n", - " 1089,\n", - " 2172,\n", - " 30803,\n", - " 3182,\n", - " 4573,\n", - " 2716,\n", - " 8916,\n", - " 5071],\n", - " 836: [6154, 2640, 3426, 26680, 4570, 3873, 2782, 4845, 42, 1488],\n", - " 837: [6887, 3062, 295, 1598, 5688, 1900, 3617, 5523, 3117, 3097],\n", - " 838: [5610,\n", - " 45928,\n", - " 3252,\n", - " 34271,\n", - " 3132,\n", - " 33193,\n", - " 53993,\n", - " 3870,\n", - " 5098,\n", - " 44657],\n", - " 839: [6300, 6020, 3202, 5732, 3062, 4880, 2390, 6062, 7614, 3864],\n", - " 840: [54785,\n", - " 5272,\n", - " 36477,\n", - " 5664,\n", - " 47610,\n", - " 4612,\n", - " 5902,\n", - " 3563,\n", - " 2197,\n", - " 6441],\n", - " 841: [3677, 181, 114, 33, 2335, 49274, 4546, 6791, 52283, 225],\n", - " 842: [8695, 5680, 3051, 457, 5691, 834, 31410, 268, 486, 915],\n", - " 843: [2151,\n", - " 2733,\n", - " 31617,\n", - " 3514,\n", - " 4709,\n", - " 5531,\n", - " 3040,\n", - " 7228,\n", - " 40148,\n", - " 112],\n", - " 844: [2275, 1105, 4982, 4212, 681, 1928, 5942, 2810, 5053, 1324],\n", - " 846: [3859,\n", - " 6548,\n", - " 32632,\n", - " 3812,\n", - " 2949,\n", - " 1374,\n", - " 51931,\n", - " 712,\n", - " 1107,\n", - " 8578],\n", - " 847: [4080,\n", - " 2844,\n", - " 27266,\n", - " 47610,\n", - " 4033,\n", - " 842,\n", - " 1948,\n", - " 46850,\n", - " 1863,\n", - " 48082],\n", - " 848: [2526, 5958, 2836, 782, 2654, 51884, 5729, 3777, 3668, 4159],\n", - " 849: [4190, 4236, 5033, 1144, 6568, 3501, 4563, 1364, 1490, 4793],\n", - " 851: [5662,\n", - " 7708,\n", - " 4721,\n", - " 3118,\n", - " 1132,\n", - " 4477,\n", - " 7748,\n", - " 38038,\n", - " 6440,\n", - " 5666],\n", - " 852: [4514, 1754, 6768, 889, 6695, 937, 57243, 34321, 2709, 2513],\n", - " 853: [1912,\n", - " 4679,\n", - " 31225,\n", - " 2008,\n", - " 33834,\n", - " 5672,\n", - " 4626,\n", - " 1348,\n", - " 1523,\n", - " 1036],\n", - " 854: [66, 1642, 3960, 2131, 2590, 5349, 4536, 8057, 7368, 27865],\n", - " 855: [6710, 4734, 4664, 6506, 5285, 2706, 540, 1898, 2432, 5648],\n", - " 856: [7324,\n", - " 38798,\n", - " 7165,\n", - " 405,\n", - " 2451,\n", - " 3185,\n", - " 33681,\n", - " 3503,\n", - " 53466,\n", - " 4452],\n", - " 857: [5186, 337, 6234, 630, 3884, 1320, 324, 3245, 1398, 5826],\n", - " 859: [4849, 2269, 2799, 8372, 373, 627, 3929, 4519, 43560, 2186],\n", - " 860: [3506, 6973, 8866, 141, 39446, 6008, 4263, 4415, 5147, 3201],\n", - " 861: [7088, 6263, 7150, 2259, 4487, 2141, 4380, 5194, 1783, 8937],\n", - " 862: [1224,\n", - " 40851,\n", - " 26151,\n", - " 2768,\n", - " 2736,\n", - " 6979,\n", - " 4422,\n", - " 2393,\n", - " 196,\n", - " 3921],\n", - " 863: [254,\n", - " 1425,\n", - " 119,\n", - " 2640,\n", - " 3022,\n", - " 6062,\n", - " 56757,\n", - " 37857,\n", - " 55946,\n", - " 32017],\n", - " 864: [5512,\n", - " 30810,\n", - " 4005,\n", - " 4641,\n", - " 2893,\n", - " 5438,\n", - " 3470,\n", - " 7318,\n", - " 3394,\n", - " 2421],\n", - " 865: [52456,\n", - " 3804,\n", - " 2643,\n", - " 5707,\n", - " 6764,\n", - " 1945,\n", - " 3928,\n", - " 30816,\n", - " 4956,\n", - " 27592],\n", - " 866: [2282, 3756, 1240, 5451, 820, 43923, 1189, 609, 2179, 1931],\n", - " 867: [1767, 2082, 1924, 8917, 2656, 4982, 1064, 1882, 4509, 354],\n", - " 868: [6800,\n", - " 55280,\n", - " 184,\n", - " 4974,\n", - " 4350,\n", - " 34164,\n", - " 1850,\n", - " 4692,\n", - " 4100,\n", - " 2864],\n", - " 869: [1243, 570, 4939, 6379, 2847, 1958, 1282, 3060, 5847, 3439],\n", - " 870: [228,\n", - " 58347,\n", - " 2950,\n", - " 6735,\n", - " 7067,\n", - " 7743,\n", - " 7036,\n", - " 1174,\n", - " 2975,\n", - " 27416],\n", - " 871: [35957,\n", - " 5223,\n", - " 3757,\n", - " 4143,\n", - " 415,\n", - " 5517,\n", - " 58293,\n", - " 3859,\n", - " 34143,\n", - " 8950],\n", - " 872: [2686,\n", - " 53519,\n", - " 6685,\n", - " 7354,\n", - " 3519,\n", - " 5412,\n", - " 2812,\n", - " 5002,\n", - " 7040,\n", - " 3675],\n", - " 873: [2708,\n", - " 4957,\n", - " 36477,\n", - " 2416,\n", - " 380,\n", - " 5606,\n", - " 4635,\n", - " 6240,\n", - " 53318,\n", - " 2264],\n", - " 874: [2065,\n", - " 25923,\n", - " 638,\n", - " 2734,\n", - " 52950,\n", - " 2415,\n", - " 2774,\n", - " 8722,\n", - " 7227,\n", - " 2719],\n", - " 875: [2391, 3355, 2923, 2389, 26492, 4566, 1695, 1603, 707, 7206],\n", - " 876: [32460,\n", - " 1866,\n", - " 1301,\n", - " 3104,\n", - " 498,\n", - " 6198,\n", - " 1608,\n", - " 1860,\n", - " 25963,\n", - " 3139],\n", - " 878: [2929,\n", - " 2944,\n", - " 5618,\n", - " 1184,\n", - " 2250,\n", - " 48780,\n", - " 3975,\n", - " 5357,\n", - " 1479,\n", - " 3930],\n", - " 879: [1502, 2642, 3747, 7482, 5667, 2953, 313, 4036, 56715, 1027],\n", - " 881: [2249,\n", - " 2432,\n", - " 53435,\n", - " 6989,\n", - " 4784,\n", - " 5346,\n", - " 7157,\n", - " 44225,\n", - " 2136,\n", - " 47970],\n", - " 882: [4969, 2381, 969, 4215, 33817, 7748, 4275, 7891, 3669, 2554],\n", - " 883: [2973, 1355, 2268, 5802, 152, 1971, 48738, 5809, 6301, 3175],\n", - " 884: [3771,\n", - " 27592,\n", - " 747,\n", - " 47382,\n", - " 7941,\n", - " 3303,\n", - " 2125,\n", - " 7135,\n", - " 6214,\n", - " 27822],\n", - " 885: [1605, 5784, 373, 58162, 6789, 8578, 921, 27584, 2130, 7000],\n", - " 886: [6325, 1012, 8879, 728, 3688, 313, 15, 1312, 136, 2937],\n", - " 887: [3477,\n", - " 6628,\n", - " 2461,\n", - " 3874,\n", - " 6969,\n", - " 1865,\n", - " 249,\n", - " 27608,\n", - " 36525,\n", - " 5114],\n", - " 888: [3917,\n", - " 2810,\n", - " 2562,\n", - " 8961,\n", - " 51575,\n", - " 1244,\n", - " 158,\n", - " 4852,\n", - " 3923,\n", - " 55080],\n", - " 889: [1996,\n", - " 6437,\n", - " 5930,\n", - " 1640,\n", - " 3548,\n", - " 45074,\n", - " 1925,\n", - " 1880,\n", - " 4158,\n", - " 2932],\n", - " 890: [32300, 3063, 7003, 2261, 8641, 528, 2539, 2635, 5356, 7366],\n", - " 891: [2718, 902, 7167, 8387, 58334, 2813, 2434, 8917, 5956, 7986],\n", - " 892: [5497, 2383, 3518, 8596, 2974, 2757, 122, 39446, 8859, 3032],\n", - " 893: [4184, 4104, 32, 6436, 1780, 57951, 4619, 8813, 3487, 6653],\n", - " 894: [39886,\n", - " 26122,\n", - " 5289,\n", - " 2887,\n", - " 6897,\n", - " 7306,\n", - " 2512,\n", - " 1296,\n", - " 4889,\n", - " 2839],\n", - " 895: [5569,\n", - " 2728,\n", - " 1444,\n", - " 7223,\n", - " 8764,\n", - " 8831,\n", - " 27815,\n", - " 5004,\n", - " 3374,\n", - " 2230],\n", - " 896: [2561, 8492, 512, 4396, 2118, 2163, 4331, 1099, 2433, 230],\n", - " 897: [3767, 1914, 37729, 4214, 5856, 6478, 6887, 8633, 237, 4306],\n", - " 898: [1592, 3167, 2037, 4501, 4395, 1049, 373, 1261, 5923, 3880],\n", - " 899: [7387,\n", - " 56885,\n", - " 5302,\n", - " 2429,\n", - " 1498,\n", - " 2122,\n", - " 8676,\n", - " 7771,\n", - " 50147,\n", - " 6093],\n", - " 900: [45720, 2052, 30818, 6077, 96, 4682, 5442, 3688, 6935, 123],\n", - " 901: [1000, 2194, 1747, 6708, 324, 20, 6614, 3430, 5777, 8754],\n", - " 902: [85, 7767, 50149, 2249, 6914, 3148, 1762, 27648, 3738, 144],\n", - " 903: [1450, 8941, 3109, 6409, 4782, 4635, 3790, 2018, 406, 2361],\n", - " 904: [6144, 1881, 5225, 2153, 6869, 5009, 7781, 5239, 3153, 3966],\n", - " 905: [26425,\n", - " 5700,\n", - " 2073,\n", - " 1661,\n", - " 901,\n", - " 6918,\n", - " 2377,\n", - " 2589,\n", - " 4240,\n", - " 40826],\n", - " 906: [949, 8865, 1648, 31193, 7170, 44974, 5193, 7941, 6179, 390],\n", - " 907: [844, 3922, 258, 5625, 25788, 375, 2993, 4428, 6708, 4613],\n", - " 908: [32596,\n", - " 1045,\n", - " 1609,\n", - " 8130,\n", - " 2587,\n", - " 43560,\n", - " 2209,\n", - " 27434,\n", - " 3802,\n", - " 6898],\n", - " 909: [3068, 423, 4052, 4565, 5663, 1179, 3438, 548, 4786, 3786],\n", - " 910: [3496,\n", - " 8734,\n", - " 7707,\n", - " 3500,\n", - " 44694,\n", - " 27513,\n", - " 56156,\n", - " 4023,\n", - " 741,\n", - " 2664],\n", - " 911: [4345, 5640, 3662, 955, 7177, 1, 3614, 3643, 2719, 3357],\n", - " 912: [2006, 4199, 6735, 4452, 3987, 467, 2146, 3092, 937, 2607],\n", - " 913: [25938,\n", - " 34648,\n", - " 40819,\n", - " 310,\n", - " 45720,\n", - " 3661,\n", - " 48698,\n", - " 2767,\n", - " 6609,\n", - " 2172],\n", - " 914: [5470,\n", - " 2774,\n", - " 2809,\n", - " 4874,\n", - " 5422,\n", - " 8372,\n", - " 2145,\n", - " 3676,\n", - " 3086,\n", - " 48774],\n", - " 915: [2038, 5346, 7342, 6536, 5903, 5841, 6126, 4600, 6001, 4532],\n", - " 916: [615, 6458, 3604, 799, 4598, 6314, 51698, 2803, 5418, 50514],\n", - " 917: [7983,\n", - " 44974,\n", - " 39446,\n", - " 2513,\n", - " 3824,\n", - " 5481,\n", - " 2082,\n", - " 26680,\n", - " 469,\n", - " 7756],\n", - " 918: [6379,\n", - " 3274,\n", - " 1196,\n", - " 2975,\n", - " 4266,\n", - " 1220,\n", - " 5600,\n", - " 49793,\n", - " 8291,\n", - " 2470],\n", - " 919: [4636, 1031, 1064, 3580, 6250, 2815, 2699, 2129, 1407, 3591],\n", - " 920: [2096, 2086, 1254, 3487, 6722, 2043, 1438, 59784, 5738, 304],\n", - " 921: [1399, 5111, 222, 8511, 1545, 6232, 713, 5073, 569, 6327],\n", - " 922: [2918, 1739, 5036, 1096, 4214, 6345, 1782, 581, 3030, 2415],\n", - " 923: [798, 43936, 5223, 1845, 3365, 3189, 226, 2924, 5289, 4509],\n", - " 924: [7101, 371, 64716, 472, 5462, 95, 3956, 2748, 1770, 55269],\n", - " 925: [2106, 25993, 2149, 8915, 1487, 4015, 35, 950, 48043, 6815],\n", - " 926: [3978, 4558, 3998, 6448, 3681, 6157, 2500, 6057, 1410, 8984],\n", - " 927: [473, 3970, 5677, 1496, 4167, 7836, 5187, 3040, 551, 802],\n", - " 928: [6197, 6668, 86, 6577, 706, 3519, 2979, 980, 31770, 870],\n", - " 930: [5187, 1450, 2979, 518, 45501, 2369, 449, 4167, 5213, 463],\n", - " 931: [8617, 289, 4970, 2230, 5069, 1923, 4480, 4275, 4851, 27772],\n", - " 932: [7212, 5668, 2540, 5826, 40614, 1916, 2633, 116, 1148, 3194],\n", - " 933: [5738, 3792, 3706, 2548, 9015, 748, 2938, 963, 2351, 53894],\n", - " 934: [3505,\n", - " 2551,\n", - " 1885,\n", - " 6203,\n", - " 5584,\n", - " 1397,\n", - " 1340,\n", - " 7324,\n", - " 1079,\n", - " 58803],\n", - " 935: [3512, 4504, 2131, 2622, 6366, 2482, 6333, 196, 7437, 1482],\n", - " 936: [4034, 6772, 4094, 1973, 8580, 1086, 1335, 4868, 36527, 202],\n", - " 937: [2125, 31770, 2227, 1128, 44, 42723, 1090, 5099, 2445, 426],\n", - " 938: [3445, 6239, 1872, 3330, 4392, 1132, 1281, 4131, 2147, 460],\n", - " 939: [5025, 4369, 4476, 3367, 4003, 3713, 2, 343, 5677, 1858],\n", - " 940: [6241, 2917, 7369, 361, 1953, 30707, 4739, 6927, 2469, 3390],\n", - " 941: [3634,\n", - " 3928,\n", - " 1772,\n", - " 41716,\n", - " 5476,\n", - " 4675,\n", - " 2173,\n", - " 5768,\n", - " 2269,\n", - " 3196],\n", - " 942: [2624, 4626, 2173, 37727, 3678, 74, 2516, 7164, 5434, 33672],\n", - " 943: [2111,\n", - " 1277,\n", - " 6851,\n", - " 45662,\n", - " 1883,\n", - " 5648,\n", - " 4998,\n", - " 4909,\n", - " 1257,\n", - " 4291],\n", - " 945: [2123,\n", - " 1265,\n", - " 4133,\n", - " 2528,\n", - " 2460,\n", - " 1340,\n", - " 4397,\n", - " 1980,\n", - " 4308,\n", - " 53956],\n", - " 946: [1525, 4990, 4982, 5685, 2119, 5909, 7073, 4355, 4557, 8531],\n", - " 947: [2180, 4783, 2255, 8753, 713, 289, 3527, 43708, 55063, 5707],\n", - " 948: [7880, 168, 8623, 2784, 4444, 6078, 2949, 7045, 2982, 2016],\n", - " 949: [490, 5475, 7616, 8045, 4533, 824, 49822, 794, 8405, 7318],\n", - " 950: [6188,\n", - " 49932,\n", - " 8024,\n", - " 3830,\n", - " 25766,\n", - " 3959,\n", - " 1937,\n", - " 2104,\n", - " 1551,\n", - " 907],\n", - " 951: [6077, 47970, 54999, 296, 7033, 4020, 4661, 2585, 4994, 203],\n", - " 952: [7131, 6755, 3456, 4275, 33819, 8426, 4468, 239, 3521, 47],\n", - " 953: [5431,\n", - " 62293,\n", - " 4108,\n", - " 3409,\n", - " 1266,\n", - " 5963,\n", - " 4958,\n", - " 34338,\n", - " 1395,\n", - " 1889],\n", - " 954: [6896, 3365, 4129, 37853, 211, 5942, 3494, 3823, 1620, 6461],\n", - " 955: [52644,\n", - " 49278,\n", - " 7449,\n", - " 3353,\n", - " 8910,\n", - " 2889,\n", - " 1300,\n", - " 3764,\n", - " 59387,\n", - " 1754],\n", - " 956: [8712, 8743, 7347, 945, 1924, 2967, 4595, 5696, 5585, 3980],\n", - " 957: [2598, 5463, 6345, 3990, 8268, 4709, 2714, 6473, 2793, 4736],\n", - " 958: [4580,\n", - " 33166,\n", - " 7347,\n", - " 6440,\n", - " 2172,\n", - " 2515,\n", - " 2002,\n", - " 7163,\n", - " 2572,\n", - " 2355],\n", - " 960: [5990,\n", - " 7114,\n", - " 5296,\n", - " 217,\n", - " 7236,\n", - " 35836,\n", - " 2346,\n", - " 52281,\n", - " 3525,\n", - " 7572],\n", - " 961: [3821, 653, 8695, 3129, 8813, 4887, 515, 851, 2375, 54995],\n", - " 962: [2818,\n", - " 3793,\n", - " 4644,\n", - " 62394,\n", - " 32600,\n", - " 1939,\n", - " 2467,\n", - " 3201,\n", - " 3710,\n", - " 4350],\n", - " 963: [703,\n", - " 3029,\n", - " 60126,\n", - " 37380,\n", - " 43919,\n", - " 2170,\n", - " 5494,\n", - " 43460,\n", - " 2560,\n", - " 4124],\n", - " 964: [5256, 1472, 261, 3780, 973, 4718, 3553, 3877, 5999, 4788],\n", - " 965: [26745,\n", - " 263,\n", - " 2688,\n", - " 7364,\n", - " 36531,\n", - " 8928,\n", - " 3597,\n", - " 1379,\n", - " 4167,\n", - " 2812],\n", - " 966: [27768, 1694, 722, 6025, 568, 1733, 6885, 26939, 3423, 8614],\n", - " 967: [7072, 6008, 7354, 428, 4173, 5021, 49274, 916, 8661, 27416],\n", - " 968: [27416,\n", - " 2136,\n", - " 33660,\n", - " 2460,\n", - " 3661,\n", - " 3704,\n", - " 849,\n", - " 7107,\n", - " 2282,\n", - " 2186],\n", - " 969: [2978, 31116, 790, 43558, 387, 5432, 5108, 83, 4165, 1529],\n", - " 970: [8367, 7842, 40955, 397, 44195, 6966, 1936, 5952, 411, 3326],\n", - " 971: [279, 2690, 2022, 4799, 1218, 6774, 938, 1228, 5035, 653],\n", - " 972: [4291,\n", - " 4960,\n", - " 443,\n", - " 4795,\n", - " 48856,\n", - " 3214,\n", - " 2625,\n", - " 1748,\n", - " 8868,\n", - " 49910],\n", - " 973: [648, 6442, 3024, 5066, 5377, 2930, 790, 27193, 606, 267],\n", - " 974: [1185, 1209, 8711, 6125, 3491, 4350, 288, 3184, 7161, 44204],\n", - " 975: [8268, 5307, 3525, 4640, 5015, 463, 1827, 5266, 3033, 348],\n", - " 976: [2231, 33312, 586, 2559, 7317, 52241, 1682, 2661, 574, 1399],\n", - " 977: [5559, 3983, 146, 1943, 4645, 3329, 55451, 5172, 1287, 4214],\n", - " 978: [55363, 6790, 8377, 2828, 7065, 1438, 3773, 5787, 852, 2613],\n", - " 979: [1665, 6975, 8602, 5801, 5703, 8528, 6156, 3272, 2387, 3837],\n", - " 980: [1675, 4234, 1032, 754, 4479, 1275, 2813, 2585, 6466, 50514],\n", - " 982: [3576, 2036, 5840, 271, 3516, 350, 26012, 5768, 3117, 3606],\n", - " 983: [7193,\n", - " 8620,\n", - " 46948,\n", - " 5303,\n", - " 33826,\n", - " 5646,\n", - " 2285,\n", - " 6294,\n", - " 3374,\n", - " 6157],\n", - " 984: [3139, 1658, 452, 3593, 2718, 2413, 882, 6358, 4768, 2475],\n", - " 985: [1105,\n", - " 7891,\n", - " 1057,\n", - " 2408,\n", - " 35015,\n", - " 3593,\n", - " 2949,\n", - " 1876,\n", - " 3769,\n", - " 7212],\n", - " 986: [6973, 3472, 56587, 6342, 5445, 5741, 537, 1208, 964, 3452],\n", - " 987: [1144,\n", - " 4186,\n", - " 7587,\n", - " 26558,\n", - " 7317,\n", - " 8972,\n", - " 2843,\n", - " 3118,\n", - " 5056,\n", - " 3189],\n", - " 988: [3544,\n", - " 6590,\n", - " 1998,\n", - " 8360,\n", - " 2757,\n", - " 6995,\n", - " 44204,\n", - " 1556,\n", - " 5462,\n", - " 6405],\n", - " 989: [7348, 3128, 7389, 6626, 2531, 4389, 2526, 3893, 3873, 2091],\n", - " 990: [6724, 4249, 3343, 3421, 2964, 507, 5099, 3549, 209, 49822],\n", - " 991: [1104,\n", - " 4748,\n", - " 8644,\n", - " 51662,\n", - " 1270,\n", - " 5454,\n", - " 2154,\n", - " 39052,\n", - " 36537,\n", - " 4815],\n", - " 992: [5503,\n", - " 6416,\n", - " 2738,\n", - " 44225,\n", - " 7437,\n", - " 4462,\n", - " 2809,\n", - " 57669,\n", - " 5159,\n", - " 4577],\n", - " 993: [6918, 1460, 8958, 3524, 4567, 4802, 291, 8235, 446, 3872],\n", - " 994: [41569,\n", - " 3809,\n", - " 837,\n", - " 4916,\n", - " 414,\n", - " 58025,\n", - " 2327,\n", - " 34532,\n", - " 31694,\n", - " 58246],\n", - " 995: [559, 334, 26270, 4629, 1719, 5182, 6934, 5648, 7061, 1057],\n", - " 996: [4987,\n", - " 5478,\n", - " 2953,\n", - " 4696,\n", - " 59037,\n", - " 3401,\n", - " 3245,\n", - " 5987,\n", - " 6721,\n", - " 2910],\n", - " 997: [6033,\n", - " 6031,\n", - " 59016,\n", - " 2107,\n", - " 2942,\n", - " 8169,\n", - " 8915,\n", - " 4396,\n", - " 1615,\n", - " 7169],\n", - " 998: [4117, 6702, 6538, 3768, 7092, 6982, 992, 2511, 2456, 4735],\n", - " 999: [3148,\n", - " 1756,\n", - " 4117,\n", - " 3549,\n", - " 1508,\n", - " 58078,\n", - " 54270,\n", - " 475,\n", - " 5994,\n", - " 48877],\n", - " 1001: [7338, 51927, 4686, 58105, 4243, 92, 7216, 2023, 871, 653],\n", - " 1002: [5137, 537, 8511, 8947, 4068, 521, 5960, 37545, 572, 5809],\n", - " 1003: [1723,\n", - " 6777,\n", - " 6152,\n", - " 40851,\n", - " 7295,\n", - " 39435,\n", - " 2620,\n", - " 6190,\n", - " 1722,\n", - " 2198],\n", - " 1004: [8738,\n", - " 3917,\n", - " 7065,\n", - " 3328,\n", - " 8125,\n", - " 4612,\n", - " 7044,\n", - " 7991,\n", - " 58334,\n", - " 8836],\n", - " 1005: [3481,\n", - " 2669,\n", - " 3984,\n", - " 1597,\n", - " 2176,\n", - " 30749,\n", - " 1365,\n", - " 2483,\n", - " 1760,\n", - " 4958],\n", - " 1006: [8644,\n", - " 7979,\n", - " 4969,\n", - " 1967,\n", - " 31223,\n", - " 4307,\n", - " 1310,\n", - " 1620,\n", - " 3716,\n", - " 3207],\n", - " 1007: [4102, 89, 5054, 6522, 6975, 7064, 5768, 2845, 2996, 394],\n", - " 1008: [3548,\n", - " 3254,\n", - " 7636,\n", - " 840,\n", - " 57522,\n", - " 1583,\n", - " 9010,\n", - " 2953,\n", - " 1980,\n", - " 1902],\n", - " 1009: [2993,\n", - " 3953,\n", - " 5914,\n", - " 7064,\n", - " 2203,\n", - " 1190,\n", - " 31903,\n", - " 4000,\n", - " 56367,\n", - " 56757],\n", - " 1011: [449,\n", - " 209,\n", - " 55292,\n", - " 2639,\n", - " 6429,\n", - " 1003,\n", - " 1449,\n", - " 5364,\n", - " 34072,\n", - " 3957],\n", - " 1012: [2476,\n", - " 5078,\n", - " 1171,\n", - " 1151,\n", - " 2387,\n", - " 2759,\n", - " 3533,\n", - " 52279,\n", - " 4147,\n", - " 2014],\n", - " 1013: [3949,\n", - " 7941,\n", - " 56915,\n", - " 2496,\n", - " 57640,\n", - " 5088,\n", - " 2373,\n", - " 2297,\n", - " 2665,\n", - " 2285],\n", - " 1014: [1976,\n", - " 2939,\n", - " 1022,\n", - " 1924,\n", - " 74,\n", - " 54771,\n", - " 1292,\n", - " 6416,\n", - " 39231,\n", - " 5603],\n", - " 1015: [45440,\n", - " 7570,\n", - " 3247,\n", - " 1221,\n", - " 790,\n", - " 1503,\n", - " 1754,\n", - " 2253,\n", - " 1428,\n", - " 2688],\n", - " 1016: [6347, 2010, 7976, 42015, 936, 828, 6424, 6221, 74, 3061],\n", - " 1017: [2247,\n", - " 4964,\n", - " 2507,\n", - " 4102,\n", - " 34405,\n", - " 330,\n", - " 1067,\n", - " 1286,\n", - " 8879,\n", - " 3334],\n", - " 1018: [53468,\n", - " 3871,\n", - " 3221,\n", - " 6884,\n", - " 1442,\n", - " 2514,\n", - " 1393,\n", - " 3508,\n", - " 7456,\n", - " 5700],\n", - " 1019: [552,\n", - " 7070,\n", - " 8666,\n", - " 2263,\n", - " 3693,\n", - " 27851,\n", - " 4109,\n", - " 50005,\n", - " 34534,\n", - " 42018],\n", - " 1020: [4079,\n", - " 3626,\n", - " 4496,\n", - " 616,\n", - " 45662,\n", - " 3873,\n", - " 3113,\n", - " 59900,\n", - " 8256,\n", - " 1882],\n", - " 1021: [2121, 153, 3401, 32017, 4169, 59729, 4951, 43, 4029, 6433],\n", - " 1022: [4053,\n", - " 2865,\n", - " 3097,\n", - " 2262,\n", - " 2088,\n", - " 1887,\n", - " 2527,\n", - " 56775,\n", - " 1916,\n", - " 3468],\n", - " 1023: [5783,\n", - " 37384,\n", - " 2827,\n", - " 1594,\n", - " 6795,\n", - " 2642,\n", - " 2090,\n", - " 574,\n", - " 2778,\n", - " 2581],\n", - " 1025: [3709,\n", - " 44694,\n", - " 2006,\n", - " 3179,\n", - " 1153,\n", - " 37741,\n", - " 3005,\n", - " 3932,\n", - " 6042,\n", - " 5987],\n", - " 1026: [681,\n", - " 1042,\n", - " 1895,\n", - " 25752,\n", - " 6348,\n", - " 2264,\n", - " 2106,\n", - " 2642,\n", - " 5981,\n", - " 2606],\n", - " 1027: [2458, 42015, 2557, 63, 780, 6424, 6969, 5620, 3479, 1113],\n", - " 1028: [5823, 2609, 2962, 337, 7810, 283, 5855, 650, 4381, 6290],\n", - " 1029: [34319,\n", - " 3272,\n", - " 1979,\n", - " 1971,\n", - " 32387,\n", - " 27801,\n", - " 2246,\n", - " 8014,\n", - " 1426,\n", - " 6143],\n", - " 1030: [3960, 501, 2710, 5114, 17, 8912, 1687, 346, 4268, 8830],\n", - " 1031: [503, 1311, 3363, 842, 1496, 7265, 2817, 4464, 524, 6927],\n", - " 1032: [7143,\n", - " 3465,\n", - " 1580,\n", - " 8368,\n", - " 7573,\n", - " 54001,\n", - " 6721,\n", - " 3707,\n", - " 3720,\n", - " 1047],\n", - " 1033: [3969, 6027, 32179, 1154, 2367, 8341, 10, 4777, 4949, 871],\n", - " 1034: [3892,\n", - " 2362,\n", - " 2048,\n", - " 2023,\n", - " 47261,\n", - " 42632,\n", - " 7342,\n", - " 4257,\n", - " 30846,\n", - " 2617],\n", - " 1035: [31225,\n", - " 26151,\n", - " 3179,\n", - " 2313,\n", - " 48416,\n", - " 2106,\n", - " 6710,\n", - " 277,\n", - " 4929,\n", - " 1326],\n", - " 1037: [54745, 5607, 2018, 882, 322, 5049, 1918, 1426, 1611, 3438],\n", - " 1038: [2081,\n", - " 2951,\n", - " 4359,\n", - " 6709,\n", - " 2435,\n", - " 1354,\n", - " 2931,\n", - " 3922,\n", - " 4807,\n", - " 2776],\n", - " 1039: [7764, 1014, 48997, 551, 570, 2371, 4298, 4161, 2038, 1030],\n", - " 1040: [2340,\n", - " 8623,\n", - " 6746,\n", - " 1293,\n", - " 5275,\n", - " 7294,\n", - " 1874,\n", - " 5709,\n", - " 7191,\n", - " 5652],\n", - " 1041: [1143, 3477, 4052, 967, 350, 1271, 3811, 8617, 6883, 5483],\n", - " 1043: [6794, 6735, 2377, 560, 3200, 4243, 2899, 96, 42002, 2798],\n", - " 1044: [93,\n", - " 1432,\n", - " 1359,\n", - " 8623,\n", - " 2639,\n", - " 57522,\n", - " 2800,\n", - " 2454,\n", - " 3908,\n", - " 32017],\n", - " 1045: [2120,\n", - " 5453,\n", - " 4561,\n", - " 2497,\n", - " 6584,\n", - " 31410,\n", - " 46865,\n", - " 3110,\n", - " 4802,\n", - " 3183],\n", - " 1046: [5883, 6339, 798, 5025, 207, 5401, 4807, 3257, 45666, 732],\n", - " 1047: [1930,\n", - " 1352,\n", - " 26303,\n", - " 2562,\n", - " 104,\n", - " 3807,\n", - " 7027,\n", - " 38038,\n", - " 2389,\n", - " 5735],\n", - " 1048: [7394,\n", - " 4486,\n", - " 6889,\n", - " 1978,\n", - " 1082,\n", - " 7899,\n", - " 59306,\n", - " 26178,\n", - " 1356,\n", - " 7572],\n", - " 1050: [295, 155, 3313, 628, 1024, 6918, 4427, 2576, 6811, 55765],\n", - " 1051: [1085, 8991, 4190, 2910, 7166, 1571, 2802, 709, 3576, 87],\n", - " 1052: [3207, 216, 233, 3174, 4915, 2077, 55805, 3835, 7939, 2366],\n", - " 1053: [6506,\n", - " 6993,\n", - " 31685,\n", - " 4770,\n", - " 55946,\n", - " 3555,\n", - " 5803,\n", - " 8197,\n", - " 417,\n", - " 1336]})" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from collections import defaultdict\n", - "\n", - "# 순위 평가용 데이터를 작성한다\n", - "# 각 사용자에 대한 추천 영화는 해당 사용자가 아직 평가하지 않은 영화 중에서 10작품을 무작위로 선택한다\n", - "# 키는 사용자 ID, 값은 추천 아이템 ID 리스트\n", - "pred_user2items = defaultdict(list)\n", - "# 사용자가 이미 평가한 영화를 얻는다\n", - "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", - "for user_id in unique_user_ids:\n", - " user_index = user_id2index[user_id]\n", - " movie_indexes = np.argsort(-pred_matrix[user_index, :])\n", - " for movie_index in movie_indexes:\n", - " movie_id = unique_movie_ids[movie_index]\n", - " if movie_id not in user_evaluated_movies[user_id]:\n", - " pred_user2items[user_id].append(movie_id)\n", - " if len(pred_user2items[user_id]) == 10:\n", - " break\n", - "pred_user2items" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "093cd4cf", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "6150 2 648 2.0 868244699 \n", - "6531 2 733 3.0 868244562 \n", - "6813 2 736 3.0 868244698 \n", - "7113 2 780 3.0 868244698 \n", - "7506 2 786 3.0 868244562 \n", - "7661 2 802 2.0 868244603 \n", - "7779 2 858 2.0 868245645 \n", - "8077 2 1049 3.0 868245920 \n", - "8127 2 1073 3.0 868244562 \n", - "8381 2 1210 4.0 868245644 \n", - "8771 2 1356 3.0 868244603 \n", - "9097 2 1544 3.0 868245920 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "6150 Mission: Impossible (1996) \n", - "6531 Rock, The (1996) \n", - "6813 Twister (1996) \n", - "7113 Independence Day (a.k.a. ID4) (1996) \n", - "7506 Eraser (1996) \n", - "7661 Phenomenon (1996) \n", - "7779 Godfather, The (1972) \n", - "8077 Ghost and the Darkness, The (1996) \n", - "8127 Willy Wonka & the Chocolate Factory (1971) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "8771 Star Trek: First Contact (1996) \n", - "9097 Lost World: Jurassic Park, The (Jurassic Park ... \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "6150 [Action, Adventure, Mystery, Thriller] \n", - "6531 [Action, Adventure, Thriller] \n", - "6813 [Action, Adventure, Romance, Thriller] \n", - "7113 [Action, Adventure, Sci-Fi, War] \n", - "7506 [Action, Drama, Thriller] \n", - "7661 [Drama, Romance] \n", - "7779 [Crime, Drama] \n", - "8077 [Action, Adventure] \n", - "8127 [Children, Comedy, Fantasy, Musical] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "8771 [Action, Adventure, Sci-Fi, Thriller] \n", - "9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "6150 [confusing, confusing plot, memorable sequence... 12.0 \n", - "6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n", - "6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n", - "7113 [action, alien invasion, aliens, will smith, a... 14.0 \n", - "7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n", - "7661 [interesting concept, own, john travolta, john... 15.0 \n", - "7779 [oscar (best picture), marlon brando, classic,... 9.0 \n", - "8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n", - "8127 [based on a book, roald dahl, based on a book,... 20.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n", - "8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n", - "9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 " - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2인 사용자가 학습 데이터에서 평가를 부여한 영화 목록\n", - "movielens_train[movielens_train.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1ecf4f28", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
702714Dead Man (1995)[Drama, Mystery, Western][jim jarmusch, beautiful, iggy pop!!!, johnny ...
44674560Watchers (1988)[Horror, Sci-Fi][based on a book, dean koontz]
55585656Festival in Cannes (2001)[Drama]NaN
\n", - "
" - ], - "text/plain": [ - " movie_id title genre \\\n", - "702 714 Dead Man (1995) [Drama, Mystery, Western] \n", - "4467 4560 Watchers (1988) [Horror, Sci-Fi] \n", - "5558 5656 Festival in Cannes (2001) [Drama] \n", - "\n", - " tag \n", - "702 [jim jarmusch, beautiful, iggy pop!!!, johnny ... \n", - "4467 [based on a book, dean koontz] \n", - "5558 NaN " - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2에 대한 추천(5656, 714, 4560)\n", - "movies[movies.movie_id.isin([5656, 714, 4560])]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "dff2694d", - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","id":"9dbb7b61","metadata":{"id":"9dbb7b61"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/Random.ipynb)"]},{"cell_type":"markdown","id":"b8e120c7","metadata":{"id":"b8e120c7"},"source":["# 무작위 추천\n","0.5부터 5사이의 균등 난수를 예측 평갓값으로 한다"]},{"cell_type":"code","execution_count":1,"id":"2e403fbc","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"2e403fbc","executionInfo":{"status":"ok","timestamp":1672119742747,"user_tz":-540,"elapsed":4113,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"859a6757-7ce5-4d2d-eb0e-25a6a2337197"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:40:34-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 43.4MB/s in 1.4s \n","\n","2022-12-27 05:40:35 (43.4 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"9827acbb","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9827acbb","executionInfo":{"status":"ok","timestamp":1672119815437,"user_tz":-540,"elapsed":72694,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"8a425bfa-3cdf-4403-e7f1-b37e01615bd7"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"bdfd3743","metadata":{"id":"bdfd3743","executionInfo":{"status":"ok","timestamp":1672119815438,"user_tz":-540,"elapsed":36,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 사용자 ID와 아이템 ID에 대해 0부터 시작하는 인덱스를 할당한다\n","unique_user_ids = sorted(movielens_train.user_id.unique())\n","unique_movie_ids = sorted(movielens_train.movie_id.unique())\n","user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n","movie_id2index = dict(zip(unique_movie_ids, range(len(unique_movie_ids))))\n"]},{"cell_type":"code","execution_count":4,"id":"b26a7e38","metadata":{"id":"b26a7e38","executionInfo":{"status":"ok","timestamp":1672119815438,"user_tz":-540,"elapsed":32,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["import numpy as np\n","# 사용자 x 아이템 행결에서 각 셀의 예측 평갓값은 0.5~5.0의 균등 난수로 한다\n","pred_matrix = np.random.uniform(0.5, 5.0, (len(unique_user_ids), len(unique_movie_ids)))\n"]},{"cell_type":"code","execution_count":5,"id":"39dc3945","metadata":{"id":"39dc3945","executionInfo":{"status":"ok","timestamp":1672119815895,"user_tz":-540,"elapsed":486,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# rmse 평가용으로 테스트 데이터에 나타나는 사용자와 아이템의 예측 평갓값을 저장한다.\n","movie_rating_predict = movielens_test.copy()\n","pred_results = []\n","for i, row in movielens_test.iterrows():\n"," user_id = row[\"user_id\"]\n"," # 테스트 데이터의 아이템 ID가 학습용에 나타나지 않는 경우에도 난수를 저장한다\n"," if row[\"movie_id\"] not in movie_id2index:\n"," pred_results.append(np.random.uniform(0.5, 5.0))\n"," continue\n"," # 테스트 데이터에 나타난 사용자 ID와 아이템 ID의 인덱스를 얻어, 평갓값 행렬의 값을 얻는다\n"," user_index = user_id2index[row[\"user_id\"]]\n"," movie_index = movie_id2index[row[\"movie_id\"]]\n"," pred_score = pred_matrix[user_index, movie_index]\n"," pred_results.append(pred_score)\n","movie_rating_predict[\"rating_pred\"] = pred_results"]},{"cell_type":"code","execution_count":6,"id":"8f3c304f","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"8f3c304f","executionInfo":{"status":"ok","timestamp":1672119817002,"user_tz":-540,"elapsed":1116,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"e844acbc-bde3-4540-cda2-b067799b9f8b"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {1: [4191, 8738, 1405, 1344, 1320, 3669, 3450, 673, 1413, 6118],\n"," 2: [56176, 4893, 761, 2072, 2951, 2540, 2294, 3596, 5362, 4664],\n"," 3: [7880, 1592, 26082, 460, 7474, 2090, 3825, 5684, 2748, 1615],\n"," 4: [5686, 663, 8645, 30820, 1078, 5528, 3180, 3824, 7177, 31193],\n"," 5: [4518, 1179, 26270, 720, 3735, 4556, 29, 2307, 1974, 27912],\n"," 6: [4800, 4234, 4682, 3255, 6808, 6954, 4840, 8501, 2630, 4082],\n"," 7: [5056,\n"," 1258,\n"," 8870,\n"," 6883,\n"," 2695,\n"," 7068,\n"," 54997,\n"," 40955,\n"," 7299,\n"," 33679],\n"," 8: [5650, 4720, 6718, 2803, 5788, 6927, 4836, 4401, 2029, 525],\n"," 9: [44937, 4541, 1928, 8872, 31, 59103, 3663, 3936, 4574, 4630],\n"," 10: [7440, 99, 1215, 54612, 6268, 1027, 5735, 4408, 1615, 6269],\n"," 11: [2639,\n"," 2085,\n"," 55269,\n"," 3167,\n"," 8722,\n"," 44193,\n"," 7073,\n"," 2347,\n"," 2569,\n"," 31584],\n"," 12: [26151, 3032, 909, 31804, 3441, 31359, 5182, 325, 1599, 1921],\n"," 13: [60072, 2238, 3849, 33669, 4677, 5481, 73, 6375, 6448, 461],\n"," 14: [6852, 1350, 5507, 6896, 6368, 2501, 4298, 27255, 2488, 8327],\n"," 16: [2302, 6242, 31035, 59315, 2808, 1321, 304, 8392, 4126, 2557],\n"," 17: [57532,\n"," 1729,\n"," 5289,\n"," 45210,\n"," 813,\n"," 4733,\n"," 45081,\n"," 3313,\n"," 4355,\n"," 8270],\n"," 18: [3041, 5325, 3241, 53125, 5225, 2066, 3813, 137, 62801, 7386],\n"," 19: [8755, 49772, 3544, 4, 5479, 32591, 3892, 1595, 26052, 7035],\n"," 22: [5040, 1370, 3769, 33649, 7147, 452, 3034, 6816, 8906, 3146],\n"," 23: [2032, 33903, 5808, 5585, 26005, 45447, 2580, 30, 4964, 154],\n"," 24: [4474, 8970, 2485, 3173, 5734, 175, 136, 43708, 34155, 2387],\n"," 26: [5690, 3048, 1971, 3307, 4045, 3513, 565, 5218, 4936, 4243],\n"," 27: [5817, 7219, 4682, 106, 1015, 587, 6192, 26163, 138, 3196],\n"," 28: [8511, 3792, 2494, 4197, 2393, 27873, 586, 2324, 2069, 7190],\n"," 29: [405, 888, 5398, 828, 1732, 1419, 7170, 153, 2761, 5955],\n"," 30: [1454, 1006, 717, 37380, 820, 40851, 5071, 1728, 3183, 113],\n"," 33: [33154, 2081, 2467, 2286, 4086, 4092, 1376, 4515, 637, 31952],\n"," 34: [34332, 922, 6014, 747, 8593, 4772, 55442, 3156, 2546, 3948],\n"," 35: [46335,\n"," 2423,\n"," 1468,\n"," 820,\n"," 8016,\n"," 1947,\n"," 33358,\n"," 8754,\n"," 59141,\n"," 3596],\n"," 36: [125, 77, 57640, 2969, 681, 2014, 1200, 4203, 62801, 168],\n"," 37: [4392, 4415, 438, 198, 56801, 3475, 2393, 54286, 1477, 3425],\n"," 38: [5507, 3501, 7649, 272, 1133, 4885, 3465, 1078, 2530, 54997],\n"," 40: [3268, 3102, 56339, 3704, 48997, 2470, 6988, 500, 4228, 4614],\n"," 41: [197, 7308, 1554, 2550, 2916, 230, 2288, 1507, 3466, 6679],\n"," 42: [6180, 6454, 3545, 4254, 1919, 2188, 416, 189, 1177, 6678],\n"," 43: [3304, 5202, 2919, 468, 732, 113, 455, 3141, 2316, 27808],\n"," 44: [4015, 6229, 103, 4372, 745, 62801, 7394, 3090, 50798, 8221],\n"," 45: [1791, 52328, 364, 5899, 4848, 5786, 4529, 2141, 3174, 5655],\n"," 46: [6042, 6591, 95, 7084, 7236, 6401, 4969, 3446, 2058, 3507],\n"," 47: [4874, 6790, 3372, 2401, 731, 707, 4573, 2931, 4865, 4240],\n"," 48: [1497, 4855, 704, 2420, 719, 2104, 333, 43871, 1185, 56176],\n"," 50: [2191, 6375, 4207, 1892, 1482, 2323, 2349, 5765, 2805, 3941],\n"," 51: [18, 8670, 4343, 3388, 4488, 65, 350, 390, 1968, 7035],\n"," 52: [27912, 29, 2857, 616, 1975, 4281, 5325, 186, 4263, 7300],\n"," 53: [4713, 5496, 3260, 2973, 5855, 7570, 45210, 7014, 461, 4957],\n"," 54: [3004, 33683, 8392, 6373, 6486, 1255, 1911, 900, 8825, 7340],\n"," 55: [1094, 2520, 1640, 3514, 1410, 6243, 5420, 8024, 237, 1029],\n"," 56: [15, 1688, 37386, 5696, 1900, 3052, 5584, 4424, 49651, 4479],\n"," 57: [8966, 7047, 6473, 6458, 1053, 3809, 6250, 4658, 3459, 2260],\n"," 58: [428, 2718, 4733, 5119, 5311, 8865, 718, 3374, 6158, 461],\n"," 59: [69, 2374, 3055, 5534, 102, 3807, 5882, 7222, 1426, 6760],\n"," 60: [5008, 49396, 6885, 5100, 2778, 3275, 34534, 1034, 1207, 95],\n"," 61: [957, 55080, 7618, 1008, 4465, 4610, 926, 2503, 3032, 1983],\n"," 62: [2243, 708, 6855, 37853, 351, 5569, 54094, 4803, 8253, 5012],\n"," 63: [238, 2834, 5962, 2384, 6784, 3219, 4014, 2823, 7915, 2432],\n"," 64: [779, 2330, 8969, 5066, 41569, 2278, 49961, 1581, 6786, 1999],\n"," 65: [3438,\n"," 48319,\n"," 7941,\n"," 1869,\n"," 6791,\n"," 57243,\n"," 2353,\n"," 2092,\n"," 2395,\n"," 1038],\n"," 66: [2908, 2679, 7250, 40, 4611, 3494, 6988, 5975, 197, 518],\n"," 67: [6419, 3150, 2493, 4045, 2242, 2435, 4792, 582, 4426, 5829],\n"," 68: [2641,\n"," 2198,\n"," 5529,\n"," 43679,\n"," 43987,\n"," 1352,\n"," 3418,\n"," 25888,\n"," 26138,\n"," 3400],\n"," 69: [5047, 3794, 2457, 56286, 2202, 4240, 848, 6855, 59333, 2151],\n"," 70: [2817, 1250, 2863, 7327, 3035, 223, 40870, 1283, 2593, 2764],\n"," 71: [5629, 34583, 4159, 8768, 87, 31086, 6590, 3785, 1945, 50685],\n"," 72: [4613,\n"," 3659,\n"," 4556,\n"," 44399,\n"," 32584,\n"," 6059,\n"," 37729,\n"," 7892,\n"," 639,\n"," 36517],\n"," 73: [6231, 2945, 4207, 3420, 6535, 1926, 3128, 6857, 8827, 2587],\n"," 74: [33171,\n"," 1978,\n"," 3052,\n"," 3165,\n"," 55830,\n"," 5359,\n"," 7074,\n"," 6975,\n"," 52579,\n"," 6326],\n"," 75: [73, 7493, 8711, 7094, 4645, 6685, 704, 2406, 4087, 26178],\n"," 76: [1131, 3208, 48082, 3272, 2925, 2314, 2067, 1438, 352, 3262],\n"," 77: [1965,\n"," 4249,\n"," 36531,\n"," 5747,\n"," 4788,\n"," 6811,\n"," 49961,\n"," 273,\n"," 7338,\n"," 51088],\n"," 78: [279, 5656, 4479, 861, 6284, 2991, 885, 876, 8228, 4312],\n"," 79: [464, 1825, 463, 8772, 5010, 7373, 6948, 5809, 62394, 53996],\n"," 80: [3316,\n"," 8972,\n"," 26614,\n"," 6477,\n"," 2143,\n"," 59315,\n"," 1845,\n"," 8950,\n"," 8379,\n"," 6319],\n"," 81: [55820,\n"," 4164,\n"," 4976,\n"," 1278,\n"," 7287,\n"," 60074,\n"," 1066,\n"," 38304,\n"," 3418,\n"," 5462],\n"," 82: [4736, 3972, 5103, 4711, 3094, 43744, 7114, 571, 220, 5102],\n"," 83: [89, 2022, 8623, 3057, 27790, 50804, 6458, 496, 2885, 33819],\n"," 84: [4812, 923, 519, 471, 6312, 49286, 6617, 5477, 1150, 2766],\n"," 85: [2567, 7314, 4041, 8485, 1564, 2149, 1485, 1004, 1422, 4964],\n"," 86: [3538, 1234, 6953, 248, 5095, 8755, 1566, 4682, 1683, 5319],\n"," 87: [1566, 5705, 4003, 3118, 440, 7022, 438, 685, 5971, 64],\n"," 88: [1404, 1293, 106, 50685, 2151, 1429, 3049, 2082, 42738, 4377],\n"," 89: [2159, 981, 2943, 31193, 3259, 951, 2165, 5147, 1273, 1184],\n"," 90: [2154, 587, 2803, 645, 2528, 2877, 297, 4969, 48741, 38499],\n"," 91: [7025, 225, 6667, 505, 1725, 8595, 2579, 4030, 4116, 4807],\n"," 92: [6370, 4291, 5603, 8378, 32294, 4985, 2876, 179, 2617, 1479],\n"," 93: [4721,\n"," 37853,\n"," 2890,\n"," 435,\n"," 58291,\n"," 47970,\n"," 4089,\n"," 8799,\n"," 4121,\n"," 4031],\n"," 94: [1115, 4377, 32600, 2136, 2070, 3223, 5780, 2341, 3250, 5254],\n"," 95: [6872, 1595, 3825, 290, 4442, 1692, 1869, 27812, 3176, 5014],\n"," 96: [3428, 4432, 3303, 6537, 1515, 2880, 8743, 31694, 6222, 6039],\n"," 97: [58972, 2402, 4160, 5809, 6348, 4249, 827, 191, 2817, 4722],\n"," 98: [2916,\n"," 5322,\n"," 57910,\n"," 4338,\n"," 3777,\n"," 48997,\n"," 6892,\n"," 6744,\n"," 26111,\n"," 753],\n"," 99: [4307, 219, 3790, 1681, 27317, 4199, 6219, 1678, 33358, 165],\n"," 100: [40339, 58103, 234, 2340, 846, 7155, 5318, 7373, 4727, 6100],\n"," 101: [59404,\n"," 2919,\n"," 4519,\n"," 151,\n"," 2557,\n"," 3507,\n"," 5981,\n"," 27812,\n"," 4002,\n"," 33722],\n"," 102: [1302,\n"," 56805,\n"," 3837,\n"," 42009,\n"," 1963,\n"," 5080,\n"," 220,\n"," 6041,\n"," 7383,\n"," 59900],\n"," 103: [2269, 3972, 102, 769, 4015, 5529, 2903, 3174, 27846, 6807],\n"," 104: [8593, 3372, 8738, 2066, 338, 8493, 3861, 1884, 3643, 5860],\n"," 105: [7646, 3846, 5787, 954, 4806, 648, 251, 354, 1267, 2236],\n"," 106: [7646, 32291, 1135, 3816, 2693, 15, 1843, 2790, 47610, 5816],\n"," 107: [7169,\n"," 30810,\n"," 4562,\n"," 4267,\n"," 6973,\n"," 3454,\n"," 6536,\n"," 2118,\n"," 3889,\n"," 2422],\n"," 108: [42015,\n"," 555,\n"," 7562,\n"," 2168,\n"," 53466,\n"," 60514,\n"," 3035,\n"," 57951,\n"," 2898,\n"," 4270],\n"," 110: [26148,\n"," 3863,\n"," 4758,\n"," 479,\n"," 59729,\n"," 2598,\n"," 1500,\n"," 7739,\n"," 565,\n"," 55729],\n"," 111: [4062, 2903, 20, 2728, 862, 62344, 8951, 2996, 2435, 6433],\n"," 112: [3988,\n"," 54745,\n"," 62801,\n"," 3513,\n"," 27456,\n"," 1967,\n"," 2527,\n"," 1662,\n"," 1896,\n"," 8261],\n"," 113: [486, 4886, 8016, 3754, 794, 5563, 870, 4831, 2207, 59141],\n"," 114: [2976,\n"," 5464,\n"," 56915,\n"," 1812,\n"," 2779,\n"," 6785,\n"," 2075,\n"," 7104,\n"," 5103,\n"," 5495],\n"," 115: [2822, 484, 2179, 3176, 2765, 2064, 917, 3773, 4917, 2587],\n"," 116: [58156,\n"," 8764,\n"," 6556,\n"," 5783,\n"," 2769,\n"," 27803,\n"," 4159,\n"," 1825,\n"," 8957,\n"," 4207],\n"," 117: [31770,\n"," 2024,\n"," 748,\n"," 2722,\n"," 26965,\n"," 2354,\n"," 2199,\n"," 8644,\n"," 7307,\n"," 59421],\n"," 118: [2576,\n"," 3808,\n"," 6659,\n"," 2525,\n"," 4377,\n"," 1534,\n"," 55402,\n"," 33237,\n"," 7172,\n"," 1982],\n"," 119: [2809,\n"," 3715,\n"," 4516,\n"," 6558,\n"," 3175,\n"," 4231,\n"," 5122,\n"," 4681,\n"," 7063,\n"," 53129],\n"," 120: [862, 58025, 2259, 5936, 53129, 262, 151, 7720, 7153, 1477],\n"," 121: [6988, 1194, 1907, 1145, 637, 3471, 3171, 159, 1707, 7000],\n"," 122: [5401, 436, 5378, 2654, 4387, 5648, 767, 8746, 5305, 58291],\n"," 123: [32770,\n"," 8970,\n"," 2123,\n"," 3669,\n"," 60286,\n"," 1426,\n"," 5556,\n"," 50354,\n"," 3494,\n"," 2282],\n"," 124: [3002, 7156, 716, 2341, 3553, 4749, 6612, 40851, 4015, 6980],\n"," 125: [8387, 57910, 6144, 656, 6611, 4243, 3222, 7234, 3133, 240],\n"," 126: [2931, 3982, 5673, 3393, 3640, 1563, 27391, 305, 345, 4579],\n"," 127: [8755,\n"," 3719,\n"," 3073,\n"," 4345,\n"," 1215,\n"," 45672,\n"," 6530,\n"," 4047,\n"," 45501,\n"," 2956],\n"," 128: [34072,\n"," 52579,\n"," 4042,\n"," 900,\n"," 8933,\n"," 3937,\n"," 1668,\n"," 452,\n"," 4424,\n"," 52458],\n"," 129: [8695, 2733, 1305, 6020, 54268, 31698, 1962, 5709, 163, 7],\n"," 130: [32892, 2142, 5736, 3273, 2903, 1624, 10, 31956, 4393, 1971],\n"," 131: [3173,\n"," 52456,\n"," 6301,\n"," 1135,\n"," 5611,\n"," 3984,\n"," 7566,\n"," 4899,\n"," 2140,\n"," 5265],\n"," 132: [8861, 1022, 47, 807, 5555, 4541, 1973, 685, 1288, 62803],\n"," 134: [7697, 3374, 3740, 48412, 2937, 2340, 7934, 4628, 743, 3868],\n"," 135: [3270, 59, 6428, 755, 3677, 933, 6839, 6437, 8485, 422],\n"," 136: [2553,\n"," 58655,\n"," 5221,\n"," 40955,\n"," 7817,\n"," 8228,\n"," 1833,\n"," 2473,\n"," 4583,\n"," 4696],\n"," 137: [38, 8991, 3177, 1306, 5541, 34153, 558, 4699, 55805, 4354],\n"," 138: [1340,\n"," 26578,\n"," 3189,\n"," 55872,\n"," 1010,\n"," 1604,\n"," 5971,\n"," 7036,\n"," 691,\n"," 1081],\n"," 139: [4998,\n"," 31445,\n"," 2246,\n"," 4900,\n"," 4306,\n"," 1924,\n"," 55292,\n"," 4585,\n"," 7201,\n"," 2961],\n"," 140: [151, 43904, 46, 712, 345, 159, 7068, 5559, 1246, 3238],\n"," 141: [58622, 2978, 2374, 5597, 2018, 4087, 6669, 7175, 473, 252],\n"," 142: [2701, 4310, 1744, 4432, 3831, 7707, 4504, 4224, 4749, 476],\n"," 143: [2098,\n"," 2119,\n"," 2751,\n"," 5225,\n"," 5987,\n"," 4741,\n"," 31804,\n"," 1662,\n"," 8815,\n"," 8369],\n"," 144: [6154,\n"," 56805,\n"," 7265,\n"," 3599,\n"," 2025,\n"," 291,\n"," 7314,\n"," 27727,\n"," 34319,\n"," 708],\n"," 145: [1930, 317, 168, 2300, 4564, 4636, 4242, 302, 348, 1073],\n"," 148: [923, 6764, 5058, 1722, 7219, 5136, 4223, 1344, 55094, 256],\n"," 149: [8492,\n"," 3847,\n"," 40870,\n"," 1482,\n"," 52722,\n"," 8376,\n"," 1345,\n"," 3701,\n"," 53921,\n"," 4012],\n"," 150: [52283, 5655, 8640, 8542, 5187, 1073, 471, 7577, 6188, 2589],\n"," 151: [7116,\n"," 45726,\n"," 2815,\n"," 1770,\n"," 31804,\n"," 1839,\n"," 8861,\n"," 54272,\n"," 4165,\n"," 4930],\n"," 152: [4447, 4380, 3034, 1836, 862, 5932, 7169, 8601, 550, 3187],\n"," 153: [6810, 1932, 2751, 5499, 6757, 6748, 8195, 3949, 8254, 4448],\n"," 154: [4266, 8016, 4605, 5300, 8609, 4477, 564, 2662, 483, 272],\n"," 155: [713, 1133, 3107, 3390, 6184, 5633, 3717, 2418, 7485, 4973],\n"," 156: [201, 3508, 5360, 6816, 3664, 5363, 51091, 215, 6867, 33826],\n"," 157: [2891,\n"," 4735,\n"," 27727,\n"," 2026,\n"," 3746,\n"," 7009,\n"," 7023,\n"," 3451,\n"," 6063,\n"," 5131],\n"," 158: [1330, 6768, 6212, 6750, 7566, 5689, 4304, 26269, 1412, 813],\n"," 159: [25927,\n"," 50802,\n"," 2439,\n"," 5443,\n"," 48516,\n"," 6203,\n"," 6813,\n"," 5569,\n"," 1681,\n"," 6038],\n"," 160: [4090,\n"," 5684,\n"," 1735,\n"," 2833,\n"," 3964,\n"," 2433,\n"," 7923,\n"," 39183,\n"," 2928,\n"," 54612],\n"," 161: [6311,\n"," 5446,\n"," 481,\n"," 51939,\n"," 4312,\n"," 30659,\n"," 2712,\n"," 2114,\n"," 3822,\n"," 5620],\n"," 162: [33145, 44731, 6957, 2538, 3894, 831, 2937, 1343, 6663, 827],\n"," 163: [26840,\n"," 2552,\n"," 33834,\n"," 45,\n"," 31420,\n"," 26318,\n"," 1783,\n"," 2603,\n"," 5941,\n"," 3755],\n"," 164: [3507, 5876, 1635, 5559, 1466, 2103, 3257, 6639, 2575, 2204],\n"," 165: [348, 8221, 2907, 7380, 1911, 7562, 2119, 3468, 3767, 8865],\n"," 166: [2727, 309, 3353, 2962, 7812, 3738, 6807, 2822, 3363, 6828],\n"," 167: [1668,\n"," 1890,\n"," 8239,\n"," 7255,\n"," 5065,\n"," 3358,\n"," 27340,\n"," 26203,\n"," 2017,\n"," 5220],\n"," 168: [4484, 3257, 1422, 129, 3619, 5122, 8734, 8667, 7352, 48877],\n"," 169: [54775,\n"," 56333,\n"," 1872,\n"," 8782,\n"," 47099,\n"," 5680,\n"," 2461,\n"," 31347,\n"," 2221,\n"," 1636],\n"," 170: [6791, 61361, 1450, 460, 38600, 4052, 2529, 6320, 606, 242],\n"," 171: [6335,\n"," 2898,\n"," 1346,\n"," 7713,\n"," 2885,\n"," 4485,\n"," 3010,\n"," 38798,\n"," 5585,\n"," 2189],\n"," 172: [3402, 3145, 2779, 1871, 54796, 8268, 5449, 1465, 794, 4117],\n"," 173: [33646,\n"," 1526,\n"," 31956,\n"," 4786,\n"," 53318,\n"," 4018,\n"," 5092,\n"," 26386,\n"," 3357,\n"," 5023],\n"," 174: [5164, 4203, 5938, 3242, 866, 4673, 4544, 3854, 39886, 5293],\n"," 175: [7840,\n"," 1975,\n"," 8501,\n"," 6226,\n"," 5094,\n"," 2345,\n"," 2545,\n"," 32294,\n"," 5347,\n"," 31114],\n"," 176: [1581, 1600, 7036, 2448, 1605, 4452, 2442, 7215, 1475, 179],\n"," 177: [48997, 2772, 3585, 5092, 1822, 477, 5450, 1616, 5122, 8941],\n"," 178: [1080, 6896, 2221, 724, 7264, 2450, 2419, 4256, 32325, 3831],\n"," 179: [6810, 4434, 8609, 2576, 934, 1069, 6201, 5874, 8937, 491],\n"," 180: [6448, 7227, 40946, 5363, 475, 1383, 1939, 8984, 4417, 2374],\n"," 182: [54286, 619, 4132, 5540, 277, 26148, 3939, 6374, 4503, 2073],\n"," 183: [8601, 1725, 6066, 2946, 3464, 5634, 2266, 2495, 1623, 4612],\n"," 184: [5564, 6379, 173, 36517, 585, 6013, 1125, 875, 6567, 868],\n"," 185: [43836,\n"," 6045,\n"," 27820,\n"," 4916,\n"," 38886,\n"," 8928,\n"," 6299,\n"," 34150,\n"," 48394,\n"," 42009],\n"," 186: [2953, 7237, 4158, 653, 7942, 2372, 2725, 262, 6896, 879],\n"," 187: [8912,\n"," 2694,\n"," 5121,\n"," 1114,\n"," 3272,\n"," 5131,\n"," 41585,\n"," 35836,\n"," 5782,\n"," 50354],\n"," 188: [2849, 7893, 6240, 3025, 6184, 860, 8010, 4059, 3510, 1076],\n"," 189: [1821, 1588, 4929, 6971, 1037, 7121, 2179, 1043, 7101, 7979],\n"," 190: [2243, 2146, 5829, 2739, 2989, 2432, 34148, 627, 3339, 2245],\n"," 191: [2240, 3498, 6763, 8207, 37545, 1020, 5999, 4231, 722, 1291],\n"," 192: [8978,\n"," 3824,\n"," 583,\n"," 3324,\n"," 4520,\n"," 36535,\n"," 5327,\n"," 2479,\n"," 7384,\n"," 32770],\n"," 193: [5637,\n"," 6419,\n"," 39444,\n"," 3083,\n"," 49957,\n"," 6323,\n"," 5268,\n"," 7879,\n"," 6554,\n"," 7101],\n"," 194: [51007,\n"," 6380,\n"," 4055,\n"," 8057,\n"," 3588,\n"," 7257,\n"," 2673,\n"," 1225,\n"," 7781,\n"," 1219],\n"," 195: [2026, 1126, 27850, 8923, 27618, 577, 6720, 355, 1954, 436],\n"," 196: [3851,\n"," 4674,\n"," 5184,\n"," 3959,\n"," 50804,\n"," 6057,\n"," 2565,\n"," 3239,\n"," 1384,\n"," 4486],\n"," 197: [59014,\n"," 36525,\n"," 1612,\n"," 2805,\n"," 6986,\n"," 4846,\n"," 7841,\n"," 5452,\n"," 2555,\n"," 3617],\n"," 198: [1881,\n"," 4280,\n"," 8661,\n"," 53972,\n"," 2686,\n"," 1341,\n"," 445,\n"," 6215,\n"," 4744,\n"," 26696],\n"," 199: [7216,\n"," 2184,\n"," 7086,\n"," 39183,\n"," 3049,\n"," 25995,\n"," 27834,\n"," 50005,\n"," 2820,\n"," 2457],\n"," 200: [6122, 52975, 1221, 6286, 3370, 186, 7982, 3789, 3861, 217],\n"," 201: [4988, 924, 4551, 5829, 178, 5692, 5652, 60522, 2746, 44004],\n"," 202: [34, 2912, 3390, 5453, 5105, 200, 4722, 30848, 1067, 8620],\n"," 203: [81, 7155, 4577, 7020, 7933, 232, 6780, 3469, 2808, 50798],\n"," 204: [37384, 692, 1273, 3489, 3752, 4855, 4979, 38038, 1121, 923],\n"," 205: [4126, 3391, 1566, 5309, 459, 1839, 34648, 2816, 6779, 4135],\n"," 206: [27611, 828, 2779, 55577, 84, 6166, 228, 715, 4466, 5493],\n"," 207: [1000, 1447, 7084, 552, 4628, 3263, 4347, 36531, 1459, 6232],\n"," 208: [8372, 8772, 3942, 3981, 266, 2402, 2785, 31270, 2076, 2735],\n"," 209: [4292, 7317, 3763, 4276, 2861, 4546, 7043, 423, 1105, 5469],\n"," 210: [1404, 786, 3246, 4509, 7410, 5117, 2734, 5506, 6078, 1459],\n"," 211: [562, 3968, 1875, 7381, 27851, 1254, 6852, 1192, 5685, 6760],\n"," 212: [3507,\n"," 1487,\n"," 56174,\n"," 27410,\n"," 34523,\n"," 6010,\n"," 262,\n"," 1488,\n"," 55267,\n"," 3897],\n"," 213: [44195,\n"," 6946,\n"," 8862,\n"," 5151,\n"," 5401,\n"," 1614,\n"," 4845,\n"," 6814,\n"," 1465,\n"," 3088],\n"," 214: [4878,\n"," 1735,\n"," 3459,\n"," 4466,\n"," 4205,\n"," 27563,\n"," 6624,\n"," 868,\n"," 39414,\n"," 5570],\n"," 215: [769,\n"," 8593,\n"," 7235,\n"," 4936,\n"," 6763,\n"," 53121,\n"," 6346,\n"," 8610,\n"," 50798,\n"," 4809],\n"," 216: [5523,\n"," 6899,\n"," 2664,\n"," 1573,\n"," 60766,\n"," 1299,\n"," 2010,\n"," 2879,\n"," 40574,\n"," 3680],\n"," 217: [4514,\n"," 33649,\n"," 1970,\n"," 3447,\n"," 6218,\n"," 6347,\n"," 1044,\n"," 54276,\n"," 44972,\n"," 6564],\n"," 218: [1919, 5522, 1041, 7364, 6467, 5690, 3975, 7154, 5056, 7940],\n"," 219: [4336, 5265, 3706, 5670, 8872, 27416, 2726, 6582, 158, 2241],\n"," 220: [7084, 1382, 5958, 5637, 906, 4105, 5903, 10, 8827, 2401],\n"," 221: [8447,\n"," 7308,\n"," 31116,\n"," 3964,\n"," 8128,\n"," 7560,\n"," 5969,\n"," 4005,\n"," 8838,\n"," 4326],\n"," 222: [3763, 3469, 8928, 2147, 243, 3932, 47778, 105, 1442, 4602],\n"," 223: [7915,\n"," 4276,\n"," 1258,\n"," 7326,\n"," 2020,\n"," 7369,\n"," 34162,\n"," 8138,\n"," 2672,\n"," 2971],\n"," 224: [7707, 6525, 1601, 8667, 8782, 1719, 1097, 1900, 4887, 6669],\n"," 225: [7579, 2669, 4333, 8138, 3320, 4917, 191, 5873, 767, 4510],\n"," 226: [3484,\n"," 49274,\n"," 1910,\n"," 1985,\n"," 7880,\n"," 4675,\n"," 6078,\n"," 4921,\n"," 1588,\n"," 3049],\n"," 227: [1876, 53464, 1591, 5360, 2828, 8676, 3036, 3510, 778, 994],\n"," 228: [6639, 3419, 3961, 554, 3598, 8188, 4357, 4634, 6595, 1614],\n"," 229: [8520, 55292, 259, 32387, 952, 3082, 3809, 929, 517, 2973],\n"," 230: [715, 7437, 512, 8201, 4745, 2823, 1100, 32587, 3584, 5388],\n"," 231: [5947, 1171, 8874, 6429, 934, 834, 26492, 6434, 47970, 3109],\n"," 232: [2841, 1967, 7360, 2359, 4334, 818, 8740, 26776, 6040, 3710],\n"," 234: [31590, 5662, 7485, 1399, 6731, 2291, 3208, 212, 7036, 6303],\n"," 235: [6807, 6352, 468, 2013, 7063, 1945, 3244, 5396, 2621, 8199],\n"," 236: [1592, 6779, 7815, 1693, 2328, 8865, 34583, 105, 3315, 1212],\n"," 237: [6868,\n"," 51937,\n"," 3158,\n"," 357,\n"," 40629,\n"," 5610,\n"," 4373,\n"," 4025,\n"," 5544,\n"," 55290],\n"," 238: [5531, 2996, 4300, 3095, 4465, 2443, 2119, 2338, 2162, 5390],\n"," 239: [6413, 6573, 3440, 2841, 1328, 2454, 3862, 2411, 3074, 4043],\n"," 241: [1993, 4231, 3370, 4713, 46948, 230, 49649, 4205, 1436, 958],\n"," 242: [6016, 8808, 3265, 8951, 3705, 2716, 341, 1862, 8157, 5177],\n"," 243: [3514, 2143, 3912, 101, 8042, 4518, 7834, 3795, 4036, 4642],\n"," 244: [1748, 37853, 6367, 6950, 8764, 3686, 879, 1353, 1993, 8093],\n"," 245: [7444,\n"," 3874,\n"," 5471,\n"," 27410,\n"," 2459,\n"," 45431,\n"," 7892,\n"," 266,\n"," 4616,\n"," 3155],\n"," 246: [55292, 7708, 6332, 5236, 58299, 1694, 4527, 8798, 1760, 43],\n"," 247: [324,\n"," 4296,\n"," 34538,\n"," 60522,\n"," 58306,\n"," 5696,\n"," 5918,\n"," 1068,\n"," 2763,\n"," 3846],\n"," 248: [3669,\n"," 1161,\n"," 3844,\n"," 331,\n"," 8199,\n"," 45726,\n"," 26686,\n"," 5337,\n"," 6626,\n"," 54780],\n"," 249: [5780,\n"," 6122,\n"," 34336,\n"," 2126,\n"," 31221,\n"," 8779,\n"," 5874,\n"," 4462,\n"," 1835,\n"," 373],\n"," 250: [2208, 7748, 8808, 8974, 3276, 1495, 4872, 2196, 4041, 7898],\n"," 251: [2876, 233, 4941, 3343, 7166, 60753, 6270, 659, 144, 4495],\n"," 252: [4633, 3061, 579, 4345, 1288, 8809, 2959, 51903, 8405, 5331],\n"," 253: [2639,\n"," 7003,\n"," 4308,\n"," 6591,\n"," 6576,\n"," 32025,\n"," 33166,\n"," 3398,\n"," 1083,\n"," 1926],\n"," 254: [4669, 45, 3135, 2505, 7891, 5960, 23, 47970, 267, 3055],\n"," 255: [1865, 2184, 2009, 1623, 1799, 3208, 5283, 5172, 3249, 2781],\n"," 256: [1593,\n"," 2501,\n"," 2114,\n"," 1353,\n"," 27266,\n"," 8254,\n"," 3879,\n"," 48780,\n"," 935,\n"," 3426],\n"," 257: [1323,\n"," 606,\n"," 26974,\n"," 4130,\n"," 732,\n"," 54999,\n"," 38992,\n"," 6303,\n"," 41569,\n"," 5139],\n"," 258: [2813,\n"," 5247,\n"," 30812,\n"," 1061,\n"," 5499,\n"," 31086,\n"," 5226,\n"," 5081,\n"," 60647,\n"," 36525],\n"," 259: [2708,\n"," 4605,\n"," 2736,\n"," 510,\n"," 7061,\n"," 6243,\n"," 4173,\n"," 31424,\n"," 44004,\n"," 7587],\n"," 260: [33639,\n"," 5974,\n"," 58078,\n"," 1134,\n"," 1355,\n"," 6620,\n"," 1035,\n"," 1713,\n"," 4754,\n"," 3179],\n"," 261: [870, 50601, 1263, 287, 27660, 8045, 3261, 7489, 1860, 3006],\n"," 262: [43936,\n"," 47202,\n"," 5936,\n"," 1099,\n"," 33838,\n"," 4109,\n"," 47830,\n"," 384,\n"," 2842,\n"," 52328],\n"," 263: [6510,\n"," 4898,\n"," 1733,\n"," 2038,\n"," 5298,\n"," 33615,\n"," 42730,\n"," 2665,\n"," 2381,\n"," 2965],\n"," 264: [778, 6478, 2924, 694, 6723, 42002, 1286, 7060, 8587, 60647],\n"," 265: [1221,\n"," 26303,\n"," 4570,\n"," 36537,\n"," 4999,\n"," 2560,\n"," 6265,\n"," 1619,\n"," 2459,\n"," 1136],\n"," 266: [2075,\n"," 5279,\n"," 63113,\n"," 48043,\n"," 4835,\n"," 5247,\n"," 7164,\n"," 6466,\n"," 2194,\n"," 4578],\n"," 267: [1392,\n"," 3133,\n"," 3898,\n"," 2276,\n"," 46850,\n"," 40412,\n"," 6409,\n"," 5712,\n"," 56885,\n"," 1454],\n"," 268: [6327,\n"," 1249,\n"," 55830,\n"," 2927,\n"," 2644,\n"," 27808,\n"," 36708,\n"," 4900,\n"," 2841,\n"," 6212],\n"," 269: [7419,\n"," 51080,\n"," 5305,\n"," 1324,\n"," 27815,\n"," 3179,\n"," 4415,\n"," 34648,\n"," 34072,\n"," 26425],\n"," 270: [4899, 1538, 5777, 6794, 563, 4973, 2038, 2100, 2987, 3774],\n"," 271: [4388, 7895, 1921, 2956, 3923, 1449, 5010, 5214, 4273, 1671],\n"," 272: [906, 5387, 1788, 32029, 68, 31035, 4432, 25963, 2134, 1299],\n"," 273: [792,\n"," 7096,\n"," 40962,\n"," 2183,\n"," 6896,\n"," 1686,\n"," 3511,\n"," 44729,\n"," 2890,\n"," 8753],\n"," 274: [34532, 2633, 2037, 5387, 2862, 2808, 959, 618, 7789, 6452],\n"," 275: [6062, 3480, 3361, 1554, 7361, 3256, 3357, 8614, 7095, 361],\n"," 276: [6170,\n"," 6155,\n"," 27816,\n"," 6896,\n"," 6461,\n"," 5733,\n"," 4237,\n"," 3626,\n"," 5506,\n"," 1010],\n"," 277: [49772, 7292, 5189, 3418, 3846, 256, 1471, 2430, 279, 3945],\n"," 278: [2679,\n"," 3833,\n"," 26491,\n"," 2572,\n"," 6947,\n"," 46347,\n"," 27826,\n"," 2456,\n"," 2944,\n"," 320],\n"," 279: [742, 5014, 38061, 4511, 391, 4574, 7325, 113, 33880, 4284],\n"," 280: [4927,\n"," 3676,\n"," 1101,\n"," 27660,\n"," 6973,\n"," 27803,\n"," 40412,\n"," 4143,\n"," 4389,\n"," 8919],\n"," 281: [39427,\n"," 6614,\n"," 5110,\n"," 8501,\n"," 2739,\n"," 2398,\n"," 2952,\n"," 2700,\n"," 6331,\n"," 8661],\n"," 282: [7226,\n"," 7030,\n"," 58105,\n"," 1441,\n"," 5076,\n"," 7020,\n"," 27816,\n"," 3753,\n"," 3255,\n"," 6349],\n"," 285: [100, 7980, 484, 5743, 2313, 8870, 3658, 158, 5955, 8865],\n"," 286: [1556, 27266, 258, 5969, 7560, 59014, 1938, 3614, 310, 1793],\n"," 287: [6732, 5404, 971, 1643, 1693, 7742, 795, 2008, 8779, 4398],\n"," 288: [4640, 7263, 262, 5086, 577, 2266, 4240, 3243, 51077, 43556],\n"," 289: [5239, 5522, 6424, 4619, 4661, 5808, 8604, 5582, 2062, 2837],\n"," 290: [5400,\n"," 8849,\n"," 5602,\n"," 431,\n"," 4238,\n"," 33585,\n"," 48262,\n"," 1959,\n"," 5568,\n"," 5003],\n"," 291: [8477,\n"," 1822,\n"," 4216,\n"," 31584,\n"," 6060,\n"," 3992,\n"," 6874,\n"," 29,\n"," 60753,\n"," 56274],\n"," 292: [5903, 2179, 2337, 7720, 7395, 5323, 3553, 32632, 1670, 58],\n"," 293: [1670,\n"," 1085,\n"," 5729,\n"," 3045,\n"," 606,\n"," 2439,\n"," 33817,\n"," 44195,\n"," 7155,\n"," 3225],\n"," 294: [5504,\n"," 2310,\n"," 4366,\n"," 62394,\n"," 25938,\n"," 207,\n"," 1619,\n"," 4038,\n"," 2599,\n"," 3806],\n"," 295: [6, 32591, 2036, 4119, 49274, 28, 988, 4772, 4753, 1876],\n"," 296: [1804, 7345, 6614, 7156, 4036, 8947, 4939, 1972, 5100, 1620],\n"," 297: [4945, 3211, 6678, 4210, 2006, 4144, 3449, 48678, 1110, 550],\n"," 298: [8718, 4238, 328, 245, 6185, 5489, 31270, 2196, 4056, 500],\n"," 300: [33781,\n"," 3849,\n"," 6668,\n"," 2117,\n"," 5812,\n"," 7832,\n"," 8610,\n"," 3665,\n"," 7139,\n"," 4958],\n"," 301: [5223, 2961, 6743, 2885, 2580, 2987, 2468, 369, 5729, 531],\n"," 302: [594,\n"," 48678,\n"," 6970,\n"," 2849,\n"," 1918,\n"," 7986,\n"," 39398,\n"," 1337,\n"," 6813,\n"," 1243],\n"," 303: [1393, 3700, 5311, 4494, 3032, 3736, 7126, 5883, 7811, 471],\n"," 304: [34048, 4246, 555, 483, 4040, 5142, 5747, 3473, 1223, 4406],\n"," 305: [2875, 233, 8045, 5962, 6951, 1703, 6914, 2302, 3013, 207],\n"," 306: [649, 2823, 5080, 8491, 1797, 2617, 6031, 3689, 6687, 53519],\n"," 307: [6807, 2055, 3549, 2422, 4465, 3690, 4812, 3814, 4247, 4540],\n"," 308: [7002,\n"," 48520,\n"," 1471,\n"," 4737,\n"," 2927,\n"," 2335,\n"," 2323,\n"," 5352,\n"," 8712,\n"," 6811],\n"," 309: [287,\n"," 3072,\n"," 1954,\n"," 54276,\n"," 59985,\n"," 4721,\n"," 2560,\n"," 3086,\n"," 8241,\n"," 3653],\n"," 310: [917, 6281, 868, 7340, 32598, 475, 4870, 7222, 2733, 55274],\n"," 311: [3903,\n"," 415,\n"," 37857,\n"," 4207,\n"," 27912,\n"," 5244,\n"," 7811,\n"," 6203,\n"," 6023,\n"," 8595],\n"," 312: [4834, 3461, 53972, 5316, 177, 2074, 6102, 1083, 479, 4696],\n"," 313: [1734, 6053, 3466, 2505, 1554, 1213, 7044, 3083, 965, 6193],\n"," 314: [1535, 3863, 3108, 1077, 2076, 269, 30810, 7209, 6918, 267],\n"," 315: [763, 3129, 3401, 2559, 2461, 4584, 26269, 2779, 1477, 312],\n"," 316: [1981,\n"," 26178,\n"," 7649,\n"," 32632,\n"," 4273,\n"," 2586,\n"," 5099,\n"," 5617,\n"," 1755,\n"," 5945],\n"," 317: [3876,\n"," 7168,\n"," 59985,\n"," 2308,\n"," 7569,\n"," 2872,\n"," 540,\n"," 1363,\n"," 46967,\n"," 4281],\n"," 318: [3918, 4444, 3040, 3301, 4010, 2611, 3030, 4210, 4926, 5472],\n"," 319: [3024, 6986, 7981, 32584, 6564, 6206, 5737, 84, 4155, 55765],\n"," 320: [8601,\n"," 8907,\n"," 25771,\n"," 4030,\n"," 5876,\n"," 47997,\n"," 6480,\n"," 6667,\n"," 7002,\n"," 2179],\n"," 321: [4994,\n"," 980,\n"," 7320,\n"," 2448,\n"," 50442,\n"," 2863,\n"," 37729,\n"," 2717,\n"," 55830,\n"," 31433],\n"," 322: [5106, 2066, 2845, 5119, 4297, 6770, 8827, 501, 1275, 6533],\n"," 323: [5516, 5364, 3728, 5610, 997, 3525, 3712, 2647, 1044, 6729],\n"," 324: [4598, 33681, 8955, 6624, 5610, 7013, 4404, 6237, 842, 674],\n"," 325: [5327,\n"," 1604,\n"," 2630,\n"," 992,\n"," 1804,\n"," 2334,\n"," 35836,\n"," 4205,\n"," 36525,\n"," 7116],\n"," 326: [5706,\n"," 26138,\n"," 2088,\n"," 1504,\n"," 3325,\n"," 1242,\n"," 25995,\n"," 6221,\n"," 6440,\n"," 1412],\n"," 327: [7247, 243, 1477, 2116, 3037, 3323, 5820, 2494, 3071, 6902],\n"," 328: [801, 31049, 3684, 595, 1805, 31, 1707, 2378, 27826, 3102],\n"," 329: [3156, 2789, 330, 3055, 2135, 350, 165, 3491, 7075, 2373],\n"," 330: [799, 2946, 1645, 42009, 4961, 4723, 140, 161, 1414, 3210],\n"," 331: [4372, 2823, 1866, 320, 671, 3447, 5081, 849, 7478, 2590],\n"," 332: [935, 532, 26729, 26269, 4079, 6914, 2231, 7915, 6800, 5275],\n"," 333: [5151,\n"," 5485,\n"," 6828,\n"," 252,\n"," 56941,\n"," 57910,\n"," 3774,\n"," 1606,\n"," 32584,\n"," 870],\n"," 334: [58347,\n"," 49274,\n"," 7301,\n"," 56915,\n"," 7175,\n"," 2439,\n"," 1909,\n"," 7368,\n"," 219,\n"," 5869],\n"," 335: [4847, 2354, 32116, 7010, 7073, 1413, 459, 5009, 6811, 6707],\n"," 336: [246, 1816, 1951, 7311, 5054, 31903, 5495, 1826, 3671, 5763],\n"," 337: [3299, 173, 2592, 3526, 1288, 4149, 26116, 5883, 6689, 3862],\n"," 338: [5215,\n"," 55290,\n"," 2887,\n"," 8057,\n"," 1363,\n"," 2022,\n"," 33358,\n"," 52694,\n"," 3103,\n"," 4238],\n"," 339: [5388, 1171, 2792, 1440, 2273, 799, 7584, 7365, 3941, 2520],\n"," 340: [4018, 6118, 4974, 1556, 534, 5957, 3814, 4321, 468, 497],\n"," 341: [4998, 310, 6542, 6666, 2839, 3903, 25805, 5327, 7166, 2038],\n"," 342: [656, 44195, 3174, 2310, 55080, 410, 3182, 371, 1266, 755],\n"," 343: [5968, 1081, 7171, 4249, 5601, 4428, 6041, 1565, 705, 921],\n"," 344: [4735, 829, 506, 8482, 58347, 4808, 4533, 5385, 1930, 1907],\n"," 345: [1785, 4618, 5296, 53466, 710, 3813, 31184, 846, 839, 3167],\n"," 346: [2836,\n"," 2095,\n"," 1058,\n"," 8933,\n"," 5213,\n"," 5477,\n"," 3454,\n"," 27584,\n"," 2303,\n"," 4737],\n"," 347: [6387,\n"," 4989,\n"," 5970,\n"," 4821,\n"," 3998,\n"," 3483,\n"," 1391,\n"," 2186,\n"," 2989,\n"," 26776],\n"," 348: [2152, 1454, 5692, 850, 4377, 2340, 6959, 6812, 38388, 1154],\n"," 349: [2539, 4951, 2653, 1932, 1981, 2256, 5493, 2249, 3489, 4249],\n"," 350: [99, 5608, 3301, 45081, 5541, 5457, 957, 5516, 909, 4558],\n"," 351: [3534,\n"," 6886,\n"," 2130,\n"," 2784,\n"," 34143,\n"," 7924,\n"," 3487,\n"," 3313,\n"," 50068,\n"," 1318],\n"," 352: [4572,\n"," 4208,\n"," 7118,\n"," 8275,\n"," 34155,\n"," 27882,\n"," 4734,\n"," 1355,\n"," 4274,\n"," 1104],\n"," 353: [5503, 3040, 501, 2651, 6279, 3089, 5039, 55814, 6975, 838],\n"," 354: [3409,\n"," 27821,\n"," 4890,\n"," 49824,\n"," 7156,\n"," 1752,\n"," 4558,\n"," 8371,\n"," 4896,\n"," 220],\n"," 355: [7035, 4969, 3453, 481, 5741, 6893, 836, 4497, 4200, 4377],\n"," 356: [44555,\n"," 6155,\n"," 5015,\n"," 54290,\n"," 58334,\n"," 1382,\n"," 30898,\n"," 7070,\n"," 4624,\n"," 2702],\n"," 357: [61262,\n"," 2862,\n"," 7981,\n"," 3500,\n"," 1950,\n"," 5477,\n"," 6539,\n"," 5446,\n"," 1317,\n"," 6887],\n"," 358: [34072,\n"," 5454,\n"," 4432,\n"," 3287,\n"," 45440,\n"," 4021,\n"," 5580,\n"," 4881,\n"," 351,\n"," 5633],\n"," 359: [7090, 4229, 246, 5610, 7371, 3092, 1271, 2373, 3208, 60649],\n"," 360: [383, 8622, 27721, 4511, 8201, 606, 945, 3207, 2097, 8485],\n"," 361: [3018, 26386, 27592, 1533, 229, 2116, 23, 6873, 1480, 47644],\n"," 362: [8833, 4268, 4409, 3874, 5966, 7817, 2177, 4054, 6899, 1861],\n"," 363: [1162,\n"," 52694,\n"," 5058,\n"," 7561,\n"," 383,\n"," 1040,\n"," 7013,\n"," 27722,\n"," 272,\n"," 26144],\n"," 364: [3756,\n"," 6038,\n"," 6934,\n"," 383,\n"," 31431,\n"," 3537,\n"," 6442,\n"," 27826,\n"," 8861,\n"," 2082],\n"," 365: [2941, 5462, 420, 47423, 45928, 4432, 5339, 3784, 12, 553],\n"," 366: [3494,\n"," 3436,\n"," 51903,\n"," 1911,\n"," 7460,\n"," 1598,\n"," 2110,\n"," 3090,\n"," 4061,\n"," 3108],\n"," 367: [1449,\n"," 2816,\n"," 2083,\n"," 3967,\n"," 3658,\n"," 6722,\n"," 6615,\n"," 5692,\n"," 7899,\n"," 59387],\n"," 368: [2236, 7704, 1884, 506, 4531, 2131, 1546, 4218, 1739, 1840],\n"," 369: [2379,\n"," 340,\n"," 5415,\n"," 4815,\n"," 49932,\n"," 58998,\n"," 4701,\n"," 5118,\n"," 3006,\n"," 2230],\n"," 370: [56171,\n"," 3241,\n"," 498,\n"," 4493,\n"," 34170,\n"," 43917,\n"," 5427,\n"," 4583,\n"," 662,\n"," 2069],\n"," 371: [1300, 2643, 26870, 5388, 5321, 308, 759, 506, 7153, 4022],\n"," 372: [1149,\n"," 2081,\n"," 31485,\n"," 6646,\n"," 27816,\n"," 44849,\n"," 4713,\n"," 44399,\n"," 8919,\n"," 566],\n"," 373: [6218, 2017, 3299, 3102, 3733, 501, 1326, 841, 538, 406],\n"," 375: [8910, 2284, 370, 3032, 1046, 2182, 1686, 1598, 3620, 5480],\n"," 376: [1870, 5347, 1580, 27838, 10, 6242, 1987, 6573, 3430, 2470],\n"," 377: [1866, 2616, 2322, 6569, 6573, 7226, 44828, 2875, 148, 1067],\n"," 378: [1298, 1022, 3098, 40851, 2572, 5107, 379, 41527, 370, 943],\n"," 379: [4611,\n"," 37853,\n"," 1432,\n"," 61160,\n"," 2977,\n"," 2498,\n"," 4834,\n"," 5675,\n"," 3053,\n"," 56775],\n"," 380: [5540,\n"," 7161,\n"," 25774,\n"," 31433,\n"," 7150,\n"," 26198,\n"," 532,\n"," 4199,\n"," 2622,\n"," 1387],\n"," 381: [6335,\n"," 8530,\n"," 3245,\n"," 51575,\n"," 50354,\n"," 5975,\n"," 5034,\n"," 4411,\n"," 4888,\n"," 1269],\n"," 382: [1232, 367, 1432, 6098, 37384, 5781, 4052, 2728, 4206, 38],\n"," 383: [4792, 5107, 2785, 3982, 8260, 8208, 715, 1910, 7107, 2383],\n"," 384: [6066,\n"," 41573,\n"," 25927,\n"," 5989,\n"," 94,\n"," 50162,\n"," 1345,\n"," 6852,\n"," 6772,\n"," 7698],\n"," 385: [6371,\n"," 2515,\n"," 1441,\n"," 4424,\n"," 4189,\n"," 7481,\n"," 1227,\n"," 6180,\n"," 43871,\n"," 2665],\n"," 386: [4104, 8932, 2402, 7001, 1872, 4174, 4207, 4338, 1071, 1945],\n"," 387: [1896, 2146, 2348, 1777, 391, 148, 5215, 3486, 42011, 27391],\n"," 388: [3783, 1084, 499, 2704, 831, 3040, 2342, 671, 54997, 1587],\n"," 389: [198, 2012, 1417, 4695, 2022, 7842, 6044, 3889, 754, 5723],\n"," 390: [2458, 7936, 6839, 7845, 610, 295, 44729, 2671, 2950, 6540],\n"," 391: [8228, 3604, 2519, 6335, 3996, 6259, 5028, 5662, 2795, 802],\n"," 392: [438, 8644, 3581, 2605, 50804, 62000, 3105, 5164, 6993, 564],\n"," 393: [4846,\n"," 4727,\n"," 1801,\n"," 4252,\n"," 1448,\n"," 6482,\n"," 26614,\n"," 1290,\n"," 6534,\n"," 6796],\n"," 394: [4293,\n"," 56251,\n"," 5560,\n"," 2341,\n"," 5339,\n"," 55805,\n"," 59784,\n"," 2129,\n"," 4199,\n"," 5388],\n"," 395: [8016,\n"," 6609,\n"," 1088,\n"," 4634,\n"," 26171,\n"," 44555,\n"," 4941,\n"," 3710,\n"," 3694,\n"," 6963],\n"," 396: [5971, 6711, 3726, 3053, 4995, 3892, 7131, 3592, 6974, 2197],\n"," 397: [37733,\n"," 8974,\n"," 6729,\n"," 27831,\n"," 47952,\n"," 4842,\n"," 27815,\n"," 7934,\n"," 4293,\n"," 1673],\n"," 398: [6429, 290, 2786, 327, 6460, 7364, 6122, 6935, 4569, 1113],\n"," 399: [7311, 393, 3189, 3196, 7160, 4692, 45672, 1377, 3089, 1593],\n"," 400: [6723,\n"," 5527,\n"," 8337,\n"," 1079,\n"," 3043,\n"," 42197,\n"," 2531,\n"," 1291,\n"," 7562,\n"," 8968],\n"," 401: [378,\n"," 49396,\n"," 3596,\n"," 3693,\n"," 1917,\n"," 2370,\n"," 3775,\n"," 8157,\n"," 2944,\n"," 58803],\n"," 402: [7828, 4281, 2463, 2394, 3309, 2298, 3203, 3756, 806, 2925],\n"," 403: [43919,\n"," 6714,\n"," 6577,\n"," 6235,\n"," 1269,\n"," 1965,\n"," 8201,\n"," 4721,\n"," 3510,\n"," 4890],\n"," 404: [4047, 2050, 56788, 3903, 39231, 5820, 4331, 8746, 616, 917],\n"," 405: [4777, 7636, 354, 6680, 1948, 2357, 8341, 930, 1280, 1027],\n"," 406: [5560,\n"," 6513,\n"," 1999,\n"," 51709,\n"," 4242,\n"," 1732,\n"," 25850,\n"," 1831,\n"," 4062,\n"," 5494],\n"," 407: [7340, 3452, 8228, 5300, 2195, 6617, 3581, 4711, 4166, 6192],\n"," 408: [791,\n"," 6195,\n"," 31658,\n"," 52241,\n"," 4658,\n"," 5840,\n"," 6352,\n"," 8623,\n"," 6220,\n"," 4495],\n"," 409: [3405,\n"," 25856,\n"," 5816,\n"," 3547,\n"," 426,\n"," 7396,\n"," 6663,\n"," 3327,\n"," 30825,\n"," 1839],\n"," 410: [3142, 164, 1602, 45517, 3507, 5957, 447, 7460, 1275, 36529],\n"," 411: [54796,\n"," 1145,\n"," 3585,\n"," 317,\n"," 3681,\n"," 1132,\n"," 47778,\n"," 4273,\n"," 3475,\n"," 5734],\n"," 412: [31347,\n"," 2340,\n"," 6192,\n"," 6780,\n"," 7314,\n"," 7371,\n"," 2208,\n"," 1071,\n"," 2013,\n"," 7114],\n"," 413: [3141,\n"," 26492,\n"," 1974,\n"," 40826,\n"," 208,\n"," 44937,\n"," 5646,\n"," 7820,\n"," 1464,\n"," 5068],\n"," 414: [54771,\n"," 3869,\n"," 4686,\n"," 3049,\n"," 6744,\n"," 1688,\n"," 7701,\n"," 1087,\n"," 3989,\n"," 1589],\n"," 415: [8377,\n"," 2330,\n"," 32031,\n"," 5011,\n"," 1816,\n"," 1173,\n"," 2069,\n"," 8810,\n"," 6611,\n"," 2834],\n"," 416: [6896, 2190, 609, 31770, 5481, 5890, 3045, 3241, 5219, 7449],\n"," 417: [2109, 8376, 34520, 5367, 2966, 955, 2237, 7926, 8377, 3454],\n"," 418: [5941, 3274, 4321, 2249, 713, 3698, 1078, 7121, 60397, 4129],\n"," 419: [4010, 55257, 7034, 2214, 944, 2587, 2196, 7151, 4866, 2523],\n"," 420: [5721, 649, 3367, 6367, 4669, 282, 5458, 47200, 1255, 417],\n"," 421: [886, 2673, 4743, 2549, 2314, 32149, 46572, 1171, 4809, 459],\n"," 422: [1274, 59900, 3159, 3138, 801, 4252, 5389, 2978, 4279, 2568],\n"," 424: [7759, 443, 4903, 8905, 7458, 1631, 328, 2762, 6132, 187],\n"," 425: [7206,\n"," 6392,\n"," 5803,\n"," 2025,\n"," 225,\n"," 40581,\n"," 2875,\n"," 40614,\n"," 2066,\n"," 5346],\n"," 426: [487, 695, 48412, 4024, 3884, 6332, 835, 39715, 2361, 6296],\n"," 427: [3311,\n"," 6104,\n"," 8477,\n"," 48877,\n"," 742,\n"," 2267,\n"," 33679,\n"," 5357,\n"," 57536,\n"," 1919],\n"," 428: [4713, 7757, 2816, 2557, 8199, 1647, 2732, 1285, 2790, 4840],\n"," 429: [7698,\n"," 34323,\n"," 437,\n"," 60286,\n"," 3701,\n"," 30793,\n"," 3921,\n"," 4197,\n"," 1910,\n"," 209],\n"," 430: [281, 57538, 240, 6969, 132, 1518, 3830, 4511, 8712, 932],\n"," 431: [4345,\n"," 3846,\n"," 3230,\n"," 1884,\n"," 4167,\n"," 4291,\n"," 8644,\n"," 5529,\n"," 42004,\n"," 4555],\n"," 432: [2968,\n"," 34538,\n"," 2322,\n"," 1734,\n"," 4444,\n"," 3996,\n"," 5663,\n"," 6480,\n"," 27831,\n"," 6188],\n"," 433: [850,\n"," 2388,\n"," 45668,\n"," 1377,\n"," 2043,\n"," 1346,\n"," 30846,\n"," 3017,\n"," 6378,\n"," 31685],\n"," 434: [4216,\n"," 1711,\n"," 1626,\n"," 7757,\n"," 43871,\n"," 540,\n"," 45950,\n"," 4932,\n"," 2113,\n"," 5255],\n"," 435: [707, 3105, 2468, 3923, 27816, 1829, 2690, 1964, 1501, 3219],\n"," 436: [7924,\n"," 3777,\n"," 2404,\n"," 4386,\n"," 3690,\n"," 52694,\n"," 7222,\n"," 60037,\n"," 1471,\n"," 58299],\n"," 437: [367, 7212, 2640, 5309, 46335, 7771, 2398, 6975, 8617, 6879],\n"," 438: [5351, 3585, 4242, 2215, 960, 540, 56788, 3645, 2093, 43923],\n"," 439: [50794, 442, 1928, 8880, 5635, 7323, 3689, 2069, 678, 4165],\n"," 440: [6461, 7079, 7757, 2279, 3950, 90, 2383, 186, 1797, 5419],\n"," 441: [37384,\n"," 5913,\n"," 618,\n"," 1918,\n"," 635,\n"," 7156,\n"," 5613,\n"," 26939,\n"," 5986,\n"," 50440],\n"," 443: [42217, 53318, 33896, 843, 6441, 967, 585, 3774, 4305, 538],\n"," 444: [3196,\n"," 2416,\n"," 4696,\n"," 4312,\n"," 4683,\n"," 27020,\n"," 32019,\n"," 5679,\n"," 4371,\n"," 5140],\n"," 445: [2500, 2090, 5496, 6016, 8327, 3606, 6988, 3031, 6893, 4736],\n"," 446: [5072, 5086, 33669, 3232, 53121, 1755, 3853, 3439, 121, 495],\n"," 447: [838, 6780, 2297, 6936, 1366, 5516, 6352, 568, 2511, 3259],\n"," 448: [7366,\n"," 44759,\n"," 48774,\n"," 1726,\n"," 918,\n"," 52458,\n"," 6636,\n"," 4552,\n"," 4677,\n"," 1172],\n"," 449: [6899, 5829, 5450, 1931, 487, 58655, 252, 5636, 4053, 2240],\n"," 450: [3252, 2975, 4616, 615, 61262, 800, 3115, 2842, 3448, 6387],\n"," 451: [1, 213, 3962, 5151, 3754, 2562, 2241, 5411, 3081, 31],\n"," 452: [234,\n"," 5690,\n"," 5213,\n"," 2480,\n"," 6849,\n"," 6806,\n"," 51086,\n"," 4291,\n"," 56775,\n"," 3307],\n"," 453: [3535, 32721, 2836, 5095, 118, 3011, 217, 2272, 2721, 45517],\n"," 454: [7438, 26163, 1722, 5255, 1456, 8779, 2881, 7844, 58381, 87],\n"," 455: [2693,\n"," 1297,\n"," 26745,\n"," 4254,\n"," 58492,\n"," 3109,\n"," 876,\n"," 6163,\n"," 1340,\n"," 5428],\n"," 456: [2238, 3578, 59141, 429, 718, 4775, 4881, 2414, 59, 577],\n"," 458: [4857, 4605, 5841, 7115, 2417, 1279, 2579, 5460, 2677, 1293],\n"," 459: [4129, 5859, 1688, 7162, 58418, 172, 3459, 1999, 3267, 4662],\n"," 460: [5770, 826, 1092, 4745, 2324, 2845, 3769, 5294, 3387, 2250],\n"," 461: [6259, 7086, 6345, 6104, 2171, 667, 8183, 5853, 4637, 1767],\n"," 462: [2847, 5797, 1397, 5321, 1670, 544, 2924, 49957, 1273, 533],\n"," 463: [2244, 8698, 7014, 4521, 1390, 6288, 1460, 3780, 1366, 3423],\n"," 464: [1255, 4714, 3677, 1649, 366, 5068, 3274, 1500, 187, 26386],\n"," 465: [31429,\n"," 2590,\n"," 2312,\n"," 5100,\n"," 4388,\n"," 5231,\n"," 2919,\n"," 2273,\n"," 7264,\n"," 6229],\n"," 466: [4670, 865, 910, 5072, 57640, 4564, 31804, 2383, 8368, 4520],\n"," 467: [52694, 2371, 2528, 5666, 36, 8984, 4066, 2798, 1624, 4543],\n"," 468: [1183,\n"," 5049,\n"," 3491,\n"," 999,\n"," 51709,\n"," 4232,\n"," 5457,\n"," 7250,\n"," 5047,\n"," 40966],\n"," 469: [5962,\n"," 2173,\n"," 4395,\n"," 45635,\n"," 1053,\n"," 48416,\n"," 1747,\n"," 4625,\n"," 1956,\n"," 27773],\n"," 470: [2863, 4885, 2142, 2065, 7086, 195, 6214, 1476, 5741, 3036],\n"," 471: [8610, 7986, 2521, 412, 5307, 8961, 4310, 1198, 3695, 4163],\n"," 472: [4603,\n"," 2413,\n"," 8910,\n"," 3663,\n"," 7616,\n"," 6039,\n"," 4241,\n"," 43869,\n"," 3951,\n"," 8609],\n"," 473: [265, 1341, 307, 4290, 2677, 5378, 3499, 4573, 4782, 2262],\n"," 474: [42004,\n"," 31584,\n"," 2871,\n"," 2443,\n"," 555,\n"," 7489,\n"," 1374,\n"," 1264,\n"," 1928,\n"," 7045],\n"," 475: [3243,\n"," 8376,\n"," 2891,\n"," 3533,\n"," 3897,\n"," 58975,\n"," 36401,\n"," 2529,\n"," 8208,\n"," 6257],\n"," 476: [4213, 2608, 1711, 2747, 2245, 7619, 3738, 2065, 2558, 2168],\n"," 477: [4464, 5584, 1116, 1715, 2562, 6975, 2276, 3419, 4534, 2436],\n"," 478: [3959, 8796, 2417, 640, 5073, 55, 1013, 5673, 7345, 7362],\n"," 479: [875, 2172, 8228, 2042, 7386, 1258, 526, 4407, 6883, 3985],\n"," 480: [3274,\n"," 4401,\n"," 5958,\n"," 3683,\n"," 2741,\n"," 8261,\n"," 2428,\n"," 4676,\n"," 2198,\n"," 51077],\n"," 481: [6800,\n"," 52668,\n"," 54,\n"," 55257,\n"," 8796,\n"," 48783,\n"," 7111,\n"," 1940,\n"," 56174,\n"," 6107],\n"," 482: [5915,\n"," 5638,\n"," 5896,\n"," 2929,\n"," 5739,\n"," 1583,\n"," 43558,\n"," 532,\n"," 52885,\n"," 4986],\n"," 483: [3250, 2473, 6017, 8526, 34153, 6718, 27905, 6428, 4692, 59],\n"," 484: [6927, 42, 8501, 32596, 1273, 4217, 5498, 1920, 8859, 5597],\n"," 485: [2024,\n"," 40962,\n"," 8937,\n"," 2389,\n"," 4297,\n"," 36529,\n"," 3697,\n"," 3060,\n"," 57368,\n"," 4635],\n"," 486: [2722, 7139, 2655, 2239, 27722, 665, 710, 4448, 4956, 7107],\n"," 487: [1428, 2759, 2272, 29, 3919, 4246, 31032, 4677, 1399, 619],\n"," 488: [3264, 549, 2724, 3765, 55052, 3881, 2667, 4585, 7101, 3755],\n"," 489: [3766,\n"," 49130,\n"," 5517,\n"," 3296,\n"," 3975,\n"," 3812,\n"," 3705,\n"," 46850,\n"," 7847,\n"," 1496],\n"," 490: [6288, 5282, 4011, 2524, 329, 49220, 44161, 397, 1342, 1976],\n"," 491: [4802,\n"," 2271,\n"," 599,\n"," 36529,\n"," 1748,\n"," 2314,\n"," 3808,\n"," 3593,\n"," 26131,\n"," 1812],\n"," 492: [2002,\n"," 6010,\n"," 6731,\n"," 25774,\n"," 276,\n"," 2208,\n"," 3388,\n"," 50354,\n"," 4893,\n"," 2847],\n"," 493: [2844, 1251, 4234, 993, 4331, 631, 378, 1722, 5900, 718],\n"," 494: [59315,\n"," 2014,\n"," 4514,\n"," 5881,\n"," 6776,\n"," 8884,\n"," 25971,\n"," 4338,\n"," 42011,\n"," 3439],\n"," 495: [2493, 715, 6793, 2434, 30850, 5202, 4727, 1207, 5457, 1810],\n"," 496: [150, 26513, 544, 40583, 1528, 6228, 48856, 4945, 4585, 713],\n"," 497: [2241, 2566, 7373, 1279, 322, 1055, 3587, 764, 8830, 842],\n"," 498: [7743, 5619, 432, 5647, 896, 2612, 52973, 7323, 4406, 461],\n"," 499: [4052, 2878, 965, 2925, 1689, 4263, 3040, 1323, 3996, 2647],\n"," 500: [639, 6385, 30850, 1025, 2121, 3866, 31724, 524, 2179, 349],\n"," 501: [1019, 618, 5936, 4703, 471, 4623, 1045, 3313, 3951, 1723],\n"," 502: [30894,\n"," 6168,\n"," 8789,\n"," 6660,\n"," 3699,\n"," 1971,\n"," 1878,\n"," 1161,\n"," 7789,\n"," 6158],\n"," 503: [3034, 3140, 2155, 3243, 2849, 1609, 5598, 3556, 3270, 1955],\n"," 504: [6264,\n"," 1537,\n"," 2749,\n"," 5640,\n"," 765,\n"," 27391,\n"," 32116,\n"," 3536,\n"," 8228,\n"," 7395],\n"," 505: [3977, 8012, 2770, 4186, 3961, 408, 5088, 2504, 4868, 223],\n"," 506: [44199,\n"," 4370,\n"," 6250,\n"," 2846,\n"," 6995,\n"," 4296,\n"," 2925,\n"," 8138,\n"," 4564,\n"," 57949],\n"," 507: [5378,\n"," 1389,\n"," 2784,\n"," 7385,\n"," 33162,\n"," 5669,\n"," 6319,\n"," 1350,\n"," 7585,\n"," 7937],\n"," 508: [317, 1757, 152, 2184, 52644, 6060, 4867, 72, 5117, 6782],\n"," 509: [2350, 3964, 1926, 4673, 1663, 706, 2005, 5707, 54881, 6059],\n"," 510: [6530, 928, 8670, 3299, 7564, 1687, 5736, 1210, 2966, 38798],\n"," 511: [3397, 1188, 711, 26055, 26555, 3202, 929, 7474, 6221, 1502],\n"," 512: [3679, 618, 43869, 8862, 4562, 8913, 3919, 4809, 1127, 5107],\n"," 513: [3714, 8861, 3774, 2553, 2767, 194, 114, 55232, 177, 5046],\n"," 515: [33836,\n"," 3675,\n"," 8916,\n"," 3093,\n"," 3624,\n"," 4221,\n"," 2165,\n"," 3753,\n"," 54268,\n"," 6795],\n"," 516: [2533, 2659, 333, 2621, 2893, 27674, 2367, 7828, 3743, 3158],\n"," 517: [2323, 6482, 2598, 299, 1279, 4580, 1033, 33437, 2978, 3729],\n"," 518: [37720, 7002, 757, 1350, 1526, 6569, 25777, 1545, 829, 6152],\n"," 520: [7154,\n"," 5182,\n"," 5381,\n"," 1227,\n"," 26230,\n"," 3593,\n"," 45928,\n"," 803,\n"," 1447,\n"," 4504],\n"," 521: [36477, 638, 4272, 7303, 26974, 9018, 997, 7809, 4274, 164],\n"," 522: [1962, 1216, 5570, 146, 1902, 8360, 1493, 2009, 2828, 2394],\n"," 523: [3379,\n"," 39421,\n"," 6373,\n"," 565,\n"," 1438,\n"," 6201,\n"," 7646,\n"," 3556,\n"," 53322,\n"," 25771],\n"," 524: [32017,\n"," 5409,\n"," 57532,\n"," 6234,\n"," 34048,\n"," 3187,\n"," 2809,\n"," 8991,\n"," 39234,\n"," 6855],\n"," 525: [5872,\n"," 1636,\n"," 1256,\n"," 6653,\n"," 1421,\n"," 1678,\n"," 56563,\n"," 1919,\n"," 2952,\n"," 53894],\n"," 526: [44788, 666, 6679, 5521, 5796, 2676, 5726, 1361, 949, 6053],\n"," 527: [25995, 2447, 3094, 7023, 3075, 1273, 841, 5541, 2804, 2396],\n"," 529: [4803, 7743, 2452, 1286, 6811, 2308, 1340, 616, 5569, 37384],\n"," 530: [6785, 747, 1116, 3480, 1057, 748, 3986, 34530, 8928, 6531],\n"," 531: [3857,\n"," 2710,\n"," 8196,\n"," 3863,\n"," 54881,\n"," 8195,\n"," 7153,\n"," 5637,\n"," 1005,\n"," 3710],\n"," 532: [5680,\n"," 26119,\n"," 144,\n"," 7895,\n"," 656,\n"," 1984,\n"," 1888,\n"," 2091,\n"," 39421,\n"," 37382],\n"," 533: [1251, 8341, 639, 3707, 2755, 2449, 8643, 7566, 55247, 8383],\n"," 534: [2971, 5923, 5882, 6709, 1686, 4116, 150, 3310, 5450, 5620],\n"," 535: [4835, 3266, 84, 69, 1984, 1010, 348, 4224, 5108, 53322],\n"," 536: [5140,\n"," 36517,\n"," 5222,\n"," 1972,\n"," 7096,\n"," 2971,\n"," 7303,\n"," 6412,\n"," 1938,\n"," 52973],\n"," 537: [1278, 405, 4378, 7624, 1030, 5012, 4584, 4970, 3811, 25938],\n"," 539: [6626,\n"," 3385,\n"," 406,\n"," 31694,\n"," 50804,\n"," 5411,\n"," 4766,\n"," 7942,\n"," 4300,\n"," 2521],\n"," 540: [34155, 1772, 2920, 1883, 31032, 802, 3634, 152, 3703, 2001],\n"," 541: [2408,\n"," 1002,\n"," 2688,\n"," 48982,\n"," 4290,\n"," 5152,\n"," 4916,\n"," 4857,\n"," 7481,\n"," 4563],\n"," 542: [37739,\n"," 31420,\n"," 26242,\n"," 55872,\n"," 1487,\n"," 7155,\n"," 3038,\n"," 7044,\n"," 5,\n"," 46967],\n"," 543: [959, 6287, 3061, 26148, 8535, 8117, 1596, 7809, 3688, 222],\n"," 544: [35957,\n"," 1904,\n"," 1270,\n"," 2367,\n"," 5035,\n"," 59725,\n"," 2796,\n"," 3720,\n"," 56805,\n"," 371],\n"," 545: [26082, 1003, 542, 5097, 278, 58154, 3608, 5214, 3946, 274],\n"," 546: [7812,\n"," 6374,\n"," 1196,\n"," 53004,\n"," 320,\n"," 5151,\n"," 57640,\n"," 4573,\n"," 43396,\n"," 1474],\n"," 547: [7743,\n"," 7739,\n"," 2023,\n"," 27416,\n"," 5428,\n"," 48082,\n"," 58299,\n"," 27801,\n"," 2860,\n"," 342],\n"," 548: [36535,\n"," 5572,\n"," 3426,\n"," 51931,\n"," 26558,\n"," 34162,\n"," 59900,\n"," 226,\n"," 509,\n"," 46572],\n"," 549: [3018, 2709, 243, 1692, 5096, 6223, 5014, 1419, 5377, 2965],\n"," 550: [6631,\n"," 4236,\n"," 1508,\n"," 5015,\n"," 7292,\n"," 3760,\n"," 40412,\n"," 3618,\n"," 4390,\n"," 6067],\n"," 551: [2335,\n"," 1067,\n"," 4848,\n"," 2569,\n"," 58418,\n"," 7059,\n"," 3334,\n"," 7458,\n"," 4352,\n"," 2532],\n"," 552: [4089, 5709, 2211, 1872, 84, 8337, 6126, 7832, 5785, 4573],\n"," 553: [5288,\n"," 26111,\n"," 5418,\n"," 3715,\n"," 5820,\n"," 4135,\n"," 996,\n"," 51931,\n"," 3686,\n"," 1049],\n"," 554: [80, 1799, 638, 6326, 2816, 48518, 8860, 1069, 3790, 1508],\n"," 555: [4556, 6041, 5105, 8831, 383, 26828, 6053, 3343, 2972, 3038],\n"," 556: [5643, 1730, 2262, 8197, 2014, 2990, 5194, 5285, 1791, 1101],\n"," 557: [7562, 2099, 2278, 7386, 3406, 5137, 458, 2311, 3528, 41716],\n"," 558: [7976,\n"," 34520,\n"," 4809,\n"," 1890,\n"," 34321,\n"," 3554,\n"," 27416,\n"," 3342,\n"," 8869,\n"," 7204],\n"," 559: [48943,\n"," 49961,\n"," 2612,\n"," 1258,\n"," 55577,\n"," 6281,\n"," 3360,\n"," 38600,\n"," 5363,\n"," 3991],\n"," 560: [5451, 8984, 2945, 2066, 7621, 4369, 1753, 5325, 924, 2007],\n"," 561: [32627, 31903, 50005, 199, 239, 460, 5351, 7028, 2242, 6798],\n"," 562: [3247, 7300, 4241, 55118, 320, 7257, 5630, 4900, 981, 58490],\n"," 563: [3761,\n"," 1305,\n"," 6220,\n"," 48856,\n"," 25995,\n"," 460,\n"," 3686,\n"," 7437,\n"," 4432,\n"," 27772],\n"," 564: [2907,\n"," 1218,\n"," 2291,\n"," 5648,\n"," 1197,\n"," 5682,\n"," 45880,\n"," 32316,\n"," 277,\n"," 3197],\n"," 565: [6322,\n"," 6936,\n"," 6550,\n"," 3856,\n"," 7000,\n"," 6434,\n"," 2800,\n"," 26230,\n"," 1296,\n"," 27772],\n"," 566: [27803,\n"," 8989,\n"," 3222,\n"," 1002,\n"," 3769,\n"," 7075,\n"," 8970,\n"," 4579,\n"," 51903,\n"," 5289],\n"," 567: [2891,\n"," 8746,\n"," 1209,\n"," 1081,\n"," 1516,\n"," 25777,\n"," 1037,\n"," 2111,\n"," 3638,\n"," 6624],\n"," 568: [455, 7119, 2090, 351, 1392, 6746, 6486, 6481, 3004, 3695],\n"," 569: [2172,\n"," 1667,\n"," 1216,\n"," 1345,\n"," 1296,\n"," 4228,\n"," 1850,\n"," 2365,\n"," 30812,\n"," 6879],\n"," 570: [4392,\n"," 6542,\n"," 48997,\n"," 381,\n"," 441,\n"," 6667,\n"," 3879,\n"," 43744,\n"," 5112,\n"," 58246],\n"," 571: [8542, 2559, 2726, 2229, 3171, 955, 1728, 5589, 2161, 2800],\n"," 572: [649, 3937, 653, 168, 3045, 27727, 3247, 8197, 1793, 1011],\n"," 573: [4165, 1212, 5363, 7122, 3983, 4952, 3822, 6413, 2779, 4129],\n"," 574: [56563,\n"," 7104,\n"," 864,\n"," 2131,\n"," 1471,\n"," 4745,\n"," 58347,\n"," 4225,\n"," 2244,\n"," 7299],\n"," 575: [2916, 2375, 7377, 590, 1249, 2709, 4213, 6812, 5134, 1646],\n"," 576: [26116,\n"," 3257,\n"," 1196,\n"," 5867,\n"," 1667,\n"," 26578,\n"," 33830,\n"," 58299,\n"," 5462,\n"," 613],\n"," 577: [6566,\n"," 3695,\n"," 2084,\n"," 3700,\n"," 7222,\n"," 31225,\n"," 5114,\n"," 6950,\n"," 7260,\n"," 4395],\n"," 578: [8131,\n"," 8636,\n"," 2688,\n"," 6927,\n"," 3989,\n"," 1687,\n"," 1230,\n"," 47999,\n"," 5497,\n"," 7842],\n"," 579: [3074,\n"," 8530,\n"," 4164,\n"," 1913,\n"," 8260,\n"," 3787,\n"," 5225,\n"," 25764,\n"," 7348,\n"," 4551],\n"," 580: [7202,\n"," 6461,\n"," 2301,\n"," 8738,\n"," 5915,\n"," 33162,\n"," 4164,\n"," 3525,\n"," 2665,\n"," 2769],\n"," 581: [1423, 3730, 6581, 4387, 8253, 1946, 3559, 4533, 8868, 3585],\n"," 582: [2861,\n"," 2058,\n"," 7841,\n"," 2839,\n"," 2271,\n"," 34528,\n"," 3889,\n"," 8477,\n"," 4721,\n"," 2469],\n"," 583: [2738, 724, 1371, 443, 2677, 6807, 4918, 433, 61262, 30659],\n"," 584: [6714, 4448, 4191, 2237, 4587, 1339, 1726, 4211, 5443, 7369],\n"," 585: [824,\n"," 51903,\n"," 3421,\n"," 58103,\n"," 7349,\n"," 3514,\n"," 7325,\n"," 1679,\n"," 55272,\n"," 4216],\n"," 586: [6063, 40732, 4555, 1285, 2267, 2706, 3403, 3439, 9002, 561],\n"," 587: [4228,\n"," 3013,\n"," 4703,\n"," 31485,\n"," 42723,\n"," 5667,\n"," 4373,\n"," 2269,\n"," 4544,\n"," 258],\n"," 588: [3792, 273, 5053, 3739, 3635, 6954, 1746, 3802, 1002, 270],\n"," 589: [3449,\n"," 5515,\n"," 4405,\n"," 3246,\n"," 5796,\n"," 5529,\n"," 3798,\n"," 7584,\n"," 42721,\n"," 4381],\n"," 590: [2769, 124, 256, 6157, 1482, 2830, 5572, 5826, 1702, 355],\n"," 591: [1184,\n"," 5475,\n"," 6152,\n"," 7016,\n"," 3056,\n"," 1923,\n"," 3371,\n"," 30825,\n"," 1499,\n"," 5122],\n"," 592: [420, 7581, 3287, 3965, 3247, 801, 3709, 1014, 2045, 6078],\n"," 593: [4115, 7389, 1750, 3770, 3789, 2187, 5292, 4725, 7892, 2139],\n"," 594: [6506, 936, 7306, 1330, 4283, 31420, 4371, 6569, 180, 5498],\n"," 595: [1719,\n"," 4257,\n"," 26555,\n"," 2380,\n"," 7092,\n"," 3839,\n"," 5534,\n"," 6242,\n"," 3292,\n"," 5973],\n"," 596: [6709, 2939, 444, 5796, 1870, 2542, 5036, 2185, 5512, 3181],\n"," 597: [3028, 2139, 1477, 4284, 125, 3412, 2808, 2077, 525, 6773],\n"," 598: [915, 441, 746, 55290, 1306, 2092, 6078, 2058, 2432, 31347],\n"," 599: [417, 39435, 4641, 2119, 2906, 3171, 350, 8575, 3273, 5666],\n"," 600: [5505, 27846, 279, 4326, 726, 5078, 27905, 4834, 3000, 427],\n"," 601: [5463, 519, 4672, 2310, 7706, 839, 31221, 5618, 4373, 2866],\n"," 602: [1624,\n"," 34319,\n"," 7375,\n"," 5258,\n"," 41831,\n"," 1480,\n"," 277,\n"," 1689,\n"," 6874,\n"," 8275],\n"," 603: [5706, 2262, 5448, 2639, 7191, 2748, 4739, 1379, 442, 4278],\n"," 604: [3298, 7048, 8378, 6959, 6950, 32460, 389, 2231, 3669, 893],\n"," 605: [2854, 7933, 143, 8937, 826, 1084, 39400, 3684, 1268, 27005],\n"," 606: [2349, 5331, 7038, 918, 940, 4681, 1371, 4903, 3333, 5665],\n"," 607: [1961, 53129, 1717, 2865, 1236, 252, 3840, 4467, 3769, 1241],\n"," 608: [4885, 3421, 143, 1635, 6058, 2348, 6290, 1673, 4972, 6678],\n"," 609: [4980,\n"," 703,\n"," 3633,\n"," 50804,\n"," 46335,\n"," 4529,\n"," 2381,\n"," 1153,\n"," 3046,\n"," 2245],\n"," 610: [6296,\n"," 6481,\n"," 3256,\n"," 33164,\n"," 6037,\n"," 880,\n"," 62293,\n"," 3470,\n"," 2059,\n"," 6552],\n"," 612: [627, 5182, 1334, 6466, 827, 5117, 828, 3597, 725, 2928],\n"," 613: [33, 7624, 5093, 4200, 6345, 4675, 5356, 8605, 26151, 6818],\n"," 614: [4463, 2176, 219, 6744, 3707, 2116, 58156, 7054, 3844, 2451],\n"," 616: [8511, 4030, 2092, 4335, 1923, 8914, 2788, 6162, 416, 5322],\n"," 617: [5740, 5669, 77, 30793, 3556, 3924, 5981, 27772, 4017, 4371],\n"," 618: [3914,\n"," 4544,\n"," 3926,\n"," 26002,\n"," 4963,\n"," 3639,\n"," 45672,\n"," 2531,\n"," 6751,\n"," 4255],\n"," 619: [1306,\n"," 5546,\n"," 5560,\n"," 33154,\n"," 52950,\n"," 2019,\n"," 50162,\n"," 550,\n"," 40946,\n"," 32019],\n"," 620: [3235, 2144, 1123, 5570, 6192, 43871, 1982, 3398, 81, 1293],\n"," 621: [6461, 477, 3308, 2790, 5791, 7165, 996, 5494, 2626, 4515],\n"," 622: [7759,\n"," 8119,\n"," 1597,\n"," 6723,\n"," 43560,\n"," 4094,\n"," 3781,\n"," 1834,\n"," 1965,\n"," 3865],\n"," 623: [2243,\n"," 6887,\n"," 1590,\n"," 2244,\n"," 2788,\n"," 1393,\n"," 1121,\n"," 1168,\n"," 26138,\n"," 1459],\n"," 624: [2951, 2779, 3988, 2433, 2088, 100, 72, 2348, 5058, 39435],\n"," 625: [748, 3813, 183, 1247, 8024, 5300, 7767, 2126, 7372, 2949],\n"," 627: [59, 31590, 389, 2502, 53953, 47778, 390, 7088, 5580, 4710],\n"," 628: [3680, 7940, 6078, 8950, 30, 3802, 2360, 2827, 742, 5681],\n"," 629: [39414,\n"," 2172,\n"," 4987,\n"," 5480,\n"," 705,\n"," 38886,\n"," 1008,\n"," 3275,\n"," 1128,\n"," 32179],\n"," 630: [8874,\n"," 56805,\n"," 44397,\n"," 4119,\n"," 1042,\n"," 2174,\n"," 30822,\n"," 7151,\n"," 2116,\n"," 1328],\n"," 631: [54290,\n"," 2132,\n"," 5068,\n"," 1972,\n"," 2706,\n"," 26939,\n"," 1612,\n"," 2864,\n"," 1407,\n"," 1276],\n"," 632: [3876,\n"," 44937,\n"," 3029,\n"," 6077,\n"," 8991,\n"," 4936,\n"," 1961,\n"," 3706,\n"," 3715,\n"," 3306],\n"," 633: [3423, 499, 1982, 7348, 4218, 559, 3694, 2841, 3550, 6713],\n"," 634: [7456, 2076, 993, 50804, 8640, 4291, 4116, 2597, 2908, 6970],\n"," 635: [1961,\n"," 5530,\n"," 664,\n"," 26119,\n"," 2538,\n"," 1392,\n"," 4199,\n"," 52245,\n"," 1760,\n"," 56152],\n"," 636: [674, 2352, 1968, 5673, 5768, 3645, 5004, 6214, 3923, 8485],\n"," 637: [52241,\n"," 6296,\n"," 55687,\n"," 3412,\n"," 3143,\n"," 3296,\n"," 6350,\n"," 34536,\n"," 33896,\n"," 2403],\n"," 638: [5560, 1021, 638, 5735, 2141, 8884, 55274, 1890, 58, 355],\n"," 639: [4918,\n"," 2154,\n"," 1648,\n"," 2915,\n"," 56145,\n"," 34437,\n"," 3706,\n"," 5047,\n"," 50804,\n"," 2749],\n"," 640: [6263,\n"," 1571,\n"," 45666,\n"," 5588,\n"," 7448,\n"," 457,\n"," 5603,\n"," 52975,\n"," 26776,\n"," 7916],\n"," 641: [39427,\n"," 4961,\n"," 2175,\n"," 1220,\n"," 1978,\n"," 8614,\n"," 1440,\n"," 3839,\n"," 44397,\n"," 9018],\n"," 642: [33896,\n"," 2123,\n"," 8596,\n"," 6763,\n"," 56333,\n"," 5855,\n"," 1123,\n"," 1228,\n"," 6936,\n"," 889],\n"," 643: [5055, 246, 5049, 315, 5666, 5117, 43396, 7223, 6935, 8912],\n"," 644: [3428, 5498, 2924, 3940, 1405, 534, 8905, 52456, 3556, 1189],\n"," 645: [1091,\n"," 5276,\n"," 51007,\n"," 7346,\n"," 5288,\n"," 187,\n"," 2054,\n"," 26776,\n"," 27434,\n"," 8369],\n"," 646: [6690, 1997, 2813, 2768, 3211, 2252, 2091, 2640, 3050, 7739],\n"," 647: [3821,\n"," 4980,\n"," 2252,\n"," 7381,\n"," 27523,\n"," 4089,\n"," 44937,\n"," 5992,\n"," 630,\n"," 4463],\n"," 648: [842, 1782, 6564, 31724, 567, 44161, 48304, 334, 504, 3011],\n"," 649: [3960, 3972, 27741, 3462, 782, 3816, 767, 3393, 897, 48412],\n"," 650: [89, 4654, 8687, 31594, 3298, 3200, 5947, 1145, 5496, 4945],\n"," 651: [4801,\n"," 4100,\n"," 7619,\n"," 25764,\n"," 1355,\n"," 1916,\n"," 4468,\n"," 3110,\n"," 2354,\n"," 8874],\n"," 652: [99,\n"," 31433,\n"," 31553,\n"," 3268,\n"," 3181,\n"," 4708,\n"," 7621,\n"," 61160,\n"," 2741,\n"," 42718],\n"," 653: [3620,\n"," 7236,\n"," 59795,\n"," 1771,\n"," 57536,\n"," 7372,\n"," 4496,\n"," 43679,\n"," 417,\n"," 7354],\n"," 654: [585, 281, 6228, 6299, 2722, 4900, 5307, 27850, 1826, 3101],\n"," 655: [202,\n"," 4135,\n"," 36708,\n"," 1445,\n"," 52722,\n"," 5094,\n"," 1084,\n"," 3068,\n"," 6183,\n"," 3741],\n"," 656: [3763,\n"," 2793,\n"," 3361,\n"," 2368,\n"," 1405,\n"," 7034,\n"," 40851,\n"," 25771,\n"," 2671,\n"," 4281],\n"," 657: [6855,\n"," 1199,\n"," 2055,\n"," 2316,\n"," 5481,\n"," 26119,\n"," 5372,\n"," 25805,\n"," 31225,\n"," 6709],\n"," 658: [7165, 2049, 6793, 151, 6855, 563, 3580, 7060, 4954, 1885],\n"," 659: [5247,\n"," 52694,\n"," 37475,\n"," 8365,\n"," 2386,\n"," 8609,\n"," 5937,\n"," 1504,\n"," 5105,\n"," 42217],\n"," 660: [6288,\n"," 8019,\n"," 1318,\n"," 4019,\n"," 1135,\n"," 52283,\n"," 4605,\n"," 4497,\n"," 1089,\n"," 37857],\n"," 661: [1248, 4485, 2554, 3521, 1398, 8968, 3004, 1923, 1376, 8746],\n"," 662: [49822,\n"," 48856,\n"," 34198,\n"," 1827,\n"," 5345,\n"," 3989,\n"," 3643,\n"," 7757,\n"," 4826,\n"," 54281],\n"," 663: [846,\n"," 5365,\n"," 57910,\n"," 2102,\n"," 7096,\n"," 56805,\n"," 6430,\n"," 4228,\n"," 8484,\n"," 7375],\n"," 664: [7235,\n"," 1024,\n"," 58803,\n"," 4440,\n"," 32770,\n"," 1237,\n"," 745,\n"," 7216,\n"," 6702,\n"," 6375],\n"," 665: [7134, 2809, 8511, 1675, 953, 6425, 1620, 7461, 7381, 6078],\n"," 666: [892, 2009, 6217, 1097, 1051, 7306, 529, 6324, 3591, 668],\n"," 667: [8641, 5781, 1054, 59333, 6522, 27434, 359, 5458, 2569, 783],\n"," 668: [4837,\n"," 1473,\n"," 4077,\n"," 4367,\n"," 42002,\n"," 2551,\n"," 3599,\n"," 26152,\n"," 2082,\n"," 2894],\n"," 669: [2034, 2366, 353, 7243, 51834, 325, 5478, 1298, 1201, 8972],\n"," 670: [1447,\n"," 6346,\n"," 4974,\n"," 4577,\n"," 26606,\n"," 6903,\n"," 44657,\n"," 8228,\n"," 7756,\n"," 7384],\n"," 671: [7924,\n"," 6188,\n"," 58154,\n"," 5285,\n"," 3802,\n"," 1350,\n"," 27608,\n"," 4247,\n"," 2307,\n"," 387],\n"," 672: [4055, 2015, 3849, 5365, 602, 1496, 6782, 8958, 41573, 1856],\n"," 674: [4380,\n"," 2516,\n"," 35957,\n"," 3077,\n"," 31193,\n"," 33817,\n"," 39398,\n"," 7300,\n"," 2964,\n"," 3206],\n"," 675: [3242, 5016, 32587, 1351, 946, 209, 2804, 3428, 496, 53129],\n"," 676: [38701, 3099, 4378, 2297, 5505, 5256, 2397, 3467, 5548, 408],\n"," 677: [2060, 32300, 993, 1275, 3038, 4066, 5867, 5237, 4292, 7560],\n"," 678: [60514,\n"," 2852,\n"," 8256,\n"," 26729,\n"," 8507,\n"," 5136,\n"," 263,\n"," 8154,\n"," 55363,\n"," 33660],\n"," 679: [4024,\n"," 3979,\n"," 48678,\n"," 6725,\n"," 3545,\n"," 1277,\n"," 3912,\n"," 375,\n"," 4035,\n"," 44828],\n"," 680: [2180, 57640, 2349, 21, 4462, 9015, 8241, 4880, 27878, 2578],\n"," 681: [26974, 5745, 6330, 2454, 6508, 453, 270, 4345, 4591, 4638],\n"," 683: [4091,\n"," 6301,\n"," 869,\n"," 3620,\n"," 3354,\n"," 2856,\n"," 5721,\n"," 25908,\n"," 30816,\n"," 1410],\n"," 684: [3171,\n"," 31049,\n"," 6592,\n"," 3320,\n"," 4017,\n"," 2221,\n"," 2186,\n"," 31114,\n"," 4899,\n"," 1848],\n"," 685: [8587, 8687, 1909, 3179, 2149, 7923, 7126, 2673, 2018, 4487],\n"," 686: [1440, 511, 4812, 729, 6423, 854, 4617, 41025, 8241, 52952],\n"," 688: [3065, 34536, 2748, 1011, 303, 7163, 5973, 5248, 2119, 3518],\n"," 689: [2641,\n"," 1291,\n"," 3063,\n"," 2569,\n"," 7817,\n"," 44022,\n"," 5937,\n"," 2749,\n"," 5294,\n"," 4479],\n"," 690: [47099, 30701, 2392, 215, 71, 3067, 5316, 5367, 3964, 3777],\n"," 691: [2907, 58246, 8676, 1930, 26585, 1077, 281, 1517, 1413, 794],\n"," 693: [52579,\n"," 6441,\n"," 2360,\n"," 3181,\n"," 5024,\n"," 5593,\n"," 2082,\n"," 4599,\n"," 61160,\n"," 1502],\n"," 694: [1836, 1272, 1717, 3859, 353, 6053, 3718, 7033, 5589, 615],\n"," 695: [3911,\n"," 3452,\n"," 44399,\n"," 1113,\n"," 56367,\n"," 565,\n"," 1960,\n"," 31437,\n"," 3031,\n"," 1376],\n"," 696: [1355,\n"," 36537,\n"," 1777,\n"," 34338,\n"," 2288,\n"," 6308,\n"," 1732,\n"," 848,\n"," 5333,\n"," 48416],\n"," 697: [55830,\n"," 47382,\n"," 7898,\n"," 8614,\n"," 1350,\n"," 2255,\n"," 3419,\n"," 3425,\n"," 56587,\n"," 4844],\n"," 698: [5134,\n"," 1642,\n"," 3272,\n"," 34072,\n"," 1799,\n"," 25995,\n"," 3273,\n"," 6235,\n"," 1345,\n"," 2818],\n"," 699: [6752,\n"," 2297,\n"," 1345,\n"," 47640,\n"," 3545,\n"," 4005,\n"," 2720,\n"," 5643,\n"," 7942,\n"," 5410],\n"," 700: [2576, 58492, 1791, 4045, 618, 583, 5585, 6525, 3330, 6067],\n"," 701: [3036, 6873, 6734, 4912, 6477, 4553, 190, 4990, 2248, 2789],\n"," 702: [1474,\n"," 1346,\n"," 4322,\n"," 1999,\n"," 4304,\n"," 2946,\n"," 542,\n"," 2242,\n"," 31223,\n"," 40955],\n"," 703: [6335, 1232, 6493, 5414, 3830, 3895, 1755, 8482, 157, 1019],\n"," 704: [8, 1446, 47261, 2725, 196, 4495, 3020, 3667, 3036, 2867],\n"," 705: [5076, 674, 2471, 1381, 7167, 1678, 3739, 7175, 1993, 4710],\n"," 706: [4585, 4135, 2880, 9018, 6269, 7728, 4918, 355, 3765, 37545],\n"," 707: [2215,\n"," 6666,\n"," 2033,\n"," 2949,\n"," 1646,\n"," 57243,\n"," 6820,\n"," 56156,\n"," 7448,\n"," 4182],\n"," 708: [3996, 2294, 5349, 2943, 5127, 5151, 4452, 4139, 345, 4407],\n"," 709: [53988, 5, 799, 5297, 3103, 4115, 8711, 2741, 4479, 4766],\n"," 710: [7169, 31433, 5529, 3573, 8958, 3943, 2822, 810, 3063, 4623],\n"," 711: [7285,\n"," 1529,\n"," 59022,\n"," 34072,\n"," 1086,\n"," 5329,\n"," 2004,\n"," 923,\n"," 33817,\n"," 3705],\n"," 712: [4959,\n"," 2417,\n"," 31658,\n"," 7812,\n"," 7943,\n"," 54997,\n"," 49347,\n"," 7074,\n"," 957,\n"," 3497],\n"," 714: [131, 7017, 3574, 2761, 2962, 5102, 3841, 42632, 45928, 79],\n"," 715: [7040, 4836, 7045, 5530, 8117, 8891, 1306, 26491, 627, 2393],\n"," 716: [4688,\n"," 2971,\n"," 6536,\n"," 26303,\n"," 6935,\n"," 27491,\n"," 414,\n"," 3946,\n"," 7343,\n"," 4257],\n"," 718: [32627,\n"," 778,\n"," 5538,\n"," 6718,\n"," 962,\n"," 27611,\n"," 4396,\n"," 56171,\n"," 3178,\n"," 55999],\n"," 719: [5735, 7937, 2086, 3627, 4086, 5538, 4886, 3014, 2557, 3992],\n"," 720: [63113,\n"," 438,\n"," 7065,\n"," 8870,\n"," 1442,\n"," 8638,\n"," 5621,\n"," 31225,\n"," 994,\n"," 41025],\n"," 721: [1431,\n"," 8782,\n"," 1938,\n"," 5288,\n"," 3766,\n"," 41617,\n"," 3042,\n"," 4466,\n"," 6265,\n"," 40574],\n"," 723: [2173, 7007, 648, 3822, 5874, 4567, 876, 3714, 1444, 1013],\n"," 724: [849, 4091, 51903, 31689, 413, 6880, 5540, 1050, 3, 42021],\n"," 725: [5276, 5569, 5425, 147, 6550, 4624, 2023, 7781, 7347, 5662],\n"," 726: [4569,\n"," 3705,\n"," 1035,\n"," 5447,\n"," 27563,\n"," 2887,\n"," 4219,\n"," 5427,\n"," 3265,\n"," 3539],\n"," 727: [1096, 239, 5841, 3587, 6005, 717, 6818, 60037, 5380, 8501],\n"," 728: [6325,\n"," 3795,\n"," 27340,\n"," 1975,\n"," 6773,\n"," 6426,\n"," 26662,\n"," 5431,\n"," 908,\n"," 2767],\n"," 729: [7759,\n"," 33615,\n"," 37727,\n"," 1113,\n"," 215,\n"," 1484,\n"," 56251,\n"," 4378,\n"," 4985,\n"," 3329],\n"," 730: [1722, 7020, 8291, 1087, 779, 2103, 2094, 1446, 3326, 7255],\n"," 731: [574, 3669, 3754, 8132, 1683, 4890, 4569, 5159, 45501, 3498],\n"," 732: [4442, 7086, 3874, 5237, 43, 4676, 41863, 2416, 2117, 4638],\n"," 733: [1897, 1453, 25, 8501, 8459, 2024, 6795, 1523, 34530, 2076],\n"," 734: [214, 3612, 49822, 62, 3707, 1364, 3962, 769, 6001, 4837],\n"," 735: [7372, 7143, 3662, 1650, 7369, 935, 7382, 2278, 816, 4621],\n"," 736: [7831, 1305, 2550, 2529, 3920, 507, 32031, 3503, 6522, 8270],\n"," 737: [2554,\n"," 3211,\n"," 3862,\n"," 26085,\n"," 7459,\n"," 6590,\n"," 3797,\n"," 2766,\n"," 6735,\n"," 2286],\n"," 738: [7340, 3787, 3102, 460, 2387, 3910, 1748, 7149, 7136, 3000],\n"," 739: [3572, 56333, 1750, 3153, 2804, 3671, 3181, 4265, 3238, 27],\n"," 740: [42723,\n"," 6595,\n"," 8827,\n"," 54276,\n"," 7345,\n"," 1934,\n"," 6154,\n"," 3841,\n"," 2775,\n"," 615],\n"," 741: [43556,\n"," 7445,\n"," 3342,\n"," 1483,\n"," 5607,\n"," 6839,\n"," 7217,\n"," 3147,\n"," 49957,\n"," 4857],\n"," 742: [2320, 4066, 8690, 3600, 3852, 4146, 2799, 2563, 2441, 6772],\n"," 743: [3198, 5650, 7326, 2268, 31952, 5648, 1272, 6678, 5867, 930],\n"," 744: [56915,\n"," 2833,\n"," 165,\n"," 2681,\n"," 9015,\n"," 3998,\n"," 1293,\n"," 7046,\n"," 2495,\n"," 57536],\n"," 745: [286, 7926, 5975, 3214, 3715, 1960, 33830, 5663, 1334, 8965],\n"," 746: [58047, 2402, 1322, 32302, 4158, 7325, 6039, 943, 600, 842],\n"," 747: [4387, 1089, 1572, 2386, 97, 7484, 7338, 1215, 7042, 881],\n"," 748: [31658,\n"," 7158,\n"," 1854,\n"," 1866,\n"," 2053,\n"," 49286,\n"," 4103,\n"," 8195,\n"," 85,\n"," 54190],\n"," 749: [2381,\n"," 2121,\n"," 1323,\n"," 8622,\n"," 2467,\n"," 33826,\n"," 3120,\n"," 5635,\n"," 2517,\n"," 1752],\n"," 750: [223, 2073, 2661, 1255, 5055, 5096, 1582, 2356, 5422, 6217],\n"," 751: [7026,\n"," 6666,\n"," 1441,\n"," 1412,\n"," 6218,\n"," 1612,\n"," 1464,\n"," 6201,\n"," 46970,\n"," 3880],\n"," 752: [6666, 27255, 3710, 5300, 3880, 466, 2767, 2989, 4496, 277],\n"," 753: [56152, 4629, 4786, 98, 3102, 8016, 5918, 4290, 3755, 7173],\n"," 754: [1464, 1533, 3643, 7442, 2990, 3738, 8785, 8157, 4251, 1707],\n"," 755: [2432, 765, 513, 1762, 3204, 1934, 4560, 7061, 2055, 2110],\n"," 756: [2899,\n"," 724,\n"," 5053,\n"," 4246,\n"," 31660,\n"," 2418,\n"," 1839,\n"," 5065,\n"," 38499,\n"," 3108],\n"," 757: [2131, 8923, 3070, 3855, 3211, 7026, 7045, 1804, 5436, 5826],\n"," 758: [51937,\n"," 2809,\n"," 44694,\n"," 194,\n"," 6851,\n"," 447,\n"," 1272,\n"," 32587,\n"," 4836,\n"," 3571],\n"," 759: [7373, 445, 1721, 3857, 2573, 55768, 5390, 440, 8045, 889],\n"," 761: [8998, 3258, 3501, 2830, 7618, 4655, 2325, 18, 1113, 4776],\n"," 762: [4426, 354, 54259, 203, 841, 3777, 57532, 4043, 44929, 4276],\n"," 763: [2206,\n"," 3578,\n"," 4518,\n"," 37386,\n"," 27812,\n"," 3719,\n"," 1339,\n"," 1845,\n"," 1095,\n"," 4238],\n"," 764: [389,\n"," 3946,\n"," 34583,\n"," 4434,\n"," 3939,\n"," 3627,\n"," 36537,\n"," 4433,\n"," 5060,\n"," 42021],\n"," 765: [441, 4912, 2206, 3663, 90, 7764, 69, 1504, 3299, 724],\n"," 766: [5304, 1957, 196, 6031, 2779, 3695, 1307, 2573, 3726, 4803],\n"," 767: [482,\n"," 55052,\n"," 31923,\n"," 27826,\n"," 4153,\n"," 30820,\n"," 6346,\n"," 2885,\n"," 5540,\n"," 2329],\n"," 768: [3439, 6060, 1278, 614, 5318, 24, 2248, 3402, 2080, 5504],\n"," 769: [2406, 4447, 6587, 3604, 4458, 6335, 8811, 7380, 177, 2617],\n"," 770: [767, 2480, 4639, 668, 5673, 1090, 1405, 2844, 5563, 5901],\n"," 771: [6534, 37384, 792, 5317, 3126, 6668, 6427, 6971, 1018, 7043],\n"," 772: [42021, 5707, 3901, 606, 8387, 809, 41566, 5512, 4444, 4743],\n"," 773: [8800, 2931, 2900, 1322, 929, 3914, 65, 2009, 43923, 1379],\n"," 774: [26745,\n"," 4331,\n"," 3554,\n"," 852,\n"," 26269,\n"," 6424,\n"," 5632,\n"," 1608,\n"," 4187,\n"," 25856],\n"," 775: [834, 27, 26585, 372, 4646, 6537, 326, 722, 3932, 137],\n"," 776: [56757,\n"," 5930,\n"," 46337,\n"," 4533,\n"," 6484,\n"," 6710,\n"," 5225,\n"," 3580,\n"," 7147,\n"," 710],\n"," 777: [8019, 2573, 2549, 3421, 7410, 5781, 5078, 59795, 454, 8932],\n"," 779: [26148, 26005, 297, 328, 7010, 1686, 519, 5282, 5307, 2822],\n"," 780: [8698, 27604, 2211, 6812, 7038, 4242, 5349, 2207, 90, 2879],\n"," 781: [47640,\n"," 4266,\n"," 6867,\n"," 4718,\n"," 3836,\n"," 41571,\n"," 140,\n"," 5390,\n"," 25777,\n"," 3370],\n"," 782: [8623, 2352, 25766, 1170, 4844, 2463, 282, 354, 8919, 3551],\n"," 783: [1801, 26745, 3061, 3584, 3472, 216, 938, 4343, 5688, 3224],\n"," 784: [1971,\n"," 27899,\n"," 5090,\n"," 7698,\n"," 3086,\n"," 3844,\n"," 1090,\n"," 4234,\n"," 45662,\n"," 1409],\n"," 785: [3320,\n"," 1253,\n"," 4521,\n"," 1417,\n"," 26064,\n"," 56715,\n"," 7745,\n"," 2554,\n"," 7771,\n"," 4420],\n"," 786: [33683, 3129, 3324, 8459, 2325, 2378, 565, 1413, 5823, 3864],\n"," 787: [347, 43684, 4149, 5453, 871, 566, 2598, 4441, 1446, 228],\n"," 788: [6408, 2671, 3181, 47937, 2756, 5802, 2983, 1739, 898, 4635],\n"," 789: [2015,\n"," 3645,\n"," 3812,\n"," 3036,\n"," 9015,\n"," 2197,\n"," 1033,\n"," 42007,\n"," 2502,\n"," 1235],\n"," 790: [58998,\n"," 8024,\n"," 7895,\n"," 6179,\n"," 3617,\n"," 2913,\n"," 3753,\n"," 4774,\n"," 3594,\n"," 1364],\n"," 791: [27434,\n"," 879,\n"," 4177,\n"," 3477,\n"," 5949,\n"," 7980,\n"," 6753,\n"," 40826,\n"," 7355,\n"," 3615],\n"," 792: [1678,\n"," 26002,\n"," 49280,\n"," 3273,\n"," 3735,\n"," 116,\n"," 60040,\n"," 7158,\n"," 48780,\n"," 3480],\n"," 793: [56156, 5569, 5677, 705, 4000, 465, 316, 138, 3939, 1337],\n"," 794: [39183, 6185, 7791, 6986, 725, 2036, 6814, 1927, 1177, 5373],\n"," 795: [3760, 4840, 2788, 3152, 1379, 1872, 2103, 1035, 6213, 3242],\n"," 796: [3008, 6732, 5803, 4930, 2851, 4770, 900, 4168, 8910, 58492],\n"," 797: [5573,\n"," 60766,\n"," 1493,\n"," 33826,\n"," 4417,\n"," 6932,\n"," 2953,\n"," 650,\n"," 2161,\n"," 4881],\n"," 798: [2620, 6785, 8849, 3536, 5801, 2122, 4988, 6270, 342, 1523],\n"," 799: [1715, 2962, 27193, 3293, 1719, 2175, 3571, 1475, 663, 6768],\n"," 800: [4342,\n"," 4617,\n"," 2252,\n"," 4390,\n"," 33585,\n"," 3053,\n"," 56156,\n"," 5358,\n"," 34542,\n"," 1450],\n"," 801: [49651,\n"," 7199,\n"," 5180,\n"," 3095,\n"," 5341,\n"," 1676,\n"," 4186,\n"," 2927,\n"," 53953,\n"," 3754],\n"," 802: [8532, 5446, 5940, 711, 1731, 1991, 25, 4378, 4442, 6811],\n"," 803: [8617, 932, 1695, 5899, 2571, 2273, 4188, 60522, 4332, 277],\n"," 804: [1843,\n"," 58655,\n"," 34170,\n"," 6323,\n"," 5460,\n"," 5812,\n"," 2744,\n"," 2151,\n"," 124,\n"," 3351],\n"," 805: [5640, 1121, 1212, 4641, 3993, 27674, 365, 583, 6191, 1964],\n"," 806: [2991,\n"," 1788,\n"," 6768,\n"," 4293,\n"," 27822,\n"," 1379,\n"," 6723,\n"," 7847,\n"," 7010,\n"," 8913],\n"," 807: [37853,\n"," 7306,\n"," 364,\n"," 8584,\n"," 4863,\n"," 1273,\n"," 43919,\n"," 2614,\n"," 6810,\n"," 45662],\n"," 808: [3893,\n"," 4564,\n"," 43923,\n"," 4622,\n"," 48520,\n"," 34405,\n"," 25923,\n"," 3412,\n"," 7095,\n"," 7300],\n"," 809: [5310,\n"," 3808,\n"," 7212,\n"," 3729,\n"," 6777,\n"," 26198,\n"," 4502,\n"," 3452,\n"," 8014,\n"," 7243],\n"," 810: [2389,\n"," 3307,\n"," 4695,\n"," 7059,\n"," 40955,\n"," 50162,\n"," 7749,\n"," 1814,\n"," 6243,\n"," 709],\n"," 811: [5412,\n"," 26585,\n"," 6170,\n"," 69,\n"," 61323,\n"," 6437,\n"," 25777,\n"," 6888,\n"," 5108,\n"," 3816],\n"," 812: [2501, 2125, 4159, 34153, 923, 4831, 36529, 4438, 366, 4878],\n"," 813: [57669,\n"," 5572,\n"," 3599,\n"," 393,\n"," 33138,\n"," 4954,\n"," 2458,\n"," 60753,\n"," 4754,\n"," 559],\n"," 814: [1149,\n"," 2345,\n"," 2404,\n"," 3962,\n"," 8915,\n"," 1226,\n"," 31429,\n"," 4226,\n"," 7983,\n"," 1814],\n"," 815: [6768, 827, 31445, 1639, 2367, 2546, 4343, 2458, 5517, 6709],\n"," 816: [6987,\n"," 1669,\n"," 6290,\n"," 3596,\n"," 51709,\n"," 55729,\n"," 3622,\n"," 2847,\n"," 7005,\n"," 6779],\n"," 817: [924, 871, 4533, 3445, 7154, 5935, 5357, 27391, 6373, 5127],\n"," 818: [2677,\n"," 4488,\n"," 55247,\n"," 6934,\n"," 60756,\n"," 1799,\n"," 5194,\n"," 4821,\n"," 6534,\n"," 5604],\n"," 819: [2755, 2782, 2347, 1479, 4673, 6657, 4173, 7847, 2894, 3308],\n"," 820: [56775,\n"," 1184,\n"," 6159,\n"," 8768,\n"," 786,\n"," 2401,\n"," 4231,\n"," 6755,\n"," 51939,\n"," 8195],\n"," 821: [272,\n"," 7616,\n"," 1900,\n"," 7324,\n"," 1750,\n"," 6132,\n"," 55687,\n"," 33677,\n"," 54612,\n"," 344],\n"," 822: [6315, 4484, 390, 434, 4153, 5055, 3452, 6124, 3252, 735],\n"," 823: [3723, 2722, 870, 3555, 6264, 6270, 2087, 4617, 43679, 2929],\n"," 824: [1670,\n"," 5239,\n"," 3206,\n"," 34338,\n"," 2441,\n"," 3576,\n"," 2712,\n"," 2784,\n"," 4770,\n"," 4100],\n"," 825: [7002, 15, 1517, 6503, 934, 25866, 6783, 2879, 5647, 2988],\n"," 826: [6225, 1747, 833, 4123, 3473, 37729, 3225, 305, 5674, 3222],\n"," 827: [561, 1300, 3259, 3130, 2613, 1538, 3798, 4895, 383, 6873],\n"," 828: [8638,\n"," 3942,\n"," 34155,\n"," 58315,\n"," 2887,\n"," 27773,\n"," 5078,\n"," 27834,\n"," 3702,\n"," 2483],\n"," 829: [1281, 6342, 638, 2504, 5648, 929, 3724, 1267, 2471, 6235],\n"," 830: [34583,\n"," 3289,\n"," 7981,\n"," 3677,\n"," 4725,\n"," 32892,\n"," 53894,\n"," 158,\n"," 50685,\n"," 4745],\n"," 831: [2352, 816, 246, 6356, 4298, 34520, 5396, 858, 31685, 274],\n"," 832: [3034, 2572, 5669, 5066, 785, 4298, 55768, 9, 3263, 5334],\n"," 833: [542, 3044, 34530, 177, 1769, 3605, 6005, 3155, 4012, 5677],\n"," 834: [6461, 169, 7382, 4410, 2393, 470, 267, 648, 7489, 1973],\n"," 835: [8691,\n"," 2049,\n"," 3436,\n"," 2057,\n"," 5890,\n"," 3812,\n"," 45501,\n"," 1752,\n"," 1926,\n"," 4878],\n"," 836: [3078, 4961, 1110, 3362, 1004, 754, 6800, 393, 1748, 37475],\n"," 837: [256, 5223, 2978, 5617, 3821, 1992, 31658, 1394, 3665, 2919],\n"," 838: [4241, 4677, 971, 7149, 1667, 4438, 4387, 510, 987, 3659],\n"," 839: [3015,\n"," 1930,\n"," 3402,\n"," 7155,\n"," 41617,\n"," 5495,\n"," 27826,\n"," 3179,\n"," 4407,\n"," 6975],\n"," 840: [32116,\n"," 4021,\n"," 26578,\n"," 126,\n"," 1044,\n"," 2074,\n"," 1211,\n"," 31364,\n"," 44204,\n"," 980],\n"," 841: [5268, 1398, 4018, 3060, 1916, 2285, 44665, 2809, 6305, 742],\n"," 842: [829, 4545, 6235, 5534, 7700, 606, 6188, 4329, 30818, 445],\n"," 843: [3835, 5008, 6352, 1806, 998, 2861, 53189, 2232, 6281, 2587],\n"," 844: [7086,\n"," 2388,\n"," 26558,\n"," 3953,\n"," 6379,\n"," 31364,\n"," 4493,\n"," 4626,\n"," 2765,\n"," 3659],\n"," 846: [2315,\n"," 8966,\n"," 37739,\n"," 54268,\n"," 3760,\n"," 4262,\n"," 3797,\n"," 4912,\n"," 4865,\n"," 911],\n"," 847: [7759, 8376, 6987, 7745, 4707, 2634, 1885, 876, 32596, 5665],\n"," 848: [50804,\n"," 5515,\n"," 5812,\n"," 1330,\n"," 5059,\n"," 3091,\n"," 8341,\n"," 34072,\n"," 7879,\n"," 1953],\n"," 849: [5585, 37545, 36531, 2357, 5974, 2333, 558, 189, 5296, 1396],\n"," 851: [612, 5122, 42723, 2852, 2766, 3952, 5475, 5049, 923, 31696],\n"," 852: [4034, 3197, 6502, 7926, 2279, 3879, 549, 4351, 50601, 2627],\n"," 853: [5693, 7176, 2615, 199, 4806, 810, 4895, 1057, 193, 7072],\n"," 854: [5445, 7034, 68, 5792, 1921, 4823, 2549, 3206, 54796, 2397],\n"," 855: [2809,\n"," 30818,\n"," 1482,\n"," 2315,\n"," 48877,\n"," 7391,\n"," 443,\n"," 55274,\n"," 1879,\n"," 3178],\n"," 856: [46965,\n"," 1882,\n"," 5058,\n"," 3481,\n"," 4312,\n"," 7079,\n"," 26172,\n"," 834,\n"," 8969,\n"," 4850],\n"," 857: [761, 4211, 2303, 7384, 5184, 747, 6010, 38886, 3440, 3405],\n"," 859: [6375, 108, 5560, 5655, 3200, 7449, 8869, 6273, 2404, 2096],\n"," 860: [7010, 4847, 5039, 1962, 5013, 2185, 3970, 3597, 376, 5287],\n"," 861: [2668, 1071, 5438, 638, 2428, 766, 2753, 1398, 3993, 2012],\n"," 862: [2477,\n"," 58975,\n"," 1950,\n"," 3063,\n"," 1262,\n"," 6021,\n"," 8426,\n"," 50153,\n"," 8495,\n"," 882],\n"," 863: [54745,\n"," 55290,\n"," 5072,\n"," 3863,\n"," 1463,\n"," 8511,\n"," 4801,\n"," 48560,\n"," 6659,\n"," 2597],\n"," 864: [3048, 748, 90, 2442, 842, 7836, 1033, 4567, 3969, 3047],\n"," 865: [7121, 2212, 7445, 8045, 42728, 3668, 2123, 2905, 715, 330],\n"," 866: [8372,\n"," 58162,\n"," 7410,\n"," 1599,\n"," 27193,\n"," 2728,\n"," 3042,\n"," 3304,\n"," 31952,\n"," 6185],\n"," 867: [7352, 2576, 1068, 6516, 666, 795, 2665, 4474, 93, 3992],\n"," 868: [3351,\n"," 3268,\n"," 3811,\n"," 6893,\n"," 32011,\n"," 2211,\n"," 1485,\n"," 27768,\n"," 3404,\n"," 7342],\n"," 869: [2086, 1476, 6760, 50802, 4532, 6950, 7170, 4067, 437, 4111],\n"," 870: [2576, 5999, 2473, 3579, 1086, 2142, 474, 2451, 867, 7134],\n"," 871: [1626, 2471, 7067, 4205, 281, 4462, 6452, 8932, 4947, 55805],\n"," 872: [2265, 6561, 1650, 55290, 4739, 621, 3301, 4257, 3379, 4598],\n"," 873: [59315,\n"," 6365,\n"," 5046,\n"," 4415,\n"," 1201,\n"," 6914,\n"," 2776,\n"," 6713,\n"," 2907,\n"," 2643],\n"," 874: [32025,\n"," 6118,\n"," 50806,\n"," 3194,\n"," 766,\n"," 26828,\n"," 2686,\n"," 5974,\n"," 5657,\n"," 52722],\n"," 875: [2711, 4719, 4136, 5613, 6152, 8201, 54513, 1537, 4380, 202],\n"," 876: [2589, 6718, 5729, 8862, 1147, 1580, 959, 3180, 5737, 5985],\n"," 878: [910, 1235, 3450, 7009, 2822, 335, 4011, 42, 2754, 3420],\n"," 879: [5445,\n"," 3317,\n"," 1624,\n"," 6537,\n"," 2511,\n"," 4380,\n"," 7338,\n"," 2025,\n"," 4131,\n"," 45447],\n"," 881: [2995, 5452, 3866, 3428, 32179, 190, 5187, 4969, 761, 1678],\n"," 882: [1324, 4498, 5782, 6045, 2134, 3701, 4833, 5433, 8157, 1950],\n"," 883: [6993, 1044, 2736, 1544, 2378, 2365, 566, 5901, 3243, 394],\n"," 884: [5854, 6348, 4250, 144, 2043, 6774, 26172, 4241, 1707, 3302],\n"," 885: [1825, 5023, 3041, 5700, 2159, 868, 7789, 4487, 2844, 667],\n"," 886: [43836,\n"," 5356,\n"," 5323,\n"," 34155,\n"," 31770,\n"," 7132,\n"," 5739,\n"," 2509,\n"," 2806,\n"," 6021],\n"," 887: [7743,\n"," 2387,\n"," 26713,\n"," 114,\n"," 45442,\n"," 7346,\n"," 56805,\n"," 2561,\n"," 5507,\n"," 487],\n"," 888: [7898,\n"," 3235,\n"," 30812,\n"," 3111,\n"," 2541,\n"," 2260,\n"," 49649,\n"," 1719,\n"," 2827,\n"," 3527],\n"," 889: [1593,\n"," 4034,\n"," 3916,\n"," 3801,\n"," 26172,\n"," 1668,\n"," 5189,\n"," 6797,\n"," 1692,\n"," 2498],\n"," 890: [60286, 945, 45720, 1625, 6743, 3930, 992, 3007, 949, 27674],\n"," 891: [4339, 2296, 1440, 6118, 3450, 6812, 3245, 4719, 4683, 6156],\n"," 892: [2180, 1715, 5593, 233, 3946, 1722, 4467, 4478, 6013, 3846],\n"," 893: [46337,\n"," 2622,\n"," 55999,\n"," 2315,\n"," 1793,\n"," 476,\n"," 1826,\n"," 3572,\n"," 1728,\n"," 8755],\n"," 894: [5122, 540, 3005, 3157, 8208, 3664, 5791, 51937, 8131, 5035],\n"," 895: [183, 2620, 3467, 6038, 3807, 25750, 5869, 34332, 827, 4719],\n"," 896: [5028, 2141, 678, 2782, 5105, 3936, 40629, 6710, 7762, 2709],\n"," 897: [1598, 1276, 2340, 6367, 1366, 1454, 7034, 1731, 3879, 1533],\n"," 898: [4701, 1565, 36519, 132, 3659, 5966, 1440, 2502, 6966, 3835],\n"," 899: [3553, 5193, 7046, 4558, 5142, 2271, 2111, 7991, 3968, 4833],\n"," 900: [1538, 6350, 899, 7936, 2528, 5247, 1317, 161, 32291, 5334],\n"," 901: [3152,\n"," 8366,\n"," 7620,\n"," 1104,\n"," 5647,\n"," 4995,\n"," 8125,\n"," 4147,\n"," 3421,\n"," 31420],\n"," 902: [4144, 639, 554, 8865, 32019, 3148, 333, 6093, 8014, 4340],\n"," 903: [1002, 1131, 3784, 30749, 118, 211, 6734, 6374, 6988, 5002],\n"," 904: [7728, 810, 7923, 4371, 6408, 6467, 5610, 3122, 1857, 571],\n"," 905: [8645, 30793, 197, 3802, 1511, 1999, 5134, 274, 1112, 886],\n"," 906: [700, 2995, 3993, 1227, 5180, 256, 6053, 7587, 4895, 469],\n"," 907: [1012, 1477, 2947, 2985, 6259, 5843, 6982, 3932, 843, 59141],\n"," 908: [2024,\n"," 6892,\n"," 1932,\n"," 52281,\n"," 3997,\n"," 6191,\n"," 3591,\n"," 8365,\n"," 5881,\n"," 2907],\n"," 909: [2843, 52668, 3512, 7306, 4326, 7342, 5971, 827, 4628, 2630],\n"," 910: [3052,\n"," 1464,\n"," 4543,\n"," 2792,\n"," 3141,\n"," 7199,\n"," 45668,\n"," 3050,\n"," 6159,\n"," 7649],\n"," 911: [2578,\n"," 5114,\n"," 2649,\n"," 34148,\n"," 52694,\n"," 2253,\n"," 7164,\n"," 3929,\n"," 314,\n"," 3019],\n"," 912: [6898, 2932, 507, 1587, 45106, 7167, 5609, 5652, 8711, 1087],\n"," 913: [7381, 1809, 626, 7781, 8789, 2288, 3007, 4798, 1168, 3703],\n"," 914: [5902, 4148, 1884, 4497, 593, 2085, 257, 36535, 7941, 665],\n"," 915: [2911, 315, 3395, 3604, 432, 8426, 5110, 3091, 1476, 45950],\n"," 916: [53999, 4306, 2800, 3463, 786, 4857, 4816, 4424, 4670, 66],\n"," 917: [46723,\n"," 6609,\n"," 25766,\n"," 7211,\n"," 747,\n"," 2930,\n"," 5051,\n"," 4981,\n"," 4964,\n"," 52328],\n"," 918: [7091,\n"," 1246,\n"," 44204,\n"," 4756,\n"," 286,\n"," 2140,\n"," 48560,\n"," 2431,\n"," 5896,\n"," 2353],\n"," 919: [6686,\n"," 998,\n"," 2087,\n"," 1269,\n"," 3693,\n"," 43556,\n"," 3133,\n"," 4587,\n"," 53004,\n"," 3414],\n"," 920: [1163,\n"," 3087,\n"," 56801,\n"," 1464,\n"," 5646,\n"," 7136,\n"," 2005,\n"," 1979,\n"," 6337,\n"," 2029],\n"," 921: [1409, 810, 2862, 6990, 1583, 45499, 5521, 3068, 2747, 2380],\n"," 922: [2116,\n"," 32316,\n"," 25940,\n"," 31429,\n"," 13,\n"," 1428,\n"," 4887,\n"," 58315,\n"," 3161,\n"," 7257],\n"," 923: [2560, 6210, 2663, 42738, 393, 5268, 4008, 3677, 6785, 4915],\n"," 924: [382, 1829, 475, 2772, 2405, 2530, 4087, 4899, 667, 1782],\n"," 925: [3775, 3267, 6102, 3079, 3041, 156, 40278, 3837, 673, 757],\n"," 926: [1997,\n"," 3074,\n"," 6197,\n"," 55286,\n"," 1608,\n"," 7941,\n"," 574,\n"," 4215,\n"," 25923,\n"," 4237],\n"," 927: [59016, 767, 3143, 61, 4014, 8698, 4323, 1640, 53999, 5093],\n"," 928: [4108, 7706, 2300, 2730, 1445, 25923, 3253, 3174, 637, 3881],\n"," 930: [4432,\n"," 7979,\n"," 3557,\n"," 2129,\n"," 26151,\n"," 3846,\n"," 3402,\n"," 51925,\n"," 6263,\n"," 8937],\n"," 931: [6077,\n"," 5331,\n"," 2901,\n"," 2360,\n"," 3537,\n"," 3148,\n"," 53468,\n"," 1296,\n"," 3245,\n"," 33826],\n"," 932: [4274, 5937, 60753, 3870, 274, 3701, 27741, 901, 3685, 784],\n"," 933: [3120, 1225, 724, 97, 34271, 5035, 800, 4109, 222, 6006],\n"," 934: [54276,\n"," 287,\n"," 38886,\n"," 7449,\n"," 8796,\n"," 1077,\n"," 56782,\n"," 52604,\n"," 3747,\n"," 4168],\n"," 935: [1357,\n"," 58105,\n"," 6368,\n"," 3095,\n"," 166,\n"," 3859,\n"," 7199,\n"," 6239,\n"," 51077,\n"," 2126],\n"," 936: [103, 8125, 1642, 4342, 3350, 1919, 148, 2070, 5593, 3525],\n"," 937: [32153,\n"," 6486,\n"," 25866,\n"," 7916,\n"," 2475,\n"," 673,\n"," 4255,\n"," 48516,\n"," 1472,\n"," 5784],\n"," 938: [1444, 8800, 1645, 31359, 2787, 7708, 222, 637, 3734, 43928],\n"," 939: [1596, 7132, 2562, 8905, 1941, 1683, 2536, 3804, 1947, 2528],\n"," 940: [8268, 8987, 2775, 3503, 4453, 6342, 34, 5954, 7334, 1918],\n"," 941: [7038,\n"," 5219,\n"," 2355,\n"," 27821,\n"," 1206,\n"," 2861,\n"," 1178,\n"," 2014,\n"," 4125,\n"," 4290],\n"," 942: [1535, 53322, 1337, 8779, 5015, 2597, 37384, 343, 6347, 105],\n"," 943: [4567, 6790, 969, 59022, 5027, 7440, 1272, 1526, 1143, 1011],\n"," 945: [5927,\n"," 4941,\n"," 7076,\n"," 46967,\n"," 1472,\n"," 2022,\n"," 3739,\n"," 7158,\n"," 5613,\n"," 3308],\n"," 946: [4053, 1683, 4835, 3423, 8860, 6776, 2626, 6345, 6374, 6290],\n"," 947: [1612, 1537, 6231, 3765, 55247, 4807, 108, 2102, 1551, 5693],\n"," 948: [1448,\n"," 6082,\n"," 997,\n"," 43928,\n"," 588,\n"," 2887,\n"," 50440,\n"," 3807,\n"," 47830,\n"," 53921],\n"," 949: [1613,\n"," 1562,\n"," 7844,\n"," 56152,\n"," 5958,\n"," 6558,\n"," 34542,\n"," 7069,\n"," 2327,\n"," 56286],\n"," 950: [3740, 2375, 33781, 8368, 2682, 501, 909, 8764, 1756, 5307],\n"," 951: [3053, 3096, 2364, 1193, 371, 336, 5008, 32025, 217, 4551],\n"," 952: [266, 6232, 42721, 8377, 3723, 4771, 1526, 1253, 5726, 2966],\n"," 953: [330,\n"," 2660,\n"," 4552,\n"," 3028,\n"," 5672,\n"," 55250,\n"," 3492,\n"," 45503,\n"," 6666,\n"," 6646],\n"," 954: [190,\n"," 5382,\n"," 3599,\n"," 5354,\n"," 31698,\n"," 1928,\n"," 4409,\n"," 2336,\n"," 3822,\n"," 52694],\n"," 955: [4556, 2397, 3981, 3363, 9002, 7379, 56152, 1600, 2496, 355],\n"," 956: [3390, 5463, 4544, 4354, 2452, 6378, 3631, 1147, 5726, 2080],\n"," 957: [32632,\n"," 6502,\n"," 862,\n"," 2545,\n"," 2409,\n"," 1488,\n"," 51088,\n"," 30701,\n"," 48322,\n"," 7306],\n"," 958: [1353, 4262, 40, 2128, 43744, 3106, 59404, 213, 4432, 1419],\n"," 960: [26578,\n"," 5839,\n"," 52644,\n"," 1310,\n"," 3563,\n"," 1303,\n"," 42728,\n"," 40583,\n"," 8795,\n"," 5808],\n"," 961: [7117, 551, 3838, 2548, 4089, 4541, 3252, 4255, 8533, 850],\n"," 962: [4864,\n"," 31086,\n"," 2720,\n"," 5431,\n"," 4372,\n"," 7235,\n"," 1288,\n"," 3703,\n"," 4135,\n"," 48262],\n"," 963: [4623, 5483, 1243, 2151, 7190, 661, 1051, 6157, 5568, 495],\n"," 964: [7132, 62, 1266, 4722, 4252, 6098, 5039, 5337, 6341, 1551],\n"," 965: [6765, 2612, 1351, 108, 6358, 6541, 661, 7210, 4280, 2144],\n"," 966: [2719, 745, 2469, 25850, 2381, 381, 4342, 6157, 3770, 36519],\n"," 967: [53466,\n"," 8754,\n"," 2125,\n"," 3712,\n"," 4236,\n"," 7769,\n"," 6206,\n"," 1466,\n"," 42730,\n"," 341],\n"," 968: [2570,\n"," 7160,\n"," 8943,\n"," 6773,\n"," 4017,\n"," 7284,\n"," 47423,\n"," 1124,\n"," 2014,\n"," 6428],\n"," 969: [500,\n"," 7817,\n"," 1201,\n"," 2283,\n"," 3992,\n"," 2268,\n"," 2379,\n"," 3703,\n"," 26116,\n"," 42632],\n"," 970: [7218, 3510, 5189, 5267, 1019, 174, 7384, 30822, 2179, 4155],\n"," 971: [45722,\n"," 32294,\n"," 4674,\n"," 27812,\n"," 4524,\n"," 200,\n"," 4814,\n"," 3276,\n"," 195,\n"," 6708],\n"," 972: [4744, 2576, 7940, 2494, 9005, 32213, 4834, 4599, 2478, 169],\n"," 973: [3683,\n"," 2449,\n"," 2609,\n"," 1036,\n"," 5059,\n"," 56587,\n"," 3675,\n"," 2256,\n"," 7219,\n"," 2710],\n"," 974: [7292,\n"," 4237,\n"," 52287,\n"," 4772,\n"," 1953,\n"," 2581,\n"," 4102,\n"," 4508,\n"," 5363,\n"," 8811],\n"," 975: [5410,\n"," 6238,\n"," 5256,\n"," 5847,\n"," 1457,\n"," 33660,\n"," 3326,\n"," 1580,\n"," 31427,\n"," 3775],\n"," 976: [4638, 8913, 2338, 3087, 1232, 2967, 3884, 6410, 2710, 1005],\n"," 977: [3736, 2147, 5985, 2753, 100, 6357, 4059, 2467, 3990, 4901],\n"," 978: [4812,\n"," 49347,\n"," 5735,\n"," 5433,\n"," 3181,\n"," 2362,\n"," 41573,\n"," 4737,\n"," 2430,\n"," 2145],\n"," 979: [3593, 1641, 3739, 4789, 7391, 4404, 27838, 3086, 54745, 81],\n"," 980: [3690, 1026, 33679, 2888, 3396, 4520, 118, 1414, 7485, 2590],\n"," 982: [3075, 2844, 561, 5140, 2756, 7168, 1539, 6144, 5792, 8949],\n"," 983: [4866, 3917, 1236, 3730, 3464, 1892, 4670, 3428, 4555, 6720],\n"," 984: [54785,\n"," 25995,\n"," 7265,\n"," 3622,\n"," 2347,\n"," 540,\n"," 26391,\n"," 3109,\n"," 1262,\n"," 3393],\n"," 985: [6569, 49651, 3749, 27882, 3989, 89, 343, 26082, 6461, 2713],\n"," 986: [5241,\n"," 4042,\n"," 2903,\n"," 5431,\n"," 7925,\n"," 5016,\n"," 55274,\n"," 5450,\n"," 3401,\n"," 5039],\n"," 987: [5065,\n"," 1460,\n"," 5316,\n"," 59016,\n"," 6751,\n"," 2005,\n"," 7879,\n"," 5841,\n"," 3287,\n"," 7781],\n"," 988: [8581, 3367, 47044, 4493, 3486, 8838, 1603, 382, 694, 4833],\n"," 989: [12, 7943, 533, 347, 5689, 1926, 40966, 7836, 1356, 5296],\n"," 990: [7204,\n"," 8157,\n"," 2779,\n"," 46322,\n"," 6461,\n"," 26116,\n"," 3333,\n"," 6980,\n"," 21,\n"," 60037],\n"," 991: [2249,\n"," 490,\n"," 2202,\n"," 3880,\n"," 4986,\n"," 8640,\n"," 44197,\n"," 3910,\n"," 1300,\n"," 58105],\n"," 992: [3757, 1091, 4404, 5673, 4386, 1361, 2739, 3270, 4434, 2733],\n"," 993: [1053, 5105, 4517, 44204, 68, 2279, 7235, 1186, 1833, 6385],\n"," 994: [47952,\n"," 5255,\n"," 37733,\n"," 3051,\n"," 1300,\n"," 2688,\n"," 5617,\n"," 2629,\n"," 970,\n"," 53123],\n"," 995: [1273, 426, 56949, 4291, 1407, 8019, 517, 4621, 2029, 2806],\n"," 996: [372, 324, 511, 1432, 5495, 1729, 2007, 7781, 259, 5517],\n"," 997: [48142,\n"," 1970,\n"," 2912,\n"," 3425,\n"," 2839,\n"," 348,\n"," 4326,\n"," 27584,\n"," 3955,\n"," 1292],\n"," 998: [1426,\n"," 1406,\n"," 5410,\n"," 6963,\n"," 3394,\n"," 4464,\n"," 1876,\n"," 1644,\n"," 58972,\n"," 37720],\n"," 999: [7030, 2987, 6573, 6760, 455, 8014, 2950, 3697, 2785, 7449],\n"," 1001: [2081, 2324, 4397, 7310, 4268, 489, 90, 1944, 4401, 315],\n"," 1002: [2598, 4018, 2789, 3571, 5051, 5740, 31694, 1688, 517, 935],\n"," 1003: [6849, 2312, 5012, 3327, 1473, 1284, 1183, 166, 3986, 470],\n"," 1004: [2940, 5285, 6987, 7012, 348, 8526, 2291, 3505, 2130, 3956],\n"," 1005: [63992,\n"," 3374,\n"," 55280,\n"," 4591,\n"," 2130,\n"," 3781,\n"," 1602,\n"," 2413,\n"," 3287,\n"," 5643],\n"," 1006: [5047, 32596, 5401, 46322, 7809, 1042, 621, 471, 1562, 903],\n"," 1007: [6593,\n"," 1502,\n"," 51007,\n"," 4174,\n"," 47261,\n"," 7847,\n"," 4033,\n"," 3587,\n"," 7157,\n"," 27912],\n"," 1008: [1124,\n"," 3364,\n"," 5363,\n"," 54259,\n"," 56885,\n"," 2253,\n"," 7346,\n"," 50147,\n"," 5650,\n"," 338],\n"," 1009: [3837, 4462, 370, 5135, 3631, 2789, 8927, 1095, 2204, 4888],\n"," 1011: [5337,\n"," 4888,\n"," 7009,\n"," 1991,\n"," 6225,\n"," 2976,\n"," 742,\n"," 4885,\n"," 47254,\n"," 3824],\n"," 1012: [685, 3937, 2031, 4994, 1606, 735, 3395, 1992, 2885, 653],\n"," 1013: [27584,\n"," 146,\n"," 4458,\n"," 8532,\n"," 1395,\n"," 3896,\n"," 7439,\n"," 6233,\n"," 2055,\n"," 42718],\n"," 1014: [4624,\n"," 5602,\n"," 6525,\n"," 27491,\n"," 1848,\n"," 1436,\n"," 4387,\n"," 53988,\n"," 1024,\n"," 2253],\n"," 1015: [3941, 2286, 810, 6259, 41585, 1570, 1058, 5747, 2083, 213],\n"," 1016: [2662,\n"," 25805,\n"," 7369,\n"," 3095,\n"," 1059,\n"," 147,\n"," 26903,\n"," 2775,\n"," 3920,\n"," 7713],\n"," 1017: [1898,\n"," 35957,\n"," 6448,\n"," 6159,\n"," 3424,\n"," 7899,\n"," 3827,\n"," 4390,\n"," 27815,\n"," 5428],\n"," 1018: [2290, 2364, 3646, 1428, 2845, 26745, 5541, 3014, 2347, 85],\n"," 1019: [3362,\n"," 2502,\n"," 57522,\n"," 3272,\n"," 1858,\n"," 2975,\n"," 2001,\n"," 2970,\n"," 3932,\n"," 6868],\n"," 1020: [49647,\n"," 6290,\n"," 1168,\n"," 27513,\n"," 1855,\n"," 6868,\n"," 6581,\n"," 60766,\n"," 3174,\n"," 2478],\n"," 1021: [239,\n"," 6062,\n"," 6101,\n"," 33437,\n"," 2180,\n"," 3533,\n"," 3826,\n"," 3635,\n"," 2817,\n"," 6934],\n"," 1022: [410, 1236, 426, 1036, 7410, 1264, 2967, 1321, 7009, 3300],\n"," 1023: [5573,\n"," 1943,\n"," 6212,\n"," 3150,\n"," 2267,\n"," 30749,\n"," 46347,\n"," 3235,\n"," 4710,\n"," 3449],\n"," 1025: [177,\n"," 27689,\n"," 8094,\n"," 1647,\n"," 31660,\n"," 795,\n"," 7177,\n"," 2835,\n"," 2594,\n"," 4257],\n"," 1026: [2828,\n"," 2944,\n"," 4541,\n"," 57368,\n"," 44022,\n"," 117,\n"," 2198,\n"," 77,\n"," 6774,\n"," 31696],\n"," 1027: [528, 201, 1454, 4470, 3690, 2301, 6932, 3599, 6031, 6187],\n"," 1028: [3028,\n"," 8154,\n"," 4033,\n"," 4780,\n"," 4582,\n"," 5416,\n"," 1041,\n"," 55247,\n"," 7254,\n"," 2266],\n"," 1029: [7151,\n"," 4830,\n"," 8119,\n"," 2545,\n"," 3510,\n"," 1676,\n"," 5494,\n"," 4001,\n"," 2184,\n"," 1976],\n"," 1030: [847,\n"," 26614,\n"," 3705,\n"," 4729,\n"," 5410,\n"," 4956,\n"," 3466,\n"," 3741,\n"," 26122,\n"," 2794],\n"," 1031: [34321,\n"," 3105,\n"," 4895,\n"," 2231,\n"," 3808,\n"," 2589,\n"," 813,\n"," 45186,\n"," 4095,\n"," 5283],\n"," 1032: [47099,\n"," 49957,\n"," 3605,\n"," 30820,\n"," 7176,\n"," 1693,\n"," 54771,\n"," 198,\n"," 40723,\n"," 2163],\n"," 1033: [663,\n"," 8183,\n"," 7162,\n"," 3473,\n"," 55830,\n"," 4772,\n"," 41863,\n"," 5749,\n"," 2513,\n"," 1892],\n"," 1034: [7981,\n"," 2212,\n"," 6378,\n"," 2310,\n"," 6714,\n"," 60522,\n"," 2177,\n"," 1500,\n"," 2912,\n"," 1873],\n"," 1035: [334, 85, 40, 3704, 42004, 2886, 3214, 3964, 32153, 670],\n"," 1037: [3869,\n"," 2892,\n"," 43460,\n"," 1150,\n"," 3604,\n"," 5352,\n"," 4144,\n"," 1747,\n"," 1078,\n"," 7757],\n"," 1038: [39435,\n"," 917,\n"," 6316,\n"," 2883,\n"," 5398,\n"," 31049,\n"," 33649,\n"," 781,\n"," 4682,\n"," 5703],\n"," 1039: [37386,\n"," 5738,\n"," 4886,\n"," 2796,\n"," 5451,\n"," 4723,\n"," 1563,\n"," 215,\n"," 2026,\n"," 27815],\n"," 1040: [7209,\n"," 38600,\n"," 2488,\n"," 2032,\n"," 4247,\n"," 5598,\n"," 2744,\n"," 778,\n"," 26078,\n"," 2772],\n"," 1041: [59315,\n"," 2844,\n"," 1144,\n"," 4707,\n"," 3296,\n"," 615,\n"," 33880,\n"," 6852,\n"," 4248,\n"," 8493],\n"," 1043: [3408, 665, 5128, 2025, 5111, 7482, 2930, 2910, 5574, 1461],\n"," 1044: [56885,\n"," 4888,\n"," 54997,\n"," 44161,\n"," 3703,\n"," 5231,\n"," 3304,\n"," 8253,\n"," 6612,\n"," 590],\n"," 1045: [572,\n"," 6405,\n"," 62113,\n"," 6672,\n"," 3672,\n"," 7386,\n"," 2311,\n"," 43987,\n"," 1843,\n"," 3707],\n"," 1046: [1733,\n"," 6927,\n"," 3481,\n"," 30820,\n"," 56563,\n"," 803,\n"," 1977,\n"," 986,\n"," 34336,\n"," 5437],\n"," 1047: [4831,\n"," 2902,\n"," 55288,\n"," 2964,\n"," 1914,\n"," 6053,\n"," 917,\n"," 2617,\n"," 4981,\n"," 4488],\n"," 1048: [7757, 342, 3069, 769, 784, 6887, 52973, 1224, 26828, 514],\n"," 1050: [1007, 2788, 3200, 3897, 932, 4629, 4377, 2749, 1719, 5318],\n"," 1051: [6587,\n"," 31658,\n"," 6230,\n"," 60069,\n"," 8914,\n"," 1865,\n"," 48877,\n"," 2784,\n"," 1547,\n"," 5927],\n"," 1052: [2449,\n"," 31437,\n"," 5127,\n"," 2917,\n"," 6458,\n"," 3306,\n"," 3235,\n"," 3615,\n"," 3895,\n"," 5279],\n"," 1053: [7743, 390, 5422, 4039, 43708, 7308, 256, 82, 8130, 3940]})"]},"metadata":{},"execution_count":6}],"source":["from collections import defaultdict\n","\n","# 순위 평가용 데이터를 작성한다\n","# 각 사용자에 대한 추천 영화는 해당 사용자가 아직 평가하지 않은 영화 중에서 10작품을 무작위로 선택한다\n","# 키는 사용자 ID, 값은 추천 아이템 ID 리스트\n","pred_user2items = defaultdict(list)\n","# 사용자가 이미 평가한 영화를 얻는다\n","user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","for user_id in unique_user_ids:\n"," user_index = user_id2index[user_id]\n"," movie_indexes = np.argsort(-pred_matrix[user_index, :])\n"," for movie_index in movie_indexes:\n"," movie_id = unique_movie_ids[movie_index]\n"," if movie_id not in user_evaluated_movies[user_id]:\n"," pred_user2items[user_id].append(movie_id)\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","pred_user2items"]},{"cell_type":"code","execution_count":7,"id":"093cd4cf","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":841},"id":"093cd4cf","executionInfo":{"status":"ok","timestamp":1672119817003,"user_tz":-540,"elapsed":19,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"8f80e008-2422-4456-9c47-9c8bff03db04"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","6150 2 648 2.0 868244699 \n","6531 2 733 3.0 868244562 \n","6813 2 736 3.0 868244698 \n","7113 2 780 3.0 868244698 \n","7506 2 786 3.0 868244562 \n","7661 2 802 2.0 868244603 \n","7779 2 858 2.0 868245645 \n","8077 2 1049 3.0 868245920 \n","8127 2 1073 3.0 868244562 \n","8381 2 1210 4.0 868245644 \n","8771 2 1356 3.0 868244603 \n","9097 2 1544 3.0 868245920 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","6150 Mission: Impossible (1996) \n","6531 Rock, The (1996) \n","6813 Twister (1996) \n","7113 Independence Day (a.k.a. ID4) (1996) \n","7506 Eraser (1996) \n","7661 Phenomenon (1996) \n","7779 Godfather, The (1972) \n","8077 Ghost and the Darkness, The (1996) \n","8127 Willy Wonka & the Chocolate Factory (1971) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","8771 Star Trek: First Contact (1996) \n","9097 Lost World: Jurassic Park, The (Jurassic Park ... \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","6150 [Action, Adventure, Mystery, Thriller] \n","6531 [Action, Adventure, Thriller] \n","6813 [Action, Adventure, Romance, Thriller] \n","7113 [Action, Adventure, Sci-Fi, War] \n","7506 [Action, Drama, Thriller] \n","7661 [Drama, Romance] \n","7779 [Crime, Drama] \n","8077 [Action, Adventure] \n","8127 [Children, Comedy, Fantasy, Musical] \n","8381 [Action, Adventure, Sci-Fi] \n","8771 [Action, Adventure, Sci-Fi, Thriller] \n","9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","6150 [confusing, confusing plot, memorable sequence... 12.0 \n","6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n","6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n","7113 [action, alien invasion, aliens, will smith, a... 14.0 \n","7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n","7661 [interesting concept, own, john travolta, john... 15.0 \n","7779 [oscar (best picture), marlon brando, classic,... 9.0 \n","8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n","8127 [based on a book, roald dahl, based on a book,... 20.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n","8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n","9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":7}],"source":["# user_id=2인 사용자가 학습 데이터에서 평가를 부여한 영화 목록\n","movielens_train[movielens_train.user_id==2]"]},{"cell_type":"code","execution_count":8,"id":"1ecf4f28","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"1ecf4f28","executionInfo":{"status":"ok","timestamp":1672119817004,"user_tz":-540,"elapsed":16,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"a42a26a6-8ac2-4426-f9d8-92c2b0524147"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title genre \\\n","702 714 Dead Man (1995) [Drama, Mystery, Western] \n","4467 4560 Watchers (1988) [Horror, Sci-Fi] \n","5558 5656 Festival in Cannes (2001) [Drama] \n","\n"," tag \n","702 [jim jarmusch, beautiful, iggy pop!!!, johnny ... \n","4467 [based on a book, dean koontz] \n","5558 NaN "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
702714Dead Man (1995)[Drama, Mystery, Western][jim jarmusch, beautiful, iggy pop!!!, johnny ...
44674560Watchers (1988)[Horror, Sci-Fi][based on a book, dean koontz]
55585656Festival in Cannes (2001)[Drama]NaN
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":8}],"source":["# user_id=2에 대한 추천(5656, 714, 4560)\n","movies[movies.movie_id.isin([5656, 714, 4560])]"]},{"cell_type":"code","execution_count":8,"id":"dff2694d","metadata":{"id":"dff2694d","executionInfo":{"status":"ok","timestamp":1672119817004,"user_tz":-540,"elapsed":13,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/SVD.ipynb b/chapter5/colab/SVD.ipynb index 4035a2b..b2c9df3 100644 --- a/chapter5/colab/SVD.ipynb +++ b/chapter5/colab/SVD.ipynb @@ -1,2001 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "4fb1700b", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/SVD.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "05fd5c37", - "metadata": {}, - "source": [ - "# 특이값 분석(SVD)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ae97b569", - "metadata": {}, - "outputs": [], - "source": [ - "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", - "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", - "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", - "\n", - "# 데이터 다운로드와 압축 풀기\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "395a5042", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", - "import pandas as pd\n", - "\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "1bcee149", - "metadata": {}, - "outputs": [], - "source": [ - "# 결손값을 채우는 방법\n", - "fillna_with_zero = True\n", - "# 인자 수\n", - "factors = 5" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "2cf8dfe4", - "metadata": {}, - "outputs": [], - "source": [ - "# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다.\n", - "user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n", - "user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n", - "movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n", - "if fillna_with_zero:\n", - " matrix = user_movie_matrix.fillna(0).to_numpy()\n", - "else:\n", - " matrix = user_movie_matrix.fillna(movielens_train.rating.mean()).to_numpy()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "22c0909b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ユーザー数=1000, アイテム数=6673, 密度=0.02\n" - ] - } - ], - "source": [ - "# 희소 정보\n", - "user_num = len(user_movie_matrix.index)\n", - "item_num = len(user_movie_matrix.columns)\n", - "non_null_num = user_num*item_num - user_movie_matrix.isnull().sum().sum()\n", - "non_null_ratio = non_null_num / (user_num*item_num)\n", - "\n", - "print(f'ユーザー数={user_num}, アイテム数={item_num}, 密度={non_null_ratio:.2f}')" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "7f1f97fa", - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "from scipy.sparse.linalg import svds\n", - "import numpy as np\n", - "\n", - "# 인자 수 k로 특이점 분석을 수행한다\n", - "P, S, Qt = svds(matrix, k=factors)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "65a9563b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "P: (1000, 5), S: (5,), Qt: (5, 6673), pred_matrix: (1000, 6673)\n" - ] - } - ], - "source": [ - "# 예측 평갓값 행렬\n", - "pred_matrix = np.dot(np.dot(P, np.diag(S)), Qt)\n", - "\n", - "print(f\"P: {P.shape}, S: {S.shape}, Qt: {Qt.shape}, pred_matrix: {pred_matrix.shape}\")" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "75ee52d8", - "metadata": {}, - "outputs": [], - "source": [ - "# 학습용에 나타나지 않은 사용자와 영화 예측 평갓값은 평균 평갓값으로 한다\n", - "average_score = movielens_train.rating.mean()\n", - "movie_rating_predict = movielens_test.copy()\n", - "pred_results = []\n", - "for i, row in movielens_test.iterrows():\n", - " user_id = row[\"user_id\"]\n", - " if user_id not in user_id2index or row[\"movie_id\"] not in movie_id2index:\n", - " pred_results.append(average_score)\n", - " continue\n", - " user_index = user_id2index[row[\"user_id\"]]\n", - " movie_index = movie_id2index[row[\"movie_id\"]]\n", - " pred_score = pred_matrix[user_index, movie_index]\n", - " pred_results.append(pred_score)\n", - "movie_rating_predict[\"rating_pred\"] = pred_results" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "2a761397", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "defaultdict(list,\n", - " {139: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 4963, 6539, 4886],\n", - " 149: [2571, 4226, 2762, 3996, 5349, 47, 2028, 4963, 6539, 4886],\n", - " 182: [3793, 47, 6874, 2329, 4011, 7361, 2706, 4878, 2502, 6333],\n", - " 215: [2329, 3147, 6711, 527, 2683, 3948, 8360, 5218, 6502, 1246],\n", - " 281: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 326: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 351: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 357: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 426: [2502,\n", - " 33794,\n", - " 7147,\n", - " 3949,\n", - " 5902,\n", - " 4848,\n", - " 33166,\n", - " 33493,\n", - " 2791,\n", - " 5995],\n", - " 456: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 459: [4886, 318, 2997, 4995, 4973, 50, 3897, 7361, 1923, 4878],\n", - " 494: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 517: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 524: [7153, 3996, 3793, 5349, 6539, 4886, 7361, 593, 1923, 5989],\n", - " 556: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 588: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 589: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 590: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", - " 601: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 621: [5952, 7153, 4306, 4995, 2329, 3897, 1682, 4011, 4878, 3147],\n", - " 634: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 672: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 4963, 6539],\n", - " 701: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 719: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 745: [5952, 7153, 4306, 6539, 5445, 356, 6377, 6874, 4973, 2329],\n", - " 757: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 775: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 780: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", - " 785: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 788: [296, 4973, 3897, 1089, 4878, 2502, 1961, 1196, 1136, 4034],\n", - " 870: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 987: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 988: [7153, 4963, 6539, 5445, 6377, 6874, 4995, 2329, 4027, 7361],\n", - " 1020: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 22: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 26: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 30: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 34: [4993, 4226, 5952, 2858, 7153, 4306, 3996, 5349, 4963, 6539],\n", - " 38: [4226, 2858, 4306, 3793, 2028, 6539, 4886, 5445, 2997, 2329],\n", - " 50: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 53: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 54: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 67: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 71: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 76: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 88: [4226, 4306, 3996, 47, 2028, 296, 1704, 318, 2997, 4995],\n", - " 89: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 94: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 95: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 100: [2959, 4993, 3578, 4226, 2762, 7153, 4306, 3793, 5349, 4963],\n", - " 101: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 102: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 103: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 111: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 116: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 118: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 143: [7153, 6539, 6377, 6874, 50, 4027, 7361, 6711, 7438, 1617],\n", - " 144: [4886, 1704, 3897, 2706, 5989, 2502, 3147, 1784, 3114, 2396],\n", - " 162: [4226, 4963, 1704, 318, 2997, 2329, 50, 3897, 4011, 4027],\n", - " 172: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 173: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 187: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 193: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 208: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 210: [2959, 5952, 3793, 5349, 47, 2028, 4963, 6539, 4886, 5445],\n", - " 214: [2959, 5952, 2858, 7153, 4306, 2028, 6539, 318, 6377, 6874],\n", - " 228: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 232: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 236: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 259: [3578, 318, 6377, 4011, 4027, 1089, 1961, 4034, 2542, 3481],\n", - " 260: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 267: [4306, 4886, 1704, 1682, 4011, 4878, 5989, 2502, 3147, 6711],\n", - " 268: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 271: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 274: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", - " 287: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 292: [4963, 6874, 5989, 6333, 3147, 527, 1517, 2542, 1617, 3481],\n", - " 296: [3996, 1704, 6377, 1270, 1196, 1136, 2716, 2683, 1517, 2918],\n", - " 303: [5349, 4963, 6539, 1704, 2997, 6377, 4995, 4973, 2329, 50],\n", - " 307: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 47],\n", - " 310: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 315: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 320: [3793, 5349, 1704, 318, 2997, 6874, 2329, 50, 3897, 4027],\n", - " 332: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 339: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 343: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 355: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 364: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 365: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 368: [2858, 2762, 2028, 1704, 318, 4995, 2329, 593, 4878, 5989],\n", - " 381: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 382: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 383: [2959, 4306, 5349, 47, 4963, 6539, 356, 6874, 2329, 3897],\n", - " 391: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 396: [4993, 3578, 4226, 5952, 2762, 7153, 3996, 3793, 5349, 47],\n", - " 398: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 406: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 409: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 410: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 416: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 418: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 419: [2959, 3578, 7153, 2028, 6539, 4886, 1704, 356, 6377, 6874],\n", - " 421: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 424: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 432: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 434: [4226, 47, 296, 318, 2997, 4973, 2329, 50, 3897, 1682],\n", - " 436: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 438: [2959, 4993, 4226, 5952, 7153, 5349, 47, 2028, 4963, 6539],\n", - " 441: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 446: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 452: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 3996, 47, 2028],\n", - " 460: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 463: [7153, 4963, 6377, 6874, 4973, 3897, 1682, 4011, 7361, 2291],\n", - " 468: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 469: [2959, 47, 4995, 2329, 50, 3897, 1682, 4011, 7361, 1089],\n", - " 472: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 476: [4886, 1704, 4995, 1270, 1923, 2291, 2502, 2716, 4034, 1517],\n", - " 480: [7153, 6539, 1704, 318, 6377, 6874, 2329, 1682, 7361, 1089],\n", - " 482: [2858, 2762, 3996, 5445, 2997, 6874, 4973, 50, 3897, 1682],\n", - " 493: [4993, 5952, 7153, 593, 2502, 6333, 1196, 1136, 7438, 589],\n", - " 496: [2959, 4993, 3578, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n", - " 501: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 504: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 505: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 511: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 516: [6377, 50, 1682, 4027, 7361, 2918, 2542, 3052, 3481, 364],\n", - " 525: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 530: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 531: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 533: [4886, 4995, 2329, 4011, 2706, 4878, 3147, 2683, 6365, 1732],\n", - " 536: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 543: [2028, 2329, 3897, 4011, 1923, 5989, 4034, 2542, 3052, 3481],\n", - " 547: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 549: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 553: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 558: [2762, 7153, 4886, 2997, 6874, 4973, 2329, 4011, 7361, 4878],\n", - " 562: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 567: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 571: [2959, 4993, 5952, 2762, 7153, 3996, 296, 356, 6874, 4027],\n", - " 572: [3578, 3996, 1704, 318, 4973, 1961, 4034, 2918, 3481, 1784],\n", - " 577: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 581: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 585: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n", - " 593: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 604: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 605: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 609: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 628: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 629: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 645: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 650: [2959, 5952, 7153, 4306, 2028, 296, 4963, 6539, 4886, 5445],\n", - " 656: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 657: [4306, 3793, 4963, 4886, 4011, 2502, 6333, 1136, 1517, 7438],\n", - " 669: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 678: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 683: [2959, 4226, 5952, 2858, 2762, 3996, 296, 4963, 1704, 318],\n", - " 688: [3996, 2028, 5445, 318, 4973, 3897, 1682, 7361, 4878, 2291],\n", - " 689: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 693: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 716: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 4963, 6539],\n", - " 720: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 734: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 735: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 739: [4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n", - " 755: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 758: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 767: [2959, 4226, 2858, 4306, 3793, 47, 2028, 296, 4963, 4886],\n", - " 769: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 786: [2959, 4993, 5952, 2858, 7153, 5349, 47, 2028, 296, 4963],\n", - " 789: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 792: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 795: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 798: [6377, 2329, 4011, 4027, 7361, 2706, 2502, 4034, 3052, 3481],\n", - " 799: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 802: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 806: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 807: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 816: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 827: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 828: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 846: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 859: [2858, 4306, 47, 4963, 318, 2997, 6377, 6874, 4995, 2329],\n", - " 862: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 876: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 881: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 885: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 886: [4993, 4226, 5952, 7153, 4306, 3793, 5349, 4963, 6539, 4886],\n", - " 889: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 890: [4993, 4226, 5952, 7153, 4306, 5349, 47, 4963, 6539, 4886],\n", - " 891: [4963, 6539, 5445, 6377, 6874, 4995, 2329, 4011, 4027, 7361],\n", - " 896: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 897: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 898: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 908: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 922: [4226, 2858, 3996, 3793, 2028, 296, 5445, 1704, 2997, 6874],\n", - " 930: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 938: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 956: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 958: [4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 47],\n", - " 968: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 977: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 990: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 996: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 1004: [4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 7153,\n", - " 4306,\n", - " 3996,\n", - " 3793,\n", - " 5349,\n", - " 4963],\n", - " 1005: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1008: [2028,\n", - " 4963,\n", - " 6539,\n", - " 4995,\n", - " 3897,\n", - " 1682,\n", - " 4011,\n", - " 4027,\n", - " 1089,\n", - " 2706],\n", - " 1029: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1037: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1050: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 4: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 8: [296, 356, 318, 6377, 4995, 4973, 7361, 2706, 5989, 2502],\n", - " 18: [4993, 4226, 5952, 7153, 3793, 5349, 4886, 5445, 2997, 6874],\n", - " 36: [7153, 3996, 47, 4886, 5445, 1704, 318, 2997, 6874, 4995],\n", - " 47: [5349, 47, 4963, 4886, 1704, 356, 6377, 3897, 1682, 4027],\n", - " 59: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 62: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 77: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 79: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 80: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 119: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 122: [4993, 4226, 5952, 7153, 4306, 3793, 5349, 47, 2028, 4963],\n", - " 125: [2329, 1682, 7361, 4878, 7438, 1617, 5418, 8961, 1527, 8636],\n", - " 126: [4973, 7361, 4878, 6711, 2542, 3052, 6365, 3948, 3751, 5378],\n", - " 132: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 141: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 154: [4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 2028, 4963],\n", - " 155: [4226, 7153, 3793, 5349, 4963, 6539, 4886, 5445, 6377, 6874],\n", - " 163: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 164: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 170: [4993, 3578, 5952, 7153, 3996, 5349, 2028, 6539, 5445, 1704],\n", - " 171: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 6539],\n", - " 176: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 190: [4226, 2858, 47, 4963, 1704, 318, 2997, 6377, 4973, 2329],\n", - " 197: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 198: [2997, 4973, 4011, 5989, 2291, 6333, 3147, 4034, 2542, 1291],\n", - " 199: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 212: [3578, 2858, 4886, 1704, 6377, 2329, 3897, 1682, 4011, 2706],\n", - " 221: [2959, 4993, 3578, 4226, 2762, 7153, 4306, 3996, 5349, 4963],\n", - " 223: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 226: [2959, 2858, 7153, 4963, 6539, 2997, 6377, 6874, 4973, 1682],\n", - " 241: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 247: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 249: [2858, 3996, 2997, 6874, 4973, 3897, 6333, 527, 7438, 1617],\n", - " 254: [4993, 4226, 7153, 3793, 4963, 6539, 4886, 1704, 6377, 6874],\n", - " 264: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 273: [2959, 4226, 2762, 4306, 3996, 5349, 47, 296, 4963, 4886],\n", - " 275: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3793, 5349, 47],\n", - " 276: [4963, 6539, 4995, 4027, 2716, 1517, 2918, 3052, 110, 5418],\n", - " 293: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 294: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 295: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n", - " 318: [4226, 2329, 1923, 4878, 3147, 32, 2692, 293, 223, 3949],\n", - " 321: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 345: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", - " 346: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 348: [1580, 1196, 1136, 2918, 3052, 3481, 5418, 1265, 1210, 6365],\n", - " 349: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 354: [4226, 3793, 47, 2028, 296, 4886, 2997, 6874, 2329, 50],\n", - " 359: [5349, 47, 2028, 4886, 1704, 356, 318, 6874, 2329, 50],\n", - " 366: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 369: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 384: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 390: [47, 6539, 6377, 3897, 7361, 1580, 1089, 1270, 2291, 1961],\n", - " 392: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 403: [2959, 4993, 3578, 5952, 2858, 4306, 3996, 5349, 2028, 6539],\n", - " 407: [4226, 2858, 5349, 1704, 318, 4995, 4973, 3897, 4011, 4027],\n", - " 414: [3578, 4226, 7153, 4306, 3793, 5349, 2028, 6539, 4886, 5445],\n", - " 431: [2959, 2571, 3578, 4226, 2858, 2762, 3996, 3793, 5349, 47],\n", - " 454: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 465: [2571, 5952, 7153, 3793, 2028, 4963, 4886, 5445, 3897, 2291],\n", - " 481: [2762, 2997, 6377, 4973, 4027, 5989, 1961, 3147, 527, 2918],\n", - " 485: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47, 2028],\n", - " 503: [3996, 5349, 47, 4963, 1704, 50, 3897, 4011, 4027, 1089],\n", - " 513: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 545: [3578, 4306, 3793, 5349, 4963, 6539, 5445, 1682, 2706, 1923],\n", - " 552: [2571, 4993, 3578, 5952, 7153, 3996, 3793, 5349, 47, 2028],\n", - " 554: [2571, 3578, 4226, 5349, 47, 6539, 4886, 5445, 4995, 2329],\n", - " 555: [5445, 1704, 4973, 1682, 7361, 1923, 5989, 4034, 3481, 480],\n", - " 561: [1704, 318, 2997, 4995, 50, 3897, 1682, 4027, 7361, 1089],\n", - " 565: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 5349, 47, 2028],\n", - " 591: [2959, 2571, 4993, 4226, 5952, 2762, 7153, 4306, 3793, 5349],\n", - " 617: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 622: [3578, 4226, 3996, 3793, 6539, 4886, 2997, 6377, 6874, 4995],\n", - " 623: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 633: [2762, 4963, 5445, 2997, 4995, 4973, 2329, 1682, 4011, 1270],\n", - " 636: [2959, 4226, 2858, 4306, 3996, 5349, 47, 4886, 1704, 356],\n", - " 638: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 641: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 646: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 654: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 655: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 658: [4993, 5952, 2762, 7153, 4306, 3996, 3793, 5349, 4886, 5445],\n", - " 660: [4993, 4226, 5952, 7153, 3793, 5349, 6539, 4886, 5445, 1704],\n", - " 661: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 677: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 714: [3793, 5349, 47, 4011, 7361, 1089, 593, 4878, 5989, 1961],\n", - " 715: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 723: [2858, 3996, 3793, 2028, 296, 4963, 4886, 5445, 1704, 2997],\n", - " 731: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", - " 742: [1089, 593, 2502, 527, 7438, 1258, 858, 2692, 1732, 2396],\n", - " 743: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 752: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 772: [2959, 2571, 4226, 5952, 2858, 2762, 7153, 5349, 47, 2028],\n", - " 814: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 823: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 826: [2762, 4306, 5349, 4886, 2329, 5989, 2291, 2502, 2716, 527],\n", - " 833: [2959, 3578, 4226, 2762, 7153, 47, 6539, 4886, 6377, 6874],\n", - " 838: [2959, 7153, 4306, 3996, 3793, 5349, 4963, 4886, 6874, 4995],\n", - " 842: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 852: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 878: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 887: [4993, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349, 4963],\n", - " 895: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 899: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 902: [2997, 6377, 4973, 1682, 4027, 1923, 4878, 2291, 2502, 1961],\n", - " 907: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 928: [7153, 3793, 5349, 2028, 6539, 1704, 6874, 4995, 1682, 4027],\n", - " 936: [3793, 5349, 318, 1580, 1270, 2706, 5989, 2291, 2716, 4034],\n", - " 964: [4993, 5952, 2858, 2762, 7153, 4306, 3996, 3793, 5349, 5445],\n", - " 970: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 972: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 4963, 6539],\n", - " 1001: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1013: [2959, 3578, 4226, 2858, 2762, 3793, 5349, 47, 6539, 4886],\n", - " 1018: [3578, 4963, 1704, 6377, 4995, 50, 4027, 2502, 1961, 527],\n", - " 1028: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1031: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1035: [3996, 4963, 6539, 1704, 2997, 4995, 4973, 2329, 50, 3897],\n", - " 1038: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1045: [5952, 3996, 4973, 1580, 6711, 2716, 2542, 480, 5418, 2692],\n", - " 1046: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 35: [3578, 5952, 7153, 3793, 5349, 296, 6539, 4886, 1704, 356],\n", - " 72: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 91: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 106: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", - " 128: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 158: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 160: [2959, 4993, 4226, 5952, 2762, 7153, 4306, 5349, 47, 296],\n", - " 175: [4306, 3996, 3793, 5349, 4963, 6539, 5445, 1704, 4995, 3897],\n", - " 196: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n", - " 203: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 206: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", - " 207: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 255: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 265: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n", - " 340: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 404: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 433: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 440: [3578, 4306, 3996, 3793, 5349, 4963, 4886, 5445, 1704, 2997],\n", - " 444: [2959, 4993, 3578, 4226, 5952, 7153, 3996, 3793, 5349, 2028],\n", - " 450: [2959, 7153, 6539, 1704, 6377, 6874, 1682, 4011, 7361, 1923],\n", - " 479: [4993, 3578, 5952, 7153, 4306, 3996, 3793, 5349, 47, 4963],\n", - " 491: [4993, 7153, 4306, 3793, 2028, 296, 6539, 4886, 5445, 2997],\n", - " 506: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 523: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 539: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 541: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n", - " 616: [4306, 3996, 3793, 5349, 4963, 1704, 6377, 6874, 4995, 4973],\n", - " 647: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 659: [2959, 3578, 3793, 5349, 2028, 4963, 6539, 4886, 2329, 50],\n", - " 695: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 700: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 707: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 748: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 759: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 784: [4973, 1682, 4011, 4027, 7361, 1089, 5989, 2502, 3147, 6711],\n", - " 790: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 835: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 844: [2959, 4993, 4226, 5952, 7153, 4306, 3996, 5349, 47, 2028],\n", - " 871: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 875: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 892: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 919: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 935: [2959, 4993, 5952, 2858, 2762, 7153, 4306, 5349, 47, 296],\n", - " 942: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 960: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 1006: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1026: [2858, 3996, 47, 296, 6539, 5445, 356, 318, 2997, 50],\n", - " 1047: [5952, 6539, 1704, 1580, 593, 5989, 2291, 1961, 1196, 2716],\n", - " 65: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 3996, 5349, 47],\n", - " 135: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 152: [2959, 4993, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n", - " 166: [2959, 2571, 3578, 4226, 2858, 7153, 4306, 3996, 3793, 5349],\n", - " 179: [2959, 4226, 5952, 2858, 2762, 7153, 3793, 47, 6539, 1704],\n", - " 188: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 217: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 253: [2959, 4993, 4226, 5952, 2762, 7153, 4306, 5349, 47, 2028],\n", - " 262: [2858, 6377, 2329, 3897, 1682, 4027, 1089, 1270, 5989, 1136],\n", - " 277: [2959, 2571, 3578, 4226, 2858, 4306, 3996, 3793, 5349, 47],\n", - " 289: [6377, 4878, 2502, 6333, 2683, 7438, 2542, 1291, 5418, 589],\n", - " 300: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", - " 302: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 47, 4963, 6539],\n", - " 308: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 311: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 328: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 329: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 344: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 347: [2959, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 47, 2028],\n", - " 358: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 3996, 3793, 47],\n", - " 474: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 483: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 509: [4993, 3578, 4306, 6539, 5445, 318, 2997, 6377, 4973, 3897],\n", - " 578: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 643: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 679: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 680: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 691: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n", - " 702: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 708: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 730: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 751: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 773: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 803: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", - " 809: [2959, 2571, 3578, 4226, 7153, 4306, 3996, 3793, 5349, 2028],\n", - " 820: [2762, 1704, 318, 4995, 2329, 3897, 4011, 5989, 3147, 4034],\n", - " 824: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 863: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 865: [4993, 5952, 2762, 3996, 3793, 5349, 2028, 6539, 4886, 5445],\n", - " 867: [2762, 47, 6874, 4995, 1682, 4011, 7361, 1089, 593, 4878],\n", - " 911: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 915: [2959, 3578, 4226, 7153, 3996, 3793, 5349, 296, 6539, 1704],\n", - " 939: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 946: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 954: [4993, 4226, 5952, 2858, 7153, 4306, 3996, 5349, 296, 4963],\n", - " 957: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n", - " 971: [3578, 2762, 7153, 4306, 47, 4963, 6539, 5445, 6377, 6874],\n", - " 986: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 992: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", - " 92: [2959, 4306, 3996, 296, 4886, 2997, 6377, 6874, 2329, 50],\n", - " 107: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 131: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 138: [3996, 3793, 5349, 4963, 4886, 2997, 4973, 3897, 1682, 4027],\n", - " 145: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 183: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 209: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 230: [2571, 4993, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n", - " 263: [7153, 4306, 2028, 356, 2997, 6874, 3897, 1682, 4011, 1580],\n", - " 305: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 314: [2959, 2571, 4226, 7153, 4306, 5349, 47, 4963, 6539, 4886],\n", - " 319: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 325: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3793],\n", - " 341: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n", - " 471: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 488: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 495: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 532: [2959, 5952, 7153, 4306, 3793, 5349, 47, 6539, 4886, 5445],\n", - " 564: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 574: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 603: [3578, 4226, 2762, 3996, 3793, 5349, 47, 4963, 6539, 4886],\n", - " 674: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 753: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 810: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 830: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 841: [2959, 5952, 2858, 2762, 7153, 4306, 5349, 47, 2028, 296],\n", - " 856: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 921: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 933: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n", - " 976: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 37: [2858, 2762, 5349, 4963, 6539, 4886, 5445, 356, 2997, 6377],\n", - " 83: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 248: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 387: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 428: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 451: [2959, 3578, 2858, 4306, 3996, 3793, 5349, 47, 2028, 296],\n", - " 584: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 874: [4226, 318, 50, 4011, 1089, 4878, 2291, 1961, 6711, 2716],\n", - " 995: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n", - " 10: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 19: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 41: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 43: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 44: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 45: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 51: [2959, 2571, 4993, 5952, 7153, 4306, 3793, 5349, 47, 6539],\n", - " 56: [2959, 2762, 3996, 3793, 5349, 47, 4963, 6539, 4886, 5445],\n", - " 61: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 68: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 69: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 78: [4993, 3578, 5952, 7153, 4306, 5349, 47, 4963, 6539, 4886],\n", - " 110: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 115: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 129: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 150: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 168: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 169: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 178: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 186: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 47],\n", - " 201: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 239: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 256: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 257: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3793, 5349],\n", - " 272: [2571, 2762, 47, 2028, 4963, 4886, 1704, 318, 6874, 4995],\n", - " 279: [4993, 4226, 2858, 4963, 5445, 1704, 4995, 4973, 2329, 50],\n", - " 280: [2959, 3578, 4226, 2762, 3996, 3793, 5349, 47, 296, 4963],\n", - " 285: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 298: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n", - " 301: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 304: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 3793, 5349],\n", - " 333: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 334: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 338: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n", - " 350: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 353: [3578, 2858, 2762, 4306, 3793, 5349, 4963, 6539, 4886, 5445],\n", - " 378: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 386: [2571, 4993, 5952, 7153, 4306, 3793, 5349, 47, 4963, 6539],\n", - " 397: [4993, 5952, 7153, 4306, 3996, 3793, 5349, 47, 4963, 6539],\n", - " 420: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 439: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 449: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 2028, 296, 4963],\n", - " 478: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 487: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", - " 489: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 500: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 510: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 521: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 522: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 527: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 529: [2959, 2571, 4993, 3578, 5952, 2858, 2762, 7153, 3996, 3793],\n", - " 535: [4226, 2858, 2762, 7153, 3996, 5349, 4963, 6539, 4886, 1704],\n", - " 550: [2959, 2571, 3578, 4226, 7153, 4306, 3793, 5349, 47, 2028],\n", - " 560: [2571, 4993, 3578, 5952, 7153, 4306, 3996, 3793, 5349, 2028],\n", - " 573: [2959, 4993, 3578, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", - " 579: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 2028, 4963, 6539],\n", - " 582: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 583: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 587: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 596: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3793, 5349],\n", - " 602: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 618: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 624: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 627: [2959, 5952, 7153, 3793, 47, 6539, 4886, 5445, 6377, 6874],\n", - " 635: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 639: [2571, 3578, 4226, 2858, 2762, 3996, 2028, 4963, 5445, 1704],\n", - " 640: [2762, 3996, 296, 4963, 1704, 2997, 4995, 2329, 50, 3897],\n", - " 642: [4993, 4226, 5952, 7153, 4306, 5349, 4963, 6539, 4886, 5445],\n", - " 649: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 652: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 662: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 671: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", - " 675: [2959, 2571, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n", - " 684: [2959, 2571, 4993, 3578, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 703: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 712: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 726: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 727: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 744: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 746: [2959, 2571, 4993, 4226, 2762, 7153, 5349, 2028, 4963, 6539],\n", - " 761: [2959, 3578, 4226, 3996, 5349, 47, 2028, 296, 1704, 2997],\n", - " 765: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 766: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 771: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 776: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 797: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 812: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 815: [2959, 3578, 4226, 2858, 3996, 3793, 47, 4963, 6539, 4886],\n", - " 818: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 821: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", - " 822: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 831: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 834: [4993, 3578, 5952, 7153, 3996, 3793, 5349, 47, 296, 4886],\n", - " 837: [4226, 5952, 2762, 7153, 4306, 3793, 5349, 47, 2028, 4963],\n", - " 839: [2959, 2571, 3578, 2858, 4306, 3996, 3793, 5349, 47, 2028],\n", - " 840: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 851: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 3996, 3793, 5349],\n", - " 855: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 857: [2959, 4226, 2858, 2762, 4306, 3996, 3793, 5349, 296, 4886],\n", - " 868: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", - " 904: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 905: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", - " 906: [3578, 7153, 4306, 3793, 5349, 47, 6539, 4886, 5445, 318],\n", - " 924: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 925: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 927: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 940: [2959, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 5349, 47],\n", - " 948: [2959, 3578, 7153, 4306, 3793, 5349, 4963, 6539, 4886, 5445],\n", - " 953: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 966: [3578, 2762, 4306, 3996, 47, 2028, 6539, 1704, 318, 6874],\n", - " 967: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 2028],\n", - " 979: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 980: [2571, 3578, 5952, 4306, 3793, 5349, 47, 2028, 4963, 6539],\n", - " 983: [4993, 3578, 47, 2028, 296, 4963, 1704, 2997, 6874, 4973],\n", - " 984: [2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", - " 991: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 1009: [2959,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2762,\n", - " 4306,\n", - " 3996,\n", - " 3793,\n", - " 5349],\n", - " 1011: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1014: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2762,\n", - " 7153,\n", - " 4306,\n", - " 3996],\n", - " 1021: [4993, 5952, 7153, 3793, 5349, 47, 296, 4963, 6539, 4886],\n", - " 1030: [2959, 3578, 4226, 2858, 7153, 4306, 3996, 5349, 47, 2028],\n", - " 1033: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 7153,\n", - " 3996,\n", - " 3793],\n", - " 1039: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1040: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1053: [2959, 4993, 4226, 5952, 7153, 3996, 47, 2028, 296, 4963],\n", - " 704: [2858, 7153, 296, 6539, 356, 318, 2997, 6377, 6874, 2329],\n", - " 934: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 42: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 73: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 5349, 4963, 6539],\n", - " 82: [2959, 3578, 2858, 2762, 7153, 3996, 3793, 5349, 47, 2028],\n", - " 159: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 161: [4306, 2028, 4963, 1704, 356, 2997, 4995, 2329, 1682, 4011],\n", - " 192: [4993, 5952, 2762, 7153, 3996, 2028, 6539, 356, 318, 4995],\n", - " 216: [2959, 3578, 4226, 7153, 2028, 296, 6539, 5445, 1704, 356],\n", - " 219: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 290: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 379: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", - " 389: [4306, 296, 4963, 356, 4973, 50, 1089, 1270, 2706, 1923],\n", - " 400: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", - " 462: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 507: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 600: [2571, 4993, 5952, 2762, 7153, 4306, 3996, 3793, 5349, 47],\n", - " 721: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 793: [2959, 2858, 2762, 3996, 3793, 5349, 47, 2028, 296, 4963],\n", - " 912: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 932: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 949: [4993, 4226, 5952, 4306, 47, 6539, 356, 6874, 2329, 50],\n", - " 1025: [2959,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2762,\n", - " 7153,\n", - " 4306,\n", - " 3996,\n", - " 3793],\n", - " 46: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", - " 74: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 342: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", - " 508: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n", - " 580: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", - " 774: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", - " 783: [2959, 3578, 4226, 2858, 2762, 3793, 5349, 47, 2028, 296],\n", - " 1002: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1023: [4226, 2762, 4306, 3996, 3793, 5349, 2028, 296, 4963, 5445],\n", - " 1048: [3578, 3996, 3793, 4963, 356, 6377, 4973, 1682, 4027, 7361],\n", - " 23: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 96: [2959, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", - " 124: [2959, 3578, 4226, 2858, 2762, 4306, 3793, 5349, 47, 296],\n", - " 136: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 148: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 189: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 213: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 243: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", - " 323: [2959, 2571, 3578, 4226, 2858, 2762, 4306, 3996, 3793, 5349],\n", - " 352: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 429: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", - " 625: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 808: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 843: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 847: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 963: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 975: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 998: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 47, 2028, 296],\n", - " 75: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", - " 427: [2959, 4993, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n", - " 466: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n", - " 801: [2858, 2762, 5445, 356, 318, 2997, 4995, 50, 3897, 1682],\n", - " 848: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 888: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n", - " 191: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 227: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 245: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n", - " 380: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 47],\n", - " 408: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 668: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 747: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 754: [2959, 2858, 2762, 2028, 296, 1704, 356, 318, 2997, 4995],\n", - " 11: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 16: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 81: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n", - " 86: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 97: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", - " 151: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 235: [5952, 2762, 4306, 3996, 3793, 5349, 2028, 4963, 4886, 1704],\n", - " 251: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 258: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 278: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 388: [2959, 4993, 3578, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n", - " 551: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 606: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 614: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 681: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 686: [2959, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", - " 711: [2959, 2571, 3578, 4226, 2858, 2762, 7153, 4306, 3996, 3793],\n", - " 718: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 873: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 962: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 985: [2959, 2571, 4226, 2858, 2762, 47, 2028, 296, 4963, 6539],\n", - " 993: [2959, 2571, 2858, 2762, 7153, 47, 296, 6539, 1704, 356],\n", - " 184: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 246: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 373: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 4306, 3996, 3793],\n", - " 430: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 534: [2959, 2571, 3578, 4226, 2858, 2762, 7153, 4306, 3996, 3793],\n", - " 805: [2959, 4226, 2858, 2762, 3996, 3793, 5349, 47, 2028, 296],\n", - " 58: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 112: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 367: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 548: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 791: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 909: [3578, 4226, 7153, 4306, 3996, 5349, 47, 2028, 296, 4963],\n", - " 1041: [4306, 3793, 5349, 5445, 356, 6377, 4995, 3897, 1682, 4027],\n", - " 13: [2959, 2571, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 5349],\n", - " 869: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 415: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 477: [3578, 2858, 4306, 3793, 5349, 4963, 6539, 4886, 5445, 1704],\n", - " 569: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 694: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 729: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 741: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 965: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 17: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n", - " 40: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 114: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 137: [4226, 5952, 7153, 6539, 4886, 5445, 356, 6377, 6874, 4973],\n", - " 153: [2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", - " 211: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 286: [4993, 5952, 2762, 7153, 4306, 3996, 5349, 47, 296, 4963],\n", - " 330: [3578, 4226, 4306, 3996, 2028, 4963, 6539, 4886, 5445, 1704],\n", - " 336: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 372: [4226, 2858, 7153, 4306, 3996, 5349, 47, 2028, 296, 4963],\n", - " 376: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 5349],\n", - " 412: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 447: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 467: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 490: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 518: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 608: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 3793],\n", - " 619: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", - " 644: [2959, 4226, 2858, 2762, 7153, 3996, 3793, 47, 296, 4963],\n", - " 667: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", - " 698: [4306, 5349, 6539, 4886, 356, 2997, 4973, 4027, 1580, 1270],\n", - " 709: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 728: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 733: [2959, 4226, 5952, 2858, 2762, 4306, 3996, 3793, 5349, 47],\n", - " 777: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 5349],\n", - " 813: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 832: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 893: [2959, 4993, 4226, 2858, 2762, 7153, 4306, 3996, 3793, 5349],\n", - " 901: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 937: [2571, 4993, 3578, 4226, 2858, 3996, 3793, 5349, 2028, 296],\n", - " 947: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 5349],\n", - " 362: [3578, 2858, 4306, 3996, 5349, 47, 2028, 296, 4963, 6539],\n", - " 375: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 599: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 632: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 779: [2959, 2571, 4993, 3578, 5952, 2858, 2762, 4306, 5349, 47],\n", - " 1022: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1034: [2959, 2571, 4993, 4226, 2858, 2762, 4306, 3996, 3793, 47],\n", - " 819: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 2: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 3: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 4306, 3996, 3793],\n", - " 104: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 105: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 218: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 250: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 313: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 377: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 413: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 576: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 586: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 595: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 610: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 613: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 637: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", - " 663: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 740: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 787: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 804: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 866: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 883: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 941: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 1007: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 817: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 6: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3793, 5349],\n", - " 7: [2959, 2571, 4993, 3578, 5952, 2858, 7153, 3996, 3793, 5349],\n", - " 14: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", - " 24: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 57: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 60: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 64: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 84: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 90: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 98: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 113: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", - " 120: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 123: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 157: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 194: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 200: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 204: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 205: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 225: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 229: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 237: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 242: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 252: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 266: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 270: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 282: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 297: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 309: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 316: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 327: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 356: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 393: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 394: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 395: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", - " 399: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 401: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", - " 402: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 47, 2028],\n", - " 405: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 417: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 3793],\n", - " 422: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 437: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 455: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 461: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 473: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 484: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 499: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 526: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 537: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 542: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", - " 557: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 563: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 570: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 575: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 594: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 607: [2959, 2571, 4993, 3578, 2858, 2762, 7153, 4306, 3996, 3793],\n", - " 631: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 651: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 664: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 685: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 690: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 696: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", - " 724: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 738: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 762: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 763: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 770: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 796: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 800: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 829: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 836: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 882: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 900: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 903: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 914: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 918: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 920: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 945: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 950: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3793],\n", - " 952: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 982: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 989: [2959, 4993, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n", - " 1016: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2762,\n", - " 7153,\n", - " 4306,\n", - " 3996],\n", - " 1019: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1044: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1051: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 917: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 951: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 997: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 174: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 676: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 764: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 1052: [2571,\n", - " 4993,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306,\n", - " 3996,\n", - " 3793],\n", - " 5: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 27: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 33: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 134: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 142: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 156: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 167: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 177: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 224: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 269: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 312: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 360: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 385: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 411: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 464: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 568: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 612: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 630: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 706: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 737: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 749: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 756: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 811: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 853: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 884: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 955: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", - " 1032: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 1043: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306],\n", - " 370: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 670: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 923: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 931: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 969: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 12: [2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", - " 597: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 195: [2959, 2571, 5952, 7153, 3793, 5349, 47, 6539, 4886, 5445],\n", - " 337: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 910: [2571, 3578, 2762, 5349, 2028, 4963, 6539, 5445, 356, 2997],\n", - " 63: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 70: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 3996, 3793, 5349],\n", - " 99: [2959, 2571, 3578, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n", - " 121: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 130: [2959, 2571, 3578, 4226, 2762, 4306, 3793, 5349, 47, 2028],\n", - " 244: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 291: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 335: [2959, 2571, 5952, 2858, 2762, 7153, 4306, 3793, 5349, 47],\n", - " 361: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 470: [4993, 3578, 7153, 4306, 3793, 5349, 2028, 4963, 4886, 1704],\n", - " 497: [2959, 3578, 5952, 2858, 3996, 3793, 5349, 47, 2028, 296],\n", - " 620: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 648: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 666: [3578, 2762, 4306, 3793, 5349, 2028, 4963, 6539, 4886, 5445],\n", - " 710: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 794: [2959, 2571, 4993, 3578, 5952, 2858, 4306, 3996, 3793, 5349],\n", - " 854: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 861: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 87: [2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", - " 317: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 324: [2858, 2762, 4306, 3996, 3793, 47, 2028, 296, 4963, 6539],\n", - " 502: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 559: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 973: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 1015: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2762,\n", - " 7153,\n", - " 4306,\n", - " 3996],\n", - " 1017: [2959,\n", - " 2571,\n", - " 3578,\n", - " 4226,\n", - " 2858,\n", - " 2762,\n", - " 4306,\n", - " 3996,\n", - " 3793,\n", - " 5349],\n", - " 85: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 306: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 653: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 371: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 566: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", - " 331: [3578, 5952, 2762, 4306, 3996, 3793, 5349, 47, 2028, 296],\n", - " 665: [2959, 2571, 4993, 3578, 2762, 7153, 4306, 3793, 5349, 47],\n", - " 872: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 879: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 486: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n", - " 864: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", - " 52: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 288: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 9: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 117: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 3996, 3793],\n", - " 220: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 544: [3578, 4226, 2858, 2762, 4306, 3996, 5349, 2028, 4963, 6539],\n", - " 999: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 458: [2959, 2571, 4993, 5952, 7153, 4306, 3996, 5349, 47, 2028],\n", - " 974: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 546: [2959, 2571, 4226, 2858, 2762, 47, 2028, 296, 4963, 1704],\n", - " 55: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 363: [2571, 3578, 4226, 2858, 2762, 4306, 3996, 3793, 5349, 47],\n", - " 445: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 4306, 3996, 3793],\n", - " 492: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 5349],\n", - " 234: [4993, 3578, 5952, 2762, 7153, 3793, 5349, 47, 2028, 296],\n", - " 1027: [2571, 4993, 5952, 2858, 2762, 7153, 4306, 3996, 3793, 47],\n", - " 140: [2959, 2571, 4993, 3578, 5952, 2762, 4306, 3996, 3793, 5349],\n", - " 926: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", - " 781: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 825: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 913: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 5349],\n", - " 453: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 540: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", - " 66: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 185: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 222: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 498: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 994: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 165: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 202: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 180: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", - " 93: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 261: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 435: [4993, 3578, 5952, 2858, 2762, 7153, 4306, 3996, 3793, 5349],\n", - " 322: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 238: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 425: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 512: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 725: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", - " 732: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 108: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 592: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 443: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 916: [2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 5349],\n", - " 736: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 5349],\n", - " 961: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", - " 1012: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2762,\n", - " 7153,\n", - " 4306,\n", - " 3996],\n", - " 515: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 978: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 28: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 475: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", - " 598: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 943: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 520: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 697: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 849: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 1003: [2959,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 7153,\n", - " 4306,\n", - " 3996,\n", - " 3793],\n", - " 705: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 48: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 29: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 231: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 699: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 448: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", - " 750: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", - " 782: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 860: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 768: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 127: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", - " 894: [2959,\n", - " 2571,\n", - " 4993,\n", - " 3578,\n", - " 4226,\n", - " 5952,\n", - " 2858,\n", - " 2762,\n", - " 7153,\n", - " 4306]})" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from collections import defaultdict\n", - "\n", - "# 각 사용자에 대한 추천 영화는 해당 사용자 아직 평가하지 않은 영화 중에서 예측값이 높은 순으로 한다\n", - "pred_user2items = defaultdict(list)\n", - "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", - "for user_id in movielens_train.user_id.unique():\n", - " if user_id not in user_id2index:\n", - " continue\n", - " user_index = user_id2index[row[\"user_id\"]]\n", - " movie_indexes = np.argsort(-pred_matrix[user_index, :])\n", - " for movie_index in movie_indexes:\n", - " movie_id = user_movie_matrix.columns[movie_index]\n", - " if movie_id not in user_evaluated_movies[user_id]:\n", - " pred_user2items[user_id].append(movie_id)\n", - " if len(pred_user2items[user_id]) == 10:\n", - " break\n", - "\n", - "pred_user2items" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "14a45925", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "6150 2 648 2.0 868244699 \n", - "6531 2 733 3.0 868244562 \n", - "6813 2 736 3.0 868244698 \n", - "7113 2 780 3.0 868244698 \n", - "7506 2 786 3.0 868244562 \n", - "7661 2 802 2.0 868244603 \n", - "7779 2 858 2.0 868245645 \n", - "8077 2 1049 3.0 868245920 \n", - "8127 2 1073 3.0 868244562 \n", - "8381 2 1210 4.0 868245644 \n", - "8771 2 1356 3.0 868244603 \n", - "9097 2 1544 3.0 868245920 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "6150 Mission: Impossible (1996) \n", - "6531 Rock, The (1996) \n", - "6813 Twister (1996) \n", - "7113 Independence Day (a.k.a. ID4) (1996) \n", - "7506 Eraser (1996) \n", - "7661 Phenomenon (1996) \n", - "7779 Godfather, The (1972) \n", - "8077 Ghost and the Darkness, The (1996) \n", - "8127 Willy Wonka & the Chocolate Factory (1971) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "8771 Star Trek: First Contact (1996) \n", - "9097 Lost World: Jurassic Park, The (Jurassic Park ... \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "6150 [Action, Adventure, Mystery, Thriller] \n", - "6531 [Action, Adventure, Thriller] \n", - "6813 [Action, Adventure, Romance, Thriller] \n", - "7113 [Action, Adventure, Sci-Fi, War] \n", - "7506 [Action, Drama, Thriller] \n", - "7661 [Drama, Romance] \n", - "7779 [Crime, Drama] \n", - "8077 [Action, Adventure] \n", - "8127 [Children, Comedy, Fantasy, Musical] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "8771 [Action, Adventure, Sci-Fi, Thriller] \n", - "9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "6150 [confusing, confusing plot, memorable sequence... 12.0 \n", - "6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n", - "6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n", - "7113 [action, alien invasion, aliens, will smith, a... 14.0 \n", - "7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n", - "7661 [interesting concept, own, john travolta, john... 15.0 \n", - "7779 [oscar (best picture), marlon brando, classic,... 9.0 \n", - "8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n", - "8127 [based on a book, roald dahl, based on a book,... 20.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n", - "8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n", - "9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 " - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2인 사용자가 학습 데이터에서 평가를 부여한 영화 목록\n", - "movielens_train[movielens_train.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "47543b66", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306]" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pred_user2items[2]" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "ac73e03a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
24872571Matrix, The (1999)[Action, Sci-Fi, Thriller][artificial intelligence, hackers, heroine in ...
28742959Fight Club (1999)[Action, Crime, Drama, Thriller][based on a book, chuck palahniuk, edward nort...
48994993Lord of the Rings: The Fellowship of the Ring,...[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "2487 2571 Matrix, The (1999) \n", - "2874 2959 Fight Club (1999) \n", - "4899 4993 Lord of the Rings: The Fellowship of the Ring,... \n", - "\n", - " genre \\\n", - "2487 [Action, Sci-Fi, Thriller] \n", - "2874 [Action, Crime, Drama, Thriller] \n", - "4899 [Action, Adventure, Fantasy] \n", - "\n", - " tag \n", - "2487 [artificial intelligence, hackers, heroine in ... \n", - "2874 [based on a book, chuck palahniuk, edward nort... \n", - "4899 [based on a book, big budget, new zealand, sce... " - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2에 대한 추천(2959, 4993, 5952)\n", - "movies[movies.movie_id.isin([2959, 2571, 4993])]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "93ce1b7a", - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","id":"4fb1700b","metadata":{"id":"4fb1700b"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/SVD.ipynb)"]},{"cell_type":"markdown","id":"05fd5c37","metadata":{"id":"05fd5c37"},"source":["# 특이값 분석(SVD)"]},{"cell_type":"code","execution_count":1,"id":"ae97b569","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ae97b569","executionInfo":{"status":"ok","timestamp":1672119890093,"user_tz":-540,"elapsed":4522,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"52b03925-db6b-47e9-e26c-764d0eba7a5b"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:43:01-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 65.4MB/s in 1.0s \n","\n","2022-12-27 05:43:02 (65.4 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"395a5042","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"395a5042","executionInfo":{"status":"ok","timestamp":1672119956404,"user_tz":-540,"elapsed":66319,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"d2cab3b4-2205-46e7-c70a-e37c5d6b611c"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"1bcee149","metadata":{"id":"1bcee149","executionInfo":{"status":"ok","timestamp":1672119956405,"user_tz":-540,"elapsed":30,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 결손값을 채우는 방법\n","fillna_with_zero = True\n","# 인자 수\n","factors = 5"]},{"cell_type":"code","execution_count":4,"id":"2cf8dfe4","metadata":{"id":"2cf8dfe4","executionInfo":{"status":"ok","timestamp":1672119956405,"user_tz":-540,"elapsed":25,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다.\n","user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n","user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n","movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n","if fillna_with_zero:\n"," matrix = user_movie_matrix.fillna(0).to_numpy()\n","else:\n"," matrix = user_movie_matrix.fillna(movielens_train.rating.mean()).to_numpy()\n"]},{"cell_type":"code","execution_count":5,"id":"22c0909b","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"22c0909b","executionInfo":{"status":"ok","timestamp":1672119956405,"user_tz":-540,"elapsed":22,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"73d96ca8-6fd5-42b8-c085-568f67d0d2e5"},"outputs":[{"output_type":"stream","name":"stdout","text":["ユーザー数=1000, アイテム数=6673, 密度=0.02\n"]}],"source":["# 희소 정보\n","user_num = len(user_movie_matrix.index)\n","item_num = len(user_movie_matrix.columns)\n","non_null_num = user_num*item_num - user_movie_matrix.isnull().sum().sum()\n","non_null_ratio = non_null_num / (user_num*item_num)\n","\n","print(f'ユーザー数={user_num}, アイテム数={item_num}, 密度={non_null_ratio:.2f}')"]},{"cell_type":"code","execution_count":6,"id":"7f1f97fa","metadata":{"scrolled":true,"id":"7f1f97fa","executionInfo":{"status":"ok","timestamp":1672119957450,"user_tz":-540,"elapsed":607,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["from scipy.sparse.linalg import svds\n","import numpy as np\n","\n","# 인자 수 k로 특이점 분석을 수행한다\n","P, S, Qt = svds(matrix, k=factors)"]},{"cell_type":"code","execution_count":7,"id":"65a9563b","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"65a9563b","executionInfo":{"status":"ok","timestamp":1672119957451,"user_tz":-540,"elapsed":4,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"b73e0f1a-457a-4e3f-866f-78010e4c4bd3"},"outputs":[{"output_type":"stream","name":"stdout","text":["P: (1000, 5), S: (5,), Qt: (5, 6673), pred_matrix: (1000, 6673)\n"]}],"source":["# 예측 평갓값 행렬\n","pred_matrix = np.dot(np.dot(P, np.diag(S)), Qt)\n","\n","print(f\"P: {P.shape}, S: {S.shape}, Qt: {Qt.shape}, pred_matrix: {pred_matrix.shape}\")"]},{"cell_type":"code","execution_count":8,"id":"75ee52d8","metadata":{"id":"75ee52d8","executionInfo":{"status":"ok","timestamp":1672119957898,"user_tz":-540,"elapsed":449,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 학습용에 나타나지 않은 사용자와 영화 예측 평갓값은 평균 평갓값으로 한다\n","average_score = movielens_train.rating.mean()\n","movie_rating_predict = movielens_test.copy()\n","pred_results = []\n","for i, row in movielens_test.iterrows():\n"," user_id = row[\"user_id\"]\n"," if user_id not in user_id2index or row[\"movie_id\"] not in movie_id2index:\n"," pred_results.append(average_score)\n"," continue\n"," user_index = user_id2index[row[\"user_id\"]]\n"," movie_index = movie_id2index[row[\"movie_id\"]]\n"," pred_score = pred_matrix[user_index, movie_index]\n"," pred_results.append(pred_score)\n","movie_rating_predict[\"rating_pred\"] = pred_results"]},{"cell_type":"code","execution_count":9,"id":"2a761397","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"2a761397","executionInfo":{"status":"ok","timestamp":1672119959233,"user_tz":-540,"elapsed":1343,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"275c7093-7ffa-4628-d041-649854a18e3a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {139: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 4963, 6539, 4886],\n"," 149: [2571, 4226, 2762, 3996, 5349, 47, 2028, 4963, 6539, 4886],\n"," 182: [3793, 47, 6874, 2329, 4011, 7361, 2706, 4878, 2502, 6333],\n"," 215: [2329, 3147, 6711, 527, 2683, 3948, 8360, 5218, 6502, 1246],\n"," 281: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 326: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 351: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 357: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 426: [2502,\n"," 33794,\n"," 7147,\n"," 3949,\n"," 5902,\n"," 4848,\n"," 33166,\n"," 33493,\n"," 2791,\n"," 5995],\n"," 456: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 459: [4886, 318, 2997, 4995, 4973, 50, 3897, 7361, 1923, 4878],\n"," 494: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 517: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 524: [7153, 3996, 3793, 5349, 6539, 4886, 7361, 593, 1923, 5989],\n"," 556: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 588: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 589: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 590: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 601: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 621: [5952, 7153, 4306, 4995, 2329, 3897, 1682, 4011, 4878, 3147],\n"," 634: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 672: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 4963, 6539],\n"," 701: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 719: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 745: [5952, 7153, 4306, 6539, 5445, 356, 6377, 6874, 4973, 2329],\n"," 757: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 775: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 780: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 785: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 788: [296, 4973, 3897, 1089, 4878, 2502, 1961, 1196, 1136, 4034],\n"," 870: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 987: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 988: [7153, 4963, 6539, 5445, 6377, 6874, 4995, 2329, 4027, 7361],\n"," 1020: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 22: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 26: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 30: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 34: [4993, 4226, 5952, 2858, 7153, 4306, 3996, 5349, 4963, 6539],\n"," 38: [4226, 2858, 4306, 3793, 2028, 6539, 4886, 5445, 2997, 2329],\n"," 50: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 53: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 54: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 67: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 71: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 76: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 88: [4226, 4306, 3996, 47, 2028, 296, 1704, 318, 2997, 4995],\n"," 89: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 94: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 95: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 100: [2959, 4993, 3578, 4226, 2762, 7153, 4306, 3793, 5349, 4963],\n"," 101: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 102: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 103: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 111: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 116: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 118: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 143: [7153, 6539, 6377, 6874, 50, 4027, 7361, 6711, 7438, 1617],\n"," 144: [4886, 1704, 3897, 2706, 5989, 2502, 3147, 1784, 3114, 2396],\n"," 162: [4226, 4963, 1704, 318, 2997, 2329, 50, 3897, 4011, 4027],\n"," 172: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 173: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 187: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 193: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 208: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 210: [2959, 5952, 3793, 5349, 47, 2028, 4963, 6539, 4886, 5445],\n"," 214: [2959, 5952, 2858, 7153, 4306, 2028, 6539, 318, 6377, 6874],\n"," 228: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 232: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 236: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 259: [3578, 318, 6377, 4011, 4027, 1089, 1961, 4034, 2542, 3481],\n"," 260: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 267: [4306, 4886, 1704, 1682, 4011, 4878, 5989, 2502, 3147, 6711],\n"," 268: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 271: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 274: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 287: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 292: [4963, 6874, 5989, 6333, 3147, 527, 1517, 2542, 1617, 3481],\n"," 296: [3996, 1704, 6377, 1270, 1196, 1136, 2716, 2683, 1517, 2918],\n"," 303: [5349, 4963, 6539, 1704, 2997, 6377, 4995, 4973, 2329, 50],\n"," 307: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 47],\n"," 310: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 315: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 320: [3793, 5349, 1704, 318, 2997, 6874, 2329, 50, 3897, 4027],\n"," 332: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 339: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 343: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 355: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 364: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 365: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 368: [2858, 2762, 2028, 1704, 318, 4995, 2329, 593, 4878, 5989],\n"," 381: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 382: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 383: [2959, 4306, 5349, 47, 4963, 6539, 356, 6874, 2329, 3897],\n"," 391: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 396: [4993, 3578, 4226, 5952, 2762, 7153, 3996, 3793, 5349, 47],\n"," 398: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 406: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 409: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 410: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 416: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 418: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 419: [2959, 3578, 7153, 2028, 6539, 4886, 1704, 356, 6377, 6874],\n"," 421: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 424: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 432: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 434: [4226, 47, 296, 318, 2997, 4973, 2329, 50, 3897, 1682],\n"," 436: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 438: [2959, 4993, 4226, 5952, 7153, 5349, 47, 2028, 4963, 6539],\n"," 441: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 446: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 452: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 3996, 47, 2028],\n"," 460: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 463: [7153, 4963, 6377, 6874, 4973, 3897, 1682, 4011, 7361, 2291],\n"," 468: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 469: [2959, 47, 4995, 2329, 50, 3897, 1682, 4011, 7361, 1089],\n"," 472: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 476: [4886, 1704, 4995, 1270, 1923, 2291, 2502, 2716, 4034, 1517],\n"," 480: [7153, 6539, 1704, 318, 6377, 6874, 2329, 1682, 7361, 1089],\n"," 482: [2858, 2762, 3996, 5445, 2997, 6874, 4973, 50, 3897, 1682],\n"," 493: [4993, 5952, 7153, 593, 2502, 6333, 1196, 1136, 7438, 589],\n"," 496: [2959, 4993, 3578, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n"," 501: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 504: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 505: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 511: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 516: [6377, 50, 1682, 4027, 7361, 2918, 2542, 3052, 3481, 364],\n"," 525: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 530: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 531: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 533: [4886, 4995, 2329, 4011, 2706, 4878, 3147, 2683, 6365, 1732],\n"," 536: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 543: [2028, 2329, 3897, 4011, 1923, 5989, 4034, 2542, 3052, 3481],\n"," 547: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 549: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 553: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 558: [2762, 7153, 4886, 2997, 6874, 4973, 2329, 4011, 7361, 4878],\n"," 562: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 567: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 571: [2959, 4993, 5952, 2762, 7153, 3996, 296, 356, 6874, 4027],\n"," 572: [3578, 3996, 1704, 318, 4973, 1961, 4034, 2918, 3481, 1784],\n"," 577: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 581: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 585: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 593: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 604: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 605: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 609: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 628: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 629: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 645: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 650: [2959, 5952, 7153, 4306, 2028, 296, 4963, 6539, 4886, 5445],\n"," 656: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 657: [4306, 3793, 4963, 4886, 4011, 2502, 6333, 1136, 1517, 7438],\n"," 669: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 678: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 683: [2959, 4226, 5952, 2858, 2762, 3996, 296, 4963, 1704, 318],\n"," 688: [3996, 2028, 5445, 318, 4973, 3897, 1682, 7361, 4878, 2291],\n"," 689: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 693: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 716: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 4963, 6539],\n"," 720: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 734: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 735: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 739: [4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n"," 755: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 758: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 767: [2959, 4226, 2858, 4306, 3793, 47, 2028, 296, 4963, 4886],\n"," 769: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 786: [2959, 4993, 5952, 2858, 7153, 5349, 47, 2028, 296, 4963],\n"," 789: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 792: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 795: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 798: [6377, 2329, 4011, 4027, 7361, 2706, 2502, 4034, 3052, 3481],\n"," 799: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 802: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 806: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 807: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 816: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 827: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 828: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 846: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 859: [2858, 4306, 47, 4963, 318, 2997, 6377, 6874, 4995, 2329],\n"," 862: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 876: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 881: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 885: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 886: [4993, 4226, 5952, 7153, 4306, 3793, 5349, 4963, 6539, 4886],\n"," 889: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 890: [4993, 4226, 5952, 7153, 4306, 5349, 47, 4963, 6539, 4886],\n"," 891: [4963, 6539, 5445, 6377, 6874, 4995, 2329, 4011, 4027, 7361],\n"," 896: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 897: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 898: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 908: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 922: [4226, 2858, 3996, 3793, 2028, 296, 5445, 1704, 2997, 6874],\n"," 930: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 938: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 956: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 958: [4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 47],\n"," 968: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 977: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 990: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 996: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 1004: [4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 7153,\n"," 4306,\n"," 3996,\n"," 3793,\n"," 5349,\n"," 4963],\n"," 1005: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1008: [2028,\n"," 4963,\n"," 6539,\n"," 4995,\n"," 3897,\n"," 1682,\n"," 4011,\n"," 4027,\n"," 1089,\n"," 2706],\n"," 1029: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1037: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1050: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 4: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 8: [296, 356, 318, 6377, 4995, 4973, 7361, 2706, 5989, 2502],\n"," 18: [4993, 4226, 5952, 7153, 3793, 5349, 4886, 5445, 2997, 6874],\n"," 36: [7153, 3996, 47, 4886, 5445, 1704, 318, 2997, 6874, 4995],\n"," 47: [5349, 47, 4963, 4886, 1704, 356, 6377, 3897, 1682, 4027],\n"," 59: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 62: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 77: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 79: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 80: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 119: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 122: [4993, 4226, 5952, 7153, 4306, 3793, 5349, 47, 2028, 4963],\n"," 125: [2329, 1682, 7361, 4878, 7438, 1617, 5418, 8961, 1527, 8636],\n"," 126: [4973, 7361, 4878, 6711, 2542, 3052, 6365, 3948, 3751, 5378],\n"," 132: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 141: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 154: [4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 2028, 4963],\n"," 155: [4226, 7153, 3793, 5349, 4963, 6539, 4886, 5445, 6377, 6874],\n"," 163: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 164: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 170: [4993, 3578, 5952, 7153, 3996, 5349, 2028, 6539, 5445, 1704],\n"," 171: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 6539],\n"," 176: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 190: [4226, 2858, 47, 4963, 1704, 318, 2997, 6377, 4973, 2329],\n"," 197: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 198: [2997, 4973, 4011, 5989, 2291, 6333, 3147, 4034, 2542, 1291],\n"," 199: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 212: [3578, 2858, 4886, 1704, 6377, 2329, 3897, 1682, 4011, 2706],\n"," 221: [2959, 4993, 3578, 4226, 2762, 7153, 4306, 3996, 5349, 4963],\n"," 223: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 226: [2959, 2858, 7153, 4963, 6539, 2997, 6377, 6874, 4973, 1682],\n"," 241: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 247: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 249: [2858, 3996, 2997, 6874, 4973, 3897, 6333, 527, 7438, 1617],\n"," 254: [4993, 4226, 7153, 3793, 4963, 6539, 4886, 1704, 6377, 6874],\n"," 264: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 273: [2959, 4226, 2762, 4306, 3996, 5349, 47, 296, 4963, 4886],\n"," 275: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3793, 5349, 47],\n"," 276: [4963, 6539, 4995, 4027, 2716, 1517, 2918, 3052, 110, 5418],\n"," 293: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 294: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 295: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n"," 318: [4226, 2329, 1923, 4878, 3147, 32, 2692, 293, 223, 3949],\n"," 321: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 345: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 346: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 348: [1580, 1196, 1136, 2918, 3052, 3481, 5418, 1265, 1210, 6365],\n"," 349: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 354: [4226, 3793, 47, 2028, 296, 4886, 2997, 6874, 2329, 50],\n"," 359: [5349, 47, 2028, 4886, 1704, 356, 318, 6874, 2329, 50],\n"," 366: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 369: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 384: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 390: [47, 6539, 6377, 3897, 7361, 1580, 1089, 1270, 2291, 1961],\n"," 392: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 403: [2959, 4993, 3578, 5952, 2858, 4306, 3996, 5349, 2028, 6539],\n"," 407: [4226, 2858, 5349, 1704, 318, 4995, 4973, 3897, 4011, 4027],\n"," 414: [3578, 4226, 7153, 4306, 3793, 5349, 2028, 6539, 4886, 5445],\n"," 431: [2959, 2571, 3578, 4226, 2858, 2762, 3996, 3793, 5349, 47],\n"," 454: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 465: [2571, 5952, 7153, 3793, 2028, 4963, 4886, 5445, 3897, 2291],\n"," 481: [2762, 2997, 6377, 4973, 4027, 5989, 1961, 3147, 527, 2918],\n"," 485: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47, 2028],\n"," 503: [3996, 5349, 47, 4963, 1704, 50, 3897, 4011, 4027, 1089],\n"," 513: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 545: [3578, 4306, 3793, 5349, 4963, 6539, 5445, 1682, 2706, 1923],\n"," 552: [2571, 4993, 3578, 5952, 7153, 3996, 3793, 5349, 47, 2028],\n"," 554: [2571, 3578, 4226, 5349, 47, 6539, 4886, 5445, 4995, 2329],\n"," 555: [5445, 1704, 4973, 1682, 7361, 1923, 5989, 4034, 3481, 480],\n"," 561: [1704, 318, 2997, 4995, 50, 3897, 1682, 4027, 7361, 1089],\n"," 565: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 5349, 47, 2028],\n"," 591: [2959, 2571, 4993, 4226, 5952, 2762, 7153, 4306, 3793, 5349],\n"," 617: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 622: [3578, 4226, 3996, 3793, 6539, 4886, 2997, 6377, 6874, 4995],\n"," 623: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 633: [2762, 4963, 5445, 2997, 4995, 4973, 2329, 1682, 4011, 1270],\n"," 636: [2959, 4226, 2858, 4306, 3996, 5349, 47, 4886, 1704, 356],\n"," 638: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 641: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 646: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 654: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 655: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 658: [4993, 5952, 2762, 7153, 4306, 3996, 3793, 5349, 4886, 5445],\n"," 660: [4993, 4226, 5952, 7153, 3793, 5349, 6539, 4886, 5445, 1704],\n"," 661: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 677: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 714: [3793, 5349, 47, 4011, 7361, 1089, 593, 4878, 5989, 1961],\n"," 715: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 723: [2858, 3996, 3793, 2028, 296, 4963, 4886, 5445, 1704, 2997],\n"," 731: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 742: [1089, 593, 2502, 527, 7438, 1258, 858, 2692, 1732, 2396],\n"," 743: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 752: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 772: [2959, 2571, 4226, 5952, 2858, 2762, 7153, 5349, 47, 2028],\n"," 814: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 823: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 826: [2762, 4306, 5349, 4886, 2329, 5989, 2291, 2502, 2716, 527],\n"," 833: [2959, 3578, 4226, 2762, 7153, 47, 6539, 4886, 6377, 6874],\n"," 838: [2959, 7153, 4306, 3996, 3793, 5349, 4963, 4886, 6874, 4995],\n"," 842: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 852: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 878: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 887: [4993, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349, 4963],\n"," 895: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 899: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 902: [2997, 6377, 4973, 1682, 4027, 1923, 4878, 2291, 2502, 1961],\n"," 907: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 928: [7153, 3793, 5349, 2028, 6539, 1704, 6874, 4995, 1682, 4027],\n"," 936: [3793, 5349, 318, 1580, 1270, 2706, 5989, 2291, 2716, 4034],\n"," 964: [4993, 5952, 2858, 2762, 7153, 4306, 3996, 3793, 5349, 5445],\n"," 970: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 972: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 4963, 6539],\n"," 1001: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1013: [2959, 3578, 4226, 2858, 2762, 3793, 5349, 47, 6539, 4886],\n"," 1018: [3578, 4963, 1704, 6377, 4995, 50, 4027, 2502, 1961, 527],\n"," 1028: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1031: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1035: [3996, 4963, 6539, 1704, 2997, 4995, 4973, 2329, 50, 3897],\n"," 1038: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1045: [5952, 3996, 4973, 1580, 6711, 2716, 2542, 480, 5418, 2692],\n"," 1046: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 35: [3578, 5952, 7153, 3793, 5349, 296, 6539, 4886, 1704, 356],\n"," 72: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 91: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 106: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 128: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 158: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 160: [2959, 4993, 4226, 5952, 2762, 7153, 4306, 5349, 47, 296],\n"," 175: [4306, 3996, 3793, 5349, 4963, 6539, 5445, 1704, 4995, 3897],\n"," 196: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 203: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 206: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 207: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 255: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 265: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 340: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 404: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 433: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 440: [3578, 4306, 3996, 3793, 5349, 4963, 4886, 5445, 1704, 2997],\n"," 444: [2959, 4993, 3578, 4226, 5952, 7153, 3996, 3793, 5349, 2028],\n"," 450: [2959, 7153, 6539, 1704, 6377, 6874, 1682, 4011, 7361, 1923],\n"," 479: [4993, 3578, 5952, 7153, 4306, 3996, 3793, 5349, 47, 4963],\n"," 491: [4993, 7153, 4306, 3793, 2028, 296, 6539, 4886, 5445, 2997],\n"," 506: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 523: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 539: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 541: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 616: [4306, 3996, 3793, 5349, 4963, 1704, 6377, 6874, 4995, 4973],\n"," 647: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 659: [2959, 3578, 3793, 5349, 2028, 4963, 6539, 4886, 2329, 50],\n"," 695: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 700: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 707: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 748: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 759: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 784: [4973, 1682, 4011, 4027, 7361, 1089, 5989, 2502, 3147, 6711],\n"," 790: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 835: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 844: [2959, 4993, 4226, 5952, 7153, 4306, 3996, 5349, 47, 2028],\n"," 871: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 875: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 892: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 919: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 935: [2959, 4993, 5952, 2858, 2762, 7153, 4306, 5349, 47, 296],\n"," 942: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 960: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 1006: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1026: [2858, 3996, 47, 296, 6539, 5445, 356, 318, 2997, 50],\n"," 1047: [5952, 6539, 1704, 1580, 593, 5989, 2291, 1961, 1196, 2716],\n"," 65: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 3996, 5349, 47],\n"," 135: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 152: [2959, 4993, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n"," 166: [2959, 2571, 3578, 4226, 2858, 7153, 4306, 3996, 3793, 5349],\n"," 179: [2959, 4226, 5952, 2858, 2762, 7153, 3793, 47, 6539, 1704],\n"," 188: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 217: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 253: [2959, 4993, 4226, 5952, 2762, 7153, 4306, 5349, 47, 2028],\n"," 262: [2858, 6377, 2329, 3897, 1682, 4027, 1089, 1270, 5989, 1136],\n"," 277: [2959, 2571, 3578, 4226, 2858, 4306, 3996, 3793, 5349, 47],\n"," 289: [6377, 4878, 2502, 6333, 2683, 7438, 2542, 1291, 5418, 589],\n"," 300: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 302: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 47, 4963, 6539],\n"," 308: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 311: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 328: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 329: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 344: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 347: [2959, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 47, 2028],\n"," 358: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 3996, 3793, 47],\n"," 474: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 483: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 509: [4993, 3578, 4306, 6539, 5445, 318, 2997, 6377, 4973, 3897],\n"," 578: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 643: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 679: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 680: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 691: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 702: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 708: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 730: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 751: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 773: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 803: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 809: [2959, 2571, 3578, 4226, 7153, 4306, 3996, 3793, 5349, 2028],\n"," 820: [2762, 1704, 318, 4995, 2329, 3897, 4011, 5989, 3147, 4034],\n"," 824: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 863: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 865: [4993, 5952, 2762, 3996, 3793, 5349, 2028, 6539, 4886, 5445],\n"," 867: [2762, 47, 6874, 4995, 1682, 4011, 7361, 1089, 593, 4878],\n"," 911: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 915: [2959, 3578, 4226, 7153, 3996, 3793, 5349, 296, 6539, 1704],\n"," 939: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 946: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 954: [4993, 4226, 5952, 2858, 7153, 4306, 3996, 5349, 296, 4963],\n"," 957: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 971: [3578, 2762, 7153, 4306, 47, 4963, 6539, 5445, 6377, 6874],\n"," 986: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 992: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 92: [2959, 4306, 3996, 296, 4886, 2997, 6377, 6874, 2329, 50],\n"," 107: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 131: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 138: [3996, 3793, 5349, 4963, 4886, 2997, 4973, 3897, 1682, 4027],\n"," 145: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 183: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 209: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 230: [2571, 4993, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 263: [7153, 4306, 2028, 356, 2997, 6874, 3897, 1682, 4011, 1580],\n"," 305: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 314: [2959, 2571, 4226, 7153, 4306, 5349, 47, 4963, 6539, 4886],\n"," 319: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 325: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3793],\n"," 341: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 471: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 488: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 495: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 532: [2959, 5952, 7153, 4306, 3793, 5349, 47, 6539, 4886, 5445],\n"," 564: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 574: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 603: [3578, 4226, 2762, 3996, 3793, 5349, 47, 4963, 6539, 4886],\n"," 674: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 753: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 810: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 830: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 841: [2959, 5952, 2858, 2762, 7153, 4306, 5349, 47, 2028, 296],\n"," 856: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 921: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 933: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 976: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 37: [2858, 2762, 5349, 4963, 6539, 4886, 5445, 356, 2997, 6377],\n"," 83: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 248: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 387: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 428: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 451: [2959, 3578, 2858, 4306, 3996, 3793, 5349, 47, 2028, 296],\n"," 584: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 874: [4226, 318, 50, 4011, 1089, 4878, 2291, 1961, 6711, 2716],\n"," 995: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n"," 10: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 19: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 41: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 43: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 44: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 45: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 51: [2959, 2571, 4993, 5952, 7153, 4306, 3793, 5349, 47, 6539],\n"," 56: [2959, 2762, 3996, 3793, 5349, 47, 4963, 6539, 4886, 5445],\n"," 61: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 68: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 69: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 78: [4993, 3578, 5952, 7153, 4306, 5349, 47, 4963, 6539, 4886],\n"," 110: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 115: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 129: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 150: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 168: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 169: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 178: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 186: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 47],\n"," 201: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 239: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 256: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 257: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3793, 5349],\n"," 272: [2571, 2762, 47, 2028, 4963, 4886, 1704, 318, 6874, 4995],\n"," 279: [4993, 4226, 2858, 4963, 5445, 1704, 4995, 4973, 2329, 50],\n"," 280: [2959, 3578, 4226, 2762, 3996, 3793, 5349, 47, 296, 4963],\n"," 285: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 298: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n"," 301: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 304: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 3793, 5349],\n"," 333: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 334: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 338: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n"," 350: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 353: [3578, 2858, 2762, 4306, 3793, 5349, 4963, 6539, 4886, 5445],\n"," 378: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 386: [2571, 4993, 5952, 7153, 4306, 3793, 5349, 47, 4963, 6539],\n"," 397: [4993, 5952, 7153, 4306, 3996, 3793, 5349, 47, 4963, 6539],\n"," 420: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 439: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 449: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 2028, 296, 4963],\n"," 478: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 487: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 489: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 500: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 510: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 521: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 522: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 527: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 529: [2959, 2571, 4993, 3578, 5952, 2858, 2762, 7153, 3996, 3793],\n"," 535: [4226, 2858, 2762, 7153, 3996, 5349, 4963, 6539, 4886, 1704],\n"," 550: [2959, 2571, 3578, 4226, 7153, 4306, 3793, 5349, 47, 2028],\n"," 560: [2571, 4993, 3578, 5952, 7153, 4306, 3996, 3793, 5349, 2028],\n"," 573: [2959, 4993, 3578, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 579: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 2028, 4963, 6539],\n"," 582: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 583: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 587: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 596: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3793, 5349],\n"," 602: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 618: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 624: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 627: [2959, 5952, 7153, 3793, 47, 6539, 4886, 5445, 6377, 6874],\n"," 635: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 639: [2571, 3578, 4226, 2858, 2762, 3996, 2028, 4963, 5445, 1704],\n"," 640: [2762, 3996, 296, 4963, 1704, 2997, 4995, 2329, 50, 3897],\n"," 642: [4993, 4226, 5952, 7153, 4306, 5349, 4963, 6539, 4886, 5445],\n"," 649: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 652: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 662: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 671: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 675: [2959, 2571, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 684: [2959, 2571, 4993, 3578, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 703: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 712: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 726: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 727: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 744: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 746: [2959, 2571, 4993, 4226, 2762, 7153, 5349, 2028, 4963, 6539],\n"," 761: [2959, 3578, 4226, 3996, 5349, 47, 2028, 296, 1704, 2997],\n"," 765: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 766: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 771: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 776: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 797: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 812: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 815: [2959, 3578, 4226, 2858, 3996, 3793, 47, 4963, 6539, 4886],\n"," 818: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 821: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 822: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 831: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 834: [4993, 3578, 5952, 7153, 3996, 3793, 5349, 47, 296, 4886],\n"," 837: [4226, 5952, 2762, 7153, 4306, 3793, 5349, 47, 2028, 4963],\n"," 839: [2959, 2571, 3578, 2858, 4306, 3996, 3793, 5349, 47, 2028],\n"," 840: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 851: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 3996, 3793, 5349],\n"," 855: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 857: [2959, 4226, 2858, 2762, 4306, 3996, 3793, 5349, 296, 4886],\n"," 868: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 904: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 905: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 906: [3578, 7153, 4306, 3793, 5349, 47, 6539, 4886, 5445, 318],\n"," 924: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 925: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 927: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 940: [2959, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 5349, 47],\n"," 948: [2959, 3578, 7153, 4306, 3793, 5349, 4963, 6539, 4886, 5445],\n"," 953: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 966: [3578, 2762, 4306, 3996, 47, 2028, 6539, 1704, 318, 6874],\n"," 967: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 2028],\n"," 979: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 980: [2571, 3578, 5952, 4306, 3793, 5349, 47, 2028, 4963, 6539],\n"," 983: [4993, 3578, 47, 2028, 296, 4963, 1704, 2997, 6874, 4973],\n"," 984: [2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 991: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 1009: [2959,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2762,\n"," 4306,\n"," 3996,\n"," 3793,\n"," 5349],\n"," 1011: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1014: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2762,\n"," 7153,\n"," 4306,\n"," 3996],\n"," 1021: [4993, 5952, 7153, 3793, 5349, 47, 296, 4963, 6539, 4886],\n"," 1030: [2959, 3578, 4226, 2858, 7153, 4306, 3996, 5349, 47, 2028],\n"," 1033: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 7153,\n"," 3996,\n"," 3793],\n"," 1039: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1040: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1053: [2959, 4993, 4226, 5952, 7153, 3996, 47, 2028, 296, 4963],\n"," 704: [2858, 7153, 296, 6539, 356, 318, 2997, 6377, 6874, 2329],\n"," 934: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 42: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 73: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 5349, 4963, 6539],\n"," 82: [2959, 3578, 2858, 2762, 7153, 3996, 3793, 5349, 47, 2028],\n"," 159: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 161: [4306, 2028, 4963, 1704, 356, 2997, 4995, 2329, 1682, 4011],\n"," 192: [4993, 5952, 2762, 7153, 3996, 2028, 6539, 356, 318, 4995],\n"," 216: [2959, 3578, 4226, 7153, 2028, 296, 6539, 5445, 1704, 356],\n"," 219: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 290: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 379: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 389: [4306, 296, 4963, 356, 4973, 50, 1089, 1270, 2706, 1923],\n"," 400: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 462: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 507: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 600: [2571, 4993, 5952, 2762, 7153, 4306, 3996, 3793, 5349, 47],\n"," 721: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 793: [2959, 2858, 2762, 3996, 3793, 5349, 47, 2028, 296, 4963],\n"," 912: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 932: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 949: [4993, 4226, 5952, 4306, 47, 6539, 356, 6874, 2329, 50],\n"," 1025: [2959,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2762,\n"," 7153,\n"," 4306,\n"," 3996,\n"," 3793],\n"," 46: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 74: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 342: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 508: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n"," 580: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 774: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 783: [2959, 3578, 4226, 2858, 2762, 3793, 5349, 47, 2028, 296],\n"," 1002: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1023: [4226, 2762, 4306, 3996, 3793, 5349, 2028, 296, 4963, 5445],\n"," 1048: [3578, 3996, 3793, 4963, 356, 6377, 4973, 1682, 4027, 7361],\n"," 23: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 96: [2959, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 124: [2959, 3578, 4226, 2858, 2762, 4306, 3793, 5349, 47, 296],\n"," 136: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 148: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 189: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 213: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 243: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 323: [2959, 2571, 3578, 4226, 2858, 2762, 4306, 3996, 3793, 5349],\n"," 352: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 429: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 625: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 808: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 843: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 847: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 963: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 975: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 998: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 47, 2028, 296],\n"," 75: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 427: [2959, 4993, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n"," 466: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n"," 801: [2858, 2762, 5445, 356, 318, 2997, 4995, 50, 3897, 1682],\n"," 848: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 888: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n"," 191: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 227: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 245: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n"," 380: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 47],\n"," 408: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 668: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 747: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 754: [2959, 2858, 2762, 2028, 296, 1704, 356, 318, 2997, 4995],\n"," 11: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 16: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 81: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 86: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 97: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 151: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 235: [5952, 2762, 4306, 3996, 3793, 5349, 2028, 4963, 4886, 1704],\n"," 251: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 258: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 278: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 388: [2959, 4993, 3578, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 551: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 606: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 614: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 681: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 686: [2959, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 711: [2959, 2571, 3578, 4226, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 718: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 873: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 962: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 985: [2959, 2571, 4226, 2858, 2762, 47, 2028, 296, 4963, 6539],\n"," 993: [2959, 2571, 2858, 2762, 7153, 47, 296, 6539, 1704, 356],\n"," 184: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 246: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 373: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 4306, 3996, 3793],\n"," 430: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 534: [2959, 2571, 3578, 4226, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 805: [2959, 4226, 2858, 2762, 3996, 3793, 5349, 47, 2028, 296],\n"," 58: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 112: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 367: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 548: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 791: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 909: [3578, 4226, 7153, 4306, 3996, 5349, 47, 2028, 296, 4963],\n"," 1041: [4306, 3793, 5349, 5445, 356, 6377, 4995, 3897, 1682, 4027],\n"," 13: [2959, 2571, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 5349],\n"," 869: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 415: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 477: [3578, 2858, 4306, 3793, 5349, 4963, 6539, 4886, 5445, 1704],\n"," 569: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 694: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 729: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 741: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 965: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 17: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n"," 40: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 114: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 137: [4226, 5952, 7153, 6539, 4886, 5445, 356, 6377, 6874, 4973],\n"," 153: [2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 211: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 286: [4993, 5952, 2762, 7153, 4306, 3996, 5349, 47, 296, 4963],\n"," 330: [3578, 4226, 4306, 3996, 2028, 4963, 6539, 4886, 5445, 1704],\n"," 336: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 372: [4226, 2858, 7153, 4306, 3996, 5349, 47, 2028, 296, 4963],\n"," 376: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 5349],\n"," 412: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 447: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 467: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 490: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 518: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 608: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 3793],\n"," 619: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 644: [2959, 4226, 2858, 2762, 7153, 3996, 3793, 47, 296, 4963],\n"," 667: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 698: [4306, 5349, 6539, 4886, 356, 2997, 4973, 4027, 1580, 1270],\n"," 709: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 728: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 733: [2959, 4226, 5952, 2858, 2762, 4306, 3996, 3793, 5349, 47],\n"," 777: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 5349],\n"," 813: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 832: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 893: [2959, 4993, 4226, 2858, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 901: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 937: [2571, 4993, 3578, 4226, 2858, 3996, 3793, 5349, 2028, 296],\n"," 947: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 5349],\n"," 362: [3578, 2858, 4306, 3996, 5349, 47, 2028, 296, 4963, 6539],\n"," 375: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 599: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 632: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 779: [2959, 2571, 4993, 3578, 5952, 2858, 2762, 4306, 5349, 47],\n"," 1022: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1034: [2959, 2571, 4993, 4226, 2858, 2762, 4306, 3996, 3793, 47],\n"," 819: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 2: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 3: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 4306, 3996, 3793],\n"," 104: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 105: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 218: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 250: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 313: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 377: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 413: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 576: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 586: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 595: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 610: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 613: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 637: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 663: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 740: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 787: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 804: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 866: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 883: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 941: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 1007: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 817: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 6: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3793, 5349],\n"," 7: [2959, 2571, 4993, 3578, 5952, 2858, 7153, 3996, 3793, 5349],\n"," 14: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 24: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 57: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 60: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 64: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 84: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 90: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 98: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 113: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 120: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 123: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 157: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 194: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 200: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 204: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 205: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 225: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 229: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 237: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 242: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 252: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 266: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 270: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 282: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 297: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 309: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 316: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 327: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 356: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 393: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 394: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 395: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 399: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 401: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 402: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 47, 2028],\n"," 405: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 417: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 3793],\n"," 422: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 437: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 455: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 461: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 473: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 484: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 499: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 526: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 537: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 542: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 557: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 563: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 570: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 575: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 594: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 607: [2959, 2571, 4993, 3578, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 631: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 651: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 664: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 685: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 690: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 696: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 724: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 738: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 762: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 763: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 770: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 796: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 800: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 829: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 836: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 882: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 900: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 903: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 914: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 918: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 920: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 945: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 950: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3793],\n"," 952: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 982: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 989: [2959, 4993, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 1016: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2762,\n"," 7153,\n"," 4306,\n"," 3996],\n"," 1019: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1044: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1051: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 917: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 951: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 997: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 174: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 676: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 764: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 1052: [2571,\n"," 4993,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306,\n"," 3996,\n"," 3793],\n"," 5: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 27: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 33: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 134: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 142: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 156: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 167: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 177: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 224: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 269: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 312: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 360: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 385: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 411: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 464: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 568: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 612: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 630: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 706: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 737: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 749: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 756: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 811: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 853: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 884: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 955: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 1032: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1043: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 370: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 670: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 923: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 931: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 969: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 12: [2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 597: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 195: [2959, 2571, 5952, 7153, 3793, 5349, 47, 6539, 4886, 5445],\n"," 337: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 910: [2571, 3578, 2762, 5349, 2028, 4963, 6539, 5445, 356, 2997],\n"," 63: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 70: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 3996, 3793, 5349],\n"," 99: [2959, 2571, 3578, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n"," 121: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 130: [2959, 2571, 3578, 4226, 2762, 4306, 3793, 5349, 47, 2028],\n"," 244: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 291: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 335: [2959, 2571, 5952, 2858, 2762, 7153, 4306, 3793, 5349, 47],\n"," 361: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 470: [4993, 3578, 7153, 4306, 3793, 5349, 2028, 4963, 4886, 1704],\n"," 497: [2959, 3578, 5952, 2858, 3996, 3793, 5349, 47, 2028, 296],\n"," 620: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 648: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 666: [3578, 2762, 4306, 3793, 5349, 2028, 4963, 6539, 4886, 5445],\n"," 710: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 794: [2959, 2571, 4993, 3578, 5952, 2858, 4306, 3996, 3793, 5349],\n"," 854: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 861: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 87: [2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 317: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 324: [2858, 2762, 4306, 3996, 3793, 47, 2028, 296, 4963, 6539],\n"," 502: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 559: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 973: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 1015: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2762,\n"," 7153,\n"," 4306,\n"," 3996],\n"," 1017: [2959,\n"," 2571,\n"," 3578,\n"," 4226,\n"," 2858,\n"," 2762,\n"," 4306,\n"," 3996,\n"," 3793,\n"," 5349],\n"," 85: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 306: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 653: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 371: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 566: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 331: [3578, 5952, 2762, 4306, 3996, 3793, 5349, 47, 2028, 296],\n"," 665: [2959, 2571, 4993, 3578, 2762, 7153, 4306, 3793, 5349, 47],\n"," 872: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 879: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 486: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n"," 864: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 52: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 288: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 9: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 117: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 3996, 3793],\n"," 220: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 544: [3578, 4226, 2858, 2762, 4306, 3996, 5349, 2028, 4963, 6539],\n"," 999: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 458: [2959, 2571, 4993, 5952, 7153, 4306, 3996, 5349, 47, 2028],\n"," 974: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 546: [2959, 2571, 4226, 2858, 2762, 47, 2028, 296, 4963, 1704],\n"," 55: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 363: [2571, 3578, 4226, 2858, 2762, 4306, 3996, 3793, 5349, 47],\n"," 445: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 4306, 3996, 3793],\n"," 492: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 5349],\n"," 234: [4993, 3578, 5952, 2762, 7153, 3793, 5349, 47, 2028, 296],\n"," 1027: [2571, 4993, 5952, 2858, 2762, 7153, 4306, 3996, 3793, 47],\n"," 140: [2959, 2571, 4993, 3578, 5952, 2762, 4306, 3996, 3793, 5349],\n"," 926: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 781: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 825: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 913: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 5349],\n"," 453: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 540: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 66: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 185: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 222: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 498: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 994: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 165: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 202: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 180: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 93: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 261: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 435: [4993, 3578, 5952, 2858, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 322: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 238: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 425: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 512: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 725: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 732: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 108: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 592: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 443: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 916: [2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 5349],\n"," 736: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 5349],\n"," 961: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 1012: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2762,\n"," 7153,\n"," 4306,\n"," 3996],\n"," 515: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 978: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 28: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 475: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 598: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 943: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 520: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 697: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 849: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 1003: [2959,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 7153,\n"," 4306,\n"," 3996,\n"," 3793],\n"," 705: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 48: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 29: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 231: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 699: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 448: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 750: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 782: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 860: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 768: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 127: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 894: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306]})"]},"metadata":{},"execution_count":9}],"source":["from collections import defaultdict\n","\n","# 각 사용자에 대한 추천 영화는 해당 사용자 아직 평가하지 않은 영화 중에서 예측값이 높은 순으로 한다\n","pred_user2items = defaultdict(list)\n","user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","for user_id in movielens_train.user_id.unique():\n"," if user_id not in user_id2index:\n"," continue\n"," user_index = user_id2index[row[\"user_id\"]]\n"," movie_indexes = np.argsort(-pred_matrix[user_index, :])\n"," for movie_index in movie_indexes:\n"," movie_id = user_movie_matrix.columns[movie_index]\n"," if movie_id not in user_evaluated_movies[user_id]:\n"," pred_user2items[user_id].append(movie_id)\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","\n","pred_user2items"]},{"cell_type":"code","execution_count":10,"id":"14a45925","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":841},"id":"14a45925","executionInfo":{"status":"ok","timestamp":1672119959234,"user_tz":-540,"elapsed":33,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"27d652fa-b864-4756-d5fc-74bd77a05a82"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","6150 2 648 2.0 868244699 \n","6531 2 733 3.0 868244562 \n","6813 2 736 3.0 868244698 \n","7113 2 780 3.0 868244698 \n","7506 2 786 3.0 868244562 \n","7661 2 802 2.0 868244603 \n","7779 2 858 2.0 868245645 \n","8077 2 1049 3.0 868245920 \n","8127 2 1073 3.0 868244562 \n","8381 2 1210 4.0 868245644 \n","8771 2 1356 3.0 868244603 \n","9097 2 1544 3.0 868245920 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","6150 Mission: Impossible (1996) \n","6531 Rock, The (1996) \n","6813 Twister (1996) \n","7113 Independence Day (a.k.a. ID4) (1996) \n","7506 Eraser (1996) \n","7661 Phenomenon (1996) \n","7779 Godfather, The (1972) \n","8077 Ghost and the Darkness, The (1996) \n","8127 Willy Wonka & the Chocolate Factory (1971) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","8771 Star Trek: First Contact (1996) \n","9097 Lost World: Jurassic Park, The (Jurassic Park ... \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","6150 [Action, Adventure, Mystery, Thriller] \n","6531 [Action, Adventure, Thriller] \n","6813 [Action, Adventure, Romance, Thriller] \n","7113 [Action, Adventure, Sci-Fi, War] \n","7506 [Action, Drama, Thriller] \n","7661 [Drama, Romance] \n","7779 [Crime, Drama] \n","8077 [Action, Adventure] \n","8127 [Children, Comedy, Fantasy, Musical] \n","8381 [Action, Adventure, Sci-Fi] \n","8771 [Action, Adventure, Sci-Fi, Thriller] \n","9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","6150 [confusing, confusing plot, memorable sequence... 12.0 \n","6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n","6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n","7113 [action, alien invasion, aliens, will smith, a... 14.0 \n","7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n","7661 [interesting concept, own, john travolta, john... 15.0 \n","7779 [oscar (best picture), marlon brando, classic,... 9.0 \n","8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n","8127 [based on a book, roald dahl, based on a book,... 20.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n","8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n","9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":10}],"source":["# user_id=2인 사용자가 학습 데이터에서 평가를 부여한 영화 목록\n","movielens_train[movielens_train.user_id==2]"]},{"cell_type":"code","execution_count":11,"id":"47543b66","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"47543b66","executionInfo":{"status":"ok","timestamp":1672119959234,"user_tz":-540,"elapsed":31,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"779b6217-68dc-416f-eadc-345a38857d60"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306]"]},"metadata":{},"execution_count":11}],"source":["pred_user2items[2]"]},{"cell_type":"code","execution_count":12,"id":"ac73e03a","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":187},"id":"ac73e03a","executionInfo":{"status":"ok","timestamp":1672119959234,"user_tz":-540,"elapsed":9,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"1fb5be98-7592-4696-d496-571b130f9b1d"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","2487 2571 Matrix, The (1999) \n","2874 2959 Fight Club (1999) \n","4899 4993 Lord of the Rings: The Fellowship of the Ring,... \n","\n"," genre \\\n","2487 [Action, Sci-Fi, Thriller] \n","2874 [Action, Crime, Drama, Thriller] \n","4899 [Action, Adventure, Fantasy] \n","\n"," tag \n","2487 [artificial intelligence, hackers, heroine in ... \n","2874 [based on a book, chuck palahniuk, edward nort... \n","4899 [based on a book, big budget, new zealand, sce... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
24872571Matrix, The (1999)[Action, Sci-Fi, Thriller][artificial intelligence, hackers, heroine in ...
28742959Fight Club (1999)[Action, Crime, Drama, Thriller][based on a book, chuck palahniuk, edward nort...
48994993Lord of the Rings: The Fellowship of the Ring,...[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":12}],"source":["# user_id=2에 대한 추천(2959, 4993, 5952)\n","movies[movies.movie_id.isin([2959, 2571, 4993])]"]},{"cell_type":"code","execution_count":12,"id":"93ce1b7a","metadata":{"id":"93ce1b7a","executionInfo":{"status":"ok","timestamp":1672119959235,"user_tz":-540,"elapsed":9,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/UMCF.ipynb b/chapter5/colab/UMCF.ipynb index 4732c61..7f20a42 100644 --- a/chapter5/colab/UMCF.ipynb +++ b/chapter5/colab/UMCF.ipynb @@ -1,4552 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "66d2e720", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/UMCF.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "f8caaceb", - "metadata": {}, - "source": [ - "# 사용자-사용자 메모리 기반 협조 필터링" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "9cb2f773", - "metadata": {}, - "outputs": [], - "source": [ - "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", - "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", - "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", - "\n", - "# 데이터 다운로드와 압축 풀기\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "ed3c6a08", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", - "import pandas as pd\n", - "\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "06409f5a", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "# 피어슨 상관 계수\n", - "def peason_coefficient(u: np.ndarray, v: np.ndarray) -> float:\n", - " u_diff = u - np.mean(u)\n", - " v_diff = v - np.mean(v)\n", - " numerator = np.dot(u_diff, v_diff)\n", - " denominator = np.sqrt(sum(u_diff ** 2)) * np.sqrt(sum(v_diff ** 2))\n", - " if denominator == 0:\n", - " return 0.0\n", - " return numerator / denominator\n" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "ff148555-35f5-4362-87fb-75f0a8d5d33f", - "metadata": {}, - "outputs": [], - "source": [ - "from collections import defaultdict\n", - "\n", - "# 평갓값을 사용자 x 화면의 행렬로 변환한다\n", - "user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n", - "user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n", - "movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n", - "\n", - "# 예측 대상 사용자와 영화의 조합\n", - "movie_rating_predict = movielens_test.copy()\n", - "pred_user2items = defaultdict(list)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "fc0361fa", - "metadata": {}, - "outputs": [], - "source": [ - "# 우직하게 유사도를 계산한다(이 계산은 매우 무겁습니다. 그렇기 떄문에 도중에 break를 넣었습니다. 속도 향상을 위해 라이브러리르 사용한 구현도 다음 셀에서 소개합니다)\n", - "\n", - "# 예측 대상 사용자 ID\n", - "test_users = movie_rating_predict.user_id.unique()\n", - "\n", - "# 예측 대상 사용자(사용자 1)에 주목한다\n", - "for user1_id in test_users:\n", - " similar_users = []\n", - " similarities = []\n", - " avgs = []\n", - "\n", - " # 사용자 1과 평갓값 행렬 안의 기타 사용자(사용자 2)와의 유사도를 산출한다\n", - " for user2_id in user_movie_matrix.index:\n", - " if user1_id == user2_id:\n", - " continue\n", - "\n", - " # 사용자 1과 사용자 2의 평갓값 벡터\n", - " u_1 = user_movie_matrix.loc[user1_id, :].to_numpy()\n", - " u_2 = user_movie_matrix.loc[user2_id, :].to_numpy()\n", - "\n", - " # `u_1`과 `u_2`로부터, 동시에 결손값이 없는 요소만 추출한 벡터를 얻는다\n", - " common_items = ~np.isnan(u_1) & ~np.isnan(u_2)\n", - "\n", - " # 공통으로 평가한 아이템이 없으면 스킵\n", - " if not common_items.any():\n", - " continue\n", - "\n", - " u_1, u_2 = u_1[common_items], u_2[common_items]\n", - "\n", - " # 피어슨 상관 계수를 사용해 사용자 1과 사용자 2의 유사도를 산출\n", - " rho_12 = peason_coefficient(u_1, u_2)\n", - "\n", - " # 사용자 1과의 유사도가 0 보다 큰 경우, 사용자 2를 유사 사용자로 간주한다\n", - " if rho_12 > 0:\n", - " similar_users.append(user2_id)\n", - " similarities.append(rho_12)\n", - " avgs.append(np.mean(u_2))\n", - "\n", - " # 사용자 1의 평균 평갓값\n", - " avg_1 = np.mean(user_movie_matrix.loc[user1_id, :].dropna().to_numpy())\n", - "\n", - " # 예측 대상 영화의 ID\n", - " test_movies = movie_rating_predict[movie_rating_predict[\"user_id\"] == user1_id].movie_id.values\n", - " # 예측할 수 없는 영화에 대한 평갓값은 사용자 1의 평균 평갓값으로 한다\n", - " movie_rating_predict.loc[(movie_rating_predict[\"user_id\"] == user1_id), \"rating_pred\"] = avg_1\n", - "\n", - " if similar_users:\n", - " for movie_id in test_movies:\n", - " if movie_id in movie_id2index:\n", - " r_xy = user_movie_matrix.loc[similar_users, movie_id].to_numpy()\n", - " rating_exists = ~np.isnan(r_xy)\n", - "\n", - " # 유사 사용자가 대상이 되는 영화에 대한 평갓값을 갖지 않은 경우는 스킵한다\n", - " if not rating_exists.any():\n", - " continue\n", - "\n", - " r_xy = r_xy[rating_exists]\n", - " rho_1x = np.array(similarities)[rating_exists]\n", - " avg_x = np.array(avgs)[rating_exists]\n", - " r_hat_1y = avg_1 + np.dot(rho_1x, (r_xy - avg_x)) / rho_1x.sum()\n", - "\n", - " # 예측 평갓값을 저장\n", - " movie_rating_predict.loc[\n", - " (movie_rating_predict[\"user_id\"] == user1_id)\n", - " & (movie_rating_predict[\"movie_id\"] == movie_id),\n", - " \"rating_pred\",\n", - " ] = r_hat_1y\n", - " break # 계산이 무거우므로, for 루프는 1번만 수행한 뒤 종료합니다. 각 변수에 어떤 값이 들어있는지 확인하면 알고리즘을 더 깊이 이해할 수 있습니다." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "665ebafd", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install surprise" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "b42f291a", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Computing the pearson similarity matrix...\n", - "Done computing similarity matrix.\n" - ] - }, - { - "data": { - "text/plain": [ - "defaultdict(list,\n", - " {139: [6319, 2721, 2131, 3415, 1121, 2509, 4221, 4418, 4509, 5101],\n", - " 149: [2494,\n", - " 26425,\n", - " 137,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 2425,\n", - " 31116],\n", - " 182: [6319, 3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 6122],\n", - " 215: [1564, 3365, 1204, 1131, 2931, 2938, 1192, 1489, 2679, 1147],\n", - " 281: [137,\n", - " 1477,\n", - " 26425,\n", - " 6319,\n", - " 27255,\n", - " 2911,\n", - " 4850,\n", - " 5069,\n", - " 2494,\n", - " 31116],\n", - " 326: [1192, 2679, 3341, 7064, 32316, 3415, 3473, 4208, 4453, 146],\n", - " 351: [3473,\n", - " 6122,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 3777,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116],\n", - " 357: [7064,\n", - " 3473,\n", - " 4850,\n", - " 2911,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 1444],\n", - " 426: [26425,\n", - " 137,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 456: [3473,\n", - " 2911,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 3823,\n", - " 1444,\n", - " 3415,\n", - " 4928],\n", - " 459: [2494,\n", - " 2911,\n", - " 2704,\n", - " 27255,\n", - " 3777,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 220,\n", - " 31116],\n", - " 494: [6319,\n", - " 2494,\n", - " 2911,\n", - " 2704,\n", - " 27255,\n", - " 1477,\n", - " 1621,\n", - " 26425,\n", - " 2721,\n", - " 31116],\n", - " 517: [7064, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 3645],\n", - " 524: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6122, 4850, 5069],\n", - " 556: [26425,\n", - " 137,\n", - " 1477,\n", - " 3473,\n", - " 6319,\n", - " 27255,\n", - " 2911,\n", - " 4850,\n", - " 31116,\n", - " 1444],\n", - " 588: [7064,\n", - " 3473,\n", - " 27741,\n", - " 2911,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 2721,\n", - " 31116,\n", - " 1444],\n", - " 589: [6319, 3415, 3473, 6023, 1121, 2509, 4135, 4221, 4418, 4509],\n", - " 590: [2930,\n", - " 26425,\n", - " 4850,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 3645],\n", - " 601: [3341, 6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732],\n", - " 621: [3415, 3473, 6271, 6918, 7067, 7749, 7759, 8256, 8724, 8785],\n", - " 634: [2203,\n", - " 1192,\n", - " 2679,\n", - " 3341,\n", - " 7064,\n", - " 7933,\n", - " 32316,\n", - " 2721,\n", - " 3415,\n", - " 4208],\n", - " 672: [26425,\n", - " 3002,\n", - " 6168,\n", - " 3777,\n", - " 137,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911],\n", - " 701: [8533, 2203, 678, 1658, 2618, 5283, 1273, 973, 2679, 6187],\n", - " 719: [6319, 4356, 6016, 4850, 5305, 5840, 2977, 1477, 26425, 850],\n", - " 745: [3473,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 4850,\n", - " 31116,\n", - " 1444],\n", - " 757: [1564, 5952, 28, 527, 926, 1046, 2028, 1260, 1261, 2959],\n", - " 775: [260, 858, 1131, 2075, 2938, 5122, 1192, 2679, 1147, 615],\n", - " 780: [3415, 3473, 4850, 3645, 1572, 4928, 6271, 6918, 7067, 7749],\n", - " 785: [7064, 2721, 3415, 146, 1121, 2509, 4221, 4418, 4509, 4732],\n", - " 788: [4633, 2679, 5304, 6783, 7064, 2721, 1493, 2043, 3415, 4208],\n", - " 870: [26425,\n", - " 6319,\n", - " 27255,\n", - " 2911,\n", - " 4850,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 6271,\n", - " 7067],\n", - " 987: [4850,\n", - " 2494,\n", - " 26425,\n", - " 4135,\n", - " 2879,\n", - " 206,\n", - " 3266,\n", - " 31116,\n", - " 5255,\n", - " 5438],\n", - " 988: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 6271, 7067],\n", - " 1020: [260, 28, 47, 242, 2571, 1260, 4226, 1136, 2959, 1131],\n", - " 1: [122, 362, 466, 520, 616, 110, 151, 260, 376, 590],\n", - " 22: [6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n", - " 26: [2679, 2714, 5434, 49932, 6319, 7064, 2721, 3473, 4208, 1844],\n", - " 30: [858, 213, 1148, 1564, 8783, 58, 171, 232, 242, 306],\n", - " 34: [26425,\n", - " 3777,\n", - " 3804,\n", - " 137,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2721,\n", - " 31116],\n", - " 38: [2852, 40826, 3516, 279, 1837, 2679, 6213, 6219, 2721, 99],\n", - " 50: [1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 4732,\n", - " 34164,\n", - " 2911,\n", - " 1871,\n", - " 27255],\n", - " 53: [2930,\n", - " 26425,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 3645],\n", - " 54: [6319,\n", - " 7064,\n", - " 2911,\n", - " 2704,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 8199,\n", - " 3415],\n", - " 67: [2075, 2679, 8916, 6319, 715, 3415, 4208, 4424, 2691, 146],\n", - " 71: [2704,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 3694,\n", - " 3695,\n", - " 2721,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 76: [1260, 2203, 2618, 5573, 1131, 2075, 2931, 2459, 4633, 279],\n", - " 88: [527, 5255, 7193, 1131, 1132, 2931, 2938, 4276, 5122, 318],\n", - " 89: [2679, 1034, 615, 7064, 1493, 3415, 4208, 4453, 3076, 8341],\n", - " 94: [6319,\n", - " 3473,\n", - " 5069,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 3415],\n", - " 95: [6319, 3415, 4928, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n", - " 100: [26425,\n", - " 137,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 101: [3918, 6319, 7064, 7933, 3224, 3415, 1927, 6122, 4850, 4939],\n", - " 102: [4850,\n", - " 2911,\n", - " 2704,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 6122,\n", - " 1444,\n", - " 3415],\n", - " 103: [4850,\n", - " 26425,\n", - " 3473,\n", - " 27255,\n", - " 1871,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 6023,\n", - " 6271],\n", - " 111: [2075, 6319, 2721, 2131, 3415, 1121, 2509, 4221, 4418, 4509],\n", - " 116: [279, 4920, 3473, 7042, 49957, 1184, 2579, 3579, 6780, 6918],\n", - " 118: [1871,\n", - " 26425,\n", - " 1477,\n", - " 3473,\n", - " 6319,\n", - " 27255,\n", - " 2911,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 143: [3415, 3473, 3645, 1572, 4928, 6271, 6918, 7067, 7749, 7759],\n", - " 144: [3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 5101, 4928],\n", - " 162: [2931, 2938, 4633, 5122, 1192, 2679, 615, 3341, 680, 7064],\n", - " 172: [4135,\n", - " 4850,\n", - " 2704,\n", - " 26425,\n", - " 6319,\n", - " 2721,\n", - " 31116,\n", - " 3415,\n", - " 6023,\n", - " 3645],\n", - " 173: [5017, 2075, 2938, 1192, 2679, 5434, 49932, 680, 5304, 6783],\n", - " 187: [3918,\n", - " 4135,\n", - " 4850,\n", - " 26425,\n", - " 1361,\n", - " 2930,\n", - " 1477,\n", - " 34164,\n", - " 6780,\n", - " 2925],\n", - " 193: [26425,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 850,\n", - " 31116,\n", - " 1444,\n", - " 4079,\n", - " 3415],\n", - " 208: [28, 541, 926, 1221, 2571, 2936, 5017, 6273, 5438, 5573],\n", - " 210: [2931, 2679, 3341, 7064, 3415, 3473, 4453, 2925, 1121, 2509],\n", - " 214: [3473,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 3777,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 1444],\n", - " 228: [3516, 1192, 615, 1684, 49932, 8596, 32316, 206, 2166, 5077],\n", - " 232: [1477,\n", - " 26425,\n", - " 3473,\n", - " 6319,\n", - " 27255,\n", - " 2911,\n", - " 2704,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 236: [6319, 3415, 6023, 5077, 6122, 4850, 4928, 6271, 6918, 7067],\n", - " 259: [2494, 2911, 2704, 137, 27255, 3777, 3804, 3002, 1477, 6168],\n", - " 260: [2704,\n", - " 26425,\n", - " 27255,\n", - " 2911,\n", - " 2977,\n", - " 7064,\n", - " 121,\n", - " 2721,\n", - " 31116,\n", - " 1444],\n", - " 267: [2704,\n", - " 26425,\n", - " 137,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 31116,\n", - " 1444],\n", - " 268: [5573, 615, 6319, 2721, 5077, 6122, 4850, 8477, 5069, 6780],\n", - " 271: [1192,\n", - " 3676,\n", - " 32316,\n", - " 2721,\n", - " 3473,\n", - " 7063,\n", - " 3511,\n", - " 1121,\n", - " 2509,\n", - " 4221],\n", - " 274: [1192, 2679, 7064, 3415, 3473, 4208, 1121, 2509, 4221, 4418],\n", - " 287: [2704,\n", - " 26425,\n", - " 4135,\n", - " 6319,\n", - " 27255,\n", - " 2911,\n", - " 2721,\n", - " 31116,\n", - " 1444,\n", - " 7064],\n", - " 292: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 6271, 6918],\n", - " 296: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4850, 6271, 6918],\n", - " 303: [137,\n", - " 26425,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 6319,\n", - " 27255,\n", - " 2911,\n", - " 31116,\n", - " 1871],\n", - " 307: [26425,\n", - " 2494,\n", - " 137,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2704,\n", - " 31116,\n", - " 7064],\n", - " 310: [2679, 7064, 2721, 3415, 3473, 4208, 4453, 1121, 2509, 4221],\n", - " 315: [2203, 3516, 279, 4914, 1934, 2721, 581, 6122, 1649, 6780],\n", - " 320: [2075, 2721, 3415, 146, 1121, 2509, 4221, 4418, 4509, 4732],\n", - " 332: [2679,\n", - " 6319,\n", - " 1934,\n", - " 3503,\n", - " 32316,\n", - " 3415,\n", - " 3473,\n", - " 2691,\n", - " 4783,\n", - " 8580],\n", - " 339: [3415, 3473, 6023, 6122, 3645, 668, 1572, 4928, 6271, 6918],\n", - " 343: [2714,\n", - " 1034,\n", - " 7064,\n", - " 4850,\n", - " 2494,\n", - " 2704,\n", - " 1477,\n", - " 26425,\n", - " 5893,\n", - " 8712],\n", - " 355: [1192,\n", - " 2679,\n", - " 6319,\n", - " 7064,\n", - " 8199,\n", - " 32316,\n", - " 3415,\n", - " 3473,\n", - " 2691,\n", - " 1121],\n", - " 364: [858, 527, 1046, 1172, 1260, 5017, 2959, 1131, 1132, 2075],\n", - " 365: [1192, 3341, 6319, 7064, 3415, 3473, 4453, 2925, 3511, 1121],\n", - " 368: [7064, 3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 5101],\n", - " 381: [260, 858, 1148, 5952, 28, 111, 232, 242, 306, 326],\n", - " 382: [5017, 3516, 2679, 1034, 3918, 615, 4920, 5304, 7064, 1493],\n", - " 383: [3473,\n", - " 4135,\n", - " 137,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 2911,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 391: [3516, 615, 6319, 7064, 2721, 3415, 1121, 2509, 4221, 4418],\n", - " 396: [858, 1564, 28, 47, 912, 1199, 1221, 1260, 2936, 4226],\n", - " 398: [3415, 3473, 121, 1121, 2509, 4221, 4418, 4509, 4850, 8195],\n", - " 406: [1034, 2721, 99, 3415, 6023, 6122, 4850, 4939, 3645, 668],\n", - " 409: [2618,\n", - " 2075,\n", - " 3516,\n", - " 49932,\n", - " 4359,\n", - " 7327,\n", - " 7933,\n", - " 8596,\n", - " 5034,\n", - " 6591],\n", - " 410: [5017,\n", - " 2679,\n", - " 6219,\n", - " 2714,\n", - " 1684,\n", - " 2204,\n", - " 3546,\n", - " 4920,\n", - " 49932,\n", - " 6319],\n", - " 416: [2931,\n", - " 2938,\n", - " 4633,\n", - " 1192,\n", - " 2679,\n", - " 2048,\n", - " 3341,\n", - " 4920,\n", - " 5434,\n", - " 39419],\n", - " 418: [615, 6319, 3415, 146, 6023, 1121, 2509, 4221, 4418, 4509],\n", - " 419: [3473,\n", - " 2494,\n", - " 2911,\n", - " 27255,\n", - " 3777,\n", - " 1477,\n", - " 6168,\n", - " 26425,\n", - " 31116,\n", - " 1444],\n", - " 421: [408,\n", - " 2721,\n", - " 3473,\n", - " 6122,\n", - " 27741,\n", - " 2911,\n", - " 3694,\n", - " 3695,\n", - " 27255,\n", - " 1477],\n", - " 424: [1219, 1221, 2571, 50, 1260, 1131, 2931, 2938, 5122, 1192],\n", - " 432: [6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4850],\n", - " 434: [137,\n", - " 26425,\n", - " 2930,\n", - " 1477,\n", - " 27255,\n", - " 2911,\n", - " 6319,\n", - " 31116,\n", - " 1444,\n", - " 27648],\n", - " 436: [2075, 6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 1572],\n", - " 438: [3516, 7064, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509],\n", - " 441: [7064, 2721, 99, 3473, 2911, 1477, 3415, 6023, 3645, 1572],\n", - " 446: [2075, 6319, 7064, 3415, 146, 1121, 2509, 4221, 4418, 4509],\n", - " 452: [615, 1684, 7064, 32316, 2721, 3096, 3384, 3548, 336, 3511],\n", - " 460: [326, 1046, 1172, 1264, 50, 1260, 2203, 5017, 2959, 1131],\n", - " 463: [3415, 1121, 2509, 4221, 4418, 4509, 3645, 1572, 4928, 6271],\n", - " 468: [1871,\n", - " 6122,\n", - " 1477,\n", - " 6319,\n", - " 27255,\n", - " 2911,\n", - " 3823,\n", - " 1444,\n", - " 3415,\n", - " 4928],\n", - " 469: [858, 213, 1246, 1252, 1276, 1288, 28, 47, 171, 242],\n", - " 472: [5573,\n", - " 4276,\n", - " 3918,\n", - " 3262,\n", - " 6319,\n", - " 49957,\n", - " 2925,\n", - " 3511,\n", - " 1121,\n", - " 2509],\n", - " 476: [2075, 2679, 7064, 3415, 3473, 146, 1121, 2509, 4135, 4221],\n", - " 480: [26425,\n", - " 137,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 2494,\n", - " 31116,\n", - " 1444],\n", - " 482: [3473,\n", - " 2494,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 6168,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 1444],\n", - " 493: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4850, 4939],\n", - " 496: [3415, 146, 1121, 2509, 4221, 4418, 4509, 6122, 4939, 6271],\n", - " 501: [2679, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4850, 6162],\n", - " 504: [6319,\n", - " 4850,\n", - " 2911,\n", - " 2704,\n", - " 27255,\n", - " 26425,\n", - " 31116,\n", - " 7064,\n", - " 1444,\n", - " 3415],\n", - " 505: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4850, 6241],\n", - " 511: [2203, 1658, 5573, 2075, 2931, 2938, 3115, 3516, 1192, 6006],\n", - " 516: [50, 2938, 1192, 2679, 680, 7064, 32316, 2721, 2131, 3415],\n", - " 525: [6122,\n", - " 1477,\n", - " 6319,\n", - " 27255,\n", - " 2911,\n", - " 3694,\n", - " 3695,\n", - " 2721,\n", - " 1444,\n", - " 3415],\n", - " 530: [1034, 615, 3341, 6319, 3415, 3473, 1121, 2509, 4135, 4221],\n", - " 531: [3918,\n", - " 2721,\n", - " 4135,\n", - " 6122,\n", - " 4850,\n", - " 27741,\n", - " 2704,\n", - " 27255,\n", - " 1477,\n", - " 26425],\n", - " 533: [2679, 7064, 2721, 3415, 3473, 4453, 146, 1121, 2509, 4221],\n", - " 536: [495, 3477, 5255, 6290, 2075, 2938, 40826, 1192, 2679, 1034],\n", - " 543: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 5391, 8195],\n", - " 547: [5573, 3341, 6319, 7064, 3415, 3473, 3511, 1121, 2509, 4135],\n", - " 549: [6319,\n", - " 2494,\n", - " 2911,\n", - " 2704,\n", - " 3694,\n", - " 3695,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116],\n", - " 553: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 4850],\n", - " 558: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4939, 3645],\n", - " 562: [242, 7193, 7376, 2075, 2931, 2938, 5882, 5122, 6316, 955],\n", - " 567: [5255, 4276, 4914, 7064, 7933, 5034, 5899, 1361, 1535, 1121],\n", - " 571: [26425,\n", - " 1871,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 4850,\n", - " 31116,\n", - " 1444],\n", - " 572: [3473,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 2911,\n", - " 2494,\n", - " 2704,\n", - " 31116],\n", - " 577: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6122, 4850, 6271],\n", - " 581: [3473,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 4732,\n", - " 5101,\n", - " 4939,\n", - " 34164],\n", - " 585: [3473,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 3777,\n", - " 1477,\n", - " 6168,\n", - " 2930,\n", - " 26425,\n", - " 31116],\n", - " 593: [2075, 2679, 6319, 7064, 2721, 1493, 2131, 3224, 3415, 4453],\n", - " 604: [26425,\n", - " 1477,\n", - " 6319,\n", - " 27255,\n", - " 2911,\n", - " 3694,\n", - " 3695,\n", - " 1621,\n", - " 31116,\n", - " 1444],\n", - " 605: [3473,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 2704,\n", - " 1444],\n", - " 609: [2075, 2679, 3341, 4920, 49932, 7064, 1493, 4424, 146, 1121],\n", - " 628: [2679,\n", - " 3546,\n", - " 49932,\n", - " 1934,\n", - " 7064,\n", - " 7933,\n", - " 32316,\n", - " 3473,\n", - " 42015,\n", - " 4453],\n", - " 629: [615, 3341, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n", - " 645: [5069,\n", - " 5305,\n", - " 2704,\n", - " 137,\n", - " 26425,\n", - " 1477,\n", - " 1621,\n", - " 3473,\n", - " 27255,\n", - " 3823],\n", - " 650: [3516, 2679, 3379, 7064, 3415, 3473, 4208, 4453, 6023, 1121],\n", - " 656: [2075,\n", - " 2679,\n", - " 6319,\n", - " 32316,\n", - " 1493,\n", - " 3415,\n", - " 2691,\n", - " 2925,\n", - " 1121,\n", - " 2509],\n", - " 657: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6271, 7067, 7749],\n", - " 669: [3516,\n", - " 2679,\n", - " 4920,\n", - " 49932,\n", - " 3415,\n", - " 3473,\n", - " 4495,\n", - " 1121,\n", - " 2509,\n", - " 4221],\n", - " 678: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4600],\n", - " 683: [7064, 8125, 8199, 2131, 3415, 3645, 668, 1572, 4928, 6271],\n", - " 688: [3473,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 689: [1172, 5255, 613, 1131, 2938, 955, 1192, 2679, 1147, 1034],\n", - " 693: [6319,\n", - " 3415,\n", - " 3473,\n", - " 49957,\n", - " 2925,\n", - " 6023,\n", - " 8580,\n", - " 3511,\n", - " 1121,\n", - " 2509],\n", - " 716: [3415,\n", - " 3473,\n", - " 6271,\n", - " 7067,\n", - " 7749,\n", - " 7759,\n", - " 8256,\n", - " 8724,\n", - " 8785,\n", - " 26151],\n", - " 720: [2936, 5017, 5438, 6662, 2075, 2931, 3115, 3074, 5007, 7162],\n", - " 734: [6319,\n", - " 3473,\n", - " 4850,\n", - " 5069,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 2704],\n", - " 735: [6319,\n", - " 2494,\n", - " 2911,\n", - " 2704,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 739: [26425,\n", - " 3777,\n", - " 3804,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 2721,\n", - " 31116],\n", - " 755: [6319,\n", - " 27255,\n", - " 1477,\n", - " 1621,\n", - " 26425,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 6023,\n", - " 4928],\n", - " 758: [1260, 5017, 2931, 2938, 3516, 279, 1192, 2679, 2594, 1646],\n", - " 767: [1148, 904, 1234, 1260, 4226, 5017, 2858, 2997, 4011, 1131],\n", - " 769: [3341, 7064, 3415, 3473, 6023, 5077, 6122, 8195, 4928, 6271],\n", - " 786: [3473,\n", - " 2911,\n", - " 1871,\n", - " 27255,\n", - " 3777,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 7064],\n", - " 789: [6319, 3415, 3473, 6023, 4850, 3645, 4928, 6271, 7067, 7749],\n", - " 792: [2704,\n", - " 26425,\n", - " 2494,\n", - " 7064,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 3694,\n", - " 3695,\n", - " 31116],\n", - " 795: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6271, 7067],\n", - " 798: [3777, 3804, 137, 2930, 1477, 3473, 27255, 2911, 1444, 3415],\n", - " 799: [260, 1192, 2679, 615, 3341, 5434, 49932, 6319, 680, 7013],\n", - " 802: [2075, 6319, 2721, 1493, 5899, 8341, 1121, 2509, 4221, 4418],\n", - " 806: [6319,\n", - " 3473,\n", - " 4135,\n", - " 4850,\n", - " 27741,\n", - " 2911,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 2494],\n", - " 807: [260, 1148, 50, 1260, 2203, 3365, 4226, 2858, 2959, 1131],\n", - " 816: [5573, 279, 1192, 3918, 615, 6319, 7064, 927, 3415, 190],\n", - " 827: [2679, 2721, 715, 1398, 1493, 2691, 8341, 1236, 1442, 1121],\n", - " 828: [1046, 678, 6296, 6440, 6695, 1132, 2075, 2931, 2938, 973],\n", - " 846: [6319, 3415, 6023, 5077, 6122, 4939, 3645, 4928, 6271, 7067],\n", - " 859: [2494,\n", - " 2704,\n", - " 137,\n", - " 26425,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 31116],\n", - " 862: [6319, 7064, 3473, 5077, 6122, 2488, 4850, 6179, 1859, 6270],\n", - " 876: [4276,\n", - " 6319,\n", - " 1934,\n", - " 7064,\n", - " 32316,\n", - " 2721,\n", - " 3473,\n", - " 42015,\n", - " 4783,\n", - " 2483],\n", - " 881: [6319, 2721, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4929],\n", - " 885: [3415, 6023, 1121, 2509, 4221, 4418, 4509, 4939, 4928, 6271],\n", - " 886: [137,\n", - " 3777,\n", - " 26425,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 31116,\n", - " 1444],\n", - " 889: [615, 6319, 7064, 3415, 4135, 4939, 3645, 4928, 6271, 7067],\n", - " 890: [2721, 3415, 3645, 4928, 6271, 7067, 7749, 7759, 8256, 8724],\n", - " 891: [2494,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 2911,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 896: [137,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 3473,\n", - " 6319,\n", - " 27255,\n", - " 2911,\n", - " 5069,\n", - " 31116],\n", - " 897: [6319, 7064, 8199, 3415, 3511, 1121, 2509, 4135, 4221, 4418],\n", - " 898: [7064, 7933, 32316, 2721, 715, 3415, 1121, 2509, 4221, 4418],\n", - " 908: [213, 495, 926, 1172, 904, 1234, 1260, 1348, 2203, 3435],\n", - " 922: [1797,\n", - " 2679,\n", - " 1684,\n", - " 1934,\n", - " 5304,\n", - " 6783,\n", - " 7064,\n", - " 7933,\n", - " 32316,\n", - " 2721],\n", - " 930: [5573, 1131, 2938, 1192, 103, 2679, 2696, 615, 3546, 4920],\n", - " 938: [1260, 2936, 5017, 2075, 1192, 2679, 3341, 4920, 680, 1934],\n", - " 956: [26425,\n", - " 1477,\n", - " 27255,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 6023,\n", - " 4928,\n", - " 6271,\n", - " 7067],\n", - " 958: [3473,\n", - " 2494,\n", - " 2911,\n", - " 27255,\n", - " 3777,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 850,\n", - " 31116],\n", - " 968: [242, 1046, 5017, 6273, 324, 26131, 1131, 1233, 2075, 2931],\n", - " 977: [3473,\n", - " 2494,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 6122,\n", - " 31116],\n", - " 990: [26425,\n", - " 1477,\n", - " 3473,\n", - " 6319,\n", - " 27255,\n", - " 3694,\n", - " 3695,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 996: [6319,\n", - " 3473,\n", - " 4135,\n", - " 4850,\n", - " 5069,\n", - " 34164,\n", - " 2704,\n", - " 1444,\n", - " 137,\n", - " 27255],\n", - " 1004: [2494,\n", - " 3777,\n", - " 3804,\n", - " 26425,\n", - " 2704,\n", - " 2930,\n", - " 1477,\n", - " 27255,\n", - " 2911,\n", - " 2721],\n", - " 1005: [1192,\n", - " 2679,\n", - " 49932,\n", - " 6319,\n", - " 1934,\n", - " 3415,\n", - " 3473,\n", - " 6023,\n", - " 8580,\n", - " 1121],\n", - " 1008: [2131,\n", - " 3415,\n", - " 6023,\n", - " 3511,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 6122],\n", - " 1029: [6319,\n", - " 7064,\n", - " 8125,\n", - " 8154,\n", - " 8199,\n", - " 2721,\n", - " 1493,\n", - " 2131,\n", - " 3224,\n", - " 3415],\n", - " 1037: [1192, 3918, 3341, 7064, 2131, 3415, 4208, 4453, 2691, 121],\n", - " 1050: [6319,\n", - " 2911,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 4928,\n", - " 6271],\n", - " 4: [527, 2203, 5017, 6273, 613, 1131, 1132, 2931, 2938, 3516],\n", - " 8: [3415, 1121, 2509, 4221, 4418, 4509, 5101, 4928, 6271, 7067],\n", - " 18: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4928, 6271],\n", - " 36: [2721, 3415, 3473, 6023, 668, 1572, 4928, 6271, 6918, 7067],\n", - " 47: [356, 1148, 28, 306, 326, 527, 912, 926, 1172, 1219],\n", - " 59: [1034, 3341, 6319, 7064, 3415, 3645, 6271, 7067, 7749, 7759],\n", - " 62: [5017, 1034, 6319, 5304, 7064, 2721, 3415, 3473, 49957, 149],\n", - " 77: [6319, 2721, 3415, 3473, 6122, 3645, 4928, 6271, 6918, 7067],\n", - " 79: [3415, 3473, 5077, 6122, 4928, 6271, 7067, 7749, 7759, 8256],\n", - " 80: [6319, 7064, 8199, 3415, 3473, 6023, 4135, 4850, 3645, 5069],\n", - " 119: [2494,\n", - " 137,\n", - " 26425,\n", - " 1477,\n", - " 3473,\n", - " 2704,\n", - " 27255,\n", - " 5069,\n", - " 2911,\n", - " 4850],\n", - " 122: [4226, 2931, 2679, 3929, 6319, 680, 7064, 8199, 32316, 2721],\n", - " 125: [7064, 3415, 146, 336, 1121, 2509, 4221, 4418, 4509, 5101],\n", - " 126: [3473,\n", - " 1871,\n", - " 137,\n", - " 3777,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 27255,\n", - " 2911,\n", - " 31116],\n", - " 132: [5069,\n", - " 2704,\n", - " 26425,\n", - " 2494,\n", - " 4135,\n", - " 4850,\n", - " 6319,\n", - " 27255,\n", - " 2911,\n", - " 31116],\n", - " 141: [3341, 2721, 3415, 3473, 6122, 4850, 3645, 1572, 4928, 6271],\n", - " 154: [7064,\n", - " 32316,\n", - " 3415,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 5101,\n", - " 4850],\n", - " 155: [1489, 2679, 680, 7064, 8125, 8199, 32316, 2721, 3415, 3473],\n", - " 163: [6319,\n", - " 4135,\n", - " 6122,\n", - " 4850,\n", - " 2494,\n", - " 27255,\n", - " 1477,\n", - " 2721,\n", - " 3823,\n", - " 1444],\n", - " 164: [2714,\n", - " 3932,\n", - " 3341,\n", - " 4920,\n", - " 49932,\n", - " 3473,\n", - " 2691,\n", - " 2102,\n", - " 8580,\n", - " 3511],\n", - " 170: [2494,\n", - " 3777,\n", - " 3804,\n", - " 26425,\n", - " 2930,\n", - " 1477,\n", - " 27255,\n", - " 2911,\n", - " 7064,\n", - " 3694],\n", - " 171: [260, 28, 299, 954, 3365, 2618, 4387, 4452, 5110, 6662],\n", - " 176: [5017, 2714, 615, 5304, 7064, 8199, 3415, 1236, 4552, 3645],\n", - " 190: [2704,\n", - " 137,\n", - " 26425,\n", - " 4850,\n", - " 1477,\n", - " 27255,\n", - " 850,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 197: [3477,\n", - " 5438,\n", - " 40826,\n", - " 7064,\n", - " 2721,\n", - " 2131,\n", - " 3415,\n", - " 49957,\n", - " 3511,\n", - " 1121],\n", - " 198: [2931, 2938, 1192, 2679, 680, 7064, 8125, 2721, 2131, 3415],\n", - " 199: [5573, 2931, 2938, 3516, 1192, 2679, 2594, 3341, 3831, 4920],\n", - " 212: [2911,\n", - " 2704,\n", - " 1444,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 27648],\n", - " 221: [5017,\n", - " 3516,\n", - " 2679,\n", - " 6319,\n", - " 7064,\n", - " 7933,\n", - " 8199,\n", - " 32316,\n", - " 2920,\n", - " 3415],\n", - " 223: [260, 858, 213, 1148, 1276, 8533, 28, 30, 47, 242],\n", - " 226: [3415, 3473, 1572, 6271, 6918, 7067, 7749, 7759, 8256, 8724],\n", - " 241: [3097,\n", - " 3307,\n", - " 4356,\n", - " 3090,\n", - " 3857,\n", - " 5840,\n", - " 2977,\n", - " 1477,\n", - " 1621,\n", - " 26425],\n", - " 247: [1148, 30, 495, 1172, 1234, 1260, 3730, 678, 2618, 6695],\n", - " 249: [2931, 2938, 5122, 1192, 2679, 3341, 3546, 49932, 6319, 680],\n", - " 254: [1046, 3516, 2679, 7064, 2131, 3415, 4208, 4453, 1236, 146],\n", - " 264: [6319, 2721, 3415, 212, 1121, 2509, 4221, 4418, 4509, 4732],\n", - " 273: [1148, 28, 326, 334, 495, 912, 1046, 1172, 1199, 1221],\n", - " 275: [3415, 3473, 6023, 3511, 1121, 2509, 4221, 4418, 4509, 6271],\n", - " 276: [26425,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 7064,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 293: [4978, 5573, 2075, 2931, 2679, 2594, 1646, 615, 3546, 6319],\n", - " 294: [2075, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n", - " 295: [260, 28, 495, 912, 923, 1172, 1199, 50, 1260, 2203],\n", - " 318: [7064, 3415, 3473, 146, 3511, 1121, 2509, 4221, 4418, 4509],\n", - " 321: [6319, 7064, 3415, 3473, 1121, 2509, 4135, 4221, 4418, 4509],\n", - " 345: [2679, 7064, 2721, 3415, 3473, 146, 1121, 2509, 4135, 4221],\n", - " 346: [1132, 973, 2679, 8916, 900, 3932, 4754, 49932, 2726, 5304],\n", - " 348: [260, 2075, 2931, 2938, 1192, 2679, 3341, 3546, 49932, 680],\n", - " 349: [615, 6319, 7064, 3415, 146, 3511, 1121, 2509, 4221, 4418],\n", - " 354: [260, 58, 541, 923, 926, 1172, 1207, 2028, 913, 2936],\n", - " 359: [2494,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 1444,\n", - " 3415,\n", - " 6271,\n", - " 7067],\n", - " 366: [3516, 2679, 615, 6319, 7064, 7933, 8199, 2721, 581, 3415],\n", - " 369: [2704,\n", - " 26425,\n", - " 2494,\n", - " 6122,\n", - " 1477,\n", - " 6319,\n", - " 27255,\n", - " 3694,\n", - " 3695,\n", - " 31116],\n", - " 384: [3415, 3473, 1121, 2509, 4135, 4221, 4418, 4509, 4732, 6122],\n", - " 390: [1046, 2075, 2679, 6319, 7064, 2721, 581, 2131, 3415, 4208],\n", - " 392: [1192, 2679, 6319, 7064, 3415, 3473, 4208, 121, 146, 6023],\n", - " 403: [2931, 2938, 3516, 1489, 2679, 7064, 2721, 1493, 2131, 3415],\n", - " 407: [1046, 1260, 4226, 44761, 1131, 1132, 2075, 2931, 2938, 318],\n", - " 414: [3415, 3473, 6122, 6241, 6271, 7067, 7749, 7759, 8256, 8724],\n", - " 431: [260, 1148, 1276, 28, 111, 326, 527, 593, 912, 926],\n", - " 454: [3516,\n", - " 1192,\n", - " 3341,\n", - " 4920,\n", - " 3503,\n", - " 5304,\n", - " 7064,\n", - " 8125,\n", - " 8199,\n", - " 32316],\n", - " 465: [3415, 1121, 2509, 4221, 4418, 4509, 6271, 7067, 7749, 7759],\n", - " 481: [1564, 1219, 1193, 1131, 2931, 2938, 1192, 1489, 2679, 2714],\n", - " 485: [2494,\n", - " 2911,\n", - " 27255,\n", - " 3777,\n", - " 3804,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 6122,\n", - " 31116],\n", - " 503: [2679, 615, 6319, 7064, 2721, 2131, 3415, 3473, 4208, 4453],\n", - " 513: [3473,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 3777,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 1444],\n", - " 545: [1046, 2679, 7064, 2721, 3415, 4208, 4424, 4453, 2691, 8341],\n", - " 552: [3516, 2721, 3415, 212, 1121, 2509, 4221, 4418, 4509, 4732],\n", - " 554: [137, 1871, 2930, 1477, 3473, 27255, 2911, 1444, 3415, 6271],\n", - " 555: [7064, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 668, 4928],\n", - " 561: [2075, 1489, 2679, 3546, 6319, 5304, 6783, 7064, 8125, 8154],\n", - " 565: [4920, 7064, 8199, 3415, 3473, 6023, 1121, 2509, 4221, 4418],\n", - " 591: [942, 3917, 2721, 715, 1398, 6591, 190, 2925, 336, 3511],\n", - " 617: [3341, 6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732],\n", - " 622: [733, 858, 213, 1148, 1246, 1252, 1276, 1288, 1564, 8533],\n", - " 623: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 4850],\n", - " 633: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 6271, 7067],\n", - " 636: [2930,\n", - " 26425,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 31116,\n", - " 3415,\n", - " 4928,\n", - " 6271],\n", - " 638: [2075, 3516, 2679, 7064, 2721, 3415, 3473, 4208, 146, 3511],\n", - " 641: [2704,\n", - " 26425,\n", - " 1477,\n", - " 6319,\n", - " 27255,\n", - " 2911,\n", - " 4850,\n", - " 2721,\n", - " 31116,\n", - " 1444],\n", - " 646: [3473,\n", - " 34164,\n", - " 2721,\n", - " 6772,\n", - " 1444,\n", - " 27648,\n", - " 5287,\n", - " 1149,\n", - " 6679,\n", - " 4552],\n", - " 654: [1034, 615, 6319, 3415, 1121, 2509, 4135, 4221, 4418, 4509],\n", - " 655: [2618, 2931, 2679, 2714, 5434, 49932, 6319, 680, 1934, 2935],\n", - " 658: [615, 3415, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n", - " 660: [7064,\n", - " 32316,\n", - " 3473,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 4850,\n", - " 3579],\n", - " 661: [2679,\n", - " 2714,\n", - " 6319,\n", - " 7064,\n", - " 8125,\n", - " 8199,\n", - " 32316,\n", - " 2721,\n", - " 3415,\n", - " 3473],\n", - " 677: [2679, 6319, 1934, 3503, 7064, 32316, 3415, 2691, 121, 2925],\n", - " 714: [3516, 2721, 3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509],\n", - " 715: [2075, 3516, 3341, 3415, 3473, 6023, 3511, 1121, 2509, 4135],\n", - " 723: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4928],\n", - " 731: [1172, 50, 2959, 1131, 2075, 2931, 2938, 1192, 2679, 1147],\n", - " 742: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 1572, 4928, 6271],\n", - " 743: [7064, 3473, 2704, 5840, 137, 27255, 2721, 1444, 5017, 3415],\n", - " 752: [2721, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4939, 6162],\n", - " 772: [2704,\n", - " 137,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 31116,\n", - " 1444],\n", - " 814: [4850,\n", - " 2704,\n", - " 2930,\n", - " 27255,\n", - " 2911,\n", - " 2425,\n", - " 1444,\n", - " 3415,\n", - " 6023,\n", - " 3645],\n", - " 823: [2679, 2714, 6319, 7064, 2721, 3415, 3473, 4208, 1121, 2509],\n", - " 826: [7064, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732],\n", - " 833: [1192, 2679, 3341, 3415, 3473, 4208, 146, 212, 1121, 2509],\n", - " 838: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 3645, 6271],\n", - " 842: [1260, 2959, 6695, 2852, 2938, 1203, 955, 2679, 6612, 1147],\n", - " 852: [2075,\n", - " 1192,\n", - " 2679,\n", - " 1934,\n", - " 7064,\n", - " 8199,\n", - " 32316,\n", - " 2721,\n", - " 3415,\n", - " 4208],\n", - " 878: [3415, 3473, 6023, 4850, 6271, 7067, 7749, 7759, 8256, 8724],\n", - " 887: [926, 1046, 3365, 1131, 2075, 2931, 2938, 4276, 1192, 2679],\n", - " 895: [3341,\n", - " 4920,\n", - " 7064,\n", - " 3473,\n", - " 2163,\n", - " 1361,\n", - " 4850,\n", - " 3357,\n", - " 6162,\n", - " 34164],\n", - " 899: [3473,\n", - " 6122,\n", - " 2704,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 3694,\n", - " 3695,\n", - " 31116,\n", - " 1444],\n", - " 902: [1564, 1212, 1131, 2852, 2931, 2938, 29, 1175, 1192, 2679],\n", - " 907: [1046, 1192, 2679, 2696, 3307, 680, 1934, 5304, 6783, 7064],\n", - " 928: [3473,\n", - " 2911,\n", - " 2704,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 1444],\n", - " 936: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 3645, 4928],\n", - " 964: [2679, 3546, 6319, 7064, 2721, 3415, 3473, 4208, 4424, 4453],\n", - " 970: [1034,\n", - " 6319,\n", - " 4135,\n", - " 4850,\n", - " 2494,\n", - " 2911,\n", - " 2977,\n", - " 27255,\n", - " 1477,\n", - " 1621],\n", - " 972: [2075, 2938, 1192, 1489, 2679, 7064, 2721, 3415, 3473, 4208],\n", - " 1001: [6319, 7064, 2721, 3415, 3645, 668, 1572, 4928, 6241, 6271],\n", - " 1013: [5438, 3341, 6319, 3473, 2925, 212, 1121, 2509, 4221, 4418],\n", - " 1018: [3415,\n", - " 3473,\n", - " 1572,\n", - " 4928,\n", - " 6271,\n", - " 6918,\n", - " 7067,\n", - " 7749,\n", - " 7759,\n", - " 8256],\n", - " 1028: [1148, 527, 1046, 1096, 1172, 951, 954, 1212, 1260, 2203],\n", - " 1031: [260, 326, 1104, 1197, 50, 954, 1212, 1248, 2203, 1611],\n", - " 1035: [7064,\n", - " 8125,\n", - " 8154,\n", - " 8199,\n", - " 2721,\n", - " 3415,\n", - " 3473,\n", - " 49957,\n", - " 1927,\n", - " 6023],\n", - " 1038: [1148, 1288, 5952, 150, 242, 299, 326, 527, 912, 926],\n", - " 1045: [2679, 7064, 2721, 3415, 3473, 4453, 146, 1121, 2509, 4221],\n", - " 1046: [1148, 28, 1260, 2203, 3365, 678, 5573, 2075, 2931, 2938],\n", - " 35: [2494,\n", - " 2911,\n", - " 2704,\n", - " 27255,\n", - " 3777,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 1444],\n", - " 72: [28, 26131, 613, 1131, 2075, 2852, 2931, 1192, 1489, 2679],\n", - " 91: [3516, 7064, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509],\n", - " 106: [7064,\n", - " 3473,\n", - " 6122,\n", - " 6780,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 2925,\n", - " 4914,\n", - " 8712],\n", - " 128: [858, 1148, 1276, 1288, 111, 541, 608, 926, 1172, 1196],\n", - " 158: [2075, 2852, 615, 3341, 6319, 7064, 8199, 32316, 2131, 3224],\n", - " 160: [2494,\n", - " 26425,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 4850,\n", - " 2704,\n", - " 31116],\n", - " 175: [1564, 28, 232, 326, 926, 1046, 1199, 954, 4327, 6273],\n", - " 196: [49932,\n", - " 1934,\n", - " 7933,\n", - " 32316,\n", - " 3473,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509],\n", - " 203: [3415, 6023, 8580, 3511, 1121, 2509, 4221, 4418, 4509, 4732],\n", - " 206: [1564,\n", - " 1199,\n", - " 2075,\n", - " 2931,\n", - " 2938,\n", - " 40826,\n", - " 3516,\n", - " 1192,\n", - " 1489,\n", - " 2679],\n", - " 207: [4850,\n", - " 2704,\n", - " 27255,\n", - " 1477,\n", - " 1621,\n", - " 26425,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 6023],\n", - " 255: [1264, 4053, 50, 1260, 3365, 6273, 2959, 1131, 2075, 2938],\n", - " 265: [2796, 4387, 5438, 506, 1273, 3889, 40826, 1797, 2693, 5954],\n", - " 340: [6319,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 4732,\n", - " 4939,\n", - " 34164,\n", - " 2494],\n", - " 404: [4850,\n", - " 2494,\n", - " 2704,\n", - " 26425,\n", - " 1477,\n", - " 6319,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 6023],\n", - " 433: [6319, 3415, 3473, 6023, 8580, 6122, 8195, 3645, 4928, 6271],\n", - " 440: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4929, 4850],\n", - " 444: [1131, 2931, 2938, 4633, 3516, 1192, 745, 408, 2679, 1642],\n", - " 450: [3415, 3473, 4928, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n", - " 479: [3415, 6023, 6122, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n", - " 491: [1199,\n", - " 2931,\n", - " 2679,\n", - " 3097,\n", - " 3546,\n", - " 5434,\n", - " 39419,\n", - " 49932,\n", - " 7064,\n", - " 2721],\n", - " 506: [3341, 7064, 32316, 2721, 3415, 3473, 4208, 146, 1121, 2509],\n", - " 523: [1564, 28, 495, 912, 1046, 1212, 2959, 7193, 44761, 1131],\n", - " 539: [6319,\n", - " 3473,\n", - " 27255,\n", - " 26425,\n", - " 3694,\n", - " 3695,\n", - " 34164,\n", - " 49957,\n", - " 31116,\n", - " 1444],\n", - " 541: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 4850, 3645],\n", - " 616: [1193, 1260, 3365, 1200, 1704, 4878, 1131, 1132, 2075, 2931],\n", - " 647: [6319,\n", - " 2494,\n", - " 2704,\n", - " 5840,\n", - " 1477,\n", - " 26425,\n", - " 6122,\n", - " 2721,\n", - " 8712,\n", - " 31116],\n", - " 659: [2714, 615, 7064, 3415, 5899, 146, 1121, 2509, 4135, 4221],\n", - " 695: [2679, 6319, 1493, 4424, 8580, 1121, 2509, 4221, 4418, 4509],\n", - " 700: [2679, 2714, 6319, 7064, 3415, 4453, 121, 1236, 5077, 6122],\n", - " 707: [32316,\n", - " 3473,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 4732,\n", - " 6162,\n", - " 34164],\n", - " 748: [3473, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 4850, 6162],\n", - " 759: [2704,\n", - " 26425,\n", - " 137,\n", - " 1477,\n", - " 6319,\n", - " 2911,\n", - " 4850,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 784: [3473,\n", - " 2494,\n", - " 2911,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 1871,\n", - " 31116,\n", - " 1444],\n", - " 790: [5573, 2931, 2938, 1192, 2679, 1147, 3932, 3379, 6319, 680],\n", - " 835: [1192, 2679, 6319, 7064, 3224, 3415, 3473, 4208, 4453, 1236],\n", - " 844: [28, 1207, 2028, 942, 1260, 4011, 8968, 1131, 2931, 4276],\n", - " 871: [6319, 3415, 3473, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n", - " 875: [1260, 5017, 2075, 1192, 2679, 615, 680, 1934, 3503, 6666],\n", - " 892: [1192, 2679, 7064, 32316, 2721, 2131, 3415, 4208, 121, 146],\n", - " 919: [2931, 1493, 2131, 3415, 42015, 2925, 1176, 336, 8580, 5077],\n", - " 935: [5017, 2075, 2852, 680, 5304, 7064, 8199, 2920, 715, 3415],\n", - " 942: [2075, 2714, 6319, 7064, 2721, 3415, 3473, 6122, 27592, 668],\n", - " 960: [3415, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 6271, 7067],\n", - " 1006: [3415, 212, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 4850],\n", - " 1026: [2679,\n", - " 7064,\n", - " 3415,\n", - " 3473,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 5101],\n", - " 1047: [3516,\n", - " 2679,\n", - " 3341,\n", - " 7064,\n", - " 3415,\n", - " 3511,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418],\n", - " 65: [1477,\n", - " 26425,\n", - " 27255,\n", - " 2911,\n", - " 34164,\n", - " 31116,\n", - " 1444,\n", - " 27648,\n", - " 5287,\n", - " 1149],\n", - " 135: [1046,\n", - " 5017,\n", - " 2931,\n", - " 2938,\n", - " 40826,\n", - " 1489,\n", - " 2679,\n", - " 2714,\n", - " 49932,\n", - " 680],\n", - " 152: [2075, 2679, 8916, 680, 7064, 8199, 2721, 2920, 581, 3415],\n", - " 166: [5017, 5438, 615, 6319, 7064, 7933, 8199, 3415, 1121, 2509],\n", - " 179: [2075,\n", - " 2931,\n", - " 2938,\n", - " 3516,\n", - " 1192,\n", - " 3341,\n", - " 3379,\n", - " 49932,\n", - " 7064,\n", - " 8154],\n", - " 188: [6319,\n", - " 3473,\n", - " 2494,\n", - " 2911,\n", - " 2704,\n", - " 27255,\n", - " 26425,\n", - " 4850,\n", - " 31116,\n", - " 1444],\n", - " 217: [5438,\n", - " 6319,\n", - " 3415,\n", - " 3473,\n", - " 49957,\n", - " 3511,\n", - " 1121,\n", - " 2509,\n", - " 4012,\n", - " 4135],\n", - " 253: [2704,\n", - " 3777,\n", - " 26425,\n", - " 137,\n", - " 2930,\n", - " 1477,\n", - " 27255,\n", - " 2721,\n", - " 31116,\n", - " 1444],\n", - " 262: [2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 3645],\n", - " 277: [3511, 1121, 2509, 4221, 4418, 4509, 4732, 4929, 5101, 6162],\n", - " 289: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6271, 6918, 7067],\n", - " 300: [7064,\n", - " 3415,\n", - " 3473,\n", - " 49957,\n", - " 6023,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509],\n", - " 302: [2679, 7064, 3415, 3473, 4453, 121, 2925, 1121, 2509, 4221],\n", - " 308: [1192, 6006, 3341, 4920, 5304, 7064, 7327, 8596, 715, 3415],\n", - " 311: [3473,\n", - " 4135,\n", - " 2704,\n", - " 1477,\n", - " 26425,\n", - " 34164,\n", - " 2721,\n", - " 31116,\n", - " 7297,\n", - " 5287],\n", - " 328: [356, 110, 858, 1148, 1276, 1288, 5952, 7153, 28, 47],\n", - " 329: [3473,\n", - " 5069,\n", - " 2704,\n", - " 26425,\n", - " 27255,\n", - " 2721,\n", - " 31116,\n", - " 27741,\n", - " 1444,\n", - " 3415],\n", - " 344: [6219, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 6241],\n", - " 347: [3341,\n", - " 3415,\n", - " 3473,\n", - " 49957,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 4732],\n", - " 358: [2852, 40826, 2679, 2714, 3546, 680, 6643, 7013, 7064, 7933],\n", - " 474: [5017, 26131, 1131, 2931, 2938, 5122, 279, 1489, 2679, 6612],\n", - " 483: [213, 1148, 1276, 495, 926, 1046, 2028, 2571, 50, 904],\n", - " 509: [260, 1210, 1148, 1276, 1288, 1564, 34, 28, 58, 171],\n", - " 578: [6319, 7064, 2721, 3415, 3857, 5077, 8195, 2801, 3645, 1572],\n", - " 643: [2721, 3415, 6023, 1121, 2509, 4221, 4418, 4509, 5101, 4850],\n", - " 679: [5255, 5573, 2931, 1192, 2679, 615, 6319, 2721, 3415, 49957],\n", - " 680: [1234, 3730, 5438, 3429, 1131, 2075, 2931, 2938, 4276, 4633],\n", - " 691: [1172, 50, 4226, 4327, 2618, 5438, 7193, 1131, 2931, 2938],\n", - " 702: [2618,\n", - " 40826,\n", - " 2679,\n", - " 2696,\n", - " 1684,\n", - " 3341,\n", - " 7064,\n", - " 3415,\n", - " 3473,\n", - " 5899],\n", - " 708: [2938, 1192, 2679, 3929, 615, 1684, 5434, 49932, 7013, 7064],\n", - " 730: [589, 110, 260, 858, 1148, 1276, 1288, 5952, 28, 47],\n", - " 751: [49932, 7064, 99, 3473, 6772, 8477, 570, 6162, 34164, 55814],\n", - " 773: [2618, 1934, 7933, 2721, 3473, 1121, 2509, 4135, 4221, 4418],\n", - " 803: [3473,\n", - " 6122,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 3777,\n", - " 3804,\n", - " 1477,\n", - " 2930,\n", - " 26425],\n", - " 809: [2075, 2931, 2938, 3516, 1192, 2679, 1147, 2696, 5434, 6319],\n", - " 820: [7064, 3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 5101],\n", - " 824: [3415, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 5069],\n", - " 863: [6319, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4850],\n", - " 865: [858, 1148, 28, 111, 334, 527, 541, 608, 912, 923],\n", - " 867: [3516, 2679, 2721, 3415, 4453, 3078, 3511, 1121, 2509, 4221],\n", - " 911: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4850, 6271],\n", - " 915: [2075,\n", - " 2679,\n", - " 49932,\n", - " 6319,\n", - " 3089,\n", - " 5304,\n", - " 6783,\n", - " 7327,\n", - " 7933,\n", - " 8042],\n", - " 939: [5017, 324, 2931, 2938, 1489, 2679, 5434, 6319, 680, 3503],\n", - " 946: [1564, 28, 1234, 1260, 2931, 2938, 4633, 5122, 955, 1192],\n", - " 954: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4928, 6271, 7067],\n", - " 957: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4850],\n", - " 971: [2931, 2938, 4633, 1192, 1489, 2679, 680, 7064, 32316, 2721],\n", - " 986: [2075, 1192, 2679, 2714, 615, 6319, 7064, 2721, 1493, 3415],\n", - " 992: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4850, 8195],\n", - " 92: [326, 1172, 50, 5017, 1131, 1132, 4633, 40826, 3516, 5122],\n", - " 107: [2714, 3415, 3473, 6122, 4850, 6271, 7067, 7749, 7759, 8256],\n", - " 131: [4135,\n", - " 2704,\n", - " 26425,\n", - " 137,\n", - " 6122,\n", - " 1477,\n", - " 5069,\n", - " 27255,\n", - " 7064,\n", - " 2911],\n", - " 138: [3473,\n", - " 2704,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 2911,\n", - " 2721,\n", - " 31116,\n", - " 1444],\n", - " 145: [2075, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 4928],\n", - " 183: [1564, 326, 926, 50, 1212, 1260, 2203, 3365, 3435, 4327],\n", - " 209: [2696, 3341, 7064, 3415, 3473, 3456, 4405, 6271, 6918, 7067],\n", - " 230: [356, 1564, 4226, 2931, 2938, 3516, 318, 1192, 2019, 2550],\n", - " 263: [1148, 1252, 1276, 1288, 7153, 28, 58, 495, 778, 919],\n", - " 305: [2075, 3473, 1121, 2509, 4221, 4418, 4509, 4600, 4732, 4850],\n", - " 314: [26425,\n", - " 3777,\n", - " 137,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 2911,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 319: [2931, 1489, 2679, 7064, 2721, 3415, 2691, 1121, 2509, 4221],\n", - " 325: [2075, 2721, 3415, 3473, 5899, 5077, 8195, 3645, 668, 4928],\n", - " 341: [1210, 1564, 111, 608, 923, 926, 1199, 1219, 1221, 50],\n", - " 471: [1046, 324, 2389, 2618, 5438, 2931, 3516, 408, 6006, 6187],\n", - " 488: [4970, 2721, 3415, 2163, 6023, 4850, 3645, 5069, 2932, 4928],\n", - " 495: [2203,\n", - " 2075,\n", - " 1192,\n", - " 4808,\n", - " 1934,\n", - " 7064,\n", - " 3470,\n", - " 3473,\n", - " 6773,\n", - " 46530],\n", - " 532: [3415, 3473, 6122, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n", - " 564: [1073, 213, 1148, 1246, 1288, 1, 28, 232, 299, 326],\n", - " 574: [2931, 1192, 2679, 8916, 2696, 680, 4356, 7064, 7933, 2721],\n", - " 603: [137, 3777, 3804, 1477, 3473, 27255, 2911, 4846, 1444, 2925],\n", - " 674: [40826,\n", - " 1489,\n", - " 1837,\n", - " 2679,\n", - " 7064,\n", - " 2721,\n", - " 3415,\n", - " 3473,\n", - " 49957,\n", - " 1670],\n", - " 753: [1046, 1131, 2075, 2852, 2931, 2938, 4633, 1192, 2679, 2714],\n", - " 810: [4135,\n", - " 2704,\n", - " 26425,\n", - " 1046,\n", - " 34164,\n", - " 31116,\n", - " 7297,\n", - " 1149,\n", - " 4939,\n", - " 5255],\n", - " 830: [2679, 3341, 6319, 7064, 2721, 3415, 3473, 146, 1121, 2509],\n", - " 841: [1046, 50, 2931, 2938, 2679, 2696, 5434, 49932, 680, 7064],\n", - " 856: [2075, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 4929],\n", - " 921: [110, 5505, 7153, 495, 593, 926, 1046, 2571, 1212, 3730],\n", - " 933: [4850,\n", - " 2704,\n", - " 137,\n", - " 26425,\n", - " 2930,\n", - " 6122,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911],\n", - " 976: [3473,\n", - " 6122,\n", - " 2494,\n", - " 2704,\n", - " 2977,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 1444],\n", - " 37: [2704, 5840, 26425, 2930, 2314, 1477, 1621, 3473, 7064, 6319],\n", - " 83: [3473,\n", - " 49957,\n", - " 5069,\n", - " 2494,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 3823,\n", - " 26425],\n", - " 248: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 6271, 7067],\n", - " 387: [4135,\n", - " 4850,\n", - " 5069,\n", - " 5840,\n", - " 26425,\n", - " 1477,\n", - " 1621,\n", - " 27255,\n", - " 3097,\n", - " 2721],\n", - " 428: [3341, 3415, 3473, 6023, 8580, 3511, 1121, 2509, 4221, 4418],\n", - " 451: [2704,\n", - " 137,\n", - " 26425,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 2977,\n", - " 31116,\n", - " 1444],\n", - " 584: [2936, 1658, 7376, 1131, 1132, 1296, 2852, 29, 3516, 279],\n", - " 874: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 5391],\n", - " 995: [2704,\n", - " 4135,\n", - " 4850,\n", - " 5305,\n", - " 5069,\n", - " 6122,\n", - " 3473,\n", - " 27255,\n", - " 2425,\n", - " 3415],\n", - " 10: [324, 5438, 3516, 2679, 3918, 49932, 7064, 3415, 3473, 4208],\n", - " 19: [3516, 2679, 1493, 3473, 49957, 1121, 2509, 4135, 4221, 4418],\n", - " 41: [3415, 3473, 49957, 6023, 3645, 4405, 4928, 6271, 7067, 7749],\n", - " 43: [242, 954, 4226, 324, 6296, 1131, 2931, 2938, 2413, 2908],\n", - " 44: [260, 858, 1073, 1148, 1252, 5952, 7153, 28, 32, 47],\n", - " 45: [2721, 3473, 5899, 42015, 1184, 1236, 4079, 5077, 6122, 4939],\n", - " 51: [1148, 1564, 28, 47, 326, 1046, 1080, 1199, 1206, 1207],\n", - " 56: [1148, 1276, 1564, 28, 47, 232, 326, 1046, 1172, 1199],\n", - " 61: [28, 242, 4327, 5017, 324, 4978, 5438, 26131, 2931, 2938],\n", - " 68: [2075, 8916, 4208, 5899, 4453, 2691, 1472, 149, 206, 1236],\n", - " 69: [4920, 3415, 3473, 49957, 3511, 1121, 2271, 2509, 4135, 4221],\n", - " 78: [1564, 495, 593, 1046, 50, 1260, 3365, 3879, 1131, 2075],\n", - " 110: [1248, 1260, 2203, 4105, 1056, 2075, 2459, 7162, 955, 1192],\n", - " 115: [1046,\n", - " 2931,\n", - " 3516,\n", - " 5007,\n", - " 2679,\n", - " 3546,\n", - " 4920,\n", - " 7064,\n", - " 32316,\n", - " 3415],\n", - " 129: [5017, 2931, 4633, 40826, 1489, 2550, 3341, 680, 7064, 7327],\n", - " 150: [28, 326, 926, 1046, 1264, 50, 1260, 324, 3477, 4978],\n", - " 168: [1260, 26131, 2679, 4914, 680, 1934, 2726, 3134, 3503, 5304],\n", - " 169: [2075,\n", - " 2931,\n", - " 1489,\n", - " 3341,\n", - " 4920,\n", - " 49932,\n", - " 1934,\n", - " 3503,\n", - " 7064,\n", - " 32316],\n", - " 178: [495, 5438, 3516, 1192, 2679, 41571, 1646, 1684, 3307, 6319],\n", - " 186: [858, 28, 923, 926, 1046, 1199, 1258, 1196, 2936, 3365],\n", - " 201: [3473,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 6122,\n", - " 4850,\n", - " 34164,\n", - " 2911],\n", - " 239: [1046, 5017, 2618, 680, 3134, 3503, 5304, 6783, 7064, 7933],\n", - " 256: [1260, 5017, 1131, 2931, 4276, 4633, 932, 3929, 615, 4914],\n", - " 257: [1564, 8533, 4226, 2618, 4251, 5673, 6695, 7376, 8641, 8968],\n", - " 272: [3473,\n", - " 2911,\n", - " 27255,\n", - " 3777,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 279: [4633,\n", - " 1489,\n", - " 2679,\n", - " 2714,\n", - " 2731,\n", - " 7064,\n", - " 32316,\n", - " 2721,\n", - " 2131,\n", - " 3415],\n", - " 280: [171, 1046, 1855, 6966, 2075, 3516, 4033, 1192, 3896, 4047],\n", - " 285: [1148, 1564, 923, 1046, 904, 1260, 3365, 4226, 324, 1208],\n", - " 298: [5017, 3918, 7064, 2131, 3415, 5899, 4939, 6271, 7067, 7749],\n", - " 301: [5952, 28, 111, 903, 926, 969, 1046, 1080, 1207, 1219],\n", - " 304: [6219, 2714, 3341, 4920, 7064, 7933, 3473, 6122, 4846, 6722],\n", - " 333: [3467, 2060, 1797, 2679, 5893, 937, 1684, 45950, 680, 2935],\n", - " 334: [137,\n", - " 26425,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 6271,\n", - " 7067],\n", - " 338: [2721, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4600],\n", - " 350: [2931,\n", - " 4633,\n", - " 1192,\n", - " 1489,\n", - " 2679,\n", - " 3929,\n", - " 39419,\n", - " 680,\n", - " 7064,\n", - " 32316],\n", - " 353: [26425,\n", - " 2494,\n", - " 137,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 31116,\n", - " 1444],\n", - " 378: [1564, 2931, 2938, 4633, 3516, 1192, 2550, 1034, 3929, 2696],\n", - " 386: [2931,\n", - " 2938,\n", - " 40826,\n", - " 2679,\n", - " 8916,\n", - " 1034,\n", - " 3546,\n", - " 5434,\n", - " 8132,\n", - " 49932],\n", - " 397: [1260, 2075, 2931, 2679, 615, 4920, 5434, 680, 7064, 32316],\n", - " 420: [2931, 1489, 2048, 2714, 2696, 615, 3097, 7064, 1398, 2131],\n", - " 439: [3341, 2721, 3415, 3473, 2691, 8341, 1121, 2509, 4221, 4418],\n", - " 449: [2679, 615, 3341, 4920, 2131, 3415, 4453, 146, 1788, 8580],\n", - " 478: [26425,\n", - " 4135,\n", - " 1034,\n", - " 1477,\n", - " 2911,\n", - " 2721,\n", - " 31116,\n", - " 3415,\n", - " 6023,\n", - " 3645],\n", - " 487: [1046, 1034, 7064, 2721, 3415, 6023, 1121, 2509, 4135, 4221],\n", - " 489: [213, 1564, 5952, 7153, 593, 912, 926, 1046, 1304, 2028],\n", - " 500: [2931,\n", - " 2938,\n", - " 1192,\n", - " 1489,\n", - " 2550,\n", - " 32316,\n", - " 2721,\n", - " 3415,\n", - " 4208,\n", - " 7063],\n", - " 510: [3516, 1192, 2679, 615, 4920, 1934, 32316, 927, 3415, 8341],\n", - " 521: [321, 1172, 2028, 2959, 26131, 1131, 1132, 2075, 4276, 3516],\n", - " 522: [6319,\n", - " 3473,\n", - " 6122,\n", - " 2911,\n", - " 2704,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 1444],\n", - " 527: [589, 110, 260, 5505, 8533, 47, 242, 249, 912, 919],\n", - " 529: [5069,\n", - " 1871,\n", - " 1477,\n", - " 34164,\n", - " 1444,\n", - " 27648,\n", - " 5287,\n", - " 4939,\n", - " 3511,\n", - " 1121],\n", - " 535: [2618,\n", - " 2931,\n", - " 2938,\n", - " 4633,\n", - " 40826,\n", - " 1192,\n", - " 1489,\n", - " 2550,\n", - " 2679,\n", - " 2048],\n", - " 550: [1564, 495, 328, 4878, 1131, 1132, 2931, 2938, 40826, 3516],\n", - " 560: [1046,\n", - " 6273,\n", - " 3429,\n", - " 26131,\n", - " 2075,\n", - " 2852,\n", - " 1837,\n", - " 2679,\n", - " 4047,\n", - " 4103],\n", - " 573: [3473,\n", - " 49957,\n", - " 3694,\n", - " 3695,\n", - " 1444,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116],\n", - " 579: [2494,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 1444,\n", - " 6319],\n", - " 582: [324, 5573, 2075, 2931, 2938, 3634, 1192, 103, 1147, 3929],\n", - " 583: [213, 242, 1046, 50, 951, 1260, 3365, 4432, 6273, 799],\n", - " 587: [6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n", - " 596: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 6122, 4850],\n", - " 602: [1046,\n", - " 2618,\n", - " 2931,\n", - " 1489,\n", - " 2679,\n", - " 7064,\n", - " 3415,\n", - " 3473,\n", - " 49957,\n", - " 4453],\n", - " 618: [1489, 2679, 4920, 7064, 2721, 3415, 4453, 1121, 2509, 4221],\n", - " 624: [1221, 3365, 5017, 6273, 2959, 44761, 1056, 1131, 2075, 750],\n", - " 627: [3415, 3473, 8341, 146, 1121, 2509, 4221, 4418, 4509, 4850],\n", - " 635: [5952, 28, 32, 47, 912, 926, 1046, 1221, 1198, 2028],\n", - " 639: [321, 541, 50, 1260, 26131, 2931, 2938, 1192, 2019, 2550],\n", - " 640: [495, 912, 1221, 50, 800, 2203, 4011, 7193, 1131, 1132],\n", - " 642: [1046,\n", - " 2931,\n", - " 1192,\n", - " 2679,\n", - " 3379,\n", - " 5434,\n", - " 49932,\n", - " 7064,\n", - " 8199,\n", - " 8228],\n", - " 649: [4327, 5152, 26131, 506, 2931, 2938, 1192, 2679, 2594, 937],\n", - " 652: [242, 321, 324, 5438, 2931, 4920, 680, 7013, 2721, 2043],\n", - " 662: [2075, 1489, 3932, 7064, 2721, 3415, 4453, 6023, 2483, 5077],\n", - " 671: [49932,\n", - " 3415,\n", - " 3473,\n", - " 49957,\n", - " 4850,\n", - " 1870,\n", - " 5069,\n", - " 6271,\n", - " 7067,\n", - " 7749],\n", - " 675: [2679, 6319, 2721, 715, 1493, 2043, 2925, 1121, 2509, 4135],\n", - " 684: [6319,\n", - " 2721,\n", - " 6122,\n", - " 6162,\n", - " 55814,\n", - " 2833,\n", - " 1859,\n", - " 6270,\n", - " 3694,\n", - " 3695],\n", - " 703: [1046, 40826, 1192, 3896, 2679, 1646, 615, 5135, 4356, 7013],\n", - " 712: [1046, 324, 2938, 4633, 1192, 1489, 2679, 3918, 49932, 7013],\n", - " 726: [1564, 28, 1046, 1221, 2571, 50, 4226, 5017, 5152, 1131],\n", - " 727: [6319, 7064, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 6162],\n", - " 744: [260, 1148, 28, 30, 232, 242, 326, 1172, 1196, 1629],\n", - " 746: [7064, 2721, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509],\n", - " 761: [6319, 3473, 137, 220, 3777, 3002, 6168, 2911, 850, 3823],\n", - " 765: [50, 3516, 2679, 3546, 7064, 2721, 3415, 3473, 4208, 4453],\n", - " 766: [5438, 3473, 1121, 2509, 4221, 4418, 4509, 4600, 4678, 4732],\n", - " 771: [932, 3918, 7933, 8596, 1161, 5288, 6791, 2163, 206, 1535],\n", - " 776: [1148, 7153, 28, 495, 926, 1260, 2997, 6695, 7376, 8968],\n", - " 797: [3516,\n", - " 1034,\n", - " 7064,\n", - " 32316,\n", - " 3415,\n", - " 1161,\n", - " 1472,\n", - " 3511,\n", - " 1121,\n", - " 2271],\n", - " 812: [3516, 615, 49932, 3415, 6023, 1121, 2271, 2509, 4221, 4418],\n", - " 815: [3467, 5017, 6273, 2959, 2931, 2938, 3516, 318, 1192, 2679],\n", - " 818: [1564, 926, 1260, 3365, 6273, 36, 324, 44761, 1131, 2075],\n", - " 821: [1348, 4327, 678, 741, 1658, 2389, 5110, 26131, 2938, 4633],\n", - " 822: [3932, 3415, 3473, 2691, 6023, 8580, 1121, 2509, 4221, 4418],\n", - " 831: [28, 242, 2203, 3365, 4432, 324, 5152, 5438, 1131, 2075],\n", - " 834: [3516, 4920, 3415, 4453, 121, 3078, 3511, 1121, 2509, 4221],\n", - " 837: [3473, 2494, 2911, 137, 27255, 3777, 1477, 2930, 4135, 3804],\n", - " 839: [3516, 2714, 7064, 3415, 1121, 2509, 4135, 4221, 4418, 4509],\n", - " 840: [2679, 2721, 3415, 3473, 4453, 6023, 1121, 2509, 4221, 4418],\n", - " 851: [1288,\n", - " 1564,\n", - " 1131,\n", - " 1132,\n", - " 1233,\n", - " 2075,\n", - " 2931,\n", - " 2938,\n", - " 40826,\n", - " 5122],\n", - " 855: [2075, 2938, 2679, 615, 1934, 7064, 32316, 927, 2721, 2920],\n", - " 857: [1148, 334, 527, 5255, 3516, 3811, 1192, 932, 2679, 3000],\n", - " 868: [1046, 50, 2075, 2931, 2938, 4633, 1192, 1489, 2679, 3918],\n", - " 904: [3415, 3473, 6023, 6122, 4850, 4928, 6271, 6918, 7067, 7749],\n", - " 905: [2679,\n", - " 1934,\n", - " 7013,\n", - " 7064,\n", - " 7933,\n", - " 3473,\n", - " 49957,\n", - " 2691,\n", - " 2905,\n", - " 3511],\n", - " 906: [1046, 2931, 2679, 3415, 3473, 4208, 5899, 146, 6023, 1121],\n", - " 924: [324, 5110, 5255, 5438, 2938, 4633, 1797, 47099, 7013, 4208],\n", - " 925: [3473,\n", - " 2911,\n", - " 2704,\n", - " 3694,\n", - " 3695,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425],\n", - " 927: [1273, 1192, 1279, 2714, 1646, 3341, 2372, 5304, 7064, 7065],\n", - " 940: [1148, 1564, 527, 926, 1172, 1225, 3365, 4226, 4327, 1204],\n", - " 948: [1564, 1260, 2959, 1131, 2938, 4633, 3516, 2679, 2714, 1147],\n", - " 953: [858, 1148, 5952, 28, 47, 171, 242, 527, 608, 912],\n", - " 966: [3473,\n", - " 2911,\n", - " 2704,\n", - " 1444,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116],\n", - " 967: [2494, 137, 2930, 1477, 3473, 27255, 2911, 1444, 3415, 3645],\n", - " 979: [2075, 7064, 2721, 3415, 336, 3511, 1121, 2509, 4221, 4418],\n", - " 980: [7064, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n", - " 983: [26425,\n", - " 3002,\n", - " 6168,\n", - " 137,\n", - " 5069,\n", - " 1477,\n", - " 3473,\n", - " 6319,\n", - " 27255,\n", - " 2911],\n", - " 984: [2721,\n", - " 4850,\n", - " 34164,\n", - " 2494,\n", - " 5305,\n", - " 850,\n", - " 2704,\n", - " 1444,\n", - " 27648,\n", - " 1477],\n", - " 991: [7064,\n", - " 3694,\n", - " 3695,\n", - " 1444,\n", - " 3823,\n", - " 7297,\n", - " 27648,\n", - " 1149,\n", - " 4442,\n", - " 5034],\n", - " 1009: [4850,\n", - " 26425,\n", - " 5840,\n", - " 1477,\n", - " 1621,\n", - " 1870,\n", - " 2425,\n", - " 5069,\n", - " 8712,\n", - " 31116],\n", - " 1011: [3473,\n", - " 2911,\n", - " 27255,\n", - " 26425,\n", - " 3694,\n", - " 3695,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 1572],\n", - " 1014: [242, 912, 926, 1260, 3730, 4432, 6273, 290, 324, 5152],\n", - " 1021: [3415,\n", - " 49957,\n", - " 6023,\n", - " 3511,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 5101],\n", - " 1030: [242, 1046, 1260, 324, 2931, 2938, 4633, 40826, 5122, 1192],\n", - " 1033: [3473,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 5101,\n", - " 4850,\n", - " 4939,\n", - " 6162],\n", - " 1039: [1192, 2714, 7064, 2721, 3415, 3473, 336, 6023, 3857, 603],\n", - " 1040: [6319,\n", - " 3473,\n", - " 49957,\n", - " 4135,\n", - " 1241,\n", - " 4850,\n", - " 2494,\n", - " 2930,\n", - " 26425,\n", - " 31116],\n", - " 1053: [858, 28, 326, 1131, 1132, 2931, 5122, 318, 1192, 932],\n", - " 704: [7153, 527, 1046, 5017, 1131, 2931, 2938, 5122, 1192, 2679],\n", - " 934: [2911,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 1621,\n", - " 26425,\n", - " 2494,\n", - " 2721,\n", - " 31116,\n", - " 3415],\n", - " 42: [40826,\n", - " 1192,\n", - " 7327,\n", - " 2721,\n", - " 3224,\n", - " 3415,\n", - " 3473,\n", - " 42015,\n", - " 3078,\n", - " 3511],\n", - " 73: [408, 2679, 6319, 3415, 3473, 5288, 4453, 6023, 1121, 2509],\n", - " 82: [1241, 2494, 2911, 27255, 1477, 1621, 1444, 5287, 3511, 1121],\n", - " 159: [4850, 2704, 2911, 1444, 7064, 3415, 6023, 3645, 1572, 6271],\n", - " 161: [2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 4939],\n", - " 192: [3415, 1121, 2509, 4221, 4418, 4509, 6271, 6918, 7067, 7749],\n", - " 216: [1564, 527, 2028, 324, 5573, 6695, 1131, 2931, 2938, 3516],\n", - " 219: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6122, 4939, 3645],\n", - " 290: [3341,\n", - " 4920,\n", - " 32316,\n", - " 3473,\n", - " 8580,\n", - " 1121,\n", - " 2509,\n", - " 4135,\n", - " 4221,\n", - " 4418],\n", - " 379: [1046, 2075, 2938, 3516, 1192, 1489, 2726, 7064, 2721, 99],\n", - " 389: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 3645, 668, 1572],\n", - " 400: [6319,\n", - " 2911,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 1444,\n", - " 27648,\n", - " 5287],\n", - " 462: [2075, 2931, 2938, 1489, 2679, 615, 49932, 6319, 680, 1281],\n", - " 507: [1148,\n", - " 1260,\n", - " 3365,\n", - " 5017,\n", - " 44761,\n", - " 2931,\n", - " 2938,\n", - " 4633,\n", - " 5007,\n", - " 1192],\n", - " 600: [2494,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 721: [2203, 2936, 324, 5438, 6296, 6662, 44761, 1131, 1132, 2075],\n", - " 793: [2075, 2852, 3516, 1489, 2679, 3341, 680, 7064, 7327, 32316],\n", - " 912: [5017,\n", - " 2679,\n", - " 49932,\n", - " 7064,\n", - " 7933,\n", - " 32316,\n", - " 2721,\n", - " 3415,\n", - " 3473,\n", - " 3700],\n", - " 932: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n", - " 949: [5069,\n", - " 26425,\n", - " 137,\n", - " 1871,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 31116],\n", - " 1025: [2679,\n", - " 7064,\n", - " 2721,\n", - " 3415,\n", - " 3473,\n", - " 4453,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418],\n", - " 46: [1121, 2509, 4135, 4221, 4418, 4509, 4732, 4929, 5101, 5245],\n", - " 74: [5110, 1934, 7933, 32316, 3473, 2357, 3007, 5077, 6722, 4939],\n", - " 342: [260, 912, 926, 50, 4226, 4432, 678, 7193, 44761, 2931],\n", - " 508: [2721, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n", - " 580: [5573,\n", - " 4356,\n", - " 7933,\n", - " 5899,\n", - " 4616,\n", - " 3480,\n", - " 4939,\n", - " 1444,\n", - " 4307,\n", - " 57243],\n", - " 774: [110, 260, 5952, 28, 527, 593, 1046, 1219, 2571, 2936],\n", - " 783: [2704,\n", - " 137,\n", - " 26425,\n", - " 2930,\n", - " 27255,\n", - " 31116,\n", - " 1444,\n", - " 7297,\n", - " 1149,\n", - " 3511],\n", - " 1002: [4327, 1658, 1753, 40826, 2728, 69, 517, 1209, 2898, 2714],\n", - " 1023: [1046, 1131, 2931, 2938, 4633, 3516, 1837, 2679, 6219, 615],\n", - " 1048: [3516,\n", - " 2679,\n", - " 7064,\n", - " 2721,\n", - " 3415,\n", - " 3473,\n", - " 5899,\n", - " 6023,\n", - " 4135,\n", - " 5077],\n", - " 23: [1148,\n", - " 1046,\n", - " 1260,\n", - " 44761,\n", - " 1131,\n", - " 2938,\n", - " 3516,\n", - " 1192,\n", - " 2679,\n", - " 47099],\n", - " 96: [7064, 3473, 49957, 1121, 2509, 4221, 4418, 4509, 4850, 4939],\n", - " 124: [6219, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 3645],\n", - " 136: [2075, 40826, 2679, 3415, 3473, 8341, 146, 336, 8580, 1121],\n", - " 148: [1564, 912, 923, 1172, 1212, 1234, 1260, 4226, 5017, 324],\n", - " 189: [5017, 2938, 4633, 1192, 2679, 2677, 2708, 49932, 6319, 680],\n", - " 213: [4276, 4920, 7064, 121, 2925, 4495, 1121, 2509, 4221, 4418],\n", - " 243: [3473,\n", - " 27255,\n", - " 1477,\n", - " 1621,\n", - " 2930,\n", - " 26425,\n", - " 3694,\n", - " 3695,\n", - " 2721,\n", - " 31116],\n", - " 323: [2679, 6219, 49932, 3415, 4208, 4453, 146, 212, 8580, 3078],\n", - " 352: [1148, 242, 249, 299, 923, 1207, 1225, 2203, 2936, 3730],\n", - " 429: [7064, 2721, 2131, 3415, 146, 336, 603, 1121, 2509, 4135],\n", - " 625: [1046, 6296, 1131, 1132, 1570, 4703, 808, 2679, 7318, 2810],\n", - " 808: [3365, 5017, 6273, 324, 2796, 5255, 5283, 4276, 40826, 40],\n", - " 843: [3516, 3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 5101],\n", - " 847: [28, 308, 326, 926, 942, 1260, 2075, 5882, 3516, 1192],\n", - " 963: [5017, 6273, 26131, 408, 1966, 5304, 6783, 7064, 7327, 8125],\n", - " 975: [2704,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 3694,\n", - " 3695,\n", - " 1444,\n", - " 3415,\n", - " 3645,\n", - " 4928],\n", - " 998: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n", - " 75: [3473, 5899, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 2494],\n", - " 427: [1192, 1646, 7064, 5899, 336, 2483, 1121, 2509, 4135, 4221],\n", - " 466: [2131, 3415, 4850, 5069, 6271, 7067, 7749, 7759, 8256, 8724],\n", - " 801: [2679, 4920, 7064, 3415, 3473, 5899, 1121, 2509, 4135, 4221],\n", - " 848: [110, 260, 858, 1210, 1148, 1252, 1288, 8533, 28, 58],\n", - " 888: [2721, 3415, 3473, 4850, 4939, 3645, 1572, 6271, 6918, 7067],\n", - " 191: [4850,\n", - " 2704,\n", - " 26425,\n", - " 5840,\n", - " 1477,\n", - " 2977,\n", - " 4356,\n", - " 31116,\n", - " 2488,\n", - " 1444],\n", - " 227: [5017,\n", - " 2075,\n", - " 2731,\n", - " 5304,\n", - " 6783,\n", - " 7064,\n", - " 7933,\n", - " 8154,\n", - " 32316,\n", - " 3415],\n", - " 245: [242, 527, 926, 1046, 4053, 904, 1260, 324, 678, 2959],\n", - " 380: [3473, 2925, 1361, 8580, 4135, 5077, 6122, 4939, 5069, 6162],\n", - " 408: [2494,\n", - " 2704,\n", - " 26425,\n", - " 6122,\n", - " 3694,\n", - " 3695,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 8195],\n", - " 668: [3415, 3473, 2425, 3645, 4928, 6271, 7067, 7749, 7759, 8256],\n", - " 747: [2704,\n", - " 26425,\n", - " 1734,\n", - " 3473,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 8195,\n", - " 3645,\n", - " 668],\n", - " 754: [2721, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 4939, 1572],\n", - " 11: [28, 527, 608, 1046, 1172, 1193, 50, 1260, 3365, 4432],\n", - " 16: [4633, 3516, 1837, 2679, 2714, 2696, 3341, 7064, 581, 3415],\n", - " 81: [3516, 1192, 2679, 2714, 680, 7064, 8125, 8199, 32316, 2721],\n", - " 86: [260, 1564, 4993, 2931, 2938, 3516, 5122, 2679, 2714, 8916],\n", - " 97: [593, 2203, 324, 5110, 6695, 7360, 2075, 2931, 2938, 4633],\n", - " 151: [1489,\n", - " 2679,\n", - " 32316,\n", - " 3415,\n", - " 4208,\n", - " 4453,\n", - " 1236,\n", - " 6023,\n", - " 8580,\n", - " 1121],\n", - " 235: [1564, 5952, 28, 1046, 3477, 7193, 1131, 2852, 2931, 2938],\n", - " 251: [2704,\n", - " 137,\n", - " 26425,\n", - " 2494,\n", - " 1477,\n", - " 3473,\n", - " 6319,\n", - " 27255,\n", - " 2911,\n", - " 31116],\n", - " 258: [495, 593, 926, 1172, 913, 1260, 2936, 4432, 324, 5152],\n", - " 278: [26425,\n", - " 3694,\n", - " 3695,\n", - " 34164,\n", - " 3794,\n", - " 8712,\n", - " 31116,\n", - " 5287,\n", - " 250,\n", - " 1646],\n", - " 388: [1046, 3516, 1192, 2679, 3097, 3341, 5434, 49932, 680, 7064],\n", - " 551: [5255, 2679, 4914, 7013, 7933, 3473, 1904, 2691, 7044, 4783],\n", - " 606: [7064, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n", - " 614: [527, 1260, 4432, 324, 44761, 1131, 2931, 2938, 3516, 318],\n", - " 681: [324, 2075, 1753, 3918, 7064, 2721, 3415, 6591, 55247, 7063],\n", - " 686: [3516, 2679, 2721, 3415, 3473, 4208, 4453, 2483, 3078, 3511],\n", - " 711: [3473,\n", - " 2704,\n", - " 3694,\n", - " 3695,\n", - " 27255,\n", - " 26425,\n", - " 31116,\n", - " 1046,\n", - " 1444,\n", - " 3415],\n", - " 718: [2494,\n", - " 2704,\n", - " 1477,\n", - " 1621,\n", - " 27255,\n", - " 3694,\n", - " 3695,\n", - " 2721,\n", - " 1444,\n", - " 3415],\n", - " 873: [858, 1148, 1564, 527, 912, 919, 923, 926, 1207, 951],\n", - " 962: [28, 1046, 4251, 6695, 2852, 2931, 3061, 2550, 2594, 4951],\n", - " 985: [1046, 1489, 3473, 4453, 2691, 8341, 3515, 5077, 4939, 5417],\n", - " 993: [1172, 2203, 5017, 2959, 1131, 2075, 2931, 1203, 3516, 955],\n", - " 184: [1192, 3415, 3473, 3090, 121, 212, 1788, 1121, 2509, 4221],\n", - " 246: [2494,\n", - " 2704,\n", - " 137,\n", - " 26425,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 2911,\n", - " 7064,\n", - " 31116],\n", - " 373: [26425,\n", - " 6122,\n", - " 45728,\n", - " 3473,\n", - " 3694,\n", - " 3695,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 6023],\n", - " 430: [2931, 4276, 40, 2679, 2399, 2721, 3473, 48738, 49957, 1366],\n", - " 534: [1034, 2988, 212, 1121, 2271, 2509, 4221, 4418, 4509, 4732],\n", - " 805: [858, 28, 326, 50, 3365, 5017, 2997, 26131, 1131, 1132],\n", - " 58: [28, 6273, 1136, 2618, 5438, 26131, 2931, 2938, 40826, 3516],\n", - " 112: [3473,\n", - " 2911,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 2704,\n", - " 49957,\n", - " 31116],\n", - " 367: [2959, 4251, 613, 2075, 2931, 973, 4633, 1489, 2679, 47099],\n", - " 548: [1148, 1252, 7153, 150, 28, 47, 242, 527, 541, 593],\n", - " 791: [5017, 324, 2931, 318, 2550, 8916, 47099, 47970, 2696, 680],\n", - " 909: [7064, 2721, 2131, 3415, 5899, 6023, 2483, 1121, 2509, 4221],\n", - " 1041: [6319,\n", - " 3415,\n", - " 3473,\n", - " 6023,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 5101],\n", - " 13: [3473,\n", - " 2494,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 2977,\n", - " 1444,\n", - " 3415],\n", - " 869: [7064, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4850],\n", - " 415: [2075, 2696, 615, 3097, 7064, 2721, 1398, 2131, 3415, 4453],\n", - " 477: [28, 904, 2931, 2938, 3516, 279, 955, 1192, 2679, 1147],\n", - " 569: [2075, 2931, 4276, 5882, 1489, 2679, 2714, 6319, 7013, 7064],\n", - " 694: [213, 1564, 1629, 2203, 324, 4251, 5283, 1131, 2852, 2931],\n", - " 729: [7064,\n", - " 2721,\n", - " 3473,\n", - " 49957,\n", - " 2925,\n", - " 27592,\n", - " 8477,\n", - " 668,\n", - " 6162,\n", - " 6918],\n", - " 741: [1046, 1131, 1273, 2852, 2938, 3516, 1192, 2679, 1646, 4920],\n", - " 965: [615, 7064, 2721, 3415, 5077, 6122, 6271, 7067, 7749, 7759],\n", - " 17: [5438, 2931, 4633, 1192, 1489, 2679, 5304, 6783, 7064, 2721],\n", - " 40: [2075, 2931, 40826, 1489, 2679, 2696, 3341, 680, 7064, 8125],\n", - " 114: [2931, 2679, 3415, 3473, 7063, 1236, 1121, 2509, 4221, 4418],\n", - " 137: [2704,\n", - " 137,\n", - " 26425,\n", - " 2930,\n", - " 1477,\n", - " 2494,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 4850],\n", - " 153: [1192, 1489, 2714, 8916, 2131, 3415, 1904, 4453, 121, 1236],\n", - " 211: [1148, 1288, 1564, 5952, 28, 527, 923, 926, 1172, 1199],\n", - " 286: [1131, 2679, 5434, 6319, 680, 2726, 6643, 7013, 7064, 7933],\n", - " 330: [1096, 7376, 1131, 1132, 2931, 2938, 3634, 955, 1192, 1837],\n", - " 336: [2075,\n", - " 7064,\n", - " 7933,\n", - " 32316,\n", - " 2721,\n", - " 2131,\n", - " 3415,\n", - " 6023,\n", - " 1121,\n", - " 2509],\n", - " 372: [7193, 2075, 2931, 2938, 40826, 1192, 2679, 1178, 680, 2721],\n", - " 376: [1046, 1489, 2550, 2679, 8916, 32316, 2721, 99, 3415, 3473],\n", - " 412: [2704,\n", - " 26425,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 6122,\n", - " 850,\n", - " 5069],\n", - " 447: [1489, 2679, 2714, 7064, 7933, 2721, 3415, 3473, 603, 1121],\n", - " 467: [28, 171, 926, 1046, 2571, 951, 1248, 6273, 2618, 7827],\n", - " 490: [1192, 2679, 680, 3415, 3473, 1161, 1189, 5288, 4453, 190],\n", - " 518: [1564, 28, 1046, 1172, 50, 1260, 5017, 2618, 26131, 1131],\n", - " 608: [2704,\n", - " 220,\n", - " 3777,\n", - " 3804,\n", - " 26425,\n", - " 7064,\n", - " 3473,\n", - " 2721,\n", - " 31116,\n", - " 1444],\n", - " 619: [5505, 28, 171, 527, 541, 926, 1235, 800, 4327, 4432],\n", - " 644: [356, 362, 364, 588, 594, 616, 590, 648, 733, 780],\n", - " 667: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 3645, 1572, 6271],\n", - " 698: [1564, 926, 1260, 3477, 3879, 1131, 1132, 1213, 2075, 2852],\n", - " 709: [1046, 2931, 2938, 4633, 5122, 1192, 2550, 2679, 2048, 3097],\n", - " 728: [110, 326, 593, 50, 1260, 3365, 4226, 6273, 4251, 6695],\n", - " 733: [1046,\n", - " 1535,\n", - " 2425,\n", - " 5069,\n", - " 34164,\n", - " 2494,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 2721],\n", - " 777: [324, 3516, 2721, 3415, 3473, 5077, 6122, 6722, 6772, 3579],\n", - " 813: [2679, 615, 7064, 2721, 581, 3415, 3473, 4208, 49957, 4453],\n", - " 832: [213, 1564, 912, 923, 926, 1219, 1221, 1258, 904, 6273],\n", - " 893: [2938,\n", - " 2679,\n", - " 615,\n", - " 5434,\n", - " 49932,\n", - " 1281,\n", - " 7064,\n", - " 7933,\n", - " 32316,\n", - " 2721],\n", - " 901: [260, 1210, 1148, 1252, 1288, 5952, 28, 47, 111, 232],\n", - " 937: [2679, 3473, 3511, 603, 1121, 2509, 4221, 4418, 4509, 4732],\n", - " 947: [7064,\n", - " 26425,\n", - " 2930,\n", - " 1477,\n", - " 1621,\n", - " 27255,\n", - " 2911,\n", - " 8712,\n", - " 31116,\n", - " 1444],\n", - " 362: [2494,\n", - " 3777,\n", - " 26425,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 3694,\n", - " 3695,\n", - " 31116,\n", - " 1444],\n", - " 375: [2931, 1489, 2048, 5159, 680, 7064, 7065, 7327, 2043, 2131],\n", - " 599: [242, 2075, 2679, 32316, 2721, 3473, 2691, 3078, 5077, 4939],\n", - " 632: [1192, 2679, 3415, 1121, 2509, 4221, 4418, 4509, 4929, 4850],\n", - " 779: [2704,\n", - " 26425,\n", - " 2494,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 850,\n", - " 2721,\n", - " 31116,\n", - " 1444],\n", - " 1022: [2931,\n", - " 3516,\n", - " 1192,\n", - " 1489,\n", - " 7064,\n", - " 32316,\n", - " 3473,\n", - " 4208,\n", - " 4453,\n", - " 2691],\n", - " 1034: [6319,\n", - " 3473,\n", - " 850,\n", - " 2704,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 2494,\n", - " 5287],\n", - " 819: [213, 2704, 220, 3777, 3804, 2419, 6219, 1734, 3473, 6122],\n", - " 2: [3473, 4135, 4850, 2425, 2704, 137, 27255, 26425, 8712, 31116],\n", - " 3: [242, 321, 326, 926, 1172, 1212, 1248, 1260, 4432, 6273],\n", - " 104: [356, 589, 1073, 1210, 1356, 1148, 1288, 4995, 5952, 7153],\n", - " 105: [2796, 680, 7064, 715, 2131, 3224, 3415, 603, 1121, 2509],\n", - " 218: [260, 858, 1148, 1288, 1564, 28, 495, 926, 1172, 1199],\n", - " 250: [50, 4226, 6695, 7193, 2075, 1192, 2594, 4951, 1034, 615],\n", - " 313: [242, 321, 324, 973, 3516, 32316, 3473, 1236, 8580, 6122],\n", - " 377: [5438, 2075, 4920, 7064, 3473, 4424, 3511, 1121, 2509, 4221],\n", - " 413: [1148, 1564, 28, 306, 593, 608, 926, 1046, 1207, 1221],\n", - " 576: [3516, 1489, 2679, 7064, 2721, 3415, 4453, 4783, 5077, 6122],\n", - " 586: [1046, 1260, 3365, 4432, 1131, 2931, 2938, 1753, 4633, 1489],\n", - " 595: [2679, 6319, 2721, 3473, 4208, 5899, 4453, 8341, 146, 1121],\n", - " 610: [50, 1260, 5017, 7193, 7376, 2938, 4633, 3516, 5007, 808],\n", - " 613: [5283, 7064, 3415, 3473, 3007, 1904, 5899, 1472, 4135, 5077],\n", - " 637: [527, 1041, 5438, 8968, 1131, 1354, 4276, 2360, 1192, 1837],\n", - " 663: [2075, 2931, 2679, 3097, 6319, 7064, 2721, 2043, 3224, 3415],\n", - " 740: [321, 527, 926, 1046, 1172, 50, 800, 1234, 2203, 4844],\n", - " 787: [260, 1246, 4535, 5952, 7153, 28, 58, 171, 232, 242],\n", - " 804: [26131,\n", - " 2721,\n", - " 3415,\n", - " 3473,\n", - " 6023,\n", - " 1121,\n", - " 2271,\n", - " 2509,\n", - " 3688,\n", - " 4135],\n", - " 866: [1046, 2075, 1489, 2679, 6319, 7064, 3415, 3473, 4208, 4453],\n", - " 883: [2075,\n", - " 32316,\n", - " 8580,\n", - " 1121,\n", - " 2509,\n", - " 4135,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 5101],\n", - " 941: [6695, 7007, 1203, 1192, 1489, 4228, 3918, 2696, 680, 2731],\n", - " 1007: [242, 1046, 5017, 324, 5255, 5283, 1646, 5304, 6783, 7064],\n", - " 817: [110, 1564, 8533, 28, 242, 926, 1172, 457, 1629, 954],\n", - " 6: [1260, 3365, 5017, 2959, 2075, 1489, 2679, 3929, 1178, 3097],\n", - " 7: [2075, 2931, 4633, 3516, 1192, 1489, 6219, 3929, 3341, 7064],\n", - " 14: [2721, 3473, 2911, 850, 2977, 137, 27255, 3777, 3804, 1477],\n", - " 24: [1148, 242, 324, 2959, 3477, 5438, 6290, 1131, 2931, 2938],\n", - " 57: [2203,\n", - " 2936,\n", - " 3365,\n", - " 5017,\n", - " 7193,\n", - " 44761,\n", - " 2931,\n", - " 2938,\n", - " 8970,\n", - " 40826],\n", - " 60: [5438, 6319, 2721, 2131, 3415, 5899, 49957, 6023, 1121, 2509],\n", - " 64: [3473,\n", - " 2911,\n", - " 2704,\n", - " 137,\n", - " 27255,\n", - " 26425,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 3645],\n", - " 84: [4850,\n", - " 2704,\n", - " 137,\n", - " 26425,\n", - " 3473,\n", - " 27255,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 8195],\n", - " 90: [2203,\n", - " 1131,\n", - " 2931,\n", - " 2938,\n", - " 40826,\n", - " 1192,\n", - " 2679,\n", - " 2714,\n", - " 8916,\n", - " 47970],\n", - " 98: [28, 495, 912, 1046, 1212, 1260, 3365, 2618, 2959, 5438],\n", - " 113: [613, 40826, 3516, 8596, 32316, 715, 4424, 2925, 5077, 2488],\n", - " 120: [2163,\n", - " 4135,\n", - " 5069,\n", - " 6780,\n", - " 27741,\n", - " 2704,\n", - " 27255,\n", - " 1477,\n", - " 1621,\n", - " 26425],\n", - " 123: [28, 50, 5017, 324, 2796, 4105, 5438, 44761, 2931, 2938],\n", - " 157: [858, 1148, 321, 527, 541, 912, 1172, 1221, 1196, 50],\n", - " 194: [8533, 1046, 1248, 1260, 4406, 4432, 678, 2618, 4011, 4251],\n", - " 200: [5438,\n", - " 26131,\n", - " 2938,\n", - " 4276,\n", - " 1489,\n", - " 1837,\n", - " 2679,\n", - " 3917,\n", - " 3929,\n", - " 1150],\n", - " 204: [3918, 3415, 3473, 336, 6122, 4850, 1585, 3645, 5069, 6271],\n", - " 205: [1260, 7376, 2075, 2852, 2931, 2938, 4276, 5007, 808, 1192],\n", - " 225: [110, 858, 1210, 1148, 1246, 1276, 5952, 7153, 8783, 28],\n", - " 229: [3473, 2911, 2704, 137, 27255, 1444, 408, 3415, 3645, 4405],\n", - " 237: [7064,\n", - " 3473,\n", - " 4135,\n", - " 4850,\n", - " 5069,\n", - " 2911,\n", - " 2977,\n", - " 27255,\n", - " 1477,\n", - " 26425],\n", - " 242: [858, 242, 912, 1234, 6273, 2618, 4011, 7193, 26131, 1131],\n", - " 252: [110, 858, 1148, 1276, 1564, 8533, 28, 306, 593, 903],\n", - " 266: [1564, 28, 50, 2959, 4993, 1131, 2931, 2938, 3516, 955],\n", - " 270: [2704,\n", - " 26425,\n", - " 137,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 2977,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 282: [3473,\n", - " 4850,\n", - " 2704,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 3823,\n", - " 31116,\n", - " 1444],\n", - " 297: [615, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n", - " 309: [3415, 3473, 149, 8195, 2425, 3645, 668, 1572, 4928, 6271],\n", - " 316: [40826,\n", - " 680,\n", - " 3503,\n", - " 5304,\n", - " 7064,\n", - " 7933,\n", - " 32316,\n", - " 3415,\n", - " 3473,\n", - " 42015],\n", - " 327: [3516, 2696, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4585],\n", - " 356: [137,\n", - " 6122,\n", - " 3473,\n", - " 27255,\n", - " 3694,\n", - " 3695,\n", - " 1444,\n", - " 7297,\n", - " 27648,\n", - " 5287],\n", - " 393: [4850,\n", - " 5305,\n", - " 2704,\n", - " 137,\n", - " 26425,\n", - " 27255,\n", - " 2347,\n", - " 2732,\n", - " 5840,\n", - " 31116],\n", - " 394: [4633,\n", - " 3516,\n", - " 1489,\n", - " 2679,\n", - " 7064,\n", - " 8125,\n", - " 8199,\n", - " 32316,\n", - " 2721,\n", - " 3415],\n", - " 395: [2714,\n", - " 7064,\n", - " 27741,\n", - " 2494,\n", - " 27255,\n", - " 1477,\n", - " 1621,\n", - " 3694,\n", - " 3695,\n", - " 2419],\n", - " 399: [1192, 2696, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509],\n", - " 401: [3516, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6044],\n", - " 402: [26425,\n", - " 2977,\n", - " 53519,\n", - " 99,\n", - " 2721,\n", - " 31116,\n", - " 1444,\n", - " 3823,\n", - " 27648,\n", - " 4939],\n", - " 405: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n", - " 417: [321, 2931, 3516, 1192, 2679, 2696, 7064, 2721, 3415, 3473],\n", - " 422: [4850, 5840, 137, 3473, 1444, 3415, 6023, 8195, 3645, 4928],\n", - " 437: [2075, 2931, 2938, 4633, 2679, 2714, 49932, 680, 7064, 7327],\n", - " 455: [2679, 3918, 615, 4920, 2131, 3224, 3415, 3473, 123, 5288],\n", - " 461: [3415, 6023, 6122, 8195, 3645, 668, 1572, 4928, 6271, 6918],\n", - " 473: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n", - " 484: [2203, 2931, 1489, 2679, 615, 680, 7064, 7933, 32316, 2721],\n", - " 499: [3341, 7064, 7933, 8199, 32316, 715, 3415, 3511, 1121, 2509],\n", - " 526: [7064, 3415, 4850, 3645, 6271, 7067, 7749, 7759, 8256, 8724],\n", - " 537: [3477, 5438, 3516, 3918, 3415, 3473, 6023, 8580, 1121, 2271],\n", - " 542: [7153, 28, 47, 495, 608, 926, 1172, 2571, 1212, 1234],\n", - " 557: [2704,\n", - " 137,\n", - " 26425,\n", - " 27255,\n", - " 2911,\n", - " 5840,\n", - " 2425,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 563: [5069,\n", - " 2704,\n", - " 137,\n", - " 26425,\n", - " 3473,\n", - " 27255,\n", - " 6122,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 570: [110, 858, 306, 593, 1046, 1196, 1089, 7193, 1131, 1132],\n", - " 575: [1148, 28, 47, 495, 527, 541, 593, 778, 903, 912],\n", - " 594: [242, 527, 5017, 5294, 4978, 5110, 5255, 5438, 1131, 1132],\n", - " 607: [7153, 2028, 2571, 5017, 7193, 3429, 2075, 2931, 2938, 4276],\n", - " 631: [8533, 608, 912, 926, 1046, 50, 904, 1260, 2203, 2936],\n", - " 651: [110, 213, 1288, 1564, 5952, 7153, 47, 111, 306, 326],\n", - " 664: [5017, 324, 26131, 1131, 2075, 2931, 3516, 1489, 2679, 2714],\n", - " 685: [5069,\n", - " 2704,\n", - " 137,\n", - " 1477,\n", - " 26425,\n", - " 27255,\n", - " 1621,\n", - " 2911,\n", - " 31116,\n", - " 1444],\n", - " 690: [5069,\n", - " 2704,\n", - " 137,\n", - " 26425,\n", - " 1477,\n", - " 27255,\n", - " 31116,\n", - " 3823,\n", - " 1444,\n", - " 3224],\n", - " 696: [2494,\n", - " 2704,\n", - " 5840,\n", - " 26425,\n", - " 2930,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 850],\n", - " 724: [495,\n", - " 2618,\n", - " 3516,\n", - " 47099,\n", - " 2696,\n", - " 1734,\n", - " 3473,\n", - " 4208,\n", - " 55247,\n", - " 4783],\n", - " 738: [5017,\n", - " 5304,\n", - " 6783,\n", - " 7064,\n", - " 7933,\n", - " 8125,\n", - " 8199,\n", - " 32316,\n", - " 3415,\n", - " 3473],\n", - " 762: [3473,\n", - " 4850,\n", - " 2704,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 763: [2679, 3394, 3470, 3473, 1236, 2579, 1442, 1121, 2509, 4135],\n", - " 770: [26131,\n", - " 1934,\n", - " 7064,\n", - " 32316,\n", - " 927,\n", - " 2721,\n", - " 3473,\n", - " 5077,\n", - " 4939,\n", - " 45728],\n", - " 796: [858, 912, 1046, 1196, 2618, 5438, 296, 2075, 2931, 2938],\n", - " 800: [3473,\n", - " 4135,\n", - " 4850,\n", - " 2704,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 1444],\n", - " 829: [5017, 2959, 2931, 2938, 5122, 1192, 2550, 2679, 2714, 8916],\n", - " 836: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n", - " 882: [2618, 1131, 1913, 2931, 2938, 2360, 5122, 1192, 932, 1837],\n", - " 900: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 3645, 6271],\n", - " 903: [2618,\n", - " 5255,\n", - " 5438,\n", - " 2075,\n", - " 2931,\n", - " 2938,\n", - " 4276,\n", - " 40826,\n", - " 1192,\n", - " 1489],\n", - " 914: [40826,\n", - " 7064,\n", - " 7933,\n", - " 2721,\n", - " 3415,\n", - " 3473,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418],\n", - " 918: [5017,\n", - " 7193,\n", - " 7376,\n", - " 2075,\n", - " 2931,\n", - " 2938,\n", - " 3387,\n", - " 40826,\n", - " 3516,\n", - " 1192],\n", - " 920: [1148, 1046, 1199, 908, 4226, 2618, 2959, 7193, 1131, 2852],\n", - " 945: [2704,\n", - " 26425,\n", - " 27255,\n", - " 6122,\n", - " 4850,\n", - " 31116,\n", - " 3823,\n", - " 27741,\n", - " 1444,\n", - " 3415],\n", - " 950: [356, 1564, 150, 28, 111, 171, 495, 527, 912, 923],\n", - " 952: [5505, 306, 308, 321, 326, 926, 1264, 942, 2203, 2936],\n", - " 982: [2696, 3415, 3473, 3511, 1121, 2271, 2509, 4221, 4418, 4509],\n", - " 989: [362, 589, 110, 733, 1210, 1148, 1674, 5952, 7153, 161],\n", - " 1016: [3516, 7064, 2721, 3473, 336, 2483, 1121, 2509, 4135, 4221],\n", - " 1019: [321, 5017, 2931, 3516, 1192, 2679, 2696, 1945, 3813, 5434],\n", - " 1044: [356, 377, 589, 594, 616, 110, 858, 1356, 213, 1148],\n", - " 1051: [3473,\n", - " 2704,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 6023],\n", - " 917: [3516, 7064, 3415, 3473, 5077, 6122, 4939, 3645, 6241, 6271],\n", - " 951: [1260, 4432, 2618, 4105, 6003, 8641, 1056, 1131, 2931, 3516],\n", - " 997: [1260, 3429, 2931, 2938, 3516, 1192, 1223, 745, 2550, 3000],\n", - " 174: [3415, 3473, 6023, 6122, 3645, 4928, 6271, 6918, 7067, 7749],\n", - " 676: [49932, 1934, 3503, 7064, 927, 2721, 3473, 5288, 1361, 7209],\n", - " 764: [615, 5899, 2925, 3511, 1121, 2509, 4221, 4418, 4509, 5101],\n", - " 1052: [615, 3341, 7013, 8596, 32316, 715, 1493, 7063, 8580, 3511],\n", - " 5: [1489, 7064, 3415, 3473, 4208, 49957, 4453, 212, 1121, 2271],\n", - " 27: [2704,\n", - " 137,\n", - " 26425,\n", - " 1477,\n", - " 27255,\n", - " 31116,\n", - " 7064,\n", - " 1444,\n", - " 3415,\n", - " 6023],\n", - " 33: [3473,\n", - " 6122,\n", - " 2911,\n", - " 2704,\n", - " 137,\n", - " 27255,\n", - " 26425,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 134: [858, 306, 1046, 1172, 50, 4226, 2618, 26131, 1131, 2852],\n", - " 142: [2704,\n", - " 26425,\n", - " 1477,\n", - " 6319,\n", - " 5069,\n", - " 27255,\n", - " 2911,\n", - " 31116,\n", - " 1444,\n", - " 3415],\n", - " 156: [2714,\n", - " 2970,\n", - " 27741,\n", - " 2977,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 1621,\n", - " 26425,\n", - " 1366],\n", - " 167: [3415, 3473, 6023, 3511, 1121, 2509, 4221, 4418, 4509, 4732],\n", - " 177: [615, 7064, 7933, 8199, 3415, 1121, 2509, 4221, 4418, 4509],\n", - " 224: [321, 326, 926, 1199, 50, 1260, 1348, 1611, 1658, 6695],\n", - " 269: [2075, 3516, 3918, 2721, 3415, 5034, 4187, 6023, 3645, 1572],\n", - " 312: [1148, 495, 527, 926, 1199, 1248, 1260, 2804, 2936, 4226],\n", - " 360: [3477, 5283, 5438, 2931, 2938, 3516, 4102, 2714, 3918, 3341],\n", - " 385: [615, 3415, 6023, 5077, 4850, 4939, 3645, 5069, 1572, 4405],\n", - " 411: [1260, 3365, 2618, 2075, 2931, 2938, 6612, 3932, 615, 680],\n", - " 464: [2075,\n", - " 1192,\n", - " 1489,\n", - " 2679,\n", - " 1966,\n", - " 5304,\n", - " 6783,\n", - " 7933,\n", - " 32316,\n", - " 3415],\n", - " 568: [326, 4844, 5110, 6290, 6440, 8641, 1131, 1233, 2852, 29],\n", - " 612: [260, 1046, 2618, 5438, 1131, 2852, 3516, 4102, 7162, 1192],\n", - " 630: [326, 6273, 1658, 2618, 26131, 1056, 2075, 4276, 1192, 932],\n", - " 706: [2936, 5017, 2796, 4047, 6187, 8916, 1646, 49932, 680, 2731],\n", - " 737: [2704,\n", - " 26425,\n", - " 5069,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 31116,\n", - " 3823,\n", - " 3415,\n", - " 6023],\n", - " 749: [1192,\n", - " 363,\n", - " 2704,\n", - " 2330,\n", - " 1444,\n", - " 27255,\n", - " 5287,\n", - " 1477,\n", - " 1621,\n", - " 26425],\n", - " 756: [3473,\n", - " 5069,\n", - " 2911,\n", - " 2704,\n", - " 137,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 1444],\n", - " 811: [1658,\n", - " 3022,\n", - " 3742,\n", - " 7064,\n", - " 3694,\n", - " 3695,\n", - " 3823,\n", - " 27648,\n", - " 5077,\n", - " 4939],\n", - " 853: [3093, 206, 1870, 2425, 1649, 6780, 34164, 2494, 2704, 5840],\n", - " 884: [1260, 6695, 7193, 7376, 8968, 1132, 2075, 5882, 3516, 1177],\n", - " 955: [260, 28, 50, 1260, 3365, 4226, 4327, 324, 4993, 7371],\n", - " 1032: [1148, 5952, 7153, 8533, 28, 58, 111, 306, 326, 334],\n", - " 1043: [1049, 213, 1148, 3684, 232, 242, 527, 923, 1096, 1207],\n", - " 370: [3918, 680, 4356, 7933, 2721, 3473, 6791, 1121, 2271, 2509],\n", - " 670: [3341,\n", - " 7064,\n", - " 7933,\n", - " 8199,\n", - " 32316,\n", - " 2131,\n", - " 3415,\n", - " 6023,\n", - " 3511,\n", - " 1121],\n", - " 923: [260, 1252, 299, 527, 1046, 1212, 2203, 3365, 4226, 678],\n", - " 931: [1658, 3918, 680, 2935, 581, 217, 2787, 6772, 4850, 5069],\n", - " 969: [5893, 3473, 4117, 137, 1477, 1621, 6772, 3823, 5287, 3477],\n", - " 12: [4914, 3503, 7064, 7933, 8199, 2721, 3415, 1121, 2509, 4221],\n", - " 597: [4053, 2931, 3516, 1489, 2679, 2714, 8916, 1034, 2721, 3415],\n", - " 195: [28, 242, 2931, 2938, 3516, 1489, 2679, 7064, 32316, 2721],\n", - " 337: [356, 260, 858, 1148, 1252, 5952, 28, 232, 326, 495],\n", - " 910: [3516, 1192, 3341, 7064, 2721, 3415, 3473, 121, 1121, 2509],\n", - " 63: [5069,\n", - " 2911,\n", - " 2704,\n", - " 27255,\n", - " 2930,\n", - " 26425,\n", - " 850,\n", - " 31116,\n", - " 7064,\n", - " 1444],\n", - " 70: [7064, 7933, 3415, 3473, 6023, 4135, 4850, 4939, 5069, 668],\n", - " 99: [2852, 2931, 3516, 1489, 8916, 7064, 2721, 3415, 3473, 4208],\n", - " 121: [5017,\n", - " 2075,\n", - " 7064,\n", - " 8199,\n", - " 32316,\n", - " 2920,\n", - " 2131,\n", - " 3415,\n", - " 2925,\n", - " 4079],\n", - " 130: [2075,\n", - " 40826,\n", - " 4920,\n", - " 7064,\n", - " 2043,\n", - " 3415,\n", - " 4453,\n", - " 8341,\n", - " 4079,\n", - " 6023],\n", - " 244: [260, 28, 1260, 2203, 4226, 290, 1262, 2618, 2959, 5283],\n", - " 291: [2696, 7064, 3415, 3473, 6023, 1121, 2509, 4135, 4221, 4418],\n", - " 335: [1564, 1199, 2618, 1233, 2852, 2931, 1203, 4633, 3516, 318],\n", - " 361: [7064, 3415, 3473, 5899, 149, 6023, 3511, 710, 1121, 2509],\n", - " 470: [260, 3365, 1131, 1132, 2075, 2852, 2931, 2938, 4276, 40826],\n", - " 497: [137,\n", - " 26425,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 2977,\n", - " 31116,\n", - " 4850,\n", - " 1444],\n", - " 620: [242, 2075, 2679, 7064, 1734, 2644, 3415, 3473, 121, 212],\n", - " 648: [28, 326, 926, 1046, 2203, 3365, 4432, 4848, 6296, 7371],\n", - " 666: [4850,\n", - " 850,\n", - " 2704,\n", - " 27255,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 7064,\n", - " 3415,\n", - " 6241],\n", - " 710: [1564, 28, 593, 1172, 1264, 50, 1260, 4226, 4327, 2959],\n", - " 794: [4850, 2704, 27255, 2721, 1444, 3415, 8195, 3645, 668, 1572],\n", - " 854: [3473,\n", - " 4135,\n", - " 4850,\n", - " 2911,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 1444],\n", - " 861: [28, 50, 799, 2618, 5438, 2075, 2931, 40826, 3516, 318],\n", - " 87: [260, 858, 1148, 1252, 1564, 111, 527, 593, 926, 1046],\n", - " 317: [1046, 2721, 3415, 3473, 1184, 146, 3511, 1121, 2509, 4221],\n", - " 324: [2721, 3415, 4928, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n", - " 502: [3918,\n", - " 2721,\n", - " 3473,\n", - " 6591,\n", - " 49957,\n", - " 4495,\n", - " 4135,\n", - " 5077,\n", - " 6122,\n", - " 1827],\n", - " 559: [213,\n", - " 2704,\n", - " 1034,\n", - " 6188,\n", - " 34164,\n", - " 44974,\n", - " 1361,\n", - " 6780,\n", - " 3811,\n", - " 5899],\n", - " 973: [1046, 3477, 5438, 1753, 3415, 3473, 212, 6023, 3511, 1121],\n", - " 1015: [858, 1564, 321, 527, 1221, 3365, 6695, 2931, 2938, 750],\n", - " 1017: [1034,\n", - " 2425,\n", - " 2704,\n", - " 27255,\n", - " 26425,\n", - " 4850,\n", - " 99,\n", - " 8712,\n", - " 31116,\n", - " 6780],\n", - " 85: [6122,\n", - " 2704,\n", - " 137,\n", - " 26425,\n", - " 1477,\n", - " 27255,\n", - " 2911,\n", - " 34164,\n", - " 49957,\n", - " 31116],\n", - " 306: [2935, 7064, 3473, 2925, 5077, 6122, 4939, 2911, 4442, 850],\n", - " 653: [4850,\n", - " 26425,\n", - " 4135,\n", - " 1477,\n", - " 1621,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 2721,\n", - " 31116],\n", - " 371: [26425,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 2721,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 3645],\n", - " 566: [2704,\n", - " 5840,\n", - " 3473,\n", - " 1366,\n", - " 2977,\n", - " 2419,\n", - " 3823,\n", - " 4356,\n", - " 55269,\n", - " 6122],\n", - " 331: [7064,\n", - " 2704,\n", - " 26425,\n", - " 1477,\n", - " 4850,\n", - " 5069,\n", - " 31116,\n", - " 1444,\n", - " 8125,\n", - " 8199],\n", - " 665: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 6122, 4850],\n", - " 872: [1046, 2075, 2931, 2938, 2679, 3676, 5304, 6783, 7064, 8042],\n", - " 879: [260, 858, 1210, 1276, 28, 111, 306, 527, 541, 778],\n", - " 486: [1046, 5438, 2852, 4276, 4633, 3516, 955, 1192, 2550, 6187],\n", - " 864: [2704,\n", - " 26425,\n", - " 2494,\n", - " 2930,\n", - " 27741,\n", - " 27255,\n", - " 6122,\n", - " 34164,\n", - " 850,\n", - " 31116],\n", - " 52: [3365, 6273, 2618, 26131, 2075, 2931, 2938, 1203, 5122, 6316],\n", - " 288: [324, 2060, 5255, 2931, 2679, 3270, 1646, 1281, 5304, 7933],\n", - " 9: [61, 2679, 1646, 1946, 3341, 4920, 7064, 99, 715, 1493],\n", - " 117: [2721,\n", - " 3473,\n", - " 2911,\n", - " 1444,\n", - " 27255,\n", - " 1477,\n", - " 1621,\n", - " 26425,\n", - " 31116,\n", - " 3415],\n", - " 220: [5017, 328, 2931, 1192, 1489, 5159, 3341, 3831, 2731, 5304],\n", - " 544: [1046, 3516, 2721, 3415, 3090, 5288, 1121, 2509, 4221, 4418],\n", - " 999: [242, 2936, 328, 1658, 506, 2075, 2852, 2931, 3115, 4276],\n", - " 458: [4850,\n", - " 5069,\n", - " 2930,\n", - " 26425,\n", - " 1477,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 850,\n", - " 31116],\n", - " 974: [927, 1236, 8580, 4466, 6669, 6162, 2625, 80, 2833, 2704],\n", - " 546: [1148, 1252, 1276, 232, 593, 1199, 1230, 50, 904, 1248],\n", - " 55: [3415, 121, 212, 3511, 1121, 2509, 4221, 4418, 4509, 5101],\n", - " 363: [1148, 242, 608, 1046, 50, 904, 1260, 3365, 4432, 1213],\n", - " 445: [3341, 3415, 3473, 121, 1121, 2509, 4135, 4221, 4418, 4509],\n", - " 492: [926, 1046, 50, 678, 7193, 1131, 1233, 2075, 2931, 2938],\n", - " 234: [615, 1684, 6319, 7933, 32316, 2721, 1121, 2509, 4135, 4221],\n", - " 1027: [2075,\n", - " 2721,\n", - " 3415,\n", - " 3473,\n", - " 1121,\n", - " 2509,\n", - " 4221,\n", - " 4418,\n", - " 4509,\n", - " 4850],\n", - " 140: [3516,\n", - " 2679,\n", - " 5304,\n", - " 6783,\n", - " 7064,\n", - " 8125,\n", - " 32316,\n", - " 2721,\n", - " 3415,\n", - " 3473],\n", - " 926: [5017, 2075, 2931, 1489, 2696, 5304, 6783, 7064, 7933, 8596],\n", - " 781: [260, 858, 1210, 1148, 5952, 7153, 232, 242, 306, 527],\n", - " 825: [1046,\n", - " 2931,\n", - " 2938,\n", - " 1489,\n", - " 2679,\n", - " 2696,\n", - " 3097,\n", - " 5434,\n", - " 45950,\n", - " 49932],\n", - " 913: [3415, 3473, 4616, 3480, 5077, 4850, 4939, 1572, 6241, 6271],\n", - " 453: [1260, 2203, 6695, 8968, 2938, 5007, 1192, 408, 6006, 2714],\n", - " 540: [7064, 2721, 3415, 6023, 4850, 1572, 4405, 6271, 6918, 7067],\n", - " 66: [1046, 2075, 2852, 2931, 2938, 3516, 1192, 1489, 2550, 3929],\n", - " 185: [4387, 6595, 6219, 3473, 3090, 869, 3857, 4846, 220, 3777],\n", - " 222: [4135, 2704, 137, 26425, 4850, 1184, 2425, 2721, 6772, 2935],\n", - " 498: [7064, 8199, 3415, 3473, 3645, 4928, 6241, 6271, 7067, 7749],\n", - " 994: [2704, 3694, 3695, 7064, 6122, 3823, 1444, 3415, 6023, 8195],\n", - " 165: [3473,\n", - " 3700,\n", - " 2704,\n", - " 1444,\n", - " 27255,\n", - " 7297,\n", - " 1477,\n", - " 26425,\n", - " 31116,\n", - " 27648],\n", - " 202: [1148, 28, 299, 321, 904, 1348, 2648, 2804, 1611, 2618],\n", - " 180: [260, 3684, 28, 47, 308, 326, 527, 912, 926, 1046],\n", - " 93: [242, 1172, 908, 1248, 1260, 2206, 3365, 4327, 5017, 5292],\n", - " 261: [5017, 1192, 2679, 7064, 7933, 8199, 927, 2043, 3415, 3473],\n", - " 435: [324, 3477, 5255, 2075, 2931, 1468, 2550, 3918, 7064, 32316],\n", - " 322: [26131,\n", - " 40826,\n", - " 7064,\n", - " 2721,\n", - " 3415,\n", - " 3473,\n", - " 7063,\n", - " 6023,\n", - " 3511,\n", - " 1121],\n", - " 238: [1646, 3341, 3415, 3473, 212, 6023, 8580, 3511, 1121, 2509],\n", - " 425: [1046, 2075, 2852, 250, 615, 1684, 49932, 2721, 715, 3415],\n", - " 512: [1056, 2931, 3516, 1192, 2500, 8916, 1646, 4920, 49932, 680],\n", - " 725: [2494,\n", - " 26425,\n", - " 1477,\n", - " 27255,\n", - " 2911,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 3645,\n", - " 668],\n", - " 732: [2721,\n", - " 3473,\n", - " 27741,\n", - " 2911,\n", - " 2977,\n", - " 27255,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116],\n", - " 108: [2721, 3415, 3473, 1184, 6023, 4135, 4850, 4939, 3645, 668],\n", - " 592: [1046, 904, 4226, 2618, 2858, 2959, 7360, 44761, 2931, 2938],\n", - " 443: [1489, 2679, 2721, 3415, 3384, 336, 2102, 6023, 8580, 4135],\n", - " 916: [2704,\n", - " 26425,\n", - " 2930,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 7064,\n", - " 1046,\n", - " 2721,\n", - " 31116],\n", - " 736: [858, 7153, 326, 951, 1260, 324, 2959, 6296, 2931, 29],\n", - " 961: [242, 4432, 2075, 2852, 2931, 2938, 2360, 3516, 932, 1837],\n", - " 1012: [2721,\n", - " 3473,\n", - " 34164,\n", - " 2704,\n", - " 3694,\n", - " 3695,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 1444],\n", - " 515: [2721, 715, 3415, 3645, 4928, 6271, 7067, 7749, 7759, 8256],\n", - " 978: [1148, 8533, 321, 1172, 1260, 3365, 4432, 324, 2060, 2618],\n", - " 28: [5438, 2075, 3516, 188, 1034, 615, 3097, 2721, 1361, 146],\n", - " 475: [3473,\n", - " 2704,\n", - " 1477,\n", - " 2930,\n", - " 26425,\n", - " 31116,\n", - " 1444,\n", - " 3415,\n", - " 3645,\n", - " 668],\n", - " 598: [1046, 506, 1056, 2931, 1192, 1489, 250, 2696, 1929, 199],\n", - " 943: [4135, 6122, 4850, 2704, 1477, 26425, 1046, 850, 7064, 2721],\n", - " 520: [8132,\n", - " 26425,\n", - " 27255,\n", - " 2970,\n", - " 31116,\n", - " 5017,\n", - " 5304,\n", - " 7064,\n", - " 8199,\n", - " 3415],\n", - " 697: [2347, 28, 1719, 2721, 328, 4103, 30803, 4307, 55280, 57243],\n", - " 849: [260, 1210, 1148, 28, 527, 541, 1199, 1207, 1193, 1197],\n", - " 1003: [3516, 250, 7064, 7933, 32316, 2721, 715, 5034, 212, 1121],\n", - " 705: [2721, 3415, 3473, 121, 212, 6023, 1121, 2509, 4221, 4418],\n", - " 48: [242, 562, 1103, 1199, 1206, 1207, 1244, 904, 913, 1086],\n", - " 29: [4135,\n", - " 4850,\n", - " 26425,\n", - " 1184,\n", - " 1827,\n", - " 1870,\n", - " 3360,\n", - " 6772,\n", - " 8712,\n", - " 31116],\n", - " 231: [250, 2714, 1646, 3415, 1904, 6791, 3076, 212, 1121, 2271],\n", - " 699: [1489, 2679, 1147, 615, 3341, 2731, 5304, 6783, 7064, 8125],\n", - " 448: [7064,\n", - " 2704,\n", - " 26425,\n", - " 2494,\n", - " 3473,\n", - " 27255,\n", - " 2911,\n", - " 3694,\n", - " 3695,\n", - " 850],\n", - " 750: [213, 242, 926, 26131, 613, 2075, 2931, 2938, 4633, 1192],\n", - " 782: [5017,\n", - " 26131,\n", - " 4356,\n", - " 7064,\n", - " 8199,\n", - " 2721,\n", - " 3224,\n", - " 3415,\n", - " 6023,\n", - " 8195],\n", - " 860: [5840,\n", - " 26425,\n", - " 3473,\n", - " 59315,\n", - " 54995,\n", - " 3823,\n", - " 4327,\n", - " 8712,\n", - " 31116,\n", - " 1444],\n", - " 768: [213, 2704, 26425, 1034, 1361, 2419, 2852, 1477, 2714, 2935],\n", - " 127: [1833, 3503, 2721, 2732, 82, 1237, 6881, 2704, 3694, 3695],\n", - " 894: [299,\n", - " 4103,\n", - " 30803,\n", - " 4307,\n", - " 55280,\n", - " 57243,\n", - " 1244,\n", - " 49932,\n", - " 7327,\n", - " 4437]})" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# surprise를 사용한 구현\n", - "\n", - "from surprise import KNNWithMeans, Reader\n", - "from surprise import Dataset as SurpriseDataset\n", - "# surprise용으로 데이터를 가공한다\n", - "reader = Reader(rating_scale=(0.5, 5))\n", - "data_train = SurpriseDataset.load_from_df(\n", - " movielens_train[[\"user_id\", \"movie_id\", \"rating\"]], reader\n", - ").build_full_trainset()\n", - "\n", - "sim_options = {\"name\": \"pearson\", \"user_based\": True} # 유사도를 계산하는 방법을 정의한다 # False로 하면 아이템 기반이 된다\n", - "knn = KNNWithMeans(k=30, min_k=1, sim_options=sim_options)\n", - "knn.fit(data_train)\n", - "\n", - "# 학습 데이터셋에서 평갓값이 없는 사용자와 아이템의 조합을 준비한다\n", - "data_test = data_train.build_anti_testset(None)\n", - "predictions = knn.test(data_test)\n", - "\n", - "def get_top_n(predictions, n=10):\n", - " # 각 사용자별로 예측된 아이템을 저장한다\n", - " top_n = defaultdict(list)\n", - " for uid, iid, true_r, est, _ in predictions:\n", - " top_n[uid].append((iid, est))\n", - "\n", - " ユーザーごとに、アイテムを予測評価値順に並べ上位n個を格納する\n", - " # 사용자별로 아이템을 예측 평갓값 순으로 나열하고, 상위 n개를 저장한다\n", - " for uid, user_ratings in top_n.items():\n", - " user_ratings.sort(key=lambda x: x[1], reverse=True)\n", - " top_n[uid] = [d[0] for d in user_ratings[:n]]\n", - "\n", - " return top_n\n", - "\n", - "pred_user2items = get_top_n(predictions, n=10)\n", - "\n", - "average_score = movielens_train.rating.mean()\n", - "pred_results = []\n", - "for _, row in movielens_test.iterrows():\n", - " user_id = row[\"user_id\"]\n", - " movie_id = row[\"movie_id\"]\n", - " # 학습 데이터에 존재하지 않고 테스트 데이터에만 존재하는 사용자와 영화에 대한 예측 평갓값은 전체의 평균 평갓값으로 한다\n", - " if user_id not in user_id2index or movie_id not in movie_id2index:\n", - " pred_results.append(average_score)\n", - " continue\n", - " pred_score = knn.predict(uid=user_id, iid=movie_id).est\n", - " pred_results.append(pred_score)\n", - "movie_rating_predict[\"rating_pred\"] = pred_results\n", - "\n", - "pred_user2items" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "1fccc723", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "6150 2 648 2.0 868244699 \n", - "6531 2 733 3.0 868244562 \n", - "6813 2 736 3.0 868244698 \n", - "7113 2 780 3.0 868244698 \n", - "7506 2 786 3.0 868244562 \n", - "7661 2 802 2.0 868244603 \n", - "7779 2 858 2.0 868245645 \n", - "8077 2 1049 3.0 868245920 \n", - "8127 2 1073 3.0 868244562 \n", - "8381 2 1210 4.0 868245644 \n", - "8771 2 1356 3.0 868244603 \n", - "9097 2 1544 3.0 868245920 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "6150 Mission: Impossible (1996) \n", - "6531 Rock, The (1996) \n", - "6813 Twister (1996) \n", - "7113 Independence Day (a.k.a. ID4) (1996) \n", - "7506 Eraser (1996) \n", - "7661 Phenomenon (1996) \n", - "7779 Godfather, The (1972) \n", - "8077 Ghost and the Darkness, The (1996) \n", - "8127 Willy Wonka & the Chocolate Factory (1971) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "8771 Star Trek: First Contact (1996) \n", - "9097 Lost World: Jurassic Park, The (Jurassic Park ... \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "6150 [Action, Adventure, Mystery, Thriller] \n", - "6531 [Action, Adventure, Thriller] \n", - "6813 [Action, Adventure, Romance, Thriller] \n", - "7113 [Action, Adventure, Sci-Fi, War] \n", - "7506 [Action, Drama, Thriller] \n", - "7661 [Drama, Romance] \n", - "7779 [Crime, Drama] \n", - "8077 [Action, Adventure] \n", - "8127 [Children, Comedy, Fantasy, Musical] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "8771 [Action, Adventure, Sci-Fi, Thriller] \n", - "9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "6150 [confusing, confusing plot, memorable sequence... 12.0 \n", - "6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n", - "6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n", - "7113 [action, alien invasion, aliens, will smith, a... 14.0 \n", - "7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n", - "7661 [interesting concept, own, john travolta, john... 15.0 \n", - "7779 [oscar (best picture), marlon brando, classic,... 9.0 \n", - "8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n", - "8127 [based on a book, roald dahl, based on a book,... 20.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n", - "8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n", - "9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 " - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2인 사용자가 학습 데이터에서 평가를 부여한 영화 목록\n", - "movielens_train[movielens_train.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "874b6e3e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[3473, 4135, 4850, 2425, 2704, 137, 27255, 26425, 8712, 31116]" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pred_user2items[2]" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "c9b77fbd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
33863473Jonah Who Will Be 25 in the Year 2000 (Jonas q...[Comedy][cerebral, humorous, intersecting lives, intim...
40434135Monster Squad, The (1987)[Adventure, Comedy, Horror][can't remember]
47564850Spriggan (Supurigan) (1998)[Action, Animation, Sci-Fi][library, anime, spectacle, over expositive]
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "3386 3473 Jonah Who Will Be 25 in the Year 2000 (Jonas q... \n", - "4043 4135 Monster Squad, The (1987) \n", - "4756 4850 Spriggan (Supurigan) (1998) \n", - "\n", - " genre \\\n", - "3386 [Comedy] \n", - "4043 [Adventure, Comedy, Horror] \n", - "4756 [Action, Animation, Sci-Fi] \n", - "\n", - " tag \n", - "3386 [cerebral, humorous, intersecting lives, intim... \n", - "4043 [can't remember] \n", - "4756 [library, anime, spectacle, over expositive] " - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2에 대한 추천(1198, 1196, 1097)\n", - "movies[movies.movie_id.isin([3473, 4135, 4850])]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "99c25fe6", - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","id":"66d2e720","metadata":{"id":"66d2e720"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/UMCF.ipynb)"]},{"cell_type":"markdown","id":"f8caaceb","metadata":{"id":"f8caaceb"},"source":["# 사용자-사용자 메모리 기반 협조 필터링"]},{"cell_type":"code","execution_count":1,"id":"9cb2f773","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9cb2f773","executionInfo":{"status":"ok","timestamp":1672120577940,"user_tz":-540,"elapsed":3786,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"1da0f943-c87e-4e98-9eca-45f624108983"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:54:30-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 91.0MB/s in 0.7s \n","\n","2022-12-27 05:54:31 (91.0 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"ed3c6a08","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ed3c6a08","executionInfo":{"status":"ok","timestamp":1672120647715,"user_tz":-540,"elapsed":69778,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"0c864b95-f3a3-4b20-ab41-d26580399203"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"06409f5a","metadata":{"id":"06409f5a","executionInfo":{"status":"ok","timestamp":1672120647715,"user_tz":-540,"elapsed":24,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["import numpy as np\n","# 피어슨 상관 계수\n","def peason_coefficient(u: np.ndarray, v: np.ndarray) -> float:\n"," u_diff = u - np.mean(u)\n"," v_diff = v - np.mean(v)\n"," numerator = np.dot(u_diff, v_diff)\n"," denominator = np.sqrt(sum(u_diff ** 2)) * np.sqrt(sum(v_diff ** 2))\n"," if denominator == 0:\n"," return 0.0\n"," return numerator / denominator\n"]},{"cell_type":"code","execution_count":4,"id":"ff148555-35f5-4362-87fb-75f0a8d5d33f","metadata":{"id":"ff148555-35f5-4362-87fb-75f0a8d5d33f","executionInfo":{"status":"ok","timestamp":1672120647716,"user_tz":-540,"elapsed":23,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["from collections import defaultdict\n","\n","# 평갓값을 사용자 x 화면의 행렬로 변환한다\n","user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n","user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n","movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n","\n","# 예측 대상 사용자와 영화의 조합\n","movie_rating_predict = movielens_test.copy()\n","pred_user2items = defaultdict(list)"]},{"cell_type":"code","execution_count":5,"id":"fc0361fa","metadata":{"id":"fc0361fa","executionInfo":{"status":"ok","timestamp":1672120648148,"user_tz":-540,"elapsed":453,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 우직하게 유사도를 계산한다(이 계산은 매우 무겁습니다. 그렇기 떄문에 도중에 break를 넣었습니다. 속도 향상을 위해 라이브러리르 사용한 구현도 다음 셀에서 소개합니다)\n","\n","# 예측 대상 사용자 ID\n","test_users = movie_rating_predict.user_id.unique()\n","\n","# 예측 대상 사용자(사용자 1)에 주목한다\n","for user1_id in test_users:\n"," similar_users = []\n"," similarities = []\n"," avgs = []\n","\n"," # 사용자 1과 평갓값 행렬 안의 기타 사용자(사용자 2)와의 유사도를 산출한다\n"," for user2_id in user_movie_matrix.index:\n"," if user1_id == user2_id:\n"," continue\n","\n"," # 사용자 1과 사용자 2의 평갓값 벡터\n"," u_1 = user_movie_matrix.loc[user1_id, :].to_numpy()\n"," u_2 = user_movie_matrix.loc[user2_id, :].to_numpy()\n","\n"," # `u_1`과 `u_2`로부터, 동시에 결손값이 없는 요소만 추출한 벡터를 얻는다\n"," common_items = ~np.isnan(u_1) & ~np.isnan(u_2)\n","\n"," # 공통으로 평가한 아이템이 없으면 스킵\n"," if not common_items.any():\n"," continue\n","\n"," u_1, u_2 = u_1[common_items], u_2[common_items]\n","\n"," # 피어슨 상관 계수를 사용해 사용자 1과 사용자 2의 유사도를 산출\n"," rho_12 = peason_coefficient(u_1, u_2)\n","\n"," # 사용자 1과의 유사도가 0 보다 큰 경우, 사용자 2를 유사 사용자로 간주한다\n"," if rho_12 > 0:\n"," similar_users.append(user2_id)\n"," similarities.append(rho_12)\n"," avgs.append(np.mean(u_2))\n","\n"," # 사용자 1의 평균 평갓값\n"," avg_1 = np.mean(user_movie_matrix.loc[user1_id, :].dropna().to_numpy())\n","\n"," # 예측 대상 영화의 ID\n"," test_movies = movie_rating_predict[movie_rating_predict[\"user_id\"] == user1_id].movie_id.values\n"," # 예측할 수 없는 영화에 대한 평갓값은 사용자 1의 평균 평갓값으로 한다\n"," movie_rating_predict.loc[(movie_rating_predict[\"user_id\"] == user1_id), \"rating_pred\"] = avg_1\n","\n"," if similar_users:\n"," for movie_id in test_movies:\n"," if movie_id in movie_id2index:\n"," r_xy = user_movie_matrix.loc[similar_users, movie_id].to_numpy()\n"," rating_exists = ~np.isnan(r_xy)\n","\n"," # 유사 사용자가 대상이 되는 영화에 대한 평갓값을 갖지 않은 경우는 스킵한다\n"," if not rating_exists.any():\n"," continue\n","\n"," r_xy = r_xy[rating_exists]\n"," rho_1x = np.array(similarities)[rating_exists]\n"," avg_x = np.array(avgs)[rating_exists]\n"," r_hat_1y = avg_1 + np.dot(rho_1x, (r_xy - avg_x)) / rho_1x.sum()\n","\n"," # 예측 평갓값을 저장\n"," movie_rating_predict.loc[\n"," (movie_rating_predict[\"user_id\"] == user1_id)\n"," & (movie_rating_predict[\"movie_id\"] == movie_id),\n"," \"rating_pred\",\n"," ] = r_hat_1y\n"," break # 계산이 무거우므로, for 루프는 1번만 수행한 뒤 종료합니다. 각 변수에 어떤 값이 들어있는지 확인하면 알고리즘을 더 깊이 이해할 수 있습니다."]},{"cell_type":"code","execution_count":6,"id":"665ebafd","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"665ebafd","executionInfo":{"status":"ok","timestamp":1672120691833,"user_tz":-540,"elapsed":43701,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"114ccdfc-023b-4a0b-d695-4b2c631818a5"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting surprise\n"," Downloading surprise-0.1-py2.py3-none-any.whl (1.8 kB)\n","Collecting scikit-surprise\n"," Downloading scikit-surprise-1.1.3.tar.gz (771 kB)\n","\u001b[K |████████████████████████████████| 771 kB 33.9 MB/s \n","\u001b[?25hRequirement already satisfied: joblib>=1.0.0 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.2.0)\n","Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.21.6)\n","Requirement already satisfied: scipy>=1.3.2 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.7.3)\n","Building wheels for collected packages: scikit-surprise\n"," Building wheel for scikit-surprise (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for scikit-surprise: filename=scikit_surprise-1.1.3-cp38-cp38-linux_x86_64.whl size=2626503 sha256=0e6db95d2a4c33d1ddb4f8a1bdfe526bfa9ce95d16c0f4728ccec069f280cbd1\n"," Stored in directory: /root/.cache/pip/wheels/af/db/86/2c18183a80ba05da35bf0fb7417aac5cddbd93bcb1b92fd3ea\n","Successfully built scikit-surprise\n","Installing collected packages: scikit-surprise, surprise\n","Successfully installed scikit-surprise-1.1.3 surprise-0.1\n"]}],"source":["!pip install surprise"]},{"cell_type":"code","execution_count":8,"id":"b42f291a","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"b42f291a","executionInfo":{"status":"ok","timestamp":1672121035097,"user_tz":-540,"elapsed":203038,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"d9542b8c-d6ab-44a2-ca47-dbb7e74fc6e0"},"outputs":[{"output_type":"stream","name":"stdout","text":["Computing the pearson similarity matrix...\n","Done computing similarity matrix.\n"]},{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {139: [6319, 2721, 2131, 3415, 1121, 2509, 4221, 4418, 4509, 5101],\n"," 149: [2494,\n"," 26425,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2425,\n"," 31116],\n"," 182: [6319, 3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 6122],\n"," 215: [1564, 3365, 1204, 1131, 2931, 2938, 1192, 1489, 2679, 1147],\n"," 281: [137,\n"," 1477,\n"," 26425,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 4850,\n"," 5069,\n"," 2494,\n"," 31116],\n"," 326: [1192, 2679, 3341, 7064, 32316, 3415, 3473, 4208, 4453, 146],\n"," 351: [3473,\n"," 6122,\n"," 2911,\n"," 137,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116],\n"," 357: [7064,\n"," 3473,\n"," 4850,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 426: [26425,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 456: [3473,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 3823,\n"," 1444,\n"," 3415,\n"," 4928],\n"," 459: [2494,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 220,\n"," 31116],\n"," 494: [6319,\n"," 2494,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 26425,\n"," 2721,\n"," 31116],\n"," 517: [7064, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 3645],\n"," 524: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6122, 4850, 5069],\n"," 556: [26425,\n"," 137,\n"," 1477,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 4850,\n"," 31116,\n"," 1444],\n"," 588: [7064,\n"," 3473,\n"," 27741,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 2721,\n"," 31116,\n"," 1444],\n"," 589: [6319, 3415, 3473, 6023, 1121, 2509, 4135, 4221, 4418, 4509],\n"," 590: [2930,\n"," 26425,\n"," 4850,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 3645],\n"," 601: [3341, 6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 621: [3415, 3473, 6271, 6918, 7067, 7749, 7759, 8256, 8724, 8785],\n"," 634: [2203,\n"," 1192,\n"," 2679,\n"," 3341,\n"," 7064,\n"," 7933,\n"," 32316,\n"," 2721,\n"," 3415,\n"," 4208],\n"," 672: [26425,\n"," 3002,\n"," 6168,\n"," 3777,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911],\n"," 701: [8533, 2203, 678, 1658, 2618, 5283, 1273, 973, 2679, 6187],\n"," 719: [6319, 4356, 6016, 4850, 5305, 5840, 2977, 1477, 26425, 850],\n"," 745: [3473,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 4850,\n"," 31116,\n"," 1444],\n"," 757: [1564, 5952, 28, 527, 926, 1046, 2028, 1260, 1261, 2959],\n"," 775: [260, 858, 1131, 2075, 2938, 5122, 1192, 2679, 1147, 615],\n"," 780: [3415, 3473, 4850, 3645, 1572, 4928, 6271, 6918, 7067, 7749],\n"," 785: [7064, 2721, 3415, 146, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 788: [4633, 2679, 5304, 6783, 7064, 2721, 1493, 2043, 3415, 4208],\n"," 870: [26425,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 4850,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6271,\n"," 7067],\n"," 987: [4850,\n"," 2494,\n"," 26425,\n"," 4135,\n"," 2879,\n"," 206,\n"," 3266,\n"," 31116,\n"," 5255,\n"," 5438],\n"," 988: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 6271, 7067],\n"," 1020: [260, 28, 47, 242, 2571, 1260, 4226, 1136, 2959, 1131],\n"," 1: [122, 362, 466, 520, 616, 110, 151, 260, 376, 590],\n"," 22: [6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n"," 26: [2679, 2714, 5434, 49932, 6319, 7064, 2721, 3473, 4208, 1844],\n"," 30: [858, 213, 1148, 1564, 8783, 58, 171, 232, 242, 306],\n"," 34: [26425,\n"," 3777,\n"," 3804,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2721,\n"," 31116],\n"," 38: [2852, 40826, 3516, 279, 1837, 2679, 6213, 6219, 2721, 99],\n"," 50: [1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 4732,\n"," 34164,\n"," 2911,\n"," 1871,\n"," 27255],\n"," 53: [2930,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 3645],\n"," 54: [6319,\n"," 7064,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 8199,\n"," 3415],\n"," 67: [2075, 2679, 8916, 6319, 715, 3415, 4208, 4424, 2691, 146],\n"," 71: [2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 3694,\n"," 3695,\n"," 2721,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 76: [1260, 2203, 2618, 5573, 1131, 2075, 2931, 2459, 4633, 279],\n"," 88: [527, 5255, 7193, 1131, 1132, 2931, 2938, 4276, 5122, 318],\n"," 89: [2679, 1034, 615, 7064, 1493, 3415, 4208, 4453, 3076, 8341],\n"," 94: [6319,\n"," 3473,\n"," 5069,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 3415],\n"," 95: [6319, 3415, 4928, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n"," 100: [26425,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 101: [3918, 6319, 7064, 7933, 3224, 3415, 1927, 6122, 4850, 4939],\n"," 102: [4850,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 6122,\n"," 1444,\n"," 3415],\n"," 103: [4850,\n"," 26425,\n"," 3473,\n"," 27255,\n"," 1871,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6023,\n"," 6271],\n"," 111: [2075, 6319, 2721, 2131, 3415, 1121, 2509, 4221, 4418, 4509],\n"," 116: [279, 4920, 3473, 7042, 49957, 1184, 2579, 3579, 6780, 6918],\n"," 118: [1871,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 143: [3415, 3473, 3645, 1572, 4928, 6271, 6918, 7067, 7749, 7759],\n"," 144: [3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 5101, 4928],\n"," 162: [2931, 2938, 4633, 5122, 1192, 2679, 615, 3341, 680, 7064],\n"," 172: [4135,\n"," 4850,\n"," 2704,\n"," 26425,\n"," 6319,\n"," 2721,\n"," 31116,\n"," 3415,\n"," 6023,\n"," 3645],\n"," 173: [5017, 2075, 2938, 1192, 2679, 5434, 49932, 680, 5304, 6783],\n"," 187: [3918,\n"," 4135,\n"," 4850,\n"," 26425,\n"," 1361,\n"," 2930,\n"," 1477,\n"," 34164,\n"," 6780,\n"," 2925],\n"," 193: [26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 850,\n"," 31116,\n"," 1444,\n"," 4079,\n"," 3415],\n"," 208: [28, 541, 926, 1221, 2571, 2936, 5017, 6273, 5438, 5573],\n"," 210: [2931, 2679, 3341, 7064, 3415, 3473, 4453, 2925, 1121, 2509],\n"," 214: [3473,\n"," 2911,\n"," 137,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 228: [3516, 1192, 615, 1684, 49932, 8596, 32316, 206, 2166, 5077],\n"," 232: [1477,\n"," 26425,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 2704,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 236: [6319, 3415, 6023, 5077, 6122, 4850, 4928, 6271, 6918, 7067],\n"," 259: [2494, 2911, 2704, 137, 27255, 3777, 3804, 3002, 1477, 6168],\n"," 260: [2704,\n"," 26425,\n"," 27255,\n"," 2911,\n"," 2977,\n"," 7064,\n"," 121,\n"," 2721,\n"," 31116,\n"," 1444],\n"," 267: [2704,\n"," 26425,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444],\n"," 268: [5573, 615, 6319, 2721, 5077, 6122, 4850, 8477, 5069, 6780],\n"," 271: [1192,\n"," 3676,\n"," 32316,\n"," 2721,\n"," 3473,\n"," 7063,\n"," 3511,\n"," 1121,\n"," 2509,\n"," 4221],\n"," 274: [1192, 2679, 7064, 3415, 3473, 4208, 1121, 2509, 4221, 4418],\n"," 287: [2704,\n"," 26425,\n"," 4135,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 2721,\n"," 31116,\n"," 1444,\n"," 7064],\n"," 292: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 6271, 6918],\n"," 296: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4850, 6271, 6918],\n"," 303: [137,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1871],\n"," 307: [26425,\n"," 2494,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2704,\n"," 31116,\n"," 7064],\n"," 310: [2679, 7064, 2721, 3415, 3473, 4208, 4453, 1121, 2509, 4221],\n"," 315: [2203, 3516, 279, 4914, 1934, 2721, 581, 6122, 1649, 6780],\n"," 320: [2075, 2721, 3415, 146, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 332: [2679,\n"," 6319,\n"," 1934,\n"," 3503,\n"," 32316,\n"," 3415,\n"," 3473,\n"," 2691,\n"," 4783,\n"," 8580],\n"," 339: [3415, 3473, 6023, 6122, 3645, 668, 1572, 4928, 6271, 6918],\n"," 343: [2714,\n"," 1034,\n"," 7064,\n"," 4850,\n"," 2494,\n"," 2704,\n"," 1477,\n"," 26425,\n"," 5893,\n"," 8712],\n"," 355: [1192,\n"," 2679,\n"," 6319,\n"," 7064,\n"," 8199,\n"," 32316,\n"," 3415,\n"," 3473,\n"," 2691,\n"," 1121],\n"," 364: [858, 527, 1046, 1172, 1260, 5017, 2959, 1131, 1132, 2075],\n"," 365: [1192, 3341, 6319, 7064, 3415, 3473, 4453, 2925, 3511, 1121],\n"," 368: [7064, 3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 5101],\n"," 381: [260, 858, 1148, 5952, 28, 111, 232, 242, 306, 326],\n"," 382: [5017, 3516, 2679, 1034, 3918, 615, 4920, 5304, 7064, 1493],\n"," 383: [3473,\n"," 4135,\n"," 137,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 391: [3516, 615, 6319, 7064, 2721, 3415, 1121, 2509, 4221, 4418],\n"," 396: [858, 1564, 28, 47, 912, 1199, 1221, 1260, 2936, 4226],\n"," 398: [3415, 3473, 121, 1121, 2509, 4221, 4418, 4509, 4850, 8195],\n"," 406: [1034, 2721, 99, 3415, 6023, 6122, 4850, 4939, 3645, 668],\n"," 409: [2618,\n"," 2075,\n"," 3516,\n"," 49932,\n"," 4359,\n"," 7327,\n"," 7933,\n"," 8596,\n"," 5034,\n"," 6591],\n"," 410: [5017,\n"," 2679,\n"," 6219,\n"," 2714,\n"," 1684,\n"," 2204,\n"," 3546,\n"," 4920,\n"," 49932,\n"," 6319],\n"," 416: [2931,\n"," 2938,\n"," 4633,\n"," 1192,\n"," 2679,\n"," 2048,\n"," 3341,\n"," 4920,\n"," 5434,\n"," 39419],\n"," 418: [615, 6319, 3415, 146, 6023, 1121, 2509, 4221, 4418, 4509],\n"," 419: [3473,\n"," 2494,\n"," 2911,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 6168,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 421: [408,\n"," 2721,\n"," 3473,\n"," 6122,\n"," 27741,\n"," 2911,\n"," 3694,\n"," 3695,\n"," 27255,\n"," 1477],\n"," 424: [1219, 1221, 2571, 50, 1260, 1131, 2931, 2938, 5122, 1192],\n"," 432: [6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4850],\n"," 434: [137,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 27255,\n"," 2911,\n"," 6319,\n"," 31116,\n"," 1444,\n"," 27648],\n"," 436: [2075, 6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 1572],\n"," 438: [3516, 7064, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509],\n"," 441: [7064, 2721, 99, 3473, 2911, 1477, 3415, 6023, 3645, 1572],\n"," 446: [2075, 6319, 7064, 3415, 146, 1121, 2509, 4221, 4418, 4509],\n"," 452: [615, 1684, 7064, 32316, 2721, 3096, 3384, 3548, 336, 3511],\n"," 460: [326, 1046, 1172, 1264, 50, 1260, 2203, 5017, 2959, 1131],\n"," 463: [3415, 1121, 2509, 4221, 4418, 4509, 3645, 1572, 4928, 6271],\n"," 468: [1871,\n"," 6122,\n"," 1477,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 3823,\n"," 1444,\n"," 3415,\n"," 4928],\n"," 469: [858, 213, 1246, 1252, 1276, 1288, 28, 47, 171, 242],\n"," 472: [5573,\n"," 4276,\n"," 3918,\n"," 3262,\n"," 6319,\n"," 49957,\n"," 2925,\n"," 3511,\n"," 1121,\n"," 2509],\n"," 476: [2075, 2679, 7064, 3415, 3473, 146, 1121, 2509, 4135, 4221],\n"," 480: [26425,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2494,\n"," 31116,\n"," 1444],\n"," 482: [3473,\n"," 2494,\n"," 137,\n"," 27255,\n"," 1477,\n"," 6168,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 493: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4850, 4939],\n"," 496: [3415, 146, 1121, 2509, 4221, 4418, 4509, 6122, 4939, 6271],\n"," 501: [2679, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4850, 6162],\n"," 504: [6319,\n"," 4850,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 26425,\n"," 31116,\n"," 7064,\n"," 1444,\n"," 3415],\n"," 505: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4850, 6241],\n"," 511: [2203, 1658, 5573, 2075, 2931, 2938, 3115, 3516, 1192, 6006],\n"," 516: [50, 2938, 1192, 2679, 680, 7064, 32316, 2721, 2131, 3415],\n"," 525: [6122,\n"," 1477,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 3694,\n"," 3695,\n"," 2721,\n"," 1444,\n"," 3415],\n"," 530: [1034, 615, 3341, 6319, 3415, 3473, 1121, 2509, 4135, 4221],\n"," 531: [3918,\n"," 2721,\n"," 4135,\n"," 6122,\n"," 4850,\n"," 27741,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425],\n"," 533: [2679, 7064, 2721, 3415, 3473, 4453, 146, 1121, 2509, 4221],\n"," 536: [495, 3477, 5255, 6290, 2075, 2938, 40826, 1192, 2679, 1034],\n"," 543: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 5391, 8195],\n"," 547: [5573, 3341, 6319, 7064, 3415, 3473, 3511, 1121, 2509, 4135],\n"," 549: [6319,\n"," 2494,\n"," 2911,\n"," 2704,\n"," 3694,\n"," 3695,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116],\n"," 553: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 4850],\n"," 558: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4939, 3645],\n"," 562: [242, 7193, 7376, 2075, 2931, 2938, 5882, 5122, 6316, 955],\n"," 567: [5255, 4276, 4914, 7064, 7933, 5034, 5899, 1361, 1535, 1121],\n"," 571: [26425,\n"," 1871,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 4850,\n"," 31116,\n"," 1444],\n"," 572: [3473,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 2911,\n"," 2494,\n"," 2704,\n"," 31116],\n"," 577: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6122, 4850, 6271],\n"," 581: [3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 4732,\n"," 5101,\n"," 4939,\n"," 34164],\n"," 585: [3473,\n"," 2911,\n"," 137,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 6168,\n"," 2930,\n"," 26425,\n"," 31116],\n"," 593: [2075, 2679, 6319, 7064, 2721, 1493, 2131, 3224, 3415, 4453],\n"," 604: [26425,\n"," 1477,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 3694,\n"," 3695,\n"," 1621,\n"," 31116,\n"," 1444],\n"," 605: [3473,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 2704,\n"," 1444],\n"," 609: [2075, 2679, 3341, 4920, 49932, 7064, 1493, 4424, 146, 1121],\n"," 628: [2679,\n"," 3546,\n"," 49932,\n"," 1934,\n"," 7064,\n"," 7933,\n"," 32316,\n"," 3473,\n"," 42015,\n"," 4453],\n"," 629: [615, 3341, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n"," 645: [5069,\n"," 5305,\n"," 2704,\n"," 137,\n"," 26425,\n"," 1477,\n"," 1621,\n"," 3473,\n"," 27255,\n"," 3823],\n"," 650: [3516, 2679, 3379, 7064, 3415, 3473, 4208, 4453, 6023, 1121],\n"," 656: [2075,\n"," 2679,\n"," 6319,\n"," 32316,\n"," 1493,\n"," 3415,\n"," 2691,\n"," 2925,\n"," 1121,\n"," 2509],\n"," 657: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6271, 7067, 7749],\n"," 669: [3516,\n"," 2679,\n"," 4920,\n"," 49932,\n"," 3415,\n"," 3473,\n"," 4495,\n"," 1121,\n"," 2509,\n"," 4221],\n"," 678: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4600],\n"," 683: [7064, 8125, 8199, 2131, 3415, 3645, 668, 1572, 4928, 6271],\n"," 688: [3473,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 689: [1172, 5255, 613, 1131, 2938, 955, 1192, 2679, 1147, 1034],\n"," 693: [6319,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 2925,\n"," 6023,\n"," 8580,\n"," 3511,\n"," 1121,\n"," 2509],\n"," 716: [3415,\n"," 3473,\n"," 6271,\n"," 7067,\n"," 7749,\n"," 7759,\n"," 8256,\n"," 8724,\n"," 8785,\n"," 26151],\n"," 720: [2936, 5017, 5438, 6662, 2075, 2931, 3115, 3074, 5007, 7162],\n"," 734: [6319,\n"," 3473,\n"," 4850,\n"," 5069,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 2704],\n"," 735: [6319,\n"," 2494,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 739: [26425,\n"," 3777,\n"," 3804,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2721,\n"," 31116],\n"," 755: [6319,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6023,\n"," 4928],\n"," 758: [1260, 5017, 2931, 2938, 3516, 279, 1192, 2679, 2594, 1646],\n"," 767: [1148, 904, 1234, 1260, 4226, 5017, 2858, 2997, 4011, 1131],\n"," 769: [3341, 7064, 3415, 3473, 6023, 5077, 6122, 8195, 4928, 6271],\n"," 786: [3473,\n"," 2911,\n"," 1871,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 7064],\n"," 789: [6319, 3415, 3473, 6023, 4850, 3645, 4928, 6271, 7067, 7749],\n"," 792: [2704,\n"," 26425,\n"," 2494,\n"," 7064,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 3694,\n"," 3695,\n"," 31116],\n"," 795: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6271, 7067],\n"," 798: [3777, 3804, 137, 2930, 1477, 3473, 27255, 2911, 1444, 3415],\n"," 799: [260, 1192, 2679, 615, 3341, 5434, 49932, 6319, 680, 7013],\n"," 802: [2075, 6319, 2721, 1493, 5899, 8341, 1121, 2509, 4221, 4418],\n"," 806: [6319,\n"," 3473,\n"," 4135,\n"," 4850,\n"," 27741,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 2494],\n"," 807: [260, 1148, 50, 1260, 2203, 3365, 4226, 2858, 2959, 1131],\n"," 816: [5573, 279, 1192, 3918, 615, 6319, 7064, 927, 3415, 190],\n"," 827: [2679, 2721, 715, 1398, 1493, 2691, 8341, 1236, 1442, 1121],\n"," 828: [1046, 678, 6296, 6440, 6695, 1132, 2075, 2931, 2938, 973],\n"," 846: [6319, 3415, 6023, 5077, 6122, 4939, 3645, 4928, 6271, 7067],\n"," 859: [2494,\n"," 2704,\n"," 137,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116],\n"," 862: [6319, 7064, 3473, 5077, 6122, 2488, 4850, 6179, 1859, 6270],\n"," 876: [4276,\n"," 6319,\n"," 1934,\n"," 7064,\n"," 32316,\n"," 2721,\n"," 3473,\n"," 42015,\n"," 4783,\n"," 2483],\n"," 881: [6319, 2721, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4929],\n"," 885: [3415, 6023, 1121, 2509, 4221, 4418, 4509, 4939, 4928, 6271],\n"," 886: [137,\n"," 3777,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444],\n"," 889: [615, 6319, 7064, 3415, 4135, 4939, 3645, 4928, 6271, 7067],\n"," 890: [2721, 3415, 3645, 4928, 6271, 7067, 7749, 7759, 8256, 8724],\n"," 891: [2494,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 896: [137,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 5069,\n"," 31116],\n"," 897: [6319, 7064, 8199, 3415, 3511, 1121, 2509, 4135, 4221, 4418],\n"," 898: [7064, 7933, 32316, 2721, 715, 3415, 1121, 2509, 4221, 4418],\n"," 908: [213, 495, 926, 1172, 904, 1234, 1260, 1348, 2203, 3435],\n"," 922: [1797,\n"," 2679,\n"," 1684,\n"," 1934,\n"," 5304,\n"," 6783,\n"," 7064,\n"," 7933,\n"," 32316,\n"," 2721],\n"," 930: [5573, 1131, 2938, 1192, 103, 2679, 2696, 615, 3546, 4920],\n"," 938: [1260, 2936, 5017, 2075, 1192, 2679, 3341, 4920, 680, 1934],\n"," 956: [26425,\n"," 1477,\n"," 27255,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6023,\n"," 4928,\n"," 6271,\n"," 7067],\n"," 958: [3473,\n"," 2494,\n"," 2911,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 850,\n"," 31116],\n"," 968: [242, 1046, 5017, 6273, 324, 26131, 1131, 1233, 2075, 2931],\n"," 977: [3473,\n"," 2494,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 6122,\n"," 31116],\n"," 990: [26425,\n"," 1477,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 3694,\n"," 3695,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 996: [6319,\n"," 3473,\n"," 4135,\n"," 4850,\n"," 5069,\n"," 34164,\n"," 2704,\n"," 1444,\n"," 137,\n"," 27255],\n"," 1004: [2494,\n"," 3777,\n"," 3804,\n"," 26425,\n"," 2704,\n"," 2930,\n"," 1477,\n"," 27255,\n"," 2911,\n"," 2721],\n"," 1005: [1192,\n"," 2679,\n"," 49932,\n"," 6319,\n"," 1934,\n"," 3415,\n"," 3473,\n"," 6023,\n"," 8580,\n"," 1121],\n"," 1008: [2131,\n"," 3415,\n"," 6023,\n"," 3511,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 6122],\n"," 1029: [6319,\n"," 7064,\n"," 8125,\n"," 8154,\n"," 8199,\n"," 2721,\n"," 1493,\n"," 2131,\n"," 3224,\n"," 3415],\n"," 1037: [1192, 3918, 3341, 7064, 2131, 3415, 4208, 4453, 2691, 121],\n"," 1050: [6319,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 4928,\n"," 6271],\n"," 4: [527, 2203, 5017, 6273, 613, 1131, 1132, 2931, 2938, 3516],\n"," 8: [3415, 1121, 2509, 4221, 4418, 4509, 5101, 4928, 6271, 7067],\n"," 18: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4928, 6271],\n"," 36: [2721, 3415, 3473, 6023, 668, 1572, 4928, 6271, 6918, 7067],\n"," 47: [356, 1148, 28, 306, 326, 527, 912, 926, 1172, 1219],\n"," 59: [1034, 3341, 6319, 7064, 3415, 3645, 6271, 7067, 7749, 7759],\n"," 62: [5017, 1034, 6319, 5304, 7064, 2721, 3415, 3473, 49957, 149],\n"," 77: [6319, 2721, 3415, 3473, 6122, 3645, 4928, 6271, 6918, 7067],\n"," 79: [3415, 3473, 5077, 6122, 4928, 6271, 7067, 7749, 7759, 8256],\n"," 80: [6319, 7064, 8199, 3415, 3473, 6023, 4135, 4850, 3645, 5069],\n"," 119: [2494,\n"," 137,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 2704,\n"," 27255,\n"," 5069,\n"," 2911,\n"," 4850],\n"," 122: [4226, 2931, 2679, 3929, 6319, 680, 7064, 8199, 32316, 2721],\n"," 125: [7064, 3415, 146, 336, 1121, 2509, 4221, 4418, 4509, 5101],\n"," 126: [3473,\n"," 1871,\n"," 137,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 27255,\n"," 2911,\n"," 31116],\n"," 132: [5069,\n"," 2704,\n"," 26425,\n"," 2494,\n"," 4135,\n"," 4850,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 31116],\n"," 141: [3341, 2721, 3415, 3473, 6122, 4850, 3645, 1572, 4928, 6271],\n"," 154: [7064,\n"," 32316,\n"," 3415,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 5101,\n"," 4850],\n"," 155: [1489, 2679, 680, 7064, 8125, 8199, 32316, 2721, 3415, 3473],\n"," 163: [6319,\n"," 4135,\n"," 6122,\n"," 4850,\n"," 2494,\n"," 27255,\n"," 1477,\n"," 2721,\n"," 3823,\n"," 1444],\n"," 164: [2714,\n"," 3932,\n"," 3341,\n"," 4920,\n"," 49932,\n"," 3473,\n"," 2691,\n"," 2102,\n"," 8580,\n"," 3511],\n"," 170: [2494,\n"," 3777,\n"," 3804,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 27255,\n"," 2911,\n"," 7064,\n"," 3694],\n"," 171: [260, 28, 299, 954, 3365, 2618, 4387, 4452, 5110, 6662],\n"," 176: [5017, 2714, 615, 5304, 7064, 8199, 3415, 1236, 4552, 3645],\n"," 190: [2704,\n"," 137,\n"," 26425,\n"," 4850,\n"," 1477,\n"," 27255,\n"," 850,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 197: [3477,\n"," 5438,\n"," 40826,\n"," 7064,\n"," 2721,\n"," 2131,\n"," 3415,\n"," 49957,\n"," 3511,\n"," 1121],\n"," 198: [2931, 2938, 1192, 2679, 680, 7064, 8125, 2721, 2131, 3415],\n"," 199: [5573, 2931, 2938, 3516, 1192, 2679, 2594, 3341, 3831, 4920],\n"," 212: [2911,\n"," 2704,\n"," 1444,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 27648],\n"," 221: [5017,\n"," 3516,\n"," 2679,\n"," 6319,\n"," 7064,\n"," 7933,\n"," 8199,\n"," 32316,\n"," 2920,\n"," 3415],\n"," 223: [260, 858, 213, 1148, 1276, 8533, 28, 30, 47, 242],\n"," 226: [3415, 3473, 1572, 6271, 6918, 7067, 7749, 7759, 8256, 8724],\n"," 241: [3097,\n"," 3307,\n"," 4356,\n"," 3090,\n"," 3857,\n"," 5840,\n"," 2977,\n"," 1477,\n"," 1621,\n"," 26425],\n"," 247: [1148, 30, 495, 1172, 1234, 1260, 3730, 678, 2618, 6695],\n"," 249: [2931, 2938, 5122, 1192, 2679, 3341, 3546, 49932, 6319, 680],\n"," 254: [1046, 3516, 2679, 7064, 2131, 3415, 4208, 4453, 1236, 146],\n"," 264: [6319, 2721, 3415, 212, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 273: [1148, 28, 326, 334, 495, 912, 1046, 1172, 1199, 1221],\n"," 275: [3415, 3473, 6023, 3511, 1121, 2509, 4221, 4418, 4509, 6271],\n"," 276: [26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 7064,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 293: [4978, 5573, 2075, 2931, 2679, 2594, 1646, 615, 3546, 6319],\n"," 294: [2075, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 295: [260, 28, 495, 912, 923, 1172, 1199, 50, 1260, 2203],\n"," 318: [7064, 3415, 3473, 146, 3511, 1121, 2509, 4221, 4418, 4509],\n"," 321: [6319, 7064, 3415, 3473, 1121, 2509, 4135, 4221, 4418, 4509],\n"," 345: [2679, 7064, 2721, 3415, 3473, 146, 1121, 2509, 4135, 4221],\n"," 346: [1132, 973, 2679, 8916, 900, 3932, 4754, 49932, 2726, 5304],\n"," 348: [260, 2075, 2931, 2938, 1192, 2679, 3341, 3546, 49932, 680],\n"," 349: [615, 6319, 7064, 3415, 146, 3511, 1121, 2509, 4221, 4418],\n"," 354: [260, 58, 541, 923, 926, 1172, 1207, 2028, 913, 2936],\n"," 359: [2494,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 1444,\n"," 3415,\n"," 6271,\n"," 7067],\n"," 366: [3516, 2679, 615, 6319, 7064, 7933, 8199, 2721, 581, 3415],\n"," 369: [2704,\n"," 26425,\n"," 2494,\n"," 6122,\n"," 1477,\n"," 6319,\n"," 27255,\n"," 3694,\n"," 3695,\n"," 31116],\n"," 384: [3415, 3473, 1121, 2509, 4135, 4221, 4418, 4509, 4732, 6122],\n"," 390: [1046, 2075, 2679, 6319, 7064, 2721, 581, 2131, 3415, 4208],\n"," 392: [1192, 2679, 6319, 7064, 3415, 3473, 4208, 121, 146, 6023],\n"," 403: [2931, 2938, 3516, 1489, 2679, 7064, 2721, 1493, 2131, 3415],\n"," 407: [1046, 1260, 4226, 44761, 1131, 1132, 2075, 2931, 2938, 318],\n"," 414: [3415, 3473, 6122, 6241, 6271, 7067, 7749, 7759, 8256, 8724],\n"," 431: [260, 1148, 1276, 28, 111, 326, 527, 593, 912, 926],\n"," 454: [3516,\n"," 1192,\n"," 3341,\n"," 4920,\n"," 3503,\n"," 5304,\n"," 7064,\n"," 8125,\n"," 8199,\n"," 32316],\n"," 465: [3415, 1121, 2509, 4221, 4418, 4509, 6271, 7067, 7749, 7759],\n"," 481: [1564, 1219, 1193, 1131, 2931, 2938, 1192, 1489, 2679, 2714],\n"," 485: [2494,\n"," 2911,\n"," 27255,\n"," 3777,\n"," 3804,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 6122,\n"," 31116],\n"," 503: [2679, 615, 6319, 7064, 2721, 2131, 3415, 3473, 4208, 4453],\n"," 513: [3473,\n"," 2911,\n"," 137,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 545: [1046, 2679, 7064, 2721, 3415, 4208, 4424, 4453, 2691, 8341],\n"," 552: [3516, 2721, 3415, 212, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 554: [137, 1871, 2930, 1477, 3473, 27255, 2911, 1444, 3415, 6271],\n"," 555: [7064, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 668, 4928],\n"," 561: [2075, 1489, 2679, 3546, 6319, 5304, 6783, 7064, 8125, 8154],\n"," 565: [4920, 7064, 8199, 3415, 3473, 6023, 1121, 2509, 4221, 4418],\n"," 591: [942, 3917, 2721, 715, 1398, 6591, 190, 2925, 336, 3511],\n"," 617: [3341, 6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 622: [733, 858, 213, 1148, 1246, 1252, 1276, 1288, 1564, 8533],\n"," 623: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 4850],\n"," 633: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 6271, 7067],\n"," 636: [2930,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 3415,\n"," 4928,\n"," 6271],\n"," 638: [2075, 3516, 2679, 7064, 2721, 3415, 3473, 4208, 146, 3511],\n"," 641: [2704,\n"," 26425,\n"," 1477,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 4850,\n"," 2721,\n"," 31116,\n"," 1444],\n"," 646: [3473,\n"," 34164,\n"," 2721,\n"," 6772,\n"," 1444,\n"," 27648,\n"," 5287,\n"," 1149,\n"," 6679,\n"," 4552],\n"," 654: [1034, 615, 6319, 3415, 1121, 2509, 4135, 4221, 4418, 4509],\n"," 655: [2618, 2931, 2679, 2714, 5434, 49932, 6319, 680, 1934, 2935],\n"," 658: [615, 3415, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n"," 660: [7064,\n"," 32316,\n"," 3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 4850,\n"," 3579],\n"," 661: [2679,\n"," 2714,\n"," 6319,\n"," 7064,\n"," 8125,\n"," 8199,\n"," 32316,\n"," 2721,\n"," 3415,\n"," 3473],\n"," 677: [2679, 6319, 1934, 3503, 7064, 32316, 3415, 2691, 121, 2925],\n"," 714: [3516, 2721, 3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509],\n"," 715: [2075, 3516, 3341, 3415, 3473, 6023, 3511, 1121, 2509, 4135],\n"," 723: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4928],\n"," 731: [1172, 50, 2959, 1131, 2075, 2931, 2938, 1192, 2679, 1147],\n"," 742: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 1572, 4928, 6271],\n"," 743: [7064, 3473, 2704, 5840, 137, 27255, 2721, 1444, 5017, 3415],\n"," 752: [2721, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4939, 6162],\n"," 772: [2704,\n"," 137,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444],\n"," 814: [4850,\n"," 2704,\n"," 2930,\n"," 27255,\n"," 2911,\n"," 2425,\n"," 1444,\n"," 3415,\n"," 6023,\n"," 3645],\n"," 823: [2679, 2714, 6319, 7064, 2721, 3415, 3473, 4208, 1121, 2509],\n"," 826: [7064, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 833: [1192, 2679, 3341, 3415, 3473, 4208, 146, 212, 1121, 2509],\n"," 838: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 3645, 6271],\n"," 842: [1260, 2959, 6695, 2852, 2938, 1203, 955, 2679, 6612, 1147],\n"," 852: [2075,\n"," 1192,\n"," 2679,\n"," 1934,\n"," 7064,\n"," 8199,\n"," 32316,\n"," 2721,\n"," 3415,\n"," 4208],\n"," 878: [3415, 3473, 6023, 4850, 6271, 7067, 7749, 7759, 8256, 8724],\n"," 887: [926, 1046, 3365, 1131, 2075, 2931, 2938, 4276, 1192, 2679],\n"," 895: [3341,\n"," 4920,\n"," 7064,\n"," 3473,\n"," 2163,\n"," 1361,\n"," 4850,\n"," 3357,\n"," 6162,\n"," 34164],\n"," 899: [3473,\n"," 6122,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 3694,\n"," 3695,\n"," 31116,\n"," 1444],\n"," 902: [1564, 1212, 1131, 2852, 2931, 2938, 29, 1175, 1192, 2679],\n"," 907: [1046, 1192, 2679, 2696, 3307, 680, 1934, 5304, 6783, 7064],\n"," 928: [3473,\n"," 2911,\n"," 2704,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 936: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 3645, 4928],\n"," 964: [2679, 3546, 6319, 7064, 2721, 3415, 3473, 4208, 4424, 4453],\n"," 970: [1034,\n"," 6319,\n"," 4135,\n"," 4850,\n"," 2494,\n"," 2911,\n"," 2977,\n"," 27255,\n"," 1477,\n"," 1621],\n"," 972: [2075, 2938, 1192, 1489, 2679, 7064, 2721, 3415, 3473, 4208],\n"," 1001: [6319, 7064, 2721, 3415, 3645, 668, 1572, 4928, 6241, 6271],\n"," 1013: [5438, 3341, 6319, 3473, 2925, 212, 1121, 2509, 4221, 4418],\n"," 1018: [3415,\n"," 3473,\n"," 1572,\n"," 4928,\n"," 6271,\n"," 6918,\n"," 7067,\n"," 7749,\n"," 7759,\n"," 8256],\n"," 1028: [1148, 527, 1046, 1096, 1172, 951, 954, 1212, 1260, 2203],\n"," 1031: [260, 326, 1104, 1197, 50, 954, 1212, 1248, 2203, 1611],\n"," 1035: [7064,\n"," 8125,\n"," 8154,\n"," 8199,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 1927,\n"," 6023],\n"," 1038: [1148, 1288, 5952, 150, 242, 299, 326, 527, 912, 926],\n"," 1045: [2679, 7064, 2721, 3415, 3473, 4453, 146, 1121, 2509, 4221],\n"," 1046: [1148, 28, 1260, 2203, 3365, 678, 5573, 2075, 2931, 2938],\n"," 35: [2494,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 72: [28, 26131, 613, 1131, 2075, 2852, 2931, 1192, 1489, 2679],\n"," 91: [3516, 7064, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509],\n"," 106: [7064,\n"," 3473,\n"," 6122,\n"," 6780,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 2925,\n"," 4914,\n"," 8712],\n"," 128: [858, 1148, 1276, 1288, 111, 541, 608, 926, 1172, 1196],\n"," 158: [2075, 2852, 615, 3341, 6319, 7064, 8199, 32316, 2131, 3224],\n"," 160: [2494,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 4850,\n"," 2704,\n"," 31116],\n"," 175: [1564, 28, 232, 326, 926, 1046, 1199, 954, 4327, 6273],\n"," 196: [49932,\n"," 1934,\n"," 7933,\n"," 32316,\n"," 3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509],\n"," 203: [3415, 6023, 8580, 3511, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 206: [1564,\n"," 1199,\n"," 2075,\n"," 2931,\n"," 2938,\n"," 40826,\n"," 3516,\n"," 1192,\n"," 1489,\n"," 2679],\n"," 207: [4850,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6023],\n"," 255: [1264, 4053, 50, 1260, 3365, 6273, 2959, 1131, 2075, 2938],\n"," 265: [2796, 4387, 5438, 506, 1273, 3889, 40826, 1797, 2693, 5954],\n"," 340: [6319,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 4732,\n"," 4939,\n"," 34164,\n"," 2494],\n"," 404: [4850,\n"," 2494,\n"," 2704,\n"," 26425,\n"," 1477,\n"," 6319,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6023],\n"," 433: [6319, 3415, 3473, 6023, 8580, 6122, 8195, 3645, 4928, 6271],\n"," 440: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4929, 4850],\n"," 444: [1131, 2931, 2938, 4633, 3516, 1192, 745, 408, 2679, 1642],\n"," 450: [3415, 3473, 4928, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n"," 479: [3415, 6023, 6122, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n"," 491: [1199,\n"," 2931,\n"," 2679,\n"," 3097,\n"," 3546,\n"," 5434,\n"," 39419,\n"," 49932,\n"," 7064,\n"," 2721],\n"," 506: [3341, 7064, 32316, 2721, 3415, 3473, 4208, 146, 1121, 2509],\n"," 523: [1564, 28, 495, 912, 1046, 1212, 2959, 7193, 44761, 1131],\n"," 539: [6319,\n"," 3473,\n"," 27255,\n"," 26425,\n"," 3694,\n"," 3695,\n"," 34164,\n"," 49957,\n"," 31116,\n"," 1444],\n"," 541: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 4850, 3645],\n"," 616: [1193, 1260, 3365, 1200, 1704, 4878, 1131, 1132, 2075, 2931],\n"," 647: [6319,\n"," 2494,\n"," 2704,\n"," 5840,\n"," 1477,\n"," 26425,\n"," 6122,\n"," 2721,\n"," 8712,\n"," 31116],\n"," 659: [2714, 615, 7064, 3415, 5899, 146, 1121, 2509, 4135, 4221],\n"," 695: [2679, 6319, 1493, 4424, 8580, 1121, 2509, 4221, 4418, 4509],\n"," 700: [2679, 2714, 6319, 7064, 3415, 4453, 121, 1236, 5077, 6122],\n"," 707: [32316,\n"," 3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 4732,\n"," 6162,\n"," 34164],\n"," 748: [3473, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 4850, 6162],\n"," 759: [2704,\n"," 26425,\n"," 137,\n"," 1477,\n"," 6319,\n"," 2911,\n"," 4850,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 784: [3473,\n"," 2494,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 1871,\n"," 31116,\n"," 1444],\n"," 790: [5573, 2931, 2938, 1192, 2679, 1147, 3932, 3379, 6319, 680],\n"," 835: [1192, 2679, 6319, 7064, 3224, 3415, 3473, 4208, 4453, 1236],\n"," 844: [28, 1207, 2028, 942, 1260, 4011, 8968, 1131, 2931, 4276],\n"," 871: [6319, 3415, 3473, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n"," 875: [1260, 5017, 2075, 1192, 2679, 615, 680, 1934, 3503, 6666],\n"," 892: [1192, 2679, 7064, 32316, 2721, 2131, 3415, 4208, 121, 146],\n"," 919: [2931, 1493, 2131, 3415, 42015, 2925, 1176, 336, 8580, 5077],\n"," 935: [5017, 2075, 2852, 680, 5304, 7064, 8199, 2920, 715, 3415],\n"," 942: [2075, 2714, 6319, 7064, 2721, 3415, 3473, 6122, 27592, 668],\n"," 960: [3415, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 6271, 7067],\n"," 1006: [3415, 212, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 4850],\n"," 1026: [2679,\n"," 7064,\n"," 3415,\n"," 3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 5101],\n"," 1047: [3516,\n"," 2679,\n"," 3341,\n"," 7064,\n"," 3415,\n"," 3511,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418],\n"," 65: [1477,\n"," 26425,\n"," 27255,\n"," 2911,\n"," 34164,\n"," 31116,\n"," 1444,\n"," 27648,\n"," 5287,\n"," 1149],\n"," 135: [1046,\n"," 5017,\n"," 2931,\n"," 2938,\n"," 40826,\n"," 1489,\n"," 2679,\n"," 2714,\n"," 49932,\n"," 680],\n"," 152: [2075, 2679, 8916, 680, 7064, 8199, 2721, 2920, 581, 3415],\n"," 166: [5017, 5438, 615, 6319, 7064, 7933, 8199, 3415, 1121, 2509],\n"," 179: [2075,\n"," 2931,\n"," 2938,\n"," 3516,\n"," 1192,\n"," 3341,\n"," 3379,\n"," 49932,\n"," 7064,\n"," 8154],\n"," 188: [6319,\n"," 3473,\n"," 2494,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 26425,\n"," 4850,\n"," 31116,\n"," 1444],\n"," 217: [5438,\n"," 6319,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 3511,\n"," 1121,\n"," 2509,\n"," 4012,\n"," 4135],\n"," 253: [2704,\n"," 3777,\n"," 26425,\n"," 137,\n"," 2930,\n"," 1477,\n"," 27255,\n"," 2721,\n"," 31116,\n"," 1444],\n"," 262: [2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 3645],\n"," 277: [3511, 1121, 2509, 4221, 4418, 4509, 4732, 4929, 5101, 6162],\n"," 289: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6271, 6918, 7067],\n"," 300: [7064,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 6023,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509],\n"," 302: [2679, 7064, 3415, 3473, 4453, 121, 2925, 1121, 2509, 4221],\n"," 308: [1192, 6006, 3341, 4920, 5304, 7064, 7327, 8596, 715, 3415],\n"," 311: [3473,\n"," 4135,\n"," 2704,\n"," 1477,\n"," 26425,\n"," 34164,\n"," 2721,\n"," 31116,\n"," 7297,\n"," 5287],\n"," 328: [356, 110, 858, 1148, 1276, 1288, 5952, 7153, 28, 47],\n"," 329: [3473,\n"," 5069,\n"," 2704,\n"," 26425,\n"," 27255,\n"," 2721,\n"," 31116,\n"," 27741,\n"," 1444,\n"," 3415],\n"," 344: [6219, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 6241],\n"," 347: [3341,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 4732],\n"," 358: [2852, 40826, 2679, 2714, 3546, 680, 6643, 7013, 7064, 7933],\n"," 474: [5017, 26131, 1131, 2931, 2938, 5122, 279, 1489, 2679, 6612],\n"," 483: [213, 1148, 1276, 495, 926, 1046, 2028, 2571, 50, 904],\n"," 509: [260, 1210, 1148, 1276, 1288, 1564, 34, 28, 58, 171],\n"," 578: [6319, 7064, 2721, 3415, 3857, 5077, 8195, 2801, 3645, 1572],\n"," 643: [2721, 3415, 6023, 1121, 2509, 4221, 4418, 4509, 5101, 4850],\n"," 679: [5255, 5573, 2931, 1192, 2679, 615, 6319, 2721, 3415, 49957],\n"," 680: [1234, 3730, 5438, 3429, 1131, 2075, 2931, 2938, 4276, 4633],\n"," 691: [1172, 50, 4226, 4327, 2618, 5438, 7193, 1131, 2931, 2938],\n"," 702: [2618,\n"," 40826,\n"," 2679,\n"," 2696,\n"," 1684,\n"," 3341,\n"," 7064,\n"," 3415,\n"," 3473,\n"," 5899],\n"," 708: [2938, 1192, 2679, 3929, 615, 1684, 5434, 49932, 7013, 7064],\n"," 730: [589, 110, 260, 858, 1148, 1276, 1288, 5952, 28, 47],\n"," 751: [49932, 7064, 99, 3473, 6772, 8477, 570, 6162, 34164, 55814],\n"," 773: [2618, 1934, 7933, 2721, 3473, 1121, 2509, 4135, 4221, 4418],\n"," 803: [3473,\n"," 6122,\n"," 2911,\n"," 137,\n"," 27255,\n"," 3777,\n"," 3804,\n"," 1477,\n"," 2930,\n"," 26425],\n"," 809: [2075, 2931, 2938, 3516, 1192, 2679, 1147, 2696, 5434, 6319],\n"," 820: [7064, 3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 5101],\n"," 824: [3415, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 5069],\n"," 863: [6319, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4850],\n"," 865: [858, 1148, 28, 111, 334, 527, 541, 608, 912, 923],\n"," 867: [3516, 2679, 2721, 3415, 4453, 3078, 3511, 1121, 2509, 4221],\n"," 911: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4850, 6271],\n"," 915: [2075,\n"," 2679,\n"," 49932,\n"," 6319,\n"," 3089,\n"," 5304,\n"," 6783,\n"," 7327,\n"," 7933,\n"," 8042],\n"," 939: [5017, 324, 2931, 2938, 1489, 2679, 5434, 6319, 680, 3503],\n"," 946: [1564, 28, 1234, 1260, 2931, 2938, 4633, 5122, 955, 1192],\n"," 954: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4928, 6271, 7067],\n"," 957: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4850],\n"," 971: [2931, 2938, 4633, 1192, 1489, 2679, 680, 7064, 32316, 2721],\n"," 986: [2075, 1192, 2679, 2714, 615, 6319, 7064, 2721, 1493, 3415],\n"," 992: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4850, 8195],\n"," 92: [326, 1172, 50, 5017, 1131, 1132, 4633, 40826, 3516, 5122],\n"," 107: [2714, 3415, 3473, 6122, 4850, 6271, 7067, 7749, 7759, 8256],\n"," 131: [4135,\n"," 2704,\n"," 26425,\n"," 137,\n"," 6122,\n"," 1477,\n"," 5069,\n"," 27255,\n"," 7064,\n"," 2911],\n"," 138: [3473,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 2911,\n"," 2721,\n"," 31116,\n"," 1444],\n"," 145: [2075, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 4928],\n"," 183: [1564, 326, 926, 50, 1212, 1260, 2203, 3365, 3435, 4327],\n"," 209: [2696, 3341, 7064, 3415, 3473, 3456, 4405, 6271, 6918, 7067],\n"," 230: [356, 1564, 4226, 2931, 2938, 3516, 318, 1192, 2019, 2550],\n"," 263: [1148, 1252, 1276, 1288, 7153, 28, 58, 495, 778, 919],\n"," 305: [2075, 3473, 1121, 2509, 4221, 4418, 4509, 4600, 4732, 4850],\n"," 314: [26425,\n"," 3777,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 319: [2931, 1489, 2679, 7064, 2721, 3415, 2691, 1121, 2509, 4221],\n"," 325: [2075, 2721, 3415, 3473, 5899, 5077, 8195, 3645, 668, 4928],\n"," 341: [1210, 1564, 111, 608, 923, 926, 1199, 1219, 1221, 50],\n"," 471: [1046, 324, 2389, 2618, 5438, 2931, 3516, 408, 6006, 6187],\n"," 488: [4970, 2721, 3415, 2163, 6023, 4850, 3645, 5069, 2932, 4928],\n"," 495: [2203,\n"," 2075,\n"," 1192,\n"," 4808,\n"," 1934,\n"," 7064,\n"," 3470,\n"," 3473,\n"," 6773,\n"," 46530],\n"," 532: [3415, 3473, 6122, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n"," 564: [1073, 213, 1148, 1246, 1288, 1, 28, 232, 299, 326],\n"," 574: [2931, 1192, 2679, 8916, 2696, 680, 4356, 7064, 7933, 2721],\n"," 603: [137, 3777, 3804, 1477, 3473, 27255, 2911, 4846, 1444, 2925],\n"," 674: [40826,\n"," 1489,\n"," 1837,\n"," 2679,\n"," 7064,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 1670],\n"," 753: [1046, 1131, 2075, 2852, 2931, 2938, 4633, 1192, 2679, 2714],\n"," 810: [4135,\n"," 2704,\n"," 26425,\n"," 1046,\n"," 34164,\n"," 31116,\n"," 7297,\n"," 1149,\n"," 4939,\n"," 5255],\n"," 830: [2679, 3341, 6319, 7064, 2721, 3415, 3473, 146, 1121, 2509],\n"," 841: [1046, 50, 2931, 2938, 2679, 2696, 5434, 49932, 680, 7064],\n"," 856: [2075, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 4929],\n"," 921: [110, 5505, 7153, 495, 593, 926, 1046, 2571, 1212, 3730],\n"," 933: [4850,\n"," 2704,\n"," 137,\n"," 26425,\n"," 2930,\n"," 6122,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911],\n"," 976: [3473,\n"," 6122,\n"," 2494,\n"," 2704,\n"," 2977,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 37: [2704, 5840, 26425, 2930, 2314, 1477, 1621, 3473, 7064, 6319],\n"," 83: [3473,\n"," 49957,\n"," 5069,\n"," 2494,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 3823,\n"," 26425],\n"," 248: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 6271, 7067],\n"," 387: [4135,\n"," 4850,\n"," 5069,\n"," 5840,\n"," 26425,\n"," 1477,\n"," 1621,\n"," 27255,\n"," 3097,\n"," 2721],\n"," 428: [3341, 3415, 3473, 6023, 8580, 3511, 1121, 2509, 4221, 4418],\n"," 451: [2704,\n"," 137,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2977,\n"," 31116,\n"," 1444],\n"," 584: [2936, 1658, 7376, 1131, 1132, 1296, 2852, 29, 3516, 279],\n"," 874: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 5391],\n"," 995: [2704,\n"," 4135,\n"," 4850,\n"," 5305,\n"," 5069,\n"," 6122,\n"," 3473,\n"," 27255,\n"," 2425,\n"," 3415],\n"," 10: [324, 5438, 3516, 2679, 3918, 49932, 7064, 3415, 3473, 4208],\n"," 19: [3516, 2679, 1493, 3473, 49957, 1121, 2509, 4135, 4221, 4418],\n"," 41: [3415, 3473, 49957, 6023, 3645, 4405, 4928, 6271, 7067, 7749],\n"," 43: [242, 954, 4226, 324, 6296, 1131, 2931, 2938, 2413, 2908],\n"," 44: [260, 858, 1073, 1148, 1252, 5952, 7153, 28, 32, 47],\n"," 45: [2721, 3473, 5899, 42015, 1184, 1236, 4079, 5077, 6122, 4939],\n"," 51: [1148, 1564, 28, 47, 326, 1046, 1080, 1199, 1206, 1207],\n"," 56: [1148, 1276, 1564, 28, 47, 232, 326, 1046, 1172, 1199],\n"," 61: [28, 242, 4327, 5017, 324, 4978, 5438, 26131, 2931, 2938],\n"," 68: [2075, 8916, 4208, 5899, 4453, 2691, 1472, 149, 206, 1236],\n"," 69: [4920, 3415, 3473, 49957, 3511, 1121, 2271, 2509, 4135, 4221],\n"," 78: [1564, 495, 593, 1046, 50, 1260, 3365, 3879, 1131, 2075],\n"," 110: [1248, 1260, 2203, 4105, 1056, 2075, 2459, 7162, 955, 1192],\n"," 115: [1046,\n"," 2931,\n"," 3516,\n"," 5007,\n"," 2679,\n"," 3546,\n"," 4920,\n"," 7064,\n"," 32316,\n"," 3415],\n"," 129: [5017, 2931, 4633, 40826, 1489, 2550, 3341, 680, 7064, 7327],\n"," 150: [28, 326, 926, 1046, 1264, 50, 1260, 324, 3477, 4978],\n"," 168: [1260, 26131, 2679, 4914, 680, 1934, 2726, 3134, 3503, 5304],\n"," 169: [2075,\n"," 2931,\n"," 1489,\n"," 3341,\n"," 4920,\n"," 49932,\n"," 1934,\n"," 3503,\n"," 7064,\n"," 32316],\n"," 178: [495, 5438, 3516, 1192, 2679, 41571, 1646, 1684, 3307, 6319],\n"," 186: [858, 28, 923, 926, 1046, 1199, 1258, 1196, 2936, 3365],\n"," 201: [3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 6122,\n"," 4850,\n"," 34164,\n"," 2911],\n"," 239: [1046, 5017, 2618, 680, 3134, 3503, 5304, 6783, 7064, 7933],\n"," 256: [1260, 5017, 1131, 2931, 4276, 4633, 932, 3929, 615, 4914],\n"," 257: [1564, 8533, 4226, 2618, 4251, 5673, 6695, 7376, 8641, 8968],\n"," 272: [3473,\n"," 2911,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 279: [4633,\n"," 1489,\n"," 2679,\n"," 2714,\n"," 2731,\n"," 7064,\n"," 32316,\n"," 2721,\n"," 2131,\n"," 3415],\n"," 280: [171, 1046, 1855, 6966, 2075, 3516, 4033, 1192, 3896, 4047],\n"," 285: [1148, 1564, 923, 1046, 904, 1260, 3365, 4226, 324, 1208],\n"," 298: [5017, 3918, 7064, 2131, 3415, 5899, 4939, 6271, 7067, 7749],\n"," 301: [5952, 28, 111, 903, 926, 969, 1046, 1080, 1207, 1219],\n"," 304: [6219, 2714, 3341, 4920, 7064, 7933, 3473, 6122, 4846, 6722],\n"," 333: [3467, 2060, 1797, 2679, 5893, 937, 1684, 45950, 680, 2935],\n"," 334: [137,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6271,\n"," 7067],\n"," 338: [2721, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4600],\n"," 350: [2931,\n"," 4633,\n"," 1192,\n"," 1489,\n"," 2679,\n"," 3929,\n"," 39419,\n"," 680,\n"," 7064,\n"," 32316],\n"," 353: [26425,\n"," 2494,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444],\n"," 378: [1564, 2931, 2938, 4633, 3516, 1192, 2550, 1034, 3929, 2696],\n"," 386: [2931,\n"," 2938,\n"," 40826,\n"," 2679,\n"," 8916,\n"," 1034,\n"," 3546,\n"," 5434,\n"," 8132,\n"," 49932],\n"," 397: [1260, 2075, 2931, 2679, 615, 4920, 5434, 680, 7064, 32316],\n"," 420: [2931, 1489, 2048, 2714, 2696, 615, 3097, 7064, 1398, 2131],\n"," 439: [3341, 2721, 3415, 3473, 2691, 8341, 1121, 2509, 4221, 4418],\n"," 449: [2679, 615, 3341, 4920, 2131, 3415, 4453, 146, 1788, 8580],\n"," 478: [26425,\n"," 4135,\n"," 1034,\n"," 1477,\n"," 2911,\n"," 2721,\n"," 31116,\n"," 3415,\n"," 6023,\n"," 3645],\n"," 487: [1046, 1034, 7064, 2721, 3415, 6023, 1121, 2509, 4135, 4221],\n"," 489: [213, 1564, 5952, 7153, 593, 912, 926, 1046, 1304, 2028],\n"," 500: [2931,\n"," 2938,\n"," 1192,\n"," 1489,\n"," 2550,\n"," 32316,\n"," 2721,\n"," 3415,\n"," 4208,\n"," 7063],\n"," 510: [3516, 1192, 2679, 615, 4920, 1934, 32316, 927, 3415, 8341],\n"," 521: [321, 1172, 2028, 2959, 26131, 1131, 1132, 2075, 4276, 3516],\n"," 522: [6319,\n"," 3473,\n"," 6122,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 527: [589, 110, 260, 5505, 8533, 47, 242, 249, 912, 919],\n"," 529: [5069,\n"," 1871,\n"," 1477,\n"," 34164,\n"," 1444,\n"," 27648,\n"," 5287,\n"," 4939,\n"," 3511,\n"," 1121],\n"," 535: [2618,\n"," 2931,\n"," 2938,\n"," 4633,\n"," 40826,\n"," 1192,\n"," 1489,\n"," 2550,\n"," 2679,\n"," 2048],\n"," 550: [1564, 495, 328, 4878, 1131, 1132, 2931, 2938, 40826, 3516],\n"," 560: [1046,\n"," 6273,\n"," 3429,\n"," 26131,\n"," 2075,\n"," 2852,\n"," 1837,\n"," 2679,\n"," 4047,\n"," 4103],\n"," 573: [3473,\n"," 49957,\n"," 3694,\n"," 3695,\n"," 1444,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116],\n"," 579: [2494,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 6319],\n"," 582: [324, 5573, 2075, 2931, 2938, 3634, 1192, 103, 1147, 3929],\n"," 583: [213, 242, 1046, 50, 951, 1260, 3365, 4432, 6273, 799],\n"," 587: [6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n"," 596: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 6122, 4850],\n"," 602: [1046,\n"," 2618,\n"," 2931,\n"," 1489,\n"," 2679,\n"," 7064,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 4453],\n"," 618: [1489, 2679, 4920, 7064, 2721, 3415, 4453, 1121, 2509, 4221],\n"," 624: [1221, 3365, 5017, 6273, 2959, 44761, 1056, 1131, 2075, 750],\n"," 627: [3415, 3473, 8341, 146, 1121, 2509, 4221, 4418, 4509, 4850],\n"," 635: [5952, 28, 32, 47, 912, 926, 1046, 1221, 1198, 2028],\n"," 639: [321, 541, 50, 1260, 26131, 2931, 2938, 1192, 2019, 2550],\n"," 640: [495, 912, 1221, 50, 800, 2203, 4011, 7193, 1131, 1132],\n"," 642: [1046,\n"," 2931,\n"," 1192,\n"," 2679,\n"," 3379,\n"," 5434,\n"," 49932,\n"," 7064,\n"," 8199,\n"," 8228],\n"," 649: [4327, 5152, 26131, 506, 2931, 2938, 1192, 2679, 2594, 937],\n"," 652: [242, 321, 324, 5438, 2931, 4920, 680, 7013, 2721, 2043],\n"," 662: [2075, 1489, 3932, 7064, 2721, 3415, 4453, 6023, 2483, 5077],\n"," 671: [49932,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 4850,\n"," 1870,\n"," 5069,\n"," 6271,\n"," 7067,\n"," 7749],\n"," 675: [2679, 6319, 2721, 715, 1493, 2043, 2925, 1121, 2509, 4135],\n"," 684: [6319,\n"," 2721,\n"," 6122,\n"," 6162,\n"," 55814,\n"," 2833,\n"," 1859,\n"," 6270,\n"," 3694,\n"," 3695],\n"," 703: [1046, 40826, 1192, 3896, 2679, 1646, 615, 5135, 4356, 7013],\n"," 712: [1046, 324, 2938, 4633, 1192, 1489, 2679, 3918, 49932, 7013],\n"," 726: [1564, 28, 1046, 1221, 2571, 50, 4226, 5017, 5152, 1131],\n"," 727: [6319, 7064, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 6162],\n"," 744: [260, 1148, 28, 30, 232, 242, 326, 1172, 1196, 1629],\n"," 746: [7064, 2721, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509],\n"," 761: [6319, 3473, 137, 220, 3777, 3002, 6168, 2911, 850, 3823],\n"," 765: [50, 3516, 2679, 3546, 7064, 2721, 3415, 3473, 4208, 4453],\n"," 766: [5438, 3473, 1121, 2509, 4221, 4418, 4509, 4600, 4678, 4732],\n"," 771: [932, 3918, 7933, 8596, 1161, 5288, 6791, 2163, 206, 1535],\n"," 776: [1148, 7153, 28, 495, 926, 1260, 2997, 6695, 7376, 8968],\n"," 797: [3516,\n"," 1034,\n"," 7064,\n"," 32316,\n"," 3415,\n"," 1161,\n"," 1472,\n"," 3511,\n"," 1121,\n"," 2271],\n"," 812: [3516, 615, 49932, 3415, 6023, 1121, 2271, 2509, 4221, 4418],\n"," 815: [3467, 5017, 6273, 2959, 2931, 2938, 3516, 318, 1192, 2679],\n"," 818: [1564, 926, 1260, 3365, 6273, 36, 324, 44761, 1131, 2075],\n"," 821: [1348, 4327, 678, 741, 1658, 2389, 5110, 26131, 2938, 4633],\n"," 822: [3932, 3415, 3473, 2691, 6023, 8580, 1121, 2509, 4221, 4418],\n"," 831: [28, 242, 2203, 3365, 4432, 324, 5152, 5438, 1131, 2075],\n"," 834: [3516, 4920, 3415, 4453, 121, 3078, 3511, 1121, 2509, 4221],\n"," 837: [3473, 2494, 2911, 137, 27255, 3777, 1477, 2930, 4135, 3804],\n"," 839: [3516, 2714, 7064, 3415, 1121, 2509, 4135, 4221, 4418, 4509],\n"," 840: [2679, 2721, 3415, 3473, 4453, 6023, 1121, 2509, 4221, 4418],\n"," 851: [1288,\n"," 1564,\n"," 1131,\n"," 1132,\n"," 1233,\n"," 2075,\n"," 2931,\n"," 2938,\n"," 40826,\n"," 5122],\n"," 855: [2075, 2938, 2679, 615, 1934, 7064, 32316, 927, 2721, 2920],\n"," 857: [1148, 334, 527, 5255, 3516, 3811, 1192, 932, 2679, 3000],\n"," 868: [1046, 50, 2075, 2931, 2938, 4633, 1192, 1489, 2679, 3918],\n"," 904: [3415, 3473, 6023, 6122, 4850, 4928, 6271, 6918, 7067, 7749],\n"," 905: [2679,\n"," 1934,\n"," 7013,\n"," 7064,\n"," 7933,\n"," 3473,\n"," 49957,\n"," 2691,\n"," 2905,\n"," 3511],\n"," 906: [1046, 2931, 2679, 3415, 3473, 4208, 5899, 146, 6023, 1121],\n"," 924: [324, 5110, 5255, 5438, 2938, 4633, 1797, 47099, 7013, 4208],\n"," 925: [3473,\n"," 2911,\n"," 2704,\n"," 3694,\n"," 3695,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425],\n"," 927: [1273, 1192, 1279, 2714, 1646, 3341, 2372, 5304, 7064, 7065],\n"," 940: [1148, 1564, 527, 926, 1172, 1225, 3365, 4226, 4327, 1204],\n"," 948: [1564, 1260, 2959, 1131, 2938, 4633, 3516, 2679, 2714, 1147],\n"," 953: [858, 1148, 5952, 28, 47, 171, 242, 527, 608, 912],\n"," 966: [3473,\n"," 2911,\n"," 2704,\n"," 1444,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116],\n"," 967: [2494, 137, 2930, 1477, 3473, 27255, 2911, 1444, 3415, 3645],\n"," 979: [2075, 7064, 2721, 3415, 336, 3511, 1121, 2509, 4221, 4418],\n"," 980: [7064, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 983: [26425,\n"," 3002,\n"," 6168,\n"," 137,\n"," 5069,\n"," 1477,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 2911],\n"," 984: [2721,\n"," 4850,\n"," 34164,\n"," 2494,\n"," 5305,\n"," 850,\n"," 2704,\n"," 1444,\n"," 27648,\n"," 1477],\n"," 991: [7064,\n"," 3694,\n"," 3695,\n"," 1444,\n"," 3823,\n"," 7297,\n"," 27648,\n"," 1149,\n"," 4442,\n"," 5034],\n"," 1009: [4850,\n"," 26425,\n"," 5840,\n"," 1477,\n"," 1621,\n"," 1870,\n"," 2425,\n"," 5069,\n"," 8712,\n"," 31116],\n"," 1011: [3473,\n"," 2911,\n"," 27255,\n"," 26425,\n"," 3694,\n"," 3695,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 1572],\n"," 1014: [242, 912, 926, 1260, 3730, 4432, 6273, 290, 324, 5152],\n"," 1021: [3415,\n"," 49957,\n"," 6023,\n"," 3511,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 5101],\n"," 1030: [242, 1046, 1260, 324, 2931, 2938, 4633, 40826, 5122, 1192],\n"," 1033: [3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 5101,\n"," 4850,\n"," 4939,\n"," 6162],\n"," 1039: [1192, 2714, 7064, 2721, 3415, 3473, 336, 6023, 3857, 603],\n"," 1040: [6319,\n"," 3473,\n"," 49957,\n"," 4135,\n"," 1241,\n"," 4850,\n"," 2494,\n"," 2930,\n"," 26425,\n"," 31116],\n"," 1053: [858, 28, 326, 1131, 1132, 2931, 5122, 318, 1192, 932],\n"," 704: [7153, 527, 1046, 5017, 1131, 2931, 2938, 5122, 1192, 2679],\n"," 934: [2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 26425,\n"," 2494,\n"," 2721,\n"," 31116,\n"," 3415],\n"," 42: [40826,\n"," 1192,\n"," 7327,\n"," 2721,\n"," 3224,\n"," 3415,\n"," 3473,\n"," 42015,\n"," 3078,\n"," 3511],\n"," 73: [408, 2679, 6319, 3415, 3473, 5288, 4453, 6023, 1121, 2509],\n"," 82: [1241, 2494, 2911, 27255, 1477, 1621, 1444, 5287, 3511, 1121],\n"," 159: [4850, 2704, 2911, 1444, 7064, 3415, 6023, 3645, 1572, 6271],\n"," 161: [2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 4939],\n"," 192: [3415, 1121, 2509, 4221, 4418, 4509, 6271, 6918, 7067, 7749],\n"," 216: [1564, 527, 2028, 324, 5573, 6695, 1131, 2931, 2938, 3516],\n"," 219: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6122, 4939, 3645],\n"," 290: [3341,\n"," 4920,\n"," 32316,\n"," 3473,\n"," 8580,\n"," 1121,\n"," 2509,\n"," 4135,\n"," 4221,\n"," 4418],\n"," 379: [1046, 2075, 2938, 3516, 1192, 1489, 2726, 7064, 2721, 99],\n"," 389: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 3645, 668, 1572],\n"," 400: [6319,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 27648,\n"," 5287],\n"," 462: [2075, 2931, 2938, 1489, 2679, 615, 49932, 6319, 680, 1281],\n"," 507: [1148,\n"," 1260,\n"," 3365,\n"," 5017,\n"," 44761,\n"," 2931,\n"," 2938,\n"," 4633,\n"," 5007,\n"," 1192],\n"," 600: [2494,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 721: [2203, 2936, 324, 5438, 6296, 6662, 44761, 1131, 1132, 2075],\n"," 793: [2075, 2852, 3516, 1489, 2679, 3341, 680, 7064, 7327, 32316],\n"," 912: [5017,\n"," 2679,\n"," 49932,\n"," 7064,\n"," 7933,\n"," 32316,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 3700],\n"," 932: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 949: [5069,\n"," 26425,\n"," 137,\n"," 1871,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116],\n"," 1025: [2679,\n"," 7064,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 4453,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418],\n"," 46: [1121, 2509, 4135, 4221, 4418, 4509, 4732, 4929, 5101, 5245],\n"," 74: [5110, 1934, 7933, 32316, 3473, 2357, 3007, 5077, 6722, 4939],\n"," 342: [260, 912, 926, 50, 4226, 4432, 678, 7193, 44761, 2931],\n"," 508: [2721, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 580: [5573,\n"," 4356,\n"," 7933,\n"," 5899,\n"," 4616,\n"," 3480,\n"," 4939,\n"," 1444,\n"," 4307,\n"," 57243],\n"," 774: [110, 260, 5952, 28, 527, 593, 1046, 1219, 2571, 2936],\n"," 783: [2704,\n"," 137,\n"," 26425,\n"," 2930,\n"," 27255,\n"," 31116,\n"," 1444,\n"," 7297,\n"," 1149,\n"," 3511],\n"," 1002: [4327, 1658, 1753, 40826, 2728, 69, 517, 1209, 2898, 2714],\n"," 1023: [1046, 1131, 2931, 2938, 4633, 3516, 1837, 2679, 6219, 615],\n"," 1048: [3516,\n"," 2679,\n"," 7064,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 5899,\n"," 6023,\n"," 4135,\n"," 5077],\n"," 23: [1148,\n"," 1046,\n"," 1260,\n"," 44761,\n"," 1131,\n"," 2938,\n"," 3516,\n"," 1192,\n"," 2679,\n"," 47099],\n"," 96: [7064, 3473, 49957, 1121, 2509, 4221, 4418, 4509, 4850, 4939],\n"," 124: [6219, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 3645],\n"," 136: [2075, 40826, 2679, 3415, 3473, 8341, 146, 336, 8580, 1121],\n"," 148: [1564, 912, 923, 1172, 1212, 1234, 1260, 4226, 5017, 324],\n"," 189: [5017, 2938, 4633, 1192, 2679, 2677, 2708, 49932, 6319, 680],\n"," 213: [4276, 4920, 7064, 121, 2925, 4495, 1121, 2509, 4221, 4418],\n"," 243: [3473,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 2930,\n"," 26425,\n"," 3694,\n"," 3695,\n"," 2721,\n"," 31116],\n"," 323: [2679, 6219, 49932, 3415, 4208, 4453, 146, 212, 8580, 3078],\n"," 352: [1148, 242, 249, 299, 923, 1207, 1225, 2203, 2936, 3730],\n"," 429: [7064, 2721, 2131, 3415, 146, 336, 603, 1121, 2509, 4135],\n"," 625: [1046, 6296, 1131, 1132, 1570, 4703, 808, 2679, 7318, 2810],\n"," 808: [3365, 5017, 6273, 324, 2796, 5255, 5283, 4276, 40826, 40],\n"," 843: [3516, 3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 5101],\n"," 847: [28, 308, 326, 926, 942, 1260, 2075, 5882, 3516, 1192],\n"," 963: [5017, 6273, 26131, 408, 1966, 5304, 6783, 7064, 7327, 8125],\n"," 975: [2704,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 3694,\n"," 3695,\n"," 1444,\n"," 3415,\n"," 3645,\n"," 4928],\n"," 998: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n"," 75: [3473, 5899, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 2494],\n"," 427: [1192, 1646, 7064, 5899, 336, 2483, 1121, 2509, 4135, 4221],\n"," 466: [2131, 3415, 4850, 5069, 6271, 7067, 7749, 7759, 8256, 8724],\n"," 801: [2679, 4920, 7064, 3415, 3473, 5899, 1121, 2509, 4135, 4221],\n"," 848: [110, 260, 858, 1210, 1148, 1252, 1288, 8533, 28, 58],\n"," 888: [2721, 3415, 3473, 4850, 4939, 3645, 1572, 6271, 6918, 7067],\n"," 191: [4850,\n"," 2704,\n"," 26425,\n"," 5840,\n"," 1477,\n"," 2977,\n"," 4356,\n"," 31116,\n"," 2488,\n"," 1444],\n"," 227: [5017,\n"," 2075,\n"," 2731,\n"," 5304,\n"," 6783,\n"," 7064,\n"," 7933,\n"," 8154,\n"," 32316,\n"," 3415],\n"," 245: [242, 527, 926, 1046, 4053, 904, 1260, 324, 678, 2959],\n"," 380: [3473, 2925, 1361, 8580, 4135, 5077, 6122, 4939, 5069, 6162],\n"," 408: [2494,\n"," 2704,\n"," 26425,\n"," 6122,\n"," 3694,\n"," 3695,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 8195],\n"," 668: [3415, 3473, 2425, 3645, 4928, 6271, 7067, 7749, 7759, 8256],\n"," 747: [2704,\n"," 26425,\n"," 1734,\n"," 3473,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 8195,\n"," 3645,\n"," 668],\n"," 754: [2721, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 4939, 1572],\n"," 11: [28, 527, 608, 1046, 1172, 1193, 50, 1260, 3365, 4432],\n"," 16: [4633, 3516, 1837, 2679, 2714, 2696, 3341, 7064, 581, 3415],\n"," 81: [3516, 1192, 2679, 2714, 680, 7064, 8125, 8199, 32316, 2721],\n"," 86: [260, 1564, 4993, 2931, 2938, 3516, 5122, 2679, 2714, 8916],\n"," 97: [593, 2203, 324, 5110, 6695, 7360, 2075, 2931, 2938, 4633],\n"," 151: [1489,\n"," 2679,\n"," 32316,\n"," 3415,\n"," 4208,\n"," 4453,\n"," 1236,\n"," 6023,\n"," 8580,\n"," 1121],\n"," 235: [1564, 5952, 28, 1046, 3477, 7193, 1131, 2852, 2931, 2938],\n"," 251: [2704,\n"," 137,\n"," 26425,\n"," 2494,\n"," 1477,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 31116],\n"," 258: [495, 593, 926, 1172, 913, 1260, 2936, 4432, 324, 5152],\n"," 278: [26425,\n"," 3694,\n"," 3695,\n"," 34164,\n"," 3794,\n"," 8712,\n"," 31116,\n"," 5287,\n"," 250,\n"," 1646],\n"," 388: [1046, 3516, 1192, 2679, 3097, 3341, 5434, 49932, 680, 7064],\n"," 551: [5255, 2679, 4914, 7013, 7933, 3473, 1904, 2691, 7044, 4783],\n"," 606: [7064, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n"," 614: [527, 1260, 4432, 324, 44761, 1131, 2931, 2938, 3516, 318],\n"," 681: [324, 2075, 1753, 3918, 7064, 2721, 3415, 6591, 55247, 7063],\n"," 686: [3516, 2679, 2721, 3415, 3473, 4208, 4453, 2483, 3078, 3511],\n"," 711: [3473,\n"," 2704,\n"," 3694,\n"," 3695,\n"," 27255,\n"," 26425,\n"," 31116,\n"," 1046,\n"," 1444,\n"," 3415],\n"," 718: [2494,\n"," 2704,\n"," 1477,\n"," 1621,\n"," 27255,\n"," 3694,\n"," 3695,\n"," 2721,\n"," 1444,\n"," 3415],\n"," 873: [858, 1148, 1564, 527, 912, 919, 923, 926, 1207, 951],\n"," 962: [28, 1046, 4251, 6695, 2852, 2931, 3061, 2550, 2594, 4951],\n"," 985: [1046, 1489, 3473, 4453, 2691, 8341, 3515, 5077, 4939, 5417],\n"," 993: [1172, 2203, 5017, 2959, 1131, 2075, 2931, 1203, 3516, 955],\n"," 184: [1192, 3415, 3473, 3090, 121, 212, 1788, 1121, 2509, 4221],\n"," 246: [2494,\n"," 2704,\n"," 137,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 2911,\n"," 7064,\n"," 31116],\n"," 373: [26425,\n"," 6122,\n"," 45728,\n"," 3473,\n"," 3694,\n"," 3695,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6023],\n"," 430: [2931, 4276, 40, 2679, 2399, 2721, 3473, 48738, 49957, 1366],\n"," 534: [1034, 2988, 212, 1121, 2271, 2509, 4221, 4418, 4509, 4732],\n"," 805: [858, 28, 326, 50, 3365, 5017, 2997, 26131, 1131, 1132],\n"," 58: [28, 6273, 1136, 2618, 5438, 26131, 2931, 2938, 40826, 3516],\n"," 112: [3473,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 2704,\n"," 49957,\n"," 31116],\n"," 367: [2959, 4251, 613, 2075, 2931, 973, 4633, 1489, 2679, 47099],\n"," 548: [1148, 1252, 7153, 150, 28, 47, 242, 527, 541, 593],\n"," 791: [5017, 324, 2931, 318, 2550, 8916, 47099, 47970, 2696, 680],\n"," 909: [7064, 2721, 2131, 3415, 5899, 6023, 2483, 1121, 2509, 4221],\n"," 1041: [6319,\n"," 3415,\n"," 3473,\n"," 6023,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 5101],\n"," 13: [3473,\n"," 2494,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 2977,\n"," 1444,\n"," 3415],\n"," 869: [7064, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4850],\n"," 415: [2075, 2696, 615, 3097, 7064, 2721, 1398, 2131, 3415, 4453],\n"," 477: [28, 904, 2931, 2938, 3516, 279, 955, 1192, 2679, 1147],\n"," 569: [2075, 2931, 4276, 5882, 1489, 2679, 2714, 6319, 7013, 7064],\n"," 694: [213, 1564, 1629, 2203, 324, 4251, 5283, 1131, 2852, 2931],\n"," 729: [7064,\n"," 2721,\n"," 3473,\n"," 49957,\n"," 2925,\n"," 27592,\n"," 8477,\n"," 668,\n"," 6162,\n"," 6918],\n"," 741: [1046, 1131, 1273, 2852, 2938, 3516, 1192, 2679, 1646, 4920],\n"," 965: [615, 7064, 2721, 3415, 5077, 6122, 6271, 7067, 7749, 7759],\n"," 17: [5438, 2931, 4633, 1192, 1489, 2679, 5304, 6783, 7064, 2721],\n"," 40: [2075, 2931, 40826, 1489, 2679, 2696, 3341, 680, 7064, 8125],\n"," 114: [2931, 2679, 3415, 3473, 7063, 1236, 1121, 2509, 4221, 4418],\n"," 137: [2704,\n"," 137,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 2494,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 4850],\n"," 153: [1192, 1489, 2714, 8916, 2131, 3415, 1904, 4453, 121, 1236],\n"," 211: [1148, 1288, 1564, 5952, 28, 527, 923, 926, 1172, 1199],\n"," 286: [1131, 2679, 5434, 6319, 680, 2726, 6643, 7013, 7064, 7933],\n"," 330: [1096, 7376, 1131, 1132, 2931, 2938, 3634, 955, 1192, 1837],\n"," 336: [2075,\n"," 7064,\n"," 7933,\n"," 32316,\n"," 2721,\n"," 2131,\n"," 3415,\n"," 6023,\n"," 1121,\n"," 2509],\n"," 372: [7193, 2075, 2931, 2938, 40826, 1192, 2679, 1178, 680, 2721],\n"," 376: [1046, 1489, 2550, 2679, 8916, 32316, 2721, 99, 3415, 3473],\n"," 412: [2704,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 6122,\n"," 850,\n"," 5069],\n"," 447: [1489, 2679, 2714, 7064, 7933, 2721, 3415, 3473, 603, 1121],\n"," 467: [28, 171, 926, 1046, 2571, 951, 1248, 6273, 2618, 7827],\n"," 490: [1192, 2679, 680, 3415, 3473, 1161, 1189, 5288, 4453, 190],\n"," 518: [1564, 28, 1046, 1172, 50, 1260, 5017, 2618, 26131, 1131],\n"," 608: [2704,\n"," 220,\n"," 3777,\n"," 3804,\n"," 26425,\n"," 7064,\n"," 3473,\n"," 2721,\n"," 31116,\n"," 1444],\n"," 619: [5505, 28, 171, 527, 541, 926, 1235, 800, 4327, 4432],\n"," 644: [356, 362, 364, 588, 594, 616, 590, 648, 733, 780],\n"," 667: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 3645, 1572, 6271],\n"," 698: [1564, 926, 1260, 3477, 3879, 1131, 1132, 1213, 2075, 2852],\n"," 709: [1046, 2931, 2938, 4633, 5122, 1192, 2550, 2679, 2048, 3097],\n"," 728: [110, 326, 593, 50, 1260, 3365, 4226, 6273, 4251, 6695],\n"," 733: [1046,\n"," 1535,\n"," 2425,\n"," 5069,\n"," 34164,\n"," 2494,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 2721],\n"," 777: [324, 3516, 2721, 3415, 3473, 5077, 6122, 6722, 6772, 3579],\n"," 813: [2679, 615, 7064, 2721, 581, 3415, 3473, 4208, 49957, 4453],\n"," 832: [213, 1564, 912, 923, 926, 1219, 1221, 1258, 904, 6273],\n"," 893: [2938,\n"," 2679,\n"," 615,\n"," 5434,\n"," 49932,\n"," 1281,\n"," 7064,\n"," 7933,\n"," 32316,\n"," 2721],\n"," 901: [260, 1210, 1148, 1252, 1288, 5952, 28, 47, 111, 232],\n"," 937: [2679, 3473, 3511, 603, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 947: [7064,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 1621,\n"," 27255,\n"," 2911,\n"," 8712,\n"," 31116,\n"," 1444],\n"," 362: [2494,\n"," 3777,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 3694,\n"," 3695,\n"," 31116,\n"," 1444],\n"," 375: [2931, 1489, 2048, 5159, 680, 7064, 7065, 7327, 2043, 2131],\n"," 599: [242, 2075, 2679, 32316, 2721, 3473, 2691, 3078, 5077, 4939],\n"," 632: [1192, 2679, 3415, 1121, 2509, 4221, 4418, 4509, 4929, 4850],\n"," 779: [2704,\n"," 26425,\n"," 2494,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 850,\n"," 2721,\n"," 31116,\n"," 1444],\n"," 1022: [2931,\n"," 3516,\n"," 1192,\n"," 1489,\n"," 7064,\n"," 32316,\n"," 3473,\n"," 4208,\n"," 4453,\n"," 2691],\n"," 1034: [6319,\n"," 3473,\n"," 850,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 2494,\n"," 5287],\n"," 819: [213, 2704, 220, 3777, 3804, 2419, 6219, 1734, 3473, 6122],\n"," 2: [3473, 4135, 4850, 2425, 2704, 137, 27255, 26425, 8712, 31116],\n"," 3: [242, 321, 326, 926, 1172, 1212, 1248, 1260, 4432, 6273],\n"," 104: [356, 589, 1073, 1210, 1356, 1148, 1288, 4995, 5952, 7153],\n"," 105: [2796, 680, 7064, 715, 2131, 3224, 3415, 603, 1121, 2509],\n"," 218: [260, 858, 1148, 1288, 1564, 28, 495, 926, 1172, 1199],\n"," 250: [50, 4226, 6695, 7193, 2075, 1192, 2594, 4951, 1034, 615],\n"," 313: [242, 321, 324, 973, 3516, 32316, 3473, 1236, 8580, 6122],\n"," 377: [5438, 2075, 4920, 7064, 3473, 4424, 3511, 1121, 2509, 4221],\n"," 413: [1148, 1564, 28, 306, 593, 608, 926, 1046, 1207, 1221],\n"," 576: [3516, 1489, 2679, 7064, 2721, 3415, 4453, 4783, 5077, 6122],\n"," 586: [1046, 1260, 3365, 4432, 1131, 2931, 2938, 1753, 4633, 1489],\n"," 595: [2679, 6319, 2721, 3473, 4208, 5899, 4453, 8341, 146, 1121],\n"," 610: [50, 1260, 5017, 7193, 7376, 2938, 4633, 3516, 5007, 808],\n"," 613: [5283, 7064, 3415, 3473, 3007, 1904, 5899, 1472, 4135, 5077],\n"," 637: [527, 1041, 5438, 8968, 1131, 1354, 4276, 2360, 1192, 1837],\n"," 663: [2075, 2931, 2679, 3097, 6319, 7064, 2721, 2043, 3224, 3415],\n"," 740: [321, 527, 926, 1046, 1172, 50, 800, 1234, 2203, 4844],\n"," 787: [260, 1246, 4535, 5952, 7153, 28, 58, 171, 232, 242],\n"," 804: [26131,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 6023,\n"," 1121,\n"," 2271,\n"," 2509,\n"," 3688,\n"," 4135],\n"," 866: [1046, 2075, 1489, 2679, 6319, 7064, 3415, 3473, 4208, 4453],\n"," 883: [2075,\n"," 32316,\n"," 8580,\n"," 1121,\n"," 2509,\n"," 4135,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 5101],\n"," 941: [6695, 7007, 1203, 1192, 1489, 4228, 3918, 2696, 680, 2731],\n"," 1007: [242, 1046, 5017, 324, 5255, 5283, 1646, 5304, 6783, 7064],\n"," 817: [110, 1564, 8533, 28, 242, 926, 1172, 457, 1629, 954],\n"," 6: [1260, 3365, 5017, 2959, 2075, 1489, 2679, 3929, 1178, 3097],\n"," 7: [2075, 2931, 4633, 3516, 1192, 1489, 6219, 3929, 3341, 7064],\n"," 14: [2721, 3473, 2911, 850, 2977, 137, 27255, 3777, 3804, 1477],\n"," 24: [1148, 242, 324, 2959, 3477, 5438, 6290, 1131, 2931, 2938],\n"," 57: [2203,\n"," 2936,\n"," 3365,\n"," 5017,\n"," 7193,\n"," 44761,\n"," 2931,\n"," 2938,\n"," 8970,\n"," 40826],\n"," 60: [5438, 6319, 2721, 2131, 3415, 5899, 49957, 6023, 1121, 2509],\n"," 64: [3473,\n"," 2911,\n"," 2704,\n"," 137,\n"," 27255,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 3645],\n"," 84: [4850,\n"," 2704,\n"," 137,\n"," 26425,\n"," 3473,\n"," 27255,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 8195],\n"," 90: [2203,\n"," 1131,\n"," 2931,\n"," 2938,\n"," 40826,\n"," 1192,\n"," 2679,\n"," 2714,\n"," 8916,\n"," 47970],\n"," 98: [28, 495, 912, 1046, 1212, 1260, 3365, 2618, 2959, 5438],\n"," 113: [613, 40826, 3516, 8596, 32316, 715, 4424, 2925, 5077, 2488],\n"," 120: [2163,\n"," 4135,\n"," 5069,\n"," 6780,\n"," 27741,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 26425],\n"," 123: [28, 50, 5017, 324, 2796, 4105, 5438, 44761, 2931, 2938],\n"," 157: [858, 1148, 321, 527, 541, 912, 1172, 1221, 1196, 50],\n"," 194: [8533, 1046, 1248, 1260, 4406, 4432, 678, 2618, 4011, 4251],\n"," 200: [5438,\n"," 26131,\n"," 2938,\n"," 4276,\n"," 1489,\n"," 1837,\n"," 2679,\n"," 3917,\n"," 3929,\n"," 1150],\n"," 204: [3918, 3415, 3473, 336, 6122, 4850, 1585, 3645, 5069, 6271],\n"," 205: [1260, 7376, 2075, 2852, 2931, 2938, 4276, 5007, 808, 1192],\n"," 225: [110, 858, 1210, 1148, 1246, 1276, 5952, 7153, 8783, 28],\n"," 229: [3473, 2911, 2704, 137, 27255, 1444, 408, 3415, 3645, 4405],\n"," 237: [7064,\n"," 3473,\n"," 4135,\n"," 4850,\n"," 5069,\n"," 2911,\n"," 2977,\n"," 27255,\n"," 1477,\n"," 26425],\n"," 242: [858, 242, 912, 1234, 6273, 2618, 4011, 7193, 26131, 1131],\n"," 252: [110, 858, 1148, 1276, 1564, 8533, 28, 306, 593, 903],\n"," 266: [1564, 28, 50, 2959, 4993, 1131, 2931, 2938, 3516, 955],\n"," 270: [2704,\n"," 26425,\n"," 137,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2977,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 282: [3473,\n"," 4850,\n"," 2704,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 3823,\n"," 31116,\n"," 1444],\n"," 297: [615, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n"," 309: [3415, 3473, 149, 8195, 2425, 3645, 668, 1572, 4928, 6271],\n"," 316: [40826,\n"," 680,\n"," 3503,\n"," 5304,\n"," 7064,\n"," 7933,\n"," 32316,\n"," 3415,\n"," 3473,\n"," 42015],\n"," 327: [3516, 2696, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4585],\n"," 356: [137,\n"," 6122,\n"," 3473,\n"," 27255,\n"," 3694,\n"," 3695,\n"," 1444,\n"," 7297,\n"," 27648,\n"," 5287],\n"," 393: [4850,\n"," 5305,\n"," 2704,\n"," 137,\n"," 26425,\n"," 27255,\n"," 2347,\n"," 2732,\n"," 5840,\n"," 31116],\n"," 394: [4633,\n"," 3516,\n"," 1489,\n"," 2679,\n"," 7064,\n"," 8125,\n"," 8199,\n"," 32316,\n"," 2721,\n"," 3415],\n"," 395: [2714,\n"," 7064,\n"," 27741,\n"," 2494,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 3694,\n"," 3695,\n"," 2419],\n"," 399: [1192, 2696, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509],\n"," 401: [3516, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6044],\n"," 402: [26425,\n"," 2977,\n"," 53519,\n"," 99,\n"," 2721,\n"," 31116,\n"," 1444,\n"," 3823,\n"," 27648,\n"," 4939],\n"," 405: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n"," 417: [321, 2931, 3516, 1192, 2679, 2696, 7064, 2721, 3415, 3473],\n"," 422: [4850, 5840, 137, 3473, 1444, 3415, 6023, 8195, 3645, 4928],\n"," 437: [2075, 2931, 2938, 4633, 2679, 2714, 49932, 680, 7064, 7327],\n"," 455: [2679, 3918, 615, 4920, 2131, 3224, 3415, 3473, 123, 5288],\n"," 461: [3415, 6023, 6122, 8195, 3645, 668, 1572, 4928, 6271, 6918],\n"," 473: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n"," 484: [2203, 2931, 1489, 2679, 615, 680, 7064, 7933, 32316, 2721],\n"," 499: [3341, 7064, 7933, 8199, 32316, 715, 3415, 3511, 1121, 2509],\n"," 526: [7064, 3415, 4850, 3645, 6271, 7067, 7749, 7759, 8256, 8724],\n"," 537: [3477, 5438, 3516, 3918, 3415, 3473, 6023, 8580, 1121, 2271],\n"," 542: [7153, 28, 47, 495, 608, 926, 1172, 2571, 1212, 1234],\n"," 557: [2704,\n"," 137,\n"," 26425,\n"," 27255,\n"," 2911,\n"," 5840,\n"," 2425,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 563: [5069,\n"," 2704,\n"," 137,\n"," 26425,\n"," 3473,\n"," 27255,\n"," 6122,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 570: [110, 858, 306, 593, 1046, 1196, 1089, 7193, 1131, 1132],\n"," 575: [1148, 28, 47, 495, 527, 541, 593, 778, 903, 912],\n"," 594: [242, 527, 5017, 5294, 4978, 5110, 5255, 5438, 1131, 1132],\n"," 607: [7153, 2028, 2571, 5017, 7193, 3429, 2075, 2931, 2938, 4276],\n"," 631: [8533, 608, 912, 926, 1046, 50, 904, 1260, 2203, 2936],\n"," 651: [110, 213, 1288, 1564, 5952, 7153, 47, 111, 306, 326],\n"," 664: [5017, 324, 26131, 1131, 2075, 2931, 3516, 1489, 2679, 2714],\n"," 685: [5069,\n"," 2704,\n"," 137,\n"," 1477,\n"," 26425,\n"," 27255,\n"," 1621,\n"," 2911,\n"," 31116,\n"," 1444],\n"," 690: [5069,\n"," 2704,\n"," 137,\n"," 26425,\n"," 1477,\n"," 27255,\n"," 31116,\n"," 3823,\n"," 1444,\n"," 3224],\n"," 696: [2494,\n"," 2704,\n"," 5840,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 850],\n"," 724: [495,\n"," 2618,\n"," 3516,\n"," 47099,\n"," 2696,\n"," 1734,\n"," 3473,\n"," 4208,\n"," 55247,\n"," 4783],\n"," 738: [5017,\n"," 5304,\n"," 6783,\n"," 7064,\n"," 7933,\n"," 8125,\n"," 8199,\n"," 32316,\n"," 3415,\n"," 3473],\n"," 762: [3473,\n"," 4850,\n"," 2704,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 763: [2679, 3394, 3470, 3473, 1236, 2579, 1442, 1121, 2509, 4135],\n"," 770: [26131,\n"," 1934,\n"," 7064,\n"," 32316,\n"," 927,\n"," 2721,\n"," 3473,\n"," 5077,\n"," 4939,\n"," 45728],\n"," 796: [858, 912, 1046, 1196, 2618, 5438, 296, 2075, 2931, 2938],\n"," 800: [3473,\n"," 4135,\n"," 4850,\n"," 2704,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 829: [5017, 2959, 2931, 2938, 5122, 1192, 2550, 2679, 2714, 8916],\n"," 836: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n"," 882: [2618, 1131, 1913, 2931, 2938, 2360, 5122, 1192, 932, 1837],\n"," 900: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 3645, 6271],\n"," 903: [2618,\n"," 5255,\n"," 5438,\n"," 2075,\n"," 2931,\n"," 2938,\n"," 4276,\n"," 40826,\n"," 1192,\n"," 1489],\n"," 914: [40826,\n"," 7064,\n"," 7933,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418],\n"," 918: [5017,\n"," 7193,\n"," 7376,\n"," 2075,\n"," 2931,\n"," 2938,\n"," 3387,\n"," 40826,\n"," 3516,\n"," 1192],\n"," 920: [1148, 1046, 1199, 908, 4226, 2618, 2959, 7193, 1131, 2852],\n"," 945: [2704,\n"," 26425,\n"," 27255,\n"," 6122,\n"," 4850,\n"," 31116,\n"," 3823,\n"," 27741,\n"," 1444,\n"," 3415],\n"," 950: [356, 1564, 150, 28, 111, 171, 495, 527, 912, 923],\n"," 952: [5505, 306, 308, 321, 326, 926, 1264, 942, 2203, 2936],\n"," 982: [2696, 3415, 3473, 3511, 1121, 2271, 2509, 4221, 4418, 4509],\n"," 989: [362, 589, 110, 733, 1210, 1148, 1674, 5952, 7153, 161],\n"," 1016: [3516, 7064, 2721, 3473, 336, 2483, 1121, 2509, 4135, 4221],\n"," 1019: [321, 5017, 2931, 3516, 1192, 2679, 2696, 1945, 3813, 5434],\n"," 1044: [356, 377, 589, 594, 616, 110, 858, 1356, 213, 1148],\n"," 1051: [3473,\n"," 2704,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6023],\n"," 917: [3516, 7064, 3415, 3473, 5077, 6122, 4939, 3645, 6241, 6271],\n"," 951: [1260, 4432, 2618, 4105, 6003, 8641, 1056, 1131, 2931, 3516],\n"," 997: [1260, 3429, 2931, 2938, 3516, 1192, 1223, 745, 2550, 3000],\n"," 174: [3415, 3473, 6023, 6122, 3645, 4928, 6271, 6918, 7067, 7749],\n"," 676: [49932, 1934, 3503, 7064, 927, 2721, 3473, 5288, 1361, 7209],\n"," 764: [615, 5899, 2925, 3511, 1121, 2509, 4221, 4418, 4509, 5101],\n"," 1052: [615, 3341, 7013, 8596, 32316, 715, 1493, 7063, 8580, 3511],\n"," 5: [1489, 7064, 3415, 3473, 4208, 49957, 4453, 212, 1121, 2271],\n"," 27: [2704,\n"," 137,\n"," 26425,\n"," 1477,\n"," 27255,\n"," 31116,\n"," 7064,\n"," 1444,\n"," 3415,\n"," 6023],\n"," 33: [3473,\n"," 6122,\n"," 2911,\n"," 2704,\n"," 137,\n"," 27255,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 134: [858, 306, 1046, 1172, 50, 4226, 2618, 26131, 1131, 2852],\n"," 142: [2704,\n"," 26425,\n"," 1477,\n"," 6319,\n"," 5069,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 156: [2714,\n"," 2970,\n"," 27741,\n"," 2977,\n"," 137,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 26425,\n"," 1366],\n"," 167: [3415, 3473, 6023, 3511, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 177: [615, 7064, 7933, 8199, 3415, 1121, 2509, 4221, 4418, 4509],\n"," 224: [321, 326, 926, 1199, 50, 1260, 1348, 1611, 1658, 6695],\n"," 269: [2075, 3516, 3918, 2721, 3415, 5034, 4187, 6023, 3645, 1572],\n"," 312: [1148, 495, 527, 926, 1199, 1248, 1260, 2804, 2936, 4226],\n"," 360: [3477, 5283, 5438, 2931, 2938, 3516, 4102, 2714, 3918, 3341],\n"," 385: [615, 3415, 6023, 5077, 4850, 4939, 3645, 5069, 1572, 4405],\n"," 411: [1260, 3365, 2618, 2075, 2931, 2938, 6612, 3932, 615, 680],\n"," 464: [2075,\n"," 1192,\n"," 1489,\n"," 2679,\n"," 1966,\n"," 5304,\n"," 6783,\n"," 7933,\n"," 32316,\n"," 3415],\n"," 568: [326, 4844, 5110, 6290, 6440, 8641, 1131, 1233, 2852, 29],\n"," 612: [260, 1046, 2618, 5438, 1131, 2852, 3516, 4102, 7162, 1192],\n"," 630: [326, 6273, 1658, 2618, 26131, 1056, 2075, 4276, 1192, 932],\n"," 706: [2936, 5017, 2796, 4047, 6187, 8916, 1646, 49932, 680, 2731],\n"," 737: [2704,\n"," 26425,\n"," 5069,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 31116,\n"," 3823,\n"," 3415,\n"," 6023],\n"," 749: [1192,\n"," 363,\n"," 2704,\n"," 2330,\n"," 1444,\n"," 27255,\n"," 5287,\n"," 1477,\n"," 1621,\n"," 26425],\n"," 756: [3473,\n"," 5069,\n"," 2911,\n"," 2704,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 811: [1658,\n"," 3022,\n"," 3742,\n"," 7064,\n"," 3694,\n"," 3695,\n"," 3823,\n"," 27648,\n"," 5077,\n"," 4939],\n"," 853: [3093, 206, 1870, 2425, 1649, 6780, 34164, 2494, 2704, 5840],\n"," 884: [1260, 6695, 7193, 7376, 8968, 1132, 2075, 5882, 3516, 1177],\n"," 955: [260, 28, 50, 1260, 3365, 4226, 4327, 324, 4993, 7371],\n"," 1032: [1148, 5952, 7153, 8533, 28, 58, 111, 306, 326, 334],\n"," 1043: [1049, 213, 1148, 3684, 232, 242, 527, 923, 1096, 1207],\n"," 370: [3918, 680, 4356, 7933, 2721, 3473, 6791, 1121, 2271, 2509],\n"," 670: [3341,\n"," 7064,\n"," 7933,\n"," 8199,\n"," 32316,\n"," 2131,\n"," 3415,\n"," 6023,\n"," 3511,\n"," 1121],\n"," 923: [260, 1252, 299, 527, 1046, 1212, 2203, 3365, 4226, 678],\n"," 931: [1658, 3918, 680, 2935, 581, 217, 2787, 6772, 4850, 5069],\n"," 969: [5893, 3473, 4117, 137, 1477, 1621, 6772, 3823, 5287, 3477],\n"," 12: [4914, 3503, 7064, 7933, 8199, 2721, 3415, 1121, 2509, 4221],\n"," 597: [4053, 2931, 3516, 1489, 2679, 2714, 8916, 1034, 2721, 3415],\n"," 195: [28, 242, 2931, 2938, 3516, 1489, 2679, 7064, 32316, 2721],\n"," 337: [356, 260, 858, 1148, 1252, 5952, 28, 232, 326, 495],\n"," 910: [3516, 1192, 3341, 7064, 2721, 3415, 3473, 121, 1121, 2509],\n"," 63: [5069,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 2930,\n"," 26425,\n"," 850,\n"," 31116,\n"," 7064,\n"," 1444],\n"," 70: [7064, 7933, 3415, 3473, 6023, 4135, 4850, 4939, 5069, 668],\n"," 99: [2852, 2931, 3516, 1489, 8916, 7064, 2721, 3415, 3473, 4208],\n"," 121: [5017,\n"," 2075,\n"," 7064,\n"," 8199,\n"," 32316,\n"," 2920,\n"," 2131,\n"," 3415,\n"," 2925,\n"," 4079],\n"," 130: [2075,\n"," 40826,\n"," 4920,\n"," 7064,\n"," 2043,\n"," 3415,\n"," 4453,\n"," 8341,\n"," 4079,\n"," 6023],\n"," 244: [260, 28, 1260, 2203, 4226, 290, 1262, 2618, 2959, 5283],\n"," 291: [2696, 7064, 3415, 3473, 6023, 1121, 2509, 4135, 4221, 4418],\n"," 335: [1564, 1199, 2618, 1233, 2852, 2931, 1203, 4633, 3516, 318],\n"," 361: [7064, 3415, 3473, 5899, 149, 6023, 3511, 710, 1121, 2509],\n"," 470: [260, 3365, 1131, 1132, 2075, 2852, 2931, 2938, 4276, 40826],\n"," 497: [137,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2977,\n"," 31116,\n"," 4850,\n"," 1444],\n"," 620: [242, 2075, 2679, 7064, 1734, 2644, 3415, 3473, 121, 212],\n"," 648: [28, 326, 926, 1046, 2203, 3365, 4432, 4848, 6296, 7371],\n"," 666: [4850,\n"," 850,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 7064,\n"," 3415,\n"," 6241],\n"," 710: [1564, 28, 593, 1172, 1264, 50, 1260, 4226, 4327, 2959],\n"," 794: [4850, 2704, 27255, 2721, 1444, 3415, 8195, 3645, 668, 1572],\n"," 854: [3473,\n"," 4135,\n"," 4850,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 861: [28, 50, 799, 2618, 5438, 2075, 2931, 40826, 3516, 318],\n"," 87: [260, 858, 1148, 1252, 1564, 111, 527, 593, 926, 1046],\n"," 317: [1046, 2721, 3415, 3473, 1184, 146, 3511, 1121, 2509, 4221],\n"," 324: [2721, 3415, 4928, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n"," 502: [3918,\n"," 2721,\n"," 3473,\n"," 6591,\n"," 49957,\n"," 4495,\n"," 4135,\n"," 5077,\n"," 6122,\n"," 1827],\n"," 559: [213,\n"," 2704,\n"," 1034,\n"," 6188,\n"," 34164,\n"," 44974,\n"," 1361,\n"," 6780,\n"," 3811,\n"," 5899],\n"," 973: [1046, 3477, 5438, 1753, 3415, 3473, 212, 6023, 3511, 1121],\n"," 1015: [858, 1564, 321, 527, 1221, 3365, 6695, 2931, 2938, 750],\n"," 1017: [1034,\n"," 2425,\n"," 2704,\n"," 27255,\n"," 26425,\n"," 4850,\n"," 99,\n"," 8712,\n"," 31116,\n"," 6780],\n"," 85: [6122,\n"," 2704,\n"," 137,\n"," 26425,\n"," 1477,\n"," 27255,\n"," 2911,\n"," 34164,\n"," 49957,\n"," 31116],\n"," 306: [2935, 7064, 3473, 2925, 5077, 6122, 4939, 2911, 4442, 850],\n"," 653: [4850,\n"," 26425,\n"," 4135,\n"," 1477,\n"," 1621,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2721,\n"," 31116],\n"," 371: [26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2721,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 3645],\n"," 566: [2704,\n"," 5840,\n"," 3473,\n"," 1366,\n"," 2977,\n"," 2419,\n"," 3823,\n"," 4356,\n"," 55269,\n"," 6122],\n"," 331: [7064,\n"," 2704,\n"," 26425,\n"," 1477,\n"," 4850,\n"," 5069,\n"," 31116,\n"," 1444,\n"," 8125,\n"," 8199],\n"," 665: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 6122, 4850],\n"," 872: [1046, 2075, 2931, 2938, 2679, 3676, 5304, 6783, 7064, 8042],\n"," 879: [260, 858, 1210, 1276, 28, 111, 306, 527, 541, 778],\n"," 486: [1046, 5438, 2852, 4276, 4633, 3516, 955, 1192, 2550, 6187],\n"," 864: [2704,\n"," 26425,\n"," 2494,\n"," 2930,\n"," 27741,\n"," 27255,\n"," 6122,\n"," 34164,\n"," 850,\n"," 31116],\n"," 52: [3365, 6273, 2618, 26131, 2075, 2931, 2938, 1203, 5122, 6316],\n"," 288: [324, 2060, 5255, 2931, 2679, 3270, 1646, 1281, 5304, 7933],\n"," 9: [61, 2679, 1646, 1946, 3341, 4920, 7064, 99, 715, 1493],\n"," 117: [2721,\n"," 3473,\n"," 2911,\n"," 1444,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 26425,\n"," 31116,\n"," 3415],\n"," 220: [5017, 328, 2931, 1192, 1489, 5159, 3341, 3831, 2731, 5304],\n"," 544: [1046, 3516, 2721, 3415, 3090, 5288, 1121, 2509, 4221, 4418],\n"," 999: [242, 2936, 328, 1658, 506, 2075, 2852, 2931, 3115, 4276],\n"," 458: [4850,\n"," 5069,\n"," 2930,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 850,\n"," 31116],\n"," 974: [927, 1236, 8580, 4466, 6669, 6162, 2625, 80, 2833, 2704],\n"," 546: [1148, 1252, 1276, 232, 593, 1199, 1230, 50, 904, 1248],\n"," 55: [3415, 121, 212, 3511, 1121, 2509, 4221, 4418, 4509, 5101],\n"," 363: [1148, 242, 608, 1046, 50, 904, 1260, 3365, 4432, 1213],\n"," 445: [3341, 3415, 3473, 121, 1121, 2509, 4135, 4221, 4418, 4509],\n"," 492: [926, 1046, 50, 678, 7193, 1131, 1233, 2075, 2931, 2938],\n"," 234: [615, 1684, 6319, 7933, 32316, 2721, 1121, 2509, 4135, 4221],\n"," 1027: [2075,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 4850],\n"," 140: [3516,\n"," 2679,\n"," 5304,\n"," 6783,\n"," 7064,\n"," 8125,\n"," 32316,\n"," 2721,\n"," 3415,\n"," 3473],\n"," 926: [5017, 2075, 2931, 1489, 2696, 5304, 6783, 7064, 7933, 8596],\n"," 781: [260, 858, 1210, 1148, 5952, 7153, 232, 242, 306, 527],\n"," 825: [1046,\n"," 2931,\n"," 2938,\n"," 1489,\n"," 2679,\n"," 2696,\n"," 3097,\n"," 5434,\n"," 45950,\n"," 49932],\n"," 913: [3415, 3473, 4616, 3480, 5077, 4850, 4939, 1572, 6241, 6271],\n"," 453: [1260, 2203, 6695, 8968, 2938, 5007, 1192, 408, 6006, 2714],\n"," 540: [7064, 2721, 3415, 6023, 4850, 1572, 4405, 6271, 6918, 7067],\n"," 66: [1046, 2075, 2852, 2931, 2938, 3516, 1192, 1489, 2550, 3929],\n"," 185: [4387, 6595, 6219, 3473, 3090, 869, 3857, 4846, 220, 3777],\n"," 222: [4135, 2704, 137, 26425, 4850, 1184, 2425, 2721, 6772, 2935],\n"," 498: [7064, 8199, 3415, 3473, 3645, 4928, 6241, 6271, 7067, 7749],\n"," 994: [2704, 3694, 3695, 7064, 6122, 3823, 1444, 3415, 6023, 8195],\n"," 165: [3473,\n"," 3700,\n"," 2704,\n"," 1444,\n"," 27255,\n"," 7297,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 27648],\n"," 202: [1148, 28, 299, 321, 904, 1348, 2648, 2804, 1611, 2618],\n"," 180: [260, 3684, 28, 47, 308, 326, 527, 912, 926, 1046],\n"," 93: [242, 1172, 908, 1248, 1260, 2206, 3365, 4327, 5017, 5292],\n"," 261: [5017, 1192, 2679, 7064, 7933, 8199, 927, 2043, 3415, 3473],\n"," 435: [324, 3477, 5255, 2075, 2931, 1468, 2550, 3918, 7064, 32316],\n"," 322: [26131,\n"," 40826,\n"," 7064,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 7063,\n"," 6023,\n"," 3511,\n"," 1121],\n"," 238: [1646, 3341, 3415, 3473, 212, 6023, 8580, 3511, 1121, 2509],\n"," 425: [1046, 2075, 2852, 250, 615, 1684, 49932, 2721, 715, 3415],\n"," 512: [1056, 2931, 3516, 1192, 2500, 8916, 1646, 4920, 49932, 680],\n"," 725: [2494,\n"," 26425,\n"," 1477,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 3645,\n"," 668],\n"," 732: [2721,\n"," 3473,\n"," 27741,\n"," 2911,\n"," 2977,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116],\n"," 108: [2721, 3415, 3473, 1184, 6023, 4135, 4850, 4939, 3645, 668],\n"," 592: [1046, 904, 4226, 2618, 2858, 2959, 7360, 44761, 2931, 2938],\n"," 443: [1489, 2679, 2721, 3415, 3384, 336, 2102, 6023, 8580, 4135],\n"," 916: [2704,\n"," 26425,\n"," 2930,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 7064,\n"," 1046,\n"," 2721,\n"," 31116],\n"," 736: [858, 7153, 326, 951, 1260, 324, 2959, 6296, 2931, 29],\n"," 961: [242, 4432, 2075, 2852, 2931, 2938, 2360, 3516, 932, 1837],\n"," 1012: [2721,\n"," 3473,\n"," 34164,\n"," 2704,\n"," 3694,\n"," 3695,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 515: [2721, 715, 3415, 3645, 4928, 6271, 7067, 7749, 7759, 8256],\n"," 978: [1148, 8533, 321, 1172, 1260, 3365, 4432, 324, 2060, 2618],\n"," 28: [5438, 2075, 3516, 188, 1034, 615, 3097, 2721, 1361, 146],\n"," 475: [3473,\n"," 2704,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 3645,\n"," 668],\n"," 598: [1046, 506, 1056, 2931, 1192, 1489, 250, 2696, 1929, 199],\n"," 943: [4135, 6122, 4850, 2704, 1477, 26425, 1046, 850, 7064, 2721],\n"," 520: [8132,\n"," 26425,\n"," 27255,\n"," 2970,\n"," 31116,\n"," 5017,\n"," 5304,\n"," 7064,\n"," 8199,\n"," 3415],\n"," 697: [2347, 28, 1719, 2721, 328, 4103, 30803, 4307, 55280, 57243],\n"," 849: [260, 1210, 1148, 28, 527, 541, 1199, 1207, 1193, 1197],\n"," 1003: [3516, 250, 7064, 7933, 32316, 2721, 715, 5034, 212, 1121],\n"," 705: [2721, 3415, 3473, 121, 212, 6023, 1121, 2509, 4221, 4418],\n"," 48: [242, 562, 1103, 1199, 1206, 1207, 1244, 904, 913, 1086],\n"," 29: [4135,\n"," 4850,\n"," 26425,\n"," 1184,\n"," 1827,\n"," 1870,\n"," 3360,\n"," 6772,\n"," 8712,\n"," 31116],\n"," 231: [250, 2714, 1646, 3415, 1904, 6791, 3076, 212, 1121, 2271],\n"," 699: [1489, 2679, 1147, 615, 3341, 2731, 5304, 6783, 7064, 8125],\n"," 448: [7064,\n"," 2704,\n"," 26425,\n"," 2494,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 3694,\n"," 3695,\n"," 850],\n"," 750: [213, 242, 926, 26131, 613, 2075, 2931, 2938, 4633, 1192],\n"," 782: [5017,\n"," 26131,\n"," 4356,\n"," 7064,\n"," 8199,\n"," 2721,\n"," 3224,\n"," 3415,\n"," 6023,\n"," 8195],\n"," 860: [5840,\n"," 26425,\n"," 3473,\n"," 59315,\n"," 54995,\n"," 3823,\n"," 4327,\n"," 8712,\n"," 31116,\n"," 1444],\n"," 768: [213, 2704, 26425, 1034, 1361, 2419, 2852, 1477, 2714, 2935],\n"," 127: [1833, 3503, 2721, 2732, 82, 1237, 6881, 2704, 3694, 3695],\n"," 894: [299,\n"," 4103,\n"," 30803,\n"," 4307,\n"," 55280,\n"," 57243,\n"," 1244,\n"," 49932,\n"," 7327,\n"," 4437]})"]},"metadata":{},"execution_count":8}],"source":["# surprise를 사용한 구현\n","\n","from surprise import KNNWithMeans, Reader\n","from surprise import Dataset as SurpriseDataset\n","# surprise용으로 데이터를 가공한다\n","reader = Reader(rating_scale=(0.5, 5))\n","data_train = SurpriseDataset.load_from_df(\n"," movielens_train[[\"user_id\", \"movie_id\", \"rating\"]], reader\n",").build_full_trainset()\n","\n","sim_options = {\"name\": \"pearson\", \"user_based\": True} # 유사도를 계산하는 방법을 정의한다 # False로 하면 아이템 기반이 된다\n","knn = KNNWithMeans(k=30, min_k=1, sim_options=sim_options)\n","knn.fit(data_train)\n","\n","# 학습 데이터셋에서 평갓값이 없는 사용자와 아이템의 조합을 준비한다\n","data_test = data_train.build_anti_testset(None)\n","predictions = knn.test(data_test)\n","\n","def get_top_n(predictions, n=10):\n"," # 각 사용자별로 예측된 아이템을 저장한다\n"," top_n = defaultdict(list)\n"," for uid, iid, true_r, est, _ in predictions:\n"," top_n[uid].append((iid, est))\n","\n"," # 사용자별로 아이템을 예측 평갓값 순으로 나열하고, 상위 n개를 저장한다\n"," for uid, user_ratings in top_n.items():\n"," user_ratings.sort(key=lambda x: x[1], reverse=True)\n"," top_n[uid] = [d[0] for d in user_ratings[:n]]\n","\n"," return top_n\n","\n","pred_user2items = get_top_n(predictions, n=10)\n","\n","average_score = movielens_train.rating.mean()\n","pred_results = []\n","for _, row in movielens_test.iterrows():\n"," user_id = row[\"user_id\"]\n"," movie_id = row[\"movie_id\"]\n"," # 학습 데이터에 존재하지 않고 테스트 데이터에만 존재하는 사용자와 영화에 대한 예측 평갓값은 전체의 평균 평갓값으로 한다\n"," if user_id not in user_id2index or movie_id not in movie_id2index:\n"," pred_results.append(average_score)\n"," continue\n"," pred_score = knn.predict(uid=user_id, iid=movie_id).est\n"," pred_results.append(pred_score)\n","movie_rating_predict[\"rating_pred\"] = pred_results\n","\n","pred_user2items"]},{"cell_type":"code","execution_count":9,"id":"1fccc723","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":841},"id":"1fccc723","executionInfo":{"status":"ok","timestamp":1672121035097,"user_tz":-540,"elapsed":30,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"6420b02f-837f-4f24-adc1-0c986fe8d916"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","6150 2 648 2.0 868244699 \n","6531 2 733 3.0 868244562 \n","6813 2 736 3.0 868244698 \n","7113 2 780 3.0 868244698 \n","7506 2 786 3.0 868244562 \n","7661 2 802 2.0 868244603 \n","7779 2 858 2.0 868245645 \n","8077 2 1049 3.0 868245920 \n","8127 2 1073 3.0 868244562 \n","8381 2 1210 4.0 868245644 \n","8771 2 1356 3.0 868244603 \n","9097 2 1544 3.0 868245920 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","6150 Mission: Impossible (1996) \n","6531 Rock, The (1996) \n","6813 Twister (1996) \n","7113 Independence Day (a.k.a. ID4) (1996) \n","7506 Eraser (1996) \n","7661 Phenomenon (1996) \n","7779 Godfather, The (1972) \n","8077 Ghost and the Darkness, The (1996) \n","8127 Willy Wonka & the Chocolate Factory (1971) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","8771 Star Trek: First Contact (1996) \n","9097 Lost World: Jurassic Park, The (Jurassic Park ... \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","6150 [Action, Adventure, Mystery, Thriller] \n","6531 [Action, Adventure, Thriller] \n","6813 [Action, Adventure, Romance, Thriller] \n","7113 [Action, Adventure, Sci-Fi, War] \n","7506 [Action, Drama, Thriller] \n","7661 [Drama, Romance] \n","7779 [Crime, Drama] \n","8077 [Action, Adventure] \n","8127 [Children, Comedy, Fantasy, Musical] \n","8381 [Action, Adventure, Sci-Fi] \n","8771 [Action, Adventure, Sci-Fi, Thriller] \n","9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","6150 [confusing, confusing plot, memorable sequence... 12.0 \n","6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n","6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n","7113 [action, alien invasion, aliens, will smith, a... 14.0 \n","7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n","7661 [interesting concept, own, john travolta, john... 15.0 \n","7779 [oscar (best picture), marlon brando, classic,... 9.0 \n","8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n","8127 [based on a book, roald dahl, based on a book,... 20.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n","8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n","9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":9}],"source":["# user_id=2인 사용자가 학습 데이터에서 평가를 부여한 영화 목록\n","movielens_train[movielens_train.user_id==2]"]},{"cell_type":"code","execution_count":10,"id":"874b6e3e","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"874b6e3e","executionInfo":{"status":"ok","timestamp":1672121035098,"user_tz":-540,"elapsed":19,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"b39c148b-c27c-4f83-a2b5-ddf05e1f8545"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[3473, 4135, 4850, 2425, 2704, 137, 27255, 26425, 8712, 31116]"]},"metadata":{},"execution_count":10}],"source":["pred_user2items[2]"]},{"cell_type":"code","execution_count":11,"id":"c9b77fbd","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"c9b77fbd","executionInfo":{"status":"ok","timestamp":1672121035098,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"9a9700f9-87ac-459c-b415-1df2a8dceb5c"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","3386 3473 Jonah Who Will Be 25 in the Year 2000 (Jonas q... \n","4043 4135 Monster Squad, The (1987) \n","4756 4850 Spriggan (Supurigan) (1998) \n","\n"," genre \\\n","3386 [Comedy] \n","4043 [Adventure, Comedy, Horror] \n","4756 [Action, Animation, Sci-Fi] \n","\n"," tag \n","3386 [cerebral, humorous, intersecting lives, intim... \n","4043 [can't remember] \n","4756 [library, anime, spectacle, over expositive] "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
33863473Jonah Who Will Be 25 in the Year 2000 (Jonas q...[Comedy][cerebral, humorous, intersecting lives, intim...
40434135Monster Squad, The (1987)[Adventure, Comedy, Horror][can't remember]
47564850Spriggan (Supurigan) (1998)[Action, Animation, Sci-Fi][library, anime, spectacle, over expositive]
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":11}],"source":["# user_id=2에 대한 추천(1198, 1196, 1097)\n","movies[movies.movie_id.isin([3473, 4135, 4850])]"]},{"cell_type":"code","execution_count":11,"id":"99c25fe6","metadata":{"id":"99c25fe6","executionInfo":{"status":"ok","timestamp":1672121035098,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/Word2vec.ipynb b/chapter5/colab/Word2vec.ipynb index c33b451..7e2426b 100644 --- a/chapter5/colab/Word2vec.ipynb +++ b/chapter5/colab/Word2vec.ipynb @@ -1,1543 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "8dc6cdc1", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/Word2vec.ipynb)" - ] - }, - { - "cell_type": "markdown", - "id": "caaaa856", - "metadata": {}, - "source": [ - "# Word2vec" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "20b107d9", - "metadata": {}, - "outputs": [], - "source": [ - "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", - "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", - "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", - "\n", - "# 데이터 다운로드와 압축 풀기\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "9f40fb34", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", - "import pandas as pd\n", - "\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "\n", - "\n", - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "\n", - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "\n", - "\n", - "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "\n", - "\n", - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "\n", - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", - "\n", - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "dc9b021b", - "metadata": {}, - "outputs": [], - "source": [ - "# 인자 수\n", - "factors = 100\n", - "# 에폭 수\n", - "n_epochs = 30\n", - "# window 크기\n", - "window = 100\n", - "# 스킵 그램\n", - "use_skip_gram = 1\n", - "# 계층적 소프트맥스\n", - "use_hierarchial_softmax = 0\n", - "# 사용할 단어의 출현 횟수의 임곗값\n", - "min_count = 5" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "9f4dd49e", - "metadata": {}, - "outputs": [], - "source": [ - "movie_content = movies.copy()\n", - "# tag가 부여되지 않은 영화는 있지만, genre는 모든 영화에 부여되어 있다\n", - "# tag와 genre를 결합한 것을 영화의 콘텐츠 정보로 해서 비슷한 영화를 찾아 추천한다\n", - "# tag가 없는 영화는 NaN으로 되어 있으므로, 빈 리스트로 변환한 뒤 처리한다\n", - "movie_content[\"tag_genre\"] = movie_content[\"tag\"].fillna(\"\").apply(list) + movie_content[\"genre\"].apply(list)\n", - "movie_content[\"tag_genre\"] = movie_content[\"tag_genre\"].apply(lambda x: set(map(str, x)))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1d04f27c", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install gensim==4.0.1" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "5994a870", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/mk/.pyenv/versions/3.7.8/envs/recsys-test3.7.8/lib/python3.7/site-packages/gensim/similarities/__init__.py:15: UserWarning: The gensim.similarities.levenshtein submodule is disabled, because the optional Levenshtein package is unavailable. Install Levenhstein (e.g. `pip install python-Levenshtein`) to suppress this warning.\n", - " warnings.warn(msg)\n" - ] - } - ], - "source": [ - "import gensim\n", - "\n", - "# 태그와 장르 데이터를 사용해 word2vec을 학습한다\n", - "tag_genre_data = movie_content.tag_genre.tolist()\n", - "model = gensim.models.word2vec.Word2Vec(\n", - " tag_genre_data,\n", - " vector_size=factors,\n", - " window=window,\n", - " sg=use_skip_gram,\n", - " hs=use_hierarchial_softmax,\n", - " epochs=n_epochs,\n", - " min_count=min_count,\n", - ")\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "cad9e002", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[('studio ghibli', 0.8167880177497864),\n", - " ('zibri studio', 0.8076589107513428),\n", - " ('pelicula anime', 0.7783956527709961),\n", - " ('hayao miyazaki', 0.7779476046562195),\n", - " ('miyazaki', 0.754835307598114),\n", - " ('japan', 0.6330965161323547),\n", - " ('Animation', 0.5467621088027954),\n", - " ('girl', 0.528790295124054),\n", - " ('wilderness', 0.5270888805389404),\n", - " ('dragon', 0.5217347741127014)]" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# anime 태크와 비슷한 태그를 확인한다\n", - "model.wv.most_similar('anime')" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "36426496", - "metadata": {}, - "outputs": [], - "source": [ - "# 각 영화의 벡터를 계산한다\n", - "# 각 영화에 부여되어 있는 태그/장르 벡터의 평균을 영화의 벡터로 한다\n", - "movie_vectors = []\n", - "tag_genre_in_model = set(model.wv.key_to_index.keys())\n", - "\n", - "titles = []\n", - "ids = []\n", - "\n", - "for i, tag_genre in enumerate(tag_genre_data):\n", - " # word2vec 모델에서 사용할 수 있는 태그/장르로 필터링한다\n", - " input_tag_genre = set(tag_genre) & tag_genre_in_model\n", - " if len(input_tag_genre) == 0:\n", - " # word2vec에 기반해 벡터 계산할 수 없는 영화에는 무작위 벡터를 부여한다\n", - " vector = np.random.randn(model.vector_size)\n", - " else:\n", - " vector = model.wv[input_tag_genre].mean(axis=0)\n", - " titles.append(movie_content.iloc[i][\"title\"])\n", - " ids.append(movie_content.iloc[i][\"movie_id\"])\n", - " movie_vectors.append(vector)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "e0ef174b", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "# 후속 유사도 계산을 쉽게 할 수 있도록 numpy 배열로 저장한다\n", - "movie_vectors = np.array(movie_vectors)\n", - "\n", - "# 정규화한 벡터\n", - "sum_vec = np.sqrt(np.sum(movie_vectors ** 2, axis=1))\n", - "movie_norm_vectors = movie_vectors / sum_vec.reshape((-1, 1))\n" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "0986ff67", - "metadata": {}, - "outputs": [], - "source": [ - "# 아직 평가하지 않은 영화에서 유사도가 높은 아이템을 반환하는 함수\n", - "def find_similar_items(vec, evaluated_movie_ids, topn=10):\n", - " score_vec = np.dot(movie_norm_vectors, vec)\n", - " similar_indexes = np.argsort(-score_vec)\n", - " similar_items = []\n", - " for similar_index in similar_indexes:\n", - " if ids[similar_index] not in evaluated_movie_ids:\n", - " similar_items.append(ids[similar_index])\n", - " if len(similar_items) == topn:\n", - " break\n", - " return similar_items" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "9e00ac0c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{1: [4306, 2054, 7369, 5452, 2080, 6559, 36708, 5500, 44022, 2804],\n", - " 2: [1198, 1196, 1097, 3578, 1204, 7153, 2028, 527, 3471, 940],\n", - " 3: [27797, 3874, 61071, 26989, 3194, 5499, 5524, 51314, 4964, 8503],\n", - " 4: [2125, 1073, 551, 2797, 33836, 374, 1028, 4184, 2054, 2953],\n", - " 5: [1193, 3168, 1276, 928, 3504, 1161, 3741, 2858, 3201, 2729],\n", - " 6: [5445, 198, 2594, 5881, 292, 1301, 1240, 541, 3156, 8914],\n", - " 7: [2935, 955, 922, 7080, 4357, 946, 3307, 4914, 947, 910],\n", - " 8: [33437, 4956, 2764, 517, 36529, 7386, 2871, 2912, 58025, 6297],\n", - " 9: [2890, 1953, 1162, 3168, 319, 665, 1213, 4399, 33166, 1884],\n", - " 10: [1950, 3504, 1953, 920, 1925, 2396, 909, 1961, 1721, 1927],\n", - " 11: [1784, 3259, 339, 1393, 11, 1307, 8969, 7, 3893, 357],\n", - " 12: [1438, 6385, 1805, 11, 517, 1876, 2594, 3418, 1674, 4699],\n", - " 13: [1784, 1084, 909, 356, 1213, 3201, 1276, 1263, 1230, 3100],\n", - " 14: [3988, 8516, 586, 2161, 3489, 2125, 2804, 2054, 7046, 1265],\n", - " 16: [748, 2288, 1301, 5522, 5046, 2662, 3699, 5881, 2528, 674],\n", - " 17: [1253, 1254, 2529, 1086, 3551, 928, 1276, 2871, 3384, 913],\n", - " 18: [59615, 3204, 517, 60072, 4956, 1805, 6503, 2947, 5479, 26746],\n", - " 19: [2080, 4306, 2081, 2161, 2137, 7247, 1028, 2102, 2125, 2096],\n", - " 22: [1784, 5445, 1240, 1625, 3204, 5881, 1693, 2490, 1617, 1214],\n", - " 23: [1073, 1265, 6620, 4014, 1282, 6377, 7064, 1197, 588, 1259],\n", - " 24: [1883, 3386, 7445, 1784, 161, 1953, 3100, 1213, 4776, 36529],\n", - " 26: [1036, 1240, 1214, 6, 1200, 593, 2912, 2529, 1610, 480],\n", - " 27: [2058, 165, 377, 1617, 1036, 457, 555, 3386, 2912, 1729],\n", - " 28: [6558, 4091, 3210, 1513, 2248, 3591, 5969, 1777, 1257, 3308],\n", - " 29: [32596, 2887, 46970, 1091, 7004, 442, 2723, 367, 6503, 54648],\n", - " 30: [8937, 1883, 4956, 5970, 63876, 8533, 1378, 3360, 3361, 1727],\n", - " 33: [1784, 2396, 3504, 1104, 3362, 6993, 3006, 1095, 7160, 1358],\n", - " 34: [27735, 2716, 8387, 2428, 1772, 2717, 8810, 3527, 3959, 2887],\n", - " 35: [1748, 1199, 1921, 2997, 1625, 1089, 29, 296, 628, 2594],\n", - " 36: [3981, 53000, 32, 51709, 1587, 31696, 45722, 37733, 32587, 7373],\n", - " 37: [3168, 1235, 1213, 1729, 3275, 1265, 319, 45728, 1805, 18],\n", - " 38: [2000, 2490, 51255, 5027, 7007, 50792, 40959, 2001, 59594, 6185],\n", - " 40: [21, 2580, 1923, 7381, 3948, 1265, 4011, 3275, 2542, 1747],\n", - " 41: [709, 1025, 2080, 2099, 596, 7247, 1031, 6316, 107, 661],\n", - " 42: [909, 3504, 1784, 920, 3307, 1959, 1247, 3095, 1925, 750],\n", - " 43: [2733, 6834, 3885, 6318, 8013, 3568, 58162, 2597, 5241, 8940],\n", - " 44: [2791, 3671, 3752, 5541, 6807, 466, 1923, 2723, 1091, 7091],\n", - " 45: [2912, 6, 4226, 1625, 628, 1213, 8783, 296, 32587, 3362],\n", - " 46: [480, 1210, 316, 260, 1200, 1196, 1240, 2987, 1544, 1198],\n", - " 47: [1380, 1784, 1265, 1091, 4027, 3752, 2580, 2804, 4621, 3210],\n", - " 48: [51255, 53972, 442, 51709, 27735, 6503, 2490, 54997, 52328, 1909],\n", - " 50: [2671, 11, 5299, 1307, 1393, 3270, 1784, 1101, 236, 3259],\n", - " 51: [2871, 3100, 3386, 3006, 3020, 3535, 1263, 3476, 7044, 4349],\n", - " 52: [3435, 903, 908, 2186, 922, 8044, 2203, 942, 1254, 1086],\n", - " 53: [4027, 8783, 2912, 7044, 1784, 31, 7285, 628, 2594, 1805],\n", - " 54: [2987, 2366, 2804, 6377, 2716, 32031, 1784, 4262, 8961, 1073],\n", - " 55: [1387, 2366, 1590, 1214, 8957, 39446, 1625, 3551, 3476, 480],\n", - " 56: [1073, 1265, 1197, 1235, 1035, 2529, 4027, 6, 2161, 920],\n", - " 57: [5880, 4434, 1626, 6168, 1744, 5692, 6138, 8676, 1636, 1869],\n", - " 58: [1022, 588, 1025, 364, 531, 42015, 4886, 2161, 2139, 2821],\n", - " 59: [1036, 1610, 377, 2912, 2529, 1276, 6, 3006, 1953, 47],\n", - " 60: [1276, 3468, 1254, 909, 903, 2871, 1953, 908, 912, 3100],\n", - " 61: [1784, 4027, 1263, 3100, 858, 50, 31, 3362, 3504, 7160],\n", - " 62: [1036, 733, 377, 1610, 1127, 780, 3204, 480, 1214, 3471],\n", - " 63: [1784, 5673, 1357, 1265, 224, 337, 1230, 1235, 27808, 532],\n", - " 64: [31660, 1270, 316, 2987, 1408, 2161, 1610, 1721, 1616, 161],\n", - " 65: [4886, 64652, 44022, 53121, 6377, 47124, 5218, 40339, 258, 52287],\n", - " 66: [1235, 1394, 1202, 5792, 608, 1079, 4914, 319, 2395, 1162],\n", - " 67: [64327, 8330, 2438, 3227, 5416, 2594, 27833, 2764, 43853, 1805],\n", - " 68: [7215, 1784, 7311, 2764, 2912, 64327, 8330, 2438, 3227, 5416],\n", - " 69: [1784, 1947, 1959, 909, 1183, 7215, 1230, 920, 914, 587],\n", - " 70: [1235, 6783, 7135, 1162, 1202, 6650, 4914, 235, 3819, 5673],\n", - " 71: [919, 1, 5989, 1089, 1721, 356, 1213, 2987, 1235, 912],\n", - " 72: [1544, 3256, 160, 736, 3204, 4638, 2947, 517, 798, 2524],\n", - " 73: [1772, 44022, 36708, 34332, 4306, 2054, 2053, 8360, 7369, 2383],\n", - " 74: [5693, 1513, 1042, 852, 2470, 2100, 6815, 2133, 50792, 539],\n", - " 75: [7458, 3578, 733, 1408, 377, 5464, 5010, 6947, 3654, 3623],\n", - " 76: [990, 1427, 1488, 4044, 31255, 1626, 1382, 4224, 798, 3710],\n", - " 77: [1616, 43928, 1690, 3204, 7007, 208, 5881, 3527, 3623, 2722],\n", - " 78: [1690, 1748, 5171, 26326, 48943, 3204, 32239, 26513, 2594, 3770],\n", - " 79: [8638, 1902, 5673, 1658, 48082, 3535, 3148, 156, 1784, 64957],\n", - " 80: [1784, 1884, 5673, 38061, 1476, 4027, 1235, 1658, 319, 1213],\n", - " 81: [1953, 1263, 4007, 1213, 2890, 3468, 3386, 1208, 4008, 1304],\n", - " 82: [1784, 3481, 1380, 1307, 41573, 357, 3752, 2125, 1265, 8641],\n", - " 83: [2366, 909, 940, 1256, 2936, 3671, 7080, 3307, 1230, 2648],\n", - " 84: [1784, 3386, 318, 2115, 1198, 5989, 1291, 356, 4027, 3100],\n", - " 85: [1784, 7160, 1961, 1358, 3504, 923, 1617, 1393, 4027, 1476],\n", - " 86: [1580, 316, 1544, 3471, 3204, 377, 2115, 1690, 4121, 292],\n", - " 87: [1784, 1265, 4027, 1658, 3210, 1923, 587, 532, 1235, 50792],\n", - " 88: [1101, 1616, 3130, 1784, 1393, 7007, 4621, 3386, 3361, 1883],\n", - " 89: [2427, 1227, 2912, 517, 4262, 6185, 1912, 6, 3863, 18],\n", - " 90: [62331, 5497, 558, 2041, 26792, 7262, 5892, 32825, 8822, 7743],\n", - " 91: [1488, 3452, 377, 26746, 3623, 3204, 51709, 50445, 26488, 4224],\n", - " 92: [1265, 44761, 1127, 6184, 33004, 316, 1301, 2716, 4027, 1784],\n", - " 93: [49130, 2396, 42015, 62155, 8533, 8373, 41285, 51903, 4880, 41997],\n", - " 94: [1101, 11, 2133, 1393, 1777, 2470, 8643, 2369, 2405, 1100],\n", - " 95: [1240, 3204, 3578, 260, 1200, 2529, 1196, 1693, 5445, 1127],\n", - " 96: [2389, 2764, 4383, 517, 1061, 6185, 1625, 2912, 52456, 7445],\n", - " 97: [1721, 1784, 11, 1912, 3259, 1883, 41571, 7162, 6385, 1658],\n", - " 98: [38499, 2396, 1224, 8273, 1611, 33722, 6993, 56060, 32591, 6117],\n", - " 99: [2594, 49932, 5105, 8957, 8950, 1076, 1219, 1748, 928, 4754],\n", - " 100: [1617, 1265, 2912, 928, 4027, 908, 2291, 1036, 3020, 1748],\n", - " 101: [5881, 3259, 1883, 2600, 8373, 7215, 1727, 3269, 8643, 2413],\n", - " 102: [1617, 2912, 50, 1036, 349, 1693, 6, 733, 517, 1625],\n", - " 103: [1235, 3168, 6184, 3210, 319, 2395, 1273, 1658, 2065, 5792],\n", - " 104: [377, 316, 2529, 349, 589, 480, 1200, 592, 3204, 1127],\n", - " 105: [2021, 1301, 1274, 1690, 1129, 1127, 2528, 1200, 2529, 6645],\n", - " 106: [2078, 1025, 783, 1029, 364, 1030, 2096, 5218, 2141, 48],\n", - " 107: [1927, 920, 909, 1939, 1287, 1084, 1263, 1925, 3475, 1945],\n", - " 108: [34528, 40870, 27416, 2155, 3152, 25, 5068, 6268, 1236, 1300],\n", - " 110: [165, 3623, 494, 1580, 836, 1616, 442, 5459, 95, 1544],\n", - " 111: [1208, 3471, 1408, 1036, 1090, 1387, 1693, 1097, 3578, 3100],\n", - " 112: [34528, 4194, 8202, 6268, 6660, 7352, 1904, 7135, 3925, 2920],\n", - " 113: [39, 8969, 4246, 1307, 357, 3270, 2125, 186, 587, 339],\n", - " 114: [4467, 2413, 26422, 1220, 1206, 4027, 1292, 1199, 7080, 1263],\n", - " 115: [11, 1101, 539, 3259, 2797, 597, 543, 2804, 4975, 1883],\n", - " 116: [2987, 2161, 2054, 32031, 2804, 2005, 1, 4306, 44022, 6377],\n", - " 117: [6558, 2133, 5452, 8643, 44193, 4936, 351, 47122, 43930, 1188],\n", - " 118: [3508, 6812, 4329, 7438, 1378, 1213, 1201, 5027, 2922, 2002],\n", - " 119: [1235, 1265, 319, 5792, 1923, 4914, 4027, 1136, 6815, 1288],\n", - " 120: [1580, 442, 380, 3175, 1101, 2723, 34332, 5459, 367, 34520],\n", - " 121: [2115, 1127, 8810, 1320, 1690, 260, 33493, 5378, 1214, 2826],\n", - " 122: [5673, 1658, 5945, 48082, 54978, 4880, 44864, 1199, 7444, 2764],\n", - " 123: [1784, 11, 1959, 1230, 539, 1721, 4041, 3072, 1925, 909],\n", - " 124: [40870, 44195, 2071, 6297, 9010, 59118, 27790, 57669, 2155, 31705],\n", - " 125: [7044, 7160, 1805, 48997, 1357, 8958, 175, 32591, 56274, 8943],\n", - " 126: [2186, 48883, 7981, 8950, 4037, 4837, 5319, 5867, 2952, 2912],\n", - " 127: [5758, 6120, 5478, 2364, 25798, 5746, 5556, 8894, 26603, 26558],\n", - " 128: [5380, 2690, 1224, 838, 2396, 31694, 38499, 3668, 3079, 1059],\n", - " 129: [367, 1784, 50792, 532, 1441, 1658, 42011, 50, 1091, 7367],\n", - " 130: [1161, 4467, 27706, 29, 6003, 1199, 1089, 3020, 2959, 1301],\n", - " 131: [1729, 1213, 7160, 1089, 3685, 1961, 1784, 4262, 5989, 7438],\n", - " 132: [47, 2912, 1617, 3499, 1193, 2762, 1693, 1953, 1259, 1276],\n", - " 134: [2161, 2716, 2065, 587, 1265, 1658, 4014, 1235, 5673, 7720],\n", - " 135: [1084, 3871, 920, 1953, 1304, 1263, 2871, 922, 1950, 3365],\n", - " 136: [54978, 52227, 2455, 8531, 2413, 2133, 5706, 3259, 3269, 4564],\n", - " 137: [1350, 2912, 8783, 37382, 43871, 2160, 1997, 5502, 8957, 292],\n", - " 138: [1213, 3275, 2912, 1729, 319, 4034, 1784, 4027, 608, 6],\n", - " 139: [44022, 34, 4886, 2804, 1646, 4306, 2018, 1282, 6377, 2161],\n", - " 140: [1939, 1945, 1944, 1927, 1250, 1959, 920, 1950, 1931, 909],\n", - " 141: [1784, 41573, 3481, 2396, 2671, 1393, 1380, 5299, 5066, 5673],\n", - " 142: [349, 1953, 3006, 2912, 1208, 6, 1213, 6787, 3100, 2529],\n", - " 143: [25931, 4290, 5759, 7050, 63119, 61123, 6696, 64338, 7758, 6345],\n", - " 144: [53887, 4956, 46855, 5686, 58105, 1267, 5000, 4339, 56511, 56915],\n", - " 145: [2912, 1617, 47, 628, 50794, 1089, 1213, 4210, 3476, 4034],\n", - " 148: [5653, 1227, 3681, 3365, 8618, 1276, 7894, 1304, 4329, 2921],\n", - " 149: [1953, 33437, 26989, 7007, 6, 3275, 4011, 1473, 3184, 2023],\n", - " 150: [2313, 5995, 1193, 923, 30812, 235, 1094, 1183, 920, 1960],\n", - " 151: [7080, 1256, 914, 909, 1235, 955, 910, 6297, 950, 7835],\n", - " 152: [2912, 1953, 1249, 7981, 4210, 42632, 27397, 4383, 1248, 3476],\n", - " 153: [1206, 1089, 50, 32587, 3275, 3020, 1805, 1213, 3863, 1729],\n", - " 154: [1235, 1658, 2580, 2395, 3210, 4467, 7361, 543, 4027, 2371],\n", - " 155: [1784, 21, 2580, 1658, 1747, 1235, 1230, 543, 4011, 1101],\n", - " 156: [587, 224, 2291, 2065, 1265, 337, 4014, 2125, 168, 5673],\n", - " 157: [4242, 2438, 3227, 64327, 8330, 5416, 43853, 5553, 1432, 5566],\n", - " 158: [7044, 1053, 7442, 4410, 41617, 48142, 1805, 4086, 4776, 2764],\n", - " 159: [1304, 3365, 7218, 1254, 266, 7072, 8618, 3873, 1209, 7897],\n", - " 160: [2450, 61818, 2625, 26950, 4044, 861, 2835, 2094, 990, 547],\n", - " 161: [150, 11, 2115, 1721, 2396, 7311, 6385, 356, 168, 1231],\n", - " 162: [2761, 1127, 2003, 3471, 1200, 2161, 1270, 2826, 34, 2528],\n", - " 163: [7160, 2858, 5878, 55444, 1094, 5673, 3504, 1784, 7044, 290],\n", - " 164: [3204, 2826, 2527, 1690, 2529, 2021, 7481, 6959, 1544, 27618],\n", - " 165: [2468, 1307, 543, 339, 539, 367, 5452, 2125, 3259, 4571],\n", - " 166: [349, 377, 50794, 165, 2912, 95, 3256, 380, 1953, 1208],\n", - " 167: [6297, 44022, 1784, 8866, 6753, 3361, 37729, 5989, 2138, 8961],\n", - " 168: [4529, 26527, 1784, 4804, 2223, 7395, 3358, 4027, 3210, 4341],\n", - " 169: [543, 1091, 3752, 532, 7367, 1923, 367, 1658, 3948, 784],\n", - " 170: [27831, 3275, 51255, 1089, 532, 38061, 2723, 4415, 4834, 59594],\n", - " 171: [3210, 1784, 1968, 3275, 4027, 2542, 2580, 1658, 52973, 3168],\n", - " 172: [1036, 1370, 377, 1240, 733, 786, 1200, 316, 780, 3578],\n", - " 173: [5944, 1373, 2393, 1909, 7812, 7810, 3175, 2681, 4941, 5785],\n", - " 174: [1235, 1658, 2961, 2912, 5673, 4529, 26527, 1784, 970, 7044],\n", - " 175: [6197, 7068, 5056, 6842, 3741, 7587, 8199, 7123, 26122, 25954],\n", - " 176: [377, 349, 1610, 1036, 2912, 1240, 480, 733, 1214, 780],\n", - " 177: [4027, 3362, 1213, 1784, 858, 1358, 923, 3100, 7160, 1276],\n", - " 178: [1183, 3100, 1959, 6947, 1242, 7162, 3386, 920, 475, 1225],\n", - " 179: [1245, 1953, 3683, 4034, 2912, 7135, 1912, 319, 6796, 48516],\n", - " 180: [3893, 50, 50792, 1912, 1883, 1784, 3362, 1658, 8533, 7044],\n", - " 182: [44022, 8961, 32031, 8865, 42015, 2761, 31685, 34332, 45431, 51575],\n", - " 183: [1161, 2324, 47306, 8338, 1276, 5995, 4349, 3741, 1263, 1213],\n", - " 184: [1276, 3100, 1213, 1084, 3362, 1953, 1263, 1304, 1090, 858],\n", - " 185: [912, 1721, 899, 914, 920, 1947, 919, 356, 1230, 587],\n", - " 186: [2389, 3863, 103, 7001, 2764, 4383, 1625, 1912, 5938, 2209],\n", - " 187: [587, 1265, 1101, 1307, 2125, 1784, 1777, 3259, 4621, 1727],\n", - " 188: [838, 2396, 1183, 4246, 1784, 40629, 7215, 3079, 7579, 1721],\n", - " 189: [1240, 1214, 1200, 480, 1387, 2529, 316, 5445, 1036, 1690],\n", - " 190: [57640, 60074, 533, 1377, 54272, 34332, 60040, 3438, 51077, 51939],\n", - " 191: [1136, 5673, 5541, 1235, 6807, 2580, 3671, 1784, 50792, 3037],\n", - " 192: [5291, 2074, 7700, 26231, 3168, 3741, 6023, 3091, 1173, 3160],\n", - " 193: [8094, 7007, 8183, 1264, 3269, 3685, 2950, 53887, 4956, 5553],\n", - " 194: [2587, 3184, 1473, 43558, 4242, 5027, 1432, 1112, 8927, 438],\n", - " 195: [928, 1276, 3435, 922, 923, 1161, 1253, 3741, 1263, 1208],\n", - " 196: [6558, 2369, 54978, 52227, 2248, 26509, 3688, 5706, 1513, 5553],\n", - " 197: [7834, 4956, 1235, 7831, 955, 543, 7835, 3210, 61071, 1923],\n", - " 198: [3476, 2594, 6184, 319, 7044, 4553, 50792, 8950, 6902, 39381],\n", - " 199: [1036, 1339, 1214, 349, 1387, 480, 1610, 1240, 1200, 2366],\n", - " 200: [3489, 588, 4306, 364, 2804, 5452, 44022, 2161, 5444, 1022],\n", - " 201: [3556, 64957, 5992, 3186, 4308, 5673, 6620, 27721, 2313, 5225],\n", - " 202: [1959, 912, 7215, 4464, 1183, 3100, 1035, 2067, 1925, 1250],\n", - " 203: [7369, 2053, 36708, 8974, 5452, 3033, 44022, 34332, 442, 420],\n", - " 204: [2396, 4027, 1784, 3100, 1208, 1953, 920, 1094, 2071, 110],\n", - " 205: [1213, 1263, 3365, 2529, 3168, 3435, 4998, 1253, 2912, 7076],\n", - " 206: [1250, 1927, 1939, 110, 590, 1287, 920, 1925, 1262, 1959],\n", - " 207: [33649, 2333, 1821, 4555, 1879, 4216, 685, 2029, 4342, 2908],\n", - " 208: [1432, 3184, 1473, 4026, 6387, 876, 415, 8634, 2438, 64327],\n", - " 209: [33649, 51094, 27826, 8918, 4555, 3976, 3975, 6200, 1622, 6833],\n", - " 210: [5952, 2826, 2116, 2987, 260, 55995, 3997, 8961, 2161, 31660],\n", - " 211: [920, 1250, 909, 923, 919, 1945, 1090, 1084, 1204, 1263],\n", - " 212: [7112, 5317, 6917, 2611, 5050, 2619, 873, 5044, 6940, 5037],\n", - " 213: [1959, 1784, 3100, 1183, 356, 1193, 1272, 912, 1953, 1950],\n", - " 214: [33646, 3361, 26566, 1883, 50792, 6188, 532, 3861, 4085, 58839],\n", - " 215: [5945, 47099, 48783, 50068, 58303, 47423, 50274, 45880, 58047, 6760],\n", - " 216: [539, 11, 2671, 357, 186, 168, 1894, 42007, 1777, 1784],\n", - " 217: [2671, 8969, 39, 838, 357, 7, 5299, 2581, 3270, 36525],\n", - " 218: [4529, 26527, 1784, 7160, 235, 3100, 7044, 34437, 5673, 8529],\n", - " 219: [909, 1230, 1947, 898, 7080, 905, 955, 3475, 1945, 3307],\n", - " 220: [1266, 1209, 6428, 7894, 7218, 266, 5440, 1201, 3494, 4327],\n", - " 221: [1580, 2987, 3471, 1784, 2115, 5881, 1127, 1091, 1391, 2021],\n", - " 222: [33437, 2490, 54997, 6185, 8963, 27839, 36529, 50, 53972, 3275],\n", - " 223: [5065, 436, 3800, 712, 5424, 39703, 5161, 49528, 1264, 4390],\n", - " 224: [7007, 54978, 3269, 5553, 543, 52227, 53887, 27706, 64327, 3227],\n", - " 225: [8879, 7215, 7044, 4969, 897, 6101, 2764, 5867, 5008, 6852],\n", - " 226: [3210, 216, 6188, 2580, 1784, 5673, 8641, 1658, 333, 1091],\n", - " 227: [2223, 26527, 4529, 8927, 4635, 438, 27695, 1112, 3184, 1473],\n", - " 228: [3175, 34520, 1580, 2683, 1101, 2723, 1091, 7048, 1544, 5541],\n", - " 229: [3275, 51575, 4262, 7004, 367, 6185, 2580, 163, 7381, 7007],\n", - " 230: [1093, 3060, 55444, 6430, 1380, 33677, 5508, 32591, 8958, 7484],\n", - " 231: [5049, 3710, 4673, 7007, 5027, 2002, 2163, 861, 5370, 8634],\n", - " 232: [1208, 5010, 2529, 2023, 1276, 1953, 3468, 5464, 2871, 1262],\n", - " 234: [296, 3476, 1094, 1213, 6, 8950, 5291, 2912, 3020, 7044],\n", - " 235: [1249, 6, 2529, 1953, 2912, 377, 8665, 349, 3020, 380],\n", - " 236: [1784, 1953, 2871, 2023, 3362, 1213, 1912, 5027, 4085, 6993],\n", - " 237: [51575, 5621, 44022, 4956, 6317, 4818, 2880, 2879, 59103, 7004],\n", - " 238: [154, 6003, 6440, 1173, 5792, 509, 319, 3556, 7361, 1235],\n", - " 239: [260, 377, 1387, 1036, 1210, 2115, 1240, 349, 480, 1291],\n", - " 241: [466, 532, 2723, 1923, 5541, 5500, 3752, 3760, 344, 2791],\n", - " 242: [2268, 58025, 1573, 6879, 377, 3386, 21, 165, 454, 1729],\n", - " 243: [3168, 2186, 928, 903, 3741, 319, 908, 1248, 2076, 2912],\n", - " 244: [3100, 920, 1250, 1959, 110, 1084, 1090, 4349, 356, 909],\n", - " 245: [8973, 26599, 5617, 7034, 27727, 6620, 7486, 1190, 6385, 6538],\n", - " 246: [3275, 1784, 21, 2580, 367, 7367, 6957, 2723, 7381, 532],\n", - " 247: [1784, 3259, 1393, 1883, 1597, 2396, 2764, 3257, 3386, 7149],\n", - " 248: [1953, 1206, 1617, 319, 3504, 1263, 3020, 2912, 1213, 2729],\n", - " 249: [7891, 53953, 6120, 7001, 31270, 27402, 26492, 32213, 53752, 4196],\n", - " 250: [4280, 7215, 7046, 1408, 8643, 1496, 6297, 4464, 1019, 4349],\n", - " 251: [1373, 2393, 5944, 2094, 329, 1909, 4121, 3175, 4941, 3827],\n", - " 252: [356, 940, 1035, 1198, 110, 909, 7720, 920, 1265, 1784],\n", - " 253: [3257, 2912, 49007, 1883, 1304, 6185, 2764, 7438, 7007, 5027],\n", - " 254: [2528, 1129, 1690, 6645, 198, 2529, 2009, 5046, 1748, 3204],\n", - " 255: [1784, 539, 1393, 11, 2671, 5299, 3259, 236, 1101, 440],\n", - " 256: [1784, 532, 2912, 1953, 4148, 1193, 7160, 2396, 7347, 2371],\n", - " 257: [2912, 1276, 2871, 3100, 6, 377, 7056, 1617, 5423, 1262],\n", - " 258: [380, 33679, 95, 377, 2947, 3623, 165, 1370, 648, 3204],\n", - " 259: [3037, 6297, 1081, 1259, 4085, 5673, 1, 7247, 3307, 61071],\n", - " 260: [1690, 5445, 1274, 1387, 2529, 2916, 2527, 2985, 3204, 2021],\n", - " 261: [2529, 5445, 1214, 1240, 3204, 6979, 1301, 2021, 541, 6645],\n", - " 262: [31660, 8253, 5618, 7577, 4294, 7064, 7067, 1199, 2161, 551],\n", - " 263: [34332, 50792, 2723, 1091, 1616, 4306, 7007, 1573, 8636, 7381],\n", - " 264: [3270, 5299, 2671, 1784, 8969, 339, 468, 852, 4246, 11],\n", - " 265: [1427, 26746, 8593, 7040, 60237, 2540, 64231, 6280, 7031, 5252],\n", - " 266: [1224, 5686, 5380, 42015, 970, 3668, 1059, 1883, 17, 8643],\n", - " 267: [1263, 1953, 1161, 1250, 1276, 3476, 6787, 3504, 4349, 1693],\n", - " 268: [1544, 2001, 442, 1918, 1573, 2826, 163, 3204, 1580, 2002],\n", - " 269: [5452, 2080, 2054, 4306, 64652, 6559, 258, 42734, 1022, 7369],\n", - " 270: [1196, 1198, 2115, 1291, 33493, 316, 2628, 5378, 377, 1200],\n", - " 271: [1690, 6882, 2662, 208, 26513, 5881, 2722, 63433, 3699, 32239],\n", - " 272: [27706, 1213, 3535, 1193, 3342, 2313, 6003, 5995, 3148, 5690],\n", - " 273: [316, 780, 1616, 5445, 208, 1917, 1580, 1876, 1690, 7007],\n", - " 274: [6750, 6183, 7835, 7055, 3606, 5742, 7334, 7049, 6700, 7132],\n", - " 275: [1276, 7080, 1084, 1254, 912, 920, 1953, 2067, 969, 1304],\n", - " 276: [38061, 51255, 51709, 2723, 532, 42015, 37733, 1805, 5945, 44195],\n", - " 277: [1198, 260, 377, 1200, 1387, 1210, 589, 1240, 1339, 2987],\n", - " 278: [6344, 3194, 3874, 4529, 26527, 7044, 61071, 4964, 5499, 8503],\n", - " 279: [7044, 49932, 2594, 1094, 4848, 6440, 5673, 7460, 1658, 64957],\n", - " 280: [586, 7395, 5945, 7247, 6297, 1073, 3037, 42015, 837, 1784],\n", - " 281: [6584, 532, 7007, 2371, 6993, 4467, 1617, 3685, 2912, 1321],\n", - " 282: [1784, 587, 50792, 1573, 5693, 1380, 4027, 3259, 3481, 1721],\n", - " 285: [3429, 1235, 2065, 4294, 1, 4306, 7834, 2291, 3911, 1079],\n", - " 286: [6979, 3204, 1690, 5903, 198, 5445, 43928, 5046, 5881, 1129],\n", - " 287: [1090, 1287, 1208, 3578, 3100, 1953, 1276, 2728, 1250, 593],\n", - " 288: [56915, 2045, 1595, 8850, 1551, 8534, 32062, 7166, 3647, 6557],\n", - " 289: [48696, 48738, 44204, 39381, 7445, 57669, 47423, 48142, 7044, 54997],\n", - " 290: [1220, 6377, 2987, 4306, 32031, 377, 2804, 40339, 558, 44022],\n", - " 291: [1950, 1942, 1953, 920, 3504, 1263, 3095, 1254, 1213, 1276],\n", - " 292: [40339, 5218, 45074, 44022, 52287, 47264, 2141, 4016, 1881, 558],\n", - " 293: [1036, 3386, 2912, 517, 1339, 1213, 733, 377, 1953, 6],\n", - " 294: [4034, 47044, 27831, 1658, 6003, 44761, 38061, 2952, 319, 6503],\n", - " 295: [7215, 1646, 7247, 8923, 2138, 4174, 8147, 1019, 26265, 2366],\n", - " 296: [1784, 1693, 6620, 1953, 1358, 110, 33437, 36535, 3100, 5686],\n", - " 297: [2788, 7048, 36708, 3752, 1091, 51575, 3033, 2723, 2587, 466],\n", - " 298: [27660, 5072, 7099, 8426, 6350, 8253, 31184, 5618, 4850, 31660],\n", - " 300: [3360, 1957, 3361, 5644, 6565, 914, 3098, 1035, 1925, 477],\n", - " 301: [1784, 1805, 1617, 1747, 6787, 1393, 1658, 5989, 532, 6003],\n", - " 302: [7007, 2133, 349, 6558, 1610, 3763, 377, 2002, 415, 8634],\n", - " 303: [1208, 1206, 1884, 2010, 6184, 4467, 1301, 1161, 1235, 1254],\n", - " 304: [5015, 2908, 7303, 3152, 3111, 1950, 1958, 7160, 7061, 1185],\n", - " 305: [7247, 2804, 1073, 8643, 1028, 6798, 2087, 5452, 2161, 3489],\n", - " 306: [1968, 2133, 3210, 1513, 1380, 3552, 1265, 1257, 1923, 1288],\n", - " 307: [1208, 593, 1090, 1953, 1253, 1250, 2871, 7387, 1254, 2648],\n", - " 308: [586, 3988, 2804, 1073, 2054, 7046, 2161, 30793, 2, 837],\n", - " 309: [50792, 1784, 5693, 1883, 1721, 1380, 3275, 587, 4027, 7007],\n", - " 310: [42015, 59594, 45, 51903, 4880, 532, 50792, 4776, 51255, 6056],\n", - " 311: [1727, 1721, 50792, 1883, 11, 3259, 367, 5452, 1101, 1408],\n", - " 312: [7044, 2076, 49932, 5105, 1104, 3741, 3435, 7700, 3788, 3730],\n", - " 313: [912, 1784, 1235, 4027, 1247, 1358, 920, 969, 923, 5673],\n", - " 314: [1235, 4914, 955, 6650, 6783, 5792, 1202, 2729, 951, 1162],\n", - " 315: [54978, 6815, 1805, 53887, 1264, 26803, 3168, 26199, 1658, 4390],\n", - " 316: [3227, 5416, 2438, 64327, 8330, 1432, 3184, 1473, 438, 8927],\n", - " 317: [5445, 1748, 1214, 32587, 2529, 1240, 913, 1387, 2021, 589],\n", - " 318: [2161, 2045, 56915, 47124, 6557, 421, 2138, 36397, 53121, 3412],\n", - " 319: [26513, 2528, 5944, 6645, 6979, 8644, 208, 3300, 2808, 2916],\n", - " 320: [1690, 3300, 6645, 8644, 1129, 2662, 3204, 1590, 5502, 2117],\n", - " 321: [1200, 1240, 1214, 1690, 5445, 780, 1580, 3471, 377, 3204],\n", - " 322: [1801, 47725, 1658, 6003, 337, 36477, 48082, 1073, 38798, 6385],\n", - " 323: [909, 1084, 7080, 2936, 920, 25757, 1256, 3435, 1953, 900],\n", - " 324: [1265, 1784, 30810, 7361, 1883, 1199, 2594, 8784, 1658, 543],\n", - " 325: [3020, 7981, 1249, 27831, 6185, 62849, 36529, 1953, 33437, 4383],\n", - " 326: [8400, 4759, 7037, 7567, 583, 582, 2684, 570, 569, 3537],\n", - " 327: [1883, 26422, 4529, 26527, 5172, 8183, 42015, 5970, 5673, 276],\n", - " 328: [5445, 1690, 480, 8644, 4370, 1127, 2528, 1210, 3471, 2529],\n", - " 329: [3836, 50792, 3716, 1378, 3184, 1473, 7007, 27695, 8927, 438],\n", - " 330: [2133, 1198, 2011, 2406, 2987, 4564, 1259, 4799, 1097, 2716],\n", - " 331: [2997, 4878, 1265, 1235, 1199, 3556, 48082, 1658, 1921, 4873],\n", - " 332: [1101, 1580, 1784, 1544, 2406, 11, 5989, 51575, 4306, 34332],\n", - " 333: [3476, 7123, 7044, 3342, 1161, 1208, 4475, 2427, 5686, 2594],\n", - " 334: [6558, 2369, 2133, 5500, 1541, 4621, 8643, 6999, 33145, 3210],\n", - " 335: [1784, 6003, 2997, 38061, 6385, 2858, 7367, 356, 1225, 1245],\n", - " 336: [42007, 539, 2671, 236, 186, 3422, 339, 2100, 440, 1307],\n", - " 337: [1617, 2858, 2959, 2912, 1259, 628, 1784, 1953, 50, 7044],\n", - " 338: [1953, 32587, 1036, 1213, 50, 858, 2912, 923, 1276, 6],\n", - " 339: [1036, 377, 733, 7007, 5027, 1370, 37477, 1610, 6, 2490],\n", - " 340: [5673, 1235, 5299, 1784, 1247, 2671, 1244, 2065, 1639, 2125],\n", - " 341: [5051, 3320, 4776, 7044, 8598, 1873, 3194, 25, 6641, 5673],\n", - " 342: [3275, 4262, 1953, 5464, 1221, 1617, 6, 1213, 5989, 1784],\n", - " 343: [377, 3204, 780, 1036, 1610, 1240, 1200, 1127, 3256, 733],\n", - " 344: [1276, 1250, 1953, 1084, 2728, 1931, 1263, 1254, 1950, 1262],\n", - " 345: [2161, 2987, 2046, 2193, 2140, 2826, 45722, 4275, 2366, 558],\n", - " 346: [1784, 7044, 2912, 1721, 8783, 2594, 2764, 928, 7215, 3476],\n", - " 347: [2161, 5038, 2087, 2116, 2005, 31660, 551, 558, 2054, 7046],\n", - " 348: [7160, 1727, 2396, 20, 7701, 31, 4326, 1883, 7155, 8533],\n", - " 349: [8643, 11, 7247, 5452, 30816, 56167, 8937, 4564, 58025, 3259],\n", - " 350: [1247, 1244, 5673, 3307, 955, 2065, 909, 912, 235, 919],\n", - " 351: [3521, 1202, 6783, 4914, 7135, 1162, 3819, 5673, 6581, 5792],\n", - " 352: [3259, 974, 1784, 539, 339, 440, 3358, 4305, 50802, 6155],\n", - " 353: [32587, 2912, 1953, 1089, 3275, 6185, 1036, 1617, 50794, 7438],\n", - " 354: [8533, 1912, 7162, 8373, 7160, 8948, 1711, 38061, 38886, 1784],\n", - " 355: [2912, 1953, 6, 1089, 1213, 50794, 2529, 1036, 1276, 3578],\n", - " 356: [11, 8943, 1784, 2396, 2020, 5673, 1224, 8643, 38499, 1095],\n", - " 357: [1723, 59339, 37846, 657, 1794, 6897, 1825, 4070, 2386, 26360],\n", - " 358: [1690, 33493, 2288, 1127, 1129, 5445, 2393, 5944, 2021, 1320],\n", - " 359: [1464, 5673, 1658, 1784, 6385, 3067, 5617, 6953, 48082, 7044],\n", - " 360: [2396, 1224, 2690, 1277, 1542, 3079, 497, 31694, 39, 40629],\n", - " 361: [1264, 7698, 9011, 1254, 7831, 5854, 7044, 5553, 6847, 903],\n", - " 362: [1748, 2594, 3476, 1625, 2858, 2997, 32587, 1199, 8950, 2291],\n", - " 363: [1089, 3275, 1036, 1617, 50, 1206, 165, 1213, 2529, 1729],\n", - " 364: [4262, 3275, 1617, 1213, 1693, 858, 6, 16, 2912, 48516],\n", - " 365: [6424, 27797, 532, 4242, 4602, 1639, 1658, 7149, 1484, 5553],\n", - " 366: [3087, 2683, 2423, 344, 2804, 2723, 367, 36708, 34332, 3988],\n", - " 367: [1925, 4326, 3100, 920, 31116, 7303, 897, 6787, 3386, 1272],\n", - " 368: [4956, 6297, 3039, 8916, 4085, 8528, 246, 6593, 33639, 1641],\n", - " 369: [1036, 1089, 50, 1617, 37477, 2490, 6, 5027, 7438, 2912],\n", - " 370: [2468, 26527, 4529, 61071, 5706, 3422, 3358, 6546, 26360, 26404],\n", - " 371: [2692, 1197, 1270, 4027, 2987, 2580, 1235, 1073, 356, 1],\n", - " 372: [260, 1200, 480, 1214, 33493, 1240, 2628, 2115, 5378, 316],\n", - " 373: [1784, 4306, 595, 1028, 356, 1197, 1380, 1235, 6297, 4027],\n", - " 375: [420, 2723, 36708, 4306, 5497, 5452, 5493, 2887, 44022, 34332],\n", - " 376: [1274, 5445, 1690, 27660, 2528, 1748, 2529, 316, 6645, 1301],\n", - " 377: [1263, 1208, 1230, 909, 1213, 912, 1235, 356, 7044, 3504],\n", - " 378: [1276, 1262, 2028, 1953, 1287, 3468, 2529, 1209, 969, 2871],\n", - " 379: [1625, 593, 1214, 377, 8950, 2912, 6, 1387, 1240, 5445],\n", - " 380: [442, 8636, 6934, 208, 3889, 2826, 34150, 5254, 2094, 1587],\n", - " 381: [3545, 7080, 1256, 909, 1947, 3424, 1250, 3507, 25757, 920],\n", - " 382: [1693, 517, 2987, 4306, 32031, 2761, 5989, 6377, 5445, 1270],\n", - " 383: [1273, 6023, 7748, 30803, 3925, 7135, 6035, 8197, 5056, 2074],\n", - " 384: [1784, 539, 4621, 1883, 1393, 1101, 543, 1727, 2100, 1307],\n", - " 385: [2396, 1104, 1225, 3386, 2132, 3507, 3504, 909, 1277, 1959],\n", - " 386: [4776, 8969, 7149, 8533, 2764, 6942, 3257, 3259, 5666, 1883],\n", - " 387: [5283, 1091, 3617, 367, 35836, 46970, 3263, 7346, 4015, 44193],\n", - " 388: [2959, 1625, 2762, 2692, 1617, 296, 1748, 3476, 2912, 3510],\n", - " 389: [5971, 8253, 26776, 7099, 27731, 26662, 37857, 31660, 5038, 2294],\n", - " 390: [6377, 1148, 38038, 2987, 44022, 2139, 2138, 2761, 32031, 1223],\n", - " 391: [1101, 11, 3259, 597, 1894, 539, 3270, 1616, 2406, 4121],\n", - " 392: [858, 1036, 3275, 4262, 1573, 1213, 5445, 1240, 2912, 733],\n", - " 393: [2764, 6185, 5027, 517, 7007, 1432, 4383, 2490, 1625, 4869],\n", - " 394: [186, 39, 2671, 3270, 587, 1784, 539, 236, 2100, 440],\n", - " 395: [1625, 1693, 2912, 6, 150, 1617, 1276, 8783, 1213, 5464],\n", - " 396: [231, 3948, 466, 3752, 4816, 344, 5541, 43919, 2791, 1091],\n", - " 397: [1053, 7094, 1683, 41617, 427, 3457, 4410, 2396, 7044, 509],\n", - " 398: [940, 2716, 1210, 1291, 2193, 2987, 2115, 2161, 7720, 7153],\n", - " 399: [21, 2133, 2580, 1968, 367, 7381, 1091, 1883, 50792, 1573],\n", - " 400: [1199, 1206, 4467, 4027, 1748, 1921, 27904, 2580, 2987, 7361],\n", - " 401: [54910, 62788, 2315, 6966, 5556, 3264, 25807, 5478, 47937, 48678],\n", - " 402: [36529, 32029, 5464, 2023, 8972, 5010, 33437, 163, 733, 2028],\n", - " 403: [1265, 1923, 4027, 3948, 6807, 2371, 1080, 4467, 1784, 367],\n", - " 404: [1240, 1036, 2366, 1200, 2529, 33679, 786, 1580, 1214, 1690],\n", - " 405: [2138, 4306, 5452, 6297, 2090, 1713, 6557, 2139, 1031, 6377],\n", - " 406: [3259, 1393, 11, 1101, 3257, 736, 380, 539, 3269, 1597],\n", - " 407: [165, 1616, 40959, 2716, 7007, 23, 8373, 648, 7367, 59369],\n", - " 408: [608, 1235, 296, 4027, 1245, 1784, 1288, 3168, 1658, 50792],\n", - " 409: [6557, 5452, 2733, 6137, 47384, 31700, 61071, 5920, 33629, 4634],\n", - " 410: [3259, 1883, 1784, 1393, 1721, 168, 3270, 6155, 5673, 2396],\n", - " 411: [5673, 8951, 1213, 308, 1476, 1953, 5954, 175, 36529, 1784],\n", - " 412: [2529, 1206, 2959, 1748, 628, 1240, 8950, 1301, 5445, 1214],\n", - " 413: [928, 903, 4914, 6650, 3435, 6783, 913, 1254, 908, 3788],\n", - " 414: [3020, 7367, 4027, 50, 1245, 6003, 33437, 3556, 1658, 4378],\n", - " 415: [2396, 5673, 1784, 5686, 6660, 3210, 4027, 7044, 1658, 42015],\n", - " 416: [1101, 1307, 1541, 21, 51575, 2100, 1091, 8968, 539, 2406],\n", - " 417: [1235, 1265, 4027, 1259, 919, 2065, 30810, 1073, 5673, 1270],\n", - " 418: [532, 6584, 6815, 3716, 7235, 7044, 3685, 1912, 3452, 20],\n", - " 419: [1960, 1293, 2728, 1287, 1927, 1263, 2067, 1408, 1262, 1250],\n", - " 420: [5673, 1784, 5989, 8533, 3897, 3037, 235, 60894, 337, 1094],\n", - " 421: [1784, 1393, 5989, 1721, 1, 337, 4027, 1265, 2987, 1101],\n", - " 422: [377, 349, 316, 1036, 2115, 5479, 1370, 1291, 1127, 165],\n", - " 424: [7088, 7700, 4422, 6660, 3091, 6982, 5147, 2927, 8338, 61967],\n", - " 425: [3275, 2580, 784, 4027, 2023, 367, 21, 4262, 1784, 858],\n", - " 426: [33493, 1301, 61818, 1374, 1274, 52281, 494, 8832, 2393, 51709],\n", - " 427: [2912, 1227, 1953, 1276, 33437, 2871, 1209, 1213, 7981, 2529],\n", - " 428: [1214, 589, 377, 1690, 480, 1387, 2529, 3204, 8810, 2288],\n", - " 429: [2764, 517, 6185, 5027, 27828, 3020, 1432, 861, 7007, 4383],\n", - " 430: [377, 47044, 517, 648, 33679, 3623, 2490, 6185, 165, 996],\n", - " 431: [2054, 2137, 2139, 44022, 661, 2138, 2080, 1025, 49647, 2116],\n", - " 432: [1805, 2764, 7160, 4776, 8600, 517, 5767, 6185, 970, 6885],\n", - " 433: [539, 5299, 2671, 236, 42007, 597, 2424, 186, 1307, 440],\n", - " 434: [1591, 34150, 31221, 442, 43928, 8636, 7845, 2722, 26513, 3879],\n", - " 435: [198, 1690, 2594, 1129, 27660, 4713, 1301, 1240, 3863, 2009],\n", - " 436: [5027, 163, 33679, 7438, 5507, 165, 6185, 32017, 2490, 59369],\n", - " 437: [1912, 7044, 6705, 36529, 3275, 1234, 1805, 6003, 3476, 2959],\n", - " 438: [1499, 4224, 1626, 4044, 5880, 1744, 6168, 547, 50445, 2835],\n", - " 439: [1263, 1784, 7745, 1725, 30812, 7160, 3194, 3100, 1213, 7080],\n", - " 440: [1953, 48516, 6, 4262, 3362, 1276, 1208, 3275, 3020, 16],\n", - " 441: [1036, 1625, 1240, 2912, 1214, 2529, 2959, 5445, 32587, 733],\n", - " 443: [2912, 1617, 50, 1953, 1089, 6, 3362, 3006, 47, 1213],\n", - " 444: [1784, 7215, 1721, 4995, 4464, 593, 3100, 587, 912, 4920],\n", - " 445: [4993, 2116, 6947, 1204, 110, 2987, 1198, 2161, 940, 3997],\n", - " 446: [1240, 1089, 2529, 32, 50, 5445, 32587, 1214, 1625, 1036],\n", - " 447: [1019, 2097, 4467, 1301, 27706, 7842, 3461, 2021, 4349, 924],\n", - " 448: [3168, 1784, 26803, 1235, 3342, 7044, 3019, 1953, 26199, 2580],\n", - " 449: [1339, 39446, 8874, 51709, 1690, 517, 7387, 2455, 1214, 3275],\n", - " 450: [798, 173, 4673, 51709, 7004, 3204, 7007, 4044, 2490, 2625],\n", - " 451: [1178, 46855, 3406, 6117, 4478, 1208, 7700, 7766, 32174, 56511],\n", - " 452: [3204, 380, 5027, 2001, 2002, 8810, 1616, 4121, 7007, 733],\n", - " 453: [235, 4014, 1176, 6660, 199, 2427, 1273, 4973, 4308, 1235],\n", - " 454: [838, 3079, 4246, 7579, 31694, 8969, 3270, 440, 8643, 11],\n", - " 455: [2058, 3386, 165, 1617, 50, 349, 3275, 3204, 377, 33166],\n", - " 456: [2594, 1805, 3863, 2455, 565, 52281, 735, 32587, 7235, 1748],\n", - " 458: [1, 6377, 8961, 4306, 1812, 8783, 27660, 32031, 1748, 1265],\n", - " 459: [3204, 1748, 2117, 2455, 2662, 1387, 53000, 5881, 43928, 27660],\n", - " 460: [377, 1036, 2912, 517, 1610, 1387, 1214, 1208, 480, 1339],\n", - " 461: [1784, 1265, 11, 4306, 5989, 6003, 4027, 543, 2396, 33004],\n", - " 462: [1207, 1953, 1276, 2268, 1784, 920, 3201, 909, 1950, 3504],\n", - " 463: [2371, 3275, 3020, 3476, 4262, 2467, 54286, 4467, 1213, 1234],\n", - " 464: [2161, 1646, 3836, 4306, 4121, 1772, 8961, 380, 51575, 2761],\n", - " 465: [3476, 3168, 7044, 48997, 48516, 7981, 42632, 7160, 48304, 36529],\n", - " 466: [1196, 260, 2011, 1200, 2987, 1240, 5378, 480, 33493, 316],\n", - " 467: [377, 1274, 2288, 1129, 2916, 2528, 3204, 2529, 442, 3300],\n", - " 468: [8970, 1185, 6003, 30812, 2291, 337, 2313, 1932, 1784, 2396],\n", - " 469: [39381, 51884, 50005, 8533, 37733, 48780, 58025, 52328, 45186, 44195],\n", - " 470: [1464, 1921, 49932, 8950, 2594, 3676, 1884, 1161, 3863, 4467],\n", - " 471: [2081, 2080, 2139, 596, 1025, 1022, 2078, 1367, 6377, 1028],\n", - " 472: [1025, 2081, 2137, 2033, 2139, 2078, 5218, 6232, 2080, 1566],\n", - " 473: [1405, 36708, 367, 3752, 2723, 34332, 7381, 5541, 2788, 1923],\n", - " 474: [2530, 8615, 61350, 5758, 8830, 2614, 6835, 3576, 3474, 49205],\n", - " 475: [4467, 319, 1206, 1235, 1321, 2010, 6584, 5867, 7387, 3863],\n", - " 476: [51709, 32031, 5881, 1690, 8865, 2761, 34150, 31696, 3745, 26513],\n", - " 477: [1953, 33166, 3020, 1208, 778, 37733, 5464, 1206, 288, 3535],\n", - " 479: [2594, 3204, 7001, 8950, 1625, 2529, 3863, 5388, 2672, 8914],\n", - " 480: [442, 377, 173, 3204, 33493, 8810, 1036, 786, 1320, 494],\n", - " 481: [2264, 175, 1597, 1912, 2764, 6708, 4776, 1658, 1784, 431],\n", - " 482: [62956, 62999, 4956, 51698, 60937, 7247, 58105, 34332, 6297, 44399],\n", - " 483: [1393, 1784, 1597, 8533, 11, 31, 1883, 6942, 3259, 2580],\n", - " 484: [50792, 4027, 1292, 21, 7701, 4621, 1784, 7444, 1573, 1380],\n", - " 485: [924, 1301, 8950, 2529, 1206, 1748, 2912, 2594, 928, 3676],\n", - " 486: [40819, 7160, 356, 2313, 6787, 40278, 7395, 33166, 527, 5989],\n", - " 487: [5673, 1784, 4027, 1235, 235, 1247, 1265, 2599, 608, 2065],\n", - " 488: [1544, 3471, 316, 1240, 1097, 1200, 2366, 1214, 377, 1580],\n", - " 489: [1927, 920, 1925, 1090, 1931, 1953, 1950, 3100, 1959, 1944],\n", - " 490: [3361, 4085, 586, 3360, 3552, 1777, 2133, 5139, 3254, 3255],\n", - " 491: [16, 6, 1953, 3006, 3275, 3735, 48516, 50, 1084, 7160],\n", - " 492: [920, 1263, 1222, 858, 3100, 1953, 1084, 1204, 110, 3468],\n", - " 493: [4776, 58303, 25, 7044, 56001, 3194, 2427, 6552, 8273, 56607],\n", - " 494: [7235, 2912, 4210, 319, 1805, 628, 27317, 3863, 8507, 1036],\n", - " 495: [1784, 8643, 3259, 7215, 4464, 2804, 31, 3526, 4280, 3210],\n", - " 496: [1729, 1213, 50, 2912, 3275, 1617, 2959, 7438, 2542, 32587],\n", - " 497: [6, 3020, 1953, 50, 3535, 1199, 1213, 2023, 3201, 4467],\n", - " 498: [11, 1235, 969, 2804, 7215, 1784, 3210, 5673, 3504, 1259],\n", - " 499: [1304, 1235, 1276, 3168, 47306, 6783, 1213, 235, 923, 2303],\n", - " 500: [3435, 3334, 913, 8044, 7223, 942, 7216, 6047, 2182, 7217],\n", - " 501: [494, 349, 2115, 165, 3256, 836, 1544, 733, 50445, 163],\n", - " 502: [1784, 50792, 367, 8373, 3210, 970, 224, 2316, 8643, 31],\n", - " 503: [33437, 44022, 54272, 8917, 32596, 3752, 380, 42015, 2723, 8640],\n", - " 504: [2125, 3270, 2470, 1307, 2671, 1088, 5299, 2245, 852, 1777],\n", - " 505: [1721, 50792, 1784, 1573, 1249, 1616, 2316, 2912, 31660, 5693],\n", - " 506: [31804, 103, 2455, 170, 2662, 2413, 3204, 5881, 2793, 1676],\n", - " 507: [7386, 3130, 6798, 6297, 7160, 2467, 1883, 8643, 3386, 26422],\n", - " 508: [1214, 589, 1240, 260, 480, 377, 1036, 8810, 2366, 1210],\n", - " 509: [59387, 48082, 53161, 55814, 47610, 54259, 46976, 57464, 61240, 58047],\n", - " 510: [1784, 1393, 11, 1721, 1959, 1183, 2396, 920, 539, 7162],\n", - " 511: [3257, 45412, 63772, 54978, 52227, 3705, 26989, 3259, 26803, 3418],\n", - " 512: [2732, 2927, 6660, 7748, 30803, 7088, 8197, 5147, 4194, 1211],\n", - " 513: [5970, 657, 133, 3571, 61941, 3381, 6262, 26113, 61862, 4759],\n", - " 515: [903, 1267, 930, 1254, 2067, 2186, 1086, 1212, 913, 922],\n", - " 516: [1690, 2662, 2288, 3300, 2808, 1909, 5459, 2722, 3959, 1320],\n", - " 517: [6977, 2912, 27828, 33132, 8750, 5138, 33905, 6240, 6585, 7893],\n", - " 518: [300, 36517, 36529, 3504, 1784, 337, 2291, 5954, 1199, 3186],\n", - " 520: [1235, 1784, 1230, 858, 4027, 3168, 1953, 1276, 3210, 3504],\n", - " 521: [2912, 1625, 33437, 1617, 517, 6185, 2058, 2764, 5423, 32029],\n", - " 522: [3468, 1953, 2871, 3362, 1276, 908, 4329, 1254, 3168, 909],\n", - " 523: [1784, 3504, 6993, 4027, 5673, 1244, 1235, 909, 3685, 471],\n", - " 524: [6787, 1193, 1207, 36517, 1213, 3504, 3006, 1950, 4033, 1784],\n", - " 525: [50794, 1036, 377, 4210, 2912, 2529, 47, 1610, 648, 4148],\n", - " 526: [3386, 6787, 1784, 150, 1393, 11, 3100, 5989, 349, 2268],\n", - " 527: [4306, 2987, 6377, 1282, 2161, 595, 594, 44022, 4886, 551],\n", - " 529: [1199, 2997, 3168, 149, 1235, 2858, 1265, 6003, 30810, 27706],\n", - " 530: [49007, 587, 3269, 48943, 1721, 8583, 5499, 5524, 8503, 51314],\n", - " 531: [517, 7445, 3204, 2764, 26488, 27828, 3386, 7007, 4238, 26746],\n", - " 532: [1212, 7044, 3741, 6440, 1464, 3788, 149, 26231, 49932, 928],\n", - " 533: [57640, 60074, 62956, 60161, 61160, 60069, 34332, 60937, 54278, 45732],\n", - " 534: [1625, 50792, 733, 49278, 3275, 42015, 161, 2490, 7007, 4776],\n", - " 535: [2732, 3645, 7700, 6035, 5333, 7948, 7238, 6666, 2074, 7067],\n", - " 536: [1198, 1721, 1196, 3100, 1259, 316, 1204, 940, 110, 3578],\n", - " 537: [3386, 527, 150, 1959, 1090, 3100, 3006, 110, 356, 6787],\n", - " 539: [1784, 1393, 2671, 41573, 2125, 4246, 1265, 1441, 3752, 11],\n", - " 540: [1970, 4138, 7117, 62788, 54910, 4388, 1971, 3273, 5592, 5206],\n", - " 541: [52005, 49528, 60566, 54958, 59604, 47830, 26746, 1422, 6736, 8828],\n", - " 542: [969, 7215, 2871, 1784, 3100, 1035, 1287, 1959, 1950, 1953],\n", - " 543: [62999, 54272, 53460, 7247, 49274, 62956, 44022, 34332, 4016, 45517],\n", - " 544: [1729, 6, 1213, 1036, 2912, 1206, 288, 4262, 3275, 32587],\n", - " 545: [1091, 2699, 2987, 4275, 442, 1049, 44022, 5459, 4306, 2490],\n", - " 546: [2587, 1473, 3184, 43558, 46970, 3716, 7004, 20, 4613, 4085],\n", - " 547: [95, 3386, 1616, 165, 3204, 6503, 7007, 1036, 1573, 733],\n", - " 548: [51575, 367, 2723, 51255, 3275, 6503, 7007, 555, 7381, 1500],\n", - " 549: [2912, 1617, 1036, 377, 517, 47, 50, 2371, 2268, 1610],\n", - " 550: [1292, 3307, 2291, 2871, 2936, 1084, 3100, 1784, 1263, 928],\n", - " 551: [3089, 923, 235, 920, 928, 5068, 5995, 7160, 1094, 47306],\n", - " 552: [3210, 31, 3071, 62, 2729, 154, 5792, 4027, 319, 7451],\n", - " 553: [4011, 5541, 5027, 2001, 7007, 3275, 532, 37477, 2490, 21],\n", - " 554: [3168, 319, 3741, 6783, 1202, 2427, 154, 1916, 7700, 6184],\n", - " 555: [4956, 5673, 3925, 3307, 1263, 97, 48082, 1253, 5945, 1161],\n", - " 556: [6297, 7247, 6724, 50796, 5452, 26265, 6798, 1031, 26422, 2163],\n", - " 557: [1912, 27797, 3685, 50949, 3876, 44058, 4879, 478, 403, 2484],\n", - " 558: [49130, 62155, 54997, 42015, 56941, 58047, 52460, 1408, 8730, 40278],\n", - " 559: [7001, 3204, 7007, 2529, 1321, 49528, 377, 2389, 8501, 1214],\n", - " 560: [3740, 7720, 6581, 5026, 4467, 7235, 2483, 1215, 6815, 7482],\n", - " 561: [592, 1377, 27660, 43928, 839, 2641, 34150, 2640, 57640, 5254],\n", - " 562: [3210, 33145, 1597, 6344, 7160, 7149, 3259, 68, 6385, 1784],\n", - " 563: [1784, 3362, 1358, 7160, 858, 3100, 3168, 4027, 923, 1084],\n", - " 564: [5881, 2594, 1625, 8533, 37382, 4776, 161, 58025, 1784, 3994],\n", - " 565: [5541, 2470, 2723, 34332, 2133, 466, 36708, 380, 4306, 44022],\n", - " 566: [1784, 5673, 3504, 2324, 356, 7215, 6787, 3201, 1235, 1721],\n", - " 567: [2396, 2580, 42015, 1224, 3481, 38499, 52973, 4776, 5666, 6942],\n", - " 568: [2161, 34, 2987, 1049, 4306, 1101, 8961, 52287, 55995, 588],\n", - " 569: [377, 2912, 1036, 1953, 1610, 6, 2529, 2268, 1214, 1208],\n", - " 570: [1276, 858, 1784, 6796, 1084, 3100, 5989, 1263, 4027, 1221],\n", - " 571: [1690, 1214, 2987, 2716, 1301, 1580, 1127, 1909, 480, 2393],\n", - " 572: [26788, 532, 1784, 6815, 26199, 26803, 2163, 4529, 26527, 4280],\n", - " 573: [5673, 3148, 7215, 3168, 34437, 3481, 1953, 7311, 1247, 2729],\n", - " 574: [3745, 2987, 40339, 2105, 44022, 4306, 1544, 52287, 8961, 6377],\n", - " 575: [43853, 5424, 712, 39703, 3800, 4869, 5416, 3227, 2438, 64327],\n", - " 576: [1953, 858, 3100, 1263, 1084, 912, 1721, 1262, 2023, 1276],\n", - " 577: [4085, 5049, 4673, 5027, 3710, 2381, 3868, 7102, 7004, 37477],\n", - " 578: [2625, 8371, 27618, 2826, 1544, 61818, 60514, 6959, 61350, 160],\n", - " 579: [4306, 44022, 32031, 2161, 27706, 8961, 1, 6377, 2138, 1197],\n", - " 580: [380, 2490, 53972, 51255, 3275, 33679, 51709, 2001, 54286, 5027],\n", - " 581: [1025, 4886, 1881, 2294, 2080, 1, 2081, 2139, 6377, 2138],\n", - " 582: [1253, 922, 2936, 7080, 1256, 2648, 2186, 940, 928, 923],\n", - " 583: [1292, 319, 1676, 5867, 2912, 266, 2529, 7007, 1245, 6815],\n", - " 584: [2470, 1777, 2054, 7369, 5452, 4306, 36708, 33836, 2005, 44022],\n", - " 585: [43853, 3227, 8330, 5416, 2438, 64327, 5553, 1432, 4242, 7483],\n", - " 586: [319, 1658, 1199, 7361, 7044, 154, 5673, 1202, 6815, 5792],\n", - " 587: [1198, 1097, 33493, 5378, 2628, 2987, 1200, 2115, 3471, 3927],\n", - " 588: [5969, 8598, 3819, 1484, 4956, 27797, 7044, 5970, 5673, 911],\n", - " 589: [1249, 2912, 2529, 6283, 1625, 1748, 5445, 1690, 7007, 2021],\n", - " 590: [2115, 2987, 2003, 2717, 1270, 3175, 3471, 2133, 480, 2001],\n", - " 591: [671, 2163, 26950, 6888, 5541, 2723, 532, 4591, 420, 2717],\n", - " 592: [1249, 2819, 1213, 4262, 1729, 2912, 517, 1061, 16, 2278],\n", - " 593: [517, 6, 2912, 1036, 1617, 1625, 2058, 377, 2529, 1240],\n", - " 594: [2161, 6377, 2987, 44022, 8961, 2138, 34, 1049, 2140, 4306],\n", - " 595: [2023, 3275, 1953, 3362, 1912, 3893, 3685, 36529, 2580, 3006],\n", - " 596: [58303, 33903, 46559, 40278, 44937, 2313, 1950, 7700, 6101, 5000],\n", - " 597: [2764, 63033, 7326, 4776, 39703, 5424, 3800, 712, 3386, 60526],\n", - " 598: [3660, 6966, 3933, 3058, 4096, 407, 2900, 7245, 7952, 3918],\n", - " 599: [7080, 914, 4357, 25757, 7055, 1947, 900, 4912, 909, 6254],\n", - " 600: [1953, 1089, 2529, 750, 296, 1301, 1676, 2788, 3275, 1214],\n", - " 601: [1376, 1375, 5944, 49278, 32296, 51575, 2393, 3175, 442, 5459],\n", - " 602: [595, 4294, 2761, 6093, 588, 1, 4306, 594, 4886, 2139],\n", - " 603: [5995, 3435, 923, 912, 920, 928, 1617, 2313, 913, 1953],\n", - " 604: [861, 2587, 7004, 5621, 27735, 7381, 34332, 5541, 2001, 420],\n", - " 605: [4027, 1259, 1784, 1235, 3168, 2858, 6620, 6385, 1617, 2291],\n", - " 606: [1784, 1263, 1953, 3100, 1090, 1213, 1249, 356, 5989, 296],\n", - " 607: [2023, 32587, 3275, 1208, 110, 1953, 6, 5010, 3578, 1210],\n", - " 608: [1136, 466, 2791, 2723, 532, 231, 1278, 1080, 2163, 5541],\n", - " 609: [1784, 1721, 1959, 920, 3100, 912, 1883, 2396, 1183, 7215],\n", - " 610: [1242, 1272, 1925, 7303, 1959, 4186, 920, 1947, 7311, 1293],\n", - " 612: [420, 2470, 7004, 380, 1894, 2471, 2406, 8969, 5742, 1772],\n", - " 613: [1084, 3424, 903, 969, 1276, 2186, 2804, 2871, 1254, 3201],\n", - " 614: [1214, 589, 377, 3471, 316, 780, 1690, 3204, 5445, 1580],\n", - " 616: [2826, 1214, 1200, 1240, 1339, 3994, 5502, 8783, 1748, 45730],\n", - " 617: [2764, 517, 4869, 1597, 49007, 7445, 55603, 6714, 8093, 5553],\n", - " 618: [49651, 44761, 4011, 3275, 50792, 1304, 2542, 1249, 1953, 6708],\n", - " 619: [1690, 377, 380, 780, 480, 3527, 316, 5445, 208, 3204],\n", - " 620: [40819, 41571, 30812, 6385, 7160, 2291, 31, 2313, 45, 6620],\n", - " 621: [51698, 36397, 57504, 62956, 5038, 62999, 58105, 5069, 53460, 52287],\n", - " 622: [380, 5541, 2723, 466, 367, 2791, 1784, 2716, 1580, 1265],\n", - " 623: [4121, 7394, 6317, 4818, 8634, 62331, 2887, 558, 485, 3269],\n", - " 624: [4306, 36708, 44022, 1, 367, 8974, 1772, 4591, 8360, 3429],\n", - " 625: [3204, 349, 2947, 3638, 1240, 2524, 26398, 1610, 3256, 2527],\n", - " 627: [5452, 6714, 55603, 2723, 8927, 1112, 438, 27695, 4635, 8634],\n", - " 628: [3100, 1231, 1090, 527, 6787, 1242, 3386, 1250, 1408, 356],\n", - " 629: [1176, 2427, 1305, 5617, 3503, 3320, 34155, 5291, 8197, 1211],\n", - " 630: [2133, 367, 2406, 2716, 1727, 380, 7004, 2100, 4621, 1894],\n", - " 631: [909, 1927, 3475, 900, 1287, 1950, 3871, 926, 912, 1939],\n", - " 632: [4919, 2912, 712, 3800, 39703, 5424, 4837, 7305, 4869, 1783],\n", - " 633: [4998, 3201, 928, 3424, 7076, 2912, 3546, 3741, 1084, 3362],\n", - " 634: [27618, 4121, 990, 8371, 2722, 4434, 3175, 4638, 5944, 26513],\n", - " 635: [2082, 1777, 1013, 5103, 5452, 1641, 4341, 3361, 8643, 33646],\n", - " 636: [8533, 4033, 54997, 41571, 26614, 1249, 5010, 4901, 110, 1183],\n", - " 637: [8783, 5464, 7438, 50, 32587, 165, 37382, 2912, 517, 1805],\n", - " 638: [6055, 31090, 4606, 31104, 1781, 31107, 4609, 4615, 5535, 5534],\n", - " 639: [44022, 8961, 32031, 364, 588, 2139, 1049, 2081, 40339, 5218],\n", - " 640: [260, 1200, 5378, 2628, 2115, 1127, 2987, 1580, 316, 2011],\n", - " 641: [1240, 1200, 1580, 208, 1214, 1690, 5445, 3204, 1127, 2011],\n", - " 642: [51575, 44022, 31660, 32031, 27660, 54272, 1274, 8961, 380, 34319],\n", - " 643: [2396, 1959, 1964, 1185, 1950, 1961, 7311, 3504, 3194, 7215],\n", - " 644: [4044, 1488, 377, 5027, 7007, 990, 442, 1499, 227, 1427],\n", - " 645: [32076, 5171, 459, 26326, 48943, 3269, 2717, 7007, 7004, 1129],\n", - " 646: [4886, 4306, 1282, 2761, 6377, 2116, 2987, 27706, 27660, 1],\n", - " 647: [6264, 442, 2826, 4133, 2625, 27618, 57223, 4044, 60514, 8371],\n", - " 648: [8725, 195, 4147, 7707, 36511, 4584, 2591, 6689, 6171, 54621],\n", - " 649: [367, 7381, 1091, 1772, 3752, 7004, 7007, 1573, 51575, 2723],\n", - " 650: [27797, 2484, 5968, 403, 50949, 478, 3876, 4879, 44058, 166],\n", - " 651: [1235, 7584, 955, 27416, 3168, 52, 1230, 3504, 803, 34528],\n", - " 652: [4912, 26084, 7055, 6345, 1947, 2941, 6785, 7614, 945, 6732],\n", - " 653: [924, 1393, 1208, 1784, 3386, 150, 4995, 3006, 1876, 5881],\n", - " 654: [733, 1408, 3204, 3654, 2524, 3386, 377, 3256, 7458, 3623],\n", - " 655: [3037, 61071, 32591, 25774, 8643, 8919, 1646, 6724, 3481, 5452],\n", - " 656: [7007, 55603, 6714, 5553, 50792, 5027, 3358, 996, 2468, 1616],\n", - " 657: [6783, 47306, 7135, 1658, 2065, 1202, 1172, 3819, 3801, 1916],\n", - " 658: [1262, 5010, 40278, 527, 4033, 8977, 36529, 5995, 6947, 27397],\n", - " 659: [3476, 8950, 628, 2594, 7044, 49932, 1625, 2912, 1464, 1921],\n", - " 660: [3100, 110, 2728, 1953, 3468, 2871, 1262, 2944, 1263, 3654],\n", - " 661: [8830, 6120, 5758, 36509, 5556, 4552, 56921, 4689, 8894, 48943],\n", - " 662: [1276, 969, 6993, 954, 3424, 1084, 3504, 1253, 920, 4998],\n", - " 663: [2366, 1208, 1387, 2871, 377, 858, 1214, 940, 3654, 1276],\n", - " 664: [558, 2161, 2143, 2138, 2716, 2054, 5038, 2717, 4899, 5892],\n", - " 665: [6385, 2065, 5673, 5617, 1235, 6660, 5013, 36477, 4840, 1295],\n", - " 666: [7387, 3476, 7001, 2912, 2455, 1321, 3461, 2288, 2529, 2664],\n", - " 667: [54978, 1264, 26803, 1805, 6570, 53887, 864, 5553, 52227, 26199],\n", - " 668: [1301, 2529, 1748, 1208, 1274, 680, 1200, 1240, 541, 1690],\n", - " 669: [1387, 1200, 1214, 1097, 3471, 1198, 1240, 2987, 3578, 1580],\n", - " 670: [2138, 7160, 6297, 517, 53887, 37729, 8970, 1019, 30793, 27706],\n", - " 671: [3338, 4236, 27899, 6299, 7124, 59590, 8464, 1169, 27879, 4171],\n", - " 672: [4027, 1784, 628, 1235, 3210, 1265, 1203, 3362, 1883, 2912],\n", - " 674: [26513, 5944, 6959, 61350, 27618, 1690, 3959, 2808, 5290, 8591],\n", - " 675: [1784, 50, 2912, 7007, 3100, 50792, 1036, 733, 5989, 3275],\n", - " 676: [539, 440, 2671, 1307, 6155, 597, 42007, 5299, 3270, 2424],\n", - " 677: [1616, 165, 3527, 3204, 1370, 1036, 1573, 1580, 7007, 208],\n", - " 678: [7215, 7046, 49007, 7007, 4464, 517, 2912, 2871, 2524, 6491],\n", - " 679: [2011, 2716, 32, 1200, 3471, 1097, 2987, 2021, 5445, 1301],\n", - " 680: [733, 161, 20, 5027, 33437, 51575, 7007, 4161, 1616, 832],\n", - " 681: [2987, 3175, 316, 380, 1196, 260, 1580, 1544, 4121, 2094],\n", - " 683: [26547, 861, 5621, 6582, 7108, 53519, 4044, 50153, 6709, 4026],\n", - " 684: [1265, 2997, 2692, 1658, 48082, 4878, 4027, 5673, 4975, 1784],\n", - " 685: [1196, 4027, 296, 33493, 165, 3275, 1200, 5378, 377, 1089],\n", - " 686: [2366, 6283, 2871, 912, 1321, 3740, 7387, 1301, 940, 7056],\n", - " 688: [1208, 2028, 1263, 2944, 3654, 920, 3100, 1231, 2366, 5010],\n", - " 689: [733, 377, 836, 1616, 49278, 4344, 648, 165, 5881, 3204],\n", - " 690: [1784, 1883, 1101, 1721, 1393, 539, 168, 3259, 339, 3481],\n", - " 691: [2404, 4265, 4044, 6812, 6264, 798, 4543, 786, 442, 990],\n", - " 693: [7215, 2803, 4464, 2764, 3259, 7449, 1784, 3386, 6879, 4280],\n", - " 694: [594, 6093, 4294, 4886, 1282, 4306, 7064, 1022, 1025, 6377],\n", - " 695: [1784, 11, 8643, 224, 3130, 5989, 382, 7215, 3386, 7449],\n", - " 696: [1784, 587, 1658, 224, 1265, 48082, 3893, 532, 50792, 1307],\n", - " 697: [6714, 55603, 1432, 2438, 8330, 5416, 64327, 3227, 47937, 54978],\n", - " 698: [471, 1247, 969, 1235, 6650, 4914, 951, 1244, 3037, 6783],\n", - " 699: [1617, 4262, 7981, 1213, 33166, 3020, 1953, 1625, 33437, 2912],\n", - " 700: [27706, 53161, 5105, 3863, 29, 7123, 2291, 6184, 45730, 4754],\n", - " 701: [54978, 26803, 8634, 52227, 5553, 4956, 415, 3716, 53887, 5416],\n", - " 702: [220, 43011, 2315, 62788, 54910, 27402, 7117, 7245, 43906, 3772],\n", - " 703: [6558, 3243, 5541, 3210, 2797, 2133, 466, 4591, 5500, 1513],\n", - " 704: [8253, 31658, 1259, 1233, 527, 1262, 1208, 31660, 7153, 6385],\n", - " 705: [6, 50, 2912, 1617, 1036, 1953, 2529, 628, 377, 1214],\n", - " 706: [532, 466, 2269, 3386, 2706, 5541, 2791, 1476, 1923, 1573],\n", - " 707: [1658, 175, 5673, 6003, 7361, 1235, 1912, 5792, 6927, 5955],\n", - " 708: [5445, 1274, 6645, 1690, 3204, 2528, 2117, 1129, 2021, 1676],\n", - " 709: [377, 349, 2529, 1036, 733, 1240, 1909, 5445, 1214, 648],\n", - " 710: [1784, 356, 1265, 912, 1235, 1197, 5673, 7215, 5989, 1304],\n", - " 711: [51575, 367, 3275, 6503, 377, 555, 8961, 32587, 7438, 165],\n", - " 712: [1784, 7160, 3100, 235, 3148, 110, 1276, 1961, 1207, 27838],\n", - " 714: [1235, 1265, 5673, 199, 4014, 48082, 2731, 2065, 6268, 6620],\n", - " 715: [1953, 6, 2912, 1213, 1276, 1266, 599, 7981, 7700, 1304],\n", - " 716: [7925, 3654, 31660, 25995, 5291, 7482, 1301, 7766, 7302, 46855],\n", - " 718: [1784, 4804, 26527, 4529, 3100, 1883, 5970, 3386, 7215, 4464],\n", - " 719: [3259, 1101, 5452, 4621, 2699, 3269, 7007, 5541, 1646, 1573],\n", - " 720: [1777, 1784, 2797, 1307, 1101, 1393, 2804, 4621, 2125, 186],\n", - " 721: [2764, 5553, 7215, 3259, 5416, 8330, 64327, 2438, 3227, 2803],\n", - " 723: [1784, 2858, 6003, 224, 6385, 2987, 1693, 1208, 3168, 1225],\n", - " 724: [1235, 1784, 1307, 1230, 5673, 3481, 1265, 3358, 4014, 1380],\n", - " 725: [33145, 56060, 5172, 61071, 42015, 4529, 26527, 2369, 8643, 26113],\n", - " 726: [1953, 1254, 3006, 1276, 2912, 4034, 1084, 6796, 2268, 1208],\n", - " 727: [1784, 1393, 1101, 31, 1597, 6385, 4027, 4306, 1747, 8533],\n", - " 728: [1200, 260, 480, 316, 3471, 1214, 1097, 2529, 377, 1198],\n", - " 729: [539, 5957, 8969, 2671, 6155, 3270, 236, 3259, 357, 440],\n", - " 730: [367, 8961, 1580, 34332, 4306, 1270, 1091, 2723, 44022, 2987],\n", - " 731: [43744, 51094, 4305, 2396, 2443, 974, 6765, 50802, 3874, 6710],\n", - " 732: [9010, 59118, 27790, 4973, 1784, 40629, 38798, 47725, 36529, 7323],\n", - " 733: [5952, 2826, 316, 480, 260, 377, 1210, 6947, 1240, 1198],\n", - " 734: [3037, 7072, 25840, 3307, 47117, 969, 1646, 266, 4406, 2936],\n", - " 735: [1784, 1393, 5989, 7160, 1961, 2396, 4776, 1597, 4880, 6385],\n", - " 736: [1488, 996, 2278, 23, 6185, 5027, 33679, 163, 733, 7007],\n", - " 737: [5445, 3204, 3623, 292, 1616, 1690, 165, 1129, 1240, 2490],\n", - " 738: [3204, 7007, 1129, 1616, 798, 442, 517, 2021, 2002, 2407],\n", - " 739: [1036, 1240, 3204, 1214, 648, 1200, 7007, 3623, 3578, 33437],\n", - " 740: [1276, 1213, 912, 1953, 1084, 913, 1250, 920, 1950, 1254],\n", - " 741: [3275, 1784, 40959, 31696, 6185, 4262, 7007, 3301, 1625, 3510],\n", - " 742: [3535, 48082, 3020, 56782, 36529, 2912, 54997, 55118, 48997, 1259],\n", - " 743: [1784, 2580, 1573, 2133, 1968, 50792, 34332, 532, 8643, 586],\n", - " 744: [1263, 1950, 1959, 1254, 1944, 3504, 1293, 1927, 1953, 5060],\n", - " 745: [7048, 4085, 7834, 6957, 367, 543, 2804, 532, 586, 1091],\n", - " 746: [2871, 8533, 1784, 3836, 1408, 1721, 1101, 4956, 1597, 1287],\n", - " 748: [456, 31364, 4034, 4378, 4998, 5867, 7160, 6860, 3517, 2332],\n", - " 749: [888, 40339, 7369, 4306, 2081, 1566, 661, 8360, 2078, 49647],\n", - " 750: [1784, 1617, 1693, 1193, 1476, 6003, 1206, 50, 3168, 527],\n", - " 751: [377, 2947, 494, 3204, 3638, 1036, 733, 95, 1370, 1544],\n", - " 752: [6947, 733, 1049, 3386, 2161, 5989, 3256, 95, 517, 1610],\n", - " 753: [2529, 1301, 1214, 1200, 541, 924, 1213, 1208, 1276, 6],\n", - " 754: [27797, 61071, 7129, 4668, 32002, 2156, 2626, 26347, 6544, 8671],\n", - " 755: [531, 6297, 6660, 6724, 56915, 58105, 53161, 2291, 64957, 2138],\n", - " 756: [5015, 4326, 2396, 1947, 4464, 1962, 4478, 897, 8598, 3194],\n", - " 757: [319, 6815, 1321, 3168, 44864, 6184, 7044, 7235, 735, 3685],\n", - " 758: [1408, 4042, 1378, 3037, 1242, 7894, 7458, 6947, 303, 1204],\n", - " 759: [2011, 2133, 4467, 4306, 1265, 1, 442, 1200, 367, 32031],\n", - " 761: [2133, 2005, 8961, 51575, 4621, 44022, 4275, 2804, 2115, 34332],\n", - " 762: [1198, 1196, 4027, 940, 1210, 380, 1270, 4467, 1265, 1784],\n", - " 763: [2761, 4886, 6753, 3751, 32031, 44022, 34, 8961, 2987, 27660],\n", - " 764: [319, 1162, 5673, 2729, 5451, 1884, 1079, 6815, 4027, 5792],\n", - " 765: [3461, 3499, 4754, 5105, 53953, 3676, 4658, 27317, 26122, 3075],\n", - " 766: [1265, 1235, 471, 1304, 1784, 4027, 919, 750, 923, 235],\n", - " 767: [7124, 4304, 5670, 5101, 27884, 3582, 7350, 7256, 27899, 58084],\n", - " 768: [56003, 52885, 26840, 51037, 8370, 56145, 6760, 51709, 53000, 59387],\n", - " 769: [47274, 4681, 48584, 56748, 122, 56060, 54978, 5172, 26803, 52227],\n", - " 770: [1011, 6557, 8883, 2449, 641, 2037, 4057, 65088, 1848, 258],\n", - " 771: [33679, 1408, 49278, 3204, 2524, 3836, 6947, 161, 316, 7007],\n", - " 772: [3751, 44022, 38038, 2384, 586, 3429, 2080, 6377, 48982, 7247],\n", - " 773: [31660, 6947, 3479, 1408, 4299, 940, 3578, 1275, 733, 38294],\n", - " 774: [909, 910, 2936, 3307, 7215, 946, 1235, 2935, 1784, 1953],\n", - " 775: [39768, 3194, 63310, 32325, 3117, 8673, 32844, 1415, 4766, 60494],\n", - " 776: [909, 1959, 8459, 3504, 3100, 1950, 1953, 1254, 4999, 25941],\n", - " 777: [1301, 1214, 5881, 2529, 1206, 1253, 1208, 2366, 2021, 1748],\n", - " 780: [1219, 2160, 2648, 25755, 2529, 3476, 7001, 3461, 3551, 3535],\n", - " 781: [2291, 2065, 1235, 38061, 1784, 319, 5673, 1215, 1259, 1199],\n", - " 782: [3210, 1784, 52973, 27831, 2858, 33166, 36529, 2580, 5617, 4027],\n", - " 783: [1784, 3752, 2125, 1441, 5673, 1777, 543, 31685, 1091, 41573],\n", - " 784: [7160, 1693, 3148, 27838, 6787, 6003, 33437, 8533, 3386, 6385],\n", - " 785: [1259, 7044, 337, 1617, 6003, 517, 1961, 1206, 3148, 1784],\n", - " 786: [6185, 5445, 377, 50445, 2916, 4383, 2389, 2232, 33679, 2529],\n", - " 787: [4103, 3036, 1250, 590, 2944, 952, 8852, 3100, 5975, 1960],\n", - " 788: [31270, 6966, 58332, 382, 7001, 52281, 2455, 47937, 55282, 59604],\n", - " 789: [1784, 1207, 3147, 5673, 5989, 1961, 1721, 3252, 8970, 1393],\n", - " 790: [5673, 2065, 7941, 7136, 105, 1176, 199, 955, 6783, 2920],\n", - " 791: [2218, 3194, 7044, 4837, 1264, 49644, 8867, 5916, 5908, 8888],\n", - " 792: [1036, 6, 2912, 1693, 1625, 1617, 1276, 110, 1213, 6787],\n", - " 793: [8961, 32031, 44022, 2761, 3745, 2987, 27660, 3114, 2105, 589],\n", - " 794: [1265, 1, 2011, 3429, 2987, 2366, 1223, 3114, 745, 2761],\n", - " 795: [517, 3386, 2803, 2764, 6879, 1006, 3102, 805, 1459, 1672],\n", - " 796: [2396, 1542, 7311, 2071, 5673, 7215, 51694, 468, 59118, 40629],\n", - " 797: [4306, 6297, 4027, 44022, 8917, 1784, 3037, 1136, 54272, 1073],\n", - " 798: [5872, 51575, 61818, 60937, 4956, 62956, 7725, 37853, 1722, 51709],\n", - " 799: [517, 2871, 3386, 2912, 3100, 1387, 2524, 1610, 33437, 6870],\n", - " 800: [1912, 2542, 3275, 27831, 7701, 36529, 4027, 3716, 296, 175],\n", - " 801: [4027, 8917, 6003, 1784, 4467, 44022, 3752, 2580, 4011, 54272],\n", - " 802: [2837, 6957, 3988, 6936, 3083, 8531, 49274, 27808, 4555, 1081],\n", - " 803: [58029, 26096, 26079, 55417, 878, 4581, 877, 8691, 4604, 525],\n", - " 804: [1693, 32, 1616, 8533, 1408, 6003, 2594, 3981, 5989, 356],\n", - " 805: [380, 1616, 442, 733, 1747, 33679, 1049, 1408, 2001, 5010],\n", - " 806: [1784, 41573, 2797, 8643, 6942, 4246, 3481, 2125, 1307, 5299],\n", - " 807: [4224, 26688, 4466, 1488, 996, 26746, 4044, 5815, 377, 1626],\n", - " 808: [1777, 186, 357, 1091, 543, 3752, 33669, 39, 4447, 1639],\n", - " 809: [1301, 1748, 1274, 2009, 27660, 2529, 1214, 6283, 1206, 1240],\n", - " 810: [587, 8202, 2065, 4775, 5693, 5351, 2291, 3037, 6660, 5225],\n", - " 811: [5452, 26265, 1264, 5553, 53887, 2950, 459, 2138, 54978, 2455],\n", - " 812: [955, 1235, 1247, 25750, 31923, 7897, 6650, 969, 4914, 951],\n", - " 813: [1722, 10, 7569, 3638, 3082, 3984, 3635, 5872, 380, 2989],\n", - " 814: [6385, 1207, 2313, 47306, 1259, 2324, 41571, 235, 1276, 337],\n", - " 815: [3510, 2912, 1036, 5989, 2871, 1784, 1265, 6003, 1747, 2011],\n", - " 816: [1721, 587, 1183, 1271, 7111, 47306, 1259, 41571, 7215, 2324],\n", - " 817: [1058, 32126, 25914, 32141, 5403, 4004, 32166, 3995, 1052, 2869],\n", - " 818: [517, 2819, 43871, 8781, 59369, 3755, 4901, 349, 3020, 7445],\n", - " 819: [36529, 1220, 778, 3362, 1093, 3275, 1729, 6705, 6796, 2542],\n", - " 820: [51007, 53887, 52460, 46855, 27869, 27376, 31617, 48082, 8730, 36529],\n", - " 821: [1035, 2987, 1101, 3100, 3259, 1225, 1231, 480, 1302, 920],\n", - " 822: [5989, 912, 1617, 1784, 923, 6947, 2987, 1721, 3100, 2366],\n", - " 823: [3671, 5541, 2791, 1923, 370, 2723, 532, 3868, 4333, 6663],\n", - " 824: [3681, 3508, 26294, 2921, 6428, 7894, 26249, 4327, 6652, 8618],\n", - " 825: [1061, 4880, 2580, 50, 31, 3275, 5989, 5388, 6003, 8533],\n", - " 826: [51709, 52241, 51935, 54997, 53129, 52604, 3204, 56788, 53000, 59594],\n", - " 827: [7007, 20, 1036, 2490, 163, 996, 5027, 1370, 1573, 1488],\n", - " 828: [5027, 4121, 2407, 7047, 1100, 1129, 6078, 6812, 3701, 2021],\n", - " 829: [56060, 54978, 52, 2369, 53887, 27797, 54796, 864, 61071, 52227],\n", - " 830: [26326, 60514, 8591, 61350, 57223, 5700, 2021, 59392, 8822, 56921],\n", - " 831: [440, 2470, 1894, 3259, 3270, 33669, 5299, 2100, 1307, 1101],\n", - " 832: [2011, 2012, 316, 26513, 1356, 5445, 1200, 6537, 3175, 1375],\n", - " 833: [2987, 1210, 1196, 1097, 316, 8961, 1127, 2115, 442, 31696],\n", - " 834: [1784, 4956, 3037, 26527, 4529, 1235, 59725, 5673, 543, 3168],\n", - " 835: [970, 2764, 3194, 7215, 1912, 5673, 8598, 4919, 1873, 27797],\n", - " 836: [7007, 1432, 8373, 26746, 4869, 861, 59369, 2764, 5027, 4026],\n", - " 837: [8014, 5617, 9010, 5673, 34437, 27416, 41573, 36276, 38798, 6867],\n", - " 838: [1616, 51709, 1690, 3204, 2455, 5502, 2490, 5881, 7007, 733],\n", - " 839: [1235, 922, 1247, 1263, 928, 6783, 3435, 2729, 7080, 1784],\n", - " 840: [1784, 5673, 1658, 3685, 2912, 1953, 1912, 6815, 3168, 7135],\n", - " 841: [5944, 6645, 26513, 1690, 208, 61350, 8644, 33493, 5445, 1274],\n", - " 842: [6377, 4306, 4886, 364, 2161, 5218, 5444, 2081, 40339, 3114],\n", - " 843: [920, 1931, 1927, 900, 3871, 3475, 1939, 1226, 905, 7080],\n", - " 844: [464, 1626, 3638, 26488, 6812, 6795, 4946, 1382, 26688, 4466],\n", - " 846: [714, 2427, 1305, 1176, 1217, 3925, 8197, 1211, 25954, 1227],\n", - " 847: [165, 4224, 1626, 7007, 6213, 26746, 1382, 1370, 996, 26688],\n", - " 848: [6927, 7044, 8598, 5867, 1264, 1295, 1912, 1873, 2764, 1173],\n", - " 849: [2010, 1253, 2021, 924, 4467, 2366, 2987, 1301, 1748, 2662],\n", - " 851: [44022, 3429, 2761, 38038, 3114, 720, 32031, 745, 595, 2161],\n", - " 852: [2987, 1580, 2826, 1544, 1200, 442, 4121, 316, 1210, 3745],\n", - " 853: [5416, 8330, 64327, 2438, 3227, 4410, 54978, 26976, 583, 582],\n", - " 854: [1219, 1590, 2160, 7387, 1321, 2648, 968, 2664, 3551, 2288],\n", - " 855: [2858, 4027, 6003, 7044, 175, 1358, 1784, 5673, 3504, 1235],\n", - " 856: [2947, 33679, 517, 50445, 733, 494, 3623, 7007, 1544, 1036],\n", - " 857: [5010, 1208, 527, 1262, 1953, 1090, 349, 1387, 1276, 1198],\n", - " 859: [4011, 6807, 4467, 1080, 4027, 2371, 1784, 2580, 3275, 50],\n", - " 860: [59118, 6942, 1641, 2396, 3481, 5970, 42015, 2690, 1542, 40955],\n", - " 861: [6807, 4027, 3671, 1235, 4467, 1304, 4591, 1884, 1278, 1079],\n", - " 862: [1015, 2045, 2138, 2846, 1812, 673, 51698, 2139, 6557, 2161],\n", - " 863: [1036, 165, 4262, 2912, 1953, 6185, 2058, 48516, 7438, 3275],\n", - " 864: [318, 1259, 1784, 4027, 356, 31, 3556, 2580, 2291, 1235],\n", - " 865: [2987, 1198, 2716, 1200, 589, 8961, 377, 1097, 2761, 1214],\n", - " 866: [1235, 909, 3671, 3307, 6807, 1250, 955, 1263, 2300, 1784],\n", - " 867: [909, 1959, 1925, 1263, 946, 1084, 7080, 2936, 25941, 4999],\n", - " 868: [532, 4011, 6815, 1136, 8874, 38061, 1235, 1265, 1079, 3819],\n", - " 869: [44864, 4956, 2371, 2716, 3770, 6503, 2413, 51255, 532, 7007],\n", - " 870: [1960, 27741, 7088, 2607, 6660, 8920, 8197, 5747, 6713, 36535],\n", - " 871: [31364, 26231, 26810, 42900, 7235, 8732, 6023, 6666, 30745, 7135],\n", - " 872: [1263, 2871, 912, 1250, 1953, 1254, 858, 969, 1287, 356],\n", - " 873: [5944, 1690, 329, 5445, 2393, 208, 26513, 442, 1129, 1374],\n", - " 874: [3863, 7160, 48997, 3535, 3476, 8950, 7044, 49932, 50, 628],\n", - " 875: [8958, 1185, 1932, 1961, 2929, 475, 7160, 1207, 2396, 1357],\n", - " 876: [4085, 532, 1278, 5541, 2170, 1784, 5742, 4464, 2396, 5049],\n", - " 878: [1235, 1301, 3168, 1079, 1304, 909, 6184, 5013, 1276, 2858],\n", - " 879: [1784, 912, 909, 1230, 1953, 910, 4027, 532, 1617, 7215],\n", - " 881: [1282, 4306, 6377, 1028, 2081, 1, 2987, 1035, 1029, 596],\n", - " 882: [1091, 3752, 2723, 1784, 466, 42011, 532, 5500, 1923, 2580],\n", - " 883: [58105, 53887, 56915, 2438, 8330, 5416, 64327, 3227, 42015, 4956],\n", - " 884: [2138, 34, 2139, 2054, 2161, 2005, 364, 49647, 1025, 661],\n", - " 885: [2908, 7044, 7215, 64957, 923, 8951, 8970, 2858, 7160, 6003],\n", - " 886: [8830, 56921, 5758, 48943, 6120, 7001, 25798, 5478, 59154, 34292],\n", - " 887: [1307, 2133, 3358, 186, 1091, 3422, 543, 2470, 1894, 440],\n", - " 888: [6385, 2291, 3556, 7153, 3081, 48997, 2762, 3020, 8783, 6620],\n", - " 889: [1626, 5815, 26688, 4466, 1432, 6387, 4026, 876, 26746, 5252],\n", - " 890: [33679, 4224, 2625, 1499, 1370, 61818, 5254, 50445, 1626, 2094],\n", - " 891: [33437, 628, 36529, 8783, 1089, 1061, 6385, 1625, 7438, 2692],\n", - " 892: [1380, 2352, 3791, 3210, 5508, 3253, 2580, 1784, 4936, 3897],\n", - " 893: [4027, 1784, 2580, 2065, 1235, 40819, 1259, 337, 3168, 1245],\n", - " 894: [339, 45722, 49278, 6539, 53993, 27788, 48082, 54272, 4025, 53161],\n", - " 895: [2470, 2245, 3418, 345, 52227, 3617, 2369, 539, 236, 54978],\n", - " 896: [2291, 6385, 337, 1784, 41571, 1721, 5673, 2324, 30812, 7361],\n", - " 897: [7044, 51091, 805, 1645, 5008, 1006, 6879, 3386, 1213, 4390],\n", - " 898: [5944, 1374, 2722, 1909, 26513, 61350, 5522, 7649, 208, 4443],\n", - " 899: [65133, 7103, 7026, 1308, 6931, 6928, 1317, 6853, 6821, 6811],\n", - " 900: [1568, 31364, 7235, 3716, 6815, 478, 166, 5968, 50949, 44058],\n", - " 901: [1240, 377, 1690, 480, 260, 1274, 1196, 1127, 1210, 2987],\n", - " 902: [48385, 44195, 34542, 31689, 53894, 45928, 33154, 8917, 1827, 5670],\n", - " 903: [1196, 377, 1210, 316, 1374, 2393, 589, 33493, 2628, 329],\n", - " 904: [1272, 1293, 920, 7303, 6787, 1242, 1950, 7311, 1250, 1263],\n", - " 905: [339, 7361, 1784, 1658, 3510, 4305, 2692, 3259, 5881, 2594],\n", - " 906: [5013, 44864, 7044, 4956, 6815, 3261, 3099, 1658, 8943, 26231],\n", - " 907: [1784, 1729, 7160, 1213, 1658, 1961, 5673, 3168, 3685, 1235],\n", - " 908: [8634, 340, 3836, 5541, 5027, 4085, 7007, 25878, 1112, 4635],\n", - " 909: [6185, 2916, 3863, 377, 198, 442, 49278, 2105, 338, 6645],\n", - " 910: [6, 1953, 3476, 1263, 8950, 3362, 3020, 1625, 3006, 628],\n", - " 911: [1086, 928, 1253, 933, 904, 680, 7698, 2186, 3551, 2183],\n", - " 912: [7247, 1028, 8651, 6345, 1380, 2565, 26422, 6316, 588, 1282],\n", - " 913: [1250, 920, 1090, 1276, 912, 1207, 3100, 1939, 1084, 1953],\n", - " 914: [32325, 63310, 32844, 8673, 3117, 39768, 60894, 2755, 621, 1724],\n", - " 915: [26746, 996, 517, 2764, 4086, 27828, 4869, 54958, 60566, 1432],\n", - " 916: [7361, 3020, 2692, 50, 6003, 32, 1748, 2571, 48082, 1206],\n", - " 917: [31610, 6079, 26812, 2904, 4058, 4059, 7880, 6055, 4060, 6049],\n", - " 918: [7007, 1616, 1573, 367, 7381, 3981, 517, 3130, 380, 3269],\n", - " 919: [1382, 1626, 1004, 4224, 4044, 5815, 990, 4466, 26688, 7725],\n", - " 920: [1214, 589, 480, 1690, 3471, 8810, 1196, 2288, 1210, 2366],\n", - " 921: [5452, 6557, 6559, 258, 64652, 4306, 6137, 6625, 6332, 2054],\n", - " 922: [2161, 5452, 7247, 7369, 44022, 7164, 2761, 32031, 2138, 3988],\n", - " 923: [852, 1777, 1393, 8643, 1307, 3270, 1883, 543, 11, 3361],\n", - " 924: [6993, 6750, 52, 7084, 26228, 4392, 7044, 6724, 6584, 3194],\n", - " 925: [3499, 1200, 1036, 1240, 1219, 2664, 2366, 1253, 2288, 1690],\n", - " 926: [4027, 1265, 296, 38061, 1301, 2580, 33004, 7361, 1676, 1089],\n", - " 927: [1091, 367, 7007, 5989, 33437, 380, 7438, 37477, 3275, 51575],\n", - " 928: [1301, 4467, 1274, 2021, 1206, 1161, 316, 2529, 3204, 1214],\n", - " 930: [4242, 4804, 2587, 1784, 4529, 26527, 11, 3358, 6558, 3752],\n", - " 931: [1432, 4466, 26688, 5252, 7040, 46430, 8593, 2540, 7031, 60237],\n", - " 932: [8961, 2987, 31696, 367, 7046, 1784, 1198, 2804, 4306, 551],\n", - " 933: [1597, 2764, 2389, 31696, 51709, 532, 8373, 1658, 7445, 2912],\n", - " 934: [258, 126, 62376, 56, 8713, 2047, 44225, 5038, 5892, 558],\n", - " 935: [2115, 1544, 494, 3204, 95, 1918, 380, 165, 2002, 1210],\n", - " 936: [2580, 1220, 51575, 3275, 47044, 5989, 3254, 3418, 1884, 5010],\n", - " 937: [1199, 4467, 6003, 48082, 1206, 3535, 27904, 27706, 1658, 7361],\n", - " 938: [377, 1036, 1214, 1387, 1240, 1625, 2912, 4210, 1610, 480],\n", - " 939: [377, 2912, 1036, 2268, 517, 2529, 47, 1214, 1909, 1617],\n", - " 940: [377, 2529, 1953, 2912, 1321, 316, 1036, 3729, 517, 4064],\n", - " 941: [5000, 6724, 5788, 56060, 31347, 26211, 6245, 1964, 5970, 27826],\n", - " 942: [377, 480, 1610, 1214, 1036, 1200, 589, 1580, 1544, 2529],\n", - " 943: [1339, 1982, 3461, 6966, 7387, 1214, 7891, 273, 8092, 382],\n", - " 945: [55668, 61414, 6376, 2386, 61312, 3124, 26360, 984, 39416, 4012],\n", - " 946: [596, 1025, 783, 1022, 2081, 5218, 2096, 2080, 1030, 594],\n", - " 947: [914, 7714, 30816, 945, 1947, 26422, 2987, 1250, 8008, 6345],\n", - " 948: [7153, 260, 6947, 7090, 2826, 3578, 7438, 2987, 1210, 31660],\n", - " 949: [27660, 27904, 1208, 2010, 27706, 48082, 1301, 1274, 2529, 6003],\n", - " 950: [49932, 5105, 5867, 7044, 3863, 4546, 48997, 4919, 3476, 27317],\n", - " 951: [27797, 6424, 478, 403, 44058, 4879, 2484, 166, 3876, 5968],\n", - " 952: [2138, 2045, 5452, 258, 2139, 36397, 1367, 6557, 64652, 1025],\n", - " 953: [5944, 329, 2393, 1375, 1376, 2528, 3175, 26513, 1356, 6645],\n", - " 954: [6995, 485, 4133, 26513, 6264, 5040, 208, 3889, 57223, 442],\n", - " 955: [7386, 1784, 6003, 6787, 7160, 1693, 5945, 3100, 3386, 6947],\n", - " 956: [1408, 1378, 1304, 6421, 47117, 3037, 3100, 54997, 47956, 8481],\n", - " 957: [532, 3210, 1235, 4027, 1923, 4467, 319, 3948, 1091, 2717],\n", - " 958: [628, 5954, 1617, 50, 8783, 1213, 8950, 2912, 3476, 27773],\n", - " 960: [3386, 1617, 7160, 4776, 5989, 3006, 36517, 6796, 2396, 6787],\n", - " 961: [1953, 1276, 1784, 1263, 912, 3100, 3504, 858, 1084, 3468],\n", - " 962: [2764, 27828, 7160, 1645, 3148, 2803, 5388, 2467, 2389, 517],\n", - " 963: [990, 4434, 1488, 3770, 7007, 227, 1427, 4044, 8241, 27316],\n", - " 964: [1784, 7044, 4027, 3275, 532, 5945, 6953, 1805, 3020, 7160],\n", - " 965: [2908, 7160, 25, 1271, 2313, 5673, 5015, 64957, 1354, 1094],\n", - " 966: [3996, 7482, 6874, 7090, 3578, 377, 2826, 31660, 6947, 8795],\n", - " 967: [543, 31685, 1393, 3752, 367, 1091, 4306, 33836, 2804, 586],\n", - " 968: [377, 1693, 5445, 3204, 836, 1625, 1036, 1721, 32, 1240],\n", - " 969: [3259, 440, 8643, 31694, 236, 39, 4132, 11, 539, 4464],\n", - " 970: [2001, 2490, 1918, 377, 7007, 5027, 2000, 163, 7381, 2002],\n", - " 971: [30816, 928, 6660, 4308, 1235, 3307, 48082, 953, 920, 7215],\n", - " 972: [1208, 1262, 5010, 3476, 36529, 1953, 4826, 7044, 1233, 26131],\n", - " 973: [909, 7080, 7835, 1256, 4357, 6724, 912, 7831, 914, 969],\n", - " 974: [601, 3657, 706, 1471, 3655, 5814, 32342, 62245, 713, 3641],\n", - " 975: [1784, 1213, 3362, 6, 858, 2762, 1617, 1625, 3275, 1953],\n", - " 976: [7160, 7044, 2594, 1206, 6003, 1693, 3148, 517, 110, 2313],\n", - " 977: [5137, 6948, 7484, 3142, 7124, 8962, 43708, 5385, 33677, 32314],\n", - " 978: [7055, 26084, 7050, 34018, 7049, 7132, 2565, 6785, 914, 3199],\n", - " 979: [1617, 2912, 1784, 5989, 50, 7007, 2580, 1214, 31, 1616],\n", - " 980: [1198, 1196, 1097, 480, 5952, 110, 3578, 527, 589, 33493],\n", - " 982: [1221, 1208, 2023, 919, 1094, 1784, 1084, 1235, 2580, 1953],\n", - " 983: [2161, 551, 4014, 8961, 4294, 919, 44022, 2716, 7247, 37729],\n", - " 984: [1276, 1617, 628, 923, 2858, 8601, 1358, 954, 36, 4027],\n", - " 985: [33437, 1693, 7458, 110, 5989, 1408, 6385, 2826, 1721, 733],\n", - " 986: [26989, 4869, 8093, 7007, 63772, 45412, 49007, 1523, 459, 1432],\n", - " 987: [7149, 8643, 1784, 27797, 33145, 33649, 2587, 3481, 2396, 2580],\n", - " 988: [7123, 7044, 247, 49932, 5105, 928, 39381, 3863, 1264, 6927],\n", - " 989: [1089, 1729, 3275, 1953, 6, 7438, 2542, 4262, 4011, 3020],\n", - " 990: [1784, 2396, 1094, 1183, 7162, 1721, 8533, 6947, 7160, 920],\n", - " 991: [2420, 2133, 34332, 8961, 2470, 442, 2275, 44022, 2005, 8633],\n", - " 992: [2717, 7007, 2389, 7001, 2371, 39446, 1214, 1625, 3461, 6323],\n", - " 993: [56921, 6185, 32029, 3204, 5859, 3476, 1616, 7007, 51709, 46855],\n", - " 994: [1235, 2065, 235, 2395, 1259, 1265, 2858, 6184, 2997, 5673],\n", - " 995: [1244, 7460, 7044, 1235, 5673, 319, 3925, 1273, 3168, 5792],\n", - " 996: [864, 56060, 6570, 7139, 8937, 4529, 26527, 7395, 26803, 53887],\n", - " 997: [7007, 31600, 6491, 26488, 61818, 1432, 2429, 49007, 3269, 5553],\n", - " 998: [1094, 2396, 1185, 8970, 1225, 30812, 6385, 2313, 2908, 2971],\n", - " 999: [1214, 2366, 2163, 3471, 2413, 2288, 3701, 2021, 2662, 1321],\n", - " 1001: [1721, 2987, 1097, 1693, 1198, 1101, 6947, 7153, 34, 1408],\n", - " 1002: [5541, 3868, 3869, 2723, 7102, 3760, 2027, 2791, 1772, 2000],\n", - " 1003: [47937, 59738, 59604, 49528, 5630, 52005, 6736, 58332, 60832, 47830],\n", - " 1004: [1036, 1610, 1625, 1214, 1387, 2529, 5445, 1208, 3204, 6],\n", - " 1005: [50792, 1727, 2100, 4621, 1091, 11, 1784, 1883, 1101, 1777],\n", - " 1006: [1176, 6660, 2291, 64957, 235, 531, 1271, 4014, 2313, 2731],\n", - " 1007: [1658, 11, 1265, 1784, 2997, 5673, 1235, 440, 6155, 2671],\n", - " 1008: [1206, 2529, 1240, 1748, 4467, 1690, 32587, 2021, 1301, 1129],\n", - " 1009: [2987, 51575, 5445, 32, 377, 442, 589, 1784, 165, 733],\n", - " 1011: [2594, 3204, 5445, 1748, 292, 2529, 2762, 198, 8950, 1301],\n", - " 1012: [1805, 2594, 3476, 1690, 32, 1129, 31, 1693, 1784, 1206],\n", - " 1013: [11, 380, 1393, 1097, 1265, 1721, 2987, 1580, 1270, 5989],\n", - " 1014: [1784, 5945, 4529, 26527, 7044, 56715, 532, 7367, 1658, 1235],\n", - " 1015: [928, 913, 1253, 3435, 1219, 1086, 908, 1212, 1248, 1254],\n", - " 1016: [3168, 1953, 1784, 3100, 2912, 7044, 3504, 1254, 1235, 1304],\n", - " 1017: [260, 2826, 1198, 480, 2193, 316, 3997, 589, 1200, 1240],\n", - " 1018: [6736, 63836, 32743, 27338, 8774, 6066, 62788, 2315, 54910, 8894],\n", - " 1019: [26989, 3184, 27797, 4635, 27695, 8927, 438, 1112, 1432, 2438],\n", - " 1020: [912, 903, 922, 7080, 1254, 920, 1253, 969, 1256, 909],\n", - " 1021: [2081, 783, 1025, 2096, 1023, 31687, 3034, 1030, 5218, 31193],\n", - " 1022: [588, 596, 1025, 2080, 5218, 2081, 364, 661, 1029, 2096],\n", - " 1023: [2313, 2728, 590, 40278, 6385, 7160, 33166, 1293, 1693, 1262],\n", - " 1025: [3210, 4027, 1235, 5673, 1784, 1259, 26788, 2729, 2580, 7285],\n", - " 1026: [50, 1953, 6, 1617, 1263, 912, 3362, 1276, 903, 3476],\n", - " 1027: [367, 2716, 2133, 7004, 4262, 1573, 2366, 1091, 1784, 1101],\n", - " 1028: [7007, 648, 3386, 1036, 95, 3256, 377, 733, 494, 6989],\n", - " 1029: [1783, 1422, 52005, 43853, 27828, 3800, 712, 39703, 5424, 3716],\n", - " 1030: [3275, 532, 2952, 2580, 1784, 1658, 2764, 4027, 6708, 3685],\n", - " 1031: [1544, 4638, 780, 3638, 3204, 1580, 2947, 1196, 1374, 377],\n", - " 1032: [1772, 2804, 485, 7369, 6951, 2161, 2413, 4133, 543, 26950],\n", - " 1033: [920, 912, 969, 3307, 909, 899, 1276, 1035, 1250, 7080],\n", - " 1034: [5010, 110, 7458, 260, 8977, 6947, 733, 1408, 1210, 1198],\n", - " 1035: [2094, 43928, 57640, 52722, 5254, 442, 34332, 839, 8865, 2490],\n", - " 1037: [2671, 1784, 5299, 8969, 440, 1307, 186, 1393, 11, 6942],\n", - " 1038: [37846, 7312, 6262, 649, 7370, 60286, 4702, 26976, 46959, 47148],\n", - " 1039: [33166, 1953, 2912, 6, 7981, 3362, 3683, 4034, 2203, 628],\n", - " 1040: [420, 2000, 2001, 5049, 7369, 7102, 2053, 1772, 7004, 6014],\n", - " 1041: [1270, 6377, 31923, 2987, 4306, 1197, 4774, 44022, 7720, 349],\n", - " 1043: [5027, 7108, 861, 26688, 4466, 7007, 1036, 3452, 2001, 26746],\n", - " 1044: [2161, 2005, 31660, 2054, 7046, 2987, 4306, 8961, 1270, 2716],\n", - " 1045: [1235, 923, 3925, 922, 908, 6650, 1247, 2729, 235, 5792],\n", - " 1046: [2987, 1198, 1387, 1097, 377, 1214, 3471, 589, 2366, 1200],\n", - " 1047: [539, 357, 1777, 2671, 11, 4246, 1101, 236, 186, 597],\n", - " 1048: [380, 51255, 6503, 543, 51575, 2723, 2371, 4956, 1265, 2791],\n", - " 1050: [2764, 2455, 2396, 1784, 1277, 532, 1645, 7149, 4280, 7215],\n", - " 1051: [8969, 39, 2396, 1380, 1784, 357, 3481, 8643, 3259, 3210],\n", - " 1052: [7215, 4464, 1183, 3386, 1161, 5989, 1277, 26788, 4326, 6297],\n", - " 1053: [733, 1262, 3654, 2728, 1208, 349, 377, 1287, 150, 6947]}" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 사용자가 평갓값 4 이상을 부여한 영화\n", - "movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n", - "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", - "\n", - "id2index = dict(zip(ids, range(len(ids))))\n", - "pred_user2items = dict()\n", - "for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n", - " evaluated_movie_ids = user_evaluated_movies[user_id]\n", - " movie_ids = data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-5:]\n", - "\n", - " movie_indexes = [id2index[id] for id in movie_ids]\n", - " user_vector = movie_norm_vectors[movie_indexes].mean(axis=0)\n", - " recommended_items = find_similar_items(user_vector, evaluated_movie_ids, topn=10)\n", - " pred_user2items[user_id] = recommended_items\n", - "pred_user2items" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "625d2894", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp \\\n", - "4732 2 110 5.0 868245777 \n", - "5246 2 260 5.0 868244562 \n", - "5798 2 590 5.0 868245608 \n", - "8381 2 1210 4.0 868245644 \n", - "\n", - " title \\\n", - "4732 Braveheart (1995) \n", - "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", - "5798 Dances with Wolves (1990) \n", - "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", - "\n", - " genre \\\n", - "4732 [Action, Drama, War] \n", - "5246 [Action, Adventure, Sci-Fi] \n", - "5798 [Adventure, Drama, Western] \n", - "8381 [Action, Adventure, Sci-Fi] \n", - "\n", - " tag timestamp_rank \n", - "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", - "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", - "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", - "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 " - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", - "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "2e3be9df", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
10751097E.T. the Extra-Terrestrial (1982)[Children, Drama, Sci-Fi][speilberg, steven spielberg, spielberg/lucas,...
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
11731198Raiders of the Lost Ark (Indiana Jones and the...[Action, Adventure][egypt, lucas, seen more than once, dvd collec...
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "1075 1097 E.T. the Extra-Terrestrial (1982) \n", - "1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n", - "1173 1198 Raiders of the Lost Ark (Indiana Jones and the... \n", - "\n", - " genre \\\n", - "1075 [Children, Drama, Sci-Fi] \n", - "1171 [Action, Adventure, Sci-Fi] \n", - "1173 [Action, Adventure] \n", - "\n", - " tag \n", - "1075 [speilberg, steven spielberg, spielberg/lucas,... \n", - "1171 [lucas, george lucas, george lucas, gfei own i... \n", - "1173 [egypt, lucas, seen more than once, dvd collec... " - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# user_id=2에 대한 추천(1198, 1196, 1097)\n", - "movies[movies.movie_id.isin([1198, 1196, 1097])]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "83e8a9a4", - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} +{"cells":[{"cell_type":"markdown","id":"8dc6cdc1","metadata":{"id":"8dc6cdc1"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/Word2vec.ipynb)"]},{"cell_type":"markdown","id":"caaaa856","metadata":{"id":"caaaa856"},"source":["# Word2vec"]},{"cell_type":"code","execution_count":1,"id":"20b107d9","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"20b107d9","executionInfo":{"status":"ok","timestamp":1672120480929,"user_tz":-540,"elapsed":3734,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"622537ab-1a59-4ac9-b565-f8de5c655b7d"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:54:34-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 115MB/s in 0.5s \n","\n","2022-12-27 05:54:35 (115 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"9f40fb34","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9f40fb34","executionInfo":{"status":"ok","timestamp":1672120548661,"user_tz":-540,"elapsed":67736,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"3dd4700f-df2c-4a1b-94bd-15d24ce926b5"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"dc9b021b","metadata":{"id":"dc9b021b","executionInfo":{"status":"ok","timestamp":1672120548662,"user_tz":-540,"elapsed":21,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 인자 수\n","factors = 100\n","# 에폭 수\n","n_epochs = 30\n","# window 크기\n","window = 100\n","# 스킵 그램\n","use_skip_gram = 1\n","# 계층적 소프트맥스\n","use_hierarchial_softmax = 0\n","# 사용할 단어의 출현 횟수의 임곗값\n","min_count = 5"]},{"cell_type":"code","execution_count":4,"id":"9f4dd49e","metadata":{"id":"9f4dd49e","executionInfo":{"status":"ok","timestamp":1672120548662,"user_tz":-540,"elapsed":20,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["movie_content = movies.copy()\n","# tag가 부여되지 않은 영화는 있지만, genre는 모든 영화에 부여되어 있다\n","# tag와 genre를 결합한 것을 영화의 콘텐츠 정보로 해서 비슷한 영화를 찾아 추천한다\n","# tag가 없는 영화는 NaN으로 되어 있으므로, 빈 리스트로 변환한 뒤 처리한다\n","movie_content[\"tag_genre\"] = movie_content[\"tag\"].fillna(\"\").apply(list) + movie_content[\"genre\"].apply(list)\n","movie_content[\"tag_genre\"] = movie_content[\"tag_genre\"].apply(lambda x: set(map(str, x)))"]},{"cell_type":"code","execution_count":5,"id":"1d04f27c","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"1d04f27c","executionInfo":{"status":"ok","timestamp":1672120556096,"user_tz":-540,"elapsed":7453,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"0fc2192f-4c86-42b7-b72b-c4d4f87a4481"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting gensim==4.0.1\n"," Downloading gensim-4.0.1-cp38-cp38-manylinux1_x86_64.whl (23.9 MB)\n","\u001b[K |████████████████████████████████| 23.9 MB 1.2 MB/s \n","\u001b[?25hRequirement already satisfied: scipy>=0.18.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.7.3)\n","Requirement already satisfied: smart-open>=1.8.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (6.3.0)\n","Requirement already satisfied: numpy>=1.11.3 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.21.6)\n","Installing collected packages: gensim\n"," Attempting uninstall: gensim\n"," Found existing installation: gensim 3.6.0\n"," Uninstalling gensim-3.6.0:\n"," Successfully uninstalled gensim-3.6.0\n","Successfully installed gensim-4.0.1\n"]}],"source":["!pip install gensim==4.0.1"]},{"cell_type":"code","execution_count":6,"id":"5994a870","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"5994a870","executionInfo":{"status":"ok","timestamp":1672120587871,"user_tz":-540,"elapsed":31781,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"67b68963-8de4-428e-d623-1d0737d1a20c"},"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.8/dist-packages/gensim/similarities/__init__.py:15: UserWarning: The gensim.similarities.levenshtein submodule is disabled, because the optional Levenshtein package is unavailable. Install Levenhstein (e.g. `pip install python-Levenshtein`) to suppress this warning.\n"," warnings.warn(msg)\n"]}],"source":["import gensim\n","\n","# 태그와 장르 데이터를 사용해 word2vec을 학습한다\n","tag_genre_data = movie_content.tag_genre.tolist()\n","model = gensim.models.word2vec.Word2Vec(\n"," tag_genre_data,\n"," vector_size=factors,\n"," window=window,\n"," sg=use_skip_gram,\n"," hs=use_hierarchial_softmax,\n"," epochs=n_epochs,\n"," min_count=min_count,\n",")\n"]},{"cell_type":"code","execution_count":7,"id":"cad9e002","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"cad9e002","executionInfo":{"status":"ok","timestamp":1672120587872,"user_tz":-540,"elapsed":6,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"f942a765-555c-4378-8318-de39e5184d32"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[('studio ghibli', 0.8121964335441589),\n"," ('zibri studio', 0.7996001243591309),\n"," ('miyazaki', 0.7846846580505371),\n"," ('pelicula anime', 0.7555471658706665),\n"," ('hayao miyazaki', 0.7477614879608154),\n"," ('japan', 0.6425853967666626),\n"," ('Animation', 0.5504586696624756),\n"," ('curse', 0.5254901647567749),\n"," ('steampunk', 0.5219841599464417),\n"," ('dragon', 0.5078659057617188)]"]},"metadata":{},"execution_count":7}],"source":["# anime 태크와 비슷한 태그를 확인한다\n","model.wv.most_similar('anime')"]},{"cell_type":"code","execution_count":8,"id":"36426496","metadata":{"id":"36426496","executionInfo":{"status":"ok","timestamp":1672120591388,"user_tz":-540,"elapsed":3520,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 각 영화의 벡터를 계산한다\n","# 각 영화에 부여되어 있는 태그/장르 벡터의 평균을 영화의 벡터로 한다\n","movie_vectors = []\n","tag_genre_in_model = set(model.wv.key_to_index.keys())\n","\n","titles = []\n","ids = []\n","\n","for i, tag_genre in enumerate(tag_genre_data):\n"," # word2vec 모델에서 사용할 수 있는 태그/장르로 필터링한다\n"," input_tag_genre = set(tag_genre) & tag_genre_in_model\n"," if len(input_tag_genre) == 0:\n"," # word2vec에 기반해 벡터 계산할 수 없는 영화에는 무작위 벡터를 부여한다\n"," vector = np.random.randn(model.vector_size)\n"," else:\n"," vector = model.wv[input_tag_genre].mean(axis=0)\n"," titles.append(movie_content.iloc[i][\"title\"])\n"," ids.append(movie_content.iloc[i][\"movie_id\"])\n"," movie_vectors.append(vector)\n"]},{"cell_type":"code","execution_count":9,"id":"e0ef174b","metadata":{"id":"e0ef174b","executionInfo":{"status":"ok","timestamp":1672120591389,"user_tz":-540,"elapsed":5,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["import numpy as np\n","\n","# 후속 유사도 계산을 쉽게 할 수 있도록 numpy 배열로 저장한다\n","movie_vectors = np.array(movie_vectors)\n","\n","# 정규화한 벡터\n","sum_vec = np.sqrt(np.sum(movie_vectors ** 2, axis=1))\n","movie_norm_vectors = movie_vectors / sum_vec.reshape((-1, 1))\n"]},{"cell_type":"code","execution_count":10,"id":"0986ff67","metadata":{"id":"0986ff67","executionInfo":{"status":"ok","timestamp":1672120591389,"user_tz":-540,"elapsed":4,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 아직 평가하지 않은 영화에서 유사도가 높은 아이템을 반환하는 함수\n","def find_similar_items(vec, evaluated_movie_ids, topn=10):\n"," score_vec = np.dot(movie_norm_vectors, vec)\n"," similar_indexes = np.argsort(-score_vec)\n"," similar_items = []\n"," for similar_index in similar_indexes:\n"," if ids[similar_index] not in evaluated_movie_ids:\n"," similar_items.append(ids[similar_index])\n"," if len(similar_items) == topn:\n"," break\n"," return similar_items"]},{"cell_type":"code","execution_count":11,"id":"9e00ac0c","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9e00ac0c","executionInfo":{"status":"ok","timestamp":1672120598439,"user_tz":-540,"elapsed":7054,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"670e4e86-95a5-48f6-a732-eca7e3fb4526"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["{1: [4306, 2054, 7369, 5500, 5452, 2080, 2470, 6559, 36708, 44399],\n"," 2: [1198, 1196, 1097, 3578, 1204, 2028, 7153, 3471, 1287, 527],\n"," 3: [27797, 3874, 61071, 3194, 6384, 58494, 1415, 60494, 4766, 45707],\n"," 4: [2125, 1073, 1441, 551, 1028, 4184, 7834, 837, 4306, 2953],\n"," 5: [1276, 3504, 3168, 2729, 928, 1193, 3741, 2730, 922, 1161],\n"," 6: [5445, 198, 541, 292, 5881, 1214, 2594, 1240, 1129, 1690],\n"," 7: [2935, 955, 4357, 922, 947, 6840, 3307, 946, 950, 7080],\n"," 8: [33437, 517, 3269, 4956, 2764, 36529, 7386, 49007, 5027, 5686],\n"," 9: [2890, 665, 3168, 319, 1162, 1953, 1202, 33166, 4399, 2542],\n"," 10: [1950, 1953, 3504, 7215, 2396, 920, 1230, 1925, 912, 858],\n"," 11: [1784, 339, 3259, 1393, 1307, 7, 1597, 11, 3893, 1101],\n"," 12: [1805, 1438, 517, 2594, 51709, 3510, 1597, 8585, 1061, 8963],\n"," 13: [1784, 1084, 1276, 1230, 356, 1213, 909, 920, 858, 1953],\n"," 14: [586, 3489, 2804, 8516, 3988, 2125, 2161, 48082, 2054, 1894],\n"," 16: [2288, 5522, 5881, 674, 748, 3699, 1274, 5046, 2528, 1301],\n"," 17: [1253, 1254, 3551, 2529, 1387, 1086, 2871, 1276, 913, 3384],\n"," 18: [59615, 60072, 517, 2947, 3204, 3947, 1805, 4956, 6503, 1127],\n"," 19: [2080, 4306, 7247, 2161, 1028, 2137, 2125, 2054, 2102, 2081],\n"," 22: [1784, 1240, 5445, 1625, 2490, 5881, 5464, 1693, 32587, 858],\n"," 23: [1073, 4014, 1265, 1197, 7064, 4886, 4306, 6620, 6377, 588],\n"," 24: [1883, 3386, 1213, 1784, 1953, 161, 7445, 36529, 8781, 4776],\n"," 26: [1036, 6, 1240, 1214, 2912, 1200, 2529, 1387, 480, 593],\n"," 27: [2058, 165, 7007, 3386, 555, 377, 2912, 517, 996, 1729],\n"," 28: [2248, 6558, 4091, 3210, 1513, 5969, 1257, 2918, 2134, 54621],\n"," 29: [2887, 46970, 32596, 367, 1091, 6503, 442, 1866, 2723, 4369],\n"," 30: [8937, 3360, 43558, 1883, 2587, 4956, 7160, 6565, 973, 8533],\n"," 33: [2396, 1095, 6993, 1784, 1358, 1104, 3362, 1230, 1959, 3504],\n"," 34: [8387, 27735, 5459, 1772, 7004, 2887, 2366, 2428, 3710, 3701],\n"," 35: [1625, 1921, 1748, 1199, 2997, 1089, 50, 29, 48082, 2594],\n"," 36: [53000, 51709, 45722, 31696, 32, 32587, 3981, 1587, 5881, 37382],\n"," 37: [3168, 319, 1213, 1235, 1729, 18, 3275, 1265, 1658, 532],\n"," 38: [33437, 2490, 50792, 51255, 2000, 51709, 59594, 5027, 8373, 37477],\n"," 40: [21, 2580, 2587, 1923, 1265, 532, 3948, 1658, 4027, 7381],\n"," 41: [709, 1025, 2080, 6316, 7247, 2099, 107, 596, 1031, 46062],\n"," 42: [909, 3307, 920, 1784, 3504, 1959, 750, 1247, 3095, 946],\n"," 43: [1878, 4527, 4603, 4664, 4672, 4736, 4746, 4828, 4875, 4877],\n"," 44: [2791, 3671, 3752, 5541, 1923, 466, 1091, 2723, 3552, 2109],\n"," 45: [2912, 6, 1625, 4226, 1213, 32587, 296, 8783, 628, 1912],\n"," 46: [480, 1210, 1200, 260, 316, 1544, 1196, 1240, 1198, 2987],\n"," 47: [1380, 1784, 1091, 4027, 3752, 1265, 1393, 2804, 3259, 3481],\n"," 48: [53972, 27735, 442, 51255, 2793, 6503, 57528, 51709, 36519, 2490],\n"," 50: [2671, 1101, 1393, 5299, 3270, 1307, 3259, 11, 236, 8969],\n"," 51: [2871, 33437, 3006, 2764, 3100, 2912, 4349, 3386, 1267, 1084],\n"," 52: [3435, 908, 2186, 903, 8044, 942, 2203, 7223, 1254, 922],\n"," 53: [4027, 2912, 8783, 31, 1784, 2594, 7285, 1358, 7044, 3424],\n"," 54: [2987, 2366, 1073, 1097, 2580, 7007, 2804, 8961, 2716, 6377],\n"," 55: [1387, 2366, 1590, 1214, 39446, 3551, 517, 8957, 480, 8783],\n"," 56: [1073, 1197, 1265, 4027, 2529, 6, 1235, 1276, 1953, 920],\n"," 57: [4434, 6574, 5235, 5181, 286, 1626, 464, 27316, 30896, 8241],\n"," 58: [531, 1022, 588, 2161, 1025, 8580, 364, 4306, 42015, 4886],\n"," 59: [1036, 1610, 2912, 377, 1276, 2529, 1387, 1953, 47, 3551],\n"," 60: [1276, 3468, 1254, 1953, 908, 2871, 912, 928, 903, 913],\n"," 61: [1784, 4027, 31, 50, 3100, 858, 1263, 6787, 3362, 1230],\n"," 62: [1036, 1127, 733, 377, 7007, 1610, 780, 3654, 1214, 480],\n"," 63: [1784, 532, 224, 1235, 5673, 27808, 1357, 5945, 52, 337],\n"," 64: [1270, 31660, 316, 2987, 1610, 2011, 1408, 7007, 380, 1127],\n"," 65: [4886, 8907, 53121, 44022, 64652, 52287, 5218, 6377, 5452, 40339],\n"," 66: [1394, 1202, 1235, 319, 5792, 4914, 750, 1079, 608, 101],\n"," 67: [3227, 2438, 5416, 64327, 8330, 1805, 2764, 1783, 43853, 4242],\n"," 68: [7215, 1784, 2912, 2764, 4280, 3006, 5553, 7311, 4326, 1264],\n"," 69: [1959, 7215, 1947, 1784, 1183, 1230, 920, 909, 914, 898],\n"," 70: [6783, 7135, 5673, 4914, 1202, 1300, 34437, 235, 1235, 3819],\n"," 71: [1, 919, 5989, 356, 1721, 1213, 1089, 2987, 1235, 1265],\n"," 72: [1544, 3256, 160, 4638, 736, 1479, 6989, 517, 3204, 798],\n"," 73: [1772, 36708, 4306, 34332, 44022, 8974, 2383, 2054, 7247, 586],\n"," 74: [5693, 2470, 1513, 50792, 2100, 1042, 2468, 2133, 33669, 39],\n"," 75: [7458, 733, 2001, 377, 1918, 5010, 1408, 3654, 3578, 5464],\n"," 76: [990, 1427, 1488, 1626, 798, 548, 26488, 4044, 692, 31255],\n"," 77: [1616, 1690, 7007, 43928, 442, 2490, 208, 2722, 1127, 5881],\n"," 78: [1690, 32239, 48943, 5171, 2594, 31251, 63676, 3080, 6076, 5793],\n"," 79: [8638, 1902, 48082, 5673, 3148, 1658, 2396, 3535, 7160, 7044],\n"," 80: [1784, 4027, 38061, 1884, 532, 5673, 50792, 319, 1235, 1476],\n"," 81: [1953, 1263, 3468, 4007, 1213, 1084, 2890, 1208, 4008, 1304],\n"," 82: [1784, 1380, 3481, 3752, 1307, 4027, 357, 1441, 1088, 2125],\n"," 83: [2366, 1230, 3307, 909, 940, 2936, 1256, 2648, 8235, 955],\n"," 84: [1784, 2115, 4027, 1198, 318, 1291, 356, 3386, 31, 1196],\n"," 85: [1784, 4027, 1358, 1961, 923, 3504, 532, 1617, 7160, 1235],\n"," 86: [316, 1580, 1544, 3471, 1690, 2115, 4121, 377, 349, 8810],\n"," 87: [1784, 4027, 1265, 532, 50792, 2291, 1658, 543, 1923, 2125],\n"," 88: [3130, 1101, 1616, 1784, 7007, 1393, 6193, 2302, 3386, 3175],\n"," 89: [2427, 1227, 1912, 6185, 517, 4262, 2912, 6, 18, 6977],\n"," 90: [62331, 5497, 32825, 8822, 7262, 558, 2041, 26792, 5892, 40339],\n"," 91: [50445, 3623, 26746, 3452, 1488, 51709, 6185, 648, 26488, 377],\n"," 92: [44761, 1127, 5686, 1265, 33004, 1658, 4027, 6003, 7451, 1301],\n"," 93: [49130, 8836, 62155, 2396, 8373, 33437, 42015, 51903, 51884, 3053],\n"," 94: [1101, 2470, 11, 1393, 2133, 2001, 3269, 2000, 5027, 5049],\n"," 95: [1240, 1127, 1200, 260, 1196, 3204, 3471, 2529, 5445, 1214],\n"," 96: [4383, 2389, 517, 1061, 6185, 2764, 33437, 2912, 1597, 5388],\n"," 97: [1721, 1784, 1883, 3259, 1101, 7162, 11, 6385, 41571, 50792],\n"," 98: [38499, 2396, 1611, 1224, 8273, 2020, 3194, 32591, 6117, 44929],\n"," 99: [49932, 5105, 2594, 1219, 8950, 928, 8957, 1076, 3476, 8670],\n"," 100: [2371, 928, 1617, 908, 4027, 1265, 919, 2912, 2291, 1333],\n"," 101: [1883, 6155, 3269, 48943, 49007, 5881, 3259, 8373, 1496, 4564],\n"," 102: [1617, 2912, 50, 1036, 349, 517, 6, 33437, 3386, 733],\n"," 103: [1235, 3168, 5792, 6184, 1273, 57669, 3210, 34437, 2065, 3925],\n"," 104: [349, 377, 316, 2529, 1200, 589, 1127, 480, 592, 3654],\n"," 105: [1274, 2021, 1129, 1127, 1690, 1301, 1200, 2528, 2311, 316],\n"," 106: [1025, 2078, 783, 364, 1030, 1029, 2096, 5218, 1023, 2099],\n"," 107: [920, 1927, 1084, 1287, 909, 1276, 1939, 1950, 1263, 1254],\n"," 108: [27416, 34528, 3152, 2155, 5068, 40870, 6268, 3089, 1952, 1300],\n"," 110: [3623, 165, 5459, 442, 733, 1479, 836, 494, 1580, 3527],\n"," 111: [1208, 1036, 3654, 3471, 1408, 1387, 1090, 1339, 3386, 5010],\n"," 112: [4194, 34528, 6791, 6660, 7352, 1904, 6268, 7135, 5673, 2927],\n"," 113: [39, 8969, 357, 4246, 1307, 186, 2125, 5299, 5066, 339],\n"," 114: [2413, 4467, 1220, 1206, 6798, 26422, 5686, 1199, 4027, 7080],\n"," 115: [1101, 3259, 11, 539, 543, 2302, 2804, 597, 1883, 4975],\n"," 116: [2054, 2987, 2161, 4275, 2804, 2005, 1, 6232, 4306, 32031],\n"," 117: [6558, 2468, 351, 4936, 44193, 5452, 2587, 4341, 52975, 5255],\n"," 118: [3508, 6812, 996, 8094, 7438, 2871, 5184, 4329, 2922, 2002],\n"," 119: [1235, 319, 5792, 1265, 101, 1923, 4914, 4027, 532, 1658],\n"," 120: [442, 380, 3175, 1101, 1580, 5459, 367, 34520, 34332, 208],\n"," 121: [8810, 1127, 2115, 1320, 1690, 33493, 5378, 260, 2628, 1214],\n"," 122: [5673, 48082, 532, 1658, 5945, 54978, 6003, 7444, 3893, 4880],\n"," 123: [1784, 11, 1959, 1101, 3259, 1230, 539, 1721, 7215, 4041],\n"," 124: [40870, 44195, 42730, 36535, 7034, 1271, 8937, 2155, 27843, 33903],\n"," 125: [7044, 56274, 8958, 32591, 1805, 1264, 1357, 4280, 7160, 45],\n"," 126: [2186, 48883, 8950, 7981, 5867, 33437, 5516, 4037, 4837, 50794],\n"," 127: [5758, 6120, 2364, 5478, 5746, 8894, 25798, 53752, 26603, 5556],\n"," 128: [5380, 1224, 2690, 2396, 31694, 838, 3079, 38499, 1059, 3668],\n"," 129: [532, 367, 50792, 1784, 1441, 1658, 1091, 50, 6003, 48082],\n"," 130: [1089, 1199, 6003, 1161, 29, 4027, 2529, 4467, 7361, 48082],\n"," 131: [1729, 1213, 1089, 7160, 3685, 5989, 1961, 337, 4262, 3362],\n"," 132: [47, 2912, 1617, 3499, 1276, 1693, 1193, 2160, 1953, 1259],\n"," 134: [2161, 2716, 5686, 224, 1265, 48082, 2065, 4014, 2580, 5673],\n"," 135: [1084, 920, 1953, 599, 3871, 2871, 1263, 1304, 3468, 3365],\n"," 136: [3269, 4564, 54978, 2413, 1264, 2133, 5553, 5706, 2950, 2455],\n"," 137: [2912, 1350, 8783, 37382, 43871, 5502, 292, 165, 1997, 3551],\n"," 138: [1213, 319, 4027, 3275, 3168, 4034, 1729, 608, 532, 1912],\n"," 139: [34, 4886, 44022, 4306, 60069, 2804, 1282, 1028, 1646, 2018],\n"," 140: [1939, 1944, 1959, 1945, 1927, 920, 1250, 1950, 909, 1931],\n"," 141: [1784, 3481, 2396, 5673, 2671, 1393, 41573, 8949, 32591, 5066],\n"," 142: [1953, 1208, 2912, 3006, 349, 6787, 2529, 1090, 3100, 6],\n"," 143: [26509, 5706, 4290, 5759, 8610, 25931, 5926, 3393, 4578, 7050],\n"," 144: [4956, 1264, 5686, 1267, 58105, 46855, 5000, 7215, 42681, 64622],\n"," 145: [1617, 2912, 47, 1089, 50794, 4034, 4210, 1213, 1036, 1953],\n"," 148: [3681, 1227, 1276, 5653, 8618, 4329, 2921, 7894, 1304, 3365],\n"," 149: [1473, 3184, 33437, 26989, 3275, 2023, 1112, 4635, 438, 8927],\n"," 150: [2313, 5995, 1193, 235, 30812, 923, 1959, 920, 1183, 8197],\n"," 151: [1256, 914, 7080, 909, 1235, 7835, 950, 955, 920, 8235],\n"," 152: [2912, 1249, 1953, 7981, 42632, 1248, 4210, 5867, 1213, 517],\n"," 153: [1206, 50, 1089, 32587, 1805, 3275, 3981, 2529, 3020, 1213],\n"," 154: [1658, 1235, 2580, 3210, 2395, 7361, 2248, 101, 6003, 543],\n"," 155: [1784, 532, 543, 1101, 21, 1883, 3275, 2580, 1230, 1658],\n"," 156: [224, 587, 2291, 337, 5673, 4014, 2065, 1265, 168, 1441],\n"," 157: [4242, 43853, 7007, 64327, 2438, 8330, 5416, 3227, 5553, 1432],\n"," 158: [7044, 4410, 1053, 45, 7442, 41617, 4776, 5563, 5869, 1805],\n"," 159: [1304, 3365, 7218, 1254, 8094, 3873, 7898, 8618, 266, 7894],\n"," 160: [2625, 2450, 2094, 5621, 26950, 4434, 2835, 61818, 5822, 5523],\n"," 161: [150, 2115, 2396, 11, 6947, 1721, 1101, 1894, 356, 7311],\n"," 162: [1127, 2003, 1200, 3471, 2761, 2161, 1270, 27660, 2528, 34],\n"," 163: [7160, 3504, 45, 5878, 5673, 7044, 3168, 1094, 2858, 55444],\n"," 164: [3204, 2826, 1544, 1690, 2021, 2529, 3471, 6078, 517, 61350],\n"," 165: [2468, 1307, 543, 339, 1101, 367, 2125, 1777, 1091, 3422],\n"," 166: [349, 377, 2912, 50794, 7007, 165, 3256, 3654, 836, 1218],\n"," 167: [6297, 4341, 2587, 6753, 2987, 8866, 5027, 8961, 2138, 7004],\n"," 168: [2587, 4341, 26527, 4529, 532, 2223, 4027, 6798, 32009, 2486],\n"," 169: [543, 532, 1091, 367, 4015, 3752, 1658, 6003, 1923, 7367],\n"," 170: [27831, 3275, 51255, 38061, 1089, 532, 4834, 4415, 44761, 5767],\n"," 171: [3210, 1784, 3275, 1968, 2542, 4027, 532, 1658, 3168, 1729],\n"," 172: [1036, 377, 1370, 1200, 1240, 733, 786, 6213, 780, 1214],\n"," 173: [1373, 2393, 5944, 1909, 7812, 32296, 7811, 7649, 6503, 5785],\n"," 174: [1235, 2961, 26527, 4529, 1658, 27797, 1213, 5673, 478, 50949],\n"," 175: [6197, 5056, 3741, 8199, 6842, 7068, 7587, 7123, 25954, 6509],\n"," 176: [377, 1036, 349, 1610, 2912, 480, 733, 1214, 1240, 780],\n"," 177: [3362, 4027, 1213, 1358, 1276, 858, 3468, 1784, 923, 3100],\n"," 178: [1183, 1959, 6947, 1242, 920, 7162, 475, 3100, 7215, 1277],\n"," 179: [1245, 1912, 3683, 6796, 1953, 319, 4034, 7135, 7044, 1234],\n"," 180: [50792, 1912, 1358, 50, 3893, 1658, 1784, 1883, 3275, 2396],\n"," 182: [8961, 32031, 44022, 8865, 34332, 31685, 33437, 2761, 46970, 51575],\n"," 183: [1161, 2324, 1276, 8338, 4349, 7700, 1950, 47306, 1263, 3089],\n"," 184: [1276, 3100, 1213, 1084, 1953, 3362, 1304, 858, 1263, 1090],\n"," 185: [912, 1721, 1947, 920, 899, 1230, 914, 356, 587, 919],\n"," 186: [2389, 7001, 103, 3863, 4383, 1912, 517, 2209, 1625, 2672],\n"," 187: [1265, 587, 1101, 1307, 1784, 2125, 1727, 5299, 6155, 1393],\n"," 188: [2396, 838, 1183, 7215, 4246, 3079, 7579, 1784, 40629, 7162],\n"," 189: [1240, 1200, 1214, 480, 1387, 2529, 5445, 1690, 316, 1036],\n"," 190: [57640, 60074, 34332, 533, 1377, 3438, 54272, 27865, 60040, 61401],\n"," 191: [1136, 5673, 5541, 1235, 50792, 6807, 1080, 3671, 26527, 4529],\n"," 192: [5291, 3741, 2074, 3168, 7700, 26231, 2427, 3091, 1173, 6023],\n"," 193: [1264, 1953, 8094, 3269, 3424, 3685, 7007, 996, 46855, 54978],\n"," 194: [2587, 1473, 3184, 4242, 532, 7004, 5027, 5049, 43558, 27695],\n"," 195: [928, 1276, 3435, 1161, 3741, 923, 1212, 2730, 1253, 922],\n"," 196: [54978, 2369, 26509, 2248, 52227, 6558, 2413, 3688, 5706, 2463],\n"," 197: [4956, 7834, 7831, 1235, 2223, 3210, 61071, 7835, 955, 5969],\n"," 198: [7044, 2594, 319, 50792, 56367, 8950, 34437, 3476, 1658, 4553],\n"," 199: [1036, 1339, 1214, 1387, 349, 480, 1200, 2366, 1610, 1208],\n"," 200: [3489, 588, 364, 4306, 2161, 5444, 4341, 2078, 53974, 1022],\n"," 201: [3556, 27721, 5992, 64957, 3186, 5673, 1176, 2427, 4308, 6660],\n"," 202: [1959, 7215, 912, 1183, 3100, 3654, 1925, 4564, 1035, 4464],\n"," 203: [36708, 7369, 8974, 34332, 3033, 442, 5459, 2053, 3175, 5452],\n"," 204: [4027, 2396, 1784, 3468, 1953, 920, 1208, 3100, 1959, 1094],\n"," 205: [1213, 1263, 2529, 3435, 3468, 3168, 3365, 1253, 4998, 6],\n"," 206: [1250, 1927, 590, 110, 920, 1287, 1939, 1959, 1204, 1262],\n"," 207: [4555, 1879, 33649, 1821, 2333, 4216, 4342, 2029, 3094, 2388],\n"," 208: [1432, 1473, 3184, 6387, 4026, 876, 30896, 27316, 8241, 6714],\n"," 209: [27826, 33649, 51094, 27797, 4555, 43744, 2029, 3124, 56671, 569],\n"," 210: [5952, 2116, 2987, 260, 3997, 2826, 8961, 55995, 2161, 1198],\n"," 211: [920, 1250, 909, 1084, 919, 1945, 1090, 1276, 923, 1204],\n"," 212: [31107, 2434, 7401, 57357, 672, 1364, 4313, 676, 4309, 679],\n"," 213: [1784, 1959, 356, 1183, 3468, 3100, 1193, 1950, 1961, 1953],\n"," 214: [33646, 50792, 3361, 532, 4085, 1883, 26566, 5970, 31, 7346],\n"," 215: [47423, 5945, 48783, 47099, 45, 50274, 45880, 58303, 50068, 58306],\n"," 216: [539, 357, 2671, 186, 11, 1894, 168, 7, 2470, 8969],\n"," 217: [2671, 39, 838, 8969, 357, 3270, 5299, 7, 3079, 2581],\n"," 218: [235, 5673, 34437, 5686, 55901, 3925, 1784, 26527, 4529, 3194],\n"," 219: [909, 1230, 898, 1947, 3307, 3545, 905, 900, 955, 3475],\n"," 220: [1266, 7894, 6428, 1209, 7218, 266, 5440, 4327, 1201, 3494],\n"," 221: [1580, 3471, 2987, 1784, 2115, 1127, 1091, 2003, 4564, 2021],\n"," 222: [33437, 27839, 8963, 6185, 36529, 50, 2490, 54997, 3275, 1625],\n"," 223: [44911, 5161, 5065, 63836, 26791, 1264, 4390, 436, 6736, 1783],\n"," 224: [54978, 7007, 3269, 517, 2587, 367, 5553, 1264, 420, 1805],\n"," 225: [8879, 7215, 4969, 7044, 2764, 5008, 6101, 897, 63033, 1912],\n"," 226: [3210, 6188, 532, 216, 1658, 50792, 1091, 1784, 8641, 2580],\n"," 227: [2223, 4242, 55901, 27695, 1112, 438, 4635, 8927, 5407, 1410],\n"," 228: [3175, 34520, 1091, 5541, 1101, 2001, 5459, 2683, 1580, 2723],\n"," 229: [3275, 367, 7004, 7007, 4262, 20, 33437, 50, 6185, 51575],\n"," 230: [1093, 55444, 6430, 3060, 33677, 8958, 32591, 56286, 54190, 1380],\n"," 231: [3710, 5049, 5706, 4673, 861, 2163, 5370, 2002, 7102, 420],\n"," 232: [1208, 5010, 2529, 1276, 3654, 7438, 3468, 2023, 1953, 5464],\n"," 234: [296, 1912, 1213, 6, 5291, 3020, 8950, 1206, 3476, 7044],\n"," 235: [1249, 6, 1953, 2529, 380, 8665, 349, 377, 2912, 1610],\n"," 236: [6993, 1784, 1912, 2023, 1953, 4085, 5027, 6584, 3362, 1213],\n"," 237: [5621, 4956, 62956, 6317, 4818, 2880, 2879, 51575, 59103, 380],\n"," 238: [6003, 319, 5792, 1173, 48696, 8620, 154, 1202, 7361, 1884],\n"," 239: [260, 1387, 1210, 377, 2115, 1240, 480, 349, 1291, 1200],\n"," 241: [2723, 466, 532, 1923, 671, 3752, 2791, 344, 5500, 367],\n"," 242: [2268, 6879, 1573, 7007, 3386, 454, 1729, 165, 58025, 1479],\n"," 243: [3168, 928, 3741, 2186, 319, 1248, 903, 7700, 7044, 49932],\n"," 244: [3100, 1084, 1959, 4349, 920, 1250, 1090, 6787, 110, 7311],\n"," 245: [8973, 26599, 7034, 27727, 6538, 36276, 7486, 5617, 27416, 6620],\n"," 246: [3275, 367, 1784, 532, 21, 2580, 1091, 2723, 4085, 4262],\n"," 247: [1784, 1597, 3257, 1393, 2764, 3259, 3386, 1883, 2396, 3893],\n"," 248: [1953, 2729, 3504, 1213, 1206, 319, 1263, 1276, 1617, 2912],\n"," 249: [7891, 53953, 31270, 4196, 2118, 7001, 26492, 3696, 26693, 6120],\n"," 250: [7215, 8643, 4280, 1496, 1408, 7046, 4564, 362, 515, 1727],\n"," 251: [1373, 2393, 329, 5944, 1909, 2094, 4121, 3175, 1479, 7649],\n"," 252: [356, 940, 8235, 1198, 1035, 1784, 920, 110, 1, 1250],\n"," 253: [3257, 1883, 8905, 2912, 6977, 5824, 7438, 1304, 6185, 2764],\n"," 254: [2528, 1129, 1690, 198, 27660, 1748, 2529, 5046, 1301, 2009],\n"," 255: [1784, 539, 1393, 1101, 2671, 5299, 4205, 236, 3259, 1721],\n"," 256: [1784, 532, 2396, 2160, 1953, 2912, 1193, 7215, 7347, 7160],\n"," 257: [1276, 2912, 6, 2871, 3654, 377, 3468, 1617, 1213, 1387],\n"," 258: [380, 2947, 33679, 377, 648, 95, 3623, 1370, 165, 3082],\n"," 259: [1259, 6798, 5686, 4564, 8202, 4085, 6297, 1081, 5673, 7247],\n"," 260: [1690, 5445, 1274, 1387, 2529, 2916, 2288, 2985, 3527, 1129],\n"," 261: [5445, 1214, 2529, 1240, 541, 1129, 589, 6979, 2528, 1690],\n"," 262: [5618, 8253, 31660, 7064, 48082, 7577, 7067, 25805, 4294, 8235],\n"," 263: [1091, 4306, 34332, 1101, 50792, 7007, 8636, 1573, 2723, 3752],\n"," 264: [5299, 3270, 2671, 339, 1784, 11, 468, 852, 8969, 7],\n"," 265: [8593, 46430, 5252, 64231, 6280, 60237, 2540, 7040, 7031, 8733],\n"," 266: [5686, 1224, 1059, 1883, 8643, 30850, 970, 5975, 7215, 4464],\n"," 267: [1953, 1263, 1276, 1161, 1250, 1693, 6787, 1207, 4349, 3504],\n"," 268: [1544, 2001, 1918, 2000, 2826, 2490, 2002, 442, 5459, 163],\n"," 269: [2080, 4306, 2054, 42734, 1022, 5452, 588, 64652, 2733, 6137],\n"," 270: [1196, 1198, 2115, 1291, 33493, 316, 1127, 1200, 5378, 2628],\n"," 271: [2662, 6882, 1690, 26513, 2722, 5523, 5822, 64234, 208, 3175],\n"," 272: [6003, 3535, 2313, 1213, 1193, 3148, 3476, 3342, 7123, 27706],\n"," 273: [316, 780, 1616, 7007, 5445, 1917, 208, 1690, 442, 1580],\n"," 274: [6183, 6750, 7835, 7055, 7049, 5742, 3144, 61123, 63119, 6696],\n"," 275: [1276, 1084, 1953, 912, 1254, 3424, 920, 7080, 969, 2871],\n"," 276: [38061, 51255, 51709, 2723, 532, 40732, 5945, 2490, 6902, 4956],\n"," 277: [1198, 260, 1200, 1339, 589, 1387, 1210, 1240, 377, 2987],\n"," 278: [3194, 3874, 1264, 6344, 2396, 26228, 27797, 7011, 427, 509],\n"," 279: [49932, 7044, 2594, 1094, 48082, 7123, 4848, 3476, 5673, 6440],\n"," 280: [586, 7395, 5945, 7247, 837, 1073, 7834, 6297, 6385, 42015],\n"," 281: [6584, 532, 2371, 7007, 6993, 3275, 1912, 3685, 5553, 911],\n"," 282: [1784, 1573, 50792, 4027, 5693, 1380, 3259, 587, 7701, 3481],\n"," 285: [1235, 1, 2065, 3429, 4306, 7206, 2291, 471, 1079, 7834],\n"," 286: [1129, 5445, 6979, 5903, 5881, 1690, 2528, 442, 198, 2529],\n"," 287: [1090, 1287, 1208, 3100, 1276, 1953, 2028, 3578, 1250, 1204],\n"," 288: [56915, 2045, 5076, 8850, 32062, 8534, 3647, 1551, 1595, 7166],\n"," 289: [48696, 47423, 48738, 57669, 52604, 50274, 7044, 36529, 48304, 6187],\n"," 290: [2987, 1220, 6377, 4306, 4121, 2366, 380, 40339, 44022, 377],\n"," 291: [1950, 1953, 1942, 3504, 920, 3095, 1276, 1263, 1213, 1254],\n"," 292: [40339, 5218, 45074, 52287, 47264, 44022, 5444, 42734, 2141, 4016],\n"," 293: [1036, 3386, 2912, 7007, 517, 1339, 1213, 6, 3130, 1208],\n"," 294: [47044, 4034, 27831, 6003, 38061, 319, 44761, 5027, 6503, 4011],\n"," 295: [8923, 26265, 4464, 65126, 2366, 1264, 7215, 1277, 1019, 7247],\n"," 296: [1784, 33437, 6620, 1358, 1953, 36535, 1617, 110, 1693, 5686],\n"," 297: [4341, 36708, 2587, 7048, 3752, 2788, 2706, 1091, 7102, 6753],\n"," 298: [27660, 7099, 8426, 6350, 8253, 5072, 5618, 4850, 31184, 31660],\n"," 300: [3360, 1957, 5644, 914, 1035, 6565, 1925, 3098, 3361, 477],\n"," 301: [1784, 1805, 6787, 6003, 532, 3510, 1747, 5989, 1883, 1617],\n"," 302: [415, 2133, 4121, 3763, 1610, 6558, 8634, 3584, 3269, 349],\n"," 303: [1208, 2010, 1206, 1884, 1235, 923, 1161, 928, 6184, 1254],\n"," 304: [5015, 1950, 2908, 3111, 3152, 1185, 1942, 7078, 2929, 25952],\n"," 305: [1073, 7247, 8643, 1028, 515, 2804, 6798, 3489, 2087, 34],\n"," 306: [2133, 1968, 3210, 1513, 1380, 3552, 2248, 1257, 1923, 1777],\n"," 307: [1208, 593, 1090, 2648, 1253, 1953, 1250, 2529, 3551, 7387],\n"," 308: [586, 1073, 3988, 2804, 837, 30793, 2054, 2161, 2953, 1302],\n"," 309: [50792, 1784, 1883, 1265, 1101, 3275, 1721, 1409, 5989, 367],\n"," 310: [532, 45, 59594, 51903, 5673, 50792, 51255, 42015, 4880, 3481],\n"," 311: [3257, 1721, 1883, 1408, 1727, 50792, 1101, 42015, 55995, 1496],\n"," 312: [7044, 2076, 5105, 49932, 3741, 1104, 7700, 3730, 3788, 5291],\n"," 313: [912, 1784, 1235, 7215, 1247, 920, 1721, 1276, 4027, 1358],\n"," 314: [1235, 4914, 955, 6650, 2729, 6783, 5792, 3168, 1202, 951],\n"," 315: [54978, 6815, 3168, 1264, 7044, 1597, 1805, 26803, 5945, 4880],\n"," 316: [3227, 2438, 8330, 64327, 5416, 1432, 3184, 1473, 1112, 4635],\n"," 317: [5445, 1748, 1214, 913, 1387, 1240, 2529, 32587, 6, 1625],\n"," 318: [2161, 7164, 56915, 2045, 8866, 5452, 51698, 6557, 2138, 32031],\n"," 319: [2528, 26513, 5944, 6979, 6645, 3699, 47997, 8644, 208, 173],\n"," 320: [1690, 8644, 1129, 2528, 5502, 3300, 6645, 2662, 1590, 2288],\n"," 321: [1200, 1240, 1214, 1690, 5445, 780, 260, 1127, 1196, 1544],\n"," 322: [337, 48082, 47725, 1801, 6003, 1658, 36477, 8643, 5051, 1073],\n"," 323: [909, 1084, 3435, 1953, 920, 25773, 1284, 942, 25757, 900],\n"," 324: [30810, 1265, 1784, 6003, 1883, 7361, 48082, 1658, 5673, 2594],\n"," 325: [33437, 27831, 3020, 1249, 4901, 7981, 2819, 36529, 4383, 6185],\n"," 326: [7783, 7278, 55668, 1825, 60286, 794, 3162, 5745, 4352, 2374],\n"," 327: [1883, 26422, 5686, 7088, 8190, 6139, 8183, 6117, 26527, 4529],\n"," 328: [1690, 5445, 480, 1127, 2528, 4370, 8644, 1210, 3471, 1129],\n"," 329: [50792, 26491, 1378, 2587, 53349, 3184, 1473, 1304, 3836, 5706],\n"," 330: [2133, 2011, 1198, 4564, 2406, 2987, 4799, 380, 1097, 1259],\n"," 331: [48082, 2997, 4878, 1199, 1265, 3556, 6003, 4873, 1235, 1921],\n"," 332: [1101, 1580, 1784, 1544, 1894, 11, 5989, 34332, 532, 4306],\n"," 333: [5686, 7044, 7123, 1208, 3476, 1161, 3342, 2594, 2427, 665],\n"," 334: [6558, 2369, 2133, 2468, 5500, 2587, 3210, 46970, 1541, 5969],\n"," 335: [6003, 1784, 6620, 2858, 2997, 356, 38061, 48082, 1225, 6385],\n"," 336: [42007, 236, 539, 186, 1101, 33669, 339, 2671, 5957, 61071],\n"," 337: [1617, 2858, 2959, 1259, 1953, 2912, 6003, 3020, 7361, 6],\n"," 338: [1953, 32587, 858, 1276, 50, 1036, 1213, 923, 1287, 7438],\n"," 339: [1036, 377, 7007, 733, 5027, 1610, 1370, 37477, 6, 996],\n"," 340: [5673, 1235, 2125, 1247, 5299, 2671, 2065, 1658, 1784, 1441],\n"," 341: [5051, 5878, 5673, 3320, 1784, 3194, 1873, 2952, 31956, 6192],\n"," 342: [3275, 1953, 4262, 1221, 6, 1617, 5464, 1213, 3735, 33437],\n"," 343: [377, 780, 1127, 1036, 1610, 3256, 3204, 1200, 1240, 1544],\n"," 344: [1276, 1250, 1953, 1084, 2728, 1950, 2871, 1254, 1262, 1263],\n"," 345: [2987, 2161, 2193, 4275, 2046, 45722, 3889, 8810, 1544, 6539],\n"," 346: [1784, 2912, 48082, 8783, 50792, 1721, 928, 31, 2160, 7215],\n"," 347: [2161, 2116, 2087, 2005, 7164, 31660, 551, 2054, 7046, 1282],\n"," 348: [3257, 31, 4326, 8533, 2396, 1727, 7701, 27831, 1883, 20],\n"," 349: [8643, 8905, 7247, 4564, 5452, 1277, 30816, 56167, 5975, 1380],\n"," 350: [1244, 1247, 5673, 3307, 955, 2065, 919, 7136, 235, 909],\n"," 351: [3521, 1202, 6783, 4914, 3168, 7135, 3819, 5673, 5792, 2303],\n"," 352: [974, 1784, 3259, 339, 1101, 539, 440, 50802, 4305, 6155],\n"," 353: [32587, 2912, 1953, 1036, 1089, 6185, 3275, 163, 1617, 7438],\n"," 354: [1912, 1711, 8373, 8948, 7162, 8533, 1277, 7160, 38798, 1784],\n"," 355: [1953, 1089, 1213, 1276, 6, 2912, 2529, 50794, 1036, 1208],\n"," 356: [11, 2396, 8943, 3874, 1784, 27797, 2268, 5051, 1457, 5673],\n"," 357: [65133, 7249, 7231, 1516, 7220, 1528, 1532, 7213, 7207, 7191],\n"," 358: [1690, 1127, 2288, 33493, 1129, 1320, 5445, 2393, 2021, 5944],\n"," 359: [5673, 48082, 1464, 1784, 1658, 30810, 6385, 3067, 5617, 7044],\n"," 360: [2396, 1277, 1224, 3079, 2690, 31694, 40629, 7579, 39, 6027],\n"," 361: [1264, 7698, 7831, 9011, 1254, 7044, 5854, 6847, 3424, 7835],\n"," 362: [1748, 1625, 2594, 6003, 2858, 32587, 3476, 2291, 6953, 2997],\n"," 363: [1089, 3275, 50, 1036, 1206, 1625, 1213, 2529, 1617, 165],\n"," 364: [4262, 3275, 1213, 1617, 5464, 48516, 6, 858, 1089, 1693],\n"," 365: [532, 6424, 27797, 4242, 4602, 1639, 1484, 7415, 166, 5968],\n"," 366: [3087, 36708, 2683, 2423, 344, 367, 2804, 2723, 34332, 4184],\n"," 367: [1925, 5975, 4326, 2919, 920, 4337, 4033, 6787, 7162, 7303],\n"," 368: [4956, 4085, 8916, 3039, 7831, 33639, 81, 6297, 8528, 1091],\n"," 369: [1036, 1089, 50, 5027, 37477, 7438, 6, 2490, 1213, 1617],\n"," 370: [5706, 2468, 26509, 26527, 4529, 5926, 61071, 2371, 2133, 2163],\n"," 371: [1270, 4027, 1197, 2692, 2987, 2580, 1235, 1073, 1, 356],\n"," 372: [260, 1200, 480, 1214, 33493, 1240, 2115, 2628, 5378, 1127],\n"," 373: [4306, 1784, 356, 595, 1028, 1, 6297, 1197, 4027, 919],\n"," 375: [420, 4306, 36708, 2723, 5452, 34332, 2887, 5493, 5497, 44022],\n"," 376: [1274, 5445, 1690, 2528, 27660, 1129, 2916, 198, 316, 2529],\n"," 377: [1263, 1208, 1230, 1213, 912, 909, 3168, 928, 7044, 356],\n"," 378: [1276, 2028, 1262, 3468, 1953, 3654, 599, 2529, 969, 1233],\n"," 379: [1625, 593, 1214, 2912, 1387, 8950, 6, 1240, 3551, 5445],\n"," 380: [6934, 442, 8636, 208, 3889, 2094, 5254, 61350, 2826, 34150],\n"," 381: [3545, 1256, 7080, 1947, 1250, 909, 3424, 3507, 2971, 25757],\n"," 382: [517, 480, 2987, 1693, 3269, 4306, 2764, 5445, 5881, 367],\n"," 383: [7748, 1273, 30803, 6023, 3925, 3741, 1916, 7700, 2964, 1176],\n"," 384: [1784, 1101, 2302, 539, 1883, 4621, 1393, 3259, 532, 4069],\n"," 385: [2396, 3386, 1277, 1225, 1095, 30812, 2268, 2132, 4464, 1959],\n"," 386: [8533, 6942, 8969, 4776, 7149, 2764, 3257, 60336, 45707, 65091],\n"," 387: [5283, 1091, 46970, 3617, 367, 7346, 47122, 35836, 3263, 4015],\n"," 388: [1625, 2959, 2762, 296, 3476, 2692, 1617, 2912, 1748, 3510],\n"," 389: [5971, 8253, 7099, 26776, 27731, 26662, 37857, 31660, 2294, 6093],\n"," 390: [2987, 1148, 6377, 38038, 44022, 2139, 2366, 1223, 2138, 2761],\n"," 391: [1101, 11, 3259, 1894, 597, 3269, 3257, 3270, 539, 2470],\n"," 392: [858, 1213, 1036, 3275, 4262, 5445, 1240, 1573, 2912, 1089],\n"," 393: [5027, 2764, 6185, 7007, 517, 4383, 380, 2490, 996, 1432],\n"," 394: [39, 186, 2248, 3270, 2100, 236, 5299, 357, 1307, 587],\n"," 395: [1625, 6, 1276, 1693, 2912, 150, 1617, 1213, 1036, 2529],\n"," 396: [3948, 231, 344, 3752, 2706, 6763, 466, 43919, 367, 5541],\n"," 397: [1053, 1683, 7094, 427, 41617, 509, 4410, 2396, 3457, 7044],\n"," 398: [1210, 940, 1291, 2115, 2716, 2193, 2987, 1270, 2968, 7153],\n"," 399: [2133, 1091, 7007, 1968, 3130, 2587, 367, 50792, 1573, 7381],\n"," 400: [1199, 6003, 1921, 4467, 2987, 1206, 4027, 1748, 27904, 27660],\n"," 401: [62788, 54910, 2315, 5478, 6966, 25807, 7845, 7245, 48678, 330],\n"," 402: [36529, 5464, 5010, 33437, 733, 32029, 163, 2023, 8972, 1408],\n"," 403: [1265, 4027, 1923, 532, 3948, 2371, 6807, 1080, 367, 4011],\n"," 404: [1240, 1036, 1200, 2366, 1214, 2529, 786, 1690, 6185, 2490],\n"," 405: [2138, 1713, 5452, 6297, 6557, 4306, 2090, 2045, 31700, 2139],\n"," 406: [3257, 1597, 3269, 1101, 1393, 736, 3259, 380, 11, 517],\n"," 407: [165, 23, 8373, 648, 8665, 7007, 40959, 33679, 996, 5027],\n"," 408: [608, 1235, 296, 4027, 50792, 1658, 3168, 1245, 1784, 1288],\n"," 409: [6557, 5452, 2733, 31700, 6137, 47384, 7262, 61071, 26828, 2045],\n"," 410: [3259, 1393, 8533, 1883, 1784, 168, 1721, 6155, 3270, 2396],\n"," 411: [1213, 5673, 5954, 8951, 5051, 532, 45, 6724, 36529, 4034],\n"," 412: [2529, 1206, 2959, 1748, 1240, 628, 5445, 8950, 1214, 480],\n"," 413: [928, 903, 6650, 913, 4914, 3435, 3788, 908, 1254, 6783],\n"," 414: [3020, 4027, 33437, 50, 6003, 7367, 3556, 1245, 1358, 5673],\n"," 415: [5673, 2396, 5686, 48082, 1235, 4027, 1784, 1658, 8273, 3210],\n"," 416: [1101, 1307, 339, 1541, 2406, 1091, 6155, 2100, 1777, 539],\n"," 417: [1235, 1265, 4027, 919, 1259, 2065, 30810, 6620, 1073, 2291],\n"," 418: [532, 7044, 6815, 7235, 3685, 1912, 6584, 36529, 20, 54978],\n"," 419: [1960, 2728, 1287, 1262, 2067, 1408, 1959, 1293, 151, 1250],\n"," 420: [5673, 337, 235, 1784, 5989, 3897, 6620, 5686, 8533, 2324],\n"," 421: [1784, 5989, 1393, 1, 1721, 4027, 2987, 7215, 1101, 4306],\n"," 422: [377, 349, 1127, 1291, 2115, 1275, 316, 1370, 7007, 161],\n"," 424: [7088, 7700, 6660, 4422, 2927, 3091, 5291, 2732, 5147, 26055],\n"," 425: [3275, 2023, 2580, 4027, 858, 4262, 367, 21, 532, 784],\n"," 426: [33493, 1274, 51709, 53519, 494, 52281, 1301, 7108, 33437, 2393],\n"," 427: [2912, 1276, 1227, 1953, 33437, 2871, 1213, 1209, 2764, 2529],\n"," 428: [1214, 589, 1690, 377, 1387, 480, 8810, 1320, 2288, 4121],\n"," 429: [5027, 517, 2764, 5388, 5867, 532, 6185, 7325, 1783, 1432],\n"," 430: [517, 47044, 380, 3623, 33679, 377, 996, 165, 5027, 648],\n"," 431: [2054, 44022, 2137, 2139, 661, 2080, 49647, 2138, 1025, 2116],\n"," 432: [2764, 517, 7160, 4776, 1805, 6185, 6977, 5767, 1912, 26989],\n"," 433: [5299, 2671, 539, 236, 186, 2424, 42007, 1307, 6155, 36525],\n"," 434: [34150, 31221, 8636, 1591, 43928, 3879, 442, 5609, 7845, 31696],\n"," 435: [198, 1129, 1690, 27660, 1240, 3863, 1301, 2594, 2288, 5853],\n"," 436: [5027, 6185, 996, 37477, 163, 2490, 3386, 33437, 5507, 7438],\n"," 437: [1912, 7044, 3275, 4027, 1234, 36529, 6003, 1805, 27831, 3362],\n"," 438: [1499, 1626, 4044, 50445, 4224, 547, 5880, 1004, 2835, 990],\n"," 439: [1784, 1263, 3194, 7160, 5686, 30812, 1213, 26527, 4529, 1276],\n"," 440: [1953, 6, 48516, 1276, 4262, 1208, 3275, 3020, 2023, 3362],\n"," 441: [1036, 1625, 2912, 1214, 5445, 1240, 2529, 2959, 32587, 1690],\n"," 443: [2912, 1617, 50, 1089, 1953, 47, 3362, 6, 1213, 48516],\n"," 444: [1784, 7215, 1721, 224, 593, 1956, 4920, 3259, 3100, 587],\n"," 445: [4993, 2116, 2987, 6947, 1204, 110, 260, 1198, 34, 1287],\n"," 446: [1240, 50, 5445, 2529, 1089, 1625, 1214, 1206, 32, 32587],\n"," 447: [1019, 2097, 1301, 2021, 7842, 4467, 2987, 3461, 924, 1073],\n"," 448: [3168, 1784, 1235, 54978, 3342, 26803, 1264, 32591, 2580, 26199],\n"," 449: [1339, 532, 39446, 3275, 51709, 2288, 2455, 517, 50804, 8874],\n"," 450: [4673, 7004, 798, 173, 2625, 51709, 8810, 2367, 2490, 7007],\n"," 451: [46855, 1178, 7700, 5686, 1208, 26131, 8190, 4826, 1222, 1262],\n"," 452: [380, 8810, 3204, 3701, 5027, 1690, 2001, 517, 7007, 1320],\n"," 453: [235, 4014, 1176, 2427, 4973, 1273, 6660, 1235, 199, 3168],\n"," 454: [838, 3079, 4246, 7579, 31694, 8969, 3270, 168, 8643, 468],\n"," 455: [3386, 165, 2058, 50, 33437, 2912, 3275, 7007, 1617, 996],\n"," 456: [2594, 3863, 1805, 2455, 4390, 1264, 53519, 5881, 32587, 52281],\n"," 458: [1, 8961, 6377, 1812, 8783, 4306, 551, 27660, 1073, 45730],\n"," 459: [1748, 3204, 1387, 2662, 2160, 53000, 27660, 2288, 43928, 1274],\n"," 460: [1036, 377, 1387, 1339, 1214, 2912, 480, 1208, 517, 1610],\n"," 461: [1784, 1265, 543, 6003, 4027, 4306, 5989, 337, 11, 1101],\n"," 462: [1276, 2268, 1207, 1953, 920, 913, 1784, 1950, 969, 1959],\n"," 463: [2371, 3275, 1912, 51255, 2467, 4262, 908, 1213, 1234, 380],\n"," 464: [4306, 4121, 8961, 3836, 380, 2761, 1772, 2468, 34332, 2161],\n"," 465: [3476, 3168, 42632, 7044, 7981, 48516, 7160, 48304, 45, 36529],\n"," 466: [1196, 260, 2011, 1200, 1240, 2987, 5378, 480, 1274, 33493],\n"," 467: [377, 1274, 2288, 2528, 1129, 173, 2529, 338, 442, 5445],\n"," 468: [8970, 30812, 337, 1185, 6003, 2313, 7160, 2396, 2291, 1094],\n"," 469: [45186, 51884, 8533, 44195, 39381, 37733, 48780, 50005, 59315, 5686],\n"," 470: [8950, 1921, 49932, 1464, 2594, 48082, 1884, 3863, 1161, 3788],\n"," 471: [2081, 2080, 2139, 1022, 2078, 1028, 1025, 6377, 1029, 596],\n"," 472: [1025, 2078, 2137, 6232, 2081, 2080, 2139, 2033, 1566, 1282],\n"," 473: [1405, 36708, 367, 3752, 2587, 2788, 2706, 8596, 7048, 532],\n"," 474: [2530, 5758, 6835, 3576, 2614, 61350, 8830, 2364, 8615, 6574],\n"," 475: [1235, 1206, 319, 4467, 1321, 532, 2010, 7387, 2455, 2413],\n"," 476: [51709, 32031, 26513, 5881, 53000, 1690, 34150, 8865, 2761, 31696],\n"," 477: [33166, 1208, 3020, 288, 1206, 5464, 1953, 778, 3535, 3275],\n"," 479: [2672, 2594, 8950, 1625, 5388, 7001, 3863, 2529, 5867, 5445],\n"," 480: [442, 173, 377, 798, 8810, 4121, 33493, 786, 1320, 6503],\n"," 481: [1912, 2764, 2587, 2264, 1658, 81, 6708, 175, 431, 1597],\n"," 482: [4956, 62956, 62999, 51698, 7247, 52287, 57504, 58105, 60937, 32296],\n"," 483: [1597, 1393, 8533, 31, 11, 1784, 1101, 6155, 6942, 42015],\n"," 484: [50792, 4027, 7444, 7007, 1573, 4621, 5686, 1221, 1265, 1208],\n"," 485: [924, 8950, 1206, 2529, 1301, 1276, 47, 928, 5105, 2010],\n"," 486: [40819, 7160, 6787, 2313, 356, 5989, 7395, 4033, 40278, 33166],\n"," 487: [4027, 1235, 5673, 235, 1247, 1265, 1784, 2065, 608, 1916],\n"," 488: [1544, 1240, 316, 3471, 1200, 2366, 1097, 1214, 780, 1690],\n"," 489: [1927, 920, 1953, 1959, 1090, 1950, 3100, 1925, 1944, 912],\n"," 490: [3361, 3360, 586, 4085, 3552, 5139, 2133, 1777, 4322, 4936],\n"," 491: [16, 1953, 6, 48516, 3735, 3006, 3275, 1084, 50, 7160],\n"," 492: [920, 3100, 3468, 1953, 858, 1263, 1222, 1959, 1204, 356],\n"," 493: [58303, 4776, 50274, 56001, 56607, 1810, 3194, 7044, 25, 51903],\n"," 494: [7235, 319, 4210, 27317, 2912, 49932, 3863, 1617, 6283, 1805],\n"," 495: [1784, 8643, 3259, 31, 4280, 3526, 7215, 4464, 2396, 3260],\n"," 496: [50, 1213, 2912, 1729, 3275, 7438, 2959, 2542, 1617, 1912],\n"," 497: [6, 1953, 3020, 50, 1213, 2023, 3535, 2529, 48516, 1199],\n"," 498: [1235, 1784, 7215, 2804, 5673, 969, 3210, 1259, 6003, 3504],\n"," 499: [1276, 235, 6783, 1304, 1235, 3168, 1213, 47306, 7700, 923],\n"," 500: [3435, 3334, 913, 6047, 942, 8044, 7216, 7223, 2182, 7217],\n"," 501: [349, 494, 3256, 2115, 733, 165, 1544, 50445, 836, 1370],\n"," 502: [50792, 532, 2316, 1784, 31, 224, 367, 1441, 7444, 8373],\n"," 503: [33437, 8917, 54272, 380, 3752, 1091, 36708, 32596, 44022, 34332],\n"," 504: [2470, 2125, 1101, 1088, 1307, 3270, 1188, 2245, 5299, 1777],\n"," 505: [1249, 1784, 1721, 50792, 1573, 1883, 36529, 31660, 2316, 48082],\n"," 506: [31804, 4956, 6503, 103, 170, 2793, 2413, 1676, 2662, 6966],\n"," 507: [1883, 7386, 3130, 2950, 1277, 2467, 6798, 8905, 6297, 1496],\n"," 508: [1214, 589, 1240, 480, 260, 377, 8810, 1036, 1210, 1320],\n"," 509: [48082, 59387, 53161, 46976, 55814, 57464, 58490, 42015, 54259, 47610],\n"," 510: [1393, 1784, 2396, 1721, 1101, 1959, 11, 1183, 539, 920],\n"," 511: [3257, 26989, 63772, 45412, 54978, 1408, 1784, 3418, 49007, 3269],\n"," 512: [6660, 2927, 2732, 8197, 4194, 30803, 1211, 1305, 7088, 7748],\n"," 513: [6241, 59985, 31613, 5271, 2556, 56908, 195, 8671, 2591, 4147],\n"," 515: [903, 930, 1267, 1254, 1086, 1084, 2186, 1212, 913, 1250],\n"," 516: [1690, 2288, 2662, 1909, 3300, 1320, 2722, 3175, 5459, 7845],\n"," 517: [6977, 27828, 517, 2912, 6185, 33905, 39896, 26159, 694, 6585],\n"," 518: [36529, 1358, 36517, 48082, 3504, 337, 4027, 5673, 1199, 6787],\n"," 520: [1235, 1784, 858, 1953, 1230, 1276, 3168, 4027, 3504, 608],\n"," 521: [33437, 1625, 2912, 2058, 1617, 6185, 7007, 5867, 517, 4383],\n"," 522: [3468, 1276, 2871, 1953, 3362, 3168, 1254, 908, 4329, 1912],\n"," 523: [1784, 4027, 3504, 1235, 5673, 1244, 3685, 532, 6440, 6993],\n"," 524: [6787, 36517, 1207, 1193, 1213, 3504, 45, 1950, 4326, 3168],\n"," 525: [1036, 50794, 377, 4210, 2529, 2912, 1610, 47, 1214, 1387],\n"," 526: [3386, 6787, 1784, 2268, 2302, 150, 1101, 1393, 37477, 3100],\n"," 527: [4306, 2987, 2161, 1073, 6377, 1282, 595, 594, 4886, 551],\n"," 529: [2858, 3168, 1199, 30810, 2997, 48082, 149, 6003, 1235, 3556],\n"," 530: [48943, 49007, 3269, 25789, 51314, 8503, 8583, 5499, 4964, 5524],\n"," 531: [517, 26488, 5388, 7007, 26746, 7445, 27828, 4238, 5824, 2764],\n"," 532: [1212, 3741, 49932, 3788, 928, 149, 7123, 26231, 7044, 2203],\n"," 533: [60074, 57640, 62956, 60161, 60069, 61160, 61132, 60937, 54278, 53993],\n"," 534: [49278, 50792, 1625, 733, 7007, 3275, 1883, 4776, 1805, 42015],\n"," 535: [2732, 7700, 3645, 6650, 8239, 4194, 6035, 7238, 5333, 7088],\n"," 536: [1198, 1196, 1721, 316, 1259, 1784, 3100, 356, 1127, 3578],\n"," 537: [3386, 527, 1959, 6787, 356, 3100, 1090, 150, 30812, 110],\n"," 539: [1784, 1441, 1393, 2125, 2671, 1101, 186, 3752, 468, 4246],\n"," 540: [1970, 54910, 62788, 4138, 26265, 7117, 5206, 4561, 7719, 5862],\n"," 541: [52005, 47830, 50858, 54958, 60566, 2159, 26746, 6736, 1422, 8062],\n"," 542: [969, 7215, 1276, 1784, 1959, 1035, 1950, 1287, 1953, 3100],\n"," 543: [62999, 54272, 7247, 62956, 49274, 52287, 53460, 44022, 33615, 34332],\n"," 544: [1729, 1213, 1036, 6, 288, 1206, 2529, 2912, 32587, 4262],\n"," 545: [1091, 2987, 2699, 5459, 4275, 442, 2490, 1049, 2001, 4121],\n"," 546: [2587, 1473, 3184, 43558, 46970, 4242, 532, 7004, 56274, 1432],\n"," 547: [3386, 95, 6503, 7007, 5445, 1544, 165, 3256, 1573, 6185],\n"," 548: [51255, 367, 51575, 2371, 380, 2723, 3275, 32587, 3301, 7007],\n"," 549: [2912, 1617, 1036, 517, 2371, 47, 377, 3551, 50, 1610],\n"," 550: [3307, 235, 7215, 2291, 8235, 2871, 2936, 928, 3468, 1084],\n"," 551: [235, 923, 3089, 928, 5995, 1084, 3504, 47306, 3741, 6620],\n"," 552: [3210, 31, 3071, 62, 2729, 5792, 4027, 2912, 3688, 7346],\n"," 553: [4011, 5027, 532, 37477, 2001, 5541, 5049, 2490, 7007, 3275],\n"," 554: [3168, 3741, 319, 1202, 6783, 7700, 7587, 2427, 6581, 8197],\n"," 555: [5673, 2010, 48082, 665, 5792, 4956, 8235, 1253, 2729, 6650],\n"," 556: [6798, 7247, 50796, 6245, 26265, 1605, 6297, 1057, 8919, 55732],\n"," 557: [1912, 3685, 27797, 50949, 478, 3876, 4879, 166, 5968, 2484],\n"," 558: [49130, 52460, 58047, 7215, 1408, 42015, 4326, 62155, 54997, 46855],\n"," 559: [7001, 5853, 541, 8830, 8136, 1214, 517, 32213, 6283, 1240],\n"," 560: [3740, 6581, 5026, 7720, 911, 8202, 2483, 1215, 1235, 31660],\n"," 561: [592, 1377, 43928, 27660, 839, 2641, 46530, 2640, 153, 3877],\n"," 562: [1597, 2764, 2802, 3210, 6385, 7149, 532, 1805, 6344, 7160],\n"," 563: [1784, 3362, 4027, 3168, 1358, 858, 1276, 923, 3100, 1213],\n"," 564: [5010, 5881, 33437, 1625, 37382, 161, 4776, 1784, 2058, 58025],\n"," 565: [5541, 2470, 2723, 36708, 380, 466, 2133, 34332, 3033, 4306],\n"," 566: [5673, 1784, 3504, 356, 1207, 2324, 7215, 1721, 6787, 1244],\n"," 567: [2587, 42015, 52973, 4776, 38499, 2396, 1224, 970, 2580, 3538],\n"," 568: [2987, 34, 2161, 4306, 55995, 1049, 52287, 8961, 1101, 32031],\n"," 569: [2912, 1036, 377, 1953, 3386, 6, 1610, 1387, 3551, 2529],\n"," 570: [1276, 3468, 6796, 858, 1084, 5989, 1784, 1221, 3362, 3100],\n"," 571: [1690, 1214, 1127, 2987, 1580, 1301, 480, 2021, 1909, 8810],\n"," 572: [532, 6815, 26788, 1784, 54978, 26803, 4529, 26527, 47274, 4681],\n"," 573: [5673, 3168, 7215, 4027, 1247, 1953, 34437, 3148, 5666, 3504],\n"," 574: [2105, 3745, 2987, 1544, 52287, 40339, 2528, 44022, 4306, 1049],\n"," 575: [43853, 3800, 5424, 712, 39703, 3227, 64327, 5416, 2438, 8330],\n"," 576: [1953, 858, 1276, 1084, 3100, 1263, 912, 1721, 30812, 2023],\n"," 577: [5049, 7004, 5027, 4085, 4673, 532, 2381, 37477, 3710, 380],\n"," 578: [2625, 61350, 1544, 8371, 27618, 60514, 2826, 61818, 4638, 48943],\n"," 579: [4306, 44022, 8961, 2161, 6003, 1, 32031, 6377, 33437, 380],\n"," 580: [380, 2490, 53972, 51255, 3275, 2001, 33679, 5418, 51709, 1918],\n"," 581: [1025, 4886, 2081, 6377, 2294, 1, 2080, 661, 1881, 2139],\n"," 582: [1253, 922, 2936, 1256, 2648, 7080, 8235, 2186, 3629, 8125],\n"," 583: [319, 5867, 2729, 6003, 1676, 532, 1784, 46855, 7007, 2529],\n"," 584: [2470, 5452, 1777, 4306, 2005, 7369, 2054, 586, 36708, 1894],\n"," 585: [4242, 7415, 1034, 2438, 5416, 64327, 3227, 8330, 43853, 403],\n"," 586: [319, 7361, 5617, 1202, 1658, 1199, 5792, 7044, 3925, 3168],\n"," 587: [1198, 1097, 5378, 33493, 2628, 1200, 2987, 2115, 1127, 3471],\n"," 588: [5969, 27797, 3874, 4956, 61071, 8598, 1484, 5970, 4280, 1873],\n"," 589: [6283, 51709, 1690, 1625, 2912, 1387, 7387, 33437, 1249, 1127],\n"," 590: [2115, 3471, 2987, 3175, 2717, 1270, 2003, 2133, 4121, 480],\n"," 591: [671, 6888, 5541, 4388, 532, 2723, 36708, 4591, 2163, 2804],\n"," 592: [2819, 1249, 1213, 4262, 163, 1729, 517, 2912, 50, 48516],\n"," 593: [517, 6, 2912, 1625, 2529, 1240, 1036, 1617, 3551, 50794],\n"," 594: [2987, 2161, 8961, 34, 44022, 6377, 1049, 2138, 2054, 6232],\n"," 595: [2023, 3275, 1912, 3893, 3362, 36529, 3685, 2580, 50, 3006],\n"," 596: [58303, 46559, 2313, 57669, 40278, 1950, 33903, 7700, 1259, 31410],\n"," 597: [7326, 63033, 39703, 712, 3800, 5424, 60526, 3386, 4776, 1597],\n"," 598: [3660, 3058, 3933, 6966, 5478, 4096, 3696, 5774, 63458, 7266],\n"," 599: [7080, 914, 4357, 7055, 1947, 25757, 915, 900, 26084, 4912],\n"," 600: [1953, 296, 1089, 3275, 750, 2529, 1276, 2366, 532, 4027],\n"," 601: [32296, 49278, 1375, 1376, 442, 5944, 2393, 26513, 6503, 5459],\n"," 602: [595, 1, 6093, 4886, 594, 588, 2761, 4294, 4306, 1282],\n"," 603: [5995, 3435, 923, 3741, 2313, 1950, 4432, 1953, 928, 912],\n"," 604: [2587, 7004, 5621, 861, 7048, 420, 34332, 5541, 27735, 7381],\n"," 605: [1259, 4027, 1784, 3168, 1235, 2858, 6620, 6385, 1276, 48082],\n"," 606: [1784, 1953, 1263, 1213, 296, 356, 1276, 3275, 5989, 3100],\n"," 607: [32587, 2023, 3275, 5010, 6, 1953, 3578, 1208, 1210, 1274],\n"," 608: [1136, 532, 2723, 1080, 466, 2791, 231, 1405, 3785, 6807],\n"," 609: [1784, 1721, 1959, 1883, 3100, 920, 2396, 912, 7215, 1234],\n"," 610: [1242, 1959, 1925, 1950, 1272, 6787, 7303, 1947, 3545, 920],\n"," 612: [420, 2470, 1894, 2001, 2471, 380, 7004, 5553, 1918, 7048],\n"," 613: [3424, 1276, 1084, 969, 2871, 1953, 1254, 1250, 913, 2804],\n"," 614: [1214, 589, 377, 3471, 780, 1127, 1690, 316, 1610, 5445],\n"," 616: [1200, 1214, 1339, 2826, 45730, 1240, 8783, 3994, 50445, 5502],\n"," 617: [5553, 4869, 517, 1783, 49007, 26989, 2764, 970, 1597, 55603],\n"," 618: [44761, 49651, 4011, 50792, 3275, 6708, 1304, 2542, 1234, 1953],\n"," 619: [1690, 380, 480, 208, 5445, 1127, 780, 3527, 1544, 2528],\n"," 620: [40819, 30812, 45, 6620, 41571, 1784, 2313, 509, 7160, 6003],\n"," 621: [51698, 57504, 52287, 36397, 27186, 31660, 62956, 56915, 5069, 32031],\n"," 622: [380, 5541, 466, 1784, 367, 543, 1091, 2791, 2723, 2716],\n"," 623: [4121, 3269, 7394, 4275, 1049, 62331, 2887, 3401, 181, 32076],\n"," 624: [4306, 36708, 367, 1, 8974, 44022, 4591, 1405, 1772, 7369],\n"," 625: [349, 2947, 3204, 3638, 1240, 1610, 3256, 26398, 1127, 3654],\n"," 627: [6714, 55603, 420, 532, 2468, 2587, 4242, 861, 2723, 1473],\n"," 628: [3100, 1231, 6787, 527, 1242, 1276, 356, 1090, 1959, 1250],\n"," 629: [1176, 2427, 1305, 5291, 5617, 34155, 7700, 8197, 2731, 5051],\n"," 630: [2133, 2406, 2716, 2470, 367, 4621, 1894, 3269, 1777, 1101],\n"," 631: [909, 1927, 900, 1929, 1950, 1944, 926, 3475, 1939, 912],\n"," 632: [2912, 4919, 3551, 928, 1248, 2917, 5424, 712, 3800, 39703],\n"," 633: [4998, 3741, 8094, 7981, 2912, 3424, 7587, 928, 7076, 3735],\n"," 634: [5944, 26513, 27618, 4121, 8371, 990, 4434, 3175, 3593, 4638],\n"," 635: [2587, 3263, 2082, 4341, 1777, 33646, 3361, 5103, 4799, 586],\n"," 636: [8533, 4033, 26614, 4901, 4234, 33437, 5010, 3053, 41571, 1249],\n"," 637: [7438, 5464, 8783, 50, 32587, 2912, 165, 377, 517, 33437],\n"," 638: [3641, 39659, 2777, 2773, 2771, 2760, 2758, 2755, 2744, 2743],\n"," 639: [8961, 44022, 32031, 2139, 33615, 2081, 8360, 5218, 34, 364],\n"," 640: [1200, 260, 5378, 2628, 1127, 2115, 1690, 2011, 2987, 1580],\n"," 641: [1200, 1240, 1580, 1214, 1690, 208, 2011, 1127, 5445, 2528],\n"," 642: [1274, 7458, 31660, 44022, 380, 34319, 27660, 442, 33437, 51575],\n"," 643: [2396, 1959, 1950, 1961, 920, 1964, 1185, 1293, 1956, 1936],\n"," 644: [1488, 5027, 4044, 7007, 442, 1499, 990, 2490, 377, 648],\n"," 645: [48943, 32076, 459, 3269, 1129, 4434, 55603, 6714, 5171, 26326],\n"," 646: [4886, 1282, 4306, 2143, 2116, 2987, 6377, 27660, 2761, 1],\n"," 647: [442, 4133, 2826, 6264, 2625, 4044, 60514, 8782, 8371, 3889],\n"," 648: [27564, 7738, 7270, 56908, 4817, 1564, 7707, 25832, 26521, 8671],\n"," 649: [367, 1091, 3752, 51575, 7381, 1573, 7004, 2723, 6014, 420],\n"," 650: [27797, 2484, 44058, 4879, 5968, 403, 166, 3876, 50949, 478],\n"," 651: [1235, 27416, 955, 5673, 3168, 7584, 3504, 27826, 953, 52],\n"," 652: [4912, 26084, 1947, 7055, 6732, 6345, 1380, 2941, 1932, 7714],\n"," 653: [3386, 924, 150, 1784, 1393, 1876, 8905, 1208, 4995, 1276],\n"," 654: [733, 3654, 3386, 5010, 3256, 836, 1408, 377, 1127, 2490],\n"," 655: [61071, 5686, 3037, 1772, 8919, 4956, 5452, 6724, 32591, 1220],\n"," 656: [7007, 5553, 55603, 6714, 50792, 49007, 5027, 3257, 26989, 3269],\n"," 657: [6783, 7135, 47306, 3801, 2065, 1276, 1202, 1658, 2927, 1916],\n"," 658: [5010, 33437, 1262, 36529, 40278, 527, 4033, 33162, 8977, 27397],\n"," 659: [3476, 49932, 8950, 1625, 2594, 7044, 628, 2912, 5105, 6],\n"," 660: [110, 3468, 3100, 1953, 3654, 2728, 1090, 2944, 1262, 1276],\n"," 661: [8830, 6120, 5758, 4689, 2364, 8894, 2793, 5556, 25798, 7845],\n"," 662: [1276, 3424, 969, 3194, 1235, 1084, 6993, 954, 1253, 8923],\n"," 663: [2366, 1208, 1387, 3654, 1610, 377, 2871, 1276, 2529, 1214],\n"," 664: [2138, 2143, 2161, 558, 5892, 2162, 7743, 2054, 26326, 673],\n"," 665: [6385, 5673, 5617, 2065, 4014, 6660, 4840, 5686, 5013, 6620],\n"," 666: [7387, 2912, 3476, 7001, 2455, 4210, 2288, 1387, 1321, 27317],\n"," 667: [54978, 1264, 6570, 4280, 1805, 26803, 2594, 3863, 53887, 26199],\n"," 668: [2529, 1301, 1748, 680, 1208, 1200, 541, 1274, 1690, 1240],\n"," 669: [1387, 1097, 1200, 1214, 3471, 1198, 1240, 3578, 2987, 260],\n"," 670: [2138, 517, 2987, 7160, 6297, 4280, 1264, 33437, 5027, 30793],\n"," 671: [3338, 4236, 27899, 6299, 7124, 59590, 34072, 6331, 8464, 4350],\n"," 672: [4027, 1784, 628, 1883, 2912, 1235, 1265, 1203, 31, 1597],\n"," 674: [26513, 5944, 61350, 6645, 47997, 208, 2808, 3959, 674, 27618],\n"," 675: [1784, 50, 7007, 2912, 532, 3275, 33437, 1213, 50792, 6787],\n"," 676: [539, 6155, 440, 1307, 5299, 42007, 2671, 3270, 597, 36525],\n"," 677: [165, 7007, 1616, 1370, 1036, 1573, 349, 8810, 3527, 23],\n"," 678: [7215, 517, 49007, 5867, 1496, 6003, 2467, 6724, 26265, 7007],\n"," 679: [2011, 32, 1200, 2716, 3471, 2021, 1097, 2987, 5445, 5459],\n"," 680: [733, 20, 5027, 6185, 33437, 7007, 161, 8665, 23, 996],\n"," 681: [2987, 3175, 380, 1198, 316, 260, 2094, 1544, 1196, 4275],\n"," 683: [26547, 861, 5621, 6709, 1918, 7004, 50153, 7108, 6582, 6387],\n"," 684: [1265, 48082, 2997, 2692, 4027, 38061, 1658, 7293, 4878, 4975],\n"," 685: [1196, 4027, 296, 1200, 33493, 165, 5378, 3275, 1240, 7438],\n"," 686: [2366, 6283, 2871, 912, 1321, 1127, 1610, 3740, 940, 1953],\n"," 688: [2028, 1208, 3654, 1263, 2871, 2944, 1231, 920, 3100, 5010],\n"," 689: [377, 836, 7007, 733, 1616, 3256, 6281, 49278, 6185, 1597],\n"," 690: [1784, 1883, 1101, 1393, 1721, 1894, 339, 11, 3270, 3259],\n"," 691: [6812, 2404, 4265, 798, 442, 4543, 6078, 4044, 2524, 26488],\n"," 693: [7215, 2803, 3259, 6879, 805, 3386, 1784, 3148, 3893, 3260],\n"," 694: [594, 6093, 7064, 4886, 4294, 4306, 1022, 3114, 6377, 1025],\n"," 695: [1784, 11, 224, 8373, 3258, 532, 8643, 6003, 2826, 469],\n"," 696: [1784, 1658, 48082, 587, 224, 532, 50792, 1265, 3893, 50],\n"," 697: [2438, 3227, 64327, 5416, 8330, 1432, 55603, 6714, 62721, 1824],\n"," 698: [969, 1247, 1235, 471, 6650, 8235, 4914, 8459, 915, 3037],\n"," 699: [4262, 1617, 1213, 7981, 33437, 33166, 1625, 1953, 3020, 1729],\n"," 700: [27706, 53161, 29, 5105, 7123, 7444, 26265, 49932, 3863, 48082],\n"," 701: [54978, 4390, 3101, 26746, 4088, 1645, 5553, 532, 2764, 6815],\n"," 702: [2315, 54910, 62788, 43011, 220, 27402, 7245, 7117, 8701, 1433],\n"," 703: [3210, 3243, 5541, 2133, 6558, 586, 2797, 5500, 7834, 7102],\n"," 704: [527, 8253, 31660, 1259, 31658, 4432, 36535, 928, 7153, 5686],\n"," 705: [6, 1617, 50, 2912, 1036, 1953, 33437, 2529, 517, 47],\n"," 706: [532, 43558, 2269, 466, 2587, 2706, 5541, 4085, 3386, 1278],\n"," 707: [1658, 5792, 175, 1912, 6003, 7011, 1902, 7361, 5673, 319],\n"," 708: [5445, 1274, 2528, 1690, 1129, 26513, 6645, 1676, 2021, 2117],\n"," 709: [377, 349, 2529, 1036, 1909, 733, 1214, 5445, 1240, 1127],\n"," 710: [1784, 1235, 356, 7215, 5673, 1265, 1230, 8235, 1197, 4306],\n"," 711: [6503, 367, 51575, 377, 3275, 32587, 555, 50, 7438, 33437],\n"," 712: [3100, 7160, 1784, 235, 1276, 27838, 4027, 110, 1961, 3148],\n"," 714: [1235, 1265, 48082, 5673, 4014, 2065, 6268, 199, 25805, 6620],\n"," 715: [1953, 6, 1276, 1213, 1266, 599, 2912, 3729, 7981, 3741],\n"," 716: [7925, 5291, 25995, 31660, 3654, 7482, 7700, 7302, 7766, 1217],\n"," 718: [1784, 26527, 4529, 4804, 3100, 1883, 5673, 5686, 3386, 8533],\n"," 719: [1101, 3259, 5452, 4621, 6155, 1409, 3269, 7007, 50792, 2699],\n"," 720: [1777, 1784, 1307, 1101, 2470, 2797, 2804, 1393, 2125, 543],\n"," 721: [7215, 2764, 5553, 60526, 2803, 49007, 4280, 1783, 3259, 5424],\n"," 723: [1784, 2858, 6003, 224, 50, 33437, 2366, 6953, 3168, 48082],\n"," 724: [5673, 1784, 1235, 2065, 3358, 1230, 1380, 2291, 4014, 3422],\n"," 725: [61071, 56671, 4984, 4971, 3778, 7269, 7278, 59000, 7312, 4825],\n"," 726: [1953, 1276, 1254, 1084, 6796, 2912, 4034, 2268, 3006, 3362],\n"," 727: [1784, 1393, 31, 1597, 2302, 1101, 532, 4306, 1883, 6385],\n"," 728: [1200, 260, 480, 3471, 1214, 316, 1097, 2529, 1387, 377],\n"," 729: [5957, 539, 2671, 8969, 6155, 357, 236, 3259, 5299, 42007],\n"," 730: [367, 4306, 8961, 1580, 34332, 1270, 2987, 1091, 442, 36708],\n"," 731: [2396, 43744, 4305, 6765, 7149, 50802, 2620, 64243, 1309, 7824],\n"," 732: [4973, 9010, 27790, 59118, 48082, 47725, 1784, 5051, 8533, 8254],\n"," 733: [5952, 480, 2826, 7458, 316, 260, 377, 1200, 1210, 1198],\n"," 734: [25840, 969, 3307, 8235, 4406, 1408, 2936, 3037, 7072, 940],\n"," 735: [1784, 1597, 5989, 1393, 7160, 224, 1961, 6385, 2396, 1358],\n"," 736: [1488, 996, 2278, 5027, 23, 648, 6185, 163, 47254, 20],\n"," 737: [5445, 3623, 292, 1690, 1129, 1616, 165, 1240, 2490, 1909],\n"," 738: [7007, 1129, 798, 5027, 1690, 1616, 1479, 5881, 3204, 3770],\n"," 739: [1036, 1240, 7007, 33437, 1200, 1214, 648, 50445, 6185, 836],\n"," 740: [1276, 1953, 912, 1213, 913, 1084, 920, 1250, 923, 954],\n"," 741: [3275, 1784, 6185, 3301, 7007, 1912, 3510, 50792, 532, 367],\n"," 742: [48082, 3535, 56782, 3020, 36529, 1259, 33437, 3168, 27397, 48997],\n"," 743: [1784, 532, 1597, 6385, 2580, 1968, 337, 586, 2133, 7007],\n"," 744: [1263, 1959, 1953, 1950, 1254, 909, 1944, 5060, 920, 1293],\n"," 745: [367, 532, 7048, 7834, 4085, 2804, 1405, 3130, 2302, 6957],\n"," 746: [8533, 2871, 4564, 1101, 4956, 1408, 4085, 1721, 1784, 50792],\n"," 748: [456, 5867, 31364, 4034, 2952, 7044, 63768, 2199, 5627, 59995],\n"," 749: [888, 40339, 7369, 2078, 1566, 4306, 49647, 661, 2081, 5882],\n"," 750: [1784, 1206, 6003, 1884, 4027, 50, 527, 1693, 2580, 3168],\n"," 751: [2947, 1127, 3638, 3256, 1544, 377, 494, 1036, 733, 1370],\n"," 752: [3386, 5989, 6947, 2467, 3256, 2987, 517, 1049, 95, 733],\n"," 753: [2529, 1214, 1276, 1200, 1301, 541, 924, 1213, 1208, 6],\n"," 754: [27797, 61071, 54144, 47047, 5166, 7129, 4991, 6549, 4165, 3531],\n"," 755: [531, 6660, 6713, 6724, 9011, 64957, 36535, 56915, 58105, 4172],\n"," 756: [4326, 6117, 27797, 45707, 65091, 4766, 1415, 60494, 60336, 6468],\n"," 757: [319, 1321, 3168, 38061, 532, 6815, 735, 1658, 7044, 51255],\n"," 758: [1408, 4042, 7458, 7894, 1378, 3654, 8977, 1304, 1204, 7047],\n"," 759: [2011, 2133, 1, 4306, 7046, 442, 1265, 3175, 4467, 1200],\n"," 761: [2133, 2005, 8961, 2115, 4275, 7007, 34332, 2987, 51575, 31],\n"," 762: [1198, 1196, 380, 4027, 1270, 1210, 1197, 1784, 1097, 2371],\n"," 763: [6753, 34, 3751, 8961, 4886, 38038, 745, 2761, 1223, 7118],\n"," 764: [319, 1884, 5792, 1162, 2729, 4027, 1079, 5673, 5451, 6815],\n"," 765: [3461, 4754, 5105, 53953, 3499, 3676, 49932, 928, 27317, 4658],\n"," 766: [1265, 1235, 471, 1304, 235, 4027, 48082, 5673, 750, 919],\n"," 767: [4304, 7124, 33072, 5670, 27899, 7256, 5101, 6299, 6062, 8464],\n"," 768: [47423, 5366, 52885, 26840, 56003, 59387, 53000, 48304, 51709, 5312],\n"," 769: [27797, 56060, 47274, 4681, 54978, 5271, 36511, 7129, 6171, 52037],\n"," 770: [1011, 2449, 8883, 65088, 641, 4057, 2037, 6557, 1848, 258],\n"," 771: [33679, 49278, 1408, 4121, 3654, 836, 316, 1479, 7007, 2524],\n"," 772: [3751, 38038, 44022, 2384, 586, 7247, 36708, 588, 34, 6377],\n"," 773: [31660, 3479, 6947, 1275, 1408, 4299, 3578, 6539, 733, 45722],\n"," 774: [909, 7215, 910, 3307, 4085, 1235, 955, 2936, 2935, 1953],\n"," 775: [39768, 3194, 8673, 63310, 32325, 3117, 32844, 1851, 62920, 4140],\n"," 776: [8459, 909, 1959, 6783, 1953, 3504, 1950, 2729, 1254, 7215],\n"," 777: [1214, 1301, 1208, 2529, 5881, 1206, 2366, 2021, 1690, 1127],\n"," 780: [1219, 2160, 3551, 2648, 25755, 2529, 7001, 1253, 1590, 3461],\n"," 781: [2291, 48082, 38061, 1235, 2065, 4027, 1259, 1215, 5673, 319],\n"," 782: [3210, 4027, 27831, 45, 38061, 1784, 52973, 2858, 532, 5666],\n"," 783: [3752, 1441, 1784, 2125, 5673, 543, 1091, 45106, 31685, 1777],\n"," 784: [7160, 33437, 27838, 1693, 8533, 3386, 6003, 5010, 6787, 3100],\n"," 785: [1259, 6003, 337, 517, 3148, 1276, 1617, 1206, 3168, 2858],\n"," 786: [5445, 6185, 4383, 50445, 2916, 6503, 8665, 377, 1488, 5516],\n"," 787: [4103, 5975, 3654, 1250, 590, 3471, 1960, 1408, 1204, 952],\n"," 788: [6966, 382, 31270, 52281, 58332, 30745, 7001, 2455, 53468, 63836],\n"," 789: [1784, 1207, 31, 5989, 5673, 7215, 2396, 235, 3100, 4027],\n"," 790: [5673, 7941, 2065, 7136, 6783, 955, 4194, 105, 1176, 215],\n"," 791: [2218, 3194, 1264, 7044, 5867, 2438, 8330, 3227, 5416, 64327],\n"," 792: [1276, 1036, 2912, 6, 1625, 1213, 1617, 6787, 1610, 1693],\n"," 793: [8961, 32031, 2987, 27660, 3114, 480, 2105, 52287, 3745, 2761],\n"," 794: [1, 1265, 2011, 2987, 2366, 3429, 3114, 1223, 745, 720],\n"," 795: [517, 2803, 3386, 2764, 1006, 6879, 2269, 3100, 3130, 1597],\n"," 796: [2396, 2071, 1542, 51694, 5673, 40629, 7579, 1277, 7311, 3079],\n"," 797: [4306, 4027, 1136, 8917, 380, 54272, 44022, 1259, 4886, 8961],\n"," 798: [5872, 4956, 60937, 6185, 61818, 51709, 1722, 1377, 2989, 61248],\n"," 799: [517, 3654, 1610, 1387, 33437, 6812, 3386, 5027, 2871, 7007],\n"," 800: [1912, 3275, 2542, 296, 36529, 2587, 970, 27831, 4776, 2764],\n"," 801: [4027, 8917, 6003, 532, 4011, 2580, 8533, 1784, 4591, 33437],\n"," 802: [2837, 3988, 42015, 4555, 1081, 3083, 2580, 31705, 49274, 27808],\n"," 803: [5051, 5673, 3893, 3874, 8598, 27797, 2218, 6055, 843, 844],\n"," 804: [6003, 1693, 33437, 32, 292, 8533, 356, 6947, 3981, 37382],\n"," 805: [380, 733, 442, 33679, 1747, 5010, 37477, 1883, 1370, 3981],\n"," 806: [1784, 6942, 468, 4246, 2671, 5673, 2125, 8643, 7, 3481],\n"," 807: [4466, 26688, 5815, 996, 26746, 1626, 377, 4044, 50153, 1382],\n"," 808: [186, 357, 1777, 1091, 39, 1639, 3752, 4447, 543, 33669],\n"," 809: [1274, 1748, 2529, 2009, 1214, 27660, 1206, 6283, 1240, 1301],\n"," 810: [4775, 5693, 2065, 587, 8202, 6660, 5351, 7444, 50792, 61071],\n"," 811: [26265, 5452, 2950, 1264, 26326, 4280, 5553, 2097, 459, 54978],\n"," 812: [955, 1235, 1247, 25750, 4914, 31923, 6650, 3521, 951, 750],\n"," 813: [1722, 10, 3638, 7569, 3082, 3984, 3635, 2989, 5872, 380],\n"," 814: [47306, 1207, 1259, 235, 2313, 6385, 1276, 41571, 337, 2324],\n"," 815: [6003, 3510, 2912, 1036, 1784, 5989, 2871, 1265, 3275, 1883],\n"," 816: [587, 1721, 1183, 7215, 7111, 3257, 1259, 897, 49007, 1271],\n"," 817: [3579, 1577, 1575, 1563, 1559, 1557, 1543, 5744, 8009, 1534],\n"," 818: [2819, 517, 8781, 4901, 43871, 59369, 45062, 6989, 4383, 7326],\n"," 819: [778, 1093, 36529, 1220, 2542, 6796, 3275, 4027, 3362, 1729],\n"," 820: [51007, 52460, 53161, 51709, 53887, 46855, 48082, 27376, 27869, 8253],\n"," 821: [1101, 3100, 1302, 3418, 2987, 6385, 3259, 2366, 4564, 480],\n"," 822: [5989, 2987, 1784, 1721, 923, 1617, 7215, 6947, 3100, 912],\n"," 823: [3671, 5541, 2791, 532, 2723, 370, 1923, 4333, 3869, 6663],\n"," 824: [3681, 3508, 26294, 2921, 7894, 26249, 6428, 4327, 8618, 6652],\n"," 825: [1061, 4880, 6003, 3510, 50, 31, 1883, 1597, 532, 2580],\n"," 826: [51709, 52241, 52604, 54997, 53129, 51935, 53000, 4901, 7827, 51903],\n"," 827: [7007, 2490, 996, 5027, 1370, 1573, 20, 1036, 836, 32029],\n"," 828: [5027, 2002, 3269, 4121, 1129, 6812, 7007, 798, 6078, 1100],\n"," 829: [56060, 27797, 52, 54978, 4540, 5271, 2426, 7129, 6087, 4991],\n"," 830: [61350, 8591, 26326, 60514, 5700, 48943, 2021, 8822, 56921, 59392],\n"," 831: [2470, 33669, 1894, 3270, 3259, 440, 1101, 186, 5299, 2100],\n"," 832: [2011, 26513, 2012, 316, 1356, 1376, 1375, 2393, 2528, 1200],\n"," 833: [2987, 1210, 1196, 1097, 316, 1127, 8961, 2115, 380, 1690],\n"," 834: [1784, 4956, 5673, 26527, 4529, 59725, 1235, 5686, 3168, 4027],\n"," 835: [970, 3194, 27797, 7215, 2764, 4919, 49007, 58494, 1415, 45707],\n"," 836: [7007, 2058, 861, 8373, 1432, 5027, 26746, 50153, 163, 517],\n"," 837: [9010, 5617, 5673, 48082, 8014, 27416, 36276, 6867, 34437, 27876],\n"," 838: [1690, 7007, 51709, 2490, 1924, 5881, 6966, 2455, 5502, 56921],\n"," 839: [922, 1235, 1247, 928, 1276, 1263, 2729, 6783, 3435, 1244],\n"," 840: [5673, 1784, 1658, 3685, 1912, 1953, 5051, 1883, 2961, 6783],\n"," 841: [5944, 6645, 26513, 1690, 33493, 1129, 8644, 208, 5445, 61350],\n"," 842: [4306, 6377, 4886, 364, 8961, 1282, 2987, 3114, 5218, 2161],\n"," 843: [920, 1927, 900, 1931, 3475, 1939, 3871, 1226, 3095, 905],\n"," 844: [3638, 464, 1626, 6812, 26746, 4466, 26688, 1320, 26488, 1909],\n"," 846: [714, 2427, 1176, 1305, 1217, 2730, 3741, 7748, 1211, 5291],\n"," 847: [165, 7007, 1626, 6213, 1370, 733, 4224, 26746, 996, 2058],\n"," 848: [7044, 6927, 8598, 5867, 1295, 4390, 1912, 55253, 8330, 64327],\n"," 849: [2010, 1253, 924, 2366, 2021, 26265, 2662, 1301, 2871, 1208],\n"," 851: [3429, 44022, 3114, 38038, 2761, 595, 720, 2011, 34332, 2692],\n"," 852: [2987, 1200, 1544, 1127, 1580, 2528, 1690, 1240, 442, 316],\n"," 853: [64327, 8330, 2438, 3227, 5416, 478, 403, 44058, 4879, 5968],\n"," 854: [1219, 2160, 1590, 7387, 3551, 2648, 1321, 2366, 7001, 4210],\n"," 855: [2858, 6003, 4027, 7044, 1358, 3683, 5673, 3362, 45, 40819],\n"," 856: [50445, 33679, 3623, 733, 7007, 2947, 33437, 6185, 1544, 163],\n"," 857: [5010, 1208, 527, 1090, 1262, 1953, 349, 1387, 1276, 3654],\n"," 859: [4011, 1080, 6807, 532, 4027, 4467, 1884, 1784, 3275, 2371],\n"," 860: [6942, 1641, 3481, 59118, 5970, 42015, 2396, 2690, 468, 7579],\n"," 861: [6807, 4027, 1884, 1235, 3671, 4591, 1304, 51255, 4467, 266],\n"," 862: [1015, 2138, 2139, 51698, 49647, 673, 3489, 2045, 2161, 1812],\n"," 863: [1036, 165, 4262, 2912, 6185, 48516, 1953, 2058, 7438, 996],\n"," 864: [318, 1259, 1784, 31, 4027, 356, 2291, 7451, 50, 3556],\n"," 865: [2987, 1200, 1198, 2716, 8961, 480, 1127, 589, 1097, 1690],\n"," 866: [1235, 3671, 909, 3307, 6807, 955, 1079, 1304, 1263, 2301],\n"," 867: [909, 1959, 1925, 1084, 1263, 2936, 7215, 912, 1357, 899],\n"," 868: [532, 8874, 1136, 4011, 38061, 6815, 1079, 1235, 51255, 4027],\n"," 869: [2413, 6503, 2371, 51255, 4956, 3770, 442, 44864, 532, 296],\n"," 870: [7088, 8920, 6713, 6660, 27741, 1960, 5498, 2607, 8190, 6041],\n"," 871: [31364, 26231, 42900, 26810, 5121, 8754, 7135, 6666, 7123, 4935],\n"," 872: [1263, 2871, 969, 1953, 1250, 912, 1161, 3654, 3468, 5686],\n"," 873: [5944, 1690, 2393, 26513, 329, 5445, 208, 442, 1129, 2528],\n"," 874: [3476, 3863, 7160, 1625, 3535, 50, 8950, 5528, 7044, 34532],\n"," 875: [2929, 8958, 1932, 7160, 1961, 1357, 30812, 2396, 1185, 5985],\n"," 876: [532, 4085, 1278, 5541, 7215, 4464, 1784, 4242, 2396, 5553],\n"," 878: [1235, 1301, 3168, 1079, 5013, 1304, 1276, 30810, 4027, 2858],\n"," 879: [1784, 532, 7215, 1230, 912, 909, 910, 1953, 4027, 3307],\n"," 881: [2987, 1028, 4306, 1282, 6377, 1, 2081, 31, 4027, 4886],\n"," 882: [3752, 1091, 2723, 532, 1784, 1441, 586, 466, 42011, 2580],\n"," 883: [2438, 64327, 5416, 3227, 8330, 58105, 44058, 5968, 2484, 3876],\n"," 884: [34, 2005, 2139, 2054, 49647, 2138, 2161, 6232, 364, 50601],\n"," 885: [6003, 7044, 7215, 2908, 923, 2729, 64957, 7160, 8951, 2858],\n"," 886: [8830, 5758, 6120, 7845, 5478, 59154, 25798, 48943, 56921, 32239],\n"," 887: [2133, 1307, 1091, 1894, 2470, 543, 3422, 532, 1513, 3358],\n"," 888: [2291, 6385, 7153, 2160, 8783, 4993, 2762, 3556, 3020, 32587],\n"," 889: [1432, 876, 4026, 6387, 4466, 26688, 1626, 5815, 26746, 64231],\n"," 890: [33679, 2625, 5254, 380, 1499, 6383, 6541, 2094, 61818, 50445],\n"," 891: [33437, 532, 6003, 1089, 6385, 8783, 1625, 2692, 7160, 1912],\n"," 892: [1380, 3210, 2352, 3791, 3253, 4936, 1784, 3363, 3261, 5508],\n"," 893: [4027, 1784, 2065, 2580, 532, 40819, 1235, 50792, 31, 1259],\n"," 894: [49278, 53993, 48082, 45722, 339, 27788, 6539, 51709, 53000, 54272],\n"," 895: [2245, 2470, 345, 3210, 3418, 54978, 52227, 4410, 2369, 3617],\n"," 896: [2291, 337, 6385, 41571, 1721, 1784, 5673, 30812, 2324, 47306],\n"," 897: [7044, 805, 1645, 1006, 6879, 51091, 4390, 2467, 5008, 4969],\n"," 898: [5944, 1374, 1909, 26513, 2722, 7649, 5522, 4443, 173, 208],\n"," 899: [65133, 4657, 31692, 4660, 651, 31628, 1317, 655, 656, 4663],\n"," 900: [478, 4879, 2484, 5968, 166, 403, 44058, 50949, 3876, 27797],\n"," 901: [1240, 1690, 377, 1127, 480, 1274, 1387, 260, 2288, 1320],\n"," 902: [48385, 44195, 34542, 33154, 39398, 53894, 8917, 45928, 31689, 38061],\n"," 903: [1196, 1210, 377, 2393, 1374, 1200, 589, 1127, 316, 329],\n"," 904: [6787, 7303, 1242, 920, 1272, 3100, 475, 1293, 1959, 30812],\n"," 905: [339, 7361, 1784, 48082, 2692, 3510, 2396, 2912, 3259, 4305],\n"," 906: [5013, 5792, 2303, 4956, 44864, 3261, 6815, 319, 122, 26231],\n"," 907: [1784, 1729, 7160, 1213, 3685, 1961, 1089, 3168, 5673, 1235],\n"," 908: [8634, 340, 5541, 3269, 3836, 5027, 2002, 4121, 7007, 5553],\n"," 909: [2916, 6185, 49278, 442, 4351, 31696, 51709, 3863, 170, 198],\n"," 910: [6, 1953, 1625, 8950, 3362, 1276, 3020, 3476, 3006, 1358],\n"," 911: [1086, 1253, 928, 3551, 680, 2186, 933, 2179, 2183, 904],\n"," 912: [7247, 1028, 1380, 6316, 2565, 7714, 8651, 588, 4857, 594],\n"," 913: [1250, 920, 1276, 1090, 912, 1207, 1084, 6787, 1939, 1953],\n"," 914: [8673, 32844, 3117, 63310, 32325, 39768, 60894, 6117, 7122, 3194],\n"," 915: [26746, 517, 996, 4086, 2764, 4869, 4673, 60566, 54958, 1597],\n"," 916: [7361, 3020, 6003, 48082, 50, 1625, 2571, 2692, 32, 1748],\n"," 917: [5645, 60983, 6496, 4631, 60948, 4793, 2536, 4286, 8708, 6494],\n"," 918: [7007, 3130, 367, 1616, 517, 1573, 996, 7445, 3981, 7381],\n"," 919: [1626, 1382, 1004, 4044, 4466, 26688, 5815, 990, 4946, 5880],\n"," 920: [1214, 589, 480, 1690, 3471, 8810, 1127, 2288, 1196, 1210],\n"," 921: [2054, 4306, 5452, 6559, 1, 6557, 31700, 3399, 36708, 673],\n"," 922: [2161, 34332, 5452, 2761, 7369, 7164, 8643, 2005, 4341, 52287],\n"," 923: [852, 1393, 3422, 3270, 1883, 1777, 11, 5742, 3361, 1307],\n"," 924: [6993, 52, 6750, 4392, 26228, 427, 8598, 3194, 7084, 64957],\n"," 925: [1200, 3499, 1036, 1219, 2664, 2366, 1240, 2288, 1253, 3551],\n"," 926: [4027, 38061, 296, 1265, 2580, 33004, 3275, 367, 30810, 1527],\n"," 927: [1091, 7007, 33437, 367, 380, 7438, 3275, 733, 37477, 377],\n"," 928: [1274, 1206, 1301, 2021, 2529, 2010, 1161, 4467, 3654, 1690],\n"," 930: [2587, 4242, 27797, 43558, 4602, 11, 4341, 3752, 4132, 1784],\n"," 931: [1432, 4466, 26688, 1473, 3184, 4869, 33905, 7893, 6585, 5138],\n"," 932: [2987, 8961, 367, 31696, 7046, 4306, 1198, 1784, 1101, 7007],\n"," 933: [1597, 51709, 103, 2389, 517, 532, 2763, 4383, 2764, 26746],\n"," 934: [258, 5892, 56, 126, 62376, 2047, 8713, 44225, 1881, 5458],\n"," 935: [2115, 1544, 494, 380, 1918, 165, 95, 836, 8810, 50445],\n"," 936: [47044, 5010, 2580, 532, 50792, 3254, 1220, 5989, 60647, 20],\n"," 937: [1199, 48082, 6003, 4467, 27904, 1206, 1658, 5867, 3476, 8950],\n"," 938: [1036, 1214, 377, 1387, 1610, 4210, 1240, 480, 1200, 1625],\n"," 939: [377, 2912, 517, 1036, 2371, 1214, 2268, 5445, 480, 3386],\n"," 940: [377, 2529, 316, 4064, 1953, 50794, 50445, 1690, 3740, 7483],\n"," 941: [5000, 5788, 6724, 56060, 1964, 2971, 31347, 1264, 26211, 6117],\n"," 942: [377, 480, 1214, 1200, 1610, 1036, 589, 1127, 1544, 1580],\n"," 943: [1339, 6966, 1214, 1982, 273, 3461, 8092, 7387, 7891, 382],\n"," 945: [6085, 2165, 1133, 3162, 56671, 5097, 2172, 6415, 61312, 5807],\n"," 946: [596, 1025, 1022, 783, 2081, 5218, 2080, 2096, 594, 1030],\n"," 947: [7714, 914, 30816, 26422, 2987, 1947, 1250, 945, 2971, 8008],\n"," 948: [7153, 260, 7090, 6947, 3578, 7438, 2826, 2987, 7458, 33437],\n"," 949: [48082, 1208, 27904, 27660, 5686, 6003, 8235, 27706, 1274, 2010],\n"," 950: [49932, 5105, 27317, 5867, 4546, 3863, 7123, 26231, 7044, 7001],\n"," 951: [27797, 5968, 403, 3876, 2484, 44058, 478, 50949, 4879, 166],\n"," 952: [2138, 2045, 5452, 49647, 6557, 2139, 1367, 258, 2054, 2080],\n"," 953: [5944, 2393, 329, 26513, 2528, 3175, 1376, 1356, 1375, 2722],\n"," 954: [4133, 26513, 8782, 31660, 6995, 208, 6264, 62331, 8371, 485],\n"," 955: [7386, 6787, 6003, 5945, 1784, 7160, 4280, 3386, 33437, 6947],\n"," 956: [8094, 1408, 1304, 54783, 47117, 1378, 6421, 52321, 7894, 3100],\n"," 957: [532, 50792, 319, 3210, 101, 1235, 4027, 1923, 2717, 3948],\n"," 958: [50, 5954, 628, 1213, 8783, 1617, 2912, 1358, 8950, 4027],\n"," 960: [3386, 1617, 7160, 4776, 2396, 6787, 36517, 3006, 6796, 4326],\n"," 961: [1276, 1953, 1784, 3504, 3468, 3100, 1084, 912, 1263, 1304],\n"," 962: [1645, 2467, 2764, 2803, 27828, 52604, 6086, 5388, 5630, 1783],\n"," 963: [4434, 1488, 173, 990, 7007, 5700, 48943, 2625, 996, 3770],\n"," 964: [532, 4027, 45, 3275, 1784, 7044, 1805, 2858, 509, 7160],\n"," 965: [2908, 7160, 1354, 25, 45, 1094, 55814, 2313, 5673, 7044],\n"," 966: [3996, 7482, 6874, 7090, 377, 1198, 3997, 7458, 3578, 33437],\n"," 967: [31685, 543, 3752, 1091, 367, 33836, 1393, 4306, 224, 1777],\n"," 968: [377, 1693, 836, 5445, 1036, 2912, 2490, 33437, 1625, 1240],\n"," 969: [3259, 39, 4280, 31694, 4132, 2396, 440, 5066, 8643, 3079],\n"," 970: [7007, 2490, 2001, 5027, 1918, 163, 6503, 377, 2002, 6185],\n"," 971: [30816, 953, 48082, 928, 9011, 5686, 1235, 1103, 920, 7215],\n"," 972: [5010, 1208, 1262, 36529, 1953, 4826, 3476, 26131, 1276, 7044],\n"," 973: [7835, 7831, 909, 7080, 1084, 912, 1269, 1256, 7834, 6798],\n"," 974: [3894, 6224, 58439, 6164, 6161, 34473, 8804, 3711, 6129, 6127],\n"," 975: [6, 1784, 1213, 3362, 858, 3275, 1089, 2959, 1953, 1625],\n"," 976: [7160, 1206, 7044, 2594, 110, 4349, 27838, 2427, 6003, 3148],\n"," 977: [3142, 5137, 6430, 33677, 43708, 32314, 7484, 6948, 7124, 27812],\n"," 978: [7055, 26084, 7049, 34018, 7050, 7132, 2565, 3199, 7835, 1083],\n"," 979: [31, 7007, 50, 6003, 1617, 1358, 2366, 2912, 1276, 1214],\n"," 980: [1196, 1198, 1097, 480, 5952, 589, 33493, 527, 110, 3578],\n"," 982: [1221, 2023, 1208, 919, 1263, 5686, 1953, 1230, 1784, 48082],\n"," 983: [551, 2161, 8961, 4014, 2143, 919, 34332, 2005, 367, 594],\n"," 984: [1276, 923, 628, 4027, 1358, 47306, 36, 912, 3504, 1617],\n"," 985: [33437, 7458, 5989, 1693, 356, 5010, 1408, 380, 2987, 33679],\n"," 986: [26989, 4869, 7007, 8093, 49007, 5553, 1432, 6714, 55603, 3184],\n"," 987: [2587, 27797, 7149, 3874, 4602, 1457, 6798, 42015, 970, 33145],\n"," 988: [7044, 7123, 49932, 5867, 1264, 928, 3194, 4919, 3863, 3476],\n"," 989: [1089, 3275, 6, 1729, 1953, 1276, 2542, 4262, 7438, 3468],\n"," 990: [1784, 2396, 7162, 1094, 1183, 1721, 8533, 6947, 7160, 6385],\n"," 991: [2470, 2420, 2133, 2275, 442, 8633, 34332, 3269, 4401, 2005],\n"," 992: [2717, 7007, 7001, 2389, 1214, 2467, 39446, 2827, 6120, 2371],\n"," 993: [56921, 33437, 733, 2058, 3476, 7007, 6185, 51709, 6213, 32029],\n"," 994: [1235, 2065, 235, 1259, 2395, 1265, 2997, 2858, 48082, 6184],\n"," 995: [1244, 5673, 7044, 319, 7460, 3925, 5792, 3168, 48082, 6783],\n"," 996: [56060, 864, 6570, 4529, 26527, 64327, 8330, 5416, 2438, 3227],\n"," 997: [6491, 31600, 26488, 49007, 48943, 7007, 1432, 56921, 61818, 3269],\n"," 998: [2396, 1094, 1185, 30812, 8970, 6385, 1225, 1932, 2971, 1277],\n"," 999: [1214, 2366, 3471, 3701, 1127, 2413, 1200, 2010, 2163, 2021],\n"," 1001: [1721, 2987, 1097, 1693, 1198, 1101, 34, 6947, 7153, 1408],\n"," 1002: [3869, 5541, 3868, 2723, 2027, 671, 3760, 7102, 3785, 2791],\n"," 1003: [6736, 50800, 5630, 27338, 44911, 32743, 1645, 8774, 59604, 5474],\n"," 1004: [1036, 1610, 1625, 1214, 2529, 1387, 1208, 1200, 1276, 2912],\n"," 1005: [50792, 4621, 1784, 1101, 1883, 1091, 2248, 2100, 1727, 7701],\n"," 1006: [4014, 1176, 6660, 64957, 2291, 235, 1271, 531, 3556, 8970],\n"," 1007: [1658, 1265, 11, 6155, 543, 5673, 3874, 2997, 1912, 1784],\n"," 1008: [1206, 2529, 1748, 1240, 1690, 32587, 1129, 2021, 1274, 1089],\n"," 1009: [2987, 32, 5445, 5010, 442, 380, 733, 377, 589, 3418],\n"," 1011: [5445, 2594, 292, 1748, 2529, 3204, 1690, 8950, 2762, 198],\n"," 1012: [1693, 1625, 1805, 442, 2594, 1690, 32, 1206, 1784, 1616],\n"," 1013: [380, 1097, 1393, 11, 1721, 1265, 2987, 2366, 5989, 316],\n"," 1014: [532, 56715, 5945, 55901, 7044, 4529, 26527, 4027, 1235, 5686],\n"," 1015: [913, 928, 1086, 3435, 1219, 1253, 908, 1212, 2186, 1248],\n"," 1016: [3168, 1953, 1784, 4034, 1254, 3100, 1235, 1084, 2303, 319],\n"," 1017: [260, 480, 1198, 2193, 2826, 3997, 1200, 316, 589, 1127],\n"," 1018: [63836, 6736, 32743, 8774, 27338, 48591, 45361, 8265, 5474, 54910],\n"," 1019: [3184, 27797, 403, 4879, 50949, 3876, 166, 5968, 2484, 478],\n"," 1020: [912, 1254, 903, 922, 926, 969, 1276, 920, 898, 909],\n"," 1021: [783, 2081, 1025, 2096, 1023, 3034, 1030, 2099, 31687, 5218],\n"," 1022: [596, 1025, 2080, 2081, 661, 588, 364, 5218, 1029, 2096],\n"," 1023: [2313, 2728, 33166, 590, 1276, 33437, 6617, 40278, 27838, 7160],\n"," 1025: [3210, 1235, 4027, 1784, 1259, 5673, 2248, 2580, 26491, 532],\n"," 1026: [1276, 1953, 6, 3362, 50, 912, 913, 1617, 903, 1263],\n"," 1027: [7004, 367, 2366, 2716, 2133, 380, 37477, 45722, 4262, 1091],\n"," 1028: [7007, 1036, 3386, 1479, 3256, 6989, 95, 377, 648, 3623],\n"," 1029: [1783, 1422, 2952, 5867, 52005, 43853, 6977, 712, 5424, 3800],\n"," 1030: [532, 3275, 2952, 1784, 6708, 4242, 3893, 2580, 7007, 4027],\n"," 1031: [1544, 1127, 780, 3638, 4638, 2947, 1196, 1200, 1374, 2094],\n"," 1032: [1772, 6951, 2161, 2804, 2413, 7369, 2701, 2403, 543, 4133],\n"," 1033: [920, 1276, 912, 969, 3307, 899, 2936, 1084, 954, 909],\n"," 1034: [5010, 110, 7458, 8977, 260, 1210, 1408, 733, 6947, 8810],\n"," 1035: [2094, 57640, 52722, 43928, 5254, 442, 34332, 2641, 2640, 839],\n"," 1037: [2671, 1784, 5299, 1393, 186, 8969, 1307, 1101, 468, 6155],\n"," 1038: [7037, 7278, 1825, 7269, 1870, 1871, 304, 55668, 7097, 3308],\n"," 1039: [33166, 1953, 7981, 3683, 4034, 319, 2912, 1912, 2203, 5954],\n"," 1040: [420, 2000, 2001, 5049, 7102, 4121, 6014, 2053, 7369, 5027],\n"," 1041: [2987, 1270, 6377, 4306, 4774, 1197, 31923, 380, 349, 6283],\n"," 1043: [7108, 861, 5027, 26688, 4466, 7007, 2001, 26547, 6185, 2002],\n"," 1044: [2161, 2005, 31660, 2987, 7046, 2054, 4275, 4306, 8961, 2162],\n"," 1045: [1235, 923, 2729, 235, 6650, 1276, 1247, 319, 3925, 922],\n"," 1046: [2987, 1387, 1097, 1198, 1214, 3471, 1339, 1200, 377, 2366],\n"," 1047: [539, 357, 2671, 186, 1777, 236, 4205, 11, 1101, 2581],\n"," 1048: [380, 543, 51255, 2723, 2000, 6503, 2371, 1091, 4956, 51575],\n"," 1050: [2764, 532, 4280, 2396, 1277, 1784, 7149, 1873, 7215, 18],\n"," 1051: [1784, 8969, 357, 2396, 3481, 39, 8643, 3259, 339, 1380],\n"," 1052: [4464, 1277, 7215, 1183, 7160, 337, 3386, 1161, 4326, 2580],\n"," 1053: [733, 1262, 2028, 3654, 2728, 349, 1208, 377, 6, 1287]}"]},"metadata":{},"execution_count":11}],"source":["# 사용자가 평갓값 4 이상을 부여한 영화\n","movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n","user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","\n","id2index = dict(zip(ids, range(len(ids))))\n","pred_user2items = dict()\n","for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n"," evaluated_movie_ids = user_evaluated_movies[user_id]\n"," movie_ids = data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-5:]\n","\n"," movie_indexes = [id2index[id] for id in movie_ids]\n"," user_vector = movie_norm_vectors[movie_indexes].mean(axis=0)\n"," recommended_items = find_similar_items(user_vector, evaluated_movie_ids, topn=10)\n"," pred_user2items[user_id] = recommended_items\n","pred_user2items"]},{"cell_type":"code","execution_count":12,"id":"625d2894","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":175},"id":"625d2894","executionInfo":{"status":"ok","timestamp":1672120598440,"user_tz":-540,"elapsed":22,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"f01e6c60-648a-4277-bf74-76458665e08c"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","8381 2 1210 4.0 868245644 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","8381 [Action, Adventure, Sci-Fi] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":12}],"source":["# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n","movielens_train_high_rating[movielens_train_high_rating.user_id==2]"]},{"cell_type":"code","execution_count":13,"id":"2e3be9df","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"2e3be9df","executionInfo":{"status":"ok","timestamp":1672120598440,"user_tz":-540,"elapsed":8,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"0eb28455-c022-41ba-f747-8e6ce568e81e"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","1075 1097 E.T. the Extra-Terrestrial (1982) \n","1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n","1173 1198 Raiders of the Lost Ark (Indiana Jones and the... \n","\n"," genre \\\n","1075 [Children, Drama, Sci-Fi] \n","1171 [Action, Adventure, Sci-Fi] \n","1173 [Action, Adventure] \n","\n"," tag \n","1075 [speilberg, steven spielberg, spielberg/lucas,... \n","1171 [lucas, george lucas, george lucas, gfei own i... \n","1173 [egypt, lucas, seen more than once, dvd collec... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
10751097E.T. the Extra-Terrestrial (1982)[Children, Drama, Sci-Fi][speilberg, steven spielberg, spielberg/lucas,...
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
11731198Raiders of the Lost Ark (Indiana Jones and the...[Action, Adventure][egypt, lucas, seen more than once, dvd collec...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":13}],"source":["# user_id=2에 대한 추천(1198, 1196, 1097)\n","movies[movies.movie_id.isin([1198, 1196, 1097])]"]},{"cell_type":"code","execution_count":13,"id":"83e8a9a4","metadata":{"id":"83e8a9a4","executionInfo":{"status":"ok","timestamp":1672120598440,"user_tz":-540,"elapsed":6,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/chapter5/colab/data_download.ipynb b/chapter5/colab/data_download.ipynb index 80476ae..5cdda30 100644 --- a/chapter5/colab/data_download.ipynb +++ b/chapter5/colab/data_download.ipynb @@ -1,1057 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/data_download.ipynb)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Movielens 데이터 다운로드" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "--2021-11-30 00:17:51-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n", - "files.grouplens.org (files.grouplens.org) をDNSに問いあわせています... 128.101.65.152\n", - "files.grouplens.org (files.grouplens.org)|128.101.65.152|:443 に接続しています... 接続しました。\n", - "HTTP による接続要求を送信しました、応答を待っています... 200 OK\n", - "長さ: 65566137 (63M) [application/zip]\n", - "`../data/ml-10m.zip' に保存中\n", - "\n", - "ml-10m.zip 100%[===================>] 62.53M 778KB/s 時間 72s \n", - "\n", - "2021-11-30 00:19:03 (895 KB/s) - `../data/ml-10m.zip' へ保存完了 [65566137/65566137]\n", - "\n", - "Archive: ../data/ml-10m.zip\n", - " creating: ../data/ml-10M100K/\n", - " inflating: ../data/ml-10M100K/allbut.pl \n", - " inflating: ../data/ml-10M100K/movies.dat \n", - " inflating: ../data/ml-10M100K/ratings.dat \n", - " inflating: ../data/ml-10M100K/README.html \n", - " inflating: ../data/ml-10M100K/split_ratings.sh \n", - " inflating: ../data/ml-10M100K/tags.dat \n" - ] - } - ], - "source": [ - "# MovieLens 데이터셋을 data 디렉터리에 다운로드 한 뒤 압축을 푼다\n", - "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", - "!unzip -n ../data/ml-10m.zip -d ../data/" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Movielens 데이터 확인" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenre
01Toy Story (1995)[Adventure, Animation, Children, Comedy, Fantasy]
12Jumanji (1995)[Adventure, Children, Fantasy]
23Grumpier Old Men (1995)[Comedy, Romance]
34Waiting to Exhale (1995)[Comedy, Drama, Romance]
45Father of the Bride Part II (1995)[Comedy]
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "0 1 Toy Story (1995) \n", - "1 2 Jumanji (1995) \n", - "2 3 Grumpier Old Men (1995) \n", - "3 4 Waiting to Exhale (1995) \n", - "4 5 Father of the Bride Part II (1995) \n", - "\n", - " genre \n", - "0 [Adventure, Animation, Children, Comedy, Fantasy] \n", - "1 [Adventure, Children, Fantasy] \n", - "2 [Comedy, Romance] \n", - "3 [Comedy, Drama, Romance] \n", - "4 [Comedy] " - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 영화 정보 로딩(10681작품)\n", - "# movieID와 제목만 사용\n", - "m_cols = ['movie_id', 'title', 'genre']\n", - "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", - "\n", - "# genre를 list 형식으로 저장한다\n", - "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", - "movies.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idtagtimestamp
0154973excellent!1215184630
1201747politics1188263867
2201747satire1188263867
3202424chick flick 2121188263835
4202424hanks1188263835
\n", - "
" - ], - "text/plain": [ - " user_id movie_id tag timestamp\n", - "0 15 4973 excellent! 1215184630\n", - "1 20 1747 politics 1188263867\n", - "2 20 1747 satire 1188263867\n", - "3 20 2424 chick flick 212 1188263835\n", - "4 20 2424 hanks 1188263835" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", - "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", - "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", - "\n", - "# tag를 소문자로 바꾼다\n", - "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", - "\n", - "user_tagged_movies.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "タグ種類=15241\n", - "タグレコード数=95580\n", - "タグが付いている映画数=7601\n" - ] - } - ], - "source": [ - "print(f'태그 종류={len(user_tagged_movies.tag.unique())}')\n", - "print(f'태그 레코드 수={len(user_tagged_movies)}')\n", - "print(f'태그가 붙어있는 영화 수={len(user_tagged_movies.movie_id.unique())}')" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
01Toy Story (1995)[Adventure, Animation, Children, Comedy, Fantasy][pixar, pixar, pixar, animation, pixar, animat...
12Jumanji (1995)[Adventure, Children, Fantasy][for children, game, animals, joe johnston, ro...
23Grumpier Old Men (1995)[Comedy, Romance][funniest movies, comedinha de velhinhos engra...
34Waiting to Exhale (1995)[Comedy, Drama, Romance][girl movie]
45Father of the Bride Part II (1995)[Comedy][steve martin, pregnancy, remake, steve martin...
\n", - "
" - ], - "text/plain": [ - " movie_id title \\\n", - "0 1 Toy Story (1995) \n", - "1 2 Jumanji (1995) \n", - "2 3 Grumpier Old Men (1995) \n", - "3 4 Waiting to Exhale (1995) \n", - "4 5 Father of the Bride Part II (1995) \n", - "\n", - " genre \\\n", - "0 [Adventure, Animation, Children, Comedy, Fantasy] \n", - "1 [Adventure, Children, Fantasy] \n", - "2 [Comedy, Romance] \n", - "3 [Comedy, Drama, Romance] \n", - "4 [Comedy] \n", - "\n", - " tag \n", - "0 [pixar, pixar, pixar, animation, pixar, animat... \n", - "1 [for children, game, animals, joe johnston, ro... \n", - "2 [funniest movies, comedinha de velhinhos engra... \n", - "3 [girl movie] \n", - "4 [steve martin, pregnancy, remake, steve martin... " - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# tag를 영화별로 list 형식으로 저장한다\n", - "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", - "\n", - "# 태그 정보를 결합한다\n", - "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", - "\n", - "movies.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamp
011225.0838985046
111855.0838983525
212315.0838983392
312925.0838983421
413165.0838983392
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp\n", - "0 1 122 5.0 838985046\n", - "1 1 185 5.0 838983525\n", - "2 1 231 5.0 838983392\n", - "3 1 292 5.0 838983421\n", - "4 1 316 5.0 838983392" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 평갓값 데이터만 로딩한다\n", - "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", - "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", - "ratings.head()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamp
011225.0838985046
111855.0838983525
212315.0838983392
312925.0838983421
413165.0838983392
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp\n", - "0 1 122 5.0 838985046\n", - "1 1 185 5.0 838983525\n", - "2 1 231 5.0 838983392\n", - "3 1 292 5.0 838983421\n", - "4 1 316 5.0 838983392" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 데이터량이 많으므로 사용자 수를 1000으로 줄여서 시험해본다\n", - "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", - "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", - "ratings.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_idmovie_idratingtimestamptitlegenretag
011225.0838985046Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...
11391223.0974302621Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...
21491222.51112342322Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...
31821223.0943458784Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...
42151224.51102493547Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...
\n", - "
" - ], - "text/plain": [ - " user_id movie_id rating timestamp title genre \\\n", - "0 1 122 5.0 838985046 Boomerang (1992) [Comedy, Romance] \n", - "1 139 122 3.0 974302621 Boomerang (1992) [Comedy, Romance] \n", - "2 149 122 2.5 1112342322 Boomerang (1992) [Comedy, Romance] \n", - "3 182 122 3.0 943458784 Boomerang (1992) [Comedy, Romance] \n", - "4 215 122 4.5 1102493547 Boomerang (1992) [Comedy, Romance] \n", - "\n", - " tag \n", - "0 [dating, nudity (topless - brief), can't remem... \n", - "1 [dating, nudity (topless - brief), can't remem... \n", - "2 [dating, nudity (topless - brief), can't remem... \n", - "3 [dating, nudity (topless - brief), can't remem... \n", - "4 [dating, nudity (topless - brief), can't remem... " - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 영화 데이터와 평가 데이터를 결합한다\n", - "movielens = ratings.merge(movies, on='movie_id')\n", - "movielens.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unique_users=1000, unique_movies=6736\n" - ] - } - ], - "source": [ - "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_id
min20.00
max1668.00
mean132.83
len1000.00
\n", - "
" - ], - "text/plain": [ - " movie_id\n", - "min 20.00\n", - "max 1668.00\n", - "mean 132.83\n", - "len 1000.00" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import numpy as np\n", - "# 사용자 정보\n", - "movielens.groupby('user_id').agg({'movie_id': len}).agg({'movie_id':[min, max, np.mean, len]})" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
user_id
min1.000000
max496.000000
mean19.719418
len6736.000000
\n", - "
" - ], - "text/plain": [ - " user_id\n", - "min 1.000000\n", - "max 496.000000\n", - "mean 19.719418\n", - "len 6736.000000" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 영화 정보\n", - "movielens.groupby('movie_id').agg({'user_id': len}).agg({'user_id':[min, max, np.mean, len]})" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "評価値数=132830\n" - ] - } - ], - "source": [ - "print(f'평갓값 수={len(movielens)}')" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_id
rating
0.5851
1.04847
1.51247
2.010292
2.53729
3.031706
3.59661
4.039917
4.56949
5.023631
\n", - "
" - ], - "text/plain": [ - " movie_id\n", - "rating \n", - "0.5 851\n", - "1.0 4847\n", - "1.5 1247\n", - "2.0 10292\n", - "2.5 3729\n", - "3.0 31706\n", - "3.5 9661\n", - "4.0 39917\n", - "4.5 6949\n", - "5.0 23631" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "movielens.groupby('rating').agg({'movie_id': len})" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEMCAYAAADAqxFbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAia0lEQVR4nO3df5RVdb3/8eeLnzMSxRWmUikGvQhhksiYkqZeS9HsXr36vV78Uf5CwPB2S/kWN1vebPm9y/JHedWVTaULM7iRRmJIVqR2EzEZMEQNFSHDMhHx18jwy/f3j/05dvZpcA7MzDkH5vVY6yzO/nz2Z+/3PnM47/P5fPbZWxGBmZlZQa9qB2BmZrXFicHMzHKcGMzMLMeJwczMcpwYzMwsp0+1A+isIUOGRGNjY7XDMDPbpbS0tLwYEQ3t1e3yiaGxsZElS5ZUOwwzs12KpD9sr85DSWZmluPEYGZmOU4MZmaWs8vPMbRny5YtrF27lra2tmqHssupq6tj6NCh9O3bt9qhmFmV7JaJYe3atQwcOJDGxkYkVTucXUZEsH79etauXcvw4cOrHY6ZVckODSVJ2k/Sq5IOTcsnSPq1pOWS5kpqSOWS9EVJD0p6XNJVknqlunpJMyUtlrRC0hlF2x8u6R5JLantwTtzUG1tbQwePNhJYQdJYvDgwe5pmfVwZScGSfXATOAvQJukYcB/A6dExBhgIfDNtPppwOHAkcAHgWHA+anuWuCxiDgs1X9Z0mhln+LzgMsjYhxwETBbUr+dOTAnhZ3j183MykoM6UP7W8CtwB+BbcCpwO0R8WJabSZwbFr3TODGiNgSEW+mugmpbiJwA0BEvATMB44BxgKvR8SiVNcCvArs3xUHamZm5Sl3juFCIIDvAIWhn+FAS2GFiHhN0gbg3aluZVH7pcDVwJ7AKxHxRkndkcCfS9oU6g4AVhQXSpoMTAZ4//vf32HwjTPmd7jOjlhz5Ylduj0zs1rSYWKQdCRwNnB0RETRUMNmoHQwegvQH9hUUlco3wxsLLNNcV1ORDQDzQBNTU095k5Dzc3N/OlPf+IrX/nKDrVrampi3rx57L333rnyu+++mxtuuIG77767C6M02zld8QXOX9q6Rjk9hklkcwRPpKTwXuBXZB/YLxdWktQbeB/ZN/8VwAjg+VQ9ElidehUhqS4i2orrUpvPl+x7JPDDHT+s3dPkyZN3qt32LhlSX19PfX19Z0Iys91Qh3MMEfHpiHhvRDRGRCPwEPAx4EPAREnvTqtOBuZFxBZgAXCJpD4pYVwEzErr3Q9MA5D0LuBTZB/+zwINkg5LdQeRJaRFXXGglXb33Xdz7LHHctJJJ7HffvtxzjnnMHPmTD784Q+z//77s3DhQlpbW5k8eTJjx45l7NixXHPNNQBceOGFXH311W9ta+rUqVx99dV8/etfZ/r06QAsXryY8ePHM3r0aD75yU/y4osvthsHwB577MHrr7/Opk2bmDJlCh/60If46Ec/yr333uvJZjP7GzvzO4YBwICIeFTSl4CfS9pM9q2/8JV2DjAKeAR4A/gZcEuqmwHcJOl3ZMNKl0bEkwCSJqa6AWQTzydHxLadOrIqq6+v57777qOlpYVRo0YxatQo1q1bx4MPPsiiRYu47rrr+NWvfsWgQYNYunQpbW1tHH/88Rx44IFMnTqViy66iOnTp7Nt2zbuuecerrjiCmbPns2AAQPYtGkT06ZNe2t46Oabb2bGjBl897vf3W4sAwYM4Prrr2fr1q088sgjtLW1cdJJJ/HOd76zwq+MmdW6HU4MEdFU9PxO4M521gng8vQorXsFOH07236cbCJ6lyeJo446ijFjxgBw0EEH8elPf5revXvz93//9/z+979n9erVzJ07F0nU19dz/vnnc88993DNNdfQ2trK2rVrWbVqFQcffDBDhgxBEpJYuXIlzzzzDKeeeioAb775Jv36bf+s3kK7e++9l0suueSt/U2dOpVZs2Ztt52Z9Uy75S+fa8WgQYPeet6rV6+3lrc3fBMR9OqVje6dffbZzJkzh6eeeopzzz33b9YdPnw4ixcvfqvd1q1bO4ynV69ebNv21w5YOW3MrOfpEYmhGmcqRARZx+lvlwvPJ0yYwI033siVV15JW1sbN998M5dddhkAZ5xxBieddBKtra1cf/31uXYjR45k/fr1LF++nDFjxjB79mwWLlzI9773vbeN5eijj2bmzJl85CMfYevWrXzrW99izz337OZXwsx2Nb66ajfZuHEjGzdubHe58PzSSy9l/fr1jBs3jvHjx3PyySfzsY99DICGhgYGDRrEkUceSZ8+fd5q19raSv/+/ZkzZw4XXHABY8eOZfbs2VxxxRVvG0traytTpkxh69atjBo1imOOOYajjjoqF6OZGYCKv9XuipqamqL0dMwnnniCD3zgA1WKaNfn18+qwb9jqCxJLcVzxsV6xFBSTzFlyhRaWlpyZTfeeCOHHnpolSIys13RbpsYIqLHnaP/7W9/u9Pb2NV7kGbWebvlHENdXR3r16/3h9wOKtyPoa6urtqhmFkV7ZY9hqFDh7J27VrWrVtX7VB2OYU7uJlZz7VbJoa+ffv6DmRmZjtptxxKMjOznefEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmlrPTiUGZfkXL/ST175qwzMysWspKDJLOk7RM0gpJiyV9CBgIvCppiaQlwG+Bk9P6vSVdm9Z9XNLFRdsaLGmupIfTNo8tqhsn6b5UvlDSvl16tGZm1qEOf/ksaRBwGnBMRGyQ9K/AlcBngUURcUw7zaYDdcB4oD/wS0mPRsQvgNuAWyJijqRGYKGkw8juDX0H8PGIeFrSJ4HvA4d39iDNzKx8HfYYIuLliDg+JQUBw4DVwN5AH0k/Tb2GrxUNLZ0JXBeZNmA2MEHSEGAM8KO07TXAUuBQYALwYEQ8nbYxHxghaWCXHa2ZmXWo7DkGSTeRJYTTgf8iSxDvAM4j6xnsQ9aLABgKPFPUfClwQGrzVOQve1qoGw6sLBSmdZYBo9uJZXJhCMsXyjMz61plJ4aImBoRjcDlwE/JhnkOi4gXImILcC3Zt36AVqD4TvNbyIaUNgFtJZsup640luaIaIqIpoaGhnIPwczMytBhYpBUJ2mvwnJE/AR4H9BA/kO7F7A5PV9F1msoGEnW23gSaFT+DjqFuhXAiJLdjwTWlHEcZmbWRcrpMUwA7pc0GEDSR8m+yZ8A3CGpv6RewL8BC1KbBcAX0imtdcAUYFZEbCZLAqekbQ0FjgPuIhtSOkLSiFR3AvB8RDzbNYdqZmblKOd+DPOA/YFFklqBjcA/AS3AB8g+0DcDC4HCvSW/kR7Lyc42ujUiFqa6SUCzpC+nurMi4mXITosFZqUOxQvAxE4en5mZ7aAOE0OaBL4qPUrNSI/SNpuBadvZ3nPAidupewA4pKOYzMys+/iSGGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpZTzkX0zKybNM6Y3+ltrLmy3UuPme009xjMzCzHicHMzHKcGMzMLMeJwczMcpwYzMwsp6zEIOk8ScskrZC0WNKHUvk5kh5I5TdL2iOV95Z0bVr3cUkXF21rsKS5kh5O2zy2qG6cpPtS+UJJ+3b1AZuZ2dvrMDFIGgScBhwTER8ku5fzlZLGA58BjgMOBF4CLk3NpgN1wHjgYOCUogRwGzA7Ig4B/hm4SVKDpAHAHcCkiBib9vP9LjlKMzMrW4eJISJejojjI2KDJAHDgNXA6cD3IqI13Rf6FmBCanYmcF1k2oDZwARJQ4AxwI/SttcAS4FDU9sHI+LptI35wAhJA7voWM3MrAxlzzFIuom/JoT/AoYDK4tWWQkMk9QLGAo8U1S3FDiALKk8lRJJaV1ue2mdZcDodmKZLGmJpCXr1q0r9xDMzKwMZSeGiJgaEY3A5cBPgc1AW9Eq24DegIBWYGtR3RagP7CppE25daWxNEdEU0Q0NTQ0lHsIZmZWhnLmGOok7VVYjoifAO8D/gKMKFp1b2BDRGwDVpH1GgpGkvU2ngQa05BUad2Kku0V6taUeSxmZtYFyukxTADulzQYQNJHyb7J/wCYJmlA+qD/LDArtVkAfEGZOmAKMCsiNpMlgVPStoaSTV7fRTakdISkEanuBOD5iHi2aw7VzMzKUc5F9OYB+wOLJLUCG4F/iojfSroZeAh4A2gBPpfafCM9lqe6WyNiYaqbBDRL+nKqOysiXobstFhgVupQvABM7OwBmpnZjukwMaRJ4KvSo7SuGWhup3wzMG0723sOaPdykBHxAHBIRzGZmVn38S+fzcwsx4nBzMxynBjMzCzHicHMzHKcGMzMLMeJwczMcpwYzMwsx4nBzMxynBjMzCzHicHMzHKcGMzMLMeJwczMcpwYzMwsx4nBzMxynBjMzCzHicHMzHJ2OjGk23b2K1ruJ6l/14RlZmbVUlZikPQJSUslPSqpRdLhwEDgVUlLJC0BfgucnNbvLelaSYslPS7p4qJtDZY0V9LDkpZJOraobpyk+1L5Qkn7dunRmplZhzq8taekPYDvAEdGxCpJxwG3AscDiyLimHaaTQfqgPFAf+CXkh6NiF8AtwG3RMQcSY3AQkmHkd3/+Q7g4xHxtKRPAt8HDu/0UZqZWdnK6TEMBP49Ilal5eeBrcDeQB9JP029hq8VDS2dCVwXmTZgNjBB0hBgDPAjgIhYAywFDgUmAA9GxNNpG/OBEZIGdvoozcysbB0mhoj4S0TcDiBpDPBj4HJgGPAO4DyynsE+wGdTs6HAM0WbWQockNo8FRHRTt1wYGXRfgNYBowujUnS5MIQ1rp168o7UjMzK0vZk8+SLgAWAFMiYhbZMM9hEfFCRGwBriX71g/QStarKNhCNqS0CWgr2XQ5dTkR0RwRTRHR1NDQUO4hmJlZGcqdfJ4GXAwcHRELC8XkP7R7AZvT81VkvYaCkcBq4EmgUZLaqVsBjCjZ9UhgTTkxmplZ1+gwMUhqAK4AToyIp4qqzgTukNRfUi/g38h6FKR/v5BOaa0DpgCzImIzWRI4JW17KHAccBfZkNIRkkakuhOA5yPi2S44TjMzK1OHZyUBRwH9gDnpi36hp3Ai2dzAUrKewkLg26nNN9JjOdnZRrcW9TQmAc2SvpzqzoqIlwEknQfMSvt5AZjYucMzM7MdVU5imAv8OCLehOyHband1oiYAcwobZB6BtPa21hEPEeWVNqrewA4pLzQzcysO3SYGCJiW8lykE0Km5nZbqicHoOZmVVQ44z5nd7GmivbHZgpiy+iZ2ZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5ZSUGSZ+QtFTSo5JaJB2eys+R9ICkFZJulrRHKu8t6VpJiyU9Luniom0NljRX0sOSlkk6tqhunKT7UvlCSft29QGbmdnb6zAxpA/77wD/EhEHAv8B3CppPPAZ4DjgQOAl4NLUbDpQB4wHDgZOKUoAtwGzI+IQ4J+BmyQ1SBoA3AFMioixZPeM/n7XHKaZmZWrnB7DQODfI2JVWn4e2AqcDnwvIlrT7T5vASakdc4ErotMGzAbmCBpCDAG+BFARKwBlgKHprYPRsTTaRvzgRGSBnbyGM3MbAd0mBgi4i8RcTuApDHAj4HLgeHAyqJVVwLDJPUChgLPFNUtBQ4AhgFPpURSWpfbXlpnGTC6NCZJkyUtkbRk3bp15RynmZmVqezJZ0kXAAuAKRExC9gEtBWtsg3oDQhoJetVFGwB+rfTpty6nIhojoimiGhqaGgo9xDMzKwM5U4+TwMuBo6OiIWpeAUwomi1vYENEbENWEXWaygYCawGngQaJamdutLtFerWlHUkZmbWJcqZfG4ArgBOjIiniqruAaZJGpA+6D8LzEp1C4AvKFMHTAFmRcRmsiRwStr2ULLJ67vIhpSOkDQi1Z0APB8Rz3bBcZqZWZn6lLHOUUA/YE76oi+y4Z3jgZuBh4A3gBbgc6nNN9Jjeaq7tainMQlolvTlVHdWRLwMIOk8YFbazwvAxE4dnZmZ7bByEsNc4McR8SZA6h30AbZGRDPQXNog9QymtbexiHgOOHE7dQ8Ah5QXupmZdYcOE0OaMyheDrJJYTMz2w35khhmZpbjxGBmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmllPuPZ/7SOolqV9RWS9JfYuW64qXzcxs11Ruj2Ei2a07Xysq+yDwoqQlkpaQ3eLzMABJ9ZJmSlosaYWkMwqNJA2XdI+kFkkPSjq4qO4ESb+WtFzS3HS/aTMzq6Bybu1JRNwG3CZpQ1Hxe4A7IuK8dppcCzwWEWdL2hP4jaRHgCeAecCUiFgkaRwwW9KBwF7AfwPjI+JFSRcB3wTO3MljMzOznVBWYihSfJvPvYEGSb8ABgE/Aq5KdROBfQAi4iVJ84FjgDrg9YhYlOpaJL0K7A8cB9weES+mbcwELpOkdDtRMzOrgM5MPg8D+gKnAP8AHA+cCuwJvBIRbxStuxQ4ABgOrCzZTrt1EfEasAF4d+mOJU0uDGGtW7euE4dgZmalOpMYrgD+MSJei4jXgRuACcBmYGPJuluA/sAmoG0n6nIiojkimiKiqaHB0xBmZl2pM4mhF9CvZHlz+qYfkuqK6kYCq4EVwIiS7bRbJ6k38D7gz52I0czMdlDZiUGSABUV/QdwQzpttT8wFViQ6u4HpqV27wI+BfwQeJZsXqJw9tJBZENSi4D7gImSCkNHk4F5EbFlp47MzMx2yo5MPteTTR4XXEN2FtFysiGf/wHmp7oZwE2Sfkc2rHRpRDwJIGliqhsAvAqcHBHbgDWSvgT8XNJmsl7E5J0+MjMz2yllJ4Y0mTygZHnSdtZ9BTh9O3WPA0dup+5O4M5yYzIzs67nS2KYmVmOE4OZmeU4MZiZWY4Tg5mZ5TgxmJlZjhODmZnlODGYmVmOE4OZmeU4MZiZWY4Tg5mZ5TgxmJlZjhODmZnlODGYmVmOE4OZmeU4MZiZWY4Tg5mZ5ZSVGCT1Sbfw7Nfx2mZmtisrt8cwEWgBXisUKPNFSQ9KelzSVZJ6pbp6STMlLZa0QtIZRe2GS7pHUktqe3BR3QmSfi1puaS5khq66DjNzKxMZd3aMyJuA26TtKGo+DTgcLLbdG4ju+fz+cB3gGuBxyLibEl7Ar+R9AjwBDAPmBIRiySNA2ZLOhDYi+we0uMj4kVJFwHfBM7s/GFaLWmcMb/jlTqw5soTuyASM2vPjs4xbCt6fiZwY0RsiYg3gZnABEki62HcABARLwHzgWOAscDrEbEo1bUArwL7A6cCt0fEi2n7M4Fj0/bMzKxCOjP5PBxYWbS8FDgA2BN4JSLeaKeutM126yLiNWAD8O7SHUuaLGmJpCXr1q3rxCGYmVmpziSGTUBb0fIWoD+wGdhYsm6hrrRNuXU5EdEcEU0R0dTQ4GkIM7OuVNYcw3asAEYAz6flkcDqiHhNUkiqi4i24rrU5vMl2xkJ/JAsSY0oFErqDbwP+HMnYjSzDnjOx0qV3WNIY/3F4/0LgEvSqay9gYuAWanufmBaavcu4FNkH/7PAg2SDkt1BwHDgEXAfcBESYWho8nAvIjYslNHZmZmO2VHegz1QF3R8hxgFPAI8AbwM+CWVDcDuEnS78iGlS6NiCcBJE1MdQPIJp5PjohtwBpJXwJ+LmkzWQ9j8s4emJmZ7ZyyE0OaTB5QtBzA5elRuu4rwOnb2c7jZKe4tld3J3BnuTGZmVnX8yUxzMwsx4nBzMxynBjMzCzHicHMzHKcGMzMLMeJwczMcpwYzMwsx4nBzMxynBjMzCzHicHMzHI6c3VVM7Pdiq80m3GPwczMcpwYzMwsx4nBzMxynBjMzCzHicHMzHI6nRgk9Uu3/URSb0l7dD4sMzOrlq7oMSwGHpG0BHgY+CqApHMkPSBphaSbCwkjJY9rJS2W9LikiwsbkjRY0lxJD0taJunYLojPzMx2QFf8juHvgBERsbVQIGk88BngH8juB30VcGl6TCe7d/R4oD/wS0mPRsQvgNuAWyJijqRGYKGkwyJiXRfEaWZmZehUj0FSb6Af0Jy+5f+PpL3I7vf8vYhoTfeGvgWYkJqdCVwXmTZgNjBB0hBgDPAjgIhYAywFDu1MjGZmtmM6O5S0D/AO4Ebgw8D9wHeA4cDKovVWAsMk9QKGAs8U1S0FDgCGAU+lRFJalyNpsqQlkpasW+fOhJlZV+rsUNIfgXdHxCYASTcBXwEWAW1F620DegMCWoGtRXVbyIaUNpW0KdT9zWR2RDQDzQBNTU1RWl+L/FN7M9tVdKrHkL7d9y8pfhN4FBhRVLY3sCEitgGryHoNBSOB1cCTQGPhDKeSOjMzq5DOzjHsC6yQtHcqOhd4AFgATJM0IH3QfxaYldZZAHxBmTpgCjArIjaTJYFT0raHAscBd3UmRjMz2zGdGkqKiGckfRG4R9IWYA1wYUT8RdLNwENkZyW1AJ9Lzb6RHstT3a0RsTDVTSKbyP5yqjsrIl7uTIxmZrZjOn26akTMJjuzqLT8rXmAkvLNwLTtbOs5wAPpZmZV5PsxWI/kkwHMts/XSjIzsxwnBjMzy3FiMDOzHCcGMzPLcWIwM7McJwYzM8txYjAzsxwnBjMzy3FiMDOzHCcGMzPLcWIwM7McJwYzM8vxRfR6EF84zszK4R6DmZnl7PY9Bn9LNjPbMe4xmJlZTs0lBknjJN0naZmkhem+0mZmViE1NZQkaQBwB/DxiHha0ieB7wOHVzcyM7Oeo9Z6DBOAByPi6bQ8HxghaWAVYzIz61EUEdWO4S2SLgEGRsRXisruAS6LiIeKyiYDk9PiSGBlJ3c9BHixk9vorFqIAWojjlqIAWojjlqIAWojjlqIAWojjq6IYVhENLRXUVNDScAmoG9J2Ragf3FBRDQDzV21U0lLIqKpq7a3q8ZQK3HUQgy1EkctxFArcdRCDLUSR3fHUGtDSSuAESVlI4E1lQ/FzKxnqrXEsBQ4QtIIAEknAM9HxLPVDcvMrOeoqaGkiHhV0nnALEkALwATK7DrLhuW6oRaiAFqI45aiAFqI45aiAFqI45aiAFqI45ujaGmJp/NzKz6am0oyczMqsyJwczMcpwYzMwsx4nBzMxyauqspEqSVA8cBGwGVkTEpupG1HNJGgwcChxA9mPG1cBdEfFqFWKp6vvCr0Vu/6OAY8i/Fj8sumROd++/b0RsSc/3AY4key3+NyJeqEQMRbFU9H3RY3oMkgZIujc9PwR4HPgi8BVguaSDqxBTH0mjJf2LpLMkHa50nm41SNorvQEruc+PAw8BZwO9gY3AUcDvJH2kAvuvmfeFX4tcLKeTXVBzGPC/wAIggHmSTq7A/vcAlqTnx6cYDgWOBn4j6djujqEolsq/LyKixzyAh9O/vwTGFpUfAPy6wrGMBX6f/uA3AdcDP09loyqw/z2AH6TnI4DfAY8Aj6aY9qvQ69BCds2W0vKhZN/Mesz7wq9FLo7lwN+1U/4uYFGFX4v/BYYXle8DLN6d3xc9bSip8KONPSJi2VuFEY+lS35X0g3AGRGxtLhQ0kHAjcDHunn/G8kuNwJwDTAjIhakGD6WYji+m2MA2BYRfygtjIi1Ffyb1Mr7wq/FX7VGxIbSwoh4JX2br4TCayGKLssTEc9J6t9ui+5R8fdFTxpKEjBY0hHAUknnFNUdBbRVOKT+pUkBICIeAd7Z3TuP7CvHm2nxPYWkkOoWkl29sRLWSjq1tFDSKcCfunvnNfa+8GvxVyslTZdUVxRDP0kXkw1xdStJvYC9JJ1FdvXmy1K5JJ0NrOvuGIpU/H3RY375LKkP8DXgPcDewPuBUUA98DDwrxHxuwrG8zPgP6PocuKp/MPAVRFxVAVieIzsHhjTgfkR8YtUPhKYFRHjKhDDnsBtwIHAU2QfPsOBZ4ALIqJbPxBr6X3h1yIXSx1wLdklcV4m6+EGcD/wH9HNk/HptbiQv74Ww4DjgDrgTmBSRKzpzhiKYqn4+6LHJIa3I6l3RGyr8D4bgXnAa2TfSNqA/cm+qZ8eEU908/77Av9D9sZ/D7AXMIjsQ+D3wKci4lfdGUNJPIPJ/vNtAp6MdDZINVXjfZH269civ+89gc0R8Xo19l8rKvm+cGJIJF0WEV+twn7HkmX/TWSXHX82qvBHKf6PL+md3f2NrMyYqvI3qbUYaiWOWoghxfGtiLiwp8eQ4uiWv0mPmWMolk7LO0TSEZKGpuI/VyOWiFgWET+OiPkR8YeICEmTqhDHtqLnr1Yjhna82fEq3a6qMUgaksb+q/L+rJUYUhzfSE/n9/AYik9p75a/SY9KDJKGS/oNsAr4Ktk52r+SdD/w06oGl7dPtQOgQjFI+oikpyU9IelfS6pPk9S7J8SQ4jhQ0t2SbpC0t6RlZMN6zwHLOmi+28SQ4jgkxTI6PQ4ATpc0muxy/D0lhnpJX0/P3yvpLuDPkp6TNAf4SbfsuFLn4tbCA/gFcGI75SeQ/Yqw6jH2tAfZpOaxwBiyibWji+qW9JQY0r4WAacB/5fs3PWTUvlHqdzvGKoeQ9rfK2Rzb78E7k2PjcB9wG97UAy9Cu9BYBYwtajuPOD2btlvpf7QtfAAWt6m7qFqx9cTH8DyoudjgD8C+6blh3tKDGlfj6Z/BawuqatUkqx6DGlf+5H9sGxSUdnqSu2/VmJI+/xt8b+V+Jv0qKEk4FVJw0sLJe1H9h+hIiT1lbRR0npJL5Q8XpT0Wk+IIdmSztAiIpaTDfHdlcoqNQlfCzEU4nhnZP/jf1YoTGflvKMHxUBErCLrxR0u6bvKflBW0ZMyaiGGpK+y31U8quwHsEA2tAT065Y9Vjr7VfMBjCO7+NQPyH6w8gXgu8ATwPgKxiFg6dvU1/eEGNJ+PgGsBU4pKpsGvAS81lNiSPs8D7i7pOy9ZMMZl/SUGNqJ6UJgMfCnauy/mjEAfYGlZPOia4ENqWwg8Aey35Z0+X573Omqyn5OP4H8KaJLI6JS35BJk5kTI+IHldpnLcZQFEs9MDCKrlgpaQjZhcJ+HBV4k9ZCDGmf74qIV4qW+wMTImJeJfZfKzG0E9ORwPkRcXZPjSH1GvaJiD+m5eERsbpb9tXTEoOZmb29njbHYGZmHXBiMDOzHCcGsy4iaaSyq3EWlu+S1O0XIjTrak4MZl0gTdC+DzhV2eWhe0fEP0ZES7VjM9tRnnw264CkTwBfIrsG/37A+UAz2b13NwHnkl2S+QKyq+OuBU4G7iL7FfGRwAfJrmI7iuz6NqdFxEuSDgOuI/uStiKtd25ErKjQ4Zn9DfcYzDq2EWgCPh8RY8huy3puRIwGrgI+FxFfJ0sMCyPiwMh+HLURaE3/ngt8neyD/wXgxNTLuA04LyIOAW5P+2mt6NGZlehpt/Y02xkB3Bd/vTHLT4D/lDSK7CYuj71Nu8Ljjkg3ZZK0mKznMZLsMuuPAUTEfEmrqc6va83e4h6DWXmKbxJzB/AAcCpwSZntny96XriUt4qeFy6n3LcTMZp1CScGs46J/LW0RgN3A28Ak4rqNgP1yvQqalfavrC8EthX2a1UAf4PMBSzKvNQklnH6tOj4GvAI2S9gMVkE8qQXdOmIdVNTG0GtNO+nuxaVG2SzgF+oOwew4+TXctrQzcdh1lZfFaSWZWkoaNPAPdHxOuSPkJ2UccDKnVtJrP2uMdgVl37Af8v3a3xdeAsJwWrNvcYzMwsx5PPZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmlvP/AQXSu0+NWlWmAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "movielens.groupby('rating').agg({'movie_id': len}).plot.bar()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 데이터 분할" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "# 학습용과 데이터용으로 데이터를 나눈다\n", - "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", - "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", - "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", - "\n", - "movielens['timestamp_rank'] = movielens.groupby(\n", - " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", - "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", - "movielens_test = movielens[movielens['timestamp_rank']<= 5]" - ] - }, - { - "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.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} +{"cells":[{"cell_type":"markdown","metadata":{"id":"yCY156qw4sti"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/data_download.ipynb)"]},{"cell_type":"markdown","metadata":{"id":"9Us2iHKa4stk"},"source":["# Movielens 데이터 다운로드"]},{"cell_type":"code","execution_count":1,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"iHYNrOLi4stk","executionInfo":{"status":"ok","timestamp":1672116122989,"user_tz":-540,"elapsed":4342,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"64ab6289-6afa-41f5-810c-4b1a66d2ea0b"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 04:41:56-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 92.1MB/s in 0.7s \n","\n","2022-12-27 04:41:57 (92.1 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# MovieLens 데이터셋을 data 디렉터리에 다운로드 한 뒤 압축을 푼다\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"markdown","metadata":{"id":"cD0PCuUO4stl"},"source":["# Movielens 데이터 확인"]},{"cell_type":"code","execution_count":2,"metadata":{"id":"tmhedtRd4stm","executionInfo":{"status":"ok","timestamp":1672116154325,"user_tz":-540,"elapsed":282,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["import pandas as pd"]},{"cell_type":"code","execution_count":3,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":206},"id":"nG38A4UQ4stm","executionInfo":{"status":"ok","timestamp":1672116156988,"user_tz":-540,"elapsed":290,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"eb04c892-fc66-4fe6-c39e-bb98685c1733"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","0 1 Toy Story (1995) \n","1 2 Jumanji (1995) \n","2 3 Grumpier Old Men (1995) \n","3 4 Waiting to Exhale (1995) \n","4 5 Father of the Bride Part II (1995) \n","\n"," genre \n","0 [Adventure, Animation, Children, Comedy, Fantasy] \n","1 [Adventure, Children, Fantasy] \n","2 [Comedy, Romance] \n","3 [Comedy, Drama, Romance] \n","4 [Comedy] "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenre
01Toy Story (1995)[Adventure, Animation, Children, Comedy, Fantasy]
12Jumanji (1995)[Adventure, Children, Fantasy]
23Grumpier Old Men (1995)[Comedy, Romance]
34Waiting to Exhale (1995)[Comedy, Drama, Romance]
45Father of the Bride Part II (1995)[Comedy]
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":3}],"source":["# 영화 정보 로딩(10681작품)\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","movies.head()"]},{"cell_type":"code","execution_count":4,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":206},"id":"7bDTcSfP4stm","executionInfo":{"status":"ok","timestamp":1672116161412,"user_tz":-540,"elapsed":1815,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"5ef2ba8a-018b-4603-89bd-a1b8a2de0198"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id tag timestamp\n","0 15 4973 excellent! 1215184630\n","1 20 1747 politics 1188263867\n","2 20 1747 satire 1188263867\n","3 20 2424 chick flick 212 1188263835\n","4 20 2424 hanks 1188263835"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idtagtimestamp
0154973excellent!1215184630
1201747politics1188263867
2201747satire1188263867
3202424chick flick 2121188263835
4202424hanks1188263835
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":4}],"source":["# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","user_tagged_movies.head()"]},{"cell_type":"code","execution_count":5,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"7f5OX7MY4stn","executionInfo":{"status":"ok","timestamp":1672116163746,"user_tz":-540,"elapsed":418,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"4d8f672e-7515-470e-be3e-da7a3844daaf"},"outputs":[{"output_type":"stream","name":"stdout","text":["태그 종류=15241\n","태그 레코드 수=95580\n","태그가 붙어있는 영화 수=7601\n"]}],"source":["print(f'태그 종류={len(user_tagged_movies.tag.unique())}')\n","print(f'태그 레코드 수={len(user_tagged_movies)}')\n","print(f'태그가 붙어있는 영화 수={len(user_tagged_movies.movie_id.unique())}')"]},{"cell_type":"code","execution_count":6,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":206},"id":"3ID9tTb04stn","executionInfo":{"status":"ok","timestamp":1672116165669,"user_tz":-540,"elapsed":3,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"9680477e-3b7d-49a6-d8a7-a325c8c640ab"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","0 1 Toy Story (1995) \n","1 2 Jumanji (1995) \n","2 3 Grumpier Old Men (1995) \n","3 4 Waiting to Exhale (1995) \n","4 5 Father of the Bride Part II (1995) \n","\n"," genre \\\n","0 [Adventure, Animation, Children, Comedy, Fantasy] \n","1 [Adventure, Children, Fantasy] \n","2 [Comedy, Romance] \n","3 [Comedy, Drama, Romance] \n","4 [Comedy] \n","\n"," tag \n","0 [pixar, pixar, pixar, animation, pixar, animat... \n","1 [for children, game, animals, joe johnston, ro... \n","2 [funniest movies, comedinha de velhinhos engra... \n","3 [girl movie] \n","4 [steve martin, pregnancy, remake, steve martin... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
01Toy Story (1995)[Adventure, Animation, Children, Comedy, Fantasy][pixar, pixar, pixar, animation, pixar, animat...
12Jumanji (1995)[Adventure, Children, Fantasy][for children, game, animals, joe johnston, ro...
23Grumpier Old Men (1995)[Comedy, Romance][funniest movies, comedinha de velhinhos engra...
34Waiting to Exhale (1995)[Comedy, Drama, Romance][girl movie]
45Father of the Bride Part II (1995)[Comedy][steve martin, pregnancy, remake, steve martin...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":6}],"source":["# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","movies.head()"]},{"cell_type":"code","execution_count":7,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":206},"id":"Y_16BuAv4stn","executionInfo":{"status":"ok","timestamp":1672116226827,"user_tz":-540,"elapsed":58747,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c017c43d-32cb-47dc-8605-f343afdbfb61"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp\n","0 1 122 5.0 838985046\n","1 1 185 5.0 838983525\n","2 1 231 5.0 838983392\n","3 1 292 5.0 838983421\n","4 1 316 5.0 838983392"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamp
011225.0838985046
111855.0838983525
212315.0838983392
312925.0838983421
413165.0838983392
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":7}],"source":["# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","ratings.head()\n"]},{"cell_type":"code","execution_count":8,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":206},"id":"-uIC1Irx4sto","executionInfo":{"status":"ok","timestamp":1672116226827,"user_tz":-540,"elapsed":8,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"9d7d2f5f-d826-41e2-8f2b-ec6dcebf3b31"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp\n","0 1 122 5.0 838985046\n","1 1 185 5.0 838983525\n","2 1 231 5.0 838983392\n","3 1 292 5.0 838983421\n","4 1 316 5.0 838983392"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamp
011225.0838985046
111855.0838983525
212315.0838983392
312925.0838983421
413165.0838983392
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":8}],"source":["# 데이터량이 많으므로 사용자 수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","ratings.head()"]},{"cell_type":"code","execution_count":9,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":206},"id":"8Cc0l6UH4sto","executionInfo":{"status":"ok","timestamp":1672116226827,"user_tz":-540,"elapsed":7,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"b9e06a0e-a797-4067-d4e1-7112653c608d"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp title genre \\\n","0 1 122 5.0 838985046 Boomerang (1992) [Comedy, Romance] \n","1 139 122 3.0 974302621 Boomerang (1992) [Comedy, Romance] \n","2 149 122 2.5 1112342322 Boomerang (1992) [Comedy, Romance] \n","3 182 122 3.0 943458784 Boomerang (1992) [Comedy, Romance] \n","4 215 122 4.5 1102493547 Boomerang (1992) [Comedy, Romance] \n","\n"," tag \n","0 [dating, nudity (topless - brief), can't remem... \n","1 [dating, nudity (topless - brief), can't remem... \n","2 [dating, nudity (topless - brief), can't remem... \n","3 [dating, nudity (topless - brief), can't remem... \n","4 [dating, nudity (topless - brief), can't remem... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretag
011225.0838985046Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...
11391223.0974302621Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...
21491222.51112342322Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...
31821223.0943458784Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...
42151224.51102493547Boomerang (1992)[Comedy, Romance][dating, nudity (topless - brief), can't remem...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":9}],"source":["# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","movielens.head()"]},{"cell_type":"code","execution_count":10,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"R4Z0VEKr4sto","executionInfo":{"status":"ok","timestamp":1672116226827,"user_tz":-540,"elapsed":6,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"05111483-5ee2-4c2d-f512-45f74cc2fd38"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')"]},{"cell_type":"code","execution_count":11,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":175},"id":"stlWbEpk4sto","executionInfo":{"status":"ok","timestamp":1672116227311,"user_tz":-540,"elapsed":489,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"a374f238-c767-4ea8-df20-c213ec8c6f8d"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id\n","min 20.00\n","max 1668.00\n","mean 132.83\n","len 1000.00"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_id
min20.00
max1668.00
mean132.83
len1000.00
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":11}],"source":["import numpy as np\n","# 사용자 정보\n","movielens.groupby('user_id').agg({'movie_id': len}).agg({'movie_id':[min, max, np.mean, len]})"]},{"cell_type":"code","execution_count":12,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":175},"id":"htrtcADB4stp","executionInfo":{"status":"ok","timestamp":1672116227311,"user_tz":-540,"elapsed":16,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c2df6e23-eddc-4d36-c339-da58f0813f10"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id\n","min 1.000000\n","max 496.000000\n","mean 19.719418\n","len 6736.000000"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_id
min1.000000
max496.000000
mean19.719418
len6736.000000
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":12}],"source":["# 영화 정보\n","movielens.groupby('movie_id').agg({'user_id': len}).agg({'user_id':[min, max, np.mean, len]})"]},{"cell_type":"code","execution_count":13,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"_PY1CxI24stp","executionInfo":{"status":"ok","timestamp":1672116227311,"user_tz":-540,"elapsed":15,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"75c1f4d8-47e9-4ef3-da0e-adf1a481af53"},"outputs":[{"output_type":"stream","name":"stdout","text":["평갓값 수=132830\n"]}],"source":["print(f'평갓값 수={len(movielens)}')"]},{"cell_type":"code","execution_count":14,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":394},"id":"KUQfjZpr4stp","executionInfo":{"status":"ok","timestamp":1672116227311,"user_tz":-540,"elapsed":12,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"eaf0d266-7c51-421c-a7a4-de91af9aca15"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id\n","rating \n","0.5 851\n","1.0 4847\n","1.5 1247\n","2.0 10292\n","2.5 3729\n","3.0 31706\n","3.5 9661\n","4.0 39917\n","4.5 6949\n","5.0 23631"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_id
rating
0.5851
1.04847
1.51247
2.010292
2.53729
3.031706
3.59661
4.039917
4.56949
5.023631
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":14}],"source":["movielens.groupby('rating').agg({'movie_id': len})"]},{"cell_type":"code","execution_count":15,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":303},"id":"QmkjL5VS4stp","executionInfo":{"status":"ok","timestamp":1672116227312,"user_tz":-540,"elapsed":12,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"43c55ed9-da51-484f-9ca5-168fbc4bac51"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[""]},"metadata":{},"execution_count":15},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAYMAAAEMCAYAAAAmgtofAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAdhElEQVR4nO3df5QV9Znn8fcHRNEoAaGXITRJs2NnFaKgdoAcY2J0o406A+5K1M0RwrIhHvHErG5WjMnRmOAxM864q4tmyYDiBEPQjIFRDEOMZo7r8qNbEUFw7GC7NkOwww+J44hBn/3jfjte29v0pft23Qv38zqnTlc99a2q597ue5+uqm9VKSIwM7Pq1q/cCZiZWfm5GJiZmYuBmZm5GJiZGS4GZmYGHFXuBHpq2LBhUVdXV+40zMwOK83Nzb+LiJrO8cO2GNTV1dHU1FTuNMzMDiuSXi0U92EiMzNzMTAzMxcDMzPjMD5nUMgf/vAH2traePvtt8udymFn4MCB1NbWMmDAgHKnYmZlcEQVg7a2Nk444QTq6uqQVO50DhsRwa5du2hra2P06NHlTsfMyqDow0SS+kt6TtKjaXq0pLWSWiT9VNLRKX5Mmm5J8+vy1nFjir8k6YK8eGOKtUia29MX8/bbbzN06FAXgkMkiaFDh3qPyqyKHco5g2uBLXnTPwDujIiTgD3ArBSfBexJ8TtTOySNAS4HxgKNwD2pwPQH5gOTgTHAFaltj7gQ9IzfN7PqVlQxkFQLXAT8TZoWcC7wcGqyGJiaxqekadL881L7KcDSiNgfEa8ALcCENLRExLaIeAdYmtqamVlGij1n8D+A/w6ckKaHAnsj4kCabgNGpvGRwGsAEXFA0hup/UhgTd4685d5rVN8YqEkJM0GZgN8/OMf7zbpurmPddvmULTeflFJ12dmVim6LQaSLgZej4hmSef0fUpdi4gFwAKAhoaGqnkqzw9/+EOOO+44pk+fXpLlWltbufjii9m0aVMp0zQ7ZKX4h83/pJVGMXsGZwF/LulCYCAwCPifwGBJR6W9g1pge2q/HRgFtEk6CvgosCsv3iF/ma7iBlx11VWZLmdm1afbcwYRcWNE1EZEHbkTwL+KiC8DTwKXpmYzgOVpfEWaJs3/VeSerbkCuDz1NhoN1APrgPVAfeqddHTaxoqSvLoyaG1t5eSTT+YrX/kKn/zkJ/nyl7/ML3/5S8466yzq6+tZt24du3fvZurUqZx22mlMmjSJjRs38t5771FXV8fevXv/uK76+np27tzJLbfcwh133AHAb37zGxobGznzzDM5++yz2bp1a5e55C/X3NzMuHHjGDduHPPnz+/bN8HMDju9uQL5BuA6SS3kzgksTPGFwNAUvw6YCxARm4FlwIvAL4A5EfFu2rO4BlhFrrfSstT2sNXS0sL111/P1q1b2bp1Kw8++CBPP/00d9xxB7fddhs333wzp59+Ohs3buS2225j+vTp9OvXjylTpvDII48AsHbtWj7xiU8wfPjwD6x79uzZ3H333TQ3N3PHHXdw9dVXF5XTzJkzufvuu3n++edL/nrN7PB3SBedRcRTwFNpfBu5nkCd27wNTOti+XnAvALxlcDKQ8mlko0ePZpTTz0VgLFjx3LeeechiVNPPZXW1lZeffVVfvaznwFw7rnnsmvXLvbt28dll13GrbfeysyZM1m6dCmXXXbZB9b75ptv8swzzzBt2vtv7/79+7vNZ+/evezdu5fPfe5zAFx55ZU8/vjjpXq5ZnYEOKKuQK4UxxxzzB/H+/Xr98fpfv36ceDAgS5v+fCZz3yGlpYW2tvb+fnPf863v/3tD8x/7733GDx4MBs2bOi75M2sKh3RxaBSexmcffbZLFmyhO985zs89dRTDBs2jEGDBgFwySWXcN1113HKKacwdOjQDyw3aNAgRo8ezUMPPcS0adOICDZu3Mi4ceMOur3BgwczePBgnn76aT772c+yZMmSPnttZnZ48l1Ly+CWW26hubmZ0047jblz57J48eI/zrvsssv48Y9//KFDRB2WLFnCwoULGTduHGPHjmX58uUF23V23333MWfOHMaPH0/ufL6Z2ft0uH4xNDQ0ROcnnW3ZsoVTTjmlTBkd/vz+WdZ8nUH2JDVHREPnuPcMzMzsyD5nUC3mzZvHQw899IHYtGnTuOmmm8qUkZkdbo64YhARVXcHzptuuqnXX/yH6+FCMyuNI+ow0cCBA9m1a5e/2A5Rx8NtBg4cWO5UzKxMjqg9g9raWtra2mhvby93Koedjsdemll1OqKKwYABA/zYRjOzHjiiDhOZmVnPuBiYmZmLgZmZuRiYmRkuBmZmhouBmZnhYmBmZhRRDCQNlLRO0vOSNkv6borfL+kVSRvSMD7FJekuSS2SNko6I29dMyS9nIYZefEzJb2QlrlL1XY/CTOzMivmorP9wLkR8aakAcDTkjqemfjNiHi4U/vJ5B52Xw9MBO4FJko6EbgZaAACaJa0IiL2pDZfBdaSe/xlI+DnMpqZZaTbPYPIeTNNDkjDwW7+MwV4IC23BhgsaQRwAbA6InanArAaaEzzBkXEmsjdVOgBYGovXpOZmR2ios4ZSOovaQPwOrkv9LVp1rx0KOhOSR0P/h0JvJa3eFuKHSzeViBeKI/ZkpokNfn+Q2ZmpVNUMYiIdyNiPFALTJD0KeBG4GTg08CJwA19luX7eSyIiIaIaKipqenrzZmZVY1D6k0UEXuBJ4HGiNiRDgXtB+4DJqRm24FReYvVptjB4rUF4mZmlpFiehPVSBqcxo8FvghsTcf6ST1/pgKb0iIrgOmpV9Ek4I2I2AGsAs6XNETSEOB8YFWat0/SpLSu6UBxT3k3M7OSKKY30QhgsaT+5IrHsoh4VNKvJNUAAjYAV6X2K4ELgRbgLWAmQETslvQ9YH1qd2tE7E7jVwP3A8eS60XknkRmZhnqthhExEbg9ALxc7toH8CcLuYtAhYViDcBn+ouFzMz6xu+AtnMzFwMzMzMxcDMzHAxMDMzXAzMzAwXAzMzw8XAzMxwMTAzM1wMzMwMFwMzM8PFwMzMKO5GdWZWQnVzH+v1Olpvv6gEmZi9z3sGZmbmYmBmZi4GZmaGi4GZmeFiYGZmFPcM5IGS1kl6XtJmSd9N8dGS1kpqkfRTSUen+DFpuiXNr8tb140p/pKkC/LijSnWImlu6V+mmZkdTDF7BvuBcyNiHDAeaEwPuv8BcGdEnATsAWal9rOAPSl+Z2qHpDHA5cBYoBG4R1L/9Gzl+cBkYAxwRWprZmYZ6bYYRM6baXJAGgI4F3g4xRcDU9P4lDRNmn+eJKX40ojYHxGvAC3AhDS0RMS2iHgHWJramplZRoo6Z5D+g98AvA6sBn4D7I2IA6lJGzAyjY8EXgNI898AhubHOy3TVbxQHrMlNUlqam9vLyZ1MzMrQlHFICLejYjxQC25/+RP7tOsus5jQUQ0RERDTU1NOVIwMzsiHVJvoojYCzwJfAYYLKnjdha1wPY0vh0YBZDmfxTYlR/vtExXcTMzy0gxvYlqJA1O48cCXwS2kCsKl6ZmM4DlaXxFmibN/1VERIpfnnobjQbqgXXAeqA+9U46mtxJ5hWleHFmZlacYm5UNwJYnHr99AOWRcSjkl4Elkr6PvAcsDC1Xwj8raQWYDe5L3ciYrOkZcCLwAFgTkS8CyDpGmAV0B9YFBGbS/YKzcysW90Wg4jYCJxeIL6N3PmDzvG3gWldrGseMK9AfCWwsoh8zcysD/gKZDMzczEwMzMXAzMzw8XAzMxwMTAzM1wMzMwMFwMzM8PFwMzMcDEwMzNcDMzMDBcDMzPDxcDMzHAxMDMzXAzMzAwXAzMzw8XAzMxwMTAzM4p7BvIoSU9KelHSZknXpvgtkrZL2pCGC/OWuVFSi6SXJF2QF29MsRZJc/PioyWtTfGfpmchm5lZRorZMzgAXB8RY4BJwBxJY9K8OyNifBpWAqR5lwNjgUbgHkn90zOU5wOTgTHAFXnr+UFa10nAHmBWiV6fmZkVodtiEBE7IuLZNP57YAsw8iCLTAGWRsT+iHgFaCH3rOQJQEtEbIuId4ClwBRJAs4FHk7LLwam9vQFmZnZoTukcwaS6oDTgbUpdI2kjZIWSRqSYiOB1/IWa0uxruJDgb0RcaBTvND2Z0tqktTU3t5+KKmbmdlBFF0MJB0P/Az4RkTsA+4F/hQYD+wA/qpPMswTEQsioiEiGmpqavp6c2ZmVeOoYhpJGkCuECyJiL8DiIidefN/BDyaJrcDo/IWr00xuojvAgZLOirtHeS3NzOzDBTTm0jAQmBLRPx1XnxEXrNLgE1pfAVwuaRjJI0G6oF1wHqgPvUcOprcSeYVERHAk8ClafkZwPLevSwzMzsUxewZnAVcCbwgaUOKfYtcb6DxQACtwNcAImKzpGXAi+R6Is2JiHcBJF0DrAL6A4siYnNa3w3AUknfB54jV3zMzCwj3RaDiHgaUIFZKw+yzDxgXoH4ykLLRcQ2cr2NzMysDHwFspmZFXcC2czM+lbd3Md6vY7W2y/q8bLeMzAzMxcDMzNzMTAzM1wMzMwMFwMzM8PFwMzMcDEwMzNcDMzMDBcDMzPDxcDMzHAxMDMzXAzMzAwXAzMzw8XAzMxwMTAzM4p7BvIoSU9KelHSZknXpviJklZLejn9HJLiknSXpBZJGyWdkbeuGan9y5Jm5MXPlPRCWuau9NxlMzPLSDF7BgeA6yNiDDAJmCNpDDAXeCIi6oEn0jTAZKA+DbOBeyFXPICbgYnkHnF5c0cBSW2+mrdcY+9fmpmZFavbYhAROyLi2TT+e2ALMBKYAixOzRYDU9P4FOCByFkDDJY0ArgAWB0RuyNiD7AaaEzzBkXEmogI4IG8dZmZWQYO6ZyBpDrgdGAtMDwidqRZvwWGp/GRwGt5i7Wl2MHibQXihbY/W1KTpKb29vZDSd3MzA6i6GIg6XjgZ8A3ImJf/rz0H32UOLcPiYgFEdEQEQ01NTV9vTkzs6pRVDGQNIBcIVgSEX+XwjvTIR7Sz9dTfDswKm/x2hQ7WLy2QNzMzDJSTG8iAQuBLRHx13mzVgAdPYJmAMvz4tNTr6JJwBvpcNIq4HxJQ9KJ4/OBVWnePkmT0ram563LzMwycFQRbc4CrgRekLQhxb4F3A4skzQLeBX4Upq3ErgQaAHeAmYCRMRuSd8D1qd2t0bE7jR+NXA/cCzweBrMzCwj3RaDiHga6Krf/3kF2gcwp4t1LQIWFYg3AZ/qLhczM+sbvgLZzMxcDMzMzMXAzMxwMTAzM1wMzMwMFwMzM8PFwMzMcDEwMzNcDMzMDBcDMzPDxcDMzHAxMDMzXAzMzAwXAzMzw8XAzMxwMTAzM1wMzMyM4p6BvEjS65I25cVukbRd0oY0XJg370ZJLZJeknRBXrwxxVokzc2Lj5a0NsV/KunoUr5AMzPrXjF7BvcDjQXid0bE+DSsBJA0BrgcGJuWuUdSf0n9gfnAZGAMcEVqC/CDtK6TgD3ArN68IDMzO3TdFoOI+Edgd3ftkinA0ojYHxGvAC3AhDS0RMS2iHgHWApMkSTgXODhtPxiYOohvgYzM+ul3pwzuEbSxnQYaUiKjQRey2vTlmJdxYcCeyPiQKd4QZJmS2qS1NTe3t6L1M3MLF9Pi8G9wJ8C44EdwF+VLKODiIgFEdEQEQ01NTVZbNLMrCoc1ZOFImJnx7ikHwGPpsntwKi8prUpRhfxXcBgSUelvYP89mZmlpEe7RlIGpE3eQnQ0dNoBXC5pGMkjQbqgXXAeqA+9Rw6mtxJ5hUREcCTwKVp+RnA8p7kZGZmPdftnoGknwDnAMMktQE3A+dIGg8E0Ap8DSAiNktaBrwIHADmRMS7aT3XAKuA/sCiiNicNnEDsFTS94HngIUle3VmZlaUbotBRFxRINzlF3ZEzAPmFYivBFYWiG8j19vIzMzKxFcgm5mZi4GZmbkYmJkZLgZmZoaLgZmZ4WJgZma4GJiZGS4GZmaGi4GZmeFiYGZmuBiYmRkuBmZmhouBmZnhYmBmZrgYmJkZLgZmZoaLgZmZUUQxkLRI0uuSNuXFTpS0WtLL6eeQFJekuyS1SNoo6Yy8ZWak9i9LmpEXP1PSC2mZuySp1C/SzMwOrtvHXgL3A/8LeCAvNhd4IiJulzQ3Td8ATAbq0zARuBeYKOlEcs9ObiD33ORmSSsiYk9q81VgLbnHYjYCj/f+pVmlqZv7WK+Wb739ohJlYmaddbtnEBH/COzuFJ4CLE7ji4GpefEHImcNMFjSCOACYHVE7E4FYDXQmOYNiog1ERHkCs5UzMwsUz09ZzA8Inak8d8Cw9P4SOC1vHZtKXaweFuBeEGSZktqktTU3t7ew9TNzKyzXp9ATv/RRwlyKWZbCyKiISIaampqstikmVlVKOacQSE7JY2IiB3pUM/rKb4dGJXXrjbFtgPndIo/leK1BdqbWR/r7Tkc8HmcI0lP9wxWAB09gmYAy/Pi01OvoknAG+lw0irgfElDUs+j84FVad4+SZNSL6LpeesyM7OMdLtnIOkn5P6rHyapjVyvoNuBZZJmAa8CX0rNVwIXAi3AW8BMgIjYLel7wPrU7taI6DgpfTW5HkvHkutF5J5EZmYZ67YYRMQVXcw6r0DbAOZ0sZ5FwKIC8SbgU93lYWZmfcdXIJuZmYuBmZm5GJiZGS4GZmaGi4GZmeFiYGZmuBiYmRkuBmZmhouBmZnhYmBmZvT8rqVmZkcM38HVewZmZoaLgZmZ4WJgZma4GJiZGS4GZmaGi4GZmdHLYiCpVdILkjZIakqxEyWtlvRy+jkkxSXpLkktkjZKOiNvPTNS+5clzehqe2Zm1jdKsWfwhYgYHxENaXou8ERE1ANPpGmAyUB9GmYD90KueJB7rvJEYAJwc0cBMTOzbPTFYaIpwOI0vhiYmhd/IHLWAIMljQAuAFZHxO6I2AOsBhr7IC8zM+tCb4tBAP8gqVnS7BQbHhE70vhvgeFpfCTwWt6ybSnWVfxDJM2W1CSpqb29vZepm5lZh97ejuKzEbFd0r8BVkvamj8zIkJS9HIb+etbACwAaGhoKNl6+1JvL3M/3C9xN7PDQ6/2DCJie/r5OvAIuWP+O9PhH9LP11Pz7cCovMVrU6yruJmZZaTHxUDSRySd0DEOnA9sAlYAHT2CZgDL0/gKYHrqVTQJeCMdTloFnC9pSDpxfH6KmZlZRnpzmGg48IikjvU8GBG/kLQeWCZpFvAq8KXUfiVwIdACvAXMBIiI3ZK+B6xP7W6NiN29yMvMzA5Rj4tBRGwDxhWI7wLOKxAPYE4X61oELOppLmZm1jt+noFVFd+33qww347CzMxcDMzMzMXAzMxwMTAzM1wMzMwMFwMzM8PFwMzMcDEwMzNcDMzMDBcDMzPDxcDMzHAxMDMzfKO6quCbs5lZd7xnYGZmR+6egf8bNjMrnvcMzMyscoqBpEZJL0lqkTS33PmYmVWTiigGkvoD84HJwBjgCkljypuVmVn1qIhiAEwAWiJiW0S8AywFppQ5JzOzqqHcc+rLnIR0KdAYEf8lTV8JTIyIazq1mw3MTpP/DnipF5sdBvyuF8uXSiXkUQk5QGXkUQk5QGXkUQk5QGXkUQk5QGny+ERE1HQOHla9iSJiAbCgFOuS1BQRDaVY1+GeRyXkUCl5VEIOlZJHJeRQKXlUQg59nUelHCbaDozKm65NMTMzy0ClFIP1QL2k0ZKOBi4HVpQ5JzOzqlERh4ki4oCka4BVQH9gUURs7uPNluRwUwlUQh6VkANURh6VkANURh6VkANURh6VkAP0YR4VcQLZzMzKq1IOE5mZWRm5GJiZmYuBmZm5GJhVFEknSjqx3HmUm9+H7LkYWFlJGi7pjDQMr4B8Mv8CkvRxSUsltQNrgXWSXk+xuqzzKRe/D4Vl9RmpimIg6T/njddKekLSXknPSPpkGfKpqC9AyP5LUNJ4SWuAp4C/SMOvJa2RdEZGOXw7b3yMpH8CmiW1SpqYRQ7JT4FHgD+JiPqIOAkYAfyc3H26+lyFfEbK/j5AxbwX2X9GIuKIH4Bn88aXkbu/UT/gEuCJDPMYD6wBtgC/TMPWFDsjwzy+nTc+Bvgn4BWgldw9obLIYUOhbQGTgOfL8HfxGDA5jU8Ansnw9/FyT+b14XtRls9IJbwPlfJepG1n+hmpij2DTj4ZEQsi4r2IeATI8j/i+4FrI+KUiPj3aTgZ+AZwX4Z5/Ie88b9MOY0GvgTcmVEOH4mItZ2DEbEG+EhGOeT7WEQ8nnJYBxyb4babJd0jaaKkj6VhoqR7gOcyzKNDuT4jlfY+QHm/LzL9jFTEFcgZqJV0FyCgRtKAiPhDmjcgwzy6/OVKKscXIHT6EpSU1Zfg45IeAx4AXkuxUcB04BcZ5fBvJa0g93dRK+m4iHgrzcvy72I6MAv4LjAyxdqAvwcWZpRDJXxGKuF9gMp4LyDjz0i1FINv5o03AccDeyT9CdneA6kSvgChAr4EI+LrkiaTe25Fxwd/OzA/IlZmkQMffmZGP8id0wHuzSgHIvcMj3uz3GYBZf+MVMj7ABXwXkD2nxHfjiJjXfxyV2T4BYikz3cKNUfEm+lL8NKImJ9VLnZwki6OiEfLnUe5+X3oe9V4zuADJF2c5fYi4vGIuCoi/iwNV2VZCFIOv+40vJniOyuhEKSHGFV9Dsmny51A1p+RLpT9fYCKeS/65O+z6osBlfNHVhFfPhWSh8qdABnnIGmCpE+n8TGSrpN0YUTcnGUeXSjbZ0TSAwAV8j5AhXxf0Ad/n9VyzgBJJ1P48Eyl/JFVwhcgZJhH+p2MBNZ27J0kr1ZZDjcDk4GjJK0GJgJPAnMlnR4R8zLKYwIQEbFe0higEdia1Wckncf6QAj4gqTB5BL78yzyKETSAxExvZzfF5I+S67b86aI+N8lX381nDOQdANwBbkLV9pSuJbcQ3SWRsTt5cqtg6SZEZFl99Ky5iHp68AcctdcjCfXvXV5mvdsRPT5hWeVkEPa1gtp+8cAvwVqI2Jf6tm1NiJOyyCHPxYkIL8gfRFYlUVBkvQs8CLwN0CQKwY/Ifc5JSJ+3dc5pDwKFiXgVymPTIqSpHURMSGNf5Xc3+ojwPnA35f8e6uvLpiopIHcRVUDCsSPJsOLWbrJ8f+VO4cs8wBeAI5P43Xkem1cm6afq5YcOm+r83aBDRm+F/2B44B9wKAUPxbYmFEO/YD/Sq4YjU+xbVn9HvLyeBb4MXAO8Pn0c0ca/3yZ/i7WAzVp/CPAC6XeXrUcJnoP+Bgf3vUfkeZlQtLGrmYBmd2WokLy6Bfvn7hulXQO8LCkT5DdoapKyAHgnbzuvWd2BCV9lOz+Pg9ExLvAW5J+ExH7ACLiXyVlkkNEvAfcKemh9HMn5TmU3QBcC9wEfDMiNkj618hozyRPP0lDyBVJRUQ7QET8i6QDpd5YtRSDbwBPSHqZ9/v3fxw4CbgmwzyGAxcAezrFBTxTZXnslDQ+IjYARK5r68XAIuDUKsoB4HMRsT/lkP/FOwCYkVEOlVCQAIiINmCapIvI7aVkqoKK0keBZnKfy5A0IiJ2SDqePvhnpSrOGQBI6kfu5Ev+CeT16b+hrHJYCNwXEU8XmPdgRPynaslDUi25/0Z/W2DeWRHxf6ohh0oh6ZiOgtQpPgwYEREvlCGtipCK0lkR8a1y5wIg6ThgeES8UtL1VksxMDOzrvk6AzMzczEwMzMXA7Nek/SNdBy3Y3plx4VSZocLnzMwK4Ikkfu8fKhnjaRWoCEifpd5YmYl4j0Dsy5IqpP0Uro/ziZgoaQmSZslfTe1+Tq5a1ielPRkirVKGpaW3yLpR2mZf+h4XoSkT0vaKGmDpL+UtKlcr9MMXAzMulMP3BMRY4HrI6IBOA34vKTTIuIu4J+BL0TEF7pYfn5afi/wH1P8PuBrETEeyKx7s1lXXAzMDu7VyD1mEOBL6f45zwFjyT0/ujuvdFzURu4Corp0PuGEiPi/Kf5gSTM264FquQLZrKf+BUDSaOC/AZ+OiD2S7gcGFrF8/oVc75Lts5XNiuY9A7PiDCJXGN5IT4SbnDfv98AJxa4oIvYCv5c0MYUuL1mWZj3kPQOzIkTE85KeA7aSu79V/q0qFgC/kPTPXZw3KGQW8KN0E7hfA2+UNGGzQ+SupWZlIOn4jjumSppL7v4/15Y5Lati3jMwK4+LJN1I7jP4KvCV8qZj1c57BmZm5hPIZmbmYmBmZrgYmJkZLgZmZoaLgZmZAf8feBBCCHGGh2EAAAAASUVORK5CYII=\n"},"metadata":{"needs_background":"light"}}],"source":["movielens.groupby('rating').agg({'movie_id': len}).plot.bar()"]},{"cell_type":"markdown","metadata":{"id":"a_LEPxLP4stp"},"source":["# 데이터 분할"]},{"cell_type":"code","execution_count":16,"metadata":{"id":"xQGdGyRm4stp","executionInfo":{"status":"ok","timestamp":1672116227592,"user_tz":-540,"elapsed":290,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":16,"metadata":{"id":"EqBNWx7v4stp","executionInfo":{"status":"ok","timestamp":1672116227593,"user_tz":-540,"elapsed":3,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":0} \ No newline at end of file From 74a425d585c0c3c8c1bc06e3e35c93a3d5f720a8 Mon Sep 17 00:00:00 2001 From: Moses Kim Date: Tue, 27 Dec 2022 16:01:28 +0900 Subject: [PATCH 06/17] updated local notebooks --- chapter5/notebook/Association.ipynb | 474 +-- chapter5/notebook/BPR.ipynb | 159 +- chapter5/notebook/FM.ipynb | 259 +- chapter5/notebook/IMF.ipynb | 311 +- chapter5/notebook/Item2vec.ipynb | 29 +- chapter5/notebook/LDA_collaboration.ipynb | 301 +- chapter5/notebook/LDA_content.ipynb | 3398 +-------------------- chapter5/notebook/MF.ipynb | 47 +- chapter5/notebook/NMF.ipynb | 69 +- chapter5/notebook/Popularity.ipynb | 223 +- chapter5/notebook/RF.ipynb | 35 +- chapter5/notebook/Random.ipynb | 18 +- chapter5/notebook/SVD.ipynb | 854 +----- chapter5/notebook/Template.ipynb | 4 +- chapter5/notebook/UMCF.ipynb | 58 +- chapter5/notebook/Word2vec.ipynb | 55 +- chapter5/notebook/data_download.ipynb | 79 +- 17 files changed, 178 insertions(+), 6195 deletions(-) diff --git a/chapter5/notebook/Association.ipynb b/chapter5/notebook/Association.ipynb index bacf611..e36bdbd 100644 --- a/chapter5/notebook/Association.ipynb +++ b/chapter5/notebook/Association.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "1b316a16", "metadata": {}, "outputs": [], @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "c1b8db75", "metadata": {}, "outputs": [], @@ -36,237 +36,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "f29c7aac", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_id12345678910...62000621136229362344623946280162803631136399264716
user_id
10.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
20.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
30.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
40.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
50.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
\n", - "

5 rows × 6673 columns

\n", - "
" - ], - "text/plain": [ - "movie_id 1 2 3 4 5 6 7 8 9 \\\n", - "user_id \n", - "1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "\n", - "movie_id 10 ... 62000 62113 62293 62344 62394 62801 62803 63113 \\\n", - "user_id ... \n", - "1 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "2 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "3 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "4 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "5 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "\n", - "movie_id 63992 64716 \n", - "user_id \n", - "1 0.0 0.0 \n", - "2 0.0 0.0 \n", - "3 0.0 0.0 \n", - "4 0.0 0.0 \n", - "5 0.0 0.0 \n", - "\n", - "[5 rows x 6673 columns]" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# 사용자 x 영화 행렬 형식으로 변환한다\n", "user_movie_matrix = movielens_train.pivot(index='user_id', columns='movie_id', values='rating')\n", @@ -281,79 +54,10 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "ac2211c8", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
supportitemsets
420.415(593)
230.379(318)
210.369(296)
190.361(260)
250.319(356)
\n", - "
" - ], - "text/plain": [ - " support itemsets\n", - "42 0.415 (593)\n", - "23 0.379 (318)\n", - "21 0.369 (296)\n", - "19 0.361 (260)\n", - "25 0.319 (356)" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from mlxtend.frequent_patterns import apriori\n", "\n", @@ -365,62 +69,10 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "18be737d", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_idtitlegenretag
587593Silence of the Lambs, The (1991)[Crime, Horror, Thriller][based on a book, anthony hopkins, demme, psyc...
\n", - "
" - ], - "text/plain": [ - " movie_id title genre \\\n", - "587 593 Silence of the Lambs, The (1991) [Crime, Horror, Thriller] \n", - "\n", - " tag \n", - "587 [based on a book, anthony hopkins, demme, psyc... " - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# movie_id=593의 제목 확인(양들의 침묵)\n", "movielens.item_content[movielens.item_content.movie_id == 593]" @@ -428,85 +80,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "470dafd1", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
antecedentsconsequentslift
649(4993)(5952)5.459770
648(5952)(4993)5.459770
1462(1196, 1198)(1291, 260)4.669188
1463(1291, 260)(1196, 1198)4.669188
1460(1291, 1196)(260, 1198)4.171359
\n", - "
" - ], - "text/plain": [ - " antecedents consequents lift\n", - "649 (4993) (5952) 5.459770\n", - "648 (5952) (4993) 5.459770\n", - "1462 (1196, 1198) (1291, 260) 4.669188\n", - "1463 (1291, 260) (1196, 1198) 4.669188\n", - "1460 (1291, 1196) (260, 1198) 4.171359" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from mlxtend.frequent_patterns import association_rules\n", "# 어소시에이션 규칙 계산(리프트 값이 높은 순으로 표시)\n", @@ -516,7 +93,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "7414301d", "metadata": {}, "outputs": [], @@ -529,18 +106,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "6c2f4856", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=0.000, Precision@K=0.011, Recall@K=0.036\n" - ] - } - ], + "outputs": [], "source": [ "# 평가\n", "metric_calculator = MetricCalculator()\n", @@ -552,23 +121,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "f50bd7a9", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=0.000, Precision@K=0.015, Recall@K=0.048\n", - "rmse=0.000, Precision@K=0.014, Recall@K=0.042\n", - "rmse=0.000, Precision@K=0.014, Recall@K=0.043\n", - "rmse=0.000, Precision@K=0.013, Recall@K=0.040\n", - "rmse=0.000, Precision@K=0.011, Recall@K=0.036\n", - "rmse=0.000, Precision@K=0.010, Recall@K=0.034\n" - ] - } - ], + "outputs": [], "source": [ "# min_support와 정밀도의 관계\n", "for min_support in [0.06, 0.07, 0.08, 0.09, 0.1, 0.11]:\n", diff --git a/chapter5/notebook/BPR.ipynb b/chapter5/notebook/BPR.ipynb index fda56c8..d421bcf 100644 --- a/chapter5/notebook/BPR.ipynb +++ b/chapter5/notebook/BPR.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "37dbe23a", "metadata": {}, "outputs": [], @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "376e58db", "metadata": {}, "outputs": [], @@ -36,39 +36,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "a660e0c4", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "e2c989ef83084bdd98ca0865590dde74", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/50 [00:00 <| |___| __/ (_| | | | | | |\n", - " /_/\\_\\_____/\\___|\\__,_|_| |_| |_|\n", - "\n", - " xLearn -- 0.40 Version --\n", - "----------------------------------------------------------------------------------------------\n", - "\n", - "\u001b[39m\u001b[0m\u001b[35m\u001b[1m[ WARNING ] Validation file not found, xLearn has already disable early-stopping.\u001b[0m\n", - "\u001b[35m\u001b[1m[ WARNING ] Validation file not found, xLearn has already disable (-x rmse) option.\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mxLearn uses 4 threads for training task.\n", - "\u001b[32m\u001b[1m[ ACTION ] Read Problem ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mFirst check if the text file has been already converted to binary format.\n", - "\u001b[32m[------------] \u001b[0mBinary file (/var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmpj010yd3q.bin) NOT found. Convert text file to binary file.\n", - "\u001b[32m[------------] \u001b[0mNumber of Feature: 1061\n", - "\u001b[32m[------------] \u001b[0mTime cost for reading problem: 0.02 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Initialize model ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mModel size: 53.89 KB\n", - "\u001b[32m[------------] \u001b[0mTime cost for model initial: 0.00 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Start to train ...\u001b[0m\n", - "\u001b[32m[------------]\u001b[0m Epoch Train mse_loss Time cost (sec)\n", - "\u001b[32m[ \u001b[0m 2%\u001b[32m ]\u001b[0m 1 0.454755 0.01\n", - "\u001b[32m[ \u001b[0m 4%\u001b[32m ]\u001b[0m 2 0.393448 0.01\n", - "\u001b[32m[ \u001b[0m 6%\u001b[32m ]\u001b[0m 3 0.377439 0.01\n", - "\u001b[32m[ \u001b[0m 8%\u001b[32m ]\u001b[0m 4 0.368265 0.01\n", - "\u001b[32m[ \u001b[0m 10%\u001b[32m ]\u001b[0m 5 0.361691 0.01\n", - "\u001b[32m[ \u001b[0m 12%\u001b[32m ]\u001b[0m 6 0.357060 0.01\n", - "\u001b[32m[ \u001b[0m 14%\u001b[32m ]\u001b[0m 7 0.353435 0.01\n", - "\u001b[32m[ \u001b[0m 16%\u001b[32m ]\u001b[0m 8 0.350939 0.01\n", - "\u001b[32m[ \u001b[0m 18%\u001b[32m ]\u001b[0m 9 0.349071 0.01\n", - "\u001b[32m[ \u001b[0m 20%\u001b[32m ]\u001b[0m 10 0.347328 0.01\n", - "\u001b[32m[ \u001b[0m 22%\u001b[32m ]\u001b[0m 11 0.346160 0.01\n", - "\u001b[32m[ \u001b[0m 24%\u001b[32m ]\u001b[0m 12 0.344894 0.01\n", - "\u001b[32m[ \u001b[0m 26%\u001b[32m ]\u001b[0m 13 0.344078 0.01\n", - "\u001b[32m[ \u001b[0m 28%\u001b[32m ]\u001b[0m 14 0.343410 0.00\n", - "\u001b[32m[ \u001b[0m 30%\u001b[32m ]\u001b[0m 15 0.342319 0.00\n", - "\u001b[32m[ \u001b[0m 32%\u001b[32m ]\u001b[0m 16 0.342305 0.00\n", - "\u001b[32m[ \u001b[0m 34%\u001b[32m ]\u001b[0m 17 0.341846 0.01\n", - "\u001b[32m[ \u001b[0m 36%\u001b[32m ]\u001b[0m 18 0.341080 0.01\n", - "\u001b[32m[ \u001b[0m 38%\u001b[32m ]\u001b[0m 19 0.340690 0.01\n", - "\u001b[32m[ \u001b[0m 40%\u001b[32m ]\u001b[0m 20 0.340196 0.01\n", - "\u001b[32m[ \u001b[0m 42%\u001b[32m ]\u001b[0m 21 0.340085 0.01\n", - "\u001b[32m[ \u001b[0m 44%\u001b[32m ]\u001b[0m 22 0.339978 0.01\n", - "\u001b[32m[ \u001b[0m 46%\u001b[32m ]\u001b[0m 23 0.340111 0.01\n", - "\u001b[32m[ \u001b[0m 48%\u001b[32m ]\u001b[0m 24 0.339314 0.00\n", - "\u001b[32m[ \u001b[0m 50%\u001b[32m ]\u001b[0m 25 0.339661 0.00\n", - "\u001b[32m[ \u001b[0m 52%\u001b[32m ]\u001b[0m 26 0.338927 0.01\n", - "\u001b[32m[ \u001b[0m 54%\u001b[32m ]\u001b[0m 27 0.338808 0.01\n", - "\u001b[32m[ \u001b[0m 56%\u001b[32m ]\u001b[0m 28 0.338580 0.01\n", - "\u001b[32m[ \u001b[0m 57%\u001b[32m ]\u001b[0m 29 0.338881 0.00\n", - "\u001b[32m[ \u001b[0m 60%\u001b[32m ]\u001b[0m 30 0.338765 0.01\n", - "\u001b[32m[ \u001b[0m 62%\u001b[32m ]\u001b[0m 31 0.338443 0.01\n", - "\u001b[32m[ \u001b[0m 64%\u001b[32m ]\u001b[0m 32 0.338499 0.01\n", - "\u001b[32m[ \u001b[0m 66%\u001b[32m ]\u001b[0m 33 0.338384 0.01\n", - "\u001b[32m[ \u001b[0m 68%\u001b[32m ]\u001b[0m 34 0.337989 0.01\n", - "\u001b[32m[ \u001b[0m 70%\u001b[32m ]\u001b[0m 35 0.337732 0.01\n", - "\u001b[32m[ \u001b[0m 72%\u001b[32m ]\u001b[0m 36 0.337837 0.01\n", - "\u001b[32m[ \u001b[0m 74%\u001b[32m ]\u001b[0m 37 0.338007 0.00\n", - "\u001b[32m[ \u001b[0m 76%\u001b[32m ]\u001b[0m 38 0.337921 0.00\n", - "\u001b[32m[ \u001b[0m 78%\u001b[32m ]\u001b[0m 39 0.337922 0.01\n", - "\u001b[32m[ \u001b[0m 80%\u001b[32m ]\u001b[0m 40 0.337580 0.00\n", - "\u001b[32m[ \u001b[0m 82%\u001b[32m ]\u001b[0m 41 0.337862 0.00\n", - "\u001b[32m[ \u001b[0m 84%\u001b[32m ]\u001b[0m 42 0.337982 0.01\n", - "\u001b[32m[ \u001b[0m 86%\u001b[32m ]\u001b[0m 43 0.336908 0.01\n", - "\u001b[32m[ \u001b[0m 88%\u001b[32m ]\u001b[0m 44 0.337312 0.01\n", - "\u001b[32m[ \u001b[0m 90%\u001b[32m ]\u001b[0m 45 0.337479 0.00\n", - "\u001b[32m[ \u001b[0m 92%\u001b[32m ]\u001b[0m 46 0.337478 0.01\n", - "\u001b[32m[ \u001b[0m 94%\u001b[32m ]\u001b[0m 47 0.337445 0.01\n", - "\u001b[32m[ \u001b[0m 96%\u001b[32m ]\u001b[0m 48 0.337600 0.01\n", - "\u001b[32m[ \u001b[0m 98%\u001b[32m ]\u001b[0m 49 0.337286 0.01\n", - "\u001b[32m[ \u001b[0m 100%\u001b[32m ]\u001b[0m 50 0.337232 0.01\n", - "\u001b[32m\u001b[1m[ ACTION ] Start to save model ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mModel file: /var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmpxh6ei75k\n", - "\u001b[32m[------------] \u001b[0mTime cost for saving model: 0.00 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Start to save txt model ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mTXT Model file: /var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmprefexgam\n", - "\u001b[32m[------------] \u001b[0mTime cost for saving txt model: 0.00 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Finish training\u001b[0m\n", - "\u001b[32m\u001b[1m[ ACTION ] Clear the xLearn environment ...\u001b[0m\n", - "\u001b[32m\u001b[1m[------------] Total time cost: 0.34 (sec)\u001b[0m\n", - "\u001b[32m\u001b[1m----------------------------------------------------------------------------------------------\n", - " _\n", - " | |\n", - " __ _| | ___ __ _ _ __ _ __\n", - " \\ \\/ / | / _ \\/ _` | '__| '_ \\ \n", - " > <| |___| __/ (_| | | | | | |\n", - " /_/\\_\\_____/\\___|\\__,_|_| |_| |_|\n", - "\n", - " xLearn -- 0.40 Version --\n", - "----------------------------------------------------------------------------------------------\n", - "\n", - "\u001b[39m\u001b[0m\u001b[32m[------------] \u001b[0mxLearn uses 8 threads for prediction task.\n", - "\u001b[32m\u001b[1m[ ACTION ] Load model ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mLoad model from /var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmpxh6ei75k\n", - "\u001b[32m[------------] \u001b[0mLoss function: squared\n", - "\u001b[32m[------------] \u001b[0mScore function: fm\n", - "\u001b[32m[------------] \u001b[0mNumber of Feature: 1061\n", - "\u001b[32m[------------] \u001b[0mNumber of K: 10\n", - "\u001b[32m[------------] \u001b[0mTime cost for loading model: 0.00 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Read Problem ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mFirst check if the text file has been already converted to binary format.\n", - "\u001b[32m[------------] \u001b[0mBinary file (/var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmpr2wl3i7s.bin) NOT found. Convert text file to binary file.\n", - "\u001b[32m[------------] \u001b[0mTime cost for reading problem: 0.04 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Start to predict ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mThe test loss is: 6.944547\n", - "\u001b[32m\u001b[1m[ ACTION ] Clear the xLearn environment ...\u001b[0m\n", - "\u001b[32m\u001b[1m[------------] Total time cost: 0.07 (sec)\u001b[0m\n" - ] - } - ], + "outputs": [], "source": [ "# FM 추천\n", "from src.fm import FMRecommender\n", @@ -166,18 +49,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "483d6ad4", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=1.054, Precision@K=0.013, Recall@K=0.040\n" - ] - } - ], + "outputs": [], "source": [ "# 평가\n", "metric_calculator = MetricCalculator()\n", @@ -189,128 +64,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "fef7f975", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[32m\u001b[1m----------------------------------------------------------------------------------------------\n", - " _\n", - " | |\n", - " __ _| | ___ __ _ _ __ _ __\n", - " \\ \\/ / | / _ \\/ _` | '__| '_ \\ \n", - " > <| |___| __/ (_| | | | | | |\n", - " /_/\\_\\_____/\\___|\\__,_|_| |_| |_|\n", - "\n", - " xLearn -- 0.40 Version --\n", - "----------------------------------------------------------------------------------------------\n", - "\n", - "\u001b[39m\u001b[0m\u001b[35m\u001b[1m[ WARNING ] Validation file not found, xLearn has already disable early-stopping.\u001b[0m\n", - "\u001b[35m\u001b[1m[ WARNING ] Validation file not found, xLearn has already disable (-x rmse) option.\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mxLearn uses 4 threads for training task.\n", - "\u001b[32m\u001b[1m[ ACTION ] Read Problem ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mFirst check if the text file has been already converted to binary format.\n", - "\u001b[32m[------------] \u001b[0mBinary file (/var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmpmoz52pqt.bin) NOT found. Convert text file to binary file.\n", - "\u001b[32m[------------] \u001b[0mNumber of Feature: 3050\n", - "\u001b[32m[------------] \u001b[0mTime cost for reading problem: 0.20 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Initialize model ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mModel size: 154.89 KB\n", - "\u001b[32m[------------] \u001b[0mTime cost for model initial: 0.00 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Start to train ...\u001b[0m\n", - "\u001b[32m[------------]\u001b[0m Epoch Train mse_loss Time cost (sec)\n", - "\u001b[32m[ \u001b[0m 2%\u001b[32m ]\u001b[0m 1 0.513912 0.03\n", - "\u001b[32m[ \u001b[0m 4%\u001b[32m ]\u001b[0m 2 0.505483 0.03\n", - "\u001b[32m[ \u001b[0m 6%\u001b[32m ]\u001b[0m 3 0.505344 0.03\n", - "\u001b[32m[ \u001b[0m 8%\u001b[32m ]\u001b[0m 4 0.505056 0.03\n", - "\u001b[32m[ \u001b[0m 10%\u001b[32m ]\u001b[0m 5 0.504832 0.03\n", - "\u001b[32m[ \u001b[0m 12%\u001b[32m ]\u001b[0m 6 0.504601 0.03\n", - "\u001b[32m[ \u001b[0m 14%\u001b[32m ]\u001b[0m 7 0.504817 0.03\n", - "\u001b[32m[ \u001b[0m 16%\u001b[32m ]\u001b[0m 8 0.504538 0.03\n", - "\u001b[32m[ \u001b[0m 18%\u001b[32m ]\u001b[0m 9 0.504791 0.03\n", - "\u001b[32m[ \u001b[0m 20%\u001b[32m ]\u001b[0m 10 0.504338 0.03\n", - "\u001b[32m[ \u001b[0m 22%\u001b[32m ]\u001b[0m 11 0.504382 0.03\n", - "\u001b[32m[ \u001b[0m 24%\u001b[32m ]\u001b[0m 12 0.504559 0.04\n", - "\u001b[32m[ \u001b[0m 26%\u001b[32m ]\u001b[0m 13 0.504786 0.03\n", - "\u001b[32m[ \u001b[0m 28%\u001b[32m ]\u001b[0m 14 0.504537 0.03\n", - "\u001b[32m[ \u001b[0m 30%\u001b[32m ]\u001b[0m 15 0.504704 0.03\n", - "\u001b[32m[ \u001b[0m 32%\u001b[32m ]\u001b[0m 16 0.504768 0.03\n", - "\u001b[32m[ \u001b[0m 34%\u001b[32m ]\u001b[0m 17 0.505108 0.03\n", - "\u001b[32m[ \u001b[0m 36%\u001b[32m ]\u001b[0m 18 0.504066 0.04\n", - "\u001b[32m[ \u001b[0m 38%\u001b[32m ]\u001b[0m 19 0.504696 0.04\n", - "\u001b[32m[ \u001b[0m 40%\u001b[32m ]\u001b[0m 20 0.504488 0.04\n", - "\u001b[32m[ \u001b[0m 42%\u001b[32m ]\u001b[0m 21 0.504811 0.04\n", - "\u001b[32m[ \u001b[0m 44%\u001b[32m ]\u001b[0m 22 0.504666 0.04\n", - "\u001b[32m[ \u001b[0m 46%\u001b[32m ]\u001b[0m 23 0.505006 0.04\n", - "\u001b[32m[ \u001b[0m 48%\u001b[32m ]\u001b[0m 24 0.504503 0.03\n", - "\u001b[32m[ \u001b[0m 50%\u001b[32m ]\u001b[0m 25 0.504566 0.03\n", - "\u001b[32m[ \u001b[0m 52%\u001b[32m ]\u001b[0m 26 0.504758 0.03\n", - "\u001b[32m[ \u001b[0m 54%\u001b[32m ]\u001b[0m 27 0.505005 0.03\n", - "\u001b[32m[ \u001b[0m 56%\u001b[32m ]\u001b[0m 28 0.504476 0.03\n", - "\u001b[32m[ \u001b[0m 57%\u001b[32m ]\u001b[0m 29 0.505133 0.03\n", - "\u001b[32m[ \u001b[0m 60%\u001b[32m ]\u001b[0m 30 0.505088 0.03\n", - "\u001b[32m[ \u001b[0m 62%\u001b[32m ]\u001b[0m 31 0.504721 0.03\n", - "\u001b[32m[ \u001b[0m 64%\u001b[32m ]\u001b[0m 32 0.505171 0.03\n", - "\u001b[32m[ \u001b[0m 66%\u001b[32m ]\u001b[0m 33 0.504432 0.03\n", - "\u001b[32m[ \u001b[0m 68%\u001b[32m ]\u001b[0m 34 0.504932 0.03\n", - "\u001b[32m[ \u001b[0m 70%\u001b[32m ]\u001b[0m 35 0.504518 0.03\n", - "\u001b[32m[ \u001b[0m 72%\u001b[32m ]\u001b[0m 36 0.504382 0.03\n", - "\u001b[32m[ \u001b[0m 74%\u001b[32m ]\u001b[0m 37 0.504451 0.03\n", - "\u001b[32m[ \u001b[0m 76%\u001b[32m ]\u001b[0m 38 0.505267 0.03\n", - "\u001b[32m[ \u001b[0m 78%\u001b[32m ]\u001b[0m 39 0.504785 0.03\n", - "\u001b[32m[ \u001b[0m 80%\u001b[32m ]\u001b[0m 40 0.504652 0.03\n", - "\u001b[32m[ \u001b[0m 82%\u001b[32m ]\u001b[0m 41 0.505083 0.03\n", - "\u001b[32m[ \u001b[0m 84%\u001b[32m ]\u001b[0m 42 0.504539 0.03\n", - "\u001b[32m[ \u001b[0m 86%\u001b[32m ]\u001b[0m 43 0.504432 0.03\n", - "\u001b[32m[ \u001b[0m 88%\u001b[32m ]\u001b[0m 44 0.504587 0.03\n", - "\u001b[32m[ \u001b[0m 90%\u001b[32m ]\u001b[0m 45 0.504894 0.03\n", - "\u001b[32m[ \u001b[0m 92%\u001b[32m ]\u001b[0m 46 0.504842 0.03\n", - "\u001b[32m[ \u001b[0m 94%\u001b[32m ]\u001b[0m 47 0.504761 0.03\n", - "\u001b[32m[ \u001b[0m 96%\u001b[32m ]\u001b[0m 48 0.504826 0.03\n", - "\u001b[32m[ \u001b[0m 98%\u001b[32m ]\u001b[0m 49 0.504952 0.03\n", - "\u001b[32m[ \u001b[0m 100%\u001b[32m ]\u001b[0m 50 0.504972 0.03\n", - "\u001b[32m\u001b[1m[ ACTION ] Start to save model ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mModel file: /var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmpgccvgagg\n", - "\u001b[32m[------------] \u001b[0mTime cost for saving model: 0.00 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Start to save txt model ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mTXT Model file: /var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmpzy7o5uqs\n", - "\u001b[32m[------------] \u001b[0mTime cost for saving txt model: 0.01 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Finish training\u001b[0m\n", - "\u001b[32m\u001b[1m[ ACTION ] Clear the xLearn environment ...\u001b[0m\n", - "\u001b[32m\u001b[1m[------------] Total time cost: 1.86 (sec)\u001b[0m\n", - "\u001b[32m\u001b[1m----------------------------------------------------------------------------------------------\n", - " _\n", - " | |\n", - " __ _| | ___ __ _ _ __ _ __\n", - " \\ \\/ / | / _ \\/ _` | '__| '_ \\ \n", - " > <| |___| __/ (_| | | | | | |\n", - " /_/\\_\\_____/\\___|\\__,_|_| |_| |_|\n", - "\n", - " xLearn -- 0.40 Version --\n", - "----------------------------------------------------------------------------------------------\n", - "\n", - "\u001b[39m\u001b[0m\u001b[32m[------------] \u001b[0mxLearn uses 8 threads for prediction task.\n", - "\u001b[32m\u001b[1m[ ACTION ] Load model ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mLoad model from /var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmpgccvgagg\n", - "\u001b[32m[------------] \u001b[0mLoss function: squared\n", - "\u001b[32m[------------] \u001b[0mScore function: fm\n", - "\u001b[32m[------------] \u001b[0mNumber of Feature: 3050\n", - "\u001b[32m[------------] \u001b[0mNumber of K: 10\n", - "\u001b[32m[------------] \u001b[0mTime cost for loading model: 0.00 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Read Problem ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mFirst check if the text file has been already converted to binary format.\n", - "\u001b[32m[------------] \u001b[0mBinary file (/var/folders/31/92gcylk93xvbjbyb75sdmpqm0000gn/T/tmpegzkkg74.bin) NOT found. Convert text file to binary file.\n", - "\u001b[32m[------------] \u001b[0mTime cost for reading problem: 0.55 (sec)\n", - "\u001b[32m\u001b[1m[ ACTION ] Start to predict ...\u001b[0m\n", - "\u001b[32m[------------] \u001b[0mThe test loss is: 7.458863\n", - "\u001b[32m\u001b[1m[ ACTION ] Clear the xLearn environment ...\u001b[0m\n", - "\u001b[32m\u001b[1m[------------] Total time cost: 0.60 (sec)\u001b[0m\n", - "rmse=1.068, Precision@K=0.015, Recall@K=0.050\n" - ] - } - ], + "outputs": [], "source": [ "# 보충 정보 사용\n", "recommend_result = recommender.recommend(movielens, use_side_information=True)\n", diff --git a/chapter5/notebook/IMF.ipynb b/chapter5/notebook/IMF.ipynb index bd57840..8a5439a 100644 --- a/chapter5/notebook/IMF.ipynb +++ b/chapter5/notebook/IMF.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "c302ab23", "metadata": {}, "outputs": [], @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "4f1322e1", "metadata": {}, "outputs": [], @@ -36,46 +36,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "bf47abe9", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:root:OpenBLAS detected. Its highly recommend to set the environment variable 'export OPENBLAS_NUM_THREADS=1' to disable its internal multithreading\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "86a3fdbb20244ff5a28180b308cdc261", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/50 [00:00 is unavailable. Install Levenhstein (e.g. `pip install python-Levenshtein`) to suppress this warning.\n", - " warnings.warn(msg)\n" - ] - } - ], + "outputs": [], "source": [ "# Item2vecContent 추천\n", "from src.item2vec import Item2vecRecommender\n", @@ -58,18 +49,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "d63c29a2", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=0.000, Precision@K=0.028, Recall@K=0.087\n" - ] - } - ], + "outputs": [], "source": [ "# 평가\n", "metric_calculator = MetricCalculator()\n", diff --git a/chapter5/notebook/LDA_collaboration.ipynb b/chapter5/notebook/LDA_collaboration.ipynb index eaa480b..a49e8ac 100644 --- a/chapter5/notebook/LDA_collaboration.ipynb +++ b/chapter5/notebook/LDA_collaboration.ipynb @@ -5,12 +5,12 @@ "id": "942a9897", "metadata": {}, "source": [ - "# Latent Dirichlet Allocation (LDA)の行動データへの適用" + "# Latent Dirichlet Allocation (LDA)의 행동 데이터로의 적용" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "b8cb8f0b", "metadata": {}, "outputs": [], @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "6769fb75", "metadata": {}, "outputs": [], @@ -36,289 +36,10 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "d3a98495", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 03:02:57,133 : INFO : adding document #0 to Dictionary(0 unique tokens: [])\n", - "2021-08-24 03:02:57,227 : INFO : built Dictionary(4987 unique tokens: ['185', '231', '292', '316', '329']...) from 997 documents (total 67731 corpus positions)\n", - "2021-08-24 03:02:57,228 : INFO : Dictionary lifecycle event {'msg': \"built Dictionary(4987 unique tokens: ['185', '231', '292', '316', '329']...) from 997 documents (total 67731 corpus positions)\", 'datetime': '2021-08-24T03:02:57.228811', 'gensim': '4.0.1', 'python': '3.7.8 (default, May 2 2021, 19:43:55) \\n[Clang 10.0.1 (clang-1001.0.46.4)]', 'platform': 'Darwin-18.7.0-x86_64-i386-64bit', 'event': 'created'}\n", - "2021-08-24 03:02:57,277 : INFO : using symmetric alpha at 0.02\n", - "2021-08-24 03:02:57,278 : INFO : using symmetric eta at 0.02\n", - "2021-08-24 03:02:57,279 : INFO : using serial LDA version on this node\n", - "2021-08-24 03:02:57,299 : INFO : running online (multi-pass) LDA training, 50 topics, 30 passes over the supplied corpus of 997 documents, updating model once every 997 documents, evaluating perplexity every 997 documents, iterating 50x with a convergence threshold of 0.001000\n", - "2021-08-24 03:02:58,120 : INFO : -18.332 per-word bound, 330039.8 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:02:58,121 : INFO : PROGRESS: pass 0, at document #997/997\n", - "2021-08-24 03:02:58,782 : INFO : topic #41 (0.020): 0.006*\"2858\" + 0.006*\"260\" + 0.006*\"296\" + 0.006*\"527\" + 0.005*\"50\" + 0.005*\"1210\" + 0.005*\"593\" + 0.004*\"2762\" + 0.004*\"1193\" + 0.004*\"541\"\n", - "2021-08-24 03:02:58,783 : INFO : topic #48 (0.020): 0.006*\"527\" + 0.005*\"110\" + 0.005*\"593\" + 0.005*\"34\" + 0.004*\"380\" + 0.004*\"356\" + 0.004*\"608\" + 0.004*\"32\" + 0.004*\"150\" + 0.004*\"1210\"\n", - "2021-08-24 03:02:58,784 : INFO : topic #26 (0.020): 0.009*\"608\" + 0.006*\"593\" + 0.006*\"260\" + 0.006*\"318\" + 0.005*\"527\" + 0.005*\"858\" + 0.004*\"36\" + 0.004*\"1\" + 0.004*\"356\" + 0.004*\"541\"\n", - "2021-08-24 03:02:58,785 : INFO : topic #14 (0.020): 0.009*\"593\" + 0.009*\"457\" + 0.009*\"356\" + 0.007*\"260\" + 0.007*\"527\" + 0.006*\"480\" + 0.006*\"62\" + 0.006*\"318\" + 0.006*\"364\" + 0.005*\"380\"\n", - "2021-08-24 03:02:58,786 : INFO : topic #25 (0.020): 0.009*\"260\" + 0.007*\"296\" + 0.007*\"593\" + 0.007*\"110\" + 0.006*\"318\" + 0.005*\"608\" + 0.005*\"858\" + 0.005*\"32\" + 0.005*\"1\" + 0.005*\"780\"\n", - "2021-08-24 03:02:58,787 : INFO : topic diff=23.625265, rho=1.000000\n", - "2021-08-24 03:02:59,471 : INFO : -10.582 per-word bound, 1533.3 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:02:59,472 : INFO : PROGRESS: pass 1, at document #997/997\n", - "2021-08-24 03:02:59,938 : INFO : topic #42 (0.020): 0.005*\"296\" + 0.004*\"2571\" + 0.004*\"1617\" + 0.003*\"1196\" + 0.003*\"912\" + 0.003*\"608\" + 0.003*\"50\" + 0.003*\"1193\" + 0.003*\"1198\" + 0.003*\"1089\"\n", - "2021-08-24 03:02:59,939 : INFO : topic #43 (0.020): 0.009*\"589\" + 0.008*\"588\" + 0.008*\"457\" + 0.008*\"593\" + 0.008*\"150\" + 0.008*\"380\" + 0.008*\"47\" + 0.008*\"316\" + 0.007*\"296\" + 0.007*\"318\"\n", - "2021-08-24 03:02:59,940 : INFO : topic #7 (0.020): 0.008*\"318\" + 0.008*\"1210\" + 0.008*\"2959\" + 0.008*\"593\" + 0.007*\"32\" + 0.006*\"2571\" + 0.006*\"296\" + 0.006*\"1196\" + 0.006*\"260\" + 0.006*\"527\"\n", - "2021-08-24 03:02:59,940 : INFO : topic #0 (0.020): 0.007*\"780\" + 0.006*\"3101\" + 0.005*\"1214\" + 0.005*\"527\" + 0.005*\"1219\" + 0.005*\"608\" + 0.005*\"457\" + 0.005*\"1617\" + 0.004*\"908\" + 0.004*\"2278\"\n", - "2021-08-24 03:02:59,941 : INFO : topic #16 (0.020): 0.006*\"260\" + 0.005*\"1193\" + 0.005*\"1196\" + 0.004*\"1250\" + 0.004*\"858\" + 0.004*\"919\" + 0.004*\"2858\" + 0.004*\"780\" + 0.004*\"1617\" + 0.004*\"1393\"\n", - "2021-08-24 03:02:59,942 : INFO : topic diff=3.936084, rho=0.577350\n", - "2021-08-24 03:03:00,626 : INFO : -9.637 per-word bound, 796.4 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:00,627 : INFO : PROGRESS: pass 2, at document #997/997\n", - "2021-08-24 03:03:01,078 : INFO : topic #1 (0.020): 0.006*\"4027\" + 0.006*\"47\" + 0.006*\"356\" + 0.006*\"318\" + 0.006*\"2762\" + 0.005*\"5010\" + 0.005*\"3578\" + 0.005*\"1089\" + 0.005*\"593\" + 0.005*\"527\"\n", - "2021-08-24 03:03:01,079 : INFO : topic #13 (0.020): 0.008*\"50\" + 0.006*\"593\" + 0.006*\"527\" + 0.006*\"2858\" + 0.006*\"2571\" + 0.006*\"296\" + 0.005*\"111\" + 0.005*\"858\" + 0.005*\"1193\" + 0.005*\"318\"\n", - "2021-08-24 03:03:01,080 : INFO : topic #38 (0.020): 0.008*\"3967\" + 0.005*\"1258\" + 0.004*\"50\" + 0.004*\"1997\" + 0.004*\"337\" + 0.004*\"858\" + 0.004*\"1387\" + 0.004*\"1219\" + 0.004*\"1225\" + 0.004*\"2657\"\n", - "2021-08-24 03:03:01,081 : INFO : topic #29 (0.020): 0.007*\"260\" + 0.005*\"919\" + 0.005*\"1394\" + 0.005*\"593\" + 0.005*\"296\" + 0.005*\"1221\" + 0.004*\"1097\" + 0.004*\"1288\" + 0.004*\"2804\" + 0.004*\"1196\"\n", - "2021-08-24 03:03:01,081 : INFO : topic #31 (0.020): 0.008*\"2571\" + 0.007*\"4226\" + 0.006*\"356\" + 0.006*\"1961\" + 0.006*\"4995\" + 0.006*\"2762\" + 0.006*\"2502\" + 0.005*\"4816\" + 0.005*\"3174\" + 0.005*\"296\"\n", - "2021-08-24 03:03:01,082 : INFO : topic diff=3.367622, rho=0.500000\n", - "2021-08-24 03:03:01,745 : INFO : -9.125 per-word bound, 558.4 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:01,745 : INFO : PROGRESS: pass 3, at document #997/997\n", - "2021-08-24 03:03:02,211 : INFO : topic #11 (0.020): 0.008*\"356\" + 0.007*\"150\" + 0.007*\"318\" + 0.007*\"364\" + 0.007*\"527\" + 0.006*\"597\" + 0.006*\"586\" + 0.006*\"1\" + 0.006*\"593\" + 0.006*\"780\"\n", - "2021-08-24 03:03:02,212 : INFO : topic #30 (0.020): 0.010*\"318\" + 0.009*\"50\" + 0.008*\"593\" + 0.007*\"32\" + 0.007*\"2858\" + 0.006*\"296\" + 0.006*\"5464\" + 0.006*\"7153\" + 0.006*\"33794\" + 0.005*\"356\"\n", - "2021-08-24 03:03:02,213 : INFO : topic #43 (0.020): 0.008*\"589\" + 0.006*\"588\" + 0.006*\"296\" + 0.006*\"593\" + 0.006*\"47\" + 0.006*\"318\" + 0.006*\"150\" + 0.005*\"380\" + 0.005*\"527\" + 0.005*\"316\"\n", - "2021-08-24 03:03:02,214 : INFO : topic #12 (0.020): 0.007*\"260\" + 0.007*\"4993\" + 0.006*\"1968\" + 0.006*\"1073\" + 0.005*\"5618\" + 0.005*\"1196\" + 0.005*\"1721\" + 0.005*\"4027\" + 0.005*\"4886\" + 0.005*\"3114\"\n", - "2021-08-24 03:03:02,214 : INFO : topic #0 (0.020): 0.008*\"3101\" + 0.007*\"1214\" + 0.007*\"780\" + 0.006*\"1219\" + 0.006*\"2278\" + 0.005*\"1252\" + 0.005*\"908\" + 0.005*\"2273\" + 0.005*\"1617\" + 0.005*\"527\"\n", - "2021-08-24 03:03:02,215 : INFO : topic diff=2.765281, rho=0.447214\n", - "2021-08-24 03:03:02,891 : INFO : -8.818 per-word bound, 451.3 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:02,892 : INFO : PROGRESS: pass 4, at document #997/997\n", - "2021-08-24 03:03:03,312 : INFO : topic #9 (0.020): 0.005*\"1704\" + 0.004*\"2028\" + 0.004*\"110\" + 0.004*\"356\" + 0.004*\"1196\" + 0.004*\"318\" + 0.004*\"2762\" + 0.004*\"1198\" + 0.004*\"1784\" + 0.004*\"296\"\n", - "2021-08-24 03:03:03,313 : INFO : topic #18 (0.020): 0.012*\"2700\" + 0.011*\"2683\" + 0.009*\"7153\" + 0.009*\"5952\" + 0.009*\"1208\" + 0.008*\"2706\" + 0.007*\"2791\" + 0.007*\"2716\" + 0.007*\"1213\" + 0.006*\"923\"\n", - "2021-08-24 03:03:03,314 : INFO : topic #6 (0.020): 0.007*\"356\" + 0.006*\"2571\" + 0.006*\"1721\" + 0.006*\"2706\" + 0.006*\"2700\" + 0.006*\"1393\" + 0.006*\"455\" + 0.005*\"2762\" + 0.005*\"2716\" + 0.005*\"2396\"\n", - "2021-08-24 03:03:03,314 : INFO : topic #26 (0.020): 0.010*\"608\" + 0.008*\"1247\" + 0.007*\"858\" + 0.006*\"1225\" + 0.006*\"593\" + 0.006*\"1094\" + 0.006*\"1207\" + 0.006*\"36\" + 0.006*\"1193\" + 0.006*\"17\"\n", - "2021-08-24 03:03:03,315 : INFO : topic #11 (0.020): 0.008*\"356\" + 0.007*\"1\" + 0.007*\"364\" + 0.007*\"150\" + 0.007*\"586\" + 0.007*\"318\" + 0.006*\"597\" + 0.006*\"527\" + 0.006*\"2997\" + 0.006*\"593\"\n", - "2021-08-24 03:03:03,316 : INFO : topic diff=2.221588, rho=0.408248\n", - "2021-08-24 03:03:03,987 : INFO : -8.621 per-word bound, 393.6 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:03,988 : INFO : PROGRESS: pass 5, at document #997/997\n", - "2021-08-24 03:03:04,430 : INFO : topic #15 (0.020): 0.014*\"527\" + 0.007*\"593\" + 0.007*\"2791\" + 0.007*\"260\" + 0.007*\"509\" + 0.007*\"357\" + 0.007*\"1923\" + 0.006*\"141\" + 0.006*\"2408\" + 0.006*\"27878\"\n", - "2021-08-24 03:03:04,431 : INFO : topic #39 (0.020): 0.009*\"2571\" + 0.008*\"1196\" + 0.007*\"1210\" + 0.007*\"260\" + 0.006*\"589\" + 0.006*\"480\" + 0.005*\"2628\" + 0.005*\"2028\" + 0.004*\"1270\" + 0.004*\"1291\"\n", - "2021-08-24 03:03:04,431 : INFO : topic #42 (0.020): 0.004*\"3083\" + 0.004*\"2020\" + 0.003*\"3328\" + 0.003*\"49272\" + 0.003*\"2571\" + 0.003*\"296\" + 0.003*\"6920\" + 0.003*\"4426\" + 0.003*\"5225\" + 0.003*\"7301\"\n", - "2021-08-24 03:03:04,432 : INFO : topic #5 (0.020): 0.006*\"318\" + 0.006*\"3578\" + 0.005*\"2572\" + 0.005*\"2571\" + 0.005*\"2513\" + 0.005*\"2858\" + 0.005*\"589\" + 0.005*\"110\" + 0.004*\"1199\" + 0.004*\"7387\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 03:03:04,433 : INFO : topic #45 (0.020): 0.010*\"1196\" + 0.009*\"260\" + 0.008*\"1200\" + 0.007*\"1258\" + 0.007*\"1198\" + 0.007*\"1097\" + 0.006*\"1968\" + 0.006*\"1721\" + 0.006*\"2081\" + 0.005*\"858\"\n", - "2021-08-24 03:03:04,434 : INFO : topic diff=1.760166, rho=0.377964\n", - "2021-08-24 03:03:05,134 : INFO : -8.487 per-word bound, 358.8 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:05,135 : INFO : PROGRESS: pass 6, at document #997/997\n", - "2021-08-24 03:03:05,612 : INFO : topic #16 (0.020): 0.006*\"260\" + 0.006*\"919\" + 0.006*\"1193\" + 0.005*\"1617\" + 0.005*\"1250\" + 0.005*\"1196\" + 0.005*\"2858\" + 0.005*\"908\" + 0.004*\"1012\" + 0.004*\"1021\"\n", - "2021-08-24 03:03:05,613 : INFO : topic #3 (0.020): 0.010*\"1610\" + 0.009*\"589\" + 0.009*\"2571\" + 0.007*\"780\" + 0.006*\"2763\" + 0.006*\"2028\" + 0.006*\"2353\" + 0.006*\"1356\" + 0.006*\"47\" + 0.005*\"110\"\n", - "2021-08-24 03:03:05,614 : INFO : topic #44 (0.020): 0.007*\"1210\" + 0.006*\"1617\" + 0.006*\"1240\" + 0.006*\"2858\" + 0.006*\"593\" + 0.006*\"1090\" + 0.006*\"1387\" + 0.005*\"2028\" + 0.005*\"50\" + 0.005*\"36\"\n", - "2021-08-24 03:03:05,615 : INFO : topic #10 (0.020): 0.008*\"589\" + 0.008*\"1196\" + 0.007*\"1200\" + 0.006*\"2571\" + 0.006*\"1214\" + 0.006*\"47\" + 0.005*\"32\" + 0.005*\"296\" + 0.005*\"4002\" + 0.005*\"541\"\n", - "2021-08-24 03:03:05,616 : INFO : topic #28 (0.020): 0.012*\"260\" + 0.012*\"2571\" + 0.011*\"593\" + 0.010*\"356\" + 0.010*\"2028\" + 0.010*\"1210\" + 0.009*\"318\" + 0.009*\"296\" + 0.008*\"608\" + 0.008*\"110\"\n", - "2021-08-24 03:03:05,616 : INFO : topic diff=1.385117, rho=0.353553\n", - "2021-08-24 03:03:06,434 : INFO : -8.393 per-word bound, 336.2 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:06,435 : INFO : PROGRESS: pass 7, at document #997/997\n", - "2021-08-24 03:03:06,932 : INFO : topic #18 (0.020): 0.015*\"2683\" + 0.014*\"2700\" + 0.011*\"2706\" + 0.009*\"7153\" + 0.009*\"5952\" + 0.008*\"1208\" + 0.008*\"2791\" + 0.008*\"2716\" + 0.007*\"3101\" + 0.007*\"923\"\n", - "2021-08-24 03:03:06,933 : INFO : topic #40 (0.020): 0.030*\"260\" + 0.029*\"1\" + 0.027*\"780\" + 0.027*\"733\" + 0.022*\"62\" + 0.021*\"608\" + 0.020*\"1073\" + 0.019*\"32\" + 0.019*\"736\" + 0.018*\"648\"\n", - "2021-08-24 03:03:06,934 : INFO : topic #43 (0.020): 0.007*\"589\" + 0.006*\"2858\" + 0.006*\"1089\" + 0.005*\"1210\" + 0.005*\"1500\" + 0.005*\"1704\" + 0.005*\"527\" + 0.005*\"588\" + 0.005*\"778\" + 0.005*\"296\"\n", - "2021-08-24 03:03:06,935 : INFO : topic #19 (0.020): 0.008*\"1036\" + 0.007*\"1240\" + 0.007*\"2571\" + 0.006*\"589\" + 0.006*\"480\" + 0.006*\"1214\" + 0.006*\"356\" + 0.006*\"1198\" + 0.006*\"110\" + 0.006*\"1200\"\n", - "2021-08-24 03:03:06,936 : INFO : topic #0 (0.020): 0.009*\"3101\" + 0.008*\"1214\" + 0.007*\"1219\" + 0.006*\"1252\" + 0.006*\"780\" + 0.006*\"848\" + 0.006*\"2278\" + 0.006*\"908\" + 0.006*\"2273\" + 0.006*\"1748\"\n", - "2021-08-24 03:03:06,936 : INFO : topic diff=1.088646, rho=0.333333\n", - "2021-08-24 03:03:07,706 : INFO : -8.323 per-word bound, 320.3 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:07,706 : INFO : PROGRESS: pass 8, at document #997/997\n", - "2021-08-24 03:03:08,244 : INFO : topic #32 (0.020): 0.009*\"2028\" + 0.008*\"593\" + 0.007*\"527\" + 0.007*\"858\" + 0.006*\"2858\" + 0.006*\"1617\" + 0.005*\"247\" + 0.005*\"45720\" + 0.005*\"36535\" + 0.005*\"1196\"\n", - "2021-08-24 03:03:08,245 : INFO : topic #8 (0.020): 0.007*\"837\" + 0.007*\"1414\" + 0.007*\"1270\" + 0.007*\"2081\" + 0.006*\"1097\" + 0.006*\"260\" + 0.006*\"1713\" + 0.006*\"1210\" + 0.006*\"2064\" + 0.005*\"1689\"\n", - "2021-08-24 03:03:08,246 : INFO : topic #3 (0.020): 0.010*\"1610\" + 0.009*\"589\" + 0.009*\"2571\" + 0.007*\"780\" + 0.006*\"2028\" + 0.006*\"2763\" + 0.006*\"2353\" + 0.006*\"1356\" + 0.006*\"47\" + 0.005*\"380\"\n", - "2021-08-24 03:03:08,246 : INFO : topic #19 (0.020): 0.008*\"1036\" + 0.007*\"1240\" + 0.007*\"2571\" + 0.007*\"589\" + 0.006*\"1214\" + 0.006*\"480\" + 0.006*\"1198\" + 0.006*\"356\" + 0.006*\"110\" + 0.006*\"1200\"\n", - "2021-08-24 03:03:08,248 : INFO : topic #24 (0.020): 0.007*\"1198\" + 0.006*\"1196\" + 0.006*\"1200\" + 0.006*\"1208\" + 0.006*\"1193\" + 0.006*\"1240\" + 0.005*\"1214\" + 0.005*\"1270\" + 0.005*\"1197\" + 0.005*\"1219\"\n", - "2021-08-24 03:03:08,248 : INFO : topic diff=0.857510, rho=0.316228\n", - "2021-08-24 03:03:09,056 : INFO : -8.270 per-word bound, 308.7 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:09,057 : INFO : PROGRESS: pass 9, at document #997/997\n", - "2021-08-24 03:03:09,604 : INFO : topic #33 (0.020): 0.008*\"1036\" + 0.007*\"780\" + 0.007*\"1580\" + 0.007*\"480\" + 0.007*\"1198\" + 0.006*\"1291\" + 0.006*\"1210\" + 0.006*\"1196\" + 0.006*\"3753\" + 0.005*\"1370\"\n", - "2021-08-24 03:03:09,605 : INFO : topic #1 (0.020): 0.012*\"4027\" + 0.010*\"5010\" + 0.010*\"63\" + 0.008*\"47\" + 0.008*\"318\" + 0.008*\"2762\" + 0.008*\"3578\" + 0.008*\"3745\" + 0.008*\"3996\" + 0.008*\"4310\"\n", - "2021-08-24 03:03:09,606 : INFO : topic #49 (0.020): 0.009*\"608\" + 0.008*\"750\" + 0.007*\"1136\" + 0.007*\"260\" + 0.007*\"1196\" + 0.006*\"541\" + 0.006*\"1213\" + 0.006*\"296\" + 0.006*\"858\" + 0.006*\"50\"\n", - "2021-08-24 03:03:09,606 : INFO : topic #26 (0.020): 0.009*\"608\" + 0.009*\"1247\" + 0.008*\"858\" + 0.008*\"1193\" + 0.008*\"1225\" + 0.007*\"1207\" + 0.007*\"1094\" + 0.007*\"527\" + 0.007*\"593\" + 0.006*\"1230\"\n", - "2021-08-24 03:03:09,607 : INFO : topic #7 (0.020): 0.012*\"2959\" + 0.010*\"1200\" + 0.010*\"1210\" + 0.009*\"1136\" + 0.008*\"1196\" + 0.008*\"2858\" + 0.008*\"2571\" + 0.008*\"50\" + 0.007*\"260\" + 0.007*\"5445\"\n", - "2021-08-24 03:03:09,608 : INFO : topic diff=0.679622, rho=0.301511\n", - "2021-08-24 03:03:10,357 : INFO : -8.229 per-word bound, 300.0 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:10,358 : INFO : PROGRESS: pass 10, at document #997/997\n", - "2021-08-24 03:03:10,830 : INFO : topic #39 (0.020): 0.010*\"2571\" + 0.009*\"1196\" + 0.008*\"1210\" + 0.007*\"260\" + 0.006*\"589\" + 0.006*\"480\" + 0.006*\"2628\" + 0.005*\"1676\" + 0.005*\"2916\" + 0.005*\"1270\"\n", - "2021-08-24 03:03:10,831 : INFO : topic #26 (0.020): 0.009*\"608\" + 0.009*\"1247\" + 0.008*\"1193\" + 0.008*\"858\" + 0.008*\"1225\" + 0.007*\"1207\" + 0.007*\"1094\" + 0.007*\"527\" + 0.007*\"593\" + 0.006*\"1230\"\n", - "2021-08-24 03:03:10,831 : INFO : topic #45 (0.020): 0.012*\"1196\" + 0.010*\"1200\" + 0.009*\"260\" + 0.008*\"1198\" + 0.008*\"1097\" + 0.008*\"1258\" + 0.008*\"1968\" + 0.008*\"2081\" + 0.007*\"1721\" + 0.007*\"318\"\n", - "2021-08-24 03:03:10,832 : INFO : topic #23 (0.020): 0.014*\"5952\" + 0.014*\"2959\" + 0.013*\"7153\" + 0.012*\"4226\" + 0.012*\"4993\" + 0.011*\"2571\" + 0.010*\"296\" + 0.009*\"47\" + 0.009*\"2329\" + 0.009*\"318\"\n", - "2021-08-24 03:03:10,833 : INFO : topic #18 (0.020): 0.018*\"2683\" + 0.016*\"2700\" + 0.014*\"2706\" + 0.008*\"3101\" + 0.008*\"2716\" + 0.008*\"2791\" + 0.007*\"1213\" + 0.007*\"2605\" + 0.006*\"2987\" + 0.006*\"7153\"\n", - "2021-08-24 03:03:10,834 : INFO : topic diff=0.542602, rho=0.288675\n", - "2021-08-24 03:03:11,529 : INFO : -8.195 per-word bound, 293.1 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:11,529 : INFO : PROGRESS: pass 11, at document #997/997\n", - "2021-08-24 03:03:12,005 : INFO : topic #49 (0.020): 0.009*\"608\" + 0.008*\"750\" + 0.007*\"1136\" + 0.007*\"260\" + 0.007*\"541\" + 0.007*\"1196\" + 0.006*\"1213\" + 0.006*\"296\" + 0.006*\"1200\" + 0.006*\"858\"\n", - "2021-08-24 03:03:12,006 : INFO : topic #21 (0.020): 0.012*\"858\" + 0.012*\"1221\" + 0.012*\"1193\" + 0.008*\"1641\" + 0.008*\"527\" + 0.008*\"2858\" + 0.008*\"2396\" + 0.008*\"50\" + 0.008*\"2762\" + 0.008*\"1198\"\n", - "2021-08-24 03:03:12,006 : INFO : topic #20 (0.020): 0.007*\"2140\" + 0.007*\"1240\" + 0.006*\"924\" + 0.006*\"2529\" + 0.006*\"260\" + 0.006*\"1374\" + 0.006*\"1127\" + 0.005*\"1019\" + 0.005*\"1196\" + 0.005*\"1200\"\n", - "2021-08-24 03:03:12,007 : INFO : topic #40 (0.020): 0.033*\"260\" + 0.031*\"1\" + 0.030*\"780\" + 0.029*\"733\" + 0.023*\"62\" + 0.023*\"608\" + 0.021*\"1073\" + 0.021*\"736\" + 0.021*\"32\" + 0.019*\"648\"\n", - "2021-08-24 03:03:12,008 : INFO : topic #8 (0.020): 0.008*\"837\" + 0.007*\"2081\" + 0.007*\"1713\" + 0.007*\"1414\" + 0.007*\"1270\" + 0.006*\"1097\" + 0.006*\"1210\" + 0.006*\"260\" + 0.006*\"1689\" + 0.006*\"1376\"\n", - "2021-08-24 03:03:12,009 : INFO : topic diff=0.437222, rho=0.277350\n", - "2021-08-24 03:03:12,750 : INFO : -8.167 per-word bound, 287.5 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:12,751 : INFO : PROGRESS: pass 12, at document #997/997\n", - "2021-08-24 03:03:13,245 : INFO : topic #33 (0.020): 0.008*\"1036\" + 0.008*\"780\" + 0.007*\"1580\" + 0.007*\"1198\" + 0.007*\"480\" + 0.007*\"1291\" + 0.007*\"1196\" + 0.007*\"1210\" + 0.006*\"1608\" + 0.006*\"3753\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 03:03:13,246 : INFO : topic #2 (0.020): 0.013*\"1197\" + 0.010*\"1148\" + 0.009*\"593\" + 0.008*\"1246\" + 0.008*\"296\" + 0.008*\"2797\" + 0.008*\"1198\" + 0.008*\"924\" + 0.008*\"110\" + 0.008*\"1270\"\n", - "2021-08-24 03:03:13,247 : INFO : topic #40 (0.020): 0.033*\"260\" + 0.031*\"1\" + 0.030*\"780\" + 0.029*\"733\" + 0.023*\"608\" + 0.023*\"62\" + 0.021*\"1073\" + 0.021*\"736\" + 0.021*\"32\" + 0.019*\"648\"\n", - "2021-08-24 03:03:13,248 : INFO : topic #31 (0.020): 0.009*\"6378\" + 0.009*\"4816\" + 0.008*\"5481\" + 0.008*\"3174\" + 0.008*\"3977\" + 0.008*\"1961\" + 0.007*\"1580\" + 0.007*\"356\" + 0.007*\"4995\" + 0.006*\"2683\"\n", - "2021-08-24 03:03:13,249 : INFO : topic #20 (0.020): 0.007*\"2140\" + 0.007*\"924\" + 0.007*\"1240\" + 0.006*\"2529\" + 0.006*\"260\" + 0.006*\"1374\" + 0.006*\"1127\" + 0.006*\"1019\" + 0.005*\"1196\" + 0.005*\"1200\"\n", - "2021-08-24 03:03:13,250 : INFO : topic diff=0.355709, rho=0.267261\n", - "2021-08-24 03:03:14,009 : INFO : -8.144 per-word bound, 282.8 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:14,010 : INFO : PROGRESS: pass 13, at document #997/997\n", - "2021-08-24 03:03:14,491 : INFO : topic #11 (0.020): 0.010*\"1\" + 0.009*\"586\" + 0.007*\"364\" + 0.007*\"356\" + 0.007*\"1073\" + 0.007*\"2997\" + 0.007*\"2706\" + 0.006*\"1197\" + 0.006*\"2683\" + 0.006*\"4306\"\n", - "2021-08-24 03:03:14,492 : INFO : topic #22 (0.020): 0.015*\"1354\" + 0.012*\"1357\" + 0.011*\"1704\" + 0.011*\"2858\" + 0.011*\"1784\" + 0.010*\"3720\" + 0.010*\"296\" + 0.010*\"2324\" + 0.010*\"1635\" + 0.009*\"527\"\n", - "2021-08-24 03:03:14,492 : INFO : topic #46 (0.020): 0.009*\"1200\" + 0.009*\"1240\" + 0.007*\"2918\" + 0.007*\"2858\" + 0.006*\"260\" + 0.006*\"1196\" + 0.006*\"1214\" + 0.006*\"2951\" + 0.005*\"1259\" + 0.005*\"599\"\n", - "2021-08-24 03:03:14,493 : INFO : topic #25 (0.020): 0.008*\"43396\" + 0.006*\"6932\" + 0.006*\"41863\" + 0.006*\"260\" + 0.005*\"49961\" + 0.005*\"296\" + 0.005*\"999\" + 0.005*\"44191\" + 0.005*\"1673\" + 0.005*\"27803\"\n", - "2021-08-24 03:03:14,494 : INFO : topic #30 (0.020): 0.012*\"318\" + 0.011*\"5464\" + 0.010*\"50\" + 0.008*\"3869\" + 0.007*\"2997\" + 0.006*\"356\" + 0.006*\"1266\" + 0.006*\"1704\" + 0.006*\"2987\" + 0.006*\"1193\"\n", - "2021-08-24 03:03:14,495 : INFO : topic diff=0.292491, rho=0.258199\n", - "2021-08-24 03:03:15,173 : INFO : -8.124 per-word bound, 278.9 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:15,174 : INFO : PROGRESS: pass 14, at document #997/997\n", - "2021-08-24 03:03:15,626 : INFO : topic #47 (0.020): 0.022*\"150\" + 0.022*\"457\" + 0.022*\"593\" + 0.020*\"296\" + 0.019*\"318\" + 0.018*\"356\" + 0.018*\"590\" + 0.017*\"110\" + 0.016*\"380\" + 0.015*\"480\"\n", - "2021-08-24 03:03:15,626 : INFO : topic #17 (0.020): 0.008*\"1250\" + 0.006*\"457\" + 0.006*\"2527\" + 0.006*\"1610\" + 0.006*\"2393\" + 0.006*\"1183\" + 0.005*\"1090\" + 0.005*\"1954\" + 0.005*\"1210\" + 0.005*\"2167\"\n", - "2021-08-24 03:03:15,628 : INFO : topic #4 (0.020): 0.011*\"1196\" + 0.010*\"1023\" + 0.009*\"28\" + 0.009*\"3093\" + 0.008*\"2022\" + 0.008*\"3114\" + 0.008*\"3094\" + 0.008*\"314\" + 0.008*\"2858\" + 0.007*\"924\"\n", - "2021-08-24 03:03:15,628 : INFO : topic #42 (0.020): 0.005*\"8507\" + 0.005*\"5225\" + 0.005*\"3083\" + 0.004*\"4117\" + 0.004*\"7706\" + 0.004*\"3742\" + 0.004*\"49272\" + 0.004*\"6920\" + 0.004*\"4426\" + 0.004*\"7301\"\n", - "2021-08-24 03:03:15,629 : INFO : topic #39 (0.020): 0.010*\"2571\" + 0.009*\"1196\" + 0.008*\"1210\" + 0.007*\"260\" + 0.007*\"589\" + 0.006*\"480\" + 0.006*\"2628\" + 0.005*\"1676\" + 0.005*\"1580\" + 0.005*\"2916\"\n", - "2021-08-24 03:03:15,630 : INFO : topic diff=0.243063, rho=0.250000\n", - "2021-08-24 03:03:16,303 : INFO : -8.106 per-word bound, 275.6 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:16,304 : INFO : PROGRESS: pass 15, at document #997/997\n", - "2021-08-24 03:03:16,745 : INFO : topic #4 (0.020): 0.011*\"1196\" + 0.010*\"1023\" + 0.010*\"28\" + 0.009*\"3093\" + 0.008*\"2022\" + 0.008*\"3094\" + 0.008*\"314\" + 0.008*\"2858\" + 0.008*\"3114\" + 0.007*\"2443\"\n", - "2021-08-24 03:03:16,746 : INFO : topic #26 (0.020): 0.009*\"608\" + 0.009*\"1193\" + 0.009*\"1247\" + 0.008*\"1225\" + 0.008*\"858\" + 0.007*\"1207\" + 0.007*\"527\" + 0.007*\"1094\" + 0.007*\"593\" + 0.006*\"1230\"\n", - "2021-08-24 03:03:16,747 : INFO : topic #30 (0.020): 0.012*\"318\" + 0.011*\"5464\" + 0.009*\"50\" + 0.008*\"3869\" + 0.007*\"2997\" + 0.006*\"1266\" + 0.006*\"193\" + 0.006*\"59615\" + 0.006*\"49272\" + 0.006*\"1193\"\n", - "2021-08-24 03:03:16,748 : INFO : topic #46 (0.020): 0.010*\"1200\" + 0.009*\"1240\" + 0.008*\"2918\" + 0.007*\"2858\" + 0.006*\"260\" + 0.006*\"1214\" + 0.006*\"599\" + 0.006*\"1259\" + 0.006*\"1196\" + 0.006*\"2951\"\n", - "2021-08-24 03:03:16,749 : INFO : topic #47 (0.020): 0.022*\"150\" + 0.022*\"457\" + 0.022*\"593\" + 0.020*\"296\" + 0.020*\"318\" + 0.018*\"356\" + 0.018*\"590\" + 0.017*\"110\" + 0.016*\"380\" + 0.015*\"480\"\n", - "2021-08-24 03:03:16,749 : INFO : topic diff=0.204050, rho=0.242536\n", - "2021-08-24 03:03:17,419 : INFO : -8.092 per-word bound, 272.8 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:17,420 : INFO : PROGRESS: pass 16, at document #997/997\n", - "2021-08-24 03:03:17,856 : INFO : topic #19 (0.020): 0.009*\"1036\" + 0.008*\"1240\" + 0.008*\"589\" + 0.007*\"110\" + 0.007*\"2571\" + 0.007*\"1198\" + 0.007*\"1214\" + 0.007*\"480\" + 0.006*\"1200\" + 0.006*\"2000\"\n", - "2021-08-24 03:03:17,857 : INFO : topic #13 (0.020): 0.014*\"50\" + 0.010*\"111\" + 0.010*\"290\" + 0.010*\"527\" + 0.009*\"1237\" + 0.008*\"593\" + 0.008*\"2858\" + 0.008*\"1173\" + 0.008*\"296\" + 0.007*\"175\"\n", - "2021-08-24 03:03:17,858 : INFO : topic #11 (0.020): 0.010*\"1\" + 0.009*\"586\" + 0.007*\"364\" + 0.007*\"1073\" + 0.007*\"356\" + 0.007*\"2997\" + 0.007*\"2706\" + 0.006*\"1197\" + 0.006*\"2683\" + 0.006*\"4306\"\n", - "2021-08-24 03:03:17,859 : INFO : topic #36 (0.020): 0.007*\"6365\" + 0.006*\"1580\" + 0.006*\"4874\" + 0.006*\"2291\" + 0.006*\"2011\" + 0.005*\"520\" + 0.005*\"1270\" + 0.005*\"6333\" + 0.005*\"3793\" + 0.005*\"1200\"\n", - "2021-08-24 03:03:17,860 : INFO : topic #1 (0.020): 0.012*\"4027\" + 0.012*\"5010\" + 0.010*\"3745\" + 0.009*\"4310\" + 0.009*\"63\" + 0.009*\"3996\" + 0.008*\"4019\" + 0.008*\"631\" + 0.008*\"5400\" + 0.008*\"3969\"\n", - "2021-08-24 03:03:17,860 : INFO : topic diff=0.172991, rho=0.235702\n", - "2021-08-24 03:03:18,528 : INFO : -8.079 per-word bound, 270.3 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:18,528 : INFO : PROGRESS: pass 17, at document #997/997\n", - "2021-08-24 03:03:18,985 : INFO : topic #3 (0.020): 0.009*\"1610\" + 0.009*\"589\" + 0.009*\"2571\" + 0.007*\"2028\" + 0.006*\"1356\" + 0.006*\"18\" + 0.006*\"780\" + 0.006*\"2763\" + 0.006*\"58559\" + 0.006*\"54997\"\n", - "2021-08-24 03:03:18,986 : INFO : topic #2 (0.020): 0.013*\"1197\" + 0.011*\"1148\" + 0.009*\"1246\" + 0.009*\"593\" + 0.008*\"2797\" + 0.008*\"296\" + 0.008*\"1198\" + 0.008*\"110\" + 0.008*\"1270\" + 0.008*\"1617\"\n", - "2021-08-24 03:03:18,987 : INFO : topic #13 (0.020): 0.014*\"50\" + 0.010*\"111\" + 0.010*\"290\" + 0.010*\"527\" + 0.009*\"1237\" + 0.008*\"593\" + 0.008*\"1173\" + 0.008*\"2858\" + 0.008*\"296\" + 0.007*\"175\"\n", - "2021-08-24 03:03:18,988 : INFO : topic #21 (0.020): 0.012*\"858\" + 0.012*\"1221\" + 0.012*\"1193\" + 0.008*\"2396\" + 0.008*\"2858\" + 0.008*\"2762\" + 0.008*\"904\" + 0.008*\"1641\" + 0.008*\"527\" + 0.008*\"50\"\n", - "2021-08-24 03:03:18,989 : INFO : topic #33 (0.020): 0.009*\"1036\" + 0.008*\"780\" + 0.008*\"1198\" + 0.008*\"1196\" + 0.008*\"1291\" + 0.007*\"1580\" + 0.007*\"480\" + 0.007*\"1210\" + 0.006*\"1608\" + 0.006*\"260\"\n", - "2021-08-24 03:03:18,990 : INFO : topic diff=0.148018, rho=0.229416\n", - "2021-08-24 03:03:19,753 : INFO : -8.067 per-word bound, 268.2 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:19,754 : INFO : PROGRESS: pass 18, at document #997/997\n", - "2021-08-24 03:03:20,202 : INFO : topic #4 (0.020): 0.011*\"1196\" + 0.010*\"1023\" + 0.010*\"28\" + 0.009*\"2443\" + 0.009*\"2022\" + 0.008*\"3093\" + 0.008*\"3094\" + 0.008*\"314\" + 0.008*\"2858\" + 0.007*\"3114\"\n", - "2021-08-24 03:03:20,203 : INFO : topic #8 (0.020): 0.008*\"837\" + 0.008*\"1713\" + 0.007*\"1414\" + 0.007*\"2081\" + 0.007*\"1270\" + 0.007*\"1210\" + 0.006*\"1097\" + 0.006*\"260\" + 0.006*\"1689\" + 0.006*\"1376\"\n", - "2021-08-24 03:03:20,204 : INFO : topic #16 (0.020): 0.010*\"455\" + 0.009*\"355\" + 0.008*\"837\" + 0.008*\"609\" + 0.008*\"688\" + 0.007*\"1015\" + 0.007*\"919\" + 0.007*\"851\" + 0.006*\"27\" + 0.006*\"1021\"\n", - "2021-08-24 03:03:20,205 : INFO : topic #29 (0.020): 0.008*\"919\" + 0.008*\"1394\" + 0.008*\"260\" + 0.007*\"2064\" + 0.007*\"2804\" + 0.007*\"3751\" + 0.006*\"1022\" + 0.006*\"2395\" + 0.006*\"1222\" + 0.006*\"1097\"\n", - "2021-08-24 03:03:20,206 : INFO : topic #22 (0.020): 0.018*\"1354\" + 0.013*\"1357\" + 0.012*\"1704\" + 0.011*\"2858\" + 0.011*\"1784\" + 0.011*\"3720\" + 0.010*\"2324\" + 0.010*\"1635\" + 0.010*\"527\" + 0.009*\"1682\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 03:03:20,207 : INFO : topic diff=0.127955, rho=0.223607\n", - "2021-08-24 03:03:20,943 : INFO : -8.057 per-word bound, 266.2 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:20,944 : INFO : PROGRESS: pass 19, at document #997/997\n", - "2021-08-24 03:03:21,406 : INFO : topic #47 (0.020): 0.023*\"150\" + 0.022*\"457\" + 0.022*\"593\" + 0.020*\"296\" + 0.020*\"318\" + 0.018*\"356\" + 0.018*\"590\" + 0.017*\"110\" + 0.016*\"380\" + 0.016*\"480\"\n", - "2021-08-24 03:03:21,407 : INFO : topic #49 (0.020): 0.010*\"608\" + 0.009*\"750\" + 0.008*\"1136\" + 0.007*\"541\" + 0.007*\"260\" + 0.007*\"1196\" + 0.007*\"296\" + 0.007*\"1148\" + 0.007*\"1214\" + 0.007*\"1200\"\n", - "2021-08-24 03:03:21,408 : INFO : topic #22 (0.020): 0.018*\"1354\" + 0.013*\"1357\" + 0.012*\"1704\" + 0.011*\"2858\" + 0.011*\"1784\" + 0.011*\"3720\" + 0.010*\"2324\" + 0.010*\"1635\" + 0.010*\"527\" + 0.010*\"1682\"\n", - "2021-08-24 03:03:21,408 : INFO : topic #37 (0.020): 0.007*\"908\" + 0.006*\"913\" + 0.006*\"1256\" + 0.006*\"904\" + 0.005*\"933\" + 0.005*\"903\" + 0.005*\"1269\" + 0.005*\"905\" + 0.005*\"912\" + 0.005*\"910\"\n", - "2021-08-24 03:03:21,409 : INFO : topic #32 (0.020): 0.010*\"2028\" + 0.008*\"593\" + 0.007*\"858\" + 0.007*\"527\" + 0.007*\"590\" + 0.006*\"1617\" + 0.006*\"45720\" + 0.006*\"36535\" + 0.006*\"247\" + 0.006*\"2858\"\n", - "2021-08-24 03:03:21,410 : INFO : topic diff=0.111559, rho=0.218218\n", - "2021-08-24 03:03:22,206 : INFO : -8.047 per-word bound, 264.5 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:22,206 : INFO : PROGRESS: pass 20, at document #997/997\n", - "2021-08-24 03:03:22,680 : INFO : topic #24 (0.020): 0.012*\"1196\" + 0.011*\"1270\" + 0.011*\"1198\" + 0.008*\"1197\" + 0.008*\"1291\" + 0.008*\"1240\" + 0.007*\"1246\" + 0.007*\"1097\" + 0.007*\"1193\" + 0.007*\"1200\"\n", - "2021-08-24 03:03:22,681 : INFO : topic #37 (0.020): 0.007*\"908\" + 0.007*\"913\" + 0.006*\"1256\" + 0.006*\"904\" + 0.005*\"933\" + 0.005*\"903\" + 0.005*\"1269\" + 0.005*\"905\" + 0.005*\"912\" + 0.005*\"910\"\n", - "2021-08-24 03:03:22,682 : INFO : topic #27 (0.020): 0.020*\"587\" + 0.016*\"41\" + 0.016*\"36\" + 0.016*\"371\" + 0.016*\"376\" + 0.014*\"539\" + 0.014*\"11\" + 0.013*\"141\" + 0.013*\"62\" + 0.013*\"17\"\n", - "2021-08-24 03:03:22,683 : INFO : topic #31 (0.020): 0.010*\"6378\" + 0.009*\"4816\" + 0.009*\"3977\" + 0.008*\"5481\" + 0.008*\"3174\" + 0.007*\"1961\" + 0.007*\"1580\" + 0.007*\"356\" + 0.006*\"4995\" + 0.006*\"2683\"\n", - "2021-08-24 03:03:22,684 : INFO : topic #39 (0.020): 0.010*\"2571\" + 0.009*\"1196\" + 0.008*\"1210\" + 0.007*\"260\" + 0.007*\"589\" + 0.006*\"2628\" + 0.006*\"1676\" + 0.006*\"480\" + 0.006*\"1580\" + 0.005*\"1527\"\n", - "2021-08-24 03:03:22,685 : INFO : topic diff=0.098085, rho=0.213201\n", - "2021-08-24 03:03:23,490 : INFO : -8.039 per-word bound, 263.0 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:23,491 : INFO : PROGRESS: pass 21, at document #997/997\n", - "2021-08-24 03:03:23,925 : INFO : topic #37 (0.020): 0.007*\"908\" + 0.007*\"913\" + 0.006*\"1256\" + 0.006*\"904\" + 0.006*\"903\" + 0.005*\"933\" + 0.005*\"1269\" + 0.005*\"905\" + 0.005*\"910\" + 0.005*\"912\"\n", - "2021-08-24 03:03:23,926 : INFO : topic #6 (0.020): 0.008*\"2396\" + 0.008*\"1193\" + 0.007*\"11\" + 0.007*\"356\" + 0.007*\"2700\" + 0.007*\"2571\" + 0.007*\"1721\" + 0.007*\"2706\" + 0.007*\"1584\" + 0.007*\"3793\"\n", - "2021-08-24 03:03:23,927 : INFO : topic #2 (0.020): 0.013*\"1197\" + 0.012*\"1148\" + 0.009*\"1246\" + 0.009*\"593\" + 0.009*\"2797\" + 0.008*\"110\" + 0.008*\"1270\" + 0.008*\"1617\" + 0.007*\"1198\" + 0.007*\"1097\"\n", - "2021-08-24 03:03:23,928 : INFO : topic #14 (0.020): 0.015*\"412\" + 0.008*\"105\" + 0.007*\"1747\" + 0.007*\"27878\" + 0.007*\"2683\" + 0.006*\"2858\" + 0.006*\"111\" + 0.006*\"2791\" + 0.006*\"1584\" + 0.005*\"55\"\n", - "2021-08-24 03:03:23,929 : INFO : topic #30 (0.020): 0.012*\"193\" + 0.011*\"5464\" + 0.010*\"318\" + 0.008*\"59615\" + 0.008*\"3869\" + 0.007*\"50\" + 0.007*\"2997\" + 0.007*\"1266\" + 0.007*\"49272\" + 0.006*\"1193\"\n", - "2021-08-24 03:03:23,929 : INFO : topic diff=0.086907, rho=0.208514\n", - "2021-08-24 03:03:24,636 : INFO : -8.031 per-word bound, 261.6 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:24,637 : INFO : PROGRESS: pass 22, at document #997/997\n", - "2021-08-24 03:03:25,082 : INFO : topic #3 (0.020): 0.010*\"589\" + 0.009*\"1610\" + 0.009*\"2571\" + 0.007*\"2028\" + 0.006*\"1356\" + 0.006*\"18\" + 0.006*\"60072\" + 0.006*\"58559\" + 0.006*\"54997\" + 0.006*\"780\"\n", - "2021-08-24 03:03:25,083 : INFO : topic #29 (0.020): 0.008*\"919\" + 0.008*\"1394\" + 0.008*\"260\" + 0.007*\"2064\" + 0.007*\"2804\" + 0.007*\"3751\" + 0.007*\"1022\" + 0.006*\"2395\" + 0.006*\"1222\" + 0.006*\"3608\"\n", - "2021-08-24 03:03:25,083 : INFO : topic #7 (0.020): 0.010*\"2959\" + 0.010*\"1210\" + 0.009*\"1196\" + 0.008*\"1200\" + 0.008*\"260\" + 0.008*\"50\" + 0.007*\"2571\" + 0.007*\"3578\" + 0.007*\"2858\" + 0.007*\"1136\"\n", - "2021-08-24 03:03:25,084 : INFO : topic #15 (0.020): 0.015*\"527\" + 0.008*\"2791\" + 0.008*\"357\" + 0.008*\"1923\" + 0.008*\"141\" + 0.007*\"509\" + 0.007*\"2408\" + 0.007*\"1665\" + 0.007*\"1288\" + 0.007*\"260\"\n", - "2021-08-24 03:03:25,085 : INFO : topic #5 (0.020): 0.009*\"2699\" + 0.008*\"2572\" + 0.008*\"26\" + 0.007*\"2513\" + 0.007*\"2428\" + 0.007*\"2858\" + 0.007*\"2722\" + 0.006*\"2541\" + 0.005*\"7387\" + 0.005*\"724\"\n", - "2021-08-24 03:03:25,086 : INFO : topic diff=0.077428, rho=0.204124\n", - "2021-08-24 03:03:25,733 : INFO : -8.024 per-word bound, 260.3 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:25,733 : INFO : PROGRESS: pass 23, at document #997/997\n", - "2021-08-24 03:03:26,139 : INFO : topic #9 (0.020): 0.005*\"1784\" + 0.005*\"1968\" + 0.004*\"1704\" + 0.004*\"2918\" + 0.004*\"1923\" + 0.004*\"2762\" + 0.004*\"1682\" + 0.004*\"1270\" + 0.004*\"1197\" + 0.004*\"2268\"\n", - "2021-08-24 03:03:26,140 : INFO : topic #31 (0.020): 0.010*\"6378\" + 0.009*\"4816\" + 0.009*\"3977\" + 0.008*\"5481\" + 0.008*\"3174\" + 0.007*\"1961\" + 0.007*\"1580\" + 0.007*\"356\" + 0.006*\"4995\" + 0.006*\"2683\"\n", - "2021-08-24 03:03:26,140 : INFO : topic #21 (0.020): 0.012*\"858\" + 0.012*\"1221\" + 0.012*\"1193\" + 0.008*\"2396\" + 0.008*\"904\" + 0.008*\"2762\" + 0.008*\"2858\" + 0.008*\"1097\" + 0.008*\"1641\" + 0.008*\"50\"\n", - "2021-08-24 03:03:26,141 : INFO : topic #32 (0.020): 0.011*\"2028\" + 0.008*\"593\" + 0.007*\"590\" + 0.007*\"858\" + 0.007*\"527\" + 0.006*\"1617\" + 0.006*\"45720\" + 0.006*\"36535\" + 0.006*\"2788\" + 0.006*\"57640\"\n", - "2021-08-24 03:03:26,142 : INFO : topic #30 (0.020): 0.014*\"193\" + 0.011*\"5464\" + 0.010*\"318\" + 0.009*\"59615\" + 0.008*\"3869\" + 0.007*\"50\" + 0.007*\"1266\" + 0.007*\"2997\" + 0.007*\"49272\" + 0.006*\"1193\"\n", - "2021-08-24 03:03:26,143 : INFO : topic diff=0.069387, rho=0.200000\n", - "2021-08-24 03:03:26,835 : INFO : -8.018 per-word bound, 259.2 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:26,836 : INFO : PROGRESS: pass 24, at document #997/997\n", - "2021-08-24 03:03:27,237 : INFO : topic #18 (0.020): 0.023*\"2683\" + 0.017*\"2605\" + 0.017*\"2706\" + 0.016*\"2700\" + 0.014*\"2716\" + 0.014*\"2572\" + 0.013*\"2712\" + 0.012*\"2336\" + 0.012*\"2396\" + 0.011*\"2987\"\n", - "2021-08-24 03:03:27,238 : INFO : topic #40 (0.020): 0.035*\"260\" + 0.032*\"1\" + 0.031*\"780\" + 0.030*\"733\" + 0.024*\"608\" + 0.024*\"62\" + 0.022*\"1073\" + 0.021*\"736\" + 0.021*\"32\" + 0.019*\"648\"\n", - "2021-08-24 03:03:27,239 : INFO : topic #12 (0.020): 0.008*\"260\" + 0.007*\"4993\" + 0.007*\"912\" + 0.007*\"2087\" + 0.006*\"5618\" + 0.006*\"6350\" + 0.006*\"4027\" + 0.006*\"3000\" + 0.006*\"1721\" + 0.005*\"3114\"\n", - "2021-08-24 03:03:27,240 : INFO : topic #22 (0.020): 0.019*\"1354\" + 0.013*\"1357\" + 0.012*\"1704\" + 0.011*\"3720\" + 0.011*\"2858\" + 0.011*\"1784\" + 0.011*\"2324\" + 0.010*\"1635\" + 0.010*\"527\" + 0.010*\"1682\"\n", - "2021-08-24 03:03:27,241 : INFO : topic #19 (0.020): 0.009*\"1036\" + 0.009*\"1240\" + 0.008*\"589\" + 0.008*\"110\" + 0.007*\"1198\" + 0.007*\"2571\" + 0.007*\"480\" + 0.007*\"1214\" + 0.007*\"2000\" + 0.007*\"1200\"\n", - "2021-08-24 03:03:27,242 : INFO : topic diff=0.062576, rho=0.196116\n", - "2021-08-24 03:03:27,872 : INFO : -8.012 per-word bound, 258.2 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:27,873 : INFO : PROGRESS: pass 25, at document #997/997\n", - "2021-08-24 03:03:28,275 : INFO : topic #41 (0.020): 0.010*\"1193\" + 0.009*\"1219\" + 0.008*\"541\" + 0.007*\"1258\" + 0.007*\"1148\" + 0.007*\"527\" + 0.007*\"2858\" + 0.006*\"6104\" + 0.006*\"904\" + 0.006*\"745\"\n", - "2021-08-24 03:03:28,276 : INFO : topic #6 (0.020): 0.009*\"2396\" + 0.008*\"1193\" + 0.007*\"11\" + 0.007*\"356\" + 0.007*\"2700\" + 0.007*\"2571\" + 0.007*\"1721\" + 0.007*\"2706\" + 0.007*\"1584\" + 0.007*\"3793\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 03:03:28,277 : INFO : topic #35 (0.020): 0.011*\"2716\" + 0.008*\"750\" + 0.007*\"32\" + 0.007*\"318\" + 0.007*\"2987\" + 0.006*\"52\" + 0.006*\"457\" + 0.006*\"1136\" + 0.006*\"111\" + 0.006*\"919\"\n", - "2021-08-24 03:03:28,278 : INFO : topic #46 (0.020): 0.011*\"1200\" + 0.010*\"1240\" + 0.007*\"2858\" + 0.007*\"2918\" + 0.006*\"2692\" + 0.006*\"2762\" + 0.006*\"599\" + 0.006*\"260\" + 0.006*\"1214\" + 0.006*\"1261\"\n", - "2021-08-24 03:03:28,279 : INFO : topic #20 (0.020): 0.008*\"2140\" + 0.008*\"2529\" + 0.008*\"1374\" + 0.008*\"2105\" + 0.008*\"924\" + 0.007*\"2761\" + 0.007*\"1748\" + 0.007*\"1376\" + 0.007*\"1127\" + 0.007*\"1019\"\n", - "2021-08-24 03:03:28,280 : INFO : topic diff=0.056690, rho=0.192450\n", - "2021-08-24 03:03:28,912 : INFO : -8.007 per-word bound, 257.3 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:28,913 : INFO : PROGRESS: pass 26, at document #997/997\n", - "2021-08-24 03:03:29,321 : INFO : topic #5 (0.020): 0.010*\"26\" + 0.009*\"2699\" + 0.008*\"2572\" + 0.007*\"2513\" + 0.007*\"2428\" + 0.007*\"2722\" + 0.007*\"2858\" + 0.006*\"2541\" + 0.005*\"724\" + 0.005*\"2719\"\n", - "2021-08-24 03:03:29,322 : INFO : topic #28 (0.020): 0.013*\"2028\" + 0.012*\"260\" + 0.011*\"2571\" + 0.011*\"593\" + 0.010*\"356\" + 0.009*\"110\" + 0.009*\"608\" + 0.009*\"1210\" + 0.008*\"318\" + 0.008*\"296\"\n", - "2021-08-24 03:03:29,322 : INFO : topic #37 (0.020): 0.008*\"908\" + 0.007*\"913\" + 0.006*\"1256\" + 0.006*\"904\" + 0.006*\"903\" + 0.006*\"933\" + 0.005*\"1269\" + 0.005*\"905\" + 0.005*\"910\" + 0.005*\"912\"\n", - "2021-08-24 03:03:29,323 : INFO : topic #46 (0.020): 0.011*\"1200\" + 0.010*\"1240\" + 0.007*\"2858\" + 0.007*\"2918\" + 0.006*\"2692\" + 0.006*\"2762\" + 0.006*\"599\" + 0.006*\"260\" + 0.006*\"1261\" + 0.006*\"1214\"\n", - "2021-08-24 03:03:29,324 : INFO : topic #21 (0.020): 0.012*\"858\" + 0.012*\"1221\" + 0.012*\"1193\" + 0.008*\"2396\" + 0.008*\"904\" + 0.008*\"2762\" + 0.008*\"2858\" + 0.008*\"1097\" + 0.008*\"1641\" + 0.008*\"50\"\n", - "2021-08-24 03:03:29,325 : INFO : topic diff=0.051637, rho=0.188982\n", - "2021-08-24 03:03:29,980 : INFO : -8.002 per-word bound, 256.4 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:29,981 : INFO : PROGRESS: pass 27, at document #997/997\n", - "2021-08-24 03:03:30,388 : INFO : topic #34 (0.020): 0.007*\"920\" + 0.007*\"3456\" + 0.006*\"908\" + 0.006*\"942\" + 0.006*\"2762\" + 0.006*\"50\" + 0.006*\"4022\" + 0.006*\"4226\" + 0.005*\"1732\" + 0.005*\"1248\"\n", - "2021-08-24 03:03:30,389 : INFO : topic #8 (0.020): 0.009*\"837\" + 0.008*\"1713\" + 0.007*\"1414\" + 0.007*\"1210\" + 0.007*\"1270\" + 0.007*\"1376\" + 0.006*\"260\" + 0.006*\"1689\" + 0.006*\"1097\" + 0.006*\"2064\"\n", - "2021-08-24 03:03:30,389 : INFO : topic #12 (0.020): 0.008*\"260\" + 0.007*\"6350\" + 0.007*\"912\" + 0.007*\"2087\" + 0.007*\"4993\" + 0.006*\"7099\" + 0.006*\"5618\" + 0.006*\"3000\" + 0.006*\"4027\" + 0.006*\"1721\"\n", - "2021-08-24 03:03:30,390 : INFO : topic #36 (0.020): 0.008*\"6365\" + 0.007*\"1580\" + 0.007*\"4874\" + 0.006*\"520\" + 0.006*\"2291\" + 0.005*\"6934\" + 0.005*\"2011\" + 0.005*\"541\" + 0.005*\"6333\" + 0.005*\"3793\"\n", - "2021-08-24 03:03:30,391 : INFO : topic #31 (0.020): 0.010*\"6378\" + 0.009*\"4816\" + 0.009*\"3977\" + 0.008*\"5481\" + 0.008*\"3174\" + 0.007*\"1961\" + 0.007*\"1580\" + 0.006*\"356\" + 0.006*\"4995\" + 0.006*\"2683\"\n", - "2021-08-24 03:03:30,392 : INFO : topic diff=0.047233, rho=0.185695\n", - "2021-08-24 03:03:31,034 : INFO : -7.998 per-word bound, 255.6 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:31,035 : INFO : PROGRESS: pass 28, at document #997/997\n", - "2021-08-24 03:03:31,438 : INFO : topic #6 (0.020): 0.009*\"2396\" + 0.008*\"1193\" + 0.007*\"11\" + 0.007*\"356\" + 0.007*\"2571\" + 0.007*\"1721\" + 0.007*\"1584\" + 0.007*\"3793\" + 0.007*\"2700\" + 0.007*\"2706\"\n", - "2021-08-24 03:03:31,439 : INFO : topic #24 (0.020): 0.014*\"1196\" + 0.013*\"1198\" + 0.012*\"1270\" + 0.010*\"1291\" + 0.010*\"1197\" + 0.009*\"1240\" + 0.009*\"1246\" + 0.008*\"1097\" + 0.007*\"1012\" + 0.007*\"260\"\n", - "2021-08-24 03:03:31,440 : INFO : topic #13 (0.020): 0.015*\"50\" + 0.011*\"111\" + 0.011*\"290\" + 0.010*\"527\" + 0.010*\"1173\" + 0.009*\"593\" + 0.009*\"1237\" + 0.009*\"2858\" + 0.009*\"296\" + 0.008*\"36\"\n", - "2021-08-24 03:03:31,440 : INFO : topic #48 (0.020): 0.008*\"4055\" + 0.008*\"5577\" + 0.007*\"5812\" + 0.006*\"2029\" + 0.006*\"5682\" + 0.006*\"6367\" + 0.006*\"448\" + 0.006*\"5447\" + 0.006*\"3712\" + 0.006*\"5991\"\n", - "2021-08-24 03:03:31,441 : INFO : topic #31 (0.020): 0.010*\"6378\" + 0.009*\"4816\" + 0.009*\"3977\" + 0.008*\"5481\" + 0.008*\"3174\" + 0.007*\"1580\" + 0.007*\"1961\" + 0.006*\"356\" + 0.006*\"4995\" + 0.006*\"2683\"\n", - "2021-08-24 03:03:31,442 : INFO : topic diff=0.043400, rho=0.182574\n", - "2021-08-24 03:03:32,092 : INFO : -7.993 per-word bound, 254.8 perplexity estimate based on a held-out corpus of 997 documents with 67731 words\n", - "2021-08-24 03:03:32,092 : INFO : PROGRESS: pass 29, at document #997/997\n", - "2021-08-24 03:03:32,497 : INFO : topic #9 (0.020): 0.005*\"1784\" + 0.005*\"1968\" + 0.004*\"1704\" + 0.004*\"2918\" + 0.004*\"1923\" + 0.004*\"1682\" + 0.004*\"1270\" + 0.004*\"2268\" + 0.004*\"2762\" + 0.004*\"1197\"\n", - "2021-08-24 03:03:32,498 : INFO : topic #16 (0.020): 0.013*\"455\" + 0.010*\"355\" + 0.010*\"837\" + 0.009*\"609\" + 0.008*\"688\" + 0.008*\"1021\" + 0.007*\"851\" + 0.007*\"1015\" + 0.007*\"919\" + 0.007*\"27\"\n", - "2021-08-24 03:03:32,498 : INFO : topic #45 (0.020): 0.015*\"1196\" + 0.012*\"260\" + 0.012*\"1198\" + 0.011*\"2081\" + 0.011*\"1968\" + 0.010*\"318\" + 0.009*\"1307\" + 0.009*\"1200\" + 0.009*\"1961\" + 0.008*\"2396\"\n", - "2021-08-24 03:03:32,499 : INFO : topic #39 (0.020): 0.010*\"2571\" + 0.009*\"1196\" + 0.009*\"1210\" + 0.007*\"260\" + 0.007*\"1676\" + 0.006*\"589\" + 0.006*\"2628\" + 0.006*\"480\" + 0.006*\"1580\" + 0.006*\"1527\"\n", - "2021-08-24 03:03:32,500 : INFO : topic #35 (0.020): 0.011*\"2716\" + 0.008*\"750\" + 0.007*\"32\" + 0.007*\"318\" + 0.007*\"2987\" + 0.006*\"52\" + 0.006*\"457\" + 0.006*\"1136\" + 0.006*\"111\" + 0.006*\"919\"\n", - "2021-08-24 03:03:32,501 : INFO : topic diff=0.039941, rho=0.179605\n", - "2021-08-24 03:03:32,502 : INFO : LdaModel lifecycle event {'msg': 'trained LdaModel(num_terms=4987, num_topics=50, decay=0.5, chunksize=2000) in 35.20s', 'datetime': '2021-08-24T03:03:32.502542', 'gensim': '4.0.1', 'python': '3.7.8 (default, May 2 2021, 19:43:55) \\n[Clang 10.0.1 (clang-1001.0.46.4)]', 'platform': 'Darwin-18.7.0-x86_64-i386-64bit', 'event': 'created'}\n" - ] - } - ], + "outputs": [], "source": [ "# LDACollaboration 추천\n", "from src.lda_collaboration import LDACollaborationRecommender\n", @@ -328,18 +49,10 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "106dce69", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=0.000, Precision@K=0.024, Recall@K=0.075\n" - ] - } - ], + "outputs": [], "source": [ "# 평가\n", "metric_calculator = MetricCalculator()\n", diff --git a/chapter5/notebook/LDA_content.ipynb b/chapter5/notebook/LDA_content.ipynb index 2d9af6c..8f2b2f8 100644 --- a/chapter5/notebook/LDA_content.ipynb +++ b/chapter5/notebook/LDA_content.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "dd0a4718", "metadata": {}, "outputs": [], @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "38f1eabd", "metadata": {}, "outputs": [], @@ -36,1694 +36,10 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "56ca8b83", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:24,041 : INFO : adding document #0 to Dictionary(0 unique tokens: [])\n", - "2021-08-24 02:38:24,219 : INFO : adding document #10000 to Dictionary(14749 unique tokens: ['3d', 'Adventure', 'Animation', 'Children', 'Comedy']...)\n", - "2021-08-24 02:38:24,230 : INFO : built Dictionary(15261 unique tokens: ['3d', 'Adventure', 'Animation', 'Children', 'Comedy']...) from 10681 documents (total 117144 corpus positions)\n", - "2021-08-24 02:38:24,230 : INFO : Dictionary lifecycle event {'msg': \"built Dictionary(15261 unique tokens: ['3d', 'Adventure', 'Animation', 'Children', 'Comedy']...) from 10681 documents (total 117144 corpus positions)\", 'datetime': '2021-08-24T02:38:24.230595', 'gensim': '4.0.1', 'python': '3.7.8 (default, May 2 2021, 19:43:55) \\n[Clang 10.0.1 (clang-1001.0.46.4)]', 'platform': 'Darwin-18.7.0-x86_64-i386-64bit', 'event': 'created'}\n", - "2021-08-24 02:38:24,321 : INFO : using symmetric alpha at 0.02\n", - "2021-08-24 02:38:24,322 : INFO : using symmetric eta at 0.02\n", - "2021-08-24 02:38:24,324 : INFO : using serial LDA version on this node\n", - "2021-08-24 02:38:24,378 : INFO : running online (multi-pass) LDA training, 50 topics, 30 passes over the supplied corpus of 10681 documents, updating model once every 2000 documents, evaluating perplexity every 10681 documents, iterating 50x with a convergence threshold of 0.001000\n", - "2021-08-24 02:38:24,379 : INFO : PROGRESS: pass 0, at document #2000/10681\n", - "2021-08-24 02:38:24,907 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:24,936 : INFO : topic #15 (0.020): 0.027*\"classic\" + 0.016*\"oscar (best picture)\" + 0.011*\"afi 100\" + 0.010*\"Comedy\" + 0.009*\"Drama\" + 0.009*\"coen brothers\" + 0.009*\"submarine\" + 0.009*\"Thriller\" + 0.008*\"action\" + 0.008*\"stephen king\"\n", - "2021-08-24 02:38:24,937 : INFO : topic #3 (0.020): 0.026*\"Drama\" + 0.018*\"classic\" + 0.017*\"Comedy\" + 0.014*\"Romance\" + 0.012*\"war\" + 0.012*\"aliens\" + 0.011*\"oscar (best picture)\" + 0.010*\"sergio leone\" + 0.010*\"video game adaptation\" + 0.009*\"space\"\n", - "2021-08-24 02:38:24,938 : INFO : topic #7 (0.020): 0.025*\"oscar (best picture)\" + 0.018*\"Drama\" + 0.016*\"space\" + 0.015*\"mel gibson\" + 0.012*\"sci-fi\" + 0.012*\"aliens\" + 0.012*\"boxing\" + 0.011*\"action\" + 0.011*\"Action\" + 0.010*\"dvd\"\n", - "2021-08-24 02:38:24,938 : INFO : topic #12 (0.020): 0.041*\"quentin tarantino\" + 0.024*\"Drama\" + 0.019*\"christmas\" + 0.019*\"tarantino\" + 0.012*\"violence\" + 0.011*\"Comedy\" + 0.011*\"stanley kubrick\" + 0.011*\"owned\" + 0.009*\"dystopia\" + 0.009*\"can't remember\"\n", - "2021-08-24 02:38:24,939 : INFO : topic #5 (0.020): 0.024*\"Drama\" + 0.024*\"Comedy\" + 0.021*\"action\" + 0.018*\"Action\" + 0.017*\"tom hanks\" + 0.017*\"meg ryan\" + 0.014*\"robin williams\" + 0.014*\"Thriller\" + 0.013*\"comedy\" + 0.013*\"mel gibson\"\n", - "2021-08-24 02:38:24,940 : INFO : topic diff=46.180958, rho=1.000000\n", - "2021-08-24 02:38:24,941 : INFO : PROGRESS: pass 0, at document #4000/10681\n", - "2021-08-24 02:38:25,306 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:25,333 : INFO : topic #39 (0.020): 0.034*\"bruce willis\" + 0.027*\"disney\" + 0.022*\"Drama\" + 0.019*\"Comedy\" + 0.017*\"avi\" + 0.015*\"end of the world\" + 0.014*\"Thriller\" + 0.014*\"70mm\" + 0.013*\"Sci-Fi\" + 0.013*\"Action\"\n", - "2021-08-24 02:38:25,334 : INFO : topic #47 (0.020): 0.058*\"Drama\" + 0.027*\"Comedy\" + 0.026*\"less than 300 ratings\" + 0.022*\"Thriller\" + 0.020*\"comedy\" + 0.019*\"martial arts\" + 0.019*\"racism\" + 0.018*\"football\" + 0.018*\"jackie chan\" + 0.017*\"Crime\"\n", - "2021-08-24 02:38:25,334 : INFO : topic #35 (0.020): 0.066*\"comedy\" + 0.061*\"Comedy\" + 0.034*\"Romance\" + 0.026*\"funny\" + 0.023*\"Drama\" + 0.021*\"Adventure\" + 0.017*\"parody\" + 0.014*\"can't remember\" + 0.014*\"mel brooks\" + 0.011*\"Action\"\n", - "2021-08-24 02:38:25,335 : INFO : topic #18 (0.020): 0.051*\"surrealism\" + 0.031*\"Comedy\" + 0.016*\"Drama\" + 0.016*\"spoof\" + 0.016*\"Thriller\" + 0.015*\"creepy\" + 0.015*\"Horror\" + 0.013*\"based on a book\" + 0.013*\"robert downey jr\" + 0.012*\"silly\"\n", - "2021-08-24 02:38:25,336 : INFO : topic #9 (0.020): 0.056*\"Drama\" + 0.030*\"Western\" + 0.021*\"Comedy\" + 0.017*\"Romance\" + 0.016*\"british\" + 0.015*\"russell crowe\" + 0.014*\"nudity (topless - brief)\" + 0.014*\"oliver stone\" + 0.013*\"jane austen\" + 0.013*\"drama\"\n", - "2021-08-24 02:38:25,337 : INFO : topic diff=0.443563, rho=0.707107\n", - "2021-08-24 02:38:25,338 : INFO : PROGRESS: pass 0, at document #6000/10681\n", - "2021-08-24 02:38:25,667 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:25,693 : INFO : topic #19 (0.020): 0.037*\"girlie movie\" + 0.035*\"julia roberts\" + 0.028*\"Comedy\" + 0.028*\"mystery\" + 0.026*\"ghosts\" + 0.023*\"romance\" + 0.022*\"Romance\" + 0.021*\"pg-13\" + 0.019*\"wedding\" + 0.016*\"afternoon section\"\n", - "2021-08-24 02:38:25,694 : INFO : topic #47 (0.020): 0.076*\"less than 300 ratings\" + 0.075*\"Drama\" + 0.036*\"Comedy\" + 0.028*\"jackie chan\" + 0.026*\"Thriller\" + 0.024*\"Crime\" + 0.021*\"Action\" + 0.021*\"martial arts\" + 0.015*\"brian de palma\" + 0.014*\"football\"\n", - "2021-08-24 02:38:25,694 : INFO : topic #3 (0.020): 0.044*\"Drama\" + 0.034*\"Comedy\" + 0.029*\"zombies\" + 0.026*\"nudity (topless)\" + 0.023*\"Horror\" + 0.018*\"zombie\" + 0.017*\"Romance\" + 0.016*\"virtual reality\" + 0.013*\"Sci-Fi\" + 0.011*\"Thriller\"\n", - "2021-08-24 02:38:25,695 : INFO : topic #17 (0.020): 0.026*\"sci-fi\" + 0.018*\"Drama\" + 0.014*\"police\" + 0.013*\"Action\" + 0.013*\"no dialogue\" + 0.013*\"oscar (best supporting actress)\" + 0.013*\"computers\" + 0.012*\"writer\" + 0.012*\"action\" + 0.012*\"robots\"\n", - "2021-08-24 02:38:25,696 : INFO : topic #29 (0.020): 0.031*\"Comedy\" + 0.029*\"Action\" + 0.028*\"arnold schwarzenegger\" + 0.025*\"parody\" + 0.024*\"adventure\" + 0.015*\"action\" + 0.014*\"Adventure\" + 0.014*\"Thriller\" + 0.014*\"stupid\" + 0.013*\"Drama\"\n", - "2021-08-24 02:38:25,697 : INFO : topic diff=0.375887, rho=0.577350\n", - "2021-08-24 02:38:25,699 : INFO : PROGRESS: pass 0, at document #8000/10681\n", - "2021-08-24 02:38:25,988 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:26,015 : INFO : topic #11 (0.020): 0.221*\"Documentary\" + 0.066*\"in netflix queue\" + 0.044*\"Drama\" + 0.022*\"gay\" + 0.022*\"to see\" + 0.022*\"Comedy\" + 0.018*\"india\" + 0.017*\"ian mckellen\" + 0.017*\"homosexuality\" + 0.017*\"IMAX\"\n", - "2021-08-24 02:38:26,016 : INFO : topic #4 (0.020): 0.053*\"romance\" + 0.037*\"Comedy\" + 0.036*\"watched 2006\" + 0.027*\"Romance\" + 0.024*\"sean connery\" + 0.024*\"chick flick\" + 0.020*\"car chase\" + 0.019*\"Musical\" + 0.019*\"dance\" + 0.019*\"seen more than once\"\n", - "2021-08-24 02:38:26,017 : INFO : topic #3 (0.020): 0.072*\"zombies\" + 0.043*\"Drama\" + 0.031*\"ingmar bergman\" + 0.027*\"Horror\" + 0.026*\"Comedy\" + 0.026*\"nudity (topless)\" + 0.026*\"zombie\" + 0.022*\"virtual reality\" + 0.016*\"Romance\" + 0.012*\"erlend's dvds\"\n", - "2021-08-24 02:38:26,018 : INFO : topic #0 (0.020): 0.027*\"violence\" + 0.027*\"action\" + 0.025*\"robert rodriguez\" + 0.025*\"philip seymour hoffman\" + 0.025*\"crime\" + 0.023*\"morgan freeman\" + 0.022*\"Thriller\" + 0.021*\"brad pitt\" + 0.020*\"civil war\" + 0.019*\"Drama\"\n", - "2021-08-24 02:38:26,018 : INFO : topic #28 (0.020): 0.082*\"pixar\" + 0.021*\"oscar (best actress)\" + 0.021*\"mockumentary\" + 0.020*\"elijah wood\" + 0.017*\"high fantasy\" + 0.016*\"Comedy\" + 0.016*\"Adventure\" + 0.015*\"rock and roll\" + 0.015*\"Drama\" + 0.015*\"animation\"\n", - "2021-08-24 02:38:26,020 : INFO : topic diff=0.275035, rho=0.500000\n", - "2021-08-24 02:38:26,021 : INFO : PROGRESS: pass 0, at document #10000/10681\n", - "2021-08-24 02:38:26,329 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:26,357 : INFO : topic #21 (0.020): 0.105*\"Drama\" + 0.047*\"criterion\" + 0.024*\"sven's to see list\" + 0.020*\"library\" + 0.019*\"tumey's dvds\" + 0.019*\"deliberate\" + 0.018*\"reflective\" + 0.017*\"Comedy\" + 0.016*\"atmospheric\" + 0.016*\"stylized\"\n", - "2021-08-24 02:38:26,358 : INFO : topic #9 (0.020): 0.136*\"r\" + 0.074*\"Western\" + 0.071*\"Drama\" + 0.064*\"clearplay\" + 0.039*\"history\" + 0.036*\"pg13\" + 0.026*\"Comedy\" + 0.023*\"nudity (topless - brief)\" + 0.021*\"Romance\" + 0.015*\"War\"\n", - "2021-08-24 02:38:26,359 : INFO : topic #19 (0.020): 0.113*\"pg-13\" + 0.038*\"jude law\" + 0.025*\"Comedy\" + 0.024*\"Romance\" + 0.021*\"girlie movie\" + 0.021*\"wedding\" + 0.020*\"julia roberts\" + 0.018*\"want to own\" + 0.018*\"sam peckinpah\" + 0.018*\"infidelity\"\n", - "2021-08-24 02:38:26,360 : INFO : topic #1 (0.020): 0.084*\"remake\" + 0.044*\"Drama\" + 0.037*\"Thriller\" + 0.032*\"jonossa\" + 0.024*\"tumey's dvds\" + 0.023*\"Mystery\" + 0.018*\"movie to see\" + 0.017*\"Romance\" + 0.015*\"Crime\" + 0.014*\"predictable\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:26,361 : INFO : topic #46 (0.020): 0.025*\"natalie portman\" + 0.021*\"kevin spacey\" + 0.018*\"Drama\" + 0.016*\"sci-fi\" + 0.014*\"ridley scott\" + 0.014*\"ewan mcgregor\" + 0.013*\"must see!\" + 0.012*\"steven spielberg\" + 0.010*\"recorded\" + 0.010*\"moving\"\n", - "2021-08-24 02:38:26,362 : INFO : topic diff=0.235645, rho=0.447214\n", - "2021-08-24 02:38:26,531 : INFO : -21.546 per-word bound, 3061396.5 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:26,531 : INFO : PROGRESS: pass 0, at document #10681/10681\n", - "2021-08-24 02:38:26,638 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:26,664 : INFO : topic #13 (0.020): 0.071*\"time travel\" + 0.050*\"twist ending\" + 0.045*\"holocaust\" + 0.037*\"post-apocalyptic\" + 0.027*\"bill murray\" + 0.022*\"good dialogue\" + 0.016*\"capitalism\" + 0.015*\"michael moore\" + 0.014*\"singing\" + 0.014*\"twist\"\n", - "2021-08-24 02:38:26,664 : INFO : topic #47 (0.020): 0.250*\"less than 300 ratings\" + 0.120*\"Drama\" + 0.070*\"Comedy\" + 0.027*\"kung fu\" + 0.024*\"Crime\" + 0.024*\"Thriller\" + 0.023*\"Romance\" + 0.022*\"nudity (rear)\" + 0.021*\"Action\" + 0.019*\"oppl\"\n", - "2021-08-24 02:38:26,665 : INFO : topic #24 (0.020): 0.034*\"disability\" + 0.028*\"france\" + 0.026*\"mask\" + 0.025*\"tom cruise\" + 0.024*\"nicole kidman\" + 0.021*\"Drama\" + 0.020*\"dustin hoffman\" + 0.020*\"halloween\" + 0.018*\"french\" + 0.017*\"bank robbery\"\n", - "2021-08-24 02:38:26,666 : INFO : topic #0 (0.020): 0.052*\"morgan freeman\" + 0.039*\"tommy lee jones\" + 0.039*\"violent\" + 0.038*\"organized crime\" + 0.037*\"violence\" + 0.037*\"philip seymour hoffman\" + 0.031*\"brad pitt\" + 0.031*\"Thriller\" + 0.030*\"crime\" + 0.021*\"robert rodriguez\"\n", - "2021-08-24 02:38:26,667 : INFO : topic #3 (0.020): 0.242*\"nudity (topless)\" + 0.088*\"zombies\" + 0.040*\"Drama\" + 0.034*\"keira knightley\" + 0.027*\"Horror\" + 0.025*\"Comedy\" + 0.013*\"video game adaptation\" + 0.012*\"r:language\" + 0.012*\"fascism\" + 0.012*\"Thriller\"\n", - "2021-08-24 02:38:26,668 : INFO : topic diff=0.303876, rho=0.408248\n", - "2021-08-24 02:38:26,669 : INFO : PROGRESS: pass 1, at document #2000/10681\n", - "2021-08-24 02:38:26,969 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:26,997 : INFO : topic #30 (0.020): 0.380*\"Drama\" + 0.037*\"Film-Noir\" + 0.024*\"classic\" + 0.013*\"boring\" + 0.011*\"film noir\" + 0.010*\"Comedy\" + 0.010*\"based on a book\" + 0.010*\"small town\" + 0.009*\"erlend's dvds\" + 0.009*\"witch\"\n", - "2021-08-24 02:38:26,998 : INFO : topic #5 (0.020): 0.168*\"Comedy\" + 0.132*\"Action\" + 0.127*\"Thriller\" + 0.112*\"Drama\" + 0.088*\"Horror\" + 0.071*\"Sci-Fi\" + 0.042*\"Adventure\" + 0.031*\"Crime\" + 0.016*\"Romance\" + 0.013*\"can't remember\"\n", - "2021-08-24 02:38:26,999 : INFO : topic #23 (0.020): 0.066*\"mafia\" + 0.029*\"al pacino\" + 0.026*\"robert de niro\" + 0.023*\"classic\" + 0.022*\"marlon brando\" + 0.016*\"scifi\" + 0.015*\"guns\" + 0.015*\"francis ford coppola\" + 0.014*\"Drama\" + 0.013*\"conspiracy\"\n", - "2021-08-24 02:38:27,000 : INFO : topic #18 (0.020): 0.044*\"slasher\" + 0.029*\"franchise\" + 0.025*\"Horror\" + 0.025*\"united states\" + 0.023*\"creepy\" + 0.022*\"unique\" + 0.020*\"shark\" + 0.019*\"jean reno\" + 0.018*\"silly\" + 0.018*\"robert downey jr\"\n", - "2021-08-24 02:38:27,001 : INFO : topic #21 (0.020): 0.082*\"Drama\" + 0.036*\"criterion\" + 0.021*\"tumey's dvds\" + 0.020*\"library\" + 0.018*\"irreverent\" + 0.018*\"deliberate\" + 0.017*\"lyrical\" + 0.017*\"sven's to see list\" + 0.016*\"reflective\" + 0.016*\"library vhs\"\n", - "2021-08-24 02:38:27,002 : INFO : topic diff=0.480280, rho=0.369094\n", - "2021-08-24 02:38:27,003 : INFO : PROGRESS: pass 1, at document #4000/10681\n", - "2021-08-24 02:38:27,287 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:27,314 : INFO : topic #15 (0.020): 0.063*\"oscar (best picture)\" + 0.047*\"coen brothers\" + 0.047*\"stephen king\" + 0.039*\"racism\" + 0.022*\"espionage\" + 0.020*\"great acting\" + 0.018*\"ensemble cast\" + 0.015*\"multiple storylines\" + 0.015*\"notable nudity\" + 0.013*\"Drama\"\n", - "2021-08-24 02:38:27,315 : INFO : topic #48 (0.020): 0.046*\"surreal\" + 0.035*\"quirky\" + 0.031*\"Drama\" + 0.025*\"Comedy\" + 0.021*\"humorous\" + 0.021*\"underrated\" + 0.020*\"coming of age\" + 0.020*\"woody allen\" + 0.018*\"bittersweet\" + 0.018*\"whimsical\"\n", - "2021-08-24 02:38:27,316 : INFO : topic #33 (0.020): 0.118*\"comic book\" + 0.115*\"superhero\" + 0.053*\"super-hero\" + 0.034*\"adapted from:comic\" + 0.029*\"gene hackman\" + 0.025*\"batman\" + 0.024*\"action\" + 0.023*\"Action\" + 0.019*\"overrated\" + 0.017*\"alter ego\"\n", - "2021-08-24 02:38:27,317 : INFO : topic #34 (0.020): 0.119*\"War\" + 0.097*\"world war ii\" + 0.077*\"drugs\" + 0.076*\"Drama\" + 0.036*\"prison\" + 0.032*\"Action\" + 0.017*\"vhs\" + 0.016*\"war\" + 0.015*\"wwii\" + 0.015*\"notable soundtrack\"\n", - "2021-08-24 02:38:27,318 : INFO : topic #18 (0.020): 0.043*\"surrealism\" + 0.035*\"slasher\" + 0.032*\"creepy\" + 0.027*\"franchise\" + 0.025*\"robert downey jr\" + 0.024*\"united states\" + 0.022*\"Horror\" + 0.019*\"unique\" + 0.018*\"goth\" + 0.016*\"silly\"\n", - "2021-08-24 02:38:27,319 : INFO : topic diff=0.196787, rho=0.369094\n", - "2021-08-24 02:38:27,321 : INFO : PROGRESS: pass 1, at document #6000/10681\n", - "2021-08-24 02:38:27,603 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:27,629 : INFO : topic #17 (0.020): 0.042*\"police\" + 0.038*\"will smith\" + 0.022*\"action\" + 0.022*\"computers\" + 0.019*\"corruption\" + 0.018*\"milla jovovich\" + 0.017*\"sci-fi\" + 0.016*\"no dialogue\" + 0.014*\"writer\" + 0.013*\"luc besson\"\n", - "2021-08-24 02:38:27,630 : INFO : topic #19 (0.020): 0.059*\"ghosts\" + 0.043*\"pg-13\" + 0.037*\"julia roberts\" + 0.032*\"wedding\" + 0.031*\"girlie movie\" + 0.031*\"jude law\" + 0.022*\"afternoon section\" + 0.021*\"want to own\" + 0.020*\"Comedy\" + 0.019*\"prostitution\"\n", - "2021-08-24 02:38:27,631 : INFO : topic #18 (0.020): 0.049*\"creepy\" + 0.038*\"slasher\" + 0.032*\"surrealism\" + 0.028*\"franchise\" + 0.025*\"Horror\" + 0.020*\"silly\" + 0.018*\"robert downey jr\" + 0.018*\"goth\" + 0.017*\"special\" + 0.016*\"united states\"\n", - "2021-08-24 02:38:27,632 : INFO : topic #16 (0.020): 0.094*\"dystopia\" + 0.043*\"sci-fi\" + 0.030*\"futuristmovies.com\" + 0.029*\"military\" + 0.027*\"future\" + 0.021*\"Sci-Fi\" + 0.018*\"weird\" + 0.017*\"joaquin phoenix\" + 0.014*\"court\" + 0.013*\"urbane\"\n", - "2021-08-24 02:38:27,633 : INFO : topic #37 (0.020): 0.047*\"Drama\" + 0.036*\"easily confused with other movie(s) (title)\" + 0.034*\"vietnam war\" + 0.028*\"vietnam\" + 0.027*\"Comedy\" + 0.026*\"oscar (best supporting actress)\" + 0.023*\"oscar (best actress)\" + 0.019*\"cult classic\" + 0.019*\"19th century\" + 0.018*\"want to see again\"\n", - "2021-08-24 02:38:27,634 : INFO : topic diff=0.237005, rho=0.369094\n", - "2021-08-24 02:38:27,635 : INFO : PROGRESS: pass 1, at document #8000/10681\n", - "2021-08-24 02:38:27,905 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:27,932 : INFO : topic #3 (0.020): 0.157*\"nudity (topless)\" + 0.092*\"zombies\" + 0.032*\"ingmar bergman\" + 0.031*\"Drama\" + 0.030*\"zombie\" + 0.024*\"virtual reality\" + 0.023*\"Comedy\" + 0.022*\"Horror\" + 0.016*\"keira knightley\" + 0.015*\"robert altman\"\n", - "2021-08-24 02:38:27,933 : INFO : topic #15 (0.020): 0.036*\"oscar (best picture)\" + 0.036*\"espionage\" + 0.035*\"coen brothers\" + 0.035*\"stephen king\" + 0.028*\"racism\" + 0.022*\"notable nudity\" + 0.021*\"ensemble cast\" + 0.020*\"multiple storylines\" + 0.017*\"tokyo\" + 0.015*\"god\"\n", - "2021-08-24 02:38:27,934 : INFO : topic #4 (0.020): 0.091*\"romance\" + 0.038*\"chick flick\" + 0.034*\"Comedy\" + 0.033*\"new york city\" + 0.029*\"watched 2006\" + 0.029*\"sean connery\" + 0.025*\"Romance\" + 0.024*\"new york\" + 0.021*\"seen more than once\" + 0.021*\"car chase\"\n", - "2021-08-24 02:38:27,935 : INFO : topic #47 (0.020): 0.257*\"less than 300 ratings\" + 0.114*\"Drama\" + 0.063*\"Comedy\" + 0.033*\"nudity (rear)\" + 0.030*\"jackie chan\" + 0.022*\"Action\" + 0.019*\"Thriller\" + 0.018*\"kung fu\" + 0.018*\"football\" + 0.017*\"martial arts\"\n", - "2021-08-24 02:38:27,935 : INFO : topic #2 (0.020): 0.095*\"lesbian\" + 0.071*\"satire\" + 0.070*\"Comedy\" + 0.050*\"imdb bottom 100\" + 0.028*\"sexy\" + 0.021*\"ben stiller\" + 0.020*\"amnesia\" + 0.019*\"olympics\" + 0.017*\"john turturro\" + 0.017*\"get\"\n", - "2021-08-24 02:38:27,937 : INFO : topic diff=0.199877, rho=0.369094\n", - "2021-08-24 02:38:27,938 : INFO : PROGRESS: pass 1, at document #10000/10681\n", - "2021-08-24 02:38:28,211 : INFO : merging changes from 2000 documents into a model of 10681 documents\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:28,238 : INFO : topic #22 (0.020): 0.036*\"philip k. dick\" + 0.036*\"oscar (best cinematography)\" + 0.032*\"journalism\" + 0.031*\"angelina jolie\" + 0.030*\"based on a book\" + 0.029*\"classic\" + 0.026*\"cult film\" + 0.022*\"earnest\" + 0.020*\"adapted from:book\" + 0.019*\"political\"\n", - "2021-08-24 02:38:28,239 : INFO : topic #40 (0.020): 0.122*\"magic\" + 0.082*\"nudity (full frontal - notable)\" + 0.057*\"Drama\" + 0.054*\"edward norton\" + 0.051*\"sports\" + 0.035*\"not corv lib\" + 0.033*\"hw drama\" + 0.030*\"baseball\" + 0.025*\"based on a book\" + 0.025*\"don cheadle\"\n", - "2021-08-24 02:38:28,240 : INFO : topic #35 (0.020): 0.137*\"comedy\" + 0.092*\"Comedy\" + 0.088*\"funny\" + 0.044*\"ummarti2006\" + 0.039*\"parody\" + 0.024*\"hilarious\" + 0.021*\"Romance\" + 0.020*\"dani2006\" + 0.020*\"afi 100 (laughs)\" + 0.019*\"spoof\"\n", - "2021-08-24 02:38:28,241 : INFO : topic #48 (0.020): 0.042*\"surreal\" + 0.040*\"quirky\" + 0.029*\"Drama\" + 0.027*\"bittersweet\" + 0.025*\"Comedy\" + 0.022*\"whimsical\" + 0.020*\"humorous\" + 0.020*\"woody allen\" + 0.017*\"peter jackson\" + 0.017*\"male nudity\"\n", - "2021-08-24 02:38:28,242 : INFO : topic #0 (0.020): 0.061*\"violence\" + 0.059*\"crime\" + 0.055*\"brad pitt\" + 0.041*\"morgan freeman\" + 0.039*\"violent\" + 0.029*\"action\" + 0.028*\"Thriller\" + 0.027*\"robert rodriguez\" + 0.023*\"philip seymour hoffman\" + 0.022*\"tommy lee jones\"\n", - "2021-08-24 02:38:28,243 : INFO : topic diff=0.168704, rho=0.369094\n", - "2021-08-24 02:38:28,408 : INFO : -21.175 per-word bound, 2366819.5 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:28,408 : INFO : PROGRESS: pass 1, at document #10681/10681\n", - "2021-08-24 02:38:28,514 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:28,540 : INFO : topic #45 (0.020): 0.055*\"japan\" + 0.043*\"revenge\" + 0.040*\"Drama\" + 0.032*\"tense\" + 0.028*\"clint eastwood\" + 0.027*\"ummarti2007\" + 0.027*\"gritty\" + 0.026*\"Action\" + 0.023*\"akira kurosawa\" + 0.021*\"samurai\"\n", - "2021-08-24 02:38:28,541 : INFO : topic #27 (0.020): 0.087*\"aliens\" + 0.044*\"family\" + 0.041*\"childhood\" + 0.037*\"gambling\" + 0.035*\"to-rent\" + 0.028*\"mother-son relationship\" + 0.027*\"poker\" + 0.027*\"steven spielberg\" + 0.024*\"hospital\" + 0.019*\"terrible\"\n", - "2021-08-24 02:38:28,542 : INFO : topic #5 (0.020): 0.176*\"Action\" + 0.158*\"Thriller\" + 0.128*\"Horror\" + 0.111*\"Comedy\" + 0.110*\"Sci-Fi\" + 0.089*\"Drama\" + 0.053*\"Adventure\" + 0.027*\"Crime\" + 0.013*\"betamax\" + 0.008*\"70mm\"\n", - "2021-08-24 02:38:28,543 : INFO : topic #16 (0.020): 0.087*\"dystopia\" + 0.043*\"military\" + 0.034*\"sci-fi\" + 0.026*\"Sci-Fi\" + 0.025*\"betrayal\" + 0.024*\"future\" + 0.020*\"travel\" + 0.019*\"imdb top 250\" + 0.018*\"weird\" + 0.018*\"futuristmovies.com\"\n", - "2021-08-24 02:38:28,543 : INFO : topic #24 (0.020): 0.037*\"disability\" + 0.037*\"france\" + 0.035*\"tom cruise\" + 0.029*\"nicole kidman\" + 0.027*\"mask\" + 0.025*\"french\" + 0.024*\"dustin hoffman\" + 0.021*\"halloween\" + 0.021*\"golden palm\" + 0.018*\"bank robbery\"\n", - "2021-08-24 02:38:28,545 : INFO : topic diff=0.234428, rho=0.369094\n", - "2021-08-24 02:38:28,546 : INFO : PROGRESS: pass 2, at document #2000/10681\n", - "2021-08-24 02:38:28,865 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:28,892 : INFO : topic #48 (0.020): 0.042*\"quirky\" + 0.036*\"surreal\" + 0.029*\"woody allen\" + 0.027*\"bittersweet\" + 0.023*\"humorous\" + 0.022*\"Drama\" + 0.022*\"underrated\" + 0.022*\"Comedy\" + 0.020*\"witty\" + 0.018*\"whimsical\"\n", - "2021-08-24 02:38:28,894 : INFO : topic #14 (0.020): 0.097*\"Mystery\" + 0.064*\"Thriller\" + 0.052*\"Horror\" + 0.034*\"disturbing\" + 0.026*\"atmospheric\" + 0.026*\"tense\" + 0.024*\"ominous\" + 0.022*\"menacing\" + 0.017*\"dvd-r\" + 0.017*\"erlend's dvds\"\n", - "2021-08-24 02:38:28,894 : INFO : topic #33 (0.020): 0.147*\"comic book\" + 0.118*\"superhero\" + 0.053*\"super-hero\" + 0.039*\"batman\" + 0.034*\"adapted from:comic\" + 0.032*\"gene hackman\" + 0.029*\"action\" + 0.025*\"Action\" + 0.024*\"overrated\" + 0.017*\"based on a comic\"\n", - "2021-08-24 02:38:28,895 : INFO : topic #4 (0.020): 0.103*\"romance\" + 0.053*\"chick flick\" + 0.040*\"new york city\" + 0.031*\"Romance\" + 0.031*\"classic\" + 0.028*\"Comedy\" + 0.022*\"new york\" + 0.022*\"seen more than once\" + 0.021*\"sean connery\" + 0.020*\"watched 2006\"\n", - "2021-08-24 02:38:28,896 : INFO : topic #10 (0.020): 0.262*\"Romance\" + 0.254*\"Comedy\" + 0.200*\"Drama\" + 0.019*\"bibliothek\" + 0.013*\"london\" + 0.012*\"directorial debut\" + 0.011*\"clv\" + 0.011*\"divorce\" + 0.009*\"adultery\" + 0.007*\"oppl\"\n", - "2021-08-24 02:38:28,897 : INFO : topic diff=0.393339, rho=0.346261\n", - "2021-08-24 02:38:28,898 : INFO : PROGRESS: pass 2, at document #4000/10681\n", - "2021-08-24 02:38:29,185 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:29,214 : INFO : topic #37 (0.020): 0.043*\"easily confused with other movie(s) (title)\" + 0.037*\"Drama\" + 0.037*\"vietnam\" + 0.037*\"vietnam war\" + 0.034*\"oscar (best supporting actress)\" + 0.026*\"oscar (best actress)\" + 0.026*\"cult classic\" + 0.025*\"want to see again\" + 0.023*\"j netflix\" + 0.017*\"Comedy\"\n", - "2021-08-24 02:38:29,215 : INFO : topic #44 (0.020): 0.110*\"Children\" + 0.092*\"Adventure\" + 0.079*\"Fantasy\" + 0.078*\"disney\" + 0.062*\"Comedy\" + 0.059*\"Animation\" + 0.035*\"animation\" + 0.024*\"Musical\" + 0.020*\"fantasy\" + 0.019*\"children\"\n", - "2021-08-24 02:38:29,216 : INFO : topic #21 (0.020): 0.073*\"Drama\" + 0.043*\"criterion\" + 0.025*\"tumey's dvds\" + 0.024*\"reflective\" + 0.023*\"library\" + 0.020*\"atmospheric\" + 0.020*\"deliberate\" + 0.019*\"satirical\" + 0.019*\"sven's to see list\" + 0.019*\"lyrical\"\n", - "2021-08-24 02:38:29,216 : INFO : topic #11 (0.020): 0.259*\"Documentary\" + 0.105*\"to see\" + 0.070*\"gay\" + 0.064*\"in netflix queue\" + 0.050*\"oscar (best actor)\" + 0.024*\"india\" + 0.021*\"homosexuality\" + 0.021*\"Drama\" + 0.013*\"matter-of-fact\" + 0.013*\"Comedy\"\n", - "2021-08-24 02:38:29,217 : INFO : topic #28 (0.020): 0.115*\"pixar\" + 0.052*\"oscar (best actress)\" + 0.039*\"mockumentary\" + 0.028*\"medieval\" + 0.027*\"dinosaurs\" + 0.024*\"nostalgia\" + 0.017*\"computer animation\" + 0.017*\"christopher guest\" + 0.015*\"golf\" + 0.015*\"animation\"\n", - "2021-08-24 02:38:29,218 : INFO : topic diff=0.125769, rho=0.346261\n", - "2021-08-24 02:38:29,220 : INFO : PROGRESS: pass 2, at document #6000/10681\n", - "2021-08-24 02:38:29,469 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:29,495 : INFO : topic #3 (0.020): 0.263*\"nudity (topless)\" + 0.073*\"zombies\" + 0.026*\"zombie\" + 0.022*\"virtual reality\" + 0.021*\"Drama\" + 0.020*\"Comedy\" + 0.015*\"robert altman\" + 0.014*\"Horror\" + 0.012*\"ingmar bergman\" + 0.012*\"keira knightley\"\n", - "2021-08-24 02:38:29,496 : INFO : topic #31 (0.020): 0.093*\"james bond\" + 0.063*\"bond\" + 0.063*\"007\" + 0.037*\"murder\" + 0.036*\"assassin\" + 0.031*\"franchise\" + 0.027*\"Action\" + 0.025*\"claymation\" + 0.023*\"Thriller\" + 0.020*\"Adventure\"\n", - "2021-08-24 02:38:29,497 : INFO : topic #20 (0.020): 0.101*\"politics\" + 0.076*\"jack nicholson\" + 0.073*\"documentary\" + 0.035*\"terrorism\" + 0.034*\"seen 2008\" + 0.031*\"propaganda\" + 0.031*\"aviation\" + 0.024*\"renee zellweger\" + 0.023*\"assassination\" + 0.019*\"usa\"\n", - "2021-08-24 02:38:29,497 : INFO : topic #35 (0.020): 0.175*\"comedy\" + 0.092*\"Comedy\" + 0.080*\"funny\" + 0.054*\"parody\" + 0.034*\"hilarious\" + 0.024*\"afi 100 (laughs)\" + 0.023*\"spoof\" + 0.021*\"funny as hell\" + 0.017*\"can't remember\" + 0.015*\"john malkovich\"\n", - "2021-08-24 02:38:29,498 : INFO : topic #19 (0.020): 0.084*\"ghosts\" + 0.048*\"pg-13\" + 0.039*\"julia roberts\" + 0.036*\"jude law\" + 0.035*\"wedding\" + 0.024*\"want to own\" + 0.024*\"afternoon section\" + 0.021*\"infidelity\" + 0.021*\"hollywood\" + 0.021*\"girlie movie\"\n", - "2021-08-24 02:38:29,499 : INFO : topic diff=0.159741, rho=0.346261\n", - "2021-08-24 02:38:29,501 : INFO : PROGRESS: pass 2, at document #8000/10681\n", - "2021-08-24 02:38:29,770 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:29,797 : INFO : topic #47 (0.020): 0.277*\"less than 300 ratings\" + 0.118*\"Drama\" + 0.064*\"Comedy\" + 0.045*\"nudity (rear)\" + 0.033*\"jackie chan\" + 0.022*\"Action\" + 0.020*\"kung fu\" + 0.019*\"football\" + 0.015*\"martial arts\" + 0.014*\"brian de palma\"\n", - "2021-08-24 02:38:29,798 : INFO : topic #30 (0.020): 0.540*\"Drama\" + 0.039*\"Film-Noir\" + 0.017*\"boring\" + 0.012*\"small town\" + 0.012*\"tumey's dvds\" + 0.011*\"oscar (best foreign language film)\" + 0.010*\"italy\" + 0.009*\"erlend's dvds\" + 0.009*\"witch\" + 0.008*\"elegant\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:29,798 : INFO : topic #29 (0.020): 0.099*\"action\" + 0.047*\"adventure\" + 0.035*\"sequel\" + 0.034*\"Action\" + 0.031*\"pirates\" + 0.029*\"arnold schwarzenegger\" + 0.026*\"robots\" + 0.026*\"motorcycle\" + 0.020*\"Adventure\" + 0.019*\"death\"\n", - "2021-08-24 02:38:29,799 : INFO : topic #19 (0.020): 0.065*\"ghosts\" + 0.054*\"pg-13\" + 0.034*\"wedding\" + 0.033*\"jude law\" + 0.032*\"julia roberts\" + 0.030*\"sam peckinpah\" + 0.023*\"want to own\" + 0.022*\"prostitution\" + 0.020*\"infidelity\" + 0.019*\"hollywood\"\n", - "2021-08-24 02:38:29,800 : INFO : topic #36 (0.020): 0.083*\"dark comedy\" + 0.066*\"black comedy\" + 0.061*\"bechdel test:fail\" + 0.039*\"funniest movies\" + 0.031*\"cold war\" + 0.028*\"nazis\" + 0.019*\"classic\" + 0.017*\"Comedy\" + 0.014*\"russia\" + 0.014*\"seen more than once\"\n", - "2021-08-24 02:38:29,801 : INFO : topic diff=0.124645, rho=0.346261\n", - "2021-08-24 02:38:29,803 : INFO : PROGRESS: pass 2, at document #10000/10681\n", - "2021-08-24 02:38:30,093 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:30,120 : INFO : topic #45 (0.020): 0.057*\"japan\" + 0.044*\"revenge\" + 0.039*\"tense\" + 0.032*\"clint eastwood\" + 0.031*\"Drama\" + 0.028*\"gritty\" + 0.024*\"forceful\" + 0.024*\"Action\" + 0.023*\"atmospheric\" + 0.023*\"ummarti2007\"\n", - "2021-08-24 02:38:30,121 : INFO : topic #33 (0.020): 0.188*\"comic book\" + 0.102*\"superhero\" + 0.078*\"super-hero\" + 0.037*\"adapted from:comic\" + 0.029*\"action\" + 0.026*\"gene hackman\" + 0.026*\"Action\" + 0.023*\"alter ego\" + 0.018*\"dark\" + 0.017*\"overrated\"\n", - "2021-08-24 02:38:30,122 : INFO : topic #12 (0.020): 0.093*\"quentin tarantino\" + 0.078*\"christmas\" + 0.073*\"heist\" + 0.049*\"tarantino\" + 0.037*\"rape\" + 0.036*\"nonlinear\" + 0.022*\"ireland\" + 0.021*\"blindfold\" + 0.018*\"xmas theme\" + 0.016*\"terry gilliam\"\n", - "2021-08-24 02:38:30,123 : INFO : topic #34 (0.020): 0.185*\"War\" + 0.109*\"Drama\" + 0.093*\"world war ii\" + 0.060*\"drugs\" + 0.044*\"war\" + 0.038*\"Action\" + 0.024*\"prison\" + 0.022*\"history\" + 0.018*\"Adventure\" + 0.017*\"netwatch\"\n", - "2021-08-24 02:38:30,125 : INFO : topic #48 (0.020): 0.046*\"quirky\" + 0.043*\"surreal\" + 0.029*\"bittersweet\" + 0.023*\"woody allen\" + 0.022*\"whimsical\" + 0.022*\"humorous\" + 0.020*\"Comedy\" + 0.019*\"Drama\" + 0.018*\"peter jackson\" + 0.017*\"coming of age\"\n", - "2021-08-24 02:38:30,126 : INFO : topic diff=0.100648, rho=0.346261\n", - "2021-08-24 02:38:30,289 : INFO : -21.073 per-word bound, 2206047.4 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:30,289 : INFO : PROGRESS: pass 2, at document #10681/10681\n", - "2021-08-24 02:38:30,397 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:30,424 : INFO : topic #49 (0.020): 0.120*\"anime\" + 0.048*\"high school\" + 0.048*\"psychology\" + 0.041*\"serial killer\" + 0.027*\"teen\" + 0.021*\"japan\" + 0.021*\"do zassania\" + 0.020*\"cannibalism\" + 0.017*\"philosophical\" + 0.015*\"california\"\n", - "2021-08-24 02:38:30,425 : INFO : topic #39 (0.020): 0.083*\"bruce willis\" + 0.050*\"africa\" + 0.041*\"apocalypse\" + 0.032*\"predictable\" + 0.029*\"love\" + 0.026*\"avi\" + 0.025*\"tragedy\" + 0.023*\"big budget\" + 0.022*\"interesting\" + 0.020*\"good\"\n", - "2021-08-24 02:38:30,426 : INFO : topic #36 (0.020): 0.126*\"bechdel test:fail\" + 0.096*\"dark comedy\" + 0.061*\"black comedy\" + 0.044*\"cold war\" + 0.042*\"nazis\" + 0.024*\"funniest movies\" + 0.018*\"existentialism\" + 0.015*\"author:charles dickens\" + 0.015*\"Comedy\" + 0.014*\"communism\"\n", - "2021-08-24 02:38:30,427 : INFO : topic #30 (0.020): 0.570*\"Drama\" + 0.055*\"Film-Noir\" + 0.015*\"boring\" + 0.009*\"witch\" + 0.009*\"small town\" + 0.008*\"glbt\" + 0.008*\"flying\" + 0.008*\"tumey's dvds\" + 0.008*\"film noir\" + 0.007*\"animal:dog\"\n", - "2021-08-24 02:38:30,429 : INFO : topic #5 (0.020): 0.198*\"Action\" + 0.180*\"Thriller\" + 0.147*\"Horror\" + 0.121*\"Sci-Fi\" + 0.068*\"Comedy\" + 0.067*\"Drama\" + 0.058*\"Adventure\" + 0.020*\"betamax\" + 0.012*\"Crime\" + 0.009*\"can't remember\"\n", - "2021-08-24 02:38:30,431 : INFO : topic diff=0.166890, rho=0.346261\n", - "2021-08-24 02:38:30,432 : INFO : PROGRESS: pass 3, at document #2000/10681\n", - "2021-08-24 02:38:30,755 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:30,789 : INFO : topic #6 (0.020): 0.050*\"martial arts\" + 0.035*\"campy\" + 0.029*\"gothic\" + 0.028*\"australia\" + 0.024*\"silly\" + 0.022*\"australian\" + 0.020*\"sam raimi\" + 0.018*\"seen 2006\" + 0.018*\"freedom\" + 0.017*\"transgender\"\n", - "2021-08-24 02:38:30,790 : INFO : topic #45 (0.020): 0.038*\"japan\" + 0.037*\"tense\" + 0.029*\"clint eastwood\" + 0.028*\"revenge\" + 0.026*\"atmospheric\" + 0.026*\"gritty\" + 0.025*\"Drama\" + 0.024*\"forceful\" + 0.022*\"sweeping\" + 0.021*\"samurai\"\n", - "2021-08-24 02:38:30,791 : INFO : topic #10 (0.020): 0.310*\"Comedy\" + 0.262*\"Romance\" + 0.206*\"Drama\" + 0.018*\"bibliothek\" + 0.012*\"london\" + 0.010*\"directorial debut\" + 0.009*\"divorce\" + 0.008*\"oppl\" + 0.007*\"adultery\" + 0.007*\"poverty\"\n", - "2021-08-24 02:38:30,793 : INFO : topic #41 (0.020): 0.172*\"based on a book\" + 0.082*\"adapted from:book\" + 0.073*\"nudity (full frontal)\" + 0.070*\"netflix\" + 0.070*\"Drama\" + 0.058*\"robin williams\" + 0.039*\"vampire\" + 0.028*\"vampires\" + 0.015*\"book\" + 0.011*\"book was better\"\n", - "2021-08-24 02:38:30,796 : INFO : topic #3 (0.020): 0.317*\"nudity (topless)\" + 0.089*\"zombies\" + 0.024*\"keira knightley\" + 0.015*\"zombie\" + 0.015*\"Drama\" + 0.015*\"ingmar bergman\" + 0.014*\"Comedy\" + 0.012*\"futuristic\" + 0.012*\"horror\" + 0.012*\"Horror\"\n", - "2021-08-24 02:38:30,798 : INFO : topic diff=0.320232, rho=0.327201\n", - "2021-08-24 02:38:30,799 : INFO : PROGRESS: pass 3, at document #4000/10681\n", - "2021-08-24 02:38:31,100 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:31,132 : INFO : topic #4 (0.020): 0.100*\"romance\" + 0.052*\"chick flick\" + 0.036*\"sean connery\" + 0.035*\"new york city\" + 0.034*\"Romance\" + 0.026*\"seen more than once\" + 0.025*\"dance\" + 0.025*\"Comedy\" + 0.024*\"girlie movie\" + 0.023*\"new york\"\n", - "2021-08-24 02:38:31,133 : INFO : topic #33 (0.020): 0.137*\"comic book\" + 0.128*\"superhero\" + 0.060*\"super-hero\" + 0.039*\"gene hackman\" + 0.038*\"adapted from:comic\" + 0.029*\"batman\" + 0.027*\"Action\" + 0.023*\"action\" + 0.020*\"alter ego\" + 0.016*\"based on a comic\"\n", - "2021-08-24 02:38:31,134 : INFO : topic #14 (0.020): 0.093*\"Mystery\" + 0.060*\"Horror\" + 0.056*\"Thriller\" + 0.034*\"disturbing\" + 0.032*\"atmospheric\" + 0.025*\"erlend's dvds\" + 0.024*\"tense\" + 0.024*\"ominous\" + 0.024*\"scary movies to see on halloween\" + 0.022*\"tumey's dvds\"\n", - "2021-08-24 02:38:31,134 : INFO : topic #43 (0.020): 0.240*\"Crime\" + 0.136*\"Drama\" + 0.102*\"Thriller\" + 0.047*\"nudity (topless - notable)\" + 0.041*\"Mystery\" + 0.033*\"shakespeare\" + 0.032*\"Comedy\" + 0.026*\"murder\" + 0.026*\"nicolas cage\" + 0.018*\"remade\"\n", - "2021-08-24 02:38:31,135 : INFO : topic #44 (0.020): 0.111*\"Children\" + 0.099*\"Adventure\" + 0.085*\"Fantasy\" + 0.079*\"disney\" + 0.063*\"Comedy\" + 0.059*\"Animation\" + 0.036*\"animation\" + 0.023*\"fantasy\" + 0.019*\"children\" + 0.016*\"disney animated feature\"\n", - "2021-08-24 02:38:31,136 : INFO : topic diff=0.079228, rho=0.327201\n", - "2021-08-24 02:38:31,138 : INFO : PROGRESS: pass 3, at document #6000/10681\n", - "2021-08-24 02:38:31,383 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:31,409 : INFO : topic #30 (0.020): 0.575*\"Drama\" + 0.037*\"Film-Noir\" + 0.017*\"boring\" + 0.011*\"tumey's dvds\" + 0.011*\"small town\" + 0.010*\"italy\" + 0.009*\"glbt\" + 0.009*\"oscar (best foreign language film)\" + 0.008*\"animal:dog\" + 0.008*\"film noir\"\n", - "2021-08-24 02:38:31,410 : INFO : topic #42 (0.020): 0.143*\"johnny depp\" + 0.076*\"tim burton\" + 0.053*\"martin scorsese\" + 0.039*\"george clooney\" + 0.038*\"narrated\" + 0.024*\"ei muista\" + 0.024*\"monster\" + 0.018*\"alien invasion\" + 0.018*\"brothers\" + 0.013*\"disaster\"\n", - "2021-08-24 02:38:31,411 : INFO : topic #16 (0.020): 0.101*\"dystopia\" + 0.092*\"sci-fi\" + 0.054*\"futuristmovies.com\" + 0.038*\"Sci-Fi\" + 0.037*\"future\" + 0.034*\"military\" + 0.018*\"weird\" + 0.017*\"joaquin phoenix\" + 0.017*\"court\" + 0.015*\"urbane\"\n", - "2021-08-24 02:38:31,412 : INFO : topic #17 (0.020): 0.056*\"police\" + 0.055*\"will smith\" + 0.027*\"corruption\" + 0.026*\"computers\" + 0.022*\"milla jovovich\" + 0.019*\"no dialogue\" + 0.016*\"race\" + 0.016*\"writer\" + 0.016*\"luc besson\" + 0.016*\"torture\"\n", - "2021-08-24 02:38:31,413 : INFO : topic #36 (0.020): 0.109*\"dark comedy\" + 0.073*\"black comedy\" + 0.070*\"bechdel test:fail\" + 0.036*\"nazis\" + 0.029*\"cold war\" + 0.028*\"funniest movies\" + 0.015*\"Comedy\" + 0.015*\"spies\" + 0.013*\"communism\" + 0.012*\"seen more than once\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:31,414 : INFO : topic diff=0.118591, rho=0.327201\n", - "2021-08-24 02:38:31,416 : INFO : PROGRESS: pass 3, at document #8000/10681\n", - "2021-08-24 02:38:31,681 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:31,710 : INFO : topic #48 (0.020): 0.054*\"quirky\" + 0.050*\"surreal\" + 0.028*\"bittersweet\" + 0.026*\"woody allen\" + 0.023*\"humorous\" + 0.021*\"Comedy\" + 0.021*\"peter jackson\" + 0.020*\"whimsical\" + 0.019*\"coming of age\" + 0.018*\"fantasy\"\n", - "2021-08-24 02:38:31,710 : INFO : topic #17 (0.020): 0.062*\"police\" + 0.050*\"will smith\" + 0.033*\"computers\" + 0.023*\"corruption\" + 0.019*\"no dialogue\" + 0.018*\"small-town life\" + 0.017*\"milla jovovich\" + 0.016*\"stage\" + 0.016*\"writer\" + 0.015*\"race\"\n", - "2021-08-24 02:38:31,711 : INFO : topic #12 (0.020): 0.097*\"quentin tarantino\" + 0.096*\"christmas\" + 0.068*\"heist\" + 0.065*\"tarantino\" + 0.048*\"nonlinear\" + 0.042*\"rape\" + 0.023*\"ireland\" + 0.019*\"blindfold\" + 0.018*\"xmas theme\" + 0.016*\"terry gilliam\"\n", - "2021-08-24 02:38:31,712 : INFO : topic #26 (0.020): 0.132*\"oscar (best picture)\" + 0.107*\"classic\" + 0.067*\"oscar (best supporting actor)\" + 0.057*\"oscar (best directing)\" + 0.035*\"matt damon\" + 0.028*\"afi 100 (cheers)\" + 0.023*\"afi 100\" + 0.023*\"oscar (best supporting actress)\" + 0.019*\"national film registry\" + 0.018*\"afi 100 (movie quotes)\"\n", - "2021-08-24 02:38:31,713 : INFO : topic #24 (0.020): 0.059*\"tom cruise\" + 0.042*\"nicole kidman\" + 0.040*\"golden palm\" + 0.036*\"france\" + 0.033*\"french\" + 0.023*\"disability\" + 0.023*\"dustin hoffman\" + 0.023*\"takeshi kitano\" + 0.020*\"sweet\" + 0.020*\"on dvr\"\n", - "2021-08-24 02:38:31,714 : INFO : topic diff=0.090403, rho=0.327201\n", - "2021-08-24 02:38:31,716 : INFO : PROGRESS: pass 3, at document #10000/10681\n", - "2021-08-24 02:38:31,991 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:32,018 : INFO : topic #49 (0.020): 0.138*\"anime\" + 0.056*\"psychology\" + 0.048*\"high school\" + 0.046*\"serial killer\" + 0.037*\"teen\" + 0.024*\"japan\" + 0.014*\"mental illness\" + 0.014*\"cannibalism\" + 0.014*\"old\" + 0.014*\"steve martin\"\n", - "2021-08-24 02:38:32,019 : INFO : topic #7 (0.020): 0.133*\"movie to see\" + 0.053*\"boxing\" + 0.039*\"mel gibson\" + 0.035*\"uma thurman\" + 0.031*\"kidnapping\" + 0.030*\"suburbia\" + 0.024*\"basketball\" + 0.023*\"sylvester stallone\" + 0.020*\"john travolta\" + 0.017*\"dvd\"\n", - "2021-08-24 02:38:32,020 : INFO : topic #13 (0.020): 0.136*\"time travel\" + 0.078*\"twist ending\" + 0.045*\"holocaust\" + 0.041*\"bill murray\" + 0.028*\"post-apocalyptic\" + 0.020*\"michael moore\" + 0.020*\"liam neeson\" + 0.018*\"post apocalyptic\" + 0.016*\"capitalism\" + 0.015*\"mindfuck\"\n", - "2021-08-24 02:38:32,021 : INFO : topic #29 (0.020): 0.108*\"action\" + 0.047*\"adventure\" + 0.045*\"pirates\" + 0.039*\"Action\" + 0.038*\"sequel\" + 0.035*\"watched 2007\" + 0.032*\"motorcycle\" + 0.025*\"robots\" + 0.023*\"Adventure\" + 0.023*\"death\"\n", - "2021-08-24 02:38:32,022 : INFO : topic #3 (0.020): 0.282*\"nudity (topless)\" + 0.110*\"zombies\" + 0.030*\"keira knightley\" + 0.024*\"zombie\" + 0.021*\"ingmar bergman\" + 0.020*\"fascism\" + 0.016*\"virtual reality\" + 0.015*\"robert altman\" + 0.014*\"england\" + 0.011*\"gruesome\"\n", - "2021-08-24 02:38:32,023 : INFO : topic diff=0.072226, rho=0.327201\n", - "2021-08-24 02:38:32,179 : INFO : -21.033 per-word bound, 2145824.3 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:32,180 : INFO : PROGRESS: pass 3, at document #10681/10681\n", - "2021-08-24 02:38:32,284 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:32,310 : INFO : topic #2 (0.020): 0.099*\"satire\" + 0.087*\"lesbian\" + 0.086*\"Comedy\" + 0.073*\"imdb bottom 100\" + 0.022*\"adolf hitler\" + 0.021*\"olympics\" + 0.017*\"get\" + 0.017*\"john turturro\" + 0.016*\"ben stiller\" + 0.016*\"sexy\"\n", - "2021-08-24 02:38:32,311 : INFO : topic #19 (0.020): 0.110*\"pg-13\" + 0.056*\"ghosts\" + 0.042*\"jude law\" + 0.041*\"wedding\" + 0.032*\"infidelity\" + 0.031*\"julia roberts\" + 0.022*\"scope\" + 0.021*\"want to own\" + 0.021*\"prostitution\" + 0.016*\"jealousy\"\n", - "2021-08-24 02:38:32,312 : INFO : topic #12 (0.020): 0.103*\"christmas\" + 0.077*\"heist\" + 0.073*\"quentin tarantino\" + 0.050*\"rape\" + 0.039*\"tarantino\" + 0.032*\"nonlinear\" + 0.026*\"blindfold\" + 0.022*\"robbery\" + 0.020*\"xmas theme\" + 0.017*\"ireland\"\n", - "2021-08-24 02:38:32,313 : INFO : topic #17 (0.020): 0.076*\"will smith\" + 0.056*\"police\" + 0.055*\"corruption\" + 0.037*\"torture\" + 0.027*\"action packed\" + 0.024*\"milla jovovich\" + 0.021*\"tattoo\" + 0.020*\"suicide attempt\" + 0.019*\"let down\" + 0.017*\"so bad it's good\"\n", - "2021-08-24 02:38:32,316 : INFO : topic #8 (0.020): 0.080*\"space\" + 0.054*\"christianity\" + 0.031*\"marx brothers\" + 0.030*\"archaeology\" + 0.025*\"sci-fi\" + 0.023*\"harrison ford\" + 0.021*\"1970s\" + 0.018*\"kevin smith\" + 0.017*\"werewolves\" + 0.016*\"western\"\n", - "2021-08-24 02:38:32,319 : INFO : topic diff=0.139988, rho=0.327201\n", - "2021-08-24 02:38:32,324 : INFO : PROGRESS: pass 4, at document #2000/10681\n", - "2021-08-24 02:38:32,624 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:32,671 : INFO : topic #44 (0.020): 0.112*\"Children\" + 0.103*\"Adventure\" + 0.091*\"Fantasy\" + 0.085*\"disney\" + 0.069*\"Comedy\" + 0.056*\"Animation\" + 0.038*\"animation\" + 0.023*\"fantasy\" + 0.020*\"children\" + 0.017*\"movie to see\"\n", - "2021-08-24 02:38:32,672 : INFO : topic #38 (0.020): 0.084*\"true story\" + 0.069*\"tom hanks\" + 0.064*\"biography\" + 0.060*\"based on a true story\" + 0.033*\"drama\" + 0.033*\"music\" + 0.032*\"biopic\" + 0.030*\"overrated\" + 0.023*\"oscar (best actor)\" + 0.021*\"paris\"\n", - "2021-08-24 02:38:32,673 : INFO : topic #13 (0.020): 0.161*\"time travel\" + 0.064*\"twist ending\" + 0.058*\"holocaust\" + 0.029*\"bill murray\" + 0.027*\"good dialogue\" + 0.024*\"post-apocalyptic\" + 0.023*\"post apocalyptic\" + 0.019*\"suspense\" + 0.015*\"liam neeson\" + 0.013*\"dvd\"\n", - "2021-08-24 02:38:32,674 : INFO : topic #42 (0.020): 0.152*\"johnny depp\" + 0.079*\"tim burton\" + 0.071*\"martin scorsese\" + 0.030*\"narrated\" + 0.027*\"george clooney\" + 0.026*\"monster\" + 0.024*\"alien invasion\" + 0.021*\"brothers\" + 0.021*\"disaster\" + 0.015*\"movielens quickpick\"\n", - "2021-08-24 02:38:32,675 : INFO : topic #34 (0.020): 0.170*\"War\" + 0.103*\"Drama\" + 0.102*\"world war ii\" + 0.071*\"drugs\" + 0.051*\"war\" + 0.051*\"prison\" + 0.031*\"history\" + 0.030*\"Action\" + 0.018*\"wwii\" + 0.014*\"notable soundtrack\"\n", - "2021-08-24 02:38:32,677 : INFO : topic diff=0.283192, rho=0.310978\n", - "2021-08-24 02:38:32,684 : INFO : PROGRESS: pass 4, at document #4000/10681\n", - "2021-08-24 02:38:32,969 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:32,997 : INFO : topic #42 (0.020): 0.150*\"johnny depp\" + 0.098*\"tim burton\" + 0.051*\"martin scorsese\" + 0.036*\"narrated\" + 0.030*\"george clooney\" + 0.026*\"monster\" + 0.024*\"ei muista\" + 0.020*\"alien invasion\" + 0.018*\"brothers\" + 0.018*\"disaster\"\n", - "2021-08-24 02:38:32,999 : INFO : topic #10 (0.020): 0.352*\"Comedy\" + 0.250*\"Romance\" + 0.206*\"Drama\" + 0.021*\"bibliothek\" + 0.009*\"directorial debut\" + 0.009*\"london\" + 0.006*\"divorce\" + 0.006*\"oppl\" + 0.006*\"poverty\" + 0.006*\"betamax\"\n", - "2021-08-24 02:38:33,000 : INFO : topic #44 (0.020): 0.113*\"Children\" + 0.103*\"Adventure\" + 0.087*\"Fantasy\" + 0.079*\"disney\" + 0.066*\"Comedy\" + 0.060*\"Animation\" + 0.036*\"animation\" + 0.025*\"fantasy\" + 0.020*\"children\" + 0.016*\"disney animated feature\"\n", - "2021-08-24 02:38:33,000 : INFO : topic #0 (0.020): 0.091*\"crime\" + 0.063*\"brad pitt\" + 0.060*\"violence\" + 0.041*\"Crime\" + 0.036*\"morgan freeman\" + 0.034*\"violent\" + 0.031*\"organized crime\" + 0.028*\"philip seymour hoffman\" + 0.027*\"action\" + 0.026*\"Thriller\"\n", - "2021-08-24 02:38:33,001 : INFO : topic #13 (0.020): 0.145*\"time travel\" + 0.071*\"twist ending\" + 0.059*\"holocaust\" + 0.033*\"bill murray\" + 0.031*\"post apocalyptic\" + 0.029*\"post-apocalyptic\" + 0.020*\"good dialogue\" + 0.018*\"mindfuck\" + 0.017*\"liam neeson\" + 0.016*\"suspense\"\n", - "2021-08-24 02:38:33,003 : INFO : topic diff=0.060562, rho=0.310978\n", - "2021-08-24 02:38:33,004 : INFO : PROGRESS: pass 4, at document #6000/10681\n", - "2021-08-24 02:38:33,243 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:33,271 : INFO : topic #12 (0.020): 0.102*\"christmas\" + 0.072*\"quentin tarantino\" + 0.069*\"heist\" + 0.066*\"nonlinear\" + 0.049*\"rape\" + 0.048*\"tarantino\" + 0.025*\"terry gilliam\" + 0.019*\"blindfold\" + 0.018*\"xmas theme\" + 0.015*\"gilliam\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:33,271 : INFO : topic #10 (0.020): 0.376*\"Comedy\" + 0.243*\"Romance\" + 0.200*\"Drama\" + 0.022*\"bibliothek\" + 0.010*\"directorial debut\" + 0.008*\"betamax\" + 0.008*\"london\" + 0.006*\"poverty\" + 0.005*\"owen wilson\" + 0.005*\"divorce\"\n", - "2021-08-24 02:38:33,272 : INFO : topic #1 (0.020): 0.105*\"remake\" + 0.054*\"hitchcock\" + 0.040*\"horror\" + 0.039*\"alfred hitchcock\" + 0.031*\"tumey's dvds\" + 0.028*\"Thriller\" + 0.024*\"moody\" + 0.022*\"classic\" + 0.020*\"scary\" + 0.017*\"courtroom drama\"\n", - "2021-08-24 02:38:33,273 : INFO : topic #36 (0.020): 0.111*\"dark comedy\" + 0.074*\"black comedy\" + 0.072*\"bechdel test:fail\" + 0.038*\"nazis\" + 0.030*\"cold war\" + 0.028*\"funniest movies\" + 0.015*\"spies\" + 0.013*\"Comedy\" + 0.013*\"communism\" + 0.012*\"existentialism\"\n", - "2021-08-24 02:38:33,273 : INFO : topic #47 (0.020): 0.199*\"less than 300 ratings\" + 0.108*\"Drama\" + 0.064*\"Comedy\" + 0.064*\"nudity (rear)\" + 0.042*\"jackie chan\" + 0.026*\"kung fu\" + 0.024*\"football\" + 0.021*\"Action\" + 0.020*\"brian de palma\" + 0.018*\"denzel washington\"\n", - "2021-08-24 02:38:33,275 : INFO : topic diff=0.101780, rho=0.310978\n", - "2021-08-24 02:38:33,276 : INFO : PROGRESS: pass 4, at document #8000/10681\n", - "2021-08-24 02:38:33,522 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:33,550 : INFO : topic #27 (0.020): 0.122*\"aliens\" + 0.070*\"steven spielberg\" + 0.054*\"family\" + 0.037*\"michael crichton\" + 0.032*\"gambling\" + 0.024*\"alien\" + 0.021*\"to-rent\" + 0.018*\"didn't finish\" + 0.018*\"drew barrymore\" + 0.018*\"poker\"\n", - "2021-08-24 02:38:33,551 : INFO : topic #5 (0.020): 0.190*\"Action\" + 0.175*\"Thriller\" + 0.152*\"Horror\" + 0.119*\"Sci-Fi\" + 0.059*\"Adventure\" + 0.052*\"Comedy\" + 0.047*\"betamax\" + 0.039*\"Drama\" + 0.023*\"can't remember\" + 0.014*\"70mm\"\n", - "2021-08-24 02:38:33,552 : INFO : topic #20 (0.020): 0.134*\"politics\" + 0.102*\"documentary\" + 0.065*\"jack nicholson\" + 0.043*\"terrorism\" + 0.035*\"seen 2008\" + 0.033*\"propaganda\" + 0.027*\"aviation\" + 0.025*\"political\" + 0.021*\"renee zellweger\" + 0.020*\"own\"\n", - "2021-08-24 02:38:33,553 : INFO : topic #9 (0.020): 0.174*\"r\" + 0.116*\"Western\" + 0.081*\"nudity (topless - brief)\" + 0.079*\"clearplay\" + 0.067*\"Drama\" + 0.025*\"british\" + 0.021*\"pg13\" + 0.020*\"russell crowe\" + 0.017*\"historical\" + 0.017*\"Thriller\"\n", - "2021-08-24 02:38:33,554 : INFO : topic #37 (0.020): 0.055*\"easily confused with other movie(s) (title)\" + 0.042*\"oscar (best supporting actress)\" + 0.034*\"peter sellers\" + 0.032*\"vietnam war\" + 0.032*\"want to see again\" + 0.031*\"vietnam\" + 0.027*\"Drama\" + 0.025*\"j netflix\" + 0.021*\"19th century\" + 0.020*\"father daughter relationship\"\n", - "2021-08-24 02:38:33,555 : INFO : topic diff=0.076975, rho=0.310978\n", - "2021-08-24 02:38:33,557 : INFO : PROGRESS: pass 4, at document #10000/10681\n", - "2021-08-24 02:38:33,813 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:33,841 : INFO : topic #46 (0.020): 0.049*\"samuel l. jackson\" + 0.028*\"kevin spacey\" + 0.028*\"ewan mcgregor\" + 0.024*\"natalie portman\" + 0.022*\"imdb top 250\" + 0.022*\"ridley scott\" + 0.019*\"gary oldman\" + 0.019*\"dvd\" + 0.018*\"mystery\" + 0.018*\"seen more than once\"\n", - "2021-08-24 02:38:33,842 : INFO : topic #36 (0.020): 0.085*\"dark comedy\" + 0.070*\"black comedy\" + 0.061*\"bechdel test:fail\" + 0.037*\"funniest movies\" + 0.034*\"nazis\" + 0.026*\"cold war\" + 0.026*\"existentialism\" + 0.021*\"communism\" + 0.017*\"spies\" + 0.015*\"author:charles dickens\"\n", - "2021-08-24 02:38:33,842 : INFO : topic #18 (0.020): 0.045*\"creepy\" + 0.037*\"franchise\" + 0.036*\"surrealism\" + 0.032*\"lurid\" + 0.029*\"robert downey jr\" + 0.029*\"united states\" + 0.024*\"unique\" + 0.024*\"macabre\" + 0.023*\"slasher\" + 0.021*\"adolescence\"\n", - "2021-08-24 02:38:33,843 : INFO : topic #4 (0.020): 0.102*\"romance\" + 0.052*\"watched 2006\" + 0.044*\"new york city\" + 0.041*\"chick flick\" + 0.037*\"Romance\" + 0.029*\"new york\" + 0.024*\"sean connery\" + 0.023*\"seen more than once\" + 0.023*\"girlie movie\" + 0.023*\"Comedy\"\n", - "2021-08-24 02:38:33,844 : INFO : topic #8 (0.020): 0.081*\"space\" + 0.040*\"marx brothers\" + 0.035*\"sci-fi\" + 0.033*\"christianity\" + 0.026*\"harrison ford\" + 0.022*\"werewolves\" + 0.020*\"kevin smith\" + 0.019*\"spaghetti western\" + 0.018*\"george lucas\" + 0.017*\"fantasy\"\n", - "2021-08-24 02:38:33,845 : INFO : topic diff=0.060451, rho=0.310978\n", - "2021-08-24 02:38:33,989 : INFO : -21.007 per-word bound, 2107763.1 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:33,990 : INFO : PROGRESS: pass 4, at document #10681/10681\n", - "2021-08-24 02:38:34,087 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:34,114 : INFO : topic #45 (0.020): 0.053*\"japan\" + 0.042*\"revenge\" + 0.039*\"tense\" + 0.030*\"clint eastwood\" + 0.028*\"gritty\" + 0.027*\"corvallis library\" + 0.025*\"forceful\" + 0.024*\"ummarti2007\" + 0.024*\"Drama\" + 0.023*\"atmospheric\"\n", - "2021-08-24 02:38:34,115 : INFO : topic #23 (0.020): 0.054*\"mafia\" + 0.032*\"al pacino\" + 0.028*\"michael caine\" + 0.027*\"virus\" + 0.023*\"guns\" + 0.021*\"robert de niro\" + 0.020*\"nudity (full frontal - brief)\" + 0.017*\"ninja\" + 0.017*\"marlon brando\" + 0.017*\"tumey's dvds\"\n", - "2021-08-24 02:38:34,116 : INFO : topic #19 (0.020): 0.109*\"pg-13\" + 0.057*\"ghosts\" + 0.042*\"jude law\" + 0.041*\"wedding\" + 0.032*\"infidelity\" + 0.031*\"julia roberts\" + 0.023*\"scope\" + 0.022*\"want to own\" + 0.021*\"prostitution\" + 0.016*\"hollywood\"\n", - "2021-08-24 02:38:34,116 : INFO : topic #38 (0.020): 0.095*\"based on a true story\" + 0.087*\"true story\" + 0.069*\"biography\" + 0.050*\"tom hanks\" + 0.035*\"overrated\" + 0.028*\"biopic\" + 0.027*\"paris\" + 0.024*\"music\" + 0.024*\"movie to see\" + 0.023*\"pg\"\n", - "2021-08-24 02:38:34,117 : INFO : topic #37 (0.020): 0.084*\"easily confused with other movie(s) (title)\" + 0.045*\"j netflix\" + 0.027*\"oscar (best supporting actress)\" + 0.026*\"19th century\" + 0.025*\"father daughter relationship\" + 0.024*\"Drama\" + 0.023*\"food\" + 0.021*\"slow\" + 0.020*\"peter sellers\" + 0.019*\"vietnam war\"\n", - "2021-08-24 02:38:34,119 : INFO : topic diff=0.126928, rho=0.310978\n", - "2021-08-24 02:38:34,120 : INFO : PROGRESS: pass 5, at document #2000/10681\n", - "2021-08-24 02:38:34,384 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:34,411 : INFO : topic #10 (0.020): 0.359*\"Comedy\" + 0.259*\"Romance\" + 0.205*\"Drama\" + 0.017*\"bibliothek\" + 0.010*\"london\" + 0.009*\"divorce\" + 0.008*\"oppl\" + 0.006*\"directorial debut\" + 0.005*\"poverty\" + 0.005*\"owen wilson\"\n", - "2021-08-24 02:38:34,412 : INFO : topic #42 (0.020): 0.152*\"johnny depp\" + 0.079*\"tim burton\" + 0.071*\"martin scorsese\" + 0.031*\"narrated\" + 0.028*\"george clooney\" + 0.026*\"monster\" + 0.024*\"alien invasion\" + 0.021*\"brothers\" + 0.020*\"disaster\" + 0.015*\"ei muista\"\n", - "2021-08-24 02:38:34,412 : INFO : topic #27 (0.020): 0.153*\"aliens\" + 0.093*\"steven spielberg\" + 0.046*\"family\" + 0.035*\"michael crichton\" + 0.024*\"childhood\" + 0.023*\"to-rent\" + 0.021*\"gambling\" + 0.021*\"alien\" + 0.018*\"didn't finish\" + 0.017*\"mother-son relationship\"\n", - "2021-08-24 02:38:34,413 : INFO : topic #2 (0.020): 0.113*\"satire\" + 0.097*\"lesbian\" + 0.078*\"Comedy\" + 0.053*\"imdb bottom 100\" + 0.022*\"olympics\" + 0.022*\"sexy\" + 0.019*\"john turturro\" + 0.019*\"get\" + 0.017*\"1\" + 0.015*\"money\"\n", - "2021-08-24 02:38:34,414 : INFO : topic #45 (0.020): 0.040*\"tense\" + 0.039*\"japan\" + 0.031*\"revenge\" + 0.031*\"clint eastwood\" + 0.028*\"atmospheric\" + 0.027*\"gritty\" + 0.027*\"forceful\" + 0.024*\"sweeping\" + 0.022*\"visceral\" + 0.022*\"rousing\"\n", - "2021-08-24 02:38:34,416 : INFO : topic diff=0.261405, rho=0.296950\n", - "2021-08-24 02:38:34,417 : INFO : PROGRESS: pass 5, at document #4000/10681\n", - "2021-08-24 02:38:34,676 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:34,703 : INFO : topic #16 (0.020): 0.143*\"sci-fi\" + 0.096*\"dystopia\" + 0.061*\"futuristmovies.com\" + 0.047*\"Sci-Fi\" + 0.035*\"military\" + 0.027*\"future\" + 0.015*\"court\" + 0.014*\"imdb top 250\" + 0.013*\"joaquin phoenix\" + 0.013*\"1950s\"\n", - "2021-08-24 02:38:34,704 : INFO : topic #18 (0.020): 0.059*\"franchise\" + 0.046*\"surrealism\" + 0.040*\"slasher\" + 0.038*\"creepy\" + 0.029*\"robert downey jr\" + 0.028*\"united states\" + 0.023*\"lurid\" + 0.023*\"no rec?\" + 0.022*\"unique\" + 0.021*\"goth\"\n", - "2021-08-24 02:38:34,704 : INFO : topic #33 (0.020): 0.142*\"comic book\" + 0.130*\"superhero\" + 0.062*\"super-hero\" + 0.040*\"gene hackman\" + 0.039*\"adapted from:comic\" + 0.029*\"batman\" + 0.026*\"Action\" + 0.022*\"action\" + 0.021*\"alter ego\" + 0.017*\"based on a comic\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:34,705 : INFO : topic #49 (0.020): 0.071*\"anime\" + 0.062*\"teen\" + 0.057*\"high school\" + 0.055*\"serial killer\" + 0.054*\"psychology\" + 0.020*\"mental illness\" + 0.016*\"cannibalism\" + 0.016*\"cult film\" + 0.013*\"jodie foster\" + 0.013*\"anthony hopkins\"\n", - "2021-08-24 02:38:34,705 : INFO : topic #1 (0.020): 0.089*\"remake\" + 0.069*\"hitchcock\" + 0.052*\"alfred hitchcock\" + 0.038*\"horror\" + 0.032*\"tumey's dvds\" + 0.029*\"Thriller\" + 0.025*\"classic\" + 0.021*\"moody\" + 0.019*\"courtroom drama\" + 0.017*\"scary\"\n", - "2021-08-24 02:38:34,706 : INFO : topic diff=0.052636, rho=0.296950\n", - "2021-08-24 02:38:34,708 : INFO : PROGRESS: pass 5, at document #6000/10681\n", - "2021-08-24 02:38:34,936 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:34,964 : INFO : topic #7 (0.020): 0.121*\"movie to see\" + 0.074*\"mel gibson\" + 0.051*\"boxing\" + 0.034*\"suburbia\" + 0.031*\"kidnapping\" + 0.030*\"john travolta\" + 0.028*\"uma thurman\" + 0.027*\"sylvester stallone\" + 0.023*\"basketball\" + 0.018*\"dvd\"\n", - "2021-08-24 02:38:34,965 : INFO : topic #10 (0.020): 0.396*\"Comedy\" + 0.241*\"Romance\" + 0.197*\"Drama\" + 0.020*\"bibliothek\" + 0.008*\"betamax\" + 0.007*\"london\" + 0.006*\"directorial debut\" + 0.005*\"poverty\" + 0.005*\"owen wilson\" + 0.005*\"divorce\"\n", - "2021-08-24 02:38:34,966 : INFO : topic #6 (0.020): 0.082*\"martial arts\" + 0.048*\"gothic\" + 0.041*\"campy\" + 0.032*\"silly\" + 0.029*\"australian\" + 0.028*\"australia\" + 0.021*\"sam raimi\" + 0.019*\"don't remember\" + 0.017*\"2.5\" + 0.017*\"bad\"\n", - "2021-08-24 02:38:34,967 : INFO : topic #1 (0.020): 0.107*\"remake\" + 0.054*\"hitchcock\" + 0.044*\"horror\" + 0.040*\"alfred hitchcock\" + 0.030*\"tumey's dvds\" + 0.028*\"Thriller\" + 0.024*\"moody\" + 0.020*\"scary\" + 0.020*\"classic\" + 0.019*\"courtroom drama\"\n", - "2021-08-24 02:38:34,967 : INFO : topic #42 (0.020): 0.144*\"johnny depp\" + 0.077*\"tim burton\" + 0.054*\"martin scorsese\" + 0.039*\"narrated\" + 0.038*\"george clooney\" + 0.028*\"ei muista\" + 0.024*\"monster\" + 0.018*\"alien invasion\" + 0.018*\"brothers\" + 0.014*\"disaster\"\n", - "2021-08-24 02:38:34,969 : INFO : topic diff=0.092987, rho=0.296950\n", - "2021-08-24 02:38:34,970 : INFO : PROGRESS: pass 5, at document #8000/10681\n", - "2021-08-24 02:38:35,224 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:35,251 : INFO : topic #5 (0.020): 0.197*\"Action\" + 0.180*\"Thriller\" + 0.158*\"Horror\" + 0.122*\"Sci-Fi\" + 0.061*\"Adventure\" + 0.047*\"betamax\" + 0.039*\"Comedy\" + 0.025*\"Drama\" + 0.024*\"can't remember\" + 0.014*\"70mm\"\n", - "2021-08-24 02:38:35,253 : INFO : topic #24 (0.020): 0.059*\"tom cruise\" + 0.041*\"golden palm\" + 0.041*\"nicole kidman\" + 0.036*\"france\" + 0.032*\"french\" + 0.027*\"on dvr\" + 0.023*\"dustin hoffman\" + 0.023*\"disability\" + 0.021*\"takeshi kitano\" + 0.020*\"sweet\"\n", - "2021-08-24 02:38:35,254 : INFO : topic #6 (0.020): 0.094*\"martial arts\" + 0.044*\"gothic\" + 0.037*\"campy\" + 0.027*\"silly\" + 0.026*\"australian\" + 0.026*\"australia\" + 0.023*\"sam raimi\" + 0.021*\"don't remember\" + 0.020*\"seen 2006\" + 0.019*\"blindness\"\n", - "2021-08-24 02:38:35,254 : INFO : topic #32 (0.020): 0.074*\"based on a tv show\" + 0.072*\"jim carrey\" + 0.055*\"keanu reeves\" + 0.053*\"memory\" + 0.039*\"video game adaptation\" + 0.034*\"tv\" + 0.033*\"road trip\" + 0.031*\"england\" + 0.029*\"friday night movie\" + 0.027*\"star trek\"\n", - "2021-08-24 02:38:35,255 : INFO : topic #22 (0.020): 0.079*\"national film registry\" + 0.070*\"classic\" + 0.053*\"oscar (best cinematography)\" + 0.026*\"cult film\" + 0.025*\"black and white\" + 0.025*\"tumey's dvds\" + 0.023*\"philip k. dick\" + 0.023*\"afi 100\" + 0.022*\"afi 100 (thrills)\" + 0.021*\"imdb top 250\"\n", - "2021-08-24 02:38:35,256 : INFO : topic diff=0.070783, rho=0.296950\n", - "2021-08-24 02:38:35,257 : INFO : PROGRESS: pass 5, at document #10000/10681\n", - "2021-08-24 02:38:35,516 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:35,543 : INFO : topic #16 (0.020): 0.126*\"sci-fi\" + 0.093*\"dystopia\" + 0.048*\"Sci-Fi\" + 0.048*\"futuristmovies.com\" + 0.034*\"future\" + 0.033*\"military\" + 0.020*\"joaquin phoenix\" + 0.017*\"weird\" + 0.012*\"surprise ending\" + 0.012*\"gfei own it\"\n", - "2021-08-24 02:38:35,544 : INFO : topic #5 (0.020): 0.207*\"Action\" + 0.188*\"Thriller\" + 0.161*\"Horror\" + 0.118*\"Sci-Fi\" + 0.063*\"Adventure\" + 0.039*\"Comedy\" + 0.036*\"betamax\" + 0.023*\"Drama\" + 0.018*\"can't remember\" + 0.011*\"70mm\"\n", - "2021-08-24 02:38:35,545 : INFO : topic #2 (0.020): 0.105*\"lesbian\" + 0.100*\"satire\" + 0.081*\"Comedy\" + 0.054*\"imdb bottom 100\" + 0.028*\"sexy\" + 0.025*\"get\" + 0.022*\"olympics\" + 0.022*\"ben stiller\" + 0.017*\"amnesia\" + 0.016*\"john turturro\"\n", - "2021-08-24 02:38:35,545 : INFO : topic #28 (0.020): 0.140*\"pixar\" + 0.064*\"oscar (best actress)\" + 0.040*\"mockumentary\" + 0.030*\"elijah wood\" + 0.026*\"medieval\" + 0.025*\"cgi\" + 0.024*\"computer animation\" + 0.019*\"dinosaurs\" + 0.018*\"animation\" + 0.016*\"nostalgia\"\n", - "2021-08-24 02:38:35,547 : INFO : topic #49 (0.020): 0.137*\"anime\" + 0.058*\"psychology\" + 0.049*\"high school\" + 0.048*\"serial killer\" + 0.041*\"teen\" + 0.023*\"japan\" + 0.015*\"mental illness\" + 0.015*\"cannibalism\" + 0.014*\"anthony hopkins\" + 0.014*\"old\"\n", - "2021-08-24 02:38:35,548 : INFO : topic diff=0.053799, rho=0.296950\n", - "2021-08-24 02:38:35,699 : INFO : -21.001 per-word bound, 2098093.1 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:35,699 : INFO : PROGRESS: pass 5, at document #10681/10681\n", - "2021-08-24 02:38:35,801 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:35,827 : INFO : topic #40 (0.020): 0.118*\"magic\" + 0.115*\"nudity (full frontal - notable)\" + 0.058*\"not corv lib\" + 0.050*\"edward norton\" + 0.045*\"sports\" + 0.033*\"inspirational\" + 0.031*\"hw drama\" + 0.030*\"Drama\" + 0.029*\"baseball\" + 0.028*\"don cheadle\"\n", - "2021-08-24 02:38:35,828 : INFO : topic #46 (0.020): 0.046*\"samuel l. jackson\" + 0.036*\"imdb top 250\" + 0.031*\"ridley scott\" + 0.028*\"natalie portman\" + 0.026*\"kevin spacey\" + 0.023*\"father-son relationship\" + 0.022*\"ewan mcgregor\" + 0.021*\"owned\" + 0.020*\"dvd\" + 0.019*\"gary oldman\"\n", - "2021-08-24 02:38:35,829 : INFO : topic #13 (0.020): 0.116*\"time travel\" + 0.077*\"twist ending\" + 0.054*\"holocaust\" + 0.039*\"post-apocalyptic\" + 0.032*\"bill murray\" + 0.026*\"post apocalyptic\" + 0.024*\"good dialogue\" + 0.016*\"michael moore\" + 0.016*\"liam neeson\" + 0.016*\"capitalism\"\n", - "2021-08-24 02:38:35,830 : INFO : topic #41 (0.020): 0.253*\"based on a book\" + 0.098*\"adapted from:book\" + 0.096*\"netflix\" + 0.079*\"Drama\" + 0.072*\"nudity (full frontal)\" + 0.035*\"vampire\" + 0.029*\"robin williams\" + 0.024*\"vampires\" + 0.009*\"drinking\" + 0.009*\"book\"\n", - "2021-08-24 02:38:35,831 : INFO : topic #24 (0.020): 0.041*\"tom cruise\" + 0.039*\"france\" + 0.034*\"disability\" + 0.031*\"nicole kidman\" + 0.030*\"golden palm\" + 0.029*\"on dvr\" + 0.027*\"french\" + 0.025*\"dustin hoffman\" + 0.024*\"mask\" + 0.019*\"halloween\"\n", - "2021-08-24 02:38:35,832 : INFO : topic diff=0.118734, rho=0.296950\n", - "2021-08-24 02:38:35,834 : INFO : PROGRESS: pass 6, at document #2000/10681\n", - "2021-08-24 02:38:36,099 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:36,126 : INFO : topic #6 (0.020): 0.065*\"martial arts\" + 0.036*\"campy\" + 0.035*\"gothic\" + 0.029*\"australia\" + 0.027*\"silly\" + 0.023*\"australian\" + 0.022*\"seen 2006\" + 0.021*\"sam raimi\" + 0.018*\"freedom\" + 0.017*\"transgender\"\n", - "2021-08-24 02:38:36,127 : INFO : topic #4 (0.020): 0.112*\"romance\" + 0.052*\"chick flick\" + 0.050*\"Romance\" + 0.042*\"new york city\" + 0.028*\"seen more than once\" + 0.027*\"sean connery\" + 0.025*\"girlie movie\" + 0.023*\"new york\" + 0.022*\"watched 2006\" + 0.022*\"Comedy\"\n", - "2021-08-24 02:38:36,127 : INFO : topic #45 (0.020): 0.041*\"tense\" + 0.040*\"japan\" + 0.032*\"revenge\" + 0.031*\"clint eastwood\" + 0.029*\"atmospheric\" + 0.028*\"forceful\" + 0.027*\"gritty\" + 0.024*\"sweeping\" + 0.022*\"visceral\" + 0.022*\"rousing\"\n", - "2021-08-24 02:38:36,128 : INFO : topic #40 (0.020): 0.117*\"nudity (full frontal - notable)\" + 0.091*\"magic\" + 0.049*\"not corv lib\" + 0.047*\"sports\" + 0.040*\"edward norton\" + 0.039*\"baseball\" + 0.036*\"inspirational\" + 0.035*\"hw drama\" + 0.029*\"Drama\" + 0.024*\"christopher walken\"\n", - "2021-08-24 02:38:36,129 : INFO : topic #20 (0.020): 0.144*\"politics\" + 0.072*\"documentary\" + 0.071*\"jack nicholson\" + 0.043*\"terrorism\" + 0.037*\"love story\" + 0.034*\"propaganda\" + 0.033*\"political\" + 0.031*\"seen 2008\" + 0.030*\"assassination\" + 0.026*\"president\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:36,130 : INFO : topic diff=0.246258, rho=0.284665\n", - "2021-08-24 02:38:36,131 : INFO : PROGRESS: pass 6, at document #4000/10681\n", - "2021-08-24 02:38:36,402 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:36,428 : INFO : topic #7 (0.020): 0.131*\"movie to see\" + 0.080*\"mel gibson\" + 0.058*\"boxing\" + 0.038*\"suburbia\" + 0.031*\"sylvester stallone\" + 0.030*\"uma thurman\" + 0.026*\"basketball\" + 0.026*\"kidnapping\" + 0.025*\"john travolta\" + 0.018*\"ang lee\"\n", - "2021-08-24 02:38:36,429 : INFO : topic #48 (0.020): 0.047*\"quirky\" + 0.044*\"surreal\" + 0.028*\"directorial debut\" + 0.027*\"woody allen\" + 0.025*\"humorous\" + 0.023*\"bittersweet\" + 0.021*\"underrated\" + 0.021*\"coming of age\" + 0.019*\"erlend's dvds\" + 0.018*\"deadpan\"\n", - "2021-08-24 02:38:36,430 : INFO : topic #22 (0.020): 0.089*\"classic\" + 0.071*\"national film registry\" + 0.050*\"oscar (best cinematography)\" + 0.033*\"afi 100\" + 0.030*\"imdb top 250\" + 0.030*\"stanley kubrick\" + 0.028*\"black and white\" + 0.027*\"afi 100 (thrills)\" + 0.026*\"tumey's dvds\" + 0.025*\"cult film\"\n", - "2021-08-24 02:38:36,430 : INFO : topic #33 (0.020): 0.145*\"comic book\" + 0.131*\"superhero\" + 0.063*\"super-hero\" + 0.040*\"gene hackman\" + 0.039*\"adapted from:comic\" + 0.030*\"batman\" + 0.026*\"Action\" + 0.022*\"action\" + 0.021*\"alter ego\" + 0.017*\"based on a comic\"\n", - "2021-08-24 02:38:36,431 : INFO : topic #47 (0.020): 0.211*\"less than 300 ratings\" + 0.114*\"Drama\" + 0.067*\"nudity (rear)\" + 0.056*\"Comedy\" + 0.036*\"jackie chan\" + 0.027*\"kung fu\" + 0.027*\"football\" + 0.018*\"Action\" + 0.017*\"oppl\" + 0.017*\"denzel washington\"\n", - "2021-08-24 02:38:36,432 : INFO : topic diff=0.047856, rho=0.284665\n", - "2021-08-24 02:38:36,434 : INFO : PROGRESS: pass 6, at document #6000/10681\n", - "2021-08-24 02:38:36,663 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:36,690 : INFO : topic #5 (0.020): 0.201*\"Action\" + 0.183*\"Thriller\" + 0.166*\"Horror\" + 0.125*\"Sci-Fi\" + 0.060*\"Adventure\" + 0.049*\"betamax\" + 0.029*\"Comedy\" + 0.027*\"can't remember\" + 0.014*\"Drama\" + 0.013*\"70mm\"\n", - "2021-08-24 02:38:36,690 : INFO : topic #22 (0.020): 0.079*\"classic\" + 0.068*\"national film registry\" + 0.052*\"oscar (best cinematography)\" + 0.029*\"afi 100\" + 0.027*\"imdb top 250\" + 0.027*\"black and white\" + 0.026*\"stanley kubrick\" + 0.026*\"cult film\" + 0.025*\"tumey's dvds\" + 0.024*\"afi 100 (thrills)\"\n", - "2021-08-24 02:38:36,691 : INFO : topic #16 (0.020): 0.140*\"sci-fi\" + 0.094*\"dystopia\" + 0.062*\"futuristmovies.com\" + 0.051*\"Sci-Fi\" + 0.034*\"future\" + 0.032*\"military\" + 0.016*\"weird\" + 0.016*\"joaquin phoenix\" + 0.015*\"court\" + 0.012*\"urbane\"\n", - "2021-08-24 02:38:36,692 : INFO : topic #38 (0.020): 0.086*\"tom hanks\" + 0.075*\"true story\" + 0.055*\"biography\" + 0.052*\"based on a true story\" + 0.041*\"drama\" + 0.031*\"music\" + 0.027*\"overrated\" + 0.025*\"biopic\" + 0.024*\"paris\" + 0.022*\"historical\"\n", - "2021-08-24 02:38:36,693 : INFO : topic #25 (0.020): 0.178*\"Musical\" + 0.093*\"70mm\" + 0.070*\"musical\" + 0.061*\"religion\" + 0.048*\"Drama\" + 0.027*\"rock and roll\" + 0.024*\"friendship\" + 0.022*\"music\" + 0.017*\"adapted from b'way\" + 0.016*\"monty python\"\n", - "2021-08-24 02:38:36,694 : INFO : topic diff=0.086874, rho=0.284665\n", - "2021-08-24 02:38:36,695 : INFO : PROGRESS: pass 6, at document #8000/10681\n", - "2021-08-24 02:38:36,947 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:36,974 : INFO : topic #31 (0.020): 0.092*\"james bond\" + 0.079*\"murder\" + 0.063*\"007\" + 0.059*\"bond\" + 0.034*\"assassin\" + 0.025*\"Action\" + 0.024*\"claymation\" + 0.023*\"Thriller\" + 0.022*\"franchise\" + 0.022*\"tolkien\"\n", - "2021-08-24 02:38:36,975 : INFO : topic #44 (0.020): 0.116*\"Adventure\" + 0.110*\"Children\" + 0.097*\"Fantasy\" + 0.066*\"Comedy\" + 0.061*\"disney\" + 0.059*\"Animation\" + 0.039*\"animation\" + 0.038*\"fantasy\" + 0.019*\"cars\" + 0.018*\"children\"\n", - "2021-08-24 02:38:36,976 : INFO : topic #28 (0.020): 0.124*\"pixar\" + 0.076*\"oscar (best actress)\" + 0.036*\"mockumentary\" + 0.026*\"medieval\" + 0.026*\"elijah wood\" + 0.021*\"nostalgia\" + 0.021*\"dinosaurs\" + 0.020*\"computer animation\" + 0.018*\"high fantasy\" + 0.016*\"animation\"\n", - "2021-08-24 02:38:36,977 : INFO : topic #48 (0.020): 0.052*\"quirky\" + 0.048*\"surreal\" + 0.027*\"bittersweet\" + 0.026*\"directorial debut\" + 0.026*\"woody allen\" + 0.023*\"humorous\" + 0.021*\"fantasy\" + 0.020*\"peter jackson\" + 0.020*\"whimsical\" + 0.019*\"erlend's dvds\"\n", - "2021-08-24 02:38:36,978 : INFO : topic #19 (0.020): 0.075*\"ghosts\" + 0.058*\"pg-13\" + 0.035*\"wedding\" + 0.035*\"jude law\" + 0.034*\"julia roberts\" + 0.027*\"sam peckinpah\" + 0.026*\"want to own\" + 0.025*\"hollywood\" + 0.023*\"infidelity\" + 0.022*\"prostitution\"\n", - "2021-08-24 02:38:36,979 : INFO : topic diff=0.066436, rho=0.284665\n", - "2021-08-24 02:38:36,981 : INFO : PROGRESS: pass 6, at document #10000/10681\n", - "2021-08-24 02:38:37,229 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:37,257 : INFO : topic #29 (0.020): 0.121*\"action\" + 0.051*\"adventure\" + 0.049*\"Action\" + 0.041*\"pirates\" + 0.040*\"sequel\" + 0.031*\"watched 2007\" + 0.030*\"motorcycle\" + 0.029*\"Adventure\" + 0.025*\"robots\" + 0.023*\"boring\"\n", - "2021-08-24 02:38:37,257 : INFO : topic #22 (0.020): 0.086*\"national film registry\" + 0.057*\"classic\" + 0.049*\"oscar (best cinematography)\" + 0.027*\"philip k. dick\" + 0.025*\"tumey's dvds\" + 0.024*\"black and white\" + 0.024*\"journalism\" + 0.024*\"cult film\" + 0.022*\"angelina jolie\" + 0.021*\"afi 100\"\n", - "2021-08-24 02:38:37,258 : INFO : topic #15 (0.020): 0.050*\"racism\" + 0.046*\"espionage\" + 0.038*\"stephen king\" + 0.037*\"coen brothers\" + 0.028*\"los angeles\" + 0.024*\"ensemble cast\" + 0.023*\"great acting\" + 0.021*\"notable nudity\" + 0.020*\"san francisco\" + 0.017*\"multiple storylines\"\n", - "2021-08-24 02:38:37,259 : INFO : topic #16 (0.020): 0.135*\"sci-fi\" + 0.092*\"dystopia\" + 0.051*\"Sci-Fi\" + 0.049*\"futuristmovies.com\" + 0.034*\"future\" + 0.033*\"military\" + 0.020*\"joaquin phoenix\" + 0.017*\"weird\" + 0.012*\"gfei own it\" + 0.011*\"surprise ending\"\n", - "2021-08-24 02:38:37,260 : INFO : topic #24 (0.020): 0.053*\"tom cruise\" + 0.039*\"france\" + 0.034*\"nicole kidman\" + 0.033*\"golden palm\" + 0.033*\"on dvr\" + 0.029*\"french\" + 0.027*\"dustin hoffman\" + 0.023*\"disability\" + 0.023*\"bank robbery\" + 0.019*\"takeshi kitano\"\n", - "2021-08-24 02:38:37,262 : INFO : topic diff=0.050225, rho=0.284665\n", - "2021-08-24 02:38:37,406 : INFO : -20.998 per-word bound, 2094111.2 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:37,407 : INFO : PROGRESS: pass 6, at document #10681/10681\n", - "2021-08-24 02:38:37,506 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:37,533 : INFO : topic #43 (0.020): 0.319*\"Crime\" + 0.167*\"Drama\" + 0.127*\"Thriller\" + 0.051*\"Mystery\" + 0.038*\"nudity (topless - notable)\" + 0.019*\"nicolas cage\" + 0.018*\"sean penn\" + 0.016*\"murder\" + 0.014*\"shakespeare\" + 0.012*\"remade\"\n", - "2021-08-24 02:38:37,534 : INFO : topic #2 (0.020): 0.103*\"Comedy\" + 0.099*\"satire\" + 0.086*\"lesbian\" + 0.069*\"imdb bottom 100\" + 0.023*\"sexy\" + 0.021*\"olympics\" + 0.020*\"adolf hitler\" + 0.019*\"get\" + 0.016*\"ben stiller\" + 0.016*\"john turturro\"\n", - "2021-08-24 02:38:37,534 : INFO : topic #3 (0.020): 0.370*\"nudity (topless)\" + 0.101*\"zombies\" + 0.034*\"keira knightley\" + 0.020*\"nudity (topless - brief)\" + 0.016*\"zombie\" + 0.015*\"ingmar bergman\" + 0.013*\"fascism\" + 0.013*\"futuristic\" + 0.012*\"virtual reality\" + 0.012*\"r:language\"\n", - "2021-08-24 02:38:37,535 : INFO : topic #8 (0.020): 0.084*\"space\" + 0.050*\"christianity\" + 0.030*\"marx brothers\" + 0.028*\"archaeology\" + 0.026*\"sci-fi\" + 0.025*\"harrison ford\" + 0.020*\"1970s\" + 0.019*\"kevin smith\" + 0.017*\"werewolves\" + 0.017*\"western\"\n", - "2021-08-24 02:38:37,536 : INFO : topic #29 (0.020): 0.104*\"action\" + 0.050*\"adventure\" + 0.046*\"Action\" + 0.040*\"sequel\" + 0.037*\"robots\" + 0.035*\"pirates\" + 0.034*\"death\" + 0.031*\"Adventure\" + 0.028*\"motorcycle\" + 0.027*\"watched 2007\"\n", - "2021-08-24 02:38:37,537 : INFO : topic diff=0.112596, rho=0.284665\n", - "2021-08-24 02:38:37,539 : INFO : PROGRESS: pass 7, at document #2000/10681\n", - "2021-08-24 02:38:37,803 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:37,830 : INFO : topic #32 (0.020): 0.093*\"based on a tv show\" + 0.086*\"jim carrey\" + 0.060*\"keanu reeves\" + 0.048*\"video game adaptation\" + 0.043*\"star trek\" + 0.040*\"tv\" + 0.033*\"england\" + 0.030*\"memory\" + 0.030*\"road trip\" + 0.024*\"seen at the cinema\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:37,832 : INFO : topic #2 (0.020): 0.111*\"satire\" + 0.096*\"lesbian\" + 0.089*\"Comedy\" + 0.053*\"imdb bottom 100\" + 0.025*\"sexy\" + 0.022*\"olympics\" + 0.019*\"get\" + 0.019*\"john turturro\" + 0.016*\"1\" + 0.016*\"queer\"\n", - "2021-08-24 02:38:37,832 : INFO : topic #12 (0.020): 0.126*\"quentin tarantino\" + 0.095*\"christmas\" + 0.083*\"tarantino\" + 0.055*\"heist\" + 0.044*\"nonlinear\" + 0.038*\"rape\" + 0.027*\"blindfold\" + 0.025*\"terry gilliam\" + 0.017*\"xmas theme\" + 0.016*\"ireland\"\n", - "2021-08-24 02:38:37,833 : INFO : topic #28 (0.020): 0.118*\"pixar\" + 0.071*\"oscar (best actress)\" + 0.047*\"mockumentary\" + 0.036*\"dinosaurs\" + 0.028*\"medieval\" + 0.023*\"elijah wood\" + 0.019*\"christopher guest\" + 0.017*\"computer animation\" + 0.016*\"cgi\" + 0.016*\"best war films\"\n", - "2021-08-24 02:38:37,834 : INFO : topic #33 (0.020): 0.162*\"comic book\" + 0.128*\"superhero\" + 0.061*\"super-hero\" + 0.039*\"batman\" + 0.037*\"adapted from:comic\" + 0.037*\"gene hackman\" + 0.027*\"Action\" + 0.026*\"action\" + 0.019*\"based on a comic\" + 0.018*\"alter ego\"\n", - "2021-08-24 02:38:37,835 : INFO : topic diff=0.233039, rho=0.273788\n", - "2021-08-24 02:38:37,837 : INFO : PROGRESS: pass 7, at document #4000/10681\n", - "2021-08-24 02:38:38,101 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:38,129 : INFO : topic #38 (0.020): 0.089*\"tom hanks\" + 0.085*\"true story\" + 0.058*\"based on a true story\" + 0.057*\"biography\" + 0.044*\"drama\" + 0.031*\"music\" + 0.027*\"biopic\" + 0.027*\"oscar (best actor)\" + 0.026*\"historical\" + 0.025*\"overrated\"\n", - "2021-08-24 02:38:38,130 : INFO : topic #24 (0.020): 0.069*\"tom cruise\" + 0.041*\"golden palm\" + 0.033*\"dustin hoffman\" + 0.031*\"france\" + 0.028*\"on dvr\" + 0.025*\"disability\" + 0.024*\"watch\" + 0.023*\"nicole kidman\" + 0.023*\"french\" + 0.019*\"sweet\"\n", - "2021-08-24 02:38:38,131 : INFO : topic #21 (0.020): 0.084*\"Drama\" + 0.048*\"criterion\" + 0.027*\"tumey's dvds\" + 0.027*\"library\" + 0.024*\"reflective\" + 0.021*\"atmospheric\" + 0.021*\"dvd-video\" + 0.021*\"satirical\" + 0.021*\"deliberate\" + 0.021*\"sven's to see list\"\n", - "2021-08-24 02:38:38,131 : INFO : topic #7 (0.020): 0.135*\"movie to see\" + 0.079*\"mel gibson\" + 0.057*\"boxing\" + 0.037*\"suburbia\" + 0.031*\"sylvester stallone\" + 0.031*\"uma thurman\" + 0.026*\"kidnapping\" + 0.026*\"basketball\" + 0.025*\"john travolta\" + 0.017*\"ang lee\"\n", - "2021-08-24 02:38:38,132 : INFO : topic #31 (0.020): 0.093*\"james bond\" + 0.084*\"murder\" + 0.066*\"007\" + 0.063*\"bond\" + 0.042*\"assassin\" + 0.031*\"claymation\" + 0.025*\"Action\" + 0.024*\"Thriller\" + 0.024*\"franchise\" + 0.023*\"aardman\"\n", - "2021-08-24 02:38:38,134 : INFO : topic diff=0.044511, rho=0.273788\n", - "2021-08-24 02:38:38,135 : INFO : PROGRESS: pass 7, at document #6000/10681\n", - "2021-08-24 02:38:38,369 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:38,396 : INFO : topic #11 (0.020): 0.261*\"Documentary\" + 0.140*\"to see\" + 0.074*\"gay\" + 0.070*\"in netflix queue\" + 0.049*\"oscar (best actor)\" + 0.023*\"IMAX\" + 0.021*\"homosexuality\" + 0.021*\"india\" + 0.019*\"matter-of-fact\" + 0.015*\"ian mckellen\"\n", - "2021-08-24 02:38:38,397 : INFO : topic #28 (0.020): 0.118*\"pixar\" + 0.078*\"oscar (best actress)\" + 0.034*\"mockumentary\" + 0.027*\"dinosaurs\" + 0.024*\"nostalgia\" + 0.024*\"medieval\" + 0.021*\"computer animation\" + 0.021*\"high fantasy\" + 0.019*\"elijah wood\" + 0.017*\"cgi\"\n", - "2021-08-24 02:38:38,398 : INFO : topic #8 (0.020): 0.094*\"space\" + 0.041*\"harrison ford\" + 0.035*\"sci-fi\" + 0.023*\"george lucas\" + 0.023*\"spaghetti western\" + 0.023*\"kevin smith\" + 0.022*\"christianity\" + 0.021*\"fantasy\" + 0.021*\"archaeology\" + 0.019*\"sergio leone\"\n", - "2021-08-24 02:38:38,399 : INFO : topic #38 (0.020): 0.085*\"tom hanks\" + 0.075*\"true story\" + 0.055*\"biography\" + 0.053*\"based on a true story\" + 0.044*\"drama\" + 0.031*\"music\" + 0.026*\"biopic\" + 0.024*\"overrated\" + 0.024*\"historical\" + 0.024*\"paris\"\n", - "2021-08-24 02:38:38,400 : INFO : topic #47 (0.020): 0.212*\"less than 300 ratings\" + 0.121*\"Drama\" + 0.066*\"nudity (rear)\" + 0.042*\"Comedy\" + 0.042*\"jackie chan\" + 0.026*\"kung fu\" + 0.024*\"football\" + 0.019*\"brian de palma\" + 0.018*\"denzel washington\" + 0.018*\"Action\"\n", - "2021-08-24 02:38:38,401 : INFO : topic diff=0.082357, rho=0.273788\n", - "2021-08-24 02:38:38,403 : INFO : PROGRESS: pass 7, at document #8000/10681\n", - "2021-08-24 02:38:38,640 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:38,667 : INFO : topic #9 (0.020): 0.189*\"r\" + 0.118*\"Western\" + 0.090*\"nudity (topless - brief)\" + 0.086*\"clearplay\" + 0.059*\"Drama\" + 0.026*\"british\" + 0.023*\"pg13\" + 0.021*\"russell crowe\" + 0.020*\"Thriller\" + 0.018*\"to see\"\n", - "2021-08-24 02:38:38,668 : INFO : topic #0 (0.020): 0.099*\"crime\" + 0.057*\"violence\" + 0.055*\"brad pitt\" + 0.039*\"Crime\" + 0.036*\"violent\" + 0.034*\"morgan freeman\" + 0.026*\"Thriller\" + 0.026*\"philip seymour hoffman\" + 0.025*\"organized crime\" + 0.025*\"action\"\n", - "2021-08-24 02:38:38,668 : INFO : topic #17 (0.020): 0.064*\"police\" + 0.054*\"will smith\" + 0.033*\"computers\" + 0.026*\"corruption\" + 0.019*\"no dialogue\" + 0.018*\"milla jovovich\" + 0.017*\"stage\" + 0.017*\"small-town life\" + 0.016*\"writer\" + 0.016*\"torture\"\n", - "2021-08-24 02:38:38,669 : INFO : topic #44 (0.020): 0.115*\"Adventure\" + 0.110*\"Children\" + 0.098*\"Fantasy\" + 0.067*\"Comedy\" + 0.061*\"disney\" + 0.059*\"Animation\" + 0.041*\"fantasy\" + 0.039*\"animation\" + 0.019*\"cars\" + 0.018*\"children\"\n", - "2021-08-24 02:38:38,670 : INFO : topic #18 (0.020): 0.054*\"creepy\" + 0.047*\"franchise\" + 0.044*\"surrealism\" + 0.035*\"slasher\" + 0.028*\"lurid\" + 0.025*\"adolescence\" + 0.023*\"robert downey jr\" + 0.022*\"goth\" + 0.020*\"unique\" + 0.020*\"united states\"\n", - "2021-08-24 02:38:38,671 : INFO : topic diff=0.063222, rho=0.273788\n", - "2021-08-24 02:38:38,672 : INFO : PROGRESS: pass 7, at document #10000/10681\n", - "2021-08-24 02:38:38,925 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:38,952 : INFO : topic #35 (0.020): 0.151*\"comedy\" + 0.121*\"Comedy\" + 0.088*\"funny\" + 0.047*\"parody\" + 0.040*\"hilarious\" + 0.034*\"ummarti2006\" + 0.023*\"stupid\" + 0.023*\"afi 100 (laughs)\" + 0.020*\"spoof\" + 0.016*\"funny as hell\"\n", - "2021-08-24 02:38:38,953 : INFO : topic #28 (0.020): 0.139*\"pixar\" + 0.072*\"oscar (best actress)\" + 0.039*\"mockumentary\" + 0.030*\"elijah wood\" + 0.026*\"medieval\" + 0.024*\"cgi\" + 0.024*\"computer animation\" + 0.020*\"dinosaurs\" + 0.017*\"animation\" + 0.016*\"nostalgia\"\n", - "2021-08-24 02:38:38,954 : INFO : topic #17 (0.020): 0.063*\"police\" + 0.045*\"corruption\" + 0.044*\"will smith\" + 0.025*\"computers\" + 0.024*\"action packed\" + 0.022*\"milla jovovich\" + 0.021*\"snakes\" + 0.019*\"torture\" + 0.017*\"surveillance\" + 0.016*\"tattoo\"\n", - "2021-08-24 02:38:38,955 : INFO : topic #25 (0.020): 0.209*\"Musical\" + 0.093*\"70mm\" + 0.065*\"musical\" + 0.062*\"religion\" + 0.043*\"Drama\" + 0.028*\"rock and roll\" + 0.023*\"friendship\" + 0.018*\"trains\" + 0.018*\"monty python\" + 0.016*\"music\"\n", - "2021-08-24 02:38:38,956 : INFO : topic #27 (0.020): 0.110*\"aliens\" + 0.067*\"steven spielberg\" + 0.065*\"family\" + 0.044*\"to-rent\" + 0.035*\"gambling\" + 0.029*\"michael crichton\" + 0.022*\"alien\" + 0.022*\"poker\" + 0.020*\"childhood\" + 0.018*\"didn't finish\"\n", - "2021-08-24 02:38:38,957 : INFO : topic diff=0.047011, rho=0.273788\n", - "2021-08-24 02:38:39,104 : INFO : -20.992 per-word bound, 2085772.1 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:39,105 : INFO : PROGRESS: pass 7, at document #10681/10681\n", - "2021-08-24 02:38:39,214 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:39,240 : INFO : topic #1 (0.020): 0.154*\"remake\" + 0.033*\"horror\" + 0.028*\"Thriller\" + 0.028*\"hitchcock\" + 0.028*\"jonossa\" + 0.026*\"tumey's dvds\" + 0.022*\"moody\" + 0.021*\"alfred hitchcock\" + 0.017*\"courtroom drama\" + 0.014*\"scary\"\n", - "2021-08-24 02:38:39,241 : INFO : topic #0 (0.020): 0.084*\"crime\" + 0.052*\"violence\" + 0.052*\"brad pitt\" + 0.049*\"violent\" + 0.049*\"Crime\" + 0.044*\"morgan freeman\" + 0.034*\"organized crime\" + 0.032*\"tommy lee jones\" + 0.030*\"philip seymour hoffman\" + 0.029*\"Thriller\"\n", - "2021-08-24 02:38:39,242 : INFO : topic #16 (0.020): 0.123*\"sci-fi\" + 0.085*\"dystopia\" + 0.054*\"Sci-Fi\" + 0.043*\"futuristmovies.com\" + 0.039*\"military\" + 0.028*\"future\" + 0.020*\"imdb top 250\" + 0.018*\"betrayal\" + 0.017*\"weird\" + 0.016*\"joaquin phoenix\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:39,243 : INFO : topic #28 (0.020): 0.154*\"pixar\" + 0.060*\"oscar (best actress)\" + 0.040*\"mockumentary\" + 0.032*\"elijah wood\" + 0.024*\"computer animation\" + 0.022*\"medieval\" + 0.020*\"cgi\" + 0.020*\"family drama\" + 0.017*\"social commentary\" + 0.016*\"dinosaurs\"\n", - "2021-08-24 02:38:39,243 : INFO : topic #21 (0.020): 0.095*\"Drama\" + 0.054*\"criterion\" + 0.032*\"library\" + 0.027*\"sven's to see list\" + 0.024*\"tumey's dvds\" + 0.022*\"irreverent\" + 0.020*\"reflective\" + 0.019*\"stylized\" + 0.019*\"dvd-video\" + 0.019*\"deliberate\"\n", - "2021-08-24 02:38:39,245 : INFO : topic diff=0.108012, rho=0.273788\n", - "2021-08-24 02:38:39,246 : INFO : PROGRESS: pass 8, at document #2000/10681\n", - "2021-08-24 02:38:39,522 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:39,547 : INFO : topic #33 (0.020): 0.163*\"comic book\" + 0.129*\"superhero\" + 0.061*\"super-hero\" + 0.039*\"batman\" + 0.038*\"adapted from:comic\" + 0.037*\"gene hackman\" + 0.027*\"Action\" + 0.026*\"action\" + 0.019*\"based on a comic\" + 0.018*\"alter ego\"\n", - "2021-08-24 02:38:39,548 : INFO : topic #27 (0.020): 0.154*\"aliens\" + 0.094*\"steven spielberg\" + 0.052*\"family\" + 0.036*\"michael crichton\" + 0.024*\"childhood\" + 0.024*\"to-rent\" + 0.023*\"gambling\" + 0.021*\"alien\" + 0.019*\"didn't finish\" + 0.017*\"mother-son relationship\"\n", - "2021-08-24 02:38:39,549 : INFO : topic #13 (0.020): 0.161*\"time travel\" + 0.067*\"twist ending\" + 0.059*\"holocaust\" + 0.030*\"bill murray\" + 0.026*\"good dialogue\" + 0.025*\"post-apocalyptic\" + 0.024*\"post apocalyptic\" + 0.018*\"suspense\" + 0.016*\"liam neeson\" + 0.014*\"mindfuck\"\n", - "2021-08-24 02:38:39,550 : INFO : topic #25 (0.020): 0.178*\"Musical\" + 0.083*\"musical\" + 0.069*\"70mm\" + 0.063*\"religion\" + 0.040*\"Drama\" + 0.029*\"friendship\" + 0.023*\"rock and roll\" + 0.022*\"music\" + 0.022*\"monty python\" + 0.015*\"adapted from b'way\"\n", - "2021-08-24 02:38:39,551 : INFO : topic #12 (0.020): 0.125*\"quentin tarantino\" + 0.095*\"christmas\" + 0.082*\"tarantino\" + 0.055*\"heist\" + 0.045*\"nonlinear\" + 0.038*\"rape\" + 0.028*\"blindfold\" + 0.024*\"terry gilliam\" + 0.017*\"xmas theme\" + 0.016*\"ireland\"\n", - "2021-08-24 02:38:39,553 : INFO : topic diff=0.223132, rho=0.264069\n", - "2021-08-24 02:38:39,554 : INFO : PROGRESS: pass 8, at document #4000/10681\n", - "2021-08-24 02:38:39,815 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:39,842 : INFO : topic #49 (0.020): 0.076*\"anime\" + 0.061*\"teen\" + 0.057*\"high school\" + 0.056*\"serial killer\" + 0.055*\"psychology\" + 0.020*\"mental illness\" + 0.017*\"cannibalism\" + 0.015*\"cult film\" + 0.014*\"jodie foster\" + 0.014*\"japan\"\n", - "2021-08-24 02:38:39,843 : INFO : topic #24 (0.020): 0.069*\"tom cruise\" + 0.041*\"golden palm\" + 0.033*\"dustin hoffman\" + 0.031*\"france\" + 0.027*\"on dvr\" + 0.025*\"disability\" + 0.024*\"watch\" + 0.023*\"nicole kidman\" + 0.023*\"french\" + 0.019*\"sweet\"\n", - "2021-08-24 02:38:39,844 : INFO : topic #0 (0.020): 0.093*\"crime\" + 0.061*\"brad pitt\" + 0.058*\"violence\" + 0.041*\"Crime\" + 0.036*\"morgan freeman\" + 0.034*\"violent\" + 0.031*\"organized crime\" + 0.029*\"thriller\" + 0.027*\"philip seymour hoffman\" + 0.026*\"Thriller\"\n", - "2021-08-24 02:38:39,844 : INFO : topic #26 (0.020): 0.178*\"oscar (best picture)\" + 0.168*\"classic\" + 0.071*\"oscar (best directing)\" + 0.054*\"oscar (best supporting actor)\" + 0.028*\"afi 100\" + 0.023*\"afi 100 (cheers)\" + 0.023*\"matt damon\" + 0.020*\"oscar (best supporting actress)\" + 0.018*\"best picture\" + 0.017*\"submarine\"\n", - "2021-08-24 02:38:39,845 : INFO : topic #14 (0.020): 0.110*\"Mystery\" + 0.060*\"Horror\" + 0.054*\"Thriller\" + 0.037*\"disturbing\" + 0.033*\"atmospheric\" + 0.026*\"ominous\" + 0.025*\"erlend's dvds\" + 0.024*\"scary movies to see on halloween\" + 0.023*\"tense\" + 0.022*\"menacing\"\n", - "2021-08-24 02:38:39,846 : INFO : topic diff=0.041677, rho=0.264069\n", - "2021-08-24 02:38:39,847 : INFO : PROGRESS: pass 8, at document #6000/10681\n", - "2021-08-24 02:38:40,310 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:40,337 : INFO : topic #37 (0.020): 0.053*\"easily confused with other movie(s) (title)\" + 0.043*\"oscar (best supporting actress)\" + 0.042*\"vietnam war\" + 0.037*\"want to see again\" + 0.036*\"vietnam\" + 0.031*\"food\" + 0.027*\"j netflix\" + 0.023*\"19th century\" + 0.022*\"cult classic\" + 0.019*\"alcoholism\"\n", - "2021-08-24 02:38:40,338 : INFO : topic #19 (0.020): 0.091*\"ghosts\" + 0.055*\"pg-13\" + 0.039*\"julia roberts\" + 0.038*\"jude law\" + 0.036*\"wedding\" + 0.029*\"hollywood\" + 0.028*\"afternoon section\" + 0.027*\"want to own\" + 0.025*\"infidelity\" + 0.021*\"prostitution\"\n", - "2021-08-24 02:38:40,339 : INFO : topic #23 (0.020): 0.069*\"mafia\" + 0.047*\"al pacino\" + 0.034*\"robert de niro\" + 0.025*\"guns\" + 0.022*\"poverty\" + 0.022*\"eddie murphy\" + 0.019*\"marlon brando\" + 0.018*\"tumey's dvds\" + 0.017*\"francis ford coppola\" + 0.016*\"michael caine\"\n", - "2021-08-24 02:38:40,340 : INFO : topic #1 (0.020): 0.109*\"remake\" + 0.055*\"hitchcock\" + 0.048*\"horror\" + 0.041*\"alfred hitchcock\" + 0.032*\"tumey's dvds\" + 0.029*\"Thriller\" + 0.024*\"moody\" + 0.021*\"courtroom drama\" + 0.020*\"scary\" + 0.015*\"classic\"\n", - "2021-08-24 02:38:40,340 : INFO : topic #34 (0.020): 0.160*\"War\" + 0.109*\"Drama\" + 0.101*\"world war ii\" + 0.089*\"drugs\" + 0.050*\"war\" + 0.043*\"history\" + 0.037*\"prison\" + 0.029*\"Action\" + 0.014*\"wwii\" + 0.014*\"Adventure\"\n", - "2021-08-24 02:38:40,342 : INFO : topic diff=0.078785, rho=0.264069\n", - "2021-08-24 02:38:40,343 : INFO : PROGRESS: pass 8, at document #8000/10681\n", - "2021-08-24 02:38:40,591 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:40,618 : INFO : topic #36 (0.020): 0.096*\"dark comedy\" + 0.073*\"black comedy\" + 0.070*\"bechdel test:fail\" + 0.039*\"funniest movies\" + 0.034*\"nazis\" + 0.033*\"cold war\" + 0.015*\"russia\" + 0.014*\"author:charles dickens\" + 0.014*\"communism\" + 0.012*\"autumnal\"\n", - "2021-08-24 02:38:40,619 : INFO : topic #26 (0.020): 0.162*\"classic\" + 0.144*\"oscar (best picture)\" + 0.061*\"oscar (best supporting actor)\" + 0.057*\"oscar (best directing)\" + 0.032*\"matt damon\" + 0.025*\"afi 100 (cheers)\" + 0.023*\"oscar (best supporting actress)\" + 0.022*\"afi 100\" + 0.016*\"submarine\" + 0.014*\"national film registry\"\n", - "2021-08-24 02:38:40,620 : INFO : topic #6 (0.020): 0.100*\"martial arts\" + 0.045*\"gothic\" + 0.037*\"campy\" + 0.029*\"silly\" + 0.026*\"australian\" + 0.026*\"australia\" + 0.023*\"sam raimi\" + 0.021*\"don't remember\" + 0.020*\"seen 2006\" + 0.019*\"blindness\"\n", - "2021-08-24 02:38:40,621 : INFO : topic #19 (0.020): 0.075*\"ghosts\" + 0.058*\"pg-13\" + 0.035*\"jude law\" + 0.035*\"wedding\" + 0.034*\"julia roberts\" + 0.026*\"want to own\" + 0.026*\"sam peckinpah\" + 0.026*\"hollywood\" + 0.023*\"infidelity\" + 0.022*\"prostitution\"\n", - "2021-08-24 02:38:40,622 : INFO : topic #42 (0.020): 0.156*\"johnny depp\" + 0.072*\"tim burton\" + 0.051*\"martin scorsese\" + 0.040*\"narrated\" + 0.032*\"george clooney\" + 0.028*\"ei muista\" + 0.024*\"monster\" + 0.018*\"alien invasion\" + 0.017*\"brothers\" + 0.015*\"las vegas\"\n", - "2021-08-24 02:38:40,623 : INFO : topic diff=0.060622, rho=0.264069\n", - "2021-08-24 02:38:40,625 : INFO : PROGRESS: pass 8, at document #10000/10681\n", - "2021-08-24 02:38:40,870 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:40,897 : INFO : topic #4 (0.020): 0.104*\"romance\" + 0.050*\"Romance\" + 0.048*\"watched 2006\" + 0.043*\"new york city\" + 0.042*\"chick flick\" + 0.028*\"new york\" + 0.026*\"sean connery\" + 0.024*\"girlie movie\" + 0.022*\"dance\" + 0.022*\"seen more than once\"\n", - "2021-08-24 02:38:40,898 : INFO : topic #21 (0.020): 0.096*\"Drama\" + 0.055*\"criterion\" + 0.028*\"library\" + 0.026*\"sven's to see list\" + 0.026*\"tumey's dvds\" + 0.022*\"reflective\" + 0.021*\"stylized\" + 0.021*\"atmospheric\" + 0.021*\"deliberate\" + 0.021*\"dvd-video\"\n", - "2021-08-24 02:38:40,899 : INFO : topic #45 (0.020): 0.056*\"japan\" + 0.045*\"tense\" + 0.044*\"revenge\" + 0.034*\"clint eastwood\" + 0.030*\"forceful\" + 0.029*\"gritty\" + 0.028*\"corvallis library\" + 0.027*\"atmospheric\" + 0.024*\"Action\" + 0.021*\"sweeping\"\n", - "2021-08-24 02:38:40,900 : INFO : topic #37 (0.020): 0.072*\"easily confused with other movie(s) (title)\" + 0.036*\"j netflix\" + 0.035*\"oscar (best supporting actress)\" + 0.029*\"want to see again\" + 0.028*\"slow\" + 0.028*\"19th century\" + 0.028*\"food\" + 0.027*\"vietnam war\" + 0.026*\"father daughter relationship\" + 0.025*\"peter sellers\"\n", - "2021-08-24 02:38:40,901 : INFO : topic #48 (0.020): 0.047*\"quirky\" + 0.042*\"surreal\" + 0.034*\"directorial debut\" + 0.028*\"bittersweet\" + 0.023*\"woody allen\" + 0.022*\"humorous\" + 0.021*\"whimsical\" + 0.019*\"fantasy\" + 0.019*\"erlend's dvds\" + 0.018*\"sad\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:40,903 : INFO : topic diff=0.044128, rho=0.264069\n", - "2021-08-24 02:38:41,045 : INFO : -20.992 per-word bound, 2084885.3 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:41,046 : INFO : PROGRESS: pass 8, at document #10681/10681\n", - "2021-08-24 02:38:41,142 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:41,168 : INFO : topic #6 (0.020): 0.095*\"martial arts\" + 0.033*\"seen 2006\" + 0.032*\"campy\" + 0.031*\"gothic\" + 0.028*\"australia\" + 0.024*\"silly\" + 0.024*\"australian\" + 0.021*\"freedom\" + 0.019*\"greed\" + 0.016*\"blindness\"\n", - "2021-08-24 02:38:41,169 : INFO : topic #1 (0.020): 0.154*\"remake\" + 0.034*\"horror\" + 0.029*\"hitchcock\" + 0.028*\"Thriller\" + 0.028*\"jonossa\" + 0.024*\"tumey's dvds\" + 0.023*\"moody\" + 0.022*\"alfred hitchcock\" + 0.018*\"courtroom drama\" + 0.014*\"scary\"\n", - "2021-08-24 02:38:41,170 : INFO : topic #48 (0.020): 0.041*\"quirky\" + 0.038*\"surreal\" + 0.033*\"directorial debut\" + 0.026*\"bittersweet\" + 0.022*\"library on hold\" + 0.022*\"woody allen\" + 0.020*\"sad\" + 0.019*\"underrated\" + 0.019*\"humorous\" + 0.019*\"coming of age\"\n", - "2021-08-24 02:38:41,171 : INFO : topic #46 (0.020): 0.044*\"overrated\" + 0.042*\"samuel l. jackson\" + 0.038*\"imdb top 250\" + 0.030*\"dvd\" + 0.028*\"owned\" + 0.027*\"ridley scott\" + 0.026*\"seen more than once\" + 0.025*\"natalie portman\" + 0.024*\"kevin spacey\" + 0.021*\"eric's dvds\"\n", - "2021-08-24 02:38:41,172 : INFO : topic #4 (0.020): 0.103*\"romance\" + 0.063*\"new york city\" + 0.050*\"Romance\" + 0.042*\"watched 2006\" + 0.041*\"chick flick\" + 0.029*\"new york\" + 0.025*\"1980s\" + 0.022*\"sean connery\" + 0.021*\"girlie movie\" + 0.020*\"light\"\n", - "2021-08-24 02:38:41,173 : INFO : topic diff=0.103935, rho=0.264069\n", - "2021-08-24 02:38:41,174 : INFO : PROGRESS: pass 9, at document #2000/10681\n", - "2021-08-24 02:38:41,439 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:41,466 : INFO : topic #14 (0.020): 0.122*\"Mystery\" + 0.058*\"Thriller\" + 0.051*\"Horror\" + 0.039*\"disturbing\" + 0.030*\"atmospheric\" + 0.026*\"ominous\" + 0.025*\"tense\" + 0.023*\"menacing\" + 0.022*\"erlend's dvds\" + 0.022*\"dvd-r\"\n", - "2021-08-24 02:38:41,466 : INFO : topic #19 (0.020): 0.068*\"pg-13\" + 0.064*\"ghosts\" + 0.039*\"wedding\" + 0.038*\"julia roberts\" + 0.034*\"jude law\" + 0.034*\"hollywood\" + 0.029*\"want to own\" + 0.024*\"afternoon section\" + 0.023*\"infidelity\" + 0.022*\"prostitution\"\n", - "2021-08-24 02:38:41,467 : INFO : topic #15 (0.020): 0.073*\"coen brothers\" + 0.058*\"stephen king\" + 0.051*\"racism\" + 0.033*\"great acting\" + 0.032*\"adultery\" + 0.028*\"espionage\" + 0.024*\"los angeles\" + 0.018*\"ensemble cast\" + 0.016*\"san francisco\" + 0.015*\"notable nudity\"\n", - "2021-08-24 02:38:41,468 : INFO : topic #22 (0.020): 0.089*\"classic\" + 0.070*\"national film registry\" + 0.048*\"oscar (best cinematography)\" + 0.034*\"afi 100\" + 0.034*\"stanley kubrick\" + 0.030*\"imdb top 250\" + 0.028*\"afi 100 (thrills)\" + 0.027*\"black and white\" + 0.025*\"cult film\" + 0.024*\"70mm\"\n", - "2021-08-24 02:38:41,468 : INFO : topic #31 (0.020): 0.089*\"murder\" + 0.057*\"james bond\" + 0.045*\"assassin\" + 0.042*\"claymation\" + 0.041*\"bond\" + 0.036*\"007\" + 0.029*\"aardman\" + 0.023*\"Thriller\" + 0.022*\"Action\" + 0.021*\"killer-as-protagonist\"\n", - "2021-08-24 02:38:41,470 : INFO : topic diff=0.213692, rho=0.255317\n", - "2021-08-24 02:38:41,471 : INFO : PROGRESS: pass 9, at document #4000/10681\n", - "2021-08-24 02:38:41,717 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:41,743 : INFO : topic #48 (0.020): 0.047*\"quirky\" + 0.044*\"surreal\" + 0.041*\"directorial debut\" + 0.026*\"woody allen\" + 0.024*\"humorous\" + 0.024*\"bittersweet\" + 0.021*\"underrated\" + 0.021*\"coming of age\" + 0.019*\"erlend's dvds\" + 0.018*\"deadpan\"\n", - "2021-08-24 02:38:41,744 : INFO : topic #7 (0.020): 0.144*\"movie to see\" + 0.077*\"mel gibson\" + 0.056*\"boxing\" + 0.036*\"suburbia\" + 0.031*\"uma thurman\" + 0.030*\"sylvester stallone\" + 0.027*\"kidnapping\" + 0.026*\"basketball\" + 0.025*\"john travolta\" + 0.017*\"ang lee\"\n", - "2021-08-24 02:38:41,745 : INFO : topic #27 (0.020): 0.155*\"aliens\" + 0.081*\"steven spielberg\" + 0.059*\"family\" + 0.037*\"michael crichton\" + 0.024*\"alien\" + 0.024*\"gambling\" + 0.022*\"childhood\" + 0.022*\"poker\" + 0.021*\"didn't finish\" + 0.021*\"to-rent\"\n", - "2021-08-24 02:38:41,746 : INFO : topic #3 (0.020): 0.325*\"nudity (topless)\" + 0.075*\"zombies\" + 0.031*\"virtual reality\" + 0.028*\"nudity (topless - brief)\" + 0.019*\"keira knightley\" + 0.014*\"robert altman\" + 0.013*\"ingmar bergman\" + 0.013*\"zombie\" + 0.012*\"futuristic\" + 0.011*\"gruesome\"\n", - "2021-08-24 02:38:41,747 : INFO : topic #6 (0.020): 0.094*\"martial arts\" + 0.051*\"gothic\" + 0.036*\"campy\" + 0.029*\"australia\" + 0.028*\"silly\" + 0.021*\"don't remember\" + 0.019*\"seen 2006\" + 0.019*\"2.5\" + 0.019*\"australian\" + 0.018*\"sam raimi\"\n", - "2021-08-24 02:38:41,748 : INFO : topic diff=0.039438, rho=0.255317\n", - "2021-08-24 02:38:41,750 : INFO : PROGRESS: pass 9, at document #6000/10681\n", - "2021-08-24 02:38:41,979 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:42,006 : INFO : topic #36 (0.020): 0.114*\"dark comedy\" + 0.076*\"bechdel test:fail\" + 0.076*\"black comedy\" + 0.040*\"nazis\" + 0.031*\"cold war\" + 0.029*\"funniest movies\" + 0.015*\"spies\" + 0.014*\"communism\" + 0.013*\"existentialism\" + 0.011*\"russia\"\n", - "2021-08-24 02:38:42,007 : INFO : topic #18 (0.020): 0.055*\"franchise\" + 0.051*\"creepy\" + 0.042*\"slasher\" + 0.040*\"surrealism\" + 0.024*\"lurid\" + 0.024*\"robert downey jr\" + 0.022*\"united states\" + 0.020*\"unique\" + 0.020*\"no rec?\" + 0.020*\"goth\"\n", - "2021-08-24 02:38:42,007 : INFO : topic #14 (0.020): 0.111*\"Mystery\" + 0.061*\"Horror\" + 0.055*\"Thriller\" + 0.038*\"disturbing\" + 0.032*\"atmospheric\" + 0.026*\"erlend's dvds\" + 0.025*\"ominous\" + 0.024*\"tense\" + 0.022*\"menacing\" + 0.020*\"tumey's dvds\"\n", - "2021-08-24 02:38:42,008 : INFO : topic #40 (0.020): 0.117*\"nudity (full frontal - notable)\" + 0.091*\"magic\" + 0.072*\"edward norton\" + 0.056*\"sports\" + 0.051*\"baseball\" + 0.048*\"not corv lib\" + 0.040*\"hw drama\" + 0.029*\"compassionate\" + 0.025*\"christopher walken\" + 0.023*\"inspirational\"\n", - "2021-08-24 02:38:42,009 : INFO : topic #26 (0.020): 0.163*\"classic\" + 0.160*\"oscar (best picture)\" + 0.064*\"oscar (best directing)\" + 0.057*\"oscar (best supporting actor)\" + 0.030*\"matt damon\" + 0.025*\"afi 100\" + 0.023*\"afi 100 (cheers)\" + 0.022*\"oscar (best supporting actress)\" + 0.016*\"best picture\" + 0.016*\"submarine\"\n", - "2021-08-24 02:38:42,010 : INFO : topic diff=0.075169, rho=0.255317\n", - "2021-08-24 02:38:42,012 : INFO : PROGRESS: pass 9, at document #8000/10681\n", - "2021-08-24 02:38:42,248 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:42,275 : INFO : topic #39 (0.020): 0.108*\"bruce willis\" + 0.054*\"interesting\" + 0.033*\"avi\" + 0.030*\"gerard depardieu\" + 0.028*\"love\" + 0.025*\"africa\" + 0.024*\"golden raspberry (worst actor)\" + 0.024*\"big budget\" + 0.024*\"good\" + 0.023*\"end of the world\"\n", - "2021-08-24 02:38:42,276 : INFO : topic #42 (0.020): 0.156*\"johnny depp\" + 0.073*\"tim burton\" + 0.051*\"martin scorsese\" + 0.040*\"narrated\" + 0.032*\"george clooney\" + 0.029*\"ei muista\" + 0.024*\"monster\" + 0.018*\"alien invasion\" + 0.017*\"brothers\" + 0.015*\"las vegas\"\n", - "2021-08-24 02:38:42,277 : INFO : topic #47 (0.020): 0.293*\"less than 300 ratings\" + 0.140*\"Drama\" + 0.058*\"nudity (rear)\" + 0.037*\"jackie chan\" + 0.024*\"kung fu\" + 0.022*\"football\" + 0.019*\"Comedy\" + 0.016*\"brian de palma\" + 0.014*\"denzel washington\" + 0.013*\"oppl\"\n", - "2021-08-24 02:38:42,278 : INFO : topic #2 (0.020): 0.098*\"Comedy\" + 0.095*\"lesbian\" + 0.087*\"satire\" + 0.050*\"imdb bottom 100\" + 0.037*\"sexy\" + 0.028*\"get\" + 0.019*\"ben stiller\" + 0.018*\"olympics\" + 0.017*\"john turturro\" + 0.017*\"amnesia\"\n", - "2021-08-24 02:38:42,279 : INFO : topic #28 (0.020): 0.124*\"pixar\" + 0.089*\"oscar (best actress)\" + 0.036*\"mockumentary\" + 0.026*\"medieval\" + 0.025*\"elijah wood\" + 0.022*\"dinosaurs\" + 0.021*\"nostalgia\" + 0.020*\"computer animation\" + 0.017*\"high fantasy\" + 0.016*\"cgi\"\n", - "2021-08-24 02:38:42,280 : INFO : topic diff=0.058535, rho=0.255317\n", - "2021-08-24 02:38:42,282 : INFO : PROGRESS: pass 9, at document #10000/10681\n", - "2021-08-24 02:38:42,528 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:42,556 : INFO : topic #4 (0.020): 0.105*\"romance\" + 0.051*\"Romance\" + 0.047*\"watched 2006\" + 0.044*\"new york city\" + 0.043*\"chick flick\" + 0.028*\"new york\" + 0.026*\"sean connery\" + 0.024*\"girlie movie\" + 0.023*\"dance\" + 0.021*\"light\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:42,557 : INFO : topic #22 (0.020): 0.086*\"national film registry\" + 0.056*\"classic\" + 0.050*\"oscar (best cinematography)\" + 0.026*\"philip k. dick\" + 0.025*\"tumey's dvds\" + 0.024*\"black and white\" + 0.024*\"imdb top 250\" + 0.023*\"cult film\" + 0.023*\"journalism\" + 0.022*\"afi 100\"\n", - "2021-08-24 02:38:42,558 : INFO : topic #28 (0.020): 0.138*\"pixar\" + 0.080*\"oscar (best actress)\" + 0.039*\"mockumentary\" + 0.029*\"elijah wood\" + 0.026*\"medieval\" + 0.024*\"cgi\" + 0.023*\"computer animation\" + 0.020*\"dinosaurs\" + 0.017*\"nostalgia\" + 0.016*\"animation\"\n", - "2021-08-24 02:38:42,558 : INFO : topic #37 (0.020): 0.072*\"easily confused with other movie(s) (title)\" + 0.036*\"j netflix\" + 0.035*\"oscar (best supporting actress)\" + 0.029*\"want to see again\" + 0.029*\"slow\" + 0.028*\"food\" + 0.028*\"19th century\" + 0.027*\"vietnam war\" + 0.026*\"father daughter relationship\" + 0.026*\"vietnam\"\n", - "2021-08-24 02:38:42,559 : INFO : topic #20 (0.020): 0.144*\"politics\" + 0.102*\"documentary\" + 0.055*\"terrorism\" + 0.053*\"jack nicholson\" + 0.040*\"propaganda\" + 0.040*\"political\" + 0.039*\"love story\" + 0.036*\"Documentary\" + 0.031*\"seen 2008\" + 0.026*\"aviation\"\n", - "2021-08-24 02:38:42,560 : INFO : topic diff=0.042244, rho=0.255317\n", - "2021-08-24 02:38:42,708 : INFO : -20.985 per-word bound, 2075044.1 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:42,709 : INFO : PROGRESS: pass 9, at document #10681/10681\n", - "2021-08-24 02:38:42,808 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:42,834 : INFO : topic #36 (0.020): 0.116*\"bechdel test:fail\" + 0.102*\"dark comedy\" + 0.067*\"black comedy\" + 0.043*\"nazis\" + 0.042*\"cold war\" + 0.027*\"funniest movies\" + 0.018*\"existentialism\" + 0.015*\"author:charles dickens\" + 0.015*\"communism\" + 0.014*\"russia\"\n", - "2021-08-24 02:38:42,835 : INFO : topic #11 (0.020): 0.308*\"Documentary\" + 0.206*\"to see\" + 0.059*\"in netflix queue\" + 0.059*\"gay\" + 0.025*\"india\" + 0.021*\"oscar (best actor)\" + 0.020*\"IMAX\" + 0.018*\"homosexuality\" + 0.013*\"matter-of-fact\" + 0.011*\"mexico\"\n", - "2021-08-24 02:38:42,836 : INFO : topic #40 (0.020): 0.119*\"magic\" + 0.118*\"nudity (full frontal - notable)\" + 0.058*\"not corv lib\" + 0.054*\"edward norton\" + 0.047*\"sports\" + 0.033*\"hw drama\" + 0.033*\"inspirational\" + 0.032*\"baseball\" + 0.028*\"don cheadle\" + 0.025*\"compassionate\"\n", - "2021-08-24 02:38:42,837 : INFO : topic #25 (0.020): 0.213*\"Musical\" + 0.077*\"musical\" + 0.077*\"religion\" + 0.076*\"70mm\" + 0.036*\"friendship\" + 0.034*\"Drama\" + 0.026*\"rock and roll\" + 0.020*\"trains\" + 0.018*\"music\" + 0.014*\"monty python\"\n", - "2021-08-24 02:38:42,837 : INFO : topic #43 (0.020): 0.319*\"Crime\" + 0.169*\"Drama\" + 0.125*\"Thriller\" + 0.051*\"Mystery\" + 0.039*\"nudity (topless - notable)\" + 0.019*\"nicolas cage\" + 0.018*\"sean penn\" + 0.015*\"shakespeare\" + 0.015*\"murder\" + 0.012*\"remade\"\n", - "2021-08-24 02:38:42,839 : INFO : topic diff=0.100206, rho=0.255317\n", - "2021-08-24 02:38:42,840 : INFO : PROGRESS: pass 10, at document #2000/10681\n", - "2021-08-24 02:38:43,102 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:43,128 : INFO : topic #49 (0.020): 0.086*\"anime\" + 0.063*\"serial killer\" + 0.052*\"high school\" + 0.052*\"psychology\" + 0.035*\"teen\" + 0.021*\"cannibalism\" + 0.019*\"mental illness\" + 0.018*\"japan\" + 0.017*\"jodie foster\" + 0.017*\"anthony hopkins\"\n", - "2021-08-24 02:38:43,129 : INFO : topic #29 (0.020): 0.144*\"action\" + 0.052*\"adventure\" + 0.050*\"Action\" + 0.035*\"sequel\" + 0.031*\"robots\" + 0.031*\"Adventure\" + 0.027*\"arnold schwarzenegger\" + 0.025*\"death\" + 0.023*\"pirates\" + 0.023*\"boring\"\n", - "2021-08-24 02:38:43,131 : INFO : topic #19 (0.020): 0.068*\"pg-13\" + 0.065*\"ghosts\" + 0.039*\"wedding\" + 0.038*\"julia roberts\" + 0.034*\"jude law\" + 0.033*\"hollywood\" + 0.029*\"want to own\" + 0.024*\"afternoon section\" + 0.023*\"infidelity\" + 0.022*\"prostitution\"\n", - "2021-08-24 02:38:43,132 : INFO : topic #37 (0.020): 0.064*\"easily confused with other movie(s) (title)\" + 0.046*\"vietnam\" + 0.044*\"vietnam war\" + 0.034*\"food\" + 0.033*\"j netflix\" + 0.030*\"oscar (best supporting actress)\" + 0.029*\"want to see again\" + 0.023*\"peter sellers\" + 0.021*\"19th century\" + 0.020*\"slow\"\n", - "2021-08-24 02:38:43,133 : INFO : topic #10 (0.020): 0.414*\"Comedy\" + 0.247*\"Romance\" + 0.199*\"Drama\" + 0.012*\"bibliothek\" + 0.008*\"london\" + 0.008*\"oppl\" + 0.008*\"divorce\" + 0.005*\"owen wilson\" + 0.005*\"betamax\" + 0.004*\"world war i\"\n", - "2021-08-24 02:38:43,134 : INFO : topic diff=0.205817, rho=0.247382\n", - "2021-08-24 02:38:43,135 : INFO : PROGRESS: pass 10, at document #4000/10681\n", - "2021-08-24 02:38:43,390 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:43,416 : INFO : topic #23 (0.020): 0.076*\"mafia\" + 0.044*\"al pacino\" + 0.037*\"robert de niro\" + 0.023*\"marlon brando\" + 0.022*\"guns\" + 0.019*\"poverty\" + 0.019*\"tumey's dvds\" + 0.017*\"francis ford coppola\" + 0.017*\"eddie murphy\" + 0.016*\"nudity (full frontal - brief)\"\n", - "2021-08-24 02:38:43,417 : INFO : topic #39 (0.020): 0.136*\"bruce willis\" + 0.052*\"interesting\" + 0.026*\"africa\" + 0.026*\"end of the world\" + 0.025*\"golden raspberry (worst actor)\" + 0.025*\"good\" + 0.025*\"love\" + 0.023*\"apocalypse\" + 0.021*\"predictable\" + 0.021*\"big budget\"\n", - "2021-08-24 02:38:43,418 : INFO : topic #49 (0.020): 0.078*\"anime\" + 0.061*\"teen\" + 0.058*\"high school\" + 0.057*\"serial killer\" + 0.056*\"psychology\" + 0.020*\"mental illness\" + 0.017*\"cannibalism\" + 0.015*\"cult film\" + 0.014*\"japan\" + 0.014*\"jodie foster\"\n", - "2021-08-24 02:38:43,419 : INFO : topic #16 (0.020): 0.171*\"sci-fi\" + 0.089*\"dystopia\" + 0.067*\"futuristmovies.com\" + 0.058*\"Sci-Fi\" + 0.032*\"military\" + 0.026*\"future\" + 0.013*\"court\" + 0.013*\"joaquin phoenix\" + 0.012*\"saturn award (best science fiction film)\" + 0.012*\"1950s\"\n", - "2021-08-24 02:38:43,420 : INFO : topic #15 (0.020): 0.068*\"stephen king\" + 0.066*\"racism\" + 0.065*\"coen brothers\" + 0.037*\"adultery\" + 0.028*\"great acting\" + 0.026*\"espionage\" + 0.023*\"los angeles\" + 0.020*\"ensemble cast\" + 0.017*\"multiple storylines\" + 0.017*\"notable nudity\"\n", - "2021-08-24 02:38:43,421 : INFO : topic diff=0.037603, rho=0.247382\n", - "2021-08-24 02:38:43,422 : INFO : PROGRESS: pass 10, at document #6000/10681\n", - "2021-08-24 02:38:43,655 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:43,681 : INFO : topic #23 (0.020): 0.069*\"mafia\" + 0.046*\"al pacino\" + 0.033*\"robert de niro\" + 0.025*\"guns\" + 0.022*\"poverty\" + 0.022*\"eddie murphy\" + 0.019*\"marlon brando\" + 0.018*\"tumey's dvds\" + 0.017*\"francis ford coppola\" + 0.016*\"michael caine\"\n", - "2021-08-24 02:38:43,682 : INFO : topic #43 (0.020): 0.288*\"Crime\" + 0.156*\"Drama\" + 0.107*\"Thriller\" + 0.050*\"nudity (topless - notable)\" + 0.043*\"Mystery\" + 0.025*\"shakespeare\" + 0.023*\"nicolas cage\" + 0.017*\"remade\" + 0.016*\"adapted from:play\" + 0.015*\"murder\"\n", - "2021-08-24 02:38:43,683 : INFO : topic #39 (0.020): 0.122*\"bruce willis\" + 0.056*\"interesting\" + 0.031*\"africa\" + 0.030*\"gerard depardieu\" + 0.026*\"golden raspberry (worst actor)\" + 0.024*\"avi\" + 0.023*\"love\" + 0.022*\"good\" + 0.022*\"end of the world\" + 0.022*\"predictable\"\n", - "2021-08-24 02:38:43,683 : INFO : topic #20 (0.020): 0.125*\"politics\" + 0.073*\"documentary\" + 0.072*\"jack nicholson\" + 0.038*\"terrorism\" + 0.034*\"seen 2008\" + 0.032*\"propaganda\" + 0.030*\"love story\" + 0.030*\"aviation\" + 0.030*\"Documentary\" + 0.027*\"political\"\n", - "2021-08-24 02:38:43,684 : INFO : topic #17 (0.020): 0.059*\"will smith\" + 0.059*\"police\" + 0.031*\"corruption\" + 0.028*\"computers\" + 0.022*\"milla jovovich\" + 0.019*\"no dialogue\" + 0.018*\"torture\" + 0.016*\"luc besson\" + 0.015*\"race\" + 0.015*\"writer\"\n", - "2021-08-24 02:38:43,685 : INFO : topic diff=0.072370, rho=0.247382\n", - "2021-08-24 02:38:43,686 : INFO : PROGRESS: pass 10, at document #8000/10681\n", - "2021-08-24 02:38:43,933 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:43,961 : INFO : topic #48 (0.020): 0.051*\"quirky\" + 0.047*\"surreal\" + 0.041*\"directorial debut\" + 0.027*\"bittersweet\" + 0.026*\"woody allen\" + 0.022*\"humorous\" + 0.020*\"fantasy\" + 0.020*\"whimsical\" + 0.019*\"peter jackson\" + 0.019*\"erlend's dvds\"\n", - "2021-08-24 02:38:43,961 : INFO : topic #47 (0.020): 0.294*\"less than 300 ratings\" + 0.142*\"Drama\" + 0.059*\"nudity (rear)\" + 0.037*\"jackie chan\" + 0.024*\"kung fu\" + 0.022*\"football\" + 0.016*\"brian de palma\" + 0.015*\"denzel washington\" + 0.013*\"oppl\" + 0.012*\"Comedy\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:43,962 : INFO : topic #26 (0.020): 0.173*\"classic\" + 0.144*\"oscar (best picture)\" + 0.060*\"oscar (best supporting actor)\" + 0.057*\"oscar (best directing)\" + 0.031*\"matt damon\" + 0.023*\"afi 100 (cheers)\" + 0.023*\"afi 100\" + 0.022*\"oscar (best supporting actress)\" + 0.016*\"submarine\" + 0.016*\"national film registry\"\n", - "2021-08-24 02:38:43,963 : INFO : topic #5 (0.020): 0.223*\"Action\" + 0.196*\"Thriller\" + 0.171*\"Horror\" + 0.133*\"Sci-Fi\" + 0.066*\"Adventure\" + 0.042*\"betamax\" + 0.019*\"can't remember\" + 0.012*\"70mm\" + 0.010*\"courtroom\" + 0.009*\"vhs\"\n", - "2021-08-24 02:38:43,964 : INFO : topic #29 (0.020): 0.134*\"action\" + 0.055*\"Action\" + 0.052*\"adventure\" + 0.040*\"sequel\" + 0.030*\"Adventure\" + 0.028*\"robots\" + 0.027*\"arnold schwarzenegger\" + 0.026*\"pirates\" + 0.025*\"boring\" + 0.024*\"motorcycle\"\n", - "2021-08-24 02:38:43,965 : INFO : topic diff=0.056478, rho=0.247382\n", - "2021-08-24 02:38:43,967 : INFO : PROGRESS: pass 10, at document #10000/10681\n", - "2021-08-24 02:38:44,220 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:44,247 : INFO : topic #13 (0.020): 0.143*\"time travel\" + 0.079*\"twist ending\" + 0.049*\"holocaust\" + 0.039*\"bill murray\" + 0.029*\"post-apocalyptic\" + 0.021*\"post apocalyptic\" + 0.020*\"liam neeson\" + 0.020*\"michael moore\" + 0.018*\"mindfuck\" + 0.015*\"capitalism\"\n", - "2021-08-24 02:38:44,248 : INFO : topic #10 (0.020): 0.433*\"Comedy\" + 0.239*\"Romance\" + 0.196*\"Drama\" + 0.012*\"bibliothek\" + 0.009*\"betamax\" + 0.009*\"london\" + 0.005*\"owen wilson\" + 0.005*\"divorce\" + 0.004*\"world war i\" + 0.004*\"oppl\"\n", - "2021-08-24 02:38:44,249 : INFO : topic #41 (0.020): 0.239*\"based on a book\" + 0.111*\"adapted from:book\" + 0.076*\"netflix\" + 0.066*\"Drama\" + 0.055*\"nudity (full frontal)\" + 0.044*\"robin williams\" + 0.036*\"vampire\" + 0.034*\"vampires\" + 0.014*\"book\" + 0.010*\"drinking\"\n", - "2021-08-24 02:38:44,250 : INFO : topic #21 (0.020): 0.097*\"Drama\" + 0.055*\"criterion\" + 0.028*\"library\" + 0.026*\"sven's to see list\" + 0.025*\"tumey's dvds\" + 0.022*\"dvd-video\" + 0.022*\"reflective\" + 0.021*\"atmospheric\" + 0.021*\"deliberate\" + 0.021*\"stylized\"\n", - "2021-08-24 02:38:44,251 : INFO : topic #18 (0.020): 0.045*\"creepy\" + 0.041*\"surrealism\" + 0.041*\"franchise\" + 0.030*\"lurid\" + 0.028*\"robert downey jr\" + 0.028*\"united states\" + 0.026*\"slasher\" + 0.024*\"unique\" + 0.022*\"macabre\" + 0.021*\"adolescence\"\n", - "2021-08-24 02:38:44,252 : INFO : topic diff=0.040475, rho=0.247382\n", - "2021-08-24 02:38:44,404 : INFO : -20.984 per-word bound, 2073623.2 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:44,405 : INFO : PROGRESS: pass 10, at document #10681/10681\n", - "2021-08-24 02:38:44,502 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:44,527 : INFO : topic #5 (0.020): 0.243*\"Action\" + 0.210*\"Thriller\" + 0.174*\"Horror\" + 0.138*\"Sci-Fi\" + 0.068*\"Adventure\" + 0.025*\"betamax\" + 0.011*\"can't remember\" + 0.007*\"70mm\" + 0.007*\"courtroom\" + 0.006*\"dvd-video\"\n", - "2021-08-24 02:38:44,528 : INFO : topic #39 (0.020): 0.090*\"bruce willis\" + 0.050*\"interesting\" + 0.045*\"africa\" + 0.039*\"love\" + 0.033*\"apocalypse\" + 0.032*\"predictable\" + 0.025*\"big budget\" + 0.024*\"avi\" + 0.024*\"tragedy\" + 0.022*\"gerard depardieu\"\n", - "2021-08-24 02:38:44,529 : INFO : topic #37 (0.020): 0.082*\"easily confused with other movie(s) (title)\" + 0.043*\"j netflix\" + 0.033*\"food\" + 0.030*\"oscar (best supporting actress)\" + 0.027*\"19th century\" + 0.025*\"want to see again\" + 0.025*\"father daughter relationship\" + 0.024*\"slow\" + 0.024*\"vietnam war\" + 0.022*\"vietnam\"\n", - "2021-08-24 02:38:44,530 : INFO : topic #22 (0.020): 0.087*\"national film registry\" + 0.053*\"classic\" + 0.046*\"oscar (best cinematography)\" + 0.031*\"angelina jolie\" + 0.029*\"black and white\" + 0.025*\"journalism\" + 0.024*\"philip k. dick\" + 0.023*\"tumey's dvds\" + 0.023*\"imdb top 250\" + 0.021*\"cult film\"\n", - "2021-08-24 02:38:44,530 : INFO : topic #19 (0.020): 0.102*\"pg-13\" + 0.062*\"ghosts\" + 0.042*\"jude law\" + 0.040*\"wedding\" + 0.032*\"julia roberts\" + 0.031*\"infidelity\" + 0.024*\"want to own\" + 0.021*\"prostitution\" + 0.020*\"hollywood\" + 0.017*\"scope\"\n", - "2021-08-24 02:38:44,532 : INFO : topic diff=0.097064, rho=0.247382\n", - "2021-08-24 02:38:44,533 : INFO : PROGRESS: pass 11, at document #2000/10681\n", - "2021-08-24 02:38:44,819 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:44,845 : INFO : topic #16 (0.020): 0.184*\"sci-fi\" + 0.084*\"dystopia\" + 0.058*\"futuristmovies.com\" + 0.055*\"Sci-Fi\" + 0.034*\"military\" + 0.032*\"future\" + 0.014*\"sf\" + 0.014*\"saturn award (best science fiction film)\" + 0.012*\"imdb top 250\" + 0.011*\"1950s\"\n", - "2021-08-24 02:38:44,847 : INFO : topic #34 (0.020): 0.168*\"War\" + 0.120*\"Drama\" + 0.097*\"world war ii\" + 0.072*\"drugs\" + 0.053*\"war\" + 0.046*\"history\" + 0.046*\"prison\" + 0.027*\"Action\" + 0.018*\"Adventure\" + 0.016*\"wwii\"\n", - "2021-08-24 02:38:44,848 : INFO : topic #45 (0.020): 0.043*\"tense\" + 0.042*\"japan\" + 0.033*\"revenge\" + 0.032*\"clint eastwood\" + 0.030*\"atmospheric\" + 0.029*\"forceful\" + 0.028*\"gritty\" + 0.024*\"sweeping\" + 0.022*\"visceral\" + 0.022*\"Action\"\n", - "2021-08-24 02:38:44,849 : INFO : topic #23 (0.020): 0.086*\"mafia\" + 0.038*\"al pacino\" + 0.034*\"robert de niro\" + 0.026*\"marlon brando\" + 0.023*\"guns\" + 0.020*\"poverty\" + 0.019*\"scifi\" + 0.019*\"francis ford coppola\" + 0.016*\"tumey's dvds\" + 0.016*\"francis ford copolla\"\n", - "2021-08-24 02:38:44,850 : INFO : topic #2 (0.020): 0.109*\"satire\" + 0.097*\"Comedy\" + 0.095*\"lesbian\" + 0.052*\"imdb bottom 100\" + 0.026*\"sexy\" + 0.021*\"get\" + 0.021*\"olympics\" + 0.018*\"john turturro\" + 0.016*\"1\" + 0.016*\"queer\"\n", - "2021-08-24 02:38:44,852 : INFO : topic diff=0.198465, rho=0.240143\n", - "2021-08-24 02:38:44,854 : INFO : PROGRESS: pass 11, at document #4000/10681\n", - "2021-08-24 02:38:45,118 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:45,145 : INFO : topic #45 (0.020): 0.042*\"tense\" + 0.039*\"japan\" + 0.039*\"clint eastwood\" + 0.030*\"revenge\" + 0.030*\"atmospheric\" + 0.029*\"forceful\" + 0.027*\"gritty\" + 0.024*\"Action\" + 0.024*\"samurai\" + 0.024*\"sweeping\"\n", - "2021-08-24 02:38:45,146 : INFO : topic #47 (0.020): 0.234*\"less than 300 ratings\" + 0.128*\"Drama\" + 0.070*\"nudity (rear)\" + 0.037*\"jackie chan\" + 0.028*\"kung fu\" + 0.027*\"football\" + 0.018*\"oppl\" + 0.018*\"denzel washington\" + 0.016*\"bechdel test:pass\" + 0.016*\"aids\"\n", - "2021-08-24 02:38:45,146 : INFO : topic #26 (0.020): 0.185*\"classic\" + 0.173*\"oscar (best picture)\" + 0.069*\"oscar (best directing)\" + 0.053*\"oscar (best supporting actor)\" + 0.028*\"afi 100\" + 0.023*\"matt damon\" + 0.022*\"afi 100 (cheers)\" + 0.020*\"oscar (best supporting actress)\" + 0.018*\"best picture\" + 0.017*\"national film registry\"\n", - "2021-08-24 02:38:45,147 : INFO : topic #38 (0.020): 0.088*\"tom hanks\" + 0.086*\"true story\" + 0.059*\"based on a true story\" + 0.059*\"biography\" + 0.047*\"drama\" + 0.030*\"music\" + 0.029*\"historical\" + 0.029*\"Drama\" + 0.029*\"oscar (best actor)\" + 0.028*\"biopic\"\n", - "2021-08-24 02:38:45,147 : INFO : topic #19 (0.020): 0.091*\"ghosts\" + 0.059*\"pg-13\" + 0.040*\"julia roberts\" + 0.035*\"jude law\" + 0.031*\"wedding\" + 0.030*\"hollywood\" + 0.029*\"afternoon section\" + 0.028*\"infidelity\" + 0.026*\"want to own\" + 0.024*\"prostitution\"\n", - "2021-08-24 02:38:45,149 : INFO : topic diff=0.036162, rho=0.240143\n", - "2021-08-24 02:38:45,150 : INFO : PROGRESS: pass 11, at document #6000/10681\n", - "2021-08-24 02:38:45,383 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:45,410 : INFO : topic #37 (0.020): 0.056*\"easily confused with other movie(s) (title)\" + 0.043*\"vietnam war\" + 0.042*\"oscar (best supporting actress)\" + 0.039*\"want to see again\" + 0.038*\"vietnam\" + 0.032*\"food\" + 0.028*\"j netflix\" + 0.024*\"19th century\" + 0.020*\"peter sellers\" + 0.020*\"alcoholism\"\n", - "2021-08-24 02:38:45,411 : INFO : topic #18 (0.020): 0.055*\"franchise\" + 0.051*\"creepy\" + 0.042*\"slasher\" + 0.041*\"surrealism\" + 0.024*\"lurid\" + 0.024*\"robert downey jr\" + 0.022*\"united states\" + 0.021*\"unique\" + 0.020*\"no rec?\" + 0.020*\"goth\"\n", - "2021-08-24 02:38:45,412 : INFO : topic #47 (0.020): 0.229*\"less than 300 ratings\" + 0.130*\"Drama\" + 0.068*\"nudity (rear)\" + 0.042*\"jackie chan\" + 0.027*\"kung fu\" + 0.025*\"football\" + 0.019*\"brian de palma\" + 0.019*\"denzel washington\" + 0.016*\"oppl\" + 0.016*\"bechdel test:pass\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:45,413 : INFO : topic #5 (0.020): 0.223*\"Action\" + 0.197*\"Thriller\" + 0.174*\"Horror\" + 0.134*\"Sci-Fi\" + 0.064*\"Adventure\" + 0.042*\"betamax\" + 0.020*\"can't remember\" + 0.012*\"70mm\" + 0.009*\"courtroom\" + 0.008*\"dvd-video\"\n", - "2021-08-24 02:38:45,414 : INFO : topic #49 (0.020): 0.102*\"anime\" + 0.064*\"psychology\" + 0.055*\"serial killer\" + 0.053*\"teen\" + 0.047*\"high school\" + 0.019*\"mental illness\" + 0.018*\"japan\" + 0.016*\"anthony hopkins\" + 0.016*\"cannibalism\" + 0.013*\"jodie foster\"\n", - "2021-08-24 02:38:45,415 : INFO : topic diff=0.069876, rho=0.240143\n", - "2021-08-24 02:38:45,417 : INFO : PROGRESS: pass 11, at document #8000/10681\n", - "2021-08-24 02:38:45,655 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:45,683 : INFO : topic #49 (0.020): 0.118*\"anime\" + 0.061*\"psychology\" + 0.051*\"high school\" + 0.051*\"serial killer\" + 0.050*\"teen\" + 0.021*\"japan\" + 0.018*\"mental illness\" + 0.013*\"cannibalism\" + 0.013*\"steve martin\" + 0.013*\"anthony hopkins\"\n", - "2021-08-24 02:38:45,685 : INFO : topic #47 (0.020): 0.296*\"less than 300 ratings\" + 0.143*\"Drama\" + 0.059*\"nudity (rear)\" + 0.037*\"jackie chan\" + 0.024*\"kung fu\" + 0.022*\"football\" + 0.016*\"brian de palma\" + 0.015*\"denzel washington\" + 0.013*\"oppl\" + 0.012*\"bechdel test:pass\"\n", - "2021-08-24 02:38:45,686 : INFO : topic #18 (0.020): 0.053*\"creepy\" + 0.047*\"franchise\" + 0.046*\"surrealism\" + 0.035*\"slasher\" + 0.028*\"lurid\" + 0.024*\"adolescence\" + 0.023*\"robert downey jr\" + 0.021*\"goth\" + 0.021*\"unique\" + 0.020*\"united states\"\n", - "2021-08-24 02:38:45,686 : INFO : topic #5 (0.020): 0.225*\"Action\" + 0.197*\"Thriller\" + 0.171*\"Horror\" + 0.134*\"Sci-Fi\" + 0.066*\"Adventure\" + 0.040*\"betamax\" + 0.017*\"can't remember\" + 0.012*\"70mm\" + 0.010*\"courtroom\" + 0.009*\"vhs\"\n", - "2021-08-24 02:38:45,687 : INFO : topic #3 (0.020): 0.257*\"nudity (topless)\" + 0.097*\"zombies\" + 0.038*\"nudity (topless - brief)\" + 0.032*\"virtual reality\" + 0.028*\"zombie\" + 0.028*\"ingmar bergman\" + 0.019*\"keira knightley\" + 0.016*\"robert altman\" + 0.013*\"futuristic\" + 0.011*\"gruesome\"\n", - "2021-08-24 02:38:45,688 : INFO : topic diff=0.054763, rho=0.240143\n", - "2021-08-24 02:38:45,690 : INFO : PROGRESS: pass 11, at document #10000/10681\n", - "2021-08-24 02:38:45,957 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:45,984 : INFO : topic #36 (0.020): 0.093*\"dark comedy\" + 0.073*\"black comedy\" + 0.067*\"bechdel test:fail\" + 0.036*\"nazis\" + 0.036*\"funniest movies\" + 0.029*\"cold war\" + 0.024*\"existentialism\" + 0.020*\"communism\" + 0.016*\"spies\" + 0.015*\"author:charles dickens\"\n", - "2021-08-24 02:38:45,985 : INFO : topic #31 (0.020): 0.093*\"james bond\" + 0.092*\"murder\" + 0.056*\"007\" + 0.049*\"bond\" + 0.035*\"assassin\" + 0.031*\"claymation\" + 0.022*\"Thriller\" + 0.021*\"aardman\" + 0.020*\"Action\" + 0.019*\"franchise\"\n", - "2021-08-24 02:38:45,986 : INFO : topic #26 (0.020): 0.166*\"classic\" + 0.132*\"oscar (best picture)\" + 0.055*\"oscar (best directing)\" + 0.054*\"oscar (best supporting actor)\" + 0.038*\"matt damon\" + 0.022*\"afi 100 (cheers)\" + 0.020*\"afi 100\" + 0.020*\"oscar (best supporting actress)\" + 0.015*\"national film registry\" + 0.015*\"submarine\"\n", - "2021-08-24 02:38:45,986 : INFO : topic #30 (0.020): 0.633*\"Drama\" + 0.042*\"Film-Noir\" + 0.014*\"tumey's dvds\" + 0.010*\"small town\" + 0.010*\"witch\" + 0.008*\"glbt\" + 0.008*\"film noir\" + 0.008*\"erlend's dvds\" + 0.008*\"boring\" + 0.007*\"oscar (best foreign language film)\"\n", - "2021-08-24 02:38:45,987 : INFO : topic #16 (0.020): 0.153*\"sci-fi\" + 0.087*\"dystopia\" + 0.059*\"Sci-Fi\" + 0.057*\"futuristmovies.com\" + 0.032*\"future\" + 0.032*\"military\" + 0.018*\"joaquin phoenix\" + 0.016*\"weird\" + 0.012*\"gfei own it\" + 0.011*\"court\"\n", - "2021-08-24 02:38:45,988 : INFO : topic diff=0.039063, rho=0.240143\n", - "2021-08-24 02:38:46,139 : INFO : -20.983 per-word bound, 2073255.3 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:46,139 : INFO : PROGRESS: pass 11, at document #10681/10681\n", - "2021-08-24 02:38:46,242 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:46,268 : INFO : topic #18 (0.020): 0.042*\"creepy\" + 0.036*\"united states\" + 0.035*\"surrealism\" + 0.034*\"franchise\" + 0.033*\"unique\" + 0.028*\"robert downey jr\" + 0.025*\"lurid\" + 0.022*\"slasher\" + 0.018*\"macabre\" + 0.018*\"hitman\"\n", - "2021-08-24 02:38:46,269 : INFO : topic #8 (0.020): 0.087*\"space\" + 0.048*\"christianity\" + 0.030*\"marx brothers\" + 0.028*\"harrison ford\" + 0.027*\"archaeology\" + 0.020*\"kevin smith\" + 0.020*\"1970s\" + 0.018*\"western\" + 0.017*\"werewolves\" + 0.017*\"spaghetti western\"\n", - "2021-08-24 02:38:46,270 : INFO : topic #45 (0.020): 0.054*\"japan\" + 0.042*\"tense\" + 0.042*\"revenge\" + 0.032*\"clint eastwood\" + 0.029*\"forceful\" + 0.029*\"gritty\" + 0.028*\"corvallis library\" + 0.025*\"atmospheric\" + 0.023*\"Action\" + 0.023*\"akira kurosawa\"\n", - "2021-08-24 02:38:46,271 : INFO : topic #9 (0.020): 0.260*\"r\" + 0.134*\"clearplay\" + 0.084*\"Western\" + 0.076*\"nudity (topless - brief)\" + 0.066*\"Drama\" + 0.041*\"pg13\" + 0.028*\"to see\" + 0.025*\"Thriller\" + 0.020*\"movie to see\" + 0.016*\"russell crowe\"\n", - "2021-08-24 02:38:46,272 : INFO : topic #41 (0.020): 0.263*\"based on a book\" + 0.106*\"adapted from:book\" + 0.088*\"netflix\" + 0.074*\"Drama\" + 0.068*\"nudity (full frontal)\" + 0.035*\"vampire\" + 0.033*\"robin williams\" + 0.026*\"vampires\" + 0.011*\"book\" + 0.009*\"drinking\"\n", - "2021-08-24 02:38:46,273 : INFO : topic diff=0.093864, rho=0.240143\n", - "2021-08-24 02:38:46,275 : INFO : PROGRESS: pass 12, at document #2000/10681\n", - "2021-08-24 02:38:46,547 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:46,574 : INFO : topic #23 (0.020): 0.085*\"mafia\" + 0.038*\"al pacino\" + 0.034*\"robert de niro\" + 0.026*\"marlon brando\" + 0.023*\"guns\" + 0.020*\"poverty\" + 0.019*\"scifi\" + 0.019*\"francis ford coppola\" + 0.016*\"tumey's dvds\" + 0.016*\"francis ford copolla\"\n", - "2021-08-24 02:38:46,575 : INFO : topic #35 (0.020): 0.164*\"comedy\" + 0.127*\"Comedy\" + 0.079*\"funny\" + 0.047*\"parody\" + 0.040*\"hilarious\" + 0.025*\"can't remember\" + 0.024*\"stupid\" + 0.020*\"afi 100 (laughs)\" + 0.020*\"spoof\" + 0.019*\"ummarti2006\"\n", - "2021-08-24 02:38:46,576 : INFO : topic #13 (0.020): 0.160*\"time travel\" + 0.068*\"twist ending\" + 0.058*\"holocaust\" + 0.031*\"bill murray\" + 0.026*\"post-apocalyptic\" + 0.025*\"good dialogue\" + 0.024*\"post apocalyptic\" + 0.018*\"suspense\" + 0.016*\"liam neeson\" + 0.015*\"mindfuck\"\n", - "2021-08-24 02:38:46,577 : INFO : topic #24 (0.020): 0.059*\"tom cruise\" + 0.035*\"golden palm\" + 0.035*\"france\" + 0.034*\"dustin hoffman\" + 0.029*\"french\" + 0.027*\"on dvr\" + 0.026*\"watch\" + 0.025*\"disability\" + 0.023*\"nicole kidman\" + 0.021*\"sweet\"\n", - "2021-08-24 02:38:46,578 : INFO : topic #32 (0.020): 0.094*\"based on a tv show\" + 0.085*\"jim carrey\" + 0.061*\"keanu reeves\" + 0.049*\"video game adaptation\" + 0.042*\"star trek\" + 0.040*\"england\" + 0.039*\"tv\" + 0.033*\"memory\" + 0.032*\"road trip\" + 0.023*\"not funny\"\n", - "2021-08-24 02:38:46,579 : INFO : topic diff=0.191544, rho=0.233504\n", - "2021-08-24 02:38:46,581 : INFO : PROGRESS: pass 12, at document #4000/10681\n", - "2021-08-24 02:38:46,836 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:46,864 : INFO : topic #23 (0.020): 0.076*\"mafia\" + 0.044*\"al pacino\" + 0.037*\"robert de niro\" + 0.022*\"marlon brando\" + 0.022*\"guns\" + 0.020*\"poverty\" + 0.018*\"tumey's dvds\" + 0.017*\"francis ford coppola\" + 0.017*\"eddie murphy\" + 0.016*\"nudity (full frontal - brief)\"\n", - "2021-08-24 02:38:46,865 : INFO : topic #10 (0.020): 0.431*\"Comedy\" + 0.236*\"Romance\" + 0.197*\"Drama\" + 0.013*\"bibliothek\" + 0.010*\"betamax\" + 0.006*\"divorce\" + 0.006*\"oppl\" + 0.004*\"owen wilson\" + 0.004*\"london\" + 0.003*\"library vhs\"\n", - "2021-08-24 02:38:46,866 : INFO : topic #29 (0.020): 0.141*\"action\" + 0.055*\"Action\" + 0.051*\"adventure\" + 0.035*\"sequel\" + 0.032*\"Adventure\" + 0.030*\"robots\" + 0.030*\"arnold schwarzenegger\" + 0.023*\"boring\" + 0.022*\"death\" + 0.020*\"motorcycle\"\n", - "2021-08-24 02:38:46,868 : INFO : topic #40 (0.020): 0.120*\"nudity (full frontal - notable)\" + 0.076*\"magic\" + 0.072*\"edward norton\" + 0.062*\"sports\" + 0.050*\"not corv lib\" + 0.047*\"baseball\" + 0.036*\"hw drama\" + 0.031*\"inspirational\" + 0.025*\"christopher walken\" + 0.023*\"compassionate\"\n", - "2021-08-24 02:38:46,869 : INFO : topic #44 (0.020): 0.117*\"Children\" + 0.109*\"Adventure\" + 0.098*\"Fantasy\" + 0.079*\"disney\" + 0.063*\"Animation\" + 0.060*\"Comedy\" + 0.039*\"animation\" + 0.035*\"fantasy\" + 0.020*\"children\" + 0.016*\"disney animated feature\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:46,870 : INFO : topic diff=0.034787, rho=0.233504\n", - "2021-08-24 02:38:46,872 : INFO : PROGRESS: pass 12, at document #6000/10681\n", - "2021-08-24 02:38:47,103 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:47,131 : INFO : topic #19 (0.020): 0.090*\"ghosts\" + 0.058*\"pg-13\" + 0.039*\"julia roberts\" + 0.038*\"jude law\" + 0.036*\"wedding\" + 0.029*\"hollywood\" + 0.028*\"afternoon section\" + 0.027*\"want to own\" + 0.025*\"infidelity\" + 0.021*\"prostitution\"\n", - "2021-08-24 02:38:47,132 : INFO : topic #35 (0.020): 0.171*\"comedy\" + 0.131*\"Comedy\" + 0.080*\"funny\" + 0.052*\"parody\" + 0.038*\"hilarious\" + 0.029*\"can't remember\" + 0.023*\"stupid\" + 0.022*\"afi 100 (laughs)\" + 0.022*\"spoof\" + 0.020*\"funny as hell\"\n", - "2021-08-24 02:38:47,132 : INFO : topic #47 (0.020): 0.232*\"less than 300 ratings\" + 0.131*\"Drama\" + 0.069*\"nudity (rear)\" + 0.042*\"jackie chan\" + 0.028*\"kung fu\" + 0.025*\"football\" + 0.019*\"brian de palma\" + 0.019*\"denzel washington\" + 0.017*\"oppl\" + 0.016*\"bechdel test:pass\"\n", - "2021-08-24 02:38:47,133 : INFO : topic #20 (0.020): 0.126*\"politics\" + 0.073*\"documentary\" + 0.071*\"jack nicholson\" + 0.038*\"terrorism\" + 0.036*\"seen 2008\" + 0.032*\"propaganda\" + 0.031*\"love story\" + 0.030*\"Documentary\" + 0.030*\"aviation\" + 0.027*\"political\"\n", - "2021-08-24 02:38:47,134 : INFO : topic #46 (0.020): 0.059*\"dvd\" + 0.058*\"overrated\" + 0.049*\"seen more than once\" + 0.036*\"owned\" + 0.034*\"samuel l. jackson\" + 0.030*\"imdb top 250\" + 0.026*\"bibliothek\" + 0.025*\"kevin spacey\" + 0.024*\"ridley scott\" + 0.023*\"seen at the cinema\"\n", - "2021-08-24 02:38:47,135 : INFO : topic diff=0.067310, rho=0.233504\n", - "2021-08-24 02:38:47,136 : INFO : PROGRESS: pass 12, at document #8000/10681\n", - "2021-08-24 02:38:47,374 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:47,402 : INFO : topic #17 (0.020): 0.063*\"police\" + 0.055*\"will smith\" + 0.032*\"computers\" + 0.028*\"corruption\" + 0.019*\"milla jovovich\" + 0.019*\"no dialogue\" + 0.017*\"stage\" + 0.017*\"torture\" + 0.016*\"small-town life\" + 0.016*\"action packed\"\n", - "2021-08-24 02:38:47,402 : INFO : topic #25 (0.020): 0.206*\"Musical\" + 0.116*\"70mm\" + 0.067*\"religion\" + 0.060*\"musical\" + 0.027*\"rock and roll\" + 0.024*\"monty python\" + 0.023*\"friendship\" + 0.021*\"music\" + 0.020*\"Drama\" + 0.017*\"trains\"\n", - "2021-08-24 02:38:47,403 : INFO : topic #41 (0.020): 0.248*\"based on a book\" + 0.126*\"adapted from:book\" + 0.067*\"Drama\" + 0.049*\"robin williams\" + 0.046*\"nudity (full frontal)\" + 0.039*\"netflix\" + 0.039*\"vampire\" + 0.038*\"vampires\" + 0.017*\"book\" + 0.011*\"drama\"\n", - "2021-08-24 02:38:47,404 : INFO : topic #43 (0.020): 0.307*\"Crime\" + 0.158*\"Drama\" + 0.110*\"Thriller\" + 0.047*\"nudity (topless - notable)\" + 0.045*\"Mystery\" + 0.022*\"shakespeare\" + 0.021*\"nicolas cage\" + 0.017*\"remade\" + 0.015*\"sean penn\" + 0.015*\"adapted from:play\"\n", - "2021-08-24 02:38:47,405 : INFO : topic #15 (0.020): 0.053*\"racism\" + 0.052*\"stephen king\" + 0.052*\"coen brothers\" + 0.038*\"adultery\" + 0.034*\"espionage\" + 0.025*\"los angeles\" + 0.022*\"notable nudity\" + 0.021*\"ensemble cast\" + 0.021*\"great acting\" + 0.020*\"multiple storylines\"\n", - "2021-08-24 02:38:47,407 : INFO : topic diff=0.053090, rho=0.233504\n", - "2021-08-24 02:38:47,408 : INFO : PROGRESS: pass 12, at document #10000/10681\n", - "2021-08-24 02:38:47,661 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:47,689 : INFO : topic #47 (0.020): 0.336*\"less than 300 ratings\" + 0.151*\"Drama\" + 0.063*\"nudity (rear)\" + 0.028*\"jackie chan\" + 0.019*\"football\" + 0.019*\"kung fu\" + 0.015*\"denzel washington\" + 0.013*\"oppl\" + 0.013*\"brian de palma\" + 0.009*\"bechdel test:pass\"\n", - "2021-08-24 02:38:47,690 : INFO : topic #38 (0.020): 0.085*\"true story\" + 0.066*\"tom hanks\" + 0.061*\"biography\" + 0.052*\"based on a true story\" + 0.042*\"drama\" + 0.036*\"biopic\" + 0.032*\"Drama\" + 0.029*\"pg\" + 0.028*\"historical\" + 0.028*\"paris\"\n", - "2021-08-24 02:38:47,691 : INFO : topic #22 (0.020): 0.084*\"national film registry\" + 0.054*\"classic\" + 0.051*\"oscar (best cinematography)\" + 0.026*\"philip k. dick\" + 0.026*\"imdb top 250\" + 0.026*\"tumey's dvds\" + 0.025*\"black and white\" + 0.023*\"journalism\" + 0.022*\"afi 100\" + 0.022*\"afi 100 (thrills)\"\n", - "2021-08-24 02:38:47,691 : INFO : topic #19 (0.020): 0.102*\"pg-13\" + 0.065*\"ghosts\" + 0.045*\"jude law\" + 0.034*\"wedding\" + 0.030*\"julia roberts\" + 0.028*\"want to own\" + 0.028*\"infidelity\" + 0.023*\"hollywood\" + 0.021*\"prostitution\" + 0.018*\"sam peckinpah\"\n", - "2021-08-24 02:38:47,692 : INFO : topic #36 (0.020): 0.094*\"dark comedy\" + 0.073*\"black comedy\" + 0.067*\"bechdel test:fail\" + 0.036*\"nazis\" + 0.036*\"funniest movies\" + 0.029*\"cold war\" + 0.023*\"existentialism\" + 0.020*\"communism\" + 0.016*\"spies\" + 0.015*\"author:charles dickens\"\n", - "2021-08-24 02:38:47,693 : INFO : topic diff=0.037873, rho=0.233504\n", - "2021-08-24 02:38:47,840 : INFO : -20.982 per-word bound, 2070829.4 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:47,841 : INFO : PROGRESS: pass 12, at document #10681/10681\n", - "2021-08-24 02:38:47,946 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:47,972 : INFO : topic #30 (0.020): 0.660*\"Drama\" + 0.043*\"Film-Noir\" + 0.011*\"tumey's dvds\" + 0.008*\"small town\" + 0.008*\"witch\" + 0.007*\"erlend's dvds\" + 0.007*\"glbt\" + 0.006*\"film noir\" + 0.006*\"animal:dog\" + 0.006*\"flying\"\n", - "2021-08-24 02:38:47,973 : INFO : topic #4 (0.020): 0.104*\"romance\" + 0.060*\"new york city\" + 0.050*\"Romance\" + 0.042*\"chick flick\" + 0.040*\"watched 2006\" + 0.028*\"new york\" + 0.025*\"cars\" + 0.024*\"1980s\" + 0.023*\"sean connery\" + 0.021*\"girlie movie\"\n", - "2021-08-24 02:38:47,973 : INFO : topic #6 (0.020): 0.093*\"martial arts\" + 0.032*\"campy\" + 0.032*\"gothic\" + 0.031*\"seen 2006\" + 0.027*\"australia\" + 0.024*\"silly\" + 0.024*\"australian\" + 0.020*\"cult film\" + 0.019*\"freedom\" + 0.018*\"cult classic\"\n", - "2021-08-24 02:38:47,974 : INFO : topic #19 (0.020): 0.101*\"pg-13\" + 0.063*\"ghosts\" + 0.042*\"jude law\" + 0.040*\"wedding\" + 0.032*\"julia roberts\" + 0.030*\"infidelity\" + 0.024*\"want to own\" + 0.021*\"prostitution\" + 0.020*\"hollywood\" + 0.016*\"scope\"\n", - "2021-08-24 02:38:47,975 : INFO : topic #24 (0.020): 0.046*\"tom cruise\" + 0.038*\"france\" + 0.032*\"disability\" + 0.032*\"golden palm\" + 0.031*\"nicole kidman\" + 0.029*\"on dvr\" + 0.027*\"french\" + 0.026*\"dustin hoffman\" + 0.021*\"mask\" + 0.018*\"bank robbery\"\n", - "2021-08-24 02:38:47,976 : INFO : topic diff=0.091244, rho=0.233504\n", - "2021-08-24 02:38:47,977 : INFO : PROGRESS: pass 13, at document #2000/10681\n", - "2021-08-24 02:38:48,241 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:48,271 : INFO : topic #19 (0.020): 0.069*\"pg-13\" + 0.065*\"ghosts\" + 0.039*\"wedding\" + 0.038*\"julia roberts\" + 0.035*\"jude law\" + 0.033*\"hollywood\" + 0.029*\"want to own\" + 0.024*\"afternoon section\" + 0.024*\"infidelity\" + 0.022*\"prostitution\"\n", - "2021-08-24 02:38:48,272 : INFO : topic #27 (0.020): 0.154*\"aliens\" + 0.093*\"steven spielberg\" + 0.053*\"family\" + 0.036*\"michael crichton\" + 0.025*\"childhood\" + 0.024*\"to-rent\" + 0.024*\"gambling\" + 0.022*\"alien\" + 0.019*\"didn't finish\" + 0.017*\"mother-son relationship\"\n", - "2021-08-24 02:38:48,273 : INFO : topic #25 (0.020): 0.192*\"Musical\" + 0.083*\"musical\" + 0.079*\"70mm\" + 0.065*\"religion\" + 0.030*\"friendship\" + 0.024*\"music\" + 0.024*\"rock and roll\" + 0.022*\"monty python\" + 0.018*\"Drama\" + 0.016*\"trains\"\n", - "2021-08-24 02:38:48,274 : INFO : topic #17 (0.020): 0.068*\"will smith\" + 0.055*\"police\" + 0.037*\"corruption\" + 0.029*\"computers\" + 0.022*\"torture\" + 0.021*\"sandra bullock\" + 0.021*\"milla jovovich\" + 0.020*\"action packed\" + 0.017*\"luc besson\" + 0.015*\"no dialogue\"\n", - "2021-08-24 02:38:48,274 : INFO : topic #21 (0.020): 0.091*\"Drama\" + 0.047*\"criterion\" + 0.028*\"library\" + 0.023*\"tumey's dvds\" + 0.021*\"irreverent\" + 0.021*\"sven's to see list\" + 0.021*\"atmospheric\" + 0.020*\"deliberate\" + 0.020*\"reflective\" + 0.020*\"satirical\"\n", - "2021-08-24 02:38:48,276 : INFO : topic diff=0.185286, rho=0.227387\n", - "2021-08-24 02:38:48,277 : INFO : PROGRESS: pass 13, at document #4000/10681\n", - "2021-08-24 02:38:48,533 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:48,561 : INFO : topic #27 (0.020): 0.156*\"aliens\" + 0.082*\"steven spielberg\" + 0.058*\"family\" + 0.037*\"michael crichton\" + 0.025*\"gambling\" + 0.024*\"alien\" + 0.023*\"childhood\" + 0.022*\"poker\" + 0.022*\"to-rent\" + 0.021*\"didn't finish\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:48,562 : INFO : topic #16 (0.020): 0.178*\"sci-fi\" + 0.088*\"dystopia\" + 0.069*\"futuristmovies.com\" + 0.060*\"Sci-Fi\" + 0.032*\"military\" + 0.026*\"future\" + 0.013*\"saturn award (best science fiction film)\" + 0.013*\"court\" + 0.013*\"joaquin phoenix\" + 0.012*\"sf\"\n", - "2021-08-24 02:38:48,563 : INFO : topic #45 (0.020): 0.043*\"tense\" + 0.040*\"japan\" + 0.039*\"clint eastwood\" + 0.030*\"revenge\" + 0.029*\"atmospheric\" + 0.029*\"forceful\" + 0.028*\"gritty\" + 0.024*\"Action\" + 0.024*\"sweeping\" + 0.024*\"samurai\"\n", - "2021-08-24 02:38:48,564 : INFO : topic #40 (0.020): 0.120*\"nudity (full frontal - notable)\" + 0.077*\"magic\" + 0.072*\"edward norton\" + 0.062*\"sports\" + 0.050*\"not corv lib\" + 0.047*\"baseball\" + 0.036*\"hw drama\" + 0.031*\"inspirational\" + 0.025*\"christopher walken\" + 0.024*\"compassionate\"\n", - "2021-08-24 02:38:48,564 : INFO : topic #21 (0.020): 0.089*\"Drama\" + 0.049*\"criterion\" + 0.027*\"library\" + 0.025*\"tumey's dvds\" + 0.023*\"reflective\" + 0.022*\"atmospheric\" + 0.022*\"dvd-video\" + 0.021*\"satirical\" + 0.021*\"sven's to see list\" + 0.021*\"deliberate\"\n", - "2021-08-24 02:38:48,566 : INFO : topic diff=0.033530, rho=0.227387\n", - "2021-08-24 02:38:48,567 : INFO : PROGRESS: pass 13, at document #6000/10681\n", - "2021-08-24 02:38:48,797 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:48,824 : INFO : topic #25 (0.020): 0.196*\"Musical\" + 0.109*\"70mm\" + 0.073*\"musical\" + 0.064*\"religion\" + 0.027*\"rock and roll\" + 0.025*\"friendship\" + 0.024*\"music\" + 0.018*\"adapted from b'way\" + 0.018*\"monty python\" + 0.016*\"Drama\"\n", - "2021-08-24 02:38:48,825 : INFO : topic #28 (0.020): 0.120*\"pixar\" + 0.091*\"oscar (best actress)\" + 0.035*\"mockumentary\" + 0.027*\"dinosaurs\" + 0.025*\"medieval\" + 0.023*\"nostalgia\" + 0.021*\"computer animation\" + 0.020*\"elijah wood\" + 0.019*\"high fantasy\" + 0.017*\"cgi\"\n", - "2021-08-24 02:38:48,826 : INFO : topic #3 (0.020): 0.298*\"nudity (topless)\" + 0.080*\"zombies\" + 0.052*\"nudity (topless - brief)\" + 0.026*\"virtual reality\" + 0.023*\"zombie\" + 0.016*\"keira knightley\" + 0.015*\"robert altman\" + 0.014*\"ingmar bergman\" + 0.013*\"futuristic\" + 0.011*\"gruesome\"\n", - "2021-08-24 02:38:48,827 : INFO : topic #40 (0.020): 0.118*\"nudity (full frontal - notable)\" + 0.093*\"magic\" + 0.072*\"edward norton\" + 0.056*\"sports\" + 0.050*\"baseball\" + 0.049*\"not corv lib\" + 0.041*\"hw drama\" + 0.029*\"compassionate\" + 0.025*\"christopher walken\" + 0.024*\"inspirational\"\n", - "2021-08-24 02:38:48,828 : INFO : topic #42 (0.020): 0.149*\"johnny depp\" + 0.079*\"tim burton\" + 0.055*\"martin scorsese\" + 0.039*\"narrated\" + 0.037*\"george clooney\" + 0.029*\"ei muista\" + 0.025*\"monster\" + 0.018*\"brothers\" + 0.018*\"alien invasion\" + 0.014*\"disaster\"\n", - "2021-08-24 02:38:48,829 : INFO : topic diff=0.065113, rho=0.227387\n", - "2021-08-24 02:38:48,830 : INFO : PROGRESS: pass 13, at document #8000/10681\n", - "2021-08-24 02:38:49,079 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:49,106 : INFO : topic #19 (0.020): 0.076*\"ghosts\" + 0.060*\"pg-13\" + 0.036*\"jude law\" + 0.035*\"wedding\" + 0.035*\"julia roberts\" + 0.027*\"want to own\" + 0.026*\"hollywood\" + 0.025*\"sam peckinpah\" + 0.024*\"infidelity\" + 0.023*\"afternoon section\"\n", - "2021-08-24 02:38:49,107 : INFO : topic #23 (0.020): 0.061*\"mafia\" + 0.039*\"al pacino\" + 0.028*\"robert de niro\" + 0.023*\"guns\" + 0.023*\"poverty\" + 0.023*\"eddie murphy\" + 0.020*\"mst3k\" + 0.019*\"tumey's dvds\" + 0.018*\"marlon brando\" + 0.017*\"nudity (full frontal - brief)\"\n", - "2021-08-24 02:38:49,108 : INFO : topic #10 (0.020): 0.448*\"Comedy\" + 0.234*\"Romance\" + 0.193*\"Drama\" + 0.014*\"bibliothek\" + 0.013*\"betamax\" + 0.004*\"oppl\" + 0.004*\"owen wilson\" + 0.004*\"divorce\" + 0.004*\"library vhs\" + 0.003*\"world war i\"\n", - "2021-08-24 02:38:49,109 : INFO : topic #41 (0.020): 0.248*\"based on a book\" + 0.125*\"adapted from:book\" + 0.067*\"Drama\" + 0.049*\"robin williams\" + 0.046*\"nudity (full frontal)\" + 0.040*\"netflix\" + 0.039*\"vampire\" + 0.037*\"vampires\" + 0.017*\"book\" + 0.011*\"drama\"\n", - "2021-08-24 02:38:49,109 : INFO : topic #36 (0.020): 0.100*\"dark comedy\" + 0.074*\"black comedy\" + 0.072*\"bechdel test:fail\" + 0.037*\"funniest movies\" + 0.035*\"nazis\" + 0.033*\"cold war\" + 0.014*\"russia\" + 0.014*\"communism\" + 0.014*\"author:charles dickens\" + 0.012*\"cav\"\n", - "2021-08-24 02:38:49,111 : INFO : topic diff=0.051747, rho=0.227387\n", - "2021-08-24 02:38:49,112 : INFO : PROGRESS: pass 13, at document #10000/10681\n", - "2021-08-24 02:38:49,362 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:49,390 : INFO : topic #0 (0.020): 0.090*\"crime\" + 0.061*\"violence\" + 0.056*\"brad pitt\" + 0.042*\"violent\" + 0.041*\"Crime\" + 0.037*\"morgan freeman\" + 0.029*\"Thriller\" + 0.024*\"thriller\" + 0.023*\"philip seymour hoffman\" + 0.023*\"organized crime\"\n", - "2021-08-24 02:38:49,391 : INFO : topic #25 (0.020): 0.218*\"Musical\" + 0.104*\"70mm\" + 0.067*\"musical\" + 0.064*\"religion\" + 0.028*\"rock and roll\" + 0.024*\"friendship\" + 0.019*\"music\" + 0.019*\"monty python\" + 0.018*\"trains\" + 0.016*\"adapted from b'way\"\n", - "2021-08-24 02:38:49,392 : INFO : topic #27 (0.020): 0.118*\"aliens\" + 0.071*\"steven spielberg\" + 0.064*\"family\" + 0.040*\"to-rent\" + 0.034*\"gambling\" + 0.031*\"michael crichton\" + 0.023*\"alien\" + 0.022*\"poker\" + 0.020*\"childhood\" + 0.019*\"didn't finish\"\n", - "2021-08-24 02:38:49,393 : INFO : topic #20 (0.020): 0.142*\"politics\" + 0.099*\"documentary\" + 0.054*\"jack nicholson\" + 0.054*\"terrorism\" + 0.039*\"propaganda\" + 0.039*\"political\" + 0.038*\"love story\" + 0.035*\"Documentary\" + 0.035*\"seen 2008\" + 0.027*\"aviation\"\n", - "2021-08-24 02:38:49,393 : INFO : topic #5 (0.020): 0.234*\"Action\" + 0.202*\"Thriller\" + 0.173*\"Horror\" + 0.131*\"Sci-Fi\" + 0.067*\"Adventure\" + 0.032*\"betamax\" + 0.013*\"can't remember\" + 0.009*\"70mm\" + 0.009*\"courtroom\" + 0.007*\"vhs\"\n", - "2021-08-24 02:38:49,395 : INFO : topic diff=0.036834, rho=0.227387\n", - "2021-08-24 02:38:49,540 : INFO : -20.982 per-word bound, 2070509.5 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:49,541 : INFO : PROGRESS: pass 13, at document #10681/10681\n", - "2021-08-24 02:38:49,637 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:49,664 : INFO : topic #36 (0.020): 0.111*\"bechdel test:fail\" + 0.103*\"dark comedy\" + 0.068*\"black comedy\" + 0.043*\"nazis\" + 0.041*\"cold war\" + 0.028*\"funniest movies\" + 0.018*\"existentialism\" + 0.015*\"communism\" + 0.015*\"author:charles dickens\" + 0.014*\"russia\"\n", - "2021-08-24 02:38:49,664 : INFO : topic #37 (0.020): 0.082*\"easily confused with other movie(s) (title)\" + 0.043*\"j netflix\" + 0.034*\"food\" + 0.031*\"oscar (best supporting actress)\" + 0.027*\"19th century\" + 0.027*\"want to see again\" + 0.025*\"vietnam war\" + 0.025*\"father daughter relationship\" + 0.024*\"slow\" + 0.023*\"vietnam\"\n", - "2021-08-24 02:38:49,665 : INFO : topic #4 (0.020): 0.104*\"romance\" + 0.059*\"new york city\" + 0.050*\"Romance\" + 0.042*\"chick flick\" + 0.039*\"watched 2006\" + 0.030*\"cars\" + 0.028*\"new york\" + 0.024*\"1980s\" + 0.023*\"sean connery\" + 0.021*\"girlie movie\"\n", - "2021-08-24 02:38:49,666 : INFO : topic #34 (0.020): 0.191*\"War\" + 0.137*\"Drama\" + 0.083*\"world war ii\" + 0.069*\"drugs\" + 0.048*\"history\" + 0.042*\"war\" + 0.033*\"Action\" + 0.027*\"prison\" + 0.025*\"london\" + 0.021*\"Adventure\"\n", - "2021-08-24 02:38:49,666 : INFO : topic #12 (0.020): 0.102*\"christmas\" + 0.081*\"quentin tarantino\" + 0.073*\"heist\" + 0.048*\"rape\" + 0.046*\"tarantino\" + 0.045*\"nonlinear\" + 0.035*\"blindfold\" + 0.020*\"robbery\" + 0.019*\"xmas theme\" + 0.018*\"ireland\"\n", - "2021-08-24 02:38:49,668 : INFO : topic diff=0.088608, rho=0.227387\n", - "2021-08-24 02:38:49,669 : INFO : PROGRESS: pass 14, at document #2000/10681\n", - "2021-08-24 02:38:49,929 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:49,955 : INFO : topic #21 (0.020): 0.091*\"Drama\" + 0.047*\"criterion\" + 0.027*\"library\" + 0.024*\"tumey's dvds\" + 0.021*\"irreverent\" + 0.021*\"sven's to see list\" + 0.021*\"atmospheric\" + 0.020*\"dvd-video\" + 0.020*\"reflective\" + 0.020*\"deliberate\"\n", - "2021-08-24 02:38:49,956 : INFO : topic #5 (0.020): 0.244*\"Action\" + 0.209*\"Thriller\" + 0.167*\"Horror\" + 0.128*\"Sci-Fi\" + 0.065*\"Adventure\" + 0.024*\"betamax\" + 0.017*\"can't remember\" + 0.008*\"70mm\" + 0.007*\"courtroom\" + 0.006*\"dvd-video\"\n", - "2021-08-24 02:38:49,957 : INFO : topic #3 (0.020): 0.314*\"nudity (topless)\" + 0.090*\"zombies\" + 0.062*\"nudity (topless - brief)\" + 0.024*\"keira knightley\" + 0.017*\"zombie\" + 0.016*\"virtual reality\" + 0.016*\"ingmar bergman\" + 0.013*\"futuristic\" + 0.012*\"strippers\" + 0.011*\"horror\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:49,958 : INFO : topic #44 (0.020): 0.118*\"Children\" + 0.110*\"Adventure\" + 0.103*\"Fantasy\" + 0.082*\"disney\" + 0.061*\"Animation\" + 0.059*\"Comedy\" + 0.041*\"animation\" + 0.038*\"fantasy\" + 0.021*\"children\" + 0.016*\"fairy tale\"\n", - "2021-08-24 02:38:49,959 : INFO : topic #47 (0.020): 0.270*\"less than 300 ratings\" + 0.141*\"Drama\" + 0.065*\"nudity (rear)\" + 0.029*\"jackie chan\" + 0.027*\"kung fu\" + 0.026*\"oppl\" + 0.020*\"denzel washington\" + 0.018*\"football\" + 0.018*\"aids\" + 0.014*\"bechdel test:pass\"\n", - "2021-08-24 02:38:49,960 : INFO : topic diff=0.179919, rho=0.221727\n", - "2021-08-24 02:38:49,962 : INFO : PROGRESS: pass 14, at document #4000/10681\n", - "2021-08-24 02:38:50,225 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:50,253 : INFO : topic #29 (0.020): 0.141*\"action\" + 0.056*\"Action\" + 0.050*\"adventure\" + 0.036*\"sequel\" + 0.033*\"Adventure\" + 0.030*\"robots\" + 0.029*\"arnold schwarzenegger\" + 0.023*\"boring\" + 0.022*\"death\" + 0.020*\"motorcycle\"\n", - "2021-08-24 02:38:50,254 : INFO : topic #1 (0.020): 0.100*\"remake\" + 0.068*\"hitchcock\" + 0.052*\"alfred hitchcock\" + 0.048*\"horror\" + 0.032*\"tumey's dvds\" + 0.030*\"Thriller\" + 0.023*\"moody\" + 0.021*\"courtroom drama\" + 0.018*\"scary\" + 0.015*\"jonossa\"\n", - "2021-08-24 02:38:50,255 : INFO : topic #35 (0.020): 0.171*\"comedy\" + 0.128*\"Comedy\" + 0.080*\"funny\" + 0.050*\"parody\" + 0.039*\"hilarious\" + 0.030*\"can't remember\" + 0.025*\"stupid\" + 0.022*\"spoof\" + 0.022*\"afi 100 (laughs)\" + 0.020*\"funny as hell\"\n", - "2021-08-24 02:38:50,256 : INFO : topic #28 (0.020): 0.125*\"pixar\" + 0.094*\"oscar (best actress)\" + 0.042*\"mockumentary\" + 0.029*\"medieval\" + 0.028*\"dinosaurs\" + 0.023*\"nostalgia\" + 0.019*\"computer animation\" + 0.019*\"elijah wood\" + 0.017*\"christopher guest\" + 0.017*\"golf\"\n", - "2021-08-24 02:38:50,256 : INFO : topic #10 (0.020): 0.434*\"Comedy\" + 0.236*\"Romance\" + 0.197*\"Drama\" + 0.013*\"bibliothek\" + 0.011*\"betamax\" + 0.006*\"divorce\" + 0.006*\"oppl\" + 0.004*\"owen wilson\" + 0.003*\"library vhs\" + 0.003*\"world war i\"\n", - "2021-08-24 02:38:50,258 : INFO : topic diff=0.032167, rho=0.221727\n", - "2021-08-24 02:38:50,259 : INFO : PROGRESS: pass 14, at document #6000/10681\n", - "2021-08-24 02:38:50,497 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:50,524 : INFO : topic #37 (0.020): 0.057*\"easily confused with other movie(s) (title)\" + 0.044*\"oscar (best supporting actress)\" + 0.043*\"vietnam war\" + 0.040*\"want to see again\" + 0.038*\"vietnam\" + 0.033*\"food\" + 0.029*\"j netflix\" + 0.024*\"19th century\" + 0.020*\"peter sellers\" + 0.020*\"alcoholism\"\n", - "2021-08-24 02:38:50,525 : INFO : topic #42 (0.020): 0.149*\"johnny depp\" + 0.079*\"tim burton\" + 0.055*\"martin scorsese\" + 0.040*\"narrated\" + 0.037*\"george clooney\" + 0.029*\"ei muista\" + 0.025*\"monster\" + 0.019*\"brothers\" + 0.018*\"alien invasion\" + 0.014*\"disaster\"\n", - "2021-08-24 02:38:50,526 : INFO : topic #48 (0.020): 0.052*\"quirky\" + 0.046*\"directorial debut\" + 0.045*\"surreal\" + 0.025*\"woody allen\" + 0.023*\"bittersweet\" + 0.023*\"humorous\" + 0.022*\"whimsical\" + 0.020*\"coming of age\" + 0.019*\"underrated\" + 0.019*\"erlend's dvds\"\n", - "2021-08-24 02:38:50,526 : INFO : topic #15 (0.020): 0.059*\"racism\" + 0.059*\"coen brothers\" + 0.057*\"stephen king\" + 0.039*\"adultery\" + 0.032*\"espionage\" + 0.025*\"great acting\" + 0.024*\"los angeles\" + 0.021*\"multiple storylines\" + 0.020*\"notable nudity\" + 0.020*\"ensemble cast\"\n", - "2021-08-24 02:38:50,527 : INFO : topic #30 (0.020): 0.653*\"Drama\" + 0.034*\"Film-Noir\" + 0.012*\"tumey's dvds\" + 0.010*\"small town\" + 0.008*\"italy\" + 0.007*\"erlend's dvds\" + 0.007*\"glbt\" + 0.007*\"oscar (best foreign language film)\" + 0.007*\"film noir\" + 0.007*\"animal:dog\"\n", - "2021-08-24 02:38:50,529 : INFO : topic diff=0.063371, rho=0.221727\n", - "2021-08-24 02:38:50,530 : INFO : PROGRESS: pass 14, at document #8000/10681\n", - "2021-08-24 02:38:50,775 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:50,803 : INFO : topic #39 (0.020): 0.110*\"bruce willis\" + 0.054*\"interesting\" + 0.036*\"love\" + 0.031*\"avi\" + 0.029*\"gerard depardieu\" + 0.027*\"africa\" + 0.024*\"golden raspberry (worst actor)\" + 0.024*\"good\" + 0.023*\"predictable\" + 0.023*\"end of the world\"\n", - "2021-08-24 02:38:50,804 : INFO : topic #0 (0.020): 0.100*\"crime\" + 0.059*\"violence\" + 0.056*\"brad pitt\" + 0.039*\"Crime\" + 0.036*\"violent\" + 0.035*\"morgan freeman\" + 0.027*\"organized crime\" + 0.026*\"Thriller\" + 0.026*\"philip seymour hoffman\" + 0.025*\"drama\"\n", - "2021-08-24 02:38:50,805 : INFO : topic #43 (0.020): 0.309*\"Crime\" + 0.158*\"Drama\" + 0.109*\"Thriller\" + 0.048*\"nudity (topless - notable)\" + 0.044*\"Mystery\" + 0.023*\"shakespeare\" + 0.021*\"nicolas cage\" + 0.017*\"remade\" + 0.015*\"sean penn\" + 0.015*\"adapted from:play\"\n", - "2021-08-24 02:38:50,806 : INFO : topic #30 (0.020): 0.654*\"Drama\" + 0.035*\"Film-Noir\" + 0.013*\"tumey's dvds\" + 0.010*\"small town\" + 0.009*\"oscar (best foreign language film)\" + 0.008*\"erlend's dvds\" + 0.008*\"italy\" + 0.007*\"witch\" + 0.006*\"elegant\" + 0.006*\"glbt\"\n", - "2021-08-24 02:38:50,807 : INFO : topic #48 (0.020): 0.051*\"quirky\" + 0.047*\"surreal\" + 0.043*\"directorial debut\" + 0.027*\"bittersweet\" + 0.026*\"woody allen\" + 0.023*\"humorous\" + 0.020*\"whimsical\" + 0.020*\"erlend's dvds\" + 0.019*\"peter jackson\" + 0.019*\"coming of age\"\n", - "2021-08-24 02:38:50,808 : INFO : topic diff=0.050241, rho=0.221727\n", - "2021-08-24 02:38:50,810 : INFO : PROGRESS: pass 14, at document #10000/10681\n", - "2021-08-24 02:38:51,052 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:51,081 : INFO : topic #23 (0.020): 0.057*\"mafia\" + 0.039*\"al pacino\" + 0.027*\"robert de niro\" + 0.026*\"guns\" + 0.025*\"poverty\" + 0.023*\"michael caine\" + 0.020*\"marlon brando\" + 0.019*\"tumey's dvds\" + 0.018*\"eddie murphy\" + 0.017*\"scifi\"\n", - "2021-08-24 02:38:51,082 : INFO : topic #12 (0.020): 0.096*\"quentin tarantino\" + 0.088*\"christmas\" + 0.070*\"heist\" + 0.055*\"tarantino\" + 0.053*\"nonlinear\" + 0.041*\"rape\" + 0.033*\"blindfold\" + 0.021*\"ireland\" + 0.019*\"terry gilliam\" + 0.019*\"xmas theme\"\n", - "2021-08-24 02:38:51,082 : INFO : topic #46 (0.020): 0.077*\"overrated\" + 0.063*\"dvd\" + 0.050*\"seen more than once\" + 0.041*\"owned\" + 0.035*\"samuel l. jackson\" + 0.029*\"imdb top 250\" + 0.027*\"bibliothek\" + 0.026*\"eric's dvds\" + 0.022*\"seen at the cinema\" + 0.022*\"tumey's dvds\"\n", - "2021-08-24 02:38:51,083 : INFO : topic #35 (0.020): 0.153*\"comedy\" + 0.132*\"Comedy\" + 0.086*\"funny\" + 0.047*\"parody\" + 0.039*\"hilarious\" + 0.030*\"ummarti2006\" + 0.023*\"stupid\" + 0.023*\"can't remember\" + 0.020*\"spoof\" + 0.020*\"afi 100 (laughs)\"\n", - "2021-08-24 02:38:51,084 : INFO : topic #48 (0.020): 0.047*\"quirky\" + 0.043*\"surreal\" + 0.040*\"directorial debut\" + 0.027*\"bittersweet\" + 0.024*\"woody allen\" + 0.023*\"humorous\" + 0.021*\"whimsical\" + 0.019*\"erlend's dvds\" + 0.018*\"sad\" + 0.018*\"peter jackson\"\n", - "2021-08-24 02:38:51,086 : INFO : topic diff=0.035886, rho=0.221727\n", - "2021-08-24 02:38:51,238 : INFO : -20.982 per-word bound, 2070468.0 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:51,239 : INFO : PROGRESS: pass 14, at document #10681/10681\n", - "2021-08-24 02:38:51,339 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:51,366 : INFO : topic #1 (0.020): 0.150*\"remake\" + 0.039*\"horror\" + 0.033*\"hitchcock\" + 0.029*\"Thriller\" + 0.027*\"jonossa\" + 0.026*\"tumey's dvds\" + 0.025*\"alfred hitchcock\" + 0.024*\"moody\" + 0.018*\"courtroom drama\" + 0.015*\"scary\"\n", - "2021-08-24 02:38:51,367 : INFO : topic #48 (0.020): 0.042*\"quirky\" + 0.039*\"surreal\" + 0.038*\"directorial debut\" + 0.026*\"bittersweet\" + 0.023*\"woody allen\" + 0.020*\"humorous\" + 0.020*\"library on hold\" + 0.020*\"sad\" + 0.019*\"underrated\" + 0.019*\"whimsical\"\n", - "2021-08-24 02:38:51,367 : INFO : topic #24 (0.020): 0.046*\"tom cruise\" + 0.038*\"france\" + 0.032*\"golden palm\" + 0.032*\"nicole kidman\" + 0.031*\"disability\" + 0.030*\"on dvr\" + 0.028*\"french\" + 0.026*\"dustin hoffman\" + 0.021*\"mask\" + 0.018*\"bank robbery\"\n", - "2021-08-24 02:38:51,368 : INFO : topic #31 (0.020): 0.118*\"murder\" + 0.075*\"james bond\" + 0.047*\"assassin\" + 0.045*\"007\" + 0.045*\"bond\" + 0.025*\"claymation\" + 0.025*\"Thriller\" + 0.025*\"Action\" + 0.021*\"killer-as-protagonist\" + 0.019*\"aardman\"\n", - "2021-08-24 02:38:51,368 : INFO : topic #11 (0.020): 0.302*\"Documentary\" + 0.199*\"to see\" + 0.061*\"in netflix queue\" + 0.060*\"gay\" + 0.025*\"oscar (best actor)\" + 0.025*\"india\" + 0.020*\"IMAX\" + 0.019*\"homosexuality\" + 0.014*\"matter-of-fact\" + 0.011*\"mexico\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:51,370 : INFO : topic diff=0.086096, rho=0.221727\n", - "2021-08-24 02:38:51,371 : INFO : PROGRESS: pass 15, at document #2000/10681\n", - "2021-08-24 02:38:51,619 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:51,646 : INFO : topic #31 (0.020): 0.096*\"murder\" + 0.061*\"james bond\" + 0.044*\"assassin\" + 0.042*\"bond\" + 0.040*\"claymation\" + 0.039*\"007\" + 0.028*\"aardman\" + 0.021*\"Thriller\" + 0.021*\"Action\" + 0.021*\"killer-as-protagonist\"\n", - "2021-08-24 02:38:51,646 : INFO : topic #33 (0.020): 0.167*\"comic book\" + 0.130*\"superhero\" + 0.064*\"super-hero\" + 0.039*\"adapted from:comic\" + 0.038*\"batman\" + 0.037*\"gene hackman\" + 0.026*\"action\" + 0.025*\"Action\" + 0.019*\"alter ego\" + 0.019*\"based on a comic\"\n", - "2021-08-24 02:38:51,647 : INFO : topic #17 (0.020): 0.067*\"will smith\" + 0.055*\"police\" + 0.037*\"corruption\" + 0.032*\"sandra bullock\" + 0.029*\"computers\" + 0.022*\"torture\" + 0.021*\"milla jovovich\" + 0.019*\"action packed\" + 0.016*\"luc besson\" + 0.015*\"no dialogue\"\n", - "2021-08-24 02:38:51,648 : INFO : topic #1 (0.020): 0.108*\"remake\" + 0.060*\"hitchcock\" + 0.056*\"alfred hitchcock\" + 0.045*\"horror\" + 0.027*\"Thriller\" + 0.026*\"tumey's dvds\" + 0.025*\"moody\" + 0.020*\"jonossa\" + 0.018*\"courtroom drama\" + 0.015*\"scary\"\n", - "2021-08-24 02:38:51,649 : INFO : topic #25 (0.020): 0.196*\"Musical\" + 0.083*\"musical\" + 0.083*\"70mm\" + 0.065*\"religion\" + 0.030*\"friendship\" + 0.024*\"rock and roll\" + 0.024*\"music\" + 0.022*\"monty python\" + 0.016*\"trains\" + 0.016*\"adapted from b'way\"\n", - "2021-08-24 02:38:51,651 : INFO : topic diff=0.175367, rho=0.216470\n", - "2021-08-24 02:38:51,652 : INFO : PROGRESS: pass 15, at document #4000/10681\n", - "2021-08-24 02:38:51,909 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:51,936 : INFO : topic #44 (0.020): 0.118*\"Children\" + 0.110*\"Adventure\" + 0.101*\"Fantasy\" + 0.079*\"disney\" + 0.064*\"Animation\" + 0.057*\"Comedy\" + 0.041*\"animation\" + 0.037*\"fantasy\" + 0.021*\"children\" + 0.016*\"disney animated feature\"\n", - "2021-08-24 02:38:51,937 : INFO : topic #35 (0.020): 0.171*\"comedy\" + 0.129*\"Comedy\" + 0.080*\"funny\" + 0.050*\"parody\" + 0.039*\"hilarious\" + 0.031*\"can't remember\" + 0.025*\"stupid\" + 0.022*\"spoof\" + 0.021*\"afi 100 (laughs)\" + 0.020*\"funny as hell\"\n", - "2021-08-24 02:38:51,938 : INFO : topic #29 (0.020): 0.141*\"action\" + 0.056*\"Action\" + 0.050*\"adventure\" + 0.036*\"sequel\" + 0.033*\"Adventure\" + 0.030*\"robots\" + 0.029*\"arnold schwarzenegger\" + 0.024*\"boring\" + 0.022*\"death\" + 0.020*\"motorcycle\"\n", - "2021-08-24 02:38:51,939 : INFO : topic #3 (0.020): 0.313*\"nudity (topless)\" + 0.075*\"zombies\" + 0.061*\"nudity (topless - brief)\" + 0.030*\"virtual reality\" + 0.020*\"keira knightley\" + 0.014*\"zombie\" + 0.014*\"ingmar bergman\" + 0.013*\"robert altman\" + 0.012*\"futuristic\" + 0.011*\"strippers\"\n", - "2021-08-24 02:38:51,940 : INFO : topic #18 (0.020): 0.055*\"franchise\" + 0.048*\"surrealism\" + 0.039*\"slasher\" + 0.039*\"creepy\" + 0.028*\"robert downey jr\" + 0.028*\"united states\" + 0.024*\"lurid\" + 0.023*\"unique\" + 0.021*\"no rec?\" + 0.020*\"goth\"\n", - "2021-08-24 02:38:51,941 : INFO : topic diff=0.031025, rho=0.216470\n", - "2021-08-24 02:38:51,943 : INFO : PROGRESS: pass 15, at document #6000/10681\n", - "2021-08-24 02:38:52,160 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:52,195 : INFO : topic #21 (0.020): 0.091*\"Drama\" + 0.051*\"criterion\" + 0.026*\"tumey's dvds\" + 0.025*\"library\" + 0.023*\"satirical\" + 0.023*\"sven's to see list\" + 0.023*\"atmospheric\" + 0.023*\"dvd-video\" + 0.022*\"reflective\" + 0.020*\"deliberate\"\n", - "2021-08-24 02:38:52,197 : INFO : topic #4 (0.020): 0.110*\"romance\" + 0.052*\"chick flick\" + 0.051*\"Romance\" + 0.038*\"new york city\" + 0.031*\"sean connery\" + 0.030*\"girlie movie\" + 0.026*\"new york\" + 0.024*\"cars\" + 0.022*\"watched 2006\" + 0.021*\"dance\"\n", - "2021-08-24 02:38:52,197 : INFO : topic #20 (0.020): 0.127*\"politics\" + 0.073*\"documentary\" + 0.070*\"jack nicholson\" + 0.039*\"terrorism\" + 0.037*\"seen 2008\" + 0.033*\"propaganda\" + 0.031*\"love story\" + 0.030*\"Documentary\" + 0.030*\"aviation\" + 0.028*\"political\"\n", - "2021-08-24 02:38:52,198 : INFO : topic #5 (0.020): 0.226*\"Action\" + 0.198*\"Thriller\" + 0.174*\"Horror\" + 0.134*\"Sci-Fi\" + 0.064*\"Adventure\" + 0.041*\"betamax\" + 0.019*\"can't remember\" + 0.011*\"70mm\" + 0.009*\"courtroom\" + 0.008*\"dvd-video\"\n", - "2021-08-24 02:38:52,199 : INFO : topic #12 (0.020): 0.103*\"christmas\" + 0.081*\"quentin tarantino\" + 0.067*\"nonlinear\" + 0.066*\"heist\" + 0.053*\"tarantino\" + 0.047*\"rape\" + 0.030*\"blindfold\" + 0.024*\"terry gilliam\" + 0.018*\"xmas theme\" + 0.015*\"ireland\"\n", - "2021-08-24 02:38:52,200 : INFO : topic diff=0.061644, rho=0.216470\n", - "2021-08-24 02:38:52,202 : INFO : PROGRESS: pass 15, at document #8000/10681\n", - "2021-08-24 02:38:52,447 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:52,474 : INFO : topic #6 (0.020): 0.093*\"martial arts\" + 0.051*\"cult film\" + 0.042*\"gothic\" + 0.035*\"campy\" + 0.027*\"silly\" + 0.026*\"cult classic\" + 0.025*\"australia\" + 0.025*\"australian\" + 0.021*\"sam raimi\" + 0.020*\"seen 2006\"\n", - "2021-08-24 02:38:52,475 : INFO : topic #24 (0.020): 0.060*\"tom cruise\" + 0.040*\"golden palm\" + 0.038*\"nicole kidman\" + 0.036*\"france\" + 0.031*\"french\" + 0.029*\"on dvr\" + 0.025*\"dustin hoffman\" + 0.023*\"disability\" + 0.020*\"sweet\" + 0.019*\"takeshi kitano\"\n", - "2021-08-24 02:38:52,476 : INFO : topic #39 (0.020): 0.110*\"bruce willis\" + 0.054*\"interesting\" + 0.038*\"love\" + 0.031*\"avi\" + 0.029*\"gerard depardieu\" + 0.027*\"africa\" + 0.024*\"golden raspberry (worst actor)\" + 0.024*\"good\" + 0.023*\"predictable\" + 0.023*\"end of the world\"\n", - "2021-08-24 02:38:52,477 : INFO : topic #45 (0.020): 0.054*\"japan\" + 0.045*\"tense\" + 0.038*\"clint eastwood\" + 0.034*\"forceful\" + 0.031*\"gritty\" + 0.029*\"revenge\" + 0.026*\"atmospheric\" + 0.025*\"akira kurosawa\" + 0.023*\"Action\" + 0.022*\"visceral\"\n", - "2021-08-24 02:38:52,478 : INFO : topic #31 (0.020): 0.093*\"murder\" + 0.089*\"james bond\" + 0.061*\"007\" + 0.057*\"bond\" + 0.035*\"assassin\" + 0.025*\"claymation\" + 0.023*\"Action\" + 0.022*\"franchise\" + 0.022*\"Thriller\" + 0.019*\"tolkien\"\n", - "2021-08-24 02:38:52,479 : INFO : topic diff=0.049119, rho=0.216470\n", - "2021-08-24 02:38:52,481 : INFO : PROGRESS: pass 15, at document #10000/10681\n", - "2021-08-24 02:38:52,749 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:52,777 : INFO : topic #12 (0.020): 0.096*\"quentin tarantino\" + 0.089*\"christmas\" + 0.070*\"heist\" + 0.055*\"tarantino\" + 0.053*\"nonlinear\" + 0.041*\"rape\" + 0.033*\"blindfold\" + 0.021*\"ireland\" + 0.019*\"terry gilliam\" + 0.019*\"xmas theme\"\n", - "2021-08-24 02:38:52,778 : INFO : topic #28 (0.020): 0.137*\"pixar\" + 0.084*\"oscar (best actress)\" + 0.040*\"mockumentary\" + 0.029*\"elijah wood\" + 0.027*\"medieval\" + 0.023*\"computer animation\" + 0.023*\"cgi\" + 0.021*\"dinosaurs\" + 0.017*\"nostalgia\" + 0.014*\"family drama\"\n", - "2021-08-24 02:38:52,779 : INFO : topic #9 (0.020): 0.228*\"r\" + 0.100*\"clearplay\" + 0.097*\"Western\" + 0.078*\"nudity (topless - brief)\" + 0.060*\"Drama\" + 0.036*\"pg13\" + 0.023*\"Thriller\" + 0.020*\"british\" + 0.018*\"jane austen\" + 0.017*\"russell crowe\"\n", - "2021-08-24 02:38:52,780 : INFO : topic #18 (0.020): 0.045*\"creepy\" + 0.042*\"surrealism\" + 0.042*\"franchise\" + 0.030*\"lurid\" + 0.028*\"robert downey jr\" + 0.028*\"slasher\" + 0.027*\"united states\" + 0.024*\"unique\" + 0.021*\"macabre\" + 0.020*\"adolescence\"\n", - "2021-08-24 02:38:52,781 : INFO : topic #49 (0.020): 0.130*\"anime\" + 0.059*\"psychology\" + 0.051*\"serial killer\" + 0.051*\"high school\" + 0.044*\"teen\" + 0.022*\"japan\" + 0.016*\"mental illness\" + 0.015*\"cannibalism\" + 0.014*\"anthony hopkins\" + 0.013*\"steve martin\"\n", - "2021-08-24 02:38:52,783 : INFO : topic diff=0.035055, rho=0.216470\n", - "2021-08-24 02:38:52,939 : INFO : -20.980 per-word bound, 2068832.6 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:52,940 : INFO : PROGRESS: pass 15, at document #10681/10681\n", - "2021-08-24 02:38:53,042 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:53,069 : INFO : topic #34 (0.020): 0.191*\"War\" + 0.137*\"Drama\" + 0.084*\"world war ii\" + 0.069*\"drugs\" + 0.044*\"history\" + 0.042*\"war\" + 0.033*\"Action\" + 0.028*\"prison\" + 0.026*\"london\" + 0.020*\"Adventure\"\n", - "2021-08-24 02:38:53,070 : INFO : topic #25 (0.020): 0.220*\"Musical\" + 0.087*\"70mm\" + 0.078*\"musical\" + 0.077*\"religion\" + 0.035*\"friendship\" + 0.026*\"rock and roll\" + 0.021*\"music\" + 0.020*\"trains\" + 0.015*\"monty python\" + 0.015*\"adapted from b'way\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:53,071 : INFO : topic #5 (0.020): 0.246*\"Action\" + 0.209*\"Thriller\" + 0.174*\"Horror\" + 0.138*\"Sci-Fi\" + 0.068*\"Adventure\" + 0.026*\"betamax\" + 0.010*\"can't remember\" + 0.007*\"courtroom\" + 0.007*\"70mm\" + 0.006*\"vhs\"\n", - "2021-08-24 02:38:53,072 : INFO : topic #10 (0.020): 0.439*\"Comedy\" + 0.241*\"Romance\" + 0.201*\"Drama\" + 0.009*\"bibliothek\" + 0.008*\"betamax\" + 0.008*\"oppl\" + 0.006*\"owen wilson\" + 0.005*\"divorce\" + 0.003*\"world war i\" + 0.003*\"library vhs\"\n", - "2021-08-24 02:38:53,073 : INFO : topic #44 (0.020): 0.126*\"Adventure\" + 0.125*\"Fantasy\" + 0.114*\"Children\" + 0.073*\"Animation\" + 0.064*\"Comedy\" + 0.044*\"fantasy\" + 0.044*\"disney\" + 0.041*\"animation\" + 0.019*\"movie to see\" + 0.018*\"children\"\n", - "2021-08-24 02:38:53,074 : INFO : topic diff=0.084423, rho=0.216470\n", - "2021-08-24 02:38:53,075 : INFO : PROGRESS: pass 16, at document #2000/10681\n", - "2021-08-24 02:38:53,334 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:53,360 : INFO : topic #21 (0.020): 0.092*\"Drama\" + 0.048*\"criterion\" + 0.027*\"library\" + 0.023*\"tumey's dvds\" + 0.021*\"irreverent\" + 0.021*\"sven's to see list\" + 0.021*\"atmospheric\" + 0.020*\"dvd-video\" + 0.020*\"reflective\" + 0.020*\"deliberate\"\n", - "2021-08-24 02:38:53,361 : INFO : topic #8 (0.020): 0.113*\"space\" + 0.050*\"harrison ford\" + 0.026*\"christianity\" + 0.025*\"kevin smith\" + 0.025*\"george lucas\" + 0.024*\"archaeology\" + 0.021*\"space opera\" + 0.020*\"fantasy\" + 0.019*\"sergio leone\" + 0.018*\"marx brothers\"\n", - "2021-08-24 02:38:53,362 : INFO : topic #37 (0.020): 0.066*\"easily confused with other movie(s) (title)\" + 0.045*\"vietnam\" + 0.043*\"vietnam war\" + 0.035*\"food\" + 0.034*\"j netflix\" + 0.032*\"want to see again\" + 0.032*\"oscar (best supporting actress)\" + 0.024*\"peter sellers\" + 0.022*\"19th century\" + 0.021*\"slow\"\n", - "2021-08-24 02:38:53,362 : INFO : topic #29 (0.020): 0.144*\"action\" + 0.053*\"Action\" + 0.052*\"adventure\" + 0.036*\"sequel\" + 0.033*\"Adventure\" + 0.031*\"robots\" + 0.026*\"boring\" + 0.026*\"arnold schwarzenegger\" + 0.024*\"death\" + 0.024*\"pirates\"\n", - "2021-08-24 02:38:53,363 : INFO : topic #48 (0.020): 0.045*\"quirky\" + 0.041*\"directorial debut\" + 0.038*\"surreal\" + 0.027*\"woody allen\" + 0.027*\"bittersweet\" + 0.024*\"humorous\" + 0.021*\"underrated\" + 0.018*\"whimsical\" + 0.018*\"witty\" + 0.018*\"erlend's dvds\"\n", - "2021-08-24 02:38:53,364 : INFO : topic diff=0.170628, rho=0.211570\n", - "2021-08-24 02:38:53,366 : INFO : PROGRESS: pass 16, at document #4000/10681\n", - "2021-08-24 02:38:53,620 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:53,647 : INFO : topic #18 (0.020): 0.055*\"franchise\" + 0.048*\"surrealism\" + 0.039*\"slasher\" + 0.039*\"creepy\" + 0.028*\"robert downey jr\" + 0.028*\"united states\" + 0.024*\"lurid\" + 0.023*\"unique\" + 0.021*\"no rec?\" + 0.020*\"goth\"\n", - "2021-08-24 02:38:53,648 : INFO : topic #6 (0.020): 0.087*\"martial arts\" + 0.059*\"cult film\" + 0.046*\"gothic\" + 0.034*\"campy\" + 0.030*\"cult classic\" + 0.027*\"australia\" + 0.026*\"silly\" + 0.019*\"seen 2006\" + 0.019*\"don't remember\" + 0.019*\"australian\"\n", - "2021-08-24 02:38:53,649 : INFO : topic #13 (0.020): 0.148*\"time travel\" + 0.073*\"twist ending\" + 0.059*\"holocaust\" + 0.034*\"bill murray\" + 0.030*\"post apocalyptic\" + 0.029*\"post-apocalyptic\" + 0.020*\"good dialogue\" + 0.018*\"mindfuck\" + 0.017*\"liam neeson\" + 0.016*\"suspense\"\n", - "2021-08-24 02:38:53,650 : INFO : topic #10 (0.020): 0.435*\"Comedy\" + 0.236*\"Romance\" + 0.197*\"Drama\" + 0.013*\"bibliothek\" + 0.011*\"betamax\" + 0.006*\"divorce\" + 0.006*\"oppl\" + 0.004*\"owen wilson\" + 0.003*\"library vhs\" + 0.003*\"world war i\"\n", - "2021-08-24 02:38:53,651 : INFO : topic #0 (0.020): 0.095*\"crime\" + 0.061*\"brad pitt\" + 0.060*\"violence\" + 0.042*\"Crime\" + 0.037*\"morgan freeman\" + 0.036*\"violent\" + 0.032*\"organized crime\" + 0.030*\"thriller\" + 0.027*\"Thriller\" + 0.027*\"philip seymour hoffman\"\n", - "2021-08-24 02:38:53,652 : INFO : topic diff=0.030098, rho=0.211570\n", - "2021-08-24 02:38:53,654 : INFO : PROGRESS: pass 16, at document #6000/10681\n", - "2021-08-24 02:38:53,894 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:53,923 : INFO : topic #12 (0.020): 0.103*\"christmas\" + 0.081*\"quentin tarantino\" + 0.067*\"nonlinear\" + 0.066*\"heist\" + 0.053*\"tarantino\" + 0.047*\"rape\" + 0.030*\"blindfold\" + 0.024*\"terry gilliam\" + 0.018*\"xmas theme\" + 0.015*\"ireland\"\n", - "2021-08-24 02:38:53,924 : INFO : topic #6 (0.020): 0.084*\"martial arts\" + 0.057*\"cult film\" + 0.044*\"gothic\" + 0.038*\"campy\" + 0.030*\"silly\" + 0.029*\"cult classic\" + 0.027*\"australia\" + 0.026*\"australian\" + 0.020*\"sam raimi\" + 0.018*\"don't remember\"\n", - "2021-08-24 02:38:53,924 : INFO : topic #43 (0.020): 0.292*\"Crime\" + 0.158*\"Drama\" + 0.106*\"Thriller\" + 0.050*\"nudity (topless - notable)\" + 0.042*\"Mystery\" + 0.026*\"shakespeare\" + 0.023*\"nicolas cage\" + 0.017*\"remade\" + 0.016*\"adapted from:play\" + 0.014*\"sean penn\"\n", - "2021-08-24 02:38:53,925 : INFO : topic #19 (0.020): 0.089*\"ghosts\" + 0.059*\"pg-13\" + 0.039*\"julia roberts\" + 0.038*\"jude law\" + 0.036*\"wedding\" + 0.029*\"hollywood\" + 0.028*\"afternoon section\" + 0.027*\"want to own\" + 0.026*\"infidelity\" + 0.022*\"prostitution\"\n", - "2021-08-24 02:38:53,925 : INFO : topic #35 (0.020): 0.170*\"comedy\" + 0.133*\"Comedy\" + 0.080*\"funny\" + 0.051*\"parody\" + 0.038*\"hilarious\" + 0.033*\"can't remember\" + 0.023*\"stupid\" + 0.022*\"spoof\" + 0.020*\"funny as hell\" + 0.019*\"afi 100 (laughs)\"\n", - "2021-08-24 02:38:53,927 : INFO : topic diff=0.059746, rho=0.211570\n", - "2021-08-24 02:38:53,928 : INFO : PROGRESS: pass 16, at document #8000/10681\n", - "2021-08-24 02:38:54,174 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:54,202 : INFO : topic #11 (0.020): 0.272*\"Documentary\" + 0.141*\"to see\" + 0.077*\"in netflix queue\" + 0.067*\"gay\" + 0.045*\"oscar (best actor)\" + 0.023*\"india\" + 0.020*\"homosexuality\" + 0.019*\"matter-of-fact\" + 0.018*\"IMAX\" + 0.015*\"ian mckellen\"\n", - "2021-08-24 02:38:54,203 : INFO : topic #46 (0.020): 0.074*\"dvd\" + 0.067*\"overrated\" + 0.062*\"seen more than once\" + 0.042*\"owned\" + 0.030*\"samuel l. jackson\" + 0.030*\"bibliothek\" + 0.029*\"imdb top 250\" + 0.025*\"eric's dvds\" + 0.023*\"kevin spacey\" + 0.022*\"seen at the cinema\"\n", - "2021-08-24 02:38:54,204 : INFO : topic #45 (0.020): 0.054*\"japan\" + 0.045*\"tense\" + 0.038*\"clint eastwood\" + 0.034*\"forceful\" + 0.031*\"gritty\" + 0.029*\"revenge\" + 0.027*\"atmospheric\" + 0.025*\"akira kurosawa\" + 0.023*\"Action\" + 0.022*\"visceral\"\n", - "2021-08-24 02:38:54,204 : INFO : topic #43 (0.020): 0.308*\"Crime\" + 0.159*\"Drama\" + 0.109*\"Thriller\" + 0.048*\"nudity (topless - notable)\" + 0.045*\"Mystery\" + 0.023*\"shakespeare\" + 0.021*\"nicolas cage\" + 0.017*\"remade\" + 0.015*\"sean penn\" + 0.015*\"adapted from:play\"\n", - "2021-08-24 02:38:54,205 : INFO : topic #2 (0.020): 0.102*\"Comedy\" + 0.095*\"lesbian\" + 0.089*\"satire\" + 0.051*\"imdb bottom 100\" + 0.037*\"sexy\" + 0.029*\"get\" + 0.018*\"ben stiller\" + 0.018*\"olympics\" + 0.017*\"john turturro\" + 0.017*\"1\"\n", - "2021-08-24 02:38:54,206 : INFO : topic diff=0.048158, rho=0.211570\n", - "2021-08-24 02:38:54,208 : INFO : PROGRESS: pass 16, at document #10000/10681\n", - "2021-08-24 02:38:54,455 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:54,484 : INFO : topic #34 (0.020): 0.173*\"War\" + 0.125*\"Drama\" + 0.091*\"world war ii\" + 0.067*\"drugs\" + 0.050*\"war\" + 0.042*\"history\" + 0.033*\"Action\" + 0.028*\"prison\" + 0.026*\"london\" + 0.020*\"Adventure\"\n", - "2021-08-24 02:38:54,484 : INFO : topic #37 (0.020): 0.072*\"easily confused with other movie(s) (title)\" + 0.037*\"oscar (best supporting actress)\" + 0.036*\"j netflix\" + 0.033*\"want to see again\" + 0.030*\"vietnam war\" + 0.029*\"food\" + 0.028*\"vietnam\" + 0.028*\"19th century\" + 0.027*\"slow\" + 0.026*\"peter sellers\"\n", - "2021-08-24 02:38:54,485 : INFO : topic #8 (0.020): 0.091*\"space\" + 0.035*\"marx brothers\" + 0.034*\"harrison ford\" + 0.033*\"christianity\" + 0.022*\"kevin smith\" + 0.021*\"spaghetti western\" + 0.021*\"george lucas\" + 0.021*\"werewolves\" + 0.017*\"space opera\" + 0.017*\"vincent price\"\n", - "2021-08-24 02:38:54,485 : INFO : topic #40 (0.020): 0.123*\"magic\" + 0.110*\"nudity (full frontal - notable)\" + 0.066*\"edward norton\" + 0.057*\"not corv lib\" + 0.057*\"sports\" + 0.040*\"hw drama\" + 0.039*\"baseball\" + 0.030*\"compassionate\" + 0.025*\"don cheadle\" + 0.025*\"inspirational\"\n", - "2021-08-24 02:38:54,486 : INFO : topic #16 (0.020): 0.165*\"sci-fi\" + 0.087*\"dystopia\" + 0.060*\"Sci-Fi\" + 0.059*\"futuristmovies.com\" + 0.032*\"future\" + 0.032*\"military\" + 0.017*\"joaquin phoenix\" + 0.015*\"weird\" + 0.012*\"gfei own it\" + 0.011*\"court\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:54,487 : INFO : topic diff=0.033768, rho=0.211570\n", - "2021-08-24 02:38:54,633 : INFO : -20.978 per-word bound, 2065473.7 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:54,633 : INFO : PROGRESS: pass 16, at document #10681/10681\n", - "2021-08-24 02:38:54,735 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:54,761 : INFO : topic #5 (0.020): 0.245*\"Action\" + 0.209*\"Thriller\" + 0.173*\"Horror\" + 0.138*\"Sci-Fi\" + 0.068*\"Adventure\" + 0.026*\"betamax\" + 0.011*\"can't remember\" + 0.007*\"courtroom\" + 0.007*\"70mm\" + 0.006*\"vhs\"\n", - "2021-08-24 02:38:54,762 : INFO : topic #9 (0.020): 0.256*\"r\" + 0.130*\"clearplay\" + 0.085*\"Western\" + 0.074*\"nudity (topless - brief)\" + 0.067*\"Drama\" + 0.040*\"pg13\" + 0.027*\"to see\" + 0.025*\"Thriller\" + 0.022*\"movie to see\" + 0.016*\"russell crowe\"\n", - "2021-08-24 02:38:54,763 : INFO : topic #29 (0.020): 0.116*\"action\" + 0.055*\"Action\" + 0.049*\"adventure\" + 0.039*\"sequel\" + 0.035*\"Adventure\" + 0.034*\"robots\" + 0.032*\"pirates\" + 0.030*\"boring\" + 0.030*\"death\" + 0.026*\"motorcycle\"\n", - "2021-08-24 02:38:54,764 : INFO : topic #2 (0.020): 0.111*\"Comedy\" + 0.098*\"satire\" + 0.088*\"lesbian\" + 0.063*\"imdb bottom 100\" + 0.026*\"sexy\" + 0.021*\"get\" + 0.020*\"olympics\" + 0.017*\"adolf hitler\" + 0.016*\"ben stiller\" + 0.016*\"john turturro\"\n", - "2021-08-24 02:38:54,764 : INFO : topic #43 (0.020): 0.320*\"Crime\" + 0.169*\"Drama\" + 0.119*\"Thriller\" + 0.049*\"Mystery\" + 0.041*\"nudity (topless - notable)\" + 0.020*\"nicolas cage\" + 0.018*\"sean penn\" + 0.017*\"shakespeare\" + 0.013*\"remade\" + 0.012*\"adapted from:play\"\n", - "2021-08-24 02:38:54,766 : INFO : topic diff=0.082039, rho=0.211570\n", - "2021-08-24 02:38:54,768 : INFO : PROGRESS: pass 17, at document #2000/10681\n", - "2021-08-24 02:38:55,037 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:55,063 : INFO : topic #15 (0.020): 0.070*\"coen brothers\" + 0.057*\"stephen king\" + 0.052*\"racism\" + 0.037*\"adultery\" + 0.033*\"great acting\" + 0.029*\"espionage\" + 0.025*\"los angeles\" + 0.017*\"ensemble cast\" + 0.016*\"san francisco\" + 0.016*\"notable nudity\"\n", - "2021-08-24 02:38:55,064 : INFO : topic #16 (0.020): 0.195*\"sci-fi\" + 0.084*\"dystopia\" + 0.060*\"futuristmovies.com\" + 0.057*\"Sci-Fi\" + 0.033*\"military\" + 0.031*\"future\" + 0.015*\"saturn award (best science fiction film)\" + 0.014*\"sf\" + 0.011*\"1950s\" + 0.011*\"joaquin phoenix\"\n", - "2021-08-24 02:38:55,064 : INFO : topic #40 (0.020): 0.121*\"nudity (full frontal - notable)\" + 0.098*\"magic\" + 0.052*\"not corv lib\" + 0.050*\"sports\" + 0.048*\"edward norton\" + 0.041*\"baseball\" + 0.037*\"hw drama\" + 0.035*\"inspirational\" + 0.024*\"compassionate\" + 0.024*\"christopher walken\"\n", - "2021-08-24 02:38:55,065 : INFO : topic #44 (0.020): 0.118*\"Children\" + 0.110*\"Adventure\" + 0.104*\"Fantasy\" + 0.081*\"disney\" + 0.062*\"Animation\" + 0.057*\"Comedy\" + 0.042*\"animation\" + 0.039*\"fantasy\" + 0.021*\"children\" + 0.016*\"fairy tale\"\n", - "2021-08-24 02:38:55,066 : INFO : topic #24 (0.020): 0.059*\"tom cruise\" + 0.035*\"golden palm\" + 0.035*\"france\" + 0.033*\"dustin hoffman\" + 0.029*\"french\" + 0.027*\"on dvr\" + 0.025*\"watch\" + 0.025*\"disability\" + 0.024*\"nicole kidman\" + 0.021*\"sweet\"\n", - "2021-08-24 02:38:55,067 : INFO : topic diff=0.166545, rho=0.206988\n", - "2021-08-24 02:38:55,069 : INFO : PROGRESS: pass 17, at document #4000/10681\n", - "2021-08-24 02:38:55,301 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:55,329 : INFO : topic #11 (0.020): 0.261*\"Documentary\" + 0.162*\"to see\" + 0.074*\"gay\" + 0.069*\"in netflix queue\" + 0.055*\"oscar (best actor)\" + 0.024*\"india\" + 0.021*\"homosexuality\" + 0.015*\"matter-of-fact\" + 0.015*\"IMAX\" + 0.012*\"ian mckellen\"\n", - "2021-08-24 02:38:55,331 : INFO : topic #49 (0.020): 0.083*\"anime\" + 0.059*\"teen\" + 0.057*\"serial killer\" + 0.057*\"high school\" + 0.057*\"psychology\" + 0.020*\"mental illness\" + 0.017*\"cannibalism\" + 0.016*\"cult film\" + 0.015*\"japan\" + 0.014*\"anthony hopkins\"\n", - "2021-08-24 02:38:55,332 : INFO : topic #31 (0.020): 0.093*\"murder\" + 0.090*\"james bond\" + 0.062*\"007\" + 0.060*\"bond\" + 0.041*\"assassin\" + 0.031*\"claymation\" + 0.023*\"Action\" + 0.023*\"aardman\" + 0.023*\"franchise\" + 0.023*\"Thriller\"\n", - "2021-08-24 02:38:55,332 : INFO : topic #32 (0.020): 0.093*\"based on a tv show\" + 0.074*\"jim carrey\" + 0.060*\"keanu reeves\" + 0.046*\"england\" + 0.043*\"video game adaptation\" + 0.042*\"tv\" + 0.040*\"star trek\" + 0.037*\"road trip\" + 0.033*\"memory\" + 0.027*\"seen at the cinema\"\n", - "2021-08-24 02:38:55,333 : INFO : topic #21 (0.020): 0.091*\"Drama\" + 0.049*\"criterion\" + 0.027*\"library\" + 0.025*\"tumey's dvds\" + 0.023*\"reflective\" + 0.022*\"atmospheric\" + 0.022*\"dvd-video\" + 0.021*\"sven's to see list\" + 0.021*\"satirical\" + 0.021*\"deliberate\"\n", - "2021-08-24 02:38:55,334 : INFO : topic diff=0.029280, rho=0.206988\n", - "2021-08-24 02:38:55,335 : INFO : PROGRESS: pass 17, at document #6000/10681\n", - "2021-08-24 02:38:55,559 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:55,587 : INFO : topic #1 (0.020): 0.113*\"remake\" + 0.057*\"hitchcock\" + 0.051*\"horror\" + 0.043*\"alfred hitchcock\" + 0.030*\"tumey's dvds\" + 0.030*\"Thriller\" + 0.025*\"moody\" + 0.021*\"courtroom drama\" + 0.020*\"scary\" + 0.015*\"3\"\n", - "2021-08-24 02:38:55,588 : INFO : topic #44 (0.020): 0.114*\"Children\" + 0.109*\"Adventure\" + 0.103*\"Fantasy\" + 0.071*\"disney\" + 0.064*\"Animation\" + 0.054*\"Comedy\" + 0.049*\"fantasy\" + 0.042*\"animation\" + 0.021*\"children\" + 0.017*\"fairy tale\"\n", - "2021-08-24 02:38:55,588 : INFO : topic #40 (0.020): 0.119*\"nudity (full frontal - notable)\" + 0.094*\"magic\" + 0.072*\"edward norton\" + 0.057*\"sports\" + 0.050*\"baseball\" + 0.049*\"not corv lib\" + 0.041*\"hw drama\" + 0.029*\"compassionate\" + 0.025*\"christopher walken\" + 0.025*\"inspirational\"\n", - "2021-08-24 02:38:55,589 : INFO : topic #13 (0.020): 0.163*\"time travel\" + 0.070*\"twist ending\" + 0.061*\"holocaust\" + 0.028*\"bill murray\" + 0.027*\"post apocalyptic\" + 0.026*\"post-apocalyptic\" + 0.022*\"mindfuck\" + 0.018*\"good dialogue\" + 0.017*\"very good\" + 0.017*\"liam neeson\"\n", - "2021-08-24 02:38:55,590 : INFO : topic #7 (0.020): 0.160*\"movie to see\" + 0.071*\"mel gibson\" + 0.051*\"boxing\" + 0.033*\"suburbia\" + 0.031*\"kidnapping\" + 0.029*\"uma thurman\" + 0.029*\"john travolta\" + 0.027*\"sylvester stallone\" + 0.022*\"basketball\" + 0.015*\"intense\"\n", - "2021-08-24 02:38:55,591 : INFO : topic diff=0.058335, rho=0.206988\n", - "2021-08-24 02:38:55,592 : INFO : PROGRESS: pass 17, at document #8000/10681\n", - "2021-08-24 02:38:55,821 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:55,849 : INFO : topic #48 (0.020): 0.051*\"quirky\" + 0.047*\"surreal\" + 0.043*\"directorial debut\" + 0.027*\"bittersweet\" + 0.026*\"woody allen\" + 0.023*\"humorous\" + 0.020*\"whimsical\" + 0.020*\"erlend's dvds\" + 0.019*\"peter jackson\" + 0.019*\"coming of age\"\n", - "2021-08-24 02:38:55,850 : INFO : topic #14 (0.020): 0.112*\"Mystery\" + 0.065*\"Horror\" + 0.058*\"Thriller\" + 0.038*\"disturbing\" + 0.033*\"atmospheric\" + 0.028*\"erlend's dvds\" + 0.027*\"tense\" + 0.025*\"ominous\" + 0.024*\"menacing\" + 0.023*\"dvd-r\"\n", - "2021-08-24 02:38:55,851 : INFO : topic #29 (0.020): 0.136*\"action\" + 0.057*\"Action\" + 0.050*\"adventure\" + 0.039*\"sequel\" + 0.032*\"Adventure\" + 0.031*\"boring\" + 0.028*\"robots\" + 0.026*\"arnold schwarzenegger\" + 0.025*\"pirates\" + 0.023*\"motorcycle\"\n", - "2021-08-24 02:38:55,852 : INFO : topic #28 (0.020): 0.126*\"pixar\" + 0.092*\"oscar (best actress)\" + 0.037*\"mockumentary\" + 0.026*\"medieval\" + 0.025*\"elijah wood\" + 0.023*\"dinosaurs\" + 0.021*\"nostalgia\" + 0.021*\"computer animation\" + 0.017*\"high fantasy\" + 0.017*\"cgi\"\n", - "2021-08-24 02:38:55,853 : INFO : topic #9 (0.020): 0.200*\"r\" + 0.111*\"Western\" + 0.093*\"clearplay\" + 0.084*\"nudity (topless - brief)\" + 0.058*\"Drama\" + 0.026*\"pg13\" + 0.025*\"british\" + 0.022*\"Thriller\" + 0.021*\"russell crowe\" + 0.018*\"jane austen\"\n", - "2021-08-24 02:38:55,854 : INFO : topic diff=0.046992, rho=0.206988\n", - "2021-08-24 02:38:55,856 : INFO : PROGRESS: pass 17, at document #10000/10681\n", - "2021-08-24 02:38:56,100 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:56,128 : INFO : topic #48 (0.020): 0.047*\"quirky\" + 0.043*\"surreal\" + 0.040*\"directorial debut\" + 0.027*\"bittersweet\" + 0.024*\"woody allen\" + 0.023*\"humorous\" + 0.021*\"whimsical\" + 0.019*\"erlend's dvds\" + 0.018*\"sad\" + 0.018*\"peter jackson\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:56,129 : INFO : topic #35 (0.020): 0.153*\"comedy\" + 0.133*\"Comedy\" + 0.085*\"funny\" + 0.047*\"parody\" + 0.039*\"hilarious\" + 0.029*\"ummarti2006\" + 0.025*\"can't remember\" + 0.023*\"stupid\" + 0.020*\"spoof\" + 0.019*\"afi 100 (laughs)\"\n", - "2021-08-24 02:38:56,130 : INFO : topic #3 (0.020): 0.287*\"nudity (topless)\" + 0.102*\"zombies\" + 0.049*\"nudity (topless - brief)\" + 0.026*\"keira knightley\" + 0.023*\"zombie\" + 0.023*\"virtual reality\" + 0.021*\"ingmar bergman\" + 0.016*\"fascism\" + 0.014*\"robert altman\" + 0.012*\"futuristic\"\n", - "2021-08-24 02:38:56,131 : INFO : topic #31 (0.020): 0.099*\"murder\" + 0.091*\"james bond\" + 0.055*\"007\" + 0.050*\"bond\" + 0.035*\"assassin\" + 0.031*\"claymation\" + 0.022*\"Thriller\" + 0.021*\"aardman\" + 0.020*\"Action\" + 0.019*\"franchise\"\n", - "2021-08-24 02:38:56,132 : INFO : topic #2 (0.020): 0.100*\"lesbian\" + 0.099*\"Comedy\" + 0.098*\"satire\" + 0.053*\"imdb bottom 100\" + 0.031*\"sexy\" + 0.026*\"get\" + 0.021*\"olympics\" + 0.020*\"ben stiller\" + 0.016*\"john turturro\" + 0.015*\"amnesia\"\n", - "2021-08-24 02:38:56,133 : INFO : topic diff=0.032990, rho=0.206988\n", - "2021-08-24 02:38:56,281 : INFO : -20.978 per-word bound, 2064813.5 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:56,282 : INFO : PROGRESS: pass 17, at document #10681/10681\n", - "2021-08-24 02:38:56,386 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:56,411 : INFO : topic #45 (0.020): 0.054*\"japan\" + 0.042*\"tense\" + 0.041*\"revenge\" + 0.034*\"clint eastwood\" + 0.029*\"forceful\" + 0.029*\"gritty\" + 0.027*\"corvallis library\" + 0.025*\"atmospheric\" + 0.024*\"Action\" + 0.023*\"akira kurosawa\"\n", - "2021-08-24 02:38:56,413 : INFO : topic #38 (0.020): 0.086*\"true story\" + 0.081*\"based on a true story\" + 0.067*\"biography\" + 0.060*\"tom hanks\" + 0.047*\"Drama\" + 0.034*\"drama\" + 0.031*\"historical\" + 0.029*\"biopic\" + 0.026*\"paris\" + 0.024*\"music\"\n", - "2021-08-24 02:38:56,413 : INFO : topic #25 (0.020): 0.220*\"Musical\" + 0.090*\"70mm\" + 0.077*\"musical\" + 0.076*\"religion\" + 0.035*\"friendship\" + 0.026*\"rock and roll\" + 0.020*\"music\" + 0.020*\"trains\" + 0.016*\"monty python\" + 0.015*\"adapted from b'way\"\n", - "2021-08-24 02:38:56,414 : INFO : topic #28 (0.020): 0.149*\"pixar\" + 0.074*\"oscar (best actress)\" + 0.041*\"mockumentary\" + 0.031*\"elijah wood\" + 0.023*\"medieval\" + 0.023*\"computer animation\" + 0.020*\"cgi\" + 0.019*\"dinosaurs\" + 0.018*\"family drama\" + 0.016*\"social commentary\"\n", - "2021-08-24 02:38:56,415 : INFO : topic #21 (0.020): 0.098*\"Drama\" + 0.053*\"criterion\" + 0.030*\"library\" + 0.026*\"sven's to see list\" + 0.023*\"tumey's dvds\" + 0.021*\"dvd-video\" + 0.021*\"irreverent\" + 0.021*\"atmospheric\" + 0.020*\"reflective\" + 0.020*\"stylized\"\n", - "2021-08-24 02:38:56,416 : INFO : topic diff=0.080245, rho=0.206988\n", - "2021-08-24 02:38:56,418 : INFO : PROGRESS: pass 18, at document #2000/10681\n", - "2021-08-24 02:38:56,686 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:56,712 : INFO : topic #45 (0.020): 0.044*\"japan\" + 0.042*\"tense\" + 0.034*\"revenge\" + 0.033*\"clint eastwood\" + 0.030*\"forceful\" + 0.029*\"atmospheric\" + 0.029*\"gritty\" + 0.024*\"sweeping\" + 0.023*\"Action\" + 0.022*\"corvallis library\"\n", - "2021-08-24 02:38:56,713 : INFO : topic #31 (0.020): 0.097*\"murder\" + 0.062*\"james bond\" + 0.044*\"assassin\" + 0.043*\"bond\" + 0.040*\"007\" + 0.039*\"claymation\" + 0.027*\"aardman\" + 0.022*\"Thriller\" + 0.021*\"Action\" + 0.020*\"killer-as-protagonist\"\n", - "2021-08-24 02:38:56,714 : INFO : topic #27 (0.020): 0.153*\"aliens\" + 0.092*\"steven spielberg\" + 0.054*\"family\" + 0.036*\"michael crichton\" + 0.025*\"to-rent\" + 0.025*\"childhood\" + 0.025*\"gambling\" + 0.022*\"alien\" + 0.019*\"didn't finish\" + 0.017*\"poker\"\n", - "2021-08-24 02:38:56,714 : INFO : topic #25 (0.020): 0.198*\"Musical\" + 0.087*\"70mm\" + 0.083*\"musical\" + 0.065*\"religion\" + 0.030*\"friendship\" + 0.025*\"rock and roll\" + 0.023*\"music\" + 0.022*\"monty python\" + 0.016*\"trains\" + 0.016*\"adapted from b'way\"\n", - "2021-08-24 02:38:56,715 : INFO : topic #7 (0.020): 0.199*\"movie to see\" + 0.065*\"mel gibson\" + 0.045*\"boxing\" + 0.035*\"uma thurman\" + 0.032*\"kidnapping\" + 0.032*\"john travolta\" + 0.029*\"sylvester stallone\" + 0.024*\"suburbia\" + 0.019*\"basketball\" + 0.014*\"do kupienia\"\n", - "2021-08-24 02:38:56,716 : INFO : topic diff=0.162543, rho=0.202691\n", - "2021-08-24 02:38:56,717 : INFO : PROGRESS: pass 18, at document #4000/10681\n", - "2021-08-24 02:38:56,971 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:56,997 : INFO : topic #36 (0.020): 0.127*\"dark comedy\" + 0.083*\"bechdel test:fail\" + 0.079*\"black comedy\" + 0.044*\"nazis\" + 0.033*\"cold war\" + 0.028*\"funniest movies\" + 0.013*\"existentialism\" + 0.013*\"nuclear war\" + 0.013*\"communism\" + 0.013*\"russia\"\n", - "2021-08-24 02:38:56,998 : INFO : topic #3 (0.020): 0.313*\"nudity (topless)\" + 0.076*\"zombies\" + 0.060*\"nudity (topless - brief)\" + 0.029*\"virtual reality\" + 0.020*\"keira knightley\" + 0.014*\"zombie\" + 0.014*\"ingmar bergman\" + 0.013*\"robert altman\" + 0.012*\"futuristic\" + 0.012*\"strippers\"\n", - "2021-08-24 02:38:56,999 : INFO : topic #37 (0.020): 0.059*\"easily confused with other movie(s) (title)\" + 0.043*\"oscar (best supporting actress)\" + 0.042*\"vietnam war\" + 0.041*\"vietnam\" + 0.041*\"want to see again\" + 0.036*\"food\" + 0.033*\"j netflix\" + 0.022*\"19th century\" + 0.020*\"peter sellers\" + 0.018*\"alcoholism\"\n", - "2021-08-24 02:38:57,000 : INFO : topic #23 (0.020): 0.076*\"mafia\" + 0.043*\"al pacino\" + 0.036*\"robert de niro\" + 0.022*\"marlon brando\" + 0.022*\"guns\" + 0.020*\"poverty\" + 0.018*\"tumey's dvds\" + 0.017*\"francis ford coppola\" + 0.017*\"eddie murphy\" + 0.016*\"nudity (full frontal - brief)\"\n", - "2021-08-24 02:38:57,000 : INFO : topic #0 (0.020): 0.096*\"crime\" + 0.061*\"brad pitt\" + 0.060*\"violence\" + 0.042*\"Crime\" + 0.037*\"morgan freeman\" + 0.036*\"violent\" + 0.032*\"organized crime\" + 0.030*\"thriller\" + 0.027*\"Thriller\" + 0.027*\"philip seymour hoffman\"\n", - "2021-08-24 02:38:57,002 : INFO : topic diff=0.028410, rho=0.202691\n", - "2021-08-24 02:38:57,003 : INFO : PROGRESS: pass 18, at document #6000/10681\n", - "2021-08-24 02:38:57,240 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:57,267 : INFO : topic #29 (0.020): 0.138*\"action\" + 0.057*\"Action\" + 0.051*\"adventure\" + 0.038*\"sequel\" + 0.032*\"boring\" + 0.032*\"Adventure\" + 0.030*\"robots\" + 0.028*\"arnold schwarzenegger\" + 0.020*\"motorcycle\" + 0.020*\"death\"\n", - "2021-08-24 02:38:57,268 : INFO : topic #7 (0.020): 0.161*\"movie to see\" + 0.070*\"mel gibson\" + 0.051*\"boxing\" + 0.033*\"suburbia\" + 0.031*\"kidnapping\" + 0.030*\"uma thurman\" + 0.029*\"john travolta\" + 0.027*\"sylvester stallone\" + 0.022*\"basketball\" + 0.015*\"intense\"\n", - "2021-08-24 02:38:57,269 : INFO : topic #23 (0.020): 0.070*\"mafia\" + 0.045*\"al pacino\" + 0.033*\"robert de niro\" + 0.025*\"guns\" + 0.022*\"poverty\" + 0.021*\"eddie murphy\" + 0.020*\"marlon brando\" + 0.017*\"tumey's dvds\" + 0.017*\"francis ford coppola\" + 0.017*\"michael caine\"\n", - "2021-08-24 02:38:57,270 : INFO : topic #3 (0.020): 0.298*\"nudity (topless)\" + 0.081*\"zombies\" + 0.054*\"nudity (topless - brief)\" + 0.026*\"virtual reality\" + 0.023*\"zombie\" + 0.017*\"keira knightley\" + 0.014*\"ingmar bergman\" + 0.014*\"robert altman\" + 0.013*\"futuristic\" + 0.011*\"strippers\"\n", - "2021-08-24 02:38:57,270 : INFO : topic #5 (0.020): 0.227*\"Action\" + 0.200*\"Thriller\" + 0.173*\"Horror\" + 0.134*\"Sci-Fi\" + 0.064*\"Adventure\" + 0.041*\"betamax\" + 0.019*\"can't remember\" + 0.009*\"courtroom\" + 0.008*\"70mm\" + 0.008*\"dvd-video\"\n", - "2021-08-24 02:38:57,272 : INFO : topic diff=0.057110, rho=0.202691\n", - "2021-08-24 02:38:57,273 : INFO : PROGRESS: pass 18, at document #8000/10681\n", - "2021-08-24 02:38:57,557 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:57,584 : INFO : topic #11 (0.020): 0.272*\"Documentary\" + 0.142*\"to see\" + 0.077*\"in netflix queue\" + 0.067*\"gay\" + 0.045*\"oscar (best actor)\" + 0.024*\"india\" + 0.020*\"homosexuality\" + 0.019*\"matter-of-fact\" + 0.018*\"IMAX\" + 0.015*\"ian mckellen\"\n", - "2021-08-24 02:38:57,585 : INFO : topic #37 (0.020): 0.061*\"easily confused with other movie(s) (title)\" + 0.042*\"oscar (best supporting actress)\" + 0.042*\"want to see again\" + 0.037*\"vietnam war\" + 0.035*\"vietnam\" + 0.032*\"peter sellers\" + 0.032*\"food\" + 0.029*\"j netflix\" + 0.023*\"19th century\" + 0.021*\"father daughter relationship\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:57,585 : INFO : topic #15 (0.020): 0.054*\"racism\" + 0.054*\"coen brothers\" + 0.053*\"stephen king\" + 0.039*\"adultery\" + 0.034*\"espionage\" + 0.025*\"los angeles\" + 0.022*\"great acting\" + 0.021*\"notable nudity\" + 0.020*\"multiple storylines\" + 0.020*\"ensemble cast\"\n", - "2021-08-24 02:38:57,586 : INFO : topic #18 (0.020): 0.051*\"creepy\" + 0.046*\"surrealism\" + 0.046*\"franchise\" + 0.035*\"slasher\" + 0.027*\"lurid\" + 0.024*\"robert downey jr\" + 0.022*\"adolescence\" + 0.021*\"united states\" + 0.021*\"unique\" + 0.021*\"goth\"\n", - "2021-08-24 02:38:57,587 : INFO : topic #3 (0.020): 0.264*\"nudity (topless)\" + 0.095*\"zombies\" + 0.046*\"nudity (topless - brief)\" + 0.030*\"virtual reality\" + 0.027*\"zombie\" + 0.026*\"ingmar bergman\" + 0.019*\"keira knightley\" + 0.015*\"robert altman\" + 0.013*\"futuristic\" + 0.011*\"Horror\"\n", - "2021-08-24 02:38:57,588 : INFO : topic diff=0.046030, rho=0.202691\n", - "2021-08-24 02:38:57,590 : INFO : PROGRESS: pass 18, at document #10000/10681\n", - "2021-08-24 02:38:57,824 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:57,851 : INFO : topic #7 (0.020): 0.182*\"movie to see\" + 0.051*\"boxing\" + 0.048*\"mel gibson\" + 0.035*\"uma thurman\" + 0.031*\"kidnapping\" + 0.030*\"suburbia\" + 0.025*\"sylvester stallone\" + 0.023*\"basketball\" + 0.023*\"john travolta\" + 0.015*\"sports\"\n", - "2021-08-24 02:38:57,853 : INFO : topic #0 (0.020): 0.092*\"crime\" + 0.061*\"violence\" + 0.057*\"brad pitt\" + 0.042*\"Crime\" + 0.042*\"violent\" + 0.037*\"morgan freeman\" + 0.029*\"Thriller\" + 0.024*\"thriller\" + 0.024*\"organized crime\" + 0.024*\"philip seymour hoffman\"\n", - "2021-08-24 02:38:57,854 : INFO : topic #42 (0.020): 0.168*\"johnny depp\" + 0.071*\"tim burton\" + 0.055*\"martin scorsese\" + 0.039*\"george clooney\" + 0.038*\"narrated\" + 0.024*\"ei muista\" + 0.023*\"monster\" + 0.017*\"brothers\" + 0.017*\"alien invasion\" + 0.016*\"las vegas\"\n", - "2021-08-24 02:38:57,854 : INFO : topic #19 (0.020): 0.098*\"pg-13\" + 0.067*\"ghosts\" + 0.044*\"jude law\" + 0.035*\"wedding\" + 0.031*\"julia roberts\" + 0.028*\"want to own\" + 0.028*\"infidelity\" + 0.024*\"hollywood\" + 0.021*\"prostitution\" + 0.018*\"sam peckinpah\"\n", - "2021-08-24 02:38:57,855 : INFO : topic #48 (0.020): 0.048*\"quirky\" + 0.043*\"surreal\" + 0.040*\"directorial debut\" + 0.027*\"bittersweet\" + 0.024*\"woody allen\" + 0.023*\"humorous\" + 0.021*\"whimsical\" + 0.019*\"erlend's dvds\" + 0.018*\"sad\" + 0.018*\"peter jackson\"\n", - "2021-08-24 02:38:57,857 : INFO : topic diff=0.032224, rho=0.202691\n", - "2021-08-24 02:38:58,010 : INFO : -20.978 per-word bound, 2065827.3 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:58,011 : INFO : PROGRESS: pass 18, at document #10681/10681\n", - "2021-08-24 02:38:58,115 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:58,141 : INFO : topic #18 (0.020): 0.042*\"creepy\" + 0.036*\"surrealism\" + 0.035*\"franchise\" + 0.034*\"united states\" + 0.031*\"unique\" + 0.027*\"robert downey jr\" + 0.025*\"lurid\" + 0.024*\"slasher\" + 0.018*\"macabre\" + 0.017*\"adolescence\"\n", - "2021-08-24 02:38:58,141 : INFO : topic #19 (0.020): 0.097*\"pg-13\" + 0.065*\"ghosts\" + 0.042*\"jude law\" + 0.039*\"wedding\" + 0.033*\"julia roberts\" + 0.030*\"infidelity\" + 0.024*\"want to own\" + 0.021*\"prostitution\" + 0.021*\"hollywood\" + 0.016*\"sam peckinpah\"\n", - "2021-08-24 02:38:58,142 : INFO : topic #8 (0.020): 0.091*\"space\" + 0.045*\"christianity\" + 0.031*\"harrison ford\" + 0.029*\"marx brothers\" + 0.027*\"archaeology\" + 0.021*\"kevin smith\" + 0.019*\"1970s\" + 0.018*\"spaghetti western\" + 0.018*\"western\" + 0.018*\"george lucas\"\n", - "2021-08-24 02:38:58,143 : INFO : topic #7 (0.020): 0.251*\"movie to see\" + 0.043*\"boxing\" + 0.039*\"mel gibson\" + 0.034*\"kidnapping\" + 0.028*\"uma thurman\" + 0.026*\"suburbia\" + 0.024*\"sylvester stallone\" + 0.021*\"basketball\" + 0.018*\"john travolta\" + 0.015*\"do kupienia\"\n", - "2021-08-24 02:38:58,144 : INFO : topic #41 (0.020): 0.260*\"based on a book\" + 0.107*\"adapted from:book\" + 0.083*\"netflix\" + 0.075*\"Drama\" + 0.066*\"nudity (full frontal)\" + 0.036*\"vampire\" + 0.035*\"robin williams\" + 0.027*\"vampires\" + 0.011*\"book\" + 0.009*\"drama\"\n", - "2021-08-24 02:38:58,145 : INFO : topic diff=0.078698, rho=0.202691\n", - "2021-08-24 02:38:58,147 : INFO : PROGRESS: pass 19, at document #2000/10681\n", - "2021-08-24 02:38:58,419 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:58,445 : INFO : topic #35 (0.020): 0.163*\"comedy\" + 0.130*\"Comedy\" + 0.079*\"funny\" + 0.047*\"parody\" + 0.039*\"hilarious\" + 0.031*\"can't remember\" + 0.023*\"stupid\" + 0.020*\"spoof\" + 0.020*\"ummarti2006\" + 0.018*\"seen more than once\"\n", - "2021-08-24 02:38:58,446 : INFO : topic #29 (0.020): 0.144*\"action\" + 0.054*\"Action\" + 0.051*\"adventure\" + 0.036*\"sequel\" + 0.034*\"Adventure\" + 0.030*\"robots\" + 0.029*\"boring\" + 0.026*\"arnold schwarzenegger\" + 0.024*\"death\" + 0.023*\"pirates\"\n", - "2021-08-24 02:38:58,447 : INFO : topic #14 (0.020): 0.127*\"Mystery\" + 0.061*\"Thriller\" + 0.055*\"Horror\" + 0.040*\"disturbing\" + 0.031*\"atmospheric\" + 0.026*\"tense\" + 0.026*\"ominous\" + 0.023*\"erlend's dvds\" + 0.023*\"menacing\" + 0.022*\"dvd-r\"\n", - "2021-08-24 02:38:58,448 : INFO : topic #34 (0.020): 0.169*\"War\" + 0.120*\"Drama\" + 0.097*\"world war ii\" + 0.072*\"drugs\" + 0.051*\"war\" + 0.044*\"prison\" + 0.038*\"history\" + 0.028*\"Action\" + 0.022*\"london\" + 0.018*\"Adventure\"\n", - "2021-08-24 02:38:58,448 : INFO : topic #20 (0.020): 0.142*\"politics\" + 0.075*\"documentary\" + 0.068*\"jack nicholson\" + 0.044*\"terrorism\" + 0.039*\"love story\" + 0.036*\"seen 2008\" + 0.035*\"propaganda\" + 0.033*\"Documentary\" + 0.032*\"political\" + 0.028*\"assassination\"\n", - "2021-08-24 02:38:58,449 : INFO : topic diff=0.158332, rho=0.198652\n", - "2021-08-24 02:38:58,451 : INFO : PROGRESS: pass 19, at document #4000/10681\n", - "2021-08-24 02:38:58,696 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:58,723 : INFO : topic #14 (0.020): 0.118*\"Mystery\" + 0.062*\"Horror\" + 0.058*\"Thriller\" + 0.039*\"disturbing\" + 0.033*\"atmospheric\" + 0.026*\"ominous\" + 0.025*\"tense\" + 0.025*\"erlend's dvds\" + 0.022*\"scary movies to see on halloween\" + 0.022*\"menacing\"\n", - "2021-08-24 02:38:58,724 : INFO : topic #6 (0.020): 0.087*\"martial arts\" + 0.062*\"cult film\" + 0.045*\"gothic\" + 0.034*\"campy\" + 0.030*\"cult classic\" + 0.027*\"australia\" + 0.026*\"silly\" + 0.019*\"seen 2006\" + 0.019*\"australian\" + 0.019*\"don't remember\"\n", - "2021-08-24 02:38:58,725 : INFO : topic #34 (0.020): 0.164*\"War\" + 0.116*\"Drama\" + 0.097*\"world war ii\" + 0.083*\"drugs\" + 0.048*\"war\" + 0.040*\"prison\" + 0.036*\"history\" + 0.030*\"Action\" + 0.020*\"london\" + 0.017*\"Adventure\"\n", - "2021-08-24 02:38:58,726 : INFO : topic #2 (0.020): 0.102*\"satire\" + 0.100*\"Comedy\" + 0.096*\"lesbian\" + 0.050*\"imdb bottom 100\" + 0.032*\"sexy\" + 0.027*\"get\" + 0.019*\"olympics\" + 0.019*\"1\" + 0.017*\"john turturro\" + 0.017*\"charlie chaplin\"\n", - "2021-08-24 02:38:58,727 : INFO : topic #22 (0.020): 0.074*\"national film registry\" + 0.055*\"oscar (best cinematography)\" + 0.048*\"classic\" + 0.035*\"imdb top 250\" + 0.031*\"stanley kubrick\" + 0.030*\"afi 100 (thrills)\" + 0.030*\"afi 100\" + 0.029*\"tumey's dvds\" + 0.027*\"black and white\" + 0.026*\"70mm\"\n", - "2021-08-24 02:38:58,728 : INFO : topic diff=0.027480, rho=0.198652\n", - "2021-08-24 02:38:58,729 : INFO : PROGRESS: pass 19, at document #6000/10681\n", - "2021-08-24 02:38:58,953 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:58,980 : INFO : topic #0 (0.020): 0.102*\"crime\" + 0.061*\"brad pitt\" + 0.060*\"violence\" + 0.042*\"Crime\" + 0.037*\"morgan freeman\" + 0.035*\"violent\" + 0.031*\"organized crime\" + 0.028*\"philip seymour hoffman\" + 0.026*\"Thriller\" + 0.026*\"thriller\"\n", - "2021-08-24 02:38:58,981 : INFO : topic #5 (0.020): 0.228*\"Action\" + 0.200*\"Thriller\" + 0.174*\"Horror\" + 0.134*\"Sci-Fi\" + 0.064*\"Adventure\" + 0.041*\"betamax\" + 0.019*\"can't remember\" + 0.009*\"courtroom\" + 0.008*\"dvd-video\" + 0.007*\"vhs\"\n", - "2021-08-24 02:38:58,982 : INFO : topic #41 (0.020): 0.250*\"based on a book\" + 0.116*\"adapted from:book\" + 0.068*\"Drama\" + 0.058*\"robin williams\" + 0.055*\"nudity (full frontal)\" + 0.046*\"netflix\" + 0.038*\"vampire\" + 0.032*\"vampires\" + 0.016*\"book\" + 0.012*\"drama\"\n", - "2021-08-24 02:38:58,983 : INFO : topic #48 (0.020): 0.052*\"quirky\" + 0.046*\"directorial debut\" + 0.045*\"surreal\" + 0.025*\"woody allen\" + 0.024*\"bittersweet\" + 0.023*\"humorous\" + 0.022*\"whimsical\" + 0.020*\"coming of age\" + 0.019*\"underrated\" + 0.019*\"erlend's dvds\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:38:58,984 : INFO : topic #21 (0.020): 0.093*\"Drama\" + 0.051*\"criterion\" + 0.026*\"library\" + 0.025*\"tumey's dvds\" + 0.023*\"dvd-video\" + 0.023*\"sven's to see list\" + 0.023*\"satirical\" + 0.022*\"atmospheric\" + 0.022*\"reflective\" + 0.020*\"deliberate\"\n", - "2021-08-24 02:38:58,985 : INFO : topic diff=0.055485, rho=0.198652\n", - "2021-08-24 02:38:58,986 : INFO : PROGRESS: pass 19, at document #8000/10681\n", - "2021-08-24 02:38:59,239 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:59,267 : INFO : topic #10 (0.020): 0.448*\"Comedy\" + 0.234*\"Romance\" + 0.194*\"Drama\" + 0.013*\"bibliothek\" + 0.013*\"betamax\" + 0.004*\"oppl\" + 0.004*\"divorce\" + 0.004*\"owen wilson\" + 0.004*\"library vhs\" + 0.003*\"world war i\"\n", - "2021-08-24 02:38:59,268 : INFO : topic #38 (0.020): 0.082*\"tom hanks\" + 0.081*\"true story\" + 0.058*\"biography\" + 0.051*\"based on a true story\" + 0.047*\"Drama\" + 0.045*\"drama\" + 0.031*\"historical\" + 0.028*\"biopic\" + 0.027*\"music\" + 0.024*\"paris\"\n", - "2021-08-24 02:38:59,268 : INFO : topic #13 (0.020): 0.152*\"time travel\" + 0.068*\"twist ending\" + 0.057*\"holocaust\" + 0.035*\"bill murray\" + 0.029*\"post-apocalyptic\" + 0.024*\"post apocalyptic\" + 0.020*\"very good\" + 0.020*\"michael moore\" + 0.019*\"mindfuck\" + 0.016*\"liam neeson\"\n", - "2021-08-24 02:38:59,269 : INFO : topic #17 (0.020): 0.062*\"police\" + 0.055*\"will smith\" + 0.031*\"computers\" + 0.029*\"corruption\" + 0.027*\"sandra bullock\" + 0.019*\"milla jovovich\" + 0.018*\"no dialogue\" + 0.017*\"torture\" + 0.016*\"stage\" + 0.016*\"action packed\"\n", - "2021-08-24 02:38:59,270 : INFO : topic #3 (0.020): 0.266*\"nudity (topless)\" + 0.095*\"zombies\" + 0.044*\"nudity (topless - brief)\" + 0.030*\"virtual reality\" + 0.027*\"zombie\" + 0.026*\"ingmar bergman\" + 0.020*\"keira knightley\" + 0.015*\"robert altman\" + 0.013*\"futuristic\" + 0.011*\"Horror\"\n", - "2021-08-24 02:38:59,271 : INFO : topic diff=0.045148, rho=0.198652\n", - "2021-08-24 02:38:59,272 : INFO : PROGRESS: pass 19, at document #10000/10681\n", - "2021-08-24 02:38:59,553 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:38:59,581 : INFO : topic #26 (0.020): 0.200*\"classic\" + 0.129*\"oscar (best picture)\" + 0.054*\"oscar (best directing)\" + 0.051*\"oscar (best supporting actor)\" + 0.034*\"matt damon\" + 0.023*\"afi 100\" + 0.021*\"afi 100 (cheers)\" + 0.020*\"national film registry\" + 0.018*\"oscar (best supporting actress)\" + 0.015*\"afi 100 (laughs)\"\n", - "2021-08-24 02:38:59,582 : INFO : topic #38 (0.020): 0.084*\"true story\" + 0.067*\"tom hanks\" + 0.061*\"biography\" + 0.053*\"based on a true story\" + 0.047*\"Drama\" + 0.040*\"drama\" + 0.034*\"biopic\" + 0.029*\"historical\" + 0.028*\"pg\" + 0.027*\"paris\"\n", - "2021-08-24 02:38:59,582 : INFO : topic #7 (0.020): 0.185*\"movie to see\" + 0.051*\"boxing\" + 0.049*\"mel gibson\" + 0.035*\"uma thurman\" + 0.031*\"kidnapping\" + 0.030*\"suburbia\" + 0.025*\"sylvester stallone\" + 0.023*\"basketball\" + 0.023*\"john travolta\" + 0.015*\"sports\"\n", - "2021-08-24 02:38:59,583 : INFO : topic #24 (0.020): 0.056*\"tom cruise\" + 0.038*\"france\" + 0.034*\"golden palm\" + 0.034*\"nicole kidman\" + 0.031*\"on dvr\" + 0.029*\"french\" + 0.027*\"dustin hoffman\" + 0.024*\"disability\" + 0.021*\"bank robbery\" + 0.019*\"watch\"\n", - "2021-08-24 02:38:59,584 : INFO : topic #5 (0.020): 0.235*\"Action\" + 0.204*\"Thriller\" + 0.172*\"Horror\" + 0.131*\"Sci-Fi\" + 0.067*\"Adventure\" + 0.033*\"betamax\" + 0.014*\"can't remember\" + 0.009*\"courtroom\" + 0.007*\"vhs\" + 0.007*\"dvd-video\"\n", - "2021-08-24 02:38:59,585 : INFO : topic diff=0.031387, rho=0.198652\n", - "2021-08-24 02:38:59,741 : INFO : -20.978 per-word bound, 2065603.9 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:38:59,742 : INFO : PROGRESS: pass 19, at document #10681/10681\n", - "2021-08-24 02:38:59,864 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:38:59,891 : INFO : topic #46 (0.020): 0.082*\"dvd\" + 0.075*\"overrated\" + 0.047*\"seen more than once\" + 0.046*\"owned\" + 0.037*\"imdb top 250\" + 0.032*\"samuel l. jackson\" + 0.026*\"bibliothek\" + 0.026*\"eric's dvds\" + 0.020*\"ridley scott\" + 0.020*\"tumey's dvds\"\n", - "2021-08-24 02:38:59,892 : INFO : topic #10 (0.020): 0.439*\"Comedy\" + 0.240*\"Romance\" + 0.202*\"Drama\" + 0.009*\"bibliothek\" + 0.009*\"betamax\" + 0.008*\"oppl\" + 0.006*\"owen wilson\" + 0.005*\"divorce\" + 0.003*\"world war i\" + 0.003*\"library vhs\"\n", - "2021-08-24 02:38:59,892 : INFO : topic #24 (0.020): 0.048*\"tom cruise\" + 0.038*\"france\" + 0.032*\"golden palm\" + 0.032*\"nicole kidman\" + 0.031*\"disability\" + 0.030*\"on dvr\" + 0.028*\"french\" + 0.026*\"dustin hoffman\" + 0.020*\"mask\" + 0.018*\"bank robbery\"\n", - "2021-08-24 02:38:59,893 : INFO : topic #21 (0.020): 0.098*\"Drama\" + 0.053*\"criterion\" + 0.030*\"library\" + 0.026*\"sven's to see list\" + 0.023*\"tumey's dvds\" + 0.021*\"dvd-video\" + 0.021*\"irreverent\" + 0.021*\"atmospheric\" + 0.020*\"reflective\" + 0.020*\"deliberate\"\n", - "2021-08-24 02:38:59,894 : INFO : topic #7 (0.020): 0.252*\"movie to see\" + 0.043*\"boxing\" + 0.039*\"mel gibson\" + 0.034*\"kidnapping\" + 0.028*\"uma thurman\" + 0.026*\"suburbia\" + 0.024*\"sylvester stallone\" + 0.021*\"basketball\" + 0.018*\"john travolta\" + 0.015*\"do kupienia\"\n", - "2021-08-24 02:38:59,895 : INFO : topic diff=0.077024, rho=0.198652\n", - "2021-08-24 02:38:59,897 : INFO : PROGRESS: pass 20, at document #2000/10681\n", - "2021-08-24 02:39:00,162 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:00,189 : INFO : topic #28 (0.020): 0.123*\"pixar\" + 0.087*\"oscar (best actress)\" + 0.045*\"mockumentary\" + 0.033*\"dinosaurs\" + 0.028*\"medieval\" + 0.024*\"elijah wood\" + 0.018*\"computer animation\" + 0.018*\"christopher guest\" + 0.017*\"cgi\" + 0.015*\"best war films\"\n", - "2021-08-24 02:39:00,190 : INFO : topic #33 (0.020): 0.169*\"comic book\" + 0.132*\"superhero\" + 0.065*\"super-hero\" + 0.039*\"adapted from:comic\" + 0.037*\"batman\" + 0.037*\"gene hackman\" + 0.026*\"action\" + 0.025*\"Action\" + 0.020*\"alter ego\" + 0.019*\"based on a comic\"\n", - "2021-08-24 02:39:00,191 : INFO : topic #23 (0.020): 0.083*\"mafia\" + 0.039*\"al pacino\" + 0.033*\"robert de niro\" + 0.025*\"marlon brando\" + 0.023*\"guns\" + 0.020*\"poverty\" + 0.019*\"scifi\" + 0.019*\"francis ford coppola\" + 0.016*\"michael caine\" + 0.016*\"tumey's dvds\"\n", - "2021-08-24 02:39:00,192 : INFO : topic #26 (0.020): 0.219*\"classic\" + 0.174*\"oscar (best picture)\" + 0.067*\"oscar (best directing)\" + 0.044*\"oscar (best supporting actor)\" + 0.034*\"afi 100\" + 0.022*\"national film registry\" + 0.019*\"matt damon\" + 0.019*\"afi 100 (cheers)\" + 0.018*\"best picture\" + 0.017*\"oscar (best supporting actress)\"\n", - "2021-08-24 02:39:00,192 : INFO : topic #47 (0.020): 0.274*\"less than 300 ratings\" + 0.143*\"Drama\" + 0.065*\"nudity (rear)\" + 0.029*\"jackie chan\" + 0.027*\"kung fu\" + 0.026*\"oppl\" + 0.019*\"denzel washington\" + 0.019*\"football\" + 0.017*\"aids\" + 0.014*\"bechdel test:pass\"\n", - "2021-08-24 02:39:00,194 : INFO : topic diff=0.155080, rho=0.194844\n", - "2021-08-24 02:39:00,195 : INFO : PROGRESS: pass 20, at document #4000/10681\n", - "2021-08-24 02:39:00,453 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:00,479 : INFO : topic #41 (0.020): 0.249*\"based on a book\" + 0.114*\"adapted from:book\" + 0.069*\"Drama\" + 0.057*\"robin williams\" + 0.056*\"nudity (full frontal)\" + 0.053*\"netflix\" + 0.038*\"vampire\" + 0.028*\"vampires\" + 0.015*\"book\" + 0.013*\"drama\"\n", - "2021-08-24 02:39:00,480 : INFO : topic #28 (0.020): 0.126*\"pixar\" + 0.093*\"oscar (best actress)\" + 0.042*\"mockumentary\" + 0.028*\"medieval\" + 0.028*\"dinosaurs\" + 0.022*\"nostalgia\" + 0.019*\"computer animation\" + 0.019*\"elijah wood\" + 0.017*\"christopher guest\" + 0.016*\"golf\"\n", - "2021-08-24 02:39:00,481 : INFO : topic #19 (0.020): 0.088*\"ghosts\" + 0.063*\"pg-13\" + 0.040*\"julia roberts\" + 0.036*\"jude law\" + 0.032*\"wedding\" + 0.030*\"hollywood\" + 0.028*\"afternoon section\" + 0.028*\"infidelity\" + 0.027*\"want to own\" + 0.023*\"prostitution\"\n", - "2021-08-24 02:39:00,482 : INFO : topic #38 (0.020): 0.085*\"true story\" + 0.085*\"tom hanks\" + 0.059*\"biography\" + 0.059*\"based on a true story\" + 0.047*\"Drama\" + 0.045*\"drama\" + 0.030*\"music\" + 0.030*\"historical\" + 0.028*\"biopic\" + 0.027*\"oscar (best actor)\"\n", - "2021-08-24 02:39:00,482 : INFO : topic #18 (0.020): 0.053*\"franchise\" + 0.047*\"surrealism\" + 0.039*\"creepy\" + 0.039*\"slasher\" + 0.028*\"robert downey jr\" + 0.028*\"united states\" + 0.024*\"lurid\" + 0.023*\"unique\" + 0.021*\"no rec?\" + 0.020*\"goth\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:39:00,483 : INFO : topic diff=0.027052, rho=0.194844\n", - "2021-08-24 02:39:00,485 : INFO : PROGRESS: pass 20, at document #6000/10681\n", - "2021-08-24 02:39:00,723 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:00,749 : INFO : topic #32 (0.020): 0.088*\"based on a tv show\" + 0.066*\"jim carrey\" + 0.061*\"keanu reeves\" + 0.047*\"video game adaptation\" + 0.046*\"memory\" + 0.045*\"england\" + 0.038*\"star trek\" + 0.037*\"tv\" + 0.034*\"road trip\" + 0.028*\"friday night movie\"\n", - "2021-08-24 02:39:00,750 : INFO : topic #17 (0.020): 0.059*\"will smith\" + 0.058*\"police\" + 0.032*\"corruption\" + 0.032*\"sandra bullock\" + 0.028*\"computers\" + 0.022*\"milla jovovich\" + 0.018*\"torture\" + 0.018*\"no dialogue\" + 0.016*\"action packed\" + 0.015*\"luc besson\"\n", - "2021-08-24 02:39:00,750 : INFO : topic #25 (0.020): 0.198*\"Musical\" + 0.124*\"70mm\" + 0.073*\"musical\" + 0.064*\"religion\" + 0.027*\"rock and roll\" + 0.025*\"friendship\" + 0.022*\"music\" + 0.018*\"monty python\" + 0.018*\"adapted from b'way\" + 0.015*\"trains\"\n", - "2021-08-24 02:39:00,751 : INFO : topic #6 (0.020): 0.084*\"martial arts\" + 0.060*\"cult film\" + 0.044*\"gothic\" + 0.037*\"campy\" + 0.029*\"cult classic\" + 0.028*\"silly\" + 0.027*\"australia\" + 0.026*\"australian\" + 0.020*\"sam raimi\" + 0.018*\"don't remember\"\n", - "2021-08-24 02:39:00,752 : INFO : topic #48 (0.020): 0.052*\"quirky\" + 0.046*\"directorial debut\" + 0.044*\"surreal\" + 0.025*\"woody allen\" + 0.024*\"bittersweet\" + 0.024*\"humorous\" + 0.022*\"whimsical\" + 0.020*\"coming of age\" + 0.019*\"underrated\" + 0.019*\"erlend's dvds\"\n", - "2021-08-24 02:39:00,754 : INFO : topic diff=0.054220, rho=0.194844\n", - "2021-08-24 02:39:00,756 : INFO : PROGRESS: pass 20, at document #8000/10681\n", - "2021-08-24 02:39:00,988 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:01,014 : INFO : topic #20 (0.020): 0.135*\"politics\" + 0.090*\"documentary\" + 0.065*\"jack nicholson\" + 0.043*\"terrorism\" + 0.037*\"seen 2008\" + 0.033*\"propaganda\" + 0.032*\"Documentary\" + 0.028*\"political\" + 0.027*\"love story\" + 0.027*\"aviation\"\n", - "2021-08-24 02:39:01,015 : INFO : topic #10 (0.020): 0.448*\"Comedy\" + 0.234*\"Romance\" + 0.194*\"Drama\" + 0.013*\"bibliothek\" + 0.013*\"betamax\" + 0.004*\"oppl\" + 0.004*\"divorce\" + 0.004*\"owen wilson\" + 0.004*\"library vhs\" + 0.003*\"world war i\"\n", - "2021-08-24 02:39:01,016 : INFO : topic #8 (0.020): 0.091*\"space\" + 0.040*\"harrison ford\" + 0.031*\"christianity\" + 0.025*\"marx brothers\" + 0.023*\"kevin smith\" + 0.022*\"george lucas\" + 0.022*\"spaghetti western\" + 0.020*\"archaeology\" + 0.019*\"werewolves\" + 0.018*\"sergio leone\"\n", - "2021-08-24 02:39:01,017 : INFO : topic #22 (0.020): 0.081*\"national film registry\" + 0.056*\"oscar (best cinematography)\" + 0.038*\"classic\" + 0.029*\"imdb top 250\" + 0.028*\"tumey's dvds\" + 0.027*\"afi 100 (thrills)\" + 0.026*\"clv\" + 0.026*\"black and white\" + 0.024*\"stanley kubrick\" + 0.024*\"erlend's dvds\"\n", - "2021-08-24 02:39:01,018 : INFO : topic #40 (0.020): 0.123*\"nudity (full frontal - notable)\" + 0.093*\"magic\" + 0.067*\"edward norton\" + 0.058*\"sports\" + 0.049*\"not corv lib\" + 0.045*\"baseball\" + 0.044*\"hw drama\" + 0.035*\"compassionate\" + 0.025*\"christopher walken\" + 0.024*\"inspirational\"\n", - "2021-08-24 02:39:01,019 : INFO : topic diff=0.044141, rho=0.194844\n", - "2021-08-24 02:39:01,020 : INFO : PROGRESS: pass 20, at document #10000/10681\n", - "2021-08-24 02:39:01,268 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:01,295 : INFO : topic #35 (0.020): 0.154*\"comedy\" + 0.134*\"Comedy\" + 0.085*\"funny\" + 0.047*\"parody\" + 0.039*\"hilarious\" + 0.029*\"ummarti2006\" + 0.026*\"can't remember\" + 0.023*\"stupid\" + 0.020*\"spoof\" + 0.018*\"afi 100 (laughs)\"\n", - "2021-08-24 02:39:01,296 : INFO : topic #20 (0.020): 0.142*\"politics\" + 0.097*\"documentary\" + 0.056*\"jack nicholson\" + 0.053*\"terrorism\" + 0.039*\"propaganda\" + 0.038*\"political\" + 0.037*\"love story\" + 0.035*\"seen 2008\" + 0.035*\"Documentary\" + 0.027*\"aviation\"\n", - "2021-08-24 02:39:01,297 : INFO : topic #42 (0.020): 0.167*\"johnny depp\" + 0.072*\"tim burton\" + 0.055*\"martin scorsese\" + 0.039*\"george clooney\" + 0.039*\"narrated\" + 0.024*\"ei muista\" + 0.023*\"monster\" + 0.017*\"brothers\" + 0.017*\"alien invasion\" + 0.016*\"las vegas\"\n", - "2021-08-24 02:39:01,298 : INFO : topic #41 (0.020): 0.242*\"based on a book\" + 0.113*\"adapted from:book\" + 0.071*\"netflix\" + 0.066*\"Drama\" + 0.055*\"nudity (full frontal)\" + 0.045*\"robin williams\" + 0.036*\"vampire\" + 0.034*\"vampires\" + 0.014*\"book\" + 0.010*\"drama\"\n", - "2021-08-24 02:39:01,299 : INFO : topic #11 (0.020): 0.266*\"Documentary\" + 0.148*\"to see\" + 0.083*\"in netflix queue\" + 0.073*\"gay\" + 0.036*\"oscar (best actor)\" + 0.025*\"homosexuality\" + 0.020*\"india\" + 0.019*\"matter-of-fact\" + 0.017*\"IMAX\" + 0.014*\"ian mckellen\"\n", - "2021-08-24 02:39:01,300 : INFO : topic diff=0.030812, rho=0.194844\n", - "2021-08-24 02:39:01,448 : INFO : -20.977 per-word bound, 2064612.5 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:39:01,449 : INFO : PROGRESS: pass 20, at document #10681/10681\n", - "2021-08-24 02:39:01,543 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:39:01,569 : INFO : topic #29 (0.020): 0.119*\"action\" + 0.055*\"Action\" + 0.048*\"adventure\" + 0.039*\"sequel\" + 0.035*\"Adventure\" + 0.033*\"robots\" + 0.033*\"boring\" + 0.031*\"pirates\" + 0.028*\"death\" + 0.026*\"motorcycle\"\n", - "2021-08-24 02:39:01,570 : INFO : topic #19 (0.020): 0.097*\"pg-13\" + 0.065*\"ghosts\" + 0.041*\"jude law\" + 0.039*\"wedding\" + 0.033*\"julia roberts\" + 0.030*\"infidelity\" + 0.025*\"want to own\" + 0.021*\"prostitution\" + 0.021*\"hollywood\" + 0.016*\"afternoon section\"\n", - "2021-08-24 02:39:01,570 : INFO : topic #37 (0.020): 0.079*\"easily confused with other movie(s) (title)\" + 0.041*\"j netflix\" + 0.033*\"food\" + 0.033*\"oscar (best supporting actress)\" + 0.030*\"want to see again\" + 0.027*\"vietnam war\" + 0.026*\"19th century\" + 0.025*\"vietnam\" + 0.024*\"father daughter relationship\" + 0.023*\"slow\"\n", - "2021-08-24 02:39:01,571 : INFO : topic #46 (0.020): 0.084*\"dvd\" + 0.074*\"overrated\" + 0.047*\"seen more than once\" + 0.046*\"owned\" + 0.036*\"imdb top 250\" + 0.032*\"samuel l. jackson\" + 0.027*\"eric's dvds\" + 0.027*\"bibliothek\" + 0.021*\"tumey's dvds\" + 0.020*\"ridley scott\"\n", - "2021-08-24 02:39:01,572 : INFO : topic #36 (0.020): 0.106*\"bechdel test:fail\" + 0.104*\"dark comedy\" + 0.069*\"black comedy\" + 0.043*\"nazis\" + 0.040*\"cold war\" + 0.029*\"funniest movies\" + 0.018*\"existentialism\" + 0.015*\"communism\" + 0.015*\"author:charles dickens\" + 0.014*\"russia\"\n", - "2021-08-24 02:39:01,573 : INFO : topic diff=0.075818, rho=0.194844\n", - "2021-08-24 02:39:01,574 : INFO : PROGRESS: pass 21, at document #2000/10681\n", - "2021-08-24 02:39:01,822 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:01,848 : INFO : topic #39 (0.020): 0.124*\"bruce willis\" + 0.047*\"interesting\" + 0.034*\"love\" + 0.033*\"africa\" + 0.026*\"apocalypse\" + 0.026*\"predictable\" + 0.026*\"end of the world\" + 0.025*\"gerard depardieu\" + 0.023*\"good\" + 0.023*\"golden raspberry (worst actor)\"\n", - "2021-08-24 02:39:01,849 : INFO : topic #30 (0.020): 0.644*\"Drama\" + 0.039*\"Film-Noir\" + 0.012*\"tumey's dvds\" + 0.010*\"small town\" + 0.008*\"film noir\" + 0.008*\"witch\" + 0.007*\"erlend's dvds\" + 0.007*\"italy\" + 0.007*\"animal:dog\" + 0.007*\"glbt\"\n", - "2021-08-24 02:39:01,849 : INFO : topic #42 (0.020): 0.155*\"johnny depp\" + 0.078*\"tim burton\" + 0.065*\"martin scorsese\" + 0.036*\"narrated\" + 0.031*\"george clooney\" + 0.026*\"monster\" + 0.022*\"alien invasion\" + 0.021*\"brothers\" + 0.020*\"ei muista\" + 0.018*\"disaster\"\n", - "2021-08-24 02:39:01,850 : INFO : topic #27 (0.020): 0.152*\"aliens\" + 0.091*\"steven spielberg\" + 0.054*\"family\" + 0.036*\"michael crichton\" + 0.025*\"to-rent\" + 0.025*\"gambling\" + 0.025*\"childhood\" + 0.022*\"alien\" + 0.019*\"didn't finish\" + 0.017*\"poker\"\n", - "2021-08-24 02:39:01,850 : INFO : topic #34 (0.020): 0.169*\"War\" + 0.121*\"Drama\" + 0.096*\"world war ii\" + 0.072*\"drugs\" + 0.051*\"war\" + 0.043*\"prison\" + 0.038*\"history\" + 0.028*\"Action\" + 0.022*\"london\" + 0.019*\"Adventure\"\n", - "2021-08-24 02:39:01,852 : INFO : topic diff=0.151509, rho=0.191248\n", - "2021-08-24 02:39:01,853 : INFO : PROGRESS: pass 21, at document #4000/10681\n", - "2021-08-24 02:39:02,111 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:02,137 : INFO : topic #40 (0.020): 0.121*\"nudity (full frontal - notable)\" + 0.082*\"magic\" + 0.071*\"edward norton\" + 0.061*\"sports\" + 0.051*\"not corv lib\" + 0.046*\"baseball\" + 0.037*\"hw drama\" + 0.031*\"inspirational\" + 0.025*\"christopher walken\" + 0.025*\"compassionate\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:39:02,138 : INFO : topic #47 (0.020): 0.249*\"less than 300 ratings\" + 0.135*\"Drama\" + 0.070*\"nudity (rear)\" + 0.036*\"jackie chan\" + 0.028*\"kung fu\" + 0.026*\"football\" + 0.022*\"oppl\" + 0.018*\"denzel washington\" + 0.015*\"bechdel test:pass\" + 0.015*\"aids\"\n", - "2021-08-24 02:39:02,139 : INFO : topic #20 (0.020): 0.139*\"politics\" + 0.072*\"jack nicholson\" + 0.067*\"documentary\" + 0.044*\"terrorism\" + 0.035*\"love story\" + 0.035*\"seen 2008\" + 0.032*\"aviation\" + 0.031*\"political\" + 0.031*\"propaganda\" + 0.029*\"Documentary\"\n", - "2021-08-24 02:39:02,139 : INFO : topic #10 (0.020): 0.435*\"Comedy\" + 0.236*\"Romance\" + 0.198*\"Drama\" + 0.012*\"bibliothek\" + 0.011*\"betamax\" + 0.006*\"divorce\" + 0.006*\"oppl\" + 0.005*\"owen wilson\" + 0.004*\"library vhs\" + 0.003*\"world war i\"\n", - "2021-08-24 02:39:02,140 : INFO : topic #32 (0.020): 0.093*\"based on a tv show\" + 0.074*\"jim carrey\" + 0.060*\"keanu reeves\" + 0.048*\"england\" + 0.043*\"video game adaptation\" + 0.041*\"tv\" + 0.040*\"star trek\" + 0.038*\"road trip\" + 0.034*\"memory\" + 0.025*\"seen at the cinema\"\n", - "2021-08-24 02:39:02,142 : INFO : topic diff=0.026180, rho=0.191248\n", - "2021-08-24 02:39:02,143 : INFO : PROGRESS: pass 21, at document #6000/10681\n", - "2021-08-24 02:39:02,360 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:02,387 : INFO : topic #17 (0.020): 0.059*\"will smith\" + 0.058*\"police\" + 0.032*\"corruption\" + 0.032*\"sandra bullock\" + 0.028*\"computers\" + 0.022*\"milla jovovich\" + 0.018*\"torture\" + 0.018*\"no dialogue\" + 0.016*\"action packed\" + 0.015*\"stage\"\n", - "2021-08-24 02:39:02,387 : INFO : topic #11 (0.020): 0.262*\"Documentary\" + 0.151*\"to see\" + 0.073*\"gay\" + 0.069*\"in netflix queue\" + 0.050*\"oscar (best actor)\" + 0.022*\"india\" + 0.021*\"IMAX\" + 0.021*\"homosexuality\" + 0.018*\"matter-of-fact\" + 0.014*\"ian mckellen\"\n", - "2021-08-24 02:39:02,388 : INFO : topic #29 (0.020): 0.140*\"action\" + 0.057*\"Action\" + 0.050*\"adventure\" + 0.038*\"sequel\" + 0.035*\"boring\" + 0.032*\"Adventure\" + 0.029*\"robots\" + 0.027*\"arnold schwarzenegger\" + 0.021*\"70mm\" + 0.020*\"motorcycle\"\n", - "2021-08-24 02:39:02,389 : INFO : topic #14 (0.020): 0.117*\"Mystery\" + 0.062*\"Horror\" + 0.059*\"Thriller\" + 0.039*\"disturbing\" + 0.032*\"atmospheric\" + 0.026*\"erlend's dvds\" + 0.025*\"ominous\" + 0.025*\"tense\" + 0.022*\"menacing\" + 0.020*\"tumey's dvds\"\n", - "2021-08-24 02:39:02,390 : INFO : topic #15 (0.020): 0.060*\"coen brothers\" + 0.060*\"racism\" + 0.058*\"stephen king\" + 0.039*\"adultery\" + 0.032*\"espionage\" + 0.026*\"great acting\" + 0.024*\"los angeles\" + 0.021*\"multiple storylines\" + 0.020*\"notable nudity\" + 0.018*\"ensemble cast\"\n", - "2021-08-24 02:39:02,391 : INFO : topic diff=0.052999, rho=0.191248\n", - "2021-08-24 02:39:02,392 : INFO : PROGRESS: pass 21, at document #8000/10681\n", - "2021-08-24 02:39:02,648 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:02,674 : INFO : topic #36 (0.020): 0.103*\"dark comedy\" + 0.074*\"black comedy\" + 0.074*\"bechdel test:fail\" + 0.036*\"nazis\" + 0.036*\"funniest movies\" + 0.033*\"cold war\" + 0.014*\"russia\" + 0.014*\"communism\" + 0.014*\"author:charles dickens\" + 0.013*\"existentialism\"\n", - "2021-08-24 02:39:02,675 : INFO : topic #38 (0.020): 0.082*\"true story\" + 0.082*\"tom hanks\" + 0.058*\"biography\" + 0.052*\"based on a true story\" + 0.047*\"Drama\" + 0.046*\"drama\" + 0.031*\"historical\" + 0.028*\"biopic\" + 0.027*\"music\" + 0.024*\"paris\"\n", - "2021-08-24 02:39:02,676 : INFO : topic #13 (0.020): 0.153*\"time travel\" + 0.068*\"twist ending\" + 0.057*\"holocaust\" + 0.035*\"bill murray\" + 0.029*\"post-apocalyptic\" + 0.024*\"post apocalyptic\" + 0.020*\"very good\" + 0.020*\"michael moore\" + 0.019*\"mindfuck\" + 0.016*\"liam neeson\"\n", - "2021-08-24 02:39:02,677 : INFO : topic #1 (0.020): 0.121*\"remake\" + 0.049*\"hitchcock\" + 0.045*\"horror\" + 0.037*\"alfred hitchcock\" + 0.029*\"tumey's dvds\" + 0.029*\"moody\" + 0.026*\"Thriller\" + 0.019*\"courtroom drama\" + 0.019*\"scary\" + 0.015*\"3\"\n", - "2021-08-24 02:39:02,678 : INFO : topic #43 (0.020): 0.307*\"Crime\" + 0.159*\"Drama\" + 0.108*\"Thriller\" + 0.048*\"nudity (topless - notable)\" + 0.044*\"Mystery\" + 0.023*\"shakespeare\" + 0.022*\"nicolas cage\" + 0.017*\"remade\" + 0.015*\"sean penn\" + 0.015*\"adapted from:play\"\n", - "2021-08-24 02:39:02,679 : INFO : topic diff=0.043260, rho=0.191248\n", - "2021-08-24 02:39:02,681 : INFO : PROGRESS: pass 21, at document #10000/10681\n", - "2021-08-24 02:39:02,923 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:02,951 : INFO : topic #49 (0.020): 0.128*\"anime\" + 0.060*\"psychology\" + 0.052*\"serial killer\" + 0.051*\"high school\" + 0.045*\"teen\" + 0.022*\"japan\" + 0.017*\"mental illness\" + 0.016*\"cannibalism\" + 0.014*\"anthony hopkins\" + 0.013*\"steve martin\"\n", - "2021-08-24 02:39:02,952 : INFO : topic #47 (0.020): 0.329*\"less than 300 ratings\" + 0.152*\"Drama\" + 0.064*\"nudity (rear)\" + 0.030*\"jackie chan\" + 0.020*\"kung fu\" + 0.020*\"football\" + 0.016*\"denzel washington\" + 0.015*\"oppl\" + 0.014*\"brian de palma\" + 0.010*\"bechdel test:pass\"\n", - "2021-08-24 02:39:02,952 : INFO : topic #16 (0.020): 0.169*\"sci-fi\" + 0.087*\"dystopia\" + 0.061*\"Sci-Fi\" + 0.060*\"futuristmovies.com\" + 0.032*\"military\" + 0.032*\"future\" + 0.017*\"joaquin phoenix\" + 0.015*\"weird\" + 0.011*\"gfei own it\" + 0.011*\"court\"\n", - "2021-08-24 02:39:02,953 : INFO : topic #31 (0.020): 0.100*\"murder\" + 0.090*\"james bond\" + 0.055*\"007\" + 0.050*\"bond\" + 0.036*\"assassin\" + 0.031*\"claymation\" + 0.022*\"Thriller\" + 0.021*\"aardman\" + 0.021*\"Action\" + 0.019*\"franchise\"\n", - "2021-08-24 02:39:02,954 : INFO : topic #32 (0.020): 0.085*\"based on a tv show\" + 0.066*\"jim carrey\" + 0.065*\"england\" + 0.056*\"keanu reeves\" + 0.047*\"video game adaptation\" + 0.047*\"memory\" + 0.045*\"road trip\" + 0.033*\"not funny\" + 0.028*\"tv\" + 0.027*\"friday night movie\"\n", - "2021-08-24 02:39:02,955 : INFO : topic diff=0.030189, rho=0.191248\n", - "2021-08-24 02:39:03,106 : INFO : -20.977 per-word bound, 2064346.2 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:39:03,107 : INFO : PROGRESS: pass 21, at document #10681/10681\n", - "2021-08-24 02:39:03,210 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:39:03,236 : INFO : topic #6 (0.020): 0.091*\"martial arts\" + 0.046*\"cult film\" + 0.033*\"gothic\" + 0.032*\"campy\" + 0.028*\"seen 2006\" + 0.026*\"australia\" + 0.024*\"australian\" + 0.024*\"silly\" + 0.020*\"cult classic\" + 0.018*\"freedom\"\n", - "2021-08-24 02:39:03,237 : INFO : topic #44 (0.020): 0.124*\"Adventure\" + 0.124*\"Fantasy\" + 0.114*\"Children\" + 0.073*\"Animation\" + 0.062*\"Comedy\" + 0.047*\"disney\" + 0.046*\"fantasy\" + 0.042*\"animation\" + 0.019*\"children\" + 0.018*\"movie to see\"\n", - "2021-08-24 02:39:03,238 : INFO : topic #25 (0.020): 0.218*\"Musical\" + 0.100*\"70mm\" + 0.077*\"musical\" + 0.075*\"religion\" + 0.034*\"friendship\" + 0.026*\"rock and roll\" + 0.020*\"trains\" + 0.020*\"music\" + 0.016*\"monty python\" + 0.015*\"adapted from b'way\"\n", - "2021-08-24 02:39:03,239 : INFO : topic #34 (0.020): 0.189*\"War\" + 0.135*\"Drama\" + 0.086*\"world war ii\" + 0.070*\"drugs\" + 0.043*\"war\" + 0.042*\"history\" + 0.032*\"Action\" + 0.029*\"prison\" + 0.026*\"london\" + 0.020*\"Adventure\"\n", - "2021-08-24 02:39:03,240 : INFO : topic #2 (0.020): 0.110*\"Comedy\" + 0.098*\"satire\" + 0.089*\"lesbian\" + 0.062*\"imdb bottom 100\" + 0.026*\"sexy\" + 0.022*\"get\" + 0.020*\"olympics\" + 0.017*\"ben stiller\" + 0.016*\"john turturro\" + 0.016*\"adolf hitler\"\n", - "2021-08-24 02:39:03,241 : INFO : topic diff=0.074160, rho=0.191248\n", - "2021-08-24 02:39:03,243 : INFO : PROGRESS: pass 22, at document #2000/10681\n", - "2021-08-24 02:39:03,497 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:03,524 : INFO : topic #24 (0.020): 0.059*\"tom cruise\" + 0.035*\"golden palm\" + 0.035*\"france\" + 0.033*\"dustin hoffman\" + 0.029*\"french\" + 0.027*\"on dvr\" + 0.025*\"disability\" + 0.025*\"watch\" + 0.025*\"nicole kidman\" + 0.021*\"sweet\"\n", - "2021-08-24 02:39:03,525 : INFO : topic #28 (0.020): 0.123*\"pixar\" + 0.087*\"oscar (best actress)\" + 0.045*\"mockumentary\" + 0.033*\"dinosaurs\" + 0.028*\"medieval\" + 0.024*\"elijah wood\" + 0.018*\"computer animation\" + 0.017*\"christopher guest\" + 0.017*\"cgi\" + 0.015*\"best war films\"\n", - "2021-08-24 02:39:03,526 : INFO : topic #41 (0.020): 0.257*\"based on a book\" + 0.110*\"adapted from:book\" + 0.067*\"Drama\" + 0.062*\"netflix\" + 0.061*\"nudity (full frontal)\" + 0.050*\"robin williams\" + 0.035*\"vampire\" + 0.027*\"vampires\" + 0.014*\"book\" + 0.013*\"drama\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:39:03,527 : INFO : topic #26 (0.020): 0.222*\"classic\" + 0.171*\"oscar (best picture)\" + 0.066*\"oscar (best directing)\" + 0.044*\"oscar (best supporting actor)\" + 0.034*\"afi 100\" + 0.023*\"national film registry\" + 0.019*\"matt damon\" + 0.019*\"afi 100 (cheers)\" + 0.018*\"best picture\" + 0.017*\"oscar (best supporting actress)\"\n", - "2021-08-24 02:39:03,528 : INFO : topic #10 (0.020): 0.430*\"Comedy\" + 0.242*\"Romance\" + 0.199*\"Drama\" + 0.011*\"bibliothek\" + 0.008*\"betamax\" + 0.007*\"divorce\" + 0.007*\"oppl\" + 0.005*\"owen wilson\" + 0.004*\"world war i\" + 0.003*\"library vhs\"\n", - "2021-08-24 02:39:03,529 : INFO : topic diff=0.148991, rho=0.187844\n", - "2021-08-24 02:39:03,530 : INFO : PROGRESS: pass 22, at document #4000/10681\n", - "2021-08-24 02:39:03,780 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:03,807 : INFO : topic #43 (0.020): 0.287*\"Crime\" + 0.157*\"Drama\" + 0.106*\"Thriller\" + 0.050*\"nudity (topless - notable)\" + 0.039*\"Mystery\" + 0.030*\"shakespeare\" + 0.025*\"nicolas cage\" + 0.018*\"remade\" + 0.017*\"adapted from:play\" + 0.014*\"sean penn\"\n", - "2021-08-24 02:39:03,808 : INFO : topic #22 (0.020): 0.073*\"national film registry\" + 0.056*\"oscar (best cinematography)\" + 0.040*\"classic\" + 0.034*\"imdb top 250\" + 0.031*\"stanley kubrick\" + 0.031*\"afi 100 (thrills)\" + 0.030*\"tumey's dvds\" + 0.029*\"afi 100\" + 0.027*\"black and white\" + 0.026*\"70mm\"\n", - "2021-08-24 02:39:03,809 : INFO : topic #14 (0.020): 0.118*\"Mystery\" + 0.062*\"Horror\" + 0.059*\"Thriller\" + 0.039*\"disturbing\" + 0.033*\"atmospheric\" + 0.026*\"ominous\" + 0.025*\"erlend's dvds\" + 0.025*\"tense\" + 0.022*\"menacing\" + 0.022*\"scary movies to see on halloween\"\n", - "2021-08-24 02:39:03,810 : INFO : topic #13 (0.020): 0.149*\"time travel\" + 0.073*\"twist ending\" + 0.059*\"holocaust\" + 0.034*\"bill murray\" + 0.030*\"post apocalyptic\" + 0.029*\"post-apocalyptic\" + 0.020*\"good dialogue\" + 0.018*\"mindfuck\" + 0.017*\"liam neeson\" + 0.016*\"very good\"\n", - "2021-08-24 02:39:03,811 : INFO : topic #24 (0.020): 0.066*\"tom cruise\" + 0.039*\"golden palm\" + 0.033*\"france\" + 0.032*\"dustin hoffman\" + 0.028*\"on dvr\" + 0.025*\"nicole kidman\" + 0.025*\"disability\" + 0.025*\"french\" + 0.023*\"watch\" + 0.019*\"sweet\"\n", - "2021-08-24 02:39:03,812 : INFO : topic diff=0.025509, rho=0.187844\n", - "2021-08-24 02:39:03,814 : INFO : PROGRESS: pass 22, at document #6000/10681\n", - "2021-08-24 02:39:04,037 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:04,063 : INFO : topic #3 (0.020): 0.300*\"nudity (topless)\" + 0.082*\"zombies\" + 0.053*\"nudity (topless - brief)\" + 0.026*\"virtual reality\" + 0.023*\"zombie\" + 0.018*\"keira knightley\" + 0.015*\"ingmar bergman\" + 0.014*\"robert altman\" + 0.013*\"futuristic\" + 0.012*\"strippers\"\n", - "2021-08-24 02:39:04,064 : INFO : topic #5 (0.020): 0.229*\"Action\" + 0.201*\"Thriller\" + 0.174*\"Horror\" + 0.135*\"Sci-Fi\" + 0.065*\"Adventure\" + 0.040*\"betamax\" + 0.020*\"can't remember\" + 0.009*\"courtroom\" + 0.007*\"dvd-video\" + 0.007*\"vhs\"\n", - "2021-08-24 02:39:04,065 : INFO : topic #10 (0.020): 0.447*\"Comedy\" + 0.232*\"Romance\" + 0.193*\"Drama\" + 0.013*\"bibliothek\" + 0.013*\"betamax\" + 0.005*\"divorce\" + 0.005*\"oppl\" + 0.005*\"owen wilson\" + 0.004*\"library vhs\" + 0.004*\"world war i\"\n", - "2021-08-24 02:39:04,066 : INFO : topic #44 (0.020): 0.114*\"Children\" + 0.110*\"Adventure\" + 0.104*\"Fantasy\" + 0.071*\"disney\" + 0.064*\"Animation\" + 0.054*\"Comedy\" + 0.050*\"fantasy\" + 0.043*\"animation\" + 0.021*\"children\" + 0.017*\"fairy tale\"\n", - "2021-08-24 02:39:04,067 : INFO : topic #12 (0.020): 0.103*\"christmas\" + 0.083*\"quentin tarantino\" + 0.065*\"heist\" + 0.065*\"nonlinear\" + 0.054*\"tarantino\" + 0.047*\"rape\" + 0.030*\"blindfold\" + 0.024*\"terry gilliam\" + 0.018*\"xmas theme\" + 0.016*\"ireland\"\n", - "2021-08-24 02:39:04,068 : INFO : topic diff=0.052128, rho=0.187844\n", - "2021-08-24 02:39:04,070 : INFO : PROGRESS: pass 22, at document #8000/10681\n", - "2021-08-24 02:39:04,300 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:04,327 : INFO : topic #9 (0.020): 0.201*\"r\" + 0.108*\"Western\" + 0.094*\"clearplay\" + 0.086*\"nudity (topless - brief)\" + 0.057*\"Drama\" + 0.026*\"pg13\" + 0.025*\"british\" + 0.022*\"Thriller\" + 0.021*\"russell crowe\" + 0.018*\"to see\"\n", - "2021-08-24 02:39:04,328 : INFO : topic #5 (0.020): 0.230*\"Action\" + 0.201*\"Thriller\" + 0.172*\"Horror\" + 0.135*\"Sci-Fi\" + 0.066*\"Adventure\" + 0.039*\"betamax\" + 0.018*\"can't remember\" + 0.010*\"courtroom\" + 0.008*\"vhs\" + 0.007*\"dvd-video\"\n", - "2021-08-24 02:39:04,328 : INFO : topic #11 (0.020): 0.272*\"Documentary\" + 0.143*\"to see\" + 0.076*\"in netflix queue\" + 0.068*\"gay\" + 0.045*\"oscar (best actor)\" + 0.024*\"india\" + 0.020*\"homosexuality\" + 0.019*\"matter-of-fact\" + 0.018*\"IMAX\" + 0.015*\"ian mckellen\"\n", - "2021-08-24 02:39:04,329 : INFO : topic #40 (0.020): 0.123*\"nudity (full frontal - notable)\" + 0.093*\"magic\" + 0.067*\"edward norton\" + 0.058*\"sports\" + 0.049*\"not corv lib\" + 0.045*\"baseball\" + 0.044*\"hw drama\" + 0.035*\"compassionate\" + 0.025*\"christopher walken\" + 0.024*\"inspirational\"\n", - "2021-08-24 02:39:04,330 : INFO : topic #7 (0.020): 0.171*\"movie to see\" + 0.060*\"mel gibson\" + 0.047*\"boxing\" + 0.039*\"uma thurman\" + 0.034*\"kidnapping\" + 0.029*\"suburbia\" + 0.026*\"john travolta\" + 0.026*\"sylvester stallone\" + 0.021*\"basketball\" + 0.015*\"tobey maguire\"\n", - "2021-08-24 02:39:04,331 : INFO : topic diff=0.042459, rho=0.187844\n", - "2021-08-24 02:39:04,333 : INFO : PROGRESS: pass 22, at document #10000/10681\n", - "2021-08-24 02:39:04,578 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:04,605 : INFO : topic #23 (0.020): 0.059*\"mafia\" + 0.039*\"al pacino\" + 0.028*\"robert de niro\" + 0.026*\"guns\" + 0.024*\"poverty\" + 0.022*\"michael caine\" + 0.020*\"marlon brando\" + 0.019*\"tumey's dvds\" + 0.018*\"eddie murphy\" + 0.017*\"scifi\"\n", - "2021-08-24 02:39:04,606 : INFO : topic #39 (0.020): 0.107*\"bruce willis\" + 0.057*\"interesting\" + 0.047*\"africa\" + 0.034*\"love\" + 0.031*\"predictable\" + 0.028*\"avi\" + 0.026*\"gerard depardieu\" + 0.024*\"end of the world\" + 0.023*\"golden raspberry (worst actor)\" + 0.022*\"tragedy\"\n", - "2021-08-24 02:39:04,606 : INFO : topic #47 (0.020): 0.328*\"less than 300 ratings\" + 0.152*\"Drama\" + 0.064*\"nudity (rear)\" + 0.030*\"jackie chan\" + 0.020*\"kung fu\" + 0.020*\"football\" + 0.016*\"denzel washington\" + 0.015*\"oppl\" + 0.014*\"brian de palma\" + 0.010*\"bechdel test:pass\"\n", - "2021-08-24 02:39:04,607 : INFO : topic #13 (0.020): 0.145*\"time travel\" + 0.077*\"twist ending\" + 0.051*\"holocaust\" + 0.038*\"bill murray\" + 0.029*\"post-apocalyptic\" + 0.023*\"post apocalyptic\" + 0.019*\"liam neeson\" + 0.018*\"michael moore\" + 0.018*\"very good\" + 0.018*\"mindfuck\"\n", - "2021-08-24 02:39:04,608 : INFO : topic #21 (0.020): 0.099*\"Drama\" + 0.054*\"criterion\" + 0.028*\"library\" + 0.025*\"sven's to see list\" + 0.024*\"tumey's dvds\" + 0.022*\"dvd-video\" + 0.022*\"atmospheric\" + 0.022*\"reflective\" + 0.021*\"stylized\" + 0.021*\"deliberate\"\n", - "2021-08-24 02:39:04,610 : INFO : topic diff=0.029638, rho=0.187844\n", - "2021-08-24 02:39:04,754 : INFO : -20.976 per-word bound, 2062189.3 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:39:04,755 : INFO : PROGRESS: pass 22, at document #10681/10681\n", - "2021-08-24 02:39:04,853 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:39:04,879 : INFO : topic #14 (0.020): 0.143*\"Mystery\" + 0.064*\"Horror\" + 0.064*\"Thriller\" + 0.041*\"disturbing\" + 0.029*\"atmospheric\" + 0.025*\"erlend's dvds\" + 0.023*\"tense\" + 0.022*\"ominous\" + 0.022*\"dvd-r\" + 0.021*\"menacing\"\n", - "2021-08-24 02:39:04,880 : INFO : topic #16 (0.020): 0.157*\"sci-fi\" + 0.084*\"dystopia\" + 0.061*\"Sci-Fi\" + 0.055*\"futuristmovies.com\" + 0.036*\"military\" + 0.029*\"future\" + 0.015*\"weird\" + 0.015*\"joaquin phoenix\" + 0.014*\"betrayal\" + 0.012*\"imdb top 250\"\n", - "2021-08-24 02:39:04,881 : INFO : topic #31 (0.020): 0.116*\"murder\" + 0.077*\"james bond\" + 0.047*\"007\" + 0.046*\"bond\" + 0.045*\"assassin\" + 0.026*\"claymation\" + 0.025*\"Action\" + 0.025*\"Thriller\" + 0.020*\"killer-as-protagonist\" + 0.020*\"aardman\"\n", - "2021-08-24 02:39:04,882 : INFO : topic #23 (0.020): 0.059*\"mafia\" + 0.035*\"al pacino\" + 0.028*\"poverty\" + 0.025*\"robert de niro\" + 0.024*\"michael caine\" + 0.024*\"guns\" + 0.019*\"virus\" + 0.018*\"marlon brando\" + 0.018*\"nudity (full frontal - brief)\" + 0.017*\"tumey's dvds\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:39:04,882 : INFO : topic #25 (0.020): 0.218*\"Musical\" + 0.102*\"70mm\" + 0.076*\"musical\" + 0.075*\"religion\" + 0.034*\"friendship\" + 0.026*\"rock and roll\" + 0.020*\"trains\" + 0.019*\"music\" + 0.016*\"monty python\" + 0.015*\"adapted from b'way\"\n", - "2021-08-24 02:39:04,883 : INFO : topic diff=0.072898, rho=0.187844\n", - "2021-08-24 02:39:04,885 : INFO : PROGRESS: pass 23, at document #2000/10681\n", - "2021-08-24 02:39:05,152 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:05,180 : INFO : topic #44 (0.020): 0.118*\"Children\" + 0.111*\"Adventure\" + 0.106*\"Fantasy\" + 0.079*\"disney\" + 0.062*\"Animation\" + 0.056*\"Comedy\" + 0.043*\"animation\" + 0.041*\"fantasy\" + 0.020*\"children\" + 0.016*\"fairy tale\"\n", - "2021-08-24 02:39:05,181 : INFO : topic #11 (0.020): 0.270*\"Documentary\" + 0.172*\"to see\" + 0.074*\"gay\" + 0.063*\"in netflix queue\" + 0.051*\"oscar (best actor)\" + 0.028*\"india\" + 0.019*\"homosexuality\" + 0.017*\"IMAX\" + 0.015*\"matter-of-fact\" + 0.011*\"ian mckellen\"\n", - "2021-08-24 02:39:05,182 : INFO : topic #42 (0.020): 0.155*\"johnny depp\" + 0.078*\"tim burton\" + 0.065*\"martin scorsese\" + 0.036*\"narrated\" + 0.031*\"george clooney\" + 0.026*\"monster\" + 0.022*\"alien invasion\" + 0.021*\"brothers\" + 0.020*\"ei muista\" + 0.017*\"disaster\"\n", - "2021-08-24 02:39:05,183 : INFO : topic #2 (0.020): 0.106*\"satire\" + 0.099*\"Comedy\" + 0.095*\"lesbian\" + 0.053*\"imdb bottom 100\" + 0.027*\"sexy\" + 0.022*\"get\" + 0.021*\"olympics\" + 0.018*\"john turturro\" + 0.016*\"1\" + 0.016*\"queer\"\n", - "2021-08-24 02:39:05,184 : INFO : topic #7 (0.020): 0.205*\"movie to see\" + 0.065*\"mel gibson\" + 0.045*\"boxing\" + 0.035*\"uma thurman\" + 0.032*\"kidnapping\" + 0.031*\"john travolta\" + 0.028*\"sylvester stallone\" + 0.024*\"suburbia\" + 0.019*\"basketball\" + 0.014*\"sports\"\n", - "2021-08-24 02:39:05,185 : INFO : topic diff=0.145917, rho=0.184615\n", - "2021-08-24 02:39:05,186 : INFO : PROGRESS: pass 23, at document #4000/10681\n", - "2021-08-24 02:39:05,453 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:05,479 : INFO : topic #46 (0.020): 0.086*\"dvd\" + 0.063*\"overrated\" + 0.054*\"seen more than once\" + 0.043*\"owned\" + 0.034*\"samuel l. jackson\" + 0.033*\"imdb top 250\" + 0.029*\"bibliothek\" + 0.027*\"eric's dvds\" + 0.025*\"kevin spacey\" + 0.023*\"seen at the cinema\"\n", - "2021-08-24 02:39:05,480 : INFO : topic #39 (0.020): 0.131*\"bruce willis\" + 0.052*\"interesting\" + 0.033*\"love\" + 0.028*\"africa\" + 0.025*\"end of the world\" + 0.025*\"golden raspberry (worst actor)\" + 0.024*\"good\" + 0.023*\"apocalypse\" + 0.023*\"predictable\" + 0.022*\"avi\"\n", - "2021-08-24 02:39:05,481 : INFO : topic #2 (0.020): 0.102*\"satire\" + 0.099*\"Comedy\" + 0.096*\"lesbian\" + 0.051*\"imdb bottom 100\" + 0.032*\"sexy\" + 0.027*\"get\" + 0.019*\"olympics\" + 0.018*\"1\" + 0.017*\"john turturro\" + 0.016*\"queer\"\n", - "2021-08-24 02:39:05,482 : INFO : topic #20 (0.020): 0.139*\"politics\" + 0.072*\"jack nicholson\" + 0.068*\"documentary\" + 0.044*\"terrorism\" + 0.035*\"love story\" + 0.035*\"seen 2008\" + 0.032*\"aviation\" + 0.031*\"propaganda\" + 0.031*\"political\" + 0.030*\"Documentary\"\n", - "2021-08-24 02:39:05,482 : INFO : topic #8 (0.020): 0.103*\"space\" + 0.048*\"harrison ford\" + 0.026*\"spaghetti western\" + 0.026*\"christianity\" + 0.025*\"george lucas\" + 0.025*\"kevin smith\" + 0.024*\"archaeology\" + 0.022*\"sergio leone\" + 0.019*\"space opera\" + 0.019*\"fantasy\"\n", - "2021-08-24 02:39:05,484 : INFO : topic diff=0.025060, rho=0.184615\n", - "2021-08-24 02:39:05,485 : INFO : PROGRESS: pass 23, at document #6000/10681\n", - "2021-08-24 02:39:05,717 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:05,743 : INFO : topic #30 (0.020): 0.658*\"Drama\" + 0.035*\"Film-Noir\" + 0.013*\"tumey's dvds\" + 0.010*\"small town\" + 0.008*\"italy\" + 0.007*\"glbt\" + 0.007*\"erlend's dvds\" + 0.007*\"oscar (best foreign language film)\" + 0.007*\"film noir\" + 0.007*\"witch\"\n", - "2021-08-24 02:39:05,745 : INFO : topic #38 (0.020): 0.083*\"tom hanks\" + 0.079*\"true story\" + 0.058*\"biography\" + 0.056*\"based on a true story\" + 0.047*\"Drama\" + 0.045*\"drama\" + 0.031*\"music\" + 0.029*\"historical\" + 0.027*\"biopic\" + 0.024*\"paris\"\n", - "2021-08-24 02:39:05,746 : INFO : topic #29 (0.020): 0.141*\"action\" + 0.058*\"Action\" + 0.050*\"adventure\" + 0.038*\"sequel\" + 0.035*\"boring\" + 0.032*\"Adventure\" + 0.029*\"robots\" + 0.027*\"arnold schwarzenegger\" + 0.021*\"70mm\" + 0.020*\"motorcycle\"\n", - "2021-08-24 02:39:05,747 : INFO : topic #47 (0.020): 0.245*\"less than 300 ratings\" + 0.137*\"Drama\" + 0.068*\"nudity (rear)\" + 0.040*\"jackie chan\" + 0.028*\"kung fu\" + 0.025*\"football\" + 0.019*\"oppl\" + 0.019*\"denzel washington\" + 0.018*\"brian de palma\" + 0.015*\"bechdel test:pass\"\n", - "2021-08-24 02:39:05,748 : INFO : topic #3 (0.020): 0.300*\"nudity (topless)\" + 0.082*\"zombies\" + 0.055*\"nudity (topless - brief)\" + 0.026*\"virtual reality\" + 0.023*\"zombie\" + 0.018*\"keira knightley\" + 0.015*\"ingmar bergman\" + 0.014*\"robert altman\" + 0.013*\"futuristic\" + 0.012*\"strippers\"\n", - "2021-08-24 02:39:05,749 : INFO : topic diff=0.050976, rho=0.184615\n", - "2021-08-24 02:39:05,751 : INFO : PROGRESS: pass 23, at document #8000/10681\n", - "2021-08-24 02:39:05,990 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:06,017 : INFO : topic #7 (0.020): 0.172*\"movie to see\" + 0.060*\"mel gibson\" + 0.047*\"boxing\" + 0.039*\"uma thurman\" + 0.034*\"kidnapping\" + 0.029*\"suburbia\" + 0.026*\"john travolta\" + 0.026*\"sylvester stallone\" + 0.021*\"basketball\" + 0.015*\"tobey maguire\"\n", - "2021-08-24 02:39:06,018 : INFO : topic #28 (0.020): 0.127*\"pixar\" + 0.092*\"oscar (best actress)\" + 0.038*\"mockumentary\" + 0.026*\"medieval\" + 0.025*\"elijah wood\" + 0.023*\"dinosaurs\" + 0.021*\"nostalgia\" + 0.021*\"computer animation\" + 0.017*\"cgi\" + 0.016*\"high fantasy\"\n", - "2021-08-24 02:39:06,019 : INFO : topic #35 (0.020): 0.163*\"comedy\" + 0.137*\"Comedy\" + 0.082*\"funny\" + 0.050*\"parody\" + 0.038*\"hilarious\" + 0.032*\"can't remember\" + 0.021*\"stupid\" + 0.021*\"spoof\" + 0.020*\"funny as hell\" + 0.018*\"seen more than once\"\n", - "2021-08-24 02:39:06,019 : INFO : topic #25 (0.020): 0.207*\"Musical\" + 0.136*\"70mm\" + 0.067*\"religion\" + 0.062*\"musical\" + 0.027*\"rock and roll\" + 0.024*\"friendship\" + 0.023*\"monty python\" + 0.020*\"music\" + 0.016*\"trains\" + 0.016*\"adapted from b'way\"\n", - "2021-08-24 02:39:06,020 : INFO : topic #46 (0.020): 0.090*\"dvd\" + 0.064*\"overrated\" + 0.062*\"seen more than once\" + 0.042*\"owned\" + 0.032*\"bibliothek\" + 0.030*\"samuel l. jackson\" + 0.029*\"eric's dvds\" + 0.029*\"imdb top 250\" + 0.023*\"tumey's dvds\" + 0.022*\"seen at the cinema\"\n", - "2021-08-24 02:39:06,021 : INFO : topic diff=0.041707, rho=0.184615\n", - "2021-08-24 02:39:06,023 : INFO : PROGRESS: pass 23, at document #10000/10681\n", - "2021-08-24 02:39:06,327 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:06,366 : INFO : topic #18 (0.020): 0.045*\"creepy\" + 0.042*\"surrealism\" + 0.041*\"franchise\" + 0.029*\"lurid\" + 0.029*\"slasher\" + 0.028*\"robert downey jr\" + 0.027*\"united states\" + 0.024*\"unique\" + 0.021*\"macabre\" + 0.020*\"adolescence\"\n", - "2021-08-24 02:39:06,368 : INFO : topic #33 (0.020): 0.188*\"comic book\" + 0.118*\"superhero\" + 0.079*\"super-hero\" + 0.040*\"adapted from:comic\" + 0.034*\"gene hackman\" + 0.027*\"action\" + 0.024*\"alter ego\" + 0.024*\"Action\" + 0.021*\"batman\" + 0.019*\"dark\"\n", - "2021-08-24 02:39:06,369 : INFO : topic #45 (0.020): 0.055*\"japan\" + 0.045*\"tense\" + 0.041*\"revenge\" + 0.036*\"clint eastwood\" + 0.031*\"forceful\" + 0.029*\"gritty\" + 0.027*\"corvallis library\" + 0.026*\"atmospheric\" + 0.025*\"Action\" + 0.022*\"sweeping\"\n", - "2021-08-24 02:39:06,383 : INFO : topic #42 (0.020): 0.166*\"johnny depp\" + 0.072*\"tim burton\" + 0.055*\"martin scorsese\" + 0.039*\"george clooney\" + 0.039*\"narrated\" + 0.024*\"ei muista\" + 0.023*\"monster\" + 0.017*\"brothers\" + 0.017*\"alien invasion\" + 0.016*\"las vegas\"\n", - "2021-08-24 02:39:06,384 : INFO : topic #11 (0.020): 0.267*\"Documentary\" + 0.148*\"to see\" + 0.082*\"in netflix queue\" + 0.073*\"gay\" + 0.036*\"oscar (best actor)\" + 0.025*\"homosexuality\" + 0.020*\"india\" + 0.019*\"matter-of-fact\" + 0.017*\"IMAX\" + 0.014*\"ian mckellen\"\n", - "2021-08-24 02:39:06,390 : INFO : topic diff=0.029126, rho=0.184615\n", - "2021-08-24 02:39:06,562 : INFO : -20.976 per-word bound, 2062457.1 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:39:06,563 : INFO : PROGRESS: pass 23, at document #10681/10681\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:39:06,671 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:39:06,699 : INFO : topic #28 (0.020): 0.147*\"pixar\" + 0.076*\"oscar (best actress)\" + 0.041*\"mockumentary\" + 0.030*\"elijah wood\" + 0.024*\"medieval\" + 0.023*\"computer animation\" + 0.020*\"cgi\" + 0.020*\"dinosaurs\" + 0.017*\"family drama\" + 0.016*\"social commentary\"\n", - "2021-08-24 02:39:06,700 : INFO : topic #15 (0.020): 0.055*\"racism\" + 0.054*\"coen brothers\" + 0.044*\"stephen king\" + 0.040*\"great acting\" + 0.040*\"adultery\" + 0.037*\"espionage\" + 0.026*\"los angeles\" + 0.020*\"san francisco\" + 0.020*\"ensemble cast\" + 0.019*\"notable nudity\"\n", - "2021-08-24 02:39:06,701 : INFO : topic #45 (0.020): 0.054*\"japan\" + 0.043*\"tense\" + 0.040*\"revenge\" + 0.034*\"clint eastwood\" + 0.030*\"forceful\" + 0.029*\"gritty\" + 0.027*\"corvallis library\" + 0.025*\"atmospheric\" + 0.024*\"Action\" + 0.023*\"akira kurosawa\"\n", - "2021-08-24 02:39:06,702 : INFO : topic #31 (0.020): 0.116*\"murder\" + 0.077*\"james bond\" + 0.047*\"007\" + 0.046*\"bond\" + 0.045*\"assassin\" + 0.026*\"claymation\" + 0.025*\"Thriller\" + 0.025*\"Action\" + 0.020*\"killer-as-protagonist\" + 0.020*\"aardman\"\n", - "2021-08-24 02:39:06,703 : INFO : topic #40 (0.020): 0.119*\"nudity (full frontal - notable)\" + 0.115*\"magic\" + 0.058*\"edward norton\" + 0.057*\"not corv lib\" + 0.050*\"sports\" + 0.036*\"baseball\" + 0.035*\"hw drama\" + 0.031*\"inspirational\" + 0.027*\"compassionate\" + 0.026*\"don cheadle\"\n", - "2021-08-24 02:39:06,704 : INFO : topic diff=0.071633, rho=0.184615\n", - "2021-08-24 02:39:06,705 : INFO : PROGRESS: pass 24, at document #2000/10681\n", - "2021-08-24 02:39:06,969 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:06,995 : INFO : topic #6 (0.020): 0.073*\"martial arts\" + 0.062*\"cult film\" + 0.036*\"gothic\" + 0.034*\"campy\" + 0.027*\"australia\" + 0.025*\"silly\" + 0.025*\"cult classic\" + 0.023*\"australian\" + 0.022*\"seen 2006\" + 0.019*\"sam raimi\"\n", - "2021-08-24 02:39:06,995 : INFO : topic #19 (0.020): 0.072*\"pg-13\" + 0.067*\"ghosts\" + 0.039*\"wedding\" + 0.038*\"julia roberts\" + 0.036*\"jude law\" + 0.032*\"hollywood\" + 0.028*\"want to own\" + 0.024*\"infidelity\" + 0.024*\"afternoon section\" + 0.022*\"prostitution\"\n", - "2021-08-24 02:39:06,996 : INFO : topic #8 (0.020): 0.112*\"space\" + 0.049*\"harrison ford\" + 0.027*\"christianity\" + 0.025*\"kevin smith\" + 0.025*\"george lucas\" + 0.024*\"archaeology\" + 0.020*\"space opera\" + 0.019*\"fantasy\" + 0.019*\"marx brothers\" + 0.019*\"sergio leone\"\n", - "2021-08-24 02:39:06,997 : INFO : topic #36 (0.020): 0.123*\"dark comedy\" + 0.088*\"bechdel test:fail\" + 0.078*\"black comedy\" + 0.043*\"nazis\" + 0.036*\"cold war\" + 0.027*\"funniest movies\" + 0.016*\"existentialism\" + 0.015*\"communism\" + 0.015*\"nuclear war\" + 0.014*\"russia\"\n", - "2021-08-24 02:39:06,998 : INFO : topic #30 (0.020): 0.645*\"Drama\" + 0.039*\"Film-Noir\" + 0.012*\"tumey's dvds\" + 0.010*\"small town\" + 0.008*\"witch\" + 0.008*\"film noir\" + 0.007*\"erlend's dvds\" + 0.007*\"italy\" + 0.007*\"animal:dog\" + 0.007*\"glbt\"\n", - "2021-08-24 02:39:07,000 : INFO : topic diff=0.143274, rho=0.181547\n", - "2021-08-24 02:39:07,001 : INFO : PROGRESS: pass 24, at document #4000/10681\n", - "2021-08-24 02:39:07,243 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:07,270 : INFO : topic #11 (0.020): 0.263*\"Documentary\" + 0.161*\"to see\" + 0.074*\"gay\" + 0.069*\"in netflix queue\" + 0.054*\"oscar (best actor)\" + 0.024*\"india\" + 0.021*\"homosexuality\" + 0.015*\"matter-of-fact\" + 0.015*\"IMAX\" + 0.012*\"ian mckellen\"\n", - "2021-08-24 02:39:07,271 : INFO : topic #40 (0.020): 0.121*\"nudity (full frontal - notable)\" + 0.083*\"magic\" + 0.071*\"edward norton\" + 0.061*\"sports\" + 0.051*\"not corv lib\" + 0.046*\"baseball\" + 0.037*\"hw drama\" + 0.031*\"inspirational\" + 0.025*\"christopher walken\" + 0.025*\"compassionate\"\n", - "2021-08-24 02:39:07,272 : INFO : topic #41 (0.020): 0.250*\"based on a book\" + 0.114*\"adapted from:book\" + 0.068*\"Drama\" + 0.057*\"robin williams\" + 0.057*\"nudity (full frontal)\" + 0.054*\"netflix\" + 0.038*\"vampire\" + 0.029*\"vampires\" + 0.015*\"book\" + 0.013*\"drama\"\n", - "2021-08-24 02:39:07,272 : INFO : topic #28 (0.020): 0.127*\"pixar\" + 0.093*\"oscar (best actress)\" + 0.042*\"mockumentary\" + 0.028*\"medieval\" + 0.028*\"dinosaurs\" + 0.022*\"nostalgia\" + 0.020*\"elijah wood\" + 0.019*\"computer animation\" + 0.016*\"christopher guest\" + 0.016*\"cgi\"\n", - "2021-08-24 02:39:07,273 : INFO : topic #37 (0.020): 0.060*\"easily confused with other movie(s) (title)\" + 0.041*\"vietnam war\" + 0.041*\"want to see again\" + 0.041*\"vietnam\" + 0.041*\"oscar (best supporting actress)\" + 0.036*\"food\" + 0.033*\"j netflix\" + 0.022*\"19th century\" + 0.020*\"peter sellers\" + 0.019*\"slow\"\n", - "2021-08-24 02:39:07,275 : INFO : topic diff=0.024666, rho=0.181547\n", - "2021-08-24 02:39:07,276 : INFO : PROGRESS: pass 24, at document #6000/10681\n", - "2021-08-24 02:39:07,498 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:07,525 : INFO : topic #32 (0.020): 0.089*\"based on a tv show\" + 0.067*\"jim carrey\" + 0.061*\"keanu reeves\" + 0.048*\"video game adaptation\" + 0.046*\"memory\" + 0.046*\"england\" + 0.038*\"star trek\" + 0.037*\"tv\" + 0.034*\"road trip\" + 0.028*\"friday night movie\"\n", - "2021-08-24 02:39:07,526 : INFO : topic #17 (0.020): 0.059*\"will smith\" + 0.058*\"police\" + 0.032*\"corruption\" + 0.032*\"sandra bullock\" + 0.028*\"computers\" + 0.022*\"milla jovovich\" + 0.018*\"torture\" + 0.018*\"no dialogue\" + 0.017*\"stage\" + 0.016*\"action packed\"\n", - "2021-08-24 02:39:07,527 : INFO : topic #33 (0.020): 0.157*\"comic book\" + 0.125*\"superhero\" + 0.068*\"super-hero\" + 0.044*\"gene hackman\" + 0.039*\"adapted from:comic\" + 0.028*\"batman\" + 0.024*\"alter ego\" + 0.024*\"Action\" + 0.023*\"action\" + 0.017*\"based on a comic\"\n", - "2021-08-24 02:39:07,528 : INFO : topic #10 (0.020): 0.447*\"Comedy\" + 0.232*\"Romance\" + 0.193*\"Drama\" + 0.013*\"bibliothek\" + 0.013*\"betamax\" + 0.005*\"divorce\" + 0.005*\"oppl\" + 0.005*\"owen wilson\" + 0.004*\"library vhs\" + 0.004*\"world war i\"\n", - "2021-08-24 02:39:07,529 : INFO : topic #11 (0.020): 0.263*\"Documentary\" + 0.150*\"to see\" + 0.073*\"gay\" + 0.069*\"in netflix queue\" + 0.049*\"oscar (best actor)\" + 0.022*\"india\" + 0.021*\"IMAX\" + 0.021*\"homosexuality\" + 0.018*\"matter-of-fact\" + 0.014*\"ian mckellen\"\n", - "2021-08-24 02:39:07,530 : INFO : topic diff=0.049720, rho=0.181547\n", - "2021-08-24 02:39:07,532 : INFO : PROGRESS: pass 24, at document #8000/10681\n", - "2021-08-24 02:39:07,780 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:07,807 : INFO : topic #28 (0.020): 0.127*\"pixar\" + 0.092*\"oscar (best actress)\" + 0.038*\"mockumentary\" + 0.026*\"medieval\" + 0.025*\"elijah wood\" + 0.023*\"dinosaurs\" + 0.021*\"nostalgia\" + 0.021*\"computer animation\" + 0.017*\"cgi\" + 0.016*\"high fantasy\"\n", - "2021-08-24 02:39:07,808 : INFO : topic #30 (0.020): 0.658*\"Drama\" + 0.035*\"Film-Noir\" + 0.013*\"tumey's dvds\" + 0.010*\"small town\" + 0.008*\"oscar (best foreign language film)\" + 0.008*\"italy\" + 0.007*\"erlend's dvds\" + 0.007*\"witch\" + 0.006*\"glbt\" + 0.006*\"animal:dog\"\n", - "2021-08-24 02:39:07,809 : INFO : topic #8 (0.020): 0.092*\"space\" + 0.040*\"harrison ford\" + 0.031*\"christianity\" + 0.025*\"marx brothers\" + 0.023*\"kevin smith\" + 0.022*\"george lucas\" + 0.022*\"spaghetti western\" + 0.020*\"archaeology\" + 0.019*\"werewolves\" + 0.018*\"sergio leone\"\n", - "2021-08-24 02:39:07,810 : INFO : topic #26 (0.020): 0.217*\"classic\" + 0.135*\"oscar (best picture)\" + 0.054*\"oscar (best directing)\" + 0.052*\"oscar (best supporting actor)\" + 0.028*\"afi 100\" + 0.027*\"matt damon\" + 0.024*\"national film registry\" + 0.022*\"afi 100 (cheers)\" + 0.020*\"oscar (best supporting actress)\" + 0.018*\"afi 100 (laughs)\"\n", - "2021-08-24 02:39:07,810 : INFO : topic #9 (0.020): 0.202*\"r\" + 0.108*\"Western\" + 0.095*\"clearplay\" + 0.084*\"nudity (topless - brief)\" + 0.057*\"Drama\" + 0.026*\"pg13\" + 0.025*\"british\" + 0.022*\"Thriller\" + 0.021*\"russell crowe\" + 0.019*\"to see\"\n", - "2021-08-24 02:39:07,812 : INFO : topic diff=0.041102, rho=0.181547\n", - "2021-08-24 02:39:07,813 : INFO : PROGRESS: pass 24, at document #10000/10681\n", - "2021-08-24 02:39:08,124 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:08,151 : INFO : topic #32 (0.020): 0.085*\"based on a tv show\" + 0.067*\"jim carrey\" + 0.064*\"england\" + 0.056*\"keanu reeves\" + 0.047*\"video game adaptation\" + 0.047*\"memory\" + 0.045*\"road trip\" + 0.033*\"not funny\" + 0.028*\"tv\" + 0.027*\"friday night movie\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:39:08,152 : INFO : topic #4 (0.020): 0.106*\"romance\" + 0.049*\"Romance\" + 0.044*\"chick flick\" + 0.042*\"new york city\" + 0.041*\"watched 2006\" + 0.039*\"cars\" + 0.028*\"new york\" + 0.027*\"sean connery\" + 0.025*\"girlie movie\" + 0.022*\"dance\"\n", - "2021-08-24 02:39:08,153 : INFO : topic #19 (0.020): 0.095*\"pg-13\" + 0.069*\"ghosts\" + 0.043*\"jude law\" + 0.035*\"wedding\" + 0.031*\"julia roberts\" + 0.028*\"want to own\" + 0.027*\"infidelity\" + 0.025*\"hollywood\" + 0.021*\"prostitution\" + 0.019*\"afternoon section\"\n", - "2021-08-24 02:39:08,154 : INFO : topic #49 (0.020): 0.127*\"anime\" + 0.060*\"psychology\" + 0.052*\"serial killer\" + 0.051*\"high school\" + 0.045*\"teen\" + 0.021*\"japan\" + 0.017*\"mental illness\" + 0.016*\"cannibalism\" + 0.014*\"anthony hopkins\" + 0.013*\"steve martin\"\n", - "2021-08-24 02:39:08,154 : INFO : topic #11 (0.020): 0.267*\"Documentary\" + 0.148*\"to see\" + 0.082*\"in netflix queue\" + 0.073*\"gay\" + 0.036*\"oscar (best actor)\" + 0.025*\"homosexuality\" + 0.020*\"india\" + 0.019*\"matter-of-fact\" + 0.017*\"IMAX\" + 0.014*\"ian mckellen\"\n", - "2021-08-24 02:39:08,156 : INFO : topic diff=0.028524, rho=0.181547\n", - "2021-08-24 02:39:08,304 : INFO : -20.975 per-word bound, 2061614.0 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:39:08,305 : INFO : PROGRESS: pass 24, at document #10681/10681\n", - "2021-08-24 02:39:08,401 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:39:08,427 : INFO : topic #0 (0.020): 0.091*\"crime\" + 0.057*\"violence\" + 0.055*\"brad pitt\" + 0.047*\"Crime\" + 0.046*\"violent\" + 0.042*\"morgan freeman\" + 0.033*\"organized crime\" + 0.030*\"tommy lee jones\" + 0.029*\"philip seymour hoffman\" + 0.028*\"Thriller\"\n", - "2021-08-24 02:39:08,428 : INFO : topic #15 (0.020): 0.055*\"racism\" + 0.054*\"coen brothers\" + 0.044*\"stephen king\" + 0.040*\"adultery\" + 0.040*\"great acting\" + 0.037*\"espionage\" + 0.026*\"los angeles\" + 0.020*\"san francisco\" + 0.020*\"ensemble cast\" + 0.019*\"notable nudity\"\n", - "2021-08-24 02:39:08,429 : INFO : topic #24 (0.020): 0.049*\"tom cruise\" + 0.038*\"france\" + 0.033*\"golden palm\" + 0.032*\"nicole kidman\" + 0.030*\"disability\" + 0.030*\"on dvr\" + 0.028*\"french\" + 0.026*\"dustin hoffman\" + 0.019*\"mask\" + 0.018*\"bank robbery\"\n", - "2021-08-24 02:39:08,430 : INFO : topic #9 (0.020): 0.249*\"r\" + 0.126*\"clearplay\" + 0.086*\"Western\" + 0.074*\"nudity (topless - brief)\" + 0.066*\"Drama\" + 0.038*\"pg13\" + 0.028*\"to see\" + 0.025*\"movie to see\" + 0.025*\"Thriller\" + 0.017*\"british\"\n", - "2021-08-24 02:39:08,430 : INFO : topic #17 (0.020): 0.068*\"will smith\" + 0.059*\"police\" + 0.047*\"corruption\" + 0.029*\"torture\" + 0.023*\"action packed\" + 0.023*\"milla jovovich\" + 0.021*\"computers\" + 0.021*\"sandra bullock\" + 0.018*\"tattoo\" + 0.017*\"suicide attempt\"\n", - "2021-08-24 02:39:08,432 : INFO : topic diff=0.070556, rho=0.181547\n", - "2021-08-24 02:39:08,434 : INFO : PROGRESS: pass 25, at document #2000/10681\n", - "2021-08-24 02:39:08,691 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:08,717 : INFO : topic #5 (0.020): 0.242*\"Action\" + 0.212*\"Thriller\" + 0.168*\"Horror\" + 0.131*\"Sci-Fi\" + 0.066*\"Adventure\" + 0.026*\"betamax\" + 0.018*\"can't remember\" + 0.008*\"courtroom\" + 0.006*\"dvd-video\" + 0.006*\"vhs\"\n", - "2021-08-24 02:39:08,718 : INFO : topic #21 (0.020): 0.094*\"Drama\" + 0.048*\"criterion\" + 0.027*\"library\" + 0.023*\"tumey's dvds\" + 0.021*\"sven's to see list\" + 0.021*\"irreverent\" + 0.021*\"atmospheric\" + 0.020*\"dvd-video\" + 0.020*\"reflective\" + 0.020*\"deliberate\"\n", - "2021-08-24 02:39:08,718 : INFO : topic #2 (0.020): 0.106*\"satire\" + 0.100*\"Comedy\" + 0.094*\"lesbian\" + 0.053*\"imdb bottom 100\" + 0.027*\"sexy\" + 0.022*\"get\" + 0.021*\"olympics\" + 0.018*\"john turturro\" + 0.016*\"1\" + 0.015*\"queer\"\n", - "2021-08-24 02:39:08,719 : INFO : topic #28 (0.020): 0.124*\"pixar\" + 0.088*\"oscar (best actress)\" + 0.045*\"mockumentary\" + 0.032*\"dinosaurs\" + 0.028*\"medieval\" + 0.024*\"elijah wood\" + 0.019*\"computer animation\" + 0.017*\"christopher guest\" + 0.017*\"cgi\" + 0.015*\"best war films\"\n", - "2021-08-24 02:39:08,720 : INFO : topic #6 (0.020): 0.073*\"martial arts\" + 0.063*\"cult film\" + 0.036*\"gothic\" + 0.034*\"campy\" + 0.027*\"australia\" + 0.025*\"silly\" + 0.025*\"cult classic\" + 0.023*\"australian\" + 0.022*\"seen 2006\" + 0.019*\"sam raimi\"\n", - "2021-08-24 02:39:08,721 : INFO : topic diff=0.140794, rho=0.178627\n", - "2021-08-24 02:39:08,723 : INFO : PROGRESS: pass 25, at document #4000/10681\n", - "2021-08-24 02:39:08,971 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:08,997 : INFO : topic #42 (0.020): 0.153*\"johnny depp\" + 0.090*\"tim burton\" + 0.054*\"martin scorsese\" + 0.039*\"narrated\" + 0.032*\"george clooney\" + 0.026*\"ei muista\" + 0.026*\"monster\" + 0.019*\"alien invasion\" + 0.019*\"brothers\" + 0.016*\"disaster\"\n", - "2021-08-24 02:39:08,998 : INFO : topic #23 (0.020): 0.075*\"mafia\" + 0.043*\"al pacino\" + 0.036*\"robert de niro\" + 0.023*\"guns\" + 0.022*\"marlon brando\" + 0.020*\"poverty\" + 0.017*\"tumey's dvds\" + 0.017*\"eddie murphy\" + 0.017*\"francis ford coppola\" + 0.017*\"michael caine\"\n", - "2021-08-24 02:39:08,998 : INFO : topic #46 (0.020): 0.086*\"dvd\" + 0.064*\"overrated\" + 0.053*\"seen more than once\" + 0.043*\"owned\" + 0.034*\"samuel l. jackson\" + 0.033*\"imdb top 250\" + 0.030*\"bibliothek\" + 0.027*\"eric's dvds\" + 0.025*\"kevin spacey\" + 0.024*\"seen at the cinema\"\n", - "2021-08-24 02:39:08,999 : INFO : topic #20 (0.020): 0.140*\"politics\" + 0.072*\"jack nicholson\" + 0.068*\"documentary\" + 0.044*\"terrorism\" + 0.035*\"love story\" + 0.035*\"seen 2008\" + 0.032*\"propaganda\" + 0.031*\"aviation\" + 0.031*\"political\" + 0.030*\"Documentary\"\n", - "2021-08-24 02:39:09,000 : INFO : topic #13 (0.020): 0.149*\"time travel\" + 0.073*\"twist ending\" + 0.059*\"holocaust\" + 0.034*\"bill murray\" + 0.030*\"post apocalyptic\" + 0.029*\"post-apocalyptic\" + 0.020*\"good dialogue\" + 0.018*\"mindfuck\" + 0.017*\"liam neeson\" + 0.016*\"very good\"\n", - "2021-08-24 02:39:09,001 : INFO : topic diff=0.024025, rho=0.178627\n", - "2021-08-24 02:39:09,003 : INFO : PROGRESS: pass 25, at document #6000/10681\n", - "2021-08-24 02:39:09,232 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:09,258 : INFO : topic #9 (0.020): 0.209*\"r\" + 0.103*\"clearplay\" + 0.094*\"Western\" + 0.088*\"nudity (topless - brief)\" + 0.059*\"Drama\" + 0.027*\"pg13\" + 0.025*\"british\" + 0.023*\"Thriller\" + 0.021*\"russell crowe\" + 0.021*\"to see\"\n", - "2021-08-24 02:39:09,259 : INFO : topic #12 (0.020): 0.103*\"christmas\" + 0.084*\"quentin tarantino\" + 0.065*\"heist\" + 0.064*\"nonlinear\" + 0.054*\"tarantino\" + 0.046*\"rape\" + 0.030*\"blindfold\" + 0.023*\"terry gilliam\" + 0.018*\"xmas theme\" + 0.016*\"ireland\"\n", - "2021-08-24 02:39:09,260 : INFO : topic #29 (0.020): 0.141*\"action\" + 0.058*\"Action\" + 0.050*\"adventure\" + 0.038*\"sequel\" + 0.035*\"boring\" + 0.032*\"Adventure\" + 0.029*\"robots\" + 0.027*\"arnold schwarzenegger\" + 0.022*\"70mm\" + 0.020*\"motorcycle\"\n", - "2021-08-24 02:39:09,261 : INFO : topic #27 (0.020): 0.149*\"aliens\" + 0.088*\"steven spielberg\" + 0.057*\"family\" + 0.035*\"michael crichton\" + 0.025*\"alien\" + 0.025*\"gambling\" + 0.022*\"to-rent\" + 0.022*\"didn't finish\" + 0.020*\"childhood\" + 0.019*\"poker\"\n", - "2021-08-24 02:39:09,261 : INFO : topic #48 (0.020): 0.052*\"quirky\" + 0.046*\"directorial debut\" + 0.045*\"surreal\" + 0.025*\"woody allen\" + 0.024*\"bittersweet\" + 0.024*\"humorous\" + 0.021*\"whimsical\" + 0.020*\"coming of age\" + 0.019*\"underrated\" + 0.019*\"erlend's dvds\"\n", - "2021-08-24 02:39:09,263 : INFO : topic diff=0.048947, rho=0.178627\n", - "2021-08-24 02:39:09,264 : INFO : PROGRESS: pass 25, at document #8000/10681\n", - "2021-08-24 02:39:09,505 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:09,532 : INFO : topic #4 (0.020): 0.110*\"romance\" + 0.050*\"Romance\" + 0.045*\"chick flick\" + 0.038*\"new york city\" + 0.038*\"cars\" + 0.032*\"sean connery\" + 0.027*\"watched 2006\" + 0.026*\"new york\" + 0.026*\"girlie movie\" + 0.022*\"light\"\n", - "2021-08-24 02:39:09,532 : INFO : topic #8 (0.020): 0.092*\"space\" + 0.040*\"harrison ford\" + 0.031*\"christianity\" + 0.025*\"marx brothers\" + 0.023*\"kevin smith\" + 0.023*\"george lucas\" + 0.022*\"spaghetti western\" + 0.020*\"archaeology\" + 0.019*\"werewolves\" + 0.018*\"sergio leone\"\n", - "2021-08-24 02:39:09,533 : INFO : topic #20 (0.020): 0.135*\"politics\" + 0.089*\"documentary\" + 0.065*\"jack nicholson\" + 0.043*\"terrorism\" + 0.037*\"seen 2008\" + 0.034*\"propaganda\" + 0.032*\"Documentary\" + 0.028*\"political\" + 0.028*\"love story\" + 0.027*\"aviation\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:39:09,534 : INFO : topic #17 (0.020): 0.062*\"police\" + 0.056*\"will smith\" + 0.031*\"computers\" + 0.029*\"corruption\" + 0.027*\"sandra bullock\" + 0.019*\"milla jovovich\" + 0.019*\"stage\" + 0.018*\"no dialogue\" + 0.018*\"torture\" + 0.016*\"action packed\"\n", - "2021-08-24 02:39:09,535 : INFO : topic #6 (0.020): 0.091*\"martial arts\" + 0.058*\"cult film\" + 0.042*\"gothic\" + 0.035*\"campy\" + 0.026*\"cult classic\" + 0.026*\"silly\" + 0.025*\"australia\" + 0.024*\"australian\" + 0.021*\"sam raimi\" + 0.020*\"seen 2006\"\n", - "2021-08-24 02:39:09,536 : INFO : topic diff=0.040500, rho=0.178627\n", - "2021-08-24 02:39:09,538 : INFO : PROGRESS: pass 25, at document #10000/10681\n", - "2021-08-24 02:39:09,785 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:09,812 : INFO : topic #34 (0.020): 0.173*\"War\" + 0.126*\"Drama\" + 0.092*\"world war ii\" + 0.069*\"drugs\" + 0.050*\"war\" + 0.041*\"history\" + 0.033*\"Action\" + 0.029*\"prison\" + 0.025*\"london\" + 0.019*\"Adventure\"\n", - "2021-08-24 02:39:09,813 : INFO : topic #32 (0.020): 0.085*\"based on a tv show\" + 0.067*\"jim carrey\" + 0.064*\"england\" + 0.056*\"keanu reeves\" + 0.047*\"video game adaptation\" + 0.047*\"memory\" + 0.045*\"road trip\" + 0.033*\"not funny\" + 0.029*\"tv\" + 0.027*\"friday night movie\"\n", - "2021-08-24 02:39:09,814 : INFO : topic #19 (0.020): 0.095*\"pg-13\" + 0.069*\"ghosts\" + 0.043*\"jude law\" + 0.035*\"wedding\" + 0.032*\"julia roberts\" + 0.028*\"want to own\" + 0.027*\"infidelity\" + 0.025*\"hollywood\" + 0.021*\"prostitution\" + 0.019*\"afternoon section\"\n", - "2021-08-24 02:39:09,815 : INFO : topic #44 (0.020): 0.116*\"Adventure\" + 0.114*\"Children\" + 0.113*\"Fantasy\" + 0.064*\"Animation\" + 0.056*\"disney\" + 0.055*\"Comedy\" + 0.049*\"fantasy\" + 0.044*\"animation\" + 0.019*\"children\" + 0.018*\"fairy tale\"\n", - "2021-08-24 02:39:09,815 : INFO : topic #46 (0.020): 0.086*\"dvd\" + 0.073*\"overrated\" + 0.053*\"seen more than once\" + 0.043*\"owned\" + 0.033*\"eric's dvds\" + 0.032*\"samuel l. jackson\" + 0.030*\"bibliothek\" + 0.029*\"imdb top 250\" + 0.023*\"tumey's dvds\" + 0.023*\"seen at the cinema\"\n", - "2021-08-24 02:39:09,817 : INFO : topic diff=0.028083, rho=0.178627\n", - "2021-08-24 02:39:09,963 : INFO : -20.976 per-word bound, 2061854.1 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:39:09,964 : INFO : PROGRESS: pass 25, at document #10681/10681\n", - "2021-08-24 02:39:10,066 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:39:10,094 : INFO : topic #39 (0.020): 0.098*\"bruce willis\" + 0.051*\"interesting\" + 0.043*\"love\" + 0.042*\"africa\" + 0.030*\"predictable\" + 0.029*\"apocalypse\" + 0.025*\"avi\" + 0.023*\"gerard depardieu\" + 0.023*\"tragedy\" + 0.022*\"end of the world\"\n", - "2021-08-24 02:39:10,095 : INFO : topic #26 (0.020): 0.196*\"classic\" + 0.126*\"oscar (best picture)\" + 0.050*\"oscar (best directing)\" + 0.047*\"oscar (best supporting actor)\" + 0.032*\"matt damon\" + 0.024*\"afi 100\" + 0.024*\"national film registry\" + 0.022*\"afi 100 (laughs)\" + 0.020*\"afi 100 (cheers)\" + 0.017*\"oscar (best supporting actress)\"\n", - "2021-08-24 02:39:10,096 : INFO : topic #5 (0.020): 0.244*\"Action\" + 0.211*\"Thriller\" + 0.173*\"Horror\" + 0.139*\"Sci-Fi\" + 0.068*\"Adventure\" + 0.027*\"betamax\" + 0.012*\"can't remember\" + 0.007*\"courtroom\" + 0.006*\"vhs\" + 0.006*\"dvd-video\"\n", - "2021-08-24 02:39:10,097 : INFO : topic #11 (0.020): 0.298*\"Documentary\" + 0.188*\"to see\" + 0.063*\"in netflix queue\" + 0.063*\"gay\" + 0.028*\"oscar (best actor)\" + 0.025*\"india\" + 0.019*\"homosexuality\" + 0.019*\"IMAX\" + 0.015*\"matter-of-fact\" + 0.011*\"mexico\"\n", - "2021-08-24 02:39:10,098 : INFO : topic #22 (0.020): 0.081*\"national film registry\" + 0.051*\"oscar (best cinematography)\" + 0.029*\"tumey's dvds\" + 0.029*\"angelina jolie\" + 0.028*\"black and white\" + 0.026*\"classic\" + 0.026*\"imdb top 250\" + 0.025*\"philip k. dick\" + 0.024*\"journalism\" + 0.023*\"erlend's dvds\"\n", - "2021-08-24 02:39:10,099 : INFO : topic diff=0.069263, rho=0.178627\n", - "2021-08-24 02:39:10,101 : INFO : PROGRESS: pass 26, at document #2000/10681\n", - "2021-08-24 02:39:10,393 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:10,421 : INFO : topic #3 (0.020): 0.313*\"nudity (topless)\" + 0.091*\"zombies\" + 0.059*\"nudity (topless - brief)\" + 0.024*\"keira knightley\" + 0.018*\"virtual reality\" + 0.018*\"zombie\" + 0.016*\"ingmar bergman\" + 0.014*\"strippers\" + 0.013*\"futuristic\" + 0.012*\"Horror\"\n", - "2021-08-24 02:39:10,422 : INFO : topic #46 (0.020): 0.080*\"dvd\" + 0.067*\"overrated\" + 0.049*\"seen more than once\" + 0.043*\"owned\" + 0.035*\"imdb top 250\" + 0.034*\"samuel l. jackson\" + 0.029*\"bibliothek\" + 0.028*\"eric's dvds\" + 0.025*\"kevin spacey\" + 0.023*\"seen at the cinema\"\n", - "2021-08-24 02:39:10,423 : INFO : topic #41 (0.020): 0.257*\"based on a book\" + 0.110*\"adapted from:book\" + 0.066*\"Drama\" + 0.062*\"netflix\" + 0.061*\"nudity (full frontal)\" + 0.050*\"robin williams\" + 0.035*\"vampire\" + 0.027*\"vampires\" + 0.014*\"book\" + 0.013*\"drama\"\n", - "2021-08-24 02:39:10,424 : INFO : topic #7 (0.020): 0.206*\"movie to see\" + 0.064*\"mel gibson\" + 0.045*\"boxing\" + 0.034*\"uma thurman\" + 0.032*\"kidnapping\" + 0.031*\"john travolta\" + 0.028*\"sylvester stallone\" + 0.024*\"suburbia\" + 0.019*\"basketball\" + 0.014*\"sports\"\n", - "2021-08-24 02:39:10,424 : INFO : topic #23 (0.020): 0.081*\"mafia\" + 0.039*\"al pacino\" + 0.033*\"robert de niro\" + 0.025*\"marlon brando\" + 0.023*\"guns\" + 0.021*\"poverty\" + 0.018*\"francis ford coppola\" + 0.018*\"scifi\" + 0.017*\"michael caine\" + 0.016*\"tumey's dvds\"\n", - "2021-08-24 02:39:10,426 : INFO : topic diff=0.137888, rho=0.175844\n", - "2021-08-24 02:39:10,427 : INFO : PROGRESS: pass 26, at document #4000/10681\n", - "2021-08-24 02:39:10,696 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:10,724 : INFO : topic #31 (0.020): 0.094*\"murder\" + 0.088*\"james bond\" + 0.061*\"007\" + 0.059*\"bond\" + 0.041*\"assassin\" + 0.031*\"claymation\" + 0.023*\"Action\" + 0.023*\"Thriller\" + 0.023*\"aardman\" + 0.022*\"franchise\"\n", - "2021-08-24 02:39:10,724 : INFO : topic #49 (0.020): 0.087*\"anime\" + 0.057*\"serial killer\" + 0.057*\"teen\" + 0.057*\"psychology\" + 0.057*\"high school\" + 0.020*\"mental illness\" + 0.017*\"cannibalism\" + 0.016*\"cult film\" + 0.015*\"japan\" + 0.014*\"anthony hopkins\"\n", - "2021-08-24 02:39:10,725 : INFO : topic #10 (0.020): 0.436*\"Comedy\" + 0.236*\"Romance\" + 0.198*\"Drama\" + 0.012*\"bibliothek\" + 0.011*\"betamax\" + 0.006*\"divorce\" + 0.006*\"oppl\" + 0.005*\"owen wilson\" + 0.004*\"library vhs\" + 0.003*\"world war i\"\n", - "2021-08-24 02:39:10,726 : INFO : topic #14 (0.020): 0.118*\"Mystery\" + 0.062*\"Horror\" + 0.058*\"Thriller\" + 0.039*\"disturbing\" + 0.033*\"atmospheric\" + 0.026*\"ominous\" + 0.025*\"tense\" + 0.025*\"erlend's dvds\" + 0.022*\"menacing\" + 0.022*\"scary movies to see on halloween\"\n", - "2021-08-24 02:39:10,727 : INFO : topic #34 (0.020): 0.165*\"War\" + 0.118*\"Drama\" + 0.097*\"world war ii\" + 0.082*\"drugs\" + 0.048*\"war\" + 0.040*\"prison\" + 0.036*\"history\" + 0.030*\"Action\" + 0.020*\"london\" + 0.016*\"Adventure\"\n", - "2021-08-24 02:39:10,728 : INFO : topic diff=0.023529, rho=0.175844\n", - "2021-08-24 02:39:10,730 : INFO : PROGRESS: pass 26, at document #6000/10681\n", - "2021-08-24 02:39:10,960 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:10,987 : INFO : topic #6 (0.020): 0.084*\"martial arts\" + 0.061*\"cult film\" + 0.043*\"gothic\" + 0.037*\"campy\" + 0.028*\"cult classic\" + 0.028*\"silly\" + 0.027*\"australia\" + 0.025*\"australian\" + 0.019*\"sam raimi\" + 0.018*\"seen 2006\"\n", - "2021-08-24 02:39:10,988 : INFO : topic #40 (0.020): 0.120*\"nudity (full frontal - notable)\" + 0.095*\"magic\" + 0.071*\"edward norton\" + 0.057*\"sports\" + 0.050*\"not corv lib\" + 0.049*\"baseball\" + 0.040*\"hw drama\" + 0.029*\"compassionate\" + 0.026*\"inspirational\" + 0.025*\"christopher walken\"\n", - "2021-08-24 02:39:10,989 : INFO : topic #29 (0.020): 0.141*\"action\" + 0.058*\"Action\" + 0.050*\"adventure\" + 0.038*\"sequel\" + 0.035*\"boring\" + 0.032*\"Adventure\" + 0.029*\"robots\" + 0.027*\"arnold schwarzenegger\" + 0.022*\"70mm\" + 0.020*\"motorcycle\"\n", - "2021-08-24 02:39:10,990 : INFO : topic #49 (0.020): 0.103*\"anime\" + 0.063*\"psychology\" + 0.056*\"serial killer\" + 0.053*\"teen\" + 0.050*\"high school\" + 0.019*\"mental illness\" + 0.018*\"japan\" + 0.017*\"cannibalism\" + 0.016*\"anthony hopkins\" + 0.014*\"cult film\"\n", - "2021-08-24 02:39:10,990 : INFO : topic #22 (0.020): 0.068*\"national film registry\" + 0.057*\"oscar (best cinematography)\" + 0.031*\"classic\" + 0.031*\"imdb top 250\" + 0.030*\"tumey's dvds\" + 0.029*\"stanley kubrick\" + 0.028*\"afi 100 (thrills)\" + 0.027*\"black and white\" + 0.026*\"70mm\" + 0.026*\"clv\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:39:10,991 : INFO : topic diff=0.048196, rho=0.175844\n", - "2021-08-24 02:39:10,992 : INFO : PROGRESS: pass 26, at document #8000/10681\n", - "2021-08-24 02:39:11,230 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:11,257 : INFO : topic #20 (0.020): 0.135*\"politics\" + 0.089*\"documentary\" + 0.065*\"jack nicholson\" + 0.043*\"terrorism\" + 0.037*\"seen 2008\" + 0.034*\"propaganda\" + 0.032*\"Documentary\" + 0.028*\"political\" + 0.028*\"love story\" + 0.027*\"aviation\"\n", - "2021-08-24 02:39:11,258 : INFO : topic #47 (0.020): 0.292*\"less than 300 ratings\" + 0.147*\"Drama\" + 0.062*\"nudity (rear)\" + 0.037*\"jackie chan\" + 0.025*\"kung fu\" + 0.023*\"football\" + 0.017*\"oppl\" + 0.016*\"brian de palma\" + 0.016*\"denzel washington\" + 0.013*\"bechdel test:pass\"\n", - "2021-08-24 02:39:11,259 : INFO : topic #18 (0.020): 0.050*\"creepy\" + 0.046*\"franchise\" + 0.045*\"surrealism\" + 0.036*\"slasher\" + 0.027*\"lurid\" + 0.024*\"robert downey jr\" + 0.022*\"united states\" + 0.022*\"adolescence\" + 0.022*\"unique\" + 0.021*\"goth\"\n", - "2021-08-24 02:39:11,260 : INFO : topic #42 (0.020): 0.156*\"johnny depp\" + 0.075*\"tim burton\" + 0.052*\"martin scorsese\" + 0.041*\"narrated\" + 0.033*\"george clooney\" + 0.028*\"ei muista\" + 0.025*\"monster\" + 0.018*\"alien invasion\" + 0.018*\"brothers\" + 0.014*\"las vegas\"\n", - "2021-08-24 02:39:11,261 : INFO : topic #8 (0.020): 0.092*\"space\" + 0.040*\"harrison ford\" + 0.031*\"christianity\" + 0.025*\"marx brothers\" + 0.023*\"kevin smith\" + 0.023*\"george lucas\" + 0.022*\"spaghetti western\" + 0.020*\"archaeology\" + 0.019*\"werewolves\" + 0.018*\"sergio leone\"\n", - "2021-08-24 02:39:11,262 : INFO : topic diff=0.039611, rho=0.175844\n", - "2021-08-24 02:39:11,263 : INFO : PROGRESS: pass 26, at document #10000/10681\n", - "2021-08-24 02:39:11,515 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:11,545 : INFO : topic #39 (0.020): 0.108*\"bruce willis\" + 0.056*\"interesting\" + 0.046*\"africa\" + 0.033*\"love\" + 0.031*\"predictable\" + 0.028*\"avi\" + 0.026*\"gerard depardieu\" + 0.024*\"end of the world\" + 0.023*\"golden raspberry (worst actor)\" + 0.022*\"tragedy\"\n", - "2021-08-24 02:39:11,546 : INFO : topic #10 (0.020): 0.443*\"Comedy\" + 0.237*\"Romance\" + 0.196*\"Drama\" + 0.012*\"bibliothek\" + 0.011*\"betamax\" + 0.005*\"divorce\" + 0.005*\"owen wilson\" + 0.004*\"oppl\" + 0.004*\"world war i\" + 0.003*\"library vhs\"\n", - "2021-08-24 02:39:11,547 : INFO : topic #20 (0.020): 0.142*\"politics\" + 0.095*\"documentary\" + 0.057*\"jack nicholson\" + 0.052*\"terrorism\" + 0.039*\"propaganda\" + 0.037*\"political\" + 0.037*\"love story\" + 0.036*\"seen 2008\" + 0.035*\"Documentary\" + 0.027*\"aviation\"\n", - "2021-08-24 02:39:11,547 : INFO : topic #49 (0.020): 0.127*\"anime\" + 0.060*\"psychology\" + 0.052*\"serial killer\" + 0.051*\"high school\" + 0.046*\"teen\" + 0.021*\"japan\" + 0.017*\"mental illness\" + 0.016*\"cannibalism\" + 0.014*\"anthony hopkins\" + 0.013*\"steve martin\"\n", - "2021-08-24 02:39:11,549 : INFO : topic #28 (0.020): 0.136*\"pixar\" + 0.085*\"oscar (best actress)\" + 0.040*\"mockumentary\" + 0.028*\"elijah wood\" + 0.027*\"medieval\" + 0.023*\"computer animation\" + 0.022*\"dinosaurs\" + 0.022*\"cgi\" + 0.018*\"nostalgia\" + 0.013*\"family drama\"\n", - "2021-08-24 02:39:11,550 : INFO : topic diff=0.027439, rho=0.175844\n", - "2021-08-24 02:39:11,690 : INFO : -20.974 per-word bound, 2060329.5 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:39:11,690 : INFO : PROGRESS: pass 26, at document #10681/10681\n", - "2021-08-24 02:39:11,786 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:39:11,812 : INFO : topic #20 (0.020): 0.147*\"politics\" + 0.084*\"documentary\" + 0.051*\"jack nicholson\" + 0.049*\"terrorism\" + 0.042*\"propaganda\" + 0.041*\"seen 2008\" + 0.039*\"love story\" + 0.038*\"Documentary\" + 0.033*\"political\" + 0.026*\"aviation\"\n", - "2021-08-24 02:39:11,813 : INFO : topic #39 (0.020): 0.098*\"bruce willis\" + 0.051*\"interesting\" + 0.042*\"love\" + 0.042*\"africa\" + 0.030*\"predictable\" + 0.029*\"apocalypse\" + 0.025*\"avi\" + 0.023*\"gerard depardieu\" + 0.023*\"tragedy\" + 0.022*\"good\"\n", - "2021-08-24 02:39:11,814 : INFO : topic #9 (0.020): 0.248*\"r\" + 0.125*\"clearplay\" + 0.086*\"Western\" + 0.076*\"nudity (topless - brief)\" + 0.066*\"Drama\" + 0.038*\"pg13\" + 0.028*\"to see\" + 0.026*\"movie to see\" + 0.025*\"Thriller\" + 0.017*\"british\"\n", - "2021-08-24 02:39:11,815 : INFO : topic #6 (0.020): 0.091*\"martial arts\" + 0.048*\"cult film\" + 0.034*\"gothic\" + 0.032*\"campy\" + 0.028*\"seen 2006\" + 0.026*\"australia\" + 0.024*\"silly\" + 0.024*\"australian\" + 0.020*\"cult classic\" + 0.017*\"freedom\"\n", - "2021-08-24 02:39:11,815 : INFO : topic #13 (0.020): 0.132*\"time travel\" + 0.076*\"twist ending\" + 0.055*\"holocaust\" + 0.035*\"post-apocalyptic\" + 0.033*\"bill murray\" + 0.026*\"post apocalyptic\" + 0.021*\"good dialogue\" + 0.017*\"liam neeson\" + 0.016*\"michael moore\" + 0.016*\"mindfuck\"\n", - "2021-08-24 02:39:11,817 : INFO : topic diff=0.068205, rho=0.175844\n", - "2021-08-24 02:39:11,818 : INFO : PROGRESS: pass 27, at document #2000/10681\n", - "2021-08-24 02:39:12,095 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:12,120 : INFO : topic #27 (0.020): 0.150*\"aliens\" + 0.090*\"steven spielberg\" + 0.054*\"family\" + 0.035*\"michael crichton\" + 0.025*\"gambling\" + 0.025*\"to-rent\" + 0.024*\"childhood\" + 0.022*\"alien\" + 0.019*\"didn't finish\" + 0.018*\"poker\"\n", - "2021-08-24 02:39:12,121 : INFO : topic #47 (0.020): 0.276*\"less than 300 ratings\" + 0.143*\"Drama\" + 0.065*\"nudity (rear)\" + 0.030*\"jackie chan\" + 0.027*\"kung fu\" + 0.025*\"oppl\" + 0.019*\"denzel washington\" + 0.019*\"football\" + 0.017*\"aids\" + 0.014*\"bechdel test:pass\"\n", - "2021-08-24 02:39:12,122 : INFO : topic #3 (0.020): 0.313*\"nudity (topless)\" + 0.091*\"zombies\" + 0.059*\"nudity (topless - brief)\" + 0.024*\"keira knightley\" + 0.018*\"virtual reality\" + 0.018*\"zombie\" + 0.016*\"ingmar bergman\" + 0.014*\"strippers\" + 0.013*\"futuristic\" + 0.012*\"Horror\"\n", - "2021-08-24 02:39:12,122 : INFO : topic #33 (0.020): 0.169*\"comic book\" + 0.132*\"superhero\" + 0.066*\"super-hero\" + 0.039*\"adapted from:comic\" + 0.037*\"gene hackman\" + 0.037*\"batman\" + 0.027*\"action\" + 0.025*\"Action\" + 0.020*\"alter ego\" + 0.019*\"based on a comic\"\n", - "2021-08-24 02:39:12,123 : INFO : topic #44 (0.020): 0.118*\"Children\" + 0.112*\"Adventure\" + 0.107*\"Fantasy\" + 0.078*\"disney\" + 0.062*\"Animation\" + 0.056*\"Comedy\" + 0.043*\"animation\" + 0.042*\"fantasy\" + 0.020*\"children\" + 0.016*\"fairy tale\"\n", - "2021-08-24 02:39:12,125 : INFO : topic diff=0.135844, rho=0.173186\n", - "2021-08-24 02:39:12,126 : INFO : PROGRESS: pass 27, at document #4000/10681\n", - "2021-08-24 02:39:12,369 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:12,395 : INFO : topic #43 (0.020): 0.287*\"Crime\" + 0.158*\"Drama\" + 0.107*\"Thriller\" + 0.050*\"nudity (topless - notable)\" + 0.040*\"Mystery\" + 0.030*\"shakespeare\" + 0.025*\"nicolas cage\" + 0.017*\"remade\" + 0.016*\"adapted from:play\" + 0.014*\"sean penn\"\n", - "2021-08-24 02:39:12,396 : INFO : topic #25 (0.020): 0.191*\"Musical\" + 0.119*\"70mm\" + 0.072*\"musical\" + 0.065*\"religion\" + 0.027*\"rock and roll\" + 0.026*\"friendship\" + 0.023*\"music\" + 0.020*\"monty python\" + 0.018*\"adapted from b'way\" + 0.017*\"trains\"\n", - "2021-08-24 02:39:12,396 : INFO : topic #13 (0.020): 0.149*\"time travel\" + 0.073*\"twist ending\" + 0.059*\"holocaust\" + 0.034*\"bill murray\" + 0.030*\"post apocalyptic\" + 0.029*\"post-apocalyptic\" + 0.020*\"good dialogue\" + 0.018*\"mindfuck\" + 0.017*\"liam neeson\" + 0.016*\"very good\"\n", - "2021-08-24 02:39:12,397 : INFO : topic #5 (0.020): 0.230*\"Action\" + 0.205*\"Thriller\" + 0.173*\"Horror\" + 0.135*\"Sci-Fi\" + 0.066*\"Adventure\" + 0.034*\"betamax\" + 0.020*\"can't remember\" + 0.009*\"courtroom\" + 0.007*\"vhs\" + 0.007*\"dvd-video\"\n", - "2021-08-24 02:39:12,398 : INFO : topic #35 (0.020): 0.171*\"comedy\" + 0.129*\"Comedy\" + 0.081*\"funny\" + 0.050*\"parody\" + 0.040*\"hilarious\" + 0.034*\"can't remember\" + 0.025*\"stupid\" + 0.022*\"spoof\" + 0.020*\"funny as hell\" + 0.019*\"seen more than once\"\n", - "2021-08-24 02:39:12,400 : INFO : topic diff=0.023049, rho=0.173186\n", - "2021-08-24 02:39:12,401 : INFO : PROGRESS: pass 27, at document #6000/10681\n", - "2021-08-24 02:39:12,626 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:12,652 : INFO : topic #26 (0.020): 0.216*\"classic\" + 0.141*\"oscar (best picture)\" + 0.056*\"oscar (best directing)\" + 0.048*\"oscar (best supporting actor)\" + 0.032*\"afi 100\" + 0.027*\"afi 100 (laughs)\" + 0.026*\"national film registry\" + 0.025*\"matt damon\" + 0.021*\"afi 100 (cheers)\" + 0.019*\"oscar (best supporting actress)\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:39:12,652 : INFO : topic #35 (0.020): 0.171*\"comedy\" + 0.132*\"Comedy\" + 0.081*\"funny\" + 0.052*\"parody\" + 0.039*\"hilarious\" + 0.035*\"can't remember\" + 0.023*\"stupid\" + 0.022*\"spoof\" + 0.020*\"funny as hell\" + 0.018*\"seen more than once\"\n", - "2021-08-24 02:39:12,653 : INFO : topic #49 (0.020): 0.103*\"anime\" + 0.063*\"psychology\" + 0.056*\"serial killer\" + 0.053*\"teen\" + 0.050*\"high school\" + 0.019*\"mental illness\" + 0.018*\"japan\" + 0.017*\"cannibalism\" + 0.016*\"anthony hopkins\" + 0.014*\"cult film\"\n", - "2021-08-24 02:39:12,654 : INFO : topic #8 (0.020): 0.102*\"space\" + 0.044*\"harrison ford\" + 0.026*\"christianity\" + 0.024*\"george lucas\" + 0.024*\"kevin smith\" + 0.024*\"spaghetti western\" + 0.023*\"archaeology\" + 0.020*\"sergio leone\" + 0.019*\"fantasy\" + 0.019*\"space opera\"\n", - "2021-08-24 02:39:12,655 : INFO : topic #46 (0.020): 0.091*\"dvd\" + 0.063*\"overrated\" + 0.055*\"seen more than once\" + 0.042*\"owned\" + 0.031*\"samuel l. jackson\" + 0.030*\"bibliothek\" + 0.030*\"imdb top 250\" + 0.029*\"eric's dvds\" + 0.024*\"seen at the cinema\" + 0.023*\"tumey's dvds\"\n", - "2021-08-24 02:39:12,656 : INFO : topic diff=0.047263, rho=0.173186\n", - "2021-08-24 02:39:12,658 : INFO : PROGRESS: pass 27, at document #8000/10681\n", - "2021-08-24 02:39:12,923 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:12,955 : INFO : topic #42 (0.020): 0.156*\"johnny depp\" + 0.075*\"tim burton\" + 0.052*\"martin scorsese\" + 0.041*\"narrated\" + 0.033*\"george clooney\" + 0.028*\"ei muista\" + 0.025*\"monster\" + 0.018*\"alien invasion\" + 0.018*\"brothers\" + 0.014*\"las vegas\"\n", - "2021-08-24 02:39:12,956 : INFO : topic #2 (0.020): 0.102*\"Comedy\" + 0.095*\"lesbian\" + 0.091*\"satire\" + 0.051*\"imdb bottom 100\" + 0.036*\"sexy\" + 0.028*\"get\" + 0.018*\"olympics\" + 0.018*\"ben stiller\" + 0.017*\"john turturro\" + 0.017*\"1\"\n", - "2021-08-24 02:39:12,956 : INFO : topic #29 (0.020): 0.139*\"action\" + 0.058*\"Action\" + 0.049*\"adventure\" + 0.039*\"sequel\" + 0.034*\"boring\" + 0.033*\"Adventure\" + 0.027*\"robots\" + 0.026*\"arnold schwarzenegger\" + 0.025*\"pirates\" + 0.022*\"motorcycle\"\n", - "2021-08-24 02:39:12,957 : INFO : topic #11 (0.020): 0.272*\"Documentary\" + 0.143*\"to see\" + 0.075*\"in netflix queue\" + 0.068*\"gay\" + 0.045*\"oscar (best actor)\" + 0.024*\"india\" + 0.020*\"homosexuality\" + 0.019*\"matter-of-fact\" + 0.018*\"IMAX\" + 0.015*\"ian mckellen\"\n", - "2021-08-24 02:39:12,958 : INFO : topic #48 (0.020): 0.052*\"quirky\" + 0.047*\"surreal\" + 0.043*\"directorial debut\" + 0.027*\"bittersweet\" + 0.026*\"woody allen\" + 0.023*\"humorous\" + 0.020*\"whimsical\" + 0.020*\"erlend's dvds\" + 0.019*\"coming of age\" + 0.019*\"peter jackson\"\n", - "2021-08-24 02:39:12,959 : INFO : topic diff=0.038957, rho=0.173186\n", - "2021-08-24 02:39:12,960 : INFO : PROGRESS: pass 27, at document #10000/10681\n", - "2021-08-24 02:39:13,231 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:13,259 : INFO : topic #17 (0.020): 0.061*\"police\" + 0.050*\"will smith\" + 0.040*\"corruption\" + 0.026*\"computers\" + 0.026*\"sandra bullock\" + 0.021*\"action packed\" + 0.021*\"milla jovovich\" + 0.019*\"torture\" + 0.017*\"snakes\" + 0.017*\"stage\"\n", - "2021-08-24 02:39:13,260 : INFO : topic #45 (0.020): 0.055*\"japan\" + 0.044*\"tense\" + 0.041*\"revenge\" + 0.036*\"clint eastwood\" + 0.031*\"forceful\" + 0.029*\"gritty\" + 0.028*\"atmospheric\" + 0.027*\"corvallis library\" + 0.025*\"Action\" + 0.022*\"sweeping\"\n", - "2021-08-24 02:39:13,261 : INFO : topic #26 (0.020): 0.205*\"classic\" + 0.126*\"oscar (best picture)\" + 0.052*\"oscar (best directing)\" + 0.048*\"oscar (best supporting actor)\" + 0.031*\"matt damon\" + 0.031*\"afi 100 (laughs)\" + 0.026*\"afi 100\" + 0.026*\"national film registry\" + 0.021*\"afi 100 (cheers)\" + 0.018*\"oscar (best supporting actress)\"\n", - "2021-08-24 02:39:13,262 : INFO : topic #48 (0.020): 0.048*\"quirky\" + 0.043*\"surreal\" + 0.041*\"directorial debut\" + 0.027*\"bittersweet\" + 0.024*\"woody allen\" + 0.023*\"humorous\" + 0.021*\"whimsical\" + 0.019*\"erlend's dvds\" + 0.018*\"coming of age\" + 0.018*\"underrated\"\n", - "2021-08-24 02:39:13,264 : INFO : topic #38 (0.020): 0.083*\"true story\" + 0.068*\"tom hanks\" + 0.060*\"biography\" + 0.053*\"based on a true story\" + 0.050*\"Drama\" + 0.041*\"drama\" + 0.034*\"biopic\" + 0.029*\"historical\" + 0.027*\"pg\" + 0.026*\"music\"\n", - "2021-08-24 02:39:13,265 : INFO : topic diff=0.027214, rho=0.173186\n", - "2021-08-24 02:39:13,420 : INFO : -20.974 per-word bound, 2060319.6 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:39:13,421 : INFO : PROGRESS: pass 27, at document #10681/10681\n", - "2021-08-24 02:39:13,530 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:39:13,557 : INFO : topic #46 (0.020): 0.088*\"dvd\" + 0.072*\"overrated\" + 0.048*\"seen more than once\" + 0.046*\"owned\" + 0.035*\"imdb top 250\" + 0.032*\"samuel l. jackson\" + 0.030*\"eric's dvds\" + 0.027*\"bibliothek\" + 0.021*\"tumey's dvds\" + 0.020*\"seen at the cinema\"\n", - "2021-08-24 02:39:13,558 : INFO : topic #12 (0.020): 0.101*\"christmas\" + 0.085*\"quentin tarantino\" + 0.071*\"heist\" + 0.050*\"tarantino\" + 0.047*\"nonlinear\" + 0.047*\"rape\" + 0.034*\"blindfold\" + 0.019*\"xmas theme\" + 0.018*\"robbery\" + 0.018*\"ireland\"\n", - "2021-08-24 02:39:13,559 : INFO : topic #25 (0.020): 0.217*\"Musical\" + 0.106*\"70mm\" + 0.076*\"musical\" + 0.074*\"religion\" + 0.033*\"friendship\" + 0.026*\"rock and roll\" + 0.020*\"music\" + 0.019*\"trains\" + 0.016*\"monty python\" + 0.015*\"adapted from b'way\"\n", - "2021-08-24 02:39:13,560 : INFO : topic #2 (0.020): 0.110*\"Comedy\" + 0.098*\"satire\" + 0.089*\"lesbian\" + 0.061*\"imdb bottom 100\" + 0.027*\"sexy\" + 0.022*\"get\" + 0.020*\"olympics\" + 0.017*\"ben stiller\" + 0.016*\"john turturro\" + 0.016*\"adolf hitler\"\n", - "2021-08-24 02:39:13,561 : INFO : topic #38 (0.020): 0.085*\"true story\" + 0.077*\"based on a true story\" + 0.065*\"biography\" + 0.063*\"tom hanks\" + 0.052*\"Drama\" + 0.036*\"drama\" + 0.031*\"historical\" + 0.030*\"biopic\" + 0.026*\"paris\" + 0.025*\"music\"\n", - "2021-08-24 02:39:13,562 : INFO : topic diff=0.067028, rho=0.173186\n", - "2021-08-24 02:39:13,564 : INFO : PROGRESS: pass 28, at document #2000/10681\n", - "2021-08-24 02:39:13,847 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:13,873 : INFO : topic #15 (0.020): 0.069*\"coen brothers\" + 0.057*\"stephen king\" + 0.053*\"racism\" + 0.038*\"adultery\" + 0.033*\"great acting\" + 0.030*\"espionage\" + 0.025*\"los angeles\" + 0.017*\"ensemble cast\" + 0.017*\"notable nudity\" + 0.017*\"san francisco\"\n", - "2021-08-24 02:39:13,874 : INFO : topic #49 (0.020): 0.095*\"anime\" + 0.061*\"serial killer\" + 0.054*\"psychology\" + 0.052*\"high school\" + 0.039*\"teen\" + 0.020*\"cannibalism\" + 0.019*\"mental illness\" + 0.018*\"japan\" + 0.016*\"cult film\" + 0.016*\"anthony hopkins\"\n", - "2021-08-24 02:39:13,875 : INFO : topic #8 (0.020): 0.112*\"space\" + 0.049*\"harrison ford\" + 0.028*\"christianity\" + 0.025*\"kevin smith\" + 0.024*\"george lucas\" + 0.024*\"archaeology\" + 0.020*\"space opera\" + 0.020*\"marx brothers\" + 0.019*\"fantasy\" + 0.019*\"spaghetti western\"\n", - "2021-08-24 02:39:13,876 : INFO : topic #33 (0.020): 0.169*\"comic book\" + 0.131*\"superhero\" + 0.066*\"super-hero\" + 0.039*\"adapted from:comic\" + 0.037*\"gene hackman\" + 0.037*\"batman\" + 0.027*\"action\" + 0.025*\"Action\" + 0.020*\"alter ego\" + 0.019*\"based on a comic\"\n", - "2021-08-24 02:39:13,877 : INFO : topic #46 (0.020): 0.081*\"dvd\" + 0.067*\"overrated\" + 0.049*\"seen more than once\" + 0.043*\"owned\" + 0.034*\"samuel l. jackson\" + 0.034*\"imdb top 250\" + 0.029*\"bibliothek\" + 0.028*\"eric's dvds\" + 0.025*\"kevin spacey\" + 0.023*\"seen at the cinema\"\n", - "2021-08-24 02:39:13,878 : INFO : topic diff=0.133390, rho=0.170646\n", - "2021-08-24 02:39:13,880 : INFO : PROGRESS: pass 28, at document #4000/10681\n", - "2021-08-24 02:39:14,137 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:14,164 : INFO : topic #15 (0.020): 0.065*\"stephen king\" + 0.065*\"coen brothers\" + 0.064*\"racism\" + 0.040*\"adultery\" + 0.029*\"great acting\" + 0.028*\"espionage\" + 0.024*\"los angeles\" + 0.019*\"ensemble cast\" + 0.018*\"notable nudity\" + 0.018*\"multiple storylines\"\n", - "2021-08-24 02:39:14,165 : INFO : topic #44 (0.020): 0.118*\"Children\" + 0.112*\"Adventure\" + 0.104*\"Fantasy\" + 0.076*\"disney\" + 0.064*\"Animation\" + 0.056*\"Comedy\" + 0.042*\"animation\" + 0.041*\"fantasy\" + 0.020*\"children\" + 0.015*\"disney animated feature\"\n", - "2021-08-24 02:39:14,165 : INFO : topic #22 (0.020): 0.071*\"national film registry\" + 0.057*\"oscar (best cinematography)\" + 0.033*\"imdb top 250\" + 0.032*\"stanley kubrick\" + 0.031*\"classic\" + 0.030*\"afi 100 (thrills)\" + 0.030*\"tumey's dvds\" + 0.028*\"70mm\" + 0.028*\"black and white\" + 0.026*\"erlend's dvds\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:39:14,166 : INFO : topic #49 (0.020): 0.088*\"anime\" + 0.057*\"serial killer\" + 0.057*\"psychology\" + 0.057*\"teen\" + 0.057*\"high school\" + 0.020*\"mental illness\" + 0.017*\"cannibalism\" + 0.016*\"cult film\" + 0.015*\"japan\" + 0.014*\"anthony hopkins\"\n", - "2021-08-24 02:39:14,167 : INFO : topic #48 (0.020): 0.048*\"quirky\" + 0.044*\"directorial debut\" + 0.044*\"surreal\" + 0.026*\"woody allen\" + 0.025*\"bittersweet\" + 0.024*\"humorous\" + 0.021*\"underrated\" + 0.020*\"coming of age\" + 0.019*\"erlend's dvds\" + 0.018*\"whimsical\"\n", - "2021-08-24 02:39:14,168 : INFO : topic diff=0.022702, rho=0.170646\n", - "2021-08-24 02:39:14,169 : INFO : PROGRESS: pass 28, at document #6000/10681\n", - "2021-08-24 02:39:14,396 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:14,422 : INFO : topic #45 (0.020): 0.044*\"tense\" + 0.042*\"japan\" + 0.041*\"clint eastwood\" + 0.032*\"forceful\" + 0.032*\"revenge\" + 0.030*\"gritty\" + 0.029*\"atmospheric\" + 0.024*\"Action\" + 0.023*\"sweeping\" + 0.022*\"samurai\"\n", - "2021-08-24 02:39:14,424 : INFO : topic #17 (0.020): 0.059*\"will smith\" + 0.058*\"police\" + 0.032*\"corruption\" + 0.031*\"sandra bullock\" + 0.028*\"computers\" + 0.022*\"milla jovovich\" + 0.019*\"stage\" + 0.019*\"torture\" + 0.018*\"no dialogue\" + 0.016*\"action packed\"\n", - "2021-08-24 02:39:14,424 : INFO : topic #38 (0.020): 0.082*\"tom hanks\" + 0.079*\"true story\" + 0.058*\"biography\" + 0.056*\"based on a true story\" + 0.048*\"Drama\" + 0.045*\"drama\" + 0.030*\"music\" + 0.029*\"historical\" + 0.027*\"biopic\" + 0.024*\"oscar (best actor)\"\n", - "2021-08-24 02:39:14,426 : INFO : topic #25 (0.020): 0.198*\"Musical\" + 0.131*\"70mm\" + 0.072*\"musical\" + 0.064*\"religion\" + 0.027*\"rock and roll\" + 0.025*\"friendship\" + 0.022*\"music\" + 0.018*\"monty python\" + 0.017*\"adapted from b'way\" + 0.015*\"trains\"\n", - "2021-08-24 02:39:14,427 : INFO : topic #41 (0.020): 0.251*\"based on a book\" + 0.116*\"adapted from:book\" + 0.065*\"Drama\" + 0.057*\"robin williams\" + 0.055*\"nudity (full frontal)\" + 0.049*\"netflix\" + 0.038*\"vampire\" + 0.031*\"vampires\" + 0.016*\"book\" + 0.012*\"drama\"\n", - "2021-08-24 02:39:14,428 : INFO : topic diff=0.046406, rho=0.170646\n", - "2021-08-24 02:39:14,430 : INFO : PROGRESS: pass 28, at document #8000/10681\n", - "2021-08-24 02:39:14,660 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:14,686 : INFO : topic #36 (0.020): 0.104*\"dark comedy\" + 0.075*\"bechdel test:fail\" + 0.074*\"black comedy\" + 0.037*\"nazis\" + 0.036*\"funniest movies\" + 0.033*\"cold war\" + 0.014*\"russia\" + 0.014*\"communism\" + 0.013*\"author:charles dickens\" + 0.013*\"existentialism\"\n", - "2021-08-24 02:39:14,687 : INFO : topic #44 (0.020): 0.116*\"Adventure\" + 0.116*\"Children\" + 0.107*\"Fantasy\" + 0.066*\"disney\" + 0.063*\"Animation\" + 0.054*\"Comedy\" + 0.049*\"fantasy\" + 0.043*\"animation\" + 0.019*\"children\" + 0.017*\"fairy tale\"\n", - "2021-08-24 02:39:14,688 : INFO : topic #19 (0.020): 0.077*\"ghosts\" + 0.063*\"pg-13\" + 0.037*\"jude law\" + 0.036*\"wedding\" + 0.036*\"julia roberts\" + 0.027*\"want to own\" + 0.027*\"hollywood\" + 0.024*\"infidelity\" + 0.023*\"afternoon section\" + 0.023*\"prostitution\"\n", - "2021-08-24 02:39:14,689 : INFO : topic #2 (0.020): 0.102*\"Comedy\" + 0.095*\"lesbian\" + 0.091*\"satire\" + 0.051*\"imdb bottom 100\" + 0.036*\"sexy\" + 0.028*\"get\" + 0.018*\"olympics\" + 0.018*\"ben stiller\" + 0.017*\"john turturro\" + 0.017*\"1\"\n", - "2021-08-24 02:39:14,690 : INFO : topic #37 (0.020): 0.061*\"easily confused with other movie(s) (title)\" + 0.041*\"want to see again\" + 0.040*\"oscar (best supporting actress)\" + 0.037*\"vietnam war\" + 0.035*\"vietnam\" + 0.032*\"food\" + 0.030*\"peter sellers\" + 0.030*\"j netflix\" + 0.023*\"19th century\" + 0.020*\"father daughter relationship\"\n", - "2021-08-24 02:39:14,691 : INFO : topic diff=0.038459, rho=0.170646\n", - "2021-08-24 02:39:14,692 : INFO : PROGRESS: pass 28, at document #10000/10681\n", - "2021-08-24 02:39:14,954 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:14,981 : INFO : topic #48 (0.020): 0.049*\"quirky\" + 0.043*\"surreal\" + 0.041*\"directorial debut\" + 0.027*\"bittersweet\" + 0.024*\"woody allen\" + 0.023*\"humorous\" + 0.021*\"whimsical\" + 0.019*\"erlend's dvds\" + 0.018*\"coming of age\" + 0.018*\"underrated\"\n", - "2021-08-24 02:39:14,982 : INFO : topic #22 (0.020): 0.078*\"national film registry\" + 0.055*\"oscar (best cinematography)\" + 0.029*\"tumey's dvds\" + 0.027*\"imdb top 250\" + 0.026*\"philip k. dick\" + 0.025*\"black and white\" + 0.025*\"erlend's dvds\" + 0.024*\"afi 100 (thrills)\" + 0.024*\"clv\" + 0.024*\"classic\"\n", - "2021-08-24 02:39:14,983 : INFO : topic #13 (0.020): 0.146*\"time travel\" + 0.077*\"twist ending\" + 0.052*\"holocaust\" + 0.037*\"bill murray\" + 0.029*\"post-apocalyptic\" + 0.023*\"post apocalyptic\" + 0.019*\"liam neeson\" + 0.018*\"michael moore\" + 0.018*\"mindfuck\" + 0.018*\"very good\"\n", - "2021-08-24 02:39:14,983 : INFO : topic #29 (0.020): 0.132*\"action\" + 0.058*\"Action\" + 0.048*\"adventure\" + 0.039*\"sequel\" + 0.036*\"boring\" + 0.034*\"Adventure\" + 0.032*\"pirates\" + 0.026*\"robots\" + 0.026*\"motorcycle\" + 0.024*\"watched 2007\"\n", - "2021-08-24 02:39:14,984 : INFO : topic #47 (0.020): 0.323*\"less than 300 ratings\" + 0.152*\"Drama\" + 0.064*\"nudity (rear)\" + 0.030*\"jackie chan\" + 0.021*\"kung fu\" + 0.020*\"football\" + 0.016*\"denzel washington\" + 0.016*\"oppl\" + 0.014*\"brian de palma\" + 0.010*\"bechdel test:pass\"\n", - "2021-08-24 02:39:14,985 : INFO : topic diff=0.026603, rho=0.170646\n", - "2021-08-24 02:39:15,135 : INFO : -20.974 per-word bound, 2059024.0 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:39:15,135 : INFO : PROGRESS: pass 28, at document #10681/10681\n", - "2021-08-24 02:39:15,235 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:39:15,262 : INFO : topic #45 (0.020): 0.054*\"japan\" + 0.042*\"tense\" + 0.040*\"revenge\" + 0.034*\"clint eastwood\" + 0.030*\"forceful\" + 0.029*\"gritty\" + 0.027*\"corvallis library\" + 0.027*\"atmospheric\" + 0.024*\"Action\" + 0.023*\"akira kurosawa\"\n", - "2021-08-24 02:39:15,263 : INFO : topic #19 (0.020): 0.094*\"pg-13\" + 0.067*\"ghosts\" + 0.041*\"jude law\" + 0.038*\"wedding\" + 0.033*\"julia roberts\" + 0.029*\"infidelity\" + 0.025*\"want to own\" + 0.022*\"hollywood\" + 0.021*\"prostitution\" + 0.017*\"afternoon section\"\n", - "2021-08-24 02:39:15,264 : INFO : topic #31 (0.020): 0.113*\"murder\" + 0.078*\"james bond\" + 0.048*\"007\" + 0.047*\"bond\" + 0.045*\"assassin\" + 0.026*\"claymation\" + 0.025*\"Thriller\" + 0.024*\"Action\" + 0.020*\"killer-as-protagonist\" + 0.020*\"aardman\"\n", - "2021-08-24 02:39:15,265 : INFO : topic #9 (0.020): 0.247*\"r\" + 0.125*\"clearplay\" + 0.086*\"Western\" + 0.076*\"nudity (topless - brief)\" + 0.067*\"Drama\" + 0.038*\"pg13\" + 0.028*\"to see\" + 0.026*\"movie to see\" + 0.025*\"Thriller\" + 0.017*\"british\"\n", - "2021-08-24 02:39:15,266 : INFO : topic #16 (0.020): 0.160*\"sci-fi\" + 0.084*\"dystopia\" + 0.062*\"Sci-Fi\" + 0.056*\"futuristmovies.com\" + 0.035*\"military\" + 0.029*\"future\" + 0.015*\"weird\" + 0.015*\"joaquin phoenix\" + 0.014*\"betrayal\" + 0.012*\"imdb top 250\"\n", - "2021-08-24 02:39:15,267 : INFO : topic diff=0.066220, rho=0.170646\n", - "2021-08-24 02:39:15,268 : INFO : PROGRESS: pass 29, at document #2000/10681\n", - "2021-08-24 02:39:15,526 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:15,551 : INFO : topic #34 (0.020): 0.170*\"War\" + 0.122*\"Drama\" + 0.097*\"world war ii\" + 0.073*\"drugs\" + 0.051*\"war\" + 0.042*\"prison\" + 0.038*\"history\" + 0.028*\"Action\" + 0.022*\"london\" + 0.016*\"Adventure\"\n", - "2021-08-24 02:39:15,552 : INFO : topic #11 (0.020): 0.271*\"Documentary\" + 0.170*\"to see\" + 0.073*\"gay\" + 0.064*\"in netflix queue\" + 0.051*\"oscar (best actor)\" + 0.027*\"india\" + 0.020*\"homosexuality\" + 0.017*\"IMAX\" + 0.015*\"matter-of-fact\" + 0.011*\"ian mckellen\"\n", - "2021-08-24 02:39:15,553 : INFO : topic #7 (0.020): 0.206*\"movie to see\" + 0.064*\"mel gibson\" + 0.045*\"boxing\" + 0.034*\"uma thurman\" + 0.032*\"kidnapping\" + 0.031*\"john travolta\" + 0.028*\"sylvester stallone\" + 0.024*\"suburbia\" + 0.019*\"basketball\" + 0.014*\"sports\"\n", - "2021-08-24 02:39:15,553 : INFO : topic #40 (0.020): 0.121*\"nudity (full frontal - notable)\" + 0.100*\"magic\" + 0.052*\"not corv lib\" + 0.051*\"edward norton\" + 0.051*\"sports\" + 0.041*\"baseball\" + 0.038*\"hw drama\" + 0.034*\"inspirational\" + 0.025*\"compassionate\" + 0.024*\"christopher walken\"\n", - "2021-08-24 02:39:15,554 : INFO : topic #36 (0.020): 0.122*\"dark comedy\" + 0.088*\"bechdel test:fail\" + 0.078*\"black comedy\" + 0.043*\"nazis\" + 0.036*\"cold war\" + 0.027*\"funniest movies\" + 0.016*\"existentialism\" + 0.015*\"communism\" + 0.015*\"nuclear war\" + 0.014*\"author:charles dickens\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:39:15,556 : INFO : topic diff=0.131329, rho=0.168215\n", - "2021-08-24 02:39:15,557 : INFO : PROGRESS: pass 29, at document #4000/10681\n", - "2021-08-24 02:39:15,799 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:15,824 : INFO : topic #0 (0.020): 0.097*\"crime\" + 0.061*\"brad pitt\" + 0.060*\"violence\" + 0.043*\"Crime\" + 0.038*\"morgan freeman\" + 0.037*\"violent\" + 0.032*\"organized crime\" + 0.030*\"thriller\" + 0.028*\"drama\" + 0.027*\"philip seymour hoffman\"\n", - "2021-08-24 02:39:15,825 : INFO : topic #26 (0.020): 0.225*\"classic\" + 0.147*\"oscar (best picture)\" + 0.059*\"oscar (best directing)\" + 0.046*\"oscar (best supporting actor)\" + 0.035*\"afi 100\" + 0.031*\"afi 100 (laughs)\" + 0.028*\"national film registry\" + 0.022*\"afi 100 (cheers)\" + 0.021*\"matt damon\" + 0.018*\"oscar (best supporting actress)\"\n", - "2021-08-24 02:39:15,826 : INFO : topic #7 (0.020): 0.178*\"movie to see\" + 0.071*\"mel gibson\" + 0.053*\"boxing\" + 0.034*\"suburbia\" + 0.031*\"uma thurman\" + 0.029*\"sylvester stallone\" + 0.028*\"kidnapping\" + 0.025*\"john travolta\" + 0.024*\"basketball\" + 0.016*\"sports\"\n", - "2021-08-24 02:39:15,826 : INFO : topic #49 (0.020): 0.088*\"anime\" + 0.057*\"serial killer\" + 0.057*\"psychology\" + 0.057*\"teen\" + 0.057*\"high school\" + 0.020*\"mental illness\" + 0.017*\"cannibalism\" + 0.016*\"cult film\" + 0.015*\"japan\" + 0.014*\"anthony hopkins\"\n", - "2021-08-24 02:39:15,827 : INFO : topic #48 (0.020): 0.048*\"quirky\" + 0.044*\"directorial debut\" + 0.044*\"surreal\" + 0.026*\"woody allen\" + 0.025*\"bittersweet\" + 0.024*\"humorous\" + 0.021*\"underrated\" + 0.020*\"coming of age\" + 0.019*\"erlend's dvds\" + 0.018*\"whimsical\"\n", - "2021-08-24 02:39:15,829 : INFO : topic diff=0.022261, rho=0.168215\n", - "2021-08-24 02:39:15,830 : INFO : PROGRESS: pass 29, at document #6000/10681\n", - "2021-08-24 02:39:16,072 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:16,099 : INFO : topic #29 (0.020): 0.141*\"action\" + 0.058*\"Action\" + 0.049*\"adventure\" + 0.039*\"sequel\" + 0.035*\"boring\" + 0.032*\"Adventure\" + 0.029*\"robots\" + 0.027*\"arnold schwarzenegger\" + 0.022*\"70mm\" + 0.020*\"motorcycle\"\n", - "2021-08-24 02:39:16,100 : INFO : topic #12 (0.020): 0.103*\"christmas\" + 0.085*\"quentin tarantino\" + 0.065*\"heist\" + 0.063*\"nonlinear\" + 0.055*\"tarantino\" + 0.046*\"rape\" + 0.030*\"blindfold\" + 0.023*\"terry gilliam\" + 0.019*\"xmas theme\" + 0.016*\"ireland\"\n", - "2021-08-24 02:39:16,101 : INFO : topic #39 (0.020): 0.120*\"bruce willis\" + 0.055*\"interesting\" + 0.033*\"love\" + 0.032*\"africa\" + 0.028*\"gerard depardieu\" + 0.025*\"golden raspberry (worst actor)\" + 0.024*\"avi\" + 0.024*\"good\" + 0.023*\"predictable\" + 0.022*\"end of the world\"\n", - "2021-08-24 02:39:16,102 : INFO : topic #15 (0.020): 0.060*\"coen brothers\" + 0.060*\"racism\" + 0.058*\"stephen king\" + 0.040*\"adultery\" + 0.032*\"espionage\" + 0.026*\"great acting\" + 0.024*\"los angeles\" + 0.021*\"multiple storylines\" + 0.020*\"notable nudity\" + 0.018*\"ensemble cast\"\n", - "2021-08-24 02:39:16,103 : INFO : topic #16 (0.020): 0.180*\"sci-fi\" + 0.087*\"dystopia\" + 0.069*\"futuristmovies.com\" + 0.063*\"Sci-Fi\" + 0.031*\"military\" + 0.031*\"future\" + 0.014*\"joaquin phoenix\" + 0.014*\"weird\" + 0.013*\"saturn award (best science fiction film)\" + 0.013*\"court\"\n", - "2021-08-24 02:39:16,104 : INFO : topic diff=0.045763, rho=0.168215\n", - "2021-08-24 02:39:16,105 : INFO : PROGRESS: pass 29, at document #8000/10681\n", - "2021-08-24 02:39:16,358 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:16,385 : INFO : topic #45 (0.020): 0.053*\"japan\" + 0.045*\"tense\" + 0.038*\"clint eastwood\" + 0.034*\"forceful\" + 0.031*\"revenge\" + 0.030*\"gritty\" + 0.028*\"atmospheric\" + 0.024*\"akira kurosawa\" + 0.023*\"Action\" + 0.022*\"visceral\"\n", - "2021-08-24 02:39:16,386 : INFO : topic #0 (0.020): 0.101*\"crime\" + 0.060*\"violence\" + 0.058*\"brad pitt\" + 0.041*\"Crime\" + 0.037*\"violent\" + 0.036*\"morgan freeman\" + 0.028*\"organized crime\" + 0.027*\"drama\" + 0.026*\"Thriller\" + 0.026*\"philip seymour hoffman\"\n", - "2021-08-24 02:39:16,386 : INFO : topic #9 (0.020): 0.202*\"r\" + 0.106*\"Western\" + 0.096*\"clearplay\" + 0.086*\"nudity (topless - brief)\" + 0.059*\"Drama\" + 0.027*\"pg13\" + 0.025*\"british\" + 0.022*\"Thriller\" + 0.021*\"russell crowe\" + 0.020*\"to see\"\n", - "2021-08-24 02:39:16,387 : INFO : topic #13 (0.020): 0.153*\"time travel\" + 0.069*\"twist ending\" + 0.057*\"holocaust\" + 0.035*\"bill murray\" + 0.029*\"post-apocalyptic\" + 0.025*\"post apocalyptic\" + 0.020*\"very good\" + 0.019*\"michael moore\" + 0.019*\"mindfuck\" + 0.016*\"liam neeson\"\n", - "2021-08-24 02:39:16,388 : INFO : topic #17 (0.020): 0.061*\"police\" + 0.056*\"will smith\" + 0.031*\"computers\" + 0.030*\"corruption\" + 0.027*\"sandra bullock\" + 0.020*\"stage\" + 0.019*\"milla jovovich\" + 0.018*\"no dialogue\" + 0.018*\"torture\" + 0.016*\"action packed\"\n", - "2021-08-24 02:39:16,390 : INFO : topic diff=0.038014, rho=0.168215\n", - "2021-08-24 02:39:16,391 : INFO : PROGRESS: pass 29, at document #10000/10681\n", - "2021-08-24 02:39:16,647 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:39:16,674 : INFO : topic #47 (0.020): 0.323*\"less than 300 ratings\" + 0.152*\"Drama\" + 0.064*\"nudity (rear)\" + 0.030*\"jackie chan\" + 0.021*\"kung fu\" + 0.020*\"football\" + 0.016*\"denzel washington\" + 0.016*\"oppl\" + 0.014*\"brian de palma\" + 0.010*\"bechdel test:pass\"\n", - "2021-08-24 02:39:16,675 : INFO : topic #49 (0.020): 0.126*\"anime\" + 0.060*\"psychology\" + 0.052*\"serial killer\" + 0.051*\"high school\" + 0.046*\"teen\" + 0.021*\"japan\" + 0.017*\"mental illness\" + 0.016*\"cannibalism\" + 0.014*\"anthony hopkins\" + 0.013*\"steve martin\"\n", - "2021-08-24 02:39:16,675 : INFO : topic #37 (0.020): 0.070*\"easily confused with other movie(s) (title)\" + 0.036*\"oscar (best supporting actress)\" + 0.035*\"j netflix\" + 0.034*\"want to see again\" + 0.031*\"vietnam war\" + 0.030*\"food\" + 0.030*\"vietnam\" + 0.027*\"19th century\" + 0.025*\"peter sellers\" + 0.025*\"slow\"\n", - "2021-08-24 02:39:16,676 : INFO : topic #12 (0.020): 0.096*\"quentin tarantino\" + 0.092*\"christmas\" + 0.069*\"heist\" + 0.056*\"tarantino\" + 0.053*\"nonlinear\" + 0.041*\"rape\" + 0.032*\"blindfold\" + 0.020*\"ireland\" + 0.020*\"terry gilliam\" + 0.019*\"xmas theme\"\n", - "2021-08-24 02:39:16,677 : INFO : topic #30 (0.020): 0.646*\"Drama\" + 0.040*\"Film-Noir\" + 0.014*\"tumey's dvds\" + 0.010*\"small town\" + 0.009*\"witch\" + 0.008*\"glbt\" + 0.007*\"film noir\" + 0.007*\"erlend's dvds\" + 0.007*\"oscar (best foreign language film)\" + 0.007*\"italy\"\n", - "2021-08-24 02:39:16,678 : INFO : topic diff=0.026163, rho=0.168215\n", - "2021-08-24 02:39:16,820 : INFO : -20.974 per-word bound, 2060356.8 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:39:16,821 : INFO : PROGRESS: pass 29, at document #10681/10681\n", - "2021-08-24 02:39:16,919 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:39:16,945 : INFO : topic #21 (0.020): 0.098*\"Drama\" + 0.053*\"criterion\" + 0.029*\"library\" + 0.026*\"sven's to see list\" + 0.023*\"tumey's dvds\" + 0.022*\"dvd-video\" + 0.021*\"atmospheric\" + 0.021*\"reflective\" + 0.020*\"irreverent\" + 0.020*\"deliberate\"\n", - "2021-08-24 02:39:16,946 : INFO : topic #17 (0.020): 0.067*\"will smith\" + 0.059*\"police\" + 0.046*\"corruption\" + 0.029*\"torture\" + 0.023*\"action packed\" + 0.023*\"milla jovovich\" + 0.022*\"computers\" + 0.022*\"sandra bullock\" + 0.018*\"tattoo\" + 0.017*\"suicide attempt\"\n", - "2021-08-24 02:39:16,946 : INFO : topic #13 (0.020): 0.133*\"time travel\" + 0.075*\"twist ending\" + 0.055*\"holocaust\" + 0.034*\"post-apocalyptic\" + 0.033*\"bill murray\" + 0.026*\"post apocalyptic\" + 0.021*\"good dialogue\" + 0.017*\"liam neeson\" + 0.016*\"michael moore\" + 0.016*\"mindfuck\"\n", - "2021-08-24 02:39:16,947 : INFO : topic #8 (0.020): 0.093*\"space\" + 0.043*\"christianity\" + 0.033*\"harrison ford\" + 0.028*\"marx brothers\" + 0.026*\"archaeology\" + 0.022*\"kevin smith\" + 0.019*\"spaghetti western\" + 0.019*\"george lucas\" + 0.019*\"1970s\" + 0.018*\"western\"\n", - "2021-08-24 02:39:16,948 : INFO : topic #39 (0.020): 0.099*\"bruce willis\" + 0.051*\"interesting\" + 0.042*\"love\" + 0.042*\"africa\" + 0.030*\"predictable\" + 0.028*\"apocalypse\" + 0.025*\"avi\" + 0.023*\"gerard depardieu\" + 0.023*\"good\" + 0.022*\"tragedy\"\n", - "2021-08-24 02:39:16,950 : INFO : topic diff=0.065101, rho=0.168215\n", - "2021-08-24 02:39:16,952 : INFO : LdaModel lifecycle event {'msg': 'trained LdaModel(num_terms=15261, num_topics=50, decay=0.5, chunksize=2000) in 52.57s', 'datetime': '2021-08-24T02:39:16.952132', 'gensim': '4.0.1', 'python': '3.7.8 (default, May 2 2021, 19:43:55) \\n[Clang 10.0.1 (clang-1001.0.46.4)]', 'platform': 'Darwin-18.7.0-x86_64-i386-64bit', 'event': 'created'}\n" - ] - } - ], + "outputs": [], "source": [ "import gensim\n", "import logging\n", @@ -1752,1700 +68,10 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "30924a14", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:09,772 : INFO : adding document #0 to Dictionary(0 unique tokens: [])\n", - "2021-08-24 02:42:09,943 : INFO : adding document #10000 to Dictionary(14749 unique tokens: ['3d', 'Adventure', 'Animation', 'Children', 'Comedy']...)\n", - "2021-08-24 02:42:09,953 : INFO : built Dictionary(15261 unique tokens: ['3d', 'Adventure', 'Animation', 'Children', 'Comedy']...) from 10681 documents (total 117144 corpus positions)\n", - "2021-08-24 02:42:09,954 : INFO : Dictionary lifecycle event {'msg': \"built Dictionary(15261 unique tokens: ['3d', 'Adventure', 'Animation', 'Children', 'Comedy']...) from 10681 documents (total 117144 corpus positions)\", 'datetime': '2021-08-24T02:42:09.954077', 'gensim': '4.0.1', 'python': '3.7.8 (default, May 2 2021, 19:43:55) \\n[Clang 10.0.1 (clang-1001.0.46.4)]', 'platform': 'Darwin-18.7.0-x86_64-i386-64bit', 'event': 'created'}\n", - "2021-08-24 02:42:10,040 : INFO : using symmetric alpha at 0.02\n", - "2021-08-24 02:42:10,040 : INFO : using symmetric eta at 0.02\n", - "2021-08-24 02:42:10,042 : INFO : using serial LDA version on this node\n", - "2021-08-24 02:42:10,094 : INFO : running online (multi-pass) LDA training, 50 topics, 30 passes over the supplied corpus of 10681 documents, updating model once every 2000 documents, evaluating perplexity every 10681 documents, iterating 50x with a convergence threshold of 0.001000\n", - "2021-08-24 02:42:10,095 : INFO : PROGRESS: pass 0, at document #2000/10681\n", - "2021-08-24 02:42:10,597 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:10,624 : INFO : topic #24 (0.020): 0.043*\"alfred hitchcock\" + 0.036*\"hitchcock\" + 0.018*\"Drama\" + 0.017*\"classic\" + 0.015*\"brad pitt\" + 0.012*\"vampire\" + 0.010*\"tumey's dvds\" + 0.010*\"Thriller\" + 0.009*\"imdb top 250\" + 0.009*\"keanu reeves\"\n", - "2021-08-24 02:42:10,625 : INFO : topic #2 (0.020): 0.033*\"star trek\" + 0.020*\"claymation\" + 0.014*\"politics\" + 0.011*\"quirky\" + 0.010*\"aardman\" + 0.010*\"mockumentary\" + 0.010*\"Comedy\" + 0.009*\"william shatner\" + 0.009*\"stupid\" + 0.008*\"moon\"\n", - "2021-08-24 02:42:10,625 : INFO : topic #21 (0.020): 0.039*\"aliens\" + 0.024*\"action\" + 0.022*\"sci-fi\" + 0.018*\"space\" + 0.016*\"will smith\" + 0.016*\"bruce willis\" + 0.016*\"Action\" + 0.015*\"alien invasion\" + 0.011*\"end of the world\" + 0.010*\"Thriller\"\n", - "2021-08-24 02:42:10,626 : INFO : topic #9 (0.020): 0.028*\"Drama\" + 0.021*\"stanley kubrick\" + 0.013*\"Comedy\" + 0.012*\"aliens\" + 0.011*\"stephen king\" + 0.011*\"horror\" + 0.010*\"based on a book\" + 0.010*\"space\" + 0.009*\"world war ii\" + 0.009*\"Thriller\"\n", - "2021-08-24 02:42:10,627 : INFO : topic #7 (0.020): 0.022*\"action\" + 0.021*\"Comedy\" + 0.021*\"baseball\" + 0.020*\"comedy\" + 0.014*\"Drama\" + 0.012*\"Action\" + 0.012*\"meg ryan\" + 0.010*\"Romance\" + 0.010*\"romance\" + 0.010*\"oscar (best picture)\"\n", - "2021-08-24 02:42:10,628 : INFO : topic diff=46.233425, rho=1.000000\n", - "2021-08-24 02:42:10,629 : INFO : PROGRESS: pass 0, at document #4000/10681\n", - "2021-08-24 02:42:10,979 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:11,005 : INFO : topic #34 (0.020): 0.056*\"ghosts\" + 0.037*\"Thriller\" + 0.035*\"Drama\" + 0.031*\"Comedy\" + 0.021*\"bill murray\" + 0.016*\"Horror\" + 0.016*\"music\" + 0.012*\"70mm\" + 0.012*\"seen more than once\" + 0.011*\"comedy\"\n", - "2021-08-24 02:42:11,006 : INFO : topic #13 (0.020): 0.045*\"disney\" + 0.028*\"Children\" + 0.025*\"Animation\" + 0.022*\"Comedy\" + 0.021*\"Drama\" + 0.019*\"Romance\" + 0.019*\"road trip\" + 0.017*\"Fantasy\" + 0.015*\"fairy tale\" + 0.015*\"can't remember\"\n", - "2021-08-24 02:42:11,007 : INFO : topic #7 (0.020): 0.046*\"Comedy\" + 0.032*\"comedy\" + 0.030*\"baseball\" + 0.019*\"Drama\" + 0.018*\"romance\" + 0.016*\"action\" + 0.016*\"Romance\" + 0.014*\"meg ryan\" + 0.013*\"Action\" + 0.013*\"tom hanks\"\n", - "2021-08-24 02:42:11,008 : INFO : topic #31 (0.020): 0.032*\"mummy\" + 0.026*\"cult classic\" + 0.026*\"Drama\" + 0.022*\"comedy\" + 0.020*\"joaquin phoenix\" + 0.019*\"sam raimi\" + 0.018*\"Comedy\" + 0.015*\"infidelity\" + 0.015*\"pg-13\" + 0.015*\"Horror\"\n", - "2021-08-24 02:42:11,008 : INFO : topic #39 (0.020): 0.062*\"time travel\" + 0.025*\"post apocalyptic\" + 0.021*\"Comedy\" + 0.020*\"post-apocalyptic\" + 0.017*\"Drama\" + 0.015*\"adventure\" + 0.011*\"matt damon\" + 0.011*\"brad pitt\" + 0.010*\"comedy\" + 0.009*\"classic\"\n", - "2021-08-24 02:42:11,010 : INFO : topic diff=0.428098, rho=0.707107\n", - "2021-08-24 02:42:11,011 : INFO : PROGRESS: pass 0, at document #6000/10681\n", - "2021-08-24 02:42:11,303 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:11,332 : INFO : topic #29 (0.020): 0.059*\"Drama\" + 0.050*\"nudity (full frontal - notable)\" + 0.040*\"Comedy\" + 0.037*\"betamax\" + 0.025*\"Romance\" + 0.018*\"nudity (topless)\" + 0.017*\"shakespeare\" + 0.017*\"Action\" + 0.016*\"Horror\" + 0.015*\"satire\"\n", - "2021-08-24 02:42:11,333 : INFO : topic #1 (0.020): 0.028*\"tom hanks\" + 0.024*\"Drama\" + 0.017*\"suburbia\" + 0.016*\"brian de palma\" + 0.016*\"overrated\" + 0.012*\"tobey maguire\" + 0.012*\"based on a book\" + 0.011*\"homosexuality\" + 0.010*\"must see\" + 0.010*\"crime\"\n", - "2021-08-24 02:42:11,334 : INFO : topic #12 (0.020): 0.067*\"comic book\" + 0.049*\"superhero\" + 0.046*\"holocaust\" + 0.039*\"super-hero\" + 0.038*\"dystopia\" + 0.031*\"Sci-Fi\" + 0.028*\"Action\" + 0.019*\"action\" + 0.019*\"Drama\" + 0.018*\"adapted from:comic\"\n", - "2021-08-24 02:42:11,335 : INFO : topic #45 (0.020): 0.077*\"Drama\" + 0.069*\"less than 300 ratings\" + 0.035*\"Comedy\" + 0.018*\"tim burton\" + 0.017*\"Romance\" + 0.014*\"Fantasy\" + 0.013*\"Adventure\" + 0.010*\"depressing\" + 0.010*\"erotic\" + 0.010*\"michael moore\"\n", - "2021-08-24 02:42:11,335 : INFO : topic #34 (0.020): 0.061*\"ghosts\" + 0.037*\"Drama\" + 0.032*\"Thriller\" + 0.032*\"Comedy\" + 0.015*\"roman polanski\" + 0.015*\"bill murray\" + 0.015*\"Horror\" + 0.015*\"music\" + 0.014*\"television\" + 0.012*\"70mm\"\n", - "2021-08-24 02:42:11,337 : INFO : topic diff=0.375383, rho=0.577350\n", - "2021-08-24 02:42:11,338 : INFO : PROGRESS: pass 0, at document #8000/10681\n", - "2021-08-24 02:42:11,622 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:11,650 : INFO : topic #40 (0.020): 0.044*\"r\" + 0.038*\"john wayne\" + 0.025*\"clearplay\" + 0.023*\"prison\" + 0.022*\"Comedy\" + 0.021*\"movie to see\" + 0.019*\"teen\" + 0.019*\"1970s\" + 0.019*\"viggo mortensen\" + 0.016*\"morgan freeman\"\n", - "2021-08-24 02:42:11,651 : INFO : topic #18 (0.020): 0.061*\"Drama\" + 0.028*\"gay\" + 0.026*\"magic\" + 0.022*\"Comedy\" + 0.021*\"Romance\" + 0.020*\"based on a book\" + 0.017*\"classic\" + 0.015*\"biting\" + 0.014*\"adapted from:book\" + 0.012*\"matter-of-fact\"\n", - "2021-08-24 02:42:11,652 : INFO : topic #44 (0.020): 0.034*\"oscar (best supporting actor)\" + 0.028*\"Comedy\" + 0.027*\"mafia\" + 0.025*\"music\" + 0.023*\"martin scorsese\" + 0.023*\"Musical\" + 0.022*\"confrontational\" + 0.022*\"gritty\" + 0.021*\"Drama\" + 0.019*\"rock and roll\"\n", - "2021-08-24 02:42:11,653 : INFO : topic #38 (0.020): 0.097*\"drugs\" + 0.038*\"peter sellers\" + 0.026*\"Drama\" + 0.025*\"ewan mcgregor\" + 0.019*\"poverty\" + 0.018*\"Crime\" + 0.018*\"divx\" + 0.017*\"village\" + 0.017*\"Comedy\" + 0.016*\"samuel l. jackson\"\n", - "2021-08-24 02:42:11,654 : INFO : topic #36 (0.020): 0.043*\"peter jackson\" + 0.035*\"Comedy\" + 0.029*\"cult film\" + 0.029*\"not available from netflix\" + 0.025*\"dvd-video\" + 0.024*\"teen\" + 0.021*\"russell crowe\" + 0.017*\"based on a book\" + 0.017*\"downbeat\" + 0.017*\"Drama\"\n", - "2021-08-24 02:42:11,655 : INFO : topic diff=0.273149, rho=0.500000\n", - "2021-08-24 02:42:11,656 : INFO : PROGRESS: pass 0, at document #10000/10681\n", - "2021-08-24 02:42:11,953 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:11,981 : INFO : topic #6 (0.020): 0.110*\"Musical\" + 0.039*\"terrorism\" + 0.037*\"politics\" + 0.032*\"Drama\" + 0.030*\"political\" + 0.029*\"satire\" + 0.023*\"netwatch\" + 0.020*\"nicolas cage\" + 0.019*\"corruption\" + 0.019*\"Comedy\"\n", - "2021-08-24 02:42:11,982 : INFO : topic #19 (0.020): 0.035*\"ummarti2007\" + 0.033*\"philip k. dick\" + 0.024*\"soccer\" + 0.023*\"Drama\" + 0.023*\"violence\" + 0.018*\"drama\" + 0.016*\"nudity (topless)\" + 0.015*\"r\" + 0.014*\"slow\" + 0.013*\"surreal\"\n", - "2021-08-24 02:42:11,983 : INFO : topic #40 (0.020): 0.168*\"r\" + 0.089*\"clearplay\" + 0.048*\"movie to see\" + 0.023*\"john wayne\" + 0.021*\"seen 2006\" + 0.021*\"don cheadle\" + 0.020*\"Drama\" + 0.019*\"Comedy\" + 0.019*\"friendship\" + 0.018*\"morgan freeman\"\n", - "2021-08-24 02:42:11,984 : INFO : topic #27 (0.020): 0.253*\"Horror\" + 0.117*\"Thriller\" + 0.056*\"Mystery\" + 0.040*\"easily confused with other movie(s) (title)\" + 0.034*\"Drama\" + 0.029*\"Film-Noir\" + 0.029*\"Comedy\" + 0.023*\"Fantasy\" + 0.017*\"eerie\" + 0.013*\"creepy\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:11,985 : INFO : topic #16 (0.020): 0.080*\"nudity (rear)\" + 0.053*\"pg\" + 0.041*\"military\" + 0.035*\"claymation\" + 0.031*\"weird\" + 0.030*\"nudity (topless)\" + 0.024*\"aardman\" + 0.019*\"nudity (topless - brief)\" + 0.019*\"childhood\" + 0.018*\"penguins\"\n", - "2021-08-24 02:42:11,986 : INFO : topic diff=0.241935, rho=0.447214\n", - "2021-08-24 02:42:12,143 : INFO : -21.496 per-word bound, 2957512.5 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:12,144 : INFO : PROGRESS: pass 0, at document #10681/10681\n", - "2021-08-24 02:42:12,246 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:12,272 : INFO : topic #36 (0.020): 0.035*\"russell crowe\" + 0.031*\"virus\" + 0.029*\"not available from netflix\" + 0.028*\"Comedy\" + 0.026*\"based on a book\" + 0.025*\"cult film\" + 0.025*\"peter jackson\" + 0.024*\"movielens quickpick\" + 0.023*\"1980s\" + 0.021*\"adam sandler\"\n", - "2021-08-24 02:42:12,273 : INFO : topic #6 (0.020): 0.125*\"Musical\" + 0.045*\"politics\" + 0.039*\"satire\" + 0.036*\"terrorism\" + 0.032*\"Drama\" + 0.029*\"corruption\" + 0.024*\"political\" + 0.023*\"police\" + 0.020*\"nicolas cage\" + 0.018*\"good dialogue\"\n", - "2021-08-24 02:42:12,274 : INFO : topic #20 (0.020): 0.056*\"Drama\" + 0.043*\"biography\" + 0.041*\"suicide\" + 0.037*\"corvallis library\" + 0.036*\"movie to see\" + 0.033*\"death\" + 0.027*\"biopic\" + 0.026*\"forest whitaker\" + 0.025*\"history\" + 0.023*\"ensemble cast\"\n", - "2021-08-24 02:42:12,275 : INFO : topic #34 (0.020): 0.041*\"ghosts\" + 0.040*\"secret service\" + 0.038*\"bill murray\" + 0.029*\"television\" + 0.024*\"Drama\" + 0.022*\"Comedy\" + 0.018*\"Thriller\" + 0.017*\"courtroom\" + 0.016*\"nudity (topless - brief)\" + 0.016*\"smoking\"\n", - "2021-08-24 02:42:12,276 : INFO : topic #39 (0.020): 0.093*\"time travel\" + 0.047*\"post-apocalyptic\" + 0.033*\"motorcycle\" + 0.032*\"post apocalyptic\" + 0.031*\"jude law\" + 0.023*\"bechdel test:fail\" + 0.022*\"travel\" + 0.019*\"science\" + 0.017*\"old\" + 0.014*\"jungle\"\n", - "2021-08-24 02:42:12,277 : INFO : topic diff=0.309799, rho=0.408248\n", - "2021-08-24 02:42:12,278 : INFO : PROGRESS: pass 1, at document #2000/10681\n", - "2021-08-24 02:42:12,578 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:12,603 : INFO : topic #37 (0.020): 0.145*\"War\" + 0.101*\"world war ii\" + 0.083*\"Drama\" + 0.043*\"jim carrey\" + 0.035*\"war\" + 0.030*\"history\" + 0.019*\"nazis\" + 0.019*\"wwii\" + 0.015*\"true story\" + 0.013*\"Action\"\n", - "2021-08-24 02:42:12,604 : INFO : topic #5 (0.020): 0.224*\"classic\" + 0.066*\"musical\" + 0.022*\"john travolta\" + 0.021*\"afi 100\" + 0.020*\"los angeles\" + 0.015*\"family\" + 0.014*\"afi 100 (laughs)\" + 0.012*\"national film registry\" + 0.012*\"movie to see\" + 0.010*\"70mm\"\n", - "2021-08-24 02:42:12,605 : INFO : topic #22 (0.020): 0.083*\"betamax\" + 0.042*\"library on hold\" + 0.039*\"clv\" + 0.037*\"aviation\" + 0.031*\"terry gilliam\" + 0.023*\"oscar (best music - original song)\" + 0.022*\"steven seagal\" + 0.020*\"seen 2008\" + 0.019*\"gilliam\" + 0.018*\"family drama\"\n", - "2021-08-24 02:42:12,605 : INFO : topic #6 (0.020): 0.088*\"Musical\" + 0.051*\"politics\" + 0.047*\"satire\" + 0.035*\"nicolas cage\" + 0.029*\"terrorism\" + 0.026*\"sean connery\" + 0.025*\"good dialogue\" + 0.025*\"Drama\" + 0.023*\"political\" + 0.019*\"dvd-r\"\n", - "2021-08-24 02:42:12,606 : INFO : topic #21 (0.020): 0.080*\"aliens\" + 0.042*\"Sci-Fi\" + 0.035*\"space\" + 0.032*\"sci-fi\" + 0.031*\"will smith\" + 0.028*\"Action\" + 0.023*\"tommy lee jones\" + 0.022*\"futuristmovies.com\" + 0.020*\"action\" + 0.017*\"michael crichton\"\n", - "2021-08-24 02:42:12,607 : INFO : topic diff=0.455071, rho=0.369094\n", - "2021-08-24 02:42:12,608 : INFO : PROGRESS: pass 1, at document #4000/10681\n", - "2021-08-24 02:42:12,891 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:12,917 : INFO : topic #5 (0.020): 0.224*\"classic\" + 0.056*\"musical\" + 0.026*\"afi 100 (laughs)\" + 0.020*\"los angeles\" + 0.018*\"afi 100\" + 0.017*\"national film registry\" + 0.015*\"john travolta\" + 0.014*\"delights\" + 0.013*\"family\" + 0.011*\"70mm\"\n", - "2021-08-24 02:42:12,918 : INFO : topic #23 (0.020): 0.079*\"high school\" + 0.040*\"dance\" + 0.040*\"cars\" + 0.030*\"teen\" + 0.023*\"sandra bullock\" + 0.021*\"eddie murphy\" + 0.017*\"Comedy\" + 0.016*\"romance\" + 0.016*\"chick flick\" + 0.014*\"school\"\n", - "2021-08-24 02:42:12,919 : INFO : topic #19 (0.020): 0.033*\"violence\" + 0.030*\"drama\" + 0.027*\"vietnam war\" + 0.026*\"vietnam\" + 0.023*\"philip k. dick\" + 0.019*\"Drama\" + 0.019*\"racism\" + 0.018*\"nudity (topless)\" + 0.018*\"based on a book\" + 0.014*\"kubrick\"\n", - "2021-08-24 02:42:12,919 : INFO : topic #46 (0.020): 0.065*\"action\" + 0.063*\"sci-fi\" + 0.045*\"fantasy\" + 0.027*\"space\" + 0.021*\"harrison ford\" + 0.021*\"seen at the cinema\" + 0.020*\"dvd\" + 0.020*\"seen more than once\" + 0.020*\"arnold schwarzenegger\" + 0.018*\"adventure\"\n", - "2021-08-24 02:42:12,920 : INFO : topic #24 (0.020): 0.085*\"hitchcock\" + 0.062*\"alfred hitchcock\" + 0.057*\"vampire\" + 0.044*\"oppl\" + 0.040*\"vampires\" + 0.039*\"murder\" + 0.031*\"Thriller\" + 0.023*\"tumey's dvds\" + 0.022*\"Mystery\" + 0.020*\"memory\"\n", - "2021-08-24 02:42:12,921 : INFO : topic diff=0.183325, rho=0.369094\n", - "2021-08-24 02:42:12,922 : INFO : PROGRESS: pass 1, at document #6000/10681\n", - "2021-08-24 02:42:13,172 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:13,198 : INFO : topic #25 (0.020): 0.116*\"Western\" + 0.052*\"Drama\" + 0.046*\"Comedy\" + 0.043*\"erlend's dvds\" + 0.036*\"woody allen\" + 0.033*\"gothic\" + 0.026*\"nicole kidman\" + 0.025*\"george clooney\" + 0.024*\"gene hackman\" + 0.021*\"scary movies to see on halloween\"\n", - "2021-08-24 02:42:13,199 : INFO : topic #4 (0.020): 0.056*\"Drama\" + 0.045*\"sports\" + 0.042*\"boxing\" + 0.039*\"nonlinear\" + 0.037*\"hw drama\" + 0.029*\"sven's to see list\" + 0.029*\"british\" + 0.028*\"london\" + 0.027*\"r\" + 0.022*\"underrated\"\n", - "2021-08-24 02:42:13,200 : INFO : topic #23 (0.020): 0.065*\"high school\" + 0.041*\"cars\" + 0.032*\"dance\" + 0.030*\"eddie murphy\" + 0.024*\"teen\" + 0.022*\"sandra bullock\" + 0.019*\"renee zellweger\" + 0.016*\"Comedy\" + 0.015*\"romance\" + 0.014*\"chick flick\"\n", - "2021-08-24 02:42:13,200 : INFO : topic #36 (0.020): 0.058*\"cult film\" + 0.045*\"teen\" + 0.043*\"peter jackson\" + 0.034*\"russell crowe\" + 0.029*\"dvd-video\" + 0.028*\"Comedy\" + 0.021*\"adam sandler\" + 0.021*\"1980s\" + 0.018*\"80s\" + 0.016*\"new zealand\"\n", - "2021-08-24 02:42:13,201 : INFO : topic #18 (0.020): 0.061*\"gay\" + 0.056*\"magic\" + 0.044*\"Drama\" + 0.027*\"pg13\" + 0.026*\"based on a book\" + 0.021*\"racism\" + 0.018*\"biting\" + 0.017*\"food\" + 0.016*\"19th century\" + 0.016*\"denzel washington\"\n", - "2021-08-24 02:42:13,202 : INFO : topic diff=0.227582, rho=0.369094\n", - "2021-08-24 02:42:13,204 : INFO : PROGRESS: pass 1, at document #8000/10681\n", - "2021-08-24 02:42:13,447 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:13,474 : INFO : topic #32 (0.020): 0.117*\"johnny depp\" + 0.061*\"clint eastwood\" + 0.052*\"vhs\" + 0.042*\"jackie chan\" + 0.025*\"kung fu\" + 0.024*\"western\" + 0.024*\"david lynch\" + 0.023*\"Action\" + 0.022*\"india\" + 0.021*\"leonardo dicaprio\"\n", - "2021-08-24 02:42:13,474 : INFO : topic #5 (0.020): 0.199*\"classic\" + 0.057*\"musical\" + 0.029*\"afi 100 (laughs)\" + 0.021*\"national film registry\" + 0.018*\"john travolta\" + 0.017*\"los angeles\" + 0.015*\"warm\" + 0.015*\"70mm\" + 0.012*\"afi 100\" + 0.012*\"adapted from b'way\"\n", - "2021-08-24 02:42:13,475 : INFO : topic #48 (0.020): 0.070*\"bruce willis\" + 0.070*\"twist ending\" + 0.033*\"coming of age\" + 0.030*\"journalism\" + 0.028*\"netflix\" + 0.027*\"sexy\" + 0.026*\"psychology\" + 0.024*\"Drama\" + 0.021*\"avi\" + 0.018*\"mystery\"\n", - "2021-08-24 02:42:13,476 : INFO : topic #31 (0.020): 0.141*\"zombies\" + 0.054*\"pg-13\" + 0.046*\"zombie\" + 0.029*\"campy\" + 0.028*\"cult classic\" + 0.028*\"sam raimi\" + 0.025*\"Horror\" + 0.024*\"horror\" + 0.021*\"books\" + 0.020*\"joaquin phoenix\"\n", - "2021-08-24 02:42:13,477 : INFO : topic #45 (0.020): 0.228*\"less than 300 ratings\" + 0.104*\"Drama\" + 0.040*\"nudity (topless - notable)\" + 0.039*\"Comedy\" + 0.031*\"tim burton\" + 0.020*\"library\" + 0.018*\"michael moore\" + 0.014*\"blindfold\" + 0.013*\"depressing\" + 0.010*\"golden raspberry (worst picture)\"\n", - "2021-08-24 02:42:13,479 : INFO : topic diff=0.192650, rho=0.369094\n", - "2021-08-24 02:42:13,480 : INFO : PROGRESS: pass 1, at document #10000/10681\n", - "2021-08-24 02:42:13,755 : INFO : merging changes from 2000 documents into a model of 10681 documents\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:13,783 : INFO : topic #42 (0.020): 0.086*\"martial arts\" + 0.059*\"robin williams\" + 0.042*\"jonossa\" + 0.041*\"seen 2006\" + 0.031*\"japan\" + 0.029*\"samurai\" + 0.027*\"Drama\" + 0.025*\"orson welles\" + 0.024*\"hugh grant\" + 0.023*\"divorce\"\n", - "2021-08-24 02:42:13,784 : INFO : topic #41 (0.020): 0.141*\"remake\" + 0.058*\"new york city\" + 0.049*\"christmas\" + 0.044*\"family\" + 0.037*\"new york\" + 0.031*\"Drama\" + 0.027*\"seen\" + 0.024*\"kevin spacey\" + 0.023*\"predictable\" + 0.021*\"friday night movie\"\n", - "2021-08-24 02:42:13,784 : INFO : topic #5 (0.020): 0.162*\"classic\" + 0.082*\"musical\" + 0.027*\"afi 100 (laughs)\" + 0.024*\"los angeles\" + 0.018*\"witch\" + 0.018*\"national film registry\" + 0.016*\"john travolta\" + 0.015*\"Musical\" + 0.014*\"adapted from b'way\" + 0.013*\"movie to see\"\n", - "2021-08-24 02:42:13,785 : INFO : topic #49 (0.020): 0.081*\"national film registry\" + 0.026*\"natalie portman\" + 0.025*\"tumey's dvds\" + 0.022*\"Film-Noir\" + 0.020*\"film noir\" + 0.020*\"black and white\" + 0.019*\"imdb top 250\" + 0.015*\"Drama\" + 0.014*\"afi 100\" + 0.014*\"surprise ending\"\n", - "2021-08-24 02:42:13,786 : INFO : topic #9 (0.020): 0.127*\"based on a book\" + 0.070*\"adapted from:book\" + 0.058*\"Drama\" + 0.038*\"jack nicholson\" + 0.036*\"imdb bottom 100\" + 0.030*\"horror\" + 0.026*\"Comedy\" + 0.025*\"stephen king\" + 0.024*\"genocide\" + 0.020*\"stupid\"\n", - "2021-08-24 02:42:13,787 : INFO : topic diff=0.177447, rho=0.369094\n", - "2021-08-24 02:42:13,942 : INFO : -21.161 per-word bound, 2344453.7 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:13,942 : INFO : PROGRESS: pass 1, at document #10681/10681\n", - "2021-08-24 02:42:14,045 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:14,071 : INFO : topic #47 (0.020): 0.057*\"serial killer\" + 0.048*\"brad pitt\" + 0.033*\"edward norton\" + 0.032*\"matt damon\" + 0.029*\"hayao miyazaki\" + 0.025*\"crime\" + 0.020*\"steven spielberg\" + 0.020*\"psychology\" + 0.014*\"twist\" + 0.013*\"anthony hopkins\"\n", - "2021-08-24 02:42:14,072 : INFO : topic #42 (0.020): 0.076*\"martial arts\" + 0.048*\"robin williams\" + 0.036*\"Drama\" + 0.035*\"divorce\" + 0.035*\"samurai\" + 0.034*\"jonossa\" + 0.034*\"seen 2006\" + 0.028*\"japan\" + 0.026*\"akira kurosawa\" + 0.020*\"beautiful\"\n", - "2021-08-24 02:42:14,073 : INFO : topic #18 (0.020): 0.097*\"pg13\" + 0.081*\"magic\" + 0.061*\"gay\" + 0.042*\"Drama\" + 0.029*\"based on a book\" + 0.023*\"racism\" + 0.022*\"food\" + 0.021*\"denzel washington\" + 0.018*\"19th century\" + 0.016*\"air force\"\n", - "2021-08-24 02:42:14,074 : INFO : topic #41 (0.020): 0.149*\"remake\" + 0.086*\"new york city\" + 0.065*\"christmas\" + 0.034*\"new york\" + 0.031*\"family\" + 0.030*\"Drama\" + 0.029*\"movie to see\" + 0.021*\"kevin spacey\" + 0.020*\"predictable\" + 0.019*\"seen\"\n", - "2021-08-24 02:42:14,075 : INFO : topic #27 (0.020): 0.299*\"Horror\" + 0.154*\"Thriller\" + 0.122*\"Mystery\" + 0.040*\"easily confused with other movie(s) (title)\" + 0.036*\"Film-Noir\" + 0.031*\"Fantasy\" + 0.030*\"Drama\" + 0.016*\"Comedy\" + 0.012*\"eerie\" + 0.011*\"marriage\"\n", - "2021-08-24 02:42:14,076 : INFO : topic diff=0.239336, rho=0.369094\n", - "2021-08-24 02:42:14,077 : INFO : PROGRESS: pass 2, at document #2000/10681\n", - "2021-08-24 02:42:14,406 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:14,432 : INFO : topic #33 (0.020): 0.084*\"comedy\" + 0.070*\"Comedy\" + 0.046*\"dark comedy\" + 0.042*\"coen brothers\" + 0.038*\"funny\" + 0.034*\"quirky\" + 0.032*\"hilarious\" + 0.027*\"black comedy\" + 0.019*\"witty\" + 0.016*\"england\"\n", - "2021-08-24 02:42:14,433 : INFO : topic #9 (0.020): 0.185*\"based on a book\" + 0.078*\"adapted from:book\" + 0.052*\"jack nicholson\" + 0.051*\"stephen king\" + 0.049*\"Drama\" + 0.039*\"horror\" + 0.029*\"imdb bottom 100\" + 0.021*\"Comedy\" + 0.019*\"stupid\" + 0.017*\"pregnancy\"\n", - "2021-08-24 02:42:14,434 : INFO : topic #42 (0.020): 0.094*\"robin williams\" + 0.049*\"martial arts\" + 0.038*\"samurai\" + 0.038*\"orson welles\" + 0.038*\"divorce\" + 0.026*\"kurosawa\" + 0.026*\"Drama\" + 0.025*\"akira kurosawa\" + 0.023*\"japan\" + 0.022*\"jonossa\"\n", - "2021-08-24 02:42:14,434 : INFO : topic #43 (0.020): 0.061*\"surreal\" + 0.053*\"stanley kubrick\" + 0.027*\"satirical\" + 0.027*\"cynical\" + 0.024*\"stylized\" + 0.023*\"hallucinatory\" + 0.022*\"narrated\" + 0.020*\"irreverent\" + 0.018*\"quirky\" + 0.015*\"dreamlike\"\n", - "2021-08-24 02:42:14,435 : INFO : topic #13 (0.020): 0.052*\"jane austen\" + 0.050*\"fairy tale\" + 0.036*\"assassination\" + 0.035*\"historical\" + 0.031*\"cold war\" + 0.028*\"road trip\" + 0.022*\"disney\" + 0.021*\"based on book\" + 0.021*\"gerard depardieu\" + 0.020*\"swashbuckler\"\n", - "2021-08-24 02:42:14,436 : INFO : topic diff=0.371936, rho=0.346261\n", - "2021-08-24 02:42:14,438 : INFO : PROGRESS: pass 2, at document #4000/10681\n", - "2021-08-24 02:42:14,725 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:14,752 : INFO : topic #11 (0.020): 0.129*\"religion\" + 0.118*\"keanu reeves\" + 0.019*\"class issues\" + 0.019*\"dark\" + 0.018*\"courtesan\" + 0.017*\"facebook rec\" + 0.016*\"product placement\" + 0.015*\"reality tv\" + 0.014*\"slash\" + 0.012*\"jesus\"\n", - "2021-08-24 02:42:14,753 : INFO : topic #19 (0.020): 0.042*\"drama\" + 0.035*\"violence\" + 0.028*\"vietnam\" + 0.028*\"vietnam war\" + 0.025*\"philip k. dick\" + 0.019*\"rape\" + 0.018*\"based on a book\" + 0.017*\"very good\" + 0.016*\"Drama\" + 0.016*\"kubrick\"\n", - "2021-08-24 02:42:14,753 : INFO : topic #16 (0.020): 0.254*\"nudity (topless)\" + 0.180*\"nudity (topless - brief)\" + 0.065*\"nudity (rear)\" + 0.035*\"claymation\" + 0.029*\"military\" + 0.024*\"aardman\" + 0.020*\"childhood\" + 0.018*\"pg\" + 0.013*\"weird\" + 0.012*\"freedom\"\n", - "2021-08-24 02:42:14,754 : INFO : topic #3 (0.020): 0.210*\"oscar (best picture)\" + 0.056*\"oscar (best directing)\" + 0.041*\"al pacino\" + 0.023*\"great acting\" + 0.021*\"best picture\" + 0.019*\"john cusack\" + 0.019*\"dvd\" + 0.019*\"civil war\" + 0.018*\"tumey's dvds\" + 0.017*\"Drama\"\n", - "2021-08-24 02:42:14,755 : INFO : topic #26 (0.020): 0.040*\"james bond\" + 0.034*\"Drama\" + 0.029*\"007\" + 0.027*\"bond\" + 0.024*\"mel gibson\" + 0.020*\"atmospheric\" + 0.019*\"reflective\" + 0.017*\"assassin\" + 0.016*\"poignant\" + 0.015*\"lyrical\"\n", - "2021-08-24 02:42:14,756 : INFO : topic diff=0.117084, rho=0.346261\n", - "2021-08-24 02:42:14,757 : INFO : PROGRESS: pass 2, at document #6000/10681\n", - "2021-08-24 02:42:15,005 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:15,032 : INFO : topic #41 (0.020): 0.118*\"remake\" + 0.068*\"christmas\" + 0.058*\"new york city\" + 0.041*\"family\" + 0.038*\"new york\" + 0.033*\"kevin spacey\" + 0.027*\"Drama\" + 0.027*\"robert de niro\" + 0.024*\"bibliothek\" + 0.024*\"friday night movie\"\n", - "2021-08-24 02:42:15,033 : INFO : topic #32 (0.020): 0.118*\"johnny depp\" + 0.067*\"clint eastwood\" + 0.047*\"jackie chan\" + 0.045*\"vhs\" + 0.033*\"western\" + 0.032*\"leonardo dicaprio\" + 0.029*\"david lynch\" + 0.028*\"spaghetti western\" + 0.028*\"kung fu\" + 0.022*\"Action\"\n", - "2021-08-24 02:42:15,033 : INFO : topic #4 (0.020): 0.057*\"sports\" + 0.057*\"Drama\" + 0.045*\"boxing\" + 0.039*\"hw drama\" + 0.036*\"british\" + 0.032*\"sven's to see list\" + 0.032*\"london\" + 0.031*\"underrated\" + 0.028*\"nonlinear\" + 0.023*\"college\"\n", - "2021-08-24 02:42:15,034 : INFO : topic #13 (0.020): 0.056*\"fairy tale\" + 0.032*\"jane austen\" + 0.032*\"historical\" + 0.030*\"road trip\" + 0.029*\"gerard depardieu\" + 0.026*\"sequel\" + 0.025*\"based on book\" + 0.025*\"kids\" + 0.024*\"cold war\" + 0.022*\"assassination\"\n", - "2021-08-24 02:42:15,035 : INFO : topic #15 (0.020): 0.130*\"disney\" + 0.100*\"animation\" + 0.076*\"pixar\" + 0.036*\"children\" + 0.030*\"angelina jolie\" + 0.028*\"Animation\" + 0.022*\"disney animated feature\" + 0.021*\"cartoon\" + 0.020*\"Children\" + 0.017*\"animated\"\n", - "2021-08-24 02:42:15,036 : INFO : topic diff=0.153361, rho=0.346261\n", - "2021-08-24 02:42:15,038 : INFO : PROGRESS: pass 2, at document #8000/10681\n", - "2021-08-24 02:42:15,295 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:15,320 : INFO : topic #43 (0.020): 0.091*\"surreal\" + 0.041*\"satirical\" + 0.036*\"cynical\" + 0.031*\"quirky\" + 0.029*\"hallucinatory\" + 0.029*\"narrated\" + 0.027*\"stylized\" + 0.025*\"wry\" + 0.023*\"dreamlike\" + 0.020*\"stanley kubrick\"\n", - "2021-08-24 02:42:15,321 : INFO : topic #19 (0.020): 0.043*\"drama\" + 0.034*\"philip k. dick\" + 0.033*\"violence\" + 0.024*\"soccer\" + 0.024*\"vietnam war\" + 0.023*\"vietnam\" + 0.023*\"very good\" + 0.020*\"rape\" + 0.018*\"blaxploitation\" + 0.017*\"based on a book\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:15,322 : INFO : topic #45 (0.020): 0.235*\"less than 300 ratings\" + 0.109*\"Drama\" + 0.061*\"nudity (topless - notable)\" + 0.036*\"Comedy\" + 0.035*\"tim burton\" + 0.023*\"library\" + 0.018*\"michael moore\" + 0.015*\"blindfold\" + 0.014*\"depressing\" + 0.011*\"golden raspberry (worst actor)\"\n", - "2021-08-24 02:42:15,323 : INFO : topic #37 (0.020): 0.185*\"War\" + 0.109*\"world war ii\" + 0.103*\"Drama\" + 0.047*\"history\" + 0.047*\"war\" + 0.035*\"jim carrey\" + 0.025*\"Action\" + 0.019*\"70mm\" + 0.014*\"nazis\" + 0.013*\"mental illness\"\n", - "2021-08-24 02:42:15,324 : INFO : topic #38 (0.020): 0.142*\"drugs\" + 0.037*\"samuel l. jackson\" + 0.035*\"peter sellers\" + 0.030*\"ewan mcgregor\" + 0.024*\"divx\" + 0.022*\"poverty\" + 0.020*\"addiction\" + 0.019*\"hulu\" + 0.018*\"michael caine\" + 0.017*\"Drama\"\n", - "2021-08-24 02:42:15,325 : INFO : topic diff=0.119826, rho=0.346261\n", - "2021-08-24 02:42:15,327 : INFO : PROGRESS: pass 2, at document #10000/10681\n", - "2021-08-24 02:42:15,579 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:15,606 : INFO : topic #10 (0.020): 0.214*\"Thriller\" + 0.208*\"Crime\" + 0.178*\"Action\" + 0.161*\"Drama\" + 0.035*\"Comedy\" + 0.032*\"Mystery\" + 0.022*\"Adventure\" + 0.010*\"murder\" + 0.007*\"virtual reality\" + 0.005*\"greg kinnear\"\n", - "2021-08-24 02:42:15,607 : INFO : topic #11 (0.020): 0.120*\"religion\" + 0.097*\"keanu reeves\" + 0.030*\"dark\" + 0.028*\"product placement\" + 0.021*\"facebook rec\" + 0.020*\"courtesan\" + 0.017*\"gender identity\" + 0.017*\"social message\" + 0.017*\"reality tv\" + 0.017*\"cross-dressing women\"\n", - "2021-08-24 02:42:15,608 : INFO : topic #37 (0.020): 0.196*\"War\" + 0.109*\"Drama\" + 0.097*\"world war ii\" + 0.052*\"war\" + 0.050*\"history\" + 0.028*\"jim carrey\" + 0.026*\"Action\" + 0.014*\"nazis\" + 0.013*\"70mm\" + 0.013*\"wwii\"\n", - "2021-08-24 02:42:15,608 : INFO : topic #9 (0.020): 0.186*\"based on a book\" + 0.096*\"adapted from:book\" + 0.064*\"Drama\" + 0.035*\"jack nicholson\" + 0.032*\"imdb bottom 100\" + 0.029*\"horror\" + 0.025*\"stephen king\" + 0.021*\"stupid\" + 0.020*\"genocide\" + 0.018*\"based on book\"\n", - "2021-08-24 02:42:15,609 : INFO : topic #29 (0.020): 0.089*\"nudity (full frontal - notable)\" + 0.057*\"Drama\" + 0.046*\"shakespeare\" + 0.042*\"based on a play\" + 0.037*\"christianity\" + 0.031*\"adapted from:play\" + 0.028*\"religion\" + 0.025*\"fascism\" + 0.025*\"biblical\" + 0.019*\"k movie\"\n", - "2021-08-24 02:42:15,611 : INFO : topic diff=0.108163, rho=0.346261\n", - "2021-08-24 02:42:15,756 : INFO : -21.064 per-word bound, 2191656.4 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:15,757 : INFO : PROGRESS: pass 2, at document #10681/10681\n", - "2021-08-24 02:42:15,858 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:15,883 : INFO : topic #19 (0.020): 0.033*\"nudity (full frontal)\" + 0.031*\"ummarti2007\" + 0.030*\"violence\" + 0.029*\"drama\" + 0.027*\"rape\" + 0.027*\"philip k. dick\" + 0.024*\"to see\" + 0.021*\"slow\" + 0.020*\"male nudity\" + 0.017*\"soccer\"\n", - "2021-08-24 02:42:15,884 : INFO : topic #29 (0.020): 0.095*\"nudity (full frontal - notable)\" + 0.059*\"christianity\" + 0.058*\"Drama\" + 0.042*\"religion\" + 0.038*\"based on a play\" + 0.033*\"shakespeare\" + 0.030*\"adapted from:play\" + 0.023*\"cannibalism\" + 0.019*\"to see\" + 0.018*\"fascism\"\n", - "2021-08-24 02:42:15,885 : INFO : topic #12 (0.020): 0.150*\"comic book\" + 0.137*\"superhero\" + 0.057*\"dystopia\" + 0.049*\"super-hero\" + 0.040*\"batman\" + 0.039*\"holocaust\" + 0.038*\"adapted from:comic\" + 0.024*\"kidnapping\" + 0.020*\"Action\" + 0.015*\"alter ego\"\n", - "2021-08-24 02:42:15,886 : INFO : topic #46 (0.020): 0.068*\"action\" + 0.068*\"fantasy\" + 0.047*\"sci-fi\" + 0.031*\"adventure\" + 0.026*\"watched 2006\" + 0.026*\"dvd\" + 0.026*\"robots\" + 0.021*\"space\" + 0.020*\"Adventure\" + 0.019*\"seen at the cinema\"\n", - "2021-08-24 02:42:15,886 : INFO : topic #18 (0.020): 0.097*\"pg13\" + 0.089*\"magic\" + 0.066*\"gay\" + 0.042*\"Drama\" + 0.031*\"racism\" + 0.025*\"food\" + 0.022*\"denzel washington\" + 0.020*\"19th century\" + 0.016*\"air force\" + 0.015*\"based on a book\"\n", - "2021-08-24 02:42:15,887 : INFO : topic diff=0.169463, rho=0.346261\n", - "2021-08-24 02:42:15,889 : INFO : PROGRESS: pass 3, at document #2000/10681\n", - "2021-08-24 02:42:16,165 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:16,191 : INFO : topic #17 (0.020): 0.279*\"Sci-Fi\" + 0.087*\"Action\" + 0.060*\"Horror\" + 0.040*\"video game adaptation\" + 0.040*\"Adventure\" + 0.026*\"animals\" + 0.025*\"Fantasy\" + 0.024*\"movie to see\" + 0.017*\"futuristic\" + 0.016*\"football\"\n", - "2021-08-24 02:42:16,192 : INFO : topic #9 (0.020): 0.230*\"based on a book\" + 0.095*\"adapted from:book\" + 0.054*\"Drama\" + 0.048*\"stephen king\" + 0.048*\"jack nicholson\" + 0.037*\"horror\" + 0.027*\"imdb bottom 100\" + 0.020*\"stupid\" + 0.019*\"based on book\" + 0.016*\"pregnancy\"\n", - "2021-08-24 02:42:16,193 : INFO : topic #30 (0.020): 0.191*\"Adventure\" + 0.153*\"Children\" + 0.116*\"Comedy\" + 0.102*\"Fantasy\" + 0.063*\"Animation\" + 0.042*\"Action\" + 0.032*\"Drama\" + 0.030*\"70mm\" + 0.027*\"Musical\" + 0.014*\"submarine\"\n", - "2021-08-24 02:42:16,194 : INFO : topic #1 (0.020): 0.057*\"quentin tarantino\" + 0.043*\"overrated\" + 0.038*\"tarantino\" + 0.032*\"violent\" + 0.028*\"crime\" + 0.027*\"imdb top 250\" + 0.023*\"drama\" + 0.022*\"revenge\" + 0.020*\"tom hanks\" + 0.018*\"uma thurman\"\n", - "2021-08-24 02:42:16,194 : INFO : topic #26 (0.020): 0.037*\"Drama\" + 0.023*\"mel gibson\" + 0.020*\"atmospheric\" + 0.019*\"bittersweet\" + 0.018*\"james bond\" + 0.018*\"poignant\" + 0.018*\"assassin\" + 0.017*\"reflective\" + 0.016*\"lyrical\" + 0.015*\"stylized\"\n", - "2021-08-24 02:42:16,196 : INFO : topic diff=0.304291, rho=0.327201\n", - "2021-08-24 02:42:16,197 : INFO : PROGRESS: pass 3, at document #4000/10681\n", - "2021-08-24 02:42:16,445 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:16,470 : INFO : topic #49 (0.020): 0.080*\"national film registry\" + 0.048*\"imdb top 250\" + 0.040*\"afi 100\" + 0.035*\"black and white\" + 0.031*\"afi 100 (thrills)\" + 0.030*\"tumey's dvds\" + 0.026*\"usa film registry\" + 0.025*\"afi 100 (movie quotes)\" + 0.020*\"erlend's dvds\" + 0.019*\"emerson must see\"\n", - "2021-08-24 02:42:16,471 : INFO : topic #31 (0.020): 0.117*\"zombies\" + 0.067*\"pg-13\" + 0.051*\"cult classic\" + 0.030*\"campy\" + 0.027*\"joaquin phoenix\" + 0.026*\"sam raimi\" + 0.023*\"mummy\" + 0.020*\"books\" + 0.019*\"zombie\" + 0.017*\"horror\"\n", - "2021-08-24 02:42:16,472 : INFO : topic #47 (0.020): 0.068*\"serial killer\" + 0.057*\"brad pitt\" + 0.042*\"edward norton\" + 0.037*\"psychology\" + 0.034*\"steven spielberg\" + 0.029*\"crime\" + 0.024*\"matt damon\" + 0.018*\"heist\" + 0.016*\"dinosaurs\" + 0.014*\"hayao miyazaki\"\n", - "2021-08-24 02:42:16,473 : INFO : topic #6 (0.020): 0.094*\"Musical\" + 0.075*\"politics\" + 0.066*\"satire\" + 0.053*\"sean connery\" + 0.048*\"nicolas cage\" + 0.030*\"police\" + 0.029*\"terrorism\" + 0.027*\"dvd-r\" + 0.021*\"political\" + 0.020*\"good dialogue\"\n", - "2021-08-24 02:42:16,474 : INFO : topic #12 (0.020): 0.116*\"comic book\" + 0.109*\"superhero\" + 0.086*\"dystopia\" + 0.054*\"holocaust\" + 0.051*\"super-hero\" + 0.032*\"adapted from:comic\" + 0.024*\"batman\" + 0.020*\"Action\" + 0.018*\"kidnapping\" + 0.017*\"alter ego\"\n", - "2021-08-24 02:42:16,475 : INFO : topic diff=0.073617, rho=0.327201\n", - "2021-08-24 02:42:16,477 : INFO : PROGRESS: pass 3, at document #6000/10681\n", - "2021-08-24 02:42:16,714 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:16,739 : INFO : topic #14 (0.020): 0.055*\"criterion\" + 0.049*\"Drama\" + 0.047*\"tense\" + 0.042*\"disturbing\" + 0.041*\"atmospheric\" + 0.033*\"tumey's dvds\" + 0.026*\"bleak\" + 0.024*\"erlend's dvds\" + 0.023*\"menacing\" + 0.022*\"visceral\"\n", - "2021-08-24 02:42:16,740 : INFO : topic #28 (0.020): 0.075*\"oscar (best cinematography)\" + 0.064*\"Drama\" + 0.050*\"oscar (best supporting actress)\" + 0.049*\"oscar (best actor)\" + 0.044*\"oscar (best actress)\" + 0.037*\"in netflix queue\" + 0.025*\"remade\" + 0.017*\"70mm\" + 0.017*\"Romance\" + 0.017*\"oscar (best supporting actor)\"\n", - "2021-08-24 02:42:16,741 : INFO : topic #24 (0.020): 0.077*\"hitchcock\" + 0.069*\"murder\" + 0.064*\"vampire\" + 0.057*\"alfred hitchcock\" + 0.054*\"vampires\" + 0.047*\"memory\" + 0.042*\"oppl\" + 0.017*\"Thriller\" + 0.017*\"tumey's dvds\" + 0.016*\"cary grant\"\n", - "2021-08-24 02:42:16,742 : INFO : topic #15 (0.020): 0.146*\"disney\" + 0.097*\"animation\" + 0.074*\"pixar\" + 0.042*\"children\" + 0.033*\"Animation\" + 0.029*\"angelina jolie\" + 0.027*\"disney animated feature\" + 0.023*\"Children\" + 0.022*\"cartoon\" + 0.017*\"pirates\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:16,743 : INFO : topic #11 (0.020): 0.127*\"religion\" + 0.115*\"keanu reeves\" + 0.020*\"dark\" + 0.018*\"reality tv\" + 0.018*\"courtesan\" + 0.018*\"slash\" + 0.017*\"slavery\" + 0.017*\"facebook rec\" + 0.014*\"class issues\" + 0.012*\"product placement\"\n", - "2021-08-24 02:42:16,744 : INFO : topic diff=0.113857, rho=0.327201\n", - "2021-08-24 02:42:16,746 : INFO : PROGRESS: pass 3, at document #8000/10681\n", - "2021-08-24 02:42:16,986 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:17,013 : INFO : topic #20 (0.020): 0.086*\"biography\" + 0.060*\"Drama\" + 0.043*\"biopic\" + 0.042*\"ingmar bergman\" + 0.035*\"ensemble cast\" + 0.031*\"julia roberts\" + 0.030*\"suicide\" + 0.028*\"corvallis library\" + 0.027*\"multiple storylines\" + 0.025*\"medieval\"\n", - "2021-08-24 02:42:17,015 : INFO : topic #47 (0.020): 0.059*\"serial killer\" + 0.046*\"psychology\" + 0.045*\"brad pitt\" + 0.041*\"edward norton\" + 0.033*\"heist\" + 0.031*\"hayao miyazaki\" + 0.031*\"steven spielberg\" + 0.029*\"crime\" + 0.029*\"matt damon\" + 0.014*\"my dvds\"\n", - "2021-08-24 02:42:17,015 : INFO : topic #30 (0.020): 0.210*\"Adventure\" + 0.128*\"Children\" + 0.107*\"Comedy\" + 0.100*\"Fantasy\" + 0.060*\"70mm\" + 0.056*\"Animation\" + 0.055*\"Action\" + 0.031*\"Drama\" + 0.030*\"Musical\" + 0.009*\"submarine\"\n", - "2021-08-24 02:42:17,016 : INFO : topic #5 (0.020): 0.252*\"classic\" + 0.060*\"musical\" + 0.045*\"afi 100 (laughs)\" + 0.030*\"national film registry\" + 0.027*\"Musical\" + 0.017*\"john travolta\" + 0.015*\"afi 100\" + 0.013*\"70mm\" + 0.013*\"warm\" + 0.012*\"adapted from b'way\"\n", - "2021-08-24 02:42:17,017 : INFO : topic #12 (0.020): 0.133*\"comic book\" + 0.092*\"superhero\" + 0.076*\"dystopia\" + 0.069*\"super-hero\" + 0.052*\"holocaust\" + 0.030*\"adapted from:comic\" + 0.026*\"kidnapping\" + 0.020*\"alter ego\" + 0.017*\"Sci-Fi\" + 0.017*\"Action\"\n", - "2021-08-24 02:42:17,018 : INFO : topic diff=0.087537, rho=0.327201\n", - "2021-08-24 02:42:17,019 : INFO : PROGRESS: pass 3, at document #10000/10681\n", - "2021-08-24 02:42:17,284 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:17,312 : INFO : topic #36 (0.020): 0.054*\"cult film\" + 0.045*\"peter jackson\" + 0.039*\"not available from netflix\" + 0.038*\"downbeat\" + 0.037*\"russell crowe\" + 0.030*\"adam sandler\" + 0.023*\"new zealand\" + 0.023*\"1980s\" + 0.021*\"existentialism\" + 0.018*\"must see!\"\n", - "2021-08-24 02:42:17,313 : INFO : topic #32 (0.020): 0.152*\"johnny depp\" + 0.061*\"clint eastwood\" + 0.057*\"watched 2007\" + 0.052*\"vhs\" + 0.039*\"propaganda\" + 0.034*\"jackie chan\" + 0.028*\"leonardo dicaprio\" + 0.026*\"western\" + 0.023*\"david lynch\" + 0.022*\"italian\"\n", - "2021-08-24 02:42:17,314 : INFO : topic #34 (0.020): 0.064*\"ghosts\" + 0.061*\"bill murray\" + 0.037*\"television\" + 0.037*\"courtroom\" + 0.031*\"courtroom drama\" + 0.024*\"roman polanski\" + 0.023*\"ben stiller\" + 0.021*\"las vegas\" + 0.018*\"smoking\" + 0.016*\"18th century\"\n", - "2021-08-24 02:42:17,315 : INFO : topic #40 (0.020): 0.289*\"r\" + 0.122*\"clearplay\" + 0.058*\"movie to see\" + 0.042*\"Drama\" + 0.032*\"prison\" + 0.025*\"morgan freeman\" + 0.024*\"friendship\" + 0.019*\"john wayne\" + 0.017*\"don cheadle\" + 0.016*\"conspiracy\"\n", - "2021-08-24 02:42:17,316 : INFO : topic #1 (0.020): 0.052*\"overrated\" + 0.042*\"revenge\" + 0.042*\"quentin tarantino\" + 0.031*\"violent\" + 0.023*\"crime\" + 0.022*\"tarantino\" + 0.021*\"violence\" + 0.020*\"imdb top 250\" + 0.019*\"uma thurman\" + 0.018*\"must see\"\n", - "2021-08-24 02:42:17,317 : INFO : topic diff=0.079974, rho=0.327201\n", - "2021-08-24 02:42:17,464 : INFO : -21.025 per-word bound, 2133784.6 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:17,465 : INFO : PROGRESS: pass 3, at document #10681/10681\n", - "2021-08-24 02:42:17,562 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:17,588 : INFO : topic #19 (0.020): 0.070*\"nudity (full frontal)\" + 0.032*\"drama\" + 0.029*\"ummarti2007\" + 0.028*\"to see\" + 0.028*\"violence\" + 0.027*\"rape\" + 0.026*\"philip k. dick\" + 0.021*\"male nudity\" + 0.021*\"slow\" + 0.016*\"unique\"\n", - "2021-08-24 02:42:17,588 : INFO : topic #28 (0.020): 0.071*\"Drama\" + 0.051*\"in netflix queue\" + 0.051*\"oscar (best cinematography)\" + 0.036*\"oscar (best actress)\" + 0.033*\"oscar (best supporting actress)\" + 0.029*\"oscar (best actor)\" + 0.022*\"remade\" + 0.019*\"to see\" + 0.019*\"father daughter relationship\" + 0.019*\"immortality\"\n", - "2021-08-24 02:42:17,589 : INFO : topic #12 (0.020): 0.151*\"comic book\" + 0.137*\"superhero\" + 0.059*\"dystopia\" + 0.050*\"super-hero\" + 0.040*\"holocaust\" + 0.039*\"batman\" + 0.038*\"adapted from:comic\" + 0.025*\"kidnapping\" + 0.018*\"Action\" + 0.015*\"alter ego\"\n", - "2021-08-24 02:42:17,590 : INFO : topic #1 (0.020): 0.052*\"overrated\" + 0.041*\"violent\" + 0.038*\"revenge\" + 0.035*\"quentin tarantino\" + 0.034*\"imdb top 250\" + 0.021*\"crime\" + 0.019*\"tarantino\" + 0.019*\"owned\" + 0.018*\"must see\" + 0.018*\"elijah wood\"\n", - "2021-08-24 02:42:17,591 : INFO : topic #46 (0.020): 0.073*\"action\" + 0.066*\"fantasy\" + 0.048*\"sci-fi\" + 0.034*\"adventure\" + 0.028*\"dvd\" + 0.025*\"watched 2006\" + 0.025*\"robots\" + 0.021*\"Adventure\" + 0.020*\"space\" + 0.020*\"seen at the cinema\"\n", - "2021-08-24 02:42:17,592 : INFO : topic diff=0.143431, rho=0.327201\n", - "2021-08-24 02:42:17,594 : INFO : PROGRESS: pass 4, at document #2000/10681\n", - "2021-08-24 02:42:17,880 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:17,906 : INFO : topic #20 (0.020): 0.107*\"biography\" + 0.056*\"Drama\" + 0.054*\"biopic\" + 0.042*\"suicide\" + 0.036*\"death\" + 0.035*\"julia roberts\" + 0.031*\"corvallis library\" + 0.030*\"ensemble cast\" + 0.028*\"medieval\" + 0.024*\"forest whitaker\"\n", - "2021-08-24 02:42:17,907 : INFO : topic #49 (0.020): 0.081*\"national film registry\" + 0.050*\"imdb top 250\" + 0.041*\"afi 100\" + 0.034*\"black and white\" + 0.032*\"afi 100 (thrills)\" + 0.027*\"usa film registry\" + 0.025*\"tumey's dvds\" + 0.023*\"afi 100 (movie quotes)\" + 0.018*\"emerson must see\" + 0.017*\"france\"\n", - "2021-08-24 02:42:17,908 : INFO : topic #47 (0.020): 0.074*\"serial killer\" + 0.055*\"brad pitt\" + 0.044*\"steven spielberg\" + 0.035*\"psychology\" + 0.033*\"crime\" + 0.027*\"heist\" + 0.021*\"matt damon\" + 0.021*\"dinosaurs\" + 0.021*\"edward norton\" + 0.015*\"anthony hopkins\"\n", - "2021-08-24 02:42:17,909 : INFO : topic #41 (0.020): 0.111*\"remake\" + 0.072*\"new york city\" + 0.069*\"christmas\" + 0.044*\"kevin spacey\" + 0.042*\"family\" + 0.033*\"new york\" + 0.026*\"robert de niro\" + 0.023*\"Drama\" + 0.021*\"movie to see\" + 0.021*\"eric's dvds\"\n", - "2021-08-24 02:42:17,909 : INFO : topic #3 (0.020): 0.251*\"oscar (best picture)\" + 0.090*\"oscar (best directing)\" + 0.030*\"al pacino\" + 0.029*\"oscar (best actor)\" + 0.026*\"best picture\" + 0.025*\"oscar (best supporting actor)\" + 0.025*\"great acting\" + 0.018*\"afi 100 (cheers)\" + 0.018*\"civil war\" + 0.017*\"afi 100\"\n", - "2021-08-24 02:42:17,911 : INFO : topic diff=0.269327, rho=0.310978\n", - "2021-08-24 02:42:17,912 : INFO : PROGRESS: pass 4, at document #4000/10681\n", - "2021-08-24 02:42:18,177 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:18,204 : INFO : topic #30 (0.020): 0.212*\"Adventure\" + 0.142*\"Children\" + 0.108*\"Comedy\" + 0.103*\"Fantasy\" + 0.060*\"Animation\" + 0.060*\"Action\" + 0.047*\"70mm\" + 0.033*\"Drama\" + 0.026*\"Musical\" + 0.013*\"submarine\"\n", - "2021-08-24 02:42:18,204 : INFO : topic #25 (0.020): 0.129*\"Western\" + 0.064*\"erlend's dvds\" + 0.049*\"woody allen\" + 0.048*\"gothic\" + 0.046*\"Drama\" + 0.037*\"gene hackman\" + 0.035*\"scary movies to see on halloween\" + 0.035*\"Comedy\" + 0.024*\"george clooney\" + 0.022*\"sad\"\n", - "2021-08-24 02:42:18,205 : INFO : topic #32 (0.020): 0.136*\"johnny depp\" + 0.064*\"clint eastwood\" + 0.043*\"western\" + 0.042*\"vhs\" + 0.041*\"jackie chan\" + 0.038*\"spaghetti western\" + 0.032*\"sergio leone\" + 0.030*\"kung fu\" + 0.027*\"india\" + 0.026*\"david lynch\"\n", - "2021-08-24 02:42:18,206 : INFO : topic #22 (0.020): 0.236*\"betamax\" + 0.085*\"dvd-video\" + 0.076*\"clv\" + 0.038*\"aviation\" + 0.026*\"library on hold\" + 0.024*\"terry gilliam\" + 0.019*\"dvd collection\" + 0.017*\"gilliam\" + 0.015*\"oscar (best music - original song)\" + 0.012*\"steven seagal\"\n", - "2021-08-24 02:42:18,207 : INFO : topic #12 (0.020): 0.119*\"comic book\" + 0.110*\"superhero\" + 0.087*\"dystopia\" + 0.055*\"holocaust\" + 0.052*\"super-hero\" + 0.033*\"adapted from:comic\" + 0.025*\"batman\" + 0.019*\"kidnapping\" + 0.018*\"Action\" + 0.017*\"alter ego\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:18,208 : INFO : topic diff=0.057320, rho=0.310978\n", - "2021-08-24 02:42:18,209 : INFO : PROGRESS: pass 4, at document #6000/10681\n", - "2021-08-24 02:42:18,450 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:18,476 : INFO : topic #40 (0.020): 0.236*\"r\" + 0.117*\"clearplay\" + 0.053*\"prison\" + 0.051*\"movie to see\" + 0.039*\"Drama\" + 0.033*\"morgan freeman\" + 0.025*\"friendship\" + 0.020*\"john wayne\" + 0.019*\"mel brooks\" + 0.017*\"conspiracy\"\n", - "2021-08-24 02:42:18,477 : INFO : topic #5 (0.020): 0.268*\"classic\" + 0.066*\"musical\" + 0.046*\"afi 100 (laughs)\" + 0.028*\"Musical\" + 0.027*\"national film registry\" + 0.020*\"afi 100\" + 0.019*\"john travolta\" + 0.012*\"delights\" + 0.012*\"adapted from b'way\" + 0.012*\"breakthroughs\"\n", - "2021-08-24 02:42:18,478 : INFO : topic #49 (0.020): 0.076*\"national film registry\" + 0.049*\"imdb top 250\" + 0.035*\"black and white\" + 0.032*\"afi 100\" + 0.030*\"tumey's dvds\" + 0.027*\"afi 100 (thrills)\" + 0.024*\"afi 100 (movie quotes)\" + 0.023*\"france\" + 0.022*\"paris\" + 0.021*\"usa film registry\"\n", - "2021-08-24 02:42:18,478 : INFO : topic #2 (0.020): 0.272*\"Documentary\" + 0.067*\"to see\" + 0.049*\"documentary\" + 0.032*\"sexuality\" + 0.027*\"star trek\" + 0.025*\"kevin smith\" + 0.024*\"mockumentary\" + 0.022*\"dogs\" + 0.017*\"owen wilson\" + 0.016*\"in netflix queue\"\n", - "2021-08-24 02:42:18,479 : INFO : topic #33 (0.020): 0.109*\"comedy\" + 0.108*\"Comedy\" + 0.053*\"funny\" + 0.040*\"quirky\" + 0.038*\"parody\" + 0.033*\"dark comedy\" + 0.029*\"hilarious\" + 0.027*\"coen brothers\" + 0.021*\"black comedy\" + 0.020*\"seen more than once\"\n", - "2021-08-24 02:42:18,480 : INFO : topic diff=0.097891, rho=0.310978\n", - "2021-08-24 02:42:18,482 : INFO : PROGRESS: pass 4, at document #8000/10681\n", - "2021-08-24 02:42:18,731 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:18,757 : INFO : topic #39 (0.020): 0.179*\"time travel\" + 0.042*\"motorcycle\" + 0.040*\"adultery\" + 0.035*\"post apocalyptic\" + 0.035*\"post-apocalyptic\" + 0.029*\"jude law\" + 0.020*\"old\" + 0.020*\"ian mckellen\" + 0.018*\"hollywood\" + 0.018*\"want to own\"\n", - "2021-08-24 02:42:18,759 : INFO : topic #40 (0.020): 0.230*\"r\" + 0.103*\"clearplay\" + 0.048*\"prison\" + 0.048*\"movie to see\" + 0.041*\"Drama\" + 0.029*\"morgan freeman\" + 0.026*\"friendship\" + 0.024*\"john wayne\" + 0.018*\"conspiracy\" + 0.018*\"1970s\"\n", - "2021-08-24 02:42:18,760 : INFO : topic #35 (0.020): 0.349*\"Comedy\" + 0.311*\"Drama\" + 0.192*\"Romance\" + 0.015*\"lesbian\" + 0.013*\"bibliothek\" + 0.008*\"oscar (best foreign language film)\" + 0.007*\"sean penn\" + 0.007*\"philip seymour hoffman\" + 0.004*\"m. night shyamalan\" + 0.004*\"library vhs\"\n", - "2021-08-24 02:42:18,760 : INFO : topic #34 (0.020): 0.077*\"ghosts\" + 0.054*\"bill murray\" + 0.044*\"courtroom\" + 0.040*\"television\" + 0.026*\"courtroom drama\" + 0.023*\"court\" + 0.023*\"roman polanski\" + 0.021*\"ben stiller\" + 0.017*\"las vegas\" + 0.017*\"2.5\"\n", - "2021-08-24 02:42:18,761 : INFO : topic #14 (0.020): 0.060*\"criterion\" + 0.054*\"Drama\" + 0.049*\"tense\" + 0.044*\"disturbing\" + 0.043*\"atmospheric\" + 0.030*\"tumey's dvds\" + 0.030*\"bleak\" + 0.026*\"stylized\" + 0.026*\"erlend's dvds\" + 0.025*\"menacing\"\n", - "2021-08-24 02:42:18,763 : INFO : topic diff=0.075232, rho=0.310978\n", - "2021-08-24 02:42:18,765 : INFO : PROGRESS: pass 4, at document #10000/10681\n", - "2021-08-24 02:42:19,047 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:19,074 : INFO : topic #12 (0.020): 0.171*\"comic book\" + 0.096*\"superhero\" + 0.075*\"dystopia\" + 0.071*\"super-hero\" + 0.039*\"holocaust\" + 0.035*\"adapted from:comic\" + 0.021*\"alter ego\" + 0.021*\"kidnapping\" + 0.017*\"action\" + 0.016*\"Action\"\n", - "2021-08-24 02:42:19,075 : INFO : topic #27 (0.020): 0.299*\"Horror\" + 0.157*\"Thriller\" + 0.132*\"Mystery\" + 0.038*\"Drama\" + 0.036*\"easily confused with other movie(s) (title)\" + 0.032*\"Fantasy\" + 0.032*\"Film-Noir\" + 0.017*\"eerie\" + 0.014*\"tumey's dvds\" + 0.011*\"claustrophobic\"\n", - "2021-08-24 02:42:19,076 : INFO : topic #25 (0.020): 0.169*\"Western\" + 0.061*\"erlend's dvds\" + 0.054*\"Drama\" + 0.042*\"woody allen\" + 0.031*\"george clooney\" + 0.031*\"gothic\" + 0.030*\"gene hackman\" + 0.026*\"nicole kidman\" + 0.026*\"scary movies to see on halloween\" + 0.026*\"Comedy\"\n", - "2021-08-24 02:42:19,077 : INFO : topic #15 (0.020): 0.101*\"animation\" + 0.101*\"disney\" + 0.089*\"pixar\" + 0.054*\"pirates\" + 0.039*\"children\" + 0.034*\"Animation\" + 0.029*\"angelina jolie\" + 0.025*\"Children\" + 0.023*\"disney animated feature\" + 0.023*\"cartoon\"\n", - "2021-08-24 02:42:19,078 : INFO : topic #48 (0.020): 0.113*\"netflix\" + 0.083*\"twist ending\" + 0.078*\"bruce willis\" + 0.041*\"coming of age\" + 0.039*\"journalism\" + 0.025*\"talking animals\" + 0.022*\"Drama\" + 0.022*\"sexy\" + 0.019*\"avi\" + 0.018*\"dreams\"\n", - "2021-08-24 02:42:19,079 : INFO : topic diff=0.067367, rho=0.310978\n", - "2021-08-24 02:42:19,233 : INFO : -21.006 per-word bound, 2106538.6 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:19,233 : INFO : PROGRESS: pass 4, at document #10681/10681\n", - "2021-08-24 02:42:19,335 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:19,361 : INFO : topic #23 (0.020): 0.083*\"high school\" + 0.064*\"cars\" + 0.052*\"teen\" + 0.040*\"marx brothers\" + 0.031*\"dance\" + 0.026*\"Comedy\" + 0.021*\"no\" + 0.021*\"kate winslet\" + 0.019*\"robbery\" + 0.018*\"eddie murphy\"\n", - "2021-08-24 02:42:19,362 : INFO : topic #20 (0.020): 0.102*\"biography\" + 0.066*\"Drama\" + 0.050*\"suicide\" + 0.042*\"biopic\" + 0.042*\"death\" + 0.041*\"corvallis library\" + 0.029*\"ensemble cast\" + 0.026*\"forest whitaker\" + 0.025*\"julia roberts\" + 0.025*\"history\"\n", - "2021-08-24 02:42:19,363 : INFO : topic #21 (0.020): 0.068*\"Sci-Fi\" + 0.063*\"aliens\" + 0.048*\"will smith\" + 0.035*\"tommy lee jones\" + 0.032*\"space\" + 0.027*\"ridley scott\" + 0.027*\"Action\" + 0.022*\"futuristmovies.com\" + 0.022*\"apocalypse\" + 0.021*\"sci-fi\"\n", - "2021-08-24 02:42:19,364 : INFO : topic #26 (0.020): 0.041*\"Drama\" + 0.030*\"james bond\" + 0.022*\"assassin\" + 0.020*\"atmospheric\" + 0.019*\"reflective\" + 0.019*\"bittersweet\" + 0.019*\"poignant\" + 0.017*\"bond\" + 0.017*\"007\" + 0.016*\"stylized\"\n", - "2021-08-24 02:42:19,365 : INFO : topic #10 (0.020): 0.245*\"Thriller\" + 0.231*\"Crime\" + 0.180*\"Drama\" + 0.172*\"Action\" + 0.027*\"Mystery\" + 0.015*\"murder\" + 0.008*\"crime\" + 0.006*\"Comedy\" + 0.005*\"virtual reality\" + 0.004*\"greg kinnear\"\n", - "2021-08-24 02:42:19,366 : INFO : topic diff=0.131006, rho=0.310978\n", - "2021-08-24 02:42:19,368 : INFO : PROGRESS: pass 5, at document #2000/10681\n", - "2021-08-24 02:42:19,668 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:19,695 : INFO : topic #10 (0.020): 0.246*\"Thriller\" + 0.223*\"Crime\" + 0.172*\"Action\" + 0.166*\"Drama\" + 0.028*\"Mystery\" + 0.013*\"murder\" + 0.010*\"crime\" + 0.006*\"virtual reality\" + 0.005*\"Comedy\" + 0.004*\"thriller\"\n", - "2021-08-24 02:42:19,696 : INFO : topic #16 (0.020): 0.294*\"nudity (topless)\" + 0.182*\"nudity (topless - brief)\" + 0.058*\"nudity (rear)\" + 0.039*\"claymation\" + 0.025*\"military\" + 0.023*\"aardman\" + 0.022*\"pg\" + 0.020*\"childhood\" + 0.013*\"shark\" + 0.012*\"freedom\"\n", - "2021-08-24 02:42:19,697 : INFO : topic #18 (0.020): 0.081*\"gay\" + 0.068*\"magic\" + 0.057*\"pg13\" + 0.047*\"racism\" + 0.042*\"Drama\" + 0.028*\"food\" + 0.021*\"aids\" + 0.020*\"denzel washington\" + 0.018*\"homosexuality\" + 0.017*\"19th century\"\n", - "2021-08-24 02:42:19,697 : INFO : topic #17 (0.020): 0.302*\"Sci-Fi\" + 0.078*\"Action\" + 0.061*\"Horror\" + 0.043*\"video game adaptation\" + 0.038*\"Adventure\" + 0.028*\"animals\" + 0.025*\"movie to see\" + 0.018*\"football\" + 0.018*\"futuristic\" + 0.014*\"milla jovovich\"\n", - "2021-08-24 02:42:19,698 : INFO : topic #6 (0.020): 0.102*\"Musical\" + 0.101*\"politics\" + 0.070*\"satire\" + 0.047*\"nicolas cage\" + 0.035*\"sean connery\" + 0.033*\"terrorism\" + 0.029*\"dvd-r\" + 0.027*\"good dialogue\" + 0.025*\"political\" + 0.023*\"police\"\n", - "2021-08-24 02:42:19,699 : INFO : topic diff=0.248501, rho=0.296950\n", - "2021-08-24 02:42:19,701 : INFO : PROGRESS: pass 5, at document #4000/10681\n", - "2021-08-24 02:42:19,966 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:19,993 : INFO : topic #3 (0.020): 0.203*\"oscar (best picture)\" + 0.080*\"oscar (best directing)\" + 0.039*\"al pacino\" + 0.036*\"oscar (best actor)\" + 0.027*\"oscar (best supporting actor)\" + 0.022*\"great acting\" + 0.021*\"afi 100 (cheers)\" + 0.020*\"best picture\" + 0.018*\"afi 100\" + 0.018*\"tumey's dvds\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:19,994 : INFO : topic #6 (0.020): 0.098*\"Musical\" + 0.090*\"politics\" + 0.067*\"satire\" + 0.052*\"sean connery\" + 0.048*\"nicolas cage\" + 0.030*\"terrorism\" + 0.030*\"dvd-r\" + 0.029*\"police\" + 0.022*\"political\" + 0.020*\"good dialogue\"\n", - "2021-08-24 02:42:19,995 : INFO : topic #28 (0.020): 0.083*\"oscar (best cinematography)\" + 0.066*\"Drama\" + 0.052*\"oscar (best supporting actress)\" + 0.047*\"oscar (best actress)\" + 0.041*\"oscar (best actor)\" + 0.039*\"in netflix queue\" + 0.027*\"remade\" + 0.019*\"marlon brando\" + 0.017*\"70mm\" + 0.016*\"Romance\"\n", - "2021-08-24 02:42:19,996 : INFO : topic #32 (0.020): 0.137*\"johnny depp\" + 0.064*\"clint eastwood\" + 0.045*\"vhs\" + 0.043*\"western\" + 0.041*\"jackie chan\" + 0.038*\"spaghetti western\" + 0.032*\"sergio leone\" + 0.031*\"kung fu\" + 0.027*\"india\" + 0.026*\"david lynch\"\n", - "2021-08-24 02:42:19,997 : INFO : topic #36 (0.020): 0.091*\"cult film\" + 0.049*\"russell crowe\" + 0.034*\"1980s\" + 0.033*\"downbeat\" + 0.032*\"adam sandler\" + 0.025*\"peter jackson\" + 0.021*\"80s\" + 0.018*\"new zealand\" + 0.016*\"not available from netflix\" + 0.015*\"virus\"\n", - "2021-08-24 02:42:19,998 : INFO : topic diff=0.050091, rho=0.296950\n", - "2021-08-24 02:42:19,999 : INFO : PROGRESS: pass 5, at document #6000/10681\n", - "2021-08-24 02:42:20,238 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:20,265 : INFO : topic #10 (0.020): 0.249*\"Thriller\" + 0.217*\"Crime\" + 0.176*\"Action\" + 0.162*\"Drama\" + 0.027*\"Mystery\" + 0.013*\"murder\" + 0.010*\"virtual reality\" + 0.009*\"crime\" + 0.005*\"well done\" + 0.005*\"greg kinnear\"\n", - "2021-08-24 02:42:20,267 : INFO : topic #39 (0.020): 0.204*\"time travel\" + 0.046*\"adultery\" + 0.040*\"post apocalyptic\" + 0.035*\"motorcycle\" + 0.031*\"jude law\" + 0.030*\"post-apocalyptic\" + 0.019*\"hollywood\" + 0.018*\"want to own\" + 0.018*\"bechdel test:fail\" + 0.017*\"ian mckellen\"\n", - "2021-08-24 02:42:20,267 : INFO : topic #21 (0.020): 0.086*\"aliens\" + 0.071*\"Sci-Fi\" + 0.039*\"space\" + 0.037*\"futuristmovies.com\" + 0.030*\"sci-fi\" + 0.027*\"will smith\" + 0.026*\"ridley scott\" + 0.026*\"Action\" + 0.023*\"tommy lee jones\" + 0.020*\"michael crichton\"\n", - "2021-08-24 02:42:20,268 : INFO : topic #31 (0.020): 0.121*\"zombies\" + 0.061*\"pg-13\" + 0.042*\"cult classic\" + 0.040*\"zombie\" + 0.033*\"campy\" + 0.029*\"sam raimi\" + 0.028*\"books\" + 0.028*\"joaquin phoenix\" + 0.023*\"mummy\" + 0.021*\"horror\"\n", - "2021-08-24 02:42:20,269 : INFO : topic #29 (0.020): 0.103*\"nudity (full frontal - notable)\" + 0.059*\"shakespeare\" + 0.054*\"Drama\" + 0.048*\"based on a play\" + 0.040*\"adapted from:play\" + 0.029*\"christianity\" + 0.027*\"religion\" + 0.022*\"jodie foster\" + 0.019*\"cannibalism\" + 0.016*\"k movie\"\n", - "2021-08-24 02:42:20,270 : INFO : topic diff=0.089472, rho=0.296950\n", - "2021-08-24 02:42:20,271 : INFO : PROGRESS: pass 5, at document #8000/10681\n", - "2021-08-24 02:42:20,505 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:20,533 : INFO : topic #10 (0.020): 0.243*\"Thriller\" + 0.231*\"Crime\" + 0.172*\"Action\" + 0.163*\"Drama\" + 0.030*\"Mystery\" + 0.012*\"virtual reality\" + 0.011*\"murder\" + 0.008*\"crime\" + 0.005*\"well done\" + 0.004*\"greg kinnear\"\n", - "2021-08-24 02:42:20,534 : INFO : topic #25 (0.020): 0.168*\"Western\" + 0.065*\"erlend's dvds\" + 0.052*\"Drama\" + 0.048*\"woody allen\" + 0.041*\"gothic\" + 0.034*\"gene hackman\" + 0.032*\"scary movies to see on halloween\" + 0.030*\"nicole kidman\" + 0.023*\"cute\" + 0.022*\"george clooney\"\n", - "2021-08-24 02:42:20,535 : INFO : topic #6 (0.020): 0.135*\"Musical\" + 0.086*\"politics\" + 0.056*\"satire\" + 0.043*\"sean connery\" + 0.040*\"nicolas cage\" + 0.037*\"dvd-r\" + 0.030*\"police\" + 0.030*\"terrorism\" + 0.024*\"netwatch\" + 0.023*\"dvd-ram\"\n", - "2021-08-24 02:42:20,535 : INFO : topic #7 (0.020): 0.112*\"romance\" + 0.052*\"Romance\" + 0.041*\"chick flick\" + 0.033*\"boring\" + 0.033*\"Comedy\" + 0.032*\"comedy\" + 0.027*\"baseball\" + 0.025*\"girlie movie\" + 0.024*\"whimsical\" + 0.018*\"wedding\"\n", - "2021-08-24 02:42:20,536 : INFO : topic #30 (0.020): 0.225*\"Adventure\" + 0.119*\"Children\" + 0.106*\"Comedy\" + 0.101*\"Fantasy\" + 0.070*\"Action\" + 0.066*\"70mm\" + 0.049*\"Animation\" + 0.037*\"Drama\" + 0.028*\"Musical\" + 0.009*\"submarine\"\n", - "2021-08-24 02:42:20,537 : INFO : topic diff=0.068985, rho=0.296950\n", - "2021-08-24 02:42:20,539 : INFO : PROGRESS: pass 5, at document #10000/10681\n", - "2021-08-24 02:42:20,783 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:20,811 : INFO : topic #28 (0.020): 0.076*\"Drama\" + 0.063*\"in netflix queue\" + 0.063*\"oscar (best cinematography)\" + 0.043*\"oscar (best actress)\" + 0.041*\"oscar (best supporting actress)\" + 0.023*\"oscar (best actor)\" + 0.022*\"remade\" + 0.019*\"father daughter relationship\" + 0.016*\"marlon brando\" + 0.016*\"Romance\"\n", - "2021-08-24 02:42:20,812 : INFO : topic #39 (0.020): 0.167*\"time travel\" + 0.054*\"motorcycle\" + 0.052*\"adultery\" + 0.041*\"jude law\" + 0.035*\"post-apocalyptic\" + 0.032*\"post apocalyptic\" + 0.022*\"old\" + 0.021*\"want to own\" + 0.017*\"ian mckellen\" + 0.017*\"hollywood\"\n", - "2021-08-24 02:42:20,813 : INFO : topic #2 (0.020): 0.289*\"Documentary\" + 0.085*\"to see\" + 0.082*\"documentary\" + 0.027*\"mockumentary\" + 0.024*\"sexuality\" + 0.020*\"movie to see\" + 0.019*\"owen wilson\" + 0.019*\"dogs\" + 0.018*\"kevin smith\" + 0.017*\"in netflix queue\"\n", - "2021-08-24 02:42:20,814 : INFO : topic #23 (0.020): 0.078*\"high school\" + 0.069*\"cars\" + 0.065*\"teen\" + 0.046*\"marx brothers\" + 0.036*\"dance\" + 0.030*\"Comedy\" + 0.024*\"kate winslet\" + 0.021*\"eddie murphy\" + 0.020*\"(s)vcd\" + 0.018*\"car chase\"\n", - "2021-08-24 02:42:20,814 : INFO : topic #25 (0.020): 0.171*\"Western\" + 0.064*\"erlend's dvds\" + 0.052*\"Drama\" + 0.043*\"woody allen\" + 0.032*\"gothic\" + 0.031*\"george clooney\" + 0.031*\"gene hackman\" + 0.027*\"cute\" + 0.026*\"scary movies to see on halloween\" + 0.026*\"nicole kidman\"\n", - "2021-08-24 02:42:20,816 : INFO : topic diff=0.060792, rho=0.296950\n", - "2021-08-24 02:42:20,962 : INFO : -20.996 per-word bound, 2091603.9 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:20,963 : INFO : PROGRESS: pass 5, at document #10681/10681\n", - "2021-08-24 02:42:21,059 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:21,086 : INFO : topic #38 (0.020): 0.147*\"drugs\" + 0.043*\"samuel l. jackson\" + 0.035*\"divx\" + 0.028*\"michael caine\" + 0.028*\"poverty\" + 0.025*\"sex\" + 0.024*\"addiction\" + 0.023*\"ewan mcgregor\" + 0.021*\"sexual\" + 0.019*\"basketball\"\n", - "2021-08-24 02:42:21,087 : INFO : topic #41 (0.020): 0.147*\"remake\" + 0.087*\"new york city\" + 0.066*\"christmas\" + 0.039*\"family\" + 0.035*\"new york\" + 0.034*\"movie to see\" + 0.028*\"eric's dvds\" + 0.025*\"Drama\" + 0.024*\"kevin spacey\" + 0.020*\"predictable\"\n", - "2021-08-24 02:42:21,087 : INFO : topic #5 (0.020): 0.193*\"classic\" + 0.106*\"musical\" + 0.041*\"Musical\" + 0.040*\"afi 100 (laughs)\" + 0.022*\"national film registry\" + 0.015*\"adapted from b'way\" + 0.014*\"witch\" + 0.013*\"john travolta\" + 0.013*\"movie to see\" + 0.012*\"family\"\n", - "2021-08-24 02:42:21,088 : INFO : topic #17 (0.020): 0.355*\"Sci-Fi\" + 0.082*\"Action\" + 0.071*\"Horror\" + 0.039*\"video game adaptation\" + 0.033*\"movie to see\" + 0.030*\"Adventure\" + 0.022*\"football\" + 0.020*\"animals\" + 0.015*\"futuristic\" + 0.014*\"milla jovovich\"\n", - "2021-08-24 02:42:21,089 : INFO : topic #37 (0.020): 0.233*\"War\" + 0.126*\"Drama\" + 0.093*\"world war ii\" + 0.051*\"history\" + 0.046*\"war\" + 0.035*\"Action\" + 0.023*\"jim carrey\" + 0.023*\"nazis\" + 0.011*\"mental illness\" + 0.010*\"wwii\"\n", - "2021-08-24 02:42:21,091 : INFO : topic diff=0.122598, rho=0.296950\n", - "2021-08-24 02:42:21,093 : INFO : PROGRESS: pass 6, at document #2000/10681\n", - "2021-08-24 02:42:21,355 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:21,383 : INFO : topic #0 (0.020): 0.198*\"can't remember\" + 0.104*\"based on a tv show\" + 0.094*\"directorial debut\" + 0.067*\"Comedy\" + 0.037*\"ummarti2006\" + 0.033*\"keira knightley\" + 0.029*\"australia\" + 0.023*\"australian\" + 0.019*\"immigrants\" + 0.019*\"robert downey jr\"\n", - "2021-08-24 02:42:21,384 : INFO : topic #48 (0.020): 0.104*\"bruce willis\" + 0.096*\"netflix\" + 0.080*\"twist ending\" + 0.035*\"coming of age\" + 0.031*\"journalism\" + 0.029*\"Drama\" + 0.027*\"to see\" + 0.022*\"talking animals\" + 0.021*\"relationships\" + 0.019*\"sexy\"\n", - "2021-08-24 02:42:21,385 : INFO : topic #29 (0.020): 0.089*\"nudity (full frontal - notable)\" + 0.067*\"shakespeare\" + 0.052*\"Drama\" + 0.043*\"based on a play\" + 0.035*\"adapted from:play\" + 0.035*\"christianity\" + 0.032*\"religion\" + 0.026*\"jodie foster\" + 0.025*\"cannibalism\" + 0.023*\"president\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:21,386 : INFO : topic #37 (0.020): 0.179*\"War\" + 0.106*\"world war ii\" + 0.101*\"Drama\" + 0.061*\"war\" + 0.045*\"jim carrey\" + 0.044*\"history\" + 0.028*\"Action\" + 0.023*\"nazis\" + 0.018*\"wwii\" + 0.015*\"mental illness\"\n", - "2021-08-24 02:42:21,387 : INFO : topic #43 (0.020): 0.067*\"surreal\" + 0.056*\"stanley kubrick\" + 0.037*\"satirical\" + 0.035*\"cynical\" + 0.032*\"narrated\" + 0.029*\"dreamlike\" + 0.029*\"irreverent\" + 0.026*\"quirky\" + 0.025*\"biting\" + 0.023*\"hallucinatory\"\n", - "2021-08-24 02:42:21,388 : INFO : topic diff=0.233043, rho=0.284665\n", - "2021-08-24 02:42:21,390 : INFO : PROGRESS: pass 6, at document #4000/10681\n", - "2021-08-24 02:42:21,641 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:21,668 : INFO : topic #46 (0.020): 0.089*\"action\" + 0.064*\"sci-fi\" + 0.047*\"fantasy\" + 0.033*\"adventure\" + 0.028*\"dvd\" + 0.024*\"seen at the cinema\" + 0.023*\"seen more than once\" + 0.021*\"Adventure\" + 0.021*\"space\" + 0.020*\"harrison ford\"\n", - "2021-08-24 02:42:21,669 : INFO : topic #39 (0.020): 0.180*\"time travel\" + 0.051*\"adultery\" + 0.048*\"post apocalyptic\" + 0.036*\"motorcycle\" + 0.036*\"post-apocalyptic\" + 0.029*\"jude law\" + 0.020*\"hollywood\" + 0.019*\"want to own\" + 0.018*\"bechdel test:fail\" + 0.015*\"1950s\"\n", - "2021-08-24 02:42:21,670 : INFO : topic #35 (0.020): 0.342*\"Comedy\" + 0.312*\"Drama\" + 0.190*\"Romance\" + 0.017*\"lesbian\" + 0.012*\"bibliothek\" + 0.009*\"philip seymour hoffman\" + 0.007*\"m. night shyamalan\" + 0.006*\"sean penn\" + 0.006*\"oscar (best foreign language film)\" + 0.004*\"library vhs\"\n", - "2021-08-24 02:42:21,671 : INFO : topic #43 (0.020): 0.080*\"surreal\" + 0.047*\"stanley kubrick\" + 0.040*\"satirical\" + 0.038*\"cynical\" + 0.037*\"narrated\" + 0.028*\"dreamlike\" + 0.028*\"surrealism\" + 0.026*\"biting\" + 0.026*\"irreverent\" + 0.025*\"quirky\"\n", - "2021-08-24 02:42:21,672 : INFO : topic #3 (0.020): 0.195*\"oscar (best picture)\" + 0.078*\"oscar (best directing)\" + 0.054*\"oscar (best actor)\" + 0.038*\"al pacino\" + 0.027*\"oscar (best supporting actor)\" + 0.023*\"afi 100 (cheers)\" + 0.022*\"great acting\" + 0.020*\"afi 100\" + 0.019*\"best picture\" + 0.018*\"tumey's dvds\"\n", - "2021-08-24 02:42:21,673 : INFO : topic diff=0.045326, rho=0.284665\n", - "2021-08-24 02:42:21,675 : INFO : PROGRESS: pass 6, at document #6000/10681\n", - "2021-08-24 02:42:21,906 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:21,934 : INFO : topic #1 (0.020): 0.045*\"overrated\" + 0.039*\"violence\" + 0.034*\"crime\" + 0.031*\"quentin tarantino\" + 0.029*\"nonlinear\" + 0.027*\"imdb top 250\" + 0.025*\"violent\" + 0.023*\"drama\" + 0.023*\"owned\" + 0.022*\"revenge\"\n", - "2021-08-24 02:42:21,935 : INFO : topic #36 (0.020): 0.084*\"cult film\" + 0.049*\"peter jackson\" + 0.044*\"russell crowe\" + 0.035*\"downbeat\" + 0.030*\"adam sandler\" + 0.029*\"1980s\" + 0.023*\"80s\" + 0.021*\"new zealand\" + 0.016*\"not available from netflix\" + 0.013*\"long\"\n", - "2021-08-24 02:42:21,936 : INFO : topic #25 (0.020): 0.150*\"Western\" + 0.066*\"erlend's dvds\" + 0.046*\"Drama\" + 0.045*\"woody allen\" + 0.044*\"gothic\" + 0.040*\"gene hackman\" + 0.030*\"nicole kidman\" + 0.029*\"scary movies to see on halloween\" + 0.029*\"george clooney\" + 0.025*\"sad\"\n", - "2021-08-24 02:42:21,936 : INFO : topic #26 (0.020): 0.039*\"Drama\" + 0.036*\"james bond\" + 0.025*\"007\" + 0.025*\"bond\" + 0.022*\"mel gibson\" + 0.021*\"reflective\" + 0.020*\"atmospheric\" + 0.018*\"poignant\" + 0.018*\"lyrical\" + 0.016*\"bittersweet\"\n", - "2021-08-24 02:42:21,937 : INFO : topic #27 (0.020): 0.320*\"Horror\" + 0.151*\"Thriller\" + 0.124*\"Mystery\" + 0.034*\"Drama\" + 0.028*\"Fantasy\" + 0.026*\"easily confused with other movie(s) (title)\" + 0.025*\"Film-Noir\" + 0.018*\"eerie\" + 0.017*\"franchise\" + 0.015*\"slasher\"\n", - "2021-08-24 02:42:21,938 : INFO : topic diff=0.083762, rho=0.284665\n", - "2021-08-24 02:42:21,940 : INFO : PROGRESS: pass 6, at document #8000/10681\n", - "2021-08-24 02:42:22,164 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:22,191 : INFO : topic #31 (0.020): 0.148*\"zombies\" + 0.063*\"pg-13\" + 0.045*\"zombie\" + 0.034*\"cult classic\" + 0.029*\"sam raimi\" + 0.028*\"campy\" + 0.026*\"horror\" + 0.024*\"books\" + 0.023*\"joaquin phoenix\" + 0.019*\"mummy\"\n", - "2021-08-24 02:42:22,191 : INFO : topic #4 (0.020): 0.070*\"sports\" + 0.062*\"Drama\" + 0.047*\"sven's to see list\" + 0.045*\"hw drama\" + 0.042*\"boxing\" + 0.041*\"london\" + 0.040*\"british\" + 0.037*\"underrated\" + 0.025*\"werewolves\" + 0.023*\"romantic\"\n", - "2021-08-24 02:42:22,192 : INFO : topic #9 (0.020): 0.235*\"based on a book\" + 0.120*\"adapted from:book\" + 0.062*\"Drama\" + 0.037*\"stephen king\" + 0.036*\"jack nicholson\" + 0.029*\"horror\" + 0.027*\"based on book\" + 0.027*\"imdb bottom 100\" + 0.019*\"stupid\" + 0.019*\"los angeles\"\n", - "2021-08-24 02:42:22,193 : INFO : topic #35 (0.020): 0.360*\"Comedy\" + 0.306*\"Drama\" + 0.192*\"Romance\" + 0.015*\"lesbian\" + 0.013*\"bibliothek\" + 0.008*\"oscar (best foreign language film)\" + 0.007*\"sean penn\" + 0.007*\"philip seymour hoffman\" + 0.004*\"m. night shyamalan\" + 0.004*\"library vhs\"\n", - "2021-08-24 02:42:22,194 : INFO : topic #25 (0.020): 0.169*\"Western\" + 0.067*\"erlend's dvds\" + 0.051*\"Drama\" + 0.049*\"woody allen\" + 0.041*\"gothic\" + 0.035*\"gene hackman\" + 0.032*\"scary movies to see on halloween\" + 0.030*\"nicole kidman\" + 0.023*\"cute\" + 0.022*\"george clooney\"\n", - "2021-08-24 02:42:22,195 : INFO : topic diff=0.064514, rho=0.284665\n", - "2021-08-24 02:42:22,197 : INFO : PROGRESS: pass 6, at document #10000/10681\n", - "2021-08-24 02:42:22,442 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:22,469 : INFO : topic #36 (0.020): 0.061*\"cult film\" + 0.047*\"downbeat\" + 0.046*\"peter jackson\" + 0.038*\"russell crowe\" + 0.038*\"not available from netflix\" + 0.030*\"adam sandler\" + 0.024*\"1980s\" + 0.024*\"new zealand\" + 0.020*\"existentialism\" + 0.018*\"must see!\"\n", - "2021-08-24 02:42:22,470 : INFO : topic #5 (0.020): 0.231*\"classic\" + 0.075*\"musical\" + 0.047*\"afi 100 (laughs)\" + 0.037*\"Musical\" + 0.027*\"national film registry\" + 0.017*\"witch\" + 0.016*\"john travolta\" + 0.015*\"adapted from b'way\" + 0.014*\"breakthroughs\" + 0.013*\"afi 100\"\n", - "2021-08-24 02:42:22,471 : INFO : topic #17 (0.020): 0.341*\"Sci-Fi\" + 0.078*\"Horror\" + 0.071*\"Action\" + 0.039*\"video game adaptation\" + 0.022*\"football\" + 0.019*\"animals\" + 0.017*\"Adventure\" + 0.016*\"movie to see\" + 0.015*\"futuristic\" + 0.014*\"milla jovovich\"\n", - "2021-08-24 02:42:22,472 : INFO : topic #29 (0.020): 0.093*\"nudity (full frontal - notable)\" + 0.058*\"Drama\" + 0.050*\"shakespeare\" + 0.046*\"based on a play\" + 0.038*\"christianity\" + 0.033*\"adapted from:play\" + 0.030*\"religion\" + 0.024*\"biblical\" + 0.023*\"fascism\" + 0.019*\"k movie\"\n", - "2021-08-24 02:42:22,473 : INFO : topic #2 (0.020): 0.289*\"Documentary\" + 0.091*\"to see\" + 0.081*\"documentary\" + 0.027*\"mockumentary\" + 0.023*\"sexuality\" + 0.021*\"movie to see\" + 0.019*\"dogs\" + 0.019*\"owen wilson\" + 0.018*\"kevin smith\" + 0.017*\"in netflix queue\"\n", - "2021-08-24 02:42:22,475 : INFO : topic diff=0.056593, rho=0.284665\n", - "2021-08-24 02:42:22,613 : INFO : -20.989 per-word bound, 2081582.7 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:22,614 : INFO : PROGRESS: pass 6, at document #10681/10681\n", - "2021-08-24 02:42:22,707 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:22,733 : INFO : topic #3 (0.020): 0.124*\"oscar (best picture)\" + 0.051*\"great acting\" + 0.049*\"oscar (best directing)\" + 0.037*\"oscar (best actor)\" + 0.033*\"al pacino\" + 0.020*\"afi 100 (cheers)\" + 0.018*\"Drama\" + 0.018*\"oscar (best supporting actor)\" + 0.017*\"civil war\" + 0.015*\"tumey's dvds\"\n", - "2021-08-24 02:42:22,734 : INFO : topic #36 (0.020): 0.055*\"cult film\" + 0.045*\"russell crowe\" + 0.036*\"downbeat\" + 0.036*\"peter jackson\" + 0.033*\"not available from netflix\" + 0.031*\"adam sandler\" + 0.031*\"virus\" + 0.030*\"1980s\" + 0.025*\"movielens quickpick\" + 0.022*\"new zealand\"\n", - "2021-08-24 02:42:22,735 : INFO : topic #32 (0.020): 0.149*\"johnny depp\" + 0.049*\"clint eastwood\" + 0.049*\"kung fu\" + 0.048*\"propaganda\" + 0.046*\"vhs\" + 0.042*\"watched 2007\" + 0.038*\"jackie chan\" + 0.037*\"india\" + 0.028*\"western\" + 0.025*\"brothers\"\n", - "2021-08-24 02:42:22,736 : INFO : topic #31 (0.020): 0.174*\"zombies\" + 0.106*\"pg-13\" + 0.028*\"zombie\" + 0.027*\"movie to see\" + 0.027*\"infidelity\" + 0.027*\"betrayal\" + 0.024*\"books\" + 0.023*\"joaquin phoenix\" + 0.020*\"campy\" + 0.019*\"cult classic\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:22,737 : INFO : topic #0 (0.020): 0.115*\"can't remember\" + 0.110*\"based on a tv show\" + 0.087*\"directorial debut\" + 0.071*\"Comedy\" + 0.056*\"ummarti2006\" + 0.055*\"keira knightley\" + 0.028*\"australia\" + 0.026*\"immigrants\" + 0.026*\"dani2006\" + 0.025*\"australian\"\n", - "2021-08-24 02:42:22,738 : INFO : topic diff=0.116521, rho=0.284665\n", - "2021-08-24 02:42:22,739 : INFO : PROGRESS: pass 7, at document #2000/10681\n", - "2021-08-24 02:42:22,985 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:23,011 : INFO : topic #34 (0.020): 0.069*\"ghosts\" + 0.049*\"bill murray\" + 0.044*\"television\" + 0.028*\"courtroom drama\" + 0.027*\"secret service\" + 0.026*\"courtroom\" + 0.019*\"roman polanski\" + 0.018*\"18th century\" + 0.018*\"opera\" + 0.017*\"smoking\"\n", - "2021-08-24 02:42:23,012 : INFO : topic #13 (0.020): 0.056*\"fairy tale\" + 0.054*\"jane austen\" + 0.037*\"assassination\" + 0.035*\"historical\" + 0.033*\"road trip\" + 0.033*\"cold war\" + 0.029*\"sequel\" + 0.023*\"gerard depardieu\" + 0.022*\"swashbuckler\" + 0.020*\"kids\"\n", - "2021-08-24 02:42:23,013 : INFO : topic #12 (0.020): 0.135*\"comic book\" + 0.106*\"superhero\" + 0.081*\"dystopia\" + 0.054*\"holocaust\" + 0.050*\"super-hero\" + 0.033*\"batman\" + 0.031*\"adapted from:comic\" + 0.024*\"kidnapping\" + 0.016*\"action\" + 0.015*\"alter ego\"\n", - "2021-08-24 02:42:23,014 : INFO : topic #43 (0.020): 0.067*\"surreal\" + 0.055*\"stanley kubrick\" + 0.038*\"satirical\" + 0.035*\"cynical\" + 0.032*\"narrated\" + 0.029*\"irreverent\" + 0.029*\"dreamlike\" + 0.027*\"biting\" + 0.026*\"quirky\" + 0.023*\"hallucinatory\"\n", - "2021-08-24 02:42:23,015 : INFO : topic #3 (0.020): 0.226*\"oscar (best picture)\" + 0.086*\"oscar (best directing)\" + 0.061*\"oscar (best actor)\" + 0.029*\"al pacino\" + 0.027*\"oscar (best supporting actor)\" + 0.023*\"best picture\" + 0.023*\"great acting\" + 0.023*\"afi 100 (cheers)\" + 0.022*\"afi 100\" + 0.017*\"civil war\"\n", - "2021-08-24 02:42:23,016 : INFO : topic diff=0.221249, rho=0.273788\n", - "2021-08-24 02:42:23,018 : INFO : PROGRESS: pass 7, at document #4000/10681\n", - "2021-08-24 02:42:23,261 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:23,287 : INFO : topic #16 (0.020): 0.291*\"nudity (topless)\" + 0.199*\"nudity (topless - brief)\" + 0.062*\"nudity (rear)\" + 0.033*\"claymation\" + 0.022*\"military\" + 0.022*\"aardman\" + 0.022*\"pg\" + 0.018*\"childhood\" + 0.012*\"weird\" + 0.011*\"freedom\"\n", - "2021-08-24 02:42:23,288 : INFO : topic #47 (0.020): 0.070*\"serial killer\" + 0.058*\"brad pitt\" + 0.051*\"psychology\" + 0.043*\"edward norton\" + 0.034*\"steven spielberg\" + 0.025*\"matt damon\" + 0.025*\"heist\" + 0.023*\"crime\" + 0.016*\"dinosaurs\" + 0.015*\"hayao miyazaki\"\n", - "2021-08-24 02:42:23,289 : INFO : topic #48 (0.020): 0.108*\"bruce willis\" + 0.085*\"twist ending\" + 0.075*\"netflix\" + 0.050*\"coming of age\" + 0.033*\"journalism\" + 0.028*\"Drama\" + 0.026*\"sexy\" + 0.024*\"talking animals\" + 0.022*\"to see\" + 0.018*\"relationships\"\n", - "2021-08-24 02:42:23,289 : INFO : topic #29 (0.020): 0.093*\"nudity (full frontal - notable)\" + 0.072*\"shakespeare\" + 0.051*\"Drama\" + 0.046*\"based on a play\" + 0.041*\"adapted from:play\" + 0.031*\"christianity\" + 0.029*\"religion\" + 0.021*\"jodie foster\" + 0.021*\"cannibalism\" + 0.019*\"playwright:shakespeare\"\n", - "2021-08-24 02:42:23,290 : INFO : topic #21 (0.020): 0.084*\"aliens\" + 0.072*\"Sci-Fi\" + 0.043*\"space\" + 0.037*\"futuristmovies.com\" + 0.034*\"sci-fi\" + 0.028*\"will smith\" + 0.028*\"Action\" + 0.023*\"tommy lee jones\" + 0.021*\"70mm\" + 0.021*\"ridley scott\"\n", - "2021-08-24 02:42:23,291 : INFO : topic diff=0.042538, rho=0.273788\n", - "2021-08-24 02:42:23,293 : INFO : PROGRESS: pass 7, at document #6000/10681\n", - "2021-08-24 02:42:23,508 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:23,540 : INFO : topic #37 (0.020): 0.180*\"War\" + 0.115*\"world war ii\" + 0.098*\"Drama\" + 0.059*\"war\" + 0.041*\"history\" + 0.035*\"Action\" + 0.031*\"jim carrey\" + 0.020*\"nazis\" + 0.018*\"mental illness\" + 0.016*\"wwii\"\n", - "2021-08-24 02:42:23,542 : INFO : topic #11 (0.020): 0.131*\"religion\" + 0.118*\"keanu reeves\" + 0.021*\"slavery\" + 0.019*\"courtesan\" + 0.018*\"reality tv\" + 0.018*\"slash\" + 0.017*\"facebook rec\" + 0.016*\"class issues\" + 0.014*\"product placement\" + 0.012*\"cross-dressing women\"\n", - "2021-08-24 02:42:23,544 : INFO : topic #26 (0.020): 0.039*\"Drama\" + 0.036*\"james bond\" + 0.025*\"007\" + 0.025*\"bond\" + 0.022*\"mel gibson\" + 0.021*\"reflective\" + 0.020*\"atmospheric\" + 0.019*\"poignant\" + 0.018*\"lyrical\" + 0.016*\"bittersweet\"\n", - "2021-08-24 02:42:23,545 : INFO : topic #49 (0.020): 0.077*\"national film registry\" + 0.056*\"imdb top 250\" + 0.040*\"black and white\" + 0.032*\"tumey's dvds\" + 0.030*\"afi 100\" + 0.030*\"afi 100 (thrills)\" + 0.024*\"afi 100 (movie quotes)\" + 0.024*\"france\" + 0.023*\"paris\" + 0.022*\"usa film registry\"\n", - "2021-08-24 02:42:23,548 : INFO : topic #43 (0.020): 0.084*\"surreal\" + 0.046*\"satirical\" + 0.040*\"cynical\" + 0.036*\"stanley kubrick\" + 0.036*\"narrated\" + 0.032*\"biting\" + 0.031*\"dreamlike\" + 0.029*\"quirky\" + 0.026*\"irreverent\" + 0.025*\"mindfuck\"\n", - "2021-08-24 02:42:23,551 : INFO : topic diff=0.079000, rho=0.273788\n", - "2021-08-24 02:42:23,552 : INFO : PROGRESS: pass 7, at document #8000/10681\n", - "2021-08-24 02:42:23,787 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:23,814 : INFO : topic #14 (0.020): 0.060*\"criterion\" + 0.051*\"tense\" + 0.051*\"Drama\" + 0.049*\"disturbing\" + 0.047*\"atmospheric\" + 0.031*\"tumey's dvds\" + 0.030*\"bleak\" + 0.029*\"stylized\" + 0.026*\"erlend's dvds\" + 0.025*\"menacing\"\n", - "2021-08-24 02:42:23,815 : INFO : topic #25 (0.020): 0.169*\"Western\" + 0.068*\"erlend's dvds\" + 0.051*\"Drama\" + 0.049*\"woody allen\" + 0.042*\"gothic\" + 0.035*\"gene hackman\" + 0.032*\"scary movies to see on halloween\" + 0.030*\"nicole kidman\" + 0.023*\"cute\" + 0.022*\"george clooney\"\n", - "2021-08-24 02:42:23,816 : INFO : topic #43 (0.020): 0.088*\"surreal\" + 0.046*\"satirical\" + 0.041*\"cynical\" + 0.035*\"quirky\" + 0.034*\"dreamlike\" + 0.033*\"narrated\" + 0.030*\"biting\" + 0.027*\"hallucinatory\" + 0.026*\"stanley kubrick\" + 0.026*\"irreverent\"\n", - "2021-08-24 02:42:23,817 : INFO : topic #3 (0.020): 0.151*\"oscar (best picture)\" + 0.060*\"oscar (best directing)\" + 0.057*\"oscar (best actor)\" + 0.035*\"al pacino\" + 0.027*\"afi 100 (cheers)\" + 0.025*\"oscar (best supporting actor)\" + 0.020*\"mst3k\" + 0.019*\"tumey's dvds\" + 0.019*\"Drama\" + 0.018*\"civil war\"\n", - "2021-08-24 02:42:23,817 : INFO : topic #23 (0.020): 0.080*\"high school\" + 0.080*\"teen\" + 0.065*\"cars\" + 0.033*\"dance\" + 0.031*\"marx brothers\" + 0.029*\"eddie murphy\" + 0.025*\"(s)vcd\" + 0.023*\"Comedy\" + 0.023*\"car chase\" + 0.018*\"sandra bullock\"\n", - "2021-08-24 02:42:23,818 : INFO : topic diff=0.061580, rho=0.273788\n", - "2021-08-24 02:42:23,820 : INFO : PROGRESS: pass 7, at document #10000/10681\n", - "2021-08-24 02:42:24,082 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:24,110 : INFO : topic #36 (0.020): 0.062*\"cult film\" + 0.048*\"downbeat\" + 0.046*\"peter jackson\" + 0.039*\"russell crowe\" + 0.037*\"not available from netflix\" + 0.031*\"adam sandler\" + 0.024*\"1980s\" + 0.024*\"new zealand\" + 0.020*\"existentialism\" + 0.018*\"must see!\"\n", - "2021-08-24 02:42:24,111 : INFO : topic #11 (0.020): 0.130*\"religion\" + 0.105*\"keanu reeves\" + 0.026*\"product placement\" + 0.022*\"slavery\" + 0.021*\"facebook rec\" + 0.021*\"courtesan\" + 0.018*\"reality tv\" + 0.017*\"social message\" + 0.016*\"cross-dressing women\" + 0.016*\"gender identity\"\n", - "2021-08-24 02:42:24,112 : INFO : topic #12 (0.020): 0.168*\"comic book\" + 0.097*\"superhero\" + 0.073*\"dystopia\" + 0.070*\"super-hero\" + 0.041*\"holocaust\" + 0.034*\"adapted from:comic\" + 0.021*\"kidnapping\" + 0.021*\"alter ego\" + 0.016*\"Action\" + 0.016*\"dark\"\n", - "2021-08-24 02:42:24,113 : INFO : topic #6 (0.020): 0.129*\"Musical\" + 0.103*\"politics\" + 0.060*\"satire\" + 0.040*\"nicolas cage\" + 0.040*\"terrorism\" + 0.037*\"dvd-r\" + 0.029*\"political\" + 0.029*\"sean connery\" + 0.028*\"netwatch\" + 0.025*\"police\"\n", - "2021-08-24 02:42:24,114 : INFO : topic #24 (0.020): 0.069*\"vampire\" + 0.068*\"murder\" + 0.067*\"vampires\" + 0.056*\"memory\" + 0.050*\"oppl\" + 0.049*\"hitchcock\" + 0.037*\"alfred hitchcock\" + 0.022*\"cary grant\" + 0.021*\"kirsten dunst\" + 0.021*\"incest\"\n", - "2021-08-24 02:42:24,115 : INFO : topic diff=0.053372, rho=0.273788\n", - "2021-08-24 02:42:24,321 : INFO : -20.983 per-word bound, 2072879.0 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:24,322 : INFO : PROGRESS: pass 7, at document #10681/10681\n", - "2021-08-24 02:42:24,415 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:24,442 : INFO : topic #21 (0.020): 0.074*\"Sci-Fi\" + 0.064*\"aliens\" + 0.044*\"will smith\" + 0.034*\"space\" + 0.033*\"tommy lee jones\" + 0.030*\"Action\" + 0.026*\"ridley scott\" + 0.025*\"sci-fi\" + 0.025*\"futuristmovies.com\" + 0.021*\"monster\"\n", - "2021-08-24 02:42:24,443 : INFO : topic #37 (0.020): 0.229*\"War\" + 0.125*\"Drama\" + 0.095*\"world war ii\" + 0.051*\"history\" + 0.048*\"war\" + 0.039*\"Action\" + 0.023*\"jim carrey\" + 0.022*\"nazis\" + 0.011*\"mental illness\" + 0.010*\"wwii\"\n", - "2021-08-24 02:42:24,444 : INFO : topic #26 (0.020): 0.043*\"Drama\" + 0.030*\"james bond\" + 0.021*\"assassin\" + 0.020*\"poignant\" + 0.020*\"reflective\" + 0.019*\"atmospheric\" + 0.019*\"bittersweet\" + 0.018*\"bond\" + 0.018*\"007\" + 0.017*\"lyrical\"\n", - "2021-08-24 02:42:24,445 : INFO : topic #46 (0.020): 0.077*\"action\" + 0.065*\"fantasy\" + 0.049*\"sci-fi\" + 0.036*\"adventure\" + 0.031*\"dvd\" + 0.024*\"Adventure\" + 0.023*\"watched 2006\" + 0.023*\"robots\" + 0.019*\"space\" + 0.019*\"seen at the cinema\"\n", - "2021-08-24 02:42:24,446 : INFO : topic #45 (0.020): 0.274*\"less than 300 ratings\" + 0.116*\"Drama\" + 0.059*\"nudity (topless - notable)\" + 0.037*\"tim burton\" + 0.030*\"not corv lib\" + 0.029*\"library\" + 0.016*\"blindfold\" + 0.015*\"depressing\" + 0.014*\"san francisco\" + 0.014*\"seen 2007\"\n", - "2021-08-24 02:42:24,447 : INFO : topic diff=0.111718, rho=0.273788\n", - "2021-08-24 02:42:24,449 : INFO : PROGRESS: pass 8, at document #2000/10681\n", - "2021-08-24 02:42:24,716 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:24,744 : INFO : topic #5 (0.020): 0.313*\"classic\" + 0.066*\"musical\" + 0.034*\"afi 100 (laughs)\" + 0.030*\"Musical\" + 0.027*\"national film registry\" + 0.023*\"afi 100\" + 0.018*\"john travolta\" + 0.013*\"breakthroughs\" + 0.011*\"family\" + 0.011*\"erlend's dvds\"\n", - "2021-08-24 02:42:24,745 : INFO : topic #1 (0.020): 0.049*\"quentin tarantino\" + 0.047*\"overrated\" + 0.037*\"crime\" + 0.036*\"violence\" + 0.032*\"tarantino\" + 0.032*\"imdb top 250\" + 0.029*\"violent\" + 0.026*\"drama\" + 0.025*\"owned\" + 0.023*\"revenge\"\n", - "2021-08-24 02:42:24,746 : INFO : topic #2 (0.020): 0.273*\"Documentary\" + 0.117*\"to see\" + 0.053*\"documentary\" + 0.031*\"star trek\" + 0.031*\"mockumentary\" + 0.027*\"kevin smith\" + 0.022*\"movie to see\" + 0.020*\"dogs\" + 0.018*\"sexuality\" + 0.015*\"owen wilson\"\n", - "2021-08-24 02:42:24,747 : INFO : topic #44 (0.020): 0.119*\"mafia\" + 0.082*\"music\" + 0.064*\"martin scorsese\" + 0.055*\"organized crime\" + 0.035*\"oscar (best supporting actor)\" + 0.034*\"rock and roll\" + 0.031*\"Musical\" + 0.022*\"francis ford coppola\" + 0.021*\"guns\" + 0.019*\"wired 50 greatest soundtracks\"\n", - "2021-08-24 02:42:24,747 : INFO : topic #13 (0.020): 0.056*\"fairy tale\" + 0.053*\"jane austen\" + 0.037*\"assassination\" + 0.034*\"road trip\" + 0.033*\"historical\" + 0.033*\"cold war\" + 0.029*\"sequel\" + 0.023*\"gerard depardieu\" + 0.022*\"swashbuckler\" + 0.020*\"kids\"\n", - "2021-08-24 02:42:24,749 : INFO : topic diff=0.211074, rho=0.264069\n", - "2021-08-24 02:42:24,751 : INFO : PROGRESS: pass 8, at document #4000/10681\n", - "2021-08-24 02:42:25,004 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:25,030 : INFO : topic #7 (0.020): 0.111*\"romance\" + 0.061*\"Romance\" + 0.054*\"chick flick\" + 0.036*\"boring\" + 0.031*\"girlie movie\" + 0.030*\"Comedy\" + 0.027*\"baseball\" + 0.027*\"comedy\" + 0.019*\"love story\" + 0.019*\"whimsical\"\n", - "2021-08-24 02:42:25,031 : INFO : topic #13 (0.020): 0.052*\"fairy tale\" + 0.045*\"jane austen\" + 0.040*\"road trip\" + 0.035*\"sequel\" + 0.032*\"historical\" + 0.030*\"assassination\" + 0.028*\"cold war\" + 0.022*\"kids\" + 0.021*\"heartwarming\" + 0.020*\"italy\"\n", - "2021-08-24 02:42:25,032 : INFO : topic #21 (0.020): 0.084*\"aliens\" + 0.071*\"Sci-Fi\" + 0.044*\"space\" + 0.038*\"futuristmovies.com\" + 0.036*\"sci-fi\" + 0.028*\"will smith\" + 0.028*\"Action\" + 0.023*\"tommy lee jones\" + 0.021*\"70mm\" + 0.021*\"ridley scott\"\n", - "2021-08-24 02:42:25,033 : INFO : topic #1 (0.020): 0.047*\"overrated\" + 0.043*\"violence\" + 0.039*\"quentin tarantino\" + 0.033*\"crime\" + 0.030*\"imdb top 250\" + 0.026*\"owned\" + 0.026*\"drama\" + 0.025*\"tarantino\" + 0.025*\"violent\" + 0.021*\"revenge\"\n", - "2021-08-24 02:42:25,034 : INFO : topic #19 (0.020): 0.063*\"nudity (full frontal)\" + 0.061*\"drama\" + 0.032*\"Drama\" + 0.028*\"vietnam\" + 0.028*\"vietnam war\" + 0.027*\"philip k. dick\" + 0.027*\"rape\" + 0.021*\"very good\" + 0.020*\"to see\" + 0.016*\"slow\"\n", - "2021-08-24 02:42:25,035 : INFO : topic diff=0.040053, rho=0.264069\n", - "2021-08-24 02:42:25,036 : INFO : PROGRESS: pass 8, at document #6000/10681\n", - "2021-08-24 02:42:25,283 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:25,311 : INFO : topic #43 (0.020): 0.083*\"surreal\" + 0.046*\"satirical\" + 0.040*\"cynical\" + 0.036*\"stanley kubrick\" + 0.035*\"narrated\" + 0.033*\"biting\" + 0.031*\"dreamlike\" + 0.030*\"quirky\" + 0.026*\"irreverent\" + 0.025*\"mindfuck\"\n", - "2021-08-24 02:42:25,312 : INFO : topic #1 (0.020): 0.047*\"overrated\" + 0.042*\"violence\" + 0.035*\"crime\" + 0.031*\"quentin tarantino\" + 0.028*\"nonlinear\" + 0.027*\"imdb top 250\" + 0.024*\"owned\" + 0.024*\"drama\" + 0.024*\"violent\" + 0.022*\"revenge\"\n", - "2021-08-24 02:42:25,314 : INFO : topic #47 (0.020): 0.065*\"serial killer\" + 0.057*\"psychology\" + 0.052*\"brad pitt\" + 0.043*\"edward norton\" + 0.035*\"steven spielberg\" + 0.032*\"heist\" + 0.028*\"matt damon\" + 0.026*\"crime\" + 0.021*\"hayao miyazaki\" + 0.016*\"scary\"\n", - "2021-08-24 02:42:25,315 : INFO : topic #39 (0.020): 0.202*\"time travel\" + 0.054*\"adultery\" + 0.040*\"post apocalyptic\" + 0.036*\"motorcycle\" + 0.031*\"jude law\" + 0.031*\"post-apocalyptic\" + 0.020*\"want to own\" + 0.019*\"hollywood\" + 0.019*\"bechdel test:fail\" + 0.017*\"ian mckellen\"\n", - "2021-08-24 02:42:25,315 : INFO : topic #48 (0.020): 0.098*\"bruce willis\" + 0.084*\"twist ending\" + 0.063*\"netflix\" + 0.049*\"coming of age\" + 0.036*\"sexy\" + 0.027*\"journalism\" + 0.026*\"Drama\" + 0.021*\"to see\" + 0.021*\"talking animals\" + 0.019*\"relationships\"\n", - "2021-08-24 02:42:25,317 : INFO : topic diff=0.075289, rho=0.264069\n", - "2021-08-24 02:42:25,319 : INFO : PROGRESS: pass 8, at document #8000/10681\n", - "2021-08-24 02:42:25,597 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:25,626 : INFO : topic #7 (0.020): 0.113*\"romance\" + 0.057*\"Romance\" + 0.043*\"chick flick\" + 0.037*\"boring\" + 0.029*\"Comedy\" + 0.027*\"girlie movie\" + 0.027*\"baseball\" + 0.027*\"comedy\" + 0.023*\"whimsical\" + 0.019*\"wedding\"\n", - "2021-08-24 02:42:25,627 : INFO : topic #9 (0.020): 0.237*\"based on a book\" + 0.119*\"adapted from:book\" + 0.060*\"Drama\" + 0.037*\"stephen king\" + 0.036*\"jack nicholson\" + 0.031*\"based on book\" + 0.028*\"horror\" + 0.027*\"imdb bottom 100\" + 0.021*\"literary adaptation\" + 0.019*\"stupid\"\n", - "2021-08-24 02:42:25,627 : INFO : topic #18 (0.020): 0.082*\"magic\" + 0.074*\"gay\" + 0.055*\"racism\" + 0.040*\"Drama\" + 0.037*\"pg13\" + 0.028*\"food\" + 0.023*\"homosexuality\" + 0.023*\"social commentary\" + 0.020*\"19th century\" + 0.017*\"robert altman\"\n", - "2021-08-24 02:42:25,629 : INFO : topic #42 (0.020): 0.102*\"japan\" + 0.093*\"martial arts\" + 0.071*\"robin williams\" + 0.044*\"akira kurosawa\" + 0.033*\"samurai\" + 0.031*\"Drama\" + 0.027*\"orson welles\" + 0.024*\"kurosawa\" + 0.021*\"christopher walken\" + 0.020*\"hugh grant\"\n", - "2021-08-24 02:42:25,631 : INFO : topic #35 (0.020): 0.361*\"Comedy\" + 0.305*\"Drama\" + 0.192*\"Romance\" + 0.015*\"lesbian\" + 0.013*\"bibliothek\" + 0.007*\"oscar (best foreign language film)\" + 0.007*\"sean penn\" + 0.007*\"philip seymour hoffman\" + 0.005*\"m. night shyamalan\" + 0.004*\"library vhs\"\n", - "2021-08-24 02:42:25,633 : INFO : topic diff=0.058712, rho=0.264069\n", - "2021-08-24 02:42:25,643 : INFO : PROGRESS: pass 8, at document #10000/10681\n", - "2021-08-24 02:42:25,932 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:25,959 : INFO : topic #6 (0.020): 0.129*\"Musical\" + 0.103*\"politics\" + 0.060*\"satire\" + 0.040*\"nicolas cage\" + 0.040*\"terrorism\" + 0.038*\"dvd-r\" + 0.029*\"sean connery\" + 0.029*\"political\" + 0.028*\"netwatch\" + 0.025*\"police\"\n", - "2021-08-24 02:42:25,960 : INFO : topic #23 (0.020): 0.079*\"high school\" + 0.069*\"cars\" + 0.068*\"teen\" + 0.044*\"marx brothers\" + 0.036*\"dance\" + 0.028*\"Comedy\" + 0.024*\"kate winslet\" + 0.022*\"eddie murphy\" + 0.021*\"(s)vcd\" + 0.020*\"car chase\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:25,961 : INFO : topic #3 (0.020): 0.131*\"oscar (best picture)\" + 0.056*\"oscar (best directing)\" + 0.053*\"oscar (best actor)\" + 0.037*\"al pacino\" + 0.027*\"oscar (best supporting actor)\" + 0.024*\"afi 100 (cheers)\" + 0.022*\"Drama\" + 0.020*\"great acting\" + 0.019*\"tumey's dvds\" + 0.019*\"civil war\"\n", - "2021-08-24 02:42:25,962 : INFO : topic #15 (0.020): 0.109*\"disney\" + 0.100*\"animation\" + 0.087*\"pixar\" + 0.050*\"pirates\" + 0.040*\"Animation\" + 0.039*\"children\" + 0.030*\"Children\" + 0.028*\"angelina jolie\" + 0.024*\"disney animated feature\" + 0.022*\"cartoon\"\n", - "2021-08-24 02:42:25,963 : INFO : topic #14 (0.020): 0.060*\"criterion\" + 0.055*\"disturbing\" + 0.053*\"Drama\" + 0.051*\"tense\" + 0.046*\"atmospheric\" + 0.031*\"tumey's dvds\" + 0.030*\"stylized\" + 0.029*\"bleak\" + 0.024*\"erlend's dvds\" + 0.023*\"menacing\"\n", - "2021-08-24 02:42:25,964 : INFO : topic diff=0.050891, rho=0.264069\n", - "2021-08-24 02:42:26,115 : INFO : -20.979 per-word bound, 2066694.4 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:26,116 : INFO : PROGRESS: pass 8, at document #10681/10681\n", - "2021-08-24 02:42:26,220 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:26,247 : INFO : topic #41 (0.020): 0.142*\"remake\" + 0.083*\"new york city\" + 0.065*\"christmas\" + 0.039*\"family\" + 0.034*\"new york\" + 0.034*\"movie to see\" + 0.029*\"eric's dvds\" + 0.028*\"Drama\" + 0.025*\"kevin spacey\" + 0.025*\"bibliothek\"\n", - "2021-08-24 02:42:26,247 : INFO : topic #37 (0.020): 0.228*\"War\" + 0.125*\"Drama\" + 0.095*\"world war ii\" + 0.050*\"history\" + 0.048*\"war\" + 0.038*\"Action\" + 0.024*\"jim carrey\" + 0.022*\"nazis\" + 0.011*\"mental illness\" + 0.011*\"wwii\"\n", - "2021-08-24 02:42:26,248 : INFO : topic #15 (0.020): 0.102*\"animation\" + 0.096*\"pixar\" + 0.091*\"disney\" + 0.045*\"Animation\" + 0.042*\"children\" + 0.041*\"pirates\" + 0.038*\"angelina jolie\" + 0.028*\"Children\" + 0.020*\"disney animated feature\" + 0.019*\"gambling\"\n", - "2021-08-24 02:42:26,249 : INFO : topic #24 (0.020): 0.109*\"oppl\" + 0.079*\"murder\" + 0.072*\"vampire\" + 0.051*\"vampires\" + 0.043*\"memory\" + 0.038*\"hitchcock\" + 0.029*\"alfred hitchcock\" + 0.017*\"unintentional comedy\" + 0.016*\"cary grant\" + 0.016*\"kirsten dunst\"\n", - "2021-08-24 02:42:26,250 : INFO : topic #21 (0.020): 0.074*\"Sci-Fi\" + 0.065*\"aliens\" + 0.044*\"will smith\" + 0.035*\"space\" + 0.032*\"tommy lee jones\" + 0.031*\"Action\" + 0.027*\"sci-fi\" + 0.026*\"ridley scott\" + 0.026*\"futuristmovies.com\" + 0.021*\"monster\"\n", - "2021-08-24 02:42:26,251 : INFO : topic diff=0.107135, rho=0.264069\n", - "2021-08-24 02:42:26,253 : INFO : PROGRESS: pass 9, at document #2000/10681\n", - "2021-08-24 02:42:26,526 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:26,554 : INFO : topic #44 (0.020): 0.120*\"mafia\" + 0.082*\"music\" + 0.064*\"martin scorsese\" + 0.055*\"organized crime\" + 0.034*\"rock and roll\" + 0.031*\"Musical\" + 0.026*\"oscar (best supporting actor)\" + 0.022*\"francis ford coppola\" + 0.021*\"guns\" + 0.020*\"wired 50 greatest soundtracks\"\n", - "2021-08-24 02:42:26,554 : INFO : topic #24 (0.020): 0.086*\"hitchcock\" + 0.082*\"alfred hitchcock\" + 0.074*\"oppl\" + 0.064*\"murder\" + 0.062*\"vampire\" + 0.046*\"vampires\" + 0.034*\"memory\" + 0.024*\"incest\" + 0.021*\"cary grant\" + 0.017*\"kirsten dunst\"\n", - "2021-08-24 02:42:26,555 : INFO : topic #41 (0.020): 0.112*\"remake\" + 0.071*\"new york city\" + 0.067*\"christmas\" + 0.045*\"family\" + 0.041*\"kevin spacey\" + 0.033*\"new york\" + 0.027*\"Drama\" + 0.026*\"bibliothek\" + 0.025*\"eric's dvds\" + 0.024*\"robert de niro\"\n", - "2021-08-24 02:42:26,556 : INFO : topic #3 (0.020): 0.216*\"oscar (best picture)\" + 0.082*\"oscar (best directing)\" + 0.066*\"oscar (best actor)\" + 0.032*\"oscar (best supporting actor)\" + 0.029*\"al pacino\" + 0.024*\"afi 100\" + 0.023*\"afi 100 (cheers)\" + 0.022*\"great acting\" + 0.022*\"best picture\" + 0.018*\"Drama\"\n", - "2021-08-24 02:42:26,556 : INFO : topic #0 (0.020): 0.207*\"can't remember\" + 0.101*\"based on a tv show\" + 0.092*\"directorial debut\" + 0.072*\"Comedy\" + 0.038*\"ummarti2006\" + 0.033*\"keira knightley\" + 0.028*\"australia\" + 0.023*\"australian\" + 0.019*\"immigrants\" + 0.018*\"robert downey jr\"\n", - "2021-08-24 02:42:26,558 : INFO : topic diff=0.202025, rho=0.255317\n", - "2021-08-24 02:42:26,559 : INFO : PROGRESS: pass 9, at document #4000/10681\n", - "2021-08-24 02:42:26,803 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:26,829 : INFO : topic #44 (0.020): 0.107*\"mafia\" + 0.085*\"music\" + 0.051*\"martin scorsese\" + 0.049*\"organized crime\" + 0.041*\"rock and roll\" + 0.030*\"Musical\" + 0.029*\"wired 50 greatest soundtracks\" + 0.022*\"guns\" + 0.021*\"oscar (best supporting actor)\" + 0.020*\"mob\"\n", - "2021-08-24 02:42:26,830 : INFO : topic #34 (0.020): 0.097*\"ghosts\" + 0.051*\"bill murray\" + 0.043*\"television\" + 0.035*\"courtroom\" + 0.033*\"courtroom drama\" + 0.023*\"court\" + 0.021*\"roman polanski\" + 0.019*\"secret service\" + 0.018*\"opera\" + 0.017*\"2.5\"\n", - "2021-08-24 02:42:26,831 : INFO : topic #4 (0.020): 0.073*\"sports\" + 0.061*\"Drama\" + 0.055*\"boxing\" + 0.046*\"underrated\" + 0.045*\"british\" + 0.038*\"london\" + 0.034*\"sven's to see list\" + 0.032*\"hw drama\" + 0.030*\"sylvester stallone\" + 0.028*\"inspirational\"\n", - "2021-08-24 02:42:26,832 : INFO : topic #31 (0.020): 0.126*\"zombies\" + 0.073*\"pg-13\" + 0.047*\"cult classic\" + 0.028*\"campy\" + 0.028*\"infidelity\" + 0.026*\"joaquin phoenix\" + 0.025*\"sam raimi\" + 0.022*\"zombie\" + 0.021*\"books\" + 0.021*\"mummy\"\n", - "2021-08-24 02:42:26,832 : INFO : topic #25 (0.020): 0.142*\"Western\" + 0.069*\"erlend's dvds\" + 0.054*\"gothic\" + 0.051*\"woody allen\" + 0.043*\"Drama\" + 0.039*\"gene hackman\" + 0.035*\"scary movies to see on halloween\" + 0.025*\"george clooney\" + 0.025*\"sad\" + 0.020*\"cute\"\n", - "2021-08-24 02:42:26,833 : INFO : topic diff=0.037856, rho=0.255317\n", - "2021-08-24 02:42:26,835 : INFO : PROGRESS: pass 9, at document #6000/10681\n", - "2021-08-24 02:42:27,066 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:27,094 : INFO : topic #30 (0.020): 0.236*\"Adventure\" + 0.121*\"Children\" + 0.106*\"Comedy\" + 0.103*\"Fantasy\" + 0.076*\"Action\" + 0.061*\"70mm\" + 0.051*\"Animation\" + 0.039*\"Drama\" + 0.023*\"Musical\" + 0.010*\"submarine\"\n", - "2021-08-24 02:42:27,095 : INFO : topic #42 (0.020): 0.095*\"robin williams\" + 0.087*\"martial arts\" + 0.062*\"japan\" + 0.037*\"samurai\" + 0.035*\"akira kurosawa\" + 0.031*\"Drama\" + 0.026*\"orson welles\" + 0.026*\"hugh grant\" + 0.023*\"julianne moore\" + 0.021*\"christopher walken\"\n", - "2021-08-24 02:42:27,096 : INFO : topic #37 (0.020): 0.181*\"War\" + 0.114*\"world war ii\" + 0.098*\"Drama\" + 0.059*\"war\" + 0.041*\"history\" + 0.036*\"Action\" + 0.031*\"jim carrey\" + 0.020*\"nazis\" + 0.017*\"mental illness\" + 0.016*\"wwii\"\n", - "2021-08-24 02:42:27,097 : INFO : topic #35 (0.020): 0.357*\"Comedy\" + 0.309*\"Drama\" + 0.187*\"Romance\" + 0.015*\"lesbian\" + 0.012*\"bibliothek\" + 0.008*\"philip seymour hoffman\" + 0.006*\"m. night shyamalan\" + 0.006*\"sean penn\" + 0.006*\"oscar (best foreign language film)\" + 0.004*\"library vhs\"\n", - "2021-08-24 02:42:27,098 : INFO : topic #38 (0.020): 0.180*\"drugs\" + 0.046*\"samuel l. jackson\" + 0.026*\"ewan mcgregor\" + 0.026*\"divx\" + 0.024*\"addiction\" + 0.023*\"hulu\" + 0.022*\"poverty\" + 0.021*\"basketball\" + 0.021*\"michael caine\" + 0.020*\"liam neeson\"\n", - "2021-08-24 02:42:27,099 : INFO : topic diff=0.072192, rho=0.255317\n", - "2021-08-24 02:42:27,100 : INFO : PROGRESS: pass 9, at document #8000/10681\n", - "2021-08-24 02:42:27,330 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:27,357 : INFO : topic #30 (0.020): 0.236*\"Adventure\" + 0.115*\"Children\" + 0.104*\"Comedy\" + 0.100*\"Fantasy\" + 0.077*\"Action\" + 0.070*\"70mm\" + 0.047*\"Animation\" + 0.043*\"Drama\" + 0.025*\"Musical\" + 0.009*\"submarine\"\n", - "2021-08-24 02:42:27,359 : INFO : topic #29 (0.020): 0.104*\"nudity (full frontal - notable)\" + 0.058*\"Drama\" + 0.053*\"shakespeare\" + 0.044*\"based on a play\" + 0.038*\"adapted from:play\" + 0.036*\"christianity\" + 0.029*\"religion\" + 0.019*\"disability\" + 0.018*\"takeshi kitano\" + 0.018*\"jodie foster\"\n", - "2021-08-24 02:42:27,360 : INFO : topic #26 (0.020): 0.044*\"Drama\" + 0.032*\"james bond\" + 0.022*\"reflective\" + 0.022*\"007\" + 0.021*\"poignant\" + 0.021*\"atmospheric\" + 0.021*\"bond\" + 0.019*\"bittersweet\" + 0.019*\"deliberate\" + 0.019*\"lyrical\"\n", - "2021-08-24 02:42:27,361 : INFO : topic #46 (0.020): 0.087*\"action\" + 0.065*\"fantasy\" + 0.057*\"sci-fi\" + 0.036*\"adventure\" + 0.033*\"dvd\" + 0.024*\"Adventure\" + 0.022*\"seen more than once\" + 0.022*\"seen at the cinema\" + 0.018*\"tom cruise\" + 0.016*\"Action\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:27,362 : INFO : topic #27 (0.020): 0.319*\"Horror\" + 0.150*\"Thriller\" + 0.127*\"Mystery\" + 0.040*\"Drama\" + 0.030*\"Fantasy\" + 0.030*\"easily confused with other movie(s) (title)\" + 0.025*\"Film-Noir\" + 0.019*\"eerie\" + 0.015*\"tumey's dvds\" + 0.013*\"franchise\"\n", - "2021-08-24 02:42:27,363 : INFO : topic diff=0.056291, rho=0.255317\n", - "2021-08-24 02:42:27,364 : INFO : PROGRESS: pass 9, at document #10000/10681\n", - "2021-08-24 02:42:27,614 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:27,641 : INFO : topic #7 (0.020): 0.106*\"romance\" + 0.059*\"Romance\" + 0.043*\"chick flick\" + 0.040*\"boring\" + 0.027*\"Comedy\" + 0.025*\"girlie movie\" + 0.025*\"love story\" + 0.024*\"baseball\" + 0.024*\"whimsical\" + 0.023*\"comedy\"\n", - "2021-08-24 02:42:27,643 : INFO : topic #11 (0.020): 0.130*\"religion\" + 0.106*\"keanu reeves\" + 0.026*\"product placement\" + 0.022*\"slavery\" + 0.021*\"facebook rec\" + 0.021*\"courtesan\" + 0.018*\"reality tv\" + 0.017*\"social message\" + 0.016*\"cross-dressing women\" + 0.016*\"gender identity\"\n", - "2021-08-24 02:42:27,644 : INFO : topic #45 (0.020): 0.265*\"less than 300 ratings\" + 0.118*\"Drama\" + 0.056*\"nudity (topless - notable)\" + 0.036*\"tim burton\" + 0.031*\"not corv lib\" + 0.025*\"library\" + 0.017*\"seen 2007\" + 0.017*\"depressing\" + 0.015*\"blindfold\" + 0.013*\"michael moore\"\n", - "2021-08-24 02:42:27,644 : INFO : topic #13 (0.020): 0.064*\"fairy tale\" + 0.051*\"road trip\" + 0.041*\"sequel\" + 0.040*\"jane austen\" + 0.027*\"historical\" + 0.025*\"swashbuckler\" + 0.025*\"gerard depardieu\" + 0.025*\"kids\" + 0.023*\"notable nudity\" + 0.022*\"assassination\"\n", - "2021-08-24 02:42:27,645 : INFO : topic #15 (0.020): 0.110*\"disney\" + 0.100*\"animation\" + 0.087*\"pixar\" + 0.049*\"pirates\" + 0.041*\"Animation\" + 0.039*\"children\" + 0.031*\"Children\" + 0.028*\"angelina jolie\" + 0.024*\"disney animated feature\" + 0.022*\"cartoon\"\n", - "2021-08-24 02:42:27,646 : INFO : topic diff=0.048824, rho=0.255317\n", - "2021-08-24 02:42:27,797 : INFO : -20.978 per-word bound, 2065515.2 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:27,798 : INFO : PROGRESS: pass 9, at document #10681/10681\n", - "2021-08-24 02:42:27,898 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:27,924 : INFO : topic #48 (0.020): 0.137*\"netflix\" + 0.078*\"twist ending\" + 0.065*\"bruce willis\" + 0.045*\"coming of age\" + 0.036*\"journalism\" + 0.034*\"to see\" + 0.033*\"Drama\" + 0.025*\"talking animals\" + 0.025*\"relationships\" + 0.021*\"father-son relationship\"\n", - "2021-08-24 02:42:27,925 : INFO : topic #18 (0.020): 0.093*\"magic\" + 0.086*\"pg13\" + 0.071*\"gay\" + 0.050*\"racism\" + 0.039*\"Drama\" + 0.026*\"food\" + 0.025*\"social commentary\" + 0.022*\"homosexuality\" + 0.021*\"19th century\" + 0.021*\"denzel washington\"\n", - "2021-08-24 02:42:27,926 : INFO : topic #6 (0.020): 0.135*\"Musical\" + 0.116*\"politics\" + 0.062*\"satire\" + 0.039*\"terrorism\" + 0.037*\"nicolas cage\" + 0.031*\"dvd-r\" + 0.029*\"corruption\" + 0.026*\"police\" + 0.025*\"political\" + 0.024*\"sean connery\"\n", - "2021-08-24 02:42:27,927 : INFO : topic #11 (0.020): 0.155*\"religion\" + 0.101*\"keanu reeves\" + 0.026*\"product placement\" + 0.025*\"class issues\" + 0.019*\"social message\" + 0.017*\"slavery\" + 0.016*\"facebook rec\" + 0.016*\"courtesan\" + 0.014*\"reality tv\" + 0.013*\"cross-dressing women\"\n", - "2021-08-24 02:42:27,927 : INFO : topic #35 (0.020): 0.355*\"Comedy\" + 0.315*\"Drama\" + 0.202*\"Romance\" + 0.013*\"lesbian\" + 0.008*\"sean penn\" + 0.008*\"bibliothek\" + 0.007*\"philip seymour hoffman\" + 0.005*\"m. night shyamalan\" + 0.005*\"oscar (best foreign language film)\" + 0.003*\"great cinematography\"\n", - "2021-08-24 02:42:27,928 : INFO : topic diff=0.103233, rho=0.255317\n", - "2021-08-24 02:42:27,930 : INFO : PROGRESS: pass 10, at document #2000/10681\n", - "2021-08-24 02:42:28,180 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:28,207 : INFO : topic #21 (0.020): 0.083*\"aliens\" + 0.064*\"Sci-Fi\" + 0.050*\"space\" + 0.042*\"sci-fi\" + 0.033*\"futuristmovies.com\" + 0.032*\"will smith\" + 0.027*\"Action\" + 0.026*\"tommy lee jones\" + 0.022*\"ridley scott\" + 0.019*\"michael crichton\"\n", - "2021-08-24 02:42:28,208 : INFO : topic #0 (0.020): 0.207*\"can't remember\" + 0.101*\"based on a tv show\" + 0.093*\"directorial debut\" + 0.071*\"Comedy\" + 0.038*\"ummarti2006\" + 0.033*\"keira knightley\" + 0.028*\"australia\" + 0.023*\"australian\" + 0.019*\"immigrants\" + 0.018*\"robert downey jr\"\n", - "2021-08-24 02:42:28,209 : INFO : topic #7 (0.020): 0.113*\"romance\" + 0.067*\"Romance\" + 0.052*\"chick flick\" + 0.035*\"boring\" + 0.028*\"girlie movie\" + 0.027*\"Comedy\" + 0.024*\"comedy\" + 0.024*\"love story\" + 0.022*\"baseball\" + 0.020*\"wedding\"\n", - "2021-08-24 02:42:28,209 : INFO : topic #9 (0.020): 0.261*\"based on a book\" + 0.108*\"adapted from:book\" + 0.052*\"Drama\" + 0.042*\"stephen king\" + 0.042*\"jack nicholson\" + 0.032*\"based on book\" + 0.026*\"imdb bottom 100\" + 0.021*\"stupid\" + 0.021*\"los angeles\" + 0.021*\"literary adaptation\"\n", - "2021-08-24 02:42:28,210 : INFO : topic #44 (0.020): 0.121*\"mafia\" + 0.084*\"music\" + 0.065*\"martin scorsese\" + 0.056*\"organized crime\" + 0.035*\"rock and roll\" + 0.031*\"Musical\" + 0.022*\"francis ford coppola\" + 0.022*\"guns\" + 0.021*\"wired 50 greatest soundtracks\" + 0.019*\"confrontational\"\n", - "2021-08-24 02:42:28,211 : INFO : topic diff=0.194247, rho=0.247382\n", - "2021-08-24 02:42:28,212 : INFO : PROGRESS: pass 10, at document #4000/10681\n", - "2021-08-24 02:42:28,468 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:28,494 : INFO : topic #7 (0.020): 0.112*\"romance\" + 0.063*\"Romance\" + 0.055*\"chick flick\" + 0.037*\"boring\" + 0.031*\"girlie movie\" + 0.028*\"Comedy\" + 0.027*\"baseball\" + 0.024*\"comedy\" + 0.019*\"love story\" + 0.019*\"whimsical\"\n", - "2021-08-24 02:42:28,495 : INFO : topic #48 (0.020): 0.107*\"bruce willis\" + 0.085*\"twist ending\" + 0.077*\"netflix\" + 0.050*\"coming of age\" + 0.033*\"journalism\" + 0.027*\"Drama\" + 0.026*\"talking animals\" + 0.026*\"sexy\" + 0.023*\"to see\" + 0.018*\"relationships\"\n", - "2021-08-24 02:42:28,496 : INFO : topic #14 (0.020): 0.053*\"criterion\" + 0.051*\"atmospheric\" + 0.050*\"tense\" + 0.050*\"disturbing\" + 0.044*\"Drama\" + 0.033*\"tumey's dvds\" + 0.027*\"bleak\" + 0.027*\"stylized\" + 0.025*\"erlend's dvds\" + 0.025*\"menacing\"\n", - "2021-08-24 02:42:28,497 : INFO : topic #6 (0.020): 0.104*\"Musical\" + 0.100*\"politics\" + 0.067*\"satire\" + 0.050*\"sean connery\" + 0.047*\"nicolas cage\" + 0.033*\"dvd-r\" + 0.031*\"terrorism\" + 0.029*\"police\" + 0.022*\"political\" + 0.021*\"dvd-ram\"\n", - "2021-08-24 02:42:28,498 : INFO : topic #39 (0.020): 0.179*\"time travel\" + 0.056*\"adultery\" + 0.047*\"post apocalyptic\" + 0.036*\"motorcycle\" + 0.035*\"post-apocalyptic\" + 0.029*\"jude law\" + 0.022*\"dystopia\" + 0.020*\"hollywood\" + 0.019*\"want to own\" + 0.018*\"bechdel test:fail\"\n", - "2021-08-24 02:42:28,499 : INFO : topic diff=0.036165, rho=0.247382\n", - "2021-08-24 02:42:28,501 : INFO : PROGRESS: pass 10, at document #6000/10681\n", - "2021-08-24 02:42:28,732 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:28,763 : INFO : topic #45 (0.020): 0.181*\"less than 300 ratings\" + 0.108*\"Drama\" + 0.083*\"nudity (topless - notable)\" + 0.050*\"tim burton\" + 0.032*\"not corv lib\" + 0.021*\"library\" + 0.017*\"depressing\" + 0.017*\"blindfold\" + 0.015*\"golden raspberry (worst actor)\" + 0.014*\"san francisco\"\n", - "2021-08-24 02:42:28,766 : INFO : topic #2 (0.020): 0.271*\"Documentary\" + 0.104*\"to see\" + 0.050*\"documentary\" + 0.028*\"star trek\" + 0.028*\"sexuality\" + 0.025*\"mockumentary\" + 0.024*\"kevin smith\" + 0.023*\"dogs\" + 0.017*\"owen wilson\" + 0.017*\"movie to see\"\n", - "2021-08-24 02:42:28,768 : INFO : topic #22 (0.020): 0.272*\"betamax\" + 0.102*\"dvd-video\" + 0.069*\"clv\" + 0.030*\"aviation\" + 0.023*\"terry gilliam\" + 0.021*\"library on hold\" + 0.018*\"dvd collection\" + 0.014*\"gilliam\" + 0.014*\"steven seagal\" + 0.013*\"seen 2008\"\n", - "2021-08-24 02:42:28,769 : INFO : topic #34 (0.020): 0.095*\"ghosts\" + 0.042*\"bill murray\" + 0.041*\"television\" + 0.037*\"courtroom\" + 0.034*\"courtroom drama\" + 0.023*\"court\" + 0.023*\"roman polanski\" + 0.017*\"2.5\" + 0.017*\"secret service\" + 0.016*\"opera\"\n", - "2021-08-24 02:42:28,771 : INFO : topic #30 (0.020): 0.236*\"Adventure\" + 0.120*\"Children\" + 0.106*\"Comedy\" + 0.103*\"Fantasy\" + 0.077*\"Action\" + 0.062*\"70mm\" + 0.050*\"Animation\" + 0.042*\"Drama\" + 0.022*\"Musical\" + 0.010*\"submarine\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:28,773 : INFO : topic diff=0.069619, rho=0.247382\n", - "2021-08-24 02:42:28,775 : INFO : PROGRESS: pass 10, at document #8000/10681\n", - "2021-08-24 02:42:29,049 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:29,076 : INFO : topic #16 (0.020): 0.269*\"nudity (topless)\" + 0.184*\"nudity (topless - brief)\" + 0.067*\"nudity (rear)\" + 0.028*\"pg\" + 0.026*\"claymation\" + 0.022*\"military\" + 0.018*\"childhood\" + 0.018*\"weird\" + 0.016*\"aardman\" + 0.010*\"shark\"\n", - "2021-08-24 02:42:29,077 : INFO : topic #23 (0.020): 0.081*\"high school\" + 0.081*\"teen\" + 0.065*\"cars\" + 0.034*\"dance\" + 0.031*\"marx brothers\" + 0.029*\"eddie murphy\" + 0.024*\"(s)vcd\" + 0.023*\"car chase\" + 0.023*\"Comedy\" + 0.019*\"sandra bullock\"\n", - "2021-08-24 02:42:29,078 : INFO : topic #30 (0.020): 0.237*\"Adventure\" + 0.115*\"Children\" + 0.104*\"Comedy\" + 0.100*\"Fantasy\" + 0.077*\"Action\" + 0.070*\"70mm\" + 0.046*\"Animation\" + 0.045*\"Drama\" + 0.024*\"Musical\" + 0.009*\"submarine\"\n", - "2021-08-24 02:42:29,079 : INFO : topic #9 (0.020): 0.241*\"based on a book\" + 0.121*\"adapted from:book\" + 0.060*\"Drama\" + 0.038*\"stephen king\" + 0.037*\"jack nicholson\" + 0.033*\"based on book\" + 0.027*\"imdb bottom 100\" + 0.021*\"literary adaptation\" + 0.020*\"stupid\" + 0.019*\"los angeles\"\n", - "2021-08-24 02:42:29,080 : INFO : topic #27 (0.020): 0.319*\"Horror\" + 0.150*\"Thriller\" + 0.128*\"Mystery\" + 0.040*\"Drama\" + 0.030*\"easily confused with other movie(s) (title)\" + 0.029*\"Fantasy\" + 0.026*\"Film-Noir\" + 0.019*\"eerie\" + 0.016*\"tumey's dvds\" + 0.013*\"franchise\"\n", - "2021-08-24 02:42:29,081 : INFO : topic diff=0.054776, rho=0.247382\n", - "2021-08-24 02:42:29,082 : INFO : PROGRESS: pass 10, at document #10000/10681\n", - "2021-08-24 02:42:29,338 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:29,365 : INFO : topic #45 (0.020): 0.264*\"less than 300 ratings\" + 0.118*\"Drama\" + 0.057*\"nudity (topless - notable)\" + 0.036*\"tim burton\" + 0.031*\"not corv lib\" + 0.025*\"library\" + 0.017*\"depressing\" + 0.017*\"seen 2007\" + 0.015*\"blindfold\" + 0.013*\"michael moore\"\n", - "2021-08-24 02:42:29,366 : INFO : topic #42 (0.020): 0.102*\"japan\" + 0.092*\"martial arts\" + 0.064*\"robin williams\" + 0.036*\"akira kurosawa\" + 0.032*\"samurai\" + 0.032*\"Drama\" + 0.032*\"seen 2006\" + 0.032*\"jonossa\" + 0.025*\"orson welles\" + 0.022*\"hugh grant\"\n", - "2021-08-24 02:42:29,367 : INFO : topic #48 (0.020): 0.107*\"netflix\" + 0.084*\"twist ending\" + 0.082*\"bruce willis\" + 0.044*\"coming of age\" + 0.038*\"journalism\" + 0.025*\"talking animals\" + 0.024*\"Drama\" + 0.023*\"sexy\" + 0.021*\"avi\" + 0.019*\"to see\"\n", - "2021-08-24 02:42:29,367 : INFO : topic #47 (0.020): 0.061*\"serial killer\" + 0.055*\"psychology\" + 0.049*\"brad pitt\" + 0.042*\"edward norton\" + 0.037*\"heist\" + 0.033*\"matt damon\" + 0.032*\"hayao miyazaki\" + 0.027*\"steven spielberg\" + 0.018*\"crime\" + 0.016*\"brilliant\"\n", - "2021-08-24 02:42:29,368 : INFO : topic #35 (0.020): 0.356*\"Comedy\" + 0.305*\"Drama\" + 0.198*\"Romance\" + 0.016*\"lesbian\" + 0.010*\"bibliothek\" + 0.007*\"sean penn\" + 0.007*\"m. night shyamalan\" + 0.006*\"oscar (best foreign language film)\" + 0.006*\"philip seymour hoffman\" + 0.004*\"library vhs\"\n", - "2021-08-24 02:42:29,369 : INFO : topic diff=0.046688, rho=0.247382\n", - "2021-08-24 02:42:29,513 : INFO : -20.975 per-word bound, 2061095.9 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:29,513 : INFO : PROGRESS: pass 10, at document #10681/10681\n", - "2021-08-24 02:42:29,608 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:29,635 : INFO : topic #9 (0.020): 0.275*\"based on a book\" + 0.109*\"adapted from:book\" + 0.061*\"Drama\" + 0.034*\"imdb bottom 100\" + 0.030*\"jack nicholson\" + 0.028*\"based on book\" + 0.027*\"stephen king\" + 0.024*\"los angeles\" + 0.020*\"pregnancy\" + 0.018*\"stupid\"\n", - "2021-08-24 02:42:29,636 : INFO : topic #19 (0.020): 0.086*\"nudity (full frontal)\" + 0.043*\"drama\" + 0.038*\"Drama\" + 0.035*\"to see\" + 0.028*\"philip k. dick\" + 0.028*\"rape\" + 0.026*\"ummarti2007\" + 0.023*\"male nudity\" + 0.021*\"slow\" + 0.017*\"very good\"\n", - "2021-08-24 02:42:29,637 : INFO : topic #8 (0.020): 0.133*\"anime\" + 0.094*\"based on a true story\" + 0.082*\"true story\" + 0.062*\"tom hanks\" + 0.023*\"good\" + 0.023*\"to-rent\" + 0.023*\"archaeology\" + 0.023*\"japan\" + 0.022*\"interesting\" + 0.021*\"not funny\"\n", - "2021-08-24 02:42:29,638 : INFO : topic #3 (0.020): 0.124*\"oscar (best picture)\" + 0.049*\"oscar (best directing)\" + 0.048*\"oscar (best actor)\" + 0.043*\"oscar (best supporting actor)\" + 0.043*\"great acting\" + 0.032*\"al pacino\" + 0.023*\"Drama\" + 0.022*\"afi 100 (cheers)\" + 0.017*\"tumey's dvds\" + 0.016*\"civil war\"\n", - "2021-08-24 02:42:29,639 : INFO : topic #46 (0.020): 0.079*\"action\" + 0.065*\"fantasy\" + 0.048*\"sci-fi\" + 0.037*\"adventure\" + 0.031*\"dvd\" + 0.025*\"Adventure\" + 0.022*\"watched 2006\" + 0.022*\"robots\" + 0.019*\"seen at the cinema\" + 0.019*\"space\"\n", - "2021-08-24 02:42:29,640 : INFO : topic diff=0.099707, rho=0.247382\n", - "2021-08-24 02:42:29,642 : INFO : PROGRESS: pass 11, at document #2000/10681\n", - "2021-08-24 02:42:29,921 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:29,948 : INFO : topic #3 (0.020): 0.208*\"oscar (best picture)\" + 0.080*\"oscar (best directing)\" + 0.065*\"oscar (best actor)\" + 0.046*\"oscar (best supporting actor)\" + 0.028*\"al pacino\" + 0.023*\"afi 100 (cheers)\" + 0.023*\"afi 100\" + 0.022*\"great acting\" + 0.021*\"best picture\" + 0.019*\"Drama\"\n", - "2021-08-24 02:42:29,949 : INFO : topic #17 (0.020): 0.324*\"Sci-Fi\" + 0.069*\"Action\" + 0.067*\"Horror\" + 0.046*\"video game adaptation\" + 0.028*\"animals\" + 0.026*\"movie to see\" + 0.020*\"football\" + 0.019*\"futuristic\" + 0.015*\"milla jovovich\" + 0.013*\"luc besson\"\n", - "2021-08-24 02:42:29,949 : INFO : topic #21 (0.020): 0.082*\"aliens\" + 0.065*\"Sci-Fi\" + 0.050*\"space\" + 0.046*\"sci-fi\" + 0.033*\"futuristmovies.com\" + 0.032*\"will smith\" + 0.026*\"Action\" + 0.025*\"tommy lee jones\" + 0.021*\"ridley scott\" + 0.019*\"michael crichton\"\n", - "2021-08-24 02:42:29,950 : INFO : topic #48 (0.020): 0.102*\"bruce willis\" + 0.097*\"netflix\" + 0.080*\"twist ending\" + 0.038*\"coming of age\" + 0.032*\"journalism\" + 0.028*\"Drama\" + 0.028*\"to see\" + 0.025*\"talking animals\" + 0.021*\"relationships\" + 0.020*\"sexy\"\n", - "2021-08-24 02:42:29,951 : INFO : topic #46 (0.020): 0.089*\"action\" + 0.059*\"sci-fi\" + 0.049*\"fantasy\" + 0.033*\"adventure\" + 0.027*\"dvd\" + 0.023*\"Adventure\" + 0.023*\"space\" + 0.022*\"seen at the cinema\" + 0.021*\"harrison ford\" + 0.021*\"seen more than once\"\n", - "2021-08-24 02:42:29,952 : INFO : topic diff=0.187209, rho=0.240143\n", - "2021-08-24 02:42:29,953 : INFO : PROGRESS: pass 11, at document #4000/10681\n", - "2021-08-24 02:42:30,185 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:30,212 : INFO : topic #24 (0.020): 0.097*\"hitchcock\" + 0.077*\"murder\" + 0.074*\"alfred hitchcock\" + 0.067*\"vampire\" + 0.059*\"oppl\" + 0.050*\"vampires\" + 0.033*\"memory\" + 0.021*\"incest\" + 0.018*\"cary grant\" + 0.015*\"kirsten dunst\"\n", - "2021-08-24 02:42:30,213 : INFO : topic #39 (0.020): 0.180*\"time travel\" + 0.057*\"adultery\" + 0.047*\"post apocalyptic\" + 0.036*\"motorcycle\" + 0.035*\"post-apocalyptic\" + 0.029*\"jude law\" + 0.023*\"dystopia\" + 0.020*\"hollywood\" + 0.020*\"want to own\" + 0.018*\"bechdel test:fail\"\n", - "2021-08-24 02:42:30,213 : INFO : topic #31 (0.020): 0.122*\"zombies\" + 0.070*\"pg-13\" + 0.059*\"horror\" + 0.044*\"cult classic\" + 0.027*\"campy\" + 0.027*\"infidelity\" + 0.025*\"joaquin phoenix\" + 0.024*\"sam raimi\" + 0.022*\"zombie\" + 0.020*\"books\"\n", - "2021-08-24 02:42:30,214 : INFO : topic #23 (0.020): 0.096*\"teen\" + 0.091*\"high school\" + 0.050*\"cars\" + 0.043*\"dance\" + 0.025*\"sandra bullock\" + 0.023*\"eddie murphy\" + 0.022*\"Comedy\" + 0.022*\"car chase\" + 0.021*\"(s)vcd\" + 0.019*\"marx brothers\"\n", - "2021-08-24 02:42:30,215 : INFO : topic #0 (0.020): 0.234*\"can't remember\" + 0.100*\"directorial debut\" + 0.092*\"based on a tv show\" + 0.080*\"Comedy\" + 0.029*\"ummarti2006\" + 0.029*\"australia\" + 0.024*\"keira knightley\" + 0.020*\"robert downey jr\" + 0.019*\"australian\" + 0.016*\"immigrants\"\n", - "2021-08-24 02:42:30,217 : INFO : topic diff=0.034716, rho=0.240143\n", - "2021-08-24 02:42:30,218 : INFO : PROGRESS: pass 11, at document #6000/10681\n", - "2021-08-24 02:42:30,447 : INFO : merging changes from 2000 documents into a model of 10681 documents\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:30,473 : INFO : topic #28 (0.020): 0.087*\"oscar (best cinematography)\" + 0.073*\"Drama\" + 0.057*\"oscar (best supporting actress)\" + 0.049*\"in netflix queue\" + 0.044*\"oscar (best actress)\" + 0.029*\"remade\" + 0.019*\"marlon brando\" + 0.014*\"exceptional acting\" + 0.013*\"china\" + 0.013*\"alcoholism\"\n", - "2021-08-24 02:42:30,474 : INFO : topic #12 (0.020): 0.126*\"comic book\" + 0.101*\"superhero\" + 0.074*\"dystopia\" + 0.061*\"holocaust\" + 0.055*\"super-hero\" + 0.032*\"adapted from:comic\" + 0.024*\"kidnapping\" + 0.022*\"batman\" + 0.020*\"alter ego\" + 0.016*\"Action\"\n", - "2021-08-24 02:42:30,475 : INFO : topic #27 (0.020): 0.321*\"Horror\" + 0.154*\"Thriller\" + 0.127*\"Mystery\" + 0.039*\"Drama\" + 0.028*\"Fantasy\" + 0.027*\"easily confused with other movie(s) (title)\" + 0.026*\"Film-Noir\" + 0.017*\"eerie\" + 0.015*\"slasher\" + 0.015*\"franchise\"\n", - "2021-08-24 02:42:30,475 : INFO : topic #41 (0.020): 0.116*\"remake\" + 0.068*\"christmas\" + 0.063*\"new york city\" + 0.044*\"family\" + 0.036*\"new york\" + 0.036*\"bibliothek\" + 0.034*\"kevin spacey\" + 0.030*\"Drama\" + 0.029*\"eric's dvds\" + 0.027*\"friday night movie\"\n", - "2021-08-24 02:42:30,476 : INFO : topic #18 (0.020): 0.083*\"magic\" + 0.080*\"gay\" + 0.064*\"racism\" + 0.040*\"Drama\" + 0.040*\"pg13\" + 0.027*\"food\" + 0.027*\"social commentary\" + 0.023*\"homosexuality\" + 0.020*\"19th century\" + 0.019*\"denzel washington\"\n", - "2021-08-24 02:42:30,477 : INFO : topic diff=0.066696, rho=0.240143\n", - "2021-08-24 02:42:30,479 : INFO : PROGRESS: pass 11, at document #8000/10681\n", - "2021-08-24 02:42:30,715 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:30,743 : INFO : topic #2 (0.020): 0.288*\"Documentary\" + 0.099*\"to see\" + 0.066*\"documentary\" + 0.026*\"sexuality\" + 0.025*\"mockumentary\" + 0.022*\"star trek\" + 0.021*\"dogs\" + 0.020*\"kevin smith\" + 0.019*\"in netflix queue\" + 0.017*\"movie to see\"\n", - "2021-08-24 02:42:30,744 : INFO : topic #42 (0.020): 0.101*\"japan\" + 0.093*\"martial arts\" + 0.073*\"robin williams\" + 0.044*\"akira kurosawa\" + 0.034*\"samurai\" + 0.031*\"Drama\" + 0.027*\"orson welles\" + 0.024*\"kurosawa\" + 0.021*\"christopher walken\" + 0.020*\"hugh grant\"\n", - "2021-08-24 02:42:30,745 : INFO : topic #39 (0.020): 0.181*\"time travel\" + 0.053*\"adultery\" + 0.042*\"motorcycle\" + 0.038*\"post apocalyptic\" + 0.035*\"post-apocalyptic\" + 0.030*\"jude law\" + 0.023*\"dystopia\" + 0.019*\"want to own\" + 0.019*\"ian mckellen\" + 0.018*\"old\"\n", - "2021-08-24 02:42:30,746 : INFO : topic #28 (0.020): 0.081*\"oscar (best cinematography)\" + 0.079*\"Drama\" + 0.055*\"in netflix queue\" + 0.054*\"oscar (best supporting actress)\" + 0.046*\"oscar (best actress)\" + 0.028*\"remade\" + 0.016*\"marlon brando\" + 0.014*\"father daughter relationship\" + 0.014*\"exceptional acting\" + 0.013*\"blindness\"\n", - "2021-08-24 02:42:30,747 : INFO : topic #21 (0.020): 0.077*\"Sci-Fi\" + 0.075*\"aliens\" + 0.040*\"sci-fi\" + 0.039*\"futuristmovies.com\" + 0.038*\"space\" + 0.027*\"will smith\" + 0.025*\"Action\" + 0.023*\"tommy lee jones\" + 0.021*\"ridley scott\" + 0.021*\"michael crichton\"\n", - "2021-08-24 02:42:30,748 : INFO : topic diff=0.053036, rho=0.240143\n", - "2021-08-24 02:42:30,750 : INFO : PROGRESS: pass 11, at document #10000/10681\n", - "2021-08-24 02:42:31,017 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:31,044 : INFO : topic #44 (0.020): 0.080*\"mafia\" + 0.076*\"music\" + 0.059*\"martin scorsese\" + 0.048*\"rock and roll\" + 0.037*\"Musical\" + 0.036*\"organized crime\" + 0.030*\"wired 50 greatest soundtracks\" + 0.027*\"guns\" + 0.024*\"confrontational\" + 0.022*\"dysfunctional family\"\n", - "2021-08-24 02:42:31,045 : INFO : topic #24 (0.020): 0.072*\"murder\" + 0.069*\"vampire\" + 0.065*\"vampires\" + 0.055*\"memory\" + 0.053*\"hitchcock\" + 0.051*\"oppl\" + 0.040*\"alfred hitchcock\" + 0.021*\"cary grant\" + 0.021*\"kirsten dunst\" + 0.021*\"incest\"\n", - "2021-08-24 02:42:31,046 : INFO : topic #29 (0.020): 0.095*\"nudity (full frontal - notable)\" + 0.056*\"Drama\" + 0.051*\"shakespeare\" + 0.045*\"based on a play\" + 0.037*\"christianity\" + 0.034*\"adapted from:play\" + 0.029*\"religion\" + 0.023*\"biblical\" + 0.021*\"fascism\" + 0.020*\"disability\"\n", - "2021-08-24 02:42:31,047 : INFO : topic #48 (0.020): 0.106*\"netflix\" + 0.084*\"twist ending\" + 0.082*\"bruce willis\" + 0.044*\"coming of age\" + 0.038*\"journalism\" + 0.026*\"talking animals\" + 0.024*\"Drama\" + 0.023*\"sexy\" + 0.021*\"avi\" + 0.020*\"to see\"\n", - "2021-08-24 02:42:31,048 : INFO : topic #35 (0.020): 0.355*\"Comedy\" + 0.305*\"Drama\" + 0.198*\"Romance\" + 0.016*\"lesbian\" + 0.010*\"bibliothek\" + 0.007*\"sean penn\" + 0.007*\"m. night shyamalan\" + 0.006*\"oscar (best foreign language film)\" + 0.006*\"philip seymour hoffman\" + 0.004*\"library vhs\"\n", - "2021-08-24 02:42:31,049 : INFO : topic diff=0.045196, rho=0.240143\n", - "2021-08-24 02:42:31,193 : INFO : -20.972 per-word bound, 2056460.1 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:31,194 : INFO : PROGRESS: pass 11, at document #10681/10681\n", - "2021-08-24 02:42:31,296 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:31,323 : INFO : topic #14 (0.020): 0.059*\"criterion\" + 0.053*\"Drama\" + 0.052*\"disturbing\" + 0.049*\"tense\" + 0.043*\"atmospheric\" + 0.028*\"tumey's dvds\" + 0.028*\"stylized\" + 0.027*\"bleak\" + 0.023*\"erlend's dvds\" + 0.022*\"menacing\"\n", - "2021-08-24 02:42:31,324 : INFO : topic #44 (0.020): 0.076*\"mafia\" + 0.076*\"music\" + 0.053*\"organized crime\" + 0.048*\"martin scorsese\" + 0.046*\"rock and roll\" + 0.043*\"Musical\" + 0.025*\"wired 50 greatest soundtracks\" + 0.022*\"guns\" + 0.019*\"confrontational\" + 0.018*\"dysfunctional family\"\n", - "2021-08-24 02:42:31,325 : INFO : topic #13 (0.020): 0.053*\"fairy tale\" + 0.052*\"road trip\" + 0.039*\"assassination\" + 0.035*\"cold war\" + 0.035*\"historical\" + 0.034*\"sequel\" + 0.033*\"jane austen\" + 0.024*\"kids\" + 0.022*\"notable nudity\" + 0.021*\"swashbuckler\"\n", - "2021-08-24 02:42:31,326 : INFO : topic #46 (0.020): 0.079*\"action\" + 0.065*\"fantasy\" + 0.045*\"sci-fi\" + 0.037*\"adventure\" + 0.032*\"dvd\" + 0.026*\"Adventure\" + 0.022*\"watched 2006\" + 0.022*\"robots\" + 0.019*\"seen at the cinema\" + 0.018*\"space\"\n", - "2021-08-24 02:42:31,327 : INFO : topic #1 (0.020): 0.056*\"overrated\" + 0.039*\"violence\" + 0.033*\"revenge\" + 0.033*\"quentin tarantino\" + 0.032*\"violent\" + 0.032*\"imdb top 250\" + 0.028*\"crime\" + 0.025*\"owned\" + 0.020*\"drama\" + 0.019*\"tarantino\"\n", - "2021-08-24 02:42:31,328 : INFO : topic diff=0.096439, rho=0.240143\n", - "2021-08-24 02:42:31,329 : INFO : PROGRESS: pass 12, at document #2000/10681\n", - "2021-08-24 02:42:31,602 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:31,628 : INFO : topic #18 (0.020): 0.082*\"gay\" + 0.074*\"magic\" + 0.059*\"pg13\" + 0.053*\"racism\" + 0.039*\"Drama\" + 0.028*\"food\" + 0.024*\"social commentary\" + 0.021*\"homosexuality\" + 0.020*\"denzel washington\" + 0.020*\"aids\"\n", - "2021-08-24 02:42:31,629 : INFO : topic #6 (0.020): 0.112*\"Musical\" + 0.111*\"politics\" + 0.069*\"satire\" + 0.046*\"nicolas cage\" + 0.035*\"sean connery\" + 0.034*\"terrorism\" + 0.033*\"dvd-r\" + 0.025*\"political\" + 0.025*\"good dialogue\" + 0.024*\"police\"\n", - "2021-08-24 02:42:31,630 : INFO : topic #39 (0.020): 0.194*\"time travel\" + 0.050*\"adultery\" + 0.040*\"post apocalyptic\" + 0.034*\"motorcycle\" + 0.032*\"post-apocalyptic\" + 0.028*\"jude law\" + 0.022*\"dystopia\" + 0.021*\"bechdel test:fail\" + 0.020*\"want to own\" + 0.020*\"hollywood\"\n", - "2021-08-24 02:42:31,631 : INFO : topic #49 (0.020): 0.081*\"national film registry\" + 0.058*\"imdb top 250\" + 0.042*\"black and white\" + 0.033*\"afi 100\" + 0.032*\"afi 100 (thrills)\" + 0.030*\"tumey's dvds\" + 0.025*\"usa film registry\" + 0.020*\"erlend's dvds\" + 0.019*\"paris\" + 0.019*\"afi 100 (movie quotes)\"\n", - "2021-08-24 02:42:31,632 : INFO : topic #12 (0.020): 0.138*\"comic book\" + 0.108*\"superhero\" + 0.073*\"dystopia\" + 0.054*\"holocaust\" + 0.052*\"super-hero\" + 0.032*\"batman\" + 0.032*\"adapted from:comic\" + 0.024*\"kidnapping\" + 0.016*\"Action\" + 0.016*\"alter ego\"\n", - "2021-08-24 02:42:31,633 : INFO : topic diff=0.181122, rho=0.233504\n", - "2021-08-24 02:42:31,635 : INFO : PROGRESS: pass 12, at document #4000/10681\n", - "2021-08-24 02:42:31,875 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:31,902 : INFO : topic #45 (0.020): 0.188*\"less than 300 ratings\" + 0.107*\"Drama\" + 0.081*\"nudity (topless - notable)\" + 0.061*\"tim burton\" + 0.030*\"not corv lib\" + 0.023*\"library\" + 0.019*\"depressing\" + 0.015*\"golden raspberry (worst actor)\" + 0.015*\"blindfold\" + 0.013*\"san francisco\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:31,903 : INFO : topic #15 (0.020): 0.166*\"disney\" + 0.091*\"animation\" + 0.076*\"pixar\" + 0.047*\"Animation\" + 0.043*\"children\" + 0.039*\"Children\" + 0.034*\"disney animated feature\" + 0.025*\"angelina jolie\" + 0.024*\"pirates\" + 0.020*\"cartoon\"\n", - "2021-08-24 02:42:31,904 : INFO : topic #33 (0.020): 0.112*\"comedy\" + 0.108*\"Comedy\" + 0.056*\"funny\" + 0.036*\"parody\" + 0.036*\"dark comedy\" + 0.033*\"quirky\" + 0.032*\"seen more than once\" + 0.029*\"coen brothers\" + 0.028*\"hilarious\" + 0.022*\"black comedy\"\n", - "2021-08-24 02:42:31,904 : INFO : topic #27 (0.020): 0.309*\"Horror\" + 0.157*\"Thriller\" + 0.127*\"Mystery\" + 0.040*\"Drama\" + 0.029*\"Film-Noir\" + 0.029*\"easily confused with other movie(s) (title)\" + 0.029*\"Fantasy\" + 0.016*\"eerie\" + 0.015*\"franchise\" + 0.015*\"tumey's dvds\"\n", - "2021-08-24 02:42:31,906 : INFO : topic #44 (0.020): 0.109*\"mafia\" + 0.087*\"music\" + 0.053*\"martin scorsese\" + 0.050*\"organized crime\" + 0.042*\"rock and roll\" + 0.031*\"Musical\" + 0.030*\"wired 50 greatest soundtracks\" + 0.023*\"guns\" + 0.020*\"mob\" + 0.020*\"confrontational\"\n", - "2021-08-24 02:42:31,907 : INFO : topic diff=0.033378, rho=0.233504\n", - "2021-08-24 02:42:31,908 : INFO : PROGRESS: pass 12, at document #6000/10681\n", - "2021-08-24 02:42:32,142 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:32,169 : INFO : topic #7 (0.020): 0.111*\"romance\" + 0.059*\"Romance\" + 0.052*\"chick flick\" + 0.039*\"boring\" + 0.032*\"girlie movie\" + 0.029*\"baseball\" + 0.027*\"Comedy\" + 0.023*\"whimsical\" + 0.020*\"comedy\" + 0.018*\"wedding\"\n", - "2021-08-24 02:42:32,169 : INFO : topic #36 (0.020): 0.085*\"cult film\" + 0.047*\"peter jackson\" + 0.044*\"russell crowe\" + 0.038*\"downbeat\" + 0.031*\"adam sandler\" + 0.029*\"1980s\" + 0.022*\"80s\" + 0.021*\"new zealand\" + 0.018*\"not available from netflix\" + 0.013*\"must see!\"\n", - "2021-08-24 02:42:32,170 : INFO : topic #4 (0.020): 0.069*\"sports\" + 0.061*\"Drama\" + 0.048*\"boxing\" + 0.043*\"british\" + 0.041*\"underrated\" + 0.039*\"sven's to see list\" + 0.039*\"hw drama\" + 0.038*\"london\" + 0.026*\"sylvester stallone\" + 0.024*\"college\"\n", - "2021-08-24 02:42:32,171 : INFO : topic #22 (0.020): 0.268*\"betamax\" + 0.102*\"dvd-video\" + 0.069*\"clv\" + 0.030*\"aviation\" + 0.023*\"terry gilliam\" + 0.022*\"library on hold\" + 0.018*\"dvd collection\" + 0.015*\"70mm\" + 0.014*\"gilliam\" + 0.014*\"steven seagal\"\n", - "2021-08-24 02:42:32,172 : INFO : topic #27 (0.020): 0.321*\"Horror\" + 0.155*\"Thriller\" + 0.126*\"Mystery\" + 0.039*\"Drama\" + 0.028*\"Fantasy\" + 0.027*\"easily confused with other movie(s) (title)\" + 0.027*\"Film-Noir\" + 0.017*\"eerie\" + 0.015*\"slasher\" + 0.015*\"franchise\"\n", - "2021-08-24 02:42:32,173 : INFO : topic diff=0.064371, rho=0.233504\n", - "2021-08-24 02:42:32,175 : INFO : PROGRESS: pass 12, at document #8000/10681\n", - "2021-08-24 02:42:32,398 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:32,425 : INFO : topic #5 (0.020): 0.269*\"classic\" + 0.060*\"musical\" + 0.046*\"afi 100 (laughs)\" + 0.035*\"Musical\" + 0.031*\"national film registry\" + 0.018*\"afi 100\" + 0.017*\"adapted from b'way\" + 0.016*\"john travolta\" + 0.015*\"70mm\" + 0.015*\"breakthroughs\"\n", - "2021-08-24 02:42:32,426 : INFO : topic #42 (0.020): 0.100*\"japan\" + 0.093*\"martial arts\" + 0.073*\"robin williams\" + 0.044*\"akira kurosawa\" + 0.034*\"samurai\" + 0.031*\"Drama\" + 0.027*\"orson welles\" + 0.024*\"kurosawa\" + 0.021*\"christopher walken\" + 0.021*\"hugh grant\"\n", - "2021-08-24 02:42:32,427 : INFO : topic #45 (0.020): 0.234*\"less than 300 ratings\" + 0.117*\"Drama\" + 0.074*\"nudity (topless - notable)\" + 0.041*\"tim burton\" + 0.028*\"not corv lib\" + 0.025*\"library\" + 0.016*\"michael moore\" + 0.016*\"blindfold\" + 0.015*\"depressing\" + 0.012*\"golden raspberry (worst actor)\"\n", - "2021-08-24 02:42:32,428 : INFO : topic #37 (0.020): 0.189*\"War\" + 0.110*\"world war ii\" + 0.109*\"Drama\" + 0.055*\"war\" + 0.048*\"history\" + 0.037*\"Action\" + 0.036*\"jim carrey\" + 0.017*\"nazis\" + 0.015*\"mental illness\" + 0.015*\"70mm\"\n", - "2021-08-24 02:42:32,429 : INFO : topic #8 (0.020): 0.145*\"anime\" + 0.091*\"tom hanks\" + 0.077*\"true story\" + 0.055*\"based on a true story\" + 0.026*\"drama\" + 0.026*\"good\" + 0.026*\"japan\" + 0.023*\"interesting\" + 0.022*\"not funny\" + 0.017*\"archaeology\"\n", - "2021-08-24 02:42:32,430 : INFO : topic diff=0.051567, rho=0.233504\n", - "2021-08-24 02:42:32,431 : INFO : PROGRESS: pass 12, at document #10000/10681\n", - "2021-08-24 02:42:32,673 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:32,701 : INFO : topic #14 (0.020): 0.060*\"criterion\" + 0.055*\"disturbing\" + 0.052*\"Drama\" + 0.051*\"tense\" + 0.047*\"atmospheric\" + 0.031*\"stylized\" + 0.031*\"tumey's dvds\" + 0.030*\"bleak\" + 0.024*\"erlend's dvds\" + 0.024*\"menacing\"\n", - "2021-08-24 02:42:32,702 : INFO : topic #7 (0.020): 0.107*\"romance\" + 0.060*\"Romance\" + 0.044*\"chick flick\" + 0.041*\"boring\" + 0.026*\"girlie movie\" + 0.025*\"Comedy\" + 0.024*\"baseball\" + 0.024*\"love story\" + 0.024*\"whimsical\" + 0.019*\"wedding\"\n", - "2021-08-24 02:42:32,703 : INFO : topic #6 (0.020): 0.134*\"Musical\" + 0.104*\"politics\" + 0.062*\"satire\" + 0.041*\"nicolas cage\" + 0.040*\"terrorism\" + 0.039*\"dvd-r\" + 0.031*\"sean connery\" + 0.029*\"political\" + 0.028*\"netwatch\" + 0.025*\"police\"\n", - "2021-08-24 02:42:32,704 : INFO : topic #22 (0.020): 0.230*\"betamax\" + 0.100*\"dvd-video\" + 0.057*\"clv\" + 0.034*\"aviation\" + 0.023*\"library on hold\" + 0.020*\"terry gilliam\" + 0.019*\"seen 2008\" + 0.016*\"family drama\" + 0.015*\"surveillance\" + 0.015*\"gilliam\"\n", - "2021-08-24 02:42:32,705 : INFO : topic #44 (0.020): 0.081*\"mafia\" + 0.076*\"music\" + 0.059*\"martin scorsese\" + 0.048*\"rock and roll\" + 0.038*\"Musical\" + 0.036*\"organized crime\" + 0.030*\"wired 50 greatest soundtracks\" + 0.027*\"guns\" + 0.024*\"confrontational\" + 0.022*\"dysfunctional family\"\n", - "2021-08-24 02:42:32,706 : INFO : topic diff=0.043541, rho=0.233504\n", - "2021-08-24 02:42:32,850 : INFO : -20.970 per-word bound, 2054162.9 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:32,851 : INFO : PROGRESS: pass 12, at document #10681/10681\n", - "2021-08-24 02:42:32,944 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:32,970 : INFO : topic #29 (0.020): 0.097*\"nudity (full frontal - notable)\" + 0.056*\"Drama\" + 0.051*\"christianity\" + 0.042*\"based on a play\" + 0.041*\"shakespeare\" + 0.038*\"religion\" + 0.032*\"adapted from:play\" + 0.027*\"disability\" + 0.023*\"to see\" + 0.023*\"cannibalism\"\n", - "2021-08-24 02:42:32,971 : INFO : topic #23 (0.020): 0.084*\"high school\" + 0.063*\"cars\" + 0.062*\"teen\" + 0.037*\"marx brothers\" + 0.033*\"dance\" + 0.025*\"Comedy\" + 0.021*\"kate winslet\" + 0.020*\"eddie murphy\" + 0.019*\"no\" + 0.018*\"(s)vcd\"\n", - "2021-08-24 02:42:32,971 : INFO : topic #49 (0.020): 0.089*\"national film registry\" + 0.047*\"imdb top 250\" + 0.041*\"black and white\" + 0.030*\"tumey's dvds\" + 0.028*\"paris\" + 0.026*\"france\" + 0.022*\"natalie portman\" + 0.020*\"afi 100 (thrills)\" + 0.019*\"erlend's dvds\" + 0.018*\"afi 100\"\n", - "2021-08-24 02:42:32,972 : INFO : topic #17 (0.020): 0.365*\"Sci-Fi\" + 0.075*\"Horror\" + 0.073*\"Action\" + 0.041*\"video game adaptation\" + 0.032*\"movie to see\" + 0.024*\"football\" + 0.021*\"animals\" + 0.016*\"futuristic\" + 0.015*\"milla jovovich\" + 0.015*\"g\"\n", - "2021-08-24 02:42:32,973 : INFO : topic #18 (0.020): 0.093*\"magic\" + 0.084*\"pg13\" + 0.072*\"gay\" + 0.050*\"racism\" + 0.039*\"Drama\" + 0.026*\"food\" + 0.025*\"social commentary\" + 0.022*\"homosexuality\" + 0.021*\"19th century\" + 0.021*\"denzel washington\"\n", - "2021-08-24 02:42:32,974 : INFO : topic diff=0.093856, rho=0.233504\n", - "2021-08-24 02:42:32,976 : INFO : PROGRESS: pass 13, at document #2000/10681\n", - "2021-08-24 02:42:33,242 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:33,269 : INFO : topic #43 (0.020): 0.069*\"surreal\" + 0.051*\"stanley kubrick\" + 0.038*\"satirical\" + 0.035*\"cynical\" + 0.033*\"narrated\" + 0.032*\"biting\" + 0.031*\"dreamlike\" + 0.030*\"irreverent\" + 0.027*\"quirky\" + 0.023*\"hallucinatory\"\n", - "2021-08-24 02:42:33,270 : INFO : topic #0 (0.020): 0.206*\"can't remember\" + 0.100*\"based on a tv show\" + 0.093*\"directorial debut\" + 0.071*\"Comedy\" + 0.038*\"ummarti2006\" + 0.033*\"keira knightley\" + 0.028*\"australia\" + 0.024*\"australian\" + 0.019*\"immigrants\" + 0.018*\"robert downey jr\"\n", - "2021-08-24 02:42:33,270 : INFO : topic #24 (0.020): 0.084*\"hitchcock\" + 0.079*\"alfred hitchcock\" + 0.073*\"oppl\" + 0.067*\"murder\" + 0.062*\"vampire\" + 0.047*\"vampires\" + 0.036*\"memory\" + 0.023*\"incest\" + 0.021*\"cary grant\" + 0.017*\"kirsten dunst\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:33,271 : INFO : topic #42 (0.020): 0.084*\"robin williams\" + 0.077*\"japan\" + 0.067*\"martial arts\" + 0.037*\"samurai\" + 0.035*\"akira kurosawa\" + 0.033*\"orson welles\" + 0.032*\"divorce\" + 0.030*\"Drama\" + 0.025*\"kurosawa\" + 0.022*\"jonossa\"\n", - "2021-08-24 02:42:33,272 : INFO : topic #30 (0.020): 0.236*\"Adventure\" + 0.129*\"Children\" + 0.112*\"Comedy\" + 0.106*\"Fantasy\" + 0.078*\"Action\" + 0.049*\"Animation\" + 0.046*\"Drama\" + 0.044*\"70mm\" + 0.020*\"Musical\" + 0.012*\"submarine\"\n", - "2021-08-24 02:42:33,273 : INFO : topic diff=0.175800, rho=0.227387\n", - "2021-08-24 02:42:33,275 : INFO : PROGRESS: pass 13, at document #4000/10681\n", - "2021-08-24 02:42:33,527 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:33,555 : INFO : topic #4 (0.020): 0.072*\"sports\" + 0.062*\"Drama\" + 0.055*\"boxing\" + 0.045*\"underrated\" + 0.045*\"british\" + 0.039*\"london\" + 0.034*\"sven's to see list\" + 0.033*\"hw drama\" + 0.030*\"sylvester stallone\" + 0.028*\"inspirational\"\n", - "2021-08-24 02:42:33,555 : INFO : topic #49 (0.020): 0.083*\"national film registry\" + 0.061*\"imdb top 250\" + 0.044*\"black and white\" + 0.034*\"tumey's dvds\" + 0.033*\"afi 100 (thrills)\" + 0.032*\"afi 100\" + 0.024*\"usa film registry\" + 0.024*\"erlend's dvds\" + 0.022*\"afi 100 (movie quotes)\" + 0.019*\"emerson must see\"\n", - "2021-08-24 02:42:33,556 : INFO : topic #43 (0.020): 0.079*\"surreal\" + 0.045*\"stanley kubrick\" + 0.041*\"satirical\" + 0.037*\"cynical\" + 0.037*\"narrated\" + 0.031*\"biting\" + 0.030*\"dreamlike\" + 0.027*\"irreverent\" + 0.027*\"quirky\" + 0.026*\"surrealism\"\n", - "2021-08-24 02:42:33,557 : INFO : topic #27 (0.020): 0.309*\"Horror\" + 0.158*\"Thriller\" + 0.127*\"Mystery\" + 0.040*\"Drama\" + 0.029*\"Film-Noir\" + 0.029*\"easily confused with other movie(s) (title)\" + 0.029*\"Fantasy\" + 0.015*\"franchise\" + 0.015*\"tumey's dvds\" + 0.015*\"eerie\"\n", - "2021-08-24 02:42:33,558 : INFO : topic #19 (0.020): 0.064*\"nudity (full frontal)\" + 0.063*\"drama\" + 0.036*\"Drama\" + 0.028*\"vietnam\" + 0.028*\"vietnam war\" + 0.028*\"philip k. dick\" + 0.027*\"rape\" + 0.022*\"to see\" + 0.021*\"very good\" + 0.016*\"slow\"\n", - "2021-08-24 02:42:33,559 : INFO : topic diff=0.032253, rho=0.227387\n", - "2021-08-24 02:42:33,561 : INFO : PROGRESS: pass 13, at document #6000/10681\n", - "2021-08-24 02:42:33,801 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:33,828 : INFO : topic #1 (0.020): 0.049*\"overrated\" + 0.042*\"violence\" + 0.035*\"crime\" + 0.031*\"quentin tarantino\" + 0.026*\"nonlinear\" + 0.026*\"imdb top 250\" + 0.025*\"owned\" + 0.024*\"drama\" + 0.023*\"violent\" + 0.023*\"revenge\"\n", - "2021-08-24 02:42:33,829 : INFO : topic #16 (0.020): 0.286*\"nudity (topless)\" + 0.193*\"nudity (topless - brief)\" + 0.064*\"nudity (rear)\" + 0.029*\"claymation\" + 0.027*\"pg\" + 0.021*\"military\" + 0.019*\"aardman\" + 0.017*\"childhood\" + 0.016*\"weird\" + 0.010*\"shark\"\n", - "2021-08-24 02:42:33,830 : INFO : topic #13 (0.020): 0.060*\"fairy tale\" + 0.037*\"jane austen\" + 0.037*\"sequel\" + 0.035*\"road trip\" + 0.027*\"gerard depardieu\" + 0.027*\"historical\" + 0.027*\"cold war\" + 0.026*\"assassination\" + 0.025*\"kids\" + 0.022*\"notable nudity\"\n", - "2021-08-24 02:42:33,831 : INFO : topic #21 (0.020): 0.081*\"aliens\" + 0.075*\"Sci-Fi\" + 0.049*\"sci-fi\" + 0.043*\"space\" + 0.039*\"futuristmovies.com\" + 0.027*\"will smith\" + 0.026*\"Action\" + 0.024*\"ridley scott\" + 0.022*\"tommy lee jones\" + 0.019*\"70mm\"\n", - "2021-08-24 02:42:33,832 : INFO : topic #5 (0.020): 0.278*\"classic\" + 0.065*\"musical\" + 0.046*\"afi 100 (laughs)\" + 0.032*\"Musical\" + 0.029*\"national film registry\" + 0.021*\"afi 100\" + 0.018*\"john travolta\" + 0.016*\"adapted from b'way\" + 0.015*\"breakthroughs\" + 0.014*\"70mm\"\n", - "2021-08-24 02:42:33,833 : INFO : topic diff=0.062374, rho=0.227387\n", - "2021-08-24 02:42:33,835 : INFO : PROGRESS: pass 13, at document #8000/10681\n", - "2021-08-24 02:42:34,085 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:34,113 : INFO : topic #23 (0.020): 0.081*\"high school\" + 0.080*\"teen\" + 0.063*\"cars\" + 0.034*\"dance\" + 0.030*\"marx brothers\" + 0.028*\"eddie murphy\" + 0.024*\"(s)vcd\" + 0.023*\"Comedy\" + 0.023*\"car chase\" + 0.019*\"sandra bullock\"\n", - "2021-08-24 02:42:34,113 : INFO : topic #36 (0.020): 0.078*\"cult film\" + 0.050*\"peter jackson\" + 0.043*\"downbeat\" + 0.041*\"russell crowe\" + 0.031*\"adam sandler\" + 0.030*\"not available from netflix\" + 0.025*\"1980s\" + 0.024*\"new zealand\" + 0.021*\"80s\" + 0.016*\"drew barrymore\"\n", - "2021-08-24 02:42:34,114 : INFO : topic #42 (0.020): 0.099*\"japan\" + 0.093*\"martial arts\" + 0.073*\"robin williams\" + 0.043*\"akira kurosawa\" + 0.034*\"samurai\" + 0.031*\"Drama\" + 0.027*\"orson welles\" + 0.024*\"kurosawa\" + 0.021*\"hugh grant\" + 0.021*\"christopher walken\"\n", - "2021-08-24 02:42:34,115 : INFO : topic #11 (0.020): 0.143*\"religion\" + 0.111*\"keanu reeves\" + 0.027*\"island\" + 0.020*\"courtesan\" + 0.017*\"slavery\" + 0.016*\"class issues\" + 0.016*\"reality tv\" + 0.015*\"facebook rec\" + 0.013*\"slash\" + 0.012*\"social message\"\n", - "2021-08-24 02:42:34,116 : INFO : topic #33 (0.020): 0.118*\"Comedy\" + 0.107*\"comedy\" + 0.058*\"funny\" + 0.036*\"parody\" + 0.035*\"seen more than once\" + 0.035*\"quirky\" + 0.028*\"dark comedy\" + 0.027*\"hilarious\" + 0.023*\"coen brothers\" + 0.021*\"black comedy\"\n", - "2021-08-24 02:42:34,117 : INFO : topic diff=0.050171, rho=0.227387\n", - "2021-08-24 02:42:34,118 : INFO : PROGRESS: pass 13, at document #10000/10681\n", - "2021-08-24 02:42:34,353 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:34,381 : INFO : topic #18 (0.020): 0.102*\"magic\" + 0.077*\"gay\" + 0.060*\"pg13\" + 0.048*\"racism\" + 0.038*\"Drama\" + 0.027*\"homosexuality\" + 0.025*\"social commentary\" + 0.024*\"food\" + 0.023*\"19th century\" + 0.017*\"denzel washington\"\n", - "2021-08-24 02:42:34,382 : INFO : topic #20 (0.020): 0.095*\"biography\" + 0.067*\"Drama\" + 0.055*\"biopic\" + 0.046*\"corvallis library\" + 0.043*\"death\" + 0.037*\"suicide\" + 0.034*\"ensemble cast\" + 0.027*\"ingmar bergman\" + 0.027*\"julia roberts\" + 0.025*\"medieval\"\n", - "2021-08-24 02:42:34,383 : INFO : topic #26 (0.020): 0.046*\"Drama\" + 0.033*\"james bond\" + 0.021*\"reflective\" + 0.021*\"poignant\" + 0.020*\"atmospheric\" + 0.020*\"007\" + 0.019*\"bittersweet\" + 0.019*\"lyrical\" + 0.018*\"deliberate\" + 0.018*\"bond\"\n", - "2021-08-24 02:42:34,383 : INFO : topic #19 (0.020): 0.063*\"nudity (full frontal)\" + 0.053*\"drama\" + 0.035*\"Drama\" + 0.034*\"philip k. dick\" + 0.026*\"ummarti2007\" + 0.024*\"slow\" + 0.023*\"rape\" + 0.022*\"male nudity\" + 0.021*\"very good\" + 0.021*\"vietnam war\"\n", - "2021-08-24 02:42:34,384 : INFO : topic #10 (0.020): 0.247*\"Thriller\" + 0.238*\"Crime\" + 0.167*\"Action\" + 0.162*\"Drama\" + 0.031*\"Mystery\" + 0.017*\"murder\" + 0.009*\"crime\" + 0.008*\"virtual reality\" + 0.005*\"greg kinnear\" + 0.005*\"thriller\"\n", - "2021-08-24 02:42:34,386 : INFO : topic diff=0.042069, rho=0.227387\n", - "2021-08-24 02:42:34,521 : INFO : -20.969 per-word bound, 2051875.8 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:34,522 : INFO : PROGRESS: pass 13, at document #10681/10681\n", - "2021-08-24 02:42:34,615 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:34,642 : INFO : topic #9 (0.020): 0.273*\"based on a book\" + 0.111*\"adapted from:book\" + 0.061*\"Drama\" + 0.034*\"imdb bottom 100\" + 0.030*\"jack nicholson\" + 0.030*\"based on book\" + 0.028*\"stephen king\" + 0.024*\"los angeles\" + 0.019*\"pregnancy\" + 0.018*\"stupid\"\n", - "2021-08-24 02:42:34,642 : INFO : topic #21 (0.020): 0.076*\"Sci-Fi\" + 0.065*\"aliens\" + 0.041*\"sci-fi\" + 0.040*\"will smith\" + 0.037*\"space\" + 0.030*\"tommy lee jones\" + 0.028*\"futuristmovies.com\" + 0.028*\"Action\" + 0.025*\"ridley scott\" + 0.019*\"monster\"\n", - "2021-08-24 02:42:34,643 : INFO : topic #46 (0.020): 0.080*\"action\" + 0.064*\"fantasy\" + 0.042*\"sci-fi\" + 0.037*\"adventure\" + 0.032*\"dvd\" + 0.026*\"Adventure\" + 0.022*\"watched 2006\" + 0.021*\"robots\" + 0.019*\"seen at the cinema\" + 0.018*\"space\"\n", - "2021-08-24 02:42:34,644 : INFO : topic #31 (0.020): 0.161*\"zombies\" + 0.098*\"pg-13\" + 0.054*\"horror\" + 0.028*\"zombie\" + 0.026*\"infidelity\" + 0.024*\"movie to see\" + 0.023*\"betrayal\" + 0.023*\"books\" + 0.022*\"joaquin phoenix\" + 0.021*\"cult classic\"\n", - "2021-08-24 02:42:34,645 : INFO : topic #48 (0.020): 0.131*\"netflix\" + 0.078*\"twist ending\" + 0.067*\"bruce willis\" + 0.045*\"coming of age\" + 0.035*\"journalism\" + 0.035*\"to see\" + 0.032*\"Drama\" + 0.026*\"talking animals\" + 0.024*\"relationships\" + 0.020*\"father-son relationship\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:34,646 : INFO : topic diff=0.091201, rho=0.227387\n", - "2021-08-24 02:42:34,647 : INFO : PROGRESS: pass 14, at document #2000/10681\n", - "2021-08-24 02:42:34,905 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:34,932 : INFO : topic #22 (0.020): 0.172*\"betamax\" + 0.091*\"dvd-video\" + 0.082*\"clv\" + 0.038*\"library on hold\" + 0.034*\"aviation\" + 0.026*\"terry gilliam\" + 0.019*\"dvd collection\" + 0.017*\"steven seagal\" + 0.016*\"gilliam\" + 0.016*\"family drama\"\n", - "2021-08-24 02:42:34,933 : INFO : topic #40 (0.020): 0.270*\"r\" + 0.138*\"clearplay\" + 0.064*\"movie to see\" + 0.056*\"prison\" + 0.044*\"Drama\" + 0.035*\"morgan freeman\" + 0.028*\"friendship\" + 0.021*\"conspiracy\" + 0.015*\"1970s\" + 0.012*\"mel brooks\"\n", - "2021-08-24 02:42:34,934 : INFO : topic #9 (0.020): 0.264*\"based on a book\" + 0.112*\"adapted from:book\" + 0.053*\"Drama\" + 0.042*\"stephen king\" + 0.042*\"jack nicholson\" + 0.035*\"based on book\" + 0.027*\"imdb bottom 100\" + 0.022*\"literary adaptation\" + 0.022*\"stupid\" + 0.021*\"los angeles\"\n", - "2021-08-24 02:42:34,934 : INFO : topic #14 (0.020): 0.053*\"criterion\" + 0.052*\"tense\" + 0.052*\"disturbing\" + 0.048*\"atmospheric\" + 0.046*\"Drama\" + 0.030*\"stylized\" + 0.030*\"tumey's dvds\" + 0.029*\"bleak\" + 0.025*\"visceral\" + 0.024*\"menacing\"\n", - "2021-08-24 02:42:34,935 : INFO : topic #4 (0.020): 0.059*\"sports\" + 0.058*\"Drama\" + 0.048*\"london\" + 0.046*\"boxing\" + 0.045*\"underrated\" + 0.044*\"british\" + 0.037*\"sven's to see list\" + 0.034*\"hw drama\" + 0.032*\"inspirational\" + 0.030*\"notable soundtrack\"\n", - "2021-08-24 02:42:34,936 : INFO : topic diff=0.170525, rho=0.221727\n", - "2021-08-24 02:42:34,937 : INFO : PROGRESS: pass 14, at document #4000/10681\n", - "2021-08-24 02:42:35,163 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:35,191 : INFO : topic #20 (0.020): 0.098*\"biography\" + 0.066*\"Drama\" + 0.048*\"death\" + 0.047*\"biopic\" + 0.039*\"suicide\" + 0.038*\"julia roberts\" + 0.035*\"ensemble cast\" + 0.034*\"corvallis library\" + 0.029*\"medieval\" + 0.025*\"multiple storylines\"\n", - "2021-08-24 02:42:35,191 : INFO : topic #24 (0.020): 0.096*\"hitchcock\" + 0.076*\"murder\" + 0.073*\"alfred hitchcock\" + 0.067*\"vampire\" + 0.059*\"oppl\" + 0.050*\"vampires\" + 0.034*\"memory\" + 0.021*\"incest\" + 0.018*\"cary grant\" + 0.015*\"kirsten dunst\"\n", - "2021-08-24 02:42:35,192 : INFO : topic #16 (0.020): 0.293*\"nudity (topless)\" + 0.197*\"nudity (topless - brief)\" + 0.062*\"nudity (rear)\" + 0.033*\"claymation\" + 0.023*\"pg\" + 0.022*\"military\" + 0.022*\"aardman\" + 0.018*\"childhood\" + 0.013*\"weird\" + 0.011*\"freedom\"\n", - "2021-08-24 02:42:35,193 : INFO : topic #10 (0.020): 0.254*\"Thriller\" + 0.225*\"Crime\" + 0.166*\"Action\" + 0.159*\"Drama\" + 0.026*\"Mystery\" + 0.017*\"murder\" + 0.012*\"virtual reality\" + 0.012*\"crime\" + 0.007*\"thriller\" + 0.005*\"greg kinnear\"\n", - "2021-08-24 02:42:35,194 : INFO : topic #31 (0.020): 0.122*\"zombies\" + 0.074*\"horror\" + 0.070*\"pg-13\" + 0.042*\"cult classic\" + 0.026*\"campy\" + 0.026*\"infidelity\" + 0.024*\"joaquin phoenix\" + 0.024*\"sam raimi\" + 0.022*\"zombie\" + 0.020*\"books\"\n", - "2021-08-24 02:42:35,195 : INFO : topic diff=0.031046, rho=0.221727\n", - "2021-08-24 02:42:35,197 : INFO : PROGRESS: pass 14, at document #6000/10681\n", - "2021-08-24 02:42:35,436 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:35,463 : INFO : topic #33 (0.020): 0.114*\"Comedy\" + 0.113*\"comedy\" + 0.057*\"funny\" + 0.038*\"parody\" + 0.036*\"quirky\" + 0.034*\"seen more than once\" + 0.032*\"dark comedy\" + 0.028*\"hilarious\" + 0.026*\"coen brothers\" + 0.021*\"black comedy\"\n", - "2021-08-24 02:42:35,464 : INFO : topic #46 (0.020): 0.087*\"action\" + 0.064*\"fantasy\" + 0.046*\"sci-fi\" + 0.036*\"adventure\" + 0.033*\"dvd\" + 0.023*\"Adventure\" + 0.023*\"seen at the cinema\" + 0.022*\"seen more than once\" + 0.019*\"tom cruise\" + 0.018*\"space\"\n", - "2021-08-24 02:42:35,465 : INFO : topic #37 (0.020): 0.182*\"War\" + 0.113*\"world war ii\" + 0.100*\"Drama\" + 0.058*\"war\" + 0.042*\"history\" + 0.035*\"Action\" + 0.032*\"jim carrey\" + 0.020*\"nazis\" + 0.017*\"mental illness\" + 0.016*\"wwii\"\n", - "2021-08-24 02:42:35,465 : INFO : topic #26 (0.020): 0.041*\"Drama\" + 0.035*\"james bond\" + 0.024*\"007\" + 0.024*\"bond\" + 0.022*\"mel gibson\" + 0.021*\"reflective\" + 0.020*\"atmospheric\" + 0.019*\"poignant\" + 0.018*\"lyrical\" + 0.017*\"bittersweet\"\n", - "2021-08-24 02:42:35,466 : INFO : topic #7 (0.020): 0.111*\"romance\" + 0.060*\"Romance\" + 0.052*\"chick flick\" + 0.038*\"boring\" + 0.032*\"girlie movie\" + 0.029*\"baseball\" + 0.026*\"Comedy\" + 0.023*\"whimsical\" + 0.018*\"comedy\" + 0.018*\"wedding\"\n", - "2021-08-24 02:42:35,468 : INFO : topic diff=0.060258, rho=0.221727\n", - "2021-08-24 02:42:35,470 : INFO : PROGRESS: pass 14, at document #8000/10681\n", - "2021-08-24 02:42:35,715 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:35,743 : INFO : topic #42 (0.020): 0.099*\"japan\" + 0.092*\"martial arts\" + 0.074*\"robin williams\" + 0.043*\"akira kurosawa\" + 0.034*\"samurai\" + 0.031*\"Drama\" + 0.027*\"orson welles\" + 0.024*\"kurosawa\" + 0.021*\"hugh grant\" + 0.021*\"christopher walken\"\n", - "2021-08-24 02:42:35,744 : INFO : topic #48 (0.020): 0.089*\"bruce willis\" + 0.080*\"twist ending\" + 0.061*\"netflix\" + 0.047*\"coming of age\" + 0.033*\"journalism\" + 0.031*\"sexy\" + 0.026*\"Drama\" + 0.025*\"avi\" + 0.022*\"talking animals\" + 0.021*\"to see\"\n", - "2021-08-24 02:42:35,745 : INFO : topic #10 (0.020): 0.247*\"Thriller\" + 0.238*\"Crime\" + 0.166*\"Action\" + 0.160*\"Drama\" + 0.030*\"Mystery\" + 0.015*\"murder\" + 0.011*\"virtual reality\" + 0.010*\"crime\" + 0.005*\"thriller\" + 0.004*\"well done\"\n", - "2021-08-24 02:42:35,745 : INFO : topic #46 (0.020): 0.088*\"action\" + 0.064*\"fantasy\" + 0.048*\"sci-fi\" + 0.037*\"adventure\" + 0.034*\"dvd\" + 0.025*\"Adventure\" + 0.023*\"seen more than once\" + 0.021*\"seen at the cinema\" + 0.018*\"tom cruise\" + 0.017*\"Action\"\n", - "2021-08-24 02:42:35,746 : INFO : topic #17 (0.020): 0.356*\"Sci-Fi\" + 0.084*\"Horror\" + 0.065*\"Action\" + 0.036*\"video game adaptation\" + 0.025*\"football\" + 0.018*\"animals\" + 0.018*\"futuristic\" + 0.016*\"movie to see\" + 0.014*\"g\" + 0.012*\"milla jovovich\"\n", - "2021-08-24 02:42:35,747 : INFO : topic diff=0.049040, rho=0.221727\n", - "2021-08-24 02:42:35,749 : INFO : PROGRESS: pass 14, at document #10000/10681\n", - "2021-08-24 02:42:35,996 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:36,024 : INFO : topic #31 (0.020): 0.153*\"zombies\" + 0.102*\"pg-13\" + 0.060*\"horror\" + 0.034*\"zombie\" + 0.027*\"joaquin phoenix\" + 0.025*\"cult classic\" + 0.024*\"infidelity\" + 0.022*\"sam raimi\" + 0.021*\"campy\" + 0.020*\"books\"\n", - "2021-08-24 02:42:36,025 : INFO : topic #8 (0.020): 0.154*\"anime\" + 0.081*\"true story\" + 0.074*\"tom hanks\" + 0.058*\"based on a true story\" + 0.028*\"to-rent\" + 0.028*\"interesting\" + 0.026*\"japan\" + 0.026*\"not funny\" + 0.024*\"good\" + 0.021*\"drama\"\n", - "2021-08-24 02:42:36,025 : INFO : topic #42 (0.020): 0.101*\"japan\" + 0.091*\"martial arts\" + 0.066*\"robin williams\" + 0.036*\"akira kurosawa\" + 0.033*\"samurai\" + 0.032*\"seen 2006\" + 0.031*\"Drama\" + 0.031*\"jonossa\" + 0.025*\"orson welles\" + 0.022*\"hugh grant\"\n", - "2021-08-24 02:42:36,026 : INFO : topic #39 (0.020): 0.171*\"time travel\" + 0.057*\"adultery\" + 0.050*\"motorcycle\" + 0.038*\"jude law\" + 0.034*\"post apocalyptic\" + 0.034*\"post-apocalyptic\" + 0.021*\"want to own\" + 0.021*\"dystopia\" + 0.020*\"old\" + 0.017*\"hollywood\"\n", - "2021-08-24 02:42:36,027 : INFO : topic #21 (0.020): 0.077*\"Sci-Fi\" + 0.068*\"aliens\" + 0.050*\"sci-fi\" + 0.039*\"space\" + 0.034*\"futuristmovies.com\" + 0.024*\"will smith\" + 0.024*\"Action\" + 0.022*\"tommy lee jones\" + 0.020*\"ridley scott\" + 0.018*\"michael crichton\"\n", - "2021-08-24 02:42:36,030 : INFO : topic diff=0.040909, rho=0.221727\n", - "2021-08-24 02:42:36,189 : INFO : -20.968 per-word bound, 2050907.1 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:36,189 : INFO : PROGRESS: pass 14, at document #10681/10681\n", - "2021-08-24 02:42:36,325 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:36,374 : INFO : topic #44 (0.020): 0.078*\"mafia\" + 0.076*\"music\" + 0.053*\"organized crime\" + 0.049*\"martin scorsese\" + 0.046*\"rock and roll\" + 0.042*\"Musical\" + 0.025*\"wired 50 greatest soundtracks\" + 0.024*\"guns\" + 0.020*\"confrontational\" + 0.018*\"dysfunctional family\"\n", - "2021-08-24 02:42:36,375 : INFO : topic #19 (0.020): 0.084*\"nudity (full frontal)\" + 0.045*\"drama\" + 0.039*\"Drama\" + 0.034*\"to see\" + 0.029*\"philip k. dick\" + 0.027*\"rape\" + 0.025*\"ummarti2007\" + 0.022*\"male nudity\" + 0.020*\"slow\" + 0.018*\"very good\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:36,377 : INFO : topic #43 (0.020): 0.077*\"surreal\" + 0.040*\"narrated\" + 0.038*\"satirical\" + 0.032*\"cynical\" + 0.032*\"irreverent\" + 0.031*\"quirky\" + 0.030*\"dreamlike\" + 0.027*\"biting\" + 0.023*\"hallucinatory\" + 0.021*\"stanley kubrick\"\n", - "2021-08-24 02:42:36,378 : INFO : topic #35 (0.020): 0.355*\"Comedy\" + 0.314*\"Drama\" + 0.201*\"Romance\" + 0.013*\"lesbian\" + 0.008*\"sean penn\" + 0.008*\"bibliothek\" + 0.007*\"philip seymour hoffman\" + 0.005*\"m. night shyamalan\" + 0.005*\"oscar (best foreign language film)\" + 0.003*\"library vhs\"\n", - "2021-08-24 02:42:36,381 : INFO : topic #31 (0.020): 0.160*\"zombies\" + 0.097*\"pg-13\" + 0.056*\"horror\" + 0.028*\"zombie\" + 0.026*\"infidelity\" + 0.024*\"movie to see\" + 0.023*\"betrayal\" + 0.022*\"books\" + 0.022*\"joaquin phoenix\" + 0.021*\"cult classic\"\n", - "2021-08-24 02:42:36,384 : INFO : topic diff=0.089153, rho=0.221727\n", - "2021-08-24 02:42:36,386 : INFO : PROGRESS: pass 15, at document #2000/10681\n", - "2021-08-24 02:42:36,688 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:36,715 : INFO : topic #24 (0.020): 0.084*\"hitchcock\" + 0.078*\"alfred hitchcock\" + 0.073*\"oppl\" + 0.067*\"murder\" + 0.063*\"vampire\" + 0.047*\"vampires\" + 0.036*\"memory\" + 0.023*\"incest\" + 0.021*\"cary grant\" + 0.017*\"kirsten dunst\"\n", - "2021-08-24 02:42:36,716 : INFO : topic #48 (0.020): 0.100*\"bruce willis\" + 0.097*\"netflix\" + 0.081*\"twist ending\" + 0.038*\"coming of age\" + 0.032*\"journalism\" + 0.030*\"Drama\" + 0.029*\"to see\" + 0.025*\"talking animals\" + 0.021*\"relationships\" + 0.020*\"sexy\"\n", - "2021-08-24 02:42:36,716 : INFO : topic #29 (0.020): 0.091*\"nudity (full frontal - notable)\" + 0.064*\"shakespeare\" + 0.051*\"Drama\" + 0.043*\"based on a play\" + 0.035*\"christianity\" + 0.035*\"adapted from:play\" + 0.031*\"religion\" + 0.024*\"cannibalism\" + 0.024*\"jodie foster\" + 0.024*\"president\"\n", - "2021-08-24 02:42:36,717 : INFO : topic #36 (0.020): 0.085*\"cult film\" + 0.042*\"russell crowe\" + 0.035*\"peter jackson\" + 0.034*\"downbeat\" + 0.032*\"adam sandler\" + 0.027*\"1980s\" + 0.024*\"new zealand\" + 0.023*\"not available from netflix\" + 0.020*\"virus\" + 0.017*\"must see!\"\n", - "2021-08-24 02:42:36,717 : INFO : topic #49 (0.020): 0.081*\"national film registry\" + 0.059*\"imdb top 250\" + 0.043*\"black and white\" + 0.032*\"afi 100 (thrills)\" + 0.031*\"afi 100\" + 0.030*\"tumey's dvds\" + 0.025*\"usa film registry\" + 0.021*\"erlend's dvds\" + 0.019*\"paris\" + 0.019*\"france\"\n", - "2021-08-24 02:42:36,719 : INFO : topic diff=0.166177, rho=0.216470\n", - "2021-08-24 02:42:36,720 : INFO : PROGRESS: pass 15, at document #4000/10681\n", - "2021-08-24 02:42:36,968 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:36,995 : INFO : topic #1 (0.020): 0.049*\"overrated\" + 0.042*\"violence\" + 0.038*\"quentin tarantino\" + 0.033*\"crime\" + 0.028*\"imdb top 250\" + 0.026*\"owned\" + 0.026*\"drama\" + 0.025*\"tarantino\" + 0.024*\"violent\" + 0.022*\"revenge\"\n", - "2021-08-24 02:42:36,996 : INFO : topic #22 (0.020): 0.228*\"betamax\" + 0.099*\"dvd-video\" + 0.075*\"clv\" + 0.037*\"aviation\" + 0.028*\"library on hold\" + 0.023*\"terry gilliam\" + 0.019*\"dvd collection\" + 0.016*\"gilliam\" + 0.013*\"70mm\" + 0.013*\"seen 2008\"\n", - "2021-08-24 02:42:36,996 : INFO : topic #42 (0.020): 0.094*\"robin williams\" + 0.089*\"martial arts\" + 0.069*\"japan\" + 0.040*\"samurai\" + 0.036*\"akira kurosawa\" + 0.029*\"Drama\" + 0.027*\"orson welles\" + 0.025*\"divorce\" + 0.022*\"kurosawa\" + 0.020*\"christopher walken\"\n", - "2021-08-24 02:42:36,997 : INFO : topic #48 (0.020): 0.105*\"bruce willis\" + 0.085*\"twist ending\" + 0.079*\"netflix\" + 0.049*\"coming of age\" + 0.033*\"journalism\" + 0.028*\"Drama\" + 0.026*\"talking animals\" + 0.026*\"sexy\" + 0.024*\"to see\" + 0.019*\"relationships\"\n", - "2021-08-24 02:42:36,998 : INFO : topic #39 (0.020): 0.179*\"time travel\" + 0.057*\"adultery\" + 0.046*\"post apocalyptic\" + 0.037*\"motorcycle\" + 0.035*\"post-apocalyptic\" + 0.030*\"jude law\" + 0.024*\"dystopia\" + 0.019*\"want to own\" + 0.019*\"hollywood\" + 0.018*\"bechdel test:fail\"\n", - "2021-08-24 02:42:37,000 : INFO : topic diff=0.030138, rho=0.216470\n", - "2021-08-24 02:42:37,001 : INFO : PROGRESS: pass 15, at document #6000/10681\n", - "2021-08-24 02:42:37,216 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:37,243 : INFO : topic #11 (0.020): 0.129*\"religion\" + 0.115*\"keanu reeves\" + 0.032*\"island\" + 0.021*\"slavery\" + 0.018*\"courtesan\" + 0.018*\"reality tv\" + 0.017*\"facebook rec\" + 0.016*\"slash\" + 0.016*\"class issues\" + 0.015*\"product placement\"\n", - "2021-08-24 02:42:37,244 : INFO : topic #41 (0.020): 0.115*\"remake\" + 0.067*\"christmas\" + 0.063*\"new york city\" + 0.044*\"family\" + 0.041*\"bibliothek\" + 0.036*\"new york\" + 0.033*\"kevin spacey\" + 0.032*\"Drama\" + 0.029*\"eric's dvds\" + 0.027*\"friday night movie\"\n", - "2021-08-24 02:42:37,245 : INFO : topic #33 (0.020): 0.114*\"Comedy\" + 0.114*\"comedy\" + 0.057*\"funny\" + 0.038*\"parody\" + 0.035*\"quirky\" + 0.035*\"seen more than once\" + 0.032*\"dark comedy\" + 0.028*\"hilarious\" + 0.026*\"coen brothers\" + 0.021*\"black comedy\"\n", - "2021-08-24 02:42:37,246 : INFO : topic #19 (0.020): 0.062*\"drama\" + 0.060*\"nudity (full frontal)\" + 0.035*\"philip k. dick\" + 0.033*\"Drama\" + 0.029*\"vietnam war\" + 0.027*\"rape\" + 0.025*\"vietnam\" + 0.023*\"very good\" + 0.019*\"to see\" + 0.016*\"brazil\"\n", - "2021-08-24 02:42:37,247 : INFO : topic #43 (0.020): 0.082*\"surreal\" + 0.046*\"satirical\" + 0.039*\"cynical\" + 0.036*\"stanley kubrick\" + 0.035*\"narrated\" + 0.035*\"biting\" + 0.032*\"dreamlike\" + 0.031*\"quirky\" + 0.026*\"irreverent\" + 0.025*\"mindfuck\"\n", - "2021-08-24 02:42:37,248 : INFO : topic diff=0.058712, rho=0.216470\n", - "2021-08-24 02:42:37,249 : INFO : PROGRESS: pass 15, at document #8000/10681\n", - "2021-08-24 02:42:37,480 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:37,508 : INFO : topic #43 (0.020): 0.085*\"surreal\" + 0.046*\"satirical\" + 0.040*\"cynical\" + 0.036*\"quirky\" + 0.034*\"dreamlike\" + 0.034*\"biting\" + 0.034*\"narrated\" + 0.029*\"stanley kubrick\" + 0.026*\"irreverent\" + 0.026*\"hallucinatory\"\n", - "2021-08-24 02:42:37,509 : INFO : topic #36 (0.020): 0.078*\"cult film\" + 0.049*\"peter jackson\" + 0.043*\"downbeat\" + 0.041*\"russell crowe\" + 0.031*\"adam sandler\" + 0.030*\"not available from netflix\" + 0.025*\"1980s\" + 0.024*\"new zealand\" + 0.021*\"80s\" + 0.016*\"drew barrymore\"\n", - "2021-08-24 02:42:37,509 : INFO : topic #6 (0.020): 0.143*\"Musical\" + 0.096*\"politics\" + 0.059*\"satire\" + 0.043*\"sean connery\" + 0.042*\"nicolas cage\" + 0.040*\"dvd-r\" + 0.031*\"terrorism\" + 0.029*\"police\" + 0.025*\"dvd-ram\" + 0.024*\"netwatch\"\n", - "2021-08-24 02:42:37,510 : INFO : topic #3 (0.020): 0.147*\"oscar (best picture)\" + 0.062*\"oscar (best actor)\" + 0.059*\"oscar (best supporting actor)\" + 0.058*\"oscar (best directing)\" + 0.033*\"al pacino\" + 0.026*\"afi 100 (cheers)\" + 0.024*\"Drama\" + 0.019*\"tumey's dvds\" + 0.018*\"afi 100\" + 0.017*\"great acting\"\n", - "2021-08-24 02:42:37,511 : INFO : topic #26 (0.020): 0.045*\"Drama\" + 0.032*\"james bond\" + 0.022*\"reflective\" + 0.022*\"007\" + 0.021*\"atmospheric\" + 0.021*\"poignant\" + 0.021*\"bond\" + 0.019*\"bittersweet\" + 0.019*\"lyrical\" + 0.018*\"deliberate\"\n", - "2021-08-24 02:42:37,513 : INFO : topic diff=0.047805, rho=0.216470\n", - "2021-08-24 02:42:37,514 : INFO : PROGRESS: pass 15, at document #10000/10681\n", - "2021-08-24 02:42:37,755 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:37,783 : INFO : topic #19 (0.020): 0.063*\"nudity (full frontal)\" + 0.054*\"drama\" + 0.034*\"Drama\" + 0.034*\"philip k. dick\" + 0.025*\"ummarti2007\" + 0.024*\"slow\" + 0.024*\"rape\" + 0.022*\"male nudity\" + 0.021*\"very good\" + 0.021*\"vietnam war\"\n", - "2021-08-24 02:42:37,784 : INFO : topic #8 (0.020): 0.153*\"anime\" + 0.081*\"true story\" + 0.074*\"tom hanks\" + 0.059*\"based on a true story\" + 0.028*\"to-rent\" + 0.028*\"interesting\" + 0.026*\"japan\" + 0.026*\"not funny\" + 0.024*\"good\" + 0.021*\"drama\"\n", - "2021-08-24 02:42:37,785 : INFO : topic #0 (0.020): 0.164*\"can't remember\" + 0.098*\"directorial debut\" + 0.087*\"based on a tv show\" + 0.073*\"Comedy\" + 0.061*\"ummarti2006\" + 0.036*\"keira knightley\" + 0.029*\"australian\" + 0.027*\"dani2006\" + 0.026*\"australia\" + 0.021*\"robert downey jr\"\n", - "2021-08-24 02:42:37,785 : INFO : topic #1 (0.020): 0.056*\"overrated\" + 0.040*\"violence\" + 0.037*\"quentin tarantino\" + 0.034*\"revenge\" + 0.030*\"crime\" + 0.026*\"violent\" + 0.025*\"owned\" + 0.023*\"imdb top 250\" + 0.021*\"tarantino\" + 0.021*\"drama\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:37,786 : INFO : topic #37 (0.020): 0.194*\"War\" + 0.112*\"Drama\" + 0.102*\"world war ii\" + 0.057*\"war\" + 0.049*\"history\" + 0.036*\"Action\" + 0.031*\"jim carrey\" + 0.018*\"africa\" + 0.017*\"nazis\" + 0.014*\"wwii\"\n", - "2021-08-24 02:42:37,787 : INFO : topic diff=0.039867, rho=0.216470\n", - "2021-08-24 02:42:37,937 : INFO : -20.968 per-word bound, 2051264.9 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:37,937 : INFO : PROGRESS: pass 15, at document #10681/10681\n", - "2021-08-24 02:42:38,034 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:38,063 : INFO : topic #40 (0.020): 0.310*\"r\" + 0.159*\"clearplay\" + 0.074*\"movie to see\" + 0.049*\"Drama\" + 0.032*\"prison\" + 0.029*\"friendship\" + 0.027*\"morgan freeman\" + 0.016*\"conspiracy\" + 0.013*\"1970s\" + 0.013*\"don cheadle\"\n", - "2021-08-24 02:42:38,064 : INFO : topic #39 (0.020): 0.150*\"time travel\" + 0.054*\"adultery\" + 0.046*\"motorcycle\" + 0.046*\"post apocalyptic\" + 0.043*\"post-apocalyptic\" + 0.035*\"jude law\" + 0.025*\"bechdel test:fail\" + 0.023*\"dystopia\" + 0.018*\"want to own\" + 0.017*\"old\"\n", - "2021-08-24 02:42:38,065 : INFO : topic #25 (0.020): 0.188*\"Western\" + 0.067*\"erlend's dvds\" + 0.047*\"Drama\" + 0.041*\"woody allen\" + 0.038*\"gothic\" + 0.033*\"george clooney\" + 0.028*\"gene hackman\" + 0.027*\"sad\" + 0.025*\"nicole kidman\" + 0.024*\"scary movies to see on halloween\"\n", - "2021-08-24 02:42:38,066 : INFO : topic #19 (0.020): 0.083*\"nudity (full frontal)\" + 0.045*\"drama\" + 0.038*\"Drama\" + 0.034*\"to see\" + 0.029*\"philip k. dick\" + 0.027*\"rape\" + 0.025*\"ummarti2007\" + 0.022*\"male nudity\" + 0.020*\"slow\" + 0.018*\"very good\"\n", - "2021-08-24 02:42:38,066 : INFO : topic #4 (0.020): 0.066*\"Drama\" + 0.062*\"london\" + 0.061*\"sports\" + 0.047*\"sven's to see list\" + 0.044*\"boxing\" + 0.040*\"underrated\" + 0.038*\"british\" + 0.033*\"hw drama\" + 0.033*\"notable soundtrack\" + 0.031*\"inspirational\"\n", - "2021-08-24 02:42:38,068 : INFO : topic diff=0.086955, rho=0.216470\n", - "2021-08-24 02:42:38,069 : INFO : PROGRESS: pass 16, at document #2000/10681\n", - "2021-08-24 02:42:38,345 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:38,374 : INFO : topic #44 (0.020): 0.120*\"mafia\" + 0.085*\"music\" + 0.065*\"martin scorsese\" + 0.056*\"organized crime\" + 0.037*\"rock and roll\" + 0.033*\"Musical\" + 0.024*\"guns\" + 0.022*\"wired 50 greatest soundtracks\" + 0.022*\"francis ford coppola\" + 0.020*\"confrontational\"\n", - "2021-08-24 02:42:38,375 : INFO : topic #20 (0.020): 0.105*\"biography\" + 0.064*\"Drama\" + 0.052*\"death\" + 0.052*\"biopic\" + 0.041*\"suicide\" + 0.034*\"julia roberts\" + 0.032*\"corvallis library\" + 0.031*\"ensemble cast\" + 0.027*\"medieval\" + 0.023*\"forest whitaker\"\n", - "2021-08-24 02:42:38,376 : INFO : topic #40 (0.020): 0.270*\"r\" + 0.138*\"clearplay\" + 0.064*\"movie to see\" + 0.055*\"prison\" + 0.045*\"Drama\" + 0.034*\"morgan freeman\" + 0.028*\"friendship\" + 0.021*\"conspiracy\" + 0.015*\"1970s\" + 0.012*\"mel brooks\"\n", - "2021-08-24 02:42:38,377 : INFO : topic #28 (0.020): 0.087*\"oscar (best cinematography)\" + 0.065*\"Drama\" + 0.050*\"in netflix queue\" + 0.049*\"oscar (best supporting actress)\" + 0.038*\"oscar (best actress)\" + 0.027*\"remade\" + 0.026*\"marlon brando\" + 0.017*\"exceptional acting\" + 0.014*\"audrey hepburn\" + 0.013*\"father daughter relationship\"\n", - "2021-08-24 02:42:38,377 : INFO : topic #35 (0.020): 0.344*\"Comedy\" + 0.315*\"Drama\" + 0.199*\"Romance\" + 0.016*\"lesbian\" + 0.009*\"bibliothek\" + 0.007*\"sean penn\" + 0.006*\"philip seymour hoffman\" + 0.005*\"oscar (best foreign language film)\" + 0.004*\"m. night shyamalan\" + 0.004*\"library vhs\"\n", - "2021-08-24 02:42:38,379 : INFO : topic diff=0.161909, rho=0.211570\n", - "2021-08-24 02:42:38,380 : INFO : PROGRESS: pass 16, at document #4000/10681\n", - "2021-08-24 02:42:38,625 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:38,652 : INFO : topic #49 (0.020): 0.082*\"national film registry\" + 0.062*\"imdb top 250\" + 0.044*\"black and white\" + 0.034*\"tumey's dvds\" + 0.034*\"afi 100 (thrills)\" + 0.030*\"afi 100\" + 0.025*\"erlend's dvds\" + 0.024*\"usa film registry\" + 0.022*\"afi 100 (movie quotes)\" + 0.019*\"emerson must see\"\n", - "2021-08-24 02:42:38,653 : INFO : topic #32 (0.020): 0.141*\"johnny depp\" + 0.064*\"clint eastwood\" + 0.053*\"vhs\" + 0.042*\"western\" + 0.041*\"jackie chan\" + 0.035*\"spaghetti western\" + 0.032*\"kung fu\" + 0.029*\"sergio leone\" + 0.029*\"india\" + 0.028*\"propaganda\"\n", - "2021-08-24 02:42:38,653 : INFO : topic #10 (0.020): 0.254*\"Thriller\" + 0.226*\"Crime\" + 0.166*\"Action\" + 0.159*\"Drama\" + 0.026*\"Mystery\" + 0.018*\"murder\" + 0.012*\"virtual reality\" + 0.012*\"crime\" + 0.007*\"thriller\" + 0.005*\"greg kinnear\"\n", - "2021-08-24 02:42:38,655 : INFO : topic #17 (0.020): 0.335*\"Sci-Fi\" + 0.077*\"Horror\" + 0.065*\"Action\" + 0.038*\"video game adaptation\" + 0.028*\"football\" + 0.026*\"animals\" + 0.022*\"movie to see\" + 0.017*\"futuristic\" + 0.015*\"milla jovovich\" + 0.013*\"g\"\n", - "2021-08-24 02:42:38,655 : INFO : topic #29 (0.020): 0.094*\"nudity (full frontal - notable)\" + 0.068*\"shakespeare\" + 0.051*\"Drama\" + 0.045*\"based on a play\" + 0.040*\"adapted from:play\" + 0.032*\"christianity\" + 0.029*\"religion\" + 0.021*\"disability\" + 0.021*\"cannibalism\" + 0.021*\"jodie foster\"\n", - "2021-08-24 02:42:38,657 : INFO : topic diff=0.029288, rho=0.211570\n", - "2021-08-24 02:42:38,658 : INFO : PROGRESS: pass 16, at document #6000/10681\n", - "2021-08-24 02:42:38,890 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:38,917 : INFO : topic #33 (0.020): 0.114*\"Comedy\" + 0.114*\"comedy\" + 0.057*\"funny\" + 0.038*\"parody\" + 0.035*\"seen more than once\" + 0.034*\"quirky\" + 0.032*\"dark comedy\" + 0.028*\"hilarious\" + 0.026*\"coen brothers\" + 0.021*\"black comedy\"\n", - "2021-08-24 02:42:38,918 : INFO : topic #25 (0.020): 0.154*\"Western\" + 0.076*\"erlend's dvds\" + 0.049*\"gothic\" + 0.046*\"woody allen\" + 0.045*\"Drama\" + 0.040*\"gene hackman\" + 0.029*\"scary movies to see on halloween\" + 0.028*\"george clooney\" + 0.028*\"nicole kidman\" + 0.025*\"sad\"\n", - "2021-08-24 02:42:38,918 : INFO : topic #19 (0.020): 0.061*\"drama\" + 0.060*\"nudity (full frontal)\" + 0.035*\"philip k. dick\" + 0.034*\"Drama\" + 0.029*\"vietnam war\" + 0.027*\"rape\" + 0.025*\"vietnam\" + 0.023*\"very good\" + 0.019*\"to see\" + 0.016*\"brazil\"\n", - "2021-08-24 02:42:38,919 : INFO : topic #14 (0.020): 0.056*\"criterion\" + 0.052*\"tense\" + 0.052*\"disturbing\" + 0.051*\"atmospheric\" + 0.047*\"Drama\" + 0.033*\"tumey's dvds\" + 0.029*\"stylized\" + 0.028*\"bleak\" + 0.024*\"erlend's dvds\" + 0.024*\"menacing\"\n", - "2021-08-24 02:42:38,920 : INFO : topic #23 (0.020): 0.088*\"teen\" + 0.080*\"high school\" + 0.050*\"cars\" + 0.037*\"dance\" + 0.028*\"eddie murphy\" + 0.024*\"sandra bullock\" + 0.022*\"Comedy\" + 0.021*\"(s)vcd\" + 0.019*\"car chase\" + 0.017*\"marx brothers\"\n", - "2021-08-24 02:42:38,922 : INFO : topic diff=0.057386, rho=0.211570\n", - "2021-08-24 02:42:38,923 : INFO : PROGRESS: pass 16, at document #8000/10681\n", - "2021-08-24 02:42:39,159 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:39,188 : INFO : topic #14 (0.020): 0.059*\"criterion\" + 0.052*\"tense\" + 0.051*\"disturbing\" + 0.050*\"atmospheric\" + 0.049*\"Drama\" + 0.031*\"tumey's dvds\" + 0.031*\"stylized\" + 0.030*\"bleak\" + 0.025*\"menacing\" + 0.025*\"erlend's dvds\"\n", - "2021-08-24 02:42:39,189 : INFO : topic #30 (0.020): 0.245*\"Adventure\" + 0.116*\"Children\" + 0.106*\"Comedy\" + 0.099*\"Fantasy\" + 0.082*\"Action\" + 0.067*\"70mm\" + 0.047*\"Drama\" + 0.046*\"Animation\" + 0.018*\"Musical\" + 0.009*\"submarine\"\n", - "2021-08-24 02:42:39,189 : INFO : topic #47 (0.020): 0.063*\"serial killer\" + 0.058*\"psychology\" + 0.049*\"brad pitt\" + 0.041*\"edward norton\" + 0.035*\"heist\" + 0.029*\"steven spielberg\" + 0.029*\"matt damon\" + 0.028*\"hayao miyazaki\" + 0.023*\"crime\" + 0.016*\"scary\"\n", - "2021-08-24 02:42:39,190 : INFO : topic #33 (0.020): 0.117*\"Comedy\" + 0.108*\"comedy\" + 0.058*\"funny\" + 0.036*\"parody\" + 0.036*\"seen more than once\" + 0.033*\"quirky\" + 0.028*\"dark comedy\" + 0.027*\"hilarious\" + 0.023*\"coen brothers\" + 0.021*\"black comedy\"\n", - "2021-08-24 02:42:39,191 : INFO : topic #24 (0.020): 0.069*\"vampire\" + 0.069*\"murder\" + 0.068*\"hitchcock\" + 0.065*\"vampires\" + 0.056*\"memory\" + 0.051*\"alfred hitchcock\" + 0.050*\"oppl\" + 0.020*\"kirsten dunst\" + 0.019*\"cary grant\" + 0.018*\"incest\"\n", - "2021-08-24 02:42:39,192 : INFO : topic diff=0.046593, rho=0.211570\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:39,194 : INFO : PROGRESS: pass 16, at document #10000/10681\n", - "2021-08-24 02:42:39,438 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:39,466 : INFO : topic #40 (0.020): 0.282*\"r\" + 0.124*\"clearplay\" + 0.057*\"movie to see\" + 0.046*\"Drama\" + 0.039*\"prison\" + 0.029*\"morgan freeman\" + 0.025*\"friendship\" + 0.018*\"john wayne\" + 0.018*\"conspiracy\" + 0.015*\"don cheadle\"\n", - "2021-08-24 02:42:39,466 : INFO : topic #7 (0.020): 0.108*\"romance\" + 0.062*\"Romance\" + 0.045*\"chick flick\" + 0.041*\"boring\" + 0.026*\"girlie movie\" + 0.025*\"baseball\" + 0.024*\"love story\" + 0.024*\"whimsical\" + 0.024*\"Comedy\" + 0.019*\"wedding\"\n", - "2021-08-24 02:42:39,467 : INFO : topic #45 (0.020): 0.258*\"less than 300 ratings\" + 0.117*\"Drama\" + 0.059*\"nudity (topless - notable)\" + 0.038*\"tim burton\" + 0.031*\"not corv lib\" + 0.026*\"library\" + 0.017*\"depressing\" + 0.016*\"seen 2007\" + 0.016*\"blindfold\" + 0.013*\"michael moore\"\n", - "2021-08-24 02:42:39,468 : INFO : topic #41 (0.020): 0.130*\"remake\" + 0.064*\"new york city\" + 0.057*\"christmas\" + 0.048*\"family\" + 0.039*\"bibliothek\" + 0.035*\"new york\" + 0.035*\"eric's dvds\" + 0.030*\"Drama\" + 0.028*\"kevin spacey\" + 0.026*\"friday night movie\"\n", - "2021-08-24 02:42:39,469 : INFO : topic #6 (0.020): 0.141*\"Musical\" + 0.104*\"politics\" + 0.062*\"satire\" + 0.042*\"nicolas cage\" + 0.039*\"terrorism\" + 0.039*\"dvd-r\" + 0.032*\"sean connery\" + 0.028*\"political\" + 0.028*\"netwatch\" + 0.026*\"police\"\n", - "2021-08-24 02:42:39,470 : INFO : topic diff=0.038947, rho=0.211570\n", - "2021-08-24 02:42:39,614 : INFO : -20.966 per-word bound, 2048027.3 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:39,615 : INFO : PROGRESS: pass 16, at document #10681/10681\n", - "2021-08-24 02:42:39,709 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:39,735 : INFO : topic #47 (0.020): 0.061*\"serial killer\" + 0.053*\"psychology\" + 0.050*\"brad pitt\" + 0.040*\"heist\" + 0.038*\"edward norton\" + 0.031*\"matt damon\" + 0.027*\"hayao miyazaki\" + 0.024*\"steven spielberg\" + 0.019*\"crime\" + 0.015*\"anthony hopkins\"\n", - "2021-08-24 02:42:39,736 : INFO : topic #13 (0.020): 0.054*\"fairy tale\" + 0.051*\"road trip\" + 0.037*\"assassination\" + 0.034*\"sequel\" + 0.034*\"cold war\" + 0.034*\"jane austen\" + 0.033*\"historical\" + 0.024*\"kids\" + 0.022*\"notable nudity\" + 0.021*\"gerard depardieu\"\n", - "2021-08-24 02:42:39,736 : INFO : topic #20 (0.020): 0.100*\"biography\" + 0.070*\"Drama\" + 0.056*\"death\" + 0.046*\"suicide\" + 0.044*\"biopic\" + 0.039*\"corvallis library\" + 0.030*\"ensemble cast\" + 0.027*\"julia roberts\" + 0.024*\"forest whitaker\" + 0.024*\"history\"\n", - "2021-08-24 02:42:39,737 : INFO : topic #33 (0.020): 0.118*\"Comedy\" + 0.101*\"comedy\" + 0.062*\"funny\" + 0.038*\"parody\" + 0.034*\"dark comedy\" + 0.029*\"seen more than once\" + 0.028*\"hilarious\" + 0.028*\"quirky\" + 0.027*\"coen brothers\" + 0.022*\"england\"\n", - "2021-08-24 02:42:39,738 : INFO : topic #40 (0.020): 0.309*\"r\" + 0.158*\"clearplay\" + 0.074*\"movie to see\" + 0.049*\"Drama\" + 0.032*\"prison\" + 0.029*\"friendship\" + 0.027*\"morgan freeman\" + 0.016*\"conspiracy\" + 0.013*\"1970s\" + 0.013*\"don cheadle\"\n", - "2021-08-24 02:42:39,739 : INFO : topic diff=0.084956, rho=0.211570\n", - "2021-08-24 02:42:39,741 : INFO : PROGRESS: pass 17, at document #2000/10681\n", - "2021-08-24 02:42:39,999 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:40,025 : INFO : topic #25 (0.020): 0.158*\"Western\" + 0.068*\"erlend's dvds\" + 0.055*\"woody allen\" + 0.045*\"Drama\" + 0.043*\"gothic\" + 0.038*\"gene hackman\" + 0.026*\"george clooney\" + 0.025*\"sad\" + 0.020*\"nicole kidman\" + 0.020*\"cute\"\n", - "2021-08-24 02:42:40,026 : INFO : topic #15 (0.020): 0.170*\"disney\" + 0.094*\"animation\" + 0.074*\"pixar\" + 0.045*\"Animation\" + 0.043*\"children\" + 0.038*\"Children\" + 0.030*\"disney animated feature\" + 0.029*\"pirates\" + 0.024*\"angelina jolie\" + 0.021*\"cartoon\"\n", - "2021-08-24 02:42:40,027 : INFO : topic #17 (0.020): 0.326*\"Sci-Fi\" + 0.068*\"Horror\" + 0.068*\"Action\" + 0.045*\"video game adaptation\" + 0.028*\"animals\" + 0.026*\"movie to see\" + 0.021*\"football\" + 0.019*\"futuristic\" + 0.015*\"milla jovovich\" + 0.012*\"g\"\n", - "2021-08-24 02:42:40,028 : INFO : topic #13 (0.020): 0.057*\"fairy tale\" + 0.051*\"jane austen\" + 0.036*\"road trip\" + 0.036*\"assassination\" + 0.032*\"cold war\" + 0.031*\"sequel\" + 0.029*\"historical\" + 0.023*\"gerard depardieu\" + 0.023*\"swashbuckler\" + 0.021*\"kids\"\n", - "2021-08-24 02:42:40,028 : INFO : topic #5 (0.020): 0.303*\"classic\" + 0.066*\"musical\" + 0.036*\"afi 100 (laughs)\" + 0.032*\"Musical\" + 0.027*\"national film registry\" + 0.023*\"afi 100\" + 0.018*\"john travolta\" + 0.016*\"70mm\" + 0.013*\"breakthroughs\" + 0.012*\"adapted from b'way\"\n", - "2021-08-24 02:42:40,030 : INFO : topic diff=0.157369, rho=0.206988\n", - "2021-08-24 02:42:40,031 : INFO : PROGRESS: pass 17, at document #4000/10681\n", - "2021-08-24 02:42:40,275 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:40,301 : INFO : topic #11 (0.020): 0.130*\"religion\" + 0.116*\"keanu reeves\" + 0.032*\"island\" + 0.025*\"slavery\" + 0.019*\"class issues\" + 0.018*\"courtesan\" + 0.018*\"product placement\" + 0.017*\"facebook rec\" + 0.015*\"reality tv\" + 0.014*\"slash\"\n", - "2021-08-24 02:42:40,302 : INFO : topic #25 (0.020): 0.146*\"Western\" + 0.075*\"erlend's dvds\" + 0.053*\"gothic\" + 0.050*\"woody allen\" + 0.045*\"Drama\" + 0.038*\"gene hackman\" + 0.033*\"scary movies to see on halloween\" + 0.026*\"george clooney\" + 0.025*\"sad\" + 0.020*\"cute\"\n", - "2021-08-24 02:42:40,302 : INFO : topic #13 (0.020): 0.054*\"fairy tale\" + 0.045*\"jane austen\" + 0.041*\"road trip\" + 0.035*\"sequel\" + 0.030*\"assassination\" + 0.029*\"cold war\" + 0.028*\"historical\" + 0.022*\"kids\" + 0.021*\"heartwarming\" + 0.020*\"gerard depardieu\"\n", - "2021-08-24 02:42:40,303 : INFO : topic #18 (0.020): 0.079*\"gay\" + 0.070*\"racism\" + 0.065*\"magic\" + 0.049*\"pg13\" + 0.039*\"Drama\" + 0.030*\"food\" + 0.028*\"social commentary\" + 0.022*\"homosexuality\" + 0.018*\"denzel washington\" + 0.018*\"19th century\"\n", - "2021-08-24 02:42:40,304 : INFO : topic #30 (0.020): 0.245*\"Adventure\" + 0.126*\"Children\" + 0.108*\"Comedy\" + 0.103*\"Fantasy\" + 0.081*\"Action\" + 0.054*\"70mm\" + 0.049*\"Animation\" + 0.046*\"Drama\" + 0.016*\"Musical\" + 0.011*\"submarine\"\n", - "2021-08-24 02:42:40,305 : INFO : topic diff=0.028605, rho=0.206988\n", - "2021-08-24 02:42:40,307 : INFO : PROGRESS: pass 17, at document #6000/10681\n", - "2021-08-24 02:42:40,540 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:40,566 : INFO : topic #0 (0.020): 0.225*\"can't remember\" + 0.104*\"directorial debut\" + 0.085*\"based on a tv show\" + 0.082*\"Comedy\" + 0.029*\"ummarti2006\" + 0.029*\"australia\" + 0.028*\"australian\" + 0.021*\"keira knightley\" + 0.018*\"immigrants\" + 0.018*\"robert downey jr\"\n", - "2021-08-24 02:42:40,567 : INFO : topic #2 (0.020): 0.275*\"Documentary\" + 0.107*\"to see\" + 0.052*\"documentary\" + 0.028*\"star trek\" + 0.027*\"sexuality\" + 0.026*\"mockumentary\" + 0.024*\"kevin smith\" + 0.023*\"dogs\" + 0.018*\"movie to see\" + 0.017*\"owen wilson\"\n", - "2021-08-24 02:42:40,568 : INFO : topic #34 (0.020): 0.093*\"ghosts\" + 0.044*\"bill murray\" + 0.041*\"television\" + 0.037*\"courtroom\" + 0.033*\"courtroom drama\" + 0.023*\"roman polanski\" + 0.022*\"court\" + 0.018*\"secret service\" + 0.017*\"2.5\" + 0.016*\"opera\"\n", - "2021-08-24 02:42:40,568 : INFO : topic #44 (0.020): 0.100*\"mafia\" + 0.085*\"music\" + 0.055*\"martin scorsese\" + 0.048*\"organized crime\" + 0.043*\"rock and roll\" + 0.032*\"Musical\" + 0.029*\"wired 50 greatest soundtracks\" + 0.027*\"guns\" + 0.020*\"francis ford coppola\" + 0.019*\"confrontational\"\n", - "2021-08-24 02:42:40,569 : INFO : topic #18 (0.020): 0.082*\"magic\" + 0.079*\"gay\" + 0.063*\"racism\" + 0.042*\"pg13\" + 0.040*\"Drama\" + 0.027*\"food\" + 0.027*\"social commentary\" + 0.023*\"homosexuality\" + 0.020*\"19th century\" + 0.019*\"denzel washington\"\n", - "2021-08-24 02:42:40,571 : INFO : topic diff=0.055706, rho=0.206988\n", - "2021-08-24 02:42:40,572 : INFO : PROGRESS: pass 17, at document #8000/10681\n", - "2021-08-24 02:42:40,840 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:40,867 : INFO : topic #32 (0.020): 0.135*\"johnny depp\" + 0.069*\"vhs\" + 0.067*\"clint eastwood\" + 0.045*\"jackie chan\" + 0.033*\"western\" + 0.030*\"kung fu\" + 0.030*\"propaganda\" + 0.029*\"india\" + 0.027*\"david lynch\" + 0.026*\"italian\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:40,868 : INFO : topic #39 (0.020): 0.182*\"time travel\" + 0.054*\"adultery\" + 0.041*\"motorcycle\" + 0.038*\"post apocalyptic\" + 0.035*\"post-apocalyptic\" + 0.030*\"jude law\" + 0.024*\"dystopia\" + 0.019*\"want to own\" + 0.019*\"ian mckellen\" + 0.018*\"hollywood\"\n", - "2021-08-24 02:42:40,868 : INFO : topic #48 (0.020): 0.089*\"bruce willis\" + 0.081*\"twist ending\" + 0.063*\"netflix\" + 0.047*\"coming of age\" + 0.033*\"journalism\" + 0.031*\"sexy\" + 0.026*\"Drama\" + 0.025*\"avi\" + 0.022*\"to see\" + 0.022*\"talking animals\"\n", - "2021-08-24 02:42:40,869 : INFO : topic #8 (0.020): 0.142*\"anime\" + 0.090*\"tom hanks\" + 0.077*\"true story\" + 0.056*\"based on a true story\" + 0.027*\"drama\" + 0.026*\"good\" + 0.025*\"japan\" + 0.023*\"interesting\" + 0.021*\"not funny\" + 0.018*\"archaeology\"\n", - "2021-08-24 02:42:40,870 : INFO : topic #15 (0.020): 0.140*\"disney\" + 0.096*\"animation\" + 0.079*\"pixar\" + 0.046*\"Animation\" + 0.040*\"children\" + 0.037*\"Children\" + 0.033*\"pirates\" + 0.029*\"disney animated feature\" + 0.025*\"angelina jolie\" + 0.021*\"cartoon\"\n", - "2021-08-24 02:42:40,871 : INFO : topic diff=0.045531, rho=0.206988\n", - "2021-08-24 02:42:40,873 : INFO : PROGRESS: pass 17, at document #10000/10681\n", - "2021-08-24 02:42:41,142 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:41,171 : INFO : topic #33 (0.020): 0.119*\"Comedy\" + 0.106*\"comedy\" + 0.063*\"funny\" + 0.036*\"parody\" + 0.031*\"seen more than once\" + 0.030*\"quirky\" + 0.029*\"hilarious\" + 0.027*\"dark comedy\" + 0.023*\"england\" + 0.021*\"black comedy\"\n", - "2021-08-24 02:42:41,172 : INFO : topic #10 (0.020): 0.247*\"Thriller\" + 0.239*\"Crime\" + 0.167*\"Action\" + 0.162*\"Drama\" + 0.031*\"Mystery\" + 0.017*\"murder\" + 0.010*\"crime\" + 0.008*\"virtual reality\" + 0.005*\"greg kinnear\" + 0.005*\"thriller\"\n", - "2021-08-24 02:42:41,173 : INFO : topic #9 (0.020): 0.244*\"based on a book\" + 0.114*\"adapted from:book\" + 0.059*\"Drama\" + 0.037*\"based on book\" + 0.035*\"jack nicholson\" + 0.031*\"stephen king\" + 0.028*\"imdb bottom 100\" + 0.023*\"stupid\" + 0.022*\"literary adaptation\" + 0.022*\"los angeles\"\n", - "2021-08-24 02:42:41,174 : INFO : topic #16 (0.020): 0.289*\"nudity (topless)\" + 0.179*\"nudity (topless - brief)\" + 0.069*\"nudity (rear)\" + 0.038*\"pg\" + 0.029*\"claymation\" + 0.022*\"military\" + 0.018*\"aardman\" + 0.016*\"childhood\" + 0.016*\"weird\" + 0.009*\"freedom\"\n", - "2021-08-24 02:42:41,175 : INFO : topic #0 (0.020): 0.166*\"can't remember\" + 0.097*\"directorial debut\" + 0.087*\"based on a tv show\" + 0.073*\"Comedy\" + 0.060*\"ummarti2006\" + 0.036*\"keira knightley\" + 0.029*\"australian\" + 0.027*\"dani2006\" + 0.026*\"australia\" + 0.021*\"robert downey jr\"\n", - "2021-08-24 02:42:41,176 : INFO : topic diff=0.037784, rho=0.206988\n", - "2021-08-24 02:42:41,329 : INFO : -20.966 per-word bound, 2048261.7 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:41,330 : INFO : PROGRESS: pass 17, at document #10681/10681\n", - "2021-08-24 02:42:41,435 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:41,461 : INFO : topic #31 (0.020): 0.159*\"zombies\" + 0.096*\"pg-13\" + 0.058*\"horror\" + 0.029*\"zombie\" + 0.025*\"infidelity\" + 0.024*\"movie to see\" + 0.022*\"books\" + 0.022*\"joaquin phoenix\" + 0.022*\"betrayal\" + 0.022*\"cult classic\"\n", - "2021-08-24 02:42:41,462 : INFO : topic #1 (0.020): 0.054*\"overrated\" + 0.039*\"violence\" + 0.034*\"quentin tarantino\" + 0.032*\"revenge\" + 0.031*\"violent\" + 0.031*\"imdb top 250\" + 0.028*\"crime\" + 0.025*\"owned\" + 0.020*\"drama\" + 0.019*\"tarantino\"\n", - "2021-08-24 02:42:41,463 : INFO : topic #13 (0.020): 0.054*\"fairy tale\" + 0.051*\"road trip\" + 0.037*\"assassination\" + 0.034*\"jane austen\" + 0.034*\"cold war\" + 0.033*\"sequel\" + 0.033*\"historical\" + 0.024*\"kids\" + 0.022*\"notable nudity\" + 0.022*\"gerard depardieu\"\n", - "2021-08-24 02:42:41,464 : INFO : topic #21 (0.020): 0.077*\"Sci-Fi\" + 0.065*\"aliens\" + 0.050*\"sci-fi\" + 0.038*\"will smith\" + 0.037*\"space\" + 0.030*\"futuristmovies.com\" + 0.029*\"tommy lee jones\" + 0.026*\"Action\" + 0.024*\"ridley scott\" + 0.018*\"monster\"\n", - "2021-08-24 02:42:41,465 : INFO : topic #14 (0.020): 0.059*\"criterion\" + 0.053*\"disturbing\" + 0.052*\"Drama\" + 0.050*\"tense\" + 0.046*\"atmospheric\" + 0.030*\"stylized\" + 0.028*\"tumey's dvds\" + 0.028*\"bleak\" + 0.022*\"menacing\" + 0.022*\"erlend's dvds\"\n", - "2021-08-24 02:42:41,467 : INFO : topic diff=0.083209, rho=0.206988\n", - "2021-08-24 02:42:41,469 : INFO : PROGRESS: pass 18, at document #2000/10681\n", - "2021-08-24 02:42:41,725 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:41,751 : INFO : topic #24 (0.020): 0.082*\"hitchcock\" + 0.076*\"alfred hitchcock\" + 0.072*\"oppl\" + 0.069*\"murder\" + 0.063*\"vampire\" + 0.048*\"vampires\" + 0.037*\"memory\" + 0.023*\"incest\" + 0.021*\"cary grant\" + 0.017*\"kirsten dunst\"\n", - "2021-08-24 02:42:41,752 : INFO : topic #23 (0.020): 0.084*\"high school\" + 0.060*\"teen\" + 0.051*\"cars\" + 0.035*\"dance\" + 0.028*\"sandra bullock\" + 0.028*\"marx brothers\" + 0.023*\"Comedy\" + 0.021*\"kate winslet\" + 0.020*\"(s)vcd\" + 0.020*\"eddie murphy\"\n", - "2021-08-24 02:42:41,753 : INFO : topic #17 (0.020): 0.326*\"Sci-Fi\" + 0.069*\"Horror\" + 0.068*\"Action\" + 0.045*\"video game adaptation\" + 0.028*\"animals\" + 0.026*\"movie to see\" + 0.021*\"football\" + 0.019*\"futuristic\" + 0.015*\"milla jovovich\" + 0.012*\"g\"\n", - "2021-08-24 02:42:41,753 : INFO : topic #37 (0.020): 0.185*\"War\" + 0.106*\"world war ii\" + 0.104*\"Drama\" + 0.060*\"war\" + 0.045*\"history\" + 0.041*\"jim carrey\" + 0.031*\"Action\" + 0.023*\"nazis\" + 0.017*\"wwii\" + 0.015*\"mental illness\"\n", - "2021-08-24 02:42:41,754 : INFO : topic #31 (0.020): 0.143*\"zombies\" + 0.076*\"pg-13\" + 0.074*\"horror\" + 0.031*\"cult classic\" + 0.027*\"zombie\" + 0.024*\"sam raimi\" + 0.023*\"campy\" + 0.021*\"infidelity\" + 0.021*\"books\" + 0.020*\"joaquin phoenix\"\n", - "2021-08-24 02:42:41,755 : INFO : topic diff=0.153429, rho=0.202691\n", - "2021-08-24 02:42:41,756 : INFO : PROGRESS: pass 18, at document #4000/10681\n", - "2021-08-24 02:42:42,035 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:42,062 : INFO : topic #6 (0.020): 0.118*\"Musical\" + 0.103*\"politics\" + 0.068*\"satire\" + 0.048*\"sean connery\" + 0.047*\"nicolas cage\" + 0.034*\"dvd-r\" + 0.032*\"terrorism\" + 0.029*\"police\" + 0.023*\"political\" + 0.022*\"dvd-ram\"\n", - "2021-08-24 02:42:42,063 : INFO : topic #31 (0.020): 0.123*\"zombies\" + 0.075*\"horror\" + 0.071*\"pg-13\" + 0.041*\"cult classic\" + 0.026*\"campy\" + 0.025*\"infidelity\" + 0.024*\"joaquin phoenix\" + 0.024*\"sam raimi\" + 0.023*\"zombie\" + 0.020*\"books\"\n", - "2021-08-24 02:42:42,064 : INFO : topic #17 (0.020): 0.336*\"Sci-Fi\" + 0.077*\"Horror\" + 0.065*\"Action\" + 0.038*\"video game adaptation\" + 0.028*\"football\" + 0.026*\"animals\" + 0.022*\"movie to see\" + 0.017*\"futuristic\" + 0.015*\"milla jovovich\" + 0.013*\"g\"\n", - "2021-08-24 02:42:42,065 : INFO : topic #22 (0.020): 0.228*\"betamax\" + 0.099*\"dvd-video\" + 0.075*\"clv\" + 0.036*\"aviation\" + 0.028*\"library on hold\" + 0.023*\"terry gilliam\" + 0.018*\"dvd collection\" + 0.016*\"gilliam\" + 0.013*\"seen 2008\" + 0.013*\"70mm\"\n", - "2021-08-24 02:42:42,066 : INFO : topic #44 (0.020): 0.109*\"mafia\" + 0.088*\"music\" + 0.054*\"martin scorsese\" + 0.051*\"organized crime\" + 0.043*\"rock and roll\" + 0.032*\"Musical\" + 0.030*\"wired 50 greatest soundtracks\" + 0.025*\"guns\" + 0.020*\"confrontational\" + 0.020*\"mob\"\n", - "2021-08-24 02:42:42,067 : INFO : topic diff=0.027774, rho=0.202691\n", - "2021-08-24 02:42:42,068 : INFO : PROGRESS: pass 18, at document #6000/10681\n", - "2021-08-24 02:42:42,310 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:42,337 : INFO : topic #35 (0.020): 0.356*\"Comedy\" + 0.310*\"Drama\" + 0.189*\"Romance\" + 0.015*\"lesbian\" + 0.011*\"bibliothek\" + 0.008*\"philip seymour hoffman\" + 0.006*\"sean penn\" + 0.006*\"m. night shyamalan\" + 0.006*\"oscar (best foreign language film)\" + 0.004*\"library vhs\"\n", - "2021-08-24 02:42:42,337 : INFO : topic #29 (0.020): 0.101*\"nudity (full frontal - notable)\" + 0.059*\"shakespeare\" + 0.052*\"Drama\" + 0.046*\"based on a play\" + 0.039*\"adapted from:play\" + 0.031*\"christianity\" + 0.027*\"religion\" + 0.021*\"jodie foster\" + 0.021*\"disability\" + 0.020*\"cannibalism\"\n", - "2021-08-24 02:42:42,338 : INFO : topic #46 (0.020): 0.088*\"action\" + 0.064*\"fantasy\" + 0.043*\"sci-fi\" + 0.036*\"adventure\" + 0.034*\"dvd\" + 0.024*\"Adventure\" + 0.023*\"seen at the cinema\" + 0.022*\"seen more than once\" + 0.019*\"tom cruise\" + 0.018*\"space\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:42,339 : INFO : topic #47 (0.020): 0.065*\"serial killer\" + 0.056*\"psychology\" + 0.053*\"brad pitt\" + 0.042*\"edward norton\" + 0.032*\"steven spielberg\" + 0.032*\"heist\" + 0.028*\"matt damon\" + 0.024*\"crime\" + 0.021*\"hayao miyazaki\" + 0.017*\"scary\"\n", - "2021-08-24 02:42:42,341 : INFO : topic #34 (0.020): 0.093*\"ghosts\" + 0.044*\"bill murray\" + 0.041*\"television\" + 0.037*\"courtroom\" + 0.033*\"courtroom drama\" + 0.023*\"roman polanski\" + 0.022*\"court\" + 0.018*\"secret service\" + 0.017*\"2.5\" + 0.016*\"opera\"\n", - "2021-08-24 02:42:42,343 : INFO : topic diff=0.054279, rho=0.202691\n", - "2021-08-24 02:42:42,345 : INFO : PROGRESS: pass 18, at document #8000/10681\n", - "2021-08-24 02:42:42,592 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:42,620 : INFO : topic #16 (0.020): 0.275*\"nudity (topless)\" + 0.186*\"nudity (topless - brief)\" + 0.067*\"nudity (rear)\" + 0.028*\"pg\" + 0.027*\"claymation\" + 0.022*\"military\" + 0.018*\"childhood\" + 0.017*\"weird\" + 0.017*\"aardman\" + 0.010*\"shark\"\n", - "2021-08-24 02:42:42,621 : INFO : topic #9 (0.020): 0.245*\"based on a book\" + 0.122*\"adapted from:book\" + 0.060*\"Drama\" + 0.039*\"stephen king\" + 0.038*\"jack nicholson\" + 0.036*\"based on book\" + 0.027*\"imdb bottom 100\" + 0.022*\"literary adaptation\" + 0.020*\"stupid\" + 0.020*\"los angeles\"\n", - "2021-08-24 02:42:42,622 : INFO : topic #8 (0.020): 0.141*\"anime\" + 0.090*\"tom hanks\" + 0.077*\"true story\" + 0.056*\"based on a true story\" + 0.027*\"drama\" + 0.026*\"good\" + 0.025*\"japan\" + 0.023*\"interesting\" + 0.021*\"not funny\" + 0.018*\"archaeology\"\n", - "2021-08-24 02:42:42,622 : INFO : topic #26 (0.020): 0.045*\"Drama\" + 0.032*\"james bond\" + 0.022*\"007\" + 0.022*\"reflective\" + 0.021*\"atmospheric\" + 0.021*\"poignant\" + 0.021*\"bond\" + 0.019*\"bittersweet\" + 0.019*\"lyrical\" + 0.018*\"deliberate\"\n", - "2021-08-24 02:42:42,623 : INFO : topic #24 (0.020): 0.070*\"murder\" + 0.069*\"vampire\" + 0.068*\"hitchcock\" + 0.065*\"vampires\" + 0.055*\"memory\" + 0.052*\"alfred hitchcock\" + 0.051*\"oppl\" + 0.019*\"kirsten dunst\" + 0.019*\"cary grant\" + 0.018*\"incest\"\n", - "2021-08-24 02:42:42,625 : INFO : topic diff=0.044541, rho=0.202691\n", - "2021-08-24 02:42:42,626 : INFO : PROGRESS: pass 18, at document #10000/10681\n", - "2021-08-24 02:42:42,899 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:42,926 : INFO : topic #1 (0.020): 0.054*\"overrated\" + 0.040*\"violence\" + 0.037*\"quentin tarantino\" + 0.034*\"revenge\" + 0.030*\"crime\" + 0.026*\"violent\" + 0.025*\"owned\" + 0.023*\"imdb top 250\" + 0.021*\"tarantino\" + 0.021*\"drama\"\n", - "2021-08-24 02:42:42,927 : INFO : topic #17 (0.020): 0.347*\"Sci-Fi\" + 0.079*\"Horror\" + 0.067*\"Action\" + 0.040*\"video game adaptation\" + 0.023*\"football\" + 0.020*\"animals\" + 0.019*\"movie to see\" + 0.016*\"futuristic\" + 0.014*\"milla jovovich\" + 0.014*\"g\"\n", - "2021-08-24 02:42:42,928 : INFO : topic #30 (0.020): 0.247*\"Adventure\" + 0.115*\"Children\" + 0.110*\"Comedy\" + 0.106*\"Fantasy\" + 0.085*\"Action\" + 0.058*\"70mm\" + 0.049*\"Drama\" + 0.048*\"Animation\" + 0.017*\"Musical\" + 0.008*\"submarine\"\n", - "2021-08-24 02:42:42,928 : INFO : topic #7 (0.020): 0.108*\"romance\" + 0.062*\"Romance\" + 0.045*\"chick flick\" + 0.040*\"boring\" + 0.026*\"girlie movie\" + 0.025*\"baseball\" + 0.024*\"Comedy\" + 0.024*\"love story\" + 0.023*\"whimsical\" + 0.019*\"wedding\"\n", - "2021-08-24 02:42:42,929 : INFO : topic #20 (0.020): 0.095*\"biography\" + 0.068*\"Drama\" + 0.054*\"biopic\" + 0.045*\"death\" + 0.044*\"corvallis library\" + 0.037*\"suicide\" + 0.034*\"ensemble cast\" + 0.028*\"julia roberts\" + 0.027*\"ingmar bergman\" + 0.025*\"medieval\"\n", - "2021-08-24 02:42:42,930 : INFO : topic diff=0.037005, rho=0.202691\n", - "2021-08-24 02:42:43,076 : INFO : -20.966 per-word bound, 2048239.5 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:43,077 : INFO : PROGRESS: pass 18, at document #10681/10681\n", - "2021-08-24 02:42:43,176 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:43,202 : INFO : topic #6 (0.020): 0.144*\"Musical\" + 0.115*\"politics\" + 0.063*\"satire\" + 0.039*\"nicolas cage\" + 0.038*\"terrorism\" + 0.033*\"dvd-r\" + 0.028*\"corruption\" + 0.027*\"sean connery\" + 0.027*\"police\" + 0.025*\"political\"\n", - "2021-08-24 02:42:43,203 : INFO : topic #41 (0.020): 0.135*\"remake\" + 0.078*\"new york city\" + 0.064*\"christmas\" + 0.041*\"family\" + 0.034*\"new york\" + 0.034*\"bibliothek\" + 0.031*\"movie to see\" + 0.030*\"Drama\" + 0.030*\"eric's dvds\" + 0.026*\"kevin spacey\"\n", - "2021-08-24 02:42:43,204 : INFO : topic #26 (0.020): 0.044*\"Drama\" + 0.031*\"james bond\" + 0.020*\"reflective\" + 0.020*\"poignant\" + 0.019*\"atmospheric\" + 0.019*\"007\" + 0.019*\"assassin\" + 0.019*\"bond\" + 0.019*\"bittersweet\" + 0.018*\"lyrical\"\n", - "2021-08-24 02:42:43,205 : INFO : topic #2 (0.020): 0.317*\"Documentary\" + 0.148*\"to see\" + 0.060*\"documentary\" + 0.026*\"movie to see\" + 0.023*\"mockumentary\" + 0.020*\"owen wilson\" + 0.018*\"dogs\" + 0.017*\"sexuality\" + 0.016*\"kevin smith\" + 0.014*\"bechdel test:fail\"\n", - "2021-08-24 02:42:43,205 : INFO : topic #15 (0.020): 0.103*\"disney\" + 0.100*\"animation\" + 0.091*\"pixar\" + 0.049*\"Animation\" + 0.042*\"children\" + 0.039*\"pirates\" + 0.035*\"angelina jolie\" + 0.033*\"Children\" + 0.022*\"disney animated feature\" + 0.019*\"cartoon\"\n", - "2021-08-24 02:42:43,207 : INFO : topic diff=0.081275, rho=0.202691\n", - "2021-08-24 02:42:43,209 : INFO : PROGRESS: pass 19, at document #2000/10681\n", - "2021-08-24 02:42:43,476 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:43,502 : INFO : topic #26 (0.020): 0.043*\"Drama\" + 0.024*\"james bond\" + 0.022*\"mel gibson\" + 0.021*\"poignant\" + 0.020*\"atmospheric\" + 0.019*\"bittersweet\" + 0.019*\"reflective\" + 0.018*\"lyrical\" + 0.017*\"assassin\" + 0.017*\"bond\"\n", - "2021-08-24 02:42:43,503 : INFO : topic #41 (0.020): 0.113*\"remake\" + 0.069*\"new york city\" + 0.066*\"christmas\" + 0.044*\"family\" + 0.039*\"kevin spacey\" + 0.035*\"bibliothek\" + 0.033*\"new york\" + 0.029*\"Drama\" + 0.027*\"eric's dvds\" + 0.023*\"movie to see\"\n", - "2021-08-24 02:42:43,504 : INFO : topic #45 (0.020): 0.219*\"less than 300 ratings\" + 0.111*\"Drama\" + 0.073*\"nudity (topless - notable)\" + 0.048*\"tim burton\" + 0.030*\"not corv lib\" + 0.025*\"library\" + 0.016*\"blindfold\" + 0.014*\"depressing\" + 0.013*\"san francisco\" + 0.013*\"golden raspberry (worst actor)\"\n", - "2021-08-24 02:42:43,504 : INFO : topic #9 (0.020): 0.263*\"based on a book\" + 0.112*\"adapted from:book\" + 0.054*\"Drama\" + 0.042*\"stephen king\" + 0.042*\"jack nicholson\" + 0.035*\"based on book\" + 0.027*\"imdb bottom 100\" + 0.022*\"literary adaptation\" + 0.021*\"los angeles\" + 0.021*\"stupid\"\n", - "2021-08-24 02:42:43,505 : INFO : topic #15 (0.020): 0.169*\"disney\" + 0.094*\"animation\" + 0.074*\"pixar\" + 0.045*\"Animation\" + 0.043*\"children\" + 0.038*\"Children\" + 0.030*\"disney animated feature\" + 0.029*\"pirates\" + 0.024*\"angelina jolie\" + 0.021*\"cartoon\"\n", - "2021-08-24 02:42:43,507 : INFO : topic diff=0.149984, rho=0.198652\n", - "2021-08-24 02:42:43,509 : INFO : PROGRESS: pass 19, at document #4000/10681\n", - "2021-08-24 02:42:43,757 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:43,784 : INFO : topic #26 (0.020): 0.041*\"Drama\" + 0.038*\"james bond\" + 0.027*\"007\" + 0.026*\"bond\" + 0.024*\"mel gibson\" + 0.021*\"reflective\" + 0.020*\"atmospheric\" + 0.020*\"poignant\" + 0.018*\"lyrical\" + 0.018*\"assassin\"\n", - "2021-08-24 02:42:43,785 : INFO : topic #3 (0.020): 0.174*\"oscar (best picture)\" + 0.070*\"oscar (best directing)\" + 0.064*\"oscar (best actor)\" + 0.053*\"oscar (best supporting actor)\" + 0.034*\"al pacino\" + 0.025*\"afi 100 (cheers)\" + 0.023*\"Drama\" + 0.022*\"afi 100\" + 0.020*\"great acting\" + 0.018*\"tumey's dvds\"\n", - "2021-08-24 02:42:43,785 : INFO : topic #6 (0.020): 0.119*\"Musical\" + 0.103*\"politics\" + 0.068*\"satire\" + 0.048*\"sean connery\" + 0.047*\"nicolas cage\" + 0.034*\"dvd-r\" + 0.032*\"terrorism\" + 0.029*\"police\" + 0.023*\"political\" + 0.022*\"dvd-ram\"\n", - "2021-08-24 02:42:43,787 : INFO : topic #24 (0.020): 0.093*\"hitchcock\" + 0.078*\"murder\" + 0.071*\"alfred hitchcock\" + 0.067*\"vampire\" + 0.060*\"oppl\" + 0.050*\"vampires\" + 0.035*\"memory\" + 0.021*\"incest\" + 0.018*\"cary grant\" + 0.016*\"kirsten dunst\"\n", - "2021-08-24 02:42:43,787 : INFO : topic #38 (0.020): 0.169*\"drugs\" + 0.050*\"samuel l. jackson\" + 0.025*\"divx\" + 0.025*\"basketball\" + 0.024*\"addiction\" + 0.023*\"hulu\" + 0.023*\"ewan mcgregor\" + 0.021*\"michael caine\" + 0.020*\"liam neeson\" + 0.020*\"poverty\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:43,789 : INFO : topic diff=0.027116, rho=0.198652\n", - "2021-08-24 02:42:43,790 : INFO : PROGRESS: pass 19, at document #6000/10681\n", - "2021-08-24 02:42:44,024 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:44,050 : INFO : topic #5 (0.020): 0.277*\"classic\" + 0.065*\"musical\" + 0.045*\"afi 100 (laughs)\" + 0.033*\"Musical\" + 0.029*\"national film registry\" + 0.021*\"afi 100\" + 0.018*\"john travolta\" + 0.017*\"70mm\" + 0.016*\"adapted from b'way\" + 0.015*\"breakthroughs\"\n", - "2021-08-24 02:42:44,051 : INFO : topic #36 (0.020): 0.084*\"cult film\" + 0.046*\"peter jackson\" + 0.044*\"russell crowe\" + 0.038*\"downbeat\" + 0.031*\"adam sandler\" + 0.029*\"1980s\" + 0.022*\"80s\" + 0.021*\"new zealand\" + 0.019*\"not available from netflix\" + 0.014*\"must see!\"\n", - "2021-08-24 02:42:44,052 : INFO : topic #11 (0.020): 0.129*\"religion\" + 0.115*\"keanu reeves\" + 0.035*\"island\" + 0.021*\"slavery\" + 0.018*\"courtesan\" + 0.017*\"reality tv\" + 0.016*\"class issues\" + 0.016*\"slash\" + 0.016*\"facebook rec\" + 0.015*\"product placement\"\n", - "2021-08-24 02:42:44,052 : INFO : topic #24 (0.020): 0.080*\"hitchcock\" + 0.078*\"murder\" + 0.068*\"vampire\" + 0.061*\"alfred hitchcock\" + 0.056*\"vampires\" + 0.053*\"oppl\" + 0.048*\"memory\" + 0.019*\"incest\" + 0.018*\"cary grant\" + 0.017*\"kirsten dunst\"\n", - "2021-08-24 02:42:44,053 : INFO : topic #45 (0.020): 0.191*\"less than 300 ratings\" + 0.109*\"Drama\" + 0.081*\"nudity (topless - notable)\" + 0.050*\"tim burton\" + 0.031*\"not corv lib\" + 0.022*\"library\" + 0.017*\"depressing\" + 0.017*\"blindfold\" + 0.015*\"golden raspberry (worst actor)\" + 0.014*\"san francisco\"\n", - "2021-08-24 02:42:44,054 : INFO : topic diff=0.053205, rho=0.198652\n", - "2021-08-24 02:42:44,055 : INFO : PROGRESS: pass 19, at document #8000/10681\n", - "2021-08-24 02:42:44,298 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:44,325 : INFO : topic #36 (0.020): 0.078*\"cult film\" + 0.049*\"peter jackson\" + 0.042*\"downbeat\" + 0.041*\"russell crowe\" + 0.031*\"adam sandler\" + 0.029*\"not available from netflix\" + 0.026*\"1980s\" + 0.024*\"new zealand\" + 0.021*\"80s\" + 0.016*\"drew barrymore\"\n", - "2021-08-24 02:42:44,326 : INFO : topic #31 (0.020): 0.139*\"zombies\" + 0.073*\"horror\" + 0.065*\"pg-13\" + 0.039*\"zombie\" + 0.033*\"cult classic\" + 0.026*\"sam raimi\" + 0.026*\"campy\" + 0.023*\"books\" + 0.022*\"joaquin phoenix\" + 0.020*\"infidelity\"\n", - "2021-08-24 02:42:44,327 : INFO : topic #40 (0.020): 0.246*\"r\" + 0.115*\"clearplay\" + 0.054*\"movie to see\" + 0.050*\"prison\" + 0.045*\"Drama\" + 0.031*\"morgan freeman\" + 0.027*\"friendship\" + 0.020*\"john wayne\" + 0.019*\"conspiracy\" + 0.017*\"1970s\"\n", - "2021-08-24 02:42:44,328 : INFO : topic #32 (0.020): 0.136*\"johnny depp\" + 0.069*\"vhs\" + 0.067*\"clint eastwood\" + 0.045*\"jackie chan\" + 0.033*\"western\" + 0.030*\"kung fu\" + 0.030*\"propaganda\" + 0.029*\"india\" + 0.027*\"david lynch\" + 0.026*\"italian\"\n", - "2021-08-24 02:42:44,329 : INFO : topic #19 (0.020): 0.060*\"drama\" + 0.053*\"nudity (full frontal)\" + 0.034*\"philip k. dick\" + 0.033*\"Drama\" + 0.026*\"rape\" + 0.026*\"vietnam war\" + 0.025*\"vietnam\" + 0.024*\"very good\" + 0.020*\"soccer\" + 0.017*\"to see\"\n", - "2021-08-24 02:42:44,330 : INFO : topic diff=0.043673, rho=0.198652\n", - "2021-08-24 02:42:44,332 : INFO : PROGRESS: pass 19, at document #10000/10681\n", - "2021-08-24 02:42:44,584 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:44,612 : INFO : topic #19 (0.020): 0.063*\"nudity (full frontal)\" + 0.054*\"drama\" + 0.035*\"Drama\" + 0.034*\"philip k. dick\" + 0.025*\"ummarti2007\" + 0.024*\"rape\" + 0.024*\"slow\" + 0.021*\"male nudity\" + 0.021*\"vietnam war\" + 0.021*\"very good\"\n", - "2021-08-24 02:42:44,613 : INFO : topic #15 (0.020): 0.118*\"disney\" + 0.098*\"animation\" + 0.085*\"pixar\" + 0.045*\"Animation\" + 0.044*\"pirates\" + 0.040*\"children\" + 0.035*\"Children\" + 0.028*\"angelina jolie\" + 0.025*\"disney animated feature\" + 0.022*\"cartoon\"\n", - "2021-08-24 02:42:44,614 : INFO : topic #17 (0.020): 0.347*\"Sci-Fi\" + 0.079*\"Horror\" + 0.067*\"Action\" + 0.040*\"video game adaptation\" + 0.023*\"football\" + 0.020*\"animals\" + 0.019*\"movie to see\" + 0.016*\"futuristic\" + 0.014*\"milla jovovich\" + 0.014*\"g\"\n", - "2021-08-24 02:42:44,615 : INFO : topic #36 (0.020): 0.068*\"cult film\" + 0.046*\"downbeat\" + 0.045*\"peter jackson\" + 0.040*\"russell crowe\" + 0.034*\"not available from netflix\" + 0.031*\"adam sandler\" + 0.025*\"1980s\" + 0.023*\"new zealand\" + 0.018*\"existentialism\" + 0.017*\"must see!\"\n", - "2021-08-24 02:42:44,616 : INFO : topic #47 (0.020): 0.062*\"serial killer\" + 0.055*\"psychology\" + 0.050*\"brad pitt\" + 0.041*\"edward norton\" + 0.036*\"heist\" + 0.032*\"matt damon\" + 0.030*\"hayao miyazaki\" + 0.026*\"steven spielberg\" + 0.019*\"crime\" + 0.016*\"brilliant\"\n", - "2021-08-24 02:42:44,617 : INFO : topic diff=0.036102, rho=0.198652\n", - "2021-08-24 02:42:44,771 : INFO : -20.966 per-word bound, 2047618.7 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:44,772 : INFO : PROGRESS: pass 19, at document #10681/10681\n", - "2021-08-24 02:42:44,871 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:44,898 : INFO : topic #0 (0.020): 0.146*\"can't remember\" + 0.102*\"based on a tv show\" + 0.089*\"directorial debut\" + 0.074*\"Comedy\" + 0.052*\"ummarti2006\" + 0.046*\"keira knightley\" + 0.028*\"australia\" + 0.025*\"australian\" + 0.023*\"immigrants\" + 0.023*\"dani2006\"\n", - "2021-08-24 02:42:44,899 : INFO : topic #44 (0.020): 0.080*\"mafia\" + 0.077*\"music\" + 0.052*\"organized crime\" + 0.050*\"martin scorsese\" + 0.046*\"rock and roll\" + 0.042*\"Musical\" + 0.026*\"wired 50 greatest soundtracks\" + 0.025*\"guns\" + 0.020*\"confrontational\" + 0.018*\"dysfunctional family\"\n", - "2021-08-24 02:42:44,900 : INFO : topic #48 (0.020): 0.126*\"netflix\" + 0.079*\"twist ending\" + 0.071*\"bruce willis\" + 0.045*\"coming of age\" + 0.035*\"journalism\" + 0.034*\"to see\" + 0.032*\"Drama\" + 0.025*\"talking animals\" + 0.024*\"relationships\" + 0.020*\"sexy\"\n", - "2021-08-24 02:42:44,900 : INFO : topic #26 (0.020): 0.044*\"Drama\" + 0.031*\"james bond\" + 0.020*\"reflective\" + 0.020*\"poignant\" + 0.019*\"atmospheric\" + 0.019*\"007\" + 0.019*\"bond\" + 0.019*\"assassin\" + 0.019*\"bittersweet\" + 0.018*\"lyrical\"\n", - "2021-08-24 02:42:44,901 : INFO : topic #45 (0.020): 0.264*\"less than 300 ratings\" + 0.115*\"Drama\" + 0.062*\"nudity (topless - notable)\" + 0.039*\"tim burton\" + 0.030*\"not corv lib\" + 0.028*\"library\" + 0.016*\"blindfold\" + 0.016*\"depressing\" + 0.014*\"san francisco\" + 0.013*\"seen 2007\"\n", - "2021-08-24 02:42:44,902 : INFO : topic diff=0.079569, rho=0.198652\n", - "2021-08-24 02:42:44,904 : INFO : PROGRESS: pass 20, at document #2000/10681\n", - "2021-08-24 02:42:45,189 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:45,217 : INFO : topic #31 (0.020): 0.143*\"zombies\" + 0.076*\"pg-13\" + 0.074*\"horror\" + 0.031*\"cult classic\" + 0.027*\"zombie\" + 0.024*\"sam raimi\" + 0.023*\"campy\" + 0.021*\"infidelity\" + 0.021*\"books\" + 0.020*\"joaquin phoenix\"\n", - "2021-08-24 02:42:45,217 : INFO : topic #8 (0.020): 0.105*\"anime\" + 0.085*\"true story\" + 0.082*\"tom hanks\" + 0.071*\"based on a true story\" + 0.026*\"good\" + 0.026*\"drama\" + 0.025*\"archaeology\" + 0.021*\"japan\" + 0.020*\"to-rent\" + 0.020*\"interesting\"\n", - "2021-08-24 02:42:45,218 : INFO : topic #23 (0.020): 0.084*\"high school\" + 0.061*\"teen\" + 0.051*\"cars\" + 0.035*\"dance\" + 0.028*\"marx brothers\" + 0.027*\"sandra bullock\" + 0.023*\"Comedy\" + 0.021*\"kate winslet\" + 0.020*\"(s)vcd\" + 0.020*\"eddie murphy\"\n", - "2021-08-24 02:42:45,219 : INFO : topic #46 (0.020): 0.090*\"action\" + 0.052*\"fantasy\" + 0.047*\"sci-fi\" + 0.035*\"adventure\" + 0.029*\"dvd\" + 0.024*\"Adventure\" + 0.022*\"seen at the cinema\" + 0.021*\"seen more than once\" + 0.021*\"space\" + 0.020*\"harrison ford\"\n", - "2021-08-24 02:42:45,220 : INFO : topic #7 (0.020): 0.113*\"romance\" + 0.068*\"Romance\" + 0.052*\"chick flick\" + 0.036*\"boring\" + 0.028*\"girlie movie\" + 0.024*\"Comedy\" + 0.024*\"love story\" + 0.023*\"baseball\" + 0.020*\"wedding\" + 0.020*\"whimsical\"\n", - "2021-08-24 02:42:45,221 : INFO : topic diff=0.146576, rho=0.194844\n", - "2021-08-24 02:42:45,223 : INFO : PROGRESS: pass 20, at document #4000/10681\n", - "2021-08-24 02:42:45,491 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:45,517 : INFO : topic #33 (0.020): 0.114*\"comedy\" + 0.109*\"Comedy\" + 0.057*\"funny\" + 0.036*\"parody\" + 0.036*\"dark comedy\" + 0.034*\"seen more than once\" + 0.029*\"coen brothers\" + 0.029*\"quirky\" + 0.029*\"hilarious\" + 0.022*\"black comedy\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:45,518 : INFO : topic #9 (0.020): 0.245*\"based on a book\" + 0.112*\"adapted from:book\" + 0.054*\"Drama\" + 0.049*\"stephen king\" + 0.041*\"jack nicholson\" + 0.037*\"based on book\" + 0.026*\"imdb bottom 100\" + 0.024*\"stupid\" + 0.021*\"literary adaptation\" + 0.021*\"los angeles\"\n", - "2021-08-24 02:42:45,519 : INFO : topic #36 (0.020): 0.089*\"cult film\" + 0.047*\"russell crowe\" + 0.040*\"downbeat\" + 0.032*\"adam sandler\" + 0.032*\"1980s\" + 0.030*\"peter jackson\" + 0.020*\"80s\" + 0.020*\"not available from netflix\" + 0.020*\"new zealand\" + 0.016*\"virus\"\n", - "2021-08-24 02:42:45,520 : INFO : topic #15 (0.020): 0.162*\"disney\" + 0.091*\"animation\" + 0.076*\"pixar\" + 0.049*\"Animation\" + 0.043*\"children\" + 0.040*\"Children\" + 0.033*\"disney animated feature\" + 0.026*\"angelina jolie\" + 0.025*\"pirates\" + 0.020*\"cartoon\"\n", - "2021-08-24 02:42:45,521 : INFO : topic #42 (0.020): 0.092*\"robin williams\" + 0.089*\"martial arts\" + 0.070*\"japan\" + 0.039*\"samurai\" + 0.036*\"akira kurosawa\" + 0.029*\"Drama\" + 0.027*\"orson welles\" + 0.025*\"divorce\" + 0.022*\"kurosawa\" + 0.020*\"christopher walken\"\n", - "2021-08-24 02:42:45,522 : INFO : topic diff=0.026657, rho=0.194844\n", - "2021-08-24 02:42:45,524 : INFO : PROGRESS: pass 20, at document #6000/10681\n", - "2021-08-24 02:42:45,768 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:45,796 : INFO : topic #27 (0.020): 0.319*\"Horror\" + 0.157*\"Thriller\" + 0.127*\"Mystery\" + 0.042*\"Drama\" + 0.028*\"easily confused with other movie(s) (title)\" + 0.028*\"Fantasy\" + 0.027*\"Film-Noir\" + 0.015*\"eerie\" + 0.015*\"slasher\" + 0.014*\"tumey's dvds\"\n", - "2021-08-24 02:42:45,797 : INFO : topic #7 (0.020): 0.111*\"romance\" + 0.061*\"Romance\" + 0.052*\"chick flick\" + 0.038*\"boring\" + 0.032*\"girlie movie\" + 0.029*\"baseball\" + 0.025*\"Comedy\" + 0.023*\"whimsical\" + 0.018*\"wedding\" + 0.017*\"comedy\"\n", - "2021-08-24 02:42:45,797 : INFO : topic #42 (0.020): 0.092*\"robin williams\" + 0.087*\"martial arts\" + 0.067*\"japan\" + 0.037*\"samurai\" + 0.035*\"akira kurosawa\" + 0.031*\"Drama\" + 0.027*\"orson welles\" + 0.025*\"hugh grant\" + 0.022*\"julianne moore\" + 0.022*\"divorce\"\n", - "2021-08-24 02:42:45,798 : INFO : topic #21 (0.020): 0.078*\"aliens\" + 0.075*\"Sci-Fi\" + 0.060*\"sci-fi\" + 0.043*\"space\" + 0.040*\"futuristmovies.com\" + 0.026*\"will smith\" + 0.024*\"Action\" + 0.023*\"ridley scott\" + 0.022*\"tommy lee jones\" + 0.019*\"70mm\"\n", - "2021-08-24 02:42:45,799 : INFO : topic #38 (0.020): 0.177*\"drugs\" + 0.044*\"samuel l. jackson\" + 0.027*\"divx\" + 0.026*\"ewan mcgregor\" + 0.024*\"addiction\" + 0.023*\"hulu\" + 0.022*\"poverty\" + 0.021*\"michael caine\" + 0.021*\"basketball\" + 0.020*\"liam neeson\"\n", - "2021-08-24 02:42:45,801 : INFO : topic diff=0.051831, rho=0.194844\n", - "2021-08-24 02:42:45,803 : INFO : PROGRESS: pass 20, at document #8000/10681\n", - "2021-08-24 02:42:46,047 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:46,074 : INFO : topic #45 (0.020): 0.231*\"less than 300 ratings\" + 0.116*\"Drama\" + 0.074*\"nudity (topless - notable)\" + 0.042*\"tim burton\" + 0.028*\"not corv lib\" + 0.025*\"library\" + 0.016*\"blindfold\" + 0.016*\"depressing\" + 0.015*\"michael moore\" + 0.013*\"golden raspberry (worst actor)\"\n", - "2021-08-24 02:42:46,075 : INFO : topic #2 (0.020): 0.288*\"Documentary\" + 0.103*\"to see\" + 0.064*\"documentary\" + 0.026*\"mockumentary\" + 0.026*\"sexuality\" + 0.023*\"star trek\" + 0.021*\"dogs\" + 0.021*\"kevin smith\" + 0.018*\"in netflix queue\" + 0.018*\"movie to see\"\n", - "2021-08-24 02:42:46,076 : INFO : topic #19 (0.020): 0.061*\"drama\" + 0.053*\"nudity (full frontal)\" + 0.034*\"philip k. dick\" + 0.033*\"Drama\" + 0.026*\"rape\" + 0.026*\"vietnam war\" + 0.025*\"vietnam\" + 0.024*\"very good\" + 0.019*\"soccer\" + 0.017*\"to see\"\n", - "2021-08-24 02:42:46,076 : INFO : topic #25 (0.020): 0.167*\"Western\" + 0.077*\"erlend's dvds\" + 0.049*\"woody allen\" + 0.048*\"Drama\" + 0.046*\"gothic\" + 0.036*\"gene hackman\" + 0.032*\"scary movies to see on halloween\" + 0.029*\"nicole kidman\" + 0.024*\"george clooney\" + 0.024*\"sad\"\n", - "2021-08-24 02:42:46,077 : INFO : topic #43 (0.020): 0.083*\"surreal\" + 0.046*\"satirical\" + 0.042*\"quirky\" + 0.039*\"cynical\" + 0.033*\"dreamlike\" + 0.033*\"biting\" + 0.033*\"narrated\" + 0.029*\"stanley kubrick\" + 0.026*\"irreverent\" + 0.025*\"hallucinatory\"\n", - "2021-08-24 02:42:46,078 : INFO : topic diff=0.042951, rho=0.194844\n", - "2021-08-24 02:42:46,079 : INFO : PROGRESS: pass 20, at document #10000/10681\n", - "2021-08-24 02:42:46,322 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:46,350 : INFO : topic #7 (0.020): 0.108*\"romance\" + 0.062*\"Romance\" + 0.045*\"chick flick\" + 0.040*\"boring\" + 0.027*\"girlie movie\" + 0.025*\"baseball\" + 0.023*\"Comedy\" + 0.023*\"love story\" + 0.023*\"whimsical\" + 0.019*\"wedding\"\n", - "2021-08-24 02:42:46,351 : INFO : topic #27 (0.020): 0.307*\"Horror\" + 0.161*\"Thriller\" + 0.133*\"Mystery\" + 0.049*\"Drama\" + 0.034*\"easily confused with other movie(s) (title)\" + 0.031*\"Fantasy\" + 0.031*\"Film-Noir\" + 0.015*\"eerie\" + 0.014*\"tumey's dvds\" + 0.010*\"slasher\"\n", - "2021-08-24 02:42:46,352 : INFO : topic #32 (0.020): 0.150*\"johnny depp\" + 0.064*\"clint eastwood\" + 0.061*\"vhs\" + 0.046*\"watched 2007\" + 0.039*\"jackie chan\" + 0.038*\"propaganda\" + 0.030*\"western\" + 0.029*\"leonardo dicaprio\" + 0.027*\"italian\" + 0.026*\"kung fu\"\n", - "2021-08-24 02:42:46,353 : INFO : topic #12 (0.020): 0.160*\"comic book\" + 0.100*\"superhero\" + 0.068*\"dystopia\" + 0.068*\"super-hero\" + 0.045*\"holocaust\" + 0.034*\"adapted from:comic\" + 0.022*\"kidnapping\" + 0.021*\"alter ego\" + 0.018*\"batman\" + 0.017*\"dark\"\n", - "2021-08-24 02:42:46,354 : INFO : topic #48 (0.020): 0.102*\"netflix\" + 0.084*\"bruce willis\" + 0.084*\"twist ending\" + 0.044*\"coming of age\" + 0.037*\"journalism\" + 0.025*\"talking animals\" + 0.025*\"Drama\" + 0.024*\"sexy\" + 0.022*\"to see\" + 0.021*\"avi\"\n", - "2021-08-24 02:42:46,355 : INFO : topic diff=0.035285, rho=0.194844\n", - "2021-08-24 02:42:46,501 : INFO : -20.965 per-word bound, 2047510.0 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:46,501 : INFO : PROGRESS: pass 20, at document #10681/10681\n", - "2021-08-24 02:42:46,599 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:46,626 : INFO : topic #0 (0.020): 0.147*\"can't remember\" + 0.102*\"based on a tv show\" + 0.090*\"directorial debut\" + 0.074*\"Comedy\" + 0.051*\"ummarti2006\" + 0.046*\"keira knightley\" + 0.028*\"australia\" + 0.025*\"australian\" + 0.023*\"immigrants\" + 0.023*\"dani2006\"\n", - "2021-08-24 02:42:46,627 : INFO : topic #4 (0.020): 0.066*\"Drama\" + 0.062*\"sports\" + 0.060*\"london\" + 0.047*\"sven's to see list\" + 0.045*\"boxing\" + 0.040*\"underrated\" + 0.038*\"british\" + 0.033*\"hw drama\" + 0.032*\"notable soundtrack\" + 0.030*\"inspirational\"\n", - "2021-08-24 02:42:46,628 : INFO : topic #35 (0.020): 0.355*\"Comedy\" + 0.314*\"Drama\" + 0.200*\"Romance\" + 0.014*\"lesbian\" + 0.008*\"bibliothek\" + 0.008*\"sean penn\" + 0.007*\"philip seymour hoffman\" + 0.005*\"m. night shyamalan\" + 0.005*\"oscar (best foreign language film)\" + 0.003*\"great cinematography\"\n", - "2021-08-24 02:42:46,628 : INFO : topic #6 (0.020): 0.144*\"Musical\" + 0.114*\"politics\" + 0.063*\"satire\" + 0.039*\"nicolas cage\" + 0.038*\"terrorism\" + 0.033*\"dvd-r\" + 0.028*\"corruption\" + 0.028*\"sean connery\" + 0.027*\"police\" + 0.025*\"political\"\n", - "2021-08-24 02:42:46,629 : INFO : topic #32 (0.020): 0.148*\"johnny depp\" + 0.054*\"clint eastwood\" + 0.054*\"vhs\" + 0.043*\"propaganda\" + 0.042*\"kung fu\" + 0.040*\"jackie chan\" + 0.039*\"watched 2007\" + 0.034*\"india\" + 0.030*\"western\" + 0.024*\"leonardo dicaprio\"\n", - "2021-08-24 02:42:46,630 : INFO : topic diff=0.078000, rho=0.194844\n", - "2021-08-24 02:42:46,632 : INFO : PROGRESS: pass 21, at document #2000/10681\n", - "2021-08-24 02:42:46,911 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:46,938 : INFO : topic #46 (0.020): 0.090*\"action\" + 0.052*\"fantasy\" + 0.047*\"sci-fi\" + 0.035*\"adventure\" + 0.029*\"dvd\" + 0.024*\"Adventure\" + 0.022*\"seen at the cinema\" + 0.021*\"seen more than once\" + 0.021*\"space\" + 0.020*\"harrison ford\"\n", - "2021-08-24 02:42:46,939 : INFO : topic #12 (0.020): 0.139*\"comic book\" + 0.108*\"superhero\" + 0.073*\"dystopia\" + 0.054*\"holocaust\" + 0.054*\"super-hero\" + 0.032*\"adapted from:comic\" + 0.031*\"batman\" + 0.024*\"kidnapping\" + 0.017*\"action\" + 0.016*\"alter ego\"\n", - "2021-08-24 02:42:46,940 : INFO : topic #26 (0.020): 0.043*\"Drama\" + 0.025*\"james bond\" + 0.022*\"mel gibson\" + 0.021*\"poignant\" + 0.020*\"atmospheric\" + 0.019*\"bittersweet\" + 0.019*\"reflective\" + 0.018*\"lyrical\" + 0.017*\"assassin\" + 0.017*\"bond\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:46,941 : INFO : topic #15 (0.020): 0.167*\"disney\" + 0.094*\"animation\" + 0.074*\"pixar\" + 0.047*\"Animation\" + 0.043*\"children\" + 0.038*\"Children\" + 0.030*\"disney animated feature\" + 0.029*\"pirates\" + 0.024*\"angelina jolie\" + 0.021*\"cartoon\"\n", - "2021-08-24 02:42:46,942 : INFO : topic #23 (0.020): 0.084*\"high school\" + 0.061*\"teen\" + 0.051*\"cars\" + 0.035*\"dance\" + 0.028*\"marx brothers\" + 0.027*\"sandra bullock\" + 0.023*\"Comedy\" + 0.021*\"kate winslet\" + 0.020*\"(s)vcd\" + 0.020*\"eddie murphy\"\n", - "2021-08-24 02:42:46,943 : INFO : topic diff=0.143643, rho=0.191248\n", - "2021-08-24 02:42:46,944 : INFO : PROGRESS: pass 21, at document #4000/10681\n", - "2021-08-24 02:42:47,195 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:47,223 : INFO : topic #13 (0.020): 0.054*\"fairy tale\" + 0.044*\"jane austen\" + 0.041*\"road trip\" + 0.036*\"sequel\" + 0.030*\"assassination\" + 0.029*\"cold war\" + 0.027*\"historical\" + 0.022*\"kids\" + 0.021*\"heartwarming\" + 0.020*\"gerard depardieu\"\n", - "2021-08-24 02:42:47,224 : INFO : topic #31 (0.020): 0.125*\"zombies\" + 0.075*\"horror\" + 0.071*\"pg-13\" + 0.040*\"cult classic\" + 0.026*\"campy\" + 0.025*\"infidelity\" + 0.024*\"joaquin phoenix\" + 0.024*\"sam raimi\" + 0.023*\"zombie\" + 0.020*\"books\"\n", - "2021-08-24 02:42:47,225 : INFO : topic #19 (0.020): 0.065*\"nudity (full frontal)\" + 0.062*\"drama\" + 0.036*\"Drama\" + 0.028*\"philip k. dick\" + 0.028*\"vietnam war\" + 0.028*\"vietnam\" + 0.027*\"rape\" + 0.022*\"to see\" + 0.021*\"very good\" + 0.017*\"slow\"\n", - "2021-08-24 02:42:47,225 : INFO : topic #12 (0.020): 0.131*\"comic book\" + 0.112*\"superhero\" + 0.075*\"dystopia\" + 0.056*\"super-hero\" + 0.055*\"holocaust\" + 0.034*\"adapted from:comic\" + 0.026*\"batman\" + 0.021*\"kidnapping\" + 0.018*\"alter ego\" + 0.017*\"Action\"\n", - "2021-08-24 02:42:47,226 : INFO : topic #37 (0.020): 0.181*\"War\" + 0.107*\"world war ii\" + 0.102*\"Drama\" + 0.056*\"war\" + 0.041*\"history\" + 0.037*\"jim carrey\" + 0.035*\"Action\" + 0.022*\"nazis\" + 0.017*\"mental illness\" + 0.016*\"wwii\"\n", - "2021-08-24 02:42:47,228 : INFO : topic diff=0.025834, rho=0.191248\n", - "2021-08-24 02:42:47,229 : INFO : PROGRESS: pass 21, at document #6000/10681\n", - "2021-08-24 02:42:47,602 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:47,635 : INFO : topic #10 (0.020): 0.252*\"Thriller\" + 0.231*\"Crime\" + 0.169*\"Action\" + 0.159*\"Drama\" + 0.028*\"Mystery\" + 0.016*\"murder\" + 0.011*\"crime\" + 0.010*\"virtual reality\" + 0.006*\"thriller\" + 0.005*\"well done\"\n", - "2021-08-24 02:42:47,635 : INFO : topic #45 (0.020): 0.192*\"less than 300 ratings\" + 0.110*\"Drama\" + 0.080*\"nudity (topless - notable)\" + 0.050*\"tim burton\" + 0.031*\"not corv lib\" + 0.022*\"library\" + 0.017*\"depressing\" + 0.017*\"blindfold\" + 0.015*\"golden raspberry (worst actor)\" + 0.014*\"san francisco\"\n", - "2021-08-24 02:42:47,636 : INFO : topic #37 (0.020): 0.183*\"War\" + 0.112*\"world war ii\" + 0.101*\"Drama\" + 0.058*\"war\" + 0.042*\"history\" + 0.035*\"Action\" + 0.032*\"jim carrey\" + 0.021*\"nazis\" + 0.017*\"mental illness\" + 0.016*\"wwii\"\n", - "2021-08-24 02:42:47,637 : INFO : topic #22 (0.020): 0.260*\"betamax\" + 0.100*\"dvd-video\" + 0.069*\"clv\" + 0.031*\"aviation\" + 0.023*\"library on hold\" + 0.023*\"terry gilliam\" + 0.017*\"dvd collection\" + 0.015*\"gilliam\" + 0.014*\"70mm\" + 0.014*\"steven seagal\"\n", - "2021-08-24 02:42:47,638 : INFO : topic #6 (0.020): 0.134*\"Musical\" + 0.095*\"politics\" + 0.068*\"satire\" + 0.045*\"nicolas cage\" + 0.043*\"sean connery\" + 0.034*\"dvd-r\" + 0.029*\"terrorism\" + 0.028*\"police\" + 0.023*\"netwatch\" + 0.022*\"dvd-ram\"\n", - "2021-08-24 02:42:47,639 : INFO : topic diff=0.050826, rho=0.191248\n", - "2021-08-24 02:42:47,641 : INFO : PROGRESS: pass 21, at document #8000/10681\n", - "2021-08-24 02:42:47,942 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:47,970 : INFO : topic #22 (0.020): 0.260*\"betamax\" + 0.103*\"dvd-video\" + 0.068*\"clv\" + 0.029*\"aviation\" + 0.019*\"library on hold\" + 0.019*\"terry gilliam\" + 0.017*\"dvd collection\" + 0.015*\"seen 2008\" + 0.014*\"70mm\" + 0.014*\"gilliam\"\n", - "2021-08-24 02:42:47,971 : INFO : topic #3 (0.020): 0.148*\"oscar (best picture)\" + 0.061*\"oscar (best actor)\" + 0.059*\"oscar (best directing)\" + 0.058*\"oscar (best supporting actor)\" + 0.033*\"al pacino\" + 0.026*\"afi 100 (cheers)\" + 0.025*\"Drama\" + 0.019*\"tumey's dvds\" + 0.018*\"afi 100\" + 0.017*\"great acting\"\n", - "2021-08-24 02:42:47,972 : INFO : topic #2 (0.020): 0.288*\"Documentary\" + 0.103*\"to see\" + 0.064*\"documentary\" + 0.026*\"mockumentary\" + 0.025*\"sexuality\" + 0.023*\"star trek\" + 0.021*\"dogs\" + 0.021*\"kevin smith\" + 0.018*\"in netflix queue\" + 0.018*\"movie to see\"\n", - "2021-08-24 02:42:47,974 : INFO : topic #18 (0.020): 0.081*\"magic\" + 0.076*\"gay\" + 0.056*\"racism\" + 0.042*\"pg13\" + 0.039*\"Drama\" + 0.028*\"food\" + 0.024*\"social commentary\" + 0.023*\"homosexuality\" + 0.020*\"19th century\" + 0.017*\"denzel washington\"\n", - "2021-08-24 02:42:47,975 : INFO : topic #46 (0.020): 0.089*\"action\" + 0.064*\"fantasy\" + 0.044*\"sci-fi\" + 0.037*\"adventure\" + 0.034*\"dvd\" + 0.025*\"Adventure\" + 0.023*\"seen more than once\" + 0.022*\"seen at the cinema\" + 0.018*\"tom cruise\" + 0.017*\"Action\"\n", - "2021-08-24 02:42:47,976 : INFO : topic diff=0.041875, rho=0.191248\n", - "2021-08-24 02:42:47,978 : INFO : PROGRESS: pass 21, at document #10000/10681\n", - "2021-08-24 02:42:48,234 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:48,264 : INFO : topic #20 (0.020): 0.095*\"biography\" + 0.068*\"Drama\" + 0.054*\"biopic\" + 0.045*\"death\" + 0.044*\"corvallis library\" + 0.037*\"suicide\" + 0.034*\"ensemble cast\" + 0.028*\"julia roberts\" + 0.027*\"ingmar bergman\" + 0.025*\"medieval\"\n", - "2021-08-24 02:42:48,265 : INFO : topic #23 (0.020): 0.080*\"high school\" + 0.070*\"teen\" + 0.064*\"cars\" + 0.038*\"marx brothers\" + 0.036*\"dance\" + 0.027*\"Comedy\" + 0.022*\"eddie murphy\" + 0.022*\"kate winslet\" + 0.021*\"(s)vcd\" + 0.020*\"car chase\"\n", - "2021-08-24 02:42:48,265 : INFO : topic #37 (0.020): 0.194*\"War\" + 0.112*\"Drama\" + 0.103*\"world war ii\" + 0.057*\"war\" + 0.048*\"history\" + 0.036*\"Action\" + 0.032*\"jim carrey\" + 0.018*\"africa\" + 0.017*\"nazis\" + 0.014*\"wwii\"\n", - "2021-08-24 02:42:48,266 : INFO : topic #21 (0.020): 0.077*\"Sci-Fi\" + 0.068*\"aliens\" + 0.061*\"sci-fi\" + 0.039*\"space\" + 0.036*\"futuristmovies.com\" + 0.024*\"will smith\" + 0.023*\"Action\" + 0.022*\"future\" + 0.021*\"tommy lee jones\" + 0.020*\"ridley scott\"\n", - "2021-08-24 02:42:48,267 : INFO : topic #36 (0.020): 0.069*\"cult film\" + 0.046*\"downbeat\" + 0.045*\"peter jackson\" + 0.040*\"russell crowe\" + 0.034*\"not available from netflix\" + 0.031*\"adam sandler\" + 0.026*\"1980s\" + 0.023*\"new zealand\" + 0.018*\"existentialism\" + 0.017*\"must see!\"\n", - "2021-08-24 02:42:48,268 : INFO : topic diff=0.034685, rho=0.191248\n", - "2021-08-24 02:42:48,425 : INFO : -20.964 per-word bound, 2045562.6 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:48,426 : INFO : PROGRESS: pass 21, at document #10681/10681\n", - "2021-08-24 02:42:48,530 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:48,556 : INFO : topic #46 (0.020): 0.083*\"action\" + 0.064*\"fantasy\" + 0.038*\"sci-fi\" + 0.037*\"adventure\" + 0.033*\"dvd\" + 0.027*\"Adventure\" + 0.021*\"watched 2006\" + 0.021*\"robots\" + 0.020*\"seen at the cinema\" + 0.018*\"seen more than once\"\n", - "2021-08-24 02:42:48,557 : INFO : topic #33 (0.020): 0.118*\"Comedy\" + 0.103*\"comedy\" + 0.063*\"funny\" + 0.038*\"parody\" + 0.034*\"dark comedy\" + 0.031*\"seen more than once\" + 0.028*\"hilarious\" + 0.027*\"coen brothers\" + 0.024*\"quirky\" + 0.022*\"black comedy\"\n", - "2021-08-24 02:42:48,558 : INFO : topic #14 (0.020): 0.059*\"criterion\" + 0.053*\"disturbing\" + 0.051*\"Drama\" + 0.050*\"tense\" + 0.046*\"atmospheric\" + 0.030*\"stylized\" + 0.028*\"bleak\" + 0.027*\"tumey's dvds\" + 0.023*\"menacing\" + 0.023*\"erlend's dvds\"\n", - "2021-08-24 02:42:48,559 : INFO : topic #10 (0.020): 0.250*\"Thriller\" + 0.240*\"Crime\" + 0.170*\"Drama\" + 0.167*\"Action\" + 0.027*\"Mystery\" + 0.018*\"murder\" + 0.010*\"crime\" + 0.007*\"virtual reality\" + 0.004*\"thriller\" + 0.004*\"greg kinnear\"\n", - "2021-08-24 02:42:48,560 : INFO : topic #19 (0.020): 0.081*\"nudity (full frontal)\" + 0.047*\"drama\" + 0.038*\"Drama\" + 0.033*\"to see\" + 0.029*\"philip k. dick\" + 0.027*\"rape\" + 0.024*\"ummarti2007\" + 0.022*\"male nudity\" + 0.020*\"slow\" + 0.019*\"vietnam war\"\n", - "2021-08-24 02:42:48,561 : INFO : topic diff=0.076797, rho=0.191248\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:48,563 : INFO : PROGRESS: pass 22, at document #2000/10681\n", - "2021-08-24 02:42:48,808 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:48,834 : INFO : topic #2 (0.020): 0.278*\"Documentary\" + 0.121*\"to see\" + 0.055*\"documentary\" + 0.030*\"mockumentary\" + 0.029*\"star trek\" + 0.025*\"kevin smith\" + 0.022*\"movie to see\" + 0.020*\"dogs\" + 0.019*\"sexuality\" + 0.016*\"owen wilson\"\n", - "2021-08-24 02:42:48,835 : INFO : topic #34 (0.020): 0.073*\"ghosts\" + 0.050*\"bill murray\" + 0.043*\"television\" + 0.030*\"courtroom\" + 0.029*\"courtroom drama\" + 0.026*\"secret service\" + 0.020*\"roman polanski\" + 0.017*\"18th century\" + 0.017*\"opera\" + 0.016*\"court\"\n", - "2021-08-24 02:42:48,836 : INFO : topic #31 (0.020): 0.143*\"zombies\" + 0.076*\"pg-13\" + 0.074*\"horror\" + 0.031*\"cult classic\" + 0.027*\"zombie\" + 0.024*\"sam raimi\" + 0.023*\"campy\" + 0.021*\"infidelity\" + 0.021*\"books\" + 0.020*\"joaquin phoenix\"\n", - "2021-08-24 02:42:48,836 : INFO : topic #33 (0.020): 0.109*\"Comedy\" + 0.106*\"comedy\" + 0.056*\"funny\" + 0.038*\"dark comedy\" + 0.034*\"parody\" + 0.032*\"seen more than once\" + 0.032*\"coen brothers\" + 0.028*\"hilarious\" + 0.027*\"quirky\" + 0.024*\"black comedy\"\n", - "2021-08-24 02:42:48,837 : INFO : topic #38 (0.020): 0.156*\"drugs\" + 0.049*\"samuel l. jackson\" + 0.027*\"divx\" + 0.025*\"addiction\" + 0.024*\"ewan mcgregor\" + 0.023*\"peter sellers\" + 0.022*\"hulu\" + 0.022*\"michael caine\" + 0.021*\"poverty\" + 0.020*\"liam neeson\"\n", - "2021-08-24 02:42:48,838 : INFO : topic diff=0.140542, rho=0.187844\n", - "2021-08-24 02:42:48,840 : INFO : PROGRESS: pass 22, at document #4000/10681\n", - "2021-08-24 02:42:49,079 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:49,106 : INFO : topic #38 (0.020): 0.169*\"drugs\" + 0.046*\"samuel l. jackson\" + 0.025*\"divx\" + 0.024*\"basketball\" + 0.024*\"addiction\" + 0.023*\"hulu\" + 0.023*\"ewan mcgregor\" + 0.021*\"michael caine\" + 0.020*\"liam neeson\" + 0.020*\"poverty\"\n", - "2021-08-24 02:42:49,107 : INFO : topic #26 (0.020): 0.041*\"Drama\" + 0.037*\"james bond\" + 0.026*\"007\" + 0.025*\"bond\" + 0.023*\"mel gibson\" + 0.021*\"reflective\" + 0.020*\"atmospheric\" + 0.020*\"poignant\" + 0.018*\"lyrical\" + 0.018*\"assassin\"\n", - "2021-08-24 02:42:49,108 : INFO : topic #17 (0.020): 0.337*\"Sci-Fi\" + 0.076*\"Horror\" + 0.065*\"Action\" + 0.038*\"video game adaptation\" + 0.028*\"football\" + 0.026*\"animals\" + 0.022*\"movie to see\" + 0.017*\"futuristic\" + 0.015*\"milla jovovich\" + 0.013*\"g\"\n", - "2021-08-24 02:42:49,109 : INFO : topic #29 (0.020): 0.095*\"nudity (full frontal - notable)\" + 0.067*\"shakespeare\" + 0.051*\"Drama\" + 0.045*\"based on a play\" + 0.039*\"adapted from:play\" + 0.033*\"christianity\" + 0.029*\"religion\" + 0.022*\"cannibalism\" + 0.021*\"disability\" + 0.021*\"jodie foster\"\n", - "2021-08-24 02:42:49,110 : INFO : topic #46 (0.020): 0.091*\"action\" + 0.052*\"fantasy\" + 0.045*\"sci-fi\" + 0.035*\"adventure\" + 0.031*\"dvd\" + 0.025*\"Adventure\" + 0.023*\"seen at the cinema\" + 0.022*\"seen more than once\" + 0.020*\"harrison ford\" + 0.019*\"space\"\n", - "2021-08-24 02:42:49,111 : INFO : topic diff=0.025264, rho=0.187844\n", - "2021-08-24 02:42:49,113 : INFO : PROGRESS: pass 22, at document #6000/10681\n", - "2021-08-24 02:42:49,342 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:49,369 : INFO : topic #13 (0.020): 0.059*\"fairy tale\" + 0.038*\"jane austen\" + 0.038*\"sequel\" + 0.036*\"road trip\" + 0.027*\"cold war\" + 0.027*\"assassination\" + 0.027*\"historical\" + 0.027*\"gerard depardieu\" + 0.024*\"kids\" + 0.022*\"notable nudity\"\n", - "2021-08-24 02:42:49,370 : INFO : topic #22 (0.020): 0.260*\"betamax\" + 0.100*\"dvd-video\" + 0.069*\"clv\" + 0.031*\"aviation\" + 0.023*\"library on hold\" + 0.023*\"terry gilliam\" + 0.017*\"dvd collection\" + 0.015*\"gilliam\" + 0.014*\"steven seagal\" + 0.013*\"seen 2008\"\n", - "2021-08-24 02:42:49,371 : INFO : topic #32 (0.020): 0.135*\"johnny depp\" + 0.068*\"clint eastwood\" + 0.059*\"vhs\" + 0.046*\"jackie chan\" + 0.037*\"western\" + 0.031*\"kung fu\" + 0.031*\"leonardo dicaprio\" + 0.030*\"spaghetti western\" + 0.029*\"propaganda\" + 0.029*\"david lynch\"\n", - "2021-08-24 02:42:49,372 : INFO : topic #40 (0.020): 0.252*\"r\" + 0.124*\"clearplay\" + 0.057*\"movie to see\" + 0.052*\"prison\" + 0.044*\"Drama\" + 0.033*\"morgan freeman\" + 0.026*\"friendship\" + 0.018*\"conspiracy\" + 0.018*\"mel brooks\" + 0.017*\"john wayne\"\n", - "2021-08-24 02:42:49,373 : INFO : topic #3 (0.020): 0.162*\"oscar (best picture)\" + 0.064*\"oscar (best directing)\" + 0.063*\"oscar (best actor)\" + 0.056*\"oscar (best supporting actor)\" + 0.037*\"al pacino\" + 0.024*\"afi 100 (cheers)\" + 0.024*\"Drama\" + 0.020*\"afi 100\" + 0.019*\"great acting\" + 0.017*\"tumey's dvds\"\n", - "2021-08-24 02:42:49,375 : INFO : topic diff=0.049694, rho=0.187844\n", - "2021-08-24 02:42:49,376 : INFO : PROGRESS: pass 22, at document #8000/10681\n", - "2021-08-24 02:42:49,615 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:49,642 : INFO : topic #44 (0.020): 0.091*\"mafia\" + 0.080*\"music\" + 0.053*\"martin scorsese\" + 0.046*\"rock and roll\" + 0.043*\"organized crime\" + 0.037*\"Musical\" + 0.030*\"wired 50 greatest soundtracks\" + 0.025*\"confrontational\" + 0.025*\"guns\" + 0.020*\"francis ford coppola\"\n", - "2021-08-24 02:42:49,643 : INFO : topic #16 (0.020): 0.277*\"nudity (topless)\" + 0.187*\"nudity (topless - brief)\" + 0.066*\"nudity (rear)\" + 0.028*\"pg\" + 0.028*\"claymation\" + 0.022*\"military\" + 0.018*\"childhood\" + 0.017*\"aardman\" + 0.017*\"weird\" + 0.010*\"shark\"\n", - "2021-08-24 02:42:49,644 : INFO : topic #17 (0.020): 0.354*\"Sci-Fi\" + 0.083*\"Horror\" + 0.065*\"Action\" + 0.037*\"video game adaptation\" + 0.025*\"football\" + 0.019*\"animals\" + 0.018*\"futuristic\" + 0.017*\"movie to see\" + 0.014*\"g\" + 0.013*\"milla jovovich\"\n", - "2021-08-24 02:42:49,645 : INFO : topic #9 (0.020): 0.245*\"based on a book\" + 0.121*\"adapted from:book\" + 0.060*\"Drama\" + 0.039*\"stephen king\" + 0.038*\"jack nicholson\" + 0.037*\"based on book\" + 0.027*\"imdb bottom 100\" + 0.022*\"literary adaptation\" + 0.020*\"stupid\" + 0.020*\"los angeles\"\n", - "2021-08-24 02:42:49,646 : INFO : topic #0 (0.020): 0.204*\"can't remember\" + 0.103*\"directorial debut\" + 0.083*\"based on a tv show\" + 0.081*\"Comedy\" + 0.036*\"ummarti2006\" + 0.027*\"australia\" + 0.026*\"australian\" + 0.025*\"keira knightley\" + 0.020*\"immigrants\" + 0.018*\"robert downey jr\"\n", - "2021-08-24 02:42:49,647 : INFO : topic diff=0.041137, rho=0.187844\n", - "2021-08-24 02:42:49,648 : INFO : PROGRESS: pass 22, at document #10000/10681\n", - "2021-08-24 02:42:49,880 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:49,907 : INFO : topic #42 (0.020): 0.098*\"japan\" + 0.091*\"martial arts\" + 0.068*\"robin williams\" + 0.037*\"akira kurosawa\" + 0.033*\"samurai\" + 0.031*\"Drama\" + 0.030*\"seen 2006\" + 0.029*\"jonossa\" + 0.025*\"orson welles\" + 0.022*\"divorce\"\n", - "2021-08-24 02:42:49,908 : INFO : topic #20 (0.020): 0.095*\"biography\" + 0.068*\"Drama\" + 0.054*\"biopic\" + 0.045*\"death\" + 0.043*\"corvallis library\" + 0.037*\"suicide\" + 0.034*\"ensemble cast\" + 0.028*\"julia roberts\" + 0.027*\"ingmar bergman\" + 0.025*\"medieval\"\n", - "2021-08-24 02:42:49,909 : INFO : topic #39 (0.020): 0.175*\"time travel\" + 0.057*\"adultery\" + 0.049*\"motorcycle\" + 0.037*\"jude law\" + 0.036*\"post apocalyptic\" + 0.035*\"post-apocalyptic\" + 0.021*\"dystopia\" + 0.021*\"want to own\" + 0.019*\"old\" + 0.018*\"hollywood\"\n", - "2021-08-24 02:42:49,910 : INFO : topic #45 (0.020): 0.255*\"less than 300 ratings\" + 0.117*\"Drama\" + 0.061*\"nudity (topless - notable)\" + 0.039*\"tim burton\" + 0.031*\"not corv lib\" + 0.025*\"library\" + 0.017*\"depressing\" + 0.016*\"blindfold\" + 0.015*\"seen 2007\" + 0.013*\"michael moore\"\n", - "2021-08-24 02:42:49,911 : INFO : topic #24 (0.020): 0.074*\"murder\" + 0.069*\"vampire\" + 0.063*\"vampires\" + 0.058*\"hitchcock\" + 0.053*\"oppl\" + 0.053*\"memory\" + 0.044*\"alfred hitchcock\" + 0.021*\"cary grant\" + 0.020*\"incest\" + 0.020*\"kirsten dunst\"\n", - "2021-08-24 02:42:49,912 : INFO : topic diff=0.033872, rho=0.187844\n", - "2021-08-24 02:42:50,056 : INFO : -20.964 per-word bound, 2045059.0 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:50,056 : INFO : PROGRESS: pass 22, at document #10681/10681\n", - "2021-08-24 02:42:50,158 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:50,184 : INFO : topic #41 (0.020): 0.134*\"remake\" + 0.077*\"new york city\" + 0.064*\"christmas\" + 0.041*\"family\" + 0.034*\"new york\" + 0.034*\"bibliothek\" + 0.030*\"Drama\" + 0.030*\"movie to see\" + 0.029*\"eric's dvds\" + 0.027*\"kevin spacey\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:50,185 : INFO : topic #22 (0.020): 0.209*\"betamax\" + 0.086*\"dvd-video\" + 0.053*\"clv\" + 0.051*\"library on hold\" + 0.036*\"aviation\" + 0.019*\"family drama\" + 0.019*\"seen 2008\" + 0.018*\"terry gilliam\" + 0.013*\"gilliam\" + 0.013*\"dvd collection\"\n", - "2021-08-24 02:42:50,186 : INFO : topic #20 (0.020): 0.100*\"biography\" + 0.071*\"Drama\" + 0.055*\"death\" + 0.045*\"suicide\" + 0.045*\"biopic\" + 0.038*\"corvallis library\" + 0.031*\"ensemble cast\" + 0.028*\"julia roberts\" + 0.023*\"forest whitaker\" + 0.023*\"history\"\n", - "2021-08-24 02:42:50,187 : INFO : topic #39 (0.020): 0.156*\"time travel\" + 0.055*\"adultery\" + 0.045*\"motorcycle\" + 0.045*\"post apocalyptic\" + 0.042*\"post-apocalyptic\" + 0.035*\"jude law\" + 0.024*\"bechdel test:fail\" + 0.023*\"dystopia\" + 0.019*\"want to own\" + 0.017*\"old\"\n", - "2021-08-24 02:42:50,188 : INFO : topic #42 (0.020): 0.092*\"japan\" + 0.088*\"martial arts\" + 0.063*\"robin williams\" + 0.038*\"akira kurosawa\" + 0.035*\"samurai\" + 0.035*\"Drama\" + 0.028*\"seen 2006\" + 0.027*\"divorce\" + 0.027*\"jonossa\" + 0.023*\"orson welles\"\n", - "2021-08-24 02:42:50,190 : INFO : topic diff=0.075117, rho=0.187844\n", - "2021-08-24 02:42:50,192 : INFO : PROGRESS: pass 23, at document #2000/10681\n", - "2021-08-24 02:42:50,459 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:50,485 : INFO : topic #17 (0.020): 0.329*\"Sci-Fi\" + 0.069*\"Horror\" + 0.068*\"Action\" + 0.044*\"video game adaptation\" + 0.027*\"animals\" + 0.026*\"movie to see\" + 0.021*\"football\" + 0.019*\"futuristic\" + 0.015*\"milla jovovich\" + 0.013*\"g\"\n", - "2021-08-24 02:42:50,487 : INFO : topic #34 (0.020): 0.073*\"ghosts\" + 0.051*\"bill murray\" + 0.044*\"television\" + 0.030*\"courtroom\" + 0.029*\"courtroom drama\" + 0.026*\"secret service\" + 0.020*\"roman polanski\" + 0.017*\"18th century\" + 0.017*\"opera\" + 0.017*\"court\"\n", - "2021-08-24 02:42:50,487 : INFO : topic #31 (0.020): 0.143*\"zombies\" + 0.076*\"pg-13\" + 0.074*\"horror\" + 0.031*\"cult classic\" + 0.027*\"zombie\" + 0.024*\"sam raimi\" + 0.022*\"campy\" + 0.021*\"infidelity\" + 0.021*\"books\" + 0.020*\"joaquin phoenix\"\n", - "2021-08-24 02:42:50,488 : INFO : topic #49 (0.020): 0.080*\"national film registry\" + 0.060*\"imdb top 250\" + 0.044*\"black and white\" + 0.034*\"tumey's dvds\" + 0.033*\"afi 100 (thrills)\" + 0.030*\"afi 100\" + 0.024*\"usa film registry\" + 0.021*\"erlend's dvds\" + 0.021*\"afi 100 (movie quotes)\" + 0.020*\"paris\"\n", - "2021-08-24 02:42:50,489 : INFO : topic #45 (0.020): 0.220*\"less than 300 ratings\" + 0.112*\"Drama\" + 0.073*\"nudity (topless - notable)\" + 0.048*\"tim burton\" + 0.030*\"not corv lib\" + 0.025*\"library\" + 0.016*\"blindfold\" + 0.014*\"depressing\" + 0.013*\"san francisco\" + 0.013*\"golden raspberry (worst actor)\"\n", - "2021-08-24 02:42:50,490 : INFO : topic diff=0.137872, rho=0.184615\n", - "2021-08-24 02:42:50,492 : INFO : PROGRESS: pass 23, at document #4000/10681\n", - "2021-08-24 02:42:50,727 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:50,753 : INFO : topic #34 (0.020): 0.092*\"ghosts\" + 0.051*\"bill murray\" + 0.043*\"television\" + 0.035*\"courtroom\" + 0.033*\"courtroom drama\" + 0.022*\"court\" + 0.022*\"roman polanski\" + 0.020*\"secret service\" + 0.018*\"opera\" + 0.016*\"2.5\"\n", - "2021-08-24 02:42:50,754 : INFO : topic #28 (0.020): 0.089*\"oscar (best cinematography)\" + 0.071*\"Drama\" + 0.055*\"oscar (best supporting actress)\" + 0.049*\"in netflix queue\" + 0.042*\"oscar (best actress)\" + 0.029*\"remade\" + 0.022*\"marlon brando\" + 0.016*\"exceptional acting\" + 0.014*\"china\" + 0.013*\"alcoholism\"\n", - "2021-08-24 02:42:50,755 : INFO : topic #7 (0.020): 0.113*\"romance\" + 0.065*\"Romance\" + 0.054*\"chick flick\" + 0.037*\"boring\" + 0.030*\"girlie movie\" + 0.027*\"baseball\" + 0.024*\"Comedy\" + 0.020*\"love story\" + 0.019*\"whimsical\" + 0.017*\"wedding\"\n", - "2021-08-24 02:42:50,756 : INFO : topic #35 (0.020): 0.347*\"Comedy\" + 0.311*\"Drama\" + 0.193*\"Romance\" + 0.016*\"lesbian\" + 0.011*\"bibliothek\" + 0.008*\"philip seymour hoffman\" + 0.007*\"sean penn\" + 0.006*\"m. night shyamalan\" + 0.006*\"oscar (best foreign language film)\" + 0.003*\"library vhs\"\n", - "2021-08-24 02:42:50,757 : INFO : topic #4 (0.020): 0.070*\"sports\" + 0.063*\"Drama\" + 0.053*\"boxing\" + 0.044*\"underrated\" + 0.044*\"british\" + 0.041*\"london\" + 0.036*\"sven's to see list\" + 0.033*\"hw drama\" + 0.029*\"sylvester stallone\" + 0.028*\"inspirational\"\n", - "2021-08-24 02:42:50,758 : INFO : topic diff=0.025036, rho=0.184615\n", - "2021-08-24 02:42:50,759 : INFO : PROGRESS: pass 23, at document #6000/10681\n", - "2021-08-24 02:42:50,981 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:51,007 : INFO : topic #39 (0.020): 0.196*\"time travel\" + 0.055*\"adultery\" + 0.041*\"post apocalyptic\" + 0.037*\"motorcycle\" + 0.032*\"post-apocalyptic\" + 0.031*\"jude law\" + 0.026*\"dystopia\" + 0.020*\"want to own\" + 0.019*\"bechdel test:fail\" + 0.019*\"hollywood\"\n", - "2021-08-24 02:42:51,008 : INFO : topic #7 (0.020): 0.112*\"romance\" + 0.061*\"Romance\" + 0.052*\"chick flick\" + 0.038*\"boring\" + 0.031*\"girlie movie\" + 0.029*\"baseball\" + 0.024*\"Comedy\" + 0.022*\"whimsical\" + 0.018*\"wedding\" + 0.017*\"drama\"\n", - "2021-08-24 02:42:51,009 : INFO : topic #5 (0.020): 0.277*\"classic\" + 0.065*\"musical\" + 0.045*\"afi 100 (laughs)\" + 0.034*\"Musical\" + 0.029*\"national film registry\" + 0.021*\"afi 100\" + 0.018*\"70mm\" + 0.017*\"john travolta\" + 0.016*\"adapted from b'way\" + 0.015*\"breakthroughs\"\n", - "2021-08-24 02:42:51,010 : INFO : topic #0 (0.020): 0.223*\"can't remember\" + 0.103*\"directorial debut\" + 0.086*\"based on a tv show\" + 0.082*\"Comedy\" + 0.031*\"ummarti2006\" + 0.028*\"australia\" + 0.027*\"australian\" + 0.022*\"keira knightley\" + 0.018*\"immigrants\" + 0.018*\"robert downey jr\"\n", - "2021-08-24 02:42:51,010 : INFO : topic #28 (0.020): 0.087*\"oscar (best cinematography)\" + 0.073*\"Drama\" + 0.056*\"oscar (best supporting actress)\" + 0.050*\"in netflix queue\" + 0.043*\"oscar (best actress)\" + 0.029*\"remade\" + 0.020*\"marlon brando\" + 0.015*\"exceptional acting\" + 0.014*\"alcoholism\" + 0.013*\"china\"\n", - "2021-08-24 02:42:51,012 : INFO : topic diff=0.048747, rho=0.184615\n", - "2021-08-24 02:42:51,013 : INFO : PROGRESS: pass 23, at document #8000/10681\n", - "2021-08-24 02:42:51,246 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:51,273 : INFO : topic #6 (0.020): 0.143*\"Musical\" + 0.097*\"politics\" + 0.060*\"satire\" + 0.042*\"sean connery\" + 0.042*\"nicolas cage\" + 0.039*\"dvd-r\" + 0.031*\"terrorism\" + 0.029*\"police\" + 0.025*\"dvd-ram\" + 0.024*\"netwatch\"\n", - "2021-08-24 02:42:51,274 : INFO : topic #20 (0.020): 0.094*\"biography\" + 0.068*\"Drama\" + 0.045*\"biopic\" + 0.044*\"death\" + 0.035*\"suicide\" + 0.034*\"ensemble cast\" + 0.033*\"julia roberts\" + 0.033*\"ingmar bergman\" + 0.030*\"corvallis library\" + 0.027*\"multiple storylines\"\n", - "2021-08-24 02:42:51,274 : INFO : topic #40 (0.020): 0.247*\"r\" + 0.116*\"clearplay\" + 0.055*\"movie to see\" + 0.049*\"prison\" + 0.045*\"Drama\" + 0.031*\"morgan freeman\" + 0.027*\"friendship\" + 0.020*\"john wayne\" + 0.019*\"conspiracy\" + 0.017*\"1970s\"\n", - "2021-08-24 02:42:51,275 : INFO : topic #4 (0.020): 0.069*\"sports\" + 0.063*\"Drama\" + 0.045*\"sven's to see list\" + 0.045*\"boxing\" + 0.043*\"london\" + 0.042*\"hw drama\" + 0.041*\"british\" + 0.039*\"underrated\" + 0.024*\"sylvester stallone\" + 0.023*\"inspirational\"\n", - "2021-08-24 02:42:51,276 : INFO : topic #34 (0.020): 0.082*\"ghosts\" + 0.053*\"bill murray\" + 0.042*\"television\" + 0.041*\"courtroom\" + 0.029*\"courtroom drama\" + 0.023*\"roman polanski\" + 0.023*\"court\" + 0.019*\"ben stiller\" + 0.016*\"secret service\" + 0.016*\"opera\"\n", - "2021-08-24 02:42:51,277 : INFO : topic diff=0.040507, rho=0.184615\n", - "2021-08-24 02:42:51,279 : INFO : PROGRESS: pass 23, at document #10000/10681\n", - "2021-08-24 02:42:51,514 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:51,543 : INFO : topic #31 (0.020): 0.150*\"zombies\" + 0.098*\"pg-13\" + 0.063*\"horror\" + 0.034*\"zombie\" + 0.027*\"cult classic\" + 0.026*\"joaquin phoenix\" + 0.024*\"infidelity\" + 0.022*\"sam raimi\" + 0.021*\"campy\" + 0.020*\"books\"\n", - "2021-08-24 02:42:51,543 : INFO : topic #47 (0.020): 0.062*\"serial killer\" + 0.055*\"psychology\" + 0.050*\"brad pitt\" + 0.041*\"edward norton\" + 0.036*\"heist\" + 0.031*\"matt damon\" + 0.029*\"hayao miyazaki\" + 0.026*\"steven spielberg\" + 0.019*\"crime\" + 0.016*\"brilliant\"\n", - "2021-08-24 02:42:51,544 : INFO : topic #12 (0.020): 0.159*\"comic book\" + 0.101*\"superhero\" + 0.068*\"dystopia\" + 0.067*\"super-hero\" + 0.045*\"holocaust\" + 0.034*\"adapted from:comic\" + 0.022*\"kidnapping\" + 0.021*\"alter ego\" + 0.018*\"batman\" + 0.017*\"Action\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:51,545 : INFO : topic #34 (0.020): 0.075*\"ghosts\" + 0.058*\"bill murray\" + 0.040*\"television\" + 0.038*\"courtroom\" + 0.032*\"courtroom drama\" + 0.024*\"roman polanski\" + 0.021*\"ben stiller\" + 0.019*\"las vegas\" + 0.018*\"court\" + 0.016*\"secret service\"\n", - "2021-08-24 02:42:51,546 : INFO : topic #40 (0.020): 0.278*\"r\" + 0.124*\"clearplay\" + 0.058*\"movie to see\" + 0.047*\"Drama\" + 0.040*\"prison\" + 0.029*\"morgan freeman\" + 0.025*\"friendship\" + 0.018*\"conspiracy\" + 0.018*\"john wayne\" + 0.015*\"1970s\"\n", - "2021-08-24 02:42:51,547 : INFO : topic diff=0.033403, rho=0.184615\n", - "2021-08-24 02:42:51,688 : INFO : -20.964 per-word bound, 2045057.6 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:51,688 : INFO : PROGRESS: pass 23, at document #10681/10681\n", - "2021-08-24 02:42:51,780 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:51,805 : INFO : topic #14 (0.020): 0.059*\"criterion\" + 0.053*\"disturbing\" + 0.051*\"Drama\" + 0.050*\"tense\" + 0.046*\"atmospheric\" + 0.030*\"stylized\" + 0.028*\"bleak\" + 0.027*\"tumey's dvds\" + 0.023*\"menacing\" + 0.022*\"erlend's dvds\"\n", - "2021-08-24 02:42:51,806 : INFO : topic #25 (0.020): 0.184*\"Western\" + 0.068*\"erlend's dvds\" + 0.047*\"Drama\" + 0.042*\"woody allen\" + 0.039*\"gothic\" + 0.032*\"george clooney\" + 0.029*\"gene hackman\" + 0.027*\"sad\" + 0.025*\"nicole kidman\" + 0.025*\"scary movies to see on halloween\"\n", - "2021-08-24 02:42:51,807 : INFO : topic #2 (0.020): 0.314*\"Documentary\" + 0.144*\"to see\" + 0.060*\"documentary\" + 0.026*\"movie to see\" + 0.024*\"mockumentary\" + 0.020*\"owen wilson\" + 0.018*\"dogs\" + 0.018*\"sexuality\" + 0.016*\"kevin smith\" + 0.014*\"star trek\"\n", - "2021-08-24 02:42:51,808 : INFO : topic #46 (0.020): 0.083*\"action\" + 0.064*\"fantasy\" + 0.038*\"sci-fi\" + 0.037*\"adventure\" + 0.033*\"dvd\" + 0.027*\"Adventure\" + 0.021*\"watched 2006\" + 0.021*\"robots\" + 0.020*\"seen at the cinema\" + 0.019*\"seen more than once\"\n", - "2021-08-24 02:42:51,808 : INFO : topic #34 (0.020): 0.073*\"ghosts\" + 0.052*\"bill murray\" + 0.042*\"television\" + 0.034*\"courtroom\" + 0.032*\"secret service\" + 0.028*\"courtroom drama\" + 0.022*\"roman polanski\" + 0.019*\"ben stiller\" + 0.017*\"smoking\" + 0.017*\"las vegas\"\n", - "2021-08-24 02:42:51,809 : INFO : topic diff=0.073837, rho=0.184615\n", - "2021-08-24 02:42:51,811 : INFO : PROGRESS: pass 24, at document #2000/10681\n", - "2021-08-24 02:42:52,052 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:52,078 : INFO : topic #9 (0.020): 0.262*\"based on a book\" + 0.112*\"adapted from:book\" + 0.054*\"Drama\" + 0.042*\"stephen king\" + 0.041*\"jack nicholson\" + 0.036*\"based on book\" + 0.027*\"imdb bottom 100\" + 0.022*\"literary adaptation\" + 0.021*\"stupid\" + 0.021*\"los angeles\"\n", - "2021-08-24 02:42:52,079 : INFO : topic #48 (0.020): 0.099*\"bruce willis\" + 0.097*\"netflix\" + 0.081*\"twist ending\" + 0.039*\"coming of age\" + 0.032*\"journalism\" + 0.029*\"to see\" + 0.028*\"Drama\" + 0.025*\"talking animals\" + 0.021*\"sexy\" + 0.021*\"relationships\"\n", - "2021-08-24 02:42:52,080 : INFO : topic #14 (0.020): 0.053*\"criterion\" + 0.053*\"tense\" + 0.052*\"disturbing\" + 0.049*\"atmospheric\" + 0.046*\"Drama\" + 0.032*\"stylized\" + 0.029*\"bleak\" + 0.027*\"tumey's dvds\" + 0.026*\"visceral\" + 0.025*\"menacing\"\n", - "2021-08-24 02:42:52,081 : INFO : topic #34 (0.020): 0.073*\"ghosts\" + 0.051*\"bill murray\" + 0.044*\"television\" + 0.030*\"courtroom\" + 0.029*\"courtroom drama\" + 0.026*\"secret service\" + 0.020*\"roman polanski\" + 0.017*\"18th century\" + 0.017*\"opera\" + 0.017*\"court\"\n", - "2021-08-24 02:42:52,082 : INFO : topic #41 (0.020): 0.114*\"remake\" + 0.069*\"new york city\" + 0.066*\"christmas\" + 0.045*\"family\" + 0.038*\"kevin spacey\" + 0.035*\"bibliothek\" + 0.033*\"new york\" + 0.029*\"Drama\" + 0.027*\"eric's dvds\" + 0.023*\"movie to see\"\n", - "2021-08-24 02:42:52,083 : INFO : topic diff=0.135277, rho=0.181547\n", - "2021-08-24 02:42:52,084 : INFO : PROGRESS: pass 24, at document #4000/10681\n", - "2021-08-24 02:42:52,313 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:52,339 : INFO : topic #38 (0.020): 0.168*\"drugs\" + 0.046*\"samuel l. jackson\" + 0.025*\"divx\" + 0.024*\"basketball\" + 0.024*\"addiction\" + 0.023*\"hulu\" + 0.023*\"ewan mcgregor\" + 0.021*\"michael caine\" + 0.020*\"liam neeson\" + 0.020*\"poverty\"\n", - "2021-08-24 02:42:52,340 : INFO : topic #17 (0.020): 0.337*\"Sci-Fi\" + 0.077*\"Horror\" + 0.065*\"Action\" + 0.038*\"video game adaptation\" + 0.028*\"football\" + 0.025*\"animals\" + 0.022*\"movie to see\" + 0.017*\"futuristic\" + 0.015*\"milla jovovich\" + 0.013*\"g\"\n", - "2021-08-24 02:42:52,341 : INFO : topic #26 (0.020): 0.041*\"Drama\" + 0.037*\"james bond\" + 0.026*\"007\" + 0.025*\"bond\" + 0.023*\"mel gibson\" + 0.021*\"reflective\" + 0.020*\"atmospheric\" + 0.020*\"poignant\" + 0.018*\"lyrical\" + 0.018*\"assassin\"\n", - "2021-08-24 02:42:52,342 : INFO : topic #22 (0.020): 0.228*\"betamax\" + 0.097*\"dvd-video\" + 0.074*\"clv\" + 0.036*\"aviation\" + 0.029*\"library on hold\" + 0.023*\"terry gilliam\" + 0.018*\"dvd collection\" + 0.016*\"gilliam\" + 0.013*\"seen 2008\" + 0.013*\"steven seagal\"\n", - "2021-08-24 02:42:52,343 : INFO : topic #14 (0.020): 0.053*\"criterion\" + 0.052*\"atmospheric\" + 0.052*\"tense\" + 0.052*\"disturbing\" + 0.045*\"Drama\" + 0.030*\"tumey's dvds\" + 0.030*\"stylized\" + 0.028*\"bleak\" + 0.025*\"menacing\" + 0.024*\"erlend's dvds\"\n", - "2021-08-24 02:42:52,344 : INFO : topic diff=0.024440, rho=0.181547\n", - "2021-08-24 02:42:52,345 : INFO : PROGRESS: pass 24, at document #6000/10681\n", - "2021-08-24 02:42:52,585 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:52,613 : INFO : topic #4 (0.020): 0.068*\"sports\" + 0.062*\"Drama\" + 0.048*\"boxing\" + 0.042*\"british\" + 0.041*\"underrated\" + 0.040*\"london\" + 0.040*\"sven's to see list\" + 0.038*\"hw drama\" + 0.026*\"sylvester stallone\" + 0.024*\"notable soundtrack\"\n", - "2021-08-24 02:42:52,614 : INFO : topic #45 (0.020): 0.193*\"less than 300 ratings\" + 0.110*\"Drama\" + 0.080*\"nudity (topless - notable)\" + 0.050*\"tim burton\" + 0.031*\"not corv lib\" + 0.023*\"library\" + 0.017*\"depressing\" + 0.017*\"blindfold\" + 0.014*\"golden raspberry (worst actor)\" + 0.014*\"san francisco\"\n", - "2021-08-24 02:42:52,615 : INFO : topic #30 (0.020): 0.244*\"Adventure\" + 0.120*\"Children\" + 0.109*\"Comedy\" + 0.103*\"Fantasy\" + 0.083*\"Action\" + 0.062*\"70mm\" + 0.048*\"Animation\" + 0.045*\"Drama\" + 0.017*\"Musical\" + 0.010*\"submarine\"\n", - "2021-08-24 02:42:52,617 : INFO : topic #29 (0.020): 0.100*\"nudity (full frontal - notable)\" + 0.059*\"shakespeare\" + 0.052*\"Drama\" + 0.046*\"based on a play\" + 0.039*\"adapted from:play\" + 0.032*\"christianity\" + 0.028*\"religion\" + 0.021*\"jodie foster\" + 0.021*\"disability\" + 0.021*\"cannibalism\"\n", - "2021-08-24 02:42:52,617 : INFO : topic #40 (0.020): 0.252*\"r\" + 0.125*\"clearplay\" + 0.058*\"movie to see\" + 0.052*\"prison\" + 0.044*\"Drama\" + 0.033*\"morgan freeman\" + 0.026*\"friendship\" + 0.018*\"conspiracy\" + 0.018*\"mel brooks\" + 0.017*\"john wayne\"\n", - "2021-08-24 02:42:52,619 : INFO : topic diff=0.047856, rho=0.181547\n", - "2021-08-24 02:42:52,620 : INFO : PROGRESS: pass 24, at document #8000/10681\n", - "2021-08-24 02:42:52,874 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:52,901 : INFO : topic #42 (0.020): 0.096*\"japan\" + 0.091*\"martial arts\" + 0.076*\"robin williams\" + 0.042*\"akira kurosawa\" + 0.035*\"samurai\" + 0.030*\"Drama\" + 0.027*\"orson welles\" + 0.024*\"kurosawa\" + 0.021*\"hugh grant\" + 0.020*\"christopher walken\"\n", - "2021-08-24 02:42:52,902 : INFO : topic #9 (0.020): 0.245*\"based on a book\" + 0.121*\"adapted from:book\" + 0.059*\"Drama\" + 0.039*\"stephen king\" + 0.038*\"jack nicholson\" + 0.037*\"based on book\" + 0.027*\"imdb bottom 100\" + 0.022*\"literary adaptation\" + 0.020*\"stupid\" + 0.020*\"los angeles\"\n", - "2021-08-24 02:42:52,903 : INFO : topic #32 (0.020): 0.136*\"johnny depp\" + 0.068*\"vhs\" + 0.066*\"clint eastwood\" + 0.044*\"jackie chan\" + 0.034*\"western\" + 0.030*\"kung fu\" + 0.030*\"propaganda\" + 0.029*\"india\" + 0.027*\"david lynch\" + 0.026*\"leonardo dicaprio\"\n", - "2021-08-24 02:42:52,904 : INFO : topic #21 (0.020): 0.077*\"Sci-Fi\" + 0.072*\"aliens\" + 0.065*\"sci-fi\" + 0.041*\"futuristmovies.com\" + 0.039*\"space\" + 0.026*\"will smith\" + 0.023*\"future\" + 0.023*\"Action\" + 0.022*\"tommy lee jones\" + 0.020*\"ridley scott\"\n", - "2021-08-24 02:42:52,905 : INFO : topic #15 (0.020): 0.141*\"disney\" + 0.096*\"animation\" + 0.079*\"pixar\" + 0.047*\"Animation\" + 0.041*\"children\" + 0.037*\"Children\" + 0.032*\"pirates\" + 0.029*\"disney animated feature\" + 0.026*\"angelina jolie\" + 0.021*\"cartoon\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:52,907 : INFO : topic diff=0.039945, rho=0.181547\n", - "2021-08-24 02:42:52,908 : INFO : PROGRESS: pass 24, at document #10000/10681\n", - "2021-08-24 02:42:53,173 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:53,201 : INFO : topic #29 (0.020): 0.095*\"nudity (full frontal - notable)\" + 0.054*\"Drama\" + 0.052*\"shakespeare\" + 0.045*\"based on a play\" + 0.036*\"christianity\" + 0.034*\"adapted from:play\" + 0.029*\"religion\" + 0.021*\"biblical\" + 0.021*\"disability\" + 0.019*\"fascism\"\n", - "2021-08-24 02:42:53,202 : INFO : topic #26 (0.020): 0.045*\"Drama\" + 0.033*\"james bond\" + 0.021*\"reflective\" + 0.021*\"poignant\" + 0.020*\"007\" + 0.020*\"atmospheric\" + 0.019*\"bittersweet\" + 0.019*\"lyrical\" + 0.019*\"bond\" + 0.018*\"deliberate\"\n", - "2021-08-24 02:42:53,203 : INFO : topic #13 (0.020): 0.062*\"fairy tale\" + 0.048*\"road trip\" + 0.041*\"sequel\" + 0.040*\"jane austen\" + 0.026*\"historical\" + 0.025*\"gerard depardieu\" + 0.024*\"swashbuckler\" + 0.024*\"assassination\" + 0.024*\"kids\" + 0.024*\"cold war\"\n", - "2021-08-24 02:42:53,204 : INFO : topic #17 (0.020): 0.347*\"Sci-Fi\" + 0.079*\"Horror\" + 0.067*\"Action\" + 0.040*\"video game adaptation\" + 0.023*\"football\" + 0.021*\"animals\" + 0.019*\"movie to see\" + 0.016*\"futuristic\" + 0.014*\"milla jovovich\" + 0.014*\"g\"\n", - "2021-08-24 02:42:53,205 : INFO : topic #9 (0.020): 0.245*\"based on a book\" + 0.114*\"adapted from:book\" + 0.059*\"Drama\" + 0.038*\"based on book\" + 0.035*\"jack nicholson\" + 0.032*\"stephen king\" + 0.028*\"imdb bottom 100\" + 0.023*\"stupid\" + 0.022*\"literary adaptation\" + 0.021*\"los angeles\"\n", - "2021-08-24 02:42:53,206 : INFO : topic diff=0.032591, rho=0.181547\n", - "2021-08-24 02:42:53,348 : INFO : -20.964 per-word bound, 2046008.4 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:53,349 : INFO : PROGRESS: pass 24, at document #10681/10681\n", - "2021-08-24 02:42:53,442 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:53,469 : INFO : topic #40 (0.020): 0.304*\"r\" + 0.154*\"clearplay\" + 0.072*\"movie to see\" + 0.050*\"Drama\" + 0.034*\"prison\" + 0.029*\"friendship\" + 0.027*\"morgan freeman\" + 0.016*\"conspiracy\" + 0.014*\"1970s\" + 0.013*\"don cheadle\"\n", - "2021-08-24 02:42:53,470 : INFO : topic #41 (0.020): 0.133*\"remake\" + 0.076*\"new york city\" + 0.064*\"christmas\" + 0.041*\"family\" + 0.034*\"bibliothek\" + 0.034*\"new york\" + 0.030*\"Drama\" + 0.030*\"movie to see\" + 0.029*\"eric's dvds\" + 0.027*\"kevin spacey\"\n", - "2021-08-24 02:42:53,471 : INFO : topic #2 (0.020): 0.314*\"Documentary\" + 0.144*\"to see\" + 0.060*\"documentary\" + 0.025*\"movie to see\" + 0.024*\"mockumentary\" + 0.020*\"owen wilson\" + 0.018*\"dogs\" + 0.018*\"sexuality\" + 0.016*\"kevin smith\" + 0.015*\"star trek\"\n", - "2021-08-24 02:42:53,472 : INFO : topic #35 (0.020): 0.355*\"Comedy\" + 0.314*\"Drama\" + 0.200*\"Romance\" + 0.014*\"lesbian\" + 0.008*\"bibliothek\" + 0.008*\"sean penn\" + 0.007*\"philip seymour hoffman\" + 0.005*\"m. night shyamalan\" + 0.005*\"oscar (best foreign language film)\" + 0.003*\"library vhs\"\n", - "2021-08-24 02:42:53,473 : INFO : topic #7 (0.020): 0.108*\"romance\" + 0.063*\"Romance\" + 0.044*\"chick flick\" + 0.037*\"boring\" + 0.027*\"love story\" + 0.024*\"girlie movie\" + 0.024*\"love\" + 0.023*\"Comedy\" + 0.023*\"baseball\" + 0.022*\"wedding\"\n", - "2021-08-24 02:42:53,474 : INFO : topic diff=0.072728, rho=0.181547\n", - "2021-08-24 02:42:53,476 : INFO : PROGRESS: pass 25, at document #2000/10681\n", - "2021-08-24 02:42:53,752 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:53,779 : INFO : topic #27 (0.020): 0.292*\"Horror\" + 0.160*\"Thriller\" + 0.133*\"Mystery\" + 0.045*\"Drama\" + 0.033*\"easily confused with other movie(s) (title)\" + 0.032*\"Film-Noir\" + 0.031*\"Fantasy\" + 0.016*\"slasher\" + 0.015*\"franchise\" + 0.014*\"eerie\"\n", - "2021-08-24 02:42:53,781 : INFO : topic #7 (0.020): 0.113*\"romance\" + 0.068*\"Romance\" + 0.051*\"chick flick\" + 0.037*\"boring\" + 0.028*\"girlie movie\" + 0.023*\"Comedy\" + 0.023*\"love story\" + 0.023*\"baseball\" + 0.020*\"wedding\" + 0.019*\"whimsical\"\n", - "2021-08-24 02:42:53,781 : INFO : topic #30 (0.020): 0.242*\"Adventure\" + 0.127*\"Children\" + 0.113*\"Comedy\" + 0.106*\"Fantasy\" + 0.081*\"Action\" + 0.049*\"Animation\" + 0.048*\"70mm\" + 0.047*\"Drama\" + 0.017*\"Musical\" + 0.012*\"submarine\"\n", - "2021-08-24 02:42:53,782 : INFO : topic #42 (0.020): 0.083*\"robin williams\" + 0.080*\"japan\" + 0.071*\"martial arts\" + 0.037*\"samurai\" + 0.036*\"akira kurosawa\" + 0.032*\"orson welles\" + 0.031*\"divorce\" + 0.030*\"Drama\" + 0.024*\"kurosawa\" + 0.022*\"jonossa\"\n", - "2021-08-24 02:42:53,783 : INFO : topic #23 (0.020): 0.084*\"high school\" + 0.062*\"teen\" + 0.051*\"cars\" + 0.035*\"dance\" + 0.028*\"marx brothers\" + 0.027*\"sandra bullock\" + 0.023*\"Comedy\" + 0.020*\"(s)vcd\" + 0.020*\"kate winslet\" + 0.020*\"eddie murphy\"\n", - "2021-08-24 02:42:53,784 : INFO : topic diff=0.132767, rho=0.178627\n", - "2021-08-24 02:42:53,785 : INFO : PROGRESS: pass 25, at document #4000/10681\n", - "2021-08-24 02:42:54,021 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:54,049 : INFO : topic #29 (0.020): 0.095*\"nudity (full frontal - notable)\" + 0.066*\"shakespeare\" + 0.050*\"Drama\" + 0.045*\"based on a play\" + 0.039*\"adapted from:play\" + 0.033*\"christianity\" + 0.029*\"religion\" + 0.022*\"cannibalism\" + 0.021*\"disability\" + 0.021*\"jodie foster\"\n", - "2021-08-24 02:42:54,050 : INFO : topic #45 (0.020): 0.198*\"less than 300 ratings\" + 0.109*\"Drama\" + 0.078*\"nudity (topless - notable)\" + 0.057*\"tim burton\" + 0.030*\"not corv lib\" + 0.023*\"library\" + 0.019*\"depressing\" + 0.015*\"blindfold\" + 0.014*\"golden raspberry (worst actor)\" + 0.013*\"san francisco\"\n", - "2021-08-24 02:42:54,050 : INFO : topic #43 (0.020): 0.076*\"surreal\" + 0.043*\"quirky\" + 0.042*\"stanley kubrick\" + 0.041*\"satirical\" + 0.036*\"cynical\" + 0.035*\"narrated\" + 0.030*\"biting\" + 0.029*\"dreamlike\" + 0.028*\"irreverent\" + 0.025*\"humorous\"\n", - "2021-08-24 02:42:54,051 : INFO : topic #16 (0.020): 0.294*\"nudity (topless)\" + 0.196*\"nudity (topless - brief)\" + 0.062*\"nudity (rear)\" + 0.032*\"claymation\" + 0.024*\"pg\" + 0.022*\"military\" + 0.021*\"aardman\" + 0.019*\"childhood\" + 0.013*\"weird\" + 0.011*\"freedom\"\n", - "2021-08-24 02:42:54,052 : INFO : topic #9 (0.020): 0.246*\"based on a book\" + 0.112*\"adapted from:book\" + 0.055*\"Drama\" + 0.048*\"stephen king\" + 0.041*\"jack nicholson\" + 0.037*\"based on book\" + 0.026*\"imdb bottom 100\" + 0.024*\"stupid\" + 0.021*\"literary adaptation\" + 0.021*\"los angeles\"\n", - "2021-08-24 02:42:54,053 : INFO : topic diff=0.023974, rho=0.178627\n", - "2021-08-24 02:42:54,054 : INFO : PROGRESS: pass 25, at document #6000/10681\n", - "2021-08-24 02:42:54,295 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:54,322 : INFO : topic #38 (0.020): 0.176*\"drugs\" + 0.042*\"samuel l. jackson\" + 0.027*\"divx\" + 0.026*\"ewan mcgregor\" + 0.024*\"addiction\" + 0.023*\"hulu\" + 0.022*\"poverty\" + 0.021*\"michael caine\" + 0.021*\"basketball\" + 0.020*\"liam neeson\"\n", - "2021-08-24 02:42:54,323 : INFO : topic #31 (0.020): 0.124*\"zombies\" + 0.078*\"horror\" + 0.066*\"pg-13\" + 0.037*\"cult classic\" + 0.034*\"zombie\" + 0.027*\"campy\" + 0.025*\"sam raimi\" + 0.025*\"joaquin phoenix\" + 0.024*\"books\" + 0.021*\"infidelity\"\n", - "2021-08-24 02:42:54,324 : INFO : topic #24 (0.020): 0.080*\"hitchcock\" + 0.077*\"murder\" + 0.068*\"vampire\" + 0.061*\"alfred hitchcock\" + 0.056*\"vampires\" + 0.054*\"oppl\" + 0.048*\"memory\" + 0.019*\"incest\" + 0.018*\"cary grant\" + 0.017*\"kirsten dunst\"\n", - "2021-08-24 02:42:54,325 : INFO : topic #9 (0.020): 0.246*\"based on a book\" + 0.113*\"adapted from:book\" + 0.056*\"Drama\" + 0.042*\"stephen king\" + 0.039*\"based on book\" + 0.039*\"jack nicholson\" + 0.026*\"imdb bottom 100\" + 0.022*\"stupid\" + 0.022*\"literary adaptation\" + 0.020*\"los angeles\"\n", - "2021-08-24 02:42:54,326 : INFO : topic #40 (0.020): 0.253*\"r\" + 0.125*\"clearplay\" + 0.057*\"movie to see\" + 0.052*\"prison\" + 0.044*\"Drama\" + 0.033*\"morgan freeman\" + 0.026*\"friendship\" + 0.018*\"conspiracy\" + 0.018*\"mel brooks\" + 0.017*\"john wayne\"\n", - "2021-08-24 02:42:54,327 : INFO : topic diff=0.047043, rho=0.178627\n", - "2021-08-24 02:42:54,328 : INFO : PROGRESS: pass 25, at document #8000/10681\n", - "2021-08-24 02:42:54,554 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:54,580 : INFO : topic #33 (0.020): 0.116*\"Comedy\" + 0.111*\"comedy\" + 0.059*\"funny\" + 0.037*\"seen more than once\" + 0.037*\"parody\" + 0.030*\"dark comedy\" + 0.028*\"hilarious\" + 0.024*\"coen brothers\" + 0.024*\"quirky\" + 0.021*\"black comedy\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:54,581 : INFO : topic #47 (0.020): 0.063*\"serial killer\" + 0.057*\"psychology\" + 0.050*\"brad pitt\" + 0.041*\"edward norton\" + 0.034*\"heist\" + 0.028*\"matt damon\" + 0.028*\"steven spielberg\" + 0.027*\"hayao miyazaki\" + 0.023*\"crime\" + 0.016*\"scary\"\n", - "2021-08-24 02:42:54,582 : INFO : topic #22 (0.020): 0.259*\"betamax\" + 0.101*\"dvd-video\" + 0.068*\"clv\" + 0.030*\"aviation\" + 0.020*\"library on hold\" + 0.019*\"terry gilliam\" + 0.017*\"dvd collection\" + 0.015*\"seen 2008\" + 0.014*\"gilliam\" + 0.012*\"steven seagal\"\n", - "2021-08-24 02:42:54,583 : INFO : topic #5 (0.020): 0.270*\"classic\" + 0.062*\"musical\" + 0.045*\"afi 100 (laughs)\" + 0.036*\"Musical\" + 0.030*\"national film registry\" + 0.019*\"70mm\" + 0.018*\"afi 100\" + 0.016*\"john travolta\" + 0.016*\"adapted from b'way\" + 0.015*\"breakthroughs\"\n", - "2021-08-24 02:42:54,584 : INFO : topic #8 (0.020): 0.138*\"anime\" + 0.090*\"tom hanks\" + 0.078*\"true story\" + 0.058*\"based on a true story\" + 0.027*\"drama\" + 0.025*\"good\" + 0.025*\"japan\" + 0.023*\"interesting\" + 0.021*\"not funny\" + 0.018*\"archaeology\"\n", - "2021-08-24 02:42:54,585 : INFO : topic diff=0.039034, rho=0.178627\n", - "2021-08-24 02:42:54,587 : INFO : PROGRESS: pass 25, at document #10000/10681\n", - "2021-08-24 02:42:54,822 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:54,849 : INFO : topic #15 (0.020): 0.121*\"disney\" + 0.098*\"animation\" + 0.084*\"pixar\" + 0.047*\"Animation\" + 0.043*\"pirates\" + 0.040*\"children\" + 0.035*\"Children\" + 0.028*\"angelina jolie\" + 0.026*\"disney animated feature\" + 0.022*\"cartoon\"\n", - "2021-08-24 02:42:54,850 : INFO : topic #33 (0.020): 0.117*\"Comedy\" + 0.109*\"comedy\" + 0.063*\"funny\" + 0.036*\"parody\" + 0.032*\"seen more than once\" + 0.030*\"hilarious\" + 0.028*\"dark comedy\" + 0.023*\"england\" + 0.022*\"quirky\" + 0.021*\"black comedy\"\n", - "2021-08-24 02:42:54,851 : INFO : topic #36 (0.020): 0.070*\"cult film\" + 0.046*\"downbeat\" + 0.045*\"peter jackson\" + 0.040*\"russell crowe\" + 0.033*\"not available from netflix\" + 0.031*\"adam sandler\" + 0.026*\"1980s\" + 0.023*\"new zealand\" + 0.017*\"existentialism\" + 0.017*\"must see!\"\n", - "2021-08-24 02:42:54,852 : INFO : topic #20 (0.020): 0.095*\"biography\" + 0.068*\"Drama\" + 0.053*\"biopic\" + 0.045*\"death\" + 0.043*\"corvallis library\" + 0.037*\"suicide\" + 0.034*\"ensemble cast\" + 0.028*\"julia roberts\" + 0.026*\"ingmar bergman\" + 0.025*\"medieval\"\n", - "2021-08-24 02:42:54,853 : INFO : topic #49 (0.020): 0.086*\"national film registry\" + 0.053*\"imdb top 250\" + 0.040*\"black and white\" + 0.039*\"tumey's dvds\" + 0.026*\"afi 100 (thrills)\" + 0.025*\"paris\" + 0.023*\"france\" + 0.022*\"erlend's dvds\" + 0.021*\"afi 100\" + 0.020*\"afi 100 (movie quotes)\"\n", - "2021-08-24 02:42:54,854 : INFO : topic diff=0.031886, rho=0.178627\n", - "2021-08-24 02:42:55,003 : INFO : -20.964 per-word bound, 2045800.0 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:55,003 : INFO : PROGRESS: pass 25, at document #10681/10681\n", - "2021-08-24 02:42:55,101 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:55,127 : INFO : topic #18 (0.020): 0.090*\"magic\" + 0.076*\"pg13\" + 0.073*\"gay\" + 0.052*\"racism\" + 0.040*\"Drama\" + 0.026*\"food\" + 0.025*\"social commentary\" + 0.023*\"homosexuality\" + 0.021*\"19th century\" + 0.020*\"denzel washington\"\n", - "2021-08-24 02:42:55,128 : INFO : topic #39 (0.020): 0.158*\"time travel\" + 0.055*\"adultery\" + 0.045*\"motorcycle\" + 0.045*\"post apocalyptic\" + 0.042*\"post-apocalyptic\" + 0.035*\"jude law\" + 0.024*\"bechdel test:fail\" + 0.023*\"dystopia\" + 0.019*\"want to own\" + 0.017*\"old\"\n", - "2021-08-24 02:42:55,128 : INFO : topic #6 (0.020): 0.143*\"Musical\" + 0.113*\"politics\" + 0.063*\"satire\" + 0.040*\"nicolas cage\" + 0.038*\"terrorism\" + 0.033*\"dvd-r\" + 0.029*\"sean connery\" + 0.027*\"corruption\" + 0.027*\"police\" + 0.025*\"political\"\n", - "2021-08-24 02:42:55,129 : INFO : topic #46 (0.020): 0.084*\"action\" + 0.064*\"fantasy\" + 0.037*\"adventure\" + 0.037*\"sci-fi\" + 0.032*\"dvd\" + 0.027*\"Adventure\" + 0.021*\"watched 2006\" + 0.021*\"robots\" + 0.020*\"seen at the cinema\" + 0.019*\"seen more than once\"\n", - "2021-08-24 02:42:55,130 : INFO : topic #10 (0.020): 0.251*\"Thriller\" + 0.239*\"Crime\" + 0.169*\"Drama\" + 0.166*\"Action\" + 0.028*\"Mystery\" + 0.017*\"murder\" + 0.011*\"crime\" + 0.007*\"virtual reality\" + 0.004*\"thriller\" + 0.004*\"greg kinnear\"\n", - "2021-08-24 02:42:55,131 : INFO : topic diff=0.071425, rho=0.178627\n", - "2021-08-24 02:42:55,133 : INFO : PROGRESS: pass 26, at document #2000/10681\n", - "2021-08-24 02:42:55,385 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:55,411 : INFO : topic #3 (0.020): 0.194*\"oscar (best picture)\" + 0.075*\"oscar (best directing)\" + 0.063*\"oscar (best actor)\" + 0.050*\"oscar (best supporting actor)\" + 0.029*\"al pacino\" + 0.023*\"afi 100 (cheers)\" + 0.022*\"afi 100\" + 0.022*\"Drama\" + 0.022*\"great acting\" + 0.020*\"best picture\"\n", - "2021-08-24 02:42:55,412 : INFO : topic #24 (0.020): 0.081*\"hitchcock\" + 0.074*\"alfred hitchcock\" + 0.071*\"oppl\" + 0.071*\"murder\" + 0.064*\"vampire\" + 0.049*\"vampires\" + 0.038*\"memory\" + 0.022*\"incest\" + 0.020*\"cary grant\" + 0.017*\"kirsten dunst\"\n", - "2021-08-24 02:42:55,413 : INFO : topic #25 (0.020): 0.159*\"Western\" + 0.069*\"erlend's dvds\" + 0.054*\"woody allen\" + 0.045*\"Drama\" + 0.044*\"gothic\" + 0.038*\"gene hackman\" + 0.026*\"george clooney\" + 0.026*\"sad\" + 0.021*\"scary movies to see on halloween\" + 0.021*\"nicole kidman\"\n", - "2021-08-24 02:42:55,414 : INFO : topic #5 (0.020): 0.299*\"classic\" + 0.067*\"musical\" + 0.037*\"afi 100 (laughs)\" + 0.033*\"Musical\" + 0.027*\"national film registry\" + 0.022*\"afi 100\" + 0.018*\"john travolta\" + 0.016*\"70mm\" + 0.014*\"breakthroughs\" + 0.013*\"adapted from b'way\"\n", - "2021-08-24 02:42:55,414 : INFO : topic #19 (0.020): 0.070*\"nudity (full frontal)\" + 0.059*\"drama\" + 0.036*\"Drama\" + 0.030*\"philip k. dick\" + 0.029*\"vietnam\" + 0.028*\"vietnam war\" + 0.025*\"to see\" + 0.024*\"rape\" + 0.019*\"slow\" + 0.018*\"very good\"\n", - "2021-08-24 02:42:55,416 : INFO : topic diff=0.130237, rho=0.175844\n", - "2021-08-24 02:42:55,418 : INFO : PROGRESS: pass 26, at document #4000/10681\n", - "2021-08-24 02:42:55,659 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:55,685 : INFO : topic #48 (0.020): 0.103*\"bruce willis\" + 0.085*\"twist ending\" + 0.083*\"netflix\" + 0.048*\"coming of age\" + 0.034*\"journalism\" + 0.027*\"Drama\" + 0.026*\"talking animals\" + 0.026*\"sexy\" + 0.025*\"to see\" + 0.019*\"relationships\"\n", - "2021-08-24 02:42:55,686 : INFO : topic #13 (0.020): 0.054*\"fairy tale\" + 0.044*\"jane austen\" + 0.041*\"road trip\" + 0.037*\"sequel\" + 0.030*\"assassination\" + 0.029*\"cold war\" + 0.027*\"historical\" + 0.022*\"kids\" + 0.021*\"heartwarming\" + 0.020*\"gerard depardieu\"\n", - "2021-08-24 02:42:55,686 : INFO : topic #16 (0.020): 0.294*\"nudity (topless)\" + 0.196*\"nudity (topless - brief)\" + 0.062*\"nudity (rear)\" + 0.032*\"claymation\" + 0.024*\"pg\" + 0.022*\"military\" + 0.021*\"aardman\" + 0.019*\"childhood\" + 0.013*\"weird\" + 0.011*\"freedom\"\n", - "2021-08-24 02:42:55,687 : INFO : topic #43 (0.020): 0.076*\"surreal\" + 0.044*\"quirky\" + 0.041*\"stanley kubrick\" + 0.041*\"satirical\" + 0.036*\"cynical\" + 0.035*\"narrated\" + 0.030*\"biting\" + 0.029*\"dreamlike\" + 0.028*\"irreverent\" + 0.026*\"humorous\"\n", - "2021-08-24 02:42:55,688 : INFO : topic #32 (0.020): 0.141*\"johnny depp\" + 0.063*\"clint eastwood\" + 0.054*\"vhs\" + 0.041*\"jackie chan\" + 0.041*\"western\" + 0.034*\"spaghetti western\" + 0.032*\"kung fu\" + 0.029*\"india\" + 0.029*\"propaganda\" + 0.028*\"sergio leone\"\n", - "2021-08-24 02:42:55,689 : INFO : topic diff=0.023494, rho=0.175844\n", - "2021-08-24 02:42:55,690 : INFO : PROGRESS: pass 26, at document #6000/10681\n", - "2021-08-24 02:42:55,910 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:55,937 : INFO : topic #9 (0.020): 0.246*\"based on a book\" + 0.113*\"adapted from:book\" + 0.056*\"Drama\" + 0.042*\"stephen king\" + 0.039*\"based on book\" + 0.039*\"jack nicholson\" + 0.026*\"imdb bottom 100\" + 0.022*\"stupid\" + 0.022*\"literary adaptation\" + 0.020*\"los angeles\"\n", - "2021-08-24 02:42:55,938 : INFO : topic #8 (0.020): 0.125*\"anime\" + 0.094*\"tom hanks\" + 0.078*\"true story\" + 0.064*\"based on a true story\" + 0.026*\"drama\" + 0.025*\"japan\" + 0.025*\"good\" + 0.023*\"interesting\" + 0.021*\"archaeology\" + 0.019*\"not funny\"\n", - "2021-08-24 02:42:55,938 : INFO : topic #3 (0.020): 0.162*\"oscar (best picture)\" + 0.064*\"oscar (best directing)\" + 0.063*\"oscar (best actor)\" + 0.056*\"oscar (best supporting actor)\" + 0.037*\"al pacino\" + 0.024*\"Drama\" + 0.024*\"afi 100 (cheers)\" + 0.019*\"afi 100\" + 0.019*\"great acting\" + 0.017*\"tumey's dvds\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:55,939 : INFO : topic #18 (0.020): 0.082*\"magic\" + 0.079*\"gay\" + 0.062*\"racism\" + 0.044*\"pg13\" + 0.040*\"Drama\" + 0.027*\"food\" + 0.027*\"social commentary\" + 0.023*\"homosexuality\" + 0.020*\"19th century\" + 0.019*\"denzel washington\"\n", - "2021-08-24 02:42:55,940 : INFO : topic #19 (0.020): 0.062*\"nudity (full frontal)\" + 0.061*\"drama\" + 0.035*\"Drama\" + 0.034*\"philip k. dick\" + 0.028*\"vietnam war\" + 0.027*\"rape\" + 0.025*\"vietnam\" + 0.022*\"very good\" + 0.020*\"to see\" + 0.016*\"slow\"\n", - "2021-08-24 02:42:55,942 : INFO : topic diff=0.046241, rho=0.175844\n", - "2021-08-24 02:42:55,943 : INFO : PROGRESS: pass 26, at document #8000/10681\n", - "2021-08-24 02:42:56,180 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:56,207 : INFO : topic #2 (0.020): 0.287*\"Documentary\" + 0.104*\"to see\" + 0.064*\"documentary\" + 0.026*\"mockumentary\" + 0.025*\"sexuality\" + 0.023*\"star trek\" + 0.021*\"dogs\" + 0.021*\"kevin smith\" + 0.018*\"movie to see\" + 0.017*\"in netflix queue\"\n", - "2021-08-24 02:42:56,208 : INFO : topic #45 (0.020): 0.230*\"less than 300 ratings\" + 0.116*\"Drama\" + 0.074*\"nudity (topless - notable)\" + 0.043*\"tim burton\" + 0.028*\"not corv lib\" + 0.025*\"library\" + 0.016*\"blindfold\" + 0.016*\"depressing\" + 0.015*\"michael moore\" + 0.013*\"golden raspberry (worst actor)\"\n", - "2021-08-24 02:42:56,209 : INFO : topic #21 (0.020): 0.078*\"Sci-Fi\" + 0.072*\"aliens\" + 0.067*\"sci-fi\" + 0.041*\"futuristmovies.com\" + 0.039*\"space\" + 0.026*\"will smith\" + 0.024*\"future\" + 0.022*\"Action\" + 0.022*\"tommy lee jones\" + 0.020*\"ridley scott\"\n", - "2021-08-24 02:42:56,210 : INFO : topic #38 (0.020): 0.160*\"drugs\" + 0.039*\"samuel l. jackson\" + 0.029*\"divx\" + 0.029*\"peter sellers\" + 0.029*\"ewan mcgregor\" + 0.024*\"hulu\" + 0.023*\"addiction\" + 0.022*\"poverty\" + 0.021*\"michael caine\" + 0.020*\"basketball\"\n", - "2021-08-24 02:42:56,210 : INFO : topic #19 (0.020): 0.061*\"drama\" + 0.055*\"nudity (full frontal)\" + 0.034*\"philip k. dick\" + 0.033*\"Drama\" + 0.026*\"rape\" + 0.026*\"vietnam war\" + 0.025*\"vietnam\" + 0.024*\"very good\" + 0.019*\"soccer\" + 0.018*\"to see\"\n", - "2021-08-24 02:42:56,211 : INFO : topic diff=0.038566, rho=0.175844\n", - "2021-08-24 02:42:56,213 : INFO : PROGRESS: pass 26, at document #10000/10681\n", - "2021-08-24 02:42:56,456 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:56,484 : INFO : topic #8 (0.020): 0.148*\"anime\" + 0.081*\"true story\" + 0.077*\"tom hanks\" + 0.060*\"based on a true story\" + 0.027*\"interesting\" + 0.026*\"to-rent\" + 0.025*\"japan\" + 0.024*\"not funny\" + 0.024*\"good\" + 0.023*\"drama\"\n", - "2021-08-24 02:42:56,485 : INFO : topic #13 (0.020): 0.062*\"fairy tale\" + 0.048*\"road trip\" + 0.040*\"sequel\" + 0.040*\"jane austen\" + 0.026*\"historical\" + 0.025*\"gerard depardieu\" + 0.024*\"assassination\" + 0.024*\"swashbuckler\" + 0.024*\"cold war\" + 0.024*\"kids\"\n", - "2021-08-24 02:42:56,486 : INFO : topic #1 (0.020): 0.054*\"overrated\" + 0.039*\"violence\" + 0.037*\"quentin tarantino\" + 0.032*\"revenge\" + 0.030*\"crime\" + 0.025*\"violent\" + 0.025*\"owned\" + 0.024*\"imdb top 250\" + 0.022*\"tarantino\" + 0.021*\"drama\"\n", - "2021-08-24 02:42:56,487 : INFO : topic #41 (0.020): 0.127*\"remake\" + 0.064*\"new york city\" + 0.059*\"christmas\" + 0.047*\"family\" + 0.040*\"bibliothek\" + 0.035*\"new york\" + 0.034*\"eric's dvds\" + 0.030*\"Drama\" + 0.029*\"kevin spacey\" + 0.026*\"friday night movie\"\n", - "2021-08-24 02:42:56,488 : INFO : topic #19 (0.020): 0.063*\"nudity (full frontal)\" + 0.055*\"drama\" + 0.035*\"Drama\" + 0.034*\"philip k. dick\" + 0.024*\"rape\" + 0.024*\"ummarti2007\" + 0.023*\"slow\" + 0.022*\"vietnam war\" + 0.021*\"very good\" + 0.021*\"to see\"\n", - "2021-08-24 02:42:56,489 : INFO : topic diff=0.031511, rho=0.175844\n", - "2021-08-24 02:42:56,631 : INFO : -20.962 per-word bound, 2043163.3 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:56,632 : INFO : PROGRESS: pass 26, at document #10681/10681\n", - "2021-08-24 02:42:56,724 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:56,750 : INFO : topic #33 (0.020): 0.117*\"Comedy\" + 0.105*\"comedy\" + 0.063*\"funny\" + 0.038*\"parody\" + 0.034*\"dark comedy\" + 0.031*\"seen more than once\" + 0.029*\"hilarious\" + 0.027*\"coen brothers\" + 0.023*\"black comedy\" + 0.022*\"england\"\n", - "2021-08-24 02:42:56,751 : INFO : topic #5 (0.020): 0.232*\"classic\" + 0.085*\"musical\" + 0.042*\"afi 100 (laughs)\" + 0.042*\"Musical\" + 0.026*\"national film registry\" + 0.017*\"adapted from b'way\" + 0.016*\"70mm\" + 0.015*\"afi 100\" + 0.015*\"john travolta\" + 0.014*\"breakthroughs\"\n", - "2021-08-24 02:42:56,751 : INFO : topic #20 (0.020): 0.099*\"biography\" + 0.071*\"Drama\" + 0.055*\"death\" + 0.045*\"biopic\" + 0.044*\"suicide\" + 0.038*\"corvallis library\" + 0.031*\"ensemble cast\" + 0.028*\"julia roberts\" + 0.023*\"forest whitaker\" + 0.023*\"multiple storylines\"\n", - "2021-08-24 02:42:56,752 : INFO : topic #31 (0.020): 0.156*\"zombies\" + 0.093*\"pg-13\" + 0.060*\"horror\" + 0.029*\"zombie\" + 0.025*\"infidelity\" + 0.023*\"cult classic\" + 0.023*\"movie to see\" + 0.023*\"joaquin phoenix\" + 0.022*\"books\" + 0.021*\"betrayal\"\n", - "2021-08-24 02:42:56,753 : INFO : topic #47 (0.020): 0.061*\"serial killer\" + 0.053*\"psychology\" + 0.050*\"brad pitt\" + 0.038*\"heist\" + 0.038*\"edward norton\" + 0.030*\"matt damon\" + 0.027*\"hayao miyazaki\" + 0.024*\"steven spielberg\" + 0.019*\"crime\" + 0.014*\"anthony hopkins\"\n", - "2021-08-24 02:42:56,754 : INFO : topic diff=0.070429, rho=0.175844\n", - "2021-08-24 02:42:56,756 : INFO : PROGRESS: pass 27, at document #2000/10681\n", - "2021-08-24 02:42:57,007 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:57,034 : INFO : topic #35 (0.020): 0.346*\"Comedy\" + 0.315*\"Drama\" + 0.198*\"Romance\" + 0.016*\"lesbian\" + 0.009*\"bibliothek\" + 0.007*\"sean penn\" + 0.006*\"philip seymour hoffman\" + 0.005*\"oscar (best foreign language film)\" + 0.004*\"m. night shyamalan\" + 0.003*\"library vhs\"\n", - "2021-08-24 02:42:57,035 : INFO : topic #26 (0.020): 0.043*\"Drama\" + 0.025*\"james bond\" + 0.021*\"mel gibson\" + 0.021*\"poignant\" + 0.020*\"atmospheric\" + 0.019*\"bittersweet\" + 0.019*\"reflective\" + 0.018*\"lyrical\" + 0.017*\"bond\" + 0.017*\"assassin\"\n", - "2021-08-24 02:42:57,036 : INFO : topic #44 (0.020): 0.117*\"mafia\" + 0.085*\"music\" + 0.064*\"martin scorsese\" + 0.055*\"organized crime\" + 0.039*\"rock and roll\" + 0.033*\"Musical\" + 0.025*\"guns\" + 0.024*\"wired 50 greatest soundtracks\" + 0.022*\"francis ford coppola\" + 0.020*\"confrontational\"\n", - "2021-08-24 02:42:57,037 : INFO : topic #8 (0.020): 0.108*\"anime\" + 0.085*\"true story\" + 0.082*\"tom hanks\" + 0.071*\"based on a true story\" + 0.026*\"drama\" + 0.026*\"good\" + 0.024*\"archaeology\" + 0.021*\"japan\" + 0.020*\"interesting\" + 0.020*\"to-rent\"\n", - "2021-08-24 02:42:57,038 : INFO : topic #41 (0.020): 0.114*\"remake\" + 0.069*\"new york city\" + 0.066*\"christmas\" + 0.045*\"family\" + 0.038*\"kevin spacey\" + 0.036*\"bibliothek\" + 0.033*\"new york\" + 0.029*\"Drama\" + 0.027*\"eric's dvds\" + 0.023*\"movie to see\"\n", - "2021-08-24 02:42:57,039 : INFO : topic diff=0.128704, rho=0.173186\n", - "2021-08-24 02:42:57,041 : INFO : PROGRESS: pass 27, at document #4000/10681\n", - "2021-08-24 02:42:57,308 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:57,336 : INFO : topic #40 (0.020): 0.258*\"r\" + 0.130*\"clearplay\" + 0.058*\"movie to see\" + 0.052*\"prison\" + 0.044*\"Drama\" + 0.033*\"morgan freeman\" + 0.027*\"friendship\" + 0.020*\"mel brooks\" + 0.020*\"conspiracy\" + 0.016*\"1970s\"\n", - "2021-08-24 02:42:57,337 : INFO : topic #28 (0.020): 0.088*\"oscar (best cinematography)\" + 0.072*\"Drama\" + 0.055*\"oscar (best supporting actress)\" + 0.049*\"in netflix queue\" + 0.042*\"oscar (best actress)\" + 0.029*\"remade\" + 0.022*\"marlon brando\" + 0.016*\"exceptional acting\" + 0.014*\"china\" + 0.013*\"alcoholism\"\n", - "2021-08-24 02:42:57,338 : INFO : topic #7 (0.020): 0.113*\"romance\" + 0.065*\"Romance\" + 0.054*\"chick flick\" + 0.038*\"boring\" + 0.030*\"girlie movie\" + 0.027*\"baseball\" + 0.023*\"Comedy\" + 0.020*\"love story\" + 0.019*\"whimsical\" + 0.017*\"wedding\"\n", - "2021-08-24 02:42:57,339 : INFO : topic #0 (0.020): 0.224*\"can't remember\" + 0.098*\"directorial debut\" + 0.092*\"based on a tv show\" + 0.079*\"Comedy\" + 0.032*\"ummarti2006\" + 0.028*\"australia\" + 0.026*\"keira knightley\" + 0.021*\"australian\" + 0.020*\"robert downey jr\" + 0.017*\"immigrants\"\n", - "2021-08-24 02:42:57,340 : INFO : topic #32 (0.020): 0.141*\"johnny depp\" + 0.063*\"clint eastwood\" + 0.054*\"vhs\" + 0.041*\"jackie chan\" + 0.041*\"western\" + 0.034*\"spaghetti western\" + 0.032*\"kung fu\" + 0.029*\"india\" + 0.029*\"propaganda\" + 0.028*\"sergio leone\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:57,341 : INFO : topic diff=0.023122, rho=0.173186\n", - "2021-08-24 02:42:57,343 : INFO : PROGRESS: pass 27, at document #6000/10681\n", - "2021-08-24 02:42:57,586 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:57,613 : INFO : topic #18 (0.020): 0.081*\"magic\" + 0.079*\"gay\" + 0.062*\"racism\" + 0.044*\"pg13\" + 0.040*\"Drama\" + 0.027*\"food\" + 0.027*\"social commentary\" + 0.023*\"homosexuality\" + 0.020*\"19th century\" + 0.019*\"denzel washington\"\n", - "2021-08-24 02:42:57,614 : INFO : topic #32 (0.020): 0.135*\"johnny depp\" + 0.067*\"clint eastwood\" + 0.059*\"vhs\" + 0.045*\"jackie chan\" + 0.037*\"western\" + 0.031*\"kung fu\" + 0.031*\"leonardo dicaprio\" + 0.030*\"spaghetti western\" + 0.029*\"propaganda\" + 0.029*\"david lynch\"\n", - "2021-08-24 02:42:57,615 : INFO : topic #26 (0.020): 0.042*\"Drama\" + 0.035*\"james bond\" + 0.024*\"007\" + 0.023*\"bond\" + 0.021*\"mel gibson\" + 0.021*\"reflective\" + 0.020*\"atmospheric\" + 0.019*\"poignant\" + 0.018*\"lyrical\" + 0.017*\"bittersweet\"\n", - "2021-08-24 02:42:57,616 : INFO : topic #24 (0.020): 0.080*\"hitchcock\" + 0.077*\"murder\" + 0.068*\"vampire\" + 0.061*\"alfred hitchcock\" + 0.056*\"vampires\" + 0.055*\"oppl\" + 0.048*\"memory\" + 0.019*\"incest\" + 0.018*\"cary grant\" + 0.017*\"kirsten dunst\"\n", - "2021-08-24 02:42:57,617 : INFO : topic #6 (0.020): 0.133*\"Musical\" + 0.096*\"politics\" + 0.067*\"satire\" + 0.045*\"nicolas cage\" + 0.043*\"sean connery\" + 0.034*\"dvd-r\" + 0.030*\"terrorism\" + 0.028*\"police\" + 0.023*\"netwatch\" + 0.022*\"dvd-ram\"\n", - "2021-08-24 02:42:57,618 : INFO : topic diff=0.045444, rho=0.173186\n", - "2021-08-24 02:42:57,620 : INFO : PROGRESS: pass 27, at document #8000/10681\n", - "2021-08-24 02:42:57,859 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:57,887 : INFO : topic #1 (0.020): 0.048*\"overrated\" + 0.039*\"violence\" + 0.038*\"quentin tarantino\" + 0.033*\"crime\" + 0.025*\"tarantino\" + 0.024*\"owned\" + 0.024*\"imdb top 250\" + 0.023*\"violent\" + 0.023*\"revenge\" + 0.023*\"drama\"\n", - "2021-08-24 02:42:57,888 : INFO : topic #14 (0.020): 0.058*\"criterion\" + 0.053*\"tense\" + 0.051*\"disturbing\" + 0.051*\"atmospheric\" + 0.049*\"Drama\" + 0.032*\"stylized\" + 0.030*\"bleak\" + 0.028*\"tumey's dvds\" + 0.025*\"menacing\" + 0.025*\"erlend's dvds\"\n", - "2021-08-24 02:42:57,889 : INFO : topic #39 (0.020): 0.184*\"time travel\" + 0.054*\"adultery\" + 0.041*\"motorcycle\" + 0.039*\"post apocalyptic\" + 0.035*\"post-apocalyptic\" + 0.030*\"jude law\" + 0.024*\"dystopia\" + 0.020*\"want to own\" + 0.018*\"ian mckellen\" + 0.018*\"bechdel test:fail\"\n", - "2021-08-24 02:42:57,890 : INFO : topic #48 (0.020): 0.091*\"bruce willis\" + 0.082*\"twist ending\" + 0.069*\"netflix\" + 0.047*\"coming of age\" + 0.034*\"journalism\" + 0.030*\"sexy\" + 0.025*\"Drama\" + 0.024*\"avi\" + 0.022*\"to see\" + 0.022*\"talking animals\"\n", - "2021-08-24 02:42:57,891 : INFO : topic #36 (0.020): 0.079*\"cult film\" + 0.048*\"peter jackson\" + 0.042*\"downbeat\" + 0.042*\"russell crowe\" + 0.031*\"adam sandler\" + 0.029*\"not available from netflix\" + 0.027*\"1980s\" + 0.024*\"new zealand\" + 0.020*\"80s\" + 0.015*\"drew barrymore\"\n", - "2021-08-24 02:42:57,892 : INFO : topic diff=0.037896, rho=0.173186\n", - "2021-08-24 02:42:57,894 : INFO : PROGRESS: pass 27, at document #10000/10681\n", - "2021-08-24 02:42:58,152 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:58,180 : INFO : topic #1 (0.020): 0.054*\"overrated\" + 0.040*\"violence\" + 0.037*\"quentin tarantino\" + 0.032*\"revenge\" + 0.031*\"crime\" + 0.025*\"violent\" + 0.024*\"owned\" + 0.024*\"imdb top 250\" + 0.022*\"tarantino\" + 0.021*\"nonlinear\"\n", - "2021-08-24 02:42:58,181 : INFO : topic #31 (0.020): 0.149*\"zombies\" + 0.096*\"pg-13\" + 0.064*\"horror\" + 0.034*\"zombie\" + 0.027*\"cult classic\" + 0.026*\"joaquin phoenix\" + 0.024*\"infidelity\" + 0.022*\"sam raimi\" + 0.021*\"campy\" + 0.020*\"books\"\n", - "2021-08-24 02:42:58,182 : INFO : topic #16 (0.020): 0.290*\"nudity (topless)\" + 0.181*\"nudity (topless - brief)\" + 0.068*\"nudity (rear)\" + 0.036*\"pg\" + 0.029*\"claymation\" + 0.022*\"military\" + 0.018*\"aardman\" + 0.017*\"childhood\" + 0.016*\"weird\" + 0.010*\"freedom\"\n", - "2021-08-24 02:42:58,183 : INFO : topic #4 (0.020): 0.070*\"sports\" + 0.064*\"Drama\" + 0.056*\"london\" + 0.049*\"boxing\" + 0.046*\"sven's to see list\" + 0.040*\"british\" + 0.039*\"underrated\" + 0.039*\"hw drama\" + 0.025*\"inspirational\" + 0.024*\"sylvester stallone\"\n", - "2021-08-24 02:42:58,183 : INFO : topic #48 (0.020): 0.102*\"netflix\" + 0.086*\"bruce willis\" + 0.085*\"twist ending\" + 0.044*\"coming of age\" + 0.037*\"journalism\" + 0.025*\"talking animals\" + 0.025*\"sexy\" + 0.025*\"Drama\" + 0.022*\"to see\" + 0.021*\"avi\"\n", - "2021-08-24 02:42:58,184 : INFO : topic diff=0.030878, rho=0.173186\n", - "2021-08-24 02:42:58,326 : INFO : -20.963 per-word bound, 2043730.1 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:42:58,327 : INFO : PROGRESS: pass 27, at document #10681/10681\n", - "2021-08-24 02:42:58,429 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:42:58,455 : INFO : topic #43 (0.020): 0.074*\"surreal\" + 0.049*\"quirky\" + 0.039*\"satirical\" + 0.037*\"narrated\" + 0.032*\"cynical\" + 0.031*\"irreverent\" + 0.030*\"dreamlike\" + 0.027*\"biting\" + 0.025*\"humorous\" + 0.023*\"stanley kubrick\"\n", - "2021-08-24 02:42:58,456 : INFO : topic #16 (0.020): 0.327*\"nudity (topless)\" + 0.200*\"nudity (topless - brief)\" + 0.061*\"nudity (rear)\" + 0.028*\"pg\" + 0.023*\"claymation\" + 0.020*\"childhood\" + 0.020*\"military\" + 0.014*\"aardman\" + 0.014*\"weird\" + 0.012*\"mother-son relationship\"\n", - "2021-08-24 02:42:58,457 : INFO : topic #33 (0.020): 0.117*\"Comedy\" + 0.106*\"comedy\" + 0.063*\"funny\" + 0.038*\"parody\" + 0.034*\"dark comedy\" + 0.031*\"seen more than once\" + 0.029*\"hilarious\" + 0.027*\"coen brothers\" + 0.023*\"black comedy\" + 0.022*\"england\"\n", - "2021-08-24 02:42:58,458 : INFO : topic #40 (0.020): 0.302*\"r\" + 0.153*\"clearplay\" + 0.071*\"movie to see\" + 0.050*\"Drama\" + 0.034*\"prison\" + 0.028*\"friendship\" + 0.027*\"morgan freeman\" + 0.016*\"conspiracy\" + 0.014*\"1970s\" + 0.013*\"don cheadle\"\n", - "2021-08-24 02:42:58,459 : INFO : topic #17 (0.020): 0.360*\"Sci-Fi\" + 0.077*\"Horror\" + 0.071*\"Action\" + 0.040*\"video game adaptation\" + 0.030*\"movie to see\" + 0.024*\"football\" + 0.022*\"animals\" + 0.017*\"futuristic\" + 0.015*\"milla jovovich\" + 0.014*\"g\"\n", - "2021-08-24 02:42:58,460 : INFO : topic diff=0.069196, rho=0.173186\n", - "2021-08-24 02:42:58,462 : INFO : PROGRESS: pass 28, at document #2000/10681\n", - "2021-08-24 02:42:58,708 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:58,735 : INFO : topic #22 (0.020): 0.188*\"betamax\" + 0.089*\"dvd-video\" + 0.079*\"clv\" + 0.037*\"library on hold\" + 0.034*\"aviation\" + 0.025*\"terry gilliam\" + 0.018*\"dvd collection\" + 0.016*\"steven seagal\" + 0.016*\"gilliam\" + 0.015*\"family drama\"\n", - "2021-08-24 02:42:58,736 : INFO : topic #36 (0.020): 0.084*\"cult film\" + 0.042*\"russell crowe\" + 0.037*\"peter jackson\" + 0.036*\"downbeat\" + 0.032*\"adam sandler\" + 0.028*\"1980s\" + 0.024*\"not available from netflix\" + 0.023*\"new zealand\" + 0.019*\"virus\" + 0.017*\"must see!\"\n", - "2021-08-24 02:42:58,736 : INFO : topic #43 (0.020): 0.069*\"surreal\" + 0.044*\"stanley kubrick\" + 0.044*\"quirky\" + 0.039*\"satirical\" + 0.034*\"cynical\" + 0.032*\"narrated\" + 0.030*\"biting\" + 0.030*\"irreverent\" + 0.030*\"dreamlike\" + 0.024*\"humorous\"\n", - "2021-08-24 02:42:58,737 : INFO : topic #6 (0.020): 0.123*\"Musical\" + 0.111*\"politics\" + 0.068*\"satire\" + 0.046*\"nicolas cage\" + 0.036*\"sean connery\" + 0.034*\"terrorism\" + 0.034*\"dvd-r\" + 0.025*\"political\" + 0.025*\"police\" + 0.023*\"good dialogue\"\n", - "2021-08-24 02:42:58,738 : INFO : topic #19 (0.020): 0.070*\"nudity (full frontal)\" + 0.059*\"drama\" + 0.036*\"Drama\" + 0.030*\"philip k. dick\" + 0.029*\"vietnam\" + 0.028*\"vietnam war\" + 0.025*\"to see\" + 0.024*\"rape\" + 0.019*\"slow\" + 0.018*\"very good\"\n", - "2021-08-24 02:42:58,739 : INFO : topic diff=0.126077, rho=0.170646\n", - "2021-08-24 02:42:58,741 : INFO : PROGRESS: pass 28, at document #4000/10681\n", - "2021-08-24 02:42:58,998 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:59,025 : INFO : topic #22 (0.020): 0.229*\"betamax\" + 0.096*\"dvd-video\" + 0.074*\"clv\" + 0.036*\"aviation\" + 0.029*\"library on hold\" + 0.023*\"terry gilliam\" + 0.018*\"dvd collection\" + 0.016*\"gilliam\" + 0.014*\"seen 2008\" + 0.013*\"steven seagal\"\n", - "2021-08-24 02:42:59,027 : INFO : topic #37 (0.020): 0.182*\"War\" + 0.107*\"world war ii\" + 0.103*\"Drama\" + 0.056*\"war\" + 0.041*\"history\" + 0.037*\"jim carrey\" + 0.036*\"Action\" + 0.022*\"nazis\" + 0.017*\"mental illness\" + 0.016*\"wwii\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:42:59,028 : INFO : topic #7 (0.020): 0.113*\"romance\" + 0.065*\"Romance\" + 0.054*\"chick flick\" + 0.038*\"boring\" + 0.030*\"girlie movie\" + 0.027*\"baseball\" + 0.023*\"Comedy\" + 0.020*\"love story\" + 0.019*\"whimsical\" + 0.017*\"wedding\"\n", - "2021-08-24 02:42:59,029 : INFO : topic #5 (0.020): 0.292*\"classic\" + 0.062*\"musical\" + 0.045*\"afi 100 (laughs)\" + 0.034*\"Musical\" + 0.030*\"national film registry\" + 0.021*\"afi 100\" + 0.016*\"70mm\" + 0.015*\"adapted from b'way\" + 0.015*\"john travolta\" + 0.015*\"breakthroughs\"\n", - "2021-08-24 02:42:59,029 : INFO : topic #31 (0.020): 0.127*\"zombies\" + 0.074*\"horror\" + 0.072*\"pg-13\" + 0.039*\"cult classic\" + 0.025*\"infidelity\" + 0.025*\"campy\" + 0.024*\"zombie\" + 0.024*\"joaquin phoenix\" + 0.024*\"sam raimi\" + 0.020*\"books\"\n", - "2021-08-24 02:42:59,030 : INFO : topic diff=0.022572, rho=0.170646\n", - "2021-08-24 02:42:59,032 : INFO : PROGRESS: pass 28, at document #6000/10681\n", - "2021-08-24 02:42:59,270 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:59,297 : INFO : topic #48 (0.020): 0.098*\"bruce willis\" + 0.085*\"twist ending\" + 0.075*\"netflix\" + 0.048*\"coming of age\" + 0.033*\"sexy\" + 0.030*\"journalism\" + 0.025*\"Drama\" + 0.024*\"to see\" + 0.023*\"talking animals\" + 0.020*\"relationships\"\n", - "2021-08-24 02:42:59,297 : INFO : topic #18 (0.020): 0.081*\"magic\" + 0.079*\"gay\" + 0.062*\"racism\" + 0.045*\"pg13\" + 0.040*\"Drama\" + 0.027*\"food\" + 0.027*\"social commentary\" + 0.023*\"homosexuality\" + 0.020*\"19th century\" + 0.019*\"denzel washington\"\n", - "2021-08-24 02:42:59,298 : INFO : topic #8 (0.020): 0.125*\"anime\" + 0.094*\"tom hanks\" + 0.078*\"true story\" + 0.064*\"based on a true story\" + 0.026*\"drama\" + 0.025*\"japan\" + 0.025*\"good\" + 0.023*\"interesting\" + 0.021*\"archaeology\" + 0.019*\"not funny\"\n", - "2021-08-24 02:42:59,299 : INFO : topic #32 (0.020): 0.135*\"johnny depp\" + 0.067*\"clint eastwood\" + 0.059*\"vhs\" + 0.045*\"jackie chan\" + 0.037*\"western\" + 0.031*\"kung fu\" + 0.031*\"leonardo dicaprio\" + 0.030*\"spaghetti western\" + 0.029*\"propaganda\" + 0.028*\"david lynch\"\n", - "2021-08-24 02:42:59,300 : INFO : topic #5 (0.020): 0.277*\"classic\" + 0.066*\"musical\" + 0.045*\"afi 100 (laughs)\" + 0.034*\"Musical\" + 0.029*\"national film registry\" + 0.020*\"afi 100\" + 0.017*\"john travolta\" + 0.017*\"70mm\" + 0.016*\"adapted from b'way\" + 0.015*\"breakthroughs\"\n", - "2021-08-24 02:42:59,301 : INFO : topic diff=0.044435, rho=0.170646\n", - "2021-08-24 02:42:59,303 : INFO : PROGRESS: pass 28, at document #8000/10681\n", - "2021-08-24 02:42:59,553 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:59,581 : INFO : topic #41 (0.020): 0.118*\"remake\" + 0.066*\"christmas\" + 0.061*\"new york city\" + 0.046*\"family\" + 0.042*\"bibliothek\" + 0.034*\"new york\" + 0.032*\"kevin spacey\" + 0.031*\"Drama\" + 0.031*\"eric's dvds\" + 0.027*\"friday night movie\"\n", - "2021-08-24 02:42:59,582 : INFO : topic #36 (0.020): 0.079*\"cult film\" + 0.047*\"peter jackson\" + 0.042*\"downbeat\" + 0.042*\"russell crowe\" + 0.031*\"adam sandler\" + 0.029*\"not available from netflix\" + 0.027*\"1980s\" + 0.024*\"new zealand\" + 0.020*\"80s\" + 0.015*\"drew barrymore\"\n", - "2021-08-24 02:42:59,583 : INFO : topic #7 (0.020): 0.114*\"romance\" + 0.062*\"Romance\" + 0.047*\"chick flick\" + 0.038*\"boring\" + 0.028*\"girlie movie\" + 0.027*\"baseball\" + 0.022*\"Comedy\" + 0.022*\"whimsical\" + 0.019*\"wedding\" + 0.018*\"love\"\n", - "2021-08-24 02:42:59,584 : INFO : topic #28 (0.020): 0.082*\"oscar (best cinematography)\" + 0.078*\"Drama\" + 0.055*\"in netflix queue\" + 0.054*\"oscar (best supporting actress)\" + 0.044*\"oscar (best actress)\" + 0.028*\"remade\" + 0.018*\"marlon brando\" + 0.015*\"exceptional acting\" + 0.014*\"father daughter relationship\" + 0.012*\"china\"\n", - "2021-08-24 02:42:59,585 : INFO : topic #47 (0.020): 0.063*\"serial killer\" + 0.057*\"psychology\" + 0.050*\"brad pitt\" + 0.040*\"edward norton\" + 0.034*\"heist\" + 0.028*\"matt damon\" + 0.028*\"steven spielberg\" + 0.026*\"hayao miyazaki\" + 0.023*\"crime\" + 0.016*\"mystery\"\n", - "2021-08-24 02:42:59,586 : INFO : topic diff=0.037378, rho=0.170646\n", - "2021-08-24 02:42:59,587 : INFO : PROGRESS: pass 28, at document #10000/10681\n", - "2021-08-24 02:42:59,849 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:42:59,878 : INFO : topic #2 (0.020): 0.288*\"Documentary\" + 0.107*\"to see\" + 0.072*\"documentary\" + 0.027*\"mockumentary\" + 0.023*\"sexuality\" + 0.020*\"dogs\" + 0.020*\"movie to see\" + 0.020*\"kevin smith\" + 0.020*\"star trek\" + 0.018*\"owen wilson\"\n", - "2021-08-24 02:42:59,879 : INFO : topic #31 (0.020): 0.149*\"zombies\" + 0.096*\"pg-13\" + 0.064*\"horror\" + 0.034*\"zombie\" + 0.027*\"cult classic\" + 0.026*\"joaquin phoenix\" + 0.024*\"infidelity\" + 0.022*\"sam raimi\" + 0.021*\"campy\" + 0.020*\"books\"\n", - "2021-08-24 02:42:59,879 : INFO : topic #40 (0.020): 0.277*\"r\" + 0.125*\"clearplay\" + 0.058*\"movie to see\" + 0.047*\"Drama\" + 0.041*\"prison\" + 0.030*\"morgan freeman\" + 0.025*\"friendship\" + 0.018*\"conspiracy\" + 0.017*\"john wayne\" + 0.015*\"1970s\"\n", - "2021-08-24 02:42:59,880 : INFO : topic #18 (0.020): 0.096*\"magic\" + 0.077*\"gay\" + 0.058*\"pg13\" + 0.050*\"racism\" + 0.039*\"Drama\" + 0.026*\"homosexuality\" + 0.025*\"social commentary\" + 0.025*\"food\" + 0.022*\"19th century\" + 0.017*\"denzel washington\"\n", - "2021-08-24 02:42:59,881 : INFO : topic #39 (0.020): 0.177*\"time travel\" + 0.058*\"adultery\" + 0.049*\"motorcycle\" + 0.037*\"jude law\" + 0.037*\"post apocalyptic\" + 0.035*\"post-apocalyptic\" + 0.022*\"dystopia\" + 0.021*\"want to own\" + 0.019*\"old\" + 0.018*\"hollywood\"\n", - "2021-08-24 02:42:59,882 : INFO : topic diff=0.030540, rho=0.170646\n", - "2021-08-24 02:43:00,033 : INFO : -20.962 per-word bound, 2043089.7 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:43:00,033 : INFO : PROGRESS: pass 28, at document #10681/10681\n", - "2021-08-24 02:43:00,134 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:43:00,161 : INFO : topic #34 (0.020): 0.074*\"ghosts\" + 0.052*\"bill murray\" + 0.042*\"television\" + 0.034*\"courtroom\" + 0.031*\"secret service\" + 0.029*\"courtroom drama\" + 0.022*\"roman polanski\" + 0.019*\"ben stiller\" + 0.017*\"court\" + 0.017*\"las vegas\"\n", - "2021-08-24 02:43:00,162 : INFO : topic #16 (0.020): 0.327*\"nudity (topless)\" + 0.200*\"nudity (topless - brief)\" + 0.061*\"nudity (rear)\" + 0.028*\"pg\" + 0.023*\"claymation\" + 0.020*\"childhood\" + 0.020*\"military\" + 0.014*\"aardman\" + 0.014*\"weird\" + 0.012*\"mother-son relationship\"\n", - "2021-08-24 02:43:00,163 : INFO : topic #47 (0.020): 0.061*\"serial killer\" + 0.053*\"psychology\" + 0.050*\"brad pitt\" + 0.038*\"heist\" + 0.038*\"edward norton\" + 0.030*\"matt damon\" + 0.027*\"hayao miyazaki\" + 0.024*\"steven spielberg\" + 0.019*\"crime\" + 0.014*\"anthony hopkins\"\n", - "2021-08-24 02:43:00,164 : INFO : topic #35 (0.020): 0.356*\"Comedy\" + 0.313*\"Drama\" + 0.199*\"Romance\" + 0.014*\"lesbian\" + 0.008*\"bibliothek\" + 0.008*\"sean penn\" + 0.007*\"philip seymour hoffman\" + 0.005*\"m. night shyamalan\" + 0.005*\"oscar (best foreign language film)\" + 0.003*\"great cinematography\"\n", - "2021-08-24 02:43:00,165 : INFO : topic #8 (0.020): 0.132*\"anime\" + 0.084*\"based on a true story\" + 0.082*\"true story\" + 0.069*\"tom hanks\" + 0.023*\"good\" + 0.023*\"japan\" + 0.023*\"interesting\" + 0.022*\"to-rent\" + 0.022*\"drama\" + 0.022*\"archaeology\"\n", - "2021-08-24 02:43:00,166 : INFO : topic diff=0.068102, rho=0.170646\n", - "2021-08-24 02:43:00,168 : INFO : PROGRESS: pass 29, at document #2000/10681\n", - "2021-08-24 02:43:00,417 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:43:00,443 : INFO : topic #41 (0.020): 0.114*\"remake\" + 0.069*\"new york city\" + 0.066*\"christmas\" + 0.045*\"family\" + 0.038*\"kevin spacey\" + 0.037*\"bibliothek\" + 0.033*\"new york\" + 0.030*\"Drama\" + 0.027*\"eric's dvds\" + 0.023*\"movie to see\"\n", - "2021-08-24 02:43:00,444 : INFO : topic #35 (0.020): 0.347*\"Comedy\" + 0.315*\"Drama\" + 0.198*\"Romance\" + 0.016*\"lesbian\" + 0.009*\"bibliothek\" + 0.007*\"sean penn\" + 0.006*\"philip seymour hoffman\" + 0.005*\"oscar (best foreign language film)\" + 0.004*\"m. night shyamalan\" + 0.003*\"great cinematography\"\n", - "2021-08-24 02:43:00,445 : INFO : topic #39 (0.020): 0.193*\"time travel\" + 0.052*\"adultery\" + 0.041*\"post apocalyptic\" + 0.037*\"motorcycle\" + 0.033*\"post-apocalyptic\" + 0.030*\"jude law\" + 0.023*\"dystopia\" + 0.021*\"bechdel test:fail\" + 0.020*\"want to own\" + 0.019*\"hollywood\"\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:43:00,446 : INFO : topic #17 (0.020): 0.330*\"Sci-Fi\" + 0.071*\"Horror\" + 0.068*\"Action\" + 0.044*\"video game adaptation\" + 0.027*\"animals\" + 0.025*\"movie to see\" + 0.022*\"football\" + 0.018*\"futuristic\" + 0.015*\"milla jovovich\" + 0.013*\"g\"\n", - "2021-08-24 02:43:00,447 : INFO : topic #34 (0.020): 0.074*\"ghosts\" + 0.051*\"bill murray\" + 0.044*\"television\" + 0.030*\"courtroom\" + 0.030*\"courtroom drama\" + 0.026*\"secret service\" + 0.021*\"roman polanski\" + 0.017*\"18th century\" + 0.017*\"opera\" + 0.017*\"court\"\n", - "2021-08-24 02:43:00,448 : INFO : topic diff=0.124178, rho=0.168215\n", - "2021-08-24 02:43:00,449 : INFO : PROGRESS: pass 29, at document #4000/10681\n", - "2021-08-24 02:43:00,687 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:43:00,714 : INFO : topic #31 (0.020): 0.127*\"zombies\" + 0.074*\"horror\" + 0.072*\"pg-13\" + 0.039*\"cult classic\" + 0.025*\"infidelity\" + 0.025*\"campy\" + 0.024*\"zombie\" + 0.024*\"joaquin phoenix\" + 0.024*\"sam raimi\" + 0.020*\"books\"\n", - "2021-08-24 02:43:00,715 : INFO : topic #7 (0.020): 0.113*\"romance\" + 0.065*\"Romance\" + 0.054*\"chick flick\" + 0.038*\"boring\" + 0.030*\"girlie movie\" + 0.027*\"baseball\" + 0.023*\"Comedy\" + 0.020*\"love story\" + 0.019*\"whimsical\" + 0.017*\"wedding\"\n", - "2021-08-24 02:43:00,716 : INFO : topic #24 (0.020): 0.090*\"hitchcock\" + 0.079*\"murder\" + 0.069*\"alfred hitchcock\" + 0.067*\"vampire\" + 0.061*\"oppl\" + 0.051*\"vampires\" + 0.037*\"memory\" + 0.021*\"incest\" + 0.018*\"cary grant\" + 0.016*\"tumey's dvds\"\n", - "2021-08-24 02:43:00,717 : INFO : topic #20 (0.020): 0.098*\"biography\" + 0.068*\"Drama\" + 0.049*\"death\" + 0.047*\"biopic\" + 0.039*\"suicide\" + 0.036*\"julia roberts\" + 0.035*\"ensemble cast\" + 0.034*\"corvallis library\" + 0.028*\"medieval\" + 0.025*\"multiple storylines\"\n", - "2021-08-24 02:43:00,717 : INFO : topic #38 (0.020): 0.168*\"drugs\" + 0.045*\"samuel l. jackson\" + 0.026*\"divx\" + 0.024*\"basketball\" + 0.024*\"addiction\" + 0.023*\"ewan mcgregor\" + 0.023*\"hulu\" + 0.022*\"michael caine\" + 0.020*\"liam neeson\" + 0.020*\"poverty\"\n", - "2021-08-24 02:43:00,719 : INFO : topic diff=0.022241, rho=0.168215\n", - "2021-08-24 02:43:00,720 : INFO : PROGRESS: pass 29, at document #6000/10681\n", - "2021-08-24 02:43:00,950 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:43:00,976 : INFO : topic #27 (0.020): 0.317*\"Horror\" + 0.157*\"Thriller\" + 0.127*\"Mystery\" + 0.043*\"Drama\" + 0.029*\"easily confused with other movie(s) (title)\" + 0.028*\"Fantasy\" + 0.028*\"Film-Noir\" + 0.016*\"eerie\" + 0.015*\"slasher\" + 0.014*\"tumey's dvds\"\n", - "2021-08-24 02:43:00,977 : INFO : topic #37 (0.020): 0.184*\"War\" + 0.111*\"world war ii\" + 0.102*\"Drama\" + 0.058*\"war\" + 0.043*\"history\" + 0.035*\"Action\" + 0.033*\"jim carrey\" + 0.021*\"nazis\" + 0.017*\"mental illness\" + 0.016*\"wwii\"\n", - "2021-08-24 02:43:00,978 : INFO : topic #17 (0.020): 0.344*\"Sci-Fi\" + 0.080*\"Horror\" + 0.067*\"Action\" + 0.039*\"video game adaptation\" + 0.025*\"football\" + 0.022*\"animals\" + 0.019*\"movie to see\" + 0.017*\"futuristic\" + 0.014*\"milla jovovich\" + 0.012*\"g\"\n", - "2021-08-24 02:43:00,979 : INFO : topic #24 (0.020): 0.080*\"hitchcock\" + 0.078*\"murder\" + 0.068*\"vampire\" + 0.061*\"alfred hitchcock\" + 0.056*\"vampires\" + 0.055*\"oppl\" + 0.048*\"memory\" + 0.019*\"incest\" + 0.018*\"cary grant\" + 0.017*\"kirsten dunst\"\n", - "2021-08-24 02:43:00,980 : INFO : topic #13 (0.020): 0.059*\"fairy tale\" + 0.039*\"jane austen\" + 0.038*\"sequel\" + 0.037*\"road trip\" + 0.027*\"cold war\" + 0.027*\"assassination\" + 0.027*\"historical\" + 0.026*\"gerard depardieu\" + 0.024*\"kids\" + 0.022*\"notable nudity\"\n", - "2021-08-24 02:43:00,981 : INFO : topic diff=0.043852, rho=0.168215\n", - "2021-08-24 02:43:00,982 : INFO : PROGRESS: pass 29, at document #8000/10681\n", - "2021-08-24 02:43:01,220 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:43:01,248 : INFO : topic #0 (0.020): 0.204*\"can't remember\" + 0.103*\"directorial debut\" + 0.084*\"based on a tv show\" + 0.081*\"Comedy\" + 0.036*\"ummarti2006\" + 0.027*\"australia\" + 0.026*\"australian\" + 0.025*\"keira knightley\" + 0.020*\"immigrants\" + 0.018*\"robert downey jr\"\n", - "2021-08-24 02:43:01,249 : INFO : topic #42 (0.020): 0.095*\"japan\" + 0.091*\"martial arts\" + 0.076*\"robin williams\" + 0.042*\"akira kurosawa\" + 0.035*\"samurai\" + 0.031*\"Drama\" + 0.028*\"orson welles\" + 0.024*\"kurosawa\" + 0.021*\"hugh grant\" + 0.020*\"christopher walken\"\n", - "2021-08-24 02:43:01,250 : INFO : topic #36 (0.020): 0.079*\"cult film\" + 0.047*\"peter jackson\" + 0.042*\"downbeat\" + 0.042*\"russell crowe\" + 0.031*\"adam sandler\" + 0.029*\"not available from netflix\" + 0.027*\"1980s\" + 0.024*\"new zealand\" + 0.020*\"80s\" + 0.015*\"drew barrymore\"\n", - "2021-08-24 02:43:01,251 : INFO : topic #38 (0.020): 0.160*\"drugs\" + 0.039*\"samuel l. jackson\" + 0.029*\"divx\" + 0.028*\"peter sellers\" + 0.028*\"ewan mcgregor\" + 0.024*\"hulu\" + 0.023*\"addiction\" + 0.022*\"poverty\" + 0.021*\"michael caine\" + 0.020*\"basketball\"\n", - "2021-08-24 02:43:01,251 : INFO : topic #26 (0.020): 0.044*\"Drama\" + 0.032*\"james bond\" + 0.022*\"007\" + 0.022*\"reflective\" + 0.021*\"bond\" + 0.021*\"poignant\" + 0.021*\"atmospheric\" + 0.019*\"bittersweet\" + 0.018*\"lyrical\" + 0.018*\"deliberate\"\n", - "2021-08-24 02:43:01,253 : INFO : topic diff=0.036880, rho=0.168215\n", - "2021-08-24 02:43:01,254 : INFO : PROGRESS: pass 29, at document #10000/10681\n", - "2021-08-24 02:43:01,516 : INFO : merging changes from 2000 documents into a model of 10681 documents\n", - "2021-08-24 02:43:01,544 : INFO : topic #30 (0.020): 0.246*\"Adventure\" + 0.116*\"Children\" + 0.110*\"Comedy\" + 0.106*\"Fantasy\" + 0.084*\"Action\" + 0.063*\"70mm\" + 0.049*\"Drama\" + 0.045*\"Animation\" + 0.017*\"Musical\" + 0.008*\"submarine\"\n", - "2021-08-24 02:43:01,544 : INFO : topic #18 (0.020): 0.096*\"magic\" + 0.077*\"gay\" + 0.058*\"pg13\" + 0.051*\"racism\" + 0.039*\"Drama\" + 0.026*\"homosexuality\" + 0.025*\"social commentary\" + 0.025*\"food\" + 0.022*\"19th century\" + 0.017*\"denzel washington\"\n", - "2021-08-24 02:43:01,545 : INFO : topic #39 (0.020): 0.177*\"time travel\" + 0.058*\"adultery\" + 0.049*\"motorcycle\" + 0.037*\"jude law\" + 0.037*\"post apocalyptic\" + 0.035*\"post-apocalyptic\" + 0.022*\"dystopia\" + 0.021*\"want to own\" + 0.019*\"old\" + 0.018*\"hollywood\"\n", - "2021-08-24 02:43:01,546 : INFO : topic #14 (0.020): 0.059*\"criterion\" + 0.055*\"disturbing\" + 0.052*\"tense\" + 0.051*\"Drama\" + 0.049*\"atmospheric\" + 0.032*\"stylized\" + 0.030*\"bleak\" + 0.028*\"tumey's dvds\" + 0.024*\"menacing\" + 0.024*\"erlend's dvds\"\n", - "2021-08-24 02:43:01,547 : INFO : topic #43 (0.020): 0.077*\"surreal\" + 0.052*\"quirky\" + 0.041*\"satirical\" + 0.034*\"cynical\" + 0.033*\"narrated\" + 0.031*\"dreamlike\" + 0.030*\"irreverent\" + 0.029*\"biting\" + 0.026*\"humorous\" + 0.025*\"stanley kubrick\"\n", - "2021-08-24 02:43:01,548 : INFO : topic diff=0.030108, rho=0.168215\n", - "2021-08-24 02:43:01,687 : INFO : -20.963 per-word bound, 2043979.7 perplexity estimate based on a held-out corpus of 681 documents with 5199 words\n", - "2021-08-24 02:43:01,688 : INFO : PROGRESS: pass 29, at document #10681/10681\n", - "2021-08-24 02:43:01,782 : INFO : merging changes from 681 documents into a model of 10681 documents\n", - "2021-08-24 02:43:01,808 : INFO : topic #39 (0.020): 0.160*\"time travel\" + 0.055*\"adultery\" + 0.045*\"motorcycle\" + 0.045*\"post apocalyptic\" + 0.041*\"post-apocalyptic\" + 0.035*\"jude law\" + 0.023*\"dystopia\" + 0.023*\"bechdel test:fail\" + 0.019*\"want to own\" + 0.017*\"old\"\n", - "2021-08-24 02:43:01,809 : INFO : topic #23 (0.020): 0.082*\"high school\" + 0.066*\"teen\" + 0.061*\"cars\" + 0.034*\"marx brothers\" + 0.033*\"dance\" + 0.026*\"Comedy\" + 0.021*\"eddie murphy\" + 0.020*\"kate winslet\" + 0.019*\"(s)vcd\" + 0.019*\"car chase\"\n", - "2021-08-24 02:43:01,810 : INFO : topic #42 (0.020): 0.092*\"japan\" + 0.088*\"martial arts\" + 0.065*\"robin williams\" + 0.038*\"akira kurosawa\" + 0.036*\"samurai\" + 0.035*\"Drama\" + 0.028*\"seen 2006\" + 0.027*\"divorce\" + 0.026*\"jonossa\" + 0.024*\"orson welles\"\n", - "2021-08-24 02:43:01,811 : INFO : topic #30 (0.020): 0.248*\"Adventure\" + 0.114*\"Comedy\" + 0.113*\"Children\" + 0.112*\"Fantasy\" + 0.089*\"Action\" + 0.051*\"70mm\" + 0.051*\"Animation\" + 0.050*\"Drama\" + 0.016*\"Musical\" + 0.008*\"dvd\"\n", - "2021-08-24 02:43:01,812 : INFO : topic #4 (0.020): 0.066*\"Drama\" + 0.063*\"sports\" + 0.058*\"london\" + 0.046*\"sven's to see list\" + 0.045*\"boxing\" + 0.040*\"underrated\" + 0.039*\"british\" + 0.034*\"hw drama\" + 0.031*\"notable soundtrack\" + 0.029*\"inspirational\"\n", - "2021-08-24 02:43:01,813 : INFO : topic diff=0.067227, rho=0.168215\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2021-08-24 02:43:01,815 : INFO : LdaModel lifecycle event {'msg': 'trained LdaModel(num_terms=15261, num_topics=50, decay=0.5, chunksize=2000) in 51.72s', 'datetime': '2021-08-24T02:43:01.815087', 'gensim': '4.0.1', 'python': '3.7.8 (default, May 2 2021, 19:43:55) \\n[Clang 10.0.1 (clang-1001.0.46.4)]', 'platform': 'Darwin-18.7.0-x86_64-i386-64bit', 'event': 'created'}\n" - ] - } - ], + "outputs": [], "source": [ "# LDAContent추천\n", "from src.lda_content import LDAContentRecommender\n", @@ -3455,18 +81,10 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "25fadb68", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=0.000, Precision@K=0.004, Recall@K=0.012\n" - ] - } - ], + "outputs": [], "source": [ "# 평가\n", "metric_calculator = MetricCalculator()\n", diff --git a/chapter5/notebook/MF.ipynb b/chapter5/notebook/MF.ipynb index d408ae1..b55d1eb 100644 --- a/chapter5/notebook/MF.ipynb +++ b/chapter5/notebook/MF.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "99e09acf", "metadata": {}, "outputs": [], @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "179ce864", "metadata": {}, "outputs": [], @@ -36,7 +36,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "48aed5ee", "metadata": {}, "outputs": [], @@ -49,18 +49,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "ab4ed572", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=1.051, Precision@K=0.010, Recall@K=0.035\n" - ] - } - ], + "outputs": [], "source": [ "# 평가\n", "metric_calculator = MetricCalculator()\n", @@ -72,21 +64,10 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "ed2edb2d", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=0.934, Precision@K=0.005, Recall@K=0.016\n", - "rmse=0.953, Precision@K=0.007, Recall@K=0.026\n", - "rmse=1.050, Precision@K=0.011, Recall@K=0.040\n", - "rmse=1.140, Precision@K=0.016, Recall@K=0.054\n" - ] - } - ], + "outputs": [], "source": [ "# 평가 수의 임곗값과 정밀도의 관계\n", "for minimum_num_rating in [0, 10, 100, 300]:\n", @@ -99,20 +80,10 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "6cb9724e", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=1.047, Precision@K=0.010, Recall@K=0.032\n", - "rmse=1.047, Precision@K=0.012, Recall@K=0.043\n", - "rmse=1.048, Precision@K=0.013, Recall@K=0.045\n" - ] - } - ], + "outputs": [], "source": [ "# 인자 수 k와 정밀도의 관계\n", "for factors in [5, 10, 30]:\n", diff --git a/chapter5/notebook/NMF.ipynb b/chapter5/notebook/NMF.ipynb index 0b4962c..6949cb4 100644 --- a/chapter5/notebook/NMF.ipynb +++ b/chapter5/notebook/NMF.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "9cb2f773", "metadata": {}, "outputs": [], @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "ed3c6a08", "metadata": {}, "outputs": [], @@ -36,27 +36,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "afd52c43", - "metadata": { - "collapsed": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/mk/.pyenv/versions/3.7.8/envs/recommender-systems-at-work3.7.8/lib/python3.7/site-packages/sklearn/decomposition/_nmf.py:315: FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).\n", - " \"'nndsvda' in 1.1 (renaming of 0.26).\"), FutureWarning)\n", - "/Users/mk/.pyenv/versions/3.7.8/envs/recommender-systems-at-work3.7.8/lib/python3.7/site-packages/sklearn/decomposition/_nmf.py:1091: ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve convergence.\n", - " \" improve convergence.\" % max_iter, ConvergenceWarning)\n", - "/Users/mk/.pyenv/versions/3.7.8/envs/recommender-systems-at-work3.7.8/lib/python3.7/site-packages/sklearn/decomposition/_nmf.py:315: FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).\n", - " \"'nndsvda' in 1.1 (renaming of 0.26).\"), FutureWarning)\n", - "/Users/mk/.pyenv/versions/3.7.8/envs/recommender-systems-at-work3.7.8/lib/python3.7/site-packages/sklearn/decomposition/_nmf.py:1091: ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve convergence.\n", - " \" improve convergence.\" % max_iter, ConvergenceWarning)\n" - ] - } - ], + "metadata": {}, + "outputs": [], "source": [ "# NMF 추천\n", "from src.nmf import NMFRecommender\n", @@ -66,18 +49,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "48b2ed3a", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=3.340, Precision@K=0.010, Recall@K=0.032\n" - ] - } - ], + "outputs": [], "source": [ "# 평가\n", "metric_calculator = MetricCalculator()\n", @@ -89,34 +64,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "1683599e", - "metadata": { - "collapsed": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/mk/.pyenv/versions/3.7.8/envs/recommender-systems-at-work3.7.8/lib/python3.7/site-packages/sklearn/decomposition/_nmf.py:315: FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).\n", - " \"'nndsvda' in 1.1 (renaming of 0.26).\"), FutureWarning)\n", - "/Users/mk/.pyenv/versions/3.7.8/envs/recommender-systems-at-work3.7.8/lib/python3.7/site-packages/sklearn/decomposition/_nmf.py:1091: ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve convergence.\n", - " \" improve convergence.\" % max_iter, ConvergenceWarning)\n", - "/Users/mk/.pyenv/versions/3.7.8/envs/recommender-systems-at-work3.7.8/lib/python3.7/site-packages/sklearn/decomposition/_nmf.py:315: FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).\n", - " \"'nndsvda' in 1.1 (renaming of 0.26).\"), FutureWarning)\n", - "/Users/mk/.pyenv/versions/3.7.8/envs/recommender-systems-at-work3.7.8/lib/python3.7/site-packages/sklearn/decomposition/_nmf.py:1091: ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve convergence.\n", - " \" improve convergence.\" % max_iter, ConvergenceWarning)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=1.045, Precision@K=0.012, Recall@K=0.040\n" - ] - } - ], + "metadata": {}, + "outputs": [], "source": [ "# 결손값을 평균값으로 채운다\n", "recommend_result = recommender.recommend(movielens, fillna_with_zero=False)\n", diff --git a/chapter5/notebook/Popularity.ipynb b/chapter5/notebook/Popularity.ipynb index 5812150..51d0080 100644 --- a/chapter5/notebook/Popularity.ipynb +++ b/chapter5/notebook/Popularity.ipynb @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "13333f1c", "metadata": {}, "outputs": [], @@ -27,7 +27,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "f0b3a8f5", "metadata": {}, "outputs": [], @@ -39,102 +39,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "a4e56039", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
rating
sizemean
movie_idtitle
4095Cry Freedom (1987)15.0
7227Trouble with Angels, The (1966)15.0
27255Wind Will Carry Us, The (Bad ma ra khahad bord) (1999)15.0
4453Michael Jordan to the Max (2000)25.0
3415Mirror, The (Zerkalo) (1975)15.0
\n", - "
" - ], - "text/plain": [ - " rating \n", - " size mean\n", - "movie_id title \n", - "4095 Cry Freedom (1987) 1 5.0\n", - "7227 Trouble with Angels, The (1966) 1 5.0\n", - "27255 Wind Will Carry Us, The (Bad ma ra khahad bord)... 1 5.0\n", - "4453 Michael Jordan to the Max (2000) 2 5.0\n", - "3415 Mirror, The (Zerkalo) (1975) 1 5.0" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import numpy as np\n", "\n", @@ -145,102 +53,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "fcb5ac3e", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
rating
sizemean
movie_idtitle
318Shawshank Redemption, The (1994)4244.491745
50Usual Suspects, The (1995)3344.459581
912Casablanca (1942)1634.444785
904Rear Window (1954)1294.441860
2019Seven Samurai (Shichinin no samurai) (1954)1044.408654
\n", - "
" - ], - "text/plain": [ - " rating \n", - " size mean\n", - "movie_id title \n", - "318 Shawshank Redemption, The (1994) 424 4.491745\n", - "50 Usual Suspects, The (1995) 334 4.459581\n", - "912 Casablanca (1942) 163 4.444785\n", - "904 Rear Window (1954) 129 4.441860\n", - "2019 Seven Samurai (Shichinin no samurai) (1954) 104 4.408654" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# 임곗값을 도입\n", "movie_stats = movielens.train.groupby(['movie_id', 'title']).agg({'rating': [np.size, np.mean]})\n", @@ -251,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "6c559fdc", "metadata": {}, "outputs": [], @@ -264,18 +80,10 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "ca8d383f", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=1.082, Precision@K=0.008, Recall@K=0.027\n" - ] - } - ], + "outputs": [], "source": [ "# 평가\n", "metric_calculator = MetricCalculator()\n", @@ -287,19 +95,10 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "fd52c464", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=1.082, Precision@K=0.000, Recall@K=0.000\n", - "rmse=1.082, Precision@K=0.013, Recall@K=0.042\n" - ] - } - ], + "outputs": [], "source": [ "# 임곗값을 변경했을 때의 동작\n", "for minimum_num_rating in [1, 200]:\n", diff --git a/chapter5/notebook/RF.ipynb b/chapter5/notebook/RF.ipynb index c812dfe..8ad826f 100644 --- a/chapter5/notebook/RF.ipynb +++ b/chapter5/notebook/RF.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "f5b2cf43-9653-4899-950f-b00443bd4020", "metadata": {}, "outputs": [], @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "52eedd0b", "metadata": {}, "outputs": [], @@ -27,7 +27,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "d3c02fa7", "metadata": {}, "outputs": [], @@ -39,23 +39,10 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "c8b4d83e", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/yuya/Documents/projects/recommender-systems-at-work/chapter5/notebook/../src/rf.py:54: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame.\n", - "Try using .loc[row_indexer,col_indexer] = value instead\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " test_x = test_x.merge(movie_genres, on=\"movie_id\")\n" - ] - } - ], + "outputs": [], "source": [ "# Random Forest를 사용한 회귀 추천\n", "from src.rf import RFRecommender\n", @@ -65,18 +52,10 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "253e5f67", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=0.988, Precision@K=0.000, Recall@K=0.001\n" - ] - } - ], + "outputs": [], "source": [ "# 평가\n", "metric_calculator = MetricCalculator()\n", diff --git a/chapter5/notebook/Random.ipynb b/chapter5/notebook/Random.ipynb index 4487c74..f2b6fd6 100644 --- a/chapter5/notebook/Random.ipynb +++ b/chapter5/notebook/Random.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "2e403fbc", "metadata": {}, "outputs": [], @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "9827acbb", "metadata": {}, "outputs": [], @@ -37,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "bdfd3743", "metadata": {}, "outputs": [], @@ -50,18 +50,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "39dc3945", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=1.883, Precision@K=0.000, Recall@K=0.001\n" - ] - } - ], + "outputs": [], "source": [ "# 평가\n", "metric_calculator = MetricCalculator()\n", diff --git a/chapter5/notebook/SVD.ipynb b/chapter5/notebook/SVD.ipynb index 9227231..d55536e 100644 --- a/chapter5/notebook/SVD.ipynb +++ b/chapter5/notebook/SVD.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "5e2540ed", "metadata": {}, "outputs": [], @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "a8895ba7", "metadata": {}, "outputs": [], @@ -36,399 +36,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "ebe3329b", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_id12345678910...62000621136229362344623946280162803631136399264716
user_id
1NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
2NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
3NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
51.0NaNNaNNaNNaNNaN3.0NaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
..................................................................
1048NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1050NaN3.0NaNNaNNaN3.0NaNNaNNaN3.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
10515.0NaN3.0NaN3.0NaN4.0NaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1052NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
10535.0NaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", - "

1000 rows × 6673 columns

\n", - "
" - ], - "text/plain": [ - "movie_id 1 2 3 4 5 6 7 8 9 \\\n", - "user_id \n", - "1 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", - "2 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", - "3 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", - "4 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", - "5 1.0 NaN NaN NaN NaN NaN 3.0 NaN NaN \n", - "... ... ... ... ... ... ... ... ... ... \n", - "1048 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", - "1050 NaN 3.0 NaN NaN NaN 3.0 NaN NaN NaN \n", - "1051 5.0 NaN 3.0 NaN 3.0 NaN 4.0 NaN NaN \n", - "1052 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", - "1053 5.0 NaN NaN NaN NaN NaN NaN NaN NaN \n", - "\n", - "movie_id 10 ... 62000 62113 62293 62344 62394 62801 62803 63113 \\\n", - "user_id ... \n", - "1 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "2 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "3 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "4 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "5 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "... ... ... ... ... ... ... ... ... ... ... \n", - "1048 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "1050 3.0 ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "1051 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "1052 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "1053 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", - "\n", - "movie_id 63992 64716 \n", - "user_id \n", - "1 NaN NaN \n", - "2 NaN NaN \n", - "3 NaN NaN \n", - "4 NaN NaN \n", - "5 NaN NaN \n", - "... ... ... \n", - "1048 NaN NaN \n", - "1050 NaN NaN \n", - "1051 NaN NaN \n", - "1052 NaN NaN \n", - "1053 NaN NaN \n", - "\n", - "[1000 rows x 6673 columns]" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "user_movie_matrix = movielens.train.pivot(index='user_id', columns='movie_id', values='rating')\n", "user_movie_matrix" @@ -436,18 +47,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "22c0909b", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ユーザー数=1000, アイテム数=6673, 密度=0.02\n" - ] - } - ], + "outputs": [], "source": [ "# 희소 정보\n", "user_num = len(user_movie_matrix.index)\n", @@ -460,417 +63,20 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "8942aa7b", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
movie_id12345678910...62000621136229362344623946280162803631136399264716
user_id
10.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
20.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
30.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
40.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
51.00.00.00.00.00.03.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
..................................................................
10480.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
10500.03.00.00.00.03.00.00.00.03.0...0.00.00.00.00.00.00.00.00.00.0
10515.00.03.00.03.00.04.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
10520.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
10535.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
\n", - "

1000 rows × 6673 columns

\n", - "
" - ], - "text/plain": [ - "movie_id 1 2 3 4 5 6 7 8 9 \\\n", - "user_id \n", - "1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "5 1.0 0.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 \n", - "... ... ... ... ... ... ... ... ... ... \n", - "1048 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "1050 0.0 3.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 \n", - "1051 5.0 0.0 3.0 0.0 3.0 0.0 4.0 0.0 0.0 \n", - "1052 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "1053 5.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "\n", - "movie_id 10 ... 62000 62113 62293 62344 62394 62801 62803 63113 \\\n", - "user_id ... \n", - "1 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "2 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "3 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "4 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "5 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "... ... ... ... ... ... ... ... ... ... ... \n", - "1048 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "1050 3.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "1051 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "1052 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "1053 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "\n", - "movie_id 63992 64716 \n", - "user_id \n", - "1 0.0 0.0 \n", - "2 0.0 0.0 \n", - "3 0.0 0.0 \n", - "4 0.0 0.0 \n", - "5 0.0 0.0 \n", - "... ... ... \n", - "1048 0.0 0.0 \n", - "1050 0.0 0.0 \n", - "1051 0.0 0.0 \n", - "1052 0.0 0.0 \n", - "1053 0.0 0.0 \n", - "\n", - "[1000 rows x 6673 columns]" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "user_movie_matrix.fillna(0)" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "75ee52d8", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "P: (1000, 5), S: (5,), Qt: (5, 6673), pred_matrix: (1000, 6673)\n" - ] - } - ], + "outputs": [], "source": [ "import scipy\n", "import numpy as np\n", @@ -893,7 +99,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "2a761397", "metadata": {}, "outputs": [], @@ -906,18 +112,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "c895f553", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=3.335, Precision@K=0.009, Recall@K=0.029\n" - ] - } - ], + "outputs": [], "source": [ "# 평가\n", "metric_calculator = MetricCalculator()\n", @@ -929,18 +127,10 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "d4e03ece", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=1.046, Precision@K=0.013, Recall@K=0.043\n" - ] - } - ], + "outputs": [], "source": [ "# 결손값을 평균값으로 채운다\n", "recommend_result = recommender.recommend(movielens, fillna_with_zero=False)\n", @@ -952,20 +142,10 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "1f95570c", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=1.046, Precision@K=0.013, Recall@K=0.043\n", - "rmse=1.042, Precision@K=0.011, Recall@K=0.039\n", - "rmse=1.038, Precision@K=0.011, Recall@K=0.036\n" - ] - } - ], + "outputs": [], "source": [ "# 인자 수와 정밀도의 관계\n", "for factors in [5, 10, 30]:\n", diff --git a/chapter5/notebook/Template.ipynb b/chapter5/notebook/Template.ipynb index f9842c6..0ef4af4 100644 --- a/chapter5/notebook/Template.ipynb +++ b/chapter5/notebook/Template.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "52eedd0b", "metadata": {}, "outputs": [], @@ -16,7 +16,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "d3c02fa7", "metadata": {}, "outputs": [], diff --git a/chapter5/notebook/UMCF.ipynb b/chapter5/notebook/UMCF.ipynb index bb41031..fff77cc 100644 --- a/chapter5/notebook/UMCF.ipynb +++ b/chapter5/notebook/UMCF.ipynb @@ -10,19 +10,10 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "ac7fbf6b-c4d2-471c-8cd9-4ba3097f4d99", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], + "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" @@ -30,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "id": "9cb2f773", "metadata": {}, "outputs": [], @@ -44,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "id": "ed3c6a08", "metadata": {}, "outputs": [], @@ -56,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "id": "40bfe18c-e5b2-45fe-870a-e2769ffdfcb4", "metadata": {}, "outputs": [], @@ -66,7 +57,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "id": "afd52c43", "metadata": { "tags": [] @@ -80,18 +71,10 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "id": "48b2ed3a", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=0.956, Precision@K=0.000, Recall@K=0.000\n" - ] - } - ], + "outputs": [], "source": [ "# 평가\n", "metric_calculator = MetricCalculator()\n", @@ -111,19 +94,10 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "id": "5701ea33-b2b1-4e26-af9e-41fc1453522c", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Computing the pearson similarity matrix...\n", - "Done computing similarity matrix.\n" - ] - } - ], + "outputs": [], "source": [ "recommender = UMCFRecommender()\n", "recommend_result = recommender.recommend(movielens, is_naive=False)" @@ -131,18 +105,10 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "id": "504aa258-feca-4fea-b509-5e3199e4914d", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=0.962, Precision@K=0.002, Recall@K=0.005\n" - ] - } - ], + "outputs": [], "source": [ "# 평가\n", "metric_calculator = MetricCalculator()\n", diff --git a/chapter5/notebook/Word2vec.ipynb b/chapter5/notebook/Word2vec.ipynb index e182dc2..5084de7 100644 --- a/chapter5/notebook/Word2vec.ipynb +++ b/chapter5/notebook/Word2vec.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "20b107d9", "metadata": {}, "outputs": [], @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "9f40fb34", "metadata": {}, "outputs": [], @@ -36,19 +36,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "07907088", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/mk/.pyenv/versions/3.7.8/envs/recommender-systems-at-work3.7.8/lib/python3.7/site-packages/gensim/similarities/__init__.py:15: UserWarning: The gensim.similarities.levenshtein submodule is disabled, because the optional Levenshtein package is unavailable. Install Levenhstein (e.g. `pip install python-Levenshtein`) to suppress this warning.\n", - " warnings.warn(msg)\n" - ] - } - ], + "outputs": [], "source": [ "import gensim\n", "import logging\n", @@ -68,30 +59,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "cad9e002", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[('studio ghibli', 0.8409439921379089),\n", - " ('zibri studio', 0.8167261481285095),\n", - " ('pelicula anime', 0.797528862953186),\n", - " ('miyazaki', 0.786034107208252),\n", - " ('hayao miyazaki', 0.7857083678245544),\n", - " ('japan', 0.6094456911087036),\n", - " ('Animation', 0.5489083528518677),\n", - " ('wilderness', 0.5156647562980652),\n", - " ('steampunk', 0.49222904443740845),\n", - " ('environmental', 0.4773883521556854)]" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# anime 태그와 비슷한 태그를 확인한다\n", "model.wv.most_similar('anime')" @@ -99,7 +70,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "a157be67", "metadata": {}, "outputs": [], @@ -112,18 +83,10 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "f1e57317", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rmse=0.000, Precision@K=0.010, Recall@K=0.033\n" - ] - } - ], + "outputs": [], "source": [ "# 평가\n", "metric_calculator = MetricCalculator()\n", diff --git a/chapter5/notebook/data_download.ipynb b/chapter5/notebook/data_download.ipynb index e3fe52b..af59fad 100644 --- a/chapter5/notebook/data_download.ipynb +++ b/chapter5/notebook/data_download.ipynb @@ -9,18 +9,9 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/bin/bash: wget: command not found\n", - "unzip: cannot find or open ../data/ml-10m.zip, ../data/ml-10m.zip.zip or ../data/ml-10m.zip.ZIP.\n" - ] - } - ], + "outputs": [], "source": [ "# MovieLens의 데이터셋을 data 디렉터리에 다운로드 한 뒤 압축을 푼다\n", "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", @@ -36,7 +27,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -45,7 +36,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -125,7 +116,7 @@ "4 [Comedy] " ] }, - "execution_count": 13, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -143,7 +134,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -222,7 +213,7 @@ "4 20 2424 hanks 1188263835" ] }, - "execution_count": 14, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -240,16 +231,16 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "タグ種類=15241\n", - "タグレコード数=95580\n", - "タグが付いている映画数=7601\n" + "태그 종류=15241\n", + "태그 레코드 수=95580\n", + "태그가 붙어있는 영화 수=7601\n" ] } ], @@ -261,7 +252,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -354,7 +345,7 @@ "4 [steve martin, pregnancy, remake, steve martin... " ] }, - "execution_count": 16, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -371,7 +362,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -450,7 +441,7 @@ "4 1 316 5.0 838983392" ] }, - "execution_count": 17, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -464,7 +455,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -543,7 +534,7 @@ "4 1 316 5.0 838983392" ] }, - "execution_count": 22, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -557,7 +548,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -661,7 +652,7 @@ "4 [dating, nudity (topless - brief), can't remem... " ] }, - "execution_count": 19, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -691,7 +682,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -747,7 +738,7 @@ "len 1000.00" ] }, - "execution_count": 27, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -760,7 +751,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -816,7 +807,7 @@ "len 6736.000000" ] }, - "execution_count": 29, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -828,14 +819,14 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "評価値数=132830\n" + "평갓값 수=132830\n" ] } ], @@ -845,7 +836,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -936,7 +927,7 @@ "5.0 23631" ] }, - "execution_count": 35, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -947,29 +938,27 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 34, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEMCAYAAADAqxFbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAia0lEQVR4nO3df5RVdb3/8eeLnzMSxRWmUikGvQhhksiYkqZeS9HsXr36vV78Uf5CwPB2S/kWN1vebPm9y/JHedWVTaULM7iRRmJIVqR2EzEZMEQNFSHDMhHx18jwy/f3j/05dvZpcA7MzDkH5vVY6yzO/nz2Z+/3PnM47/P5fPbZWxGBmZlZQa9qB2BmZrXFicHMzHKcGMzMLMeJwczMcpwYzMwsp0+1A+isIUOGRGNjY7XDMDPbpbS0tLwYEQ3t1e3yiaGxsZElS5ZUOwwzs12KpD9sr85DSWZmluPEYGZmOU4MZmaWs8vPMbRny5YtrF27lra2tmqHssupq6tj6NCh9O3bt9qhmFmV7JaJYe3atQwcOJDGxkYkVTucXUZEsH79etauXcvw4cOrHY6ZVckODSVJ2k/Sq5IOTcsnSPq1pOWS5kpqSOWS9EVJD0p6XNJVknqlunpJMyUtlrRC0hlF2x8u6R5JLantwTtzUG1tbQwePNhJYQdJYvDgwe5pmfVwZScGSfXATOAvQJukYcB/A6dExBhgIfDNtPppwOHAkcAHgWHA+anuWuCxiDgs1X9Z0mhln+LzgMsjYhxwETBbUr+dOTAnhZ3j183MykoM6UP7W8CtwB+BbcCpwO0R8WJabSZwbFr3TODGiNgSEW+mugmpbiJwA0BEvATMB44BxgKvR8SiVNcCvArs3xUHamZm5Sl3juFCIIDvAIWhn+FAS2GFiHhN0gbg3aluZVH7pcDVwJ7AKxHxRkndkcCfS9oU6g4AVhQXSpoMTAZ4//vf32HwjTPmd7jOjlhz5Ylduj0zs1rSYWKQdCRwNnB0RETRUMNmoHQwegvQH9hUUlco3wxsLLNNcV1ORDQDzQBNTU095k5Dzc3N/OlPf+IrX/nKDrVrampi3rx57L333rnyu+++mxtuuIG77767C6M02zld8QXOX9q6Rjk9hklkcwRPpKTwXuBXZB/YLxdWktQbeB/ZN/8VwAjg+VQ9ElidehUhqS4i2orrUpvPl+x7JPDDHT+s3dPkyZN3qt32LhlSX19PfX19Z0Iys91Qh3MMEfHpiHhvRDRGRCPwEPAx4EPAREnvTqtOBuZFxBZgAXCJpD4pYVwEzErr3Q9MA5D0LuBTZB/+zwINkg5LdQeRJaRFXXGglXb33Xdz7LHHctJJJ7HffvtxzjnnMHPmTD784Q+z//77s3DhQlpbW5k8eTJjx45l7NixXHPNNQBceOGFXH311W9ta+rUqVx99dV8/etfZ/r06QAsXryY8ePHM3r0aD75yU/y4osvthsHwB577MHrr7/Opk2bmDJlCh/60If46Ec/yr333uvJZjP7GzvzO4YBwICIeFTSl4CfS9pM9q2/8JV2DjAKeAR4A/gZcEuqmwHcJOl3ZMNKl0bEkwCSJqa6AWQTzydHxLadOrIqq6+v57777qOlpYVRo0YxatQo1q1bx4MPPsiiRYu47rrr+NWvfsWgQYNYunQpbW1tHH/88Rx44IFMnTqViy66iOnTp7Nt2zbuuecerrjiCmbPns2AAQPYtGkT06ZNe2t46Oabb2bGjBl897vf3W4sAwYM4Prrr2fr1q088sgjtLW1cdJJJ/HOd76zwq+MmdW6HU4MEdFU9PxO4M521gng8vQorXsFOH07236cbCJ6lyeJo446ijFjxgBw0EEH8elPf5revXvz93//9/z+979n9erVzJ07F0nU19dz/vnnc88993DNNdfQ2trK2rVrWbVqFQcffDBDhgxBEpJYuXIlzzzzDKeeeioAb775Jv36bf+s3kK7e++9l0suueSt/U2dOpVZs2Ztt52Z9Uy75S+fa8WgQYPeet6rV6+3lrc3fBMR9OqVje6dffbZzJkzh6eeeopzzz33b9YdPnw4ixcvfqvd1q1bO4ynV69ebNv21w5YOW3MrOfpEYmhGmcqRARZx+lvlwvPJ0yYwI033siVV15JW1sbN998M5dddhkAZ5xxBieddBKtra1cf/31uXYjR45k/fr1LF++nDFjxjB79mwWLlzI9773vbeN5eijj2bmzJl85CMfYevWrXzrW99izz337OZXwsx2Nb66ajfZuHEjGzdubHe58PzSSy9l/fr1jBs3jvHjx3PyySfzsY99DICGhgYGDRrEkUceSZ8+fd5q19raSv/+/ZkzZw4XXHABY8eOZfbs2VxxxRVvG0traytTpkxh69atjBo1imOOOYajjjoqF6OZGYCKv9XuipqamqL0dMwnnniCD3zgA1WKaNfn18+qwb9jqCxJLcVzxsV6xFBSTzFlyhRaWlpyZTfeeCOHHnpolSIys13RbpsYIqLHnaP/7W9/u9Pb2NV7kGbWebvlHENdXR3r16/3h9wOKtyPoa6urtqhmFkV7ZY9hqFDh7J27VrWrVtX7VB2OYU7uJlZz7VbJoa+ffv6DmRmZjtptxxKMjOznefEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmlrPTiUGZfkXL/ST175qwzMysWspKDJLOk7RM0gpJiyV9CBgIvCppiaQlwG+Bk9P6vSVdm9Z9XNLFRdsaLGmupIfTNo8tqhsn6b5UvlDSvl16tGZm1qEOf/ksaRBwGnBMRGyQ9K/AlcBngUURcUw7zaYDdcB4oD/wS0mPRsQvgNuAWyJijqRGYKGkw8juDX0H8PGIeFrSJ4HvA4d39iDNzKx8HfYYIuLliDg+JQUBw4DVwN5AH0k/Tb2GrxUNLZ0JXBeZNmA2MEHSEGAM8KO07TXAUuBQYALwYEQ8nbYxHxghaWCXHa2ZmXWo7DkGSTeRJYTTgf8iSxDvAM4j6xnsQ9aLABgKPFPUfClwQGrzVOQve1qoGw6sLBSmdZYBo9uJZXJhCMsXyjMz61plJ4aImBoRjcDlwE/JhnkOi4gXImILcC3Zt36AVqD4TvNbyIaUNgFtJZsup640luaIaIqIpoaGhnIPwczMytBhYpBUJ2mvwnJE/AR4H9BA/kO7F7A5PV9F1msoGEnW23gSaFT+DjqFuhXAiJLdjwTWlHEcZmbWRcrpMUwA7pc0GEDSR8m+yZ8A3CGpv6RewL8BC1KbBcAX0imtdcAUYFZEbCZLAqekbQ0FjgPuIhtSOkLSiFR3AvB8RDzbNYdqZmblKOd+DPOA/YFFklqBjcA/AS3AB8g+0DcDC4HCvSW/kR7Lyc42ujUiFqa6SUCzpC+nurMi4mXITosFZqUOxQvAxE4en5mZ7aAOE0OaBL4qPUrNSI/SNpuBadvZ3nPAidupewA4pKOYzMys+/iSGGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpZTzkX0zKybNM6Y3+ltrLmy3UuPme009xjMzCzHicHMzHKcGMzMLMeJwczMcpwYzMwsp6zEIOk8ScskrZC0WNKHUvk5kh5I5TdL2iOV95Z0bVr3cUkXF21rsKS5kh5O2zy2qG6cpPtS+UJJ+3b1AZuZ2dvrMDFIGgScBhwTER8ku5fzlZLGA58BjgMOBF4CLk3NpgN1wHjgYOCUogRwGzA7Ig4B/hm4SVKDpAHAHcCkiBib9vP9LjlKMzMrW4eJISJejojjI2KDJAHDgNXA6cD3IqI13Rf6FmBCanYmcF1k2oDZwARJQ4AxwI/SttcAS4FDU9sHI+LptI35wAhJA7voWM3MrAxlzzFIuom/JoT/AoYDK4tWWQkMk9QLGAo8U1S3FDiALKk8lRJJaV1ue2mdZcDodmKZLGmJpCXr1q0r9xDMzKwMZSeGiJgaEY3A5cBPgc1AW9Eq24DegIBWYGtR3RagP7CppE25daWxNEdEU0Q0NTQ0lHsIZmZWhnLmGOok7VVYjoifAO8D/gKMKFp1b2BDRGwDVpH1GgpGkvU2ngQa05BUad2Kku0V6taUeSxmZtYFyukxTADulzQYQNJHyb7J/wCYJmlA+qD/LDArtVkAfEGZOmAKMCsiNpMlgVPStoaSTV7fRTakdISkEanuBOD5iHi2aw7VzMzKUc5F9OYB+wOLJLUCG4F/iojfSroZeAh4A2gBPpfafCM9lqe6WyNiYaqbBDRL+nKqOysiXobstFhgVupQvABM7OwBmpnZjukwMaRJ4KvSo7SuGWhup3wzMG0723sOaPdykBHxAHBIRzGZmVn38S+fzcwsx4nBzMxynBjMzCzHicHMzHKcGMzMLMeJwczMcpwYzMwsx4nBzMxynBjMzCzHicHMzHKcGMzMLMeJwczMcpwYzMwsx4nBzMxynBjMzCzHicHMzHJ2OjGk23b2K1ruJ6l/14RlZmbVUlZikPQJSUslPSqpRdLhwEDgVUlLJC0BfgucnNbvLelaSYslPS7p4qJtDZY0V9LDkpZJOraobpyk+1L5Qkn7dunRmplZhzq8taekPYDvAEdGxCpJxwG3AscDiyLimHaaTQfqgPFAf+CXkh6NiF8AtwG3RMQcSY3AQkmHkd3/+Q7g4xHxtKRPAt8HDu/0UZqZWdnK6TEMBP49Ilal5eeBrcDeQB9JP029hq8VDS2dCVwXmTZgNjBB0hBgDPAjgIhYAywFDgUmAA9GxNNpG/OBEZIGdvoozcysbB0mhoj4S0TcDiBpDPBj4HJgGPAO4DyynsE+wGdTs6HAM0WbWQockNo8FRHRTt1wYGXRfgNYBowujUnS5MIQ1rp168o7UjMzK0vZk8+SLgAWAFMiYhbZMM9hEfFCRGwBriX71g/QStarKNhCNqS0CWgr2XQ5dTkR0RwRTRHR1NDQUO4hmJlZGcqdfJ4GXAwcHRELC8XkP7R7AZvT81VkvYaCkcBq4EmgUZLaqVsBjCjZ9UhgTTkxmplZ1+gwMUhqAK4AToyIp4qqzgTukNRfUi/g38h6FKR/v5BOaa0DpgCzImIzWRI4JW17KHAccBfZkNIRkkakuhOA5yPi2S44TjMzK1OHZyUBRwH9gDnpi36hp3Ai2dzAUrKewkLg26nNN9JjOdnZRrcW9TQmAc2SvpzqzoqIlwEknQfMSvt5AZjYucMzM7MdVU5imAv8OCLehOyHband1oiYAcwobZB6BtPa21hEPEeWVNqrewA4pLzQzcysO3SYGCJiW8lykE0Km5nZbqicHoOZmVVQ44z5nd7GmivbHZgpiy+iZ2ZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5ZSUGSZ+QtFTSo5JaJB2eys+R9ICkFZJulrRHKu8t6VpJiyU9Luniom0NljRX0sOSlkk6tqhunKT7UvlCSft29QGbmdnb6zAxpA/77wD/EhEHAv8B3CppPPAZ4DjgQOAl4NLUbDpQB4wHDgZOKUoAtwGzI+IQ4J+BmyQ1SBoA3AFMioixZPeM/n7XHKaZmZWrnB7DQODfI2JVWn4e2AqcDnwvIlrT7T5vASakdc4ErotMGzAbmCBpCDAG+BFARKwBlgKHprYPRsTTaRvzgRGSBnbyGM3MbAd0mBgi4i8RcTuApDHAj4HLgeHAyqJVVwLDJPUChgLPFNUtBQ4AhgFPpURSWpfbXlpnGTC6NCZJkyUtkbRk3bp15RynmZmVqezJZ0kXAAuAKRExC9gEtBWtsg3oDQhoJetVFGwB+rfTpty6nIhojoimiGhqaGgo9xDMzKwM5U4+TwMuBo6OiIWpeAUwomi1vYENEbENWEXWaygYCawGngQaJamdutLtFerWlHUkZmbWJcqZfG4ArgBOjIiniqruAaZJGpA+6D8LzEp1C4AvKFMHTAFmRcRmsiRwStr2ULLJ67vIhpSOkDQi1Z0APB8Rz3bBcZqZWZn6lLHOUUA/YE76oi+y4Z3jgZuBh4A3gBbgc6nNN9Jjeaq7tainMQlolvTlVHdWRLwMIOk8YFbazwvAxE4dnZmZ7bByEsNc4McR8SZA6h30AbZGRDPQXNog9QymtbexiHgOOHE7dQ8Ah5QXupmZdYcOE0OaMyheDrJJYTMz2w35khhmZpbjxGBmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmllPuPZ/7SOolqV9RWS9JfYuW64qXzcxs11Ruj2Ei2a07Xysq+yDwoqQlkpaQ3eLzMABJ9ZJmSlosaYWkMwqNJA2XdI+kFkkPSjq4qO4ESb+WtFzS3HS/aTMzq6Bybu1JRNwG3CZpQ1Hxe4A7IuK8dppcCzwWEWdL2hP4jaRHgCeAecCUiFgkaRwwW9KBwF7AfwPjI+JFSRcB3wTO3MljMzOznVBWYihSfJvPvYEGSb8ABgE/Aq5KdROBfQAi4iVJ84FjgDrg9YhYlOpaJL0K7A8cB9weES+mbcwELpOkdDtRMzOrgM5MPg8D+gKnAP8AHA+cCuwJvBIRbxStuxQ4ABgOrCzZTrt1EfEasAF4d+mOJU0uDGGtW7euE4dgZmalOpMYrgD+MSJei4jXgRuACcBmYGPJuluA/sAmoG0n6nIiojkimiKiqaHB0xBmZl2pM4mhF9CvZHlz+qYfkuqK6kYCq4EVwIiS7bRbJ6k38D7gz52I0czMdlDZiUGSABUV/QdwQzpttT8wFViQ6u4HpqV27wI+BfwQeJZsXqJw9tJBZENSi4D7gImSCkNHk4F5EbFlp47MzMx2yo5MPteTTR4XXEN2FtFysiGf/wHmp7oZwE2Sfkc2rHRpRDwJIGliqhsAvAqcHBHbgDWSvgT8XNJmsl7E5J0+MjMz2yllJ4Y0mTygZHnSdtZ9BTh9O3WPA0dup+5O4M5yYzIzs67nS2KYmVmOE4OZmeU4MZiZWY4Tg5mZ5TgxmJlZjhODmZnlODGYmVmOE4OZmeU4MZiZWY4Tg5mZ5TgxmJlZjhODmZnlODGYmVmOE4OZmeU4MZiZWY4Tg5mZ5ZSVGCT1Sbfw7Nfx2mZmtisrt8cwEWgBXisUKPNFSQ9KelzSVZJ6pbp6STMlLZa0QtIZRe2GS7pHUktqe3BR3QmSfi1puaS5khq66DjNzKxMZd3aMyJuA26TtKGo+DTgcLLbdG4ju+fz+cB3gGuBxyLibEl7Ar+R9AjwBDAPmBIRiySNA2ZLOhDYi+we0uMj4kVJFwHfBM7s/GFaLWmcMb/jlTqw5soTuyASM2vPjs4xbCt6fiZwY0RsiYg3gZnABEki62HcABARLwHzgWOAscDrEbEo1bUArwL7A6cCt0fEi2n7M4Fj0/bMzKxCOjP5PBxYWbS8FDgA2BN4JSLeaKeutM126yLiNWAD8O7SHUuaLGmJpCXr1q3rxCGYmVmpziSGTUBb0fIWoD+wGdhYsm6hrrRNuXU5EdEcEU0R0dTQ4GkIM7OuVNYcw3asAEYAz6flkcDqiHhNUkiqi4i24rrU5vMl2xkJ/JAsSY0oFErqDbwP+HMnYjSzDnjOx0qV3WNIY/3F4/0LgEvSqay9gYuAWanufmBaavcu4FNkH/7PAg2SDkt1BwHDgEXAfcBESYWho8nAvIjYslNHZmZmO2VHegz1QF3R8hxgFPAI8AbwM+CWVDcDuEnS78iGlS6NiCcBJE1MdQPIJp5PjohtwBpJXwJ+LmkzWQ9j8s4emJmZ7ZyyE0OaTB5QtBzA5elRuu4rwOnb2c7jZKe4tld3J3BnuTGZmVnX8yUxzMwsx4nBzMxynBjMzCzHicHMzHKcGMzMLMeJwczMcpwYzMwsx4nBzMxynBjMzCzHicHMzHI6c3VVM7Pdiq80m3GPwczMcpwYzMwsx4nBzMxynBjMzCzHicHMzHI6nRgk9Uu3/URSb0l7dD4sMzOrlq7oMSwGHpG0BHgY+CqApHMkPSBphaSbCwkjJY9rJS2W9LikiwsbkjRY0lxJD0taJunYLojPzMx2QFf8juHvgBERsbVQIGk88BngH8juB30VcGl6TCe7d/R4oD/wS0mPRsQvgNuAWyJijqRGYKGkwyJiXRfEaWZmZehUj0FSb6Af0Jy+5f+PpL3I7vf8vYhoTfeGvgWYkJqdCVwXmTZgNjBB0hBgDPAjgIhYAywFDu1MjGZmtmM6O5S0D/AO4Ebgw8D9wHeA4cDKovVWAsMk9QKGAs8U1S0FDgCGAU+lRFJalyNpsqQlkpasW+fOhJlZV+rsUNIfgXdHxCYASTcBXwEWAW1F620DegMCWoGtRXVbyIaUNpW0KdT9zWR2RDQDzQBNTU1RWl+L/FN7M9tVdKrHkL7d9y8pfhN4FBhRVLY3sCEitgGryHoNBSOB1cCTQGPhDKeSOjMzq5DOzjHsC6yQtHcqOhd4AFgATJM0IH3QfxaYldZZAHxBmTpgCjArIjaTJYFT0raHAscBd3UmRjMz2zGdGkqKiGckfRG4R9IWYA1wYUT8RdLNwENkZyW1AJ9Lzb6RHstT3a0RsTDVTSKbyP5yqjsrIl7uTIxmZrZjOn26akTMJjuzqLT8rXmAkvLNwLTtbOs5wAPpZmZV5PsxWI/kkwHMts/XSjIzsxwnBjMzy3FiMDOzHCcGMzPLcWIwM7McJwYzM8txYjAzsxwnBjMzy3FiMDOzHCcGMzPLcWIwM7McJwYzM8vxRfR6EF84zszK4R6DmZnl7PY9Bn9LNjPbMe4xmJlZTs0lBknjJN0naZmkhem+0mZmViE1NZQkaQBwB/DxiHha0ieB7wOHVzcyM7Oeo9Z6DBOAByPi6bQ8HxghaWAVYzIz61EUEdWO4S2SLgEGRsRXisruAS6LiIeKyiYDk9PiSGBlJ3c9BHixk9vorFqIAWojjlqIAWojjlqIAWojjlqIAWojjq6IYVhENLRXUVNDScAmoG9J2Ragf3FBRDQDzV21U0lLIqKpq7a3q8ZQK3HUQgy1EkctxFArcdRCDLUSR3fHUGtDSSuAESVlI4E1lQ/FzKxnqrXEsBQ4QtIIAEknAM9HxLPVDcvMrOeoqaGkiHhV0nnALEkALwATK7DrLhuW6oRaiAFqI45aiAFqI45aiAFqI45aiAFqI45ujaGmJp/NzKz6am0oyczMqsyJwczMcpwYzMwsx4nBzMxyauqspEqSVA8cBGwGVkTEpupG1HNJGgwcChxA9mPG1cBdEfFqFWKp6vvCr0Vu/6OAY8i/Fj8sumROd++/b0RsSc/3AY4key3+NyJeqEQMRbFU9H3RY3oMkgZIujc9PwR4HPgi8BVguaSDqxBTH0mjJf2LpLMkHa50nm41SNorvQEruc+PAw8BZwO9gY3AUcDvJH2kAvuvmfeFX4tcLKeTXVBzGPC/wAIggHmSTq7A/vcAlqTnx6cYDgWOBn4j6djujqEolsq/LyKixzyAh9O/vwTGFpUfAPy6wrGMBX6f/uA3AdcDP09loyqw/z2AH6TnI4DfAY8Aj6aY9qvQ69BCds2W0vKhZN/Mesz7wq9FLo7lwN+1U/4uYFGFX4v/BYYXle8DLN6d3xc9bSip8KONPSJi2VuFEY+lS35X0g3AGRGxtLhQ0kHAjcDHunn/G8kuNwJwDTAjIhakGD6WYji+m2MA2BYRfygtjIi1Ffyb1Mr7wq/FX7VGxIbSwoh4JX2br4TCayGKLssTEc9J6t9ui+5R8fdFTxpKEjBY0hHAUknnFNUdBbRVOKT+pUkBICIeAd7Z3TuP7CvHm2nxPYWkkOoWkl29sRLWSjq1tFDSKcCfunvnNfa+8GvxVyslTZdUVxRDP0kXkw1xdStJvYC9JJ1FdvXmy1K5JJ0NrOvuGIpU/H3RY375LKkP8DXgPcDewPuBUUA98DDwrxHxuwrG8zPgP6PocuKp/MPAVRFxVAVieIzsHhjTgfkR8YtUPhKYFRHjKhDDnsBtwIHAU2QfPsOBZ4ALIqJbPxBr6X3h1yIXSx1wLdklcV4m6+EGcD/wH9HNk/HptbiQv74Ww4DjgDrgTmBSRKzpzhiKYqn4+6LHJIa3I6l3RGyr8D4bgXnAa2TfSNqA/cm+qZ8eEU908/77Av9D9sZ/D7AXMIjsQ+D3wKci4lfdGUNJPIPJ/vNtAp6MdDZINVXjfZH269civ+89gc0R8Xo19l8rKvm+cGJIJF0WEV+twn7HkmX/TWSXHX82qvBHKf6PL+md3f2NrMyYqvI3qbUYaiWOWoghxfGtiLiwp8eQ4uiWv0mPmWMolk7LO0TSEZKGpuI/VyOWiFgWET+OiPkR8YeICEmTqhDHtqLnr1Yjhna82fEq3a6qMUgaksb+q/L+rJUYUhzfSE/n9/AYik9p75a/SY9KDJKGS/oNsAr4Ktk52r+SdD/w06oGl7dPtQOgQjFI+oikpyU9IelfS6pPk9S7J8SQ4jhQ0t2SbpC0t6RlZMN6zwHLOmi+28SQ4jgkxTI6PQ4ATpc0muxy/D0lhnpJX0/P3yvpLuDPkp6TNAf4SbfsuFLn4tbCA/gFcGI75SeQ/Yqw6jH2tAfZpOaxwBiyibWji+qW9JQY0r4WAacB/5fs3PWTUvlHqdzvGKoeQ9rfK2Rzb78E7k2PjcB9wG97UAy9Cu9BYBYwtajuPOD2btlvpf7QtfAAWt6m7qFqx9cTH8DyoudjgD8C+6blh3tKDGlfj6Z/BawuqatUkqx6DGlf+5H9sGxSUdnqSu2/VmJI+/xt8b+V+Jv0qKEk4FVJw0sLJe1H9h+hIiT1lbRR0npJL5Q8XpT0Wk+IIdmSztAiIpaTDfHdlcoqNQlfCzEU4nhnZP/jf1YoTGflvKMHxUBErCLrxR0u6bvKflBW0ZMyaiGGpK+y31U8quwHsEA2tAT065Y9Vjr7VfMBjCO7+NQPyH6w8gXgu8ATwPgKxiFg6dvU1/eEGNJ+PgGsBU4pKpsGvAS81lNiSPs8D7i7pOy9ZMMZl/SUGNqJ6UJgMfCnauy/mjEAfYGlZPOia4ENqWwg8Aey35Z0+X573Omqyn5OP4H8KaJLI6JS35BJk5kTI+IHldpnLcZQFEs9MDCKrlgpaQjZhcJ+HBV4k9ZCDGmf74qIV4qW+wMTImJeJfZfKzG0E9ORwPkRcXZPjSH1GvaJiD+m5eERsbpb9tXTEoOZmb29njbHYGZmHXBiMDOzHCcGsy4iaaSyq3EWlu+S1O0XIjTrak4MZl0gTdC+DzhV2eWhe0fEP0ZES7VjM9tRnnw264CkTwBfIrsG/37A+UAz2b13NwHnkl2S+QKyq+OuBU4G7iL7FfGRwAfJrmI7iuz6NqdFxEuSDgOuI/uStiKtd25ErKjQ4Zn9DfcYzDq2EWgCPh8RY8huy3puRIwGrgI+FxFfJ0sMCyPiwMh+HLURaE3/ngt8neyD/wXgxNTLuA04LyIOAW5P+2mt6NGZlehpt/Y02xkB3Bd/vTHLT4D/lDSK7CYuj71Nu8Ljjkg3ZZK0mKznMZLsMuuPAUTEfEmrqc6va83e4h6DWXmKbxJzB/AAcCpwSZntny96XriUt4qeFy6n3LcTMZp1CScGs46J/LW0RgN3A28Ak4rqNgP1yvQqalfavrC8EthX2a1UAf4PMBSzKvNQklnH6tOj4GvAI2S9gMVkE8qQXdOmIdVNTG0GtNO+nuxaVG2SzgF+oOwew4+TXctrQzcdh1lZfFaSWZWkoaNPAPdHxOuSPkJ2UccDKnVtJrP2uMdgVl37Af8v3a3xdeAsJwWrNvcYzMwsx5PPZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmlvP/AQXSu0+NWlWmAAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAAG4CAYAAACn7/aNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/bUlEQVR4nO3dfVxUdd7/8fcAAt4NhgrIisqmqaRoouK4bZc3rKNhq2mtlhl5u7jglVKo7Lpo1mZr612hUmuFXZdu2u2WKEoYdiNmYuRNaWW62OqgpTJ5Byrz+6Mf53JWvAHRgePr+XicR86cz5zz+Q6OvDvzPedYXC6XSwAAACbj5ekGAAAArgdCDgAAMCVCDgAAMCVCDgAAMCVCDgAAMCVCDgAAMCVCDgAAMCUfTzfgSWVlZTp48KAaNmwoi8Xi6XYAAMBVcLlc+umnnxQaGiovr0sfr7mpQ87BgwcVFhbm6TYAAEAVHDhwQM2bN7/k+ps65DRs2FDSz2+S1Wr1cDcAAOBqOJ1OhYWFGb/HL+WmDjnlX1FZrVZCDgAAtcyVppow8RgAAJgSIQcAAJgSIQcAAJjSTT0n52qUlZWptLTU022gEurUqSNvb29PtwEA8DBCzmWUlpZq3759Kisr83QrqKRGjRopJCSE6x8BwE2MkHMJLpdLhw4dkre3t8LCwi57sSHUHC6XS6dOndLhw4clSc2aNfNwRwAATyHkXMK5c+d06tQphYaGql69ep5uB5VQt25dSdLhw4cVFBTEV1cAcJPi8MQlnD9/XpLk6+vr4U5QFeXB9OzZsx7uBADgKYScK2BOR+3Ezw0AQMgBAACmdE0h55lnnpHFYtGkSZOM586cOaOEhAQ1btxYDRo00NChQ1VUVOT2usLCQsXGxqpevXoKCgpScnKyzp0751aTm5urLl26yM/PT61bt1ZGRsZF+1+0aJFatWolf39/RUdHa8uWLdcyHAAAYCJVnnj82Wef6YUXXlBkZKTb85MnT1ZmZqZef/11BQQEKDExUUOGDNEnn3wi6ee5LrGxsQoJCdGmTZt06NAhPfzww6pTp46efvppSdK+ffsUGxur+Ph4LV++XDk5ORo7dqyaNWsmu90uSVq5cqWSkpKUnp6u6OhoLViwQHa7XXv27FFQUFBVh3VFraZlXrdtV2T/M7E3dH9VMXPmTL3zzjsqKCi45m3t379f4eHh+vzzz9W5c+cKa3Jzc9W7d28dO3ZMjRo1uuZ9AgDMqUpHck6cOKERI0bo73//u2655Rbj+eLiYr300kuaN2+e+vTpo6ioKL3yyivatGmTNm/eLElav369vvzyS/3v//6vOnfurAEDBujJJ5/UokWLjIvupaenKzw8XHPnzlX79u2VmJio++67T/Pnzzf2NW/ePI0bN06jRo1SRESE0tPTVa9ePb388svX8n6gCh5//HHl5ORUy7bCwsJ06NAhdejQoVq2BwC4eVUp5CQkJCg2NlYxMTFuz+fn5+vs2bNuz7dr104tWrRQXl6eJCkvL08dO3ZUcHCwUWO32+V0OrVr1y6j5j+3bbfbjW2UlpYqPz/frcbLy0sxMTFGTUVKSkrkdDrdFly7Bg0aqHHjxtWyLW9vb4WEhMjHh6sbAACuTaVDzmuvvaZt27Zp9uzZF61zOBzy9fW96CuE4OBgORwOo+bCgFO+vnzd5WqcTqdOnz6tH374QefPn6+wpnwbFZk9e7YCAgKMJSws7OoGXYv06tVLEydO1KRJk3TLLbcoODhYf//733Xy5EmNGjVKDRs2VOvWrbV27VrjNRs3blT37t3l5+enZs2aadq0acYcqRdffFGhoaEXXfV50KBBGj16tKSfv676z6+Wli5dqvbt28vf31/t2rXT4sWLr6r//fv3y2KxuH31tWbNGt12222qW7euevfurf3791f+jQEA3HQq9b/LBw4c0KOPPqrs7Gz5+/tfr56um5SUFCUlJRmPnU6nKYPOsmXLNGXKFG3ZskUrV67UhAkT9Pbbb+vee+/VH//4R82fP18jR45UYWGhjh07prvvvluPPPKIXn31Ve3evVvjxo2Tv7+/Zs6cqfvvv18TJ07UBx98oL59+0qSjh49qqysLK1Zs6bC/S9fvlypqalKS0vTHXfcoc8//1zjxo1T/fr1FRcXV6mxHDhwQEOGDFFCQoLGjx+vrVu36rHHHrvm9whAzXYj5j/WhjmPuDaVOpKTn5+vw4cPq0uXLvLx8ZGPj482btyo5557Tj4+PgoODlZpaamOHz/u9rqioiKFhIRIkkJCQi4626r88ZVqrFar6tatqyZNmsjb27vCmvJtVMTPz09Wq9VtMaNOnTpp+vTpatOmjVJSUuTv768mTZpo3LhxatOmjVJTU/Xjjz9q+/btWrx4scLCwpSWlqZ27dpp8ODBeuKJJzR37lyVlZXplltu0YABA7RixQpj+2+88YaaNGmi3r17V7j/GTNmaO7cuRoyZIjCw8M1ZMgQTZ48WS+88EKlx7JkyRLdeuutmjt3rtq2basRI0bokUceqepbAwC4iVQq5PTt21c7duxQQUGBsXTt2lUjRoww/lynTh23Sah79uxRYWGhbDabJMlms2nHjh3GvYUkKTs7W1arVREREUbNf05kzc7ONrbh6+urqKgot5qysjLl5OQYNTezC8948/b2VuPGjdWxY0fjufKv+Q4fPqyvvvpKNpvN7eJ5v/rVr3TixAl9//33kqQRI0bozTffVElJiaSfj9QMHz68wvt5nTx5Unv37tWYMWPUoEEDY3nqqae0d+/eSo/lq6++UnR0tNtz/IwBAFejUl9XNWzY8KKzXurXr6/GjRsbz48ZM0ZJSUkKDAyU1WrVxIkTZbPZ1KNHD0lSv379FBERoZEjR2rOnDlyOByaPn26EhIS5OfnJ0mKj49XWlqapkyZotGjR2vDhg1atWqVMjP/7/BlUlKS4uLi1LVrV3Xv3l0LFiww5p3c7OrUqeP22GKxuD1XHmiu9u7q99xzj1wulzIzM9WtWzd99NFHbme6XejEiROSpL///e8XhRPuIQUAuJGq/RSW+fPny8vLS0OHDlVJSYnsdrvbpFNvb2+tXr1aEyZMkM1mM+ZpzJo1y6gJDw9XZmamJk+erIULF6p58+ZaunSpcY0cSRo2bJiOHDmi1NRUORwOde7cWVlZWRdNRsbltW/fXm+++aZcLpcRfj755BM1bNhQzZs3lyT5+/tryJAhWr58ub799lu1bdtWXbp0qXB7wcHBCg0N1XfffacRI0ZUS3/vvvuu23PllyMAAOByrjnk5Obmuj329/fXokWLtGjRoku+pmXLlpectFquV69e+vzzzy9bk5iYqMTExKvuFRf7wx/+oAULFmjixIlKTEzUnj17NGPGDCUlJbl9HTVixAgNHDhQu3bt0kMPPXTZbT7xxBP67//+bwUEBKh///4qKSnR1q1bdezYMbeJ31cjPj5ec+fOVXJyssaOHav8/PwKr34NAMB/4mIklWS22fi/+MUvtGbNGiUnJ6tTp04KDAzUmDFjNH36dLe6Pn36KDAwUHv27NGDDz542W2OHTtW9erV07PPPqvk5GTVr19fHTt2dLv9x9Vq0aKF3nzzTU2ePFnPP/+8unfvrqeffto4fR0AgEuxuFwul6eb8BSn06mAgAAVFxdfdKbVmTNntG/fPoWHh9fK0+Vvdvz8gNqNU8hxOZf7/X0h7kIOAABMiZCDG+rpp592O7X8wmXAgAGebg8AYCLMycENFR8fr9/97ncVrqtbt+4N7gYAYGaEHNxQgYGBCgwM9HQbAICbAF9XXcFNPC+7VrvaCx0CAMyLIzmXUKdOHVksFh05ckRNmzZ1u+0Bai6Xy6XS0lIdOXJEXl5e8vX19XRLAAAPIeRcgre3t5o3b67vv/9e+/fv93Q7qKR69eqpRYsWFd5fCwBwcyDkXEaDBg3Upk0bnT171tOtoBK8vb3l4+PD0TcAuMkRcq7A29ubG0sCAFALcSwfAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYEiEHAACYUqVCzpIlSxQZGSmr1Sqr1Sqbzaa1a9ca63v16iWLxeK2xMfHu22jsLBQsbGxqlevnoKCgpScnKxz58651eTm5qpLly7y8/NT69atlZGRcVEvixYtUqtWreTv76/o6Ght2bKlMkMBAAAmV6mQ07x5cz3zzDPKz8/X1q1b1adPHw0aNEi7du0yasaNG6dDhw4Zy5w5c4x158+fV2xsrEpLS7Vp0yYtW7ZMGRkZSk1NNWr27dun2NhY9e7dWwUFBZo0aZLGjh2rdevWGTUrV65UUlKSZsyYoW3btqlTp06y2+06fPjwtbwXAADARCwul8t1LRsIDAzUs88+qzFjxqhXr17q3LmzFixYUGHt2rVrNXDgQB08eFDBwcGSpPT0dE2dOlVHjhyRr6+vpk6dqszMTO3cudN43fDhw3X8+HFlZWVJkqKjo9WtWzelpaVJksrKyhQWFqaJEydq2rRpV9270+lUQECAiouLZbVaq/gOAACqW6tpmdd9H/ufib3u+8D1cbW/v6s8J+f8+fN67bXXdPLkSdlsNuP55cuXq0mTJurQoYNSUlJ06tQpY11eXp46duxoBBxJstvtcjqdxtGgvLw8xcTEuO3LbrcrLy9PklRaWqr8/Hy3Gi8vL8XExBg1l1JSUiKn0+m2AAAAc/Kp7At27Nghm82mM2fOqEGDBnr77bcVEREhSXrwwQfVsmVLhYaGavv27Zo6dar27Nmjt956S5LkcDjcAo4k47HD4bhsjdPp1OnTp3Xs2DGdP3++wprdu3dftvfZs2friSeeqOyQAQBALVTpkNO2bVsVFBSouLhYb7zxhuLi4rRx40ZFRERo/PjxRl3Hjh3VrFkz9e3bV3v37tWtt95arY1XRUpKipKSkozHTqdTYWFhHuwIAABcL5UOOb6+vmrdurUkKSoqSp999pkWLlyoF1544aLa6OhoSdK3336rW2+9VSEhIRedBVVUVCRJCgkJMf5b/tyFNVarVXXr1pW3t7e8vb0rrCnfxqX4+fnJz8+vEqMFAAC11TVfJ6esrEwlJSUVrisoKJAkNWvWTJJks9m0Y8cOt7OgsrOzZbVaja+8bDabcnJy3LaTnZ1tzPvx9fVVVFSUW01ZWZlycnLc5gYBAICbW6WO5KSkpGjAgAFq0aKFfvrpJ61YsUK5ublat26d9u7dqxUrVujuu+9W48aNtX37dk2ePFl33XWXIiMjJUn9+vVTRESERo4cqTlz5sjhcGj69OlKSEgwjrDEx8crLS1NU6ZM0ejRo7VhwwatWrVKmZn/N9M+KSlJcXFx6tq1q7p3764FCxbo5MmTGjVqVDW+NQAAoDarVMg5fPiwHn74YR06dEgBAQGKjIzUunXr9Jvf/EYHDhzQ+++/bwSOsLAwDR06VNOnTzde7+3trdWrV2vChAmy2WyqX7++4uLiNGvWLKMmPDxcmZmZmjx5shYuXKjmzZtr6dKlstvtRs2wYcN05MgRpaamyuFwqHPnzsrKyrpoMjIAALh5XfN1cmozrpMDADUT18nB5Vz36+QAAADUZIQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSoQcAABgSj6ebgAAaopW0zKv+z72PxN73fcB4GccyQEAAKZEyAEAAKZEyAEAAKZEyAEAAKZEyAEAAKZEyAEAAKZEyAEAAKZEyAEAAKZEyAEAAKZEyAEAAKZEyAEAAKZUqZCzZMkSRUZGymq1ymq1ymazae3atcb6M2fOKCEhQY0bN1aDBg00dOhQFRUVuW2jsLBQsbGxqlevnoKCgpScnKxz58651eTm5qpLly7y8/NT69atlZGRcVEvixYtUqtWreTv76/o6Ght2bKlMkMBAAAmV6mQ07x5cz3zzDPKz8/X1q1b1adPHw0aNEi7du2SJE2ePFnvvfeeXn/9dW3cuFEHDx7UkCFDjNefP39esbGxKi0t1aZNm7Rs2TJlZGQoNTXVqNm3b59iY2PVu3dvFRQUaNKkSRo7dqzWrVtn1KxcuVJJSUmaMWOGtm3bpk6dOslut+vw4cPX+n4AAACTsLhcLte1bCAwMFDPPvus7rvvPjVt2lQrVqzQfffdJ0navXu32rdvr7y8PPXo0UNr167VwIEDdfDgQQUHB0uS0tPTNXXqVB05ckS+vr6aOnWqMjMztXPnTmMfw4cP1/Hjx5WVlSVJio6OVrdu3ZSWliZJKisrU1hYmCZOnKhp06ZdsteSkhKVlJQYj51Op8LCwlRcXCyr1XotbwMAE+Au5DUHPwtcjtPpVEBAwBV/f1d5Ts758+f12muv6eTJk7LZbMrPz9fZs2cVExNj1LRr104tWrRQXl6eJCkvL08dO3Y0Ao4k2e12OZ1O42hQXl6e2zbKa8q3UVpaqvz8fLcaLy8vxcTEGDWXMnv2bAUEBBhLWFhYVYcPAABquEqHnB07dqhBgwby8/NTfHy83n77bUVERMjhcMjX11eNGjVyqw8ODpbD4ZAkORwOt4BTvr583eVqnE6nTp8+rR9++EHnz5+vsKZ8G5eSkpKi4uJiYzlw4EBlhw8AAGoJn8q+oG3btiooKFBxcbHeeOMNxcXFaePGjdejt2rn5+cnPz8/T7cBAABugEqHHF9fX7Vu3VqSFBUVpc8++0wLFy7UsGHDVFpaquPHj7sdzSkqKlJISIgkKSQk5KKzoMrPvrqw5j/PyCoqKpLValXdunXl7e0tb2/vCmvKtwEAAHDN18kpKytTSUmJoqKiVKdOHeXk5Bjr9uzZo8LCQtlsNkmSzWbTjh073M6Cys7OltVqVUREhFFz4TbKa8q34evrq6ioKLeasrIy5eTkGDUAAACVOpKTkpKiAQMGqEWLFvrpp5+0YsUK5ebmat26dQoICNCYMWOUlJSkwMBAWa1WTZw4UTabTT169JAk9evXTxERERo5cqTmzJkjh8Oh6dOnKyEhwfgaKT4+XmlpaZoyZYpGjx6tDRs2aNWqVcrM/L+Z9klJSYqLi1PXrl3VvXt3LViwQCdPntSoUaOq8a0BAAC1WaVCzuHDh/Xwww/r0KFDCggIUGRkpNatW6ff/OY3kqT58+fLy8tLQ4cOVUlJiex2uxYvXmy83tvbW6tXr9aECRNks9lUv359xcXFadasWUZNeHi4MjMzNXnyZC1cuFDNmzfX0qVLZbfbjZphw4bpyJEjSk1NlcPhUOfOnZWVlXXRZGQAAHDzuubr5NRmV3uePYCbA9dmqTn4WeByrvt1cgAAAGoyQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADAlQg4AADClSoWc2bNnq1u3bmrYsKGCgoI0ePBg7dmzx62mV69eslgsbkt8fLxbTWFhoWJjY1WvXj0FBQUpOTlZ586dc6vJzc1Vly5d5Ofnp9atWysjI+OifhYtWqRWrVrJ399f0dHR2rJlS2WGAwAATKxSIWfjxo1KSEjQ5s2blZ2drbNnz6pfv346efKkW924ceN06NAhY5kzZ46x7vz584qNjVVpaak2bdqkZcuWKSMjQ6mpqUbNvn37FBsbq969e6ugoECTJk3S2LFjtW7dOqNm5cqVSkpK0owZM7Rt2zZ16tRJdrtdhw8frup7AQAATMTicrlcVX3xkSNHFBQUpI0bN+quu+6S9PORnM6dO2vBggUVvmbt2rUaOHCgDh48qODgYElSenq6pk6dqiNHjsjX11dTp05VZmamdu7cabxu+PDhOn78uLKysiRJ0dHR6tatm9LS0iRJZWVlCgsL08SJEzVt2rQK911SUqKSkhLjsdPpVFhYmIqLi2W1Wqv6NgAwiVbTMq/7PvY/E3vd92EG/CxwOU6nUwEBAVf8/X1Nc3KKi4slSYGBgW7PL1++XE2aNFGHDh2UkpKiU6dOGevy8vLUsWNHI+BIkt1ul9Pp1K5du4yamJgYt23a7Xbl5eVJkkpLS5Wfn+9W4+XlpZiYGKOmIrNnz1ZAQICxhIWFVXHkAACgpvOp6gvLyso0adIk/epXv1KHDh2M5x988EG1bNlSoaGh2r59u6ZOnao9e/borbfekiQ5HA63gCPJeOxwOC5b43Q6dfr0aR07dkznz5+vsGb37t2X7DklJUVJSUnG4/IjOQAAwHyqHHISEhK0c+dOffzxx27Pjx8/3vhzx44d1axZM/Xt21d79+7VrbfeWvVOq4Gfn5/8/Pw82gMAALgxqvR1VWJiolavXq0PPvhAzZs3v2xtdHS0JOnbb7+VJIWEhKioqMitpvxxSEjIZWusVqvq1q2rJk2ayNvbu8Ka8m0AAICbW6VCjsvlUmJiot5++21t2LBB4eHhV3xNQUGBJKlZs2aSJJvNph07dridBZWdnS2r1aqIiAijJicnx2072dnZstlskiRfX19FRUW51ZSVlSknJ8eoAQAAN7dKfV2VkJCgFStW6J///KcaNmxozKEJCAhQ3bp1tXfvXq1YsUJ33323GjdurO3bt2vy5Mm66667FBkZKUnq16+fIiIiNHLkSM2ZM0cOh0PTp09XQkKC8VVSfHy80tLSNGXKFI0ePVobNmzQqlWrlJn5f7Ptk5KSFBcXp65du6p79+5asGCBTp48qVGjRlXXewMAAGqxSoWcJUuWSPr5NPELvfLKK3rkkUfk6+ur999/3wgcYWFhGjp0qKZPn27Uent7a/Xq1ZowYYJsNpvq16+vuLg4zZo1y6gJDw9XZmamJk+erIULF6p58+ZaunSp7Ha7UTNs2DAdOXJEqampcjgc6ty5s7Kysi6ajAwAAG5O13SdnNruas+zB3Bz4NosNQc/C1zODblODgAAQE1FyAEAAKZEyAEAAKZEyAEAAKZU5SseAwAA86vNk8A5kgMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEyJkAMAAEypUiFn9uzZ6tatmxo2bKigoCANHjxYe/bscas5c+aMEhIS1LhxYzVo0EBDhw5VUVGRW01hYaFiY2NVr149BQUFKTk5WefOnXOryc3NVZcuXeTn56fWrVsrIyPjon4WLVqkVq1ayd/fX9HR0dqyZUtlhgMAAEysUiFn48aNSkhI0ObNm5Wdna2zZ8+qX79+OnnypFEzefJkvffee3r99de1ceNGHTx4UEOGDDHWnz9/XrGxsSotLdWmTZu0bNkyZWRkKDU11ajZt2+fYmNj1bt3bxUUFGjSpEkaO3as1q1bZ9SsXLlSSUlJmjFjhrZt26ZOnTrJbrfr8OHD1/J+AAAAk7C4XC5XVV985MgRBQUFaePGjbrrrrtUXFyspk2basWKFbrvvvskSbt371b79u2Vl5enHj16aO3atRo4cKAOHjyo4OBgSVJ6erqmTp2qI0eOyNfXV1OnTlVmZqZ27txp7Gv48OE6fvy4srKyJEnR0dHq1q2b0tLSJEllZWUKCwvTxIkTNW3atAr7LSkpUUlJifHY6XQqLCxMxcXFslqtVX0bAJhEq2mZ130f+5+Jve77MAN+FjVHTfxZOJ1OBQQEXPH39zXNySkuLpYkBQYGSpLy8/N19uxZxcTEGDXt2rVTixYtlJeXJ0nKy8tTx44djYAjSXa7XU6nU7t27TJqLtxGeU35NkpLS5Wfn+9W4+XlpZiYGKOmIrNnz1ZAQICxhIWFXcvwAQBADVblkFNWVqZJkybpV7/6lTp06CBJcjgc8vX1VaNGjdxqg4OD5XA4jJoLA075+vJ1l6txOp06ffq0fvjhB50/f77CmvJtVCQlJUXFxcXGcuDAgcoPHAAA1Ao+VX1hQkKCdu7cqY8//rg6+7mu/Pz85Ofn5+k2AADADVClIzmJiYlavXq1PvjgAzVv3tx4PiQkRKWlpTp+/LhbfVFRkUJCQoya/zzbqvzxlWqsVqvq1q2rJk2ayNvbu8Ka8m0AAICbW6VCjsvlUmJiot5++21t2LBB4eHhbuujoqJUp04d5eTkGM/t2bNHhYWFstlskiSbzaYdO3a4nQWVnZ0tq9WqiIgIo+bCbZTXlG/D19dXUVFRbjVlZWXKyckxagAAwM2tUl9XJSQkaMWKFfrnP/+phg0bGvNfAgICVLduXQUEBGjMmDFKSkpSYGCgrFarJk6cKJvNph49ekiS+vXrp4iICI0cOVJz5syRw+HQ9OnTlZCQYHyVFB8fr7S0NE2ZMkWjR4/Whg0btGrVKmVm/t8M76SkJMXFxalr167q3r27FixYoJMnT2rUqFHV9d4AAIBarFIhZ8mSJZKkXr16uT3/yiuv6JFHHpEkzZ8/X15eXho6dKhKSkpkt9u1ePFio9bb21urV6/WhAkTZLPZVL9+fcXFxWnWrFlGTXh4uDIzMzV58mQtXLhQzZs319KlS2W3242aYcOG6ciRI0pNTZXD4VDnzp2VlZV10WRkAABwc7qm6+TUdld7nj2Am0NNvB7IzYqfRc1RE38WN+Q6OQAAADUVIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJhSpUPOhx9+qHvuuUehoaGyWCx655133NY/8sgjslgsbkv//v3dao4ePaoRI0bIarWqUaNGGjNmjE6cOOFWs337dv3617+Wv7+/wsLCNGfOnIt6ef3119WuXTv5+/urY8eOWrNmTWWHAwAATKrSIefkyZPq1KmTFi1adMma/v3769ChQ8byj3/8w239iBEjtGvXLmVnZ2v16tX68MMPNX78eGO90+lUv3791LJlS+Xn5+vZZ5/VzJkz9eKLLxo1mzZt0gMPPKAxY8bo888/1+DBgzV48GDt3LmzskMCAAAm5FPZFwwYMEADBgy4bI2fn59CQkIqXPfVV18pKytLn332mbp27SpJev7553X33Xfrb3/7m0JDQ7V8+XKVlpbq5Zdflq+vr26//XYVFBRo3rx5RhhauHCh+vfvr+TkZEnSk08+qezsbKWlpSk9Pb3CfZeUlKikpMR47HQ6Kzt8AABQS1yXOTm5ubkKCgpS27ZtNWHCBP3444/Gury8PDVq1MgIOJIUExMjLy8vffrpp0bNXXfdJV9fX6PGbrdrz549OnbsmFETExPjtl+73a68vLxL9jV79mwFBAQYS1hYWLWMFwAA1DzVHnL69++vV199VTk5OfrrX/+qjRs3asCAATp//rwkyeFwKCgoyO01Pj4+CgwMlMPhMGqCg4PdasofX6mmfH1FUlJSVFxcbCwHDhy4tsECAIAaq9JfV13J8OHDjT937NhRkZGRuvXWW5Wbm6u+fftW9+4qxc/PT35+fh7tAQAA3BjX/RTyX/7yl2rSpIm+/fZbSVJISIgOHz7sVnPu3DkdPXrUmMcTEhKioqIit5ryx1equdRcIAAAcHO57iHn+++/148//qhmzZpJkmw2m44fP678/HyjZsOGDSorK1N0dLRR8+GHH+rs2bNGTXZ2ttq2batbbrnFqMnJyXHbV3Z2tmw22/UeEgAAqAUqHXJOnDihgoICFRQUSJL27dungoICFRYW6sSJE0pOTtbmzZu1f/9+5eTkaNCgQWrdurXsdrskqX379urfv7/GjRunLVu26JNPPlFiYqKGDx+u0NBQSdKDDz4oX19fjRkzRrt27dLKlSu1cOFCJSUlGX08+uijysrK0ty5c7V7927NnDlTW7duVWJiYjW8LQAAoLardMjZunWr7rjjDt1xxx2SpKSkJN1xxx1KTU2Vt7e3tm/frt/+9re67bbbNGbMGEVFRemjjz5ymwuzfPlytWvXTn379tXdd9+tO++80+0aOAEBAVq/fr327dunqKgoPfbYY0pNTXW7lk7Pnj21YsUKvfjii+rUqZPeeOMNvfPOO+rQocO1vB8AAMAkKj3xuFevXnK5XJdcv27duituIzAwUCtWrLhsTWRkpD766KPL1tx///26//77r7g/AABw8+HeVQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQIOQAAwJQqHXI+/PBD3XPPPQoNDZXFYtE777zjtt7lcik1NVXNmjVT3bp1FRMTo2+++cat5ujRoxoxYoSsVqsaNWqkMWPG6MSJE24127dv169//Wv5+/srLCxMc+bMuaiX119/Xe3atZO/v786duyoNWvWVHY4AADApHwq+4KTJ0+qU6dOGj16tIYMGXLR+jlz5ui5557TsmXLFB4erj//+c+y2+368ssv5e/vL0kaMWKEDh06pOzsbJ09e1ajRo3S+PHjtWLFCkmS0+lUv379FBMTo/T0dO3YsUOjR49Wo0aNNH78eEnSpk2b9MADD2j27NkaOHCgVqxYocGDB2vbtm3q0KHDtbwnwA3Valrmdd/H/mdir/s+AKCmqXTIGTBggAYMGFDhOpfLpQULFmj69OkaNGiQJOnVV19VcHCw3nnnHQ0fPlxfffWVsrKy9Nlnn6lr166SpOeff1533323/va3vyk0NFTLly9XaWmpXn75Zfn6+ur2229XQUGB5s2bZ4SchQsXqn///kpOTpYkPfnkk8rOzlZaWprS09Or9GYAAADzqNY5Ofv27ZPD4VBMTIzxXEBAgKKjo5WXlydJysvLU6NGjYyAI0kxMTHy8vLSp59+atTcdddd8vX1NWrsdrv27NmjY8eOGTUX7qe8pnw/FSkpKZHT6XRbAACAOVVryHE4HJKk4OBgt+eDg4ONdQ6HQ0FBQW7rfXx8FBgY6FZT0TYu3MelasrXV2T27NkKCAgwlrCwsMoOEQAA1BI31dlVKSkpKi4uNpYDBw54uiUAAHCdVGvICQkJkSQVFRW5PV9UVGSsCwkJ0eHDh93Wnzt3TkePHnWrqWgbF+7jUjXl6yvi5+cnq9XqtgAAAHOq9MTjywkPD1dISIhycnLUuXNnST+fKfXpp59qwoQJkiSbzabjx48rPz9fUVFRkqQNGzaorKxM0dHRRs2f/vQnnT17VnXq1JEkZWdnq23btrrllluMmpycHE2aNMnYf3Z2tmw2W3UOCQBqnet9xh5n66G2qPSRnBMnTqigoEAFBQWSfp5sXFBQoMLCQlksFk2aNElPPfWU3n33Xe3YsUMPP/ywQkNDNXjwYElS+/bt1b9/f40bN05btmzRJ598osTERA0fPlyhoaGSpAcffFC+vr4aM2aMdu3apZUrV2rhwoVKSkoy+nj00UeVlZWluXPnavfu3Zo5c6a2bt2qxMTEa39XAABArVfpIzlbt25V7969jcflwSMuLk4ZGRmaMmWKTp48qfHjx+v48eO68847lZWVZVwjR5KWL1+uxMRE9e3bV15eXho6dKiee+45Y31AQIDWr1+vhIQERUVFqUmTJkpNTTVOH5eknj17asWKFZo+fbr++Mc/qk2bNnrnnXe4Rg4AAJBUhZDTq1cvuVyuS663WCyaNWuWZs2adcmawMBA48J/lxIZGamPPvrosjX333+/7r///ss3DAAAbko31dlVAADg5kHIAQAApkTIAQAApkTIAQAApkTIAQAApkTIAQAApkTIAQAApkTIAQAApkTIAQAApkTIAQAApkTIAQAApkTIAQAApkTIAQAApkTIAQAApkTIAQAApkTIAQAApkTIAQAApkTIAQAApkTIAQAApuTj6QYAADCrVtMyr/s+9j8Te933UVtxJAcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJhStYecmTNnymKxuC3t2rUz1p85c0YJCQlq3LixGjRooKFDh6qoqMhtG4WFhYqNjVW9evUUFBSk5ORknTt3zq0mNzdXXbp0kZ+fn1q3bq2MjIzqHgoAAKjFrsuRnNtvv12HDh0ylo8//thYN3nyZL333nt6/fXXtXHjRh08eFBDhgwx1p8/f16xsbEqLS3Vpk2btGzZMmVkZCg1NdWo2bdvn2JjY9W7d28VFBRo0qRJGjt2rNatW3c9hgMAAGohn+uyUR8fhYSEXPR8cXGxXnrpJa1YsUJ9+vSRJL3yyitq3769Nm/erB49emj9+vX68ssv9f777ys4OFidO3fWk08+qalTp2rmzJny9fVVenq6wsPDNXfuXElS+/bt9fHHH2v+/Pmy2+3XY0gAAKCWuS5Hcr755huFhobql7/8pUaMGKHCwkJJUn5+vs6ePauYmBijtl27dmrRooXy8vIkSXl5eerYsaOCg4ONGrvdLqfTqV27dhk1F26jvKZ8G5dSUlIip9PptgAAAHOq9pATHR2tjIwMZWVlacmSJdq3b59+/etf66effpLD4ZCvr68aNWrk9prg4GA5HA5JksPhcAs45evL112uxul06vTp05fsbfbs2QoICDCWsLCwax0uAACooar966oBAwYYf46MjFR0dLRatmypVatWqW7dutW9u0pJSUlRUlKS8djpdN60QafVtMzruv39z8Re1+0DAHAl1/0U8kaNGum2227Tt99+q5CQEJWWlur48eNuNUVFRcYcnpCQkIvOtip/fKUaq9V62SDl5+cnq9XqtgAAAHO67iHnxIkT2rt3r5o1a6aoqCjVqVNHOTk5xvo9e/aosLBQNptNkmSz2bRjxw4dPnzYqMnOzpbValVERIRRc+E2ymvKtwEAAFDtIefxxx/Xxo0btX//fm3atEn33nuvvL299cADDyggIEBjxoxRUlKSPvjgA+Xn52vUqFGy2Wzq0aOHJKlfv36KiIjQyJEj9cUXX2jdunWaPn26EhIS5OfnJ0mKj4/Xd999pylTpmj37t1avHixVq1apcmTJ1f3cAAAQC1V7XNyvv/+ez3wwAP68ccf1bRpU915553avHmzmjZtKkmaP3++vLy8NHToUJWUlMhut2vx4sXG6729vbV69WpNmDBBNptN9evXV1xcnGbNmmXUhIeHKzMzU5MnT9bChQvVvHlzLV26lNPHAQCAodpDzmuvvXbZ9f7+/lq0aJEWLVp0yZqWLVtqzZo1l91Or1699Pnnn1epRwAAYH7cuwoAAJgSIQcAAJgSIQcAAJgSIQcAAJjSdblBJ4Cby/W+grbEVbQBVB5HcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCkRcgAAgCn5eLoBoKpaTcu87vvY/0zsdd8HAOD64EgOAAAwJUIOAAAwJb6uqiS+IgEAoHbgSA4AADAlQg4AADAlQg4AADClWh9yFi1apFatWsnf31/R0dHasmWLp1sCAAA1QK0OOStXrlRSUpJmzJihbdu2qVOnTrLb7Tp8+LCnWwMAAB5Wq0POvHnzNG7cOI0aNUoRERFKT09XvXr19PLLL3u6NQAA4GG19hTy0tJS5efnKyUlxXjOy8tLMTExysvLq/A1JSUlKikpMR4XFxdLkpxO51Xvt6zkVBU7vnqV6aeqrvc4zDAGiXFcLTOMQWIcV8sMY5AYx9WqiWMor3e5XJcvdNVS//73v12SXJs2bXJ7Pjk52dW9e/cKXzNjxgyXJBYWFhYWFhYTLAcOHLhsVqi1R3KqIiUlRUlJScbjsrIyHT16VI0bN5bFYqn2/TmdToWFhenAgQOyWq3Vvv0bhXHUHGYYg2SOcZhhDBLjqEnMMAbpxozD5XLpp59+Umho6GXram3IadKkiby9vVVUVOT2fFFRkUJCQip8jZ+fn/z8/Nyea9So0fVq0WC1Wmv1X9hyjKPmMMMYJHOMwwxjkBhHTWKGMUjXfxwBAQFXrKm1E499fX0VFRWlnJwc47mysjLl5OTIZrN5sDMAAFAT1NojOZKUlJSkuLg4de3aVd27d9eCBQt08uRJjRo1ytOtAQAAD6vVIWfYsGE6cuSIUlNT5XA41LlzZ2VlZSk4ONjTrUn6+euxGTNmXPQVWW3DOGoOM4xBMsc4zDAGiXHUJGYYg1SzxmFxua50/hUAAEDtU2vn5AAAAFwOIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJgSIQcAAJhSrb5OTk128OBBvfDCC/r222/VrFkzjR07Vu3atfN0W1VSfuf2mnDNg5vNl19+qbS0NOXl5cnhcEiSQkJCZLPZlJiYqIiICA93WHlm+mzAM/hc4GpxnZxqUq9ePf3rX/9S06ZN9eWXX6pnz55q2rSp7rjjDu3YsUOFhYXKy8tTZGSkp1u9KtnZ2Zo/f77y8vKMW9pbrVbZbDYlJSUpJibGwx1e3uHDhxUUFGQ8Ligo0Pz5841/QBITE9WrVy/PNXgV1q5dq8GDB6tLly6y2+3GRS6LioqUnZ2t/Px8/fOf/5Tdbvdwp5dnls8Gv1hrBj4XNU9N/mwQcqqJl5eXHA6HgoKCNHjwYJWVlemtt96Sj4+PysrKNGLECJ04cULvvfeep1u9omXLlmns2LG67777LvpHZP369XrjjTf00ksvaeTIkR7u9NK8vb116NAhBQUFadOmTerVq5d69uyp7t27q6CgQB988IFycnJ01113ebrVS+rUqZMGDRqkWbNmVbh+5syZeuutt7R9+/Yb3FnlmOGzwS/WmoPPRc1S4z8bLlQLi8XiKioqcrlcLldYWJjrww8/dFu/bds2V7NmzTzRWqW1adPGlZaWdsn1ixYtcrVu3foGdlR5F/48fvOb37hGjx7ttv7RRx919enTxxOtXTV/f3/X7t27L7l+9+7dLn9//xvYUdWY4bMRGRnp+vOf/3zJ9TNmzHB17NjxBnZUNRf+LAYNGuS65557XGfPnnW5XC7X+fPnXcOHD3cNHDjQky1eEZ+LmqWmfzaYeFxNLBaLLBaLpJ8T+n/eAr5Ro0Y6duyYJ1qrtMLCwst+HdW3b199//33N7Cja7Nz506NGzfO7blx48bV+P/Ta9WqlTIzMy+5PjMzUy1btryBHVWNGT4bX3/9tUaMGHHJ9Q888IC++eabG9jRtdu2bZuSk5Pl4/Pz1EwvLy9NmTJF+fn5Hu7s8vhc1Cw1/bPBxONq4nK5dNttt8lisejEiRPavn272yHfb7/9ViEhIR7s8OrdfvvteumllzRnzpwK17/88su1Yv7BTz/9JH9/f/n7+180adrf31+nTp3yUGdXZ9asWXrwwQeVm5urmJgYt8PAOTk5ysrK0ooVKzzc5ZWZ4bNR/ou1bdu2Fa7nF+uNw+eiZqnpnw1CTjV55ZVX3B63bt3a7fHmzZt177333siWqmzu3LkaOHCgsrKyKvxH5Lvvvrvs/0nVFLfddpukn/8x2bp1q+644w5j3a5duxQaGuqp1q7K/fffr1/84hd67rnnNHfu3Ism9OXm5spms3m4yyszw2eDX6w1B5+LmqWmfzaYeIwK7d+/X0uWLNHmzZsv+kckPj5erVq18myDV7Bx40a3x82aNTNCjyQtXLhQpaWlSk5OvtGtoZbatGmTnnvuuQrPIHn00UdrxS/WZcuWuT1u27atevToYTx+8skndezYMc2bN+9Gt4ZarCZ/Ngg5AADAlJh4fIP88Y9/1OjRoz3dBkzELH+nzDIO1Axm+ftklnF4GiHnBvn++++1f/9+T7dRLeLi4tSnTx9Pt3FNzDCGf//736b4O2WGcZjlF5IZxmGGv0+Secbh6b9TTDy+QV599VVPt1BtQkND5eVVu/OxGcbwn/MraiszjOP777+vVZdVuJTaPA6XyyWLxVLr/z6ZZRzlPP13ijk51eiHH37Qyy+/fNHkq549e+qRRx5R06ZNPdwhAJiTr6+vvvjiC7Vv397TrVwTs4yjpiDkVJPPPvtMdrtd9erVq/A0ulOnTmndunXq2rWrhzu9dgcOHNCMGTP08ssve7qVKqstYzh9+rTy8/MVGBh40bWJzpw5o1WrVunhhx/2UHdXzwzj+Oqrr7R582bZbDa1a9dOu3fv1sKFC1VSUqKHHnqo1nz9WdvHkZSUVOHzCxcu1EMPPaTGjRtLUo0/Q8ws4/hPJ0+e1KpVq4z7oT3wwAPGWDyBkFNNevTooU6dOik9Pd242FY5l8ul+Ph4bd++XXl5eR7qsPp88cUX6tKli86fP+/pVqqsNozh66+/Vr9+/VRYWCiLxaI777xTr732mpo1aybp5wAdGhpao8cgmWMcWVlZGjRokBo0aKBTp07p7bff1sMPP6xOnTqprKxMGzdu1Pr162t8QDDDOLy8vNSpUyc1atTI7fmNGzeqa9euql+/viwWizZs2OCZBq+SWcYRERGhjz/+WIGBgTpw4IDuuusuHTt2TLfddpv27t0rHx8fbd68WeHh4R7pj5BTTerWravPP//8knfw3b17t+644w6dPn36BndWee++++5l13/33Xd67LHHavQvJTOM4d5779XZs2eVkZGh48ePa9KkSfryyy+Vm5urFi1a1IpwIJljHD179lSfPn301FNP6bXXXtMf/vAHTZgwQX/5y18kSSkpKcrPz9f69es93OnlmWEczzzzjF588UUtXbrULYzVqVNHX3zxRa24GrtknnFceKPRhx56SPv27dOaNWsUEBCgEydO6N5771XTpk09d0HAG3urLPNq1aqVa9myZZdcv2zZMlfLli1vXEPXwGKxuLy8vFwWi+WSi5eXl6fbvCwzjCEoKMi1fft243FZWZkrPj7e1aJFC9fevXtdDoejxo/B5TLHOKxWq+ubb75xuVw/38jSx8fHtW3bNmP9jh07XMHBwZ5q76qZZRxbtmxx3Xbbba7HHnvMVVpa6nK5XC4fHx/Xrl27PNxZ5ZhhHBfeaPSXv/yla/369W7rP/nkE1dYWJgnWnO5XNygs9o8/vjjGj9+vB599FG9++67+vTTT/Xpp5/q3Xff1aOPPqr4+HhNmTLF021elWbNmumtt95SWVlZhcu2bds83eIVmWEMp0+fNm6eKP1836ElS5bonnvu0X/913/p66+/9mB3V88s47jwnk/+/v5u931q2LChiouLPdVapZhhHN26dVN+fr6OHDmirl27aufOnRdNE6gNzDKO8p7PnDljfA1d7he/+IWOHDniibYkcQp5tUlISFCTJk00f/58LV682Dj07u3traioKGVkZOh3v/udh7u8OlFRUcrPz9egQYMqXG+xWOSq4d9ymmEM7dq109atWy86yyItLU2S9Nvf/tYTbVWaGcbRqlUrffPNN7r11lslSXl5eWrRooWxvrCw8KJ/3Gsis4xDkho0aKBly5bptddeU0xMTI3+uvNyzDCOvn37ysfHR06nU3v27FGHDh2Mdf/61788OvGYkFONhg0bpmHDhuns2bP64YcfJElNmjRRnTp1PNxZ5SQnJ+vkyZOXXN+6dWt98MEHN7CjyjPDGO6991794x//0MiRIy9al5aWprKyMqWnp3ugs8oxwzgmTJjg9svnwn/EJWnt2rU1erJuObOM40LDhw/XnXfeqfz8/FpxJ/hLqa3jmDFjhtvjBg0auD1+77339Otf//pGtuSGiccAAMCUmJMDAABMiZADAABMiZADAABMiZADAABMiZADwJRatWqlBQsWeLoNAB5EyAFQq2VkZFx0/x/p55vmjh8//sY3BKDG4Do5AGqs0tJS+fr6Vum1TZs2reZuANQ2HMkBUGP06tVLiYmJmjRpkpo0aSK73a558+apY8eOql+/vsLCwvSHP/xBJ06ckCTl5uZq1KhRKi4ulsVikcVi0cyZMyVd/HWVxWLR0qVLde+996pevXpq06bNRTdyfffdd9WmTRv5+/urd+/eWrZsmSwWi44fP36D3gEA1YmQA6BGWbZsmXx9ffXJJ58oPT1dXl5eeu6557Rr1y4tW7ZMGzZsMO4D17NnTy1YsEBWq1WHDh3SoUOH9Pjjj19y20888YR+97vfafv27br77rs1YsQIHT16VJK0b98+3XfffRo8eLC++OIL/f73v9ef/vSnGzJmANcHX1cBqFHatGmjOXPmGI/btm1r/LlVq1Z66qmnFB8fr8WLF8vX11cBAQGyWCwKCQm54rYfeeQRPfDAA5Kkp59+Ws8995y2bNmi/v3764UXXlDbtm317LPPGvvduXOn/vKXv1TzCAHcKIQcADVKVFSU2+P3339fs2fP1u7du+V0OnXu3DmdOXNGp06dUr169Sq17cjISOPP9evXl9Vq1eHDhyVJe/bsUbdu3dzqu3fvXsVRAKgJ+LoKQI1Sv35948/79+/XwIEDFRkZqTfffFP5+flatGiRpJ8nJVfWf94s12KxqKys7NoaBlBjcSQHQI2Vn5+vsrIyzZ07V15eP/8/2apVq9xqfH193e6sXVVt27bVmjVr3J777LPPrnm7ADyHIzkAaqzWrVvr7Nmzev755/Xdd9/pf/7nf5Senu5W06pVK504cUI5OTn64YcfdOrUqSrt6/e//712796tqVOn6uuvv9aqVauUkZEh6ecjPgBqH0IOgBqrU6dOmjdvnv7617+qQ4cOWr58uWbPnu1W07NnT8XHx2vYsGFq2rSp26TlyggPD9cbb7yht956S5GRkVqyZIlxdpWfn981jwXAjWdxuVwuTzcBADXRX/7yF6Wnp+vAgQOebgVAFTAnBwD+v8WLF6tbt25q3LixPvnkEz377LNKTEz0dFsAqoiQAwD/3zfffKOnnnpKR48eVYsWLfTYY48pJSXF020BqCK+rgIAAKbExGMAAGBKhBwAAGBKhBwAAGBKhBwAAGBKhBwAAGBKhBwAAGBKhBwAAGBKhBwAAGBK/w8XwhSwcaUsegAAAABJRU5ErkJggg==\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -986,7 +975,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ From f5632a8ad23438bf64973103a7d4fd1cf88807e3 Mon Sep 17 00:00:00 2001 From: Moses Kim Date: Tue, 27 Dec 2022 16:13:55 +0900 Subject: [PATCH 07/17] updated *.py --- chapter5/util/data_loader.py | 30 +++++++++++++++--------------- chapter5/util/metric_calculator.py | 2 +- chapter5/util/models.py | 20 ++++++++++---------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/chapter5/util/data_loader.py b/chapter5/util/data_loader.py index fbbbfd7..dcfe91b 100644 --- a/chapter5/util/data_loader.py +++ b/chapter5/util/data_loader.py @@ -12,54 +12,54 @@ def __init__(self, num_users: int = 1000, num_test_items: int = 5, data_path: st def load(self) -> Dataset: ratings, movie_content = self._load() movielens_train, movielens_test = self._split_data(ratings) - # ranking用の評価データは、各ユーザーの評価値が4以上の映画だけを正解とする - # キーはユーザーID、バリューはユーザーが高評価したアイテムIDのリスト + # ranking 용 평가 데이터는 각 사용자의 평갓값이 4 이상인 영화만을 정답으로 한다 + # 키는 사용자 ID, 값은 사용자가 높이 평가한 아이템의 ID 리스트 movielens_test_user2items = ( movielens_test[movielens_test.rating >= 4].groupby("user_id").agg({"movie_id": list})["movie_id"].to_dict() ) return Dataset(movielens_train, movielens_test, movielens_test_user2items, movie_content) def _split_data(self, movielens: pd.DataFrame) -> (pd.DataFrame, pd.DataFrame): - # 学習用とテスト用にデータを分割する - # 各ユーザの直近の5件の映画を評価用に使い、それ以外を学習用とする - # まずは、それぞれのユーザが評価した映画の順序を計算する - # 直近付与した映画から順番を付与していく(0始まり) + # 학습용과 테스트용으로 데이터를 분할한다 + # 각 사용자의 직전 5개 영화를 평가용으로 사용하고, 그 이외는 학습용으로 한다 + # 먼저, 각 사용자가 평가한 영화의 순서를 계산한다 + # 최근 부여한 영화부터 순서를 부여한다(0부터 시작) movielens["rating_order"] = movielens.groupby("user_id")["timestamp"].rank(ascending=False, method="first") movielens_train = movielens[movielens["rating_order"] > self.num_test_items] movielens_test = movielens[movielens["rating_order"] <= self.num_test_items] return movielens_train, movielens_test def _load(self) -> (pd.DataFrame, pd.DataFrame): - # 映画の情報の読み込み(10197作品) - # movie_idとタイトル名のみ使用 + # 영화 정보 로딩(10197 작품) + # movie_id와 제목만 사용 m_cols = ["movie_id", "title", "genre"] movies = pd.read_csv( os.path.join(self.data_path, "movies.dat"), names=m_cols, sep="::", encoding="latin-1", engine="python" ) - # genreをlist形式で保持する + # genre를 list 형식으로 저장한다 movies["genre"] = movies.genre.apply(lambda x: x.split("|")) - # ユーザが付与した映画のタグ情報の読み込み + # 사용자가 부여한 영화의 태그 정보를 로딩한다 t_cols = ["user_id", "movie_id", "tag", "timestamp"] user_tagged_movies = pd.read_csv( os.path.join(self.data_path, "tags.dat"), names=t_cols, sep="::", engine="python" ) - # tagを小文字にする + # tag를 소문자로 한다 user_tagged_movies["tag"] = user_tagged_movies["tag"].str.lower() movie_tags = user_tagged_movies.groupby("movie_id").agg({"tag": list}) - # タグ情報を結合する + # 태그 정보를 결합한다 movies = movies.merge(movie_tags, on="movie_id", how="left") - # 評価データの読み込み + # 평가 데이터를 로딩한다 r_cols = ["user_id", "movie_id", "rating", "timestamp"] ratings = pd.read_csv(os.path.join(self.data_path, "ratings.dat"), names=r_cols, sep="::", engine="python") - # user数をnum_usersに絞る + # user 수를 num_users로 줄인다 valid_user_ids = sorted(ratings.user_id.unique())[: self.num_users] ratings = ratings[ratings.user_id <= max(valid_user_ids)] - # 上記のデータを結合する + # 위 데이터를 결합한다 movielens_ratings = ratings.merge(movies, on="movie_id") return movielens_ratings, movies diff --git a/chapter5/util/metric_calculator.py b/chapter5/util/metric_calculator.py index 3b2283c..d0cb294 100644 --- a/chapter5/util/metric_calculator.py +++ b/chapter5/util/metric_calculator.py @@ -49,7 +49,7 @@ def _calc_precision_at_k( self, true_user2items: Dict[int, List[int]], pred_user2items: Dict[int, List[int]], k: int ) -> float: scores = [] - # テストデータに存在する各ユーザーのprecision@kを計算 + # 테스트 데이터에 존재하는 각 사용자의 precision@k를 계산한다 for user_id in true_user2items.keys(): p_at_k = self._precision_at_k(true_user2items[user_id], pred_user2items[user_id], k) scores.append(p_at_k) diff --git a/chapter5/util/models.py b/chapter5/util/models.py index 3a4ae12..898f12c 100644 --- a/chapter5/util/models.py +++ b/chapter5/util/models.py @@ -4,34 +4,34 @@ @dataclasses.dataclass(frozen=True) -# 推薦システムの学習と評価に使うデータセット +# 추천 시스템의 학습과 평가에 사용하는 데이터셋 class Dataset: - # 学習用の評価値データセット + # 학습용 평갓값 데이터셋 train: pd.DataFrame - # テスト用の評価値データセット + # 테스트용 평갓값 데이터셋 test: pd.DataFrame - # ランキング指標のテストデータセット。キーはユーザーID、バリューはユーザーが高評価したアイテムIDのリスト。 + # 순위 지표의 테스트 데이터셋. 키는 사용자 ID, 값은 사용자가 높이 평가한 아이템의 ID 리스트 test_user2items: Dict[int, List[int]] - # アイテムのコンテンツ情報 + # 아이템 콘텐츠 정보 item_content: pd.DataFrame @dataclasses.dataclass(frozen=True) -# 推薦システムの予測結果 +# 추천 시스템 예측 결과 class RecommendResult: - # テストデータセットの予測評価値。RMSEの評価 + # 테스트 데이터셋의 예측 평갓값. RMSE 평가 rating: pd.DataFrame - # キーはユーザーID、バリューはおすすめアイテムIDのリスト。ランキング指標の評価。 + # 키는 사용자 ID, 값은 추천 아이템 ID 리스트. 순위 지표 평가. user2items: Dict[int, List[int]] @dataclasses.dataclass(frozen=True) -# 推薦システムの評価 +# 추천 시스템 평가 class Metrics: rmse: float precision_at_k: float recall_at_k: float - # 評価結果を出力する時に少数は第3桁までにする + # 평가 결과는 소수 셋째 자리까지만 출력한다 def __repr__(self): return f"rmse={self.rmse:.3f}, Precision@K={self.precision_at_k:.3f}, Recall@K={self.recall_at_k:.3f}" From c520ba2a1dc564e0708380c6119a3bbe6b83ffd6 Mon Sep 17 00:00:00 2001 From: moseskim Date: Thu, 27 Apr 2023 15:37:56 +0900 Subject: [PATCH 08/17] uploaded cover.jpg --- cover.jpg | Bin 20360 -> 126524 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/cover.jpg b/cover.jpg index f4c4bf75bd53ed9be78ffef3e0e432ef6c05d764..16bdd136994715b13cbbfd584f768796ccfe8c92 100644 GIT binary patch literal 126524 zcmeFYdo+}9*fu;$32CwqF=ZDaDf?u8B?%$>y-AYIBncTAGnMQ&Q-q>S2-#;}l8G54 zN%k2r8_7O1#ke!O@BTgS`@G*;-+KP|*7L3PuJ4a`mV4Hix$c>3b6&@Bp2vA!{BL|J zWWUXM>+=u+@S!cB4T12dAr}Af-@ottcOU1Nom1fgL*qckLG1BP=2cHfY%o*&zVlCb)CgEZExPTcN0lHy?r11KaGrzjZaK|nFeNgo zY-cNvMg{vXI##$#X7pYO9qzvT`Z1Eu%w6<<Dz60$G1}H*_z)ooZ>D>W9=gMb>GJ2yy&B0g*d8=n1pbhl7e#7cBS(n_cM7!xYPzb3CnO=e;`jt=}@V$x9m%~(Q%kY5k~!{*k^f!ts4yOLh|-y z_0e#oQ)1c!KmC^S8e+Gcnvdh9maccH{RNozyBW`Yjs+!myM$Q45JDQ4=VO8g$h}VJ z#u)>dwVKD#ZLDLuEG$q{{3P(HY>N4=h~yN{^D?bk1`J#x`eOGrbJfd5@`crD-45!t z`LyGaef}zPHRqK~av#t2pRH4NO3PC1$QA?rW_EPp@E7UUjKCEjpSZnNpRC$C`e~*U7ZF&o;+0iqSXzEjA{-hj z6C%Ws!t+EF*pa+1u!iteS*H8h@mih;=Q=P@vV0O9Fnp{-h!%E<4+-%?*%G}TUouaa zix>6A?)~2KrP#bUy7c8uzYurX>=2`j!7JjXS`oWN9x$2D&0I?JM~SYLPR})Lo_ky= zJ1;e>bgO#LpkIgL4{DjTrgNlYP!FT+>u8UXP8V=GwJXR+=xz@%jAzD({g5*ZE4pTU zedW-gv99Pddea>r@4T=5dZ=d&y(Th-2^IH~f>J)vmoLA5`+jeG=h6L$(Lrg>^~l&IQM-ow!v=2DnJSp# z#`PnN3^ye)X3YH!_GX^${xc!vgH>L{@K}SQdYxa-$Z9NcdWNil0YbRo^3vGj%MHdI zl4VKhg*FGrU9G3A-^<&1&)&`?Z+|8(O46_2G#T`hWa@s@P; zXz;k$xUbw_d$(O`|B3OG+Qj>4AiRbs?o^>8BDG8pvd`c{>b$fVvOLju?3cb(6W-b}t-r2!*4cPEHGY%g9gQxEUze3E46dzvN2v&}X1NNuQ_fswjGKs`q~W z`RC~mk2%r56~$<9dnM#@>`Io*mA`hJqz~Gjn~WL|3%D?L2ykW_>mWt+m<5DhZj;0xeE+?9|}vO?=_T__1?8V02#Hc$G-H9%BufEhb;#hW;SW`U19-jhdcq8^>#xT+&d`Q@k7?5KJ z2(g7T z%5>8>y4AQ+c{6BYk{`uqWd$GiH!ZkJh0~$K}B{ zq?Jjc5hX)6c|@pRxhyQ%qozB{+rCI;@2hdwl~=#*FFkh+m7f|*&uI@iGgYK?Wbt{g zRvJKg@Y@g0NYBu^DU|SbJ@e_$=&tXGEc!mhN}}1RG>?mY>K}fhF5cfXuCVN)W`w`vyz{J|wvg?HIv0hF9LsRZy@0ka%=j_C?~4tT{fa{*;r1BgyH_iS7Z*|@VvlKw(kpfZb{@XDdg7Uz zkvKv$`&v$=12lP%mOj8ZPQ2zA^<(*Kw@aUYNx_ev!5QT=&O8XW4IDI3!Pet-;pICG z(K1XaKPli5m0h2t2Vi{*&ksifH8~`NOou2f-p4S9t^;=&Io3H^vf`Ebg6*3zYiob( z(C=T$X)XyoVO=I4La$#t&EA8C0prYSQUt1r4o^3LrQSrgubLi9rUC29j4cu$asU-> z?K*-ssR;41Y@2G1SMMDwL>{=fCR`M$`rB3ok0|99a|;LDS75H&6eI2U{6<#Mr|;i6 z91eMU>i6^-;w+Xf9&wW43aoE-5Xh}?(^8?%E4-Z)fG}=}VGj(ZOeb@x7#PyCdY%QSF{p-dW z_5*o{NPsNM6iG8NPv?hXX<`TxvAdrRa85EsZ5rC!M>c~w{}{w6T1T%LQZBuYW{`a_ zBfJ4@i!2dNCbF;$t2JT9mh(L`J^Fj8ndMfa{7dPSJ;?1Se=`RfcE3@-VrwaF@XRrt z8$U1SO&a#^t`7da)Yh6W(X;ncBKn4wu4A>WzF`;|B*M;`w@P}%;F(UmYuv)DX zYmep@9rd^)rIytl5CQ^VhLVwZ5=*+8t7eHkDo@}@O|yo%?O1BbBg_{#!vUXi+gtz; zqp_RHkv#M84AIKp8Roao ze{AGl=eA=sIX8hw-3J{eRH#hI_EDpxW1FY6_z*8m$2K@%tSI#8+EE&Q$w@o!Z zPq}QBSFh&yw%5r0ajD?n7sW%G8hGa(*m)&W>a#z0QHZoZb~i9}l93+Czc`_1a!|%Msn~R3Sy7r!XriQ=+0us+ zm6RsUoUzAR;!ZE5>F5thIQWN``=AKj1rF&gYbsslhHn}hn?{>~1!jFhjlQn*z_F(l zAq9401w`KvFSn-^gJJ&RYp%=PHW3+farQ@T*ko&iIK%p&VS@8t_Q?;fpPICZTJ@&U zTJvvK{dTn29J`UROl3+R-#lVHmUuMlafRKd!b|J?An-=2WYr#LNw?Eti(((2e|qEOj%myW4D6nANR`N;&~FKQs9XcS0`TPg4_@vWXfbBnhjyjP(+?z9 zC{Ru`JyWzB183CI66JplcrbYN@gZhRug`-!R_<7_l9Sh;iY}4MKHY+!4H<_CdrQfqdIx%zmtgH*_gp_kZh zS1v9BTfS(j^b{LY6+*84Y+6?@mSO0|+Q!|0!*W5)b+7goPpW=Unf%Npz}U{sIUyrt z^nT3a9~+J~%#gRYUiJ6=CJ3PwnLjIV2M-g!pYGy>Jc{61_C7tYE1TXkZ&JPkt?R5i zsNvolZ$hChF8W zM>@sPmqs=nL=>L-`Imp;fd-yBiQc;%yOv-v^m5*l+Jtd0$?Zx}Xw}}`WJu>-(sDS{u0Gm&~#f3_@#> z5G`@+fP^E7wGXd!SkT`%lc+vN9`s&&0vBs~1{Du@y%{o_d&lFKGV$7*k5@u$TpDcJ zCPKd4ta{1BNMXDB;Q~A*v@Q@q6=@R*YudYf;Ho@li(Acy1h0d0&G4-!uXr(gJLW<*Pdzwy^ z>iBhzEi&$Aw70L1Ps@j~0PoZSpO5vNzu2y0oySo`p0Ga%8+(9a_D;;#{NrSl5IsNr zdWXqNpycPtfHKRupl-AllZV$XM`#i8lKQ6x>~{0iV+>8pcy|p%3-w-ve)|4xTdtJ% zx$D~0gP`1i<>3mqvb{Q{Hw-j?j~Ab?bP<{y?W*Mfwg96^6TP9Uu-|R3dE@9 zU9nzqLhFJHmxI{>?4-5bH4}?vo1(o5?-#m^$K=B%Jfv+!1JBw8b*TJ+p@gt z4GtA~8|JA!7M4Dsb@xMB6BxH!ybe#sH~i83Xs!nk6B33v)}65JNeWi56NIcTxnkfH zqY5U2!tsO$VQGhfNNNiDTmc(1wA07#27GTwNY$|hZZT|{&>{oa8$esHt*l)MZ-$-v zTwB%Qf=V{pE)RS#fN1=n+2Nu&=!zR(Qacc5eg2Dl8*+A;t@6`29))yYblA9-pK2}w z`i~hK2yxV)b`$i&)82^3lOLHhVLNY))75&VUT_dudjCR-bY zXBp(s^O{PR-TM6*M^~sEKcle?(KGuhtG#3Wb_>_~h8!0ajX%3R(?-^8Oj^D=*l3D1 zYtQG@3Wb37?Uuub)Od>_pW1Z1eyTtUxCv|%R@A-k0Kwh*wQCBOT8uRQSe|+xUS)3a zq21@OEeTo{M-3M2G#*ua^3&u~T^aFlLu~%U9~=D$gX2%g8w;xv z>1B4qm3yq;^lK2VhyV4Uuwwa;1_BF2uhFZn+@winF*_D`*F6j3TEYX22r$&kQyxaE z&|rI4C{17L>AI3AoKy2~vkugzX+$}D#c@2^_V4A!*Nv?ivPD0C2GcUnFWl7Hz6u5` zX}k}VjXSW$Egnoa8O9lQce6_)Uh0hyL|)Nw%=r?bbH3IqYT8Sy%tU>BqkS1|HBz1M z=3T0p+4jLJsF=hzI5?5U%Rnnwh$GZK{xO@#6#3PvTvF;)CnV}8RrSXHq|1WFV7Fs# z&8WE@xULNBCmlivY?}+{@FCSJv`jbf&Ar%9y6~VOwkSG~4;i0gioAgX+W9@}iCB4% z*Rm1K`571}=RCu`2P!NUL))E=wxhx%mXx%=p05mG&e5D_mndYi+RPemI!xl{Oq~vz z4>6T4Qc>239?HRX$-=J>O&y`ZIFc1q>|Kl|Zxptp^B_PuKgQFtu0~n)QlvWMXgKku zhGo30SwwY6qu=6oZ$l9FMm{-k^EtQLc1I1X?f9VF)koI1NSBhO&Nr_NXKMaHX4h1m z)t?{C*owXOqf~37DP}Q}`o=b`2|Bfq_3`GxlcWQye*`wZR-4_nOX!c(wnyGigznb3 zRBz_zYb9oOOwe`OG`!FaWm=AeiZU$&Ftt@fA3@eh@ z?iGvi)&9(5I%K;Xk5F>p=SOxdMdZ1$;^y%UUrUt`Z39~^?>FNGhbjOOpy?Hl3};*< zNbyFo4Ey(@eq)qwieklZ6#Mq*#>{#8pFSn&iSRGaU!a<3ukT;Wu^Tg2L18q_gyuxO z1;@(TgQH<0Uxunsn33g4b}Iw6R?CKQoS4^eRNW*(i_ixL7;2hy;ybYzW!puO?vSR# z#aASzrhJy&BbM3?b82QNvj(mBz?eAW`$E5K!zzmG8hTgZPYHlFRfs3*3~oa{RIg&7Q(2bXVj zRD{l@RQ_nFh=pZpRYLc#Tz7Tk+-8Try@6OU;zmQm>SWaC2ZuAfhW z*&>akdAw84l@R}V2btGT972}|v`XzT10X0KhEt2~U{_Vxr>5cQ`YR?FIL9;LBGahn zxzC;;yv6k1#zn+F?PI0K@KZeK{ogbL&C9VWV;tL<8o#o^-e>LSZsTiWWLn#-=V!dn zL@F&(0!ezG3+d6>N2ZkJc5~XZyP~ACLO8MbKGCt;pIUrAL+Y^N^tz@I z)8@wS!npocEZ*-haIZ&6gGmqv5_(M@{83V+qrcRJJh>9TI9jH8izu4V<$SA<82I;w zOc6{Vk5+o*;4x9LcFM-$pI|7OS{Ea#&J%|WRrpTFz z(_u-VtA$o6K`ngfJlYU;ilijR6nh*)zE*nOQ!S%kDj~|#TI}M47QmnUnZ4H91QI&KTMc#K<5p%8>!G z);$0#<~w>&w~jK49x{|@;Hz~3$bGp~ty-^o`;N~1+Cq{6Q1fE1gu%onZa*RnGVsb~ z>h^Xd>+HWEh3SJg@*!zagcQt?91^7&N)i+KN#;ZTApqG0F6R3fyy}p{*<$Y24E6lr zR#{nwVP9KLk324w-t^|ey7u9w_xDAg@F6!A>y`1)A7jmoXkAqdaRpOSRDrJnt*5pAEU>uX7;bS?z~_`; zkWWpR$R0jK9IX<-81R_ftd$Q>zLT7^daV9Nhh<>Jx0$}mwp246I_m2E1I^#OzI*i` z4?UXyqhzTexuKl4(IBNkfAu9v`B~_2<-m}A%zVD~obl}7=_3dFk?mHrX9~SOj(mDG_wU+AYq#6~r z#}jSNFiPkUD)*W33+WVLbl#(#HeLQ(9Jf*k-M8e{ZuxAhK3uFB8l%(l?3Pc5A>-WW z$tSc-!xx<2+ztZuF`)_6K7@KOJD8KC!GONmUCjEsQHAe!kMoyjxDGl>v8fV{PA5K$h;%C?B$W zfY%#T--{(*XDyKMqIdQs@T_%1dAQ&@)4#{u)2ddk9FM9R&%U2){r0WFo?h{HKPQGC zxX#v*zjNUUyj;Wu1oXEyeD6&}8rqVGKK+37)41c9W1f{x={=(RVAEdvkSF$uvUjt~ z4%)+IQ%Rqm9Sk`e?Gw_y-!Y97$_0gTYAU`7yK2pxJ_CS(#WWq{RSBS)xD8L$_qNmO z-5$DEA0-^dad7F6-#aY(do;a879kPgHCVel%-Zb;fq-@I)Qh@t{Mv zYajL?8Vs!x-^!GQRbsnAaVpV@*re9hy#ZWG<>L8}J*iA}B5gyq2AU?S=+!xYp$kTQ>S>x?FSf^IDCH^3 zpLEdn13(dr{66uniyL&3>eJiNVEjv-bj#o0ZXPK3o$HmhKQTys%~J>3OPJQ>?ZLB6 zFw^*hn|K^Sf~U$sGA7enY9)!}UA_6#u%HhtFTvXwg$5ZJr=H#KsnGq)JAMY=jmwL- zriUEAl6L4g#+46A2_yvQZfo-)&67MStSI*H$mB-6Wq`Z#C#`XCzwFLf9)DKlQn=8u zpc!dnKVtLCYq2ICzAs+aJo}l-!yg=7B1V_#=J@cc+-*sX{>BdN#`)wAfp0|gh_vI6 zPnYkAWVvW`>(hozY;%$7n{Z7I9Hd?x0HqPWdG{e+tKo1M?Eyx0AJ3qf*;`Mqu66EO zXYQDEYGPU?pxqT)@mSgW#f**Hc3A3jLm^w7*!Mw}ZF-O7-}=3;(I@$k{R5a@#D*uB zzN+VF@MQRqKV|ic+iB6aE>;m5Sl{GNZok*KR601wZod@PE#92>=+^D`v-Qq}$(?zy z3!PH<{jM~M3<|GV*@L#qqW@CPlkpJ!*11Nv zq+{D~r($qHM!I6syJ&+qZDVU`GkrIH%PG63Ih4Xf;eZ;Y3qgLzDhG_%p1@o$MREhC z#E~53DJ^v>eC^PwM7d3Odp(BlGgk%@=xz_UXUc17iUA%4-h%-o_dKuEhKU*pJ3}qh zT4_tW=dpS2v6AK_=X_^khxYNurODByz9T;0>zbupLg9Bf{bvm)S4(>b%^&fM7kvD! zaDNaI#t90&9vHbEMzqqQT5Z^5C8O80{6w9uI_{W+KBm&I+&|;l=*wlJl;>4C+K!ge zi}=)CQjY)ppX)#8;KAJ!7j~9ge^{tMc=>!4u#~#=|F28>Pv07x?Z(-`&EQGRa&B*q&SVvMNpLBfjT!5~$(| zMe%wYdP+iKD3a#J0Q^FLSj)_p76z2{%=Zcz`uHRQC=ZLAv+4c#ZZ2-F%=cqWX@HF! zavRKlrKDr2nXrvJcXWAj1hNqy@@x~v6c6W!m-289AfOYC*yll*D5|+uY>01}N8a!( z+u8zMlG{$KjU3##tEGA&>v7C>@lo!&#Yp$iitW&N*)oCcy}-baWWY7~~BT zI15!K`g{l~pC?Fg$M*5|<;UNe$7&27d#+Q#k^Qy>2UKI$B-vLnW3WaagcSA$E@2C{ zv(vt1KIS_gBDRT5$2Yc-R>ITx5U4&(ZW#e>L5P!4$X<+0)@aZ6 z`AixJ&!O@rqnt?E(B9DB?^|*7=ewD8)Y19T?}!xtciD8&SH-hBo|e|uFLQqt-u8Zf zXVc`U^Q&j&i=Uo(58tvrZ#3mwzr^huGw9}AVhW|8k1&SlN76b}XkgfM098-)+r^AY zG1H^zXiE4x_n03ZZWgm}97daz_o?(9%-^0Z3kxgvEd7|WCF@viTB#c2GGqu}ui$RL zdn?zbKlk5g?yR=o=DmY`U_Am&?hqJ@1;7IZWWfL;%;B3U(XY_j;pnwMBWkth0k^ohjRiEvmMBNHqW)*MRi=E*tbnqP=4Mv1!BDm1?#z=n(oI% zIb!Qp7C6bgei$Qqo)1}bWIJPquuZox-M43VCC}k|h6Fe|`MprK)gV2@4CGGX`jna| zmD=(Lgq`|Q2Dq+4t@Rb6d6`$(Q6g*F*l)Fwh8Rf(25b~bw|LOAF z3h&Pu$r=Ny$5pCT(4Wri^4NXgkoa)w{)am&j~GMl+na9G9x9U>s~C!RZggW8{x(_u z^sFFiDNZ%FVBztvt@l52ybQ{xq4hNE2MWWr9?(#40H$PwcUJ9;?1E!~N?1x9VS? zAh))~fqkLAhrrck<_7t;tge#ZTecoy zyVEpY?C4Zwv~i>oSc=THHMvN(3gFCo$k^A$zCcEm_RNaB1uTQflN`0KKp9f8nSo7^{BB;fpy#;$C$N}(IMxOL}@pJ>09=>nl72O)xL_Oqa%IW z1|Z>9elh6Z^CMb>6#tI_$C%fTWw^ot4IvT&Fb*Q&8}Oj_3*yCoB(}*ec`btN&oONQ ze2pHM%X=*`Q7372PnoUZg2CA7JSEX)rnkk50a};>50;dL zo{VU>AM_eT1l6rLbJc=N(!S9}G)nH8`vTxpVEVAa=IY-#GC(Q&5@$CM%fvbto@pEH zJb)UaS0tF3%nkhIIBVZTg=)b?mfL&kS|Zd5`VE$)HEv*TI=eTo#4TEA`6wTvj{|h` zdtlHIIOC=?Ayxft$~O?1WmmDFF`HF&WkXjLRXz~*hv%JD5GWpLdE@ktNaKlI|DP&B zTph;=PzcE#z8e^QIQQP7OV*y#Dbxv<<;YJZZCzSNDAC)B(yyv673)v4UjK|)T$2r) zUk@LPmU8rZMngQoGn^5?(Y_DifLeG$rwl-u>$}H0225K6P4uvs?)F`T?$fZY_TJ)v zSHbeGo%Jz>4YC;>kyK=`_Iz7=rp}MXcEZzgcTXMq#S2*b72pe~2z>kk3Xb1iZ=(Z% zd_Lrr{Ub*=d#MGr4yVxN6;I3SoTr`g;?;i7O{#nCDyn@IX6`6~fGU0u1SwNKWbq!4 zj0G$>V&KdBr973LAcIBoA;UYl%^>Y00}9~lUA{Pu_&c7kCWuB902Hhn!?s&^!8 z)B%X7=SVp4GHj_h9s~uFbpCh-rb$gsbF|62x@`PN{oDEaYSU|sF)iGR208?Hx+x2?CC^Oa~GV3Ydh@22UY? zd-SlA-DEq~`{*)s#Du}Ac;yMU%l-JXVQ}lQdX*MyFLLklrH6!#Pq)sYHEk7BJ336M-8x;!6Z^%jGKXWnQ5g2mcg|U@X)-}@ zrstDZ2BW9a5lb@aecc7e?!7$fX%%r)wX&j?RNQ3N*t&j(>CY`HOYlR8|Zb?+KX!}fuI<>DjGU^S+xQ7gq!R*pnpllRzF=TxMp27IaFC!``3a`Ut-0u?kF zKrQ?JU_Ec#rs{-e=P}?MM99e+@V+ZlSwFT;F64>)yKjGRaoR1C%zRcA;AiGgp;e7G z0(l8aqNLuMfzTB+J7lTwwKZ?c>}3z~9$mDZQu0gf;?B`Z@7`<>D-OZhaGZlMHUfkW zhv+Fj%0TmTb96SYF~5S8T#~q zSde>rx^Ud+J0h00SYQ3V%}#NyG6KiT=AVyQpKcki{R|WRkwl-R%UWM9l0}uJPF$FI zlmL6clgDd%ALc_O_z)4`RNq$9V&@4)Tar$>;luA7D9|O{N}%Bma!xhbQKs%_576y) zkB5bAz@RHUXlvWsMxRn?2ViU?ugZ;ZtlBE9b7iAp+^NiF`P;>Fxi)^QrC+GaFLNst z!;TC_Z%#PE4*MIFc(o;RS{yPq=~+K*H{T2O)=2 zWIOjT;iUISdTW_32`e7bsXi%7+TKb69c}N$weXGiJBbf1%fwE0d7U~F%yJr39G(4i zqsXK*33?BEjR2Uyc*3@9i>YsxRh-E8+@cQG+i5q<)YxZ$8=%Eq>AkpyJ=N#s&QZmR zc4Pv-ujcga|86b!N3FTdBm?t-bCg?xfuL{S`-R!Vi2y8^NwcRM+WO($>#0inm>j*S z*hdzux2lY~rmB~>yF-c}e4Y=G7&sW1&|bN8zvMY>ATH|8)O2(li}J^eJlfMT;OF`* zro~DtY8+v;OmP0T0%UOO;8aj02Q&zMLtw2zCP1S)OrN3|J?M~TV&||uuvCl$qqTId zKI`_K}?X(@NtIgD|cH(KpvLP#Sda2DwM$cAMt!CsOaU5&G(uG>3 zS{85E6#OMO^s#rYVNP~aM}SU299W1|3hcZu zHyWCCcan+&SA%s0tl*)RV4HvQ24H*P!Al(RIXN@EIjGbbx~>xX43J@_8-b)Yg+_~d z$D&W|ZmArMju9h%_n33=@H(It8~9K4PizH@BW=ZM8^&I7_@=^o1hC_)yq9KGhcQYk zN^*d|VB_kW@lI`EmW&WZn>92gdfqt38>H*lPkN6BG|il@Pj1c(0!z^*y6GswXA7P% zlN3~H0HfRYajwSha~Jlt-HNzdxNu2r!A1ejGO@E9Bh9+ILOhk4ux>K zrkR8O?M@`O?Vq$0@|MAf>>3sOD0-QeQLG>0+7i0Gs8gc$&Y0HVZxc%c+pU{^8v(a# z4^*#wY_apLKe@HVI}CEd{bKAefR+Q}^h7q8^Y|l%Xhty34FM|QYw_Slod(vJNIDh_ zb=1J(xf!`fXD}%@I%L6f&|oS% zDuZ-5B5p*}4H2kePu_g1Tw~=TjdEU#!KhMZhIrqTJluyex z50QTx!CryEd>2sy+XX76p*oVR8xB*_<|dgzG-#qZ=$Ce1r6?8Bp0=7FVZt)a;9Sr* z+QR@&&ha6qRuPPp_4)LoTJ%FbHH zea&l!Hys(>{>FzmgK<;)kjB4^eD>xE6fFM_oiGs2(&iRNc~bxruw+%~a%WcjPCAYw zWic1nnu)FpObRbGK0+;AOcORnXboJi%D`=aPV4-Rv{Jq${c_3}+BW&5tcMLMK|+x3UPgT-fnKj;(gL!W2# zk@lFKj}}&bm+Zz=%g@j^)~Bq#3(*ee?2L=%mc_6rP2YZBQCmMte&ZM3uU=bkhqV|R zpxucs3^kwJ+E4H_Zd2Pb;KjhdeLi^C>a4&5rNHa&AJ!#qFXL5`x!v4D1AV zi!2c*3d~NBg(rS2$&x$s1q;@be!cV&s06(IW1z`r)3hizq&nH>)YWa}w;atJVzpa>V!ta(o&;(Z5gzzEmNl+(RAZ)^xjvU#3 z3;&;Oc>lH`{AU})wjc&_3h>s>A4bX_KGO=-tu z!I!t#iX}J4f!J6_KT;%8wG0{^cd4;F8t*6jD**9PR;4cQM!u> z4IDA*v_J%1S9&?a=I_HL`FN6{p5FWM8`}Dd6&>juJ_LRP254BVfx3#2IB#TjANL{r zDmIA+#_Jyx5aJe90D?Bt^A)%DaLPx)#N3cK+^Ig=Ia$289h6*K_nC}I6>KBxCeFW0 zzc_M@iA~?sIq{1RIhyOD@3%oAN)v_}Ior`~_As%dLr>X{18SCSFTAQxn`|K?)W%Ey z2+`Y!SaJ|g#1X81*(C)UDc&=fj6`YCVn|>b^DIzbK0{e>tK@cQ{U7ar|rituW-7QEU_XBvZnp?BVzCOL&P5#S=PF%OMg|I4LXodl8{n zea+M@>^G2wqZy(s6>c(?mX2*`rlfkw;-aAY``G7@cYZ!==wTN2n45hq{fdr>tz6vSmVEjJ5$qaHBQWev1}92F=QK$72D zovK}NmoeYR+#JlEcu!MAbZrm*p0x#q*+(P#3r%fVfA<dm;p4Yn>j2GLJR8 zNnrt3iny+`-B+}$*d{4ae{H8DubbKQsgWp~tXu1kb9u-8ZRIKMd%)CqZ%xJFdy8j& ziA90g{tn;CO~SR_AE7!OBmn{Qx$iRYr-KOx!Q7teFTJaLQ@k5M(Sa-pKX`zigG#(@_5NZ;h5w20b zRe&pm2M;01@xCAqn)%bQ37wK-9jB|ob6oNjcVB#sMy9Vz0|_Ke^XL1jYo|lSNe_|x zr`x}Oz%5v4`VK$7#t!GH$Z#JK7Dutc>zsp}6MV?etja;vm^Ql@;HH(?tW5WRQS zuD36R=LZGMnrOlYG2ImL-&R6A*`UOa3l%WNy&YEb1-x3G9IuDcDAW~)ko(3t%msH_ z&`^>LTzo^=Op__n_W>cq5ulyYJqY-D{Gt_tIn3r^eNio}MDR%qZ2VsG`3A+Gcy0H5 zz5W~h`uARgvv3dV?}ulA--$5|;K@zXpnQnlW`)iT58m&iHk{ezkd^4^^1|4snl#B= z#-GOs-J{W0pE=n+Jry2vyJ&m51bz<(7>4)iq0fQqG=Z9=3(A}bd5Bt}C9i4D9f+E` z=KVAZ=y0IhiF#-CdOx_39jhY&{PRaOqNY|Z`rKYAtUaC)RlzCIqK9*HDfd9eFFb=7 ztl%hA`UjL@yHJ=DOLqdF*F7&^nw8_$YU^{&duO$5wGp3Ms-Fyhkmv<7ogh@q=C}NH9|JB=3BfNv~?yQ3d_Jj(L;KGNDJOM?_ z;xAH;mXQDMB@Lv4_)7#Q&>i4Icp~>0y0pFr=KIi2jes}PmbQSyHeYFHB2vr{AUbpew!a6O?kV1-SW8A@VWRh7c z0Ju*DnOxju?hAO(Is~wwTj8z(O;r4jwq&#LVibYob%X^=+2BJYeM3#}j&_LG1L5B6 zu$p#*f-}Zrn0^TdBXZchjyUeG37CtjBTy^x8^QP{98VrWwgC0hwLqsb1C-sb7Pq|F zN;J>vngTQ>UnkVYeD(R;f*H?K6{EB8GhnR{aB`Fi9&gcKL$Y3TD>~wsp}`m3WtH{- zmbAf>wD6>JAF2Hn6rj|%u$QMk88!9jthISgAocXQ>c$@Zz15n$7udk?Z*eR;ZmOA@ z(S1H7kZ=#P8?byi`%<`u66_|4KsAvF*RCOBm_b?5)0ytQ7_ID?qVp|SaU}Us^XwAx zNAGQS#vgFg`(nGC;furYAQ(rV&N2WB8#&}M@rj&ll2LWZR4xI2u&>)q^DQg>xw4Ya|`h&MwaCu5gfq* z&>4urc3rqUE_<$!b)B1|JmE!GupEJXpeQE2x>2{|fDWOlua_9ZO6~YaIv#5tRepgK z+gHCpdx|rhpHTt!ohrph>Uy>Q3c&wo`OkaCbRZiwqe0Mz=U44iPkbYOA@% zWJl?d&v~XsnHyThQh(jP5_j}SVXt7j6baM}1QbrqCLig|fBmocE80gl>V@uKIy*VzdDc_NlQ&xHE|qw(FcJj7h}>tR{b+w~;?-YFhRyWaX|QGW746tdQy53wHy!%>%# z0w**@Wd06ou!-w)6Px2MHOu||aSe@OWs{SZGo@f1DcFTwhk!@ma~-##Q<~RD zX_&~YM^#f}5;+*OCd2zoYtqk8D|7B7uKUnP3oOHQKJ)V>McMA{YZ+S;vy$;)%2-k0 zaEB$GvcJEipRO2i;VU7CK&?SA&M15Xm1ROBB>{eIMtP+V3m$&P&k9ZcoY0>U`D8VY z(MLu08EMh^5FCt=wUjO~GmC8C{9}aQ-vNE0SHQB9Wn;U^K6mooRfjzC!4!i03vw_u z8754iKEX)B#XG`cOE@0fdb7Y{>@{G3?%PsROT+I7G3pm=PrlnJ(e>&~cs#PyT3@fP z4rsd6)W8%Msun@s1f96EmZ?jgn*IiY3f?h^fHkLR7~udX0C&3*IK1d6`kvLese3 zahQD?9mx#aFvKWMn3-H}m)wA`PuF>GK zi2ew(*WEd>8h<`57Qehj`CQKd`^6Kh0s`3qNIy+(2^c%Rw;*CcN(^2LtlPvN02G|= zt(x!ST%Nf4sP0&cXTELA+qXc>+@RyrmxRfU+EbSp>!}8U-p^w!UQZaDM)ZtCgC>6i zzX}r8E)Q;z*(qiK5#Hv2GYhBT@0$y}0c*-489^*Gb8R7+6JBLevota_^a_~ko;6FG z^B&V5N-VfmltAP`zv@FJd;oW!j`!m&3OYtM$!A*%y`yF>wAe@7LR>>4)h65W{XV*m zi&VKT4m#)kDb-QP35iP$e?Oaf;}>o*k|(!772@uvBv63s99b}_X9L!zhbL^iI~PaH-})25RB+bS1I2gRawjNKF1u+(vatn$`=d$Vp4AE||76;>apka8o*V z*6}{Uo8W2Mn-0@L^nFPz%%RDRxR1XiS&S#zKuw>1-9#86dXMK1l_0y)EDm0jT$(l!uFWUEb?@~>{xEr z#I!s2WrtoYcJ6(QTT{_*<4Kz)ppec*_VVQ8s#|Ukb573{K3~)FN_Cje=O}p+S7@VXD6RwX(ht5mNTo=28IN;L(eRRFJDF-`n{R99bPO!TEaK(t_mEDZ ztl#=^Sm9;U`qY=+m1cG?zK3ARnsQW-q&DBygb)i0UT#K9XCs3*{w{W|JV&Jsm#x0? z|M552+Ir~k@@C$1nX3Pbxi=4LDr?_G>2?+c2L=HlDgr7)S_M%+;?RhI7*PQQAu1vS zgtQ`q5VBPSWL6MpnW8eO5F(HeWk_UJkr{#nAtbcSkpv-ZNU}Z4uj-uo>i)h{x9Z$e zzq)^DDI{y}z4lt~@Vw9atRX*h&X^Fu2`fv08_k1*`8YMu@dSCVKk=hJG@iLbgo$N& zg%BOa@IS_peHCeV<{s&$j3Mxn(@*tK(FRnDo4i(CZ%T{rBk2*^+sAY_yOU*^l2@xN z60Kj3vLbQtAq`{=YJ>m^02>Q{xu%es($t%x4bvaqW~q}p)v;A$? z*$b(z@w0T5pkPxmJAn9S^_y9L8fIfNVWhvcwV)i-m#k#K`Q8Vxy&rK6m@;kHt3bLP zu6jK_v_VE=qP#ci#Z?>6;0rDguXWD7Jry9ehr_OG9US7Hyy{BTfNekNq|`gl+Chcy zht%Iygz4FyR_w`$pK_$Xe?PM-TTk5+b?ls;xvtBdA2muu29Y{`MfohWUnF zy_-kzstcW-!N10fVEqPFap-}39#zSzr1ZqH(4rpTrzImIbQH|y|CF{=$;*9s4K$7Qn!LmGs|t06*tSQ zDIsG`&L0BZ{3oY+XV;Uc{Qrm-CteM{j~FSSyx`O-LB22EK1`jF-5L6 zCR+?&)$Xcw^;4mgBvi0JwHzt&ZPHpVOm9HTPYtaRjYSzNs=?-s>YiGc#d!?jI_z3MSHa~`RNf7p{YC~qe@02;^kB0uGJ6}zo=vo(#YBu$kC zfoMJO$D*dMnsa*ci%9SOe1XU3-rka&1bRW)==5CWj(b`MuO!;I+}X6N%jT(ry4U%& zvt@r4sng=+QxhDOvUWtuIg1Lxtv(KrSdtneSW+WQOtcnP_+WelbL!EW1ueSlZ?Ncsex((e5Gy!f4|0l8^_3*xU=S)98A$^XV54eA|4c`uJ9j*?b}EPajAa0tv3X z)YglHJP7xk0+>!Kd#bS_?S_+On}SwGpMKk+p zxue5U9rkY#Y^+tuEuL^!>oT+&hzhx4*Yd@Xuewe5rrKf$#?_}zr$@!y$$-XN}KQIOr5FwVlONbUxH;K4Y%vWV#vdF zMl*zJ|Bfiwqw!~!`MMi>h!qGG0%?UB#=kuQbn5*x1VZBb4@2aehU8?=D3%8Bl&u|B zi)c)P?TV%>e+wfh`sQrv^^>Z3z6c37xIJ)`GHIz!&l$6~KQ#$=#kzR+7#w*6M6s)(5G!3bb05sJxZ~LyQ%H*81@_~XH zsBmG-iEj4jTa>yI9h+hJ$>k1>7VHvSJ`IskQVo!G?Vf?Z{gk_m<$x5^X+su$WA{vj=h}SR{LO+8Rs8()&D?_~Gd5NF zC9e#{<9=sr4qbieXg_=O>?pAWnX2mQ3o8n)#F%4-dvS|@wnqYRzDjx>;2*M0tUNR6 zB6usFqz2Y%)-ah{Hu@CAyBpw4D)Ev~nVe94g)hOWg(NQ2n?>c`d50*1lPKbTlN`!7WRt%2t4N zlA|v(&?f_M3=K_<99~Bd3NyG1`rp3SV;=$dr{fOqf|!Krpb5@7_8A!a8MV9govk}e zaHhYZN1S78cfCknZ*=(V(yru5nei9hG>sLNX%1fN%B=jgtv$_^&aC>;B3k%W-MR?m zkk&f;g6OHg2S9tMhg#c3fqhN5d#qKe{P5@m;vp{{y~on@3(=C*O)m$r(XGj-_M^Cm zDy2gl8MVF2&uqAM=T&d6H5ZCpCrpSq2;zL)8z{4PB9DA^4-llb!KnMZqcYuAzdW(CyxNUk_W4o#0Jk%)X4M zu-b5-V1kYnLbaWhPtT(B{QjO=`p`(Pv=2^k@qVADdL+MDnP8d5n`3 zN8_%L56k8I`SPrz3oFPcK>c4}gf1V11CI5frWp>+q@|!tK4ybeZiufFauK-d7)VH9 zG$_Uo9q57x5WKr7fiExd!?|NN5?2WK^YJ}_C^h0)krxK3&Z!x;lDuZ`jYAbp=D z=-&K7xNnnl8v`+^h^XI~fNEq7cFM(XSUsn``Da%u5x7#d5yKA9F z2Cd)NiQQ~=KL2!vLqKQ`4yA8%tFRM)oBjHGtLe?s=B<149CkD-oh)ru-*x`aBgz|< zF7J7LR|zyB{!ab{G@j|bU1RRrO_&RJuWLWwMYl80#+>ao(Fma$%TCmZ*BF*e6Q;*( z48Ko*7ko>W&%8L2ti}tDJ%9W9IjJS`l`OnLZiZHqIM6!MK@b#Mc=-tn-)rrKQ@tp@ zYlrkR>oS_BQz&`KJ`BB)Obp;qq?;^f50 zK6E;m-OPTM_G-}Nc3&%m+wWsCdB(4{$i@X!AFfsR&F8aQ3mc?|g@C69po4{4L`_6a zK$CWcR2>l(MCZa}zCwPUH-hT1AW$bb_VfZOziLpvp3M%`N(iJ*ZushxJP~R|GYgNn zl#|zQ|MjsFi~sd8 zz>xqS1Ej>Ze^m)j7i+y~ye(_QqQ7;Il_JUUlX)vI=O?P_sU7wnVh!OwLkT4JU+PC! zs4*;|1L{j|BS`J)FzO(30X_KinXN>O=rALOcoXx`kfsraTH_n{8aH647e%9ZIZCX) zYJXx}n9k7FTN<+h{$&SOv>GP>7=g8?WFJ_0BO}(Jke>0XC(F~jE5K>coXAwUVwq|tyEgaAxOzxrW}l>GF-epQP_aAEUc>|mh5qAU82$#rVyWZ$ICaAyrv&HDSNoI02v z4Ez8smH?7|nd~VfyeR@feReDAKVI%I9lIz(vwq6a6|Vr7@azkCtc)CYcNQD)H!uFr zF-@rp=|4~-xUoXO09E;)gt;=jxn;Thj{bOYn#`A+Tg~k`E8T_7b*5?1$4zX z-HTo+Io9xEnckeAs})1(>mApL8kTlOp2wQEbuWsPeeJCp&GUwm+%y=kF@IxWb7#ci zCXXsH<38XnMM=+7N1c&1Ao5>1En|2$}tqd%qpQ z^~wyTzzhD@FE6Hm2*edUxt#O}`1=B>jk!toyxLJ>6N2F**?d+!NfX8>Mp{xTP@kO%sUGhk+Mm~V>EGS>79VhB)4DCPTr zU%24vqhW_;;BP{xAglHIDVP5TKzxq>-w={owrC5Ng2f^uhQQHa;u5+s!}$j=nxxHm zuEI3N2NeNnp?HHs>HG-`FWnen*VOwy^~8saM-yXzsuzI$xSG;+(bk{ziHv992lwuv z&ih&^?|pEEBr= z5Vs;-s)QNo6NCwm^V_Fuhq}48aed4@CGCJ4Sa66 zFlJ7$Z|QJYU3xm_(h@EPea+Rh^c~*MpX2HZC1dzoW?;i$nO5_Al+*^|fD2{WL(k@w zBkH^TSa%N0ySB?5BO1c~TznD+@E`zd!1dOwT1iQ{ZZS_%fst`h+Ud0ntn zr3y*%7*<4fvIO>kk*Zrr2QT>=80fFB1NM3Xif~PCY{<1h9LH6hZ}4$z?B{2u@AJ>v z-j_4@?eNL1eM|D4*1fM5$jFMHa?3u3*UFxQomU9Kh8tY98~v7JTbkE-kLi?sxOd^Z zMb@L!SiM6QJ#!AOS=;}uJMQ;CzUGHs+em)dOv0EU0i@MXEz=SOqruy@>tziWbdY+@ z`W~9NIgdm)CnXpPLvayeGrtG>rGJ&f(fFG@(MTYi6#kb84nQ_9>O`EgRB`GVuuHi1 zrc~8W42`$NK0UGTn;$OqhoMWk+wD+kOQcQr=$Ul1#U-5=!Eu8=*-WP^R!WW={ypsd z^>5Nn;1|L%S8z#O;ThJKFe`Yy#B_qWrPp%X7iq9iwPB5*`Xb*Iw|2s#o~b3ANxa=^ zYt=KeBSW{!mAV06r{VTIKmPM1blZ`YniPc-9wWd9bB7BfuL#k#tR$`Nu-$N`@4%of zx0bt(<;PVEQLKC8WA@~Q-w6bz7~*`fi}sL882#OKAg}!5_x#^&{&^hbD^v9@_Bvsr z^Z9Gaz=_Jxg21zlJ-G@en=&u8xz8QS9;{-fbsv`kjFZ<6pyz-YnU-D?T6!V65r_DU z1Dl8ekJQeZ3n6b|iLRoQp~WKV+}0O`lO2c;892;;i0NPP^Gn>1)?o6{Kfr=Ph>#Gh z9{A7#lC*h56)`x@2YcKka1;aLisAc!mBDHzE4YMUM$((IokvU`&}7#K8l1FLV5$TU zQ~7$)2GvKsyr4oC---;qxOqR1Qw+A@ZJG1=QbrGtZujNJyuReZ*afuFChVNgi}c>- z(r!uLPdV*>BBtikI$ls1-}}I>Lz_yXE@hISG79^!oam;1dn0RQ9J`B@gqJUR2nA z_$O=7=F=_un4X?r$>1PE3OaxajyPB;$^D=IAsK@SJ_}~1f?L)s-L!CuChUvf>;N+) z$3l`$sy9C%Ef3K@Q%>tmxBI(All&0b77{zEKY;x$#7R7=W_Y7yw40u^!DrUmB11JQ z(9Yb@R$OaqyJt4Yt^cnFlQzdT-bxuyMM!p4q1s}XSYVmIK*J+A*l5Z*-sNM``*!&cmq%8b=s`$Z$qAQu!z@P{N zf~CrZ;dUK`39jjE*vTKaCm4=>uaNu3&SQ$w&2h-u z6p0a3dz!SxJ!EQFw+1Q*DX*LISk=%Tf$U8L{Uve2nKP`5D{?18!}EK;mHV9KQ97|Y=g;iOKW)9j_s2);Fc*Q&RMD(St`*x6XNoS1$my$eGj+mrsmJQ` z6ye=uK`>wOi#cd57?WIpakU)lr1|y-PFnIcWx}YcSMGRqr!u002vv)$%rU3f*2!m9 zIr#eV?@;;Pms5!1(uQGc?TvnUnPEEz=3L6RG=6f3b-v}Z`wqhsCI@%o-eaXFj!TYc zkxQNHP*O835E74uF%Qm99t3?q+hot6@lT`;zxKQ+{iodi-gNeEXg`QTJV6vvqriH3 zl{Llz|K)v?%@{+Z9%tcZ0LDKebztT^F{{D$hFd_vWD>*Qr^s1_#24}u5fFl_K|c;# z|NB78Cbv)*#Vp~$J5X3Fic43PE(hVwH55%zruOT$4k6&0qoFJ;X818mcoWl@1nEjVC)oowc*DVT0;ay>Z0*(UYNyZG?mcb)!>V5=xSTntI5`=+i;{Tc#eb7# z<-c8LSpy4?P2ea__eu^+{bbLi4$IueQ7cF)AyfRI!pq6Un|;y{dErnlFqYR`0E=eN z&}7$zf=th>?^TtNe+7W8YX-W0^`@~PUh@YE?OZVB_?ZDC5XXty>#@I2vT-VwCSNj( zs!lSuhm1A5q~!zVXyhNC(^0;i)ywdOFu}z)0b^5nt{}v`cFF7h+(KzZuOD?9VxVBd zw#UU&kkF=mpt9xYW{q*6=N93VjDq%cwW{Ozr^I;@N~wPm}d z>wx1wKyO!U6=KDM!k(4C@hKR7dYxOa;~8cDYeJ-)hf&5a$(KrIk80&U4@o%px>5UM z$7j=ko`s@w5%7&~{xfc-6Mh)?oG7i+Ih!{-sh_XD@|pJJ+)Za}py+Up7*k4J3G3Bz z6{P6ru-krn0agrT`ABuhh!CQMK(&m$9ENr~7m_WrzEwp)Ssr z^qmj>=~ELihOKM4oa4Oahd_<-HhhzZiA5<89q~G#c1%#kt5oJcs2T~$ttq>cB5*lT z?m24AajMC?bYUv=@Rvl1ZI8jsl_=g}pV*;K?6L}W1^MRtOnYMve$c#XFp#YRyNAz;kHaX8gi>zFRIQJ)jr zLObv|oO!C7TFCG&5INtM?jO1Kro1w3h&>=PH7watRl%raBp-VAE=vEQZe+t_yLBJR ztPTA0ikf%qE8CZ>c5>UJ0Nfaey;em}4QVoEAmsIg%0+d zIGrCxSa)=P2~HPu9`8(Bt?^_t?e*Jt>$pSQ_X4y_2M~7O)=9J;C2s)!US9fJ{#3!$ zQ`~_AT1s7hftZ6ir&xZm&>y7+xSh$jeAUfP(^Tu#tW$4a`dE?vkHolhFur=6r*8+R z6z=*spB%mCERmU8HZ!r_lm}lvx4w5d5OJ)N`oPy(k z^!8j*eColZ*l1aJ5|X;{GIOi5ETZLy_0qLIe!6t41E@{-{wj7&uMj5vlyi~i9VW5= zcfavF2M1zm(K4MZ7#abT9cs_QPr0qwkAN99bEJa~eUXS?W;%A>&OUtsY#u|)gWr0L z2h97mlMrQcWLrbn-=5b_{h*&z8&jiBF^~<^RZvGhk1X9V0ZC(UAFZWoz+vhJNE|_3 z_|pX7(-l{vaeV?SrJ5(ku9i7B`nGb}ua}wu$3A*-YrAy2yTVVo=XUiNczf4Rxy4OM z@Ud!501Kppg9VP~|CF26x!vPb;gffmD)$oZQ-gzLQ4Ay|8=`?zsvB6z{6t$x(; zN$R${zS1_5GCU*a4ilQdPN+VrJQi(IKXsm+2EYjB zVWFR_$Kym?GgBpp&7PoSoXyaSF|4*94nKyp+p+!WYM5?5^SrDCx{B+M7LUWedUa$@ z1P>F<)P>y-6;yYYpwq_eMb;1IZJy66ln!%MCpLe9)9aR=COGJkPxJ^pdJMa#&5BJq z#1t2sR2P3@iBWf4H4bYnBYBRe?1P7~ah9gSg*wc`43m+js407vFgl5DxC#00tJY5`=rLZ& zp3{ig&{8m^Do$GenTeBJ0oErNGn~OHQ@l^F@dwyW5*#jKGzX;xkQJr6@NayoqSR63 zUsLqjpV5t`R_ni=Rwr`Wx$XQVu{YCBivJdRXld9b7-QQVTEDgYTS>*Dzs*G*5n5s`65 z_=gp`$a~SMsCmQUb?R9P@Aea|C?A(gxL8*lfT!F~{Z1U>lsmJ^|LL9oR^>Dc@{gx* zjAWHmP4)~#(8DNLpOi0gA^Hoe0ZRWHaieHiJ#K@g(LVX9_GKZi?@4QN1`#zl(<9l(nUx6Nq79gq8V0+BIN9S^ai?*SOrWyJlg#keN}xN*eMfP5g=$Bgg@dYQgBV_wKMQ`l%R1K2OBAXU}42-_IKu5)A#1w z0n-t3^TTarB7}lT!thqXaeVAU7e+K2tAL5%mAc{ms<8!elHW?UQ2ud!kocXj+vOxh z&Gx*D{cKNM(D=I--;t41J9(@5hw^e;PdFqDzRRyk&mljSrS*+^Nmca4zA#;K8LB-9 z-erIDuzSoEK021QX|6pwjkLLQ-rm<<_?;YV8jTo*tZJH-^mbir zy5%rx@6#0&8u&+{dUa>^LEB5o_9km=0;~#B%I3Oc*paH?Lg_|DL}9-y)7Z_U9s)`o z)i~kt`k`&Tn=kd<#zdkjPDBoC>Rn)a(4uNh{IFPIbK>n5*FmcreuC-7Zw+TJ$$RgJ z{`}>xGYw#8tl=rl(jfvz@u!^1ngBoy-N$-Oh9PU|CRHRUorgo#GPi-oG`0VD$0dPS z@I8ztuxQ%fWZbEL+WHS-@im z9YtWAzds$$R$P>!rD`bjci@C{wYZysHsEdW`wZOJDD%gn6X5crV6)HnF}!@1w+$HDUh7G(d49jdvNOg-(dCN_a{r(?s55tq8geP%Jmbgd=-UCPc zl>6*yvUW|AdoM#Jqnh8_ja`IrA7dRwXCDl|>5R>~?~ zKkfFobF^~PhWZxkL&{6b-1gW4(Qu$uao^#IX1)MP6&+A^DRSDDtZN!n7oPt-J=U zueKKj^MSD2mO1Wv&{{?u((E1)1{Lu&SPIRa&sqy6y2dMB6&jeGPgB8OeWc-S3q7}j zl20Uw7~&VQY_O8vKq#gm(v+jvOS~gF4*QBTWF^~$*vL6tbSR_I-ueu^&*He~_)*ch z`r&Yep{aAdY3+5PY4k9I3gMgXtBml|S08asj);!~-Cl5)dx7Lc9?=e@h0EbWz%n!& z$-ii2Vsw3xdt$B|+s>E_g|l`}**BwQVF~nh@TM6Ilj3`{~V{Vv)XoThjYo0Mq=m2p7>N=(98ki+oJH`7-+R{n% z5M3WQDddFgfHq>HoR4-5zbT8VKj~(0!NnSXMItasTMkbX?s#+SlD3b(X`~)7a6#k&lL8yk@0q2%5t$AcUPXRQPXMBIgm{a zr*;3pbg{t68jne8q(O2yXhQ4v9ns1k(bVR#8oGG|_~cCWZ?Ew#=(z1#8${{R(t!N+ z`sdhl=uHz9L)XiB6iaz^*%supuQ&MR=i+yUtQO#Mv6Y0(x)*hTX!>3Y%kTy93b)-1Ww8 z$L#ekb@>|xYOJd63e=aGeWMh{w|WKNBy9ICc&zavZ(DcPNNbDALYQG#-d|^4U9>fR z)thQ^sL`8qsmsTrUC2ttn1VI1F$va1$&|1I8i1cgu4_kb-i8{qQ9#^dX&1S|6w$;) zlBN6!Xt=kX<1Bt4D`0sNIM@atW@z2i9*fbCTJvT&zc(N2pmSqMrXs~e6E|%uD4MCs z3fH%1iq^}dVyE@tH*W^9D`vLp^6@&m-^EZTEz2YK?2k>?p?1vzOOBqL=Fo3AswWqS zHmAh7G@WjnF!Al5Zl4_li|#I%oOD!qp>)#}zi)ben9$$t4pXUklrm{6%xENOr}J4c zL=(Q9BpiEOWLWUnODn}RN~$*e!Ou^f9faq=#{V`6yR6b9QLv; zEoectue{#BwApa5zUUOlWuaOgbE`<@oy3aNl;T~fKrd<}2wnMmF4^Tz1altzRTVOF z+S4YdYfah#&lRbcUTxd7N?G=j)L3e_YC2G&S8H+hxCN%%`Tg7LQRltC#a=*E;fp(C zFMM5*U$PQTK%P zbs6`VF@_!oQjChG?%dOW{u+N#vNvA&MKNQF_4!jkwoSn4)3-Q+!TuWn|9ALb z*7?878=MS9Jx9*dqIYgEdvs)pe;3oLimbWFXUW6*h{Aah_Mz01Z@;R}U8_`$&ghjqS43~meH+?<)`%KRr_wz4niwb-C;{LX-4-dKHsi4QjTyg;F ztdoK)w!VBAjo|ubQ6es~UPXj!f)Y_`q(2%Z!7x-`O1uD5M4S2NNhqj);A{`~cv3UT zh;4Bu!+g?Clv5k1(ye-4#hz$zqp|<)S9!aeddWE;t>54o!a$Pcc`WIPaNq&R2{&td z3$h$_XLM&sV%#@a+}&L)qz@jl+x%hV^oFuRQ-`Y&isWeI9|3aIEUt+Js)angU9ip9^QPfI1~CBU3_0sr>G$4R{@sR*jI#rW9U z+4j<^TEdUp_smTJ8582=s!~?>3}t5qd-l^T+q=ZipOT*}|4=8uTbwGaDRDiuB!H<(S`Z49t5#M|)Q^b2Lsemml+(y_fR&)Hi{TZT7_5mu>s}WlAr&!+thA z?>dH&c8=q2+cjnZu{9|}?M`#Od6ne8R?=>$wh=WO#TvjO?{TX^+VPCJxliCnJPJZ6 zlq?B^hy>^hV}vlB>H*rcqEvCJ#YB{+YGO(CA-%ZE9S~0$j^?2?jgvz{4Snmoe2&dq z{K4_IV&6EmKGcZuY1*EQ^ZaXXWM=6A|WP%U_rW`gV@VRy5 zXmS}^00PG&aHdf5o)fts(71BP(_;js2Bhv()6?RFef1kPs_fhdXG?QNzu2m4-&|{9 z=|c-!DB6XTvv`Hj_4cKMxO-eUh`0i9&zBIRf4%s5uwK9{W5hT9x2vJV`!sDw?zC$~ zI%}T0RBm2mpyN~aT6Ee%V7}*EP}%*VLFxjEqfP3@lpp^UiwljjJTSrvixpV`&C+OD z``Bp|ZEU(HcbWJByj5--!@B{?1KF#2DF~YX!+W-t9!=$QmrkNVL0+Ubk48u)BsK#a zBLe-p`abc&!x#=1Sxa6ZEV8OTAe{iT|1S@B8=|#Oa}6HXs|uD0Z7&uiAG{Kaj%6-S zyXcwPaMMcZ=G5m|8||_@@7Rlj_h0V3hihc~*Q<7hSR?DkM7T()GcRcqLm=S|Gzu3U z(hdhs_la-xJTr~Sovg@+6>=ub#P12CG~2@qh3Z?nxc5;L9E8Io#>Kz5@)u^41IL zDi;;U9U)yv=!6FHzpw`wbpeE34)B;bPNaC3s4w(71}ls5t9_|NY`RVK`-%-X(1Ub6 zHMgRAY0@UYI9O{3vvYbnfun4e-I&}Qlc9aFH}k=rROT)U;aXO*Uq2;$JKzt~UHv>9IxV-2FE=N)a0yWSm7r-aPLgji<2DzQcR-%p&Da^-R^5JeGLc@X` zeO6}v5hX7DA!(f@GjufzL(k_^FFf*0ANo-OXE?Zl0c5Sb1UrGLz}Avs-Dv6NA9dul zbQ}kuaPwTkr7HB?eT}U!Nh}KJ)n^^^S&6;QG`{~@Cu+TTD?wE4Q5T_T_kAP0qGk|Uh6y;Ik zVp%>D81h;J8o8g!!@Vc;Yc!=u(Qu^1n$+c_Wgyy0-e9RW(N~#}So9o5ofLj6DfClG z)nuo>iu)6J-ygx&0&qw!R7asV7Ph~9(ESUQj~aqas+klTl)>hJUS zW8<$+9tz7U^V!V}zb5c^_bn_)& zJm3sacOWT*Sc|<=8abG|$Q~bLN2yJe|x(eM3`YFfo5@_?VUvl|`+QX}mjnF3PU$S&WeF7Y724Hnm zWX=kaQEoy1rS%$3jD%PC1+%fJYrTekMC=_Cpn7+EP=P?3l*d!X514W&<$*gYZN;Z; z+Xu0WRiQp}q23$o+rn%!s=sdgTKw9^Wl|H_H91Xp_L>J7!XZd_1`X?{3w|38qryA= z%O#)#mS^2yzZqF;L-E;NFb=6*>7|w5@q10J1(kp~e6`)PDRbhQFuy<%>g*d)LidE_ z?iBmCrO87>O?Gj*7m=&*FJMIu?B!|X!%w-2U=R@Wqee`lfW=7E+9#vm#%^{cwfDKN zBE;sbh6%zSO`+$7M=gf*`{?H81T`Pat-?^-3}(%j2PoMnc4bPjX^H7;Ivw^ zQu_(rRJsj)X6FbsyJIBk)y{05N)IPKzeWGtt#h4%mQOQbcLFgKb^XO$Sq=t7Ch+d& z_n?Ejy$%cO0j)BpKCw5PP)O=#ts`C(Y4ETOg#MP3BKL?ZyfE_mklM)H zZfJ^GZ(;XrQvG`2vyvjhop7GOr>`N{Nq4phLc@BJJAj=8`IF;W!ZWxCsO$#r4eRb4 zsvixs%_D?ycJOmik{z5*CEn&<;^zxtC{d zqeghA?Qc?1r^a0k z%k~f7(_KHbr>1LrbyIf!W==Dut327yyNfOuE8zwoNmF?dbb3>A7XED$p1xbE<&;(t z+%+_xH1RqXxxh3deZ>ebL0`;=q5CWXhBHt{E=^B@yztWF!g<7u)P|8aMn81l3YQB5 z>M$GU?M-dF)9pl{6&M`loTCfiU7Ve8h=%r;o-4cvXP#lu?{ghHbEa@zH9y24EWDpV z>L)FiRbwvC^aqQTgw*%wm{5!$Td3Vg-c)U7X`G}CL)bJpB&^A7A=<(&kPjddA9PrL zi0hvnb8%P|pCuh?l!+#xA&BD#RJdAdOwaTRs0Qu6n*Mni-xe;parc+u4SVOhOESOU zoHKpeHety_XBW;Dq-6NzUr)i7gSu=F^3a<)y1yR9NS7+7|LgpdN8q5lvS6vw0ZjjX zesEpVfIqMU>ZrTbZjyuJh;iq4qB8&RrY+i%b^Bl%Ui}FWqG_V=GQ(ZkFLj#i4a*IQ zG+B>sXg<@8zTG>Q1gh|i8L5)Km?e9MSR#!$p`9B>9416R0KLCo=Cbw0iL!i*cNl6T zoN1rJw=6a6aRSc?j;?K2(D@L{Z(FbxDa3{87UfQ&!(N8CHUQ|>J0z$b+oc$b_0{UC z0lZM0i6FQznY}RJAaf6PsZXuv1pF|v((=?`R1#ZHuxrGX7<(ET-i4{7K*(Cn5e%#= zpgtgNw-Nz9?C$~+#>ai%+fpG%df=TfzZZ1i+#a7R(ubv3bS$djcSz;S{#s0=;T%u1 zhNqsguTD?GW+g#i_Tf0?APb9lgqSx=2t!20x9|Xv12y-GxFkZoKh7`0M!C#H`VnzL zTY_Rplsr~rHJze&KGQxJx1qmX>A+t;2N>wWXWc{nnG@s(I0jCtT#u|Js5Y^ZaKh8B zQ2%B?E_yEP<}1cBHHljZ9R1^>g&0e1Ql}XsVms|Ei|uc8TaDjkp~1_(;nv@Lc?Bhb zoe~(X``9x7^~Zuqm+U7^l$k*NA9iUL%=uiuUO`}BU)M;sJSND&A;Ij{lW*wY47_)C zW^izs&3I;z4Y@m9S=z2ARcQw+tpNq^P!y~I=5&S7`L2c9Fp85YzA36m5(e{K;V@nF9HXZ!@jm_L_W{yAG7l zfqA})iz5qNAP%MpRgP=M#WUq)ahCE3V0aQ&JP#>s(puSRk^~Oz5+|~6*Fe1ZO3=6M zh7Z0`&tpfZ#!1}{L_mt5L(_jos><`bI%d~(32)UK%uH$;o}(nIpF>8T&g+ znYjn51v*hD$q^vgrYA*_cFBrq0_O&I%^v^T*`y!uaSEh8;C!-@bm+Q3xkr9PaXGAi zNyvU<_{}=%PPO@~sXwgt*(^^k?)<2ZJVDs*zlqu#3H=1|BlwE2-U+FNAB$9nts6mY zZJDd&MuwNzI$nAa92(+nxupl9J#XNI(Am`KeAAA{h8eHkJ)DX0h39~!0J&r>7P<_< zdco5oP`CuFAn?-&Qae*mmP*2a<47&dO5s92_aW-{?-s|O5wV#KTKoC}-SnMA*Om?> zP(r$Vv-OYnfU(wC0h&dtYhB^dj=2_rV#BQoXFJcr*C{vg?t4eE++;u9jP4iqMU#Wf zpgjq@+OkGR%#!0@q?+Bby;LG-EmS)|qrYH;(x7Xs@)^N;p|AKQY{$bTlEJo2oMXk{ z)>`;!62NiQAUi_#FPw zArDWjc3c!j2uco|fktlWm~^vO9l1hPx@q8~EKBMsM878)3CH4o9l*R6KFd816DXio z$%qM*$8DJ+E1cu8L2IP>G4^zIIHjKpM~&*+y)}lZMBHoN0~;sJJU^85A#3%(Vm?(a z%K@2IMvj8440HW&8cs`kM3$#I+;&g08xD4V^NwvGbsNFNk2YWEniF7;cg|~QOtrLX z)ONt>XKOkIfg1SJ<$1aZCZ9KbzTj+Td#Rmg^KrmB5U9CnfBAIUB4)NN?^UBsiT9@i zK{>Ilx|u>*Q#1_@@s&F*+7D`k11U|q#&Q88%bS76}>A@MmOx0%e5A1Q32=r=^aPq+Ld z+pAk@HO#%QwW^zb_{8Y6t51egKIDOaNmk+FCQSFOO1F)!t7H~IbJW=C!(iZCx-1rh z&tAn(YCwO{cZ3%_l?cMVW=l0;U*mvcG^f3`w}YSy7vxxUj@@@V-OgXplqqh(u4?2B zYH^R#sy4K|@_oO`)l;lR7>nib|E=cC^cN>1+ zbg2J%hH31PGVNXC`itv;o%Otpg?I5}X_)IW4|@@L`XyP2JueDwuBE`oW=_JfT)Gk` zrjNP9HTq3&Zg*1sH##m>kk3_4Tigi_**l;=P6`JC*vxm)VlcP&Q=!_U7(9WK4%jN2 z!66oLyj9abE&z?dYftSpAun z)Dj|!Ewz8vLUjqjHD;WCdXv&jNszzTL)^`$7>(Ik?tJ^hvqOR6^{Upl2xzacw52D( zQzin@D(N9$FeISaPFYJ+TfDpjfZh_+Z$wiO5cpCWz>_xvi8Ax1p{=5*D&CAdBW~U* zhu?loD5xkZn)=Hp2vHTzBy8`g-p{MbcatVhh)tQ)?>wAax}nbt*C)FN(`kSYq+21Ls}t=rm?=v zG^K&|0qIq8dBNjgkzylD^)@vU5F@X4mJro|N=I{WnwDmlPT%~&z(K9H(I2&py+@z> zxO{)A)As;q78|;2K&7l3Gw|*{!4*D+Qz+Jzfmr`7I2n0A{8VxYX%(aB>$y#eoI55I zyLxvGp;L_~A2_Ajp)DQN=6je$Bi*X^1N$l&X)W%t|9qV|AiB^$@DVER*J7JVZA#n> zi$-BT&`2!gFVXF&q1oia|A2nb>8^lL-^KGOLCmE~NUS&YK6FKcu~2u<3MaynQ{@sQVg`DT(PtG9S8$z5x29N#Dfc-V5hIJn|gJ+G-Fr9L#2Q*9cW z>Bb#AS!(6GKz9kY=`Wh|X&?2_`NXOA^!3%CeW&K)4<88i2eA3RW53Q(_`mgsmCA*8 zJJ)mNh#>HacnA$Y<|+cnLAwsMQM#Uwx<}qR(kE3NVXYq@LJJERDrBBwVkkW;lof4p z)br)|(vu*U{50~*0mE-k>NsL{*Q8-eg_&R|CU4L;$VKOMKVkX#+uc_aVkw(eKbE;rVK*l3;f=Zu_=jO_1g-u2ip*ERFzCWEVoW98CqCv9BXZ1E;9e69P=OYmOhg6h5Y zwws=K?%s1NfA=fStq6v;eUnp`nVs7vC(PgA;hOJ3!`!N$asyP}b&6yiywD6N89>hk zy#mJawQ7cIZjCf!Xxzl=LqNoG2;T25ER5aJODD(NAgUzeLV_DB=P6OCI<37u!R2;0 zHR<%ZpjlJ~U{+x&R6*XZy-ENIiz}APz{+~&(o`zkfzm*_bN0xdBg=>&QjUZ0YhN7@Ba`kGoWznDyqMqUZI)VulZ_DH?)v>rEHfTH8Bzc2hA_+)C*|I7~SD zDcqDdb62V{Y;QJs-P0wOeV$iFpta-f`eo&n18=@^TzuK4VsYP!zY4rPY}VeD->^&Uw`=xo zlY?K;(OJnyy^tT=^J&#Bo?oyV^4ry3mp>R$T6{f(uYISR|Iyct?(dfL4IEX21|mrq zAvkbFmm1CT0oi&@8(nfd1QHv`N~MQIia>)sbC|0(-sf)61^UnqETJ_p(V%{5D1TC< z#lZ8%k?kQ~uJ5XotPjkNn?bQgH`rqm%uPW2Tmh;#_XkOhC^}2JIg_vYp4)HQ7`o7` z$O#kI3J;TO+oQSVNm0@@BO0uj484cdkYVCezBxf@!sD2)xqSPY3-+(`UzJz)Y!fNG z^Yv7XE@X9m-^n(FUi)eP*-2Y()@R*8%Qm&@GPrE#tEq2OR?$rx(D#ngW|WtfCu+D} z(B5jTw9#5UfPTXM=8|3=I#NqrWSKt#DG>jF!=8n-U;F{lrEV`m(Dk9tG4nXu<#t&v z^~=N?AI8wlWvvqXuS_q|^=Nyh*XNY1^FCpeLQmi3p-YvfEYsl))YE&`bZ4dRNz6wN z>0Dpbh?g~ge)lXVi%L%#X%T11vZW3Z-H-uf{YfD66ky;t0{!w71)bHtTld!o`hl)~ zt{T#6wh((e)3qfiENtNL=1aYS>vg*jmA&qqFO5Ob*IqEcfeC!Aj1pcVz}wN=Q1D4h zONIW?_Bt4qbY+N@Z*N_{q(BWW;7)RMQvih7ZPJt!_7cwyP7iggry2d2V5n~RXcFHh z7EgC^s!z8r|Fd*&fqc8-xJ%;mLLW|4Tprh_@=#D$pn0oV*VvhEbvGuyd**uN_Zy!x zoj)I#ZD#p=Z|jWczi7LA{HyxxnKL$b7%j}qfqc$VOZBypJG-3Yi>EV-CoMf|ipMG# z6-(sLkbw3HGdu>tJ4qLhqRPFRrvJHn1OzmS;+NW%S-+nM`#s#(8d)#i284fwZrlEX zMgX3@p~eiV3l}|s%#idFi^I>{eApQ>c68pQsY>G6<5wt`ewktRAD>dJ4Gx6HKcast zK5KpRuVm}x9}-jAiu3HYd3FQiJ>E6Be?nb1B_CV#l|D+b%q+b4rS-L2)k#6%OFO@H zXWhS+x9+Dc81Bsf_BihP3Eg*xzx&Dx1pdN!Kh^>PdhgC%AZBH}zF7#s977yFh|ekw=JYg+WDjIR!m~#wN&8e_QTGdRRig zV1ag?R6{uQY6Q1MiUO}N1stoA0`EUUf6MA4+VHrm0X!SP<0^5+IpL2b{?Eg6$C*Y< z(V_0*G*`*E1ttJrIPi6HldDTB61(IaJ*TJS&Y>yw#2(cXAT@IPpKuc)TBKl<0+5Ru*lRGQMF zQl;e}0s>M52~r~0qF_?8cI}3Xd%+21t|dq=}kHb(p!QMwh;2W`~1g! zxG(qZ-Ur42hl7&rz4lu3JLhLQXGnJXV^f-C-j&D)IQC;#4;%i#yJy|O6{#6~=UhO= zPPKhj7CalCT&PW_vSaQI719m9iTG2;H$PG5L=mF5pUmfOw^{(9ZQE8ufz7%mDo`C#ETEBq*qioWhpIZQ4kgzxWhfAKnrePaj&IuylQb3iw7SkCe1VC z#nI8aS4xnm7Qp}_yN-WgQPmnhH#yJN#z10!YdlT8I#X^~G3`hRtX2UG-Kjs&AqZL{ zWrmpSmcE?TnZde1o7R@YB6uWHd#Gx=qhk_p2Tlcrwb>klNutV07>*TH+k)h}z|RO( z^|AM3O``+pwzFx8!V<3Vq`(~Q6its<|iQuc(%OI}&ou#%xy&A+B7h>64g zuz;Gz+f61j<29L$7AnQoIS_=XUDq_MHgk5>_Q?8=A-D*FkKT8n{iOAHxIt%1k|3im zk7g!#FuyP^I{HU?BN}wmfqB|UEllgwppuwxgMP zVe=5d6`|z>Z3$G#A6;*Z?yxc05;ml(vOX@cVR=B*KOZ=d7JAGDCGhCs07mkecMG)Aof& z-7G8jPSx^~b<$YHqUUt?{)|RxNNNS=@5hU0C>uxF1X;rt#3oNVbqH}-Th(xw@;eqB zj(pU<6fpyaEiRyIAu^&k^avCc&eAq@sfFap>g{>=)$g@l`!VuMT^r4!L7^1 zC#b52gUa5<|J079Sq#f7M>(BNKiW!*ko%oG%bRQVlLL@mZY2VeXEzo9Otscvvy#%btjeatDW z$Q{1>9%bTzHA(O8+&|a*6xBn4w~M_dJe|7?+JCsaObRr96x1a)iGM`pR8L5BeUOYo zhKAFtf@Roh>XY8Tc#>wZQdj!UzCLS=KVhi~nfXE4tr|UU9F|dGr1?W1#OVyD)IYk3 zH?h(7F;*Hzkjc`dj0$E_#7Hhbco_wGh|zq&v5>}N@C!F$!j|?4R33HtMW9HSJss3A zdGKGsPJ}G6L`+pg8WF4rVmdr&vX)BFPI09iqI_VJQ>OLJH7yweNnMk_F{|SY&Zl!< z!0n*VE&J}Z= zi=Gwai;qh3{W?ot$MZhEaiTi$uEQ?y*eg9FsgdANH@VSW;DdT@3-8QvMD*mE<=#rl z-zXoK-1e!h#s2N@#Kp4&0d86>71K!+oLX0n-~vqMIr!0fbV*#S()K3i^6U!f;(#wx zx7fx*-8#ohS>AJJ+$>|<@C!1_wW%dzcB1?mmmvRN=FumRw*;P~bT}pz84+|nd?)S- zI8+Tv3Z&#b8lG=S0MDf@aq6)tK6}PV+D~HQC<|1vW372W7}@Nmoe7i-PTqz#0+9bZ zCT$r-Rx$Lfqhky=O4=`einZr_`*z^ZbdXkQXL*Y|WMb`*{0Lav2ZKzd{la=dnRHYq zh=7jt(XcTGCy2g7#42c>C6|;nXz1-a7C`J(?w1*Y|rUU2UdM zS=dCa!QZ^5ah7{081{=5-ZDQuH=)~gmUV6qr0wBq&PLW8ipAopTasCdYqJ70j>M0R zRU=~a;N5Tn&~1H{qs?Lq%aQ3KW0P|h#JEyCH3>O>ty94&e*uK{WXw=TIlC3|UuUj6f7kA=KSWFYPY4jqqmY5G3;!YYA($NMqmPfeOB) zkUCM%{^`iZe={oleSScmTNuu6Hct8fiDg|llm^|?3u0X&((}tq9)Ie2!0gZvI7yjJ zpo*PA8w{jTW22Z(1t_r&)q~O5tU|=BCJi5>Ja=Zj6j5yBXqaHZdw zob3nC9mEq%o$6|Tc>*zs39eV=lauNc<`xnPO1`WHU8gj(-2bs`98_-3V zUbuqQ&hiy0%*kI>QJD!#>|#~+NFJNf9iMk0zL(sv$PcU1GdM7sB@Fr{K!;K?=`stv zCQg8qu(^0KKCy2tH6>_YAaDL$1RD_BDt1{Ot?Ng{2r^B;GsDMU!n?GlS+NSlr%{(L zO{~!|CC0FF7?PlBZj5{t?Z)f|XOp192wujn&?yLG{U`@IPyB;+0&Y^l=z2>$Nsa{? zTzEH{F!aN381@J`v?x8fqI3qapHYPtZ!zHtqa*loirB3!YuxP)k6c>E8}ilrqvwpw zwlhFOL%W?BpFQYvqijdYqXSVf8vR0cD9d|Mb5#aaEHIR|= zyL-J&jAkSv%{s3OzN+u&!A!1Y3wmapQp;r~f66~#l_8YJvqeZbOpFVNZ5I+tP=;UV z`RoZ5OqJc#^POKKcAvcB&*bMMOz+E{PE4O>hITRU8BjJB#2JvI>{u-wF)kK= zv6%UD4!`fjwcPPGN8XA7%eGoap#eGOZ4u%xaoS>G3VzDtrnA0wCstEs6;CLKF3xy& zz&9T6pnTgaS4t`M0U|PGB~Utcn--5b>B;}^tAA-_H^`LN=tO<{ydXWyZ+hehdjq3gmvNdH}Fj_ zX*qlD>N3L$d{X+n(COE9|917C{rM~1dCFE~EYsC5U+?srL>pbvEIAIhHL0m@ssQB((+{_aFQ{t2Z`&o;); zRCgRqjrrd4nP<^g^J5YHu&tUz7kA-OJx0Umx_3ZO=;Y6&fOnRbDe|`IcRwi$M(o^5 zN~bb@kL{bNl-0q1`Z9%c7FvYYz;zs4ML)J&ir@xst{IRM-g=iMfNK1PHP|460D*U; zt4$+zw)F`%nPgEhT1*~QUeT~V&7`)%7&f*$B@cZtycyjR(`2NnN;&KoaHIoMWgp)tGiDxAJ}aNYRenzyPR-jI5q&o&6h-kg(vHMQ-=wWO1ZD$}W^ zy=r=GGV-&tu)h$=fxa3uq=n_;Vv7RSVTWvhHMxPmX}c3-?FBXtRbBmmq_O|M0L>ix z{N~G9kcFDfrI=zL>Noa6=UC)9&B(iFS3Hh;O~ z@XI``4Aj}K?BUVfk^u60Q8N;?s-y;wB;@g2lH$p5Yc5f+5|5`9kvPK;y1+}R#ruBX(YJd zQTTSTi8wsjyT~L=X~$8b!cfpE_J=cT9In9(22`mjpc9Ukj8b0)H#RL%e@y)R=(_E; zCh0%5Z_@V)nle&XNqi|C6|d<^1TYN}WREw%B&=gL!Ox7NEGf|gSh6I~jg zC!|)6=BEbxdTbDp)#d#sGNI4W`>eFMQ zoj%1iDLaKM{AEe5BIboR&rDL+Sgbim+_!?o+N40iho9~0uV3jb-5V>Qt1bk0fJasd zz>2m{HH+5foIuM14)YuWYuM#DrX+Gf-o2{0m-9_0{KZ>}Dl5x%f)luub<7*vQ@_^-+a?ty3>55ZquNq#^?(`eummXBQ!1TEKcT6>H z6zr{gXk}Z!bfR2VFujXEn|jNpQ&u>W0^TkcP*)z~W5JH;&or~m;|u-qnc!a-o1jqs zjJAL_rt^39Lb|YgFT;YxVwlE$^C=flX{L1z@q+p84TC;`;g^vIa@J-Vwgu#`ihcBu z{zV)&6p8x}k2NEOldC|v7}NUd@(}9#k!2)Fl)@j%!HjadCQSPdeQz9`ml1I19Feph zugu!u2+g6bfZtfj7~}I21{f4Zh}DbZjF5}yy-BNEfVQ()0|uo)E#wkYleS>nJ-HDf zPSabC-q>}x#3o3P-!0nxHMRNZv#q^8t(}3Q#vVPTr3kb7an)wYn!$v*2_|1c8;-px ztQ-!cP?y`tM}-AZZDL%Srj|w~s*d%U4}dWL;+0#C2!!kLz}x@7JnM1y>>#%MW|){+Mw!P_E*kxDO=XGJUr&7 z%gcF3?r+X?)Q@MVhhulO+3CC&-4ywwI>y`j%DHNt5Q04pQ1dH`4g5RMlwTTY^3FDv1tB00;1AC%S8s%Gz!#6&XXMZ=fJ2LB+5|ne4Fb5`^`h3|o{)B)4%Bc6 zOaQRiIfKfPLE9V5`{R5WgL=!;1#L&UFw;Mjv+an8tE>S`tsuQG=WLWFsv&se2;ok} z9dqoGs-H)$&qdc=MxLkbcTN&x343gkC@u}QtgpLSis5dZvj;z@ej+GbB=rbez5N;| z40^XFt*QO(b0UB*RXdN?y|Z9{^jSg4>@sS-UGzfLmoy#vnLO>Je3UcOhOksowmKH% zM%@v%u57$DlY#Zf<3T_@>g_Ts^Jw~tRRN!?(P>Tg*hX0T==O-!AJZG30e3OYofvLN zac6|&Q|ce^y3(Mm2{4sK6?^HA^WJNo@q05Ij}5v5<%1fiav(%*+S#8dTZ z>mEvk{Yrk4wkTGOPtk?|?wz)T{aCaCeYn-}{LscOn>5%y3Srn*0sh(r#nqg;657&0 zZ^^_u5)%gI&9V10>O`%o)@~P&K3wTla>H00z46kNL{eH3Y*Qjx*8yv)V*+&>JiJ|Q zdXDXSRdZ%!Q>l|~hX_ry1;f(cWY<+x+{VJ@Ah+L!aEssa?)vSU&|vm0j-@zF;yDs=NC z#VjsDoSt;l(%ur|$V0ybzQFq?fT3tj0dn>#oM*0Gb6@Pdy!c?b{C2<*AAfuwm4$rm zVt}}w(r1v?9U;aVp1Z;{ps99(CN~qR*z1O)k(M(|gHpr+GzQ~l0&i=8#ez{TGjSuj zN&;Q|PY1ULOM0kDQRPV2JhjL40r|z(k%=HgFAvU;DM-uw1{VadI}4P#&AW6B>SkYB zp?!HXr7cv44?Tyo2(U8}f zLKZeKX_3wkS{M88ER;D)sr`&_z2X>_`nbalB~)FR=xUEw=>B70nItz`eT(<@I}h{d zE7IeLGDsb(TZ{+n%f)Ul1TO9^Rnf&@10){SPoe!7w0tpg05RYIM3JEk{Zuf4c_BILlOS_MHZzIG~zMQED>*a7MIKOIUa3(5S-R#oobL^kkmqP!?Zb)ZXSEz+0^iB z1RceILpNUh12*pD7!M~bJ&K1t@}x!2;MEYlL)|7bf66QFp&jBVeM0R{s3`SMc95Tc zHs-h!dz{|Wr8txmsM809Cm}J&)PHe26o@6HI6A7+Or^`I@|S+DPz$?@H2(%vUsDT1 z@XWn3R3qXKzGAQ39Z5r*<$?0Y)?nCvhC+c>!w)~a2#jpe|LE|_#(;2->l1~bkO~mO z`gahrd6wSN3Kc>J&O_qn_*h(Iidl4oAWb!?$u9gOT9{54t1m@p%a0EmgmXU}u1>jv zO0gIwemaD`!NXWRqm(-J-kRRd+>C(-+l=6ED@{7ywAprpF-_?O;%T@?Z&;zt1b7yY z$f2{5t%KI|$Rt7uD${5@uw%p}!>;&hyx^Wr@I^jn4u#p%bwnIm{_q--B|_IvqDL-J z-~C|*HqhOw2uyQ&bZsPFmky5n1J}dvwCz(8BSbR}Bho1|!o~wi0%-A|{qg-!g*+F( zVu5ly^VHcZH`O1d>se;>KUfX-4a0Be*IOoSOJ#qa8EQDPjK4{D^m{qqWPNForI(ro`f^xWgKp!KJ&XE(~{!ORPNtA>qqUu#j4MBG(xLT#`EEwSt?1N!7-R5`STC{ zcB$rY3zK^XBX&>7UQ1Ly=d{12UzojzvP`*Qv@tk|rL>S!PS4mQGQ}$JFXWlJ6bRQZ zPa&(;#$l2MYTvH1hE$Wap~|ScH8b@D-o;jZhwDva>HRs?XoU7TK#K|*{9>scDTl&n z$;N>#O%oyX1^O(GIz<#*HPCHtuBjc+bS;IFO}OE8bkTgT1&_}IOi}v7eOOy}-zu(0 z#Qtrd+rsC47gy8laYe_a)z!Q~S-TKkAa;kN1uCF%DrNVy&nYtEDfpR1Ig zVQsF@d!Tiz<4HFtwDjh5O;fhDz1xDh;&-Awf8k$sBP~D0XSbL!#lT97{zJi4$7}WJ zK2VSK?U>1!Pp;n7Lt*v{JHGrTlD{XzNqPAWI{B-N&}=M}>(em{1&6iY;+@s=le4z_!_ZNTovV(XHEkUkI6PK%t%INvAy`j)k?H1Hz~xU9n5F zLfk^a_NDcPc7(cp9iNbN($>>2O&NBw?Y?Ijudx249L?wU64vLg!~2qajcLqKho8B^ zz7vdfTeE9r-b@|D;Tgn%Zr$WH?xTin6QHHk^YV4ukS(0+u#am<#*NzRjSrGvUH$ue z7~Y&3TyR#@71>%NRnNPdXge3C?1egvS8OWGWOI^v{F5Fi{%t}FMSY$t*^69|j4s~H z)7AVW^w-BMq1{hP{fSK9lj#Wf`!@8O0y*wdGfq?dZaL)DWI!f1B-SD@(jd;e{Q7Ns z6QR1TRKNEztJXc!D9il@A!al!cvF||0wz17-KodvV-PN;Gd-AW0&OEH9lh;p?>$3q zy7_4amAqg)zPp#fE&~zuNJHt~k2eWq+7Q=Ogh+}*!;v8Iac>h87fqYSnb6NGJt0VM zSG#?NkaQ6zW^mq8xu@!3NwwnnBY&xE zY=PD}ZAG*ZZ95w3#qOhJI%QQ&OW8b61^r`F>!PwiEJx%=z<2(yCL5);vYED2P>eF} z9D6?d1bL8n@;>eFz;etV%aP+xd~kgH5gPNvNkwXBBTbQ!dKr~wIR@f=Xg%ayDKq|c z4Cf|}dNvY5p*85^ctj)#Lp<5@mcy3=OjH(B)5P)hrZtkn=v zS)fVM{}T!d#*V&x9SS741&#Z@eHKI(oP>RLTB5x4ve_CN5tTRaEPyDV2`mv2^V-%{QE@&O5Dj6Eq+0To4ej z%u6AtIp0nzNcw&)s(qyR;1P)7dqmp@t8qm6=%P^s`1+2`%7K0wan4g6)>z;GeZ8q9 zFS87@cEFep`}q3HuRRD9_SlkBc=nduJkopR6BHDNy;4%}$%IPa!N!9elMl-(A} zX1)blnid}OlFF{lQk)mL(4|j@y?eVRu(bmV%d%5d)5D$Ac52w}2k(^2Pb#}j z{vKbJ?r4dI^F!Ta9k|Jk=YgL2U&^=yj9?S@Jceg(b*`$bU4+A&lu1>MdlqXxR>Q78 zx2cNFo3!uO+EDlIcspgN_@>fs5nKO-)e8%S#1Fih9(VA)q32DU2=l6g-lL1qE#@D7 zj=pH>eol@QBmVkpY^=vK?ijvYQ2|4XfSv3^^%!vhx|PJVHa>eY4KGu(?u_VD^TgSr zWq}WLJA2@62$cDVM%s2^xoxHn$Ut(+fO=v zA^t57b2aLz=~nXj>CW&s;0z5jnMXYx(@a-<1Q3I%1WU?tdkeSNai$?1p2(6w%Z!zQ z)bFwVU_Mx;kWVyinUWH{*K&CZi5+hJNDeuL%}IG*X~IMCf_#WbrWtIcP{qzqf^MmD z(rx*e4|HME81_)#XgC|1gNE#gvZ@=AS8yJ8qDx0p8{f|mUW_T#8B}THjr$VCvBG=t zixJNNemVz3gEp4uO<0eRqy>K?ilVR5gHyEmZ9Rm{l4~4zP<5>lf}?xhs`{B!-t^w- z*iQCfOkg1OS@S4sFi5#_TsBw&qN!+aB`q{vee^jkx?WttBk<7TxyeLnr@SNcN7szz z!*Rh*wTJEP6U$fh>>}4FxBlk)y#vxTC|{o{mi!9cEmBWkbw%A>1kw%I;@e#O1cd(f zo#ceG87}_S^OADfD?5NXM|6;s$0Dw=`WwzB)NEqR=~|3pDlX1h9%=bCcWrI`VI`18 z?GX{YSSOJAy>^JODNlIR_MY%5UhCu4<1Jj;O6#HmM`ajyTvUeR)#1(m!a;&SRtXAs zKVxXfZmKay*to8qmiTtI8|V4Ou)M71chc2#Zu79<=#Hcd1xVI+b!c<|M`Wl^=6t`H z2b8N?f^L>l!-nAnym*JoUB{W;L{vQT#z?>4;pWXf%*J8NpZCVfjXzI0>u`mX6AlFp z7i>T^tDnlzVK-yEU>&Dvh)054%FK_eEfXfRi~BG0UmU0p@?I!H2+ zcHhv(3I#>F{(ehkLLYke9Vdy^=!*S3ft|)#$F-o!%0irCb8ehuY2Emcy*q>hb&@UB zBG)O~vi09uryQ46cYy~31l?-|nM)xV_EkctwRJ(exHXESu|7fOSJ|l|7r!UjLARY& ziDjUfnC|-;55mzDQ2KxDM_g%zNi=s#Mor<$of)G^7_MXuB$Oq3?}^--9F|fmCtj_p ziC?lZA1Y|liTfq{ouw8ruA0jY-nPw9%HHB!9ElgL__ev^s6?4~aTS((eF&5Rfv62E zf3)`=yQ!@3dZ~k%?r44!{ZcdDBdrjR{QT?Z{-DxLO>s9#?5hSeE0nO%h>NMKf;c!z@I;WB%6PLch1&XgFDItv-W4 z_G?z0;srK&>Q4vzsvE`khQ4I~C zb?xxBeqJU!{jv3PrY=C9hn@zxfyR0R+E?v8ZO_KbY5wyE^dKo()F&8>))+2VRc*NpD7$qcEg=t)6a zNMA~fZOSWO5RU`@&pZw~Rh@CMlQmUyXrm|!d9f~TQ_~WUYGY@!rLE}{H?@d@nT;9S zWxb}xVFG2OtRRVxCCK%?pS`J=aASB8p=a3o!=csi$4C?-f_azFlUFsU+~_U2a|M~@ zXQDZEKBYK|`tM`4DCu^WTfbxkx4hpz`qmYrsQJl{jnz)I7d19)YNaA{FD=U4&0d8S zt(LrZmDy`?fIgeMybkvCWNBXj#o`76qn@}9=h$V}g^ljX#wif@gx3?SLbl4cB;+NA zjk**z45dgh#BAs@;YQ^4M8bUdW^TIcr^y+#25pz-ap2XEeGrj#CBp;O*XQkSJ{o8v zPZ4;6Gan)PeE8S(>zhAtgK>5}&vae_;)mVPL)NSLwR9O;?1jgrwol^I)sWYVEje#K z&aU9jwT^zb-W~YPv)d|v#?YwDO8@uFeS83DD%aU{`u`HbViUSlSAat5jW+3(&*>I= zVEMAb$~+I!f4J5T@Aj%p8uzSE#h8sF z!dgKh5!$ZMlOZOk4MC;Y)l}C3;k5l9bqO8k@hd}Jj3i?lI$x$grVue6X*IlC$Zb}n zMLI;j-r`)&cAiN?s7}D`g2PiAeeb6TzxFr!pkVmHE#Ti8zpsf>eEGCrwvQK~-tnow z+wWDUCEfz89Usp^gdGbmN}at>3QE6;+CoXT1C0L5Oe-Lmf{T@=F4a?IjWMw<4~7B< zsjmsdKsH0A@Q{r(LsAU8`qZ^Esg&%?1h0dHY?f8R1VZin3a_6KY);sTu?Lf{8c0DV0Z1X5xa*oenG zupH45C+1efu52|aBNxoh8&EZnuLCe~tdkkb4{6?=jTCmSNnv5{pslSPc8f_3SWRs; zsU|3E9XI9QHg_T7`phcy0=Q8HsWdDp;AmlaP#MaJN@*u?4=QiRIi3P+<|j6lTP_3d z)})3U?hP^ajfcCUnPP?ZGdf2tMM%z7#!IRKp13w>dcF^d^*1$AF^^2Td$X~6;~h?M zaOU}hA{{{0e4tiN@84>3tv@4uD1C!c@*aJb(X=-9^J|nc*^lp}aOxw%%e?oGP(PLg zVJBj&?j`yu$vWLes)QtYiOO`FySIeJ^p^awnK zLAQ!|E5SHGPEGarQ5L;T6x_Zhf7d;%t+$K3M*L@p=}HOr?a-E@6{Zn>fn$Q!l>9Dg z&h<$r$*pLq#%Bi^$=F2Qte_Du&hkxNOxX+HE7sJr?Sk9o+8Th*!s7-YIxHNrnK$qD zwH_$`yvh=#??z+Xb6hV2vHC+^8%papJ03*#%6rXQ4@YPB5#&-ew$LVH+PrHm)nc8P zI6e$#i@UGjN(8ilrZ$*20`&xOIb!FP9mH6i@Uy=Fe+v*;VhV&5+S{)Ah84AnPc?7; z9-7oWg>k=~)$?A@_*{K`NQvskyYfucmfq7yZ3m&}o||4FD5wx9zD?99YUCoghHH$12CL`ncW!V;;m-#&$km3v-Y#oA-D7-hAZ`1 z_K%t>dGEW4y~D6=Gf#g+D;?E4Re%%zh(9o(fR^%PqzN+bdyMHi9-*){mXXT_ise)C zp2oewpJllqQvp8NdL<0 zZhAJ?60AjuCx3>R?;4IXnX*0jYaNebE_0?0Wmvr%D~QKqUBK7dvcp)E_RC9})1`8n zSBR^_?ASs=r>oMx?|*5!UerQZby_msUy+b1?%Fl@rmaj9OY&wKOTX~-+V*aOP>+0D z9mNm%vH}YYT&Z*HO)3pzAFeyt*n}6_@uQrPJyu_<-g_TvjeM^c2F+FH`s(GUi$xPk z&0I9c_=nDw5euptswdql8~&|q;^$*|evr?XmD6c`=FkomV0~-12lEf1aBl5P$m?-N zDKONq+i=C&+@o?`HY_j6$mF{4YPqk|utXELR$_1_w}WIwoR36^ZW{hjgp&aVELWCO z0OWQ8lR<57`>;F(T|V>qu|@jh{7tje8M|da>xSBK(o9OlceRFEWaK=Cu=o{a7GJb9 ziqyaGxOiUF<{km1FMw!Z4q@Z*YTXTt=S!(zMew=^^byU=%v~xokn#&>jeM`P|0UBT zX-~gmcKqLoEVnazWj~*1y{7)r?tAp}rApdkWza>pH|PphDN| z?y3~2?9bjEK_e6eb}D-~X8(Qbq8GhC^gJlk-_8o+wbHfy$bZI0iul=gVS(BknyqZD z*8WUQ&zem?*U9=A-7=fczDcqB>mOc+$1$R~N=8U>@Qd%^r3Dsj>pb-5_+HC3`cYWw z!u=t~X+xI>*9KWIA7j>OFdlQ{9y-#q2_W`wrQGGR5N z0f#vd~B}8wn@~6h&O~NETn(DUxO;Ji$R=db9wW?+QsE}|77|b)Gz}Ib3Mfx z25nAU$8V611CfF+=HC>IT)D({=>so4mW*^zZJVoxyoS2YaFcI);Es{hfj{3!Qb3u! z^9W2Vc2PY!X{-h>L~@W=~Aa(IroPceP}YTk`a`&mqpf%X2$PL4sO9X=S% z+gO>Gab7b!{hsQgUe!~iwv>LO|Ga?!xU5w2)xpNc24-#gc}EF95z5WvrZ^?;_Ukdp zPh7!nSn;>#0s`D%7Uv{{=9$4@la_DW{;)WZLg#2Doep>PnR@`|1rm%0>@18=`qUAe zm1VR11LTFaM(hQG|4J=!DEhwtu%&d!rlru?53=r`R(z?b1*Z^|HE~yKt7~ebuh!Mp z#oVfBKXtkDtsajjSaeqcma%eVlO&j)G`A=!I1XV)CCs;UnhEuPJg2fAAqq%S#e`6Z zF;@53U+~utTt~7c2;<}>liBEA|2y`zxehz#J3IB}&a1}-Zg|PkYWZGZ2GVi(a9=6J z^l=5R|HUe~j=q2!mK{q%&UsJvK0bjRbRJkyrS8c%fPqwK%$>?NlF-G$|E zM6vZZDCD;}J`xB!?6CH;H}m}rs;CW8#1eZQgkbKPM_HM#)K}Cd)l#mnB0X7I?)Qye zKb8y~ztQMQcQK;5C-k>l(o@VEhCUB&DEnUg<%p^b%duq356`s7G|UY^CZBFh7@7R% zhe@88;Od+JT7=HchyeuY36!qZmP89CWPr&@=Qf1%ctB4x?_=FciKw1Ow525Hw(W<* zx!vIkopTRIem9Oxu1wiz-suG1eDTeWkXchzmnK8vGWf8dY`=R12eo0I-Tw1{9V4_E z$U8LpL6@cO$0|2&-Y^EYG{{i1j&%oqli_X3$TkrTJ(EKr=o$}uRj*zh)2!vAE>{XX zTXx_46p9`TTC%kKU0n?`q6bwDu1k7jxcZu&bXfji)m_k(&b=4QGt~B|OH*6>uA5U@ z*Y#F+W3h}!1XyFPLUoDTdwUThfuC;ToR$hmx$Y`^Jxr30B&o=zcL)Sie`SdXEmY+$Kbq0O2qd$6lifmC~VJ zYTM;a!JS&QC8Y25b`}uex_F&CHl4L}8FFy3CaiYpS!?UPd<0%Yt@W_6-blt45^P46 z4EG8jI~#w~9SzC#Q-Gd)^Ryss=`RU>;lsAXzbLOuRw)Nfxe$JX^&S6z8Oao-ySe4VO~1|9Wd@k!X38ySszhVU{7fI!M?wnE%5_tW3gNMdergTxLw{lY)78Hm*??Y9(H>Bn z1GKdw+Sb9eF$Iip@&TsZ=M;Q4n{+5yrz*lWZO6@HW*y`SeDbi?5tHC6nU5Sg8T7ua ziBMyLbh`>{cxGnRRHtq|z@7!q1QRgbGP%5bpG0g%gt$pLc zeCqmd>Fx6~qchWthKLUZs~`=HS8KHQ=e7tTCptQ*wi-0nDG_*^K{uC)TxEkEkJm;? zs2WKEtu$8SE3{&PoV-67+jh9gu89yWy_gY{D@Ym(0BUkB87CZp<{T5ZuU~RyzbcfK zneV1oodu`KDV_ zI%n_GXs=uq5RN~{H}y@eu?bT(!*!0&w(|^@HMOW2nB1k1pvODemDzp*8;<3jlkw6!(azh0Vt z6bH*gh)MGp$BjKsQi2;*y`>iyhAKHbS|2y zu@L5fY3Bso$p_)23d)QNOr=4>wmJIu`M}dZIgxKy_n-baRV-_u#Mv+4x73;R7LF5R z1KGb&Vbt8h|Biup$GmUa!ZhjDO^$hDd;}-@ZUb#OdUuZP7xTdgbXb`v46yo!%__ef znx>y-5ECGwOO%-JI1?RUzN(JO`<{n8u+Ls&qZsWAB5~RTayn? z=e{jiQ`gTb*3P^!n%n+}ex?ff5uvglB*YWEpRwb(&R@&8wpjaw@-}D7QNStp!GSlj zE8+reX7U#*fjlcX;G27HD;2DduFg?d-7E+ZPo~Ikm(Qnv3b}?=N;mK9=P4?)Rb>N4 z>Hh5pY%49b?#Uz}Ah`X&H)fM{BjP9SqLOfu%H-UGp(c|B+$p9mNcIs~3r(E#PRp9Y z)2-v>cbhF8RrZ6e(`@XGIw{n@&1sC8;b)*Jp>6vjT5U8!5Un~6M$tj<2|K>M0FlcZ z)6>yFjAcsBANeehCu=_;sf6JBLp42O7me`GapVb5s0%kwszCkXS)eb^NS{T zd*;$CA~qMcEV8@}i9r{hF9#2GZ#w=Sq1&kyyr5=3e2%Uy@Jf*>Nbdep?fSv0-5nL@ zXU+fbnDEJ{uEBOA-ii;*9l3HeG_oMZ%I{8>v-Ejt(LKe21F<47*x*!vV^f;FJ?O*T zIjc}hgT(kK#lh`sM>QQnKs?CQO60a)GHY^Zal>m%!Pf4tx3`OqSeCjHElx|NMHU47 zgCMFqwCxR-ah7G=YC{f<~eL`9s$;hD9evaytAm&-PPu#+D_|Pt1cC%Q*Zr} zPU|_F(2cjP73Ma+^Mh9ZZcV? XO;r%?5Lzz2?){+m@;~yer8Y7Ke#|MrOd_I?1F@KZ zo*Cbc(7w!%9+O_|{zaY#qetbLg-@ognUC{l?hmyhy)RUiR96|j7ECvO_VOR05$o@c zT1WL5ci&TvBG-G!!Enx+zw*i&rR?04pmhHQmC<+4YY*;jRZ z%v1**h$Nr*;a4c(lQ?(H0TjcZC~EwB#CUv%)*BrE;gQ2f7|ftuVwTSMVV*%S!O}>k18+!$Trun(+1U^N;7iG zHu@&jW%!<+ro8bIsACcF_b_#t$-muNg*t0HQbU|vW&|8%H5s^wmLiG(1GAw$T!N?~ zpSb}+C)^Fq<%QOun#huCg$h%G!Fvuu+mC13&C9zfMJ_+6X;SZtDmDSYJr>88qtXcI z%8(M7N*-W zyWbULE%zw2!am)U6tw!*FMQ+fz1^cl3@nq)c}{w);zI;yU-sI)_>L~&1Z-r&JC|2I ztQtq|DsLHjo>-7IwhB7Piv0JyR{e_E%3b0gI&kd}hG|7CjVj5X1FDPw#QcnKmrzEY zuM1e-P|yOT6Qy4f1K5b1s4!c)$aou$ZPm6MKR+X~=OC}F#DAqfKRlx;!g9h!6!ArK{1Kip)vFn0z> z@>a%)nfW3WV$oP=veG&+djG(%p*fABUm($f&}x$Is)zC}JxR>t(A2up&K8q=r`p3! z?cy-o6=kE@PLA~t-l4nUHPi0uTGwvunC92#T~Rc>(zO_XaQ1BT<*>z9zFMQKQ)KQI z{eezXolMbL1q$VN8jQdQ)<@qC_~bAn7_d<(b*J{nP2O)Hy}X*zAu3D@jA^7xlS!iA zVO#*{vAz^Qt2_2Y;S|Q%@w}r+?jBlyOqz^G4?%)Zt z58n8DsLlEXr#;3^ih*Y9e-wS$IQ*CahD?q#!U>k5xe1k=z_}Xh&X$cLs9{dRMlin z;g6F5jy%gXUevu zNF<_q`{JsX*QVprR=Ba{NCcgz)COx@Y)sML|8K?of6eg_Zvn%ffc}oT^AXok7|QHN zC7cLSlzZ$yBkY=Y=)v<}$Z@_@1H6Oq?_~Gt%hNpm>f~#Q>}{%@!>hZN34WeNlS+Hm zwi@fdpD%oQ_va#?;&E7Du|+4vPrxYs)}F`}J#`dTG4Jj`Nm@YZJ;mn*kEAHdf|3Cd zT1aT+{-!jwh25BvB8c+uAl(@D-Snc2dDU=Comn_kwaOR+OG)oIsF=M7_Uq!Foiccy zLGXKi?V7pSO`U5;V7E|YlWN}FTCRL-o1@qu8nM6@e%(xPt-(7dYfYUn`@uydr;Pt# zB&c>jv|9a{F~j(7`H3j5^LzqWecq`@wj)IKIH`9Qq_<0kGvu{w?5xaK?QHCKTGz2> z)ADf6xOVF48_?#RL8}XCXZfGXq^|{MS~dx# znFR8so%*+WAm#R;km)v~0JsF&=OWGk?G&&IY!`kGF)K3;Y2x+AJ9?@F9k^!ut!Qi0 zTH=&-y;=4q6#h1*)SLJYrh0{gJ* za?j8lj?!6KAruI^{S(g&evm1LP>C-1;fpEsyrotC2|s&}K@cIQ@0F$6IZPQ5**my2 zE%L-U?NweLYBJBz%0Ic60?7HUHUb-L7$3iGIs#IYNL<6j4Ta6$Hr`ts+j6_F739l5 zrt>}Vx%yTzUe7vd^o97Zl_JYjm_@4DXK%>Yg9{VdkKzcroUgkp*Y;?Afal&9HP4za zTWi*zECLGD&9JxASG(2o_aD$WCJrg0RkWBcDxtipc(ox5I0REf@OaxWMC6KmM&^R? zlyRw+%AZa1Hj^XlRHc3Ob>kps0#Dg_woV{{;n?8I56qF_7fFg}LqLbWV?BQ);+lsx zm)W^BA^oZ{wi^LcDVGuFslNXgZ*Tt2X8Oi|cV@awsj9sw+N#>=VyQLL8Wbh9?^0DI zB2q;KAyfMnrnR*cV~N;8k=R8MOsi^(s8|!V#*(y_l*l~y=MQ*}?=R2u{ULsH=RS_y z_jR4udA{GTw*XVZSd=YZ=F2x&6>zBj+0N5irfWJumG7{gH?yVN4~MFKbvEN^=J=ew{Gg_p0y(ci!v<}z2nHYTslbUv+3XgXfBvj_RG4ZsN!(_N~`z4b@K%S+QwcgK@-;?JgeX#Li35Gz0}} zrtM%7s3n(+HrDstJG%5PXD@hw^;+`Po3lw`$8S*}-OcWQV!iW>^u(XzI5_uszS-ok!2!PGaM8~z8*nvou|5E*VkRQZ?DD2*N?79ooJ zS)GMDOg)g(zqlU5n`U)av4&;*e0MtQg|Z$$Q#rf5*T{7`bA3paz8VJ|`&Q)MH*Nge zD^vRniBmT39<^2Laq)EYbSZCYph%eAO-8481G(-CC_U>xxP}v*?r^$*fhB9dqzc-& zF2ZaXMY{LpU*lb4pNxFc=;j{K-cK3foAvzsKDr{TNcBd{Cy<~5$Ck}cM<)jni$$&2 zR_;`k^AcD(pz&*__=fQfO5OPPKC;tPZm!OLe)Lr06XL{G)+7=C+69_R^DMtQZW>h* zymv}8$}JE4w&o7uwXIdo4^^e|obp*hbKTBEY>%O)WuY5b8JB{IbUD0}_vZ1P*6!Wcxp)a!VN28Z)*Kab(fcvBlKIX585^;SK9Q-Hg68why_kJLRKv z!gYCDhF4wuFpj!IqRIS9Cz{HX)c#PEG<+wL+F<&i{M$}xWZ-MJYwds~vT?RK!!;hM zuN@q=uFt97aG7-s^z}bR2svL^8z5b^uh~?Jf_Nw3l&!wf*T-?g8eV=sb~c+>O=P)K zq+d{XINpqDLK;x)SUsTB?ipZ&8H@wV*X~_tX9@$jkzBX1&kbp?HOKU3r_IJQe_$O9 zp38}H1&_?py<4mUa(7&QQXgQtP1_5yR!PKildE2Xk|oS5b;Uky$eh5}>p7 za`{iaviqd8+?p<{Iqg$9D33GCJ@uut>Wdge;dhl!Smk>yUBd#QKa1&^@&C(6?j5F} zqS%NY&@WoR6#P^szbONq2<)2F7Dh(_%=)Q1*k*L6j17u6H1L*7qQ7Q3lhg&sQ&yEm ztu7DjhOb76V_6FyA_voVA<6mm@w@8g13a0Dy3j&?@>Dw<|E0cs{or}TlsHu)#O%9U z(%)^u_w4+sus4iX@*Qm!9RVsH%Te{=Hjo!gE4P^~_?Ow!rm;Pbcv$D++euSsf~Uuq z-1A*fpJ+nx1@h3ex4&K3x^q0tu70ztGXQH()59t($`Les;Rwb)kf{fdTSJF+5NA;k z4uUQI-TL9&?{%Rgrkgqe*ulbXXqUT!uYspnI-S6%eAxDK#QTxq6fB`>aB#m?y zS@z-3sTe?(&*_!=wXZH;H*-i;qs2g;`&~x$F_{gnE=Lc=r=-ac4xf?Xl z`_EqdZTF6QOg&U>&I`EDt}eIp!iLoIBk{TuB`bcNVp+kbE-^B0GqvU;)Dm521QomN zwpN7Pr9suuHOAWG_qo6;!?edI;;n>ib~k!$L0ZPbF~h|Y0C#c<5G3v`oO4I|n6P&K zGK`>4tN*W6lgZO&I@5|%PQN}3&4+T5a4sgLgF&>w8m$)x!R~V(wQkM*tv;5wwG(>? z&Ln^nWrZeUlweKByurWMe}IySQ8^R23|K({v!f;|s(3T`(fIr-xS?purY#Sgxfue6 zU3+iX&_1kKIc93vSjAS@x0@rB4f{susv7%6wcyh^KC!pzL~<;ATi*=?5g&vFP?(N= zfUOmunPG2(k68X0B=Sq13Z?4FS2ve{_r3Q*z3nAG%?vn)aQ{2ODPf%%WU`m~yDt)e zc!J+S{xZ@7vJxy@65#mb=Q>S7?oY;C8m9k?xY7kV>jB|_2lS==c~@U=5!D@yhrBCw zN^+dPn{E}A^wtFsZTHCkU5+Hef zD*@2jwqI0NMR4w-Oh!{WY>55vgX4!<=L=??w^JPRKMdX+d^pf2<|X*c+a>mN*zYzM z`n;9;1QRglt-M%WT?;RX-KW=_4r5-yqv&vOU%n$jd>vY`J~{`rU(XFTg+nh`MH&40 zS}Q{u`J(@v_ti8$@lNJqOV11_srX!s2*;VcZ!AmYda`Cd0Qv1;VcOU7@At~UjRdOm zpA=2_70TwOwuRcGh*C(CcJE!pesY>wN%W`Gk2V%}>Kg63-OH&w%tG6q*sZ|!I-jIr z74IcACy8I2)&D6XTuG=&>sj(}lHoCnF1|Z0j#YWrxm&3H@7VW|e)M#=)l|$$Qw_<+H`R{@ zBTafoIYm1I4V-W@utb2AY2C{xhT}xwKubvJvy4{%%UIKQDNa8!`@8 z4WNYqU^Q|0*Y!SV^PgVKDb-47rKa|E&;49ukCsRMzsi-bm1eywFD)ADA_Z-(_4wYo z)GhYb=SFrkCXhM~?~wvw!iJ@O+^2>ffkluZ#bT*_i|;4d$oA1b`g;n_ ztt%j76leL)V^z<1EEPVjTaipnkZR4RtUUzO)HOC*>l3lhvsZP>E|#}9j~jphYB`rB z*TWBY?j!N%4h|R_5h+?b=SNh`!_ahq%U@a(z)gagYR5(nbzw5UWvfGw_g$$aZ33&g;b`O697chz;t zFZ7>cDvdLvtFE`O5vDA!oD!t{!`Kmb_W2yK!M<)jC}3zg3@WDYBpaV?n_3ztS_ysz zaxetBV$x*D`4Tpy2N4UpP$$7S7(fg78_OQoU|HK`tiFD^Uv{Ixy>6yS0Q4WU_@WR8 zJzQy^CzFOtJ-NEY=3!%@OhJLKACEienL=CueYhY7?f!HRGH0ckqjpgKX~O01i{Vqd zrPODDe~aJay+kqWhvyPTBiG8|Cg9r&@_UUKR(?2)x*ONO)S#DW-g~{yI}fw<;L7F!^Wk%b zMy0rv(Bt#eXyK^=8nz{o3*C300bn*8Zb`}bZ!BsTcA6RKo7+H7*%LesZ1a#3ppt7p zwUb8tS1=jk`E#bnZGkK5!{ak$be~1tkP{+Z;S~24T`Ks4mC%f>nho$0=9sb;EZMhB zOV?i=JhVT2OJMGU`EU(pGDPI^U4Jv71{W06@+Pgtz{fHsYxijI?%see=4`! z&)XYbb?d(qD7jxiPv!oCG_B;+aU^DL=sr#HyEx>^5hNCL8oD6UKV5%@6YX~Kyd*t6 z-{T(Z2ifT}?yoZUBiXe4bePXg;#KC<;A2@0qUFWNR+>iWyu45|1Dz7=1^gtx_*8Lr7`_L6SE{CwO2fK9as@!ZE6;+; zYO$S@JMCeNKdEq{%+>!+cx2L_<|~eCgQrFSE){(teh+;HfQhkqT@myGm|r98Sl-EE zw|ru2S1|eUkrnGf5vx01E83pk2QyY`vkoEWC-rWDKg0;K zM&kDh5raDIT(^p<5~xJJSwgvKbO@tHK$R>7#5UhT!_XY1)t)(ddid5Ue9UKArQ_UE zc3ux84fw83^?C?z!VNbN9kbM5WW*WtVf$Enf)*itnrFZ`B!VuoewL1wh811sB;aAM zkyNPd4C84Ii!pzUQozQ5vz~bPG7`hm$bAxCr9BR0TXOLAXElyJi`CRJGtIMEzF8PP z3&VR=ZWle|8v6#%S5A^2D?8LAyxhAu{e*in7JJEBb3gSvR$ou&^uyAh4*59u8v{5y zJ5)1fGubZ6<;N2R%ob{6ro#u8x z2B!jB(el!e^oR)R0Vh7xNc98Fdie9}d4Jh+#KuHV!TVzbaP#~O^2P6jukal|Qfv3$ zoJZ<&d5QMcq;X>AMUH(g5KiRIqXN-A^_kn+2pW?ik;08wTzCnD)tqj?axdqu9Pz|< z;tlO|JE8FF zOGnyadYVtH0k3oP)NWo1+ zUB57Aind#SYPvR(Y4nxS>0HS%UT~k}+WPX67v7I-im}e{&K|L11mhQeBdEq{ACuh% z$%4s6@~;^*$mA4O4#FEH-JLvv%uMwH@Kcle_oI~Y?QGP1CvL!sc6Q|i?2MItpHxlfumNux_yKZ-l zt~SRYVBMa?=Iv!sTh})UqPGA4z(rD0sX4B=zFuMBQBIldz0CV};WW!u&74f#hOtuL0^2DWAyN!GCrCDF2um%>cACnWo3qi9S!5kIyRGyq- zT5TN)Oz#$s8STDkc!g1Te)SwymR5xlOM-uCa&MuO zOOPRU6GX`QbveOpLxZw41vUBvu~2@$gU1JCbe!TF+XL}iA9-yQiL$9REKU0PnqVC2 z%tUCh$eOHd7dt#9Om7oqRKg)yp9HAeByG3^1H!#Fyl*hV7x0k*jD6hvbHin?v2IRi z@y}qaxNF8nTyJ*L)-P=LL68JD@DR$DOAqTf_OqJ^#kFQyk1?_vn#MP+cUxL?BVQE$ z>i(6s;I-jahpilhA&l{r^BdvTA)sX|X~7F2vu46c>M;WJO_Q>8yyQfV+G?_r&8^(C zm5#;4A(n$5Uk=^towps{(mvfcK)dRA_QpuUa~d*rmV!*WU0ywkQ)(U2_*7#uSJze& ziTwN^J4f%HW$1c{YQ@GqFYnp_eOz)_)Nshdjw9dUT~gF1UkinFT`4MNbvKf2k=d7g!ACgJ+|r${I9B)quIzeHW%KS=hyxF#p4F%YiY!z z8~5Gry+S*6vk=9bs`UZ+c>pOSAXAFt^Fe<;)>w8P1!4&lldXLqql)9ZJIRs%(>;J0 zxCCt@kq4cr@Oz_3K<0jCT>msvq z_AParnwzp8*GHoxx)+Nejpm7N9 zUpaBr8!;D16MI+c{GFvn;)C|k=hmmB{E~N@S@Z@9S1vk?5hcLa=eQ3_S-3zbeEwys z_wYoYxhf@DC99H$LfW&2IcT8n1LEu$MTS6Bknj#AjwPb=!$J0`;n>76v5Jj$1qSR4U_ z8g(~uNviAx4C?F>vhz3g#6E^K(88`?GT$6LQsR7aZ+px!shve8_3(hMmpNNl4xqU7 z30~md;M`^9Swufy?QO|lc*(T~B0M5N=~6S6JoA6=fc2MV2PJHMHmuZ@=!xn@&6XakZ0GmSNWzx4~r3;d^!RJxp-wB>z zQ`TFl+?UbZIWACD#Ts+r95fr@4EPc0^%sy<^ySqw4I)Bl1MnC`^?QlJb)jt8E=J~Q z&QNb8ud9Z$)FXvRDsW&|R9%0$h;e2>;<@K>4}rm`ht~|`uEcin0O;KR5R?shDI{gi z#Qys=XQ$B(d4@i+nJJMJ8a3=^ z$`Xu40c3F}P7VD8>NXt{Zo#6yW$o`D^g~{Dw>Wb};|2jFhj}&Eki#DhtYUH9r__0J zb6n-DJ~!v|&?BG%J?L|eGfV1khmbQx|3@(E9V!;CPsNVHoyk&vM%rYRH|L`p7cO0tp7z)}$DmfdLcxPL^=WTaF?g^zo zit&5%7)?-wNasJN_D_*N)i}^97AN%|VlB^FS=z=!zYk4+T6Z{D)eGrPHondoK#L)Z zoq-{j_7PfQ-AfHXzZ%-g;;^nJKqTM?w(ojZE1>oHBkdt|dpA0e6SnJlmcZ-^cS-7V zYWKobth-He^OKUFBpnNb7Bl4DKTTmxEjn-BJTlyn{S}D_ZLI?Z?a)$z61?Hr;Z%yW zJKH&_+fVM?f(74PfizyzA!7(aWEJ*Lajzawc^BASTj?QRzKd`l0xE|q0H(bVvEO@) zGZX;Egk~ukRjd#zc72>yrmSZ`%(XO|&eqKS_Kda=tbel`sVt)Gt43R;G3J_Ph(LdH zCBE_+>EZ;C0#IK%J;ZD1ZX~_aF8-a_ElCv6mxjZZ%#$@y<`uJB85Wtn!`CBrA#v|} zo;~!MS*MM>+^QwXd-#VxzcbbeVe=303*S2ksflWQ*KlVeG<&v+URpf`t!GS|B`9k* zS+r-U06j+Nw5-_EO8Um|49z(>Uh@gXeYHw^a{iP0eqmtD70S)&lQ(t#A3wFob>P1Nt25b`@uW0mh(|frYN;@S1u^EwX-q zbY&c+P9Ij86MI`h3F`{l9<**ualDw<+J^bVX*CX#vOtvJibW0P4|JDtwT}}G1#!q& zpqt&z?j8hSaB^%!5=v+hBM!@KT1=bA{`BN68Jo71n zrZDvI9XeaqFoCD;wa(K$CZOQaM}MG9V%4R707*ulL)If9N&k$=)CFmGX#Uny4duy= zscTz5KU=qB2iF)fcfs!psQmboFlD!|d_Bk(vm~ZCrVH!Rn(koEte~2G`+wR%6m7(u zG-@4u74ALDxnoKUS9v$A`{`$%O17KZ7sYKf8NyM+ZMIcdg_NN9-m|;6^p+HeMH>q? z99V@(De|#_OL@i>{5)r7@HH~Tx}BAsWi8MN$T;A|7%f2DEG}LjjB1=2LtUBDmAq|b-&)`hJeVa z)ZOUYVDy!}H6XCp)1T^=+YolWxb$PytVxi@lg_rH0sbvZe`Dk0)^4avx3}ik8ppg| z*{fqDIj$*NGcI&T5OtaLaf&bu9xztrykr<8*Tu+l1`KL2nvRo1xHG-Eti~j|ifcw3 z=gQy$BB^PLiH{ms>SbKx#wM;axk!0L-b$eN?XTrO>aLU3DsnUP&L)yAZ2O(E>07GR z4P|p}GV~(*tjPR`pgMi!Jg^TQ2laQ1l}H z1X^|$`lE4JLq}I{)~i?-9AdSb$8Ub*#4%wgZi(OlS*3Cfr*w#ZruQSL$h4(vG0yq~fF(eX=B~iCVH4QD6z!w8@-E3X~!k6Ct*TnwM z7t{b3J>~CpngRIj&??yz@w_I4)#jlDB{g(7rNGJcVT z_zNJEh_f7b`rSv851SL4y9L5lI0m%=Ep?ob4-&M6K_d{^4ZHJK8HvsN zryZQEwUF#~y5l$}EV$fX_H@hWE=Z6IqTu1`8lif-Xh}})2)W%km8dC#d;xA&Cr0qJ zh5++zyG{o?5OtsZKp&L25^G`T3|$-%%j+Oz_KE;TOEIF{DUP#EJL`I?p?OGH1v06Z zbd5EVLAuI`*|(DMF=gv!)D9+H=GiZ8-zk<}$%ZZq4@?e4cd2z;DY40M6AQlh&e3Iz zM~x-w?^ZL`zm(r->>n+XDpX9!eq9*Qn8b`Yb8hmJJvRLiuTQ!Bl3W4ww_OQ~1e zCyy{&Wj&swph8img!wtonCInYN06e9>i|6nGJJ6c#eZDD1EFjikBQxIzwyp9bj`C! z`Tv1m8QB~m?|Q2$K&m{_ucu~sI~w4abI?68qEvt)nAH2CNNf^yHhM|!l$?N<=M1N~ z2kJu~R$W{GI!*-555->v_kosM{1Dv^DM8=q*F3)_mD#&69sZ%{HV48&lfCrWx=CSZ zAvpnL*?uhNdHXOf$@p?EJ0r=v4mPjGh74*>=l#J>_*_%T1-<7C*9Xu(lP+^GoD$%q zI0P)+&J0bCN_|?VEvts1YO1?AS%!ox`u(q^w{bWy*mvkT)mIP(+yT&I743+#@y4%7 zDW{nZ%3Rn)lX7j2X&yKehOqa2i<&XO|{qX^&DI?4oIJYjy&HN&s6I;e^jsi--!yO zdxHP7eeGSn($H|YBizJ+ zbYxRieQoMi%)ZOx#th!dq4JjWrzoSphjFv|R^BJm1on%yy9&IZJkKw0B4$(#x||;( z&ijvgZUBwMDo>Y-TU2XHxZ5(LHI)`+3-7AetOJbyypa>HXNPaT);{uFvc9>>RmC!6 zG}!_qOu36iZ2;|Eu6|IKA2bkQJQ)!l;^*sq&M9$nx%Kv3trKgyAnL8}kBoQl=^_Wn zMkep9H1O^r*z;ve3#YhNoWbfjjw1Q68CR8=A}tl(~JwDAF>ju_$x zq>#}1C$YID^+=NeAic+;28pmCau8L}JfNGgf@l4pH+NMA6sb2l%bQJwO21Lxsoj(D z8Pu7VX!Y8uiP(v^&gS$R}}reqKBE;uXxV<-w*>fM{5yx-{Y8iC?>Q zNc>y{ws~I)VE?H<%PBVFz!AZ8aQfkPO>i`e$8^_^Y4HnZDKfe+&27=%i~?BHmel@? z=cIb5x^yo!vN&av01;fH$*)J^iGRoSk))5+Yo8BU76x=~lvg{U#+@cBO}m;qvC2xj zb`2ljw5en-PIwR~wL4`6(Rt|*3uM5DtHzP^4Z zr<}v{Li*t_7#tyOWz^qK-u%1g|dEVIYytU9!`BO%hdI0hKQ4v|)1#5GQ8%VAMT8g1KbmCcz4fG|J&M zR0K3PU--%)J`PD2o7;n4%UQlY_d0d1d3rdlf3)Xek-U(xW$5JmRJ5=Kp>Dxx+|$ji zxTKqief%zqFyDnsR7FUr2EE%j#gBJo`nJ`brYrLTg8ilP?b4VNC9Vg|&fy zSHs{TcWXHX{kLF65}mAyw|)%Oum;x7{uAfC!}R=GFuhCMz*^O-dAt#;(pX#K6uPd{ z9ap|_jYhx*0rZ~si6;dhd4{n@M7(i*QceKUwW`Mcb-YSt4BKJIW<;27zNhx7Z#R^5#lxY;WujA7`(L-m zl@(ulA#%0nOm{EBhqs%e=)-(ln_6@7J+jhyy|D&S{4yFF!zdw`&MSKS>yevjFxBO; zPSdF604JbNJ%K#9^*UsY*M#8}c-cl|MODb@VzEZIF7gV4HgMoT zq686P!}r*PpN^ZD{$=uE`j8AcUz_-i+Afhm^5Znscm=rS)TgVhbi@tZDA#4uUy7F> zF0vNgJwZ+h+8x~&)}A9ZZAh-_+X-8*Ipz+DT252yK|u?4D?$f&qA0Ql+U1J3fmH|40GHV5d4~${K`>f-n_)v`e1Ngm#4@EL#`AlcF ze8t}_!5;oXV21S9rAe(B8AbDWP72Z8^Ti7Po$^rv`S|bgJg0S z?#1MGUS5=Vq1asi!oCMpA3;6|;41bk2pHiBD^}C&9CKcr)ZxEp;$7#KHX`GS1OQ8$ znssokdOm!1dmo3iGXDcY1;&upjI%^}296q}I7UE*i4$6LwOK3gwNwpMiv>9G&|Imh z{i$TsFK8Uh`IT!78ZaH{r4CTAHl$nUOVi7DlzM}+VP3Umwmk+0O1c_04m*-M07f?P zN9s=vjoQk|tR5T7oIrzj4k}7*pAfk>t421N%9aJ$IMwo^#)8ZrSB{JTL7yZDx+Cd< z)THAQwsCCDNX?61^Ya1=b1e#r+Be99Nl3A`9C$7dM;E+m;0?Lq+oDc?xd-c%3 zy}$O4c2EidZ*EH%+s)+n@R+}z#h8S<^Mnyng6G#s(o3XYkwAUhbtKM}o!BzI%!ROZ z;v$Y45Nr|h3t2gi!IIU-J+P=zKYj%l70hVmibYp`y`BbqiGaUOWL=3^Q6BwD8TalC zi?lNkqc#x~s4WLvknb&U7j}7l^CGMn-ZkpN@!VVNmfiwPNDsArq)&R-z+sXIwA&8r+8Fg``^q=GF0;+k zw=&X}PO)t|DmbqV5a&!8!1Iduo#}k&hv7asE+GLkrygD2FOZlCG$E*kz3@R+l*HOe zQA7J`#!)4_qzcG@kQI2L;(AC5O$3%7_xk@tRyP?@a!G({Z9GhR_}+*EiPHzf$@k`~ z37gW@bp{sx9NV?zPI2%6o0K2jV?a8`8Dv~fV#O^A4rJ20c|!crr+ECR2=*WuZ@-u= zt7;KyU?l+Qq3y&GMg*nMaEgOpM0OrL6 zoCpzP-h>%zutoLFii7Kzk)6#q2~o&s`g!l%r!F1`X*XSCR3&560~T*>o>D1x8e(hv zXl=9f+!z>}cq>C%(#}dcW55Bo#m>&E zD3kO4-TIzbHaaTu)qaY7m&)@r@HZKcIZl!-MZ2I6c|apoDX?Ah5BHsqLR*~Ay`G!J z&ux8fd}l5;JUrY#NshG$I!EqYG9I8ZTw4zi*tm<&kx*$^E2?ywJzr%47zf zoHl)tF?;Xz?fd$w?)T(ht!Om<@yG=|ep*v<8dZtE9u;vJ>7-Oa>HF*xx7lQR^wrVZ zeP+fwvt!ig7Oxnz@#jZ!lGSh3aUIhVCwm(Lv;UTiCG_na|Z zaMv`_vYqS**aaT~2-{d?;5kzR4*G`Us8ei{CAE2J3dkQIBcXdCLMT=G$1rICGuo3c zmlAUw`Fx@GK&q&`G@OMX3*3R;Wa?*&x4e*5XGJopCS;(&jdDEm7XdAX_9UG?E-(~a zM4wzh&U}chBVv(*w&U8zW&`l2N3IhngAfMZ%7Jygq#nla$AHP0lXZkR-S!;Y();t* zBI>oRJat{BI&JAtI8pGz$7pTH^wA^{e^TH<<(C0 zNr%w_M`5&;_q4G7!9=(=6IibnE&|Sv3mb>BZ)Ka1HMclE=A&1MsXJb|0>Aa;k0jS4 z6vx!Ih-lIOPWV`Hx|3xuFSZ(J)}&S0-ANyBdf5A@Ol#GZc-F=)KAJ;cvwvOr?V$59 zeoL=xe^#%rHGN6M{QTn5-R5PdseSNU)w}i29WQ025{aDI2(?|~Tik$lRwzlDgJH~} z!K|I+(4BPI-x?>>LWdt)Xcb1$=i}JlX&WCyt&LZ%3nORxfp`891+j-zXQVuCnye=v z%L~90PpE=hQaazvR#zMiV+AkE-u)(5ugxup8RK1TqY%*NkvOtGIbUEW$@sQ^I4$p` zhNhaKg*Rg-iDo^OuH`#kMDE?!H*LY7Byh;Ifne!m@$b}a+EVWi$o){VK6)2_bdv-0 z&HEuu3q4&v&XjU$*Z?PtZVe*q6DHKjhnXp%p0X2WY=vd=nwW2EvDbTwmmdxLO|AdJ z>of*OXb?$KM_GgAl%rf9`#*JYgIn|#N-8g^j+Pml+JyQ?yZ=6E8B!xTBBU9^%t0_f z0w(eio^Gmhh05MFAVT%?>fNr=7uf;UmR(Cqy%zQ@Di%sdcu`x(*qLSe|Cji-|I@WR zjOBE5AzTD(0se2BE2yZlUvuU_0K-ki7SEWPwu~KE+}P#ftX@36TBx=B61{A zOY>Lgk9FFqZ#L!1y^bmt_bxPM7l$`mg)4TeP-&Z}?Fe$~rCj4L=&g&>z4q96+%>GP z?}*!r0E`i0_}WbRlO^%8>s==MUB~sP;3HdCWOtv_Gh}xUq{+=S;7|=MxQiPHP8U+B zs8`o@#oeY-v^%Oo=iGaWL|7X3w9ndZqhNI(OTan_a;tu6C^(%dczO;n zeYA{mmCL>|-^)DSG3O1Bsh@7lFKp{b5n?Zyl0nGtp-%>!+b=&wYR;>kehuJMO(;osezQG#kuH=Au7v^qi2}Oq+#|Q3K zd>7a}WNvq4Sy*K@ZZtP+R17&c7429%H$_d36D#q6(O&2c1*2%FEoq-)MhOlp`?ADe zb0kWVi0U`6q#~T7c=82)F5HO=%NhL+HK&w5IaHd#_-!<7GaGRhdLg|BwmH_0j;c|9 zF+sTgaP%|_`TPgCqrELvJ-{{0`of#~J?p2@ZqfP*QwnBNX0LF}{Qk+6;#v>Dm4_qi z*3*ZqqL6ijVH3v;-ojO79BaNsybQ{ay8zR-`ye_?!iH+WJe{;B2>_?nRXgekS+8yF zw*8&b(F`q-UV}!5A&taEMNIME75ZHVsQ%sYH&rBQEKMRX!W^@b_<%0|0Gzt=T4{BYq0dRr1r?NHe?tetYmCmbO=I|3W#WET>z zZdckVW)Xtr>P5Bz1fMFd^Mv{ySi*$isZ<6Dh!k6{&F>+w&43&T0V$XA&Q3~bp&ob6 z?7*`fA^?p9B@^%g0}Jl#n5tTf+V!S&uKAW=DaL>td1@}MPrb0S)Y^L6_s5m?#&Pw8 z$ze=Ry8b|t`a&}CzIuN~L9kA#7W1r=fZ4Wqf%&-9R8})bGmLG;NJ`NTfC$K;%7R9sRra-w9!q71a<(-;onoKbX?lFVbKaRTs(T-xnZ@jD!h%ej$Y=-1Kzwob$A( zar@|lcNzI-9;*B6%Eqe8`@N0j_xQwj8;jnFHFg2E1C{}`yP2vs;4Pi@7Xj3nGC^B4 zCjrXmntKi`!cIKK;K=2%*qRx;N)F~!{?}J?&5v&P&++al5|8+l5 zk;`5q@r`S2Zmo=O1Gqpf3}fNK#?aVY zn&O6QCWc07ZZ3$WguZ!lWO(3~lR2Xu9ZE9^zm!rs4Q;~QQ?1+q4taRvFU(Dr*#R8u zGQF;!TjqVzd}-mYdUpK>SrIlE6LTg&N|bb(lZNeK$nmcOBFQt!VMo@^_89m-U~w0y zzGjM+kTZoyRgn4>Dg2iXgiP9cu9VBf?sTX5X3-hW0b&uD^LCRFv@^XV&G8uZ zuTWaLu|m@r0Hn%g_PPBj8;H47BvWh+zQFPNGJj+hC7o7-HyM!X=cPA#tmW5r1yY?y zWfgLkv!V1FyH#xR^Q9s2tS0zj_=P87(F)NPubLpjsn1HM34Z~>*nO{($Y-#7W_pI>L#b>_uUvbRcUc5x5LC(cd*ppjOo2NN#y?tp>_>J`187g9sLL)+oM$f&OB zMX~Y$yBF8O-XA$)cvDw9f{_WcuaU8hTIt0$FvEXQ*c z&z!N1Y6{QF`Ev@yTF`EynV;xv>1qi^=sYf(H;70{i%u_*S9)zF;$;t?HCYDVF?kFQWcboYogr9oa9`RRyh6sEvLn-qYq@ju{Edxy(0k8ovEs)Q z$2HyFb1I%bp6nM%Vihm_>eurQbex3D>*tBd6Fa%lE??KFaNQJ?sd!CY`FjuMI-)9q z=7fcd=lG~MSJBTd{4jxVPO*P`K&=h!((FALhq!G>c?d-L`GxV)o@=N*n)p%@f*q;y z=m{=pMb!CBAVl50<^)8nTHBiuzYXeQi-G`!5u1vt? zUrU#_wTNS63(tkPes41OzuNLvBS;eBKmm2^aCC0(8@00X{_2FYi(OgN8UcW)V5D9V z$5!6$lBKQop=ql4wS(}YQ-J4sc76UDE9buxNkl;A_2Wf_mVRcZcy)Umy*D_=F zrD|Lt>xaI>l>EKiSXxj6*5f06L150J2Dadrc67w5$6R5Z0dlukeZAfMh9>IV!|Pe} z=-}gXvW$42&2bKbMNxM6N zAr7;TL%yg8emhKDr@-b!89N#cM2gGV@*!I8+*HkJ_8i~>+QM; zyH%QtSw|4N_XRE;thvIvdf1tidaXGP*p@y}1j=z<^RG^5z5BS2_?;8^!Eu9#&$4><6;nX$sKO5W|32q-e-z{`-J4^rT?z|B2LZBf>8Jn1^i<$bJVDE{&H zkv=II@&b$kM`(AMb0ljFg8^(^uasZTi2;jl9F0zZWG{8;`-f;jlD*p_G=hvj_Q)=O+o&Qq<8JaAv3uf*{DIIJ8^a}JDPo$qqE389R0Q8^> zAqj}WnB|;U=7Y&FJq>g;kTWbv2tHCrN?47)rpbW%@>j{|^Zlm^hvr>-j&s;@{kGR$ zWOe*I>_4h?i-vo{6zF{Q0n?~$%Rz@TB!hP6+=lwv>pH3fn)L@7=mwb=p@*X8U{-%c z0RtrNuUU^QJ=Ha)*bezk^ChB$y0iV7G2!&aWyH@Xx}5V5RES3b4*dp;sdCc=eIz@N zdvbtfc*x)lO)pU6A1i4CrkU_Bx^MEREy5o7UOZX%wa3h7-Cm31|4yu}+H`5?e~Iw6 zOXTyoos7Mtx{`|1zqt9T*YPq%4=V?CD^$r4%1^73ymz)=bEMO$hHuvBujf@#K>LeW zITr)0JPo+=&%bmITk#OU1AitZLL{yFt)`|&$Q zE61EA-LnspKnDnf+>^?9OFwqo-?898SxsOH>T77d1j>&cmaYpfGpW3vWkuKgbv@Vv z5YAZph3gdf;y6Kru56oECi@%5-S&$i8<4Xx=Uw|5nQ2Vi-3Z23qya|5T4eD{O0}DZ zC$uHMu=$_i(?qr$S*N+F`z2Rep=;o+w`4OrldPvT!e>$Pl{55n3&__7OwkZ}T1$G^ zh+uK5th^^|(AbzAThRmz4P%VhSG!hl^#N{mRWEoz>QvcL8VsuKX}104z=1gNIQOgT zjCMj|PET_G_mQs;pB09)y)4YKBfrF?g+*)1%vf;4h1pLf6w>sexXv4o#Q-EQ`^ z1D)XzhV&i~TRXcJ0yHCME|1~uw!eQeNW)x@(B5+NIl2@Xgz-7wUFkE;%*(GUC;=Ld zHp}(J<`aATl#Z6PzWK{hbB~p&8wZXJiO?PHO)>fpLZK>HnrO{OlQDnLJ*h!V=)Ay= zQE8RniM(fJ)86gtXQtL^`@@L~{OjN7k(bx{2Y97Hs}f^ zPdk8USLIf|>Uh^iv&d>Od+wqMeSO%!*M2#8LkolMqYb2qWi(Zo$j+0YM-lD3)H)R5x$Jk3yrZf}t$gG1Ds(9ruWxB7z;j32X|`$50V04{>l%OD&(+F_}?2LjRq3axYA^ zt#13Dj_D||y{2`X6R}NJZ?XFf4fTlARf00?oDd(P1MUay2!_COA?&PmROKu*oNY=k zR9SMHN_y8EyxX&H<;=`O~Z*H-P6?`11UdO1pHt>Yv? zk4Hh!k>5-ftp?dfq!R3!lqr!^91>RPKT`H}BfRB8G-h|}jCCyd>h8>^a9W?Q!d_ul zs>KV17m57;qQF+1Xm;kn4=6;KC&D$Q#E5b=*v$nYbu|BdeMC~2I%FVELY(@Y<1?t= zw*g3QVCAGP=;_>{im$c0Zs5e-qdVJ~j$ z0KdAxw=OF;6^eHzx8F9uL^Hy4b$vdRo%8Yuqf`I%rcX9^bi7u-?9wmPIW5}a^-Xy) z$Jsv(afHe#@GGiCDMa@vzZU2N+Sh$q6diOxuiG@BE!G z79mk*$MaV)E_YSxZef&Ls{_;(L0Nl%&(Xhlx?nIyk%OhngoD{$ZT0>-Kx}Xudmt;A z0fPr2>+l1`kDl=6fHd6DP*|7K_SAg}!HUw@G_E0HMj=!p{yQ-iN~Ctv1G)aJ0M5=* zIqgMR)kfCWfOfxltzii#0_#ltX5GFk^!D}4%7p-XrmSL{QXX#0S)aI-fsLwIHk8c9i#1?ubDP4$>zg;S{u$dj zjrUe-_pOyu*czxkn34+os`LI+*{)(gPjUjB2*-|>G&MK#`-*-ChXkry|39p~X*8Sp zANSvxPTOf!wG=JIbU`hli_lu93rZS_+7e_?B~nsLD)#AODZ-SZwbl|5L@WtK60M-4 zYD*$2)4icRXKIJztTEOGpHy&&p)`MJEtUo&=uC*74~HszfK+OyCs_k(TRs6 zWHasY$sISY4;3h%3_AIk;(pQLSw`BG@4>CQ+HM*a`DT1*$!Z_Jap`o$+}<&v*$0pT zACb6*NK#f1hm_6=bJzN-jaAX|z#Y?Xh>=EKXEy1M-tLj{A4V3Oyg%8nvGHO2YlByc zN;kh-ekwR9aw_7#+yPDH;(VQftWmOg;eFs+0mTh*e7KPve%S36zvtZQJ$7m81CEY5 zE!P3~r7SV*D?Ps*MlGm(2e^%Hnomt6=@&WmzSlB=QQsr|wP;wG>1!vY+7-tNb{I{AR zFGh6m+P6q~8(Gb%Ek*w0ia>q_d%ruXu>nTQQEsW8Kwi3Wq0V(q!L9a|D!qr=+laSd z8Pn>EY-JN(S8^~x_uYzY^4y9}4aQ|oU6@kT&vx3T_kN{4s=a1x;ht&Ezf60d^#1+e z_c-m_^MjjolB*RPr$x8bbYF)5HIRYx;IVFVnos zJ^Z(vH(GIz^up1-+5DbgRTOk^CEX|cu?9B-j4YBqs~r6(kh~(X-Gbq)w`?|YFv-4y zqyQZov-lVgpyf#eRv_^OfVW$)A}?;eV^Pam-jPy%YZ^x!n?Lsi;zuieeKE;!@eePzdZ^{9`v zj!gQqz&O1r=wLpi0vmBJI1LO-kJI~BOx7?rmCxn>IHO~B;*I5j><8kM0P9n3w>1gc zcQuJr7!IuA6}YO+^c?1`$-h)VU0|Zw60{j4%(B z!scAoy32J)f7LW|R%k@3q?6Ub44+32nzAjPG)4zbEf;?6-tZ7#FPbelUD$z;+PR7m zDY#oYimHnYGAhJm=w4g8U|i6Z5)kW&M>aOMdz_1GJ*ISvxy7g&muX5}=2PHWQ2n0Z z|MvOBevM(?6)CkQMcq2e1?ppwm}*yl0uvUWT^)6M@6&sU$+wTF0fAFavA>J=Th%qE zwMV#TCwK|nc+^3@2$Y&3Ig?rOHYP>fGFb_dva93l$SbWe&eMdq|CybO#OF#$eVtW4 z&0V)D8(N37JQV)TS)oif4$x#LmlR=1djhN6JDdv~o?@ryK;sfko}UV54r&NO?)n(_ zUD-&DyT~rhLOjjCexuWFV}qDfx!lJCvMUuD?;T1s)IH1!eBF>aUNv76r$aUW3jTb} zUl!3w)C@21zFDe%nvF9yv3^}Mcm3uyKO4NSD+lL#pZQ~3V_PlPTka(h+tR*LIxjyI zb|vZ-H}v0X5+-?;k|s9CvkTzv=O!SOf#raboPhIx3V|NWwvrRXSGdV6*QKcqA%y>6 zGhA}p02t{2aLkCXeQN*TzS~g!J|~d@b3%FUxCb^TMBA`6amP~-Ex{}}-zbud%Zht9 zS9p9~^3+_xWl`$WgH7e)&#P8@ADn>~v4!A2E&)K=4=sgzBHt~TDhLUQj}QXM>8v<1 zvdc#heYIn&qo9P0&4BKW<+z*hHW1=FI^byaPS~N8K!W=fgv1_;3(obI_eb85#zQO5eK+wDtl zXnG1ErJ1e+F2wsmFX;Hw4rNnEmQTEhE!|6e^Y26BAY3Px>0L8;{xz35sUesv=MbN} z&=^%}a~5=~8$%n`nr;QXRX$5+%9~TK?CND$H35vsb&%8EY6q{EB#3rqUiEW&d^glx z=Fh><)?@PxhUPCWdwh8{HZlS!!{&BoH#FyEZy2hU%o-5+mE;q5nhPk+VLRu59`z0| zzEzR{(kr26QURQ`U46**m={Qezn6XAn1R85vk*Koc z?Q;W`d{D?I1MhnxHnJK0Y;8i;To52*Uh|%#z22m4Y(Vm3{2^R!5-1iKkEn6iAzEn- z$jz&TOHv1u-PIl0lm)W9xbV-~RU>yyl$L0}z##3>vW&ZEv!m~&)3~&-XNeq#c}pRg zF=KwsX726d=&c%z1d=>$C4rPQc|MN3HY0+G!yE>+AKj>dgN$}YyD!=2E!o#kr%K~a zv+=!iGz$ggZpp*kZyRB4o&{R6dPVZ5`!^V@`g~Z;fBP)8yi_%;BF&JhOWqMLE&TJX zKch!m4OTQA??Is<*DdlqCEBD{z;s0mVL)$F)f`Wia=vp@-{TB7)F{BrHv4WZ!1d{q zAH`ZPIC4Pe3L)uRBQVhn-Ln##;QqdDP<2QzS1GKI^Otb#I81lBZ&3q@IkZR@3buCD z;S(o%rc~s5REMSAd!&-0&;pY%Xu4qf(b_aks}zA0-U?HSdo9Cb25w|!aSLvr*gLtf zcY#|hGVX`Upm;i!Br&=pOZoH#9D>Pnjw1-W#rfb1tfC!LX?s)v{lMfChCgt%z|IG@=~Nxn4GRHTmiv(uxSf zp1odo$1iY$i;t4_-fdl<)a+I&dU%$)mn_vS^X3pn0-1oi(W8Rbp~IOl%)jyOwmZxV18^^M82R zU;kfywHA=YTE0vBw_{@dja6VM?AVGWMbg(y4@5!OOHmhj@=3s=J)t?_sj-nry-h(q zbq5IXjGv{@gilID(ptI-0GPs%@w@^HxtB8^01%Zs)2inqj=dRIezF&bYKujt{kn!2C_rG-UwHhaM)<_v@=Q|X}tSuJI5b2*HR za!bsEKRYnA%J=WT(y+LsE4@7=4~VAxuLqN3F*f7<;X(FRkKUjF*BOU#4H zd$0K|&{zXtHxoNKoiER9mZVNB6$&v`YXolR-!YmoyXooiCw)Qaf^Kdq*6%jk@tjmBX#5*d$Zk z{zoe$HFQGjsVwGHcKov5!o|-z2}l*(BTTFuHuCnJSd41gGh--!q!VE5y>|a}%&Z1I zOxTlnx^3k@F2#Dd`woa(OT~Mf6W!l>@+zpj@P)@Ek@Mfh5V}JE5AHIjBCXdagKSPo zE`I$!9b$Hd@jB-Vu~dhw9nL}hIJ%o`jdup)xz&+i2^JE(YVqGbHb(ZR_hg?~ zYiO~a3|DMb1T562W2AU(fy)2wvj>pkOjHY9=5BqQ;KaN_YLjr=UNoMK^1Toi@u=|% zbztw4;fqTPC3g$7%9r-2!p5by+uGO^GKVj`gs30JxUy#t= zFN^HA@JDJg!kmY#w@p8>^_-3P6Y^q*4(=^GA>k!ON_uWd`ybH8(<JytoBpkiPbRUoe$3DIsJ1-v<&WZLvhkv_>!*!d#&=K#a#8eBCzD~%RU=sW%A`! zd-D6Z(Zz#zPIr-Wjl;HsVmb?t2CCMIpKm+G^zKP<1oavB_Bw|cmv>BSh6wdZ;Utep z&_VQZN#A>Rn1B%fN^kGSKiuIxXa(AU;cq-Rg&r#N+FJxxampH5`MQ-2{t3LZ51a== zRL^3WMsrV8_M0B`Kq{ZzE#Eu$Q-9+zl(A|h)|hNb4AcRqC7bH|En+0EnB4pXedZ{} zOpZMm>6+4&b)Q|r92Zino5JOL0OUvGjvRrhd|Ieh%SV6pWdditGp0KJNjw;K0RenK zzL4ODwS8+o0k;)I!*mmUnK5c2`gjgT(sTt%6;8xsr1nd$x&v*;h}&{z!x7|F`APT4 zjSK)YzwZ8oZ385V*3;y$2~N2Ja%VooL!?6mtP37S3hv9!*tTnQcO6vWK-Cui;mDsR?)3o)*7U&FF>ZYk}qB!;R zlVb#qKfl7u_p}Ar$0NIr*(i?$f0;IiIgzuc zirnCtwtV+@KyH|xVb2VLjmB<@kw4}(VUN={Ag#yUCPty*WmVi0FgF;T*$tvnNt_|U zr(SCO&kdMaJY^|()$#f5ZRaGKt#9$XVg3vO^kuatfM48IgkQ|)3eDmvzaowT9$6_r z_Lv)((NgXXRIDB(y9V6EUQbKR$$Koe?1-oef_-JYL}4C#u|Ydyu>bbCWQ{|jue50; zmw#s;tR$-L$iZZ=iEhIZBTqw=GRMXecpy_J*#e@C8!!@o8P)5UkrHzX&Qb8;J)eWVr)bZcI$yWWEi`tU_D{E)$<(;tEK##3+z=YL+Q6`_um;N5Qsu2rMgP#|;4Ld*SlQD`ZJOIgroffiR# zNp*vI?iOap5n^feAq;#%ZsGequ5_P0rH00#bT`qA&r=6U+MvH!e+UORawGX9SobaV z5*3o1ui$PYKw=bImVDiQ#42MmcNF;-hL+45pM&Aw=oTkkr;lyuRsTnM{W+~ zd`}$1+#dqUc0Jre3~}tvGv2BjTW1Aq;%r{9dY=O_<#G4UAX!nejl#mV-E*C+`5~qg zOg`aU(gSJ}`;pF6V@-2Xw4*d?8?c~K8xmxEu$Gvt2t*D>+!5i(;Z&ob7_mP!wp+XgLa+Y8p^!luVPDz{IqLGb9 zL&nhZC>`!=zpa@fRHQ&^{{-@}KSOb_w5G0MV1{dawFEizPh$c`G0#OD0%eCLizQjJ zrV7uUS!AjNu%)WB*-RTIZ{P=Z3A=C z$h{M^vBkBqvS!iysN3Feyo6WdeJvFwDvmg+CdO$DmRz?dLd~HSC!XQ^Y}|k`C(%EO z^&*O}@m6HJbXrh(wam@D3~PIf^9auY^c6?k7YwT#OOSt81;bzqLk%&?kQS}vP{tGF z&S~FRqZ>N8N?!~zTrJIjZR~HmEMWGO%Rg9OGM|ROAv!nGVc790u}W7bC2R@YvzR`s zFjytie3$EhMQ`g!Ub~>;ZNXmFYk&2PLO(ntuAEY5+VYG9N1{~3A;4hq7!mD>CnWEn z%H73gjst%*3)e}bhCYONl1#foltN0_5U-3V*~509?ML>NxFYVLL%wwwBu2&V7DlPc zC(v#Q5Wjyc=ZS}Iv8g04HuULwwCQ&TcP+{YYkd`43ePy^$8q!NilVrvc-%dzXP?7dv}60^i^4mRWPktwf=~F}c$^ z6Z`pvS-8y+M_JiKfaVg6ceLKjyz{;yw8AE^SG{z{L+Bf~;~iZgMtx{_@?=lbvR|BS+x}{?e4MMOdle&G^JaS9}fAx zqRKa2xe#1B+mI}o^zkS{XU9hjkp-@eB;y-=&@BhHu_til1q$_@uap?+ybE68g&iKC zZKqco4_Sb`XKMV8r^>WN*XDh^#8 zo%N6vW~T6PBUZ&O&xk+BKv>pS$u%@I+F$Y#${?!_kZt`l4BxtS z?MHI~I`xA5n-Vy;H+B@dY3Dd_q#ZEUohJCG>`CK(#J4(r*o< z>6*3e#388>R1a6Yp1qY5^bP;ydsl_S>*AkI6M;~@j0h4Pyrg+;^3vNuQ7Ap@yo@&V z$k&J~3H1agDXB%DL_7S=V<*ZhH1*a7%B@chu~a01%D$iIQ&N#+{<_eEO@jC^9>OJd)eVpm@%0RE_<@| zIqmA?lGIJ1$E!$G5wahdRpT!+280r;>jhVpS`(wJLW<`$c~PWFAW}v;GGxUK00l1U z<+dK3RiLINd~fAM-H5E_#hS&|_O+uE%#Ij4PLY3)vS<>LlNs9B6=xwPwRTE3X-|{> zzNtpoTj(R782H^Gw%GknU)B6pd?gA~Hii|9(Jtcw!t+Jp&@=GxSytT2+UY439-6=M z%=8RI1c!;@5;j_2u0@-w{37;sZZ5RSLO%4;HdaCTOpf5w$0fFr`I?uHU$@_yCX??Qd zeW&bYS*>9GxzA?VL8&Sya)R8AO%1dQ)DI#P#%GB4IzC-(v#$1p6&xGymb%y$ z^*#^!-2<-;Qm|{c159E5)E&(BjnN%_p)GDw{04)QxPzqjoNtd9FAP8j2y*fLfZGh{ z4Dw_0N>xX1B!~?QRGy{s( zcqHRY6W3Qb@dBjYAe4-~%?SkZtPp{G92jw8b}L|W=fd88F71$Ugu>1xRDkJBBs&N^ zkr;ZN)IouT59&nO{uU(X=~|Do4s{p zc`3)IA`Xl%C0y%-Ui|Ukdgzs%*5RqE)^8Rcsxed@hz?(yKa;e<3ZXS`U@kfD{lOZ5 z2^8r>b|QsNACbAQ3hPgySK2&B2+=%nkI_eulY>>EW3X{J`h**A0wPG3lB7<@XNHx` zMYxsqEits4;9UuEr1PBWj-5T96mD}?_bCjy-*%Y&u|P?r3UumP6BRlWdnU!YWMh{- z*(Ppwr>W{tsC&VAks4`gr0-Z(q`Qf+Z{=a*%ah(=K3=ti=U^pG6WB*RvIMd<6VRO? zRK)f7gjq!*o$Yqh^9`+{hXs1E2Y^KikafWtK{Wc!V;24Hit6Q*khsBpz?LQ8$l-mFzPGP(j4 zb7AjeZLP3fqjWcODN3o7H+Q@&7hhJSJNzh+cB5jpp|w56^t+Z6;+KEAPdG~%o@vUU z@%!Wr!JZbEf^e2gFpTPjx$QgV14OwD``C%r+d9WHqgwQ*!a3bRjB!VC%(c8@GO|aN zVk-yRyn--%XBk7Zj7@Th&9nR?p*8IG`<*u|N{P+&TiNZ+@!8>%MWy4Yh?Jbzc2J0Y zJ!e^G`TWzhkpneUVOhOW{yz!ZC|lOMW_?4O+GEKfgn2oIRBE{!?%{_~w|1KEi{3PT zt4t61D>54@6|WboB#vy$n2#uxgX!X^5^v=@l{F0%;_~CBd*A5Up2V8D)X?9*g24l< zM>@CiwjK@H-3qD<-f(K}trtn%Y#F2~SphJ+zR>a01{#mEYV*%;TYh|n4HnEm#+-Oc z78XNm<cKT|8M*9x^kzrq72XBE(*z4gC?MGRDcUR|CdQP-;rb@q_)=bSe8YCXJ zYRj#3m|x2yguWJOm`^U?<@fru9nw_&z*39hZ8jn4-yAQ?lo!^!t(&YMkA$9A?Xes8 z=%vBJHeMCU>zLL${rE?m)F?>k??T#~WN_AaY`t2&V(2={2^IBRAD6ZjX$0wLnH9k3x zWU0^LVnfAt%`3? z7wC;%OATlT56VaBAZ!W_W>S)g))EU2)bUoA@1>==_Hh@38x{5K%w@McMQ8s{{gMC6 zpC9@W2K4rR17^ksf75LFX)pJb2X>%>*poX^{X5Vw;8L5=Y(mZJQEhAkod>QV|Luz_ zn%up)jGa~n=L4W|0)K`ynL7h0@6Yvn)`*}Dq{&^&Hjh8hz-;JXtWs#Bu;cMldns1@`e1UiOv*2y7+9>+xrC>Apv99 zzHutCx&B4<3|RBX$pz1H&#S+GPPs^Iqefg}dif;!SC-8>5Ntw%_AEp)2llGOMB`6~ zv%Skb#mPFrRpV5_>2}rB{4mY;ZjMngc81uuUOoz9H4@}UB^7*|O zu|u1FPGAe(18ds>eME}&s*Lp}S_b`9Z;NdZcEr@E;gK5}%W6LFT^9qr{Vp`uHBjEa zZ>nun8ElQ0XJ(E6J^++dj?+1T)iezZ67QFe_227jYff#PB3-$*gw`9g90uzlXPe-Vf8~9a`hNJL-bG!@=WW{#Q4)QqKAGuTPHbhhhxRG`6Qm+n z$8`PVs7Kuw9-n$rXEC^YCZ@yVf+&!EKdFXiA8u(WD$7(ZZx}j+PU?IbCcv|GVv_U9Ye_YGCkeqZ{zX5!B<) z#!D*NbIuno8kV&l%>OM6mf4eX)!j8bEV_U|AjIjZEUp{`OfgXg8zcQ&DLD_H}6qR2^hj?^#c_zLrTaS|E|BH1 zt~Li6(m|+DX!X_@sDY7VFE9@Ex6V8oO3>)dvHEeN>{~VGLf%ie2NMPcE7#8yZzi=1 z8(vP*EddM*ZnqMEBJOjCGm45mu(7u@+F-JMi8RwY@99Y{q`>O+T*xBG4lRXCQ&ByY6i?D&cN~V&x=Z{NCF62~gHIzuwzrl`?qlxA^ zI8WIz5+xuer?+vk2j$LaZqBe_gGUbA5RXxx3W}6*XdoEkXV{xu3jg?S-XNm$EotXm zLp?WlNg0}wv-CX~;M6#@BtU2Znz!HAzVHuQ3Beh{-}Y41LGXy~kjl}qkvXeq?W zT!kHbjgiQ5e-?79mk>mlTRBJ!zsMH6=N1G7;N6>%q_W|!b9+j3Vbm8KpYJJvlns)% z^i&>1UZl1xsMG5j3u6dJ`X2By0e-IhoG0q!W}$cg%2C^LOTwrvCi+S;ys~TM!HkM= z(@>ExhGYa)1%j0BxA2Hzaj@WeYolI|9EOtxg}WlZQ4}olA2w_{-J4g4&n9$XWD7U+ z8n)u=17v4PPSXt(xJ3d~S7?A7FiI5haYlB9wzg)7w<{|}w+NOPrS-)n0?(h9g%3I@ z*Qg&6G7io&q)+c|`_VQq@VuYdEz4Fr_7U)``7KOCU+;HZVuy3b#n1FGRiuqEyY+pE z&E-048Ebo%opmV;+8IVmi4#S_Z7cj?J(SJkFn4pgqQ`ZL-O+6PmpMaYKq#f8|3eJa zxVwKjO>d#UXOZ5qK%}w}l`epD99@d7zhkOF<(_B9D2X%L$CZVa300v4%3%P-0+ji- zlwV?E_q*KPXyiJ{%x?z#)DDEMLIoc>yZ45-8lv?!ZS+0m8jNk+wL5090c~G&CaRtB}jXY`&edu&s9XY z{7}w)E?VtPcD)Is;2c}-2Xg1_S~mpcO?2xkN7lGa_#a-C2bv`b8@XbWcUJtu#J%Gg z9bpP?FpHO-B&a|_NuvDN17XV6McOA$_;V5IrVK& zkat-RaW;K6qJ|>J8m?U{JPr^k^>Ut6I53?KkTFJM!OM{?4`}Z*>^T>#bgF3!PxU%l zLjur&Rf}0qoj#QI*-nuxIGTQW@^tH1tc=;y}I?fw5S`Hg% zr-2OL#&|!C2i>HV<=Z@&>ox7o%T%Czw{H#HPuXp7b4of19Jlpq$f=F-eo(b z#E^H>O__qi1Rf;@oHGJIC}bC@OWw93(s;?S3^Wl2N68~b_7qYhUE=b~^2>DNR`k?T zhnUR8F!{(=0VNf<3 z!qx#T+sik>M?O~F{H3{pO^!;q|Fds0vlVBmv12C+tgT+iNqBB-HfaPhRZ?f}Ni#%; z;$a$?1ddKmXVV{0EhmmgZ(GNU!@%wj?&Ab{i(hW*?1YJ=+TD$yY~W^iKQ>NpSKd7iP|t95s-(TcN*i)fzqisG z0?s?p2T4;blYb{;bzSk^TiCfE8cUl``Mv1)};+AI7mE2wQr_n+?b&VTRq+ldnZT8fao-X|~K1O~9m z^92S%Qe*Pj!9(#?J}e4;5TusiDBr--&yF@N#Ls7KWWz=`4FQw-mRDc-D0F({-+^e~ zsn%a+4g2Ed*f$L^V;zHyUngl#19V9~)T~p|0_4=Tc6a2tQ`KitDpyYF9RIh>PbncY z5Ibz&&Z3<)M=b)i*@7-Bwd#_#$^fAC2aMY-S=y`B=XwYAlOXe2C58N z=`nu-F>0w#+}BTf&<`-BS^-|{&O(REDe{iD-riAQx3zsc+oSQ>DqJL2Tj>Va|>o#sjftU6FOZri+UvZHSndSBziWC;KqRrKO z*@eBc1A0HHE%_+^!F<7zy2~I}Q6fKx3X0@UBxKxWPvzX(O3l!Y@J%vy(i1Po3S9jf zoVJWn=YI#&jlR4po1{qzb98^zuh|Iu2jF8j8X~i{xFyy8Aq&pq3Qeu)iX%99M@|F2 z!hK#oOiGgDtne^3@EixjFFwZ`b^Qujnt5g0S$NV^v*S_StcRkokcqQ&k7qI)U`u_8 z)ih`o!ebO7ORtXOLzJBV956O3na}CjhQUUPUHmW4U->}ibDThU8*g9gaYp9;WW4h&$?(TkHE{7NF2YqmGynKHYWqtDTSO1VWj3X;3 z(51?<5vO7QF3(dT^a1I*xpm%ke}m4bo5I%Trcz>u_U6vY(m94Pz%9c2E3B2=!_MU1 ziG2M}Y#YEefoNgv+vI5bT-*BF8p}R)v0)Q7tmT7+voV*%=A~+{N~3N7NKT7}5T*@S8dYi8%{+vukb zPScF{YJ~}th0GDCZU;j>0eTsGd)`^U*7moa5?B`&q|5^u-EJw^(u%CSuB|*X5IUQ_ z@naeFQq4)G>(ST-@n(vTwi~;GL$J}Dk1)Rx3D$8b*XoqB>1oj_nb8cAQ;~gR+?>79 ze%VFa>0F+=<ZK(~FDNUrL(y{XJNN2^jB1-k&&rSd9)sKT_X7bdpa(*l^SD$kRlYejH}*g| zM;CLL=Im1<9sqe$8Vw2*Tk?$;n9BP_VK}hTp$>*py=bOnk}QuzhDS~UB*mOf>zom0 zXWPss)4w z>SzF!W|VAf)yHSj5GsPH#lUcTm&NOS7CgnZn7@TU4Y#&@b=-i9v}AGlVJtM){>}@v74Xl*$)zK2!Y-u zWY&y-h4YQ0*Moo!YU5sSdToAyNxtTRW?n^Cy6xrpAx=htd?$e}eAY$DhPQk;Q7SnQ za}?@ZG>YWb?mlmOBCmy1nxT{FgWUYm`Io-Cqzk5388j9`AwHvg_{Qo)9Er`JW;|ET z&nhCi&FiQ85xtr@Lm}{mM&ai@kEg|kw>-;HTf?hr9E?O$sQV%FIu<5YnrB%uVp{=q z-f=AQ5F54SpcBaN;9} zZ(y8Dl|;D~EZh}(A;b=1dBeU1Q9K%cwX=;B@iShPgRL0+V`8v)H`B%bncJElfA(X= z)jV%xXI?P@YZ1G!De<_>{lh5em9Pv7k^1|?w>O$DZl)5F7C|p6EiP9gWSm%!NeG#w zN@rQvDp7+=ws$~V(33l3GzKYV2eH9DJK$p_L{xSbPbzVI#j&OErf_{INf3#}fFkCX zXNDXA>?Y?SLJHjZyiDR>?*gr_6ca7xh8=uvd|_K7rZ>Bls@q|9Onh!*!M#ZwE?j}s zhzdJ(WyagK)S8ImmQHSvzoa+lQ$iVwH{^^yB5C%~^hhp*j#5(jGsB(xSCU}$!=5ZE zO;fm+Dcb*OPh%iPc1KUx`APt^$Er6WjHEUc=pjT>Edb{3)ost!F}@WUL~ug|`*Syx zHA4Jbfe?hpVU`*Hg6P0Zeo#5GK_(WeQup7!MG=2xxSszodoudU6D|#Slv(0Vq+lE0 zTO{aH@aOw*!3Nri+~!cpdT761IZG?x{4GjtP5d7NkPEG)SmzHv1T91I+Bi2Pax~QoLat+dgE{GT@x#IZ_qLP z8L+Y+aq=|D_V-gfaB<{bKEVYkCkJ!N^g)%)TH58&NjWz3xI7Z}?rDtJDM#KKiI`zKb_!6IMI65_i25f;K4V% z#b(>CQJ3jr2T?BbIQBX7hrb+e<7GsFo5IA4C|APBIB(8WSI8*3U?AaLJ(snWRpJj! zW@j?0kgzNgAoH1vn21}aqi=I!n9s2-@@?TMmA81@?%G$WDtaF}Q5iA`GtK41`wq-L znH$$>#+9r*?>>7CHpZkh)=;F*9Bpkslj*5haVl!$m+OMyN1Y^f^@R3oU~LnBO1`n% z<7;KaUH<|(x(2|{;lvEuZ-CAIO%`l^9I3RGMl~;*9gRYifikXh^^j}iqhBXrqkqmf z$~VCL7lOuWn%~6vldx?RGs4goOO-+rvN+AZ;ZxPR_l>FSwpQ64)v5eo+oM>&@wx0*pUM_^%J}lH zV)8u-BZ0{{E?nOnrWu=M>n0-(fm?r>*D}ovn}Q54uPYK5^@aTD(cXA_)~9lp(b;jy zng(}$8^?3!PXyXm5B&PaF8unx?<14yD&8zs-1~B6@$PqRHwGzzIoKvRQ`CLLpYA57 zd8)!b&{2aO2fOmj9;kg@?>)4tkH86(6~1I26WK^khG?rA+I<`-P*+J}3WO9vi9#JQ zzQ8x3@@B=eEyg*_#UTe8%C0Ce1-)x3*6sL#QkD>^PB+9oBsir{*tayZ)|eH2mF|j) z(e|ImJ9dl&eac^S$bpg{2Y0Ll5Ld4_#=sM<%&1}QT(%v@$ElI4O^z}V>?$a_P$i`o zV5#;Ejd!2%=9d2$@M;*c9%1~uZgNlnGK{vCz{zd==$+}dr?6wQCWfar+Qsy3J^%4P znuPk~=Q(x%?zp8MZ=$fH5G3q(# zijmk>l$kFg%~S>`XYx^q#2C%N7^$f1LyJ1!xIX<b}tnhdR*Aa1x) zPf4@Bqt_usxzcCa)+8RU z<#+he4$v#S2h&r+<%CKr!I(-%27dM*4)TzC9U#U-hR`4Pd7i{kOtA=5Ltz#BW1Xx?mx z`q~4tqs?(D_{uRZ1TEoa%$Y&(nBiu7#9&-}0&zY^zaCT;cjmbN&8^Re12SA2BO$p< z=a^2d(&Mv+kscHH!DLHh5c0R2yB-%?so6O3$Ejh8l;nH@+;wf`_`HHm5kVZYaF@m| zX%>#H3BUGejkIygqHTJ6C38r){P9=X3JtmZ%G|W$F#k&=pfdghU|G=hf;u8_{2m!| zV25xp35;Eau|xsyR+pAZpt0N8y;;su6}dj|o73k#iQ3MfGqyyCpx{KmULh|{up2j; zu3t2XJ`5NchZ={Tc%2XP^*tDeR!{JGS+Xt3+$~w$bY@-9BEsR=O55Dq97-;I|9$q* zNLStP%&D#WYCrk%8u!zm+~=RnO}IkMOSg97{ z_yiU_r;tgnrbk!#Hy_I^qm%0AR|Hz9-CIs9-A5FY;O{r6yJjNUnWrMuWL2PF?ejI+7qebD10cr^;ek&H&okfz6N?0&}NRQHNNR zi3DY>I5vmNeqmEQTD8*Rta?sVA0T@jfe%o7NNuG7%r>6_!jndiS&);*j=v_EBy zyczhKFHs@+zBzMlTR|FkO(&e0-(lEj+d*@lMB^AoL^Cad!b1xM7ldYsV4Mxlh~#}s zbSCFUE6WQlGwh;MTckq8BAi>;fx6l{H-T4@aF*rM-~&M)@2Ujtu*HQNnM2i4vOyxP zDcyFn^nJRjZ(-@X-f9`FIsMawTkjze+EX>!249ej~Ui4CN$G%T>Il|E#_CwgX@?*JTX8cMT_)Xr_xS$M~6(}V3G%+ zkqEey;RqA{ihYQ}GmT}*JntjcG8Cgk&K~a4w_*c)0;>Hy&WPZ-_m(Q>O|KTVo1W`mw>>dD*L`MFE{k^; zR-G;R?d4y3YwW4PzvyOm?oryDD2%`aA@FVA4Z9~&Nno7%X!dozFEPVo!Ffnwqp$=J z`1p5F%`YLhbQ9JVh#sANmUT4)D$Xq}Icyth%Rs<5;*h+3{>2X0&&7ktx|EW7E3}a+ zucts+_hQF`pQ#4>Q@;?s9uHn*_+yV?D!ebB$j55yxm$Dmn39Pk*rg5YJW-H+oE4V< zi!=PEus_CNx8C#@##`?aaV#MDYG1OnuNl;NG)WOU5rKZ!6^^T-D>cB@Q8Y-73(%%~ z$ewuE#9;O8F5VQ`bK53uFWEke0t?8=5`21$l1zJyhS02S$~Y@VQmFh~072!tti4>; ziTSW)n;04^g^l%SWTC0>uBA|wV_3l3;>?1kz#hmy$(YM=ClAQCN>uCWtw=N`|K_3G zBI;R*mv^KjcA+r@F~UJ~AU;2UKV}+R2f?Tj3Ad`-)#{`5FSHB>f{o(jp46G_c=#tTMsSa>XE=#jHQaU5X%62_ zm6r_0@SfF0NDk{Yb$XRu0oNaa(G@ICVIYU%D{Up?Np{zqI=EY7zG@nj@7%A!Me3h4Ag#NZ0XXcq; z<&4s$f(v6CT1N5VI+*Pp7JT7_j0O!m1-Gv+!s+P##nA)!R>H7$azcTku;3Mt?=1OK zI8*oz$$Jvtj7|byTuY{_MVs=_R4orwwiA0n0^HG&_XJjDE0;|~E(Ap4rRx7R1>_jW zVNTvcpVO3*S7A$l&SEZarMY$$EIR%DxR1-0*v~pY%Er?ouN1Jhgq~GM&pZFSLkv)^ zVOH4L`*W1EZuUEd(9C_RIt1ur3pv!nd_L%EhXN+=%4oOYjj{=AazNR<0Zi@RVvg^7 zk-l)x@Aun1N7n)-xLh|n zF#dF;N?vUD*widS-wHnp$oPWBe$N|HwkU!Ko8@G&rEEbvSACt?S5j9_E51?{a%QQd zuiv93C6>u0LWSe~&O~nxuipiX`|b##;n|qeCuk> z15w*aym_r!H);vdXPxrLmUbq^)4J_!izX8K;C`(7dTS> zliF6}L|u!fOvTufUN+Qba+FfZy0v+vlxKosUE{OmJwws9%n9-Rk)OAxZyloyST&}E zHKhAo_YBRl9BO^z(PvgoFxVpdli7N?y48-4FKZB=EW8p8Y`&84lB-Q;D=6oX|9x2_ zWqD-@dGk0r{za2R<#r7B03dye`8h0`uiYrd|5=u%x_;8SN%PkuvA2$TtmC#0e`c9z zf$u<&HeN)=LSP(P78`Ot)oh3%K@p6Q5wMAp_nQjvLH$mz-;pb&{CAnd=gZ{k%QbZHW!n%U{wpLkQRg_$}NAG*L3X?IL1Y2hya)$#FTU9QZ6X|<4&dQQ~cZIe@u2X z@d_E~5{R96>5?<-;MVPUCmK)G2kMcjz&mTrTo7 zkAS5J&n?Tcl|KGb-suXadJnk)a^ssTZG3tdffTzySNoFg<~(6j zqzXX0y5FTqzB11sHkR$^UL3n>Wn_km$@R7dtT;f2@`+~SP`JBxq(J8^2Q_GD(+@}+ zBGy*)-}X5VwupT>hpsykjNN#UT%zX-)l5$&gC&fkMml%8{7*R=`ubFwo=rQ_rK-|v?!d7FZ3Yt;swE;KiBs84u7UPK&Al+eXIWMfpH_;P7ai-Yw>mss-e2# zDSi3F6qFZ-U2Z!S?hg1ikeq`uj5~#N>wioTT7S=e=ys~ zaaaaX&H9bt^qLOoVTS!D`w7-EE};IV${%dBu!@%N&gX!G;KGD3PFx+$snzrFW3WeC zW41Y!^lpFEXJ&40?bX_3#zc$eJkYCnpB)%dl#~T-)Q>n3hkx|we;u30d;j^<*~VGg zGcjFlXCiowU7&BxD(#$QUc-{UMos^n)KW;E2Gw6AD$%OXl-1h2P(RVo8X%EDke8`N z%mB_)YRqF^qBAqcHMXBNO06dJQ`RR@4&uD2pUay^6C90pGV04E^{msNzGD@;fssh7 zv*l&BbK`L3tbkN+*C5oi=Ua7Qj$W~E(Or1SF`Gw0A|n`4Y)Z%2Hi*sJ7F+#6w5B@M zq`IEy-}fEMLS%%OdCZ=s=C<~9IbWmiFCRRj{`vreUBgG9uw91}(A%?~)+tlH0XX7U ziTzF*oBaJzKhq1q9f42^1v*R=wZwPM`9u1jFA!!~>gq-{tU^P}&&w&^_w{E3>KicF zT<`DHclKL_XY(@tIMaXaVM?eg1UBhM3R<~Eg4bN?&K$DhhijOYq; zX^Hm0Luk!iP5#YmO1xjY{68}^unqMSz6BoJT*rAURw>-fN#$izis`((yh=_&gU_4m zBkXC)2`hwOr+?D>6ian-)jnyIvPj+id8fC_yeP`zZol=#-bVorcMPp0b~eg@pmrt9gKA6UlAA?1U4>)ZNWvYO(JHmY;N5&EXcZbx%h+eVZn@vuOg`QzetlB%aaim{^&i{|(V%A~}tt~_pwd3zn@rmA=qd0-c zjWF&Z4P~XGGN-w@xoHQdS@6s7=eN!?aUqzVrH-?gG*J;7Ud}dC^FFo-V%Ck0k2LLu zKNk7@6`cnbI))8KG{9F9Gyn5d3r?AEYytY_qHt09ZdPGJp(!UAEWu-br{ap_Xxzt- zp86wksYXT{C&r+Bx}w3pdRt>_W6g1yHuPBIk$l$hf4=h)#zCd}N{M%H)Uh}KYta{! zLbw?4oWeAyCsthL1^X*}T-N5|%^ud3Uq^}!1Nu2gcy4;c0?-4PlE~6M#}amZLey-H zh*Rb${XHvQ=csEorX_$h8h#XT7ZB+WlWHpFR&5{)!~U|bCdEf>4(|cQAPL&@ZEB^2 zihQ1vcI_HrAY>)cO*IW7Z%+y?L`TX4r7AJ@vy?t_x;Ayesy-4cZF;G)wv-`$qCB|m zceKqh@Iph3+&2L#XWaKEZ_nqR_1xB0Z{y@F}y?S4}C zc9H;>^V)v8GY7VOs{}WS%`T>cx#-c3jrI3^t@s2JTsoSx!dXcv&0E8+?(szXtR8C;$G;DS!oN;4~|L&FdEWHU7b8xi^_AE zbv2+A#uoCMN7_m1rkPiM&Q5h2$x3^uN_c>IM%ves{!QBrJ-oO0(N~z&)1^gY;6@BV zBjCc_PD;%u>0d89bp=yQ1e(>L=ak_-y_*p{!?LzT-r}`&#C5b!|Pq zCC^dbc|@^aV873dX5^9nwKo(F-9HX`p`q}Fp8c361$Mm_l^9wM30gm{0JaI(I^M%~ zTK*JuVIg`SWJFODVoZ}={)iVjX~$82B?AJEmf+FNo-gO+kj|mv(MlC%b{_9-2g=q{ zWe*}NvEsbI_@y`#V$oQaYR70Ff#XH#`fN{~qn)|D6|I|cx0Z()Ak13cHC)>%^>{sS z;3HhqnBPpWx`%$Dl=FJ6mFKD&(D-1c|N$HN;9=Q4wTKVAY}coToLP95mhg2Y8HcW2_Se)%GNR6+?S=i+Z#~X!21Ss)7ELbD&(g z4pVkds>dKtzHU;-#Zf3-=j`IYHP*~{c4o}F6oQaP6mH%Z8TD+#vFKPy{cfKYMrn%)|$!NK` z4c}b39{r=|nJBxpO_y`6V+9!j*q|`ky3WC{f#Y;7`5rhm9awLtxB2?|0?yYnvuke; zNtW;0!+pugm(~TUP~@rjY*mc+ie2T#3{t(U-Ct_1Cj_O@RFz#cJu9BqRz*$XF}M}w z239pz%r!y;^7m`mbNQ{w+1a(htc=qpN~*W)Z;1oe45S`eW94;2y!!m~4!@BqjwAf} zSpV-QHMhIW&3^t4^*s+V&;1yhc!g|bZ^ffFib{x-0ZZ9_vPPNCFpT}(y$&)+Kd&qW zF*jJ>pkKViKL1v0XSatXf%Hw7cSA9rT5&!7+-Ab5b23$;SX`tGdKWcc$uNNN6ZSuCCs#m;|K24!#N zFP>U{OI?R|@($P=oo~Hs^R;bdLQaG`?q|@;>46lkG!@+-!&kG#sm>Sq6mw@jr=|uZ z4rGD`SUl=|b*1_i+e`Z|my3<{MxBGBSBSG6qYt0Ox*jQJEq(~9RS4Rz-zSpfl~y0* z8N$eH29&gEqLOk7boOGr1+F${DjIBI*F22X6)$yFG)iR!YlR4^g#Eyw@(yL4SYzP| z-uvqL-qqCSH4D&V)~CZ&kGGGXxg!c4!C zmJxE+wq1tV8$~;T;rm*p1nUGT3oB1~mnis-m>Yy!a&1(OR9jL+GqKkLNgrp1>N!cH zby^+7oo$Yc@04y7#`jBH>686_jDFY+IF9iO*Ho1+@Ow&6T7PN0PX4i`%hE2)1=!@? zIBB-fN;1fB)6P7BVMWN?DNobSq5^4qee|YKR&%&3;e%5z3|_$|wE`Zho8a-5HDB)4 z(7S6a4NVvSv-&+uo^G;0R?4Q59yc`&?iq^E+odcUTLaVVK`9zlTeI zCb!=)lQX*hlud`3sU9&@cVXF@fGOem zheE0MODiiMT{p-kL(#HZS->q3`*#Mz(=Y4hwh|h`_KBD*rdDNZz+!Qg#u@oYUxB%w zPipuhj9mV>!+_HsvElH1br@~ta(hg8Y{?EzU*Asw8gm76*!DMy`Fn~U=s2M`S5m!|=_Chsc5LkysVP#oRh_B-d1*^uu*k5T7W=xT+h_)J}^ zh>?=D5--li;&+qYK5xDonjWycZ4Z#^aItuG`eDZ~)J+%86aB6Z>cz_%0=_#7EzU5a zZb!d+K~w`*9@zMLN^3H9JcHjI9QKn^idc70wNE)5w~;SMNGsU9 zrbIVsziF{{706em3~TaraUvuPN1x-GZadNQw)KYc9K$U}(hdDu#itCT!0M*CTU(1M z*K~Dwg0y%&0M>JBQbg(G93s0Ne}O3Lb#enivKR};KFa_CavjSYEVk3@8G)wI&j?Q) zkSQ<0WgmdXyn8!L?7kca=l#b79t|-LQPto?4a{RMsNv#yXB}NBZJmZyyW1ii^`v?Q zM|>?H_h6TB*%i(MNRj}1`tW3;#Dn?_%lE5?$Y3BR_JfY;&N~mx{BNF8Wh=oY$h+8K zj9kgkR%yP@Xp28j|JdLtHk`-PCR?yWm;);~fof*kT_P(hv*j})-{qQ?IT z6w^<8iIVb{HYvU#_JJ&IWnzhv2{o##-gVDR!%NXijc8#hPvPno$>hk$>89|v42hCE zwPScCdP>Lap-18uowaqc^fPQyh;;lr-jY#6%9YKmU4;LOmODjY3$sxnrx)GG194o1Vxb_gYnH=4-1D|L6DR>=P7tRPFq z$Ty;8%h=wG`nMDIugZBMW82eJML{ZGn{f@d6SWq)f*GrDnXGHMxh?q<0Rcp7UkAFy zqa&f%;?-J29`N5r-A_JLKT1~}*oUE3&57V>zwz)`b! zcw4EyXnuyJV`weVY|?g)o@K}NOZ?L+xJs*1zLjM^_&B3Qm0D_wPue0`kQg?VYi9*9 zSI_1Ob`f7r9hY2_HjV4E8+m~QmDn1-c;8jz$xB066F1=#{`s5^KO}_qT!V_7e`GPE zOR(r<_F21e!?NiK83C_1PMhU4%n%>UXwzE z?*#(qc&~4C=QNi;Eo8HwD$Q5)6*?(y7rxpWHd?&=Hos)2r;`KU{G#n9W-Z00lP(~g z4nxC$zcY2Vl!sVKhVBmVO`)cV0(O~xXdOt*h)F|j?I=j|-tWV-$PPlus&ZC88WXkq zAbl>NItytqkkp-7;LuY<>C+$bhX4z`_Rn}ss9b&!S@!Nv^yUwbV5{n}Wj1*6HIre5 z!fYQ(qW8n*F@IUlS@}&?O$i-hvmi00+nD3hdU641YRyMC(089r=T5=I9I)S+fZAK$ z?YXw7;0Wefl)`gvoTXPT#3$Kz!bkLu1~p|!asRC0b*Z4jMMu@_uhQcX=m zYHuN(yZG5JwOe*R_jgnKqEPs@52}B=JPuv4w3zdy`%Zkhn00Z%DtYzD%dX`CS--R( zyj>;yiQsnhU1(cfbWdXyKspI`7%6I{rl(?{oVEkh9g=xntekiL!$z*@-(g~-FYII} zBP-sUGc5X?P`uwciLOs~%y3WtU{`yHMvurrx;WNFi9c zS0^q9C1#T4^~?O@iiA{}yIO6|B9JBC%DZQ#cbVz`)@Adj4agN=4sW-S51-E!{yLWN zT8k4lwAzN{*u3G5L4=T(3t#*^0ICrgoF%$Em?W)R66sTL|7_mT-E9s!-{$k%vo}Y# zkOpveG;BWC9h`b7?20w)eyQ+g^jPy)6UKPcHeV0yl1t;l;T-f^ESsDQ{jZM9qC4`g z&?71t!gN>Etb?%_E-H+d0iwy3&u?=WyL#V!aA->tB{tzYTis3H*G?c(yR$ZKy5D?%vWxL(GDU~y5hl251&F6ZoTXCX~mBS5^rlg`|tBb zw8A6fJCn?H7W@w$7HP|T)o~9}XtMNp9C@iK_#Jh>xe^9Ltsa6m4sbR#wsv-qsYe^n zQmpFhzG4$aXmyu!1FRE&^$%lp*(qz3AFv4bVV?+A61%-59QVPGW!x`h8qr z!F%iU<2h1+@UI=V7#*(v9-{)eG_dn>?1)~`165VgCme&Aah83Vi{@?f@J2NMBxC;ogV_V^V;neI%TnqP_74UcX+55%+-$jPr; zG`;s7S=z&xsJ{})92b5Qr{X{P^`E|1TRpsCHl5+)4HN#f*u3==>}H)NwYy}5Rk1=T zE~xq6xYA*`g}Nf1KOL|%k?!)*)#JIUlQK_+D|N)`HvK10@TV7gSE}mP%|E&eZVU&c z3>%_3=G7Op8J7l5E7?@;s))@;YYt$d-wir{cxjv>MjzIm3gZ-b8 z_eM12G4u$-l-VCVuXv8)z!v5E1R<{m5eY?Pr_IAagXI*TK(*SLN8 zZNF$UDPHc4hIDbU2||Xq;LO;(a(K`gPH<@#%)bKK>tQfa@ID66A{*Ib?p}}M5xmveww(M&GmryZLPH!@tdXQzX=Y8Q=9x(tU7Jkr6r8|6N zFZe`CF8m%#vdipFle&;57i7Q@OR&jR?dEYTBahihY+gml`JXt3*YbP}#?B=kbkyql z7SUh*F-lqA95(j;Vv8v43f4k14=QsSYhqisBX*^K7vP!`Dg)h->teI6dmLBjBAp8K z5>of<<+1JEwoA6hpMQIDX%?GTWuE!K3V=fbYQHsE0tI=+21F36ELikpyrHgIIk+lQ zE|#p`%GP!XY4Dj2p>#LWGTQC0p@CILt9wtzVP0&(>g`n}At7pXBGODg7XB3YG;L1K z&dy%rqJVEyYG{^1XJ6QZN-%KOrD?Iq$T3aR1yTpG9+FQtrZjcFWv&_7)#jR6tC@N6 zS8)o>JD{I!K7u*d5f3&R?jMPe`uw)<_;kjS->V#qY@Za?M8$!fBc%u#_bN#!=Zn?5 ze7UOHveM^ESCIB~13SK*d9uG6dODrt7aj@maVBJN`LO#YqoWG-D8I>M2%mMrE5-xp zEy?aYu3TneD8G&$ToS0RP%tN*+;;lD9kOuk6u~HjgJat6e^3-(Ld8r!FUn)~CU*2D zX={(wQPO#Qat;VHT<9rZHU6R}O%Otr$hda;&0U~}lNY7KDUQz}iGg;p%)csv0SP6k zB~&h(B^4U5Pr8dfL6`TRxfA-CV#oa`!mJ_n1@ZB84?mXD7W0pZPs678^;wY2Niy}`MRYg4mFUWaQI_$o%{`#{j+EwC(eM*5sJyjrO+%nh1dx|; zZS=?mSVe0{m(8k+x4Y(42^PR1J0ikvxs1r}Hbc+w@mX|xi8M5SH1IB7<(d&q(QG?h zkF@qHSyHoHavoPTr1+Tl5X_)XV5yY4;yS}uC}~u`^aMjsL(9zxr6GpYDfuI2a=F1b z3QBhWF@e^aAyj&t1`#tzswR`@GC97*nJJ_eaUwjl%PP!y zpL_%{&J=p+wf7e*@~WxE*!V_SS11Vg1HesGI@*A&-+A;(`Q#ev`+q6J`c?0kmFmm& zckrN0)Q!x|Q(|XgdJ)m54fx&^wO`e>n}1fQtb01k@uVHazs9O4X&8afxOk|&58KrL?-}ENB6WRtdo`g zH|Ib?Vzv5DgV~x~kT*RjukGfH(*2;aja$gOP^flm?4K{(f z0eB~A+HV*jN}_WQj`(!Wl3ql!?$IC4c<|Ox=zb9$)^TzbPx1os3WoK=Kck45e%>U8!g6TaG^xdr zeB{l=2&MTMv&YXL8Pn}a?T2QFC-KI$ZGNmkGbe`_r4J2zJ3SB@sJS4E{Z$bPeS*X| z&@d5r_EoiowJ_B|Z@dyBLU%}B!yhv~06Z}6A_9WYcCy=bn`hNyz2syHnn%TeG2hp) z;kLcn?1ZP&_1382)hh23;ZdN-#WZ2^cstg;mi8!*y_UxRZY{%J4V#~U%@v z(XjZkHknC{tT0?r&LE?8I}Sx(O*=p*L(@iwWj~%sUyn0x5VUF;Rcuw=vUogNC99(x z<3zOkv1Z@;F}QCM^1E_>J9v)zkzT$DsyM4gMwufu2Ef}!sIP8))#e^gKRnXT) zm)!d$!h>%+d|Xu;wL}H=ZQsSP_)h=Yj;np7#lmJalrF-Y=FA;~F-a|zQhiz;lTeL# zRB?{ncY!m?#pd=$DCG{e@N)I#6B7NEwukd1sRyThPU}B}g~5=92oQ{r@5GDJoRdNP z8+9B^wlhxR+wpC6ft_FzcWPdQY&YgrR?`10rfd-FW|{~T@NPUAV|e=(OwEQH0PF65 zO!H}Tr^198Qncu(uv=>^3)%_TWRd&yWZE1B{{g7DH>66$f>@11ZNSunHw3+?$II zzsvyBOnbChk*dnk4B1kIgzZR+Ch+{)S$pqk-(6bn8Bi|}N7rpvN`|??d>5J_vJT>? z;wjVMNv#6hDNS$FCdhe^@L=-Wxmxi|YIDbCDMG!S=Bd^Hy{TOwHQno6$gH zo16PMf6VN|p>U7!nHHP+LyPGy6x5vn)Cj?$)@{0okPbEPsKD${lOq>w=-m@o_QNU- z-Efx>P=9}GBT2q8yIU=Cb1tSz9zb@6YR&08>a6YajA&>Jm36?jX2DL57S@A)8Kzvn z!vsecW&B~kvFAX|**(MZC3!za^hZS+NY7{&^jv%|0>SLG)h3}x6#r67s##lJ*Nc@C z8JaI?5nAJ5NyFUrLwbf?pvY(!8X)ZjFL60ZFM0f?p{WED1x^{xMBB zvD4YUgD3D_CPwJX9C%X|Yq?0>z z{4Mm;z-a3R!xn`iPhTfkwE1vdpQhYHtR^4Xuio6zc?Me3g=T0CVTxL`N4z(3fsZYn z&U_@Mm?uK5{~#Zam-0-1-$N0Oo0YR{qiHVnVtEhd#y$GQFp+iZ9V5l*P3Fh=wJvns zrmGE6wr)lR;`|>%HP6RdgyWM*#=f}j&kBRvT~9oYkh*atg);11CLg_y*MJd2$_J(A zt5bgy>kTz=$`GIzrM&DC`1DBD_IYNrH2`Fyc!oM(I9{)Ov7kmP`FuS2$rCGdv$R=d zu=Kos6Mg#xIN<}oYvVBf(yEgH?VzU*W_k(HXA}ZJ_MJI6&xBp3Ui)Dpzp;(ICMDQ+ ztl&($mNrZ%vl}RPgaM1jp=MGQ2n}&)sLi-{T*)N)-@V6bOt)DE*_mZ|j?si^^|Y7W zj;1m{Ualqb_l{w#9lmxh+)=<`yC`ejxAz<3`klRP!KtrcC8Ci5DQEhkF^?iui>%TO6be3s!Y3!uUpS=pZMJKeDRFE*j#~m zad##Ek$;s@_$B?u<2CjW-=tvo)2qqd)m1HK=d6#nHSuoUTJb%=U5L2+T5WyPTqOej zL}_Jt;ITpu`*HBmv;6_SAj)@F-==#HMJlQR#@|_$Z|y5ADtj0$QVS%_MR0Lp)TjN* zuEYp##YwxIo;H#6?D|Ui`Y)g4p8Rma<^N9nW)*2Rk$5(wCB61Y9r=`|l}pA50-kK3 zxRgbT{$+>tnslc?ST0~l?e0~av9Wnp+juhYKuz(s!>qAZbE&;O%o-gI`*O0K*G4?~ z4*?g;=oA7`K}~-T_`u#}bljuHrgUp~=m!};W4I2axe>j|0DqaZgRD-zI52jVMb|-Z zj!(#_=Tq&s696(?xX0X71Z6uh>>9$rr=s1jdvUXJWxgX z$&VI?@~@+cD%Qr4=|r9CSzWQE_puWXj5W*&iuwNUC>vHX*Dit_gaoFb@u#Lox|@YlGBSw{o# zhAuBWd%y}h-u z8~-rNP^*XBsuto`YizqXyQ)(Ab#UW}u2QZ$Qm&x6W-8UFt?i*KaPaDPe-^()cWt-c z-&tK1eN>h2iI6+{{_QW9%aPcAlWnUycBdJ!r`FklXL%HtzZwSl3}v};A*)Ix7}jHI4^mQ-~~t0-Lh))bVC)|`2M^z4&I*XFl4NXR{VLCv#MrjAa{FRUj;BIz{y;} z=ZmMZq1G2`5hYYWeLZb;Kec~x${ykSX!O(Sq*As*tJz=)`Q#XU^X6e8aeAGOxf zbGeeiX!3^r-t=ohyO-~&3ptBt2A1hAPEVeDntUQ|oyS+7WuaKUQdv<+$JzVk-khGo z+)St0{`GM%EFSmdd+a>d|CH6B;nLb^zD<5!BCft3r3ks={8Pae@%)wuJ`VCXk6G6D zs=z*01Loo{mydz|5$i84a+tC=>CsI!j9NC1B|aN^hHJ^28ULAL2q1Blx$Ql*t~Xw% zI2!j16bHdC%t4(vnqB25L&d!#ojE(rr`revv3!S>0e6ed^yb?xPxou4CDsLZ7ee6_ zW7CT>h%jRJukQ0$>1KJ>4x~o?xN`W!NMvv~*3#{WU~HHEMVV8{kF=* z=Wa1k+^3@|;yS^~0)C$thpk`bB0Q|7eU#>@Ln{sMe}`%kZR z_$g^uo(Ia;6p#9qRyf7bqUnEd4}Fpm?p8ep>fM&{H|1Qf=l#&`?;R#vwYBSxvs-9N z62)=2AJV8C3;HO^COGWU?_ldlvdYO-M7U`)$!mLeYP|xkZilUuQc^|7U)AFvPwa(3UX^r_wdG;S5FPA(UI$#t{nUjFf; z`_R#xvSJmluk4fg!cRq}lxU+rvIqGjw@{BAs=LqLT%{`th|3dAxt~qT*dg~?03LTq zxGVh!^mBC!B%BZX20H{uDq@3moDN1O!gVcU43SgU`G`dONBaV!v;pqEkm6PIaf0$% z#s=HbRgXEWeBu*Ye!>e3iq1nNlT1@}Van91REjod*O?*h=o`bk{W>d~oc!P0Xkhey z>BUK}e4o#@&K^F9w9mwie@uya9PtbjN`f5AI-SuY91~G$F=UKSdNJB~c%k+fI;hCT z(lIHQN*=iA(PSEpR4;@QgSDayJ?#BU0AS{!N$x3o=%G_uiLI`;Tj}b)QjG!J-3@xi znmDNcL03ROuE?pa8ll^6!bPrnWUZEfh*oToGUfba_V$|vnwj|u`Bn2MfiQ8T5_0~j zTUKlFZ7xJ@=id#9$PVI3*EcPXBN-mU;{dd(uiPV(r+;BavPMQP2|a8k zUsA0Kt%qRhhQo?zmPaGIj@;ntVa3p!zovj9dGy_1vjme7#UmB#*jVe0C} ze#Rj%h)2=e*)tEHK1j6EPrPiiVGQQ_YA@O(oH2X2=e6D63fXh{{|LPu~`pI8NHMUJIp_(NQAPR#Cyva`OIL9|&W)pAZU*Zlk@K z_PO=F_m}DY0Su0`gSpd2oPAWkb8pSWr<=c2GlTT)PbuHJOLW8;~K<`R81&KwRS zrd?wUuhCE2hlEmO$h`0N>gH@?bN=N=?MaNcw$$kzg@NG)I}CqBh6Kx09zv62XWNe3 z>Di+D^i`j4C#$FDaC-&pSx5GPXPQ$}2f63kEC%KOZqorS7jw&T1L`=f&5b;-eRdru zVAJh9sRWEp(jDC6q4k;ux>Wr{6q_z3JRXjL|1>TIdl%0@@f;%Ae&K{Sd>%i?FRu}Fgv2LM43Wx5S_tJ1t^Xj>nxr95 z<*=Jy2g7b4QYex-KSaj-L*!%fsR@pg1^Q`7`Qq-Mn4|Ao7j|rH3}-O%bamu6hHiuf z_IVxHPE-jXp1yM%l4$%6L+q8wz2JA85mAtzC~gBLR(qY_HG&No(Va@y+#&R}xo1{ej-Tr&(*u4uph9 zPI}x~CcGIB{oGRBuvMkyh6T`?9K|-bXv?&fQ8;o#xVG!FoyntjTZz2Z!5a=O6{e}! z0~^nE^zQ7;;P!FoR8ab66+^FLn)hUs1|L;^`KZ5SeU;o7&f#R>!TDPm} zXE@xDx5fmr{1j+NuwFu7z4thq9aSg^mr*@OZXXqw&6;@hBwErid5If@&a$cXXB)|v)QoLn_cG4}uS8wXP0om>5%vY?B2@L03%6XUUhAgB zUE#OFf=ID~Df)jaq`lnd-WR}>PyuZg2fbq0GOi1e8_Z;Sa^`I zMJ{z^-x^p8wrbcAS63R0#^ZA8T62MlM1LOTsD!^uo4|&oQmQW{U)COU^Yds>e#FU7 zU`1wXI$^MHnKb;5>6F8M33GX7P-iA>>0W>IMm6AMXXdIL|B3;YM4K+P7ju=u zR11hTsm--5hIi-n3m{F$hrCMK6CBMj;|m5QM*|BpKHCh35tre8CkIafUAvwTZ!RSf zPR;K>(|-efQRMoX1?dUJ+@~uYTJmZO;1`Mm)zF7BGN1DwkId|8Z?p<++YJKtSq@zu z(z|W1g`sWu4I=VB+6fx?+|hcfQ*G|;Kc+1Fd;SEghi+Gp?))x1YM**_D*rM0I&%(~ ze{@x|5-4&~T8Pf=-+Dz!L%0-5>Zy&E0RgPqm*qTC z4dGC=_ls$0$B}XYBP);MHk~joBo|z_O9+rVD-ouTnrR1}uzB_*AwgCX^C)2!qtpuP%g}PEw5-qM3qSl&QkK&qCi%UH(oWlim6$K{Ir(F+ z@~7|n>W7VROA^+3mQ+Scmg=Au?-nFfzt_2evvHEAn!8O0 z1OG9Jmkpd3z4V_-x5{dYZ%Viku_TQpHH&F!$>!n&|Ao-jCRYqzA!*NAhah?iuoO)v z98}eyhmvehsk`GakNm%Uh0^M8EBzS@PTkJA7_x#s-O8vlHqF@EG5)zIn*PG;zftx( zd5wp!!>@ZLWN^#hh}~nNYF`2eB%)GYag5wBT@JKj8D>|F@tM*%zSFRG_*j@Yo7Xn{ z_iDuS&mfs#pL~;tmF3u5Z(K%LPG1bqFxq-HbZ`pUT6{4;;a@>J7 zdg=~I^(rlyFjvi7-Z>5XDo1XOCAg;)Jn>VVKgrzd@;wN<@u@-*>GS4K$l>YD^<&Si z(&8Ve*EXk92ajH!@Ae%Jd2&$o6fE`B&QAw=hf!-1qo4qE&MSo zy&=y)lzY27NJMKfOsAP+Yqp$qp*mDRh;81FO?#e)1 znQ8BN5pd-s$J(;1>5}jG(VsV~$I{~*?@(SfHUF5jjrz0ON02>zzU}tbPKEp`%qiq`QzCeCCN$9BuH3@Q2@YWzIQI~OWPyJ@u0 zCA!Nz{kbx{5TUMHGla%~uG~mE?;q+EVoN-5AZ`^!iM5hI6}h@Lcu7o9h&p3z=KD&{ z#lyqB6RTGh5`Nic0mBDViz$C))sy})k$S@&83R&uD_}e|_-4u`A92Eo5Pm?Fd$)O! zRF2XW1)g$2XINppC`xGXA#5hRORZ^2YO215qG@V5CicesmfQ@FWw0VH!pk?sU?D*$ zn3FCPx|Y@}V`!E-bu~%fRIBkH(>n2b!zV40CN1HKe-BQ0_$%jMU=_|BOm_gyy`8;4 zKPtA%Yylr>B7XE)Hl(XC`eIwSDaXcoBmS+bPanMR^VW_99$?J);^7`pD=yj~=4Uks zJ4V*}dvujyW_kr-{g-#`3Y>ADtu4_HmuNoxZ4L}XnHT!G2?2SQ3Xae)A(D(=F3g;` zq$^ii$+(xkY$6^Pl3%VRg9MF)$s_O5BdG+3Kiqos==nJ=gt}QntYOyhRHwZjG5w%^ zLWM6t8_E}ublbHtO2WLdFnXSY!R<{EFCuHIbr8A?Ws`8!DT*|Lwfm0d?yEJWL+4m5 z9~HC}>Fx2`sjmZ2f;dOQL=aOJjW;JJr#jLD1C_0P!Iy&v`dmq)hzOY;X(?N}seGqr z8mhRww{>Q+WU_fUSuY^0^kaAjz!UnrY@-ceXByV*>RC*Kp7>soq}=MNXmdB<)~_}D zdc5^~Dnnk;^tV&UXa3i|y$df_@`|^#zlUlnpc-9qNtx?!)x&Eo>a+d&Ps(fa)VUN$ z{F`$lSxJs}mk>L1LJi+Gg7@|Yc=jZgqJKGKmER)GXuA9U^eO65y8>j2KG)^UhJ=*R z??OtG)XgXh#WP@XT2qS6gQ!XHD?$F!ocvwHOzAI?uJAkBtXf*A?wTsPO;48I&v0&c zk{8Px|A$Cr_xbox2}{m754F;_Eg@g%0SAOR0S&D~Q9iY_mh&h&kVESVoZO4TeqL9) zC711jTGu8ao7~z}fy{Y`$~hAbtrl0@F6Nss{T60p?+b&8o;$xirA!V@+sbyM2w(AN za_>AdROHcCjTh;?N+94B8WZ8}HPQEIqe`bcPGsU%&4<0Y`$`6wOA0ZFZOc5oMB-hk zpmZ*k--D4a^iS~wr6%wgx~%l7PFB1tE;904F!$Ran`hLUaOL0BhEP)#I|!=fgz+EM z9hE1D;QvG3+lE8AzTu-vrIM!d7Gf$%5mO=MZC14;iCG9Sm{lsqq*+2H#!L}HSh4Vn zn7mG2rC7k0txLbRlJ!)U;z;=4#_*Z&UN zjV2_$C2QB$KN3fl%Y)+$-n@BU_+I9d(=RCC1nq&$nDZcenW*yco$o4KEBIJjoj*}j zC@<3|zT}uZZb@A_9d*h<^UG$$Cz!NNf_Z{`(cC1+2PO4Tb~Hltd=7d`i^0>C@~gn# zQwM;V4{3OuBm@$}Ua>%m8j?b4s?y2`c>ghn^G*i{F2ar7PXu4m=&jk^+{lRu>{0*I zYT|==K!-dzayEU*!d%v9#ax?7&@ppjO0JV3k) zK05hOX_;UJa=#$jzu=3${ymds?_!^_u0Q0@KS-1mtKgt%@`GJR9$QVkoVk5x`#(ma zHBtg@5w1eeaXfJ{<7~_CUMD|O=X!*voIZ~`1xhIzwe_uP{aZ_K+hrFxDI$MlhtJpK zWxi-h^V_|59oOM^68zzUUloXoh_gGY19=B(2r44I=~%-* zPKi#gJq5zWTI;$#eK~XP_rd%PQ4Eh$a^#-SPj_mNz@xK2RUFVt5Ge>w{KXM_0zqB= zsbV^H@1zMZV*XR*$Zmx!t`w>!gR5j$=;j9F(p*wxOl5+c}it&dAriE%L##GJJG*qPo24uxc z6dI9swELz1Id;B9GiUpdOXS<0nVPPye{I>)6u-wc%&W&s;i# zO##hk2`@FD{`sD&HyzXSTB=I*4&G8v@R&D^nmNfsgQ%O2WGjk<+GVycuV0Vnv4Sris6-?DyO;72ECNR;AXP+Om^N z0h5t8E;*e~Kd1Buu6x^Kv#At#|IOxmj+!Xnz~I!1=mlI6r_gBvqr&b-t4{AFO@cIHgv7dz2Pp9%>dX0+AnzsW;+Yzbq`e@Y z<8%zfUIP;UG(N5Aervx!)RK}=6aN7ipLu2X9`X3nJ5EnfMSxoY*zzU0Z4c9SXB`W*y65!0 z?tfy+ubUheetA7D*1h(5W$om3_oXdvPl7+umSd%u!hR9H9i{?)n+RY?e7+WTqDcL>P9t%tl(zG3tr7$GcnLk&3@g1wzn`heQQu|t+c9R5a@MQ_y? zJLFeM*#c?bH||A7lcfKv;x2%ju6iD$x4a-W6{0xg4drvTen?H5zO!eQxzY9!4kr@{ zgB~QWc9&q6z?gnDL;KYR`5V1$ceZB|E{MC%VdWPhFUWhT$LXRnritExT*z3vH+;rF z#dwR?_QUS)Gn#WMZ3&gNtEKgJ>EiAR6WyB74mMEvlmf2I$9;8TbP%s99?2agt5AB_ ziApLlyFU$4=m}_VKo*#{??tvPUw!FHF!@={mtG6fSS|c90%?5|t=I7V=RBf}r_E(wcz|(7mIq}w`g(UY| zcj+~kD!qyWyz}hnpSS)sfBMyj;`6Q-G#`}LUDq=?#HhhSdJ)G-?}GP%GeA!#awlmg z9~)r8?#6$l2oY(lQv|f2g6Bbv6|xNo{et3_bccPCTIjCtGtb8?pu_0=^kA)42|xAR zOUUl~&d@BsYwcit#hL3F7f0*JuVD}DT<)_D%bfsN7czA%6EZ5>A~A2D(vvJDuE+>g zSsGCtC5XYB%+msK@a9EhS7Ced7o=y-I+7w-To@2gO3609%r0{YDtB`{(o}7#U zJo)3R0(Lg@Fn|&w9x`o#T48K@%&@>sylGYB_rSUcmk{1%v!nvjx|BwC-7UaN;z@`U z8dF=Z>qQ4_GnlRiA!g|(z6E>53gU%SN|ew$1Q*7Bt$4&AM{30ECLNP+ev*GIG*;#) zj~Zq4?-&Ph?thu3k{?jC#H@XwUi8C@5L%TT{BV71&Ili?yoAlXJxtnWlPYI z8O{3xN|pA*X+?tRg!HJ%UxR?u&hH?yi?6qgWumUv(NbfAG~4ynAUl_E{q3wDkmjdt z+A|O%=-+LdymH_-qj=Rr;$47Jl&hU-5*z?4#q$4*J=&Ul!OQyDut7XGr&|+O??+Tm8e@qbd~s2 zQL1rqIvLc->jZD*me(>Z$cOlv9V`X<%Kqfwy>DI)iRoO4ODBW~!8MsNHE77jVd8WR zVM3_UlIGwZi@llSYD9s`S8P>g`2_o;^}p^fA&DQfmWHNia`to?*MfF%g56QzW`T~s zGw9fgO@Kdu_Kp|gV-h4yiH0hy?Vv<3X(gPhJ}_5Gv;d!!fj!f-PK;(kvGkqk0|%I- zfWuOixIEgc_gzQC(f6oVZ!b!IT;HD05@N-opuQs)SZ@jzKCVS!KI5UVRHGuW}O69+upxJPOk4iHDqw8KC)JR+Y2P85zm)l-(nT#GdbH5Bdi?OYSYp<8H>-tI>a5D%;&(jAbs!T$2=3!`|C}3{|E>lF_t?Vz3mW#`NgT-W zgJnb-YzfvaL_1o(b-OF*PdiL1%ngr~#zD&vZ`!JTBLtO)$D}Oxc z^6%A5sn#FSr)_I!*8jt2pYF-m?bdal%KpjDaoQw5_fk^uHp4L7KEa@SZ7Esqf5RaN z`0fhOlI6}d3w(g#fTj@|g|HOJ)tHjLD91|9%|j(@_ZC66VUWR3mF@pdi55Y9(QT-P zj|)bIBP>&}WeLJO5X!Afl57{CI}MQHvz_*UPbzr(zbJQeStg(w227Q(IGs9cXv{nt z=HNyJ)jJ_T8xjhDXr&2}+wT!W%852yhQUOHZf5{39dVO(#6mbqa)!_p`OX66)+pI_ zK1db9+YPce5-&8560I5t_)dMyJ%>;s8m1o}U|D@V5>Ji~xgtWtwuh^EpTDLX5dVe0 zhhB_BjpQxTwGu8U#R#O0!&T_r(j{=t4wEb+#^&r7y286+SS#J-T|m*Y~e~e)JC>gU=Ue3#ljs=cfv8pxi5}{DMto zO5foQVs%G~?oPCZpHW+;saG_1l=IGxG?eM%e&G?hyg!2t1i*P`U7LWZOllZ!DV+h| zfjL-cLE5GKK+!=&K%uwj@%2rNN^n)E`%rERDTC^j%&RYGVEjS62m|A6Dkc#=BMF(NrOP!czp(Tq+WaKB>F;bHSAGO^lkEByW+b*TH16<)tFP=9(-qO-g)#L% zRdVYB{o_)<%BK6rdqkOI)q+VxCmHw+&a<)3wEVUd0J$r77eltUUysVqvlx=?)R>w8 zxjJYCZO1KyJD-IIP|p`?uLw16PoPH+W)`4_k60GEa>qHteaGJ0m|uPIA5g}Am4C&n z#PHq0;S%`9dz@ApZr6){+GRxwObAuuTeYsngs95{{mAa zuwWXteclhQrPK$nJCLUlI|Ap{s1NCF=wF(WIBWj}ZZHIht;7SsIwnBPayU!nAAC|h zZ>#@68383aC5o3fq2h8q(MVB#L#NqkucDB6B?90}Q`%Atk?vy-?lKFx*NZ_18zGc$ zwqAyeAsRu~I)8$>$f>Ty>J#Q*G2jr(; z2Iyh+zvof z!w-1^b{1>HFjPz*{SsiA?&l3~I}L{NJ16FlyW}BM!mW;z(a$XevwcVPQnsGFIK$L+ z^7DOkCAIyxysgoIH^p*)(O(raUdL|-i?UyRnzsllUnW{Ty+%Bp@&Pn2I$7)ORQae6 zJFEBMVE+C#;?l{+YF4 ztmeE;me{2w80!zOg*!}~KIm|PzHx6xtuAe$S7t=PrFaq36xEBY|Dst|XsaMXIu zx_`Dn2$vgp%Z|<)?HzS+1t4Zg4`Q4aFdAV@FIg2Jv)uyz`=V&J#fnGZ^>h^sPIMhC zk38Hsz#zj8+;iFb4!`T1E<;fO%@X~2=cmexO;3cyR}q=;UFr`(Me^)4Qz7S#O`T5co$gU|pMVH6Nzo!ImqiXP%mp{M5gnJN*5&tx?1ebmmtc zv@50}(>jA_;vZ!x_4V8U+x|?MMPeD5Ppd0Fz4~7MQdl={5L zm3t*cx6nSw4n1~%*IfOPsaZFB|Aq}Xhvu1zZ8e_sxF$h>7N%d5 zV`O+zhtnY@h_2Fz67|2;@amO51XT?y*%OGBY+b_k_dnz=fO3jwbBFb>4>_QebvbQr z9IirMA@2%j?HRQkoN!4BWsn9jP2v>_kBAbS!J9{nUmdf;P`_L(7>U5~s z`8fgRlik5OmgCI$?#zZKr;cBTgx}|JW%Xt;bC=3}&7x~MqUTSG4|!M~&scFU zFHp_wocZ|a;FY9Wvy;s22U8I00Z45#Fz#{fx$re7{|?I!bG$xl(k18|(?{YAwV7@} zs?dD?d#?b-Q{$BAf@&gz-eSKGO~Wx0X#P$@xs)h5(R8ppy76>1xdSgGKjd#<7EV`7Suu=#`zN+QKajMwWkjiu z+j2Ak{wuvmwm|_^!&t??!HNSe!*+s@mjUUd+-bN@tTe?!-bL}x4AB=~jmC&!?POiL zqv~(R9h_7_&J{rhUz>2_^943{*}_gHBezEqGQ7u#`|5unZ8(h2$%Lob+K1zbEQWK+ zU&~VPu#KG+D)eMc+WW(k=l*CeL=4D(?fnBxe}dPYxm3Q5mUeVEG3LUh$`3D2&V3*3 zx^kU-_e_dqit$GMMo3Uk5bpmvTsc&hZa$CtJ25@WKO|Y-H7LYc@5XH{6-S5{KFT^G zcN{$M*aoHbMH=j?ST3-Y4sbSa*o39#IH#L<{o(&uL^D2N!|u2HDt`u1P3SRRg?#_w0g6v={1C39OL!>M#@NbRa7!6(!f$AoK z#6ttFQTpL>tthE4D3KpS_#48>iI09IXg-mq2rpVtdY#PUY=XuNQ5=NWh)?&sQav|8@u;rQXjBx6Ye< zsqNI{X^Cz<8NT}>%5ibzQcZ`S-(MkyC_JLK@zYHJjC)-Nd}N+&WNl9!dEQ*)rkU9_ zds*9cJlHE)f50z2sTvviQzg=Nr#~Of)cj%9ZuX~7dgGs`^%j!a*W$Rdv0|*uk{3M3 zB^?FgdLr)LY7BJOG79`%d@)h`^r?3a@&EXJcbP_l=2WpO_8B3m!$-bDD6N9g5rx=JWb5wWUvo`x<*mf?r1BaMDTpPP=VGeb+0{MeWhp<42kLu1T;tKh|iLvpwtr$tyG(GaLQPM?}X_S)wt0X zJ%1i2* zM+wCcwr%Hg*p3n2?*5(u4;=LJ2fNE*Hu?vpoQ5x$vXdbkszK=%fICh;cY4 zK#yw!*8~etsmh(jXSbYVDSUc+I@Q&NF#Ln?TOa`)iqTHfO7U!Op zf1UjiddfSJdI~w`CxwKr5*G*w%YAMgWHkr(Qc%samEs3{h5T773WE0xIoQygpP_Mg z%xejD!i5Wx6>--Tg;2nAWb!=j3&g(C_p2SNEUN*zw@H5XT~H>2hr#LnVy^5aWMgcb z77c@l6%5$dL7{?t=7q$ii*HCof<=Iu!0!R%R1q2EPgoKnIk2?WTjhdGb&v0#UyQ0H z%WZ*0ksEklgwp$jb`e4WKItvXAlsRXv|EOx@@)V_27_;CD%Z@FJ|Ao-f5W}r2n-Xo zz&W9K<7f7(gtKQ;czhwH1C!=8zF-7xMAspvO?7+Jf#cX%UFll+#qUQXq=z6`O8xf? zBmUah1jKTdKCVi8Mj`Lfj>7G^2jXHms7#hBpv*Xq4d_Z9X}wil9S+wpX1;ozygXfq zksq)c5A(BgDvGZ}g>mglD6wr0{o28GCJ#9`q?v`BE4M#(KM?nxipL5~55M#YD-37d|xgv~y$B=*<{A340dbZO#&Q+?{&*5D6Qt86dra?|jp%B`N6 zu8=N1U(IQ&@*U-cOZrN`0farSN_5{Esf{knAoT7sdz(B85{hTo2~EL+bq@AX zH46b30-RD~Vg;GTol`r8Rwnpgilz(XJ8t#(D~efLAb_f;E1Q=pK#5)89Ja=Mi9>D& zpKbs)q9AqU#pN)xKYl}d{bi6V$WD!+!R9@B+{PSW0>P$?YV-k?(HLTHOOog7wQZJW zRr}sK=ooL=edv|q>d~a9*K$3!KCN-Kxl`%k^+*(Pm5!Q@3Z%gbE*uWsz3s#8yz`gx zgX|arkIGZ87^k=?h97phdK8Brt36k7t*zK~oHG3TDZM@E=F|L-^Dy2UK~Rx=vx2%Z z28tq{`7`~KSSmkj4Id4!$;AGmdi8HSk9&+VoqgpEWf7!iNWm#q24r^;3K&ORZ3obM@7>w<3xYtlH=>kHl$w)qKCyEPE*!?$b}z-62^z)f>dzfSEK zo*#?LszfBM6n%m8g1{(eItz@9pkg6QmY*tLu3v)WI9*LTAbv@YjbW_5U>&s@p z&y8jhS+%!o3$BV*9%=pa1MlgX8{FOG=@|ojE63z4E2sx5b(J@jn$VqmA@M2OV({3s)r1Ek=xMs1+k;op* z3*-*+m8EfY;q2>5LWYq4bri4_Hq)N{_$6p1J(pVOQNF_?@+`(H(Z!7ZGVeoD}(NeqQtJ z_pPm3xS`q1i*7V6ZsTlKx#u}v&G2kat-1KnnRGW7ot5J~SHH>q8cTF7)-wJ6mUyNd z^m);k_pEfq?s(7Ki`A4^n zqs1$kU$;bI?}o;zLf#84C%!?Hx=u@pyJp4XCgb(d=Jw}@tou~mhL_znQB6b93H#p< zyF(LPC&s3Fpb4%Cb%OXvw8H8A(8-9puXW-p=~H84Q-`1%v`#;8$=S0!$TWYiO0){3 zkf`-PPp$dCpWyoc`L(s>{>qPh08N=_nWl;ppvoi-w4bKw5VlUV!y5~}{t!T3+^UUj zV8XL0K4{-<%hp3)ho{6&?SD1Wuyc{<9R+ptq9ml3C!PrJj4q#FiLg42bGPJQq>n_4 zJ+9kqj7_-HsASWaV|jXG5ofsR?voQPhkCx}{0LMIAEM31wo?Fa46o;sA_e(7nFooz zcPY2Nk$e`b14W&2v`)0~beoyIKht?STa%p%OFL3m|4&-*Wbjl{{KePBOugfs3?{RrVun-*e}OCi-Vl#-F9P z-hKaOTc68D{5nY+w;hL<(fxpp(})Qd<#tUFTSr`{Xi(Y{y@p8oq&|Mj=PV~pNKnu( zgBU5`Z&$aV#tWoq(sifVEw>K#JIp01E0M#zliXTT_lNW}jt z0-C%5OcFV?4R>1Nob^P)icB~%S2rKLzohHH@Nz90Vu~H|@B4cYwcF=RveOB2`(^S? zWGd!ms$Az^wxkfI+Am^%e52fIjDRj?v4T>aTeX9F9PgAznVb(W@GG>qk=_J&yF4)|}>MEJhHusCLf6-I({Es3s<4Ug;R1NOEx4%@hvy-Im64ZC$M<+A7+vQVEU*J+VH10fyC4U-^O zc6#0pnaDbz9JJ%hwQ7aruZLxhXKTZnrwjp|Bx(E;ONV{6AdlJaLUVite@Z7^Vfr)2dIM(1~A+Y z8rzB^C2Z;6iYybbK=x}80a~nD0X!44+X=Ry+zZ@zs5BUmyTLixT24dd;z42WAC6B=7oVZDwrVExI`WCRJb0glRC(rVNcV)i`)tUV9 zG$(v6Cc{G-7ZI|On0~1C*#FQhjFq$2I`FRS8flnMhYa0ZWg&Bzb&!y1XjkxVP)(+z zx}a)z9M9AE5>Axk@3jP7C6JAfa69>FBjNy>d#8aY>88ofU-w!4&tj9NE;QEh-H^C zl995vWIxEB#-u4vfibYI?1yle{FDg)sP#s22&4zcbb@2H2530A2`vux|E72Z35ux; zvO6hBd_56Bla0Dg+YI-$CFeY>2DpDrfx(ZG$;+69u4opo#ILugZv@lz_%w%u^web)fnAQ3t5h<^zvjQ>Ik&p*{r=Q5zo1|oyT(F0@d7a9=aUyAYQ5d^BNH6I)DN%5O^Bmz zEyWv4CZy5OdZ!S7rHIrLmsmCsIaQ7Y;O^iRC^qb6g7+mE9RSfBpmszceo^F;BdkGZ zU|7_j(a^v|VXMhk7uegEPZAw*c%TENUsWwc8P4&ZvJCate*z0mzX$!G%jkeVRV2H( z(gP6IMbn~Wk`999GFK2G{S#EJ#*!eGmk_D$kCt0YvO7`tAu?lm1z0BS@dqgPAVM>r zpeih(RulH(lt;&i$6G5P7jtTs+$S`4`W^Y&EePsOZlUNzqaGdq;+Yxy3+N}zP8xH9 zyG0x$?jjmPb-Mv*E8O0&YGj}v``EIv6I8$So=)>&QT;hC_ao8_WA^PDhl5bNSLRqQhA#6)H%S7^@ zT=6^8g{qe_9a3Lxz@6Mm&`;o(Tf3mk2QueccoE!`q5hR&0kBX5 zU~12r#fN%PrpGt(!?mu}OoneN!IoOnvJDd?IM5~H5g&d(X`k{Pd86_WIB{0el0gsh@PqbI2V9%D<0UYgQICND{tU<_oUkAW z?R1k}OXVOc!liy=BxBHVnp61+8_-SJ$ST&Uq@u7f_=IMik>WaWGsT)Oh#B~Byejum zc>;P?URNled{h3NER6?0LvOkoYNy;4&qJcX>MDq!lnnWaHAykUWs0YA)e0Vg-N8dX zSUD`Wf^}1Nj}u;jNGTEgP*{}-aYg}HH&Ppfx5qUn3o)Asw^8~%B6H-PFHZX3$oJSS zFfm0Ggp=NoP}Aw`o#2vy*2SM-_wZGT2Bn~R2YG{oJtQFriQqfv%8ZENQ2H$=7S8l^ znJ=Xj_TP&}WjR4a=M&jN+B%}MEHvE#4z$kWH^cOMgci2W65V;5Y&isENYB4`Epw5Z zT_4>aAOFU_&9uwt1ehU0Xw0{gN<$;5^ZLPU0%*Ju32&fHx1Q*87aLO*r2J5V7$f2UuKPd*V`$ml5rqcbMN5gRICqIwfj**n@wH#r&Az&K&b8rFEt5Ymu{HeV$+F_}@l*dK%tY)h z?_IR1r1%c!4o;qEaV3z&wnEH9l9q(ru^CdtIFJ3QvMHLM5qzu>JS9MBd?IdX1ZyqX zlH;E_PDn7t(vtCxi7IbN{dx_Ey&qG#e{lpm5IDEF>YH0%z|=>QKVel0DyR@MyGXfZ z6goh662k#92cb)h2mF#8a56uTgt_-8n25R$t@lcsl^=Zs>SmL7`_DUB3^you%aJd^ z$3j{XY2z3yqpLaj*+-nyVTtxwT?ErYc-WdUMoDMCSo+!~dD9&t)a^p1xOA})8D7IH zMUKIryU9DO1(3C!Z>niZolTGdYLMtxH5X?|#XswhftVFxSYO}R93CcoXP*NF&$No8 za`5-zTa>%PY)kY3)1;fxlg6Gc@fN3T42s=4xvOi$0{vvZG`O@LEL-&-ThTDHFGgP~ znQ&_x34KA&^%~LVO&P~W%|2}qPu4apy_@2;#8lF?LN`C3a_9@5>o)X8e|xh?VOG|8 z`y!2$$4DQ4s^~Md0c2RXXl0eU1_vyRZU&+%%yf(yQyy-IxbNUDa5N1BW|mv5K2FS)>~9>?*Er~EJ@z_(%6}}lNbvb94#*b3 zGl+1=9ZEm73%(@)ycnK{+VW0PB;;lgO@xP*9PHx-^>#f$z-ksVLYS~W2=PnP$gL%M zhPl1Lx#qFGL-?}Snb!QKz%8zhLCXwQyu6_Q*^J$-?Pe$P7AtY}&0mHi&^TiDfAJZV zmY*u(jTJ;6sJe1jmnMNYO(`f{*STN)B0`K> z8VE>1+l-PbyCrvh2{54}4Y3Yb%CyNe_5*)ujSs?+HA(vjUJHTX-DxdJb0$uNmD@iD z&k8Mzr~Ahsn>>t~6P$PfNX=#%(!S`N7~}79FckKyLaN$BN1_+tn&c3|@Gop&?3L7R zys<<$rF2JlzREIqvSB{^#XGIR>P)5={v$?;Z_9AkrzJD}s)MkFx~UHKhD&k_OnU2C z6czO2tc9jT=NF)W&yOH&Z-e9^dXe?(cn!1n_D{y#p6vTRoA+rZpS6l#P#Ta*#fPyn zM$Gj)dBv?f2lkye!QvM3-*{e>a;t_2qY}<;tcBR{Ee|2aeCL>QgZ%UuGOYhW9I6Ws z9^`iLd9V(?UQZfncNh}J_W@SLlM;0f3Em1~2t1db=TPpbMYKw|!09^PE^x}86yoem$fl&k9E`x06O2V|%^3jg zBKSjMeiob*EG0vrZWpZs^$@;!i5Mj4zkeIdpGl!r4hGaY?UOWt&1+$na+fl6w(t{{RBui|xMQ zw2G(i&!R)qu7_R4s%m*{_g}b+z0O!{X0?3d_le(B`sR3g{8a zC~}eEljyEil$b4Kr?(1*mAb@TiVEdnEK3a(i7a9TS(!lGlHeAl3LB802ieW;9U!_| zHsQ+&`X4K~4;@@Z+1tbJ6x=B>9==7_i0`^12|td-6d;>E%e9e0k7^MmC11H$QK>YL zdrBHArzz>W@I55hJoH?US4=?MbE4NU(L5H;!LK8A>5^5I`xoGbM0|p<|B(wvxozNx za{s?f#mI!|z8gYOSFF=cFilY)m{|IvD?qmYR7r)eFY4yOldk7?%Kbr#2$@l^=24z- zHA;xtb-FV1&IISqQM7+T(V5};_FG;=r6|)yb2pX@uR1M{qeH^-vQSH4SJmP zMv0;EwV>)RifV^bWt@iaILFD%zElVU_}&4hhjxA*DQg;t{;_Bo-ERn*LoZ**#3x=? z1sEQ2hU1eOG-7Ey`g??%djh79+%9iTyHt_q#u3hVPPjSq%NaAFRZBs6*`0@x)0JfU zXiKV-5oV6O#|cIZrH>HZAs7V&lZ8+#TMa1YrZ9Jw&co?n$wt{-$Z>M#!gQaN$n;@p zGf-T>$yNg?Zbc|SyxJ83J1q%HZpqmA_iDafUe6+5jFzZEQC)+zo-om^+$wRVraDAc z&UryAxFzI7G8N2U=qYhxC*ol1h*pEvh8I>n^h@4AU7b}sL<${e@AeA6h`WVz9hV@WYy{-d-bj9cZ{Ew(iZmsea6;p|yVT zjWpqm@yxtFWH9Ba-hZmx)seO2F^o9S_=^4FWov<3tL<9!>Ye8A@2J6woW;(maaZe` zW3iYkY*v%)QR~}^oNtSt*twC%?Ol0&N`$-pn?}=|>AVz2pzVYQEuk~jrEr+&2;hyPUPfbzUVW(`NSSz=!BAx}W14U;f?Y}!H#YaJcv zPA%=%Vc_Z#k|cO&z#S{${|Y8k7h-w!Poa?vHKK=t!f12pXlXs;il1Iee~bmd5@kDr z-WK9U-t{)R*L0W`V{UQogU+L#gev|ovu5AfN&J^oPIe+&m)@UYhsuZvLUsA_x6ARs zg!@qcJ#r{5b?qV#o=J2D7P{=jlYhfEk<{hKMppW~#=Z;k?;8~zWK_@Ji3=+J&?Jr5 zF8VD;XoJPlXaZ{NKT1iIOMdYDn>IRc=^Yy7JR&=heyGOk{{lt*RI!1Bhni~>u0x>* z!aNe?Mfj$T1IkSxx?3j^ZLVH=qBa(q=)VXa9PBrltn4i7BAQ5sy9?AKa3(M96fLPS zhpQf2(_RMtRH=-)D~7fvD%q}H`nr0ayp3fvZe9vbd!&HVS$ws#YR2A3CaB0`$E zmW$TomNvL(=FoC4Jw@sEaO|_ki>HV3hbBcID)tODHF^A0iNmdZYqdMNlBehTe$TvT zIz!AjkE)3UBWB{4n|`XC#PcXp2G}p#M{c)cPiF;C-y+h3)rVr1(#TD*UC9#eJ-H{~ zElmI`?^a?Vr3f|wij5NqXN9R8=!~GbFeKJW6UmKSsr6_GpcqkV6^bqnL!*KLC1kNk zpxfDolcqtx+X;*n(!|Grd`@R8r3>~Ee@TMsVn5i)LkSFRdwc^Z9hv7o`wtwctFySZ zNHo4KQFX=Gd$bHkSXw&RZhwt8qG;t@ehZsyfvwAwh;-4lFxjXp4jfp<3fVRfKA( zpWirX4G{f=8oGkmq$TA69??E?46)gN66<6*yxe!Pr_4PxUNF950ryn2L8}!b*H=6y z9h7f?K9{>qFJ<%9$xx&C9;F!}PLo}PFt60>f>$O8svf8caLVlq{& z@mZRm_Y8%NiV{T}{Cq~XKm5d6UJf>QyrOq)-1cj!%p%a;rmF{PqOOn6NV`^YcNVk- z=KZS*Lyx;z53y7A{>k^(D{(b^GWoG-S7+feMvZ6*h5}3HM~FzM7!`2u6V;#1uO1H$ z=b0uk|FwhIhW+<&8}xUNc|O;AkP;FaA7$}$2hY{<@8j>K16``e(yf0vrvZ(*RF0a) z62|#xTtj{%`m!0<+iNDqJHoms)r|g{^|yE1O4}mO!@Wt~$PQ!gB7G=?b;7|jENEz{ z-BhlAA`>u)kYATwges-&Y&@9tD~vc(CJN3M|4zVvV>G~M*5Foxq=HbtoV zChC^j88PbTATZs%xx7k|_I-nu+svcDoLeqk}&@ehlH-Kmlz{Hgb9aN&~XV)NSe0!tN*`Op4Nejm*oQc}{ii_Pcf5-I}`} zUBOzg@M?^W)A#AB`I8=Uvd;$Fnw$UOc-#e4!Bl#DZ`k~6Pk9sV>%Vb#7OzDxg*NXl z_Dwcu{yEziN(Q^&?Z_>p#(AXi3+U( z&EP3eIUSVnTpkE{Sqd_}PjhWtZFV0RxCtp;`iw-^pY<8KF{a<^IuhZ4na()0SUS8! zuEG)#kak|gk|{8oY%}w;z&jwwtpfWkkk?E6vn$?$xpeD#qT7GPVo@vMNq}H)vWex( zy_a49Eh*O32a4Q)*`%sI3r65kZ2~Yap7gOxrE?G2B z?ai-tzM134oAPaD`2}aLzAP9sY^jdUYn!R~>#tmQXPdgK%easqXwVUw?KuphWWRu< z1yAS>lcCLf!;-O-NT%B+J8VHdV40DIAP`uo4HgJPQ%PpTvjfrmRFWOQeL&Q!?R^fS zFheYDEX!W9F{P^2w>T2W5Yjlk3kwtWv>oBCw~|NX2H-mAA#uTK*%7(3;vVS`K_rBF zH=Cih1_RYi%Qo63@qIa+0##fzRr%>r`PJyh4WL^_CM!v=<98KX;;g=@!h4mq>zkK{X?&| zD{m?K@~gYB*CTu<;TEG4_)Bk6TkZ^wcrh`y)_B5Xci)*4bjAWV2sPUz#VYb3f(>oF zTnaHWyD2?Mu5`DEXxoWaNpE?TOAj1kVyE@2E%d*; zut%5O*H16Bw8XCQdhw-%43E(Wxf#o<@b3T!Tx)kgUM0gw?R-_a8<5L^?_5Eo+o2wj zj>#{8qwt3-7W@0p;qH=5!+m-5LdRl8N_h<$MV%9F&?#8>qdqR@Nr{%Jg|xCig=l*> zn*qk3ZSDHVhGU0rns$Ag?is14vy*haw` zsURv8v9bgzP3BM$CjyH7F=&k0v=qF{2DG-9HUn9UfCQL!lmQ|GCRmF?X&gvtE21zc zP+YZDx>6mKQoJ_WQ>wjaNR_+zcR+w-7H^oWliUGI-Q-C#V5X3 z<%o%2IkDi(Q8>?KL%=BS>@DOldy>AZ5^&l%5>vQyVasJk_*GdL@5RN0v(L+Gg6XtE z?>O=@`Ss!=wTASBLkEdihT|(mc{pedxSEt-bCNWcZjm!Q4-LC-@rFGC$#Q?X8@N@t6(4EUOLpQ6xwgN+0zupg_?3T?&eS)8cd zbrc<~yurK33c^frYhmbGWy}v-X-kjQ&1!MOZ5BXXl-|qli^5Wt$*>3Z*|cM4oIGAX zK=tkOaZwOR;@m~LMk8g*m3kkLYdC4`>Mc$OldcO_@RCX5gEEcg26 zlu?v*Jw6h{Cv;7cN&ZZ_W_dq&hz_Vv6D~1~MKkDSX^BEvq68~lu??V=ySr@`vbK}f zf^dF|57ydWza8CNJIx&VP{*3^0($g(gkpZcMr#?*E#Q7MsZ91{2d-R^qj;^_JMd5* zHSlZxwcvOre!>vpM52%dBa)ck{oEVzK$f^@^5Eo&WPa#FPB|_Ez@my5gZ7BWHf3(WlJ4 z+?bBTHSTC6xhQ@s2(i)8`x7gx{HD{wjE+H@bN{QFhYUr{KVEJcfoF{p3H}Rh#Y*Ej_;(#^W4K zQ;rvnm|)pId0M{-W7!@J82i;17~_~2QES~>9+CC$4_nn9a5$P@WF-Y)4jrT5d*I?y zaLZI$9rZXee~UMqh`JkXBQd`ZOhp+f5!QmuqXNR}L8~1Oak6gTy;R!7t9^C2V@w#x zQ}xTJ7YFZK%8v0$k0V?yD5MwK(uD5O1n{j&?EGKatMy)kWFv;tnbJ!HtxOEk2}2H% z$UvyD1JYmrQ35B~LfW!qYP-0wZyk)sazbyBbm|M>_X~TGB)N{@kj!dLy(gkBe*R0Y ze0St&L+-N^i~DvAC~@BVNRbmmqsRz!R&^2w1#!q?gV#tSR()b-rIV$wN<-Y zJ2Q3X&b{Y!_v!w+`<%XK-WJ|A0LT(zpTz(mAOHZ!`y24K4EPFwfq{jFg@%KJfrEvE zgF{4yhlN8x#Y9I&L&88oLBv2oLPJ7ALqWqr#X!R*!Xd!Mq9w*7L&d{qAz`KABqw14 zfqd_XfCvWfFc1;|C=dh;2=dkoVEZj1#BWjm`vL<6hk%3vfquUT z2J*k$0RaVjzxB2RfCmEsfFgq-zxO%1yOxqG`@i>=H}eAiniwT8*jj{Qtwb`(YZ^;+ zPs`ju?4EXlQ~Z%LS=ra&<~x5-@jBy>G(f>P_#c@_5=n=$lg*c96ZU%#?&e$9PS*Tp zFn-F-@erW$KL-U)7T5D)3K*XRO^({9?6CF}?sfjBD^T(`OXd^-j9oXYn$Z_4^JTXn z+Zk4DxPu4^UWKw2&CcvOX=@bP-=a?RBYdW zP5ym>EA+atv4W27dYp}El4ep24&;E#^N!|FIaI?hVhNLqcQ^<)no;!biGE7`<*($Z-((W<|_y+hpd<-b6 z?)_D7`oXLF)iC<#N4StX>cZj6<7C&i+4`4X^TLm+akq}1b+gS$!L77z+fcgu-X2VQ zDQ|$Z9GBOVtE9kw zr(WOkHeN1SM6Iy7{}6-cKJU0N?tm%Z&c!*iLfewgDtV^9y?2&vJ$My)tIf5UCB5Qq zU!i@&(VqU3^$_m@&)|@@QZQ+Z>-E76V@vHU&wBEbaUMtK7`ziYKjhNX7{E3ARo2nA z%x_VHAS!CV(;?K^g!CXt=<0L~bsoH{tNO=r6lWOk;J3d@{@aPbohyo!x>&R(1>b|u zh>f6SEJh}Gvexkwe>=k2(d~**W1Di8Ux;sDc+sPM5@RztE64Sc-_Py1^M9rSK}oom zfm$i@+|uD}Ehbvws1aBHJTS+>`g#4jwVHd+tGS$z^#w`=dT(_g%Mo>)b-HoOW4+yj z=`WGL81S=+nET($U}#!`?m)`lukVE<3Dx)fZJ()?v>dh z^`^C#M+MT};0HYKkOgLJr{9hLmzH@o8+Uvjac)lpydGE0G!rxvJZ3SENuT!HlZd2# zw+>T_rU=sgeFgy3Oktm`?7?Nbz2K-wVy@E{xF|%Y85D@E>pbF4>>c<&eD!^A^*_;f z%iCgh+HS6?tBvN@(Vk-9Zn3FHbj!7SN|9EH%09ApOwS*$yJ|1|REZn=h(yO$^xplS zt>4dZE}Iy9Of0@I&^ak7W~!N1Pgyfkg;5-(oGzN5jI@V_b+_HU3OQU5sy6?JT#i$_W=t1>vY5eSRT{bz0Z!hrrDWY)x9)#$>bV2!TCtHH?ZeD%zwKg~y zGv|hBlM}SMq*OfVd!PESo;)M38*bAYEBK2p>a-*gdKJ1go-#9gIJ(lR(q@ zEXXT;`V{Hm8QpXkdg!YcwQUM^_OBwV50Ccva|T>TkF}pSj~@hollc!FP?*G>5quc0 zPF}*Xx%@SjCPs|ev4&|Yn(Yd;o$0`FHOH)^This|{Bti{!#^DX?=YuMol>wNifHnm zW19y}mKU|76#kWw1Y$bLS>dOpndxYyNgFMFT3NMaLPzj0!Xv;aW1~0YTyYAQ{SUi; zT_rd(+-T5`tFCtV-a=(rv{qBwaw;_{W%hwUTN^UHLQzJCb>jLtQ@dsLXZihK=79f3 zUogUN=aW_VoT!+SO%2oD(_hjVc}|luU$;0tLMs*-vKx+uF~0xp^gqA`0I3u?#z`b` zKPYkfnZkO1=Y<-zy)>S_x~{i{D|)fN|EpdX#KxxNQ2v9}kjqEIwh4Nfc#8iS?5@`a zX2T?&J;uSv4X48g;lm&5g@|y(&b|vjUSY>dxo}*?FX*VHRfM-W3`K68;l}<2>Obj! zf8prh78nrckF`E#>ZL3N$w~e3zJl-nQ90iEV3PFsFMk0t#M9Rd>B1a}f&L;d(-i}>C&;C6(|IXVW(4YVq*d=W% zhWaE;$@2WUsUtI|+UEbaE+m71ENc1m)kK;7J9^U_Qrp|ZwlqHmL)n=QLRqblBatfC z^`KFz9NWxE(ofx$@_^UTSjMOE!A8j8#r&l5{7FmUB>L}p`-MR-s(;{0oGY=DeGBx>X&nOh0o8N zx-jy}EjxmXbO(v;2gD%-AL-8xB9kF?3T%xK;0%GVn$WqMhhfS^G>Ejrh5A5#i8VV24M9e_zf)6%{nldD+ z;O#1w%+wgQy|%e_69%3&|M$mBCu4R^O=mJu;~a*3$IT}6>`^u~!|}wCf+0ypJX0}U zFR|k!=1*-cDs>mM!%jQPNE-JUYw-aTMDP_n{&FWx(yKKcvKZ^ja{bmiWHqPG z>pXOunvre1PL&(UC|-*+;jT@E!>3SfHH-w}8B~6KLxwXG=jtOIg}iz(jS*hjaw*Me z2EaB%6dbTL@pw6nrvGVl9Q-xCp*2MSTH2EsO`qkYw#<131pODC#pW&h`4i412LA`c z`+040*JYzy^#QgDfw*#?nlHk;ORJ!~p-qo2n4D2MjG|*(%3%t|BWe`1Caw+ZRq<}l zZU~iyHowkavr!2=IZhM%zx$b3cv$hwOEon)%MBl%4Q7*0#WmP8>fp=lnQ7`xS=D{G ztSCsT1v40O!r`^p`I?5-5wdC}~xknC@Q>0%s;em9biXEOZ>b_LvMD^R0Stytq<#OkX$ogtrTHaxk zZwptNS^AphsHvsHN-Yr|*vatP^FbqAvR)JavoEb<+H4#iGp6d#ydvZnwR`Qgs%;ut zi|#t?z-N`isMmuoB9)Ug7rz-PDUpHUKmJndARp<;aQUq*9`tB43H%}MUYK?hI=f0q zBbMsX;`xU!$FT7ra=qFJJxYqzHVpQ}ZrS34+ppa$;MtzutkWl-FQ-C6B1wCO zH6Jn_Gbkv?c$CXz@&Iu7VEvYsbt#q9M(EHD(Y??En;9Pv8dsTtAbx}izm4=t|Ho9+ zy~Y+>*J}m+jOdibRTh06n58ZCG>g*ePPi9XBph#m&k5?QOed=?dT!jq)(p_|*2WzI zGbR1EJ9k_xg%@lsrv-}{d23(XIwi9_JTQae>+gyS<0;7_e%6}cO*KBtuz-f4=`7f; zbQGZ&<6FOG!-UAwJU-Pl$41djAwLy<5DaUS{w6!8ns~NrCDCsU3R>V8nsTuB;wkIr zU8B-y>{dt^#)!FnA!g*#@O`5K{Yk}cj5fMAM9?sF+0qV6ODrt!t7Rk&1|ll&QLcu{ zh;xTQ(do2x$nw&{DaO{Krh8S5EMl=;ePp9P;-aY+@%LY$?}W9PsXa8CF`O-^n0R?P z@KSC>h>_b8Y%7<3$7FAM5dA@f`ZjWb=2%WnwdLkDdTTcO^5%~nGI?;)IV!k=h}rNY zO$`uTY3l@*8CF(R#)8((ZPKmEC7NCit$TR{DO&kI56-@^H!&&=Hw&;nyU%a3{YUh^ zE_nH`g?UI%BO0+-Wt~`DRjXu_fvbEPFgRbNYLFJ16^5piM&Q)N7M2~y3U+s|XY2Ru zzluPD)9fyC66ey>Z7rIpU|7`~kR4vIJh_3~EBF2^G606$mi>-K7nZ+|p;FMJ3~n_SsHP<(@)dW4IRXmn_V|Cu)N-N`;cdJFTuN{assTJj{Jzsb0(`DM z{&+c_3oIAX(YhmK(0EL?TBY*E)WTRQw@R{XgF0pXZIQ)@z&`EOco|ae6qkltboXWQ zhuL{~Y$~*Bll{DMkg(UI-wuCbtSe@0V=YO2{zE3FS&@7E+u)VJXZT0&upeRoLa*O| zzl|eeE?&{{15XD6<70>wc01=XszRxlM$?>oB2Ku=R`92ibXQFHfAuxLg0Hf5Vmzt^ z9#h>O7V!u9GU_72-5AKse-#${!d2rOML`j3L4_PGyWR6j`zf@z03)N=F4mX|pXOTT zfK!`@&ANIFRCgnVazU3=n}*0C=j5;~qw=s7eU@BS3)V12#(HyIy zl?OurTadLicg959JpwP3wdM=<+qbJ)1Euejs^ZEuPd<7VoXUUiCl!Xbd_=dTy}|sG zAzt-_A&tcc7;aoj7{VGPpIpwTyP>G3Km^(Gul=->2b>RpIO27Gyv52wW4JDdSq+%- zW69p6GWZ1|ExLtdYF@&fUa4F}U!R0#fe4EGcg)dx;hC!|x6qiYd*F%j0wO{Cr%Wgt zDy}~1hIdH)3|#AwF=bEjOD~cM@~Yw54T$2O-Gb?6fvu)Ky+E(v&(I#2M)l1Q=EG~7 z{WSHdjg?0(5~==AI&&wq9-fkwdC5$_$EEZ5=cU&$B2Xd zxTdu=W9=)cF0{uaPQnr#zkx)0%V%i?xCU4B` zt5mO0o#e}Nx7~1{uUEj%?*YC$#rs%C}pkmTXB z%4)MUW2o&C7%DW?gH69IFtB$+k_a@YlDB$di^fYORRKqCVfrtv=oj?1Vi)>wo0Fvs z3+ww+=Ooh%mBP~+SRv|wtNJ_0Z%V75d}r%MTX(4&G#w5xQ@~Nic3}sToTW_R6>X$V zNL5bOlnBHBME2|GAIqw^pSI|+Vf{)a9b~G-f>{y`g`QE97&lk}G)<^0Vw80p9?=M5xb^C16@cv~ehj z<+z)~+C+03aAR3Nb1Zvmmk%5eX@aysqt^6)7kP2sGf9Cllrnw|M5IR;M*F+qMzh zA7S1r(4QEwN6*qDbx14^Ji7wgo`#75;t|ADX_*E{qXhP1-Zoy1DzTKHSw~c4Bjuf4 zlf_M$ms~se9rL=H*%?cf!>G5GZK2pDZXjAPc~o%2`gvLGTh(fuFGa5M_^9bziN|vm zy5TsW$oqY^oj(s23}XtF5~5&$9}lYrIrO!d^c-UsAXS3*WuY`b>LAj&poJD)+0s;f zmRuFA+H6vTiD-V9{EAP;o9ZPN4bw73MwQO-9u{G2NvbS3BBFfT)>j=A} znGEIx$_C#Lx|aCR04!0xLrw_UzG-*k*RYiZJsmDZT|!k`zoHn zf7NJ=88VHE#deud5G`cIx<9lODx6D-(P=L&3n(I3EoOrJWva03##y6%DTYQIn_ zU#h~tBERLS`V)X85KX*-x`xDj`=uH`#Re!)57#S;HN`XQw;ikc_@CC7!B7Oz|IZk;6td9j%`{{VhmiYxmeY* z))QtjJR@sz9;~1q&w}Nie2-@h912&jUmV$d=Qy=hfLQl6IWT-K)<#2<@P7ArAb{HT zYo2?clgjsDH|0J_Vgqw9HtxuUeNOHl@S1k#gJKV4h{DCzSgrPahFc9;{<}@;r9{eo zS|D-s$0ea;WmRQNbiguwGZ$Uk{6I1Qi=exP4a^J?0(RhhsqG*UQMR40GHVkjN-;t7 zCnC-E9FJAZaL5uhr0okvAgds0r5&3=97!Tfq-YMfFWV9oTWNFQtaWoCevF!WESpSf zq(0>(TPUmtj+keI;Rc#GwB^1`&eMR2d-O^*xk&;OBQj+*gtv-Z6G0JMteUU3L~Pr4 z%<>58?Uf=^!E2?c@m)Vsq9(pKK)=sBR0NQJV*?x#0`A>S!Tvzy{mBn8GZ>1HJTeK3 zu%4ZuoL@{fI4UWtf__!kX{*Hgc_tjpO?=kp<*~LknL` zQNPn0xq#mla;+oFu!q$-+RHe9_f?6SO?BKPo&gU!FJZu`GL3jr&V_=OW)ta${065n zdjVeDRO5)58U(wS-a|!M3*uMiO0PLp6Q!QRx2##_T88h{xJ}(Uk;L5mABL@DT&7F05Dz55>V|O8Cj^B#Sf3IO9cGHWK}^(*bXD zj>$2#XL$~teH8&TA}tbO@LgfoD6x*5Yw?%T!^e)5Tqp$|x@h-mn!!@i^*m4m04kXE z_ES}diwbt>>&}kHsLZx%c`Y+^?6`$N>QYK-qX8cJ#FwS)tPP<8lp*#^Sec+^=c>|F z`F5BJ2^SFzP_1dA4N{=U9oz!qj_Hl*4YT_ZIu3DmCiU-kJC9H7x!7m1Z00xQ7q>;GN?z6=$jeqQ>FrBBRsVYkt5yM-#hJMKx8G&96yui!KnqZneAA)B^^o`EgdR z**I94H0C-G%{f6LbK5mcOr6zl1Y2j{rw4^bTR?Cee0H}ly=I-CYT{U|>_&rMU0 z+~FaZRzDQEwd`Iik6d(mC8c$s%HN7;FW9g*FXyH?3d~>n>)z>shd9CYk&z4>)XPK zn(BFc7r$=2z`P=lDHNI+6sx75+<*B3+LA2#2^N7=la4esJGS-N-_&%_JDe-F%n_t;`_D-4BCP75?Xok6x5QZs_3R4@NNTaV$#2DbiswveYX!4H%`@Hx$g;lYtU zwQvgkbEH`{I5FKzq*>-fObU4TXE_G?_$FE^jGip}+FFdj?<-*b7*V&@j1;wyEN*s_ zU*|4(SajshC4XWHTC z=a(;=I$Crc+arB$uCCT+n=)pI?9y$e%%hAX7ON*f)N>WRxu{a;oF>SuPm|7HKH#ck zL8!{smlB2zaa>d1qo?C7p_^dx6ek&Ay`mpS2Y+6)^^@hRlx82R?oE%AJpRFlx=Lu6 za$f>P>XxJjSNG2Q1u zx;bUK34VWWZfYuxh>iBtikIaw#&OvCYIbf653N14(8tAtOXN8j0Kc+EB?yZEcHe>= zp>y&}!^Y@)*A!8ySeGvGOSpf_hrEShVwPlDR+?-qBs5}h+=W!i&qXq3KcLVip)3;? zszWu#*-UlDHv6CnQrHchoDcTkm(St7K*wL!lTTpEWv@4S$81Nx#+m7(vS|aQL2gz@RC(3^uKV!ueDg&+){L@Nrb!#{4>1t=38>>ssX^!))G{Kg*JPQI`22%J_i5i?$j{i-$=@p|l<5@<3*&=OsUg*VCzJJLptgZFoJ1<1n0+)jpIWLpfo_)d}pB{?mOhA zp@?%Mi4kWL!5VC6VJ57JYc8G292|cdnArxfeOr}g7KUQ(^C?rZ82|8WOCnWgOj%gI z#J7^gG3zlay-5=2J}%y*W2@~haxb{W$xzgA!i{;c~$Zu~YEx@ZY(vam9( z*($OH>qh2oi+^AxPbnv7{B-shcTu3}_)W#}Ijnq&GY>g7wRVox!W683K35{bxB9r7 zBK_zbD0ul-`Z3`fjg-pHliU&F{J!deV=7 zXyLO^oHazvShsA>Vg-&g$n@1l zUuu3-etyhRY@a1_Ort<4TU`Av_#`Aen@KxFH&X3i z(BVw!jE$>>Y=Vds4Hvo--N>C!IRai6L<*UG(s(*13?QB#y+G%;O8rC@b0=b< zL;`0lcn))GwE^mtR)|B%2AO=g?`Nfk2qAo4#uHo6~2a-4GerCov?B~&Cwo+|$T?#Y+;DJTu{ z`%WPcP;hXl|Li0Jd0(qA3(4!*`60(tT@Wz|W_L}VZ_54W$)x}>Y))xws|oY&xWQQZ zKpJ;6hXaA-F5lv)TTSxS|M!=}V?HY_50okKKE44)*cZZreZD*xw*ckNj<&O{*BE+H zhw@JpOF$rw&?Un47e_alvaKsH%M2C0-NRmYx*Ljnh8KG}#+r}NS1W9&P>uY0W>WEf zDSM^{^xl<;c2@t4<*ofv@|P}-kp-4*<0}RpC_2+%A3}EZ0>!9&K!X2J6ZQ_zgfeuTO*j;0Eu%N zvomEl;Llc^%k;{4OG28Br(rQ1^B9HvU5bF0lf7)CU*50{^Nt3@Aa8&W!h7Fua~F2( zMH{K$Gtn-YXW)=6a)t!l=e?v95KJ0`v453GoSEIf|JBs>N9{JJo*67pcLUi?-JD^F z%Jax$qy%+xDYHxR5@LZ;Jo6kmk;fd6B8^vMRKBIR92K5v1N597!W(3bGShlwH2#=a z>x0~94NNBs>{Mm<)$5of?$xpZY-i99@tOUi&L0|7*=-$hFYh^NW7k7b@}#+mN^*O+ ztt_U#wAmaR{Q5iat^#U*+>x=oR`L)#$0-Y}HN_9Ry!n!sC$PLC2kB!ME5laXTjKF! z-Q)E1>N;%Zigq>gvoO0K8m%R+!MuOg>tFwT%!KS%+_M?&$?A7KnJPSO+fq8wJUfRH zUgnnFdELyeXgmKdjb+dxko1(O!pa#`eQ|A^1_nTIKB?_ikD1>73l!j&Cd3f3bffmh zq-{3?1#~M3p6bIxwG}q0qU_9x!|6NlaTc?nEz`ALhu1d%_m`oYfcV|eCw)^5i;a2F z?o!vP7(&76RMyW1){XAESX2z{&R4236M$}PSIm6Yuuvg(-`x{eI}Qeqs6rUnB~}-z#0iECWT{aZsZ-raB-2W5 z{t@s7uyCz1ZAWHlc`b?{xVx{5|G_sO4qFBvz2=ZWvcCRYfECe0Tp_LJ)R){BP9JhY zCey0D4kaa3g;#G@ROsYhbpASxIVUXGU{&rKM9P7|*G~G!4KD7CpzQ{GIG5`7O6m3m zC$!JceRfDTQOohvlF>7-7u!X=uyOnMrJ`_HN;UZRmjcZ(>d!qpjk3L9RxYrw?(qVO zpZ4*j0Mq?-FHuoU2q9_)?6h^JPZAVQXr9of()GKiTpzpbH8GqfZDu(!M(G(c)_AzC=*hk{8 z*U%s`G$<6Nkm^l{kfKCnS|et-7@cCvI7pOjRp;=_E9-4Ggiomq8BDYU3s$9Z*JZhN zt*y9gyJDo$>>C44;P$eRTHGa6{em5$LTU>Rm+z_wl}1d~Mw@TOpyI{^3cIcg{)FBw z!Dy>01fN6N2q^IBntj@JC1Jxo%1OHV6UnS*1yk3B80)2ox?8L&OF(LAe3*@V%MW#B zxDDzw+(oBz+Kl#eTO$vCFtA~k1#T{Dg1FPQZ-zs-#Vx%;wj))~KYEO5ec&r(_%F9i zuJ8Hd|KiPZTkzbUdw1DQSh0FLE_Aostb&hG6$M#Ei!fdc*P6jxxhRwTYpHaS{D{(K zl_O^^6cD(u+@`it^MnVaP->{5GYQQC6Qj6k6Lvf02gBvan%KH{&5V2WB>bm5o{T0q zn`O5$09e&Sw3?HD{maF!yp_Rz&sFqvK60E{+@9Zqvl08esQ=gSiq96bpkRp>eiNj1mR=(&!+Cr+dsmTvyz1Z!&)|<0qz5~r z=B9v;<>FtJ+b~OIT!z@|J5Zh5HHChBfKS;Nwh&?1n_PI<{iC4kDE|g^J1!p+)mmp8 z_2BY7_}vf?2O^A7&Bc)23ukgjv&hfmTw7C%@~c;WU3WijKbfZ)`E13fSZ>KKbq6-c zG1}5_+Scw0i>iCV?W!-rkLPI zK&I@Hx<-=xeYjjT=}0(+JpX`a!Yfg>iX?iTu&%aSW zGi6_(igA2$Cf&C0C-@F~m8-3GM7(0za3Fr+H(^!o?J{L~ ziBsf{8EofKiMcTU2C-+1&F17=ZB@%FRUuwmq%i6%2!(A>%H-=N!n54tRAWi6B!1sK z>dWv=vhmvA0*_H#1&s7zQl3htQdnIdQI^_6r{W9W-(lIv3-4d(FFTj4KBJsdw+-$< zxJNMDJ%ssMBWmlGWUDnMiZ5|QOQ9cl6OS3MM%MWm$sW((7E5N0!$=`O?ZUg_6okKu zg_YsWo%`jZGe|%wH|+gQwV{*pIm6qbLP?y1>=h$gK$9bUo$7132oRm=c-PtwSQ{On zW)*gI-G*_PM^MOX#97KxWe{b*@GZU$uR_+@8Fyl|s!CAE*=Xyyi?OgdR1K5~hSiy1 z%{ke7o6sU<{tcAGY7Tt&2A?&RCztX;?W2nVXYj3Fu>;1BY2b2Q$Tc2*O$F03*4yYEZoa%*Gk)evM?N$et#A{8^!tVAXINrJWs6$Sn!>%@ihFOqAVX zhbE@I`MH;)Zz$A7JMhJyn&DE&p-5P$`^HD`uQ@SdGd714T|xS8h=MvDsOh%}d$+wR z8M$KvNL3iIxddiu+8NwC>2rB!G%hWuPz_2UU(*%ulR-X+)K+bzw=3LF3;YD;t#*u& z2Vv!DQ8G9Lghwhrqz(|3=yukqO7qqSXpHAs-fY5$<>p4Kr$`J6G)bDP(3(iP%ba;L zPT>5R%XLMv<5F$xq52|L4LWH(d;^_Yb00448l2-YJeYv6UGfrRbC<43J-GfMi z)Ftbx;5s#vx@iyj8+b4?DYCxev>rWJ)(_WIu$>@68y?9WD=nPNNAzLbi1|*18cz$_ zOtMOA-7>8WbJcta7Fwey=U6BbHv6&t_$gh{K_*HLmgDf8dz6x6e7{r>sb$!R_0X$n ze)2C&`(l}W%6OKB{T;2)dvD;bB6tx*S>w!As%E)FqZ%vT0KZ&0&nuXMHnSS})W8g_ z*$;Mbs|i?>=SyRTsVC`g@HvP`O3beD$L$N8*gHm>{4C)LZplefRJj1(+;$HOH%kabVFF2!IcL7zl7I;Ve{?i3oZq+bZ%)4Cht*F z6)s0f-TT&&*sw}&s|%_ftOZ7|?;gA5-*wi4k-ETu%p$%Ej|P8N70E_HT68Y!`lO3x z-o%p+X=a>|Qr=++gSKD#;h}@dhtGWcxqF+$42?{w!c$$gG)DD&S-=HddtVE?XV{ zl~eL6NsBk&(yGI{LXq)dQ^}i}!SpBI7z53=7Md6HAAsGrGgMcdLz@8;!_q};kC^R> zZkadGSMqD!OfYxBqWngJpTBx>|Hb0>1iyIFFZ*F5C{6kBPf=BHEK!|%$VzX3 z(4(5^LxevGW~U0_D}N=GQ4?;$Q)C0gR+uWU-ZO9>N-6(^2OHzok+ieH6yDQj;dsUb^_e<_ z@x!eG+63MmGJg#(1}NERF3Ad26RcaJV)3~^7lG}blKhd`#aV= zhW%P~EL=#WLqfel6ZF-I$^!lw*b5@38XgUzP-({5n%0QC@6N0Y6i>P`OY@f$Z|{=Y zmE2auEqiSuxJ2@Cr!nA2)%j)@Ta&XB0n7z;KAlcJyo4j7XZlWAKNPO@QT%}JCu&n8 z7$qkGauxq88u=Y_NUGcWznOPm5EcywnAYPMuV6Sul?DN9=ysdJJ&9%9*SL{G>woZ@>XF8m4f(^+XG2vrwl(*&^yHzjVnJka-CPm@a;*x^fGJDb zleXnJ`3ScXqh$WY-)Q<=qaAwm!Dr_scMkkJ9)m~io!RO1YGI44bLPp1rT>RNO=IJ^ zwEkPX0Rw@0|AW}yXU+eLH&w`jdUjps@70_4$A^=0oBu7|Ae(K(72DubHhwVq|L>!Z zUyC3icxhAqUQT$xoDur9u6a=Tz2jbdussKf;&HXGIT5nd_eu|UZVh!fyJAVjF{iw5 z<-(&En+d0NcsW&ql#g>tmC=1OQc(i&NPXEXVZ=cxyg$WrSHo3NQ>Z{&g?4~N9vYs! zw7}dkRB#4#i~mT-sp8r*{E+CK>k@L>$ydaR(_RrXZUr^VF6B!aZdAQMmmCWZ6AX#; z#pVpGrAu)uAkvvoB0=L^6?t`}t-3HhRpKC6o6FE8V^P3RdxM1pvPhmm2>U6YAGXbT zHtkNY1@&?eOl@<@Zb-~8t(s;n2s>Ka4=#$i1{#H1uR65-{omDaULN!)dysK(r!d0ok#kDS?|?^UX!@p4O%<;ugh7=Y&1LW465C$VfWg02pce6BPe|1}(; z(WU3t7kQ{SFPjIGzm(Q5f5v!;5J=y2>|~KVhVZ2w`Hb+3-XObi&OHKxcIwbqEPx=x z<@!J7++>P1Ts}Xs8X#}OlbLCR26?5AuIheCF3wLD96ldcq%u!Mqxfnuy}vnxu($C| zTA!k7rlxSrm&U(Ug%1uFL+5r_@fCLT`&jVt7bAa|A@VoC;>ADpTN{6z*b4mhZEoM+Gaw=V5_|c-F%(wD0ml;(FB`Dt_x@Pn7?ZBYq<)DYHT2oMiw9yDHk%EsTx|gsb&Jc@mg+dK$ex7;Dx5dK823oNnfWn2wbZ2tLh2V9 zY@(8+E$k>76*?DCZ~)aLUg*s~139lNoW8QLG~czYR!JdlH>)MPeQ&LJQ)1FpZ^$i!S>?+G`DEi5Vxo=Ye z@X~xZYwm`J65heSEUPGFVCh3pTZ9L~0FUV!%%3M@GvNCwnr}6hO9||jXqIe*Y`j)z zKNZ&O{ZQxZYb1mA#TCU6kpBlZtB)%52d2`j6}aPxiUUbctPD@?*Hk7!K44^OmI#dz zIX4Ttap|>hfE$e{^S()X3&YiX1f!z^o!9X`6;Jy{1x%TJ>TB?uZSG`21wkT2K&N;O znzedE5BgO0kI+vMP0173*x&tpkg^S&W@zAapmXn6Uls4~Gho`Azw&+sZbu8E5&lOQ zhl=xmacudel^jRV@lw&^2cR-0sUMT_CU#!oD&cyo9hCcdes;wepBG#_uPRzA(AMeG z#mi2!rWUbnYxlX$UzY)r;~QX#Py}_!oMVN6vk?`;<2WoPk{Yg@rb>+O;eJW- zaWV4YS5s;=$};K^KLja-mIkK( zaIry^Ku}?`){t2xBbx_#PIHh~E}Od-3_fe~h_9;ImzGi7DRF*WOl%d6UV zj~upfg|`K4&(wG=*hov;e0A&kDmnI2oq042yLU*Qn%B>IGZ^6Ow*1R(41=m3%9;AV zp_fUK#;ON1%0-1>!V`12J!lB0q3l7u>qC|&OKrfsqTg*RWF{o!I%Fb^43-&`ZnndWU0sgwc+|FcjUDvzO8P4;mV$~T_fPSYJ)gqOM#C?SK-0)ov*dJ z+~+u8HPG|>ON_x`a%S9ySIafyPtZ;LM6jz4rXJfahk4blKRXc*{{iBEq|>^eP_%*k zRgOyVW!0Dvk;igHg=2EgfmRsKE(V-<-G_}d$viZ-&7)jKga`ic^qb}(I~*`-K^Dfjn*Xj{^T_I%bzlLeDUVyfYeonaPE*6$n#Q)464YuLC{q>d`b+MY7M0b_Zb`i zOjqlbZLngDT%H@t>D$Yf5~&{7SCoM z9O|qNs(^892(_l zoryK%I&jvrrqJ=>!KvLvPyZQt7xPCADnw+Ra5{t_V;jY=N}`PGVn&QI7Ki$QG6BJ`I;%uEA zJJ$ZW#?vp%yClDo9yqU8^Y`ar7&O!5z!QNP@%JPEQLor zK~Z1l{UAgo-OZ0BKtX^z30@8%62|l!8Dc6N=GEtY;{@XhLp@!I4VW^1_78hbuF~oX z_o?B*x-&3MW)Ua@GYs^iu*T1oOqwWkh6Pvx+@UqK0-pbT?#}9TXRmWv9rN5138l0R zmHAip;bU;6?*Zlr(Y^*_9EKSMk|KNbOg}R2;P}gnG6k!dUu+ybeo>hz#t{ z;jW@&RzFk5xdgoG90>C;^No1KiNM7?r_SLzE(BV&1yYSA6%<{@cvBCPX!HHDE)Au! z0BP&F5X%x6c239@=uG@c+e|h^K}v;V&@HD z3Kg12IHkg+I19@q{9x*u0tbyor(9!7|7oMCkn)N;PSwl?K6QqK;g_F%hPZ zpUnLzND5*;7Z6Jv@=IY6i3TYKEZa z1q}P=?v=gsz18_Xd;iA)Oa-BV1Vm1b6N6F0p?f$CP&f$;ho}yER%~CeHD3KON{Aih z*ZK@J0(-1R8fhdl)>JF3nFgg>ak!_p?h_@8T*Zy%dEDB;^?OeB@z}%8Q@NFCuMzQF zA*W_kzA3v>WHaD+*MO<0&Sxmp5{XS^kw@Q%m>+GKqF3~hRCEBoQdN+{WGV42nFp z)BqgKVYljRRoPhy)A~S!5;x{kXC@yxDTLE*wR6*0H;hC7)qT`eqd^CS=sQTf;rcl! zcL_st{>SRU$_nUl2RSZseUcZFvG+xw6cR%HK9^4o(>idULKz&5NBnhqg2kyB5PFGT3olj*3|V&wsZ z!_D6pEynios(TM_EcR%SEnsiC6LM}c#{6AZ6?u;SQlq+ zNCf7tD!!bG|C?niFV&%hlR^=D}8>zF+giBP8@*x>1e3x=WtqSO z=i0h1j>*XBntgW50c+h^?hFG3@0(_-{RXO$&-q$GU=i}74nv<=cEvaNV0t44b%A?D zLuX^5t_lt;uEDt;sp=EVjor7hqQV}PsG}9(<(L1j42l`r;#($gN@*M=d)2L$(d2!? zaOj8MQ!(a5r1vCkt!tx*K%95o4qy@;Q8V*+B|J!0YyG=%8Y`??I#C%tKp|2EnE9YU z;qd;C)~$pc3bhT-7&FE&7>s3%vPQOKD?}3pk<7?aLYBr}hz2>wzKl^Q+4smY$QYwS z$G&eFWJ!dBqrNb7C>_hu7vC@VuJ;$b_j|q1y4o` z){XH_wW|PJH-b+$9N+rtCf<`*X4-JaM0|DmwXP~QEYrXDf=BY1d2T*w&}+3(O)}bU zb0Y>p-u{wMW9ZUD9pTv?a&?w~%`rC3?0R}eJJCwrPfMITLhL(z1;`*%k45!yc?D@J zFUm(zS9AR!f3J|Y1YP>oV?nVcK`FU|0RTV%q7(+X=wy~^6T!tz04nUXeSBOjj&Yft znN+vPx!bnP5Qdd4Z#cH9{2e+@csiQ;Fy}RN1V>%qa2)0rojg(qpIJ^iZWhIdYIAEy zbaD){vA|Xw(E7O+TSHBOX#(XBZrlQbOH~&4Q2OgnYxVro3digCA*=lt$bDUxU5FFj z=dZ7=9nL^;|Fvd%adEMeB~igCx*WBC`vS<_y&V*!fE}~j{kEG6r3dwof*<+Waym!( zw0_~n%8s$LWg2Kg@RV=>Q=&Z6wDBiJ8?0+ImzA}U$|zDQmW1(?1?6G$E3?Lax>~y{ zR=tldyV@|N1caZ5^7eFFKMHP1-4Re!M^N}>Tv6(Yf-_0KK1kzbNo2GTn`qWIXX!y| zs58fa1t-TM4cCPWwlw{81u7s#Ayv^<3d8i6@(Hc)do0_1& z0yA|%Q-C1&S1#M>ngWexnXw}_`+#p)@y^Q5^fcGYr(6fMcu=to>LSljYUDb`LXH$0 zg#QiJ|19SLfLhpx`mM1(rb!cBX*u-ayOt7#aqdTD>J4Hrr?s@5B*wRH)^VvtFCGws z>^ol`^#lwxQ-SgXu*UE)!m)9x)=fpfaKAejc?}rOk1}{L0B_YAC?{Epw(w4MiMVm^ zoP?9Zd0$!5%EWk0U@6~~c_Iq%iebVr3${YMp9dd~A21+fRkPla{cz>)3{q*jK-&z{S2X4Jf zw|Ipb#6;s%!Zyjy=_1mN4nmxGxtWBP##o05gYTo8N-z&AwutG7&h}fceW7K1e2q-7d#+)$0LLZ zQ<$G2m)0|LX+D->HqzdtZetyFaIn?s38uE5v(9qDC_^aO8^AR;aVC7@5ICF_ZTE5 zp28unxF-hyMizK#%5B-QcrAi= zeJz}2Lx&E_u2c=gMGirUy-Cr-AgaDsr=HZHb|epg6j9L+P8$hxIH3f1rF9CWozKR; zjCR}?Dj4{yUHZ}~!30G>!zwm4mdoZ7_Y$Flp{y{R^h#Y7xfusRm&{7M3?q#A{O&-; zu!CLR$J>GC!&S{&@ob@Xj8)!`b$h9ObjkjDUpNEYKo6$q2!ij0hdg*{H|hQ&nLu(Up|LU$}?AP5L@ zgzMq*A42>Ri1(}$2JgqCtfE&~Bk`DdSU9;C!H`mQboTZCl^uhA0z2PP--SANebT4P zJ>7BqefR-@gG8>T&(}rl=+j>JZ-VY#1G}igD;48f#o{7uF-Qi@THfyCA6}rj?>Qr` zaE~;Y7|(?8RF%{}c=TVoHnh21_Q^`aX8EFO6%AD2mV&QxZanEneTFb++~dF%OzQ62 z=ArGSWMA5t<+b~XyOQMP`s&_{Ve~+hiEFGk-%P@;zQe62?CqT5-KQd@U33OR>_orc z=0Uds5Y3b1- zYSk!n1Lhw8qT)tsweG3hw7K2DNu}D}W?Q*)WBH-bLX1;(b4lNuq0i&XYp}BY%~FMx zEDfFf0&AW9+(bwd1vnP%(F;tI3BD!$w!R|9g`9X=KOGyx4Ra-GfhTU-tBhQw7^|cC2XN5SexRm3)M?0;^8na@*jWx2?i5mvHtIb8)88*DWmC!G2aWuGA45O#KV=s%5nR From aa55750e1070727ead2a4c19bf1f6a41dd2f5c4a Mon Sep 17 00:00:00 2001 From: moseskim Date: Thu, 27 Apr 2023 15:39:56 +0900 Subject: [PATCH 09/17] Add files via upload From 42f222ea68a512da8b868a640240a12d852110be Mon Sep 17 00:00:00 2001 From: moseskim Date: Thu, 27 Apr 2023 16:42:01 +0900 Subject: [PATCH 10/17] updated README.md --- README.md | 38 +++++----------- chapter5/README.md | 105 +++++++++++++++++++++++++-------------------- 2 files changed, 69 insertions(+), 74 deletions(-) diff --git a/README.md b/README.md index 5f6d869..36105f7 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,30 @@ -# 추천 시스템 실전 입문 +# 추천 시스템 입문 ~Recommender Systems~ --- - + --- - +이 저장소는 한빛미디어에서 발행한 [추천 시스템 입문(Recommender Ssystem)]()의 샘플 코드를 제공하기 위한 저장소입니다. -이 저장소는 한빛미디어 발행 [추천 시스템 실전 입문]()의 지원 사이트입니다. +## 샘플 코드에 관하여 - +이 책은 독자의 업무를 돕기 위해 쓰여진 책이며, 책에서 제공하는 코드는 일반적으로 독자가 작성하는 프로그램에 문서에 사용해도 좋습니다. 코드의 대부분을 게재하는 경우를 제외하고, 특별한 거리를 받을 필요는 없습니다. 예를 들어, 이 책의 코드의 일부를 사용하는 프로그램을 작성하는 데 별도의 허가는 필요하지 않습니다. 다만, 이 책의 코드 예제를 판매/배포하는 경우에는 허가를 받아야 합니다. -## 샘플 코드 +이 책 또는 이 책의 코드 예제를 인용해 질문 등에 답하는 경우에는 별도의 허가가 필요하지 않습니다. 그러나, 이 책의 코드 예제의 상당한 부분을 제품 매뉴얼에 전재하는 등의 경우에는 허가를 받아야 합니다. - +출처를 반드시 명기해야 하는 것은 아니지만, 표기해 주신다면 감사하겠습니다. 출처에는 제목, 저자, 출판사, ISBN을 기재해 주십시오. 예를 들어, 「風間正弘、飯塚洸二郎、松村優也著『推薦システム実践入門』(オライリー・ジャパン、ISBN978-4-87311-966-3)」과 같이 기재할 수 있습니다. -이 책의 목적은 독자의 업무를 돕는 것으로, 일반적으로 이 책에 실린 코드는 독자의 프로그램이나 문서에 사용해도 좋습니다. 코드의 대부분을 전재하는 경우를 제외하고는 특별한 허가를 받을 필요는 없습니다. 예를 들어, 이 책의 코드의 일부를 사용하는 프로그램을 작성하기 위한 허가는 필요하지 않습니다. 이 책의 코드 예를 판매/배포하는 경우에는 허가를 받아야 합니다. - - - -이 책이나 이 책의 코드 예를 인용해서 질문 등에 답하는 경우에는 허가가 필요하지 않습니다. 이 책의 코드 예의 상당한 부분을 제품 매뉴얼에 전재쟈하는 등의 경우에는 허가를 받아야 합니다. - - - -출처를 명기해야 하는 것은 아니지만, 표기한다면 감사하겠습니다. 출처에는 일반적으로 제목, 저자, 출판사, ISBN을 기재해 주십시오. 예를 들어, 「風間正弘、飯塚洸二郎、松村優也著『推薦システム実践入門』(オライリー・ジャパン、ISBN978-4-87311-966-3)」과 같습니다. - - - -### 파일 구성 +### 파일의 구성 |파일명|설명| |:---|:---| -|chapter5|5장에서 사용하는 코드와 데이터| -|chapter7|7장에서 사용하는 코드| +|`chapter5`|5장에서 사용하는 코드와 데이터| +|`chapter7`|7장에서 사용하는 코드| - - -코드나 데이터 설명은 책의 본문을 참조하기 바랍니다. +코드 또는 데이터에 관한 설명은 책 본문을 참조하기 바랍니다. ## 정오표 - - 아직 없습니다. 오기 등 잘못을 발견했을 때는 japan@oreilly.co.jp로 알려주십시오. diff --git a/chapter5/README.md b/chapter5/README.md index e77e43c..eedb9e7 100644 --- a/chapter5/README.md +++ b/chapter5/README.md @@ -1,13 +1,10 @@ -# 5章 推薦アルゴリズムの詳細 -書籍の第5章では、各種推薦アルゴリズムを紹介しました。 -そこで紹介した各種アルゴリズムをjupyter notebookで実行する方法を説明します。 +# 5장 추천 알고리즘 상세 -ご自身のPCで実行する方法と、Google Colabのnotebookで実行する方法があります。 -環境構築をせずに手っ取り早くアルゴリズムをお試ししたい方は、Google Colabをご利用ください。 -ご自身のPCで、環境構築する場合は、poetryを利用して構築する方法と、Dockerを利用して構築する方法の2通りを紹介しますので、ご参考ください。 +이 책의 5장에서는 각종 추천 알고리즘을 소개합니다. 5장에서 소개한 각종 알고리즘을 jupyter notebook으로 실행하는 방법을 설명합니다. +로컬 PC에서 실행하는 방법과 Google Colab의 notebook에서 실행하는 방법이 있습니다. 별도의 환경을 구축하지 않고 빠르게 알고리즘을 실행하고 싶다면 Google Colab을 사용하기 바랍니다. 로컬 PC에서 환경을 구축할 때는 `poetry`를 사용하는 방법과 도커(Docker)를 사용하는 방법을 설명했으므로 참고하기 바랍니다. -## フォルダ構成 +## 폴더 구성 ``` chapter5 ├─── src @@ -28,43 +25,43 @@ chapter5 ├── BPR.ipynb └── etc... ``` -`chapter5`フォルダ配下には、`src`, `notebook`, `util`,`colab`の4つのフォルダがあります。 -`src`, `notebook`, `util`は、統一モジュールを利用して、アルゴリズムを実行するコードが格納されています。`src`には、`base_recommender.py`のクラス設計に沿って、各種アルゴリズムが実装されています。`util`には、データの読み込みや評価の統一モジュールが実装されています。`notebook`には、`src`で実装したアルゴリズムを利用して、アルゴリズムの動作確認をするコードが記述されています。一部のnotebookには、アルゴリズムのパラメーターを変えて、予測精度の変化を確認しているものもありますので、ご参考ください。 +`chapter5` 폴더 아래에는 `src`, `notebook`, `util`,`colab`라는 4개의 폴더가 있습니다. -`colab`には、Google Colabで動くnotebookが格納されています。 -書籍の中では、データの読み込みや評価をするのに統一モジュールを利用したり、各種推薦アルゴリズムをクラス設計したりしていました。統一フォーマットがあることで、推薦アルゴリズムをシステムに組み込むときに便利です。しかし、初学者にとっては、とっつきにくいところもあります。 -そこで、統一モジュールを利用せずに、1枚のnotebookにデータの読み込みとアルゴリズムのコードを記述し、その中だけで完結するnotebookを用意しました。notebook内では、各種ステップごとに、データを表示するようにしてますので、推薦アルゴリズムの理解の手助けになるかと思います。 +`src`, `notebook`, `util`은 공통의 모듈을 사용해서 알고리즘을 실행하는 코드가 저장되어 있습니다. `src`에는 `base_recommender.py` 클래스 설계에 맞춰 각종 알고리즘이 구현되어 있습니다. `util`에는 데이터 읽기와 평가 공통 모듈이 구현되어 있습니다. `notebook`에는 `src`에 구현한 알고리즘을 사용해서, 알고리즘의 동작을 확인하는 코드가 기술되어 있습니다. 일부 notebook에는 알고리즘의 파라미터를 바꾸어, 예측 정확도의 변화를 확인할 수 있도록 되어 있으므로 참고하기 바랍니다. -## Google Colabで動かす -`chapter5/colab`というフォルダに入っています。 -github上から、notebookを開くと、Colabへのリンクが表示されるので、それをクリックするとcolab上で実行することができます。(Colabではなく、ご自身のPCで実行も可能です。その際には、ご自身のPCで環境構築する必要があります。) -まずは、`Association.ipynb`や`Item2vec.ipynb`などを見ていただくと、レコメンドアルゴリズムのイメージが掴みやすいです。 +`colab`에는 Google Colab에서 동작하는 notebook이 저장되어 있습니다. 책에서는 데이터 읽기 또는 평가를 할 때 공통 모듈을 사용하거나, 각종 추천 알고리즘을 클래스로 설계했습니다. 공통 포맷을 사용하면 추천 알고리즘을 시스템에 조합할 때 편리합니다. 하지만 초보자에게는 다소 어려운 부분도 있습니다. 그래서 공통 모듈을 사용하지 않고 하나의 notebook에 데이터 읽기와 알고리즘 코드를 기술해, 그 자체로 완결되도록 구성했습니다. notebook 안에서는 각 단계 별로 데이터를 표시하도록 했으므로, 추천 알고리즘을 이해하는 데 도움이 될 것입니다. + +## Google Colab에서 동작시키기 + +`chapter5/colab` 폴더에 들어있습니다. github에서 notebook을 열면 Colab 링크가 표시됩니다. 해당 링크를 클릭하면 colab 상에서 실행할 수 있습니다.(Colab이 아닌 로컬 PC에서도 실행할 수 있습니다. 이 때는 로컬 PC에 환경을 구축해야 합니다.) 먼저 `Association.ipynb`, `Item2vec.ipynb` 등을 보면 추천 알고리즘에 관한 이미지를 잡기 쉬울 것입니다. + +## 로컬 PC에서 환경 구축하기 + +### 데이터 다운로드 + +알고리즘 학습에 사용하는 MovieLens 데이터를 `https://files.grouplens.org/datasets/movielens/ml-10m.zip`에서 다운로드한 뒤, 압축을 풀어서 `chapter5/data`에 저장합니다. 또는 다음 코드를 실행해서 다운로드한 뒤, 압축을 풉니다. -## ご自身のPCで環境構築 -### データのダウンロード -アルゴリズムの学習に使用するMovielensのデータを`https://files.grouplens.org/datasets/movielens/ml-10m.zip`から手動でダウンロードして、解凍したものを`chapter5/data`に格納してください。 -または、下記のコードでダウンロードして解凍ください。 ``` -# MovieLensのデータセットをdataディレクトリにダウンロードして展開 +# MovieLens 데이터셋을 data 디렉터리에 다운로드한 뒤, 압축을 푼다 $ wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P chapter5/data $ unzip -n chapter5/data/ml-10m.zip -d chapter5/data ``` -### Poetryを利用した環境構築 -pythonのバージョンは、python3.7.8を利用します。 -python3.7.8のインストールには、[pyenv](https://github.com/pyenv/pyenv)などのバージョン管理ツールをご利用ください。 -また、今回、[poetry](https://python-poetry.org/)をパッケージ管理ツールとして利用しますので、インストールください。 -ご参考に、macOS Montereyに、`pyenv`と`poetry`をインストールした手順を示します。windowsやlinuxの方は、ご自身のOSのコマンドに置き換えいただくか、Dockerを利用した環境構築をご参考ください。 +### Poetry를 사용해서 환경 구축하기 + +python 버전은 python3.7.8을 사용합니다. python3.7.8 설치에는 [pyenv](https://github.com/pyenv/pyenv) 등의 버전 관리 도구를 사용하십시오. 또한, 여기에서는 [poetry](https://python-poetry.org/)를 패키지 관리 도구로 사용하므로 설치하기 바랍니다. 참골, MacOS Monterey에 `pyenv`와 `poetry`를 설치하는 순서를 설명합니다. Windows나 Linux의 경우에는 여러분이 사용하는 OS에 해다아는 명령어로 변경하거나, 도커를 사용한 환경 구축하기를 참조하기 바랍니다. + +#### python3.7.8 설치 + +pyenv를 설치합니다. -#### python3.7.8のインストール -pyenvをインストールします。 ``` $ brew install pyenv ``` -pyenvの設定を普段使用しているシェルの設定に書き込みます。 -`bash`をお使いの方は、`~/.bash_profile`に、`zsh`をお使いの方は、`~/.zshrc`に以下のコードを追加します。 +`pyenv` 설정을 일반적으로 사용하는 셸의 설정에 추가합니다. `bash`를 사용한다면 `~/.bash_profile`, `zsh`를 사용한다면 `~/.zshrc`에 다음 코드를 추가합니다. + ``` export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" @@ -72,55 +69,69 @@ eval "$(pyenv init --path)" eval "$(pyenv init -)" ``` -シェルの設定を読み込みます。 +셸 설정을 읽습니다. + ``` -# bashの場合 +# bash의 경우 $ source ~/.bash_profile -# zshの場合 +# zsh의 경우 $ source ~/.zshrc ``` -python3.7.8をインストールします。 + +python3.7.8을 설치합니다. + ``` $ pyenv install 3.7.8 ``` -python3.7.8をローカルで使用するように設定します。 + +python3.7.8을 로컬에서 사용할 수 있도록 설정합니다 ``` $ pyenv local 3.7.8 ``` -#### poetryとライブラリのインストール -poetryをインストールします。 +#### poetry와 라이브러리 설치하기 + +poetry를 설치합니다. + ``` $ brew install poetry ``` -ライブラリをインストールします。 +라이브러리를 설치합니다. + ``` $ poetry install ``` -※ macでxlearnライブラリのインストールに失敗し、`Exception: Please install CMake first`と表示された場合は、`xcode-select --install`や`cmake`のインストールをしてから、再度実行します。 + +※ mac에서 xlearn 라이브러리 설치 시 실패하면서 `Exception: Please install CMake first` 메시지가 표시될 때는, `xcode-select --install`이나 `cmake`를 설치한 뒤 재 실행합니다. + ``` $ brew install cmake ``` -#### jupyter notebookの起動 -jupyter notebookの起動は以下になります。 +#### jupyter notebook 기동하기 + +jupyter notebook을 다음과 같이 기동합니다. + ``` $ poetry run jupyter notebook -$ poetry run jupyter lab # jupyter labが好みの方はこちらを +$ poetry run jupyter lab # jupyter lab을 선호한다면 이 명령어를 실행 ``` -### Dockerを利用した環境構築 -dockerを利用したjupyter notebookの起動は以下になります。 -(※ macOS: Monterey, docker: 1.29.2, docker-compose: 1.29.2で動作を確認しています。) +### Docker를 사용해 환경 구축하기 + +docker를 사용한 jupyter notebook은 다음과 같이 기동합니다(※ MacOS: Monterey, docker: 1.29.2, docker-compose: 1.29.2에서 동작을 확인했습니다). + ``` $ docker-compose up -d $ docker-compose exec app poetry run jupyter notebook --allow-root --ip=0.0.0.0 -$ docker-compose exec app poetry run jupyter lab --allow-root --ip=0.0.0.0 # jupyter labが好みの方はこちらを +$ docker-compose exec app poetry run jupyter lab --allow-root --ip=0.0.0.0 # jupyter lab을 선호한다면 이 명령어를 실행 ``` -dockerのプロセスは次のコマンドで停止できます。 + +docker 프로세스는 다음 명령어로 정지할 수 있습니다. + ``` $ docker-compose stop ``` From 9ee5903d0bd85dab575a0c94f404e82028ba7465 Mon Sep 17 00:00:00 2001 From: moseskim Date: Thu, 27 Apr 2023 16:44:01 +0900 Subject: [PATCH 11/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 36105f7..317881a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# 추천 시스템 입문 ~Recommender Systems~ +# 추천 시스템 입문 --- From dab8d4048e77e4d86e5573875ade6c7dd75aeb52 Mon Sep 17 00:00:00 2001 From: moseskim Date: Thu, 27 Apr 2023 16:44:17 +0900 Subject: [PATCH 12/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 317881a..acebca3 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ --- - + --- From 8bcad5dc5a66cb9eefb8d92450f3b669b87683d7 Mon Sep 17 00:00:00 2001 From: moseskim Date: Thu, 4 May 2023 13:51:23 +0900 Subject: [PATCH 13/17] update README.md --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 36105f7..ed84e1f 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,12 @@ ## 샘플 코드에 관하여 -이 책은 독자의 업무를 돕기 위해 쓰여진 책이며, 책에서 제공하는 코드는 일반적으로 독자가 작성하는 프로그램에 문서에 사용해도 좋습니다. 코드의 대부분을 게재하는 경우를 제외하고, 특별한 거리를 받을 필요는 없습니다. 예를 들어, 이 책의 코드의 일부를 사용하는 프로그램을 작성하는 데 별도의 허가는 필요하지 않습니다. 다만, 이 책의 코드 예제를 판매/배포하는 경우에는 허가를 받아야 합니다. +이 책은 독자의 업무를 돕기 위해 쓰여진 책이며 책에서 제공하는 코드의 일부를 사용해 프로그래밍에 활용해도 좋습니다. -이 책 또는 이 책의 코드 예제를 인용해 질문 등에 답하는 경우에는 별도의 허가가 필요하지 않습니다. 그러나, 이 책의 코드 예제의 상당한 부분을 제품 매뉴얼에 전재하는 등의 경우에는 허가를 받아야 합니다. +블로그에 책으로 공부하신 과정을 남기실 수 있으며 예제도 쓰셔도 됩니다. +다만 저작권 이슈가 있을 수 있으니 요약의 경우 책 내용의 30% 이상이 넘지 않도록 부탁드립니다(비공개 포스팅은 제약이 없습니다). -출처를 반드시 명기해야 하는 것은 아니지만, 표기해 주신다면 감사하겠습니다. 출처에는 제목, 저자, 출판사, ISBN을 기재해 주십시오. 예를 들어, 「風間正弘、飯塚洸二郎、松村優也著『推薦システム実践入門』(オライリー・ジャパン、ISBN978-4-87311-966-3)」과 같이 기재할 수 있습니다. +더불어 <추천 시스템 입문> 도서의 내용을 정리했다는 내용과 함께 출처(책 제목, 한빛미디어 홈페이지 도서 소개 페이지, 표지 이미지)를 표기해 주시면 감사하겠습니다. ### 파일의 구성 @@ -27,4 +28,6 @@ ## 정오표 -아직 없습니다. 오기 등 잘못을 발견했을 때는 japan@oreilly.co.jp로 알려주십시오. +정보표는 아래 URL에서 제공됩니다. + +![https://www.hanbit.co.kr/store/books/look.php?p_code=B7471666713](https://www.hanbit.co.kr/store/books/look.php?p_code=B7471666713) From 7cd8a7f8bf3b7c747d6a080174a58fea6b1fc661 Mon Sep 17 00:00:00 2001 From: moseskim Date: Thu, 4 May 2023 13:53:52 +0900 Subject: [PATCH 14/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4467c5a..d61394d 100644 --- a/README.md +++ b/README.md @@ -30,4 +30,4 @@ 정보표는 아래 URL에서 제공됩니다. -![https://www.hanbit.co.kr/store/books/look.php?p_code=B7471666713](https://www.hanbit.co.kr/store/books/look.php?p_code=B7471666713) +[https://www.hanbit.co.kr/store/books/look.php?p_code=B7471666713](https://www.hanbit.co.kr/store/books/look.php?p_code=B7471666713) From 9591118ad958dc4fcd5aa0543c2c3fef6885a8fc Mon Sep 17 00:00:00 2001 From: moseskim Date: Thu, 7 Nov 2024 06:23:51 +0900 Subject: [PATCH 15/17] Update README.md --- chapter5/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter5/README.md b/chapter5/README.md index eedb9e7..0687577 100644 --- a/chapter5/README.md +++ b/chapter5/README.md @@ -50,7 +50,7 @@ $ unzip -n chapter5/data/ml-10m.zip -d chapter5/data ### Poetry를 사용해서 환경 구축하기 -python 버전은 python3.7.8을 사용합니다. python3.7.8 설치에는 [pyenv](https://github.com/pyenv/pyenv) 등의 버전 관리 도구를 사용하십시오. 또한, 여기에서는 [poetry](https://python-poetry.org/)를 패키지 관리 도구로 사용하므로 설치하기 바랍니다. 참골, MacOS Monterey에 `pyenv`와 `poetry`를 설치하는 순서를 설명합니다. Windows나 Linux의 경우에는 여러분이 사용하는 OS에 해다아는 명령어로 변경하거나, 도커를 사용한 환경 구축하기를 참조하기 바랍니다. +python 버전은 python3.7.8을 사용합니다. python3.7.8 설치에는 [pyenv](https://github.com/pyenv/pyenv) 등의 버전 관리 도구를 사용하십시오. 또한, 여기에서는 [poetry](https://python-poetry.org/)를 패키지 관리 도구로 사용하므로 설치하기 바랍니다. 참고로 MacOS Monterey에 `pyenv`와 `poetry`를 설치하는 순서를 설명합니다. Windows나 Linux의 경우에는 여러분이 사용하는 OS에 해당하는 명령어로 변경하거나, 도커를 사용한 환경 구축하기를 참조하기 바랍니다. #### python3.7.8 설치 From ffbed4a2dc3edc2ccfae3a4bf474bddceeba826e Mon Sep 17 00:00:00 2001 From: moseskim Date: Thu, 7 Nov 2024 08:09:27 +0900 Subject: [PATCH 16/17] update and titles of sample files --- README.md | 2 +- chapter5/README.md | 24 + chapter5/colab/Association.ipynb | 3020 +++++++++++- chapter5/colab/BPR.ipynb | 2862 ++++++++++- chapter5/colab/IMF.ipynb | 2701 ++++++++++- chapter5/colab/LDA_collaboration.ipynb | 2095 +++++++- chapter5/colab/LDA_content.ipynb | 4866 ++++++++++++++++++- chapter5/colab/MF.ipynb | 1981 +++++++- chapter5/colab/NMF.ipynb | 2287 ++++++++- chapter5/colab/RF.ipynb | 5238 ++++++++++++++++++++- chapter5/colab/SVD.ipynb | 2382 +++++++++- chapter5/colab/UMCF.ipynb | 4928 ++++++++++++++++++- chapter5/notebook/Association.ipynb | 2 +- chapter5/notebook/BPR.ipynb | 2 +- chapter5/notebook/IMF.ipynb | 2 +- chapter5/notebook/LDA_collaboration.ipynb | 2 +- chapter5/notebook/LDA_content.ipynb | 2 +- chapter5/notebook/MF.ipynb | 2 +- chapter5/notebook/NMF.ipynb | 2 +- chapter5/notebook/SVD.ipynb | 2 +- chapter5/notebook/UMCF.ipynb | 2 +- 21 files changed, 32384 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index d61394d..e85238d 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ |파일명|설명| |:---|:---| -|`chapter5`|5장에서 사용하는 코드와 데이터| +|`chapter5`|5장에서 사용하는 코드와 데이터[[설명](./chapter5/README.md)]| |`chapter7`|7장에서 사용하는 코드| 코드 또는 데이터에 관한 설명은 책 본문을 참조하기 바랍니다. diff --git a/chapter5/README.md b/chapter5/README.md index 0687577..1dfcd20 100644 --- a/chapter5/README.md +++ b/chapter5/README.md @@ -36,6 +36,30 @@ chapter5 `chapter5/colab` 폴더에 들어있습니다. github에서 notebook을 열면 Colab 링크가 표시됩니다. 해당 링크를 클릭하면 colab 상에서 실행할 수 있습니다.(Colab이 아닌 로컬 PC에서도 실행할 수 있습니다. 이 때는 로컬 PC에 환경을 구축해야 합니다.) 먼저 `Association.ipynb`, `Item2vec.ipynb` 등을 보면 추천 알고리즘에 관한 이미지를 잡기 쉬울 것입니다. +## 5장 샘플 파일 설명(장/절 순) + +5장의 `colab`, `notebook` 디렉터리 안의 노트북(`.ipynb`) 파일은 다음과 같이 구성되어 있습니다. + +|파일명|분석/알고리즘|관련 장/절|관련 페이지| +|:--|:--|:--|:--| +|`data_download.ipynb`|MovieLens 데이터셋 다운로드|5.2|p.103| +|`Random.ipynb`|무작위 추천Random Recommendation|5.3|p.118| +|`Popularity.ipynb`|인기도순 추천|5.4|p.120| +|`Association.ipynb`|연관 규칙(어소시에이션 분석) - Apriori 알고리즘|5.5|p.127| +|`UMCF.ipynb`|사용자-사용자 메모리 기반 방법 협조 필터링User-User Memory Based Collaborative Filtering, UMCF|5.6|p.131| +|`RF.ipynb`|회귀 모델, 랜덤 포레스트Random Forest, RF|5.7|p.137| +|`SVD.ipynb`|특잇값 분해Singular Value Decomposition, SVD|5.8.2|p.144| +|`NMF.ipynb`|비음수 행렬 분해Non-negative Matrix Factorization, NMF|5.8.3|p.148| +|`MF.ipynb`|행렬 분해Matrix Factorization, MF|5.8.4|p.150| +|`IMF.ipynb`|암묵적 행렬 분해Implicit Matrix Factorization, IMF|5.8.5|p.154| +|`BPR.ipynb`|개인화 된 랭킹 문제Bayesian Personalized Ranking, BPR|5.8.6|p.158| +|`FM.ipynb`|Factorization Machines, FM|5.8.7|p.160| +|`LDA_content.ipynb`|잠재 디리클레 할당Latent Dirichlet Allocation, LDA|5.9.1|p.165| +|`LDA_collaboration.ipynb`|LDA를 행동 데이터에 적용|5.9.3|p.169| +|`Word2vec.ipynb`|`word2vec`|5.9.5|p.172| +|`Item2vec.ipynb`|`word2vec`을 사용한 협조 필터링 추천(`item2vec`)|5.9.6|p.176| + + ## 로컬 PC에서 환경 구축하기 ### 데이터 다운로드 diff --git a/chapter5/colab/Association.ipynb b/chapter5/colab/Association.ipynb index 0a2ff61..02f2503 100644 --- a/chapter5/colab/Association.ipynb +++ b/chapter5/colab/Association.ipynb @@ -1 +1,3019 @@ -{"cells":[{"cell_type":"markdown","id":"d9777c7d","metadata":{"id":"d9777c7d"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/Association.ipynb)"]},{"cell_type":"markdown","id":"c7dc31f1","metadata":{"id":"c7dc31f1"},"source":["# 어소시에이션 분석"]},{"cell_type":"code","execution_count":1,"id":"1b316a16","metadata":{"scrolled":true,"colab":{"base_uri":"https://localhost:8080/"},"id":"1b316a16","executionInfo":{"status":"ok","timestamp":1672116308177,"user_tz":-540,"elapsed":3911,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"5beace71-80d1-430b-f7a5-ab9f156eb138"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 04:45:01-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 63.8MB/s in 1.0s \n","\n","2022-12-27 04:45:02 (63.8 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"c1b8db75","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"c1b8db75","executionInfo":{"status":"ok","timestamp":1672116375742,"user_tz":-540,"elapsed":67569,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"e9660e0b-1ab9-4f2f-c69b-890b464bfe3b"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"f29c7aac","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":267},"id":"f29c7aac","executionInfo":{"status":"ok","timestamp":1672116375743,"user_tz":-540,"elapsed":24,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c6b3c719-f6d4-46dd-b765-6a569ec2f3d6"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["movie_id 1 2 3 4 5 6 7 8 9 \\\n","user_id \n","1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","\n","movie_id 10 ... 62000 62113 62293 62344 62394 62801 62803 63113 \\\n","user_id ... \n","1 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","2 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","3 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","4 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","5 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n","\n","movie_id 63992 64716 \n","user_id \n","1 0.0 0.0 \n","2 0.0 0.0 \n","3 0.0 0.0 \n","4 0.0 0.0 \n","5 0.0 0.0 \n","\n","[5 rows x 6673 columns]"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_id12345678910...62000621136229362344623946280162803631136399264716
user_id
10.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
20.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
30.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
40.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
50.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
\n","

5 rows × 6673 columns

\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":3}],"source":["# 사용자 x 영화 행렬 형식으로 변환한다\n","user_movie_matrix = movielens_train.pivot(index='user_id', columns='movie_id', values='rating')\n","\n","# 라이브러리를 사용하기 위해 4 이상의 평갓값은 1, 4 미만의 평갓값과 결손값은 0으로 한다\n","user_movie_matrix[user_movie_matrix < 4] = 0\n","user_movie_matrix[user_movie_matrix.isnull()] = 0\n","user_movie_matrix[user_movie_matrix >= 4] = 1\n","\n","user_movie_matrix.head()"]},{"cell_type":"code","execution_count":4,"id":"3f090eb7","metadata":{"id":"3f090eb7","executionInfo":{"status":"ok","timestamp":1672116375743,"user_tz":-540,"elapsed":20,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 어소시에이션 규칙 라이브러리 설치(설치되어 있지 않다면 주석을 해제하고 실행합니다)\n","# !pip install mlxtend"]},{"cell_type":"code","execution_count":5,"id":"ac2211c8","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":206},"id":"ac2211c8","executionInfo":{"status":"ok","timestamp":1672116376968,"user_tz":-540,"elapsed":1245,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"350b9041-d42d-461b-c530-9d10700c6a90"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" support itemsets\n","42 0.415 (593)\n","23 0.379 (318)\n","21 0.369 (296)\n","19 0.361 (260)\n","25 0.319 (356)"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
supportitemsets
420.415(593)
230.379(318)
210.369(296)
190.361(260)
250.319(356)
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":5}],"source":["from mlxtend.frequent_patterns import apriori\n","\n","# 지지도가 높은 영화를 표시\n","freq_movies = apriori(\n"," user_movie_matrix, min_support=0.1, use_colnames=True)\n","freq_movies.sort_values('support', ascending=False).head()"]},{"cell_type":"code","execution_count":6,"id":"18be737d","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":81},"id":"18be737d","executionInfo":{"status":"ok","timestamp":1672116376968,"user_tz":-540,"elapsed":19,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"f0969709-e7c6-4e50-c0b3-64d19966e79c"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title genre \\\n","587 593 Silence of the Lambs, The (1991) [Crime, Horror, Thriller] \n","\n"," tag \n","587 [based on a book, anthony hopkins, demme, psyc... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
587593Silence of the Lambs, The (1991)[Crime, Horror, Thriller][based on a book, anthony hopkins, demme, psyc...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":6}],"source":["# movie_id=593의 제목 확인(양들의 침묵)\n","movies[movies.movie_id == 593]"]},{"cell_type":"code","execution_count":7,"id":"470dafd1","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":206},"id":"470dafd1","executionInfo":{"status":"ok","timestamp":1672116376968,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c5b8e4f6-14dc-4ad5-ba32-e1585aba6ba6"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" antecedents consequents lift\n","649 (4993) (5952) 5.459770\n","648 (5952) (4993) 5.459770\n","1462 (1196, 1198) (1291, 260) 4.669188\n","1463 (1291, 260) (1196, 1198) 4.669188\n","1460 (1291, 1196) (260, 1198) 4.171359"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
antecedentsconsequentslift
649(4993)(5952)5.459770
648(5952)(4993)5.459770
1462(1196, 1198)(1291, 260)4.669188
1463(1291, 260)(1196, 1198)4.669188
1460(1291, 1196)(260, 1198)4.171359
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":7}],"source":["from mlxtend.frequent_patterns import association_rules\n","\n","# 어소시에이션 규칙 계산(리프트 값이 높은 순으로 표시)\n","rules = association_rules(freq_movies, metric='lift', min_threshold=1)\n","rules.sort_values('lift', ascending=False).head()[['antecedents', 'consequents', 'lift']]"]},{"cell_type":"code","execution_count":8,"id":"781b86a4","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":112},"id":"781b86a4","executionInfo":{"status":"ok","timestamp":1672116376970,"user_tz":-540,"elapsed":18,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"efb286e7-011c-48c5-bca0-fc8d74077602"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","4899 4993 Lord of the Rings: The Fellowship of the Ring,... \n","5852 5952 Lord of the Rings: The Two Towers, The (2002) \n","\n"," genre \\\n","4899 [Action, Adventure, Fantasy] \n","5852 [Action, Adventure, Fantasy] \n","\n"," tag \n","4899 [based on a book, big budget, new zealand, sce... \n","5852 [based on a book, big budget, new zealand, sce... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
48994993Lord of the Rings: The Fellowship of the Ring,...[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
58525952Lord of the Rings: The Two Towers, The (2002)[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":8}],"source":["# movie_id=4993, 5952의 제목 확인(반지의 제왕)\n","movies[movies.movie_id.isin([4993, 5952])]"]},{"cell_type":"code","execution_count":9,"id":"7495518b","metadata":{"id":"7495518b","executionInfo":{"status":"ok","timestamp":1672116376970,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 학습용 데이터 평갓값이 4 이상인 것만 얻는다.\n","movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]"]},{"cell_type":"code","execution_count":10,"id":"782e5a9d","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":175},"id":"782e5a9d","executionInfo":{"status":"ok","timestamp":1672116376970,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c6e2b6b2-6336-45c4-8bb8-df6bf91d99db"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","8381 2 1210 4.0 868245644 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","8381 [Action, Adventure, Sci-Fi] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":10}],"source":["# user_id=2인 사용자가 4 이상의 평가를 남긴 영화 목록\n","movielens_train_high_rating[movielens_train_high_rating.user_id==2]"]},{"cell_type":"code","execution_count":11,"id":"0599276e","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":424},"id":"0599276e","executionInfo":{"status":"ok","timestamp":1672116376971,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"118190a5-3aa0-40a2-c32c-e80489f5c618"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" antecedents consequents antecedent support \\\n","3 (110) (1) 0.291 \n","5 (260) (1) 0.361 \n","25 (1210) (1) 0.273 \n","31 (110) (32) 0.291 \n","33 (260) (32) 0.361 \n","... ... ... ... \n","1476 (1210, 1196) (2571, 260) 0.197 \n","1477 (2571, 260) (1210, 1196) 0.161 \n","1479 (1196, 260) (1210, 2571) 0.224 \n","1480 (1210) (1196, 2571, 260) 0.273 \n","1482 (260) (1210, 2571, 1196) 0.361 \n","\n"," consequent support support confidence lift leverage conviction \n","3 0.263 0.105 0.360825 1.371957 0.028467 1.153048 \n","5 0.263 0.153 0.423823 1.611493 0.058057 1.279120 \n","25 0.263 0.116 0.424908 1.615621 0.044201 1.281535 \n","31 0.255 0.104 0.357388 1.401523 0.029795 1.159332 \n","33 0.255 0.137 0.379501 1.488241 0.044945 1.200647 \n","... ... ... ... ... ... ... \n","1476 0.161 0.108 0.548223 3.405114 0.076283 1.857112 \n","1477 0.197 0.108 0.670807 3.405114 0.076283 2.439302 \n","1479 0.139 0.108 0.482143 3.468654 0.076864 1.662621 \n","1480 0.141 0.108 0.395604 2.805705 0.069507 1.421255 \n","1482 0.124 0.108 0.299169 2.412653 0.063236 1.249945 \n","\n","[326 rows x 9 columns]"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
antecedentsconsequentsantecedent supportconsequent supportsupportconfidenceliftleverageconviction
3(110)(1)0.2910.2630.1050.3608251.3719570.0284671.153048
5(260)(1)0.3610.2630.1530.4238231.6114930.0580571.279120
25(1210)(1)0.2730.2630.1160.4249081.6156210.0442011.281535
31(110)(32)0.2910.2550.1040.3573881.4015230.0297951.159332
33(260)(32)0.3610.2550.1370.3795011.4882410.0449451.200647
..............................
1476(1210, 1196)(2571, 260)0.1970.1610.1080.5482233.4051140.0762831.857112
1477(2571, 260)(1210, 1196)0.1610.1970.1080.6708073.4051140.0762832.439302
1479(1196, 260)(1210, 2571)0.2240.1390.1080.4821433.4686540.0768641.662621
1480(1210)(1196, 2571, 260)0.2730.1410.1080.3956042.8057050.0695071.421255
1482(260)(1210, 2571, 1196)0.3610.1240.1080.2991692.4126530.0632361.249945
\n","

326 rows × 9 columns

\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":11}],"source":["# user_id=2의 사용자가 4 이상의 평가를 남긴 영화 목록\n","user2_data = movielens_train_high_rating[movielens_train_high_rating.user_id==2]\n","\n","# 사용자가 최근 평가한 4개의 영화 얻기\n","input_data = user2_data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-5:]\n","\n","# 그 영화들이 조건부로 포함된 어오시에이션 규칙을 추출\n","matched_flags = rules.antecedents.apply(lambda x: len(set(input_data) & x)) >= 1\n","rules[matched_flags]"]},{"cell_type":"code","execution_count":12,"id":"689b0be8","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"689b0be8","executionInfo":{"status":"ok","timestamp":1672116376971,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"e06efaee-cb09-405b-f283-9252ea6a3e63"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[(1196, 92),\n"," (593, 41),\n"," (1198, 34),\n"," (260, 34),\n"," (1210, 34),\n"," (318, 20),\n"," (296, 19),\n"," (2571, 18),\n"," (356, 17),\n"," (589, 16)]"]},"metadata":{},"execution_count":12}],"source":["from collections import defaultdict, Counter\n","\n","# 어소시에이션 규칙의 귀결부의 영화를 리스트로 저장한다\n","# 같은 영화가 여러 차례 귀결부에 나타날 수 있다\n","\n","consequent_movies = []\n","for i, row in rules[matched_flags].sort_values(\"lift\", ascending=False).iterrows(): # lift値でソートして、上位10個のルールだけを使うようにするなどの工夫も可能です\n"," consequent_movies.extend(row[\"consequents\"])\n"," \n","# 귀결부에서의 출현 빈도 카운트\n","counter = Counter(consequent_movies)\n","counter.most_common(10)"]},{"cell_type":"code","execution_count":13,"id":"e1f61bb6","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":81},"id":"e1f61bb6","executionInfo":{"status":"ok","timestamp":1672116376971,"user_tz":-540,"elapsed":14,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"4137dad7-e0b6-4859-aad3-8abb4ed70219"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n","\n"," genre \\\n","1171 [Action, Adventure, Sci-Fi] \n","\n"," tag \n","1171 [lucas, george lucas, george lucas, gfei own i... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":13}],"source":["# movie_id=1196가 92번 귀결부에 출현하므로, user_id=2에는 movie_id=1196(Star Wars: Episode V)가 추천 후보가 된다\n","# (user_id=2의 학습 데이터에서는 Star Wars 에피소드 4, 6의 평가가 높다)\n","movies[movies.movie_id == 1196]"]},{"cell_type":"code","execution_count":14,"id":"7540d95c","metadata":{"id":"7540d95c","executionInfo":{"status":"ok","timestamp":1672116376971,"user_tz":-540,"elapsed":14,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 추천 방법에는 lift 값이 높은 것을 추출하는 방법 등이 있다. 몇 가지 방법을 시도해 보고 자사의 데이터에 맞는 방법을 선택한다."]},{"cell_type":"code","execution_count":15,"id":"53918e5b","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"53918e5b","executionInfo":{"status":"ok","timestamp":1672116383190,"user_tz":-540,"elapsed":6233,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"21d86b30-94bb-4d15-efb7-8d68fefe6448"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {2: [1196, 593, 1198, 318, 296, 2571, 356, 589, 1240, 1291],\n"," 6: [593, 296, 318, 541, 47, 608, 50, 589, 527, 1],\n"," 9: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n"," 10: [858, 1196, 260, 318],\n"," 11: [2858, 50, 296, 593],\n"," 12: [260],\n"," 13: [593, 318, 527, 356, 260, 47, 110, 2858, 589, 457],\n"," 17: [1196, 296, 1200, 1240, 541, 2571, 1198, 1210],\n"," 18: [1200, 1197, 50, 858, 1193],\n"," 22: [318, 1196, 260, 457, 608, 2571, 1210, 1240, 1198, 541],\n"," 23: [1196, 1210, 1198, 2571, 318, 1291, 1240, 356, 858, 110],\n"," 24: [1198, 1196, 296, 593, 1221, 1213, 1193, 1214, 541, 2028],\n"," 26: [593, 318, 296, 1196, 260, 50, 356, 527, 1210, 1240],\n"," 27: [296, 593, 50, 318, 541, 858, 2858, 1, 260, 1198],\n"," 33: [296, 593, 50, 318, 541, 858, 2858, 260, 1198, 527],\n"," 37: [527, 356, 1196, 260, 608, 2858, 457, 858, 480, 1198],\n"," 40: [],\n"," 41: [],\n"," 42: [1196, 260, 1198, 296, 318, 593],\n"," 44: [1196, 260, 1198, 593],\n"," 45: [296, 318, 47, 527, 541, 32],\n"," 46: [593, 1196, 260, 1240, 1210, 296, 318, 2571, 457, 356],\n"," 50: [50, 1196, 260, 1193, 2028, 47, 2858, 1198, 858, 32],\n"," 52: [2858, 296, 593],\n"," 53: [2571, 1196, 318, 296, 593],\n"," 54: [1196, 260, 527, 1240, 1210, 608, 2571, 1198, 32, 1200],\n"," 56: [],\n"," 59: [356, 50, 1196, 527, 260, 110, 589, 1198, 480, 47],\n"," 60: [1196, 1200, 1240, 2571, 1198, 589, 1210],\n"," 61: [1196, 260, 457, 50, 110, 589, 1198, 1210, 150, 480],\n"," 62: [1196, 260, 457, 50, 356, 589, 527, 1198, 110, 1210],\n"," 63: [296, 318, 593, 1196, 260, 2959, 2762, 2028, 2571, 50],\n"," 64: [1210, 1198, 480, 1196, 356, 589, 110, 296, 318, 593],\n"," 71: [593, 318, 50, 356, 527, 457, 110, 1196, 47, 260],\n"," 72: [296, 318, 589, 110, 150, 1198, 1210, 1, 2571, 1196],\n"," 75: [593, 318, 356, 1196, 527, 1210, 260, 457, 50, 590],\n"," 76: [1196, 260, 1240, 1210, 2571, 356, 527, 1036, 1200, 1214],\n"," 77: [260],\n"," 80: [356, 480, 589, 527, 588, 590, 1198, 1196, 260],\n"," 83: [1200, 2571, 589, 593, 296],\n"," 84: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n"," 85: [1196, 260, 1210, 1198, 589, 318, 3578, 4993, 5952, 2959],\n"," 86: [593, 296, 318, 356, 260, 150, 1, 527],\n"," 87: [2571, 318, 296, 593],\n"," 95: [1196, 50, 527, 260, 457, 1210, 47, 2571, 1240, 608],\n"," 99: [2858, 2571, 1196, 593],\n"," 100: [],\n"," 102: [593, 50, 110, 527, 1196, 589, 260, 608, 32, 2571],\n"," 104: [589, 1210, 1200, 296],\n"," 105: [2571, 593, 356, 1240, 589, 296, 1291, 318, 1, 1200],\n"," 106: [364, 480, 457, 110, 593, 296, 318],\n"," 111: [527, 1196, 1210, 260, 589, 50, 1198, 1, 2571, 590],\n"," 113: [2858, 2571, 1196, 318, 296, 593],\n"," 116: [1196, 260, 2571, 1240, 1, 1036, 1200, 1214, 541, 2028],\n"," 119: [1196, 260, 50, 1210, 2571],\n"," 121: [260, 1036, 589],\n"," 129: [2571, 1196, 318, 296, 593],\n"," 132: [50, 1196, 260, 527, 110, 589, 1198, 47, 150, 1210],\n"," 137: [],\n"," 138: [457, 527, 480, 150, 608, 858, 1213, 111, 1097, 590],\n"," 141: [318, 296, 50, 110, 1196, 260, 1193, 2028, 47, 2858],\n"," 142: [296, 318, 1196, 260, 356, 50, 589, 527, 110, 1198],\n"," 145: [318, 1196, 260, 527, 589, 110, 1198, 47, 608, 480],\n"," 148: [2571, 1198, 858, 593],\n"," 149: [],\n"," 150: [593, 318, 296, 110, 1196, 260, 457, 50, 150, 589],\n"," 151: [593, 541, 858, 32, 2858, 1, 1198, 1210],\n"," 152: [296, 32, 527],\n"," 153: [593, 318, 50, 356, 1196, 47, 608, 1210, 2858, 457],\n"," 154: [318],\n"," 155: [],\n"," 161: [1036],\n"," 162: [593, 457, 318, 380, 150],\n"," 164: [50, 110, 1196, 260, 1193, 2028, 2858, 1198, 858, 2571],\n"," 166: [318, 356, 296, 150, 480, 589, 110, 50, 527, 380],\n"," 168: [593, 318, 296, 110, 527, 1196, 1210, 260, 150, 457],\n"," 171: [593, 858],\n"," 172: [593, 318, 1196, 260, 296, 356, 1210, 527, 1240, 2571],\n"," 174: [50, 356, 110, 1196, 47, 260, 457, 589, 1210, 150],\n"," 176: [296, 318, 1196, 260, 356, 50, 589, 527, 110, 1198],\n"," 177: [296, 593, 50, 318, 541, 858, 2858, 260, 1198, 527],\n"," 178: [296, 50, 590, 480, 2028, 47, 2858, 1198, 858, 32],\n"," 179: [593, 318, 527, 47, 457, 2858, 356],\n"," 180: [2858, 2571, 1196, 318, 296, 593],\n"," 183: [296, 50, 356, 47, 457, 150, 608, 589, 2858, 32],\n"," 184: [593, 318, 356, 527, 1196, 260, 47, 457, 589, 2858],\n"," 188: [318, 1196, 260, 50, 1240, 1210, 2571, 47, 1198, 2028],\n"," 189: [1196, 318, 1210, 50, 356, 527, 2571, 1291, 1240, 480],\n"," 190: [],\n"," 193: [1196, 1214, 2571, 1198, 858, 32, 1210, 608],\n"," 199: [318, 1196, 260, 356, 50, 589, 527, 110, 1198, 480],\n"," 202: [593, 318, 296, 356, 50, 110, 1196, 260, 589, 457],\n"," 204: [1196, 1210, 1198, 593, 296, 2571, 318, 1291, 1240, 589],\n"," 206: [1198, 2858, 858, 110, 589, 260, 356, 318, 296],\n"," 210: [5952],\n"," 211: [318, 1210, 296, 356, 527, 2571, 1036, 590, 480, 588],\n"," 213: [318, 356, 110, 260, 1198, 858, 457, 2959, 1193, 590],\n"," 216: [],\n"," 221: [],\n"," 226: [],\n"," 228: [260],\n"," 229: [593, 296, 318, 541, 47, 50, 589, 2571, 527, 1196],\n"," 230: [2571],\n"," 231: [593, 318, 296, 47, 527, 608, 1196, 260, 110, 457],\n"," 232: [2571],\n"," 234: [593, 318, 296, 356, 110, 1196, 260, 589, 1193, 590],\n"," 235: [1240, 589, 1196],\n"," 236: [541, 858, 32, 2858, 1, 260, 1198, 1196, 1210],\n"," 237: [356, 589, 110, 318, 1, 1270, 541, 2028, 858, 480],\n"," 238: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n"," 239: [260, 1210, 593, 2571, 1291, 1240, 589, 318, 296, 110],\n"," 243: [296, 593, 50, 318, 541, 32, 1, 527],\n"," 245: [2571, 1198, 2858, 1196, 1210, 110, 589, 527, 260, 356],\n"," 246: [260, 1198, 1196, 296, 593, 1221, 1213, 1193, 541, 2028],\n"," 248: [296, 593],\n"," 251: [318],\n"," 252: [1196, 1198, 296, 593, 318, 2571, 858, 110, 589, 356],\n"," 255: [296, 110, 527, 1196, 1210, 260, 457, 480, 589, 1270],\n"," 256: [296, 318, 50, 1196, 260, 457, 589, 527, 110, 1198],\n"," 257: [1196, 593, 1291, 1210, 296, 318, 589, 1197, 1136, 1270],\n"," 260: [2571, 1291, 50, 318],\n"," 261: [1196, 260, 593, 1210, 296, 318, 1198, 589, 541, 47],\n"," 267: [588, 1704, 1213],\n"," 268: [260],\n"," 270: [1196, 1198, 593, 2571, 296, 1240, 589, 1291, 356, 318],\n"," 272: [593, 318, 110, 1196, 260, 457, 1193, 590, 2028, 47],\n"," 273: [1196, 1198, 1214, 296],\n"," 276: [],\n"," 277: [318, 50, 1196, 260, 457, 527, 110, 589, 1198, 1210],\n"," 278: [593, 457, 356, 296, 318, 380, 588, 589, 110, 150],\n"," 281: [1291, 1240, 1198, 2571, 1196, 260],\n"," 287: [593, 318, 296, 527, 1196, 260, 589, 1210, 50, 1198],\n"," 290: [593, 318, 260, 296, 356, 110, 527, 1240, 1210, 150],\n"," 291: [296, 260, 318, 593],\n"," 293: [50, 356, 1196, 260, 527, 110, 589, 1198, 47, 1210],\n"," 296: [110, 1196, 260, 608, 1210, 1198, 1704, 1136, 588],\n"," 300: [457, 593],\n"," 301: [457, 590, 480, 110, 589],\n"," 307: [593, 318, 296, 527, 1291, 858, 457, 150, 50, 1197],\n"," 308: [593, 356, 296, 318, 380, 589, 110, 150, 1198, 1210],\n"," 309: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n"," 311: [593, 318, 296, 110, 527, 1196, 1210, 260, 457, 589],\n"," 313: [318, 593],\n"," 314: [1214, 2571, 32, 50, 608],\n"," 315: [260],\n"," 317: [1196, 260, 50, 296, 593, 1214, 2858, 2571, 1198, 858],\n"," 321: [318, 1196, 260, 1210, 110, 527, 150, 1240, 2571, 1198],\n"," 324: [1196, 260, 1214, 1198, 858, 50, 608, 296, 593],\n"," 328: [593, 296, 1210, 110, 527, 457, 356, 47, 1, 1036],\n"," 329: [50, 296],\n"," 330: [1198, 356, 593],\n"," 331: [593, 296, 356, 110, 527, 1196, 47, 457, 260, 150],\n"," 332: [589, 1198, 1210, 2571, 1196, 527, 260],\n"," 333: [1196, 260, 457, 50, 589, 1198, 110, 1210, 480, 150],\n"," 335: [5952, 2571],\n"," 337: [296, 50, 356, 1196, 260, 457, 527, 110, 589, 1198],\n"," 338: [1196, 260, 50, 527, 589, 1210, 1198, 47, 608, 2571],\n"," 339: [50, 356, 527, 110, 1196, 47, 260, 608, 589, 1210],\n"," 341: [50, 356, 47, 608, 1210, 32, 480, 150, 1089, 111],\n"," 342: [593, 318, 296, 260, 356, 50, 1196, 110, 1198, 589],\n"," 343: [1196, 260, 296, 318, 1210, 1240, 2571, 527, 1198, 1],\n"," 346: [2571, 318, 296, 593],\n"," 349: [260],\n"," 353: [318, 260, 457, 527, 1198, 110, 1210, 480, 150, 608],\n"," 355: [527, 1196, 47, 260, 589, 608, 480, 1210, 1198, 588],\n"," 358: [541, 1198, 858],\n"," 362: [296, 47, 608, 457, 1089, 1617, 541, 2858, 32, 858],\n"," 363: [260, 593, 1210, 318, 1198, 2571, 50, 356, 589, 110],\n"," 364: [527, 1196, 47, 356, 260, 608, 589, 1210, 2571, 541],\n"," 369: [50, 356, 527, 110, 1196, 47, 260, 608, 589, 1210],\n"," 371: [593, 318, 50, 527, 356, 47, 260, 608, 110, 1210],\n"," 372: [260, 593, 1240, 296, 318, 356, 110, 858, 1270, 1214],\n"," 373: [593, 296, 50, 356, 110, 527, 1196, 47, 457, 260],\n"," 375: [480, 589, 457, 296, 593, 318],\n"," 376: [1196, 318, 527, 457, 356, 47, 50, 1, 1036, 380],\n"," 377: [],\n"," 378: [2571, 1198, 593, 1240, 589, 296, 1291, 110, 318, 1],\n"," 379: [1196, 593, 260, 318, 296, 1210, 50, 1198, 589, 2858],\n"," 382: [593, 1210, 260, 318, 608, 589, 1196, 110, 541, 47],\n"," 384: [593, 296, 527, 1196, 1210, 260, 589, 1270, 47, 2028],\n"," 388: [593, 318, 296, 1196, 260, 47, 527, 608, 1210, 110],\n"," 390: [1270, 1214, 1197, 541, 527, 1097, 1036, 47, 32],\n"," 391: [1196, 260, 1240, 1210, 2571, 527, 1036, 1200, 1214, 1291],\n"," 392: [260, 541, 608, 2571, 1, 1210, 1196],\n"," 395: [593, 296, 527, 356, 110, 47, 1196, 457, 589, 2858],\n"," 398: [1210, 2571, 1291, 1240, 589, 318, 296, 858, 1270, 1214],\n"," 400: [1196, 260, 1210, 1198, 296, 318, 480, 356, 3578, 4993],\n"," 403: [1196, 260, 1198, 318, 593],\n"," 404: [593, 1196, 260, 1240, 1210, 2571, 527, 1036, 1200, 1214],\n"," 412: [296, 50, 356, 260, 110, 527, 457, 1210, 47, 1240],\n"," 413: [318, 593],\n"," 415: [593],\n"," 417: [1196, 1210, 1198, 593, 1291, 1240, 589, 296, 858, 356],\n"," 420: [593, 318, 50, 110, 1196, 260, 589, 457, 1193, 2028],\n"," 421: [593, 318, 296, 110, 527, 1196, 260, 1210, 50, 1198],\n"," 422: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n"," 425: [858, 296, 318, 593],\n"," 426: [],\n"," 428: [260, 589, 1210, 2571, 593, 1214, 296, 318],\n"," 437: [110, 32, 858, 1198, 589, 356],\n"," 439: [593, 318, 296, 110, 1196, 1210, 260, 150, 457, 589],\n"," 440: [],\n"," 441: [318, 2571, 1196, 527, 541, 608, 356, 1, 260, 1210],\n"," 443: [296, 356, 50, 1196, 527, 260, 110, 589, 1198, 150],\n"," 444: [593, 318, 110, 527, 260, 150, 2028, 50, 858],\n"," 445: [4993, 2571],\n"," 446: [1196, 260, 1210, 1240, 2571, 110, 527, 1198, 1, 1036],\n"," 447: [1196, 1198, 1291, 1240, 858, 356, 1200, 1214, 1270, 541],\n"," 448: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n"," 449: [1198, 318, 296, 1291, 110, 1240, 858, 457, 1270, 1214],\n"," 453: [593, 318, 50, 527, 356, 1196, 260, 608, 110, 1210],\n"," 455: [1196, 2571, 1198, 593, 356, 1240, 589, 296, 1291, 110],\n"," 458: [2571, 1196, 318, 296, 593],\n"," 459: [318, 457, 50, 1198, 608, 858, 1213, 111, 1617, 588],\n"," 460: [318, 1196, 356, 260, 50, 527, 589, 1198, 1210, 480],\n"," 461: [593, 318, 50, 1196, 541, 1198, 589, 527, 110, 47],\n"," 462: [296, 356, 527, 150, 480, 589, 110, 1196, 858, 380],\n"," 463: [],\n"," 465: [],\n"," 466: [1196, 260, 593, 2571, 1198, 1240, 296, 356, 318, 110],\n"," 467: [2571, 1291, 1198, 1196, 260, 593],\n"," 471: [588],\n"," 472: [],\n"," 474: [1198, 296, 318, 3578, 4993, 5952, 2959, 2762, 2028, 1291],\n"," 475: [2858, 2571, 296, 593],\n"," 479: [541, 47, 589, 260, 1210, 1196],\n"," 480: [1036, 318],\n"," 484: [296, 593, 50, 318, 541, 858, 2858, 1198, 527, 1196],\n"," 485: [110, 1210, 150, 47, 1704, 1036, 590, 2028, 1136, 1270],\n"," 487: [593, 110, 527, 1196, 1210, 260, 150, 457, 480, 589],\n"," 488: [1196, 260, 296, 318, 1210, 356, 1240, 2571, 110, 527],\n"," 489: [296, 593],\n"," 491: [296, 593, 1198, 1193, 1214, 541, 2028, 608, 1210, 50],\n"," 492: [4993, 2571],\n"," 494: [32, 2571, 1196],\n"," 496: [318, 50, 527, 356, 1196, 110, 260, 608, 2858, 32],\n"," 497: [296, 541, 47, 608, 50, 589, 1, 260, 110],\n"," 499: [593, 318, 50, 356, 527, 457, 110, 1196, 47, 589],\n"," 500: [2858, 50],\n"," 501: [318, 296, 589, 50, 527, 590],\n"," 502: [2571, 1196, 318, 296, 593],\n"," 508: [260, 1210, 1198, 593, 2571, 1291, 1240, 589, 318, 296],\n"," 510: [50, 110, 1196, 260, 589, 1193, 2028, 47, 2858, 1198],\n"," 518: [1198, 2858, 858, 110, 356, 296],\n"," 520: [593, 296, 50, 356, 110, 527, 1196, 47, 457, 260],\n"," 521: [296, 527, 47, 110, 1196, 457, 260, 589, 150, 2858],\n"," 525: [1196, 260, 356, 50, 589, 527, 1198, 480, 1210, 47],\n"," 526: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n"," 527: [1196, 260, 593, 1198, 2571, 296, 589, 110, 1240, 318],\n"," 529: [593, 318, 47, 608, 50, 589, 2571, 1, 1196, 110],\n"," 532: [110, 527, 593, 318],\n"," 534: [2571],\n"," 536: [1196, 1198, 2571, 1240, 589, 1291, 356, 318, 110, 858],\n"," 537: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n"," 539: [356, 110, 1196, 260, 457, 608, 2571, 541, 1193, 2028],\n"," 544: [593, 318, 32, 589, 110, 356, 527],\n"," 547: [318, 296, 50, 1196, 260, 1193, 2028, 47, 2858, 1198],\n"," 548: [593, 50, 356, 2571, 110, 589, 527, 608, 47, 1240],\n"," 549: [356, 50, 1196, 527, 260, 110, 589, 1198, 47, 480],\n"," 551: [318, 296, 356, 50, 110, 589, 457, 1193, 47, 2858],\n"," 553: [541, 858, 2858, 1, 260, 1198, 527, 1196, 1210],\n"," 557: [1198, 1196, 296, 593, 1221, 1213, 1193, 1214, 541, 2028],\n"," 559: [1196, 260, 2571, 1198, 593, 356, 1240, 589, 296, 1291],\n"," 563: [1196, 1210, 1198, 593, 296, 2571, 318, 1291, 1240, 589],\n"," 564: [593, 110, 527, 457, 590, 588, 47, 2028, 1, 2571],\n"," 569: [318, 1196, 260, 356, 589, 527, 110, 1198, 150, 480],\n"," 570: [296, 593, 50, 858, 541, 32, 2858, 1, 1198, 1196],\n"," 573: [150, 110, 296],\n"," 574: [356, 318, 110, 150, 1198, 1210, 1, 2571, 1196, 260],\n"," 576: [150, 356, 593],\n"," 579: [1617, 2028, 858, 608],\n"," 584: [296, 593, 318],\n"," 586: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n"," 587: [1198, 2571, 1240, 1291, 50, 858, 1270, 1214, 1200, 541],\n"," 589: [318, 2571],\n"," 590: [],\n"," 593: [1196, 260, 527, 1240, 2571, 1210, 608, 32, 1198, 1036],\n"," 594: [1196, 1198, 593, 2571, 296, 356, 1240, 589, 318, 1291],\n"," 595: [1210, 589, 318, 3578, 4993, 5952, 2959, 1200, 2028, 47],\n"," 596: [593, 296, 50, 110, 47, 457, 150, 589, 1210, 2571],\n"," 600: [1196, 260, 1214, 2571, 589, 593],\n"," 603: [593, 50, 260, 457, 1193, 47, 150, 1198, 32],\n"," 605: [593, 2571, 457, 2858, 858, 2028, 1270, 1704, 1213, 590],\n"," 606: [2858, 527, 356, 593, 318, 296],\n"," 607: [1196, 1210, 2571, 296, 1291, 1240, 589, 356, 1214, 541],\n"," 609: [1196, 260, 608, 2858, 858, 1198, 2571, 1089, 1617, 541],\n"," 613: [260, 1210, 1198, 593, 2571, 1291, 1240, 589, 318, 296],\n"," 614: [593, 318, 589, 296, 356, 1210, 150, 527, 2571, 50],\n"," 616: [1196],\n"," 619: [593, 1196, 296, 318, 2571, 356, 527, 1036, 380, 1291],\n"," 625: [318, 356, 296, 150, 480, 110, 50, 527, 380, 588],\n"," 628: [593, 296, 356, 50, 110, 527, 457, 1196, 47, 589],\n"," 632: [318, 296],\n"," 637: [593, 318, 296, 356, 1196, 527, 1210, 260, 457, 50],\n"," 640: [260, 593, 1200, 1036, 1240, 296],\n"," 641: [260, 1196, 1210, 1240, 2571, 110, 527, 356, 47, 50],\n"," 642: [],\n"," 646: [364, 110, 318],\n"," 649: [593, 318, 50, 527, 1196, 47, 260, 608, 110, 589],\n"," 653: [858, 296, 318, 593],\n"," 654: [1196, 527, 1210, 260, 50, 589, 2028, 47, 1198, 2571],\n"," 655: [110, 527, 593],\n"," 656: [1291, 1240, 1198, 589, 2571, 1196, 260],\n"," 660: [858, 1, 260, 1198, 1196, 1210],\n"," 661: [260],\n"," 662: [1200, 1240, 2571, 1198, 589],\n"," 663: [1291, 1240, 1198, 589, 2571, 1196, 260],\n"," 666: [260, 1210, 593, 1291, 1240, 589, 318, 356, 110, 1270],\n"," 667: [1210, 1036, 1214, 2571, 593, 296],\n"," 668: [593, 318, 50, 1196, 260, 527, 356, 47, 608, 110],\n"," 669: [1196, 260, 527, 1210, 2571, 1240, 50, 1198, 1, 47],\n"," 672: [318],\n"," 675: [50, 527, 110, 1196, 260, 457, 1210, 47, 608, 2858],\n"," 677: [260],\n"," 679: [1198, 2571],\n"," 684: [588],\n"," 685: [1196, 593, 296, 1198, 2571, 318, 356, 50, 1240, 589],\n"," 686: [],\n"," 690: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n"," 696: [2571, 1196, 318, 296, 593],\n"," 699: [593, 296, 527, 356, 47, 110, 1196, 608, 457, 260],\n"," 701: [593, 318, 356, 296, 150, 480, 589, 110, 50, 527],\n"," 704: [],\n"," 705: [260, 1196, 1198, 296, 589, 1210, 318, 593, 2571, 1200],\n"," 707: [318, 1617, 2571, 858, 50, 1198, 608, 1196, 260, 356],\n"," 708: [593, 1196, 1210, 296, 318, 457, 356, 110, 527, 1036],\n"," 709: [593, 318, 1210, 296, 356, 480, 110, 50, 527, 150],\n"," 710: [593],\n"," 711: [593, 318, 50, 527, 356, 1196, 47, 260, 608, 110],\n"," 712: [593, 50, 541, 858, 32, 2858, 1, 260, 1198, 1196],\n"," 715: [593, 50, 318, 32, 2571, 589, 110, 1196, 356, 527],\n"," 720: [50, 110, 1196, 260, 589, 1193, 2028, 2858, 1198, 858],\n"," 723: [593, 296, 1196, 260, 1210, 150, 457, 480, 1198, 858],\n"," 724: [296, 593, 50, 318, 541, 858, 2858, 1198, 527, 1196],\n"," 726: [296, 318, 260, 50, 589, 150, 480, 47, 2571, 608],\n"," 727: [608, 1196, 260, 2571, 589, 588, 1089, 1617, 541, 2858],\n"," 728: [260, 593, 1198, 318, 1291, 356, 110, 527, 1200, 1214],\n"," 729: [480, 589, 457, 296, 593, 318],\n"," 730: [593, 50, 356, 110, 527, 1196, 260, 47, 457, 1210],\n"," 733: [593, 1196, 260, 1240, 1210, 296, 318, 457, 356, 110],\n"," 735: [318, 527, 608, 1196, 260, 541, 589, 2571, 1089, 1617],\n"," 737: [593, 296, 318, 541, 47, 608, 50, 589, 2571, 527],\n"," 739: [296, 318, 1196, 260, 527, 1198, 1210, 150, 1240, 32],\n"," 740: [296, 50, 356, 527, 47, 457, 589, 150, 2858, 32],\n"," 741: [260, 1210, 1198, 3578, 4993, 5952, 2959, 1200, 1214, 1240],\n"," 742: [593, 527],\n"," 743: [593, 457, 318, 589, 110, 150, 1198, 1210, 2571, 1196],\n"," 749: [1210, 260, 1198, 608, 480, 32, 1196, 356, 589, 110],\n"," 750: [296, 1196, 260, 318, 593, 1198, 2762, 1617, 2028, 2571],\n"," 751: [296, 318, 1196, 260, 457, 50, 356, 589, 527, 1198],\n"," 753: [1196, 1210, 296, 2571, 1291, 50, 356, 527, 858, 110],\n"," 758: [318, 356, 296, 1196, 527, 1210, 260, 457, 50, 589],\n"," 759: [593, 296, 318, 47, 356, 608, 50, 527, 1],\n"," 761: [1196, 260, 1240],\n"," 762: [1196, 1210, 1198, 593, 296, 2571, 318, 1291, 1240, 589],\n"," 763: [1196, 1210, 1198, 2571, 1291, 1240, 589, 858, 356, 318],\n"," 766: [593, 296, 527, 150, 457, 589, 480, 858, 590, 588],\n"," 773: [318, 356, 527, 457, 50, 589, 590, 150, 2028, 47],\n"," 776: [296, 318, 2959, 2762, 1617, 2571, 608, 1196, 527],\n"," 777: [593, 296, 318, 541, 47, 2571, 527, 1, 1210, 1196],\n"," 785: [1196, 260, 150, 608, 1210, 2858, 32, 1198, 2571, 1704],\n"," 786: [589, 1200, 1214, 593, 296],\n"," 787: [1196, 260, 593],\n"," 792: [593, 356, 527, 110, 47, 457, 1196, 608, 260, 589],\n"," 793: [1198, 608, 480, 32, 356, 589, 296, 318, 593],\n"," 794: [1196, 260, 1198, 1210, 2571, 356, 593],\n"," 797: [110, 527, 1196, 1210, 260, 480, 590, 1270, 47, 2028],\n"," 799: [50, 1196, 260, 1198, 2571, 1291, 1240, 1193, 2028, 47],\n"," 804: [318, 356, 296, 1196, 527, 260, 457, 50, 589, 590],\n"," 809: [593, 318, 296, 1210, 150, 457, 480, 589, 588, 2028],\n"," 812: [1196, 1198, 2571],\n"," 814: [356, 1196, 1210, 260, 457, 50, 589, 590, 480, 588],\n"," 815: [318],\n"," 816: [1196, 260, 50, 356, 589, 527, 1198, 110, 1210, 480],\n"," 821: [1196, 260, 593],\n"," 822: [593, 1196, 1210, 260, 588, 1270, 47, 2028, 1198, 2571],\n"," 825: [318],\n"," 826: [110, 527, 150, 590, 588, 1198],\n"," 832: [593, 296, 318, 2571, 356, 457, 110, 527, 1198, 1036],\n"," 833: [1196, 1291, 1210, 1036, 110, 50, 457],\n"," 835: [1196, 1214, 2571, 1198, 858, 32, 1210, 608],\n"," 840: [],\n"," 842: [1210, 260, 1198, 608, 480, 32, 1196, 356, 589, 296],\n"," 851: [593],\n"," 852: [1196, 260, 1240, 1210, 2571, 110, 527, 1036, 1200, 1214],\n"," 854: [1196, 260, 1200, 1240, 541, 2571, 1198, 589, 1210],\n"," 855: [541, 858, 32, 2858, 1, 260, 1198, 527, 1196, 1210],\n"," 856: [593, 457, 356, 296, 318, 588, 110, 150, 1198, 1210],\n"," 857: [260, 296, 318, 1210, 1198, 50, 457, 527, 1291, 150],\n"," 859: [318, 2858],\n"," 861: [1196, 260, 1198, 318, 593],\n"," 863: [1196, 260, 457, 541, 858, 1198],\n"," 864: [296, 318, 593, 2571, 1196, 1617, 2028, 858, 50, 1198],\n"," 865: [1198, 1291, 589, 1240, 527, 1270, 1214, 1200, 541, 858],\n"," 873: [593, 296, 318, 541, 47, 608, 50, 527, 1, 260],\n"," 878: [1210, 2571, 1291, 356, 110, 1270, 2028, 2858, 1, 2762],\n"," 879: [296, 318, 1196, 260, 50, 457, 356, 527, 589, 110],\n"," 888: [4993, 2571],\n"," 891: [593],\n"," 901: [1196, 260, 1210, 593, 1198, 1240, 296, 1291, 541, 3578],\n"," 903: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n"," 904: [593, 110, 1196, 260, 150, 588, 1270, 47, 2028, 1198],\n"," 909: [1196, 260, 1210, 593, 589, 296, 318, 3578, 1200, 1214],\n"," 910: [260, 1198, 1196, 1221, 1193, 541, 2028, 608, 2571, 1210],\n"," 916: [2571, 5952, 2858, 296, 593],\n"," 920: [1196, 1210, 1198, 589, 2571, 1291, 296, 318, 1214, 356],\n"," 925: [50, 527, 1196, 47, 457, 589, 150, 608, 1210, 2571],\n"," 927: [593, 318, 296, 110, 527, 1196, 260, 150, 457, 589],\n"," 932: [1291, 1240, 1198, 2571, 1196],\n"," 935: [1210, 593],\n"," 938: [50, 1196, 260, 356, 589, 527, 110, 1198, 480, 1210],\n"," 939: [296, 356, 50, 1196, 527, 110, 589, 1198, 47, 480],\n"," 940: [593, 318, 296, 150, 480, 589, 527, 5952, 380, 588],\n"," 942: [1196, 260, 356, 50, 589, 527, 110, 1198, 150, 480],\n"," 946: [296, 318],\n"," 947: [593, 296, 318, 3578, 4993, 5952, 2959, 2762, 1200, 1214],\n"," 948: [],\n"," 951: [296, 593, 50, 318, 541, 858, 2858, 260, 1198, 527],\n"," 955: [593, 318, 296, 356, 50, 110, 1196, 260, 589, 457],\n"," 958: [2858, 1196, 296, 593],\n"," 960: [50, 318, 32, 2571, 110, 1196],\n"," 961: [296, 593, 858, 50, 318],\n"," 966: [],\n"," 967: [1196, 527, 260, 858, 541, 608, 50, 589, 1, 1210],\n"," 968: [356, 50, 527, 1196, 260, 589, 47, 1210, 1198, 608],\n"," 970: [1196, 260, 457, 356, 589, 527, 1198, 1210, 480, 47],\n"," 972: [],\n"," 975: [593, 318, 527, 47, 1196, 260, 110, 541, 457, 858],\n"," 976: [593, 541, 47, 608, 50, 589, 2571, 527, 260, 1210],\n"," 980: [1196, 1198, 318, 2571, 589, 1240, 110, 1291, 527, 1],\n"," 982: [1196, 1210, 1198, 593, 2571, 296, 1291, 1240, 589, 356],\n"," 985: [2571],\n"," 988: [],\n"," 989: [593, 318, 356, 47, 110, 1210, 589, 457, 480, 150],\n"," 990: [47, 110, 1196, 260, 608, 2858, 32, 858, 1198, 2571],\n"," 992: [2858, 296],\n"," 994: [593, 296, 50, 356, 110, 527, 1196, 47, 457, 260],\n"," 1001: [593, 318, 296, 527, 1196, 1210, 260, 50, 1198, 1],\n"," 1004: [527],\n"," 1005: [],\n"," 1008: [],\n"," 1009: [1196, 260, 1210, 593, 1198, 589, 296, 3578, 4993, 5952],\n"," 1011: [318, 2571, 47, 527, 110],\n"," 1012: [296, 318, 2959, 2762, 1617, 2028, 2571, 858, 50, 1198],\n"," 1013: [1240, 32, 47, 608, 150, 1036, 1200, 380, 1214, 1291],\n"," 1014: [50, 318, 32, 1, 1198, 1196, 1210],\n"," 1015: [50, 296, 593],\n"," 1016: [593, 541, 47, 50, 589, 2571, 1, 1210, 1196, 110],\n"," 1017: [260, 2571, 1198, 593, 296, 356, 1240, 589, 1291, 110],\n"," 1021: [588],\n"," 1022: [1196, 260, 593],\n"," 1023: [318, 356, 296, 1210, 457, 50, 589, 590, 588, 150],\n"," 1025: [593, 296, 50, 356, 527, 47, 150, 32, 1704, 590],\n"," 1030: [1196, 260, 296, 318],\n"," 1031: [318, 356, 296, 1196, 457, 527, 1210, 260, 589, 50],\n"," 1034: [2571, 1198, 2858, 858, 1196, 1210, 110, 589, 527, 260],\n"," 1037: [318, 527, 608, 1196, 260, 110, 457, 1089, 1617, 541],\n"," 1039: [2858, 32, 2571, 589, 110, 1196],\n"," 1041: [608, 480, 32, 356],\n"," 1044: [1196, 2571, 1198, 593, 356, 1240, 589, 296, 1291, 110],\n"," 1046: [318, 1196, 260, 527, 110, 50, 589, 1198, 1210, 2571],\n"," 1048: [1617, 858, 608, 527, 260, 356],\n"," 1053: [593, 318, 296, 527, 457, 50, 590, 480, 588, 150]})"]},"metadata":{},"execution_count":15}],"source":["# 어소시에이션 규칙을 사용해 각 사용자가 아직 평가하지 않은 영화 10편을 추천한다\n","pred_user2items = defaultdict(list)\n","user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","\n","for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n"," # 사용자가 최근 5편의 영화를 얻는다\n"," input_data = data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-5:]\n"," # 그 영화들이 조건부에 1편이라도 포함되어 있는 어소시에이션 규칙을 추출한다\n"," matched_flags = rules.antecedents.apply(lambda x: len(set(input_data) & x)) >= 1\n","\n"," # 어소시에이션 규칙의 귀결부의 영화를 리스트로 저장하고, 출편 빈도 순으로 배열하고, 사용자가 아직 평가하지 않았다면 추천 리스트에 추가한다\n"," consequent_movies = []\n"," for i, row in rules[matched_flags].sort_values(\"lift\", ascending=False).iterrows():\n"," consequent_movies.extend(row[\"consequents\"])\n"," # 출현 빈도를 센다\n"," counter = Counter(consequent_movies)\n"," for movie_id, movie_cnt in counter.most_common():\n"," if movie_id not in user_evaluated_movies[user_id]:\n"," pred_user2items[user_id].append(movie_id)\n"," # 추천 리스트가 10편이 되면 종료한다\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","\n","# 각 사용자에 대한 추천 리스트\n","pred_user2items"]},{"cell_type":"code","execution_count":16,"id":"7342fdc7","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":175},"id":"7342fdc7","executionInfo":{"status":"ok","timestamp":1672116383190,"user_tz":-540,"elapsed":15,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c194befc-f9ec-4450-c916-02791f71155a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","8381 2 1210 4.0 868245644 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","8381 [Action, Adventure, Sci-Fi] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":16}],"source":["# user_id=2인 사용자 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n","movielens_train_high_rating[movielens_train_high_rating.user_id==2]"]},{"cell_type":"code","execution_count":17,"id":"3034b39c","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"3034b39c","executionInfo":{"status":"ok","timestamp":1672116383190,"user_tz":-540,"elapsed":14,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"7fc872ce-8f9b-41d8-c0bb-a55dfdcf86fa"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","587 593 Silence of the Lambs, The (1991) \n","1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n","1173 1198 Raiders of the Lost Ark (Indiana Jones and the... \n","\n"," genre \\\n","587 [Crime, Horror, Thriller] \n","1171 [Action, Adventure, Sci-Fi] \n","1173 [Action, Adventure] \n","\n"," tag \n","587 [based on a book, anthony hopkins, demme, psyc... \n","1171 [lucas, george lucas, george lucas, gfei own i... \n","1173 [egypt, lucas, seen more than once, dvd collec... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
587593Silence of the Lambs, The (1991)[Crime, Horror, Thriller][based on a book, anthony hopkins, demme, psyc...
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
11731198Raiders of the Lost Ark (Indiana Jones and the...[Action, Adventure][egypt, lucas, seen more than once, dvd collec...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":17}],"source":["# user_id=2에 대한 추천(1196, 593, 1198)\n","movies[movies.movie_id.isin([1196, 593, 1198])]"]},{"cell_type":"code","execution_count":18,"id":"9b22d1f6","metadata":{"id":"9b22d1f6","executionInfo":{"status":"ok","timestamp":1672116383190,"user_tz":-540,"elapsed":13,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# apriori(user_movie_matrix, min_support=0.1, use_colnames=True)\n","# association_rules(freq_movies, metric='lift', min_threshold=1)\n","# min_support와 min_threshold가 중요한 파라미터가 되므로 바꾸어 가면서 시험해봅니다."]},{"cell_type":"code","execution_count":18,"id":"64ae2120","metadata":{"id":"64ae2120","executionInfo":{"status":"ok","timestamp":1672116383190,"user_tz":-540,"elapsed":13,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d9777c7d", + "metadata": { + "id": "d9777c7d" + }, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/Association.ipynb)" + ] + }, + { + "cell_type": "markdown", + "id": "c7dc31f1", + "metadata": { + "id": "c7dc31f1" + }, + "source": [ + "# 어소시에이션 분석(Apriori 알고리즘)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "1b316a16", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 3911, + "status": "ok", + "timestamp": 1672116308177, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "1b316a16", + "outputId": "5beace71-80d1-430b-f7a5-ab9f156eb138", + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-12-27 04:45:01-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n", + "Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n", + "Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 65566137 (63M) [application/zip]\n", + "Saving to: ‘../data/ml-10m.zip’\n", + "\n", + "ml-10m.zip 100%[===================>] 62.53M 63.8MB/s in 1.0s \n", + "\n", + "2022-12-27 04:45:02 (63.8 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n", + "\n", + "Archive: ../data/ml-10m.zip\n", + " creating: ../data/ml-10M100K/\n", + " inflating: ../data/ml-10M100K/allbut.pl \n", + " inflating: ../data/ml-10M100K/movies.dat \n", + " inflating: ../data/ml-10M100K/ratings.dat \n", + " inflating: ../data/ml-10M100K/README.html \n", + " inflating: ../data/ml-10M100K/split_ratings.sh \n", + " inflating: ../data/ml-10M100K/tags.dat \n" + ] + } + ], + "source": [ + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", + "\n", + "# 데이터 다운로드와 압축 풀기\n", + "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", + "!unzip -n ../data/ml-10m.zip -d ../data/" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c1b8db75", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 67569, + "status": "ok", + "timestamp": 1672116375742, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "c1b8db75", + "outputId": "e9660e0b-1ab9-4f2f-c69b-890b464bfe3b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "unique_users=1000, unique_movies=6736\n" + ] + } + ], + "source": [ + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", + "import pandas as pd\n", + "\n", + "# movieID와 제목만 사용\n", + "m_cols = ['movie_id', 'title', 'genre']\n", + "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", + "\n", + "# genre를 list 형식으로 저장한다\n", + "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", + "\n", + "\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", + "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", + "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", + "\n", + "# tag를 소문자로 바꾼다\n", + "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", + "\n", + "\n", + "# tag를 영화별로 list 형식으로 저장한다\n", + "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", + "\n", + "# 태그 정보를 결합한다\n", + "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", + "\n", + "# 평갓값 데이터만 로딩한다\n", + "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", + "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", + "\n", + "\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", + "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", + "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", + "\n", + "\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", + "movielens = ratings.merge(movies, on='movie_id')\n", + "\n", + "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", + "\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", + "\n", + "movielens['timestamp_rank'] = movielens.groupby(\n", + " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", + "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", + "movielens_test = movielens[movielens['timestamp_rank']<= 5]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "f29c7aac", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 267 + }, + "executionInfo": { + "elapsed": 24, + "status": "ok", + "timestamp": 1672116375743, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "f29c7aac", + "outputId": "c6b3c719-f6d4-46dd-b765-6a569ec2f3d6" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_id12345678910...62000621136229362344623946280162803631136399264716
user_id
10.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
20.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
30.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
40.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
50.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
\n", + "

5 rows × 6673 columns

\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + "movie_id 1 2 3 4 5 6 7 8 9 \\\n", + "user_id \n", + "1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "\n", + "movie_id 10 ... 62000 62113 62293 62344 62394 62801 62803 63113 \\\n", + "user_id ... \n", + "1 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "2 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "3 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "4 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "5 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "\n", + "movie_id 63992 64716 \n", + "user_id \n", + "1 0.0 0.0 \n", + "2 0.0 0.0 \n", + "3 0.0 0.0 \n", + "4 0.0 0.0 \n", + "5 0.0 0.0 \n", + "\n", + "[5 rows x 6673 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 사용자 x 영화 행렬 형식으로 변환한다\n", + "user_movie_matrix = movielens_train.pivot(index='user_id', columns='movie_id', values='rating')\n", + "\n", + "# 라이브러리를 사용하기 위해 4 이상의 평갓값은 1, 4 미만의 평갓값과 결손값은 0으로 한다\n", + "user_movie_matrix[user_movie_matrix < 4] = 0\n", + "user_movie_matrix[user_movie_matrix.isnull()] = 0\n", + "user_movie_matrix[user_movie_matrix >= 4] = 1\n", + "\n", + "user_movie_matrix.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "3f090eb7", + "metadata": { + "executionInfo": { + "elapsed": 20, + "status": "ok", + "timestamp": 1672116375743, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "3f090eb7" + }, + "outputs": [], + "source": [ + "# 어소시에이션 규칙 라이브러리 설치(설치되어 있지 않다면 주석을 해제하고 실행합니다)\n", + "# !pip install mlxtend" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "ac2211c8", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "executionInfo": { + "elapsed": 1245, + "status": "ok", + "timestamp": 1672116376968, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "ac2211c8", + "outputId": "350b9041-d42d-461b-c530-9d10700c6a90" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
supportitemsets
420.415(593)
230.379(318)
210.369(296)
190.361(260)
250.319(356)
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " support itemsets\n", + "42 0.415 (593)\n", + "23 0.379 (318)\n", + "21 0.369 (296)\n", + "19 0.361 (260)\n", + "25 0.319 (356)" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from mlxtend.frequent_patterns import apriori\n", + "\n", + "# 지지도가 높은 영화를 표시\n", + "freq_movies = apriori(\n", + " user_movie_matrix, min_support=0.1, use_colnames=True)\n", + "freq_movies.sort_values('support', ascending=False).head()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "18be737d", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 81 + }, + "executionInfo": { + "elapsed": 19, + "status": "ok", + "timestamp": 1672116376968, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "18be737d", + "outputId": "f0969709-e7c6-4e50-c0b3-64d19966e79c" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idtitlegenretag
587593Silence of the Lambs, The (1991)[Crime, Horror, Thriller][based on a book, anthony hopkins, demme, psyc...
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " movie_id title genre \\\n", + "587 593 Silence of the Lambs, The (1991) [Crime, Horror, Thriller] \n", + "\n", + " tag \n", + "587 [based on a book, anthony hopkins, demme, psyc... " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# movie_id=593의 제목 확인(양들의 침묵)\n", + "movies[movies.movie_id == 593]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "470dafd1", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "executionInfo": { + "elapsed": 17, + "status": "ok", + "timestamp": 1672116376968, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "470dafd1", + "outputId": "c5b8e4f6-14dc-4ad5-ba32-e1585aba6ba6" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
antecedentsconsequentslift
649(4993)(5952)5.459770
648(5952)(4993)5.459770
1462(1196, 1198)(1291, 260)4.669188
1463(1291, 260)(1196, 1198)4.669188
1460(1291, 1196)(260, 1198)4.171359
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " antecedents consequents lift\n", + "649 (4993) (5952) 5.459770\n", + "648 (5952) (4993) 5.459770\n", + "1462 (1196, 1198) (1291, 260) 4.669188\n", + "1463 (1291, 260) (1196, 1198) 4.669188\n", + "1460 (1291, 1196) (260, 1198) 4.171359" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from mlxtend.frequent_patterns import association_rules\n", + "\n", + "# 어소시에이션 규칙 계산(리프트 값이 높은 순으로 표시)\n", + "rules = association_rules(freq_movies, metric='lift', min_threshold=1)\n", + "rules.sort_values('lift', ascending=False).head()[['antecedents', 'consequents', 'lift']]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "781b86a4", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 112 + }, + "executionInfo": { + "elapsed": 18, + "status": "ok", + "timestamp": 1672116376970, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "781b86a4", + "outputId": "efb286e7-011c-48c5-bca0-fc8d74077602" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idtitlegenretag
48994993Lord of the Rings: The Fellowship of the Ring,...[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
58525952Lord of the Rings: The Two Towers, The (2002)[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " movie_id title \\\n", + "4899 4993 Lord of the Rings: The Fellowship of the Ring,... \n", + "5852 5952 Lord of the Rings: The Two Towers, The (2002) \n", + "\n", + " genre \\\n", + "4899 [Action, Adventure, Fantasy] \n", + "5852 [Action, Adventure, Fantasy] \n", + "\n", + " tag \n", + "4899 [based on a book, big budget, new zealand, sce... \n", + "5852 [based on a book, big budget, new zealand, sce... " + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# movie_id=4993, 5952의 제목 확인(반지의 제왕)\n", + "movies[movies.movie_id.isin([4993, 5952])]" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "7495518b", + "metadata": { + "executionInfo": { + "elapsed": 17, + "status": "ok", + "timestamp": 1672116376970, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "7495518b" + }, + "outputs": [], + "source": [ + "# 학습용 데이터 평갓값이 4 이상인 것만 얻는다.\n", + "movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "782e5a9d", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 175 + }, + "executionInfo": { + "elapsed": 17, + "status": "ok", + "timestamp": 1672116376970, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "782e5a9d", + "outputId": "c6e2b6b2-6336-45c4-8bb8-df6bf91d99db" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " user_id movie_id rating timestamp \\\n", + "4732 2 110 5.0 868245777 \n", + "5246 2 260 5.0 868244562 \n", + "5798 2 590 5.0 868245608 \n", + "8381 2 1210 4.0 868245644 \n", + "\n", + " title \\\n", + "4732 Braveheart (1995) \n", + "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", + "5798 Dances with Wolves (1990) \n", + "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", + "\n", + " genre \\\n", + "4732 [Action, Drama, War] \n", + "5246 [Action, Adventure, Sci-Fi] \n", + "5798 [Adventure, Drama, Western] \n", + "8381 [Action, Adventure, Sci-Fi] \n", + "\n", + " tag timestamp_rank \n", + "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", + "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", + "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", + "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2인 사용자가 4 이상의 평가를 남긴 영화 목록\n", + "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "0599276e", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 424 + }, + "executionInfo": { + "elapsed": 17, + "status": "ok", + "timestamp": 1672116376971, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "0599276e", + "outputId": "118190a5-3aa0-40a2-c32c-e80489f5c618" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
antecedentsconsequentsantecedent supportconsequent supportsupportconfidenceliftleverageconviction
3(110)(1)0.2910.2630.1050.3608251.3719570.0284671.153048
5(260)(1)0.3610.2630.1530.4238231.6114930.0580571.279120
25(1210)(1)0.2730.2630.1160.4249081.6156210.0442011.281535
31(110)(32)0.2910.2550.1040.3573881.4015230.0297951.159332
33(260)(32)0.3610.2550.1370.3795011.4882410.0449451.200647
..............................
1476(1210, 1196)(2571, 260)0.1970.1610.1080.5482233.4051140.0762831.857112
1477(2571, 260)(1210, 1196)0.1610.1970.1080.6708073.4051140.0762832.439302
1479(1196, 260)(1210, 2571)0.2240.1390.1080.4821433.4686540.0768641.662621
1480(1210)(1196, 2571, 260)0.2730.1410.1080.3956042.8057050.0695071.421255
1482(260)(1210, 2571, 1196)0.3610.1240.1080.2991692.4126530.0632361.249945
\n", + "

326 rows × 9 columns

\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " antecedents consequents antecedent support \\\n", + "3 (110) (1) 0.291 \n", + "5 (260) (1) 0.361 \n", + "25 (1210) (1) 0.273 \n", + "31 (110) (32) 0.291 \n", + "33 (260) (32) 0.361 \n", + "... ... ... ... \n", + "1476 (1210, 1196) (2571, 260) 0.197 \n", + "1477 (2571, 260) (1210, 1196) 0.161 \n", + "1479 (1196, 260) (1210, 2571) 0.224 \n", + "1480 (1210) (1196, 2571, 260) 0.273 \n", + "1482 (260) (1210, 2571, 1196) 0.361 \n", + "\n", + " consequent support support confidence lift leverage conviction \n", + "3 0.263 0.105 0.360825 1.371957 0.028467 1.153048 \n", + "5 0.263 0.153 0.423823 1.611493 0.058057 1.279120 \n", + "25 0.263 0.116 0.424908 1.615621 0.044201 1.281535 \n", + "31 0.255 0.104 0.357388 1.401523 0.029795 1.159332 \n", + "33 0.255 0.137 0.379501 1.488241 0.044945 1.200647 \n", + "... ... ... ... ... ... ... \n", + "1476 0.161 0.108 0.548223 3.405114 0.076283 1.857112 \n", + "1477 0.197 0.108 0.670807 3.405114 0.076283 2.439302 \n", + "1479 0.139 0.108 0.482143 3.468654 0.076864 1.662621 \n", + "1480 0.141 0.108 0.395604 2.805705 0.069507 1.421255 \n", + "1482 0.124 0.108 0.299169 2.412653 0.063236 1.249945 \n", + "\n", + "[326 rows x 9 columns]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2의 사용자가 4 이상의 평가를 남긴 영화 목록\n", + "user2_data = movielens_train_high_rating[movielens_train_high_rating.user_id==2]\n", + "\n", + "# 사용자가 최근 평가한 4개의 영화 얻기\n", + "input_data = user2_data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-5:]\n", + "\n", + "# 그 영화들이 조건부로 포함된 어오시에이션 규칙을 추출\n", + "matched_flags = rules.antecedents.apply(lambda x: len(set(input_data) & x)) >= 1\n", + "rules[matched_flags]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "689b0be8", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 17, + "status": "ok", + "timestamp": 1672116376971, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "689b0be8", + "outputId": "e06efaee-cb09-405b-f283-9252ea6a3e63" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[(1196, 92),\n", + " (593, 41),\n", + " (1198, 34),\n", + " (260, 34),\n", + " (1210, 34),\n", + " (318, 20),\n", + " (296, 19),\n", + " (2571, 18),\n", + " (356, 17),\n", + " (589, 16)]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from collections import defaultdict, Counter\n", + "\n", + "# 어소시에이션 규칙의 귀결부의 영화를 리스트로 저장한다\n", + "# 같은 영화가 여러 차례 귀결부에 나타날 수 있다\n", + "\n", + "consequent_movies = []\n", + "for i, row in rules[matched_flags].sort_values(\"lift\", ascending=False).iterrows(): # lift値でソートして、上位10個のルールだけを使うようにするなどの工夫も可能です\n", + " consequent_movies.extend(row[\"consequents\"])\n", + " \n", + "# 귀결부에서의 출현 빈도 카운트\n", + "counter = Counter(consequent_movies)\n", + "counter.most_common(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "e1f61bb6", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 81 + }, + "executionInfo": { + "elapsed": 14, + "status": "ok", + "timestamp": 1672116376971, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "e1f61bb6", + "outputId": "4137dad7-e0b6-4859-aad3-8abb4ed70219" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idtitlegenretag
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " movie_id title \\\n", + "1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n", + "\n", + " genre \\\n", + "1171 [Action, Adventure, Sci-Fi] \n", + "\n", + " tag \n", + "1171 [lucas, george lucas, george lucas, gfei own i... " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# movie_id=1196가 92번 귀결부에 출현하므로, user_id=2에는 movie_id=1196(Star Wars: Episode V)가 추천 후보가 된다\n", + "# (user_id=2의 학습 데이터에서는 Star Wars 에피소드 4, 6의 평가가 높다)\n", + "movies[movies.movie_id == 1196]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "7540d95c", + "metadata": { + "executionInfo": { + "elapsed": 14, + "status": "ok", + "timestamp": 1672116376971, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "7540d95c" + }, + "outputs": [], + "source": [ + "# 추천 방법에는 lift 값이 높은 것을 추출하는 방법 등이 있다. 몇 가지 방법을 시도해 보고 자사의 데이터에 맞는 방법을 선택한다." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "53918e5b", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 6233, + "status": "ok", + "timestamp": 1672116383190, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "53918e5b", + "outputId": "21d86b30-94bb-4d15-efb7-8d68fefe6448" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "defaultdict(list,\n", + " {2: [1196, 593, 1198, 318, 296, 2571, 356, 589, 1240, 1291],\n", + " 6: [593, 296, 318, 541, 47, 608, 50, 589, 527, 1],\n", + " 9: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n", + " 10: [858, 1196, 260, 318],\n", + " 11: [2858, 50, 296, 593],\n", + " 12: [260],\n", + " 13: [593, 318, 527, 356, 260, 47, 110, 2858, 589, 457],\n", + " 17: [1196, 296, 1200, 1240, 541, 2571, 1198, 1210],\n", + " 18: [1200, 1197, 50, 858, 1193],\n", + " 22: [318, 1196, 260, 457, 608, 2571, 1210, 1240, 1198, 541],\n", + " 23: [1196, 1210, 1198, 2571, 318, 1291, 1240, 356, 858, 110],\n", + " 24: [1198, 1196, 296, 593, 1221, 1213, 1193, 1214, 541, 2028],\n", + " 26: [593, 318, 296, 1196, 260, 50, 356, 527, 1210, 1240],\n", + " 27: [296, 593, 50, 318, 541, 858, 2858, 1, 260, 1198],\n", + " 33: [296, 593, 50, 318, 541, 858, 2858, 260, 1198, 527],\n", + " 37: [527, 356, 1196, 260, 608, 2858, 457, 858, 480, 1198],\n", + " 40: [],\n", + " 41: [],\n", + " 42: [1196, 260, 1198, 296, 318, 593],\n", + " 44: [1196, 260, 1198, 593],\n", + " 45: [296, 318, 47, 527, 541, 32],\n", + " 46: [593, 1196, 260, 1240, 1210, 296, 318, 2571, 457, 356],\n", + " 50: [50, 1196, 260, 1193, 2028, 47, 2858, 1198, 858, 32],\n", + " 52: [2858, 296, 593],\n", + " 53: [2571, 1196, 318, 296, 593],\n", + " 54: [1196, 260, 527, 1240, 1210, 608, 2571, 1198, 32, 1200],\n", + " 56: [],\n", + " 59: [356, 50, 1196, 527, 260, 110, 589, 1198, 480, 47],\n", + " 60: [1196, 1200, 1240, 2571, 1198, 589, 1210],\n", + " 61: [1196, 260, 457, 50, 110, 589, 1198, 1210, 150, 480],\n", + " 62: [1196, 260, 457, 50, 356, 589, 527, 1198, 110, 1210],\n", + " 63: [296, 318, 593, 1196, 260, 2959, 2762, 2028, 2571, 50],\n", + " 64: [1210, 1198, 480, 1196, 356, 589, 110, 296, 318, 593],\n", + " 71: [593, 318, 50, 356, 527, 457, 110, 1196, 47, 260],\n", + " 72: [296, 318, 589, 110, 150, 1198, 1210, 1, 2571, 1196],\n", + " 75: [593, 318, 356, 1196, 527, 1210, 260, 457, 50, 590],\n", + " 76: [1196, 260, 1240, 1210, 2571, 356, 527, 1036, 1200, 1214],\n", + " 77: [260],\n", + " 80: [356, 480, 589, 527, 588, 590, 1198, 1196, 260],\n", + " 83: [1200, 2571, 589, 593, 296],\n", + " 84: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n", + " 85: [1196, 260, 1210, 1198, 589, 318, 3578, 4993, 5952, 2959],\n", + " 86: [593, 296, 318, 356, 260, 150, 1, 527],\n", + " 87: [2571, 318, 296, 593],\n", + " 95: [1196, 50, 527, 260, 457, 1210, 47, 2571, 1240, 608],\n", + " 99: [2858, 2571, 1196, 593],\n", + " 100: [],\n", + " 102: [593, 50, 110, 527, 1196, 589, 260, 608, 32, 2571],\n", + " 104: [589, 1210, 1200, 296],\n", + " 105: [2571, 593, 356, 1240, 589, 296, 1291, 318, 1, 1200],\n", + " 106: [364, 480, 457, 110, 593, 296, 318],\n", + " 111: [527, 1196, 1210, 260, 589, 50, 1198, 1, 2571, 590],\n", + " 113: [2858, 2571, 1196, 318, 296, 593],\n", + " 116: [1196, 260, 2571, 1240, 1, 1036, 1200, 1214, 541, 2028],\n", + " 119: [1196, 260, 50, 1210, 2571],\n", + " 121: [260, 1036, 589],\n", + " 129: [2571, 1196, 318, 296, 593],\n", + " 132: [50, 1196, 260, 527, 110, 589, 1198, 47, 150, 1210],\n", + " 137: [],\n", + " 138: [457, 527, 480, 150, 608, 858, 1213, 111, 1097, 590],\n", + " 141: [318, 296, 50, 110, 1196, 260, 1193, 2028, 47, 2858],\n", + " 142: [296, 318, 1196, 260, 356, 50, 589, 527, 110, 1198],\n", + " 145: [318, 1196, 260, 527, 589, 110, 1198, 47, 608, 480],\n", + " 148: [2571, 1198, 858, 593],\n", + " 149: [],\n", + " 150: [593, 318, 296, 110, 1196, 260, 457, 50, 150, 589],\n", + " 151: [593, 541, 858, 32, 2858, 1, 1198, 1210],\n", + " 152: [296, 32, 527],\n", + " 153: [593, 318, 50, 356, 1196, 47, 608, 1210, 2858, 457],\n", + " 154: [318],\n", + " 155: [],\n", + " 161: [1036],\n", + " 162: [593, 457, 318, 380, 150],\n", + " 164: [50, 110, 1196, 260, 1193, 2028, 2858, 1198, 858, 2571],\n", + " 166: [318, 356, 296, 150, 480, 589, 110, 50, 527, 380],\n", + " 168: [593, 318, 296, 110, 527, 1196, 1210, 260, 150, 457],\n", + " 171: [593, 858],\n", + " 172: [593, 318, 1196, 260, 296, 356, 1210, 527, 1240, 2571],\n", + " 174: [50, 356, 110, 1196, 47, 260, 457, 589, 1210, 150],\n", + " 176: [296, 318, 1196, 260, 356, 50, 589, 527, 110, 1198],\n", + " 177: [296, 593, 50, 318, 541, 858, 2858, 260, 1198, 527],\n", + " 178: [296, 50, 590, 480, 2028, 47, 2858, 1198, 858, 32],\n", + " 179: [593, 318, 527, 47, 457, 2858, 356],\n", + " 180: [2858, 2571, 1196, 318, 296, 593],\n", + " 183: [296, 50, 356, 47, 457, 150, 608, 589, 2858, 32],\n", + " 184: [593, 318, 356, 527, 1196, 260, 47, 457, 589, 2858],\n", + " 188: [318, 1196, 260, 50, 1240, 1210, 2571, 47, 1198, 2028],\n", + " 189: [1196, 318, 1210, 50, 356, 527, 2571, 1291, 1240, 480],\n", + " 190: [],\n", + " 193: [1196, 1214, 2571, 1198, 858, 32, 1210, 608],\n", + " 199: [318, 1196, 260, 356, 50, 589, 527, 110, 1198, 480],\n", + " 202: [593, 318, 296, 356, 50, 110, 1196, 260, 589, 457],\n", + " 204: [1196, 1210, 1198, 593, 296, 2571, 318, 1291, 1240, 589],\n", + " 206: [1198, 2858, 858, 110, 589, 260, 356, 318, 296],\n", + " 210: [5952],\n", + " 211: [318, 1210, 296, 356, 527, 2571, 1036, 590, 480, 588],\n", + " 213: [318, 356, 110, 260, 1198, 858, 457, 2959, 1193, 590],\n", + " 216: [],\n", + " 221: [],\n", + " 226: [],\n", + " 228: [260],\n", + " 229: [593, 296, 318, 541, 47, 50, 589, 2571, 527, 1196],\n", + " 230: [2571],\n", + " 231: [593, 318, 296, 47, 527, 608, 1196, 260, 110, 457],\n", + " 232: [2571],\n", + " 234: [593, 318, 296, 356, 110, 1196, 260, 589, 1193, 590],\n", + " 235: [1240, 589, 1196],\n", + " 236: [541, 858, 32, 2858, 1, 260, 1198, 1196, 1210],\n", + " 237: [356, 589, 110, 318, 1, 1270, 541, 2028, 858, 480],\n", + " 238: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n", + " 239: [260, 1210, 593, 2571, 1291, 1240, 589, 318, 296, 110],\n", + " 243: [296, 593, 50, 318, 541, 32, 1, 527],\n", + " 245: [2571, 1198, 2858, 1196, 1210, 110, 589, 527, 260, 356],\n", + " 246: [260, 1198, 1196, 296, 593, 1221, 1213, 1193, 541, 2028],\n", + " 248: [296, 593],\n", + " 251: [318],\n", + " 252: [1196, 1198, 296, 593, 318, 2571, 858, 110, 589, 356],\n", + " 255: [296, 110, 527, 1196, 1210, 260, 457, 480, 589, 1270],\n", + " 256: [296, 318, 50, 1196, 260, 457, 589, 527, 110, 1198],\n", + " 257: [1196, 593, 1291, 1210, 296, 318, 589, 1197, 1136, 1270],\n", + " 260: [2571, 1291, 50, 318],\n", + " 261: [1196, 260, 593, 1210, 296, 318, 1198, 589, 541, 47],\n", + " 267: [588, 1704, 1213],\n", + " 268: [260],\n", + " 270: [1196, 1198, 593, 2571, 296, 1240, 589, 1291, 356, 318],\n", + " 272: [593, 318, 110, 1196, 260, 457, 1193, 590, 2028, 47],\n", + " 273: [1196, 1198, 1214, 296],\n", + " 276: [],\n", + " 277: [318, 50, 1196, 260, 457, 527, 110, 589, 1198, 1210],\n", + " 278: [593, 457, 356, 296, 318, 380, 588, 589, 110, 150],\n", + " 281: [1291, 1240, 1198, 2571, 1196, 260],\n", + " 287: [593, 318, 296, 527, 1196, 260, 589, 1210, 50, 1198],\n", + " 290: [593, 318, 260, 296, 356, 110, 527, 1240, 1210, 150],\n", + " 291: [296, 260, 318, 593],\n", + " 293: [50, 356, 1196, 260, 527, 110, 589, 1198, 47, 1210],\n", + " 296: [110, 1196, 260, 608, 1210, 1198, 1704, 1136, 588],\n", + " 300: [457, 593],\n", + " 301: [457, 590, 480, 110, 589],\n", + " 307: [593, 318, 296, 527, 1291, 858, 457, 150, 50, 1197],\n", + " 308: [593, 356, 296, 318, 380, 589, 110, 150, 1198, 1210],\n", + " 309: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n", + " 311: [593, 318, 296, 110, 527, 1196, 1210, 260, 457, 589],\n", + " 313: [318, 593],\n", + " 314: [1214, 2571, 32, 50, 608],\n", + " 315: [260],\n", + " 317: [1196, 260, 50, 296, 593, 1214, 2858, 2571, 1198, 858],\n", + " 321: [318, 1196, 260, 1210, 110, 527, 150, 1240, 2571, 1198],\n", + " 324: [1196, 260, 1214, 1198, 858, 50, 608, 296, 593],\n", + " 328: [593, 296, 1210, 110, 527, 457, 356, 47, 1, 1036],\n", + " 329: [50, 296],\n", + " 330: [1198, 356, 593],\n", + " 331: [593, 296, 356, 110, 527, 1196, 47, 457, 260, 150],\n", + " 332: [589, 1198, 1210, 2571, 1196, 527, 260],\n", + " 333: [1196, 260, 457, 50, 589, 1198, 110, 1210, 480, 150],\n", + " 335: [5952, 2571],\n", + " 337: [296, 50, 356, 1196, 260, 457, 527, 110, 589, 1198],\n", + " 338: [1196, 260, 50, 527, 589, 1210, 1198, 47, 608, 2571],\n", + " 339: [50, 356, 527, 110, 1196, 47, 260, 608, 589, 1210],\n", + " 341: [50, 356, 47, 608, 1210, 32, 480, 150, 1089, 111],\n", + " 342: [593, 318, 296, 260, 356, 50, 1196, 110, 1198, 589],\n", + " 343: [1196, 260, 296, 318, 1210, 1240, 2571, 527, 1198, 1],\n", + " 346: [2571, 318, 296, 593],\n", + " 349: [260],\n", + " 353: [318, 260, 457, 527, 1198, 110, 1210, 480, 150, 608],\n", + " 355: [527, 1196, 47, 260, 589, 608, 480, 1210, 1198, 588],\n", + " 358: [541, 1198, 858],\n", + " 362: [296, 47, 608, 457, 1089, 1617, 541, 2858, 32, 858],\n", + " 363: [260, 593, 1210, 318, 1198, 2571, 50, 356, 589, 110],\n", + " 364: [527, 1196, 47, 356, 260, 608, 589, 1210, 2571, 541],\n", + " 369: [50, 356, 527, 110, 1196, 47, 260, 608, 589, 1210],\n", + " 371: [593, 318, 50, 527, 356, 47, 260, 608, 110, 1210],\n", + " 372: [260, 593, 1240, 296, 318, 356, 110, 858, 1270, 1214],\n", + " 373: [593, 296, 50, 356, 110, 527, 1196, 47, 457, 260],\n", + " 375: [480, 589, 457, 296, 593, 318],\n", + " 376: [1196, 318, 527, 457, 356, 47, 50, 1, 1036, 380],\n", + " 377: [],\n", + " 378: [2571, 1198, 593, 1240, 589, 296, 1291, 110, 318, 1],\n", + " 379: [1196, 593, 260, 318, 296, 1210, 50, 1198, 589, 2858],\n", + " 382: [593, 1210, 260, 318, 608, 589, 1196, 110, 541, 47],\n", + " 384: [593, 296, 527, 1196, 1210, 260, 589, 1270, 47, 2028],\n", + " 388: [593, 318, 296, 1196, 260, 47, 527, 608, 1210, 110],\n", + " 390: [1270, 1214, 1197, 541, 527, 1097, 1036, 47, 32],\n", + " 391: [1196, 260, 1240, 1210, 2571, 527, 1036, 1200, 1214, 1291],\n", + " 392: [260, 541, 608, 2571, 1, 1210, 1196],\n", + " 395: [593, 296, 527, 356, 110, 47, 1196, 457, 589, 2858],\n", + " 398: [1210, 2571, 1291, 1240, 589, 318, 296, 858, 1270, 1214],\n", + " 400: [1196, 260, 1210, 1198, 296, 318, 480, 356, 3578, 4993],\n", + " 403: [1196, 260, 1198, 318, 593],\n", + " 404: [593, 1196, 260, 1240, 1210, 2571, 527, 1036, 1200, 1214],\n", + " 412: [296, 50, 356, 260, 110, 527, 457, 1210, 47, 1240],\n", + " 413: [318, 593],\n", + " 415: [593],\n", + " 417: [1196, 1210, 1198, 593, 1291, 1240, 589, 296, 858, 356],\n", + " 420: [593, 318, 50, 110, 1196, 260, 589, 457, 1193, 2028],\n", + " 421: [593, 318, 296, 110, 527, 1196, 260, 1210, 50, 1198],\n", + " 422: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n", + " 425: [858, 296, 318, 593],\n", + " 426: [],\n", + " 428: [260, 589, 1210, 2571, 593, 1214, 296, 318],\n", + " 437: [110, 32, 858, 1198, 589, 356],\n", + " 439: [593, 318, 296, 110, 1196, 1210, 260, 150, 457, 589],\n", + " 440: [],\n", + " 441: [318, 2571, 1196, 527, 541, 608, 356, 1, 260, 1210],\n", + " 443: [296, 356, 50, 1196, 527, 260, 110, 589, 1198, 150],\n", + " 444: [593, 318, 110, 527, 260, 150, 2028, 50, 858],\n", + " 445: [4993, 2571],\n", + " 446: [1196, 260, 1210, 1240, 2571, 110, 527, 1198, 1, 1036],\n", + " 447: [1196, 1198, 1291, 1240, 858, 356, 1200, 1214, 1270, 541],\n", + " 448: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n", + " 449: [1198, 318, 296, 1291, 110, 1240, 858, 457, 1270, 1214],\n", + " 453: [593, 318, 50, 527, 356, 1196, 260, 608, 110, 1210],\n", + " 455: [1196, 2571, 1198, 593, 356, 1240, 589, 296, 1291, 110],\n", + " 458: [2571, 1196, 318, 296, 593],\n", + " 459: [318, 457, 50, 1198, 608, 858, 1213, 111, 1617, 588],\n", + " 460: [318, 1196, 356, 260, 50, 527, 589, 1198, 1210, 480],\n", + " 461: [593, 318, 50, 1196, 541, 1198, 589, 527, 110, 47],\n", + " 462: [296, 356, 527, 150, 480, 589, 110, 1196, 858, 380],\n", + " 463: [],\n", + " 465: [],\n", + " 466: [1196, 260, 593, 2571, 1198, 1240, 296, 356, 318, 110],\n", + " 467: [2571, 1291, 1198, 1196, 260, 593],\n", + " 471: [588],\n", + " 472: [],\n", + " 474: [1198, 296, 318, 3578, 4993, 5952, 2959, 2762, 2028, 1291],\n", + " 475: [2858, 2571, 296, 593],\n", + " 479: [541, 47, 589, 260, 1210, 1196],\n", + " 480: [1036, 318],\n", + " 484: [296, 593, 50, 318, 541, 858, 2858, 1198, 527, 1196],\n", + " 485: [110, 1210, 150, 47, 1704, 1036, 590, 2028, 1136, 1270],\n", + " 487: [593, 110, 527, 1196, 1210, 260, 150, 457, 480, 589],\n", + " 488: [1196, 260, 296, 318, 1210, 356, 1240, 2571, 110, 527],\n", + " 489: [296, 593],\n", + " 491: [296, 593, 1198, 1193, 1214, 541, 2028, 608, 1210, 50],\n", + " 492: [4993, 2571],\n", + " 494: [32, 2571, 1196],\n", + " 496: [318, 50, 527, 356, 1196, 110, 260, 608, 2858, 32],\n", + " 497: [296, 541, 47, 608, 50, 589, 1, 260, 110],\n", + " 499: [593, 318, 50, 356, 527, 457, 110, 1196, 47, 589],\n", + " 500: [2858, 50],\n", + " 501: [318, 296, 589, 50, 527, 590],\n", + " 502: [2571, 1196, 318, 296, 593],\n", + " 508: [260, 1210, 1198, 593, 2571, 1291, 1240, 589, 318, 296],\n", + " 510: [50, 110, 1196, 260, 589, 1193, 2028, 47, 2858, 1198],\n", + " 518: [1198, 2858, 858, 110, 356, 296],\n", + " 520: [593, 296, 50, 356, 110, 527, 1196, 47, 457, 260],\n", + " 521: [296, 527, 47, 110, 1196, 457, 260, 589, 150, 2858],\n", + " 525: [1196, 260, 356, 50, 589, 527, 1198, 480, 1210, 47],\n", + " 526: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n", + " 527: [1196, 260, 593, 1198, 2571, 296, 589, 110, 1240, 318],\n", + " 529: [593, 318, 47, 608, 50, 589, 2571, 1, 1196, 110],\n", + " 532: [110, 527, 593, 318],\n", + " 534: [2571],\n", + " 536: [1196, 1198, 2571, 1240, 589, 1291, 356, 318, 110, 858],\n", + " 537: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n", + " 539: [356, 110, 1196, 260, 457, 608, 2571, 541, 1193, 2028],\n", + " 544: [593, 318, 32, 589, 110, 356, 527],\n", + " 547: [318, 296, 50, 1196, 260, 1193, 2028, 47, 2858, 1198],\n", + " 548: [593, 50, 356, 2571, 110, 589, 527, 608, 47, 1240],\n", + " 549: [356, 50, 1196, 527, 260, 110, 589, 1198, 47, 480],\n", + " 551: [318, 296, 356, 50, 110, 589, 457, 1193, 47, 2858],\n", + " 553: [541, 858, 2858, 1, 260, 1198, 527, 1196, 1210],\n", + " 557: [1198, 1196, 296, 593, 1221, 1213, 1193, 1214, 541, 2028],\n", + " 559: [1196, 260, 2571, 1198, 593, 356, 1240, 589, 296, 1291],\n", + " 563: [1196, 1210, 1198, 593, 296, 2571, 318, 1291, 1240, 589],\n", + " 564: [593, 110, 527, 457, 590, 588, 47, 2028, 1, 2571],\n", + " 569: [318, 1196, 260, 356, 589, 527, 110, 1198, 150, 480],\n", + " 570: [296, 593, 50, 858, 541, 32, 2858, 1, 1198, 1196],\n", + " 573: [150, 110, 296],\n", + " 574: [356, 318, 110, 150, 1198, 1210, 1, 2571, 1196, 260],\n", + " 576: [150, 356, 593],\n", + " 579: [1617, 2028, 858, 608],\n", + " 584: [296, 593, 318],\n", + " 586: [296, 318, 593, 2959, 2762, 1617, 2028, 2571, 858, 50],\n", + " 587: [1198, 2571, 1240, 1291, 50, 858, 1270, 1214, 1200, 541],\n", + " 589: [318, 2571],\n", + " 590: [],\n", + " 593: [1196, 260, 527, 1240, 2571, 1210, 608, 32, 1198, 1036],\n", + " 594: [1196, 1198, 593, 2571, 296, 356, 1240, 589, 318, 1291],\n", + " 595: [1210, 589, 318, 3578, 4993, 5952, 2959, 1200, 2028, 47],\n", + " 596: [593, 296, 50, 110, 47, 457, 150, 589, 1210, 2571],\n", + " 600: [1196, 260, 1214, 2571, 589, 593],\n", + " 603: [593, 50, 260, 457, 1193, 47, 150, 1198, 32],\n", + " 605: [593, 2571, 457, 2858, 858, 2028, 1270, 1704, 1213, 590],\n", + " 606: [2858, 527, 356, 593, 318, 296],\n", + " 607: [1196, 1210, 2571, 296, 1291, 1240, 589, 356, 1214, 541],\n", + " 609: [1196, 260, 608, 2858, 858, 1198, 2571, 1089, 1617, 541],\n", + " 613: [260, 1210, 1198, 593, 2571, 1291, 1240, 589, 318, 296],\n", + " 614: [593, 318, 589, 296, 356, 1210, 150, 527, 2571, 50],\n", + " 616: [1196],\n", + " 619: [593, 1196, 296, 318, 2571, 356, 527, 1036, 380, 1291],\n", + " 625: [318, 356, 296, 150, 480, 110, 50, 527, 380, 588],\n", + " 628: [593, 296, 356, 50, 110, 527, 457, 1196, 47, 589],\n", + " 632: [318, 296],\n", + " 637: [593, 318, 296, 356, 1196, 527, 1210, 260, 457, 50],\n", + " 640: [260, 593, 1200, 1036, 1240, 296],\n", + " 641: [260, 1196, 1210, 1240, 2571, 110, 527, 356, 47, 50],\n", + " 642: [],\n", + " 646: [364, 110, 318],\n", + " 649: [593, 318, 50, 527, 1196, 47, 260, 608, 110, 589],\n", + " 653: [858, 296, 318, 593],\n", + " 654: [1196, 527, 1210, 260, 50, 589, 2028, 47, 1198, 2571],\n", + " 655: [110, 527, 593],\n", + " 656: [1291, 1240, 1198, 589, 2571, 1196, 260],\n", + " 660: [858, 1, 260, 1198, 1196, 1210],\n", + " 661: [260],\n", + " 662: [1200, 1240, 2571, 1198, 589],\n", + " 663: [1291, 1240, 1198, 589, 2571, 1196, 260],\n", + " 666: [260, 1210, 593, 1291, 1240, 589, 318, 356, 110, 1270],\n", + " 667: [1210, 1036, 1214, 2571, 593, 296],\n", + " 668: [593, 318, 50, 1196, 260, 527, 356, 47, 608, 110],\n", + " 669: [1196, 260, 527, 1210, 2571, 1240, 50, 1198, 1, 47],\n", + " 672: [318],\n", + " 675: [50, 527, 110, 1196, 260, 457, 1210, 47, 608, 2858],\n", + " 677: [260],\n", + " 679: [1198, 2571],\n", + " 684: [588],\n", + " 685: [1196, 593, 296, 1198, 2571, 318, 356, 50, 1240, 589],\n", + " 686: [],\n", + " 690: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n", + " 696: [2571, 1196, 318, 296, 593],\n", + " 699: [593, 296, 527, 356, 47, 110, 1196, 608, 457, 260],\n", + " 701: [593, 318, 356, 296, 150, 480, 589, 110, 50, 527],\n", + " 704: [],\n", + " 705: [260, 1196, 1198, 296, 589, 1210, 318, 593, 2571, 1200],\n", + " 707: [318, 1617, 2571, 858, 50, 1198, 608, 1196, 260, 356],\n", + " 708: [593, 1196, 1210, 296, 318, 457, 356, 110, 527, 1036],\n", + " 709: [593, 318, 1210, 296, 356, 480, 110, 50, 527, 150],\n", + " 710: [593],\n", + " 711: [593, 318, 50, 527, 356, 1196, 47, 260, 608, 110],\n", + " 712: [593, 50, 541, 858, 32, 2858, 1, 260, 1198, 1196],\n", + " 715: [593, 50, 318, 32, 2571, 589, 110, 1196, 356, 527],\n", + " 720: [50, 110, 1196, 260, 589, 1193, 2028, 2858, 1198, 858],\n", + " 723: [593, 296, 1196, 260, 1210, 150, 457, 480, 1198, 858],\n", + " 724: [296, 593, 50, 318, 541, 858, 2858, 1198, 527, 1196],\n", + " 726: [296, 318, 260, 50, 589, 150, 480, 47, 2571, 608],\n", + " 727: [608, 1196, 260, 2571, 589, 588, 1089, 1617, 541, 2858],\n", + " 728: [260, 593, 1198, 318, 1291, 356, 110, 527, 1200, 1214],\n", + " 729: [480, 589, 457, 296, 593, 318],\n", + " 730: [593, 50, 356, 110, 527, 1196, 260, 47, 457, 1210],\n", + " 733: [593, 1196, 260, 1240, 1210, 296, 318, 457, 356, 110],\n", + " 735: [318, 527, 608, 1196, 260, 541, 589, 2571, 1089, 1617],\n", + " 737: [593, 296, 318, 541, 47, 608, 50, 589, 2571, 527],\n", + " 739: [296, 318, 1196, 260, 527, 1198, 1210, 150, 1240, 32],\n", + " 740: [296, 50, 356, 527, 47, 457, 589, 150, 2858, 32],\n", + " 741: [260, 1210, 1198, 3578, 4993, 5952, 2959, 1200, 1214, 1240],\n", + " 742: [593, 527],\n", + " 743: [593, 457, 318, 589, 110, 150, 1198, 1210, 2571, 1196],\n", + " 749: [1210, 260, 1198, 608, 480, 32, 1196, 356, 589, 110],\n", + " 750: [296, 1196, 260, 318, 593, 1198, 2762, 1617, 2028, 2571],\n", + " 751: [296, 318, 1196, 260, 457, 50, 356, 589, 527, 1198],\n", + " 753: [1196, 1210, 296, 2571, 1291, 50, 356, 527, 858, 110],\n", + " 758: [318, 356, 296, 1196, 527, 1210, 260, 457, 50, 589],\n", + " 759: [593, 296, 318, 47, 356, 608, 50, 527, 1],\n", + " 761: [1196, 260, 1240],\n", + " 762: [1196, 1210, 1198, 593, 296, 2571, 318, 1291, 1240, 589],\n", + " 763: [1196, 1210, 1198, 2571, 1291, 1240, 589, 858, 356, 318],\n", + " 766: [593, 296, 527, 150, 457, 589, 480, 858, 590, 588],\n", + " 773: [318, 356, 527, 457, 50, 589, 590, 150, 2028, 47],\n", + " 776: [296, 318, 2959, 2762, 1617, 2571, 608, 1196, 527],\n", + " 777: [593, 296, 318, 541, 47, 2571, 527, 1, 1210, 1196],\n", + " 785: [1196, 260, 150, 608, 1210, 2858, 32, 1198, 2571, 1704],\n", + " 786: [589, 1200, 1214, 593, 296],\n", + " 787: [1196, 260, 593],\n", + " 792: [593, 356, 527, 110, 47, 457, 1196, 608, 260, 589],\n", + " 793: [1198, 608, 480, 32, 356, 589, 296, 318, 593],\n", + " 794: [1196, 260, 1198, 1210, 2571, 356, 593],\n", + " 797: [110, 527, 1196, 1210, 260, 480, 590, 1270, 47, 2028],\n", + " 799: [50, 1196, 260, 1198, 2571, 1291, 1240, 1193, 2028, 47],\n", + " 804: [318, 356, 296, 1196, 527, 260, 457, 50, 589, 590],\n", + " 809: [593, 318, 296, 1210, 150, 457, 480, 589, 588, 2028],\n", + " 812: [1196, 1198, 2571],\n", + " 814: [356, 1196, 1210, 260, 457, 50, 589, 590, 480, 588],\n", + " 815: [318],\n", + " 816: [1196, 260, 50, 356, 589, 527, 1198, 110, 1210, 480],\n", + " 821: [1196, 260, 593],\n", + " 822: [593, 1196, 1210, 260, 588, 1270, 47, 2028, 1198, 2571],\n", + " 825: [318],\n", + " 826: [110, 527, 150, 590, 588, 1198],\n", + " 832: [593, 296, 318, 2571, 356, 457, 110, 527, 1198, 1036],\n", + " 833: [1196, 1291, 1210, 1036, 110, 50, 457],\n", + " 835: [1196, 1214, 2571, 1198, 858, 32, 1210, 608],\n", + " 840: [],\n", + " 842: [1210, 260, 1198, 608, 480, 32, 1196, 356, 589, 296],\n", + " 851: [593],\n", + " 852: [1196, 260, 1240, 1210, 2571, 110, 527, 1036, 1200, 1214],\n", + " 854: [1196, 260, 1200, 1240, 541, 2571, 1198, 589, 1210],\n", + " 855: [541, 858, 32, 2858, 1, 260, 1198, 527, 1196, 1210],\n", + " 856: [593, 457, 356, 296, 318, 588, 110, 150, 1198, 1210],\n", + " 857: [260, 296, 318, 1210, 1198, 50, 457, 527, 1291, 150],\n", + " 859: [318, 2858],\n", + " 861: [1196, 260, 1198, 318, 593],\n", + " 863: [1196, 260, 457, 541, 858, 1198],\n", + " 864: [296, 318, 593, 2571, 1196, 1617, 2028, 858, 50, 1198],\n", + " 865: [1198, 1291, 589, 1240, 527, 1270, 1214, 1200, 541, 858],\n", + " 873: [593, 296, 318, 541, 47, 608, 50, 527, 1, 260],\n", + " 878: [1210, 2571, 1291, 356, 110, 1270, 2028, 2858, 1, 2762],\n", + " 879: [296, 318, 1196, 260, 50, 457, 356, 527, 589, 110],\n", + " 888: [4993, 2571],\n", + " 891: [593],\n", + " 901: [1196, 260, 1210, 593, 1198, 1240, 296, 1291, 541, 3578],\n", + " 903: [1196, 1210, 1198, 593, 2571, 1291, 1240, 589, 296, 858],\n", + " 904: [593, 110, 1196, 260, 150, 588, 1270, 47, 2028, 1198],\n", + " 909: [1196, 260, 1210, 593, 589, 296, 318, 3578, 1200, 1214],\n", + " 910: [260, 1198, 1196, 1221, 1193, 541, 2028, 608, 2571, 1210],\n", + " 916: [2571, 5952, 2858, 296, 593],\n", + " 920: [1196, 1210, 1198, 589, 2571, 1291, 296, 318, 1214, 356],\n", + " 925: [50, 527, 1196, 47, 457, 589, 150, 608, 1210, 2571],\n", + " 927: [593, 318, 296, 110, 527, 1196, 260, 150, 457, 589],\n", + " 932: [1291, 1240, 1198, 2571, 1196],\n", + " 935: [1210, 593],\n", + " 938: [50, 1196, 260, 356, 589, 527, 110, 1198, 480, 1210],\n", + " 939: [296, 356, 50, 1196, 527, 110, 589, 1198, 47, 480],\n", + " 940: [593, 318, 296, 150, 480, 589, 527, 5952, 380, 588],\n", + " 942: [1196, 260, 356, 50, 589, 527, 110, 1198, 150, 480],\n", + " 946: [296, 318],\n", + " 947: [593, 296, 318, 3578, 4993, 5952, 2959, 2762, 1200, 1214],\n", + " 948: [],\n", + " 951: [296, 593, 50, 318, 541, 858, 2858, 260, 1198, 527],\n", + " 955: [593, 318, 296, 356, 50, 110, 1196, 260, 589, 457],\n", + " 958: [2858, 1196, 296, 593],\n", + " 960: [50, 318, 32, 2571, 110, 1196],\n", + " 961: [296, 593, 858, 50, 318],\n", + " 966: [],\n", + " 967: [1196, 527, 260, 858, 541, 608, 50, 589, 1, 1210],\n", + " 968: [356, 50, 527, 1196, 260, 589, 47, 1210, 1198, 608],\n", + " 970: [1196, 260, 457, 356, 589, 527, 1198, 1210, 480, 47],\n", + " 972: [],\n", + " 975: [593, 318, 527, 47, 1196, 260, 110, 541, 457, 858],\n", + " 976: [593, 541, 47, 608, 50, 589, 2571, 527, 260, 1210],\n", + " 980: [1196, 1198, 318, 2571, 589, 1240, 110, 1291, 527, 1],\n", + " 982: [1196, 1210, 1198, 593, 2571, 296, 1291, 1240, 589, 356],\n", + " 985: [2571],\n", + " 988: [],\n", + " 989: [593, 318, 356, 47, 110, 1210, 589, 457, 480, 150],\n", + " 990: [47, 110, 1196, 260, 608, 2858, 32, 858, 1198, 2571],\n", + " 992: [2858, 296],\n", + " 994: [593, 296, 50, 356, 110, 527, 1196, 47, 457, 260],\n", + " 1001: [593, 318, 296, 527, 1196, 1210, 260, 50, 1198, 1],\n", + " 1004: [527],\n", + " 1005: [],\n", + " 1008: [],\n", + " 1009: [1196, 260, 1210, 593, 1198, 589, 296, 3578, 4993, 5952],\n", + " 1011: [318, 2571, 47, 527, 110],\n", + " 1012: [296, 318, 2959, 2762, 1617, 2028, 2571, 858, 50, 1198],\n", + " 1013: [1240, 32, 47, 608, 150, 1036, 1200, 380, 1214, 1291],\n", + " 1014: [50, 318, 32, 1, 1198, 1196, 1210],\n", + " 1015: [50, 296, 593],\n", + " 1016: [593, 541, 47, 50, 589, 2571, 1, 1210, 1196, 110],\n", + " 1017: [260, 2571, 1198, 593, 296, 356, 1240, 589, 1291, 110],\n", + " 1021: [588],\n", + " 1022: [1196, 260, 593],\n", + " 1023: [318, 356, 296, 1210, 457, 50, 589, 590, 588, 150],\n", + " 1025: [593, 296, 50, 356, 527, 47, 150, 32, 1704, 590],\n", + " 1030: [1196, 260, 296, 318],\n", + " 1031: [318, 356, 296, 1196, 457, 527, 1210, 260, 589, 50],\n", + " 1034: [2571, 1198, 2858, 858, 1196, 1210, 110, 589, 527, 260],\n", + " 1037: [318, 527, 608, 1196, 260, 110, 457, 1089, 1617, 541],\n", + " 1039: [2858, 32, 2571, 589, 110, 1196],\n", + " 1041: [608, 480, 32, 356],\n", + " 1044: [1196, 2571, 1198, 593, 356, 1240, 589, 296, 1291, 110],\n", + " 1046: [318, 1196, 260, 527, 110, 50, 589, 1198, 1210, 2571],\n", + " 1048: [1617, 858, 608, 527, 260, 356],\n", + " 1053: [593, 318, 296, 527, 457, 50, 590, 480, 588, 150]})" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 어소시에이션 규칙을 사용해 각 사용자가 아직 평가하지 않은 영화 10편을 추천한다\n", + "pred_user2items = defaultdict(list)\n", + "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", + "\n", + "for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n", + " # 사용자가 최근 5편의 영화를 얻는다\n", + " input_data = data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-5:]\n", + " # 그 영화들이 조건부에 1편이라도 포함되어 있는 어소시에이션 규칙을 추출한다\n", + " matched_flags = rules.antecedents.apply(lambda x: len(set(input_data) & x)) >= 1\n", + "\n", + " # 어소시에이션 규칙의 귀결부의 영화를 리스트로 저장하고, 출편 빈도 순으로 배열하고, 사용자가 아직 평가하지 않았다면 추천 리스트에 추가한다\n", + " consequent_movies = []\n", + " for i, row in rules[matched_flags].sort_values(\"lift\", ascending=False).iterrows():\n", + " consequent_movies.extend(row[\"consequents\"])\n", + " # 출현 빈도를 센다\n", + " counter = Counter(consequent_movies)\n", + " for movie_id, movie_cnt in counter.most_common():\n", + " if movie_id not in user_evaluated_movies[user_id]:\n", + " pred_user2items[user_id].append(movie_id)\n", + " # 추천 리스트가 10편이 되면 종료한다\n", + " if len(pred_user2items[user_id]) == 10:\n", + " break\n", + "\n", + "# 각 사용자에 대한 추천 리스트\n", + "pred_user2items" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "7342fdc7", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 175 + }, + "executionInfo": { + "elapsed": 15, + "status": "ok", + "timestamp": 1672116383190, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "7342fdc7", + "outputId": "c194befc-f9ec-4450-c916-02791f71155a" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " user_id movie_id rating timestamp \\\n", + "4732 2 110 5.0 868245777 \n", + "5246 2 260 5.0 868244562 \n", + "5798 2 590 5.0 868245608 \n", + "8381 2 1210 4.0 868245644 \n", + "\n", + " title \\\n", + "4732 Braveheart (1995) \n", + "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", + "5798 Dances with Wolves (1990) \n", + "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", + "\n", + " genre \\\n", + "4732 [Action, Drama, War] \n", + "5246 [Action, Adventure, Sci-Fi] \n", + "5798 [Adventure, Drama, Western] \n", + "8381 [Action, Adventure, Sci-Fi] \n", + "\n", + " tag timestamp_rank \n", + "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", + "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", + "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", + "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2인 사용자 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", + "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "3034b39c", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 143 + }, + "executionInfo": { + "elapsed": 14, + "status": "ok", + "timestamp": 1672116383190, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "3034b39c", + "outputId": "7fc872ce-8f9b-41d8-c0bb-a55dfdcf86fa" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idtitlegenretag
587593Silence of the Lambs, The (1991)[Crime, Horror, Thriller][based on a book, anthony hopkins, demme, psyc...
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
11731198Raiders of the Lost Ark (Indiana Jones and the...[Action, Adventure][egypt, lucas, seen more than once, dvd collec...
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " movie_id title \\\n", + "587 593 Silence of the Lambs, The (1991) \n", + "1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n", + "1173 1198 Raiders of the Lost Ark (Indiana Jones and the... \n", + "\n", + " genre \\\n", + "587 [Crime, Horror, Thriller] \n", + "1171 [Action, Adventure, Sci-Fi] \n", + "1173 [Action, Adventure] \n", + "\n", + " tag \n", + "587 [based on a book, anthony hopkins, demme, psyc... \n", + "1171 [lucas, george lucas, george lucas, gfei own i... \n", + "1173 [egypt, lucas, seen more than once, dvd collec... " + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2에 대한 추천(1196, 593, 1198)\n", + "movies[movies.movie_id.isin([1196, 593, 1198])]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "9b22d1f6", + "metadata": { + "executionInfo": { + "elapsed": 13, + "status": "ok", + "timestamp": 1672116383190, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "9b22d1f6" + }, + "outputs": [], + "source": [ + "# apriori(user_movie_matrix, min_support=0.1, use_colnames=True)\n", + "# association_rules(freq_movies, metric='lift', min_threshold=1)\n", + "# min_support와 min_threshold가 중요한 파라미터가 되므로 바꾸어 가면서 시험해봅니다." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "64ae2120", + "metadata": { + "executionInfo": { + "elapsed": 13, + "status": "ok", + "timestamp": 1672116383190, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "64ae2120" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "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.10.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/chapter5/colab/BPR.ipynb b/chapter5/colab/BPR.ipynb index d673ac6..468e916 100644 --- a/chapter5/colab/BPR.ipynb +++ b/chapter5/colab/BPR.ipynb @@ -1 +1,2861 @@ -{"cells":[{"cell_type":"markdown","id":"4b7f67c6","metadata":{"id":"4b7f67c6"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/BPR.ipynb)"]},{"cell_type":"markdown","id":"1dd49045","metadata":{"id":"1dd49045"},"source":["# Bayesian Personalized Ranking(BPR)"]},{"cell_type":"code","execution_count":1,"id":"e483d5c3","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"e483d5c3","executionInfo":{"status":"ok","timestamp":1672116735554,"user_tz":-540,"elapsed":6236,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"21abcbdb-9e9a-4754-b011-d451a8a5c819"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 04:52:06-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 21.2MB/s in 3.0s \n","\n","2022-12-27 04:52:10 (21.2 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"9e2d716c","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9e2d716c","executionInfo":{"status":"ok","timestamp":1672116794339,"user_tz":-540,"elapsed":58791,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"af9f8155-e2a1-407d-830c-5efe4794f0a2"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자 수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"65728cf5","metadata":{"id":"65728cf5","executionInfo":{"status":"ok","timestamp":1672116794339,"user_tz":-540,"elapsed":18,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 인자 수\n","factors = 10\n","# 평가 수의 임곗값\n","minimum_num_rating = 0\n","# 에폭 수\n","n_epochs = 50"]},{"cell_type":"code","execution_count":4,"id":"959a4009","metadata":{"id":"959a4009","executionInfo":{"status":"ok","timestamp":1672116794861,"user_tz":-540,"elapsed":539,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 행렬 분석용으로 행렬을 작성한다\n","filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n"," lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n",")\n","\n","movielens_train_high_rating = filtered_movielens_train[filtered_movielens_train.rating >= 4]\n","\n","# 행렬의 인덱스와 영화/사용자를 대응시킨 딕셔너리를 작성한다\n","unique_user_ids = sorted(movielens_train_high_rating.user_id.unique())\n","unique_movie_ids = sorted(movielens_train_high_rating.movie_id.unique())\n","user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n","movie_id2index = dict(zip(unique_movie_ids, range(len(unique_movie_ids))))"]},{"cell_type":"code","execution_count":5,"id":"072a29db","metadata":{"id":"072a29db","executionInfo":{"status":"ok","timestamp":1672116798146,"user_tz":-540,"elapsed":3287,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["from scipy.sparse import lil_matrix\n","# 희소 행렬을 초기화하고 각 셀에 값을 넣는다\n","movielens_matrix = lil_matrix((len(unique_movie_ids), len(unique_user_ids)))\n","for i, row in movielens_train_high_rating.iterrows():\n"," user_index = user_id2index[row[\"user_id\"]]\n"," movie_index = movie_id2index[row[\"movie_id\"]]\n"," movielens_matrix[movie_index, user_index] = 1.0\n"]},{"cell_type":"code","execution_count":6,"id":"b6c90bc6","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"b6c90bc6","executionInfo":{"status":"ok","timestamp":1672116874351,"user_tz":-540,"elapsed":76226,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c94b6b49-5769-465c-ea87-fc27280963d5"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting implicit==0.4.4\n"," Downloading implicit-0.4.4.tar.gz (1.1 MB)\n","\u001b[K |████████████████████████████████| 1.1 MB 11.7 MB/s \n","\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (1.21.6)\n","Requirement already satisfied: scipy>=0.16 in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (1.7.3)\n","Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (4.64.1)\n","Building wheels for collected packages: implicit\n"," Building wheel for implicit (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for implicit: filename=implicit-0.4.4-cp38-cp38-linux_x86_64.whl size=3825514 sha256=7d630d694700acd323d4158a90d015d03f6613575de9846072360a19481a67e8\n"," Stored in directory: /root/.cache/pip/wheels/00/ac/67/6f4536c819ed560c2c7e17c0f7a920e3e50c26108616087d05\n","Successfully built implicit\n","Installing collected packages: implicit\n","Successfully installed implicit-0.4.4\n"]}],"source":["!pip install implicit==0.4.4"]},{"cell_type":"code","execution_count":7,"id":"25e71312","metadata":{"id":"25e71312","executionInfo":{"status":"ok","timestamp":1672116874352,"user_tz":-540,"elapsed":7,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# colab 상에서 implicit 라이브러리 실행 후에 에러가 발생할 때는, '런타임 → 런타임 유형 변경'에서 하드웨어 엑셀러레이터로 GPU를 선택합니다"]},{"cell_type":"code","execution_count":8,"id":"6c0cf1a4","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"6c0cf1a4","executionInfo":{"status":"ok","timestamp":1672116874906,"user_tz":-540,"elapsed":6,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"bf46043c-1d89-4e29-aa41-b9429e68b845"},"outputs":[{"output_type":"stream","name":"stderr","text":["WARNING:implicit:GPU training requires factor size to be a multiple of 32 - 1. Increasing factors from 10 to 31.\n"]}],"source":["import implicit\n","\n","# 모델 초기화\n","model = implicit.bpr.BayesianPersonalizedRanking(factors=factors, iterations=n_epochs)"]},{"cell_type":"code","execution_count":9,"id":"cee6bdcb","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":49,"referenced_widgets":["0da9107a2135419b80d81eeef564292f","ddb3a89fe8634c0fa69705137e88db1d","b5c338dd0da64c47b4184538c7780b19","2700ce5424694283b893b686f7467a85","9e92efe91d6a41c4b20c220c43f1ae26","f9a7d7da750a411fa3b1c90b31a0197f","e97a61c4370c435ea93ae76ad616b02d","9a4aa4972d13480f8734832345fdea59","a78a46d01434404288168d8402a317d5","ebdc7cd012c14d028350d7a39daa0bc2","0318cc47c7ff4fad82354bce4fedb82f"]},"id":"cee6bdcb","executionInfo":{"status":"ok","timestamp":1672116876849,"user_tz":-540,"elapsed":1947,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"e7ac20c7-47a4-4941-e069-6d76794e9dcb"},"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/50 [00:00\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n"," \n"," "]},"metadata":{},"execution_count":11}],"source":["# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n","movielens_train_high_rating[movielens_train_high_rating.user_id==2]"]},{"cell_type":"code","execution_count":12,"id":"4457d3f0","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"4457d3f0","executionInfo":{"status":"ok","timestamp":1672116876850,"user_tz":-540,"elapsed":10,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"5d397af9-532d-4731-90d0-61de1fcba17c"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","293 296 Pulp Fiction (1994) \n","352 356 Forrest Gump (1994) \n","587 593 Silence of the Lambs, The (1991) \n","\n"," genre \\\n","293 [Comedy, Crime, Drama] \n","352 [Comedy, Drama, Romance, War] \n","587 [Crime, Horror, Thriller] \n","\n"," tag \n","293 [quotable, samuel l. jackson, quentin tarantin... \n","352 [psychology, tom hanks, seen more than once, l... \n","587 [based on a book, anthony hopkins, demme, psyc... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
293296Pulp Fiction (1994)[Comedy, Crime, Drama][quotable, samuel l. jackson, quentin tarantin...
352356Forrest Gump (1994)[Comedy, Drama, Romance, War][psychology, tom hanks, seen more than once, l...
587593Silence of the Lambs, The (1991)[Crime, Horror, Thriller][based on a book, anthony hopkins, demme, psyc...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":12}],"source":["# user_id=2에 대한 추천(593, 356, 296)\n","movies[movies.movie_id.isin([593, 356, 296])]"]}],"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.10.8"},"colab":{"provenance":[]},"accelerator":"GPU","gpuClass":"standard","widgets":{"application/vnd.jupyter.widget-state+json":{"0da9107a2135419b80d81eeef564292f":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_ddb3a89fe8634c0fa69705137e88db1d","IPY_MODEL_b5c338dd0da64c47b4184538c7780b19","IPY_MODEL_2700ce5424694283b893b686f7467a85"],"layout":"IPY_MODEL_9e92efe91d6a41c4b20c220c43f1ae26"}},"ddb3a89fe8634c0fa69705137e88db1d":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_f9a7d7da750a411fa3b1c90b31a0197f","placeholder":"​","style":"IPY_MODEL_e97a61c4370c435ea93ae76ad616b02d","value":"100%"}},"b5c338dd0da64c47b4184538c7780b19":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_9a4aa4972d13480f8734832345fdea59","max":50,"min":0,"orientation":"horizontal","style":"IPY_MODEL_a78a46d01434404288168d8402a317d5","value":50}},"2700ce5424694283b893b686f7467a85":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_ebdc7cd012c14d028350d7a39daa0bc2","placeholder":"​","style":"IPY_MODEL_0318cc47c7ff4fad82354bce4fedb82f","value":" 50/50 [00:00<00:00, 84.21it/s, correct=74.55%, skipped=17.28%]"}},"9e92efe91d6a41c4b20c220c43f1ae26":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f9a7d7da750a411fa3b1c90b31a0197f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e97a61c4370c435ea93ae76ad616b02d":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"9a4aa4972d13480f8734832345fdea59":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a78a46d01434404288168d8402a317d5":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"ebdc7cd012c14d028350d7a39daa0bc2":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0318cc47c7ff4fad82354bce4fedb82f":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"2ddd27db70734eb88d721e7de405ee74":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_166e1d511c9a422ba863143f1396bf52","IPY_MODEL_c6b5fd12d6094899aed3b99f203f5759","IPY_MODEL_a3ad9732a70b4785a52f059816adc139"],"layout":"IPY_MODEL_edb4c4f539cb48a39b4b330b9e1245b3"}},"166e1d511c9a422ba863143f1396bf52":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_534599923d34433e9482e454db5756f5","placeholder":"​","style":"IPY_MODEL_fbe7d1235e114f9e94f1ecc44229ab20","value":"100%"}},"c6b5fd12d6094899aed3b99f203f5759":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_25c5deff13c1415684e9b09f97118976","max":997,"min":0,"orientation":"horizontal","style":"IPY_MODEL_b2a2622765114c2a92ab9b1aec54d604","value":997}},"a3ad9732a70b4785a52f059816adc139":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_504e950c8c58490ebf7a10dfdd198474","placeholder":"​","style":"IPY_MODEL_3a0c45cdd5dd472ab191429bedca176c","value":" 997/997 [00:00<00:00, 4865.83it/s]"}},"edb4c4f539cb48a39b4b330b9e1245b3":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"534599923d34433e9482e454db5756f5":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"fbe7d1235e114f9e94f1ecc44229ab20":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"25c5deff13c1415684e9b09f97118976":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"b2a2622765114c2a92ab9b1aec54d604":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"504e950c8c58490ebf7a10dfdd198474":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"3a0c45cdd5dd472ab191429bedca176c":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}}}}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "id": "4b7f67c6", + "metadata": { + "id": "4b7f67c6" + }, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/BPR.ipynb)" + ] + }, + { + "cell_type": "markdown", + "id": "1dd49045", + "metadata": { + "id": "1dd49045" + }, + "source": [ + "# 개인화 된 랭킹 문제(Bayesian Personalized Ranking, BPR)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "e483d5c3", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 6236, + "status": "ok", + "timestamp": 1672116735554, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "e483d5c3", + "outputId": "21abcbdb-9e9a-4754-b011-d451a8a5c819" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-12-27 04:52:06-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n", + "Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n", + "Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 65566137 (63M) [application/zip]\n", + "Saving to: ‘../data/ml-10m.zip’\n", + "\n", + "ml-10m.zip 100%[===================>] 62.53M 21.2MB/s in 3.0s \n", + "\n", + "2022-12-27 04:52:10 (21.2 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n", + "\n", + "Archive: ../data/ml-10m.zip\n", + " creating: ../data/ml-10M100K/\n", + " inflating: ../data/ml-10M100K/allbut.pl \n", + " inflating: ../data/ml-10M100K/movies.dat \n", + " inflating: ../data/ml-10M100K/ratings.dat \n", + " inflating: ../data/ml-10M100K/README.html \n", + " inflating: ../data/ml-10M100K/split_ratings.sh \n", + " inflating: ../data/ml-10M100K/tags.dat \n" + ] + } + ], + "source": [ + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", + "\n", + "# 데이터 다운로드와 압축 풀기\n", + "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", + "!unzip -n ../data/ml-10m.zip -d ../data/" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "9e2d716c", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 58791, + "status": "ok", + "timestamp": 1672116794339, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "9e2d716c", + "outputId": "af9f8155-e2a1-407d-830c-5efe4794f0a2" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "unique_users=1000, unique_movies=6736\n" + ] + } + ], + "source": [ + "# Movielens 데이터 로딩(데이터량이 많으므로 로딩에 시간이 걸릴 수 있습니다)\n", + "import pandas as pd\n", + "\n", + "# movieID와 제목만 사용\n", + "m_cols = ['movie_id', 'title', 'genre']\n", + "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", + "\n", + "# genre를 list 형식으로 저장한다\n", + "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", + "\n", + "\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", + "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", + "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", + "\n", + "# tag를 소문자로 바꾼다\n", + "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", + "\n", + "\n", + "# tag를 영화별로 list 형식으로 저장한다\n", + "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", + "\n", + "# 태그 정보를 결합한다\n", + "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", + "\n", + "# 평갓값 데이터만 로딩한다\n", + "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", + "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", + "\n", + "\n", + "# 데이터량이 많으므로 사용자 수를 1000으로 줄여서 시험해본다\n", + "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", + "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", + "\n", + "\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", + "movielens = ratings.merge(movies, on='movie_id')\n", + "\n", + "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", + "\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", + "\n", + "movielens['timestamp_rank'] = movielens.groupby(\n", + " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", + "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", + "movielens_test = movielens[movielens['timestamp_rank']<= 5]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "65728cf5", + "metadata": { + "executionInfo": { + "elapsed": 18, + "status": "ok", + "timestamp": 1672116794339, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "65728cf5" + }, + "outputs": [], + "source": [ + "# 인자 수\n", + "factors = 10\n", + "# 평가 수의 임곗값\n", + "minimum_num_rating = 0\n", + "# 에폭 수\n", + "n_epochs = 50" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "959a4009", + "metadata": { + "executionInfo": { + "elapsed": 539, + "status": "ok", + "timestamp": 1672116794861, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "959a4009" + }, + "outputs": [], + "source": [ + "# 행렬 분석용으로 행렬을 작성한다\n", + "filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n", + " lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n", + ")\n", + "\n", + "movielens_train_high_rating = filtered_movielens_train[filtered_movielens_train.rating >= 4]\n", + "\n", + "# 행렬의 인덱스와 영화/사용자를 대응시킨 딕셔너리를 작성한다\n", + "unique_user_ids = sorted(movielens_train_high_rating.user_id.unique())\n", + "unique_movie_ids = sorted(movielens_train_high_rating.movie_id.unique())\n", + "user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n", + "movie_id2index = dict(zip(unique_movie_ids, range(len(unique_movie_ids))))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "072a29db", + "metadata": { + "executionInfo": { + "elapsed": 3287, + "status": "ok", + "timestamp": 1672116798146, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "072a29db" + }, + "outputs": [], + "source": [ + "from scipy.sparse import lil_matrix\n", + "# 희소 행렬을 초기화하고 각 셀에 값을 넣는다\n", + "movielens_matrix = lil_matrix((len(unique_movie_ids), len(unique_user_ids)))\n", + "for i, row in movielens_train_high_rating.iterrows():\n", + " user_index = user_id2index[row[\"user_id\"]]\n", + " movie_index = movie_id2index[row[\"movie_id\"]]\n", + " movielens_matrix[movie_index, user_index] = 1.0\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "b6c90bc6", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 76226, + "status": "ok", + "timestamp": 1672116874351, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "b6c90bc6", + "outputId": "c94b6b49-5769-465c-ea87-fc27280963d5" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", + "Collecting implicit==0.4.4\n", + " Downloading implicit-0.4.4.tar.gz (1.1 MB)\n", + "\u001b[K |████████████████████████████████| 1.1 MB 11.7 MB/s \n", + "\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (1.21.6)\n", + "Requirement already satisfied: scipy>=0.16 in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (1.7.3)\n", + "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (4.64.1)\n", + "Building wheels for collected packages: implicit\n", + " Building wheel for implicit (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + " Created wheel for implicit: filename=implicit-0.4.4-cp38-cp38-linux_x86_64.whl size=3825514 sha256=7d630d694700acd323d4158a90d015d03f6613575de9846072360a19481a67e8\n", + " Stored in directory: /root/.cache/pip/wheels/00/ac/67/6f4536c819ed560c2c7e17c0f7a920e3e50c26108616087d05\n", + "Successfully built implicit\n", + "Installing collected packages: implicit\n", + "Successfully installed implicit-0.4.4\n" + ] + } + ], + "source": [ + "!pip install implicit==0.4.4" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "25e71312", + "metadata": { + "executionInfo": { + "elapsed": 7, + "status": "ok", + "timestamp": 1672116874352, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "25e71312" + }, + "outputs": [], + "source": [ + "# colab 상에서 implicit 라이브러리 실행 후에 에러가 발생할 때는, '런타임 → 런타임 유형 변경'에서 하드웨어 엑셀러레이터로 GPU를 선택합니다" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "6c0cf1a4", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 6, + "status": "ok", + "timestamp": 1672116874906, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "6c0cf1a4", + "outputId": "bf46043c-1d89-4e29-aa41-b9429e68b845" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:implicit:GPU training requires factor size to be a multiple of 32 - 1. Increasing factors from 10 to 31.\n" + ] + } + ], + "source": [ + "import implicit\n", + "\n", + "# 모델 초기화\n", + "model = implicit.bpr.BayesianPersonalizedRanking(factors=factors, iterations=n_epochs)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "cee6bdcb", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 49, + "referenced_widgets": [ + "0da9107a2135419b80d81eeef564292f", + "ddb3a89fe8634c0fa69705137e88db1d", + "b5c338dd0da64c47b4184538c7780b19", + "2700ce5424694283b893b686f7467a85", + "9e92efe91d6a41c4b20c220c43f1ae26", + "f9a7d7da750a411fa3b1c90b31a0197f", + "e97a61c4370c435ea93ae76ad616b02d", + "9a4aa4972d13480f8734832345fdea59", + "a78a46d01434404288168d8402a317d5", + "ebdc7cd012c14d028350d7a39daa0bc2", + "0318cc47c7ff4fad82354bce4fedb82f" + ] + }, + "executionInfo": { + "elapsed": 1947, + "status": "ok", + "timestamp": 1672116876849, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "cee6bdcb", + "outputId": "e7ac20c7-47a4-4941-e069-6d76794e9dcb" + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "0da9107a2135419b80d81eeef564292f", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/50 [00:00\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + " \n", + " " + ], + "text/plain": [ + " user_id movie_id rating timestamp \\\n", + "4732 2 110 5.0 868245777 \n", + "5246 2 260 5.0 868244562 \n", + "5798 2 590 5.0 868245608 \n", + "8381 2 1210 4.0 868245644 \n", + "\n", + " title \\\n", + "4732 Braveheart (1995) \n", + "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", + "5798 Dances with Wolves (1990) \n", + "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", + "\n", + " genre \\\n", + "4732 [Action, Drama, War] \n", + "5246 [Action, Adventure, Sci-Fi] \n", + "5798 [Adventure, Drama, Western] \n", + "8381 [Action, Adventure, Sci-Fi] \n", + "\n", + " tag timestamp_rank \n", + "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", + "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", + "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", + "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", + "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "4457d3f0", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 143 + }, + "executionInfo": { + "elapsed": 10, + "status": "ok", + "timestamp": 1672116876850, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "4457d3f0", + "outputId": "5d397af9-532d-4731-90d0-61de1fcba17c" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idtitlegenretag
293296Pulp Fiction (1994)[Comedy, Crime, Drama][quotable, samuel l. jackson, quentin tarantin...
352356Forrest Gump (1994)[Comedy, Drama, Romance, War][psychology, tom hanks, seen more than once, l...
587593Silence of the Lambs, The (1991)[Crime, Horror, Thriller][based on a book, anthony hopkins, demme, psyc...
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " movie_id title \\\n", + "293 296 Pulp Fiction (1994) \n", + "352 356 Forrest Gump (1994) \n", + "587 593 Silence of the Lambs, The (1991) \n", + "\n", + " genre \\\n", + "293 [Comedy, Crime, Drama] \n", + "352 [Comedy, Drama, Romance, War] \n", + "587 [Crime, Horror, Thriller] \n", + "\n", + " tag \n", + "293 [quotable, samuel l. jackson, quentin tarantin... \n", + "352 [psychology, tom hanks, seen more than once, l... \n", + "587 [based on a book, anthony hopkins, demme, psyc... " + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2에 대한 추천(593, 356, 296)\n", + "movies[movies.movie_id.isin([593, 356, 296])]" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "provenance": [] + }, + "gpuClass": "standard", + "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.10.8" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "0318cc47c7ff4fad82354bce4fedb82f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "0da9107a2135419b80d81eeef564292f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_ddb3a89fe8634c0fa69705137e88db1d", + "IPY_MODEL_b5c338dd0da64c47b4184538c7780b19", + "IPY_MODEL_2700ce5424694283b893b686f7467a85" + ], + "layout": "IPY_MODEL_9e92efe91d6a41c4b20c220c43f1ae26" + } + }, + "166e1d511c9a422ba863143f1396bf52": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_534599923d34433e9482e454db5756f5", + "placeholder": "​", + "style": "IPY_MODEL_fbe7d1235e114f9e94f1ecc44229ab20", + "value": "100%" + } + }, + "25c5deff13c1415684e9b09f97118976": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2700ce5424694283b893b686f7467a85": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_ebdc7cd012c14d028350d7a39daa0bc2", + "placeholder": "​", + "style": "IPY_MODEL_0318cc47c7ff4fad82354bce4fedb82f", + "value": " 50/50 [00:00<00:00, 84.21it/s, correct=74.55%, skipped=17.28%]" + } + }, + "2ddd27db70734eb88d721e7de405ee74": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_166e1d511c9a422ba863143f1396bf52", + "IPY_MODEL_c6b5fd12d6094899aed3b99f203f5759", + "IPY_MODEL_a3ad9732a70b4785a52f059816adc139" + ], + "layout": "IPY_MODEL_edb4c4f539cb48a39b4b330b9e1245b3" + } + }, + "3a0c45cdd5dd472ab191429bedca176c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "504e950c8c58490ebf7a10dfdd198474": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "534599923d34433e9482e454db5756f5": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9a4aa4972d13480f8734832345fdea59": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9e92efe91d6a41c4b20c220c43f1ae26": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a3ad9732a70b4785a52f059816adc139": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_504e950c8c58490ebf7a10dfdd198474", + "placeholder": "​", + "style": "IPY_MODEL_3a0c45cdd5dd472ab191429bedca176c", + "value": " 997/997 [00:00<00:00, 4865.83it/s]" + } + }, + "a78a46d01434404288168d8402a317d5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "b2a2622765114c2a92ab9b1aec54d604": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "b5c338dd0da64c47b4184538c7780b19": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9a4aa4972d13480f8734832345fdea59", + "max": 50, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_a78a46d01434404288168d8402a317d5", + "value": 50 + } + }, + "c6b5fd12d6094899aed3b99f203f5759": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_25c5deff13c1415684e9b09f97118976", + "max": 997, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_b2a2622765114c2a92ab9b1aec54d604", + "value": 997 + } + }, + "ddb3a89fe8634c0fa69705137e88db1d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f9a7d7da750a411fa3b1c90b31a0197f", + "placeholder": "​", + "style": "IPY_MODEL_e97a61c4370c435ea93ae76ad616b02d", + "value": "100%" + } + }, + "e97a61c4370c435ea93ae76ad616b02d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "ebdc7cd012c14d028350d7a39daa0bc2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "edb4c4f539cb48a39b4b330b9e1245b3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f9a7d7da750a411fa3b1c90b31a0197f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "fbe7d1235e114f9e94f1ecc44229ab20": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/chapter5/colab/IMF.ipynb b/chapter5/colab/IMF.ipynb index 1744802..79fa0d1 100644 --- a/chapter5/colab/IMF.ipynb +++ b/chapter5/colab/IMF.ipynb @@ -1 +1,2700 @@ -{"cells":[{"cell_type":"markdown","id":"31a1f64c","metadata":{"id":"31a1f64c"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/IMF.ipynb)"]},{"cell_type":"markdown","id":"c0dccd9c","metadata":{"id":"c0dccd9c"},"source":["# Implicit Matrix Factorization"]},{"cell_type":"code","execution_count":1,"id":"c302ab23","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"c302ab23","executionInfo":{"status":"ok","timestamp":1672118046019,"user_tz":-540,"elapsed":10729,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"99be911a-fa2c-4848-b9fe-de4ba2570907"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:12:10-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 13.6MB/s in 6.1s \n","\n","2022-12-27 05:12:18 (10.3 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"4f1322e1","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"4f1322e1","executionInfo":{"status":"ok","timestamp":1672118103815,"user_tz":-540,"elapsed":57828,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"5aef6143-782d-4602-9b40-0fc6cb3f0475"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"79120322","metadata":{"id":"79120322","executionInfo":{"status":"ok","timestamp":1672118103816,"user_tz":-540,"elapsed":32,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 인자 수\n","factors = 10\n","# 평가 수의 임곗값\n","minimum_num_rating = 0\n","# 에폭 수\n","n_epochs = 50\n","# alpha\n","alpha = 1.0"]},{"cell_type":"code","execution_count":4,"id":"df43e6c5","metadata":{"id":"df43e6c5","executionInfo":{"status":"ok","timestamp":1672118103817,"user_tz":-540,"elapsed":31,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 행력 분석용으로 행렬을 작성한다\n","filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n"," lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n",")\n","\n","movielens_train_high_rating = filtered_movielens_train[filtered_movielens_train.rating >= 4]\n","\n","# 행렬의 인덱스와 영화/사용자를 대응시킨 딕셔너리를 작성한다\n","unique_user_ids = sorted(movielens_train_high_rating.user_id.unique())\n","unique_movie_ids = sorted(movielens_train_high_rating.movie_id.unique())\n","user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n","movie_id2index = dict(zip(unique_movie_ids, range(len(unique_movie_ids))))"]},{"cell_type":"code","execution_count":5,"id":"4c2f401f","metadata":{"id":"4c2f401f","executionInfo":{"status":"ok","timestamp":1672118107348,"user_tz":-540,"elapsed":3561,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["from scipy.sparse import lil_matrix\n","# 희소 행렬을 초기화하고, 각 셀에 값을 넣는다\n","movielens_matrix = lil_matrix((len(unique_movie_ids), len(unique_user_ids)))\n","for i, row in movielens_train_high_rating.iterrows():\n"," user_index = user_id2index[row[\"user_id\"]]\n"," movie_index = movie_id2index[row[\"movie_id\"]]\n"," movielens_matrix[movie_index, user_index] = 1.0 * alpha # 이후, 영화의 평갓값을 0/1로 이진화한다. 클릭 수 등의 데이터인 경우에는 log(click 수) 등으로 변형하는 것도 효과적이다."]},{"cell_type":"code","execution_count":6,"id":"7ee004fe","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"7ee004fe","executionInfo":{"status":"ok","timestamp":1672118180966,"user_tz":-540,"elapsed":73628,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"7561d4a0-8562-4190-93ec-2966e0cf9e32"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting implicit==0.4.4\n"," Downloading implicit-0.4.4.tar.gz (1.1 MB)\n","\u001b[K |████████████████████████████████| 1.1 MB 30.9 MB/s \n","\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (1.21.6)\n","Requirement already satisfied: scipy>=0.16 in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (1.7.3)\n","Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (4.64.1)\n","Building wheels for collected packages: implicit\n"," Building wheel for implicit (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for implicit: filename=implicit-0.4.4-cp38-cp38-linux_x86_64.whl size=3825530 sha256=4f9058d1d351d60c74e7cfac5a34e01c831ecc5683e4cb2c3b0bc2816f422259\n"," Stored in directory: /root/.cache/pip/wheels/00/ac/67/6f4536c819ed560c2c7e17c0f7a920e3e50c26108616087d05\n","Successfully built implicit\n","Installing collected packages: implicit\n","Successfully installed implicit-0.4.4\n"]}],"source":["!pip install implicit==0.4.4"]},{"cell_type":"code","execution_count":7,"id":"e76c9ca3","metadata":{"id":"e76c9ca3","executionInfo":{"status":"ok","timestamp":1672118180966,"user_tz":-540,"elapsed":8,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# colab 상에서 implicit 라이브러리 실행 후에 에러가 발생할 때는, '런타임 → 런타임 유형 변경'에서 하드웨어 엑셀러레이터로 GPU를 선택합니다"]},{"cell_type":"code","execution_count":8,"id":"c5a6a5bc","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"c5a6a5bc","executionInfo":{"status":"ok","timestamp":1672118181566,"user_tz":-540,"elapsed":607,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"2bf44fbc-c3cb-4966-854d-99bc40b41415"},"outputs":[{"output_type":"stream","name":"stderr","text":["WARNING:implicit:GPU training requires factor size to be a multiple of 32. Increasing factors from 10 to 32.\n","WARNING:root:OpenBLAS detected. Its highly recommend to set the environment variable 'export OPENBLAS_NUM_THREADS=1' to disable its internal multithreading\n"]}],"source":["import implicit\n","\n","# 모델 초기화\n","model = implicit.als.AlternatingLeastSquares(\n"," factors=factors, iterations=n_epochs, calculate_training_loss=True, random_state=1\n",")"]},{"cell_type":"code","execution_count":9,"id":"e812e181","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":49,"referenced_widgets":["fb6ab01e37634a9abeec2b179da03960","e1607d7715e04820885029cdf3a74c6f","2fdc799239424e849ffee921e6ee603f","6092009309584cdf9c993516020fd83d","5f77d52aa8c24e999f128edf4bba9ba1","5a37456cfd97490b82dc40007c2e2df1","4a54ee19a6434221b42e0604706c3e98","c2f622744a7b4e9e93eea9d685587d1a","cbb30e2efa2b43189dc50c6c9aebb349","1866fe3ab47444b2b106afb7f42b56ad","2292d6ee2146480c929ca724004f0eb0"]},"id":"e812e181","executionInfo":{"status":"ok","timestamp":1672118185699,"user_tz":-540,"elapsed":4134,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"35f00436-113b-421c-da6c-4b24030ef824"},"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/50 [00:00\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n"," \n"," "]},"metadata":{},"execution_count":11}],"source":["# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n","movielens_train_high_rating[movielens_train_high_rating.user_id==2]"]},{"cell_type":"code","execution_count":12,"id":"04b38bdb","metadata":{"scrolled":true,"colab":{"base_uri":"https://localhost:8080/","height":239},"id":"04b38bdb","executionInfo":{"status":"ok","timestamp":1672118185701,"user_tz":-540,"elapsed":21,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"3deca087-a3c9-4705-b213-014e3e68b09a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","0 1 Toy Story (1995) \n","583 589 Terminator 2: Judgment Day (1991) \n","1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n","\n"," genre \\\n","0 [Adventure, Animation, Children, Comedy, Fantasy] \n","583 [Action, Sci-Fi] \n","1171 [Action, Adventure, Sci-Fi] \n","\n"," tag \n","0 [pixar, pixar, pixar, animation, pixar, animat... \n","583 [action, sci-fi, dvd, seen more than once, tim... \n","1171 [lucas, george lucas, george lucas, gfei own i... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
01Toy Story (1995)[Adventure, Animation, Children, Comedy, Fantasy][pixar, pixar, pixar, animation, pixar, animat...
583589Terminator 2: Judgment Day (1991)[Action, Sci-Fi][action, sci-fi, dvd, seen more than once, tim...
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":12}],"source":["# user_id=2에 대한 추천(1196, 1, 589)\n","movies[movies.movie_id.isin([1196, 1, 589])]"]},{"cell_type":"code","execution_count":13,"id":"3c7399b0","metadata":{"id":"3c7399b0","executionInfo":{"status":"ok","timestamp":1672118185702,"user_tz":-540,"elapsed":20,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# IMF에서는 factors나 alpha 설정이 예측 정밀도에 중요하므로, 값을 바꾸어가며 시도해봅니다."]}],"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.10.8"},"colab":{"provenance":[]},"accelerator":"GPU","gpuClass":"standard","widgets":{"application/vnd.jupyter.widget-state+json":{"fb6ab01e37634a9abeec2b179da03960":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_e1607d7715e04820885029cdf3a74c6f","IPY_MODEL_2fdc799239424e849ffee921e6ee603f","IPY_MODEL_6092009309584cdf9c993516020fd83d"],"layout":"IPY_MODEL_5f77d52aa8c24e999f128edf4bba9ba1"}},"e1607d7715e04820885029cdf3a74c6f":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_5a37456cfd97490b82dc40007c2e2df1","placeholder":"​","style":"IPY_MODEL_4a54ee19a6434221b42e0604706c3e98","value":"100%"}},"2fdc799239424e849ffee921e6ee603f":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_c2f622744a7b4e9e93eea9d685587d1a","max":50,"min":0,"orientation":"horizontal","style":"IPY_MODEL_cbb30e2efa2b43189dc50c6c9aebb349","value":50}},"6092009309584cdf9c993516020fd83d":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_1866fe3ab47444b2b106afb7f42b56ad","placeholder":"​","style":"IPY_MODEL_2292d6ee2146480c929ca724004f0eb0","value":" 50/50 [00:00<00:00, 110.61it/s, loss=0.00796]"}},"5f77d52aa8c24e999f128edf4bba9ba1":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"5a37456cfd97490b82dc40007c2e2df1":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4a54ee19a6434221b42e0604706c3e98":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"c2f622744a7b4e9e93eea9d685587d1a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"cbb30e2efa2b43189dc50c6c9aebb349":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"1866fe3ab47444b2b106afb7f42b56ad":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"2292d6ee2146480c929ca724004f0eb0":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"794848481a2e43838b142114c5e5e003":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_8c6cb142ccac484387ef07406ee2b03a","IPY_MODEL_aed0c148e187444095a00d7b74957536","IPY_MODEL_67a0b6eb5a9a491fbfa744968cef6e5c"],"layout":"IPY_MODEL_fbfb39403f6f4801b4de05be06af1c45"}},"8c6cb142ccac484387ef07406ee2b03a":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_c934d6be788844e6a957c2cba8d208d0","placeholder":"​","style":"IPY_MODEL_43f27c87353444c9819cc68e4f8902b5","value":"100%"}},"aed0c148e187444095a00d7b74957536":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_15c7b16aede3452bae25dd191af06a2a","max":997,"min":0,"orientation":"horizontal","style":"IPY_MODEL_519c3359647c43878ba29a7e8abec16f","value":997}},"67a0b6eb5a9a491fbfa744968cef6e5c":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_b10a1756c23b401ca0eeb7fc10d644ae","placeholder":"​","style":"IPY_MODEL_6107de1d97c342c9a982f36c262cb9d1","value":" 997/997 [00:00<00:00, 7410.77it/s]"}},"fbfb39403f6f4801b4de05be06af1c45":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c934d6be788844e6a957c2cba8d208d0":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"43f27c87353444c9819cc68e4f8902b5":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"15c7b16aede3452bae25dd191af06a2a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"519c3359647c43878ba29a7e8abec16f":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"b10a1756c23b401ca0eeb7fc10d644ae":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6107de1d97c342c9a982f36c262cb9d1":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}}}}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "id": "31a1f64c", + "metadata": { + "id": "31a1f64c" + }, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/IMF.ipynb)" + ] + }, + { + "cell_type": "markdown", + "id": "c0dccd9c", + "metadata": { + "id": "c0dccd9c" + }, + "source": [ + "# 암묵적 행렬 분해(Implicit Matrix Factorization, IMF)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "c302ab23", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 10729, + "status": "ok", + "timestamp": 1672118046019, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "c302ab23", + "outputId": "99be911a-fa2c-4848-b9fe-de4ba2570907" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-12-27 05:12:10-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n", + "Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n", + "Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 65566137 (63M) [application/zip]\n", + "Saving to: ‘../data/ml-10m.zip’\n", + "\n", + "ml-10m.zip 100%[===================>] 62.53M 13.6MB/s in 6.1s \n", + "\n", + "2022-12-27 05:12:18 (10.3 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n", + "\n", + "Archive: ../data/ml-10m.zip\n", + " creating: ../data/ml-10M100K/\n", + " inflating: ../data/ml-10M100K/allbut.pl \n", + " inflating: ../data/ml-10M100K/movies.dat \n", + " inflating: ../data/ml-10M100K/ratings.dat \n", + " inflating: ../data/ml-10M100K/README.html \n", + " inflating: ../data/ml-10M100K/split_ratings.sh \n", + " inflating: ../data/ml-10M100K/tags.dat \n" + ] + } + ], + "source": [ + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", + "\n", + "# 데이터 다운로드와 압축 풀기\n", + "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", + "!unzip -n ../data/ml-10m.zip -d ../data/" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "4f1322e1", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 57828, + "status": "ok", + "timestamp": 1672118103815, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "4f1322e1", + "outputId": "5aef6143-782d-4602-9b40-0fc6cb3f0475" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "unique_users=1000, unique_movies=6736\n" + ] + } + ], + "source": [ + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", + "import pandas as pd\n", + "\n", + "# movieID와 제목만 사용\n", + "m_cols = ['movie_id', 'title', 'genre']\n", + "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", + "\n", + "# genre를 list 형식으로 저장한다\n", + "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", + "\n", + "\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", + "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", + "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", + "\n", + "# tag를 소문자로 바꾼다\n", + "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", + "\n", + "\n", + "# tag를 영화별로 list 형식으로 저장한다\n", + "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", + "\n", + "# 태그 정보를 결합한다\n", + "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", + "\n", + "# 평갓값 데이터만 로딩한다\n", + "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", + "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", + "\n", + "\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", + "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", + "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", + "\n", + "\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", + "movielens = ratings.merge(movies, on='movie_id')\n", + "\n", + "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", + "\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", + "\n", + "movielens['timestamp_rank'] = movielens.groupby(\n", + " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", + "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", + "movielens_test = movielens[movielens['timestamp_rank']<= 5]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "79120322", + "metadata": { + "executionInfo": { + "elapsed": 32, + "status": "ok", + "timestamp": 1672118103816, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "79120322" + }, + "outputs": [], + "source": [ + "# 인자 수\n", + "factors = 10\n", + "# 평가 수의 임곗값\n", + "minimum_num_rating = 0\n", + "# 에폭 수\n", + "n_epochs = 50\n", + "# alpha\n", + "alpha = 1.0" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "df43e6c5", + "metadata": { + "executionInfo": { + "elapsed": 31, + "status": "ok", + "timestamp": 1672118103817, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "df43e6c5" + }, + "outputs": [], + "source": [ + "# 행력 분석용으로 행렬을 작성한다\n", + "filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n", + " lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n", + ")\n", + "\n", + "movielens_train_high_rating = filtered_movielens_train[filtered_movielens_train.rating >= 4]\n", + "\n", + "# 행렬의 인덱스와 영화/사용자를 대응시킨 딕셔너리를 작성한다\n", + "unique_user_ids = sorted(movielens_train_high_rating.user_id.unique())\n", + "unique_movie_ids = sorted(movielens_train_high_rating.movie_id.unique())\n", + "user_id2index = dict(zip(unique_user_ids, range(len(unique_user_ids))))\n", + "movie_id2index = dict(zip(unique_movie_ids, range(len(unique_movie_ids))))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "4c2f401f", + "metadata": { + "executionInfo": { + "elapsed": 3561, + "status": "ok", + "timestamp": 1672118107348, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "4c2f401f" + }, + "outputs": [], + "source": [ + "from scipy.sparse import lil_matrix\n", + "# 희소 행렬을 초기화하고, 각 셀에 값을 넣는다\n", + "movielens_matrix = lil_matrix((len(unique_movie_ids), len(unique_user_ids)))\n", + "for i, row in movielens_train_high_rating.iterrows():\n", + " user_index = user_id2index[row[\"user_id\"]]\n", + " movie_index = movie_id2index[row[\"movie_id\"]]\n", + " movielens_matrix[movie_index, user_index] = 1.0 * alpha # 이후, 영화의 평갓값을 0/1로 이진화한다. 클릭 수 등의 데이터인 경우에는 log(click 수) 등으로 변형하는 것도 효과적이다." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7ee004fe", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 73628, + "status": "ok", + "timestamp": 1672118180966, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "7ee004fe", + "outputId": "7561d4a0-8562-4190-93ec-2966e0cf9e32" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", + "Collecting implicit==0.4.4\n", + " Downloading implicit-0.4.4.tar.gz (1.1 MB)\n", + "\u001b[K |████████████████████████████████| 1.1 MB 30.9 MB/s \n", + "\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (1.21.6)\n", + "Requirement already satisfied: scipy>=0.16 in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (1.7.3)\n", + "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from implicit==0.4.4) (4.64.1)\n", + "Building wheels for collected packages: implicit\n", + " Building wheel for implicit (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + " Created wheel for implicit: filename=implicit-0.4.4-cp38-cp38-linux_x86_64.whl size=3825530 sha256=4f9058d1d351d60c74e7cfac5a34e01c831ecc5683e4cb2c3b0bc2816f422259\n", + " Stored in directory: /root/.cache/pip/wheels/00/ac/67/6f4536c819ed560c2c7e17c0f7a920e3e50c26108616087d05\n", + "Successfully built implicit\n", + "Installing collected packages: implicit\n", + "Successfully installed implicit-0.4.4\n" + ] + } + ], + "source": [ + "!pip install implicit==0.4.4" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "e76c9ca3", + "metadata": { + "executionInfo": { + "elapsed": 8, + "status": "ok", + "timestamp": 1672118180966, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "e76c9ca3" + }, + "outputs": [], + "source": [ + "# colab 상에서 implicit 라이브러리 실행 후에 에러가 발생할 때는, '런타임 → 런타임 유형 변경'에서 하드웨어 엑셀러레이터로 GPU를 선택합니다" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "c5a6a5bc", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 607, + "status": "ok", + "timestamp": 1672118181566, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "c5a6a5bc", + "outputId": "2bf44fbc-c3cb-4966-854d-99bc40b41415" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:implicit:GPU training requires factor size to be a multiple of 32. Increasing factors from 10 to 32.\n", + "WARNING:root:OpenBLAS detected. Its highly recommend to set the environment variable 'export OPENBLAS_NUM_THREADS=1' to disable its internal multithreading\n" + ] + } + ], + "source": [ + "import implicit\n", + "\n", + "# 모델 초기화\n", + "model = implicit.als.AlternatingLeastSquares(\n", + " factors=factors, iterations=n_epochs, calculate_training_loss=True, random_state=1\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "e812e181", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 49, + "referenced_widgets": [ + "fb6ab01e37634a9abeec2b179da03960", + "e1607d7715e04820885029cdf3a74c6f", + "2fdc799239424e849ffee921e6ee603f", + "6092009309584cdf9c993516020fd83d", + "5f77d52aa8c24e999f128edf4bba9ba1", + "5a37456cfd97490b82dc40007c2e2df1", + "4a54ee19a6434221b42e0604706c3e98", + "c2f622744a7b4e9e93eea9d685587d1a", + "cbb30e2efa2b43189dc50c6c9aebb349", + "1866fe3ab47444b2b106afb7f42b56ad", + "2292d6ee2146480c929ca724004f0eb0" + ] + }, + "executionInfo": { + "elapsed": 4134, + "status": "ok", + "timestamp": 1672118185699, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "e812e181", + "outputId": "35f00436-113b-421c-da6c-4b24030ef824" + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "fb6ab01e37634a9abeec2b179da03960", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/50 [00:00\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + " \n", + " " + ], + "text/plain": [ + " user_id movie_id rating timestamp \\\n", + "4732 2 110 5.0 868245777 \n", + "5246 2 260 5.0 868244562 \n", + "5798 2 590 5.0 868245608 \n", + "8381 2 1210 4.0 868245644 \n", + "\n", + " title \\\n", + "4732 Braveheart (1995) \n", + "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", + "5798 Dances with Wolves (1990) \n", + "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", + "\n", + " genre \\\n", + "4732 [Action, Drama, War] \n", + "5246 [Action, Adventure, Sci-Fi] \n", + "5798 [Adventure, Drama, Western] \n", + "8381 [Action, Adventure, Sci-Fi] \n", + "\n", + " tag timestamp_rank \n", + "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", + "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", + "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", + "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", + "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "04b38bdb", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 239 + }, + "executionInfo": { + "elapsed": 21, + "status": "ok", + "timestamp": 1672118185701, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "04b38bdb", + "outputId": "3deca087-a3c9-4705-b213-014e3e68b09a", + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idtitlegenretag
01Toy Story (1995)[Adventure, Animation, Children, Comedy, Fantasy][pixar, pixar, pixar, animation, pixar, animat...
583589Terminator 2: Judgment Day (1991)[Action, Sci-Fi][action, sci-fi, dvd, seen more than once, tim...
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " movie_id title \\\n", + "0 1 Toy Story (1995) \n", + "583 589 Terminator 2: Judgment Day (1991) \n", + "1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n", + "\n", + " genre \\\n", + "0 [Adventure, Animation, Children, Comedy, Fantasy] \n", + "583 [Action, Sci-Fi] \n", + "1171 [Action, Adventure, Sci-Fi] \n", + "\n", + " tag \n", + "0 [pixar, pixar, pixar, animation, pixar, animat... \n", + "583 [action, sci-fi, dvd, seen more than once, tim... \n", + "1171 [lucas, george lucas, george lucas, gfei own i... " + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2에 대한 추천(1196, 1, 589)\n", + "movies[movies.movie_id.isin([1196, 1, 589])]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "3c7399b0", + "metadata": { + "executionInfo": { + "elapsed": 20, + "status": "ok", + "timestamp": 1672118185702, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "3c7399b0" + }, + "outputs": [], + "source": [ + "# IMF에서는 factors나 alpha 설정이 예측 정밀도에 중요하므로, 값을 바꾸어가며 시도해봅니다." + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "provenance": [] + }, + "gpuClass": "standard", + "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.10.8" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "15c7b16aede3452bae25dd191af06a2a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1866fe3ab47444b2b106afb7f42b56ad": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2292d6ee2146480c929ca724004f0eb0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "2fdc799239424e849ffee921e6ee603f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_c2f622744a7b4e9e93eea9d685587d1a", + "max": 50, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_cbb30e2efa2b43189dc50c6c9aebb349", + "value": 50 + } + }, + "43f27c87353444c9819cc68e4f8902b5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "4a54ee19a6434221b42e0604706c3e98": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "519c3359647c43878ba29a7e8abec16f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "5a37456cfd97490b82dc40007c2e2df1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5f77d52aa8c24e999f128edf4bba9ba1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6092009309584cdf9c993516020fd83d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1866fe3ab47444b2b106afb7f42b56ad", + "placeholder": "​", + "style": "IPY_MODEL_2292d6ee2146480c929ca724004f0eb0", + "value": " 50/50 [00:00<00:00, 110.61it/s, loss=0.00796]" + } + }, + "6107de1d97c342c9a982f36c262cb9d1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "67a0b6eb5a9a491fbfa744968cef6e5c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b10a1756c23b401ca0eeb7fc10d644ae", + "placeholder": "​", + "style": "IPY_MODEL_6107de1d97c342c9a982f36c262cb9d1", + "value": " 997/997 [00:00<00:00, 7410.77it/s]" + } + }, + "794848481a2e43838b142114c5e5e003": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_8c6cb142ccac484387ef07406ee2b03a", + "IPY_MODEL_aed0c148e187444095a00d7b74957536", + "IPY_MODEL_67a0b6eb5a9a491fbfa744968cef6e5c" + ], + "layout": "IPY_MODEL_fbfb39403f6f4801b4de05be06af1c45" + } + }, + "8c6cb142ccac484387ef07406ee2b03a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_c934d6be788844e6a957c2cba8d208d0", + "placeholder": "​", + "style": "IPY_MODEL_43f27c87353444c9819cc68e4f8902b5", + "value": "100%" + } + }, + "aed0c148e187444095a00d7b74957536": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_15c7b16aede3452bae25dd191af06a2a", + "max": 997, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_519c3359647c43878ba29a7e8abec16f", + "value": 997 + } + }, + "b10a1756c23b401ca0eeb7fc10d644ae": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c2f622744a7b4e9e93eea9d685587d1a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c934d6be788844e6a957c2cba8d208d0": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "cbb30e2efa2b43189dc50c6c9aebb349": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "e1607d7715e04820885029cdf3a74c6f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_5a37456cfd97490b82dc40007c2e2df1", + "placeholder": "​", + "style": "IPY_MODEL_4a54ee19a6434221b42e0604706c3e98", + "value": "100%" + } + }, + "fb6ab01e37634a9abeec2b179da03960": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_e1607d7715e04820885029cdf3a74c6f", + "IPY_MODEL_2fdc799239424e849ffee921e6ee603f", + "IPY_MODEL_6092009309584cdf9c993516020fd83d" + ], + "layout": "IPY_MODEL_5f77d52aa8c24e999f128edf4bba9ba1" + } + }, + "fbfb39403f6f4801b4de05be06af1c45": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/chapter5/colab/LDA_collaboration.ipynb b/chapter5/colab/LDA_collaboration.ipynb index bb8364a..72d5f03 100644 --- a/chapter5/colab/LDA_collaboration.ipynb +++ b/chapter5/colab/LDA_collaboration.ipynb @@ -1 +1,2094 @@ -{"cells":[{"cell_type":"markdown","id":"d45967ea","metadata":{"id":"d45967ea"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/LDA_collaboration.ipynb)"]},{"cell_type":"markdown","id":"942a9897","metadata":{"id":"942a9897"},"source":["# Latent Dirichlet Allocation (LDA)를 행동 데이터에 적용"]},{"cell_type":"code","execution_count":1,"id":"b8cb8f0b","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"b8cb8f0b","executionInfo":{"status":"ok","timestamp":1672118267114,"user_tz":-540,"elapsed":4818,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"ca848f2f-0377-4da9-e770-5b4f7e92d5b6"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:15:58-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 63.6MB/s in 1.0s \n","\n","2022-12-27 05:15:59 (63.6 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"6769fb75","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"6769fb75","executionInfo":{"status":"ok","timestamp":1672118333071,"user_tz":-540,"elapsed":65965,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"5ab1c72d-1ab3-46bb-ce4e-9463a2c6e6a2"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"f650f9d6","metadata":{"id":"f650f9d6","executionInfo":{"status":"ok","timestamp":1672118333072,"user_tz":-540,"elapsed":31,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 인자 수\n","factors = 50\n","# 에폭 수\n","n_epochs = 30"]},{"cell_type":"code","execution_count":4,"id":"f703bf73","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"f703bf73","executionInfo":{"status":"ok","timestamp":1672118340381,"user_tz":-540,"elapsed":7337,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"47c9ad1a-7786-4285-ecbb-b86ca5cf30de"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting gensim==4.0.1\n"," Downloading gensim-4.0.1-cp38-cp38-manylinux1_x86_64.whl (23.9 MB)\n","\u001b[K |████████████████████████████████| 23.9 MB 1.6 MB/s \n","\u001b[?25hRequirement already satisfied: numpy>=1.11.3 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.21.6)\n","Requirement already satisfied: scipy>=0.18.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.7.3)\n","Requirement already satisfied: smart-open>=1.8.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (6.3.0)\n","Installing collected packages: gensim\n"," Attempting uninstall: gensim\n"," Found existing installation: gensim 3.6.0\n"," Uninstalling gensim-3.6.0:\n"," Successfully uninstalled gensim-3.6.0\n","Successfully installed gensim-4.0.1\n"]}],"source":["!pip install gensim==4.0.1"]},{"cell_type":"code","execution_count":5,"id":"d5348432","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"d5348432","executionInfo":{"status":"ok","timestamp":1672118342033,"user_tz":-540,"elapsed":1656,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"3c8d0dc9-8126-4750-d870-08019b81e513"},"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.8/dist-packages/gensim/similarities/__init__.py:15: UserWarning: The gensim.similarities.levenshtein submodule is disabled, because the optional Levenshtein package is unavailable. Install Levenhstein (e.g. `pip install python-Levenshtein`) to suppress this warning.\n"," warnings.warn(msg)\n"]}],"source":["from gensim.corpora.dictionary import Dictionary\n","\n","# LDA 입력으로 사용할 데이터를 작성한다\n","lda_data = []\n","movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n","for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n"," lda_data.append(data[\"movie_id\"].apply(str).tolist())\n","\n","common_dictionary = Dictionary(lda_data)\n","common_corpus = [common_dictionary.doc2bow(text) for text in lda_data]\n"]},{"cell_type":"code","execution_count":6,"id":"d0f0e231","metadata":{"id":"d0f0e231","executionInfo":{"status":"ok","timestamp":1672118435326,"user_tz":-540,"elapsed":93308,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["import gensim\n","lda_model = gensim.models.LdaModel(\n"," common_corpus, id2word=common_dictionary, num_topics=factors, passes=n_epochs\n",")"]},{"cell_type":"code","execution_count":7,"id":"d568841a","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"d568841a","executionInfo":{"status":"ok","timestamp":1672118435327,"user_tz":-540,"elapsed":41,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"cfc9c430-1bea-4f52-d193-73e15a1ac543"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[(2, 0.13143347), (42, 0.81523174)]"]},"metadata":{},"execution_count":7}],"source":["# 각 사용자의 소속 토픽이 저장된다\n","lda_topics = lda_model[common_corpus]\n","\n","# 예: 어떤 사용자의 소속 토픽\n","lda_topics[0]"]},{"cell_type":"code","execution_count":8,"id":"aa768039","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"aa768039","executionInfo":{"status":"ok","timestamp":1672118435327,"user_tz":-540,"elapsed":33,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"00099179-91eb-4fd9-80b6-33b281b38e6c"},"outputs":[{"output_type":"stream","name":"stdout","text":["movie_id=2858, title=American Beauty (1999), score=0.014902905561029911\n","movie_id=4022, title=Cast Away (2000), score=0.013141673058271408\n","movie_id=356, title=Forrest Gump (1994), score=0.009344562888145447\n","movie_id=1625, title=Game, The (1997), score=0.009039949625730515\n","movie_id=3408, title=Erin Brockovich (2000), score=0.008023954927921295\n","movie_id=1610, title=Hunt for Red October, The (1990), score=0.007280151825398207\n","movie_id=2762, title=Sixth Sense, The (1999), score=0.007244058884680271\n","movie_id=1833, title=Mercury Rising (1998), score=0.007027590647339821\n","movie_id=50, title=Usual Suspects, The (1995), score=0.00636146729812026\n","movie_id=2706, title=American Pie (1999), score=0.006130032241344452\n"]}],"source":["# topic0인 영화 목록\n","for token_id, score in lda_model.get_topic_terms(0, topn=10):\n"," movie_id = int(common_dictionary.id2token[token_id])\n"," title = movies[movies.movie_id == movie_id].title.tolist()[0]\n"," print(f'movie_id={movie_id}, title={title}, score={score}')"]},{"cell_type":"code","execution_count":9,"id":"9eb2910f","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9eb2910f","executionInfo":{"status":"ok","timestamp":1672118435328,"user_tz":-540,"elapsed":29,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"5ecbcb33-daaa-422c-a155-abdcc16844d3"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[(0, 0.010000083),\n"," (1, 0.010000083),\n"," (2, 0.010000083),\n"," (3, 0.010000083),\n"," (4, 0.010000083),\n"," (5, 0.010000083),\n"," (6, 0.010000083),\n"," (7, 0.010000083),\n"," (8, 0.010000083),\n"," (9, 0.010000083),\n"," (10, 0.010000083),\n"," (11, 0.010000083),\n"," (12, 0.010000083),\n"," (13, 0.010000083),\n"," (14, 0.010000083),\n"," (15, 0.010000083),\n"," (16, 0.010000083),\n"," (17, 0.010000083),\n"," (18, 0.010000083),\n"," (19, 0.010000083),\n"," (20, 0.010000083),\n"," (21, 0.010000083),\n"," (22, 0.010000083),\n"," (23, 0.010000083),\n"," (24, 0.010000083),\n"," (25, 0.010000083),\n"," (26, 0.010000083),\n"," (27, 0.010000083),\n"," (28, 0.010000083),\n"," (29, 0.010000083),\n"," (30, 0.010000083),\n"," (31, 0.010000083),\n"," (32, 0.010000083),\n"," (33, 0.010000083),\n"," (34, 0.010000083),\n"," (35, 0.010000083),\n"," (36, 0.010000083),\n"," (37, 0.010000083),\n"," (38, 0.010000083),\n"," (39, 0.010000083),\n"," (40, 0.010000083),\n"," (41, 0.50999594),\n"," (42, 0.010000083),\n"," (43, 0.010000083),\n"," (44, 0.010000083),\n"," (45, 0.010000083),\n"," (46, 0.010000083),\n"," (47, 0.010000083),\n"," (48, 0.010000083),\n"," (49, 0.010000083)]"]},"metadata":{},"execution_count":9}],"source":["# 스타워즈/에피소드 5(movie_id=1196)의 토픽(각 토픽에 소속될 확률)\n","lda_model[common_dictionary.doc2bow([\"1196\"])]"]},{"cell_type":"code","execution_count":10,"id":"8de0ac42","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"8de0ac42","executionInfo":{"status":"ok","timestamp":1672118441267,"user_tz":-540,"elapsed":5964,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"325da666-9b8b-43b7-ce14-dc81474631fd"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {1: [457, 380, 593, 150, 349, 590, 318, 165, 110, 296],\n"," 2: [457, 380, 593, 150, 480, 349, 589, 318, 165, 588],\n"," 3: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 356, 2762, 2273],\n"," 4: [457, 593, 318, 296, 356, 10, 47, 50, 1, 474],\n"," 5: [1193, 904, 1252, 750, 1208, 908, 913, 1136, 260, 1304],\n"," 6: [1240, 1210, 589, 1200, 1214, 541, 593, 1374, 1356, 1617],\n"," 7: [1193, 858, 750, 1208, 527, 111, 1247, 1221, 1136, 1206],\n"," 8: [3481, 4034, 4973, 1258, 2692, 7361, 2502, 5902, 296, 4262],\n"," 9: [260, 1196, 1240, 1210, 589, 1200, 2571, 1198, 1214, 541],\n"," 10: [1465, 3082, 1610, 474, 2804, 4709, 3469, 2197, 1792, 2989],\n"," 11: [1307, 1197, 1079, 1234, 1278, 1220, 2797, 1968, 1259, 2791],\n"," 12: [720, 1265, 852, 2891, 3254, 4448, 4002, 608, 4223, 4963],\n"," 13: [2571, 4963, 3147, 5349, 6539, 356, 2762, 2273, 6377, 4701],\n"," 14: [2571, 4993, 4963, 3147, 3578, 1580, 356, 2762, 2273, 4701],\n"," 16: [589, 2571, 1198, 2028, 593, 1374, 1356, 1617, 1291, 858],\n"," 17: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 6539, 356, 2762],\n"," 18: [5952, 4993, 7153, 4226, 50, 858, 2329, 1200, 6874, 4886],\n"," 19: [1028, 2797, 2406, 1968, 2791, 2100, 3039, 1784, 1663, 2918],\n"," 22: [457, 590, 318, 10, 434, 1, 474, 204, 442, 733],\n"," 23: [597, 150, 356, 587, 34, 508, 357, 11, 440, 590],\n"," 24: [141, 36, 95, 25, 653, 1393, 58, 52, 14, 783],\n"," 26: [593, 480, 318, 296, 356, 595, 364, 253, 231, 50],\n"," 27: [1, 260, 62, 141, 832, 36, 25, 6, 17, 104],\n"," 28: [1307, 1079, 1234, 1220, 1028, 2797, 1259, 2791, 1380, 914],\n"," 29: [2572, 2683, 2762, 2605, 2706, 2581, 3081, 1210, 1777, 2485],\n"," 30: [587, 508, 457, 350, 236, 474, 497, 39, 349, 21],\n"," 33: [260, 733, 494, 832, 25, 802, 104, 805, 653, 1210],\n"," 34: [2572, 3081, 2716, 2396, 1586, 2336, 2858, 1580, 2353, 2541],\n"," 35: [5952, 296, 7153, 3578, 318, 356, 593, 260, 1036, 1198],\n"," 36: [2901, 3005, 2320, 1620, 2997, 3708, 1608, 1258, 1298, 4661],\n"," 37: [1196, 2858, 2762, 356, 260, 1198, 858, 2329, 527, 1270],\n"," 38: [6539, 2273, 4701, 3793, 4886, 780, 4306, 3977, 2028, 3052],\n"," 40: [904, 541, 858, 1252, 923, 912, 750, 1208, 903, 908],\n"," 41: [1234, 1278, 1097, 2791, 1136, 1394, 1663, 1297, 1304, 342],\n"," 42: [150, 356, 587, 34, 508, 593, 339, 11, 440, 457],\n"," 43: [150, 508, 593, 357, 457, 527, 377, 590, 110, 364],\n"," 44: [110, 1968, 2718, 5563, 6281, 5400, 4447, 5418, 2114, 2607],\n"," 45: [5952, 2959, 296, 4993, 7153, 3578, 318, 1210, 4226, 4306],\n"," 46: [2571, 5952, 2959, 296, 4993, 1196, 3578, 318, 1210, 4226],\n"," 47: [356, 47, 527, 1704, 480, 1222, 4886, 1089, 1213, 6377],\n"," 48: [356, 2355, 1265, 2567, 1136, 1215, 1196, 1220, 1060, 1343],\n"," 50: [349, 161, 316, 292, 434, 329, 47, 50, 1, 474],\n"," 51: [3468, 3983, 1084, 694, 4234, 3456, 762, 1250, 1964, 2677],\n"," 52: [541, 858, 923, 912, 608, 750, 903, 908, 527, 111],\n"," 53: [1097, 1193, 356, 919, 3545, 2971, 32, 5504, 1968, 8917],\n"," 54: [595, 153, 253, 1, 527, 32, 204, 442, 225, 208],\n"," 55: [904, 541, 858, 1252, 923, 912, 608, 750, 1208, 903],\n"," 56: [5072, 2905, 1554, 34542, 4144, 4422, 7044, 4085, 1132, 3552],\n"," 57: [466, 543, 520, 2717, 2735, 1982, 5254, 2953, 2002, 2402],\n"," 58: [608, 858, 1094, 2194, 3104, 2289, 457, 1954, 1674, 1299],\n"," 59: [380, 480, 589, 110, 588, 161, 356, 10, 377, 292],\n"," 60: [904, 912, 750, 903, 908, 111, 913, 1207, 1206, 924],\n"," 61: [1307, 2997, 3148, 2804, 2918, 1259, 778, 1704, 1220, 2028],\n"," 62: [457, 480, 589, 110, 356, 377, 364, 47, 50, 1],\n"," 63: [541, 1252, 923, 608, 750, 1208, 903, 908, 111, 913],\n"," 64: [62, 141, 648, 95, 25, 17, 104, 1210, 112, 1356],\n"," 65: [1358, 2028, 2324, 608, 858, 1617, 593, 1094, 2762, 2194],\n"," 66: [55820, 1234, 858, 5147, 923, 4873, 44195, 33880, 111, 4973],\n"," 67: [150, 480, 589, 356, 377, 1, 500, 474, 527, 32],\n"," 68: [858, 912, 750, 527, 111, 1221, 1136, 1304, 910, 1213],\n"," 69: [904, 541, 858, 1252, 923, 608, 750, 1208, 903, 111],\n"," 70: [923, 608, 1208, 903, 111, 1247, 1136, 260, 1206, 1219],\n"," 71: [457, 593, 480, 589, 590, 318, 110, 588, 161, 356],\n"," 72: [150, 589, 318, 110, 296, 161, 316, 377, 592, 364],\n"," 73: [1358, 1704, 590, 2324, 1961, 1617, 1242, 2289, 2243, 36],\n"," 74: [371, 318, 544, 68, 514, 270, 71, 1302, 248, 440],\n"," 75: [2571, 5952, 2959, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n"," 76: [588, 356, 364, 253, 50, 500, 527, 454, 32, 288],\n"," 77: [150, 318, 110, 161, 329, 50, 500, 474, 32, 34],\n"," 78: [4993, 2329, 5952, 5349, 293, 4886, 4878, 4011, 47, 8636],\n"," 79: [527, 111, 353, 112, 232, 307, 290, 6, 306, 16],\n"," 80: [480, 589, 590, 588, 356, 595, 10, 377, 592, 292],\n"," 81: [1307, 1197, 1079, 1234, 1278, 1220, 1270, 1028, 2797, 1097],\n"," 82: [2959, 1196, 7153, 3578, 318, 1210, 2858, 2762, 356, 2028],\n"," 83: [904, 1252, 1208, 903, 527, 111, 1247, 1206, 1267, 1230],\n"," 84: [1073, 832, 6, 802, 104, 805, 653, 1210, 112, 1356],\n"," 85: [2901, 1732, 1573, 2976, 1617, 2959, 1552, 1917, 3753, 3005],\n"," 86: [260, 541, 32, 593, 1617, 924, 1199, 296, 608, 50],\n"," 87: [2706, 1777, 2485, 2125, 2571, 2394, 1586, 2355, 780, 2424],\n"," 88: [3147, 4246, 4896, 3753, 4306, 4995, 6378, 1704, 2028, 2763],\n"," 89: [457, 593, 480, 349, 589, 590, 356, 595, 316, 10],\n"," 90: [95, 25, 17, 1210, 112, 1356, 1393, 58, 7, 52],\n"," 91: [858, 1252, 908, 111, 1221, 1304, 1225, 910, 1213, 593],\n"," 92: [2959, 296, 4306, 593, 50, 858, 2329, 1214, 1200, 3996],\n"," 93: [5464, 610, 2987, 1089, 5679, 7445, 2140, 1968, 1172, 7254],\n"," 94: [597, 34, 357, 339, 11, 364, 17, 282, 236, 497],\n"," 95: [457, 364, 47, 50, 474, 527, 34, 204, 442, 225],\n"," 96: [1704, 2324, 318, 1094, 2289, 2243, 36, 1641, 1299, 2355],\n"," 97: [446, 317, 500, 2141, 2046, 3409, 92, 708, 919, 2803],\n"," 98: [733, 62, 736, 141, 1073, 32, 494, 832, 95, 17],\n"," 99: [904, 1252, 923, 912, 608, 1208, 903, 908, 913, 1247],\n"," 100: [2959, 4993, 7153, 3578, 4226, 2762, 4306, 1036, 2329, 1214],\n"," 101: [10, 527, 288, 442, 21, 733, 586, 786, 420, 6],\n"," 102: [380, 593, 349, 589, 590, 165, 110, 595, 377, 364],\n"," 103: [1193, 904, 858, 1252, 912, 903, 908, 913, 1221, 1207],\n"," 104: [1358, 1704, 2028, 590, 608, 2396, 1094, 2762, 2194, 3104],\n"," 105: [1240, 589, 1200, 2571, 541, 2028, 593, 1374, 1356, 1617],\n"," 106: [2997, 2683, 858, 1252, 1230, 1221, 1213, 2810, 52, 2706],\n"," 107: [1198, 1214, 593, 1291, 1610, 1036, 2916, 296, 608, 457],\n"," 108: [3468, 1683, 4034, 5013, 3022, 3983, 4226, 2858, 919, 1617],\n"," 110: [150, 349, 165, 110, 588, 296, 161, 595, 316, 10],\n"," 111: [589, 590, 595, 377, 364, 329, 47, 231, 50, 1],\n"," 112: [1148, 1617, 2858, 1952, 1284, 2396, 2395, 720, 1953, 3435],\n"," 113: [2572, 2683, 2706, 3081, 1210, 1777, 2125, 3578, 2571, 2394],\n"," 114: [3949, 55820, 1213, 1222, 7361, 5147, 6874, 2858, 2959, 923],\n"," 115: [2571, 5952, 2959, 4993, 1196, 7153, 1210, 4226, 2028, 4306],\n"," 116: [508, 457, 527, 17, 474, 497, 39, 266, 261, 509],\n"," 117: [1307, 1079, 1234, 1278, 1220, 1270, 1028, 2797, 1097, 1259],\n"," 118: [588, 595, 364, 1, 500, 34, 339, 733, 367, 586],\n"," 119: [50, 36, 527, 32, 608, 246, 300, 112, 232, 150],\n"," 120: [733, 608, 141, 32, 648, 494, 832, 36, 25, 6],\n"," 121: [260, 1206, 1225, 1212, 1234, 1148, 2019, 1276, 1214, 1254],\n"," 122: [1028, 914, 2100, 342, 1580, 1282, 2407, 1777, 902, 2081],\n"," 123: [370, 318, 1380, 1207, 3053, 188, 2599, 1203, 432, 2081],\n"," 124: [4226, 2959, 3481, 2858, 2542, 2997, 4034, 4973, 2329, 1258],\n"," 125: [2329, 7361, 4878, 778, 8636, 4262, 1748, 2395, 8874, 8464],\n"," 126: [1080, 4973, 4878, 7361, 750, 778, 3949, 1206, 1274, 5618],\n"," 127: [539, 597, 150, 356, 587, 34, 508, 593, 357, 339],\n"," 128: [508, 440, 377, 364, 236, 474, 588, 454, 62, 39],\n"," 129: [1625, 3408, 1610, 1833, 50, 1249, 593, 3101, 1552, 479],\n"," 130: [904, 923, 912, 750, 903, 908, 111, 913, 1247, 1221],\n"," 131: [318, 32, 608, 293, 111, 555, 337, 300, 232, 307],\n"," 132: [150, 480, 589, 110, 588, 161, 10, 377, 292, 364],\n"," 134: [260, 733, 608, 494, 832, 36, 25, 17, 802, 104],\n"," 135: [2571, 2028, 1617, 1610, 2916, 1199, 608, 50, 1676, 318],\n"," 136: [541, 750, 903, 908, 527, 111, 913, 1247, 1221, 260],\n"," 137: [3147, 6539, 356, 2273, 6377, 4246, 2353, 4896, 4886, 5299],\n"," 138: [1291, 858, 527, 3996, 1270, 480, 4886, 1, 1213, 1221],\n"," 139: [4226, 4027, 6711, 2542, 2997, 4993, 4034, 4973, 5952, 1732],\n"," 140: [2571, 5952, 2959, 296, 4993, 1196, 3578, 1210, 2762, 356],\n"," 141: [539, 597, 150, 587, 34, 508, 339, 11, 440, 110],\n"," 142: [296, 50, 318, 223, 527, 293, 47, 246, 555, 337],\n"," 143: [4027, 6711, 2692, 7361, 293, 8636, 6502, 5902, 541, 50],\n"," 144: [2502, 4886, 4979, 3897, 923, 1921, 3911, 1246, 2761, 1784],\n"," 145: [380, 480, 349, 589, 318, 165, 110, 161, 595, 316],\n"," 148: [2571, 1198, 2028, 593, 1356, 1617, 924, 1291, 858, 1610],\n"," 149: [4226, 3481, 4027, 6711, 2542, 4034, 4973, 2329, 1258, 2692],\n"," 150: [296, 50, 318, 36, 25, 223, 32, 593, 608, 293],\n"," 151: [356, 1271, 5418, 2797, 1307, 1721, 2858, 4995, 1246, 3083],\n"," 152: [1704, 590, 2324, 608, 1242, 1094, 3104, 2289, 2243, 1954],\n"," 153: [2571, 5952, 4993, 1196, 7153, 3578, 318, 1210, 4226, 2858],\n"," 154: [5952, 4993, 7153, 3578, 318, 4226, 2858, 2028, 4306, 858],\n"," 155: [7153, 4226, 1291, 527, 1200, 6874, 6539, 1222, 4886, 6377],\n"," 156: [1, 260, 733, 494, 832, 36, 95, 17, 802, 805],\n"," 157: [608, 62, 141, 25, 6, 17, 1210, 112, 1356, 58],\n"," 158: [539, 597, 150, 356, 587, 508, 357, 339, 11, 527],\n"," 159: [2140, 2959, 7254, 2143, 1006, 1354, 1967, 3020, 2161, 2683],\n"," 160: [466, 104, 543, 88, 520, 2717, 743, 1982, 724, 1562],\n"," 161: [356, 2028, 4306, 1036, 858, 2329, 1704, 480, 32, 1222],\n"," 162: [318, 4226, 593, 1036, 50, 1291, 2329, 1200, 1704, 1270],\n"," 163: [318, 608, 293, 555, 337, 353, 300, 112, 232, 307],\n"," 164: [110, 161, 364, 329, 253, 50, 1, 34, 185, 204],\n"," 165: [1584,\n"," 431,\n"," 4308,\n"," 45186,\n"," 53322,\n"," 214,\n"," 1213,\n"," 49530,\n"," 306,\n"," 31696],\n"," 166: [589, 2571, 1198, 541, 32, 2028, 1374, 1356, 1617, 1291],\n"," 167: [260, 733, 1073, 494, 832, 17, 802, 805, 1210, 1356],\n"," 168: [19, 2028, 1784, 1004, 274, 1092, 575, 1610, 2403, 3578],\n"," 169: [1625, 3408, 1610, 2762, 1833, 50, 1249, 593, 3101, 1552],\n"," 170: [5952, 4993, 1196, 7153, 3578, 1210, 2028, 593, 589, 260],\n"," 171: [2571, 5952, 4993, 1196, 7153, 3578, 1210, 4226, 4306, 593],\n"," 172: [380, 593, 349, 590, 318, 296, 161, 356, 595, 316],\n"," 173: [110, 17, 282, 497, 39, 266, 261, 509, 224, 367],\n"," 174: [342, 261, 372, 537, 531, 147, 427, 481, 45, 452],\n"," 175: [908, 1247, 1207, 1304, 1267, 1230, 910, 1148, 1276, 1254],\n"," 176: [480, 349, 589, 318, 110, 588, 296, 356, 595, 10],\n"," 177: [260, 733, 832, 17, 802, 104, 805, 653, 1210, 1356],\n"," 178: [1265, 2567, 1215, 1060, 1343, 2571, 368, 2001, 1500, 2000],\n"," 179: [4226, 2959, 3481, 6711, 2858, 2997, 4034, 4973, 2329, 5952],\n"," 180: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210],\n"," 182: [457, 1674, 260, 1610, 1584, 1198, 1210, 2871, 1036, 1200],\n"," 183: [2324, 608, 1961, 858, 1617, 1242, 2762, 2194, 3104, 2289],\n"," 184: [1466, 1673, 25, 1120, 290, 1912, 1041, 3125, 2718, 5563],\n"," 185: [1230, 912, 527, 3244, 3707, 260, 1233, 2918, 1240, 1358],\n"," 186: [1193, 858, 923, 912, 750, 1208, 908, 527, 913, 1247],\n"," 187: [2571, 5952, 2959, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n"," 188: [318, 165, 588, 161, 595, 10, 377, 292, 364, 47],\n"," 189: [141, 1073, 648, 832, 95, 25, 802, 104, 653, 1210],\n"," 190: [4226, 3481, 4027, 6711, 2858, 2542, 2997, 4034, 4973, 2329],\n"," 191: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 318],\n"," 192: [1234, 5147, 4873, 33880, 1080, 555, 16, 1, 2585, 55805],\n"," 193: [364, 17, 62, 595, 141, 261, 509, 277, 224, 105],\n"," 194: [733, 608, 494, 36, 6, 805, 653, 112, 3, 58],\n"," 195: [1683, 694, 762, 40583, 3730, 1964, 3006, 3363, 2973, 667],\n"," 196: [2863, 2804, 2160, 1256, 346, 2363, 2186, 2273, 861, 1278],\n"," 197: [2683,\n"," 2268,\n"," 648,\n"," 1213,\n"," 2810,\n"," 3000,\n"," 2598,\n"," 8157,\n"," 56286,\n"," 55814],\n"," 198: [3481, 2542, 2997, 4034, 4973, 4011, 778, 4848, 1219, 5618],\n"," 199: [480, 349, 589, 318, 110, 161, 356, 10, 364, 47],\n"," 200: [1, 608, 494, 832, 95, 25, 6, 805, 653, 1210],\n"," 201: [1961, 318, 1242, 2762, 2194, 3104, 2289, 2243, 1954, 1962],\n"," 202: [3578, 2959, 2858, 2707, 589, 2571, 4993, 3157, 1176, 4022],\n"," 203: [2355, 2567, 1968, 2571, 2001, 2396, 2406, 2000, 2706, 1367],\n"," 204: [1073, 832, 36, 802, 104, 805, 653, 1210, 112, 1356],\n"," 205: [904, 923, 750, 903, 527, 1247, 1207, 1219, 1304, 1267],\n"," 206: [1358, 1704, 590, 2324, 1961, 858, 318, 2396, 1242, 1094],\n"," 207: [356, 587, 357, 339, 11, 457, 110, 17, 350, 236],\n"," 208: [457, 593, 480, 589, 590, 356, 595, 377, 292, 364],\n"," 209: [539, 597, 587, 357, 339, 11, 440, 527, 590, 110],\n"," 210: [5952, 2959, 1196, 356, 2028, 260, 1036, 1198, 47, 50],\n"," 211: [1193, 541, 923, 750, 1208, 527, 913, 1247, 1136, 1207],\n"," 212: [1203,\n"," 4406,\n"," 5072,\n"," 7116,\n"," 3310,\n"," 1253,\n"," 39292,\n"," 2726,\n"," 7132,\n"," 3730],\n"," 213: [4993, 3578, 5349, 1580, 6539, 356, 6377, 4701, 3793, 4246],\n"," 214: [1234, 1278, 919, 1394, 1663, 1304, 1246, 2109, 1035, 1081],\n"," 215: [6711, 2329, 6502, 5669, 5377, 4308, 1246, 3471, 3421, 5679],\n"," 216: [3147, 3578, 6539, 356, 6377, 4701, 4025, 2353, 3753, 4995],\n"," 217: [356, 34, 508, 357, 527, 377, 110, 364, 318, 500],\n"," 218: [1265, 852, 3624, 3254, 4448, 3578, 4002, 608, 3745, 4223],\n"," 219: [1079, 1220, 2797, 2406, 1968, 1259, 2791, 1285, 1136, 1101],\n"," 220: [904, 912, 1219, 913, 1193, 928, 903, 1198, 920, 1207],\n"," 221: [2959, 4993, 7153, 3578, 4226, 2762, 4306, 1291, 2329, 1214],\n"," 222: [1210, 97, 2858, 714, 2571, 1094, 1147, 1304, 924, 1090],\n"," 223: [324, 534, 2359, 2858, 2336, 1183, 1252, 2997, 532, 1564],\n"," 224: [260, 733, 832, 802, 805, 653, 1210, 1356, 1393, 58],\n"," 225: [912, 1219, 1193, 928, 1198, 920, 1207, 1258, 4784, 953],\n"," 226: [2959, 6711, 2858, 2997, 4034, 4973, 1258, 1732, 2692, 7361],\n"," 227: [1702, 158, 1713, 239, 256, 2142, 2083, 2089, 1196, 1373],\n"," 228: [590, 588, 296, 161, 592, 47, 153, 50, 1, 474],\n"," 229: [62, 494, 832, 36, 95, 6, 17, 802, 104, 653],\n"," 230: [1193, 904, 858, 903, 908, 111, 1207, 1206, 1225, 924],\n"," 231: [6985, 7234, 7072, 3742, 1209, 1260, 3307, 1348, 8125, 6666],\n"," 232: [2571, 2028, 1374, 1356, 1617, 924, 1610, 2916, 1199, 1197],\n"," 234: [5952, 296, 4993, 1196, 7153, 3578, 318, 1210, 2762, 356],\n"," 235: [5952, 1196, 1210, 2762, 356, 2028, 4306, 589, 110, 2329],\n"," 236: [316, 434, 329, 153, 253, 1, 32, 34, 733, 587],\n"," 237: [589, 541, 32, 2028, 1356, 924, 858, 1610, 1036, 2916],\n"," 238: [410, 193, 324, 534, 2359, 1183, 1252, 532, 1564, 3112],\n"," 239: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 6539, 2762, 2273],\n"," 241: [4027, 2054, 318, 2858, 1019, 1380, 2761, 1193, 1207, 912],\n"," 242: [608, 1073, 832, 36, 1210, 1393, 3, 58, 7, 52],\n"," 243: [1721, 3148, 1617, 1961, 778, 1704, 1183, 4350, 15, 62],\n"," 244: [923, 903, 908, 111, 1221, 1207, 260, 1206, 1219, 1213],\n"," 245: [3949,\n"," 55820,\n"," 1213,\n"," 1222,\n"," 7361,\n"," 1234,\n"," 5147,\n"," 6874,\n"," 2858,\n"," 2959],\n"," 246: [4226, 2959, 4027, 6711, 2542, 2997, 4993, 4034, 4973, 5952],\n"," 247: [349, 318, 110, 50, 1, 474, 527, 32, 185, 204],\n"," 248: [3578, 2959, 2858, 527, 2707, 589, 2571, 4993, 3157, 1176],\n"," 249: [3481, 2858, 2997, 4973, 1732, 2692, 3996, 3052, 778, 8636],\n"," 250: [296, 50, 36, 25, 223, 527, 32, 593, 608, 293],\n"," 251: [2571, 2028, 1617, 924, 1610, 2916, 1199, 50, 1197, 1676],\n"," 252: [541, 858, 1252, 923, 750, 1208, 903, 111, 913, 1247],\n"," 253: [5952, 2959, 296, 4993, 1196, 7153, 318, 1210, 4226, 2762],\n"," 254: [4993, 7153, 4226, 1036, 1198, 110, 1291, 2329, 1704, 1270],\n"," 255: [457, 380, 480, 349, 589, 165, 110, 296, 595, 316],\n"," 256: [1197, 1079, 1234, 1278, 1220, 1270, 1028, 2797, 1097, 1968],\n"," 257: [5952, 2959, 296, 4993, 1196, 7153, 318, 1210, 4226, 2858],\n"," 258: [1358, 1704, 2324, 858, 318, 593, 2396, 1242, 1094, 2762],\n"," 259: [3481, 4027, 2542, 4034, 1732, 1089, 293, 4011, 223, 8636],\n"," 260: [2571, 2028, 1374, 1617, 1291, 1610, 2916, 1199, 50, 1197],\n"," 261: [527, 356, 2762, 1080, 919, 2028, 2858, 3534, 5504, 1968],\n"," 262: [2863, 2948, 2947, 1136, 2160, 2951, 1997, 1256, 5060, 346],\n"," 263: [7153, 356, 2028, 4306, 6874, 1222, 1089, 4011, 1527, 1580],\n"," 264: [150, 349, 590, 318, 161, 292, 364, 434, 329, 253],\n"," 265: [2572, 2683, 2762, 2605, 2706, 2581, 3081, 1210, 1777, 2485],\n"," 266: [97, 714, 1147, 924, 1090, 4002, 1238, 1235, 1288, 2064],\n"," 267: [3949, 1213, 4873, 44195, 33880, 3089, 56367, 555, 16, 4878],\n"," 268: [34, 508, 357, 11, 440, 17, 282, 236, 588, 497],\n"," 269: [260, 733, 608, 62, 32, 494, 832, 36, 6, 17],\n"," 270: [1, 608, 62, 736, 832, 36, 95, 6, 802, 104],\n"," 271: [1200, 2571, 1198, 2028, 593, 1356, 1617, 1291, 858, 1610],\n"," 272: [6711, 2542, 4973, 1732, 2692, 1206, 32, 1089, 2571, 3052],\n"," 273: [2959, 296, 1196, 4226, 2762, 356, 4306, 1198, 47, 1291],\n"," 274: [1968, 1285, 1101, 1297, 2396, 342, 1198, 440, 1291, 1777],\n"," 275: [2324, 858, 1242, 2194, 3104, 2243, 36, 260, 527, 1271],\n"," 276: [4027, 3052, 4262, 5618, 2918, 5377, 8464, 5995, 6539, 1246],\n"," 277: [2571, 2959, 1196, 3578, 318, 1210, 4226, 2858, 2028, 4306],\n"," 278: [356, 296, 1271, 5418, 2797, 1307, 1721, 318, 2858, 4995],\n"," 279: [4226, 3481, 6711, 2858, 4993, 4034, 4973, 2329, 1732, 1206],\n"," 280: [2959, 296, 1196, 3578, 318, 1210, 4226, 2762, 593, 589],\n"," 281: [253, 1, 733, 196, 48, 111, 160, 555, 198, 1092],\n"," 282: [141, 832, 6, 104, 1210, 1356, 1393, 58, 52, 788],\n"," 285: [1196, 1240, 589, 1200, 2571, 1198, 1214, 541, 32, 2028],\n"," 286: [32, 1356, 1617, 924, 858, 1610, 1199, 296, 608, 1197],\n"," 287: [593, 349, 589, 318, 165, 296, 161, 10, 377, 292],\n"," 288: [1193, 541, 858, 1252, 923, 912, 608, 750, 1208, 527],\n"," 289: [2406, 1380, 1285, 1297, 1282, 2371, 1198, 1291, 2081, 1073],\n"," 290: [239, 256, 2142, 1373, 1036, 4799, 1206, 107, 1348, 146],\n"," 291: [4027, 2054, 370, 318, 2858, 1380, 2761, 3053, 912, 188],\n"," 292: [3481, 2542, 293, 778, 4262, 1748, 4848, 923, 1921, 1219],\n"," 293: [380, 480, 589, 110, 356, 377, 292, 364, 47, 50],\n"," 294: [593, 480, 589, 590, 10, 329, 1, 500, 527, 34],\n"," 295: [1259, 914, 1285, 1101, 1297, 342, 440, 2174, 902, 2081],\n"," 296: [3481, 1258, 3996, 8636, 4979, 1748, 2395, 1219, 5618, 8874],\n"," 297: [733, 736, 494, 832, 95, 6, 802, 653, 3, 58],\n"," 298: [2567, 1136, 1215, 1196, 1220, 1060, 1968, 2571, 368, 2001],\n"," 300: [2324, 593, 2396, 3104, 457, 2243, 36, 1962, 1674, 34],\n"," 301: [1193, 904, 903, 908, 111, 913, 1207, 1206, 1219, 1304],\n"," 302: [2572, 2485, 2716, 2125, 2355, 2710, 2336, 2006, 2700, 1597],\n"," 303: [1036, 50, 2329, 1704, 1270, 6539, 1089, 1, 6377, 4963],\n"," 304: [1358, 1704, 2028, 590, 2324, 608, 858, 1617, 318, 593],\n"," 305: [34, 339, 11, 440, 364, 318, 350, 474, 454, 595],\n"," 306: [1721, 2997, 3148, 1617, 608, 778, 2028, 1221, 1183, 858],\n"," 307: [4226, 2959, 3481, 4027, 6711, 2858, 2542, 2997, 4993, 4034],\n"," 308: [539, 597, 150, 356, 587, 508, 593, 357, 339, 11],\n"," 309: [733, 608, 1073, 32, 494, 832, 36, 6, 104, 653],\n"," 310: [1242, 2289, 2243, 2355, 1271, 1090, 1095, 3114, 2916, 2890],\n"," 311: [457, 593, 589, 318, 110, 296, 161, 10, 377, 292],\n"," 312: [1617, 1219, 1193, 903, 1198, 920, 1207, 1258, 4784, 953],\n"," 313: [965, 2186, 1617, 2858, 2935, 931, 1066, 2324, 2208, 929],\n"," 314: [608, 1208, 913, 1206, 1230, 910, 1213, 924, 1212, 50],\n"," 315: [17, 236, 474, 497, 141, 266, 21, 509, 22, 277],\n"," 316: [608, 62, 648, 494, 832, 36, 6, 17, 805, 1210],\n"," 317: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 318, 593],\n"," 318: [4226, 2329, 2692, 32, 293, 4878, 223, 6502, 4262, 4848],\n"," 319: [786, 708, 362, 1028, 1029, 79, 1035, 1012, 1022, 661],\n"," 320: [318, 1198, 50, 1291, 858, 2329, 1200, 1704, 6874, 1222],\n"," 321: [150, 590, 318, 165, 110, 161, 10, 377, 434, 47],\n"," 322: [1197, 1079, 1234, 1278, 1220, 1028, 2797, 1097, 2406, 1968],\n"," 323: [2804, 2951, 1997, 1256, 346, 2363, 3508, 2273, 2571, 861],\n"," 324: [296, 1196, 318, 2858, 2762, 356, 2028, 4306, 593, 589],\n"," 325: [3394, 3861, 2447, 1268, 4571, 2622, 1248, 2248, 2021, 4896],\n"," 326: [34, 508, 339, 527, 318, 500, 282, 350, 62, 141],\n"," 327: [141, 832, 36, 6, 17, 104, 805, 653, 112, 3],\n"," 328: [1210, 1198, 2028, 593, 1356, 1617, 1291, 858, 1610, 1036],\n"," 329: [1466, 1673, 608, 25, 50, 296, 1120, 290, 1912, 1041],\n"," 330: [4226, 3481, 4027, 6711, 2997, 4034, 4973, 1258, 1732, 2692],\n"," 331: [5952, 296, 1196, 3578, 1210, 2762, 356, 2028, 4306, 593],\n"," 332: [589, 165, 10, 377, 329, 344, 500, 474, 527, 204],\n"," 333: [2997, 3148, 1617, 2804, 1961, 2918, 1259, 1220, 2028, 1221],\n"," 334: [1079, 1097, 2791, 914, 1285, 1101, 1265, 1394, 2918, 2396],\n"," 335: [1193, 541, 608, 1208, 903, 527, 111, 913, 1221, 1136],\n"," 336: [342, 261, 265, 372, 537, 247, 531, 147, 427, 318],\n"," 337: [1219, 2268, 648, 858, 1252, 2764, 1221, 2810, 3000, 924],\n"," 338: [2571, 2959, 4993, 1196, 7153, 3578, 1210, 4226, 2858, 2762],\n"," 339: [480, 589, 110, 588, 356, 595, 316, 10, 377, 292],\n"," 340: [1028, 2797, 2406, 1968, 2791, 1380, 1641, 2100, 3039, 1784],\n"," 341: [2028, 965, 2186, 919, 2935, 931, 1066, 2208, 929, 947],\n"," 342: [2396, 1699, 1704, 593, 1429, 3671, 923, 1148, 2791, 3897],\n"," 343: [318, 165, 296, 595, 377, 292, 364, 329, 47, 50],\n"," 344: [1200, 2571, 1214, 541, 2028, 593, 1374, 1356, 1617, 924],\n"," 345: [1307, 1079, 1220, 1259, 2791, 1380, 914, 1101, 1663, 342],\n"," 346: [3081, 1210, 2125, 2571, 2394, 1586, 2336, 780, 2424, 2006],\n"," 347: [4558, 7004, 3394, 2410, 3861, 3524, 2447, 2118, 4489, 1268],\n"," 348: [3481, 1732, 1206, 3052, 223, 5902, 2395, 5618, 5669, 2918],\n"," 349: [34, 357, 11, 440, 500, 350, 474, 497, 62, 39],\n"," 350: [427, 1059, 2245, 1131, 1132, 1658, 724, 2657, 2291, 327],\n"," 351: [541, 1252, 1206, 1219, 1267, 910, 1212, 1228, 2019, 1254],\n"," 352: [786, 708, 1210, 362, 1196, 1028, 1097, 260, 1029, 79],\n"," 353: [260, 1240, 1210, 1198, 1374, 1356, 1617, 924, 1291, 858],\n"," 354: [3147, 2273, 4701, 4025, 3793, 2353, 4896, 4886, 3753, 4018],\n"," 355: [380, 480, 589, 588, 161, 10, 377, 592, 292, 364],\n"," 356: [1, 62, 736, 141, 1073, 494, 802, 104, 805, 653],\n"," 357: [1197, 1270, 2797, 1097, 1259, 914, 919, 1641, 2100, 3039],\n"," 358: [5952, 2959, 4993, 7153, 3578, 4226, 2762, 2028, 1036, 1198],\n"," 359: [527, 2707, 589, 1176, 593, 2712, 16, 2700, 1046, 3623],\n"," 360: [260, 733, 608, 62, 1073, 494, 832, 6, 802, 104],\n"," 361: [1193, 904, 541, 923, 912, 750, 903, 908, 527, 111],\n"," 362: [296, 3578, 1210, 2858, 356, 2028, 4306, 589, 1036, 47],\n"," 363: [2571, 3578, 318, 1210, 4226, 2858, 2762, 356, 2028, 4306],\n"," 364: [480, 589, 356, 377, 364, 47, 500, 474, 527, 454],\n"," 365: [539, 440, 377, 318, 282, 350, 474, 588, 454, 62],\n"," 366: [1307, 1270, 1028, 2797, 1097, 1968, 1259, 2791, 1380, 914],\n"," 367: [1704, 590, 2324, 1961, 1617, 593, 2396, 2762, 3104, 2289],\n"," 368: [6711, 2858, 2542, 4034, 2329, 4878, 6502, 4262, 2762, 4848],\n"," 369: [480, 589, 110, 356, 377, 364, 47, 50, 1, 500],\n"," 370: [260, 733, 608, 32, 648, 494, 832, 36, 95, 25],\n"," 371: [2571, 5952, 2959, 7153, 3578, 318, 1210, 4226, 2858, 2762],\n"," 372: [296, 7153, 318, 4226, 2858, 356, 2028, 4306, 593, 260],\n"," 373: [4027, 2054, 370, 2858, 1019, 1380, 2761, 1193, 1207, 3053],\n"," 375: [1307, 1197, 1079, 1278, 1220, 1270, 1028, 1097, 2406, 1968],\n"," 376: [1196, 1198, 1374, 924, 1291, 858, 1610, 1036, 2916, 1199],\n"," 377: [2028, 608, 1961, 1617, 593, 1094, 2762, 2194, 3104, 2289],\n"," 378: [1240, 589, 1200, 2571, 1198, 1214, 541, 32, 2028, 593],\n"," 379: [5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n"," 380: [97, 2858, 714, 2571, 1094, 1147, 1304, 924, 1090, 4002],\n"," 381: [282, 236, 497, 141, 509, 224, 367, 265, 736, 230],\n"," 382: [457, 593, 150, 480, 589, 318, 110, 161, 356, 377],\n"," 383: [2959, 1210, 356, 4306, 1036, 110, 47, 1291, 2329, 527],\n"," 384: [380, 593, 349, 589, 296, 595, 316, 10, 434, 329],\n"," 385: [260, 733, 1073, 832, 36, 802, 805, 653, 1210, 1356],\n"," 386: [1094, 3104, 2289, 1225, 1641, 1299, 2355, 2336, 1207, 1090],\n"," 387: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 6539, 356, 2762],\n"," 388: [5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210, 2858],\n"," 389: [3481, 2542, 4973, 1258, 1732, 1206, 1089, 1214, 6502, 5902],\n"," 390: [1036, 47, 527, 1214, 1270, 32, 6539, 1222, 1089, 541],\n"," 391: [349, 161, 292, 434, 47, 231, 50, 474, 527, 454],\n"," 392: [161, 316, 329, 1, 500, 474, 185, 204, 442, 225],\n"," 393: [1, 25, 17, 802, 653, 1210, 112, 1356, 58, 7],\n"," 394: [648, 1230, 2764, 2810, 52, 2706, 16, 1080, 3000, 1234],\n"," 395: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 1210, 4226],\n"," 396: [5952, 296, 4993, 7153, 3578, 318, 4226, 2762, 356, 593],\n"," 397: [5952, 4993, 1196, 7153, 1210, 4306, 589, 260, 1036, 1198],\n"," 398: [508, 318, 17, 236, 474, 39, 161, 141, 21, 296],\n"," 399: [1210, 58, 7, 52, 14, 858, 783, 1183, 41, 140],\n"," 400: [965, 2186, 919, 2935, 931, 1066, 2208, 929, 1207, 947],\n"," 401: [1193, 904, 1252, 923, 912, 750, 1208, 903, 908, 111],\n"," 402: [720, 2858, 1265, 852, 2891, 3254, 4002, 608, 4223, 736],\n"," 403: [5952, 2959, 4993, 1196, 3578, 318, 1210, 2858, 2028, 4306],\n"," 404: [593, 595, 434, 231, 50, 500, 474, 527, 32, 288],\n"," 405: [1, 608, 494, 832, 95, 6, 17, 805, 653, 1210],\n"," 406: [457, 380, 593, 480, 589, 590, 318, 110, 588, 356],\n"," 407: [1196, 1210, 1374, 1617, 2916, 1197, 318, 1376, 110, 1213],\n"," 408: [912, 527, 3244, 3707, 260, 1233, 2918, 1240, 1358, 3347],\n"," 409: [508, 339, 457, 527, 110, 364, 318, 500, 17, 282],\n"," 410: [708, 362, 260, 531, 1015, 1367, 837, 1042, 1032, 1282],\n"," 411: [260, 32, 494, 36, 95, 25, 6, 17, 802, 104],\n"," 412: [1252, 1429, 3671, 7153, 1148, 2791, 3897, 1587, 627, 837],\n"," 413: [1252, 912, 608, 750, 1208, 903, 908, 527, 913, 1247],\n"," 414: [2901, 2976, 2028, 1552, 1917, 3753, 3005, 1387, 2320, 1620],\n"," 415: [457, 380, 593, 150, 480, 589, 318, 110, 161, 356],\n"," 416: [589, 318, 165, 110, 296, 595, 316, 329, 253, 50],\n"," 417: [1193, 904, 541, 858, 1252, 923, 912, 608, 750, 1208],\n"," 418: [527, 593, 353, 232, 307, 290, 306, 778, 509, 356],\n"," 419: [923, 1206, 1267, 910, 922, 1228, 2019, 1250, 235, 1952],\n"," 420: [50, 318, 25, 223, 32, 593, 608, 293, 47, 555],\n"," 421: [380, 593, 349, 318, 165, 110, 296, 316, 377, 292],\n"," 422: [1, 608, 141, 1073, 32, 832, 36, 95, 6, 17],\n"," 424: [858, 111, 1221, 1207, 1219, 1225, 1213, 593, 50, 296],\n"," 425: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210],\n"," 426: [2502, 5902, 4848, 1921, 2395, 8464, 5995, 3911, 3175, 3000],\n"," 427: [4226, 2959, 3481, 4027, 6711, 2858, 2542, 2997, 4993, 4034],\n"," 428: [256, 1073, 4799, 1206, 1031, 1348, 5373, 8117, 1792, 1333],\n"," 429: [1358, 1704, 2028, 590, 2324, 1961, 858, 318, 593, 2396],\n"," 430: [410, 193, 324, 534, 2359, 2858, 2336, 1183, 1252, 2997],\n"," 431: [2571, 2959, 296, 1196, 3578, 1210, 4226, 2858, 2762, 593],\n"," 432: [539, 587, 357, 39, 161, 141, 266, 252, 367, 380],\n"," 433: [19, 274, 2195, 1092, 575, 2403, 3578, 590, 2329, 3623],\n"," 434: [296, 318, 4226, 47, 50, 2329, 32, 1136, 1089, 1213],\n"," 435: [3481, 4027, 6711, 2858, 2997, 4993, 4034, 4973, 5952, 1258],\n"," 436: [349, 590, 165, 161, 10, 292, 1, 527, 204, 225],\n"," 437: [1193, 858, 923, 912, 1207, 1206, 1304, 1230, 1225, 924],\n"," 438: [904, 1252, 923, 912, 608, 1208, 903, 908, 527, 111],\n"," 439: [1097, 2762, 1080, 919, 2858, 3545, 3534, 2971, 8917, 3101],\n"," 440: [1196, 3578, 1210, 4306, 589, 260, 3996, 1704, 6874, 1136],\n"," 441: [590, 318, 588, 356, 595, 364, 253, 1, 500, 474],\n"," 443: [965, 2186, 919, 1617, 2935, 931, 1066, 2324, 2208, 929],\n"," 444: [1079, 1234, 1220, 1968, 1380, 1641, 1285, 1136, 1784, 1101],\n"," 445: [2028, 965, 2186, 919, 1617, 2858, 2935, 931, 1066, 2324],\n"," 446: [590, 165, 110, 377, 364, 47, 153, 50, 1, 500],\n"," 447: [1193, 904, 541, 858, 1252, 750, 1208, 903, 908, 111],\n"," 448: [720, 1265, 852, 3624, 2891, 3254, 4448, 3578, 4002, 608],\n"," 449: [4993, 1176, 750, 4226, 1046, 6296, 5992, 4848, 3911, 1721],\n"," 450: [2959, 6711, 1258, 2692, 1206, 7361, 4878, 4011, 778, 8636],\n"," 451: [97, 2858, 714, 1094, 1147, 1304, 3753, 5378, 1394, 800],\n"," 452: [5952, 2959, 296, 4993, 1196, 7153, 3578, 1210, 4226, 2858],\n"," 453: [457, 593, 150, 480, 589, 590, 318, 110, 588, 161],\n"," 454: [380, 150, 480, 349, 318, 165, 161, 356, 316, 10],\n"," 455: [141, 1073, 494, 95, 17, 104, 653, 112, 1356, 1393],\n"," 456: [539, 597, 356, 587, 508, 357, 527, 377, 500, 480],\n"," 458: [2605, 2706, 2581, 1210, 1777, 2485, 2125, 2571, 2394, 1586],\n"," 459: [318, 1198, 50, 858, 4886, 1213, 1221, 4995, 8961, 33794],\n"," 460: [480, 589, 318, 356, 377, 364, 47, 50, 1, 500],\n"," 461: [62, 141, 494, 36, 95, 25, 6, 802, 104, 653],\n"," 462: [597, 150, 356, 587, 34, 508, 357, 339, 440, 527],\n"," 463: [590, 1961, 2396, 1094, 3104, 2243, 1962, 2355, 1247, 1271],\n"," 464: [356, 2355, 1265, 2567, 1136, 1215, 1196, 1220, 1060, 1343],\n"," 465: [2542, 5952, 3793, 2502, 32, 2571, 3052, 4886, 223, 1214],\n"," 466: [2571, 2959, 296, 4993, 1196, 7153, 3578, 318, 4226, 2858],\n"," 467: [2571, 5952, 2959, 296, 4993, 1196, 7153, 1210, 4226, 2858],\n"," 468: [50, 318, 36, 25, 223, 608, 293, 47, 246, 111],\n"," 469: [2959, 3481, 2542, 2329, 1258, 1732, 1206, 7361, 2502, 1089],\n"," 470: [2542, 4993, 3793, 2502, 5349, 293, 4886, 4011, 223, 6502],\n"," 471: [539, 597, 150, 587, 508, 593, 357, 339, 11, 440],\n"," 472: [508, 440, 527, 377, 110, 500, 17, 236, 474, 497],\n"," 473: [1, 36, 802, 104, 805, 653, 1210, 112, 1393, 3],\n"," 474: [1198, 32, 2028, 1374, 1617, 1291, 858, 1610, 1036, 1199],\n"," 475: [1732, 2858, 296, 1573, 593, 2762, 1617, 2908, 2028, 1639],\n"," 476: [4034, 2502, 3052, 4886, 223, 6502, 1219, 5618, 2918, 3499],\n"," 477: [3578, 2858, 356, 4306, 589, 110, 1704, 1270, 480, 6874],\n"," 479: [904, 541, 858, 923, 912, 903, 908, 913, 1221, 260],\n"," 480: [6711, 2542, 4034, 2329, 1258, 1732, 7361, 1089, 3052, 293],\n"," 481: [4027, 2997, 4973, 1258, 1732, 2692, 1206, 778, 4979, 5902],\n"," 482: [4027, 6711, 2858, 2997, 4034, 4973, 1258, 2692, 1206, 3996],\n"," 483: [508, 11, 440, 377, 282, 236, 588, 497, 62, 39],\n"," 484: [62, 1073, 36, 104, 1210, 3, 58, 7, 52, 14],\n"," 485: [1358, 1704, 2028, 590, 2324, 1961, 1242, 2194, 3104, 2243],\n"," 486: [2571, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n"," 487: [2355, 1265, 2567, 1136, 1215, 1196, 1220, 1343, 1968, 368],\n"," 488: [318, 165, 110, 588, 296, 356, 595, 316, 377, 292],\n"," 489: [541, 1252, 923, 912, 903, 908, 913, 1219, 1304, 1230],\n"," 490: [260, 2571, 1214, 541, 32, 593, 1374, 1356, 1617, 924],\n"," 491: [3481, 4027, 6711, 2997, 4993, 4034, 2329, 3793, 1732, 2692],\n"," 492: [431,\n"," 4308,\n"," 45186,\n"," 53322,\n"," 214,\n"," 49530,\n"," 306,\n"," 31696,\n"," 2858,\n"," 8644],\n"," 493: [4993, 5952, 1258, 1206, 2502, 223, 8636, 1214, 4979, 6502],\n"," 494: [588, 595, 10, 364, 434, 329, 153, 1, 474, 32],\n"," 495: [539, 597, 356, 587, 34, 508, 593, 357, 11, 457],\n"," 496: [2858, 1617, 2908, 2959, 1639, 39, 431, 1206, 1923, 4720],\n"," 497: [5952, 2959, 296, 3578, 2858, 356, 2028, 589, 260, 1036],\n"," 498: [6985, 7234, 7072, 3742, 1209, 1260, 3307, 1348, 8125, 6666],\n"," 499: [780, 733, 736, 141, 1073, 648, 494, 832, 95, 17],\n"," 500: [590, 2324, 1961, 858, 1242, 1094, 2762, 2194, 3104, 457],\n"," 501: [1307, 1259, 914, 1641, 3039, 1285, 1101, 1663, 1297, 342],\n"," 502: [1777, 2125, 3578, 2571, 1586, 2355, 780, 2424, 1197, 2006],\n"," 503: [1196, 1210, 260, 1036, 110, 47, 50, 1291, 1214, 1200],\n"," 504: [508, 110, 17, 480, 474, 588, 497, 62, 595, 39],\n"," 505: [508, 593, 357, 527, 500, 282, 350, 236, 474, 497],\n"," 506: [2571, 2028, 1617, 1610, 2916, 1199, 608, 1197, 1676, 1376],\n"," 507: [904, 912, 1219, 913, 1193, 928, 950, 903, 1198, 920],\n"," 508: [2571, 5952, 2959, 296, 4993, 7153, 3578, 318, 1210, 4226],\n"," 509: [4027, 2542, 2997, 4993, 4973, 3052, 4878, 1214, 4979, 3897],\n"," 510: [380, 349, 589, 165, 110, 316, 10, 377, 592, 292],\n"," 511: [457, 593, 480, 589, 318, 588, 356, 10, 377, 364],\n"," 512: [1584, 431, 4308, 11, 45186, 53322, 214, 1213, 49530, 31696],\n"," 513: [1358, 1962, 110, 3114, 1678, 1956, 2890, 1213, 1293, 1250],\n"," 515: [904, 1219, 913, 1193, 950, 903, 1198, 920, 1258, 953],\n"," 516: [1036, 50, 6377, 1080, 33794, 608, 7361, 2918, 1193, 16],\n"," 517: [36, 25, 527, 593, 608, 246, 111, 337, 353, 112],\n"," 518: [1200, 1198, 541, 32, 1374, 1356, 1617, 924, 1291, 858],\n"," 520: [371, 544, 68, 514, 270, 71, 315, 1302, 248, 440],\n"," 521: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 1210, 4226],\n"," 522: [904, 1252, 923, 912, 750, 903, 908, 527, 913, 1247],\n"," 523: [904, 1252, 923, 912, 750, 903, 908, 111, 913, 1136],\n"," 524: [3481, 1258, 3793, 1732, 7361, 32, 3996, 5349, 293, 4886],\n"," 525: [380, 480, 589, 161, 356, 377, 292, 364, 434, 47],\n"," 526: [62, 141, 17, 653, 1210, 112, 1393, 3, 58, 52],\n"," 527: [539, 597, 150, 587, 508, 593, 357, 11, 440, 457],\n"," 529: [2571, 5952, 2959, 4993, 1196, 7153, 3578, 318, 2858, 2762],\n"," 530: [539, 597, 356, 587, 508, 593, 357, 11, 440, 457],\n"," 531: [457, 593, 480, 349, 589, 165, 356, 377, 592, 364],\n"," 532: [1307, 1721, 608, 2804, 2918, 1259, 1704, 1220, 2301, 4350],\n"," 533: [2329, 1732, 293, 4886, 4878, 4011, 778, 4262, 5669, 3081],\n"," 534: [5464, 610, 2987, 1089, 5679, 2140, 1968, 1172, 593, 1193],\n"," 535: [7153, 4226, 2858, 2762, 2329, 1214, 1200, 3996, 1704, 1270],\n"," 536: [597, 356, 587, 11, 440, 527, 590, 110, 364, 318],\n"," 537: [1, 141, 1073, 32, 648, 832, 95, 802, 104, 653],\n"," 539: [457, 110, 161, 356, 595, 10, 344, 253, 231, 1],\n"," 540: [26, 637, 1042, 711, 708, 49278, 786, 719, 1752, 609],\n"," 541: [1234, 914, 919, 1285, 1663, 1297, 1304, 342, 2302, 2144],\n"," 542: [950, 1258, 1271, 2028, 1345, 969, 47, 1023, 2206, 1580],\n"," 543: [3481, 2542, 4034, 2329, 1732, 3052, 4011, 223, 4979, 3897],\n"," 544: [3578, 318, 1210, 4226, 2858, 2762, 356, 2028, 4306, 593],\n"," 545: [3578, 4306, 6539, 4963, 5445, 1527, 1784, 5418, 6333, 2628],\n"," 546: [26, 637, 1042, 711, 724, 708, 786, 12, 719, 1752],\n"," 547: [318, 165, 296, 10, 292, 47, 253, 50, 474, 288],\n"," 548: [371, 544, 68, 514, 270, 71, 315, 248, 342, 105],\n"," 549: [480, 589, 110, 356, 377, 364, 47, 50, 1, 500],\n"," 550: [111, 1206, 1213, 593, 1228, 235, 1199, 1080, 1172, 1175],\n"," 551: [2324, 608, 1961, 1617, 318, 2396, 1242, 1094, 2762, 2194],\n"," 552: [4027, 6711, 4993, 5952, 3793, 1732, 2692, 7361, 32, 3996],\n"," 553: [150, 590, 588, 595, 1, 527, 34, 204, 225, 21],\n"," 554: [541, 858, 1252, 923, 912, 750, 1208, 908, 1247, 1221],\n"," 555: [3481, 4034, 4973, 2692, 7361, 1214, 6502, 5902, 541, 5445],\n"," 556: [590, 380, 1, 592, 253, 555, 1020, 1036, 647, 852],\n"," 557: [733, 32, 648, 832, 36, 95, 25, 17, 104, 805],\n"," 558: [2542, 2997, 4973, 2329, 1258, 1732, 2692, 1206, 7361, 3052],\n"," 559: [2572, 2683, 2762, 2605, 2706, 2581, 3081, 1777, 2485, 2716],\n"," 560: [3481, 4027, 6711, 4993, 4973, 5952, 3793, 7361, 2502, 3996],\n"," 561: [318, 1198, 50, 858, 527, 1704, 1136, 1222, 1089, 1],\n"," 562: [376, 1, 524, 596, 281, 257, 708, 7, 289, 262],\n"," 563: [62, 736, 494, 832, 95, 6, 802, 104, 805, 653],\n"," 564: [1358, 1704, 2028, 590, 2324, 593, 1242, 1094, 2762, 2289],\n"," 565: [2571, 5952, 2959, 4993, 1196, 7153, 318, 1210, 4226, 2028],\n"," 566: [19, 21, 2028, 1784, 1004, 274, 2195, 1092, 575, 1610],\n"," 567: [17, 282, 509, 22, 224, 50, 265, 376, 151, 230],\n"," 568: [260, 1073, 832, 802, 805, 1210, 1356, 1393, 52, 788],\n"," 569: [150, 480, 589, 318, 110, 161, 356, 595, 316, 377],\n"," 570: [1358, 1704, 2028, 590, 2324, 1961, 858, 1617, 593, 2396],\n"," 571: [2959, 3481, 4027, 6711, 4993, 4034, 5952, 1258, 1732, 1206],\n"," 572: [5147,\n"," 33880,\n"," 4973,\n"," 3089,\n"," 2585,\n"," 3507,\n"," 6339,\n"," 6235,\n"," 27773,\n"," 2019],\n"," 573: [1961, 858, 1242, 2194, 3104, 2243, 1954, 1962, 1674, 1097],\n"," 574: [150, 590, 318, 110, 161, 356, 595, 316, 10, 592],\n"," 575: [1, 733, 32, 648, 36, 25, 6, 17, 104, 805],\n"," 576: [19, 1004, 274, 2195, 1092, 575, 2403, 3578, 1527, 3623],\n"," 577: [410, 193, 324, 2858, 2997, 532, 1564, 1148, 212, 327],\n"," 578: [2028, 593, 1617, 457, 50, 1197, 318, 47, 1213, 1527],\n"," 579: [1240, 1200, 2028, 1374, 1356, 1617, 924, 858, 1610, 2916],\n"," 580: [4027, 318, 2858, 1019, 2761, 1193, 1207, 3053, 912, 188],\n"," 581: [150, 34, 593, 339, 11, 440, 377, 590, 500, 17],\n"," 582: [541, 923, 750, 1221, 1136, 1206, 1213, 924, 922, 1148],\n"," 583: [4226, 2959, 3481, 4027, 6711, 2858, 2542, 2997, 4993, 4034],\n"," 584: [593, 150, 590, 318, 165, 110, 588, 296, 161, 595],\n"," 585: [1208, 1221, 1212, 1250, 1233, 1952, 1204, 1263, 3435, 3683],\n"," 586: [410, 193, 324, 2359, 2336, 1252, 532, 3112, 2341, 212],\n"," 587: [2571, 5952, 2959, 4993, 7153, 3578, 4226, 2858, 2762, 2028],\n"," 588: [150, 11, 110, 17, 282, 350, 236, 161, 141, 349],\n"," 589: [1252, 923, 912, 903, 908, 111, 913, 1247, 1221, 1136],\n"," 590: [1214, 541, 32, 1374, 1356, 1617, 924, 858, 1199, 1197],\n"," 591: [720, 3624, 2891, 608, 736, 2108, 6016, 2976, 1537, 2609],\n"," 592: [260, 1196, 1240, 1210, 589, 1200, 2571, 1198, 1214, 541],\n"," 593: [377, 329, 1, 500, 474, 527, 32, 204, 442, 733],\n"," 594: [736, 141, 32, 494, 36, 95, 25, 6, 17, 802],\n"," 595: [2028, 2324, 1617, 318, 2396, 1094, 3104, 457, 1641, 2355],\n"," 596: [4027, 1732, 1639, 2997, 1500, 2890, 2692, 2108, 5004, 4086],\n"," 597: [720, 852, 3624, 2891, 3254, 4448, 3578, 4002, 3745, 4223],\n"," 598: [1617, 904, 912, 913, 1193, 928, 950, 903, 1198, 920],\n"," 599: [2028, 2858, 2324, 1207, 364, 593, 318, 2731, 3114, 2700],\n"," 600: [2571, 5952, 296, 4993, 1196, 7153, 318, 2762, 356, 2028],\n"," 601: [590, 350, 497, 161, 509, 224, 50, 105, 265, 376],\n"," 602: [1196, 1240, 589, 1200, 2571, 1214, 541, 32, 2028, 1374],\n"," 603: [260, 3083, 2080, 912, 899, 2137, 3448, 1094, 3189, 3174],\n"," 604: [1, 141, 494, 17, 802, 653, 1356, 3, 58, 7],\n"," 605: [593, 246, 111, 300, 232, 6, 16, 509, 31, 175],\n"," 606: [1240, 541, 32, 593, 1374, 1356, 1617, 924, 1291, 1036],\n"," 607: [2571, 2959, 296, 4993, 1196, 7153, 3578, 1210, 2858, 2762],\n"," 608: [2571, 5952, 4993, 1196, 7153, 3578, 318, 1210, 4226, 2858],\n"," 609: [1, 474, 204, 442, 733, 586, 786, 196, 553, 6],\n"," 610: [541, 1252, 912, 608, 750, 1208, 908, 111, 913, 1221],\n"," 612: [260, 608, 832, 25, 17, 802, 104, 805, 653, 1210],\n"," 613: [2572, 2683, 2762, 2605, 2706, 2581, 3081, 1210, 1777, 2485],\n"," 614: [1210, 589, 2571, 1214, 541, 32, 593, 1374, 1356, 1617],\n"," 616: [1196, 4306, 858, 2329, 1214, 1200, 3996, 1704, 1270, 6874],\n"," 617: [318, 282, 266, 509, 22, 277, 224, 367, 105, 376],\n"," 618: [2324, 1961, 858, 1242, 2194, 3104, 2289, 2243, 36, 1962],\n"," 619: [1196, 2571, 541, 32, 593, 1374, 1356, 1617, 924, 1291],\n"," 620: [3578, 2959, 2858, 527, 2707, 589, 2571, 4993, 3157, 1176],\n"," 621: [2542, 2329, 5952, 2692, 4878, 4011, 3897, 1748, 4848, 7153],\n"," 622: [1200, 1214, 1374, 1356, 1617, 1291, 858, 1036, 2916, 1199],\n"," 623: [508, 357, 527, 282, 236, 497, 586, 292, 22, 224],\n"," 624: [2762, 3081, 1210, 1777, 2716, 2125, 3578, 2571, 2394, 2396],\n"," 625: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 318],\n"," 627: [6539, 6377, 3793, 4886, 780, 4995, 5989, 6378, 2959, 3408],\n"," 628: [539, 597, 356, 587, 34, 508, 593, 357, 339, 11],\n"," 629: [539, 597, 356, 587, 508, 593, 357, 440, 457, 527],\n"," 630: [260, 608, 62, 141, 1073, 832, 36, 6, 17, 1210],\n"," 631: [904, 541, 858, 1252, 923, 912, 608, 1208, 903, 908],\n"," 632: [4022, 356, 1625, 1610, 1833, 2706, 3101, 1552, 479, 260],\n"," 633: [1247, 910, 924, 1212, 1148, 235, 1952, 969, 1199, 899],\n"," 634: [1234, 2797, 2791, 1380, 914, 919, 3039, 1663, 1297, 2918],\n"," 635: [5418, 1307, 318, 4995, 260, 3083, 608, 2080, 912, 899],\n"," 636: [4226, 2959, 2858, 2997, 1258, 1732, 7361, 2502, 32, 3996],\n"," 637: [2572, 2683, 2605, 2706, 2581, 3081, 1210, 1777, 2485, 2716],\n"," 638: [593, 457, 377, 364, 480, 474, 588, 497, 595, 161],\n"," 639: [2571, 1196, 3578, 1210, 4226, 2858, 2762, 2028, 589, 260],\n"," 640: [296, 2762, 593, 260, 1036, 50, 2329, 527, 1200, 3996],\n"," 641: [150, 165, 110, 588, 356, 292, 364, 434, 47, 253],\n"," 642: [1358, 2324, 1962, 1641, 527, 110, 1299, 1610, 1584, 1207],\n"," 643: [2948, 2947, 2951, 5060, 3508, 2186, 2949, 861, 1198, 2406],\n"," 644: [32, 1374, 1356, 1617, 924, 858, 1610, 2916, 1199, 296],\n"," 645: [593, 349, 329, 344, 50, 1, 288, 225, 339, 733],\n"," 646: [150, 349, 589, 318, 165, 110, 161, 316, 10, 377],\n"," 647: [708, 362, 1196, 1028, 1097, 260, 1029, 79, 1035, 1012],\n"," 648: [750, 1208, 908, 527, 1221, 1136, 260, 1206, 1219, 1304],\n"," 649: [2571, 5952, 2959, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n"," 650: [2959, 4027, 6711, 4973, 5952, 1732, 2692, 1206, 7361, 32],\n"," 651: [904, 1208, 111, 913, 1304, 1230, 924, 593, 922, 1234],\n"," 652: [296, 1271, 2797, 1721, 318, 2858, 260, 1246, 3083, 608],\n"," 653: [431,\n"," 4308,\n"," 45186,\n"," 53322,\n"," 214,\n"," 49530,\n"," 306,\n"," 31696,\n"," 2858,\n"," 8644],\n"," 654: [589, 377, 364, 47, 50, 1, 500, 474, 527, 454],\n"," 655: [1079, 1234, 1278, 1220, 2797, 2406, 1968, 2791, 914, 1641],\n"," 656: [357, 457, 527, 590, 17, 282, 497, 454, 62, 586],\n"," 657: [3793, 2692, 1206, 2502, 293, 4886, 4011, 1748, 4848, 5618],\n"," 658: [3481, 4027, 6711, 2997, 4993, 4034, 4973, 5952, 1258, 3793],\n"," 659: [2959, 3578, 2028, 110, 50, 1291, 2329, 1270, 480, 6539],\n"," 660: [5952, 4993, 1196, 7153, 1210, 4226, 589, 260, 1036, 1198],\n"," 661: [539, 357, 339, 11, 17, 350, 236, 474, 497, 62],\n"," 662: [1252, 923, 1208, 903, 908, 527, 913, 1247, 1136, 1207],\n"," 663: [1702, 158, 1713, 239, 256, 2142, 2083, 2089, 1196, 1373],\n"," 664: [7445, 7254, 3897, 1831, 3701, 7022, 180, 5952, 4993, 2424],\n"," 665: [904, 858, 527, 913, 1247, 1221, 1136, 1207, 260, 1219],\n"," 666: [3578, 318, 1210, 2762, 356, 2028, 4306, 593, 589, 260],\n"," 667: [762, 662, 280, 1476, 828, 467, 8327, 836, 2019, 733],\n"," 668: [1193, 904, 541, 858, 1252, 912, 608, 1208, 903, 908],\n"," 669: [595, 10, 377, 364, 434, 47, 50, 1, 500, 474],\n"," 670: [1, 260, 608, 736, 32, 648, 494, 832, 95, 25],\n"," 671: [904, 913, 1207, 910, 1234, 1148, 1276, 1250, 969, 1179],\n"," 672: [5952, 4993, 7153, 318, 4226, 4306, 1036, 1214, 1200, 3996],\n"," 674: [1198, 32, 2028, 1617, 1291, 858, 1610, 2916, 1199, 296],\n"," 675: [2858, 3408, 2762, 1833, 50, 2706, 1249, 2683, 1127, 3101],\n"," 676: [539, 597, 356, 587, 34, 508, 593, 357, 440, 457],\n"," 677: [349, 165, 595, 329, 47, 153, 50, 1, 32, 288],\n"," 678: [904, 111, 1207, 1230, 910, 922, 1212, 1148, 1617, 1288],\n"," 679: [1307, 1197, 1079, 1278, 1220, 1028, 2797, 1097, 2406, 1968],\n"," 680: [3468, 1683, 4034, 5013, 3022, 3983, 4226, 919, 1617, 903],\n"," 681: [4022, 356, 1625, 1610, 2762, 1833, 50, 2706, 1249, 593],\n"," 683: [4963, 3147, 2762, 2353, 4896, 4995, 597, 5989, 2959, 3408],\n"," 684: [527, 1097, 1193, 2762, 1080, 919, 2028, 2858, 3545, 3534],\n"," 685: [62, 494, 832, 95, 802, 104, 112, 1393, 58, 7],\n"," 686: [1356, 1610, 1199, 296, 1676, 318, 1148, 1127, 47, 110],\n"," 688: [2542, 4973, 7361, 2502, 3996, 293, 4878, 223, 8636, 3897],\n"," 689: [589, 165, 10, 377, 364, 329, 47, 253, 50, 1],\n"," 690: [608, 62, 1073, 32, 494, 832, 36, 25, 17, 805],\n"," 691: [2567, 1215, 1343, 1500, 1457, 1079, 373, 1515, 1270, 3114],\n"," 693: [539, 34, 508, 11, 440, 377, 590, 500, 282, 236],\n"," 694: [904, 541, 858, 1252, 923, 608, 750, 1208, 903, 908],\n"," 695: [2572, 2762, 2605, 2706, 3081, 1210, 1777, 2716, 3578, 2355],\n"," 696: [2605, 1210, 1777, 2485, 2716, 2125, 3578, 2571, 2394, 1586],\n"," 697: [3468, 1683, 4034, 5013, 3022, 3983, 4226, 2858, 919, 1617],\n"," 698: [3481, 4027, 2997, 4034, 4973, 2692, 2502, 5349, 3052, 293],\n"," 699: [2087, 2143, 1006, 1354, 3020, 2161, 2683, 2023, 1221, 858],\n"," 700: [110, 296, 595, 364, 434, 329, 253, 231, 50, 500],\n"," 701: [380, 593, 150, 480, 349, 589, 590, 318, 165, 110],\n"," 702: [2571, 1198, 2028, 1356, 1617, 1291, 858, 1610, 1036, 2916],\n"," 703: [1307, 1197, 1079, 1234, 1220, 1028, 2797, 1097, 2406, 1259],\n"," 704: [3147, 6539, 356, 6377, 4018, 5299, 597, 6378, 2763, 588],\n"," 705: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210],\n"," 706: [260, 608, 62, 1073, 832, 36, 95, 6, 17, 802],\n"," 707: [1219, 2683, 2268, 648, 858, 1252, 1230, 2764, 1221, 1213],\n"," 708: [1196, 1210, 1198, 593, 1374, 1356, 1617, 1291, 1610, 1036],\n"," 709: [1240, 1210, 1214, 541, 32, 593, 1356, 924, 1291, 1036],\n"," 710: [904, 541, 923, 912, 1208, 903, 111, 913, 1247, 1136],\n"," 711: [2858, 4022, 356, 1625, 3408, 1610, 2762, 1833, 50, 2706],\n"," 712: [539, 597, 587, 34, 508, 593, 339, 11, 440, 457],\n"," 714: [1196, 1210, 593, 589, 1036, 47, 1214, 1200, 1222, 1089],\n"," 715: [457, 593, 480, 349, 589, 590, 318, 110, 356, 377],\n"," 716: [858, 1036, 1676, 110, 1387, 1089, 1201, 2288, 1275, 223],\n"," 718: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 318],\n"," 719: [1020, 1036, 647, 852, 1569, 1035, 541, 1042, 1021, 1566],\n"," 720: [589, 165, 110, 595, 316, 10, 592, 434, 329, 153],\n"," 721: [597, 150, 356, 508, 593, 357, 339, 440, 457, 527],\n"," 723: [296, 1196, 1210, 2858, 2028, 593, 260, 1036, 1198, 50],\n"," 724: [780, 62, 736, 494, 832, 36, 95, 25, 6, 802],\n"," 725: [2863, 2804, 2948, 2947, 1136, 2160, 2951, 1197, 2918, 1997],\n"," 726: [260, 1240, 589, 1200, 2571, 1214, 541, 32, 2028, 1374],\n"," 727: [349, 589, 588, 161, 316, 10, 592, 292, 434, 329],\n"," 728: [260, 1200, 1198, 1214, 541, 32, 593, 1374, 1356, 1617],\n"," 729: [539, 597, 356, 587, 508, 593, 357, 440, 457, 527],\n"," 730: [457, 593, 480, 589, 110, 161, 356, 377, 292, 364],\n"," 731: [1234, 1278, 1220, 1028, 2791, 1380, 1641, 3039, 1297, 2396],\n"," 732: [1465, 1231, 457, 2943, 531, 1056, 593, 3082, 1277, 474],\n"," 733: [2959, 2858, 527, 3157, 1176, 4022, 750, 593, 4226, 2712],\n"," 734: [762, 662, 608, 1476, 828, 467, 8327, 836, 2797, 2028],\n"," 735: [150, 349, 589, 318, 588, 595, 10, 329, 344, 1],\n"," 736: [356, 296, 1271, 5418, 2797, 1307, 1721, 318, 2858, 4995],\n"," 737: [260, 608, 62, 141, 1073, 494, 832, 36, 95, 25],\n"," 738: [608, 62, 736, 36, 25, 6, 17, 802, 104, 805],\n"," 739: [2858, 4022, 3408, 2706, 1127, 3101, 260, 3751, 1210, 1961],\n"," 740: [1240, 589, 1200, 1214, 541, 32, 1374, 1356, 1617, 924],\n"," 741: [260, 1240, 1210, 1200, 1198, 1214, 541, 32, 2028, 1374],\n"," 742: [3753, 2763, 3510, 3623, 1917, 2396, 4367, 8368, 3255, 858],\n"," 743: [457, 593, 150, 349, 589, 590, 318, 165, 110, 161],\n"," 744: [590, 2324, 608, 1961, 1617, 2396, 1242, 1094, 2762, 3104],\n"," 745: [4973, 2329, 5952, 2692, 1206, 7361, 3052, 4878, 8636, 6502],\n"," 746: [2054, 370, 1019, 1380, 1193, 912, 188, 2599, 1203, 432],\n"," 748: [296, 36, 223, 32, 593, 608, 293, 111, 337, 353],\n"," 749: [260, 733, 608, 62, 736, 141, 32, 494, 832, 36],\n"," 750: [55820, 1213, 1222, 7361, 1234, 858, 5147, 923, 4873, 44195],\n"," 751: [457, 380, 480, 589, 318, 110, 296, 356, 377, 292],\n"," 752: [457, 593, 480, 589, 318, 110, 356, 377, 292, 364],\n"," 753: [1358, 2028, 590, 2324, 858, 1617, 2396, 1242, 1094, 2762],\n"," 754: [2959, 2858, 527, 2707, 589, 3157, 1176, 750, 593, 2712],\n"," 755: [25, 32, 608, 47, 111, 353, 112, 235, 290, 6],\n"," 756: [260, 494, 104, 1210, 1356, 1393, 3, 788, 858, 5],\n"," 757: [1234, 1278, 1028, 2797, 2406, 1968, 2791, 1380, 914, 919],\n"," 758: [457, 380, 480, 589, 318, 165, 296, 161, 356, 316],\n"," 759: [1200, 593, 1617, 924, 858, 1199, 296, 608, 50, 318],\n"," 761: [3147, 3578, 5349, 6377, 4701, 4025, 4246, 4896, 4995, 4018],\n"," 762: [32, 832, 36, 6, 805, 1210, 1356, 1393, 3, 52],\n"," 763: [1193, 904, 541, 858, 1252, 923, 912, 608, 750, 1208],\n"," 764: [3578, 2707, 589, 2571, 4993, 3157, 4022, 750, 4226, 1046],\n"," 765: [1358, 1704, 2324, 1961, 318, 2396, 1242, 2194, 2289, 2243],\n"," 766: [5952, 2959, 296, 4993, 7153, 3578, 4226, 2762, 4306, 593],\n"," 767: [88, 1552, 743, 1982, 724, 1562, 2953, 1210, 575, 1573],\n"," 768: [5464, 610, 2987, 1089, 5679, 7445, 2140, 1968, 1172, 7254],\n"," 769: [34, 377, 364, 595, 161, 380, 589, 105, 736, 733],\n"," 770: [608, 62, 32, 36, 25, 6, 104, 1210, 112, 1393],\n"," 771: [1197, 1079, 1234, 1278, 1220, 1259, 1380, 2100, 1285, 1136],\n"," 772: [4226, 2959, 4027, 2858, 2329, 5952, 1258, 2692, 7361, 2502],\n"," 773: [786, 362, 1028, 1029, 79, 1035, 1012, 1022, 661, 1198],\n"," 774: [2571, 5952, 2959, 296, 4993, 1196, 3578, 1210, 4226, 2858],\n"," 775: [508, 593, 357, 527, 110, 282, 62, 21, 509, 292],\n"," 776: [2324, 608, 1961, 1617, 318, 2396, 1242, 2762, 2194, 3104],\n"," 777: [1210, 97, 2571, 1304, 3753, 5378, 1287, 3947, 4643, 920],\n"," 780: [1704, 2289, 2243, 2858, 1299, 2355, 1247, 1207, 1960, 1272],\n"," 781: [260, 1196, 1240, 1210, 589, 1200, 2571, 1198, 1214, 541],\n"," 782: [608, 25, 50, 296, 1120, 110, 1968, 1912, 1041, 3125],\n"," 783: [2959, 296, 3578, 1210, 4226, 2858, 2762, 356, 2028, 589],\n"," 784: [1200, 1222, 1089, 4011, 1080, 1527, 4973, 2502, 1617, 7361],\n"," 785: [150, 34, 508, 339, 11, 440, 364, 500, 282, 474],\n"," 786: [2572, 2683, 2706, 1777, 2716, 2396, 1586, 2355, 2710, 2424],\n"," 787: [1358, 2028, 590, 1617, 318, 593, 2396, 1094, 2762, 2194],\n"," 788: [3481, 2542, 4034, 4973, 1732, 2692, 1206, 2502, 1089, 4878],\n"," 789: [34, 17, 282, 236, 497, 39, 22, 277, 224, 367],\n"," 790: [1193, 923, 912, 608, 750, 1208, 903, 908, 913, 1207],\n"," 791: [3468, 1683, 4034, 5013, 3983, 4226, 1617, 903, 1084, 3307],\n"," 792: [457, 593, 480, 589, 110, 356, 595, 10, 377, 364],\n"," 793: [2959, 296, 318, 2858, 2762, 356, 2028, 593, 589, 1036],\n"," 794: [1193, 904, 541, 1252, 923, 912, 608, 750, 1208, 903],\n"," 795: [34, 357, 339, 11, 440, 17, 282, 236, 588, 497],\n"," 796: [733, 141, 1073, 32, 494, 832, 36, 95, 25, 6],\n"," 797: [2858, 852, 3624, 2891, 3254, 4448, 3745, 4223, 736, 4963],\n"," 798: [3481, 4027, 4034, 2329, 1732, 7361, 2502, 3052, 4011, 223],\n"," 799: [364, 47, 253, 50, 1, 32, 34, 204, 442, 21],\n"," 800: [733, 608, 494, 832, 36, 95, 25, 17, 805, 653],\n"," 801: [318, 2858, 2762, 356, 1036, 50, 858, 1240, 1222, 1213],\n"," 802: [150, 34, 357, 339, 11, 110, 364, 17, 282, 236],\n"," 803: [1358, 1617, 3104, 527, 2355, 2336, 1095, 3114, 2916, 2571],\n"," 804: [457, 380, 150, 480, 349, 589, 590, 318, 165, 588],\n"," 805: [2959, 296, 318, 4226, 2858, 2762, 356, 2028, 589, 1036],\n"," 806: [539, 597, 587, 508, 17, 350, 474, 497, 62, 141],\n"," 807: [457, 593, 480, 589, 110, 356, 595, 316, 377, 364],\n"," 808: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 6539, 356, 2762],\n"," 809: [1833, 2706, 593, 2683, 3101, 1552, 479, 608, 1210, 3675],\n"," 810: [597, 150, 587, 34, 508, 593, 357, 339, 11, 440],\n"," 811: [260, 608, 32, 832, 36, 6, 802, 104, 805, 1210],\n"," 812: [34, 357, 590, 110, 39, 161, 266, 21, 296, 509],\n"," 813: [1358, 1704, 590, 608, 1961, 1617, 318, 593, 1242, 1094],\n"," 814: [1197, 1079, 1270, 1028, 2797, 1097, 1968, 1259, 1380, 914],\n"," 815: [2959, 3578, 318, 4226, 2858, 1036, 47, 50, 1291, 2329],\n"," 816: [380, 480, 589, 165, 110, 356, 377, 364, 434, 329],\n"," 817: [2028, 590, 608, 858, 1617, 593, 2396, 1242, 2762, 3104],\n"," 818: [371, 544, 68, 514, 270, 71, 315, 1302, 248, 1196],\n"," 819: [720, 2858, 1265, 852, 3624, 2891, 4448, 3578, 4002, 608],\n"," 820: [3481, 2542, 4034, 2329, 4011, 223, 778, 3897, 6502, 4262],\n"," 821: [2571, 4993, 4963, 3578, 5349, 1580, 6539, 2273, 6377, 4701],\n"," 822: [36, 32, 593, 608, 47, 555, 337, 353, 290, 6],\n"," 823: [786, 708, 362, 79, 531, 852, 919, 1270, 1015, 837],\n"," 824: [923, 527, 111, 913, 1267, 1230, 1213, 50, 296, 1148],\n"," 825: [1617, 904, 912, 1219, 913, 928, 950, 903, 1207, 1258],\n"," 826: [2329, 2692, 2502, 5349, 293, 4886, 8636, 2762, 2395, 5669],\n"," 827: [593, 589, 318, 110, 296, 434, 329, 47, 253, 50],\n"," 828: [593, 150, 590, 318, 588, 161, 356, 595, 329, 344],\n"," 829: [608, 25, 104, 112, 1356, 1393, 58, 52, 788, 14],\n"," 830: [1307, 1079, 1234, 1278, 1270, 2797, 2791, 914, 919, 1641],\n"," 831: [2762, 2581, 3081, 3578, 2571, 2394, 1586, 2355, 780, 1197],\n"," 832: [1200, 2571, 1198, 2028, 593, 1356, 1617, 1291, 858, 1610],\n"," 833: [1699, 1429, 7153, 923, 2791, 3897, 2541, 627, 837, 1234],\n"," 834: [5952, 296, 4993, 7153, 3578, 1210, 589, 260, 1036, 1198],\n"," 835: [150, 587, 34, 527, 377, 590, 110, 364, 17, 282],\n"," 836: [141, 1073, 494, 36, 25, 802, 104, 805, 1210, 1393],\n"," 837: [370, 256, 19, 410, 420, 333, 248, 355, 455, 466],\n"," 838: [3244,\n"," 3707,\n"," 2918,\n"," 8405,\n"," 3189,\n"," 27878,\n"," 3733,\n"," 1569,\n"," 2949,\n"," 1090],\n"," 839: [1230, 3244, 3707, 1233, 2918, 1240, 1358, 3347, 2396, 1197],\n"," 840: [1028, 1259, 1380, 3039, 1784, 1101, 1297, 342, 1777, 594],\n"," 841: [2959, 2858, 527, 2707, 3157, 1176, 4022, 593, 2712, 16],\n"," 842: [457, 380, 593, 480, 349, 589, 318, 165, 296, 161],\n"," 843: [923, 912, 608, 908, 913, 1213, 593, 922, 1212, 50],\n"," 844: [1465, 1231, 1225, 2943, 531, 1056, 509, 2804, 613, 3469],\n"," 846: [36, 608, 111, 337, 232, 290, 778, 52, 288, 468],\n"," 847: [1702, 158, 1713, 239, 256, 2142, 2083, 2089, 1196, 588],\n"," 848: [50, 318, 36, 223, 527, 32, 593, 608, 293, 47],\n"," 849: [371, 318, 544, 68, 514, 270, 71, 315, 1302, 248],\n"," 851: [5952, 2959, 4993, 7153, 3578, 318, 4226, 2858, 2028, 593],\n"," 852: [150, 165, 110, 316, 10, 292, 329, 153, 50, 1],\n"," 853: [260, 832, 25, 17, 802, 805, 1210, 1356, 1393, 858],\n"," 854: [1358, 1704, 590, 1617, 318, 2396, 1242, 1094, 3104, 2289],\n"," 855: [1358, 1704, 2028, 590, 1961, 858, 2396, 1242, 1094, 2762],\n"," 856: [260, 1196, 1240, 1210, 1200, 1198, 1214, 541, 32, 593],\n"," 857: [2959, 296, 318, 1210, 4226, 2858, 2762, 4306, 260, 1198],\n"," 859: [318, 2858, 4306, 47, 50, 2329, 527, 1214, 6874, 32],\n"," 860: [410, 193, 324, 534, 2858, 2336, 1183, 1252, 2997, 532],\n"," 861: [5952, 2959, 4993, 1196, 7153, 3578, 318, 1210, 4226, 2858],\n"," 862: [508, 593, 11, 590, 110, 17, 497, 62, 161, 141],\n"," 863: [260, 1196, 1240, 1200, 1198, 1214, 541, 1374, 924, 1291],\n"," 864: [4014,\n"," 8645,\n"," 3148,\n"," 4296,\n"," 6870,\n"," 2023,\n"," 40819,\n"," 3252,\n"," 5364,\n"," 30707],\n"," 865: [5952, 4993, 2762, 2028, 589, 1036, 1198, 1291, 858, 2329],\n"," 866: [1240, 589, 2571, 541, 2028, 1356, 1617, 924, 1291, 1610],\n"," 867: [6711, 2542, 1258, 1206, 7361, 2502, 32, 1089, 3052, 293],\n"," 868: [260, 1196, 1240, 1200, 2571, 1198, 1214, 541, 2028, 1374],\n"," 869: [1639, 2997, 3996, 1500, 2890, 1747, 5004, 4086, 1213, 912],\n"," 870: [50, 36, 32, 608, 47, 555, 353, 235, 307, 290],\n"," 871: [910, 1212, 1148, 2019, 1617, 1254, 1250, 2858, 1233, 1952],\n"," 872: [904, 541, 858, 923, 912, 608, 750, 903, 908, 527],\n"," 873: [912, 527, 3244, 260, 2918, 1240, 3347, 1197, 8405, 3189],\n"," 874: [2273, 4701, 4025, 2353, 4018, 5299, 6378, 3977, 3052, 3510],\n"," 875: [539, 597, 34, 11, 440, 457, 377, 110, 364, 500],\n"," 876: [150, 587, 34, 508, 357, 11, 110, 364, 17, 350],\n"," 878: [1304, 910, 1212, 1234, 1148, 1276, 1617, 1254, 2858, 1233],\n"," 879: [858, 1699, 1429, 7153, 923, 2541, 1587, 627, 837, 1208],\n"," 881: [349, 434, 1, 204, 21, 733, 300, 786, 196, 1036],\n"," 882: [733, 608, 1073, 494, 832, 36, 6, 17, 802, 104],\n"," 883: [539, 597, 150, 356, 587, 34, 508, 593, 357, 339],\n"," 884: [260, 780, 733, 608, 494, 832, 36, 95, 25, 6],\n"," 885: [1234, 1278, 1394, 1663, 1297, 2144, 2371, 440, 2150, 902],\n"," 886: [2324, 1954, 110, 2355, 1247, 1207, 1272, 3114, 2890, 1183],\n"," 887: [1358, 2324, 608, 1961, 858, 2396, 1242, 1094, 2762, 2194],\n"," 888: [296, 50, 318, 36, 25, 223, 527, 32, 593, 608],\n"," 889: [539, 597, 356, 587, 508, 593, 357, 11, 440, 457],\n"," 890: [2901, 1732, 2976, 593, 1617, 2908, 1639, 2396, 2320, 1620],\n"," 891: [593, 858, 2329, 6874, 6539, 1136, 1222, 1089, 1213, 6377],\n"," 892: [337, 112, 232, 235, 307, 290, 306, 509, 31, 288],\n"," 893: [2959, 296, 4993, 7153, 1210, 4226, 2858, 2762, 356, 4306],\n"," 894: [296, 50, 318, 36, 25, 223, 527, 32, 593, 608],\n"," 895: [457, 593, 480, 349, 318, 165, 110, 292, 47, 50],\n"," 896: [318, 246, 111, 555, 337, 300, 232, 6, 16, 509],\n"," 897: [457, 150, 480, 349, 589, 318, 588, 161, 356, 377],\n"," 898: [1240, 1200, 1198, 2028, 593, 1374, 1617, 924, 1291, 858],\n"," 899: [539, 597, 356, 587, 508, 593, 357, 11, 440, 457],\n"," 900: [3, 58, 628, 140, 135, 1405, 76, 748, 743, 671],\n"," 901: [5952, 2959, 296, 4993, 1196, 7153, 3578, 1210, 4226, 2858],\n"," 902: [110, 527, 32, 541, 6377, 1221, 1961, 4973, 4878, 2502],\n"," 903: [608, 1073, 832, 36, 25, 6, 17, 104, 805, 653],\n"," 904: [2028, 1961, 858, 593, 2396, 1242, 2762, 2194, 3104, 2289],\n"," 905: [762, 662, 280, 828, 467, 8327, 836, 2019, 1291, 441],\n"," 906: [1258, 3793, 5349, 3052, 4886, 47, 8636, 1214, 4979, 6502],\n"," 907: [588, 161, 595, 316, 292, 434, 329, 1, 34, 185],\n"," 908: [32, 593, 1617, 1199, 296, 608, 50, 1197, 318, 1148],\n"," 909: [4226, 3481, 4027, 6711, 2542, 4034, 4973, 1732, 2692, 1206],\n"," 910: [2571, 1196, 3578, 1210, 2762, 356, 2028, 589, 260, 1036],\n"," 911: [786, 708, 1097, 1029, 79, 1012, 1022, 661, 531, 852],\n"," 912: [2028, 965, 2186, 919, 2858, 2935, 931, 1066, 2324, 2208],\n"," 913: [1465, 2943, 531, 1056, 3082, 1277, 590, 613, 4709, 2397],\n"," 914: [1270, 1246, 280, 608, 828, 8327, 2019, 1291, 2797, 2028],\n"," 915: [1220, 2406, 1380, 914, 919, 1641, 1285, 1136, 1101, 1663],\n"," 916: [2571, 5952, 296, 1196, 7153, 3578, 318, 1210, 4226, 2858],\n"," 917: [260, 32, 494, 6, 802, 104, 805, 1210, 112, 1356],\n"," 918: [608, 141, 32, 36, 25, 6, 17, 805, 112, 58],\n"," 919: [26, 637, 1042, 711, 724, 708, 49278, 12, 719, 609],\n"," 920: [527, 3707, 1233, 2918, 1358, 3347, 2396, 1197, 8405, 3189],\n"," 921: [1230, 527, 3244, 3707, 260, 1233, 2918, 1240, 1358, 3347],\n"," 922: [4025, 3793, 2353, 5989, 6378, 3408, 1704, 2028, 3052, 2763],\n"," 923: [260, 62, 736, 32, 648, 832, 36, 25, 17, 802],\n"," 924: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 593],\n"," 925: [2863, 2948, 2918, 1256, 346, 1580, 2363, 2186, 2949, 2273],\n"," 926: [858, 2396, 1252, 1699, 1704, 593, 1429, 3671, 1148, 2541],\n"," 927: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 4226],\n"," 928: [7153, 2028, 1036, 110, 1291, 858, 527, 1214, 1200, 1704],\n"," 930: [34, 357, 11, 440, 110, 364, 17, 497, 454, 62],\n"," 931: [1, 260, 608, 62, 141, 648, 832, 36, 95, 25],\n"," 932: [150, 356, 508, 339, 440, 527, 590, 110, 318, 500],\n"," 933: [1374, 924, 858, 1199, 608, 1197, 1376, 1148, 110, 1213],\n"," 934: [2959, 7254, 1006, 1354, 1967, 3020, 2683, 318, 2023, 1221],\n"," 935: [19, 21, 1784, 274, 2195, 1092, 575, 1527, 590, 2329],\n"," 936: [318, 1270, 1, 1213, 1527, 2716, 1580, 2918, 2628, 3114],\n"," 937: [2571, 296, 4993, 1196, 3578, 1210, 4226, 2858, 356, 2028],\n"," 938: [480, 589, 165, 110, 588, 356, 595, 10, 377, 592],\n"," 939: [62, 494, 25, 17, 802, 104, 805, 653, 1210, 112],\n"," 940: [431,\n"," 11,\n"," 45186,\n"," 53322,\n"," 1213,\n"," 49530,\n"," 31696,\n"," 8644,\n"," 3298,\n"," 1573],\n"," 941: [370, 256, 19, 410, 420, 333, 248, 355, 455, 466],\n"," 942: [150, 480, 589, 590, 110, 161, 356, 377, 364, 47],\n"," 943: [466, 104, 543, 88, 520, 1552, 2717, 2735, 743, 1982],\n"," 945: [780, 608, 648, 832, 36, 95, 6, 104, 805, 1210],\n"," 946: [1200, 541, 2028, 1036, 1199, 296, 318, 1148, 1270, 47],\n"," 947: [5952, 2959, 296, 4993, 7153, 3578, 318, 4226, 2858, 2762],\n"," 948: [1358, 590, 1961, 1242, 2194, 3104, 2289, 2243, 1954, 1962],\n"," 949: [1732, 2890, 1747, 4086, 4242, 246, 5303, 1468, 608, 4034],\n"," 950: [4226, 2959, 3481, 4027, 2542, 4993, 4034, 4973, 5952, 3793],\n"," 951: [260, 25, 802, 805, 1210, 1356, 1393, 3, 58, 52],\n"," 952: [1, 608, 141, 32, 36, 25, 6, 104, 653, 112],\n"," 953: [1343, 2396, 1457, 373, 1515, 1967, 73, 919, 1197, 892],\n"," 954: [5952, 296, 4993, 7153, 318, 4226, 2858, 356, 4306, 593],\n"," 955: [1230, 912, 3244, 3707, 260, 1233, 1240, 1358, 3347, 8405],\n"," 956: [316, 1, 204, 733, 786, 196, 173, 6, 1036, 780],\n"," 957: [1704, 2324, 2396, 1094, 2762, 2194, 3104, 2289, 2243, 1962],\n"," 958: [4993, 4963, 3147, 3578, 1580, 6539, 356, 2273, 6377, 4701],\n"," 960: [50, 318, 36, 25, 223, 32, 293, 246, 111, 555],\n"," 961: [904, 541, 858, 1252, 923, 912, 608, 750, 1208, 903],\n"," 962: [356, 1625, 1610, 2762, 1833, 50, 1249, 593, 1127, 3101],\n"," 963: [296, 50, 318, 36, 25, 223, 527, 32, 593, 608],\n"," 964: [5952, 4993, 7153, 2858, 2762, 4306, 1198, 50, 1291, 1214],\n"," 965: [25, 527, 293, 555, 337, 353, 112, 235, 307, 6],\n"," 966: [2329, 1258, 7361, 3996, 3052, 4011, 778, 47, 4262, 2762],\n"," 967: [5952, 4993, 1196, 7153, 3578, 1210, 4226, 2028, 4306, 589],\n"," 968: [380, 589, 588, 161, 356, 595, 10, 377, 592, 364],\n"," 969: [260, 608, 648, 494, 832, 95, 6, 802, 104, 805],\n"," 970: [457, 480, 349, 589, 165, 588, 161, 356, 595, 316],\n"," 971: [3481, 6711, 2542, 7361, 2502, 32, 1089, 4878, 4011, 778],\n"," 972: [1961, 3104, 2289, 2243, 36, 1674, 260, 1299, 2355, 1960],\n"," 973: [3949, 55820, 1222, 7361, 1234, 858, 5147, 6874, 2858, 2959],\n"," 974: [371, 318, 544, 68, 514, 270, 71, 315, 248, 440],\n"," 975: [318, 36, 25, 223, 527, 593, 293, 47, 246, 555],\n"," 976: [457, 593, 480, 589, 110, 356, 316, 10, 377, 292],\n"," 977: [1219, 1304, 1212, 2019, 1254, 1233, 1204, 1394, 1284, 2396],\n"," 978: [527, 1097, 1193, 356, 2762, 1080, 2028, 2858, 3534, 32],\n"," 979: [610, 5679, 7445, 2140, 1172, 7254, 593, 3897, 1193, 1831],\n"," 980: [2571, 5952, 1196, 3578, 318, 2028, 4306, 589, 1036, 1198],\n"," 982: [733, 62, 494, 832, 36, 6, 17, 802, 104, 805],\n"," 983: [4993, 4963, 3578, 2273, 4025, 2353, 3753, 780, 5989, 6378],\n"," 984: [2571, 5952, 4993, 7153, 3578, 4226, 2858, 4306, 589, 260],\n"," 985: [4226, 2959, 3481, 6711, 2858, 2542, 2997, 4034, 2329, 1258],\n"," 986: [34, 508, 364, 17, 497, 62, 595, 39, 141, 21],\n"," 987: [539, 597, 356, 587, 34, 508, 593, 357, 11, 440],\n"," 988: [4027, 6711, 4034, 2329, 1732, 7361, 8636, 4979, 6502, 5902],\n"," 989: [923, 750, 1208, 903, 111, 913, 1247, 1221, 1207, 1206],\n"," 990: [349, 110, 161, 595, 316, 292, 329, 47, 153, 253],\n"," 991: [3949, 55820, 1213, 7361, 858, 5147, 6874, 2858, 2959, 923],\n"," 992: [786, 708, 1210, 362, 1028, 1029, 79, 1035, 1012, 1022],\n"," 993: [2571, 2959, 296, 7153, 318, 2858, 2762, 356, 593, 589],\n"," 994: [261, 265, 372, 537, 247, 531, 147, 427, 481, 45],\n"," 995: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 593],\n"," 996: [587, 440, 364, 17, 282, 480, 588, 497, 595, 141],\n"," 997: [260, 608, 832, 802, 104, 805, 1210, 1356, 1393, 58],\n"," 998: [1732, 318, 1500, 2692, 5004, 4086, 1682, 4242, 5303, 1],\n"," 999: [1702, 158, 1713, 239, 256, 2142, 2083, 2089, 1196, 1373],\n"," 1001: [380, 593, 349, 590, 318, 165, 296, 292, 434, 47],\n"," 1002: [1, 733, 608, 62, 648, 494, 832, 36, 95, 25],\n"," 1003: [2581,\n"," 3081,\n"," 1210,\n"," 1777,\n"," 2485,\n"," 2716,\n"," 2125,\n"," 3578,\n"," 2394,\n"," 2396],\n"," 1004: [527, 1080, 919, 3545, 3534, 2971, 5504, 1968, 8917, 3101],\n"," 1005: [34, 508, 11, 590, 17, 282, 497, 266, 261, 509],\n"," 1006: [296, 50, 36, 25, 223, 593, 293, 47, 246, 111],\n"," 1007: [356, 2355, 1265, 2567, 1136, 1215, 1196, 1220, 1060, 1343],\n"," 1008: [3481, 4027, 2542, 4034, 1258, 1206, 2502, 1089, 4011, 223],\n"," 1009: [4993,\n"," 4963,\n"," 3147,\n"," 3578,\n"," 5349,\n"," 6539,\n"," 2762,\n"," 2273,\n"," 4701,\n"," 3793],\n"," 1011: [762, 662, 280, 1476, 828, 467, 8327, 836, 2797, 1242],\n"," 1012: [356, 1625, 3408, 1610, 2762, 1833, 50, 2706, 1249, 2683],\n"," 1013: [2959, 3578, 4226, 2858, 2762, 1036, 47, 1291, 2329, 1214],\n"," 1014: [1193, 923, 912, 750, 1208, 903, 111, 913, 1221, 1136],\n"," 1015: [3468, 4034, 5013, 3022, 3983, 4226, 919, 1084, 3307, 694],\n"," 1016: [904, 541, 858, 1252, 912, 750, 1208, 903, 908, 913],\n"," 1017: [2571, 2959, 296, 3578, 318, 4226, 2858, 2762, 356, 2028],\n"," 1018: [4027, 2692, 2502, 8636, 4979, 5902, 4262, 50, 1748, 923],\n"," 1019: [62, 1073, 32, 494, 832, 36, 25, 6, 17, 802],\n"," 1020: [1079, 1270, 2797, 1097, 1259, 2791, 919, 1641, 3039, 1285],\n"," 1021: [1193, 904, 541, 1252, 912, 608, 750, 1208, 903, 908],\n"," 1022: [1193, 356, 2762, 1080, 2028, 2858, 3545, 3534, 2971, 32],\n"," 1023: [296, 318, 1210, 4226, 2762, 356, 2028, 4306, 589, 1036],\n"," 1025: [1193, 904, 541, 1252, 750, 1208, 903, 527, 913, 1206],\n"," 1026: [6711, 2858, 2542, 2997, 4034, 1732, 2692, 1206, 32, 3996],\n"," 1027: [2571, 5952, 4993, 1196, 7153, 318, 1210, 2858, 2762, 356],\n"," 1028: [589, 318, 110, 588, 595, 377, 364, 344, 47, 253],\n"," 1029: [36, 25, 223, 527, 32, 608, 293, 246, 111, 300],\n"," 1030: [4963,\n"," 3147,\n"," 3578,\n"," 5349,\n"," 6377,\n"," 4701,\n"," 4025,\n"," 4246,\n"," 4896,\n"," 4886],\n"," 1031: [457, 380, 150, 349, 589, 318, 588, 296, 161, 356],\n"," 1032: [1, 260, 733, 608, 62, 141, 32, 832, 36, 25],\n"," 1033: [2571, 5952, 2959, 4993, 7153, 3578, 4226, 2858, 1036, 858],\n"," 1034: [2571, 2959, 296, 4993, 1196, 318, 1210, 4226, 2858, 2762],\n"," 1035: [2140, 2087, 2143, 1006, 1354, 1967, 3020, 2161, 4878, 912],\n"," 1037: [508, 11, 440, 457, 527, 590, 110, 364, 318, 17],\n"," 1038: [786, 362, 79, 1198, 852, 1291, 1367, 837, 653, 745],\n"," 1039: [1196, 1240, 589, 1200, 2571, 1198, 1214, 32, 1374, 1356],\n"," 1040: [466, 104, 543, 88, 520, 1552, 2717, 2735, 743, 1982],\n"," 1041: [356, 4306, 1270, 480, 32, 1136, 1240, 1222, 541, 1213],\n"," 1043: [260, 733, 608, 1073, 832, 802, 104, 805, 653, 1210],\n"," 1044: [608, 62, 141, 494, 832, 36, 6, 17, 104, 805],\n"," 1045: [5952,\n"," 1214,\n"," 1200,\n"," 3996,\n"," 480,\n"," 1240,\n"," 1080,\n"," 33794,\n"," 2716,\n"," 4973],\n"," 1046: [589, 318, 110, 588, 161, 10, 377, 292, 364, 329],\n"," 1047: [1222,\n"," 1234,\n"," 5147,\n"," 4873,\n"," 1080,\n"," 2585,\n"," 55805,\n"," 3507,\n"," 6339,\n"," 5792],\n"," 1048: [3578, 356, 260, 110, 858, 527, 1214, 3996, 480, 1136],\n"," 1050: [36, 608, 246, 111, 112, 232, 235, 307, 290, 306],\n"," 1051: [608, 32, 494, 832, 36, 95, 25, 6, 805, 653],\n"," 1052: [21, 2028, 1004, 274, 2195, 1092, 575, 1610, 2403, 3623],\n"," 1053: [2028, 593, 1374, 1356, 1617, 858, 1199, 296, 608, 457]})"]},"metadata":{},"execution_count":10}],"source":["from collections import defaultdict\n","\n","# 각 사용자에 대한 추천 리스트를 작성한다\n","# 각 사용자의 소속 확률이 가장 높은 토픽을 얻고, 해당 토픽 안에서 확률이 높은 아이템을 저장해 나간다\n","\n","user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","\n","pred_user2items = defaultdict(list)\n","for i, (user_id, data) in enumerate(movielens_train_high_rating.groupby(\"user_id\")):\n"," evaluated_movie_ids = user_evaluated_movies[user_id]\n"," # 사용자의 소속 확률이 가장 높은 토픽을 얻는다\n"," user_topic = sorted(lda_topics[i], key=lambda x: -x[1])[0][0]\n"," # 해당 토픽 안에서 확률이 높은 아이템을 얻는다\n"," topic_movies = lda_model.get_topic_terms(user_topic, topn=len(movies))\n","\n"," for token_id, score in topic_movies:\n"," movie_id = int(common_dictionary.id2token[token_id])\n"," if movie_id not in evaluated_movie_ids:\n"," pred_user2items[user_id].append(movie_id)\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","\n","pred_user2items"]},{"cell_type":"code","execution_count":11,"id":"1701bd43","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":288},"id":"1701bd43","executionInfo":{"status":"ok","timestamp":1672118441268,"user_tz":-540,"elapsed":24,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"ee59bd31-4381-4245-f7ae-752409de578c"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","8381 2 1210 4.0 868245644 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","8381 [Action, Adventure, Sci-Fi] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":11}],"source":["# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n","movielens_train_high_rating[movielens_train_high_rating.user_id==2]"]},{"cell_type":"code","execution_count":12,"id":"16eddf46","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"16eddf46","executionInfo":{"status":"ok","timestamp":1672118441268,"user_tz":-540,"elapsed":18,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"da0309a9-ae28-406a-bcf1-f5d45c559abc"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n","1173 1198 Raiders of the Lost Ark (Indiana Jones and the... \n","1212 1240 Terminator, The (1984) \n","\n"," genre \\\n","1171 [Action, Adventure, Sci-Fi] \n","1173 [Action, Adventure] \n","1212 [Action, Sci-Fi, Thriller] \n","\n"," tag \n","1171 [lucas, george lucas, george lucas, gfei own i... \n","1173 [egypt, lucas, seen more than once, dvd collec... \n","1212 [arnold schwarzenegger, sci-fi, time travel, d... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
11731198Raiders of the Lost Ark (Indiana Jones and the...[Action, Adventure][egypt, lucas, seen more than once, dvd collec...
12121240Terminator, The (1984)[Action, Sci-Fi, Thriller][arnold schwarzenegger, sci-fi, time travel, d...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":12}],"source":["# user_id=2에 대한 추천(1198, 1196, 1240)\n","movies[movies.movie_id.isin([1198, 1196, 1240])]"]}],"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d45967ea", + "metadata": { + "id": "d45967ea" + }, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/LDA_collaboration.ipynb)" + ] + }, + { + "cell_type": "markdown", + "id": "942a9897", + "metadata": { + "id": "942a9897" + }, + "source": [ + "# LDA를 행동 데이터에 적용" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "b8cb8f0b", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 4818, + "status": "ok", + "timestamp": 1672118267114, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "b8cb8f0b", + "outputId": "ca848f2f-0377-4da9-e770-5b4f7e92d5b6" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-12-27 05:15:58-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n", + "Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n", + "Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 65566137 (63M) [application/zip]\n", + "Saving to: ‘../data/ml-10m.zip’\n", + "\n", + "ml-10m.zip 100%[===================>] 62.53M 63.6MB/s in 1.0s \n", + "\n", + "2022-12-27 05:15:59 (63.6 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n", + "\n", + "Archive: ../data/ml-10m.zip\n", + " creating: ../data/ml-10M100K/\n", + " inflating: ../data/ml-10M100K/allbut.pl \n", + " inflating: ../data/ml-10M100K/movies.dat \n", + " inflating: ../data/ml-10M100K/ratings.dat \n", + " inflating: ../data/ml-10M100K/README.html \n", + " inflating: ../data/ml-10M100K/split_ratings.sh \n", + " inflating: ../data/ml-10M100K/tags.dat \n" + ] + } + ], + "source": [ + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", + "\n", + "# 데이터 다운로드와 압축 풀기\n", + "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", + "!unzip -n ../data/ml-10m.zip -d ../data/" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "6769fb75", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 65965, + "status": "ok", + "timestamp": 1672118333071, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "6769fb75", + "outputId": "5ab1c72d-1ab3-46bb-ce4e-9463a2c6e6a2" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "unique_users=1000, unique_movies=6736\n" + ] + } + ], + "source": [ + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", + "import pandas as pd\n", + "\n", + "# movieID와 제목만 사용\n", + "m_cols = ['movie_id', 'title', 'genre']\n", + "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", + "\n", + "# genre를 list 형식으로 저장한다\n", + "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", + "\n", + "\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", + "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", + "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", + "\n", + "# tag를 소문자로 바꾼다\n", + "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", + "\n", + "\n", + "# tag를 영화별로 list 형식으로 저장한다\n", + "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", + "\n", + "# 태그 정보를 결합한다\n", + "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", + "\n", + "# 평갓값 데이터만 로딩한다\n", + "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", + "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", + "\n", + "\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", + "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", + "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", + "\n", + "\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", + "movielens = ratings.merge(movies, on='movie_id')\n", + "\n", + "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", + "\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", + "\n", + "movielens['timestamp_rank'] = movielens.groupby(\n", + " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", + "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", + "movielens_test = movielens[movielens['timestamp_rank']<= 5]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "f650f9d6", + "metadata": { + "executionInfo": { + "elapsed": 31, + "status": "ok", + "timestamp": 1672118333072, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "f650f9d6" + }, + "outputs": [], + "source": [ + "# 인자 수\n", + "factors = 50\n", + "# 에폭 수\n", + "n_epochs = 30" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "f703bf73", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 7337, + "status": "ok", + "timestamp": 1672118340381, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "f703bf73", + "outputId": "47c9ad1a-7786-4285-ecbb-b86ca5cf30de" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", + "Collecting gensim==4.0.1\n", + " Downloading gensim-4.0.1-cp38-cp38-manylinux1_x86_64.whl (23.9 MB)\n", + "\u001b[K |████████████████████████████████| 23.9 MB 1.6 MB/s \n", + "\u001b[?25hRequirement already satisfied: numpy>=1.11.3 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.21.6)\n", + "Requirement already satisfied: scipy>=0.18.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.7.3)\n", + "Requirement already satisfied: smart-open>=1.8.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (6.3.0)\n", + "Installing collected packages: gensim\n", + " Attempting uninstall: gensim\n", + " Found existing installation: gensim 3.6.0\n", + " Uninstalling gensim-3.6.0:\n", + " Successfully uninstalled gensim-3.6.0\n", + "Successfully installed gensim-4.0.1\n" + ] + } + ], + "source": [ + "!pip install gensim==4.0.1" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "d5348432", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 1656, + "status": "ok", + "timestamp": 1672118342033, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "d5348432", + "outputId": "3c8d0dc9-8126-4750-d870-08019b81e513" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.8/dist-packages/gensim/similarities/__init__.py:15: UserWarning: The gensim.similarities.levenshtein submodule is disabled, because the optional Levenshtein package is unavailable. Install Levenhstein (e.g. `pip install python-Levenshtein`) to suppress this warning.\n", + " warnings.warn(msg)\n" + ] + } + ], + "source": [ + "from gensim.corpora.dictionary import Dictionary\n", + "\n", + "# LDA 입력으로 사용할 데이터를 작성한다\n", + "lda_data = []\n", + "movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n", + "for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n", + " lda_data.append(data[\"movie_id\"].apply(str).tolist())\n", + "\n", + "common_dictionary = Dictionary(lda_data)\n", + "common_corpus = [common_dictionary.doc2bow(text) for text in lda_data]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d0f0e231", + "metadata": { + "executionInfo": { + "elapsed": 93308, + "status": "ok", + "timestamp": 1672118435326, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "d0f0e231" + }, + "outputs": [], + "source": [ + "import gensim\n", + "lda_model = gensim.models.LdaModel(\n", + " common_corpus, id2word=common_dictionary, num_topics=factors, passes=n_epochs\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "d568841a", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 41, + "status": "ok", + "timestamp": 1672118435327, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "d568841a", + "outputId": "cfc9c430-1bea-4f52-d193-73e15a1ac543" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[(2, 0.13143347), (42, 0.81523174)]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 각 사용자의 소속 토픽이 저장된다\n", + "lda_topics = lda_model[common_corpus]\n", + "\n", + "# 예: 어떤 사용자의 소속 토픽\n", + "lda_topics[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "aa768039", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 33, + "status": "ok", + "timestamp": 1672118435327, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "aa768039", + "outputId": "00099179-91eb-4fd9-80b6-33b281b38e6c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "movie_id=2858, title=American Beauty (1999), score=0.014902905561029911\n", + "movie_id=4022, title=Cast Away (2000), score=0.013141673058271408\n", + "movie_id=356, title=Forrest Gump (1994), score=0.009344562888145447\n", + "movie_id=1625, title=Game, The (1997), score=0.009039949625730515\n", + "movie_id=3408, title=Erin Brockovich (2000), score=0.008023954927921295\n", + "movie_id=1610, title=Hunt for Red October, The (1990), score=0.007280151825398207\n", + "movie_id=2762, title=Sixth Sense, The (1999), score=0.007244058884680271\n", + "movie_id=1833, title=Mercury Rising (1998), score=0.007027590647339821\n", + "movie_id=50, title=Usual Suspects, The (1995), score=0.00636146729812026\n", + "movie_id=2706, title=American Pie (1999), score=0.006130032241344452\n" + ] + } + ], + "source": [ + "# topic0인 영화 목록\n", + "for token_id, score in lda_model.get_topic_terms(0, topn=10):\n", + " movie_id = int(common_dictionary.id2token[token_id])\n", + " title = movies[movies.movie_id == movie_id].title.tolist()[0]\n", + " print(f'movie_id={movie_id}, title={title}, score={score}')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "9eb2910f", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 29, + "status": "ok", + "timestamp": 1672118435328, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "9eb2910f", + "outputId": "5ecbcb33-daaa-422c-a155-abdcc16844d3" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[(0, 0.010000083),\n", + " (1, 0.010000083),\n", + " (2, 0.010000083),\n", + " (3, 0.010000083),\n", + " (4, 0.010000083),\n", + " (5, 0.010000083),\n", + " (6, 0.010000083),\n", + " (7, 0.010000083),\n", + " (8, 0.010000083),\n", + " (9, 0.010000083),\n", + " (10, 0.010000083),\n", + " (11, 0.010000083),\n", + " (12, 0.010000083),\n", + " (13, 0.010000083),\n", + " (14, 0.010000083),\n", + " (15, 0.010000083),\n", + " (16, 0.010000083),\n", + " (17, 0.010000083),\n", + " (18, 0.010000083),\n", + " (19, 0.010000083),\n", + " (20, 0.010000083),\n", + " (21, 0.010000083),\n", + " (22, 0.010000083),\n", + " (23, 0.010000083),\n", + " (24, 0.010000083),\n", + " (25, 0.010000083),\n", + " (26, 0.010000083),\n", + " (27, 0.010000083),\n", + " (28, 0.010000083),\n", + " (29, 0.010000083),\n", + " (30, 0.010000083),\n", + " (31, 0.010000083),\n", + " (32, 0.010000083),\n", + " (33, 0.010000083),\n", + " (34, 0.010000083),\n", + " (35, 0.010000083),\n", + " (36, 0.010000083),\n", + " (37, 0.010000083),\n", + " (38, 0.010000083),\n", + " (39, 0.010000083),\n", + " (40, 0.010000083),\n", + " (41, 0.50999594),\n", + " (42, 0.010000083),\n", + " (43, 0.010000083),\n", + " (44, 0.010000083),\n", + " (45, 0.010000083),\n", + " (46, 0.010000083),\n", + " (47, 0.010000083),\n", + " (48, 0.010000083),\n", + " (49, 0.010000083)]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 스타워즈/에피소드 5(movie_id=1196)의 토픽(각 토픽에 소속될 확률)\n", + "lda_model[common_dictionary.doc2bow([\"1196\"])]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "8de0ac42", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 5964, + "status": "ok", + "timestamp": 1672118441267, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "8de0ac42", + "outputId": "325da666-9b8b-43b7-ce14-dc81474631fd" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "defaultdict(list,\n", + " {1: [457, 380, 593, 150, 349, 590, 318, 165, 110, 296],\n", + " 2: [457, 380, 593, 150, 480, 349, 589, 318, 165, 588],\n", + " 3: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 356, 2762, 2273],\n", + " 4: [457, 593, 318, 296, 356, 10, 47, 50, 1, 474],\n", + " 5: [1193, 904, 1252, 750, 1208, 908, 913, 1136, 260, 1304],\n", + " 6: [1240, 1210, 589, 1200, 1214, 541, 593, 1374, 1356, 1617],\n", + " 7: [1193, 858, 750, 1208, 527, 111, 1247, 1221, 1136, 1206],\n", + " 8: [3481, 4034, 4973, 1258, 2692, 7361, 2502, 5902, 296, 4262],\n", + " 9: [260, 1196, 1240, 1210, 589, 1200, 2571, 1198, 1214, 541],\n", + " 10: [1465, 3082, 1610, 474, 2804, 4709, 3469, 2197, 1792, 2989],\n", + " 11: [1307, 1197, 1079, 1234, 1278, 1220, 2797, 1968, 1259, 2791],\n", + " 12: [720, 1265, 852, 2891, 3254, 4448, 4002, 608, 4223, 4963],\n", + " 13: [2571, 4963, 3147, 5349, 6539, 356, 2762, 2273, 6377, 4701],\n", + " 14: [2571, 4993, 4963, 3147, 3578, 1580, 356, 2762, 2273, 4701],\n", + " 16: [589, 2571, 1198, 2028, 593, 1374, 1356, 1617, 1291, 858],\n", + " 17: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 6539, 356, 2762],\n", + " 18: [5952, 4993, 7153, 4226, 50, 858, 2329, 1200, 6874, 4886],\n", + " 19: [1028, 2797, 2406, 1968, 2791, 2100, 3039, 1784, 1663, 2918],\n", + " 22: [457, 590, 318, 10, 434, 1, 474, 204, 442, 733],\n", + " 23: [597, 150, 356, 587, 34, 508, 357, 11, 440, 590],\n", + " 24: [141, 36, 95, 25, 653, 1393, 58, 52, 14, 783],\n", + " 26: [593, 480, 318, 296, 356, 595, 364, 253, 231, 50],\n", + " 27: [1, 260, 62, 141, 832, 36, 25, 6, 17, 104],\n", + " 28: [1307, 1079, 1234, 1220, 1028, 2797, 1259, 2791, 1380, 914],\n", + " 29: [2572, 2683, 2762, 2605, 2706, 2581, 3081, 1210, 1777, 2485],\n", + " 30: [587, 508, 457, 350, 236, 474, 497, 39, 349, 21],\n", + " 33: [260, 733, 494, 832, 25, 802, 104, 805, 653, 1210],\n", + " 34: [2572, 3081, 2716, 2396, 1586, 2336, 2858, 1580, 2353, 2541],\n", + " 35: [5952, 296, 7153, 3578, 318, 356, 593, 260, 1036, 1198],\n", + " 36: [2901, 3005, 2320, 1620, 2997, 3708, 1608, 1258, 1298, 4661],\n", + " 37: [1196, 2858, 2762, 356, 260, 1198, 858, 2329, 527, 1270],\n", + " 38: [6539, 2273, 4701, 3793, 4886, 780, 4306, 3977, 2028, 3052],\n", + " 40: [904, 541, 858, 1252, 923, 912, 750, 1208, 903, 908],\n", + " 41: [1234, 1278, 1097, 2791, 1136, 1394, 1663, 1297, 1304, 342],\n", + " 42: [150, 356, 587, 34, 508, 593, 339, 11, 440, 457],\n", + " 43: [150, 508, 593, 357, 457, 527, 377, 590, 110, 364],\n", + " 44: [110, 1968, 2718, 5563, 6281, 5400, 4447, 5418, 2114, 2607],\n", + " 45: [5952, 2959, 296, 4993, 7153, 3578, 318, 1210, 4226, 4306],\n", + " 46: [2571, 5952, 2959, 296, 4993, 1196, 3578, 318, 1210, 4226],\n", + " 47: [356, 47, 527, 1704, 480, 1222, 4886, 1089, 1213, 6377],\n", + " 48: [356, 2355, 1265, 2567, 1136, 1215, 1196, 1220, 1060, 1343],\n", + " 50: [349, 161, 316, 292, 434, 329, 47, 50, 1, 474],\n", + " 51: [3468, 3983, 1084, 694, 4234, 3456, 762, 1250, 1964, 2677],\n", + " 52: [541, 858, 923, 912, 608, 750, 903, 908, 527, 111],\n", + " 53: [1097, 1193, 356, 919, 3545, 2971, 32, 5504, 1968, 8917],\n", + " 54: [595, 153, 253, 1, 527, 32, 204, 442, 225, 208],\n", + " 55: [904, 541, 858, 1252, 923, 912, 608, 750, 1208, 903],\n", + " 56: [5072, 2905, 1554, 34542, 4144, 4422, 7044, 4085, 1132, 3552],\n", + " 57: [466, 543, 520, 2717, 2735, 1982, 5254, 2953, 2002, 2402],\n", + " 58: [608, 858, 1094, 2194, 3104, 2289, 457, 1954, 1674, 1299],\n", + " 59: [380, 480, 589, 110, 588, 161, 356, 10, 377, 292],\n", + " 60: [904, 912, 750, 903, 908, 111, 913, 1207, 1206, 924],\n", + " 61: [1307, 2997, 3148, 2804, 2918, 1259, 778, 1704, 1220, 2028],\n", + " 62: [457, 480, 589, 110, 356, 377, 364, 47, 50, 1],\n", + " 63: [541, 1252, 923, 608, 750, 1208, 903, 908, 111, 913],\n", + " 64: [62, 141, 648, 95, 25, 17, 104, 1210, 112, 1356],\n", + " 65: [1358, 2028, 2324, 608, 858, 1617, 593, 1094, 2762, 2194],\n", + " 66: [55820, 1234, 858, 5147, 923, 4873, 44195, 33880, 111, 4973],\n", + " 67: [150, 480, 589, 356, 377, 1, 500, 474, 527, 32],\n", + " 68: [858, 912, 750, 527, 111, 1221, 1136, 1304, 910, 1213],\n", + " 69: [904, 541, 858, 1252, 923, 608, 750, 1208, 903, 111],\n", + " 70: [923, 608, 1208, 903, 111, 1247, 1136, 260, 1206, 1219],\n", + " 71: [457, 593, 480, 589, 590, 318, 110, 588, 161, 356],\n", + " 72: [150, 589, 318, 110, 296, 161, 316, 377, 592, 364],\n", + " 73: [1358, 1704, 590, 2324, 1961, 1617, 1242, 2289, 2243, 36],\n", + " 74: [371, 318, 544, 68, 514, 270, 71, 1302, 248, 440],\n", + " 75: [2571, 5952, 2959, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n", + " 76: [588, 356, 364, 253, 50, 500, 527, 454, 32, 288],\n", + " 77: [150, 318, 110, 161, 329, 50, 500, 474, 32, 34],\n", + " 78: [4993, 2329, 5952, 5349, 293, 4886, 4878, 4011, 47, 8636],\n", + " 79: [527, 111, 353, 112, 232, 307, 290, 6, 306, 16],\n", + " 80: [480, 589, 590, 588, 356, 595, 10, 377, 592, 292],\n", + " 81: [1307, 1197, 1079, 1234, 1278, 1220, 1270, 1028, 2797, 1097],\n", + " 82: [2959, 1196, 7153, 3578, 318, 1210, 2858, 2762, 356, 2028],\n", + " 83: [904, 1252, 1208, 903, 527, 111, 1247, 1206, 1267, 1230],\n", + " 84: [1073, 832, 6, 802, 104, 805, 653, 1210, 112, 1356],\n", + " 85: [2901, 1732, 1573, 2976, 1617, 2959, 1552, 1917, 3753, 3005],\n", + " 86: [260, 541, 32, 593, 1617, 924, 1199, 296, 608, 50],\n", + " 87: [2706, 1777, 2485, 2125, 2571, 2394, 1586, 2355, 780, 2424],\n", + " 88: [3147, 4246, 4896, 3753, 4306, 4995, 6378, 1704, 2028, 2763],\n", + " 89: [457, 593, 480, 349, 589, 590, 356, 595, 316, 10],\n", + " 90: [95, 25, 17, 1210, 112, 1356, 1393, 58, 7, 52],\n", + " 91: [858, 1252, 908, 111, 1221, 1304, 1225, 910, 1213, 593],\n", + " 92: [2959, 296, 4306, 593, 50, 858, 2329, 1214, 1200, 3996],\n", + " 93: [5464, 610, 2987, 1089, 5679, 7445, 2140, 1968, 1172, 7254],\n", + " 94: [597, 34, 357, 339, 11, 364, 17, 282, 236, 497],\n", + " 95: [457, 364, 47, 50, 474, 527, 34, 204, 442, 225],\n", + " 96: [1704, 2324, 318, 1094, 2289, 2243, 36, 1641, 1299, 2355],\n", + " 97: [446, 317, 500, 2141, 2046, 3409, 92, 708, 919, 2803],\n", + " 98: [733, 62, 736, 141, 1073, 32, 494, 832, 95, 17],\n", + " 99: [904, 1252, 923, 912, 608, 1208, 903, 908, 913, 1247],\n", + " 100: [2959, 4993, 7153, 3578, 4226, 2762, 4306, 1036, 2329, 1214],\n", + " 101: [10, 527, 288, 442, 21, 733, 586, 786, 420, 6],\n", + " 102: [380, 593, 349, 589, 590, 165, 110, 595, 377, 364],\n", + " 103: [1193, 904, 858, 1252, 912, 903, 908, 913, 1221, 1207],\n", + " 104: [1358, 1704, 2028, 590, 608, 2396, 1094, 2762, 2194, 3104],\n", + " 105: [1240, 589, 1200, 2571, 541, 2028, 593, 1374, 1356, 1617],\n", + " 106: [2997, 2683, 858, 1252, 1230, 1221, 1213, 2810, 52, 2706],\n", + " 107: [1198, 1214, 593, 1291, 1610, 1036, 2916, 296, 608, 457],\n", + " 108: [3468, 1683, 4034, 5013, 3022, 3983, 4226, 2858, 919, 1617],\n", + " 110: [150, 349, 165, 110, 588, 296, 161, 595, 316, 10],\n", + " 111: [589, 590, 595, 377, 364, 329, 47, 231, 50, 1],\n", + " 112: [1148, 1617, 2858, 1952, 1284, 2396, 2395, 720, 1953, 3435],\n", + " 113: [2572, 2683, 2706, 3081, 1210, 1777, 2125, 3578, 2571, 2394],\n", + " 114: [3949, 55820, 1213, 1222, 7361, 5147, 6874, 2858, 2959, 923],\n", + " 115: [2571, 5952, 2959, 4993, 1196, 7153, 1210, 4226, 2028, 4306],\n", + " 116: [508, 457, 527, 17, 474, 497, 39, 266, 261, 509],\n", + " 117: [1307, 1079, 1234, 1278, 1220, 1270, 1028, 2797, 1097, 1259],\n", + " 118: [588, 595, 364, 1, 500, 34, 339, 733, 367, 586],\n", + " 119: [50, 36, 527, 32, 608, 246, 300, 112, 232, 150],\n", + " 120: [733, 608, 141, 32, 648, 494, 832, 36, 25, 6],\n", + " 121: [260, 1206, 1225, 1212, 1234, 1148, 2019, 1276, 1214, 1254],\n", + " 122: [1028, 914, 2100, 342, 1580, 1282, 2407, 1777, 902, 2081],\n", + " 123: [370, 318, 1380, 1207, 3053, 188, 2599, 1203, 432, 2081],\n", + " 124: [4226, 2959, 3481, 2858, 2542, 2997, 4034, 4973, 2329, 1258],\n", + " 125: [2329, 7361, 4878, 778, 8636, 4262, 1748, 2395, 8874, 8464],\n", + " 126: [1080, 4973, 4878, 7361, 750, 778, 3949, 1206, 1274, 5618],\n", + " 127: [539, 597, 150, 356, 587, 34, 508, 593, 357, 339],\n", + " 128: [508, 440, 377, 364, 236, 474, 588, 454, 62, 39],\n", + " 129: [1625, 3408, 1610, 1833, 50, 1249, 593, 3101, 1552, 479],\n", + " 130: [904, 923, 912, 750, 903, 908, 111, 913, 1247, 1221],\n", + " 131: [318, 32, 608, 293, 111, 555, 337, 300, 232, 307],\n", + " 132: [150, 480, 589, 110, 588, 161, 10, 377, 292, 364],\n", + " 134: [260, 733, 608, 494, 832, 36, 25, 17, 802, 104],\n", + " 135: [2571, 2028, 1617, 1610, 2916, 1199, 608, 50, 1676, 318],\n", + " 136: [541, 750, 903, 908, 527, 111, 913, 1247, 1221, 260],\n", + " 137: [3147, 6539, 356, 2273, 6377, 4246, 2353, 4896, 4886, 5299],\n", + " 138: [1291, 858, 527, 3996, 1270, 480, 4886, 1, 1213, 1221],\n", + " 139: [4226, 4027, 6711, 2542, 2997, 4993, 4034, 4973, 5952, 1732],\n", + " 140: [2571, 5952, 2959, 296, 4993, 1196, 3578, 1210, 2762, 356],\n", + " 141: [539, 597, 150, 587, 34, 508, 339, 11, 440, 110],\n", + " 142: [296, 50, 318, 223, 527, 293, 47, 246, 555, 337],\n", + " 143: [4027, 6711, 2692, 7361, 293, 8636, 6502, 5902, 541, 50],\n", + " 144: [2502, 4886, 4979, 3897, 923, 1921, 3911, 1246, 2761, 1784],\n", + " 145: [380, 480, 349, 589, 318, 165, 110, 161, 595, 316],\n", + " 148: [2571, 1198, 2028, 593, 1356, 1617, 924, 1291, 858, 1610],\n", + " 149: [4226, 3481, 4027, 6711, 2542, 4034, 4973, 2329, 1258, 2692],\n", + " 150: [296, 50, 318, 36, 25, 223, 32, 593, 608, 293],\n", + " 151: [356, 1271, 5418, 2797, 1307, 1721, 2858, 4995, 1246, 3083],\n", + " 152: [1704, 590, 2324, 608, 1242, 1094, 3104, 2289, 2243, 1954],\n", + " 153: [2571, 5952, 4993, 1196, 7153, 3578, 318, 1210, 4226, 2858],\n", + " 154: [5952, 4993, 7153, 3578, 318, 4226, 2858, 2028, 4306, 858],\n", + " 155: [7153, 4226, 1291, 527, 1200, 6874, 6539, 1222, 4886, 6377],\n", + " 156: [1, 260, 733, 494, 832, 36, 95, 17, 802, 805],\n", + " 157: [608, 62, 141, 25, 6, 17, 1210, 112, 1356, 58],\n", + " 158: [539, 597, 150, 356, 587, 508, 357, 339, 11, 527],\n", + " 159: [2140, 2959, 7254, 2143, 1006, 1354, 1967, 3020, 2161, 2683],\n", + " 160: [466, 104, 543, 88, 520, 2717, 743, 1982, 724, 1562],\n", + " 161: [356, 2028, 4306, 1036, 858, 2329, 1704, 480, 32, 1222],\n", + " 162: [318, 4226, 593, 1036, 50, 1291, 2329, 1200, 1704, 1270],\n", + " 163: [318, 608, 293, 555, 337, 353, 300, 112, 232, 307],\n", + " 164: [110, 161, 364, 329, 253, 50, 1, 34, 185, 204],\n", + " 165: [1584,\n", + " 431,\n", + " 4308,\n", + " 45186,\n", + " 53322,\n", + " 214,\n", + " 1213,\n", + " 49530,\n", + " 306,\n", + " 31696],\n", + " 166: [589, 2571, 1198, 541, 32, 2028, 1374, 1356, 1617, 1291],\n", + " 167: [260, 733, 1073, 494, 832, 17, 802, 805, 1210, 1356],\n", + " 168: [19, 2028, 1784, 1004, 274, 1092, 575, 1610, 2403, 3578],\n", + " 169: [1625, 3408, 1610, 2762, 1833, 50, 1249, 593, 3101, 1552],\n", + " 170: [5952, 4993, 1196, 7153, 3578, 1210, 2028, 593, 589, 260],\n", + " 171: [2571, 5952, 4993, 1196, 7153, 3578, 1210, 4226, 4306, 593],\n", + " 172: [380, 593, 349, 590, 318, 296, 161, 356, 595, 316],\n", + " 173: [110, 17, 282, 497, 39, 266, 261, 509, 224, 367],\n", + " 174: [342, 261, 372, 537, 531, 147, 427, 481, 45, 452],\n", + " 175: [908, 1247, 1207, 1304, 1267, 1230, 910, 1148, 1276, 1254],\n", + " 176: [480, 349, 589, 318, 110, 588, 296, 356, 595, 10],\n", + " 177: [260, 733, 832, 17, 802, 104, 805, 653, 1210, 1356],\n", + " 178: [1265, 2567, 1215, 1060, 1343, 2571, 368, 2001, 1500, 2000],\n", + " 179: [4226, 2959, 3481, 6711, 2858, 2997, 4034, 4973, 2329, 5952],\n", + " 180: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210],\n", + " 182: [457, 1674, 260, 1610, 1584, 1198, 1210, 2871, 1036, 1200],\n", + " 183: [2324, 608, 1961, 858, 1617, 1242, 2762, 2194, 3104, 2289],\n", + " 184: [1466, 1673, 25, 1120, 290, 1912, 1041, 3125, 2718, 5563],\n", + " 185: [1230, 912, 527, 3244, 3707, 260, 1233, 2918, 1240, 1358],\n", + " 186: [1193, 858, 923, 912, 750, 1208, 908, 527, 913, 1247],\n", + " 187: [2571, 5952, 2959, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n", + " 188: [318, 165, 588, 161, 595, 10, 377, 292, 364, 47],\n", + " 189: [141, 1073, 648, 832, 95, 25, 802, 104, 653, 1210],\n", + " 190: [4226, 3481, 4027, 6711, 2858, 2542, 2997, 4034, 4973, 2329],\n", + " 191: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 318],\n", + " 192: [1234, 5147, 4873, 33880, 1080, 555, 16, 1, 2585, 55805],\n", + " 193: [364, 17, 62, 595, 141, 261, 509, 277, 224, 105],\n", + " 194: [733, 608, 494, 36, 6, 805, 653, 112, 3, 58],\n", + " 195: [1683, 694, 762, 40583, 3730, 1964, 3006, 3363, 2973, 667],\n", + " 196: [2863, 2804, 2160, 1256, 346, 2363, 2186, 2273, 861, 1278],\n", + " 197: [2683,\n", + " 2268,\n", + " 648,\n", + " 1213,\n", + " 2810,\n", + " 3000,\n", + " 2598,\n", + " 8157,\n", + " 56286,\n", + " 55814],\n", + " 198: [3481, 2542, 2997, 4034, 4973, 4011, 778, 4848, 1219, 5618],\n", + " 199: [480, 349, 589, 318, 110, 161, 356, 10, 364, 47],\n", + " 200: [1, 608, 494, 832, 95, 25, 6, 805, 653, 1210],\n", + " 201: [1961, 318, 1242, 2762, 2194, 3104, 2289, 2243, 1954, 1962],\n", + " 202: [3578, 2959, 2858, 2707, 589, 2571, 4993, 3157, 1176, 4022],\n", + " 203: [2355, 2567, 1968, 2571, 2001, 2396, 2406, 2000, 2706, 1367],\n", + " 204: [1073, 832, 36, 802, 104, 805, 653, 1210, 112, 1356],\n", + " 205: [904, 923, 750, 903, 527, 1247, 1207, 1219, 1304, 1267],\n", + " 206: [1358, 1704, 590, 2324, 1961, 858, 318, 2396, 1242, 1094],\n", + " 207: [356, 587, 357, 339, 11, 457, 110, 17, 350, 236],\n", + " 208: [457, 593, 480, 589, 590, 356, 595, 377, 292, 364],\n", + " 209: [539, 597, 587, 357, 339, 11, 440, 527, 590, 110],\n", + " 210: [5952, 2959, 1196, 356, 2028, 260, 1036, 1198, 47, 50],\n", + " 211: [1193, 541, 923, 750, 1208, 527, 913, 1247, 1136, 1207],\n", + " 212: [1203,\n", + " 4406,\n", + " 5072,\n", + " 7116,\n", + " 3310,\n", + " 1253,\n", + " 39292,\n", + " 2726,\n", + " 7132,\n", + " 3730],\n", + " 213: [4993, 3578, 5349, 1580, 6539, 356, 6377, 4701, 3793, 4246],\n", + " 214: [1234, 1278, 919, 1394, 1663, 1304, 1246, 2109, 1035, 1081],\n", + " 215: [6711, 2329, 6502, 5669, 5377, 4308, 1246, 3471, 3421, 5679],\n", + " 216: [3147, 3578, 6539, 356, 6377, 4701, 4025, 2353, 3753, 4995],\n", + " 217: [356, 34, 508, 357, 527, 377, 110, 364, 318, 500],\n", + " 218: [1265, 852, 3624, 3254, 4448, 3578, 4002, 608, 3745, 4223],\n", + " 219: [1079, 1220, 2797, 2406, 1968, 1259, 2791, 1285, 1136, 1101],\n", + " 220: [904, 912, 1219, 913, 1193, 928, 903, 1198, 920, 1207],\n", + " 221: [2959, 4993, 7153, 3578, 4226, 2762, 4306, 1291, 2329, 1214],\n", + " 222: [1210, 97, 2858, 714, 2571, 1094, 1147, 1304, 924, 1090],\n", + " 223: [324, 534, 2359, 2858, 2336, 1183, 1252, 2997, 532, 1564],\n", + " 224: [260, 733, 832, 802, 805, 653, 1210, 1356, 1393, 58],\n", + " 225: [912, 1219, 1193, 928, 1198, 920, 1207, 1258, 4784, 953],\n", + " 226: [2959, 6711, 2858, 2997, 4034, 4973, 1258, 1732, 2692, 7361],\n", + " 227: [1702, 158, 1713, 239, 256, 2142, 2083, 2089, 1196, 1373],\n", + " 228: [590, 588, 296, 161, 592, 47, 153, 50, 1, 474],\n", + " 229: [62, 494, 832, 36, 95, 6, 17, 802, 104, 653],\n", + " 230: [1193, 904, 858, 903, 908, 111, 1207, 1206, 1225, 924],\n", + " 231: [6985, 7234, 7072, 3742, 1209, 1260, 3307, 1348, 8125, 6666],\n", + " 232: [2571, 2028, 1374, 1356, 1617, 924, 1610, 2916, 1199, 1197],\n", + " 234: [5952, 296, 4993, 1196, 7153, 3578, 318, 1210, 2762, 356],\n", + " 235: [5952, 1196, 1210, 2762, 356, 2028, 4306, 589, 110, 2329],\n", + " 236: [316, 434, 329, 153, 253, 1, 32, 34, 733, 587],\n", + " 237: [589, 541, 32, 2028, 1356, 924, 858, 1610, 1036, 2916],\n", + " 238: [410, 193, 324, 534, 2359, 1183, 1252, 532, 1564, 3112],\n", + " 239: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 6539, 2762, 2273],\n", + " 241: [4027, 2054, 318, 2858, 1019, 1380, 2761, 1193, 1207, 912],\n", + " 242: [608, 1073, 832, 36, 1210, 1393, 3, 58, 7, 52],\n", + " 243: [1721, 3148, 1617, 1961, 778, 1704, 1183, 4350, 15, 62],\n", + " 244: [923, 903, 908, 111, 1221, 1207, 260, 1206, 1219, 1213],\n", + " 245: [3949,\n", + " 55820,\n", + " 1213,\n", + " 1222,\n", + " 7361,\n", + " 1234,\n", + " 5147,\n", + " 6874,\n", + " 2858,\n", + " 2959],\n", + " 246: [4226, 2959, 4027, 6711, 2542, 2997, 4993, 4034, 4973, 5952],\n", + " 247: [349, 318, 110, 50, 1, 474, 527, 32, 185, 204],\n", + " 248: [3578, 2959, 2858, 527, 2707, 589, 2571, 4993, 3157, 1176],\n", + " 249: [3481, 2858, 2997, 4973, 1732, 2692, 3996, 3052, 778, 8636],\n", + " 250: [296, 50, 36, 25, 223, 527, 32, 593, 608, 293],\n", + " 251: [2571, 2028, 1617, 924, 1610, 2916, 1199, 50, 1197, 1676],\n", + " 252: [541, 858, 1252, 923, 750, 1208, 903, 111, 913, 1247],\n", + " 253: [5952, 2959, 296, 4993, 1196, 7153, 318, 1210, 4226, 2762],\n", + " 254: [4993, 7153, 4226, 1036, 1198, 110, 1291, 2329, 1704, 1270],\n", + " 255: [457, 380, 480, 349, 589, 165, 110, 296, 595, 316],\n", + " 256: [1197, 1079, 1234, 1278, 1220, 1270, 1028, 2797, 1097, 1968],\n", + " 257: [5952, 2959, 296, 4993, 1196, 7153, 318, 1210, 4226, 2858],\n", + " 258: [1358, 1704, 2324, 858, 318, 593, 2396, 1242, 1094, 2762],\n", + " 259: [3481, 4027, 2542, 4034, 1732, 1089, 293, 4011, 223, 8636],\n", + " 260: [2571, 2028, 1374, 1617, 1291, 1610, 2916, 1199, 50, 1197],\n", + " 261: [527, 356, 2762, 1080, 919, 2028, 2858, 3534, 5504, 1968],\n", + " 262: [2863, 2948, 2947, 1136, 2160, 2951, 1997, 1256, 5060, 346],\n", + " 263: [7153, 356, 2028, 4306, 6874, 1222, 1089, 4011, 1527, 1580],\n", + " 264: [150, 349, 590, 318, 161, 292, 364, 434, 329, 253],\n", + " 265: [2572, 2683, 2762, 2605, 2706, 2581, 3081, 1210, 1777, 2485],\n", + " 266: [97, 714, 1147, 924, 1090, 4002, 1238, 1235, 1288, 2064],\n", + " 267: [3949, 1213, 4873, 44195, 33880, 3089, 56367, 555, 16, 4878],\n", + " 268: [34, 508, 357, 11, 440, 17, 282, 236, 588, 497],\n", + " 269: [260, 733, 608, 62, 32, 494, 832, 36, 6, 17],\n", + " 270: [1, 608, 62, 736, 832, 36, 95, 6, 802, 104],\n", + " 271: [1200, 2571, 1198, 2028, 593, 1356, 1617, 1291, 858, 1610],\n", + " 272: [6711, 2542, 4973, 1732, 2692, 1206, 32, 1089, 2571, 3052],\n", + " 273: [2959, 296, 1196, 4226, 2762, 356, 4306, 1198, 47, 1291],\n", + " 274: [1968, 1285, 1101, 1297, 2396, 342, 1198, 440, 1291, 1777],\n", + " 275: [2324, 858, 1242, 2194, 3104, 2243, 36, 260, 527, 1271],\n", + " 276: [4027, 3052, 4262, 5618, 2918, 5377, 8464, 5995, 6539, 1246],\n", + " 277: [2571, 2959, 1196, 3578, 318, 1210, 4226, 2858, 2028, 4306],\n", + " 278: [356, 296, 1271, 5418, 2797, 1307, 1721, 318, 2858, 4995],\n", + " 279: [4226, 3481, 6711, 2858, 4993, 4034, 4973, 2329, 1732, 1206],\n", + " 280: [2959, 296, 1196, 3578, 318, 1210, 4226, 2762, 593, 589],\n", + " 281: [253, 1, 733, 196, 48, 111, 160, 555, 198, 1092],\n", + " 282: [141, 832, 6, 104, 1210, 1356, 1393, 58, 52, 788],\n", + " 285: [1196, 1240, 589, 1200, 2571, 1198, 1214, 541, 32, 2028],\n", + " 286: [32, 1356, 1617, 924, 858, 1610, 1199, 296, 608, 1197],\n", + " 287: [593, 349, 589, 318, 165, 296, 161, 10, 377, 292],\n", + " 288: [1193, 541, 858, 1252, 923, 912, 608, 750, 1208, 527],\n", + " 289: [2406, 1380, 1285, 1297, 1282, 2371, 1198, 1291, 2081, 1073],\n", + " 290: [239, 256, 2142, 1373, 1036, 4799, 1206, 107, 1348, 146],\n", + " 291: [4027, 2054, 370, 318, 2858, 1380, 2761, 3053, 912, 188],\n", + " 292: [3481, 2542, 293, 778, 4262, 1748, 4848, 923, 1921, 1219],\n", + " 293: [380, 480, 589, 110, 356, 377, 292, 364, 47, 50],\n", + " 294: [593, 480, 589, 590, 10, 329, 1, 500, 527, 34],\n", + " 295: [1259, 914, 1285, 1101, 1297, 342, 440, 2174, 902, 2081],\n", + " 296: [3481, 1258, 3996, 8636, 4979, 1748, 2395, 1219, 5618, 8874],\n", + " 297: [733, 736, 494, 832, 95, 6, 802, 653, 3, 58],\n", + " 298: [2567, 1136, 1215, 1196, 1220, 1060, 1968, 2571, 368, 2001],\n", + " 300: [2324, 593, 2396, 3104, 457, 2243, 36, 1962, 1674, 34],\n", + " 301: [1193, 904, 903, 908, 111, 913, 1207, 1206, 1219, 1304],\n", + " 302: [2572, 2485, 2716, 2125, 2355, 2710, 2336, 2006, 2700, 1597],\n", + " 303: [1036, 50, 2329, 1704, 1270, 6539, 1089, 1, 6377, 4963],\n", + " 304: [1358, 1704, 2028, 590, 2324, 608, 858, 1617, 318, 593],\n", + " 305: [34, 339, 11, 440, 364, 318, 350, 474, 454, 595],\n", + " 306: [1721, 2997, 3148, 1617, 608, 778, 2028, 1221, 1183, 858],\n", + " 307: [4226, 2959, 3481, 4027, 6711, 2858, 2542, 2997, 4993, 4034],\n", + " 308: [539, 597, 150, 356, 587, 508, 593, 357, 339, 11],\n", + " 309: [733, 608, 1073, 32, 494, 832, 36, 6, 104, 653],\n", + " 310: [1242, 2289, 2243, 2355, 1271, 1090, 1095, 3114, 2916, 2890],\n", + " 311: [457, 593, 589, 318, 110, 296, 161, 10, 377, 292],\n", + " 312: [1617, 1219, 1193, 903, 1198, 920, 1207, 1258, 4784, 953],\n", + " 313: [965, 2186, 1617, 2858, 2935, 931, 1066, 2324, 2208, 929],\n", + " 314: [608, 1208, 913, 1206, 1230, 910, 1213, 924, 1212, 50],\n", + " 315: [17, 236, 474, 497, 141, 266, 21, 509, 22, 277],\n", + " 316: [608, 62, 648, 494, 832, 36, 6, 17, 805, 1210],\n", + " 317: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 318, 593],\n", + " 318: [4226, 2329, 2692, 32, 293, 4878, 223, 6502, 4262, 4848],\n", + " 319: [786, 708, 362, 1028, 1029, 79, 1035, 1012, 1022, 661],\n", + " 320: [318, 1198, 50, 1291, 858, 2329, 1200, 1704, 6874, 1222],\n", + " 321: [150, 590, 318, 165, 110, 161, 10, 377, 434, 47],\n", + " 322: [1197, 1079, 1234, 1278, 1220, 1028, 2797, 1097, 2406, 1968],\n", + " 323: [2804, 2951, 1997, 1256, 346, 2363, 3508, 2273, 2571, 861],\n", + " 324: [296, 1196, 318, 2858, 2762, 356, 2028, 4306, 593, 589],\n", + " 325: [3394, 3861, 2447, 1268, 4571, 2622, 1248, 2248, 2021, 4896],\n", + " 326: [34, 508, 339, 527, 318, 500, 282, 350, 62, 141],\n", + " 327: [141, 832, 36, 6, 17, 104, 805, 653, 112, 3],\n", + " 328: [1210, 1198, 2028, 593, 1356, 1617, 1291, 858, 1610, 1036],\n", + " 329: [1466, 1673, 608, 25, 50, 296, 1120, 290, 1912, 1041],\n", + " 330: [4226, 3481, 4027, 6711, 2997, 4034, 4973, 1258, 1732, 2692],\n", + " 331: [5952, 296, 1196, 3578, 1210, 2762, 356, 2028, 4306, 593],\n", + " 332: [589, 165, 10, 377, 329, 344, 500, 474, 527, 204],\n", + " 333: [2997, 3148, 1617, 2804, 1961, 2918, 1259, 1220, 2028, 1221],\n", + " 334: [1079, 1097, 2791, 914, 1285, 1101, 1265, 1394, 2918, 2396],\n", + " 335: [1193, 541, 608, 1208, 903, 527, 111, 913, 1221, 1136],\n", + " 336: [342, 261, 265, 372, 537, 247, 531, 147, 427, 318],\n", + " 337: [1219, 2268, 648, 858, 1252, 2764, 1221, 2810, 3000, 924],\n", + " 338: [2571, 2959, 4993, 1196, 7153, 3578, 1210, 4226, 2858, 2762],\n", + " 339: [480, 589, 110, 588, 356, 595, 316, 10, 377, 292],\n", + " 340: [1028, 2797, 2406, 1968, 2791, 1380, 1641, 2100, 3039, 1784],\n", + " 341: [2028, 965, 2186, 919, 2935, 931, 1066, 2208, 929, 947],\n", + " 342: [2396, 1699, 1704, 593, 1429, 3671, 923, 1148, 2791, 3897],\n", + " 343: [318, 165, 296, 595, 377, 292, 364, 329, 47, 50],\n", + " 344: [1200, 2571, 1214, 541, 2028, 593, 1374, 1356, 1617, 924],\n", + " 345: [1307, 1079, 1220, 1259, 2791, 1380, 914, 1101, 1663, 342],\n", + " 346: [3081, 1210, 2125, 2571, 2394, 1586, 2336, 780, 2424, 2006],\n", + " 347: [4558, 7004, 3394, 2410, 3861, 3524, 2447, 2118, 4489, 1268],\n", + " 348: [3481, 1732, 1206, 3052, 223, 5902, 2395, 5618, 5669, 2918],\n", + " 349: [34, 357, 11, 440, 500, 350, 474, 497, 62, 39],\n", + " 350: [427, 1059, 2245, 1131, 1132, 1658, 724, 2657, 2291, 327],\n", + " 351: [541, 1252, 1206, 1219, 1267, 910, 1212, 1228, 2019, 1254],\n", + " 352: [786, 708, 1210, 362, 1196, 1028, 1097, 260, 1029, 79],\n", + " 353: [260, 1240, 1210, 1198, 1374, 1356, 1617, 924, 1291, 858],\n", + " 354: [3147, 2273, 4701, 4025, 3793, 2353, 4896, 4886, 3753, 4018],\n", + " 355: [380, 480, 589, 588, 161, 10, 377, 592, 292, 364],\n", + " 356: [1, 62, 736, 141, 1073, 494, 802, 104, 805, 653],\n", + " 357: [1197, 1270, 2797, 1097, 1259, 914, 919, 1641, 2100, 3039],\n", + " 358: [5952, 2959, 4993, 7153, 3578, 4226, 2762, 2028, 1036, 1198],\n", + " 359: [527, 2707, 589, 1176, 593, 2712, 16, 2700, 1046, 3623],\n", + " 360: [260, 733, 608, 62, 1073, 494, 832, 6, 802, 104],\n", + " 361: [1193, 904, 541, 923, 912, 750, 903, 908, 527, 111],\n", + " 362: [296, 3578, 1210, 2858, 356, 2028, 4306, 589, 1036, 47],\n", + " 363: [2571, 3578, 318, 1210, 4226, 2858, 2762, 356, 2028, 4306],\n", + " 364: [480, 589, 356, 377, 364, 47, 500, 474, 527, 454],\n", + " 365: [539, 440, 377, 318, 282, 350, 474, 588, 454, 62],\n", + " 366: [1307, 1270, 1028, 2797, 1097, 1968, 1259, 2791, 1380, 914],\n", + " 367: [1704, 590, 2324, 1961, 1617, 593, 2396, 2762, 3104, 2289],\n", + " 368: [6711, 2858, 2542, 4034, 2329, 4878, 6502, 4262, 2762, 4848],\n", + " 369: [480, 589, 110, 356, 377, 364, 47, 50, 1, 500],\n", + " 370: [260, 733, 608, 32, 648, 494, 832, 36, 95, 25],\n", + " 371: [2571, 5952, 2959, 7153, 3578, 318, 1210, 4226, 2858, 2762],\n", + " 372: [296, 7153, 318, 4226, 2858, 356, 2028, 4306, 593, 260],\n", + " 373: [4027, 2054, 370, 2858, 1019, 1380, 2761, 1193, 1207, 3053],\n", + " 375: [1307, 1197, 1079, 1278, 1220, 1270, 1028, 1097, 2406, 1968],\n", + " 376: [1196, 1198, 1374, 924, 1291, 858, 1610, 1036, 2916, 1199],\n", + " 377: [2028, 608, 1961, 1617, 593, 1094, 2762, 2194, 3104, 2289],\n", + " 378: [1240, 589, 1200, 2571, 1198, 1214, 541, 32, 2028, 593],\n", + " 379: [5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n", + " 380: [97, 2858, 714, 2571, 1094, 1147, 1304, 924, 1090, 4002],\n", + " 381: [282, 236, 497, 141, 509, 224, 367, 265, 736, 230],\n", + " 382: [457, 593, 150, 480, 589, 318, 110, 161, 356, 377],\n", + " 383: [2959, 1210, 356, 4306, 1036, 110, 47, 1291, 2329, 527],\n", + " 384: [380, 593, 349, 589, 296, 595, 316, 10, 434, 329],\n", + " 385: [260, 733, 1073, 832, 36, 802, 805, 653, 1210, 1356],\n", + " 386: [1094, 3104, 2289, 1225, 1641, 1299, 2355, 2336, 1207, 1090],\n", + " 387: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 6539, 356, 2762],\n", + " 388: [5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210, 2858],\n", + " 389: [3481, 2542, 4973, 1258, 1732, 1206, 1089, 1214, 6502, 5902],\n", + " 390: [1036, 47, 527, 1214, 1270, 32, 6539, 1222, 1089, 541],\n", + " 391: [349, 161, 292, 434, 47, 231, 50, 474, 527, 454],\n", + " 392: [161, 316, 329, 1, 500, 474, 185, 204, 442, 225],\n", + " 393: [1, 25, 17, 802, 653, 1210, 112, 1356, 58, 7],\n", + " 394: [648, 1230, 2764, 2810, 52, 2706, 16, 1080, 3000, 1234],\n", + " 395: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 1210, 4226],\n", + " 396: [5952, 296, 4993, 7153, 3578, 318, 4226, 2762, 356, 593],\n", + " 397: [5952, 4993, 1196, 7153, 1210, 4306, 589, 260, 1036, 1198],\n", + " 398: [508, 318, 17, 236, 474, 39, 161, 141, 21, 296],\n", + " 399: [1210, 58, 7, 52, 14, 858, 783, 1183, 41, 140],\n", + " 400: [965, 2186, 919, 2935, 931, 1066, 2208, 929, 1207, 947],\n", + " 401: [1193, 904, 1252, 923, 912, 750, 1208, 903, 908, 111],\n", + " 402: [720, 2858, 1265, 852, 2891, 3254, 4002, 608, 4223, 736],\n", + " 403: [5952, 2959, 4993, 1196, 3578, 318, 1210, 2858, 2028, 4306],\n", + " 404: [593, 595, 434, 231, 50, 500, 474, 527, 32, 288],\n", + " 405: [1, 608, 494, 832, 95, 6, 17, 805, 653, 1210],\n", + " 406: [457, 380, 593, 480, 589, 590, 318, 110, 588, 356],\n", + " 407: [1196, 1210, 1374, 1617, 2916, 1197, 318, 1376, 110, 1213],\n", + " 408: [912, 527, 3244, 3707, 260, 1233, 2918, 1240, 1358, 3347],\n", + " 409: [508, 339, 457, 527, 110, 364, 318, 500, 17, 282],\n", + " 410: [708, 362, 260, 531, 1015, 1367, 837, 1042, 1032, 1282],\n", + " 411: [260, 32, 494, 36, 95, 25, 6, 17, 802, 104],\n", + " 412: [1252, 1429, 3671, 7153, 1148, 2791, 3897, 1587, 627, 837],\n", + " 413: [1252, 912, 608, 750, 1208, 903, 908, 527, 913, 1247],\n", + " 414: [2901, 2976, 2028, 1552, 1917, 3753, 3005, 1387, 2320, 1620],\n", + " 415: [457, 380, 593, 150, 480, 589, 318, 110, 161, 356],\n", + " 416: [589, 318, 165, 110, 296, 595, 316, 329, 253, 50],\n", + " 417: [1193, 904, 541, 858, 1252, 923, 912, 608, 750, 1208],\n", + " 418: [527, 593, 353, 232, 307, 290, 306, 778, 509, 356],\n", + " 419: [923, 1206, 1267, 910, 922, 1228, 2019, 1250, 235, 1952],\n", + " 420: [50, 318, 25, 223, 32, 593, 608, 293, 47, 555],\n", + " 421: [380, 593, 349, 318, 165, 110, 296, 316, 377, 292],\n", + " 422: [1, 608, 141, 1073, 32, 832, 36, 95, 6, 17],\n", + " 424: [858, 111, 1221, 1207, 1219, 1225, 1213, 593, 50, 296],\n", + " 425: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210],\n", + " 426: [2502, 5902, 4848, 1921, 2395, 8464, 5995, 3911, 3175, 3000],\n", + " 427: [4226, 2959, 3481, 4027, 6711, 2858, 2542, 2997, 4993, 4034],\n", + " 428: [256, 1073, 4799, 1206, 1031, 1348, 5373, 8117, 1792, 1333],\n", + " 429: [1358, 1704, 2028, 590, 2324, 1961, 858, 318, 593, 2396],\n", + " 430: [410, 193, 324, 534, 2359, 2858, 2336, 1183, 1252, 2997],\n", + " 431: [2571, 2959, 296, 1196, 3578, 1210, 4226, 2858, 2762, 593],\n", + " 432: [539, 587, 357, 39, 161, 141, 266, 252, 367, 380],\n", + " 433: [19, 274, 2195, 1092, 575, 2403, 3578, 590, 2329, 3623],\n", + " 434: [296, 318, 4226, 47, 50, 2329, 32, 1136, 1089, 1213],\n", + " 435: [3481, 4027, 6711, 2858, 2997, 4993, 4034, 4973, 5952, 1258],\n", + " 436: [349, 590, 165, 161, 10, 292, 1, 527, 204, 225],\n", + " 437: [1193, 858, 923, 912, 1207, 1206, 1304, 1230, 1225, 924],\n", + " 438: [904, 1252, 923, 912, 608, 1208, 903, 908, 527, 111],\n", + " 439: [1097, 2762, 1080, 919, 2858, 3545, 3534, 2971, 8917, 3101],\n", + " 440: [1196, 3578, 1210, 4306, 589, 260, 3996, 1704, 6874, 1136],\n", + " 441: [590, 318, 588, 356, 595, 364, 253, 1, 500, 474],\n", + " 443: [965, 2186, 919, 1617, 2935, 931, 1066, 2324, 2208, 929],\n", + " 444: [1079, 1234, 1220, 1968, 1380, 1641, 1285, 1136, 1784, 1101],\n", + " 445: [2028, 965, 2186, 919, 1617, 2858, 2935, 931, 1066, 2324],\n", + " 446: [590, 165, 110, 377, 364, 47, 153, 50, 1, 500],\n", + " 447: [1193, 904, 541, 858, 1252, 750, 1208, 903, 908, 111],\n", + " 448: [720, 1265, 852, 3624, 2891, 3254, 4448, 3578, 4002, 608],\n", + " 449: [4993, 1176, 750, 4226, 1046, 6296, 5992, 4848, 3911, 1721],\n", + " 450: [2959, 6711, 1258, 2692, 1206, 7361, 4878, 4011, 778, 8636],\n", + " 451: [97, 2858, 714, 1094, 1147, 1304, 3753, 5378, 1394, 800],\n", + " 452: [5952, 2959, 296, 4993, 1196, 7153, 3578, 1210, 4226, 2858],\n", + " 453: [457, 593, 150, 480, 589, 590, 318, 110, 588, 161],\n", + " 454: [380, 150, 480, 349, 318, 165, 161, 356, 316, 10],\n", + " 455: [141, 1073, 494, 95, 17, 104, 653, 112, 1356, 1393],\n", + " 456: [539, 597, 356, 587, 508, 357, 527, 377, 500, 480],\n", + " 458: [2605, 2706, 2581, 1210, 1777, 2485, 2125, 2571, 2394, 1586],\n", + " 459: [318, 1198, 50, 858, 4886, 1213, 1221, 4995, 8961, 33794],\n", + " 460: [480, 589, 318, 356, 377, 364, 47, 50, 1, 500],\n", + " 461: [62, 141, 494, 36, 95, 25, 6, 802, 104, 653],\n", + " 462: [597, 150, 356, 587, 34, 508, 357, 339, 440, 527],\n", + " 463: [590, 1961, 2396, 1094, 3104, 2243, 1962, 2355, 1247, 1271],\n", + " 464: [356, 2355, 1265, 2567, 1136, 1215, 1196, 1220, 1060, 1343],\n", + " 465: [2542, 5952, 3793, 2502, 32, 2571, 3052, 4886, 223, 1214],\n", + " 466: [2571, 2959, 296, 4993, 1196, 7153, 3578, 318, 4226, 2858],\n", + " 467: [2571, 5952, 2959, 296, 4993, 1196, 7153, 1210, 4226, 2858],\n", + " 468: [50, 318, 36, 25, 223, 608, 293, 47, 246, 111],\n", + " 469: [2959, 3481, 2542, 2329, 1258, 1732, 1206, 7361, 2502, 1089],\n", + " 470: [2542, 4993, 3793, 2502, 5349, 293, 4886, 4011, 223, 6502],\n", + " 471: [539, 597, 150, 587, 508, 593, 357, 339, 11, 440],\n", + " 472: [508, 440, 527, 377, 110, 500, 17, 236, 474, 497],\n", + " 473: [1, 36, 802, 104, 805, 653, 1210, 112, 1393, 3],\n", + " 474: [1198, 32, 2028, 1374, 1617, 1291, 858, 1610, 1036, 1199],\n", + " 475: [1732, 2858, 296, 1573, 593, 2762, 1617, 2908, 2028, 1639],\n", + " 476: [4034, 2502, 3052, 4886, 223, 6502, 1219, 5618, 2918, 3499],\n", + " 477: [3578, 2858, 356, 4306, 589, 110, 1704, 1270, 480, 6874],\n", + " 479: [904, 541, 858, 923, 912, 903, 908, 913, 1221, 260],\n", + " 480: [6711, 2542, 4034, 2329, 1258, 1732, 7361, 1089, 3052, 293],\n", + " 481: [4027, 2997, 4973, 1258, 1732, 2692, 1206, 778, 4979, 5902],\n", + " 482: [4027, 6711, 2858, 2997, 4034, 4973, 1258, 2692, 1206, 3996],\n", + " 483: [508, 11, 440, 377, 282, 236, 588, 497, 62, 39],\n", + " 484: [62, 1073, 36, 104, 1210, 3, 58, 7, 52, 14],\n", + " 485: [1358, 1704, 2028, 590, 2324, 1961, 1242, 2194, 3104, 2243],\n", + " 486: [2571, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n", + " 487: [2355, 1265, 2567, 1136, 1215, 1196, 1220, 1343, 1968, 368],\n", + " 488: [318, 165, 110, 588, 296, 356, 595, 316, 377, 292],\n", + " 489: [541, 1252, 923, 912, 903, 908, 913, 1219, 1304, 1230],\n", + " 490: [260, 2571, 1214, 541, 32, 593, 1374, 1356, 1617, 924],\n", + " 491: [3481, 4027, 6711, 2997, 4993, 4034, 2329, 3793, 1732, 2692],\n", + " 492: [431,\n", + " 4308,\n", + " 45186,\n", + " 53322,\n", + " 214,\n", + " 49530,\n", + " 306,\n", + " 31696,\n", + " 2858,\n", + " 8644],\n", + " 493: [4993, 5952, 1258, 1206, 2502, 223, 8636, 1214, 4979, 6502],\n", + " 494: [588, 595, 10, 364, 434, 329, 153, 1, 474, 32],\n", + " 495: [539, 597, 356, 587, 34, 508, 593, 357, 11, 457],\n", + " 496: [2858, 1617, 2908, 2959, 1639, 39, 431, 1206, 1923, 4720],\n", + " 497: [5952, 2959, 296, 3578, 2858, 356, 2028, 589, 260, 1036],\n", + " 498: [6985, 7234, 7072, 3742, 1209, 1260, 3307, 1348, 8125, 6666],\n", + " 499: [780, 733, 736, 141, 1073, 648, 494, 832, 95, 17],\n", + " 500: [590, 2324, 1961, 858, 1242, 1094, 2762, 2194, 3104, 457],\n", + " 501: [1307, 1259, 914, 1641, 3039, 1285, 1101, 1663, 1297, 342],\n", + " 502: [1777, 2125, 3578, 2571, 1586, 2355, 780, 2424, 1197, 2006],\n", + " 503: [1196, 1210, 260, 1036, 110, 47, 50, 1291, 1214, 1200],\n", + " 504: [508, 110, 17, 480, 474, 588, 497, 62, 595, 39],\n", + " 505: [508, 593, 357, 527, 500, 282, 350, 236, 474, 497],\n", + " 506: [2571, 2028, 1617, 1610, 2916, 1199, 608, 1197, 1676, 1376],\n", + " 507: [904, 912, 1219, 913, 1193, 928, 950, 903, 1198, 920],\n", + " 508: [2571, 5952, 2959, 296, 4993, 7153, 3578, 318, 1210, 4226],\n", + " 509: [4027, 2542, 2997, 4993, 4973, 3052, 4878, 1214, 4979, 3897],\n", + " 510: [380, 349, 589, 165, 110, 316, 10, 377, 592, 292],\n", + " 511: [457, 593, 480, 589, 318, 588, 356, 10, 377, 364],\n", + " 512: [1584, 431, 4308, 11, 45186, 53322, 214, 1213, 49530, 31696],\n", + " 513: [1358, 1962, 110, 3114, 1678, 1956, 2890, 1213, 1293, 1250],\n", + " 515: [904, 1219, 913, 1193, 950, 903, 1198, 920, 1258, 953],\n", + " 516: [1036, 50, 6377, 1080, 33794, 608, 7361, 2918, 1193, 16],\n", + " 517: [36, 25, 527, 593, 608, 246, 111, 337, 353, 112],\n", + " 518: [1200, 1198, 541, 32, 1374, 1356, 1617, 924, 1291, 858],\n", + " 520: [371, 544, 68, 514, 270, 71, 315, 1302, 248, 440],\n", + " 521: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 1210, 4226],\n", + " 522: [904, 1252, 923, 912, 750, 903, 908, 527, 913, 1247],\n", + " 523: [904, 1252, 923, 912, 750, 903, 908, 111, 913, 1136],\n", + " 524: [3481, 1258, 3793, 1732, 7361, 32, 3996, 5349, 293, 4886],\n", + " 525: [380, 480, 589, 161, 356, 377, 292, 364, 434, 47],\n", + " 526: [62, 141, 17, 653, 1210, 112, 1393, 3, 58, 52],\n", + " 527: [539, 597, 150, 587, 508, 593, 357, 11, 440, 457],\n", + " 529: [2571, 5952, 2959, 4993, 1196, 7153, 3578, 318, 2858, 2762],\n", + " 530: [539, 597, 356, 587, 508, 593, 357, 11, 440, 457],\n", + " 531: [457, 593, 480, 349, 589, 165, 356, 377, 592, 364],\n", + " 532: [1307, 1721, 608, 2804, 2918, 1259, 1704, 1220, 2301, 4350],\n", + " 533: [2329, 1732, 293, 4886, 4878, 4011, 778, 4262, 5669, 3081],\n", + " 534: [5464, 610, 2987, 1089, 5679, 2140, 1968, 1172, 593, 1193],\n", + " 535: [7153, 4226, 2858, 2762, 2329, 1214, 1200, 3996, 1704, 1270],\n", + " 536: [597, 356, 587, 11, 440, 527, 590, 110, 364, 318],\n", + " 537: [1, 141, 1073, 32, 648, 832, 95, 802, 104, 653],\n", + " 539: [457, 110, 161, 356, 595, 10, 344, 253, 231, 1],\n", + " 540: [26, 637, 1042, 711, 708, 49278, 786, 719, 1752, 609],\n", + " 541: [1234, 914, 919, 1285, 1663, 1297, 1304, 342, 2302, 2144],\n", + " 542: [950, 1258, 1271, 2028, 1345, 969, 47, 1023, 2206, 1580],\n", + " 543: [3481, 2542, 4034, 2329, 1732, 3052, 4011, 223, 4979, 3897],\n", + " 544: [3578, 318, 1210, 4226, 2858, 2762, 356, 2028, 4306, 593],\n", + " 545: [3578, 4306, 6539, 4963, 5445, 1527, 1784, 5418, 6333, 2628],\n", + " 546: [26, 637, 1042, 711, 724, 708, 786, 12, 719, 1752],\n", + " 547: [318, 165, 296, 10, 292, 47, 253, 50, 474, 288],\n", + " 548: [371, 544, 68, 514, 270, 71, 315, 248, 342, 105],\n", + " 549: [480, 589, 110, 356, 377, 364, 47, 50, 1, 500],\n", + " 550: [111, 1206, 1213, 593, 1228, 235, 1199, 1080, 1172, 1175],\n", + " 551: [2324, 608, 1961, 1617, 318, 2396, 1242, 1094, 2762, 2194],\n", + " 552: [4027, 6711, 4993, 5952, 3793, 1732, 2692, 7361, 32, 3996],\n", + " 553: [150, 590, 588, 595, 1, 527, 34, 204, 225, 21],\n", + " 554: [541, 858, 1252, 923, 912, 750, 1208, 908, 1247, 1221],\n", + " 555: [3481, 4034, 4973, 2692, 7361, 1214, 6502, 5902, 541, 5445],\n", + " 556: [590, 380, 1, 592, 253, 555, 1020, 1036, 647, 852],\n", + " 557: [733, 32, 648, 832, 36, 95, 25, 17, 104, 805],\n", + " 558: [2542, 2997, 4973, 2329, 1258, 1732, 2692, 1206, 7361, 3052],\n", + " 559: [2572, 2683, 2762, 2605, 2706, 2581, 3081, 1777, 2485, 2716],\n", + " 560: [3481, 4027, 6711, 4993, 4973, 5952, 3793, 7361, 2502, 3996],\n", + " 561: [318, 1198, 50, 858, 527, 1704, 1136, 1222, 1089, 1],\n", + " 562: [376, 1, 524, 596, 281, 257, 708, 7, 289, 262],\n", + " 563: [62, 736, 494, 832, 95, 6, 802, 104, 805, 653],\n", + " 564: [1358, 1704, 2028, 590, 2324, 593, 1242, 1094, 2762, 2289],\n", + " 565: [2571, 5952, 2959, 4993, 1196, 7153, 318, 1210, 4226, 2028],\n", + " 566: [19, 21, 2028, 1784, 1004, 274, 2195, 1092, 575, 1610],\n", + " 567: [17, 282, 509, 22, 224, 50, 265, 376, 151, 230],\n", + " 568: [260, 1073, 832, 802, 805, 1210, 1356, 1393, 52, 788],\n", + " 569: [150, 480, 589, 318, 110, 161, 356, 595, 316, 377],\n", + " 570: [1358, 1704, 2028, 590, 2324, 1961, 858, 1617, 593, 2396],\n", + " 571: [2959, 3481, 4027, 6711, 4993, 4034, 5952, 1258, 1732, 1206],\n", + " 572: [5147,\n", + " 33880,\n", + " 4973,\n", + " 3089,\n", + " 2585,\n", + " 3507,\n", + " 6339,\n", + " 6235,\n", + " 27773,\n", + " 2019],\n", + " 573: [1961, 858, 1242, 2194, 3104, 2243, 1954, 1962, 1674, 1097],\n", + " 574: [150, 590, 318, 110, 161, 356, 595, 316, 10, 592],\n", + " 575: [1, 733, 32, 648, 36, 25, 6, 17, 104, 805],\n", + " 576: [19, 1004, 274, 2195, 1092, 575, 2403, 3578, 1527, 3623],\n", + " 577: [410, 193, 324, 2858, 2997, 532, 1564, 1148, 212, 327],\n", + " 578: [2028, 593, 1617, 457, 50, 1197, 318, 47, 1213, 1527],\n", + " 579: [1240, 1200, 2028, 1374, 1356, 1617, 924, 858, 1610, 2916],\n", + " 580: [4027, 318, 2858, 1019, 2761, 1193, 1207, 3053, 912, 188],\n", + " 581: [150, 34, 593, 339, 11, 440, 377, 590, 500, 17],\n", + " 582: [541, 923, 750, 1221, 1136, 1206, 1213, 924, 922, 1148],\n", + " 583: [4226, 2959, 3481, 4027, 6711, 2858, 2542, 2997, 4993, 4034],\n", + " 584: [593, 150, 590, 318, 165, 110, 588, 296, 161, 595],\n", + " 585: [1208, 1221, 1212, 1250, 1233, 1952, 1204, 1263, 3435, 3683],\n", + " 586: [410, 193, 324, 2359, 2336, 1252, 532, 3112, 2341, 212],\n", + " 587: [2571, 5952, 2959, 4993, 7153, 3578, 4226, 2858, 2762, 2028],\n", + " 588: [150, 11, 110, 17, 282, 350, 236, 161, 141, 349],\n", + " 589: [1252, 923, 912, 903, 908, 111, 913, 1247, 1221, 1136],\n", + " 590: [1214, 541, 32, 1374, 1356, 1617, 924, 858, 1199, 1197],\n", + " 591: [720, 3624, 2891, 608, 736, 2108, 6016, 2976, 1537, 2609],\n", + " 592: [260, 1196, 1240, 1210, 589, 1200, 2571, 1198, 1214, 541],\n", + " 593: [377, 329, 1, 500, 474, 527, 32, 204, 442, 733],\n", + " 594: [736, 141, 32, 494, 36, 95, 25, 6, 17, 802],\n", + " 595: [2028, 2324, 1617, 318, 2396, 1094, 3104, 457, 1641, 2355],\n", + " 596: [4027, 1732, 1639, 2997, 1500, 2890, 2692, 2108, 5004, 4086],\n", + " 597: [720, 852, 3624, 2891, 3254, 4448, 3578, 4002, 3745, 4223],\n", + " 598: [1617, 904, 912, 913, 1193, 928, 950, 903, 1198, 920],\n", + " 599: [2028, 2858, 2324, 1207, 364, 593, 318, 2731, 3114, 2700],\n", + " 600: [2571, 5952, 296, 4993, 1196, 7153, 318, 2762, 356, 2028],\n", + " 601: [590, 350, 497, 161, 509, 224, 50, 105, 265, 376],\n", + " 602: [1196, 1240, 589, 1200, 2571, 1214, 541, 32, 2028, 1374],\n", + " 603: [260, 3083, 2080, 912, 899, 2137, 3448, 1094, 3189, 3174],\n", + " 604: [1, 141, 494, 17, 802, 653, 1356, 3, 58, 7],\n", + " 605: [593, 246, 111, 300, 232, 6, 16, 509, 31, 175],\n", + " 606: [1240, 541, 32, 593, 1374, 1356, 1617, 924, 1291, 1036],\n", + " 607: [2571, 2959, 296, 4993, 1196, 7153, 3578, 1210, 2858, 2762],\n", + " 608: [2571, 5952, 4993, 1196, 7153, 3578, 318, 1210, 4226, 2858],\n", + " 609: [1, 474, 204, 442, 733, 586, 786, 196, 553, 6],\n", + " 610: [541, 1252, 912, 608, 750, 1208, 908, 111, 913, 1221],\n", + " 612: [260, 608, 832, 25, 17, 802, 104, 805, 653, 1210],\n", + " 613: [2572, 2683, 2762, 2605, 2706, 2581, 3081, 1210, 1777, 2485],\n", + " 614: [1210, 589, 2571, 1214, 541, 32, 593, 1374, 1356, 1617],\n", + " 616: [1196, 4306, 858, 2329, 1214, 1200, 3996, 1704, 1270, 6874],\n", + " 617: [318, 282, 266, 509, 22, 277, 224, 367, 105, 376],\n", + " 618: [2324, 1961, 858, 1242, 2194, 3104, 2289, 2243, 36, 1962],\n", + " 619: [1196, 2571, 541, 32, 593, 1374, 1356, 1617, 924, 1291],\n", + " 620: [3578, 2959, 2858, 527, 2707, 589, 2571, 4993, 3157, 1176],\n", + " 621: [2542, 2329, 5952, 2692, 4878, 4011, 3897, 1748, 4848, 7153],\n", + " 622: [1200, 1214, 1374, 1356, 1617, 1291, 858, 1036, 2916, 1199],\n", + " 623: [508, 357, 527, 282, 236, 497, 586, 292, 22, 224],\n", + " 624: [2762, 3081, 1210, 1777, 2716, 2125, 3578, 2571, 2394, 2396],\n", + " 625: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 318],\n", + " 627: [6539, 6377, 3793, 4886, 780, 4995, 5989, 6378, 2959, 3408],\n", + " 628: [539, 597, 356, 587, 34, 508, 593, 357, 339, 11],\n", + " 629: [539, 597, 356, 587, 508, 593, 357, 440, 457, 527],\n", + " 630: [260, 608, 62, 141, 1073, 832, 36, 6, 17, 1210],\n", + " 631: [904, 541, 858, 1252, 923, 912, 608, 1208, 903, 908],\n", + " 632: [4022, 356, 1625, 1610, 1833, 2706, 3101, 1552, 479, 260],\n", + " 633: [1247, 910, 924, 1212, 1148, 235, 1952, 969, 1199, 899],\n", + " 634: [1234, 2797, 2791, 1380, 914, 919, 3039, 1663, 1297, 2918],\n", + " 635: [5418, 1307, 318, 4995, 260, 3083, 608, 2080, 912, 899],\n", + " 636: [4226, 2959, 2858, 2997, 1258, 1732, 7361, 2502, 32, 3996],\n", + " 637: [2572, 2683, 2605, 2706, 2581, 3081, 1210, 1777, 2485, 2716],\n", + " 638: [593, 457, 377, 364, 480, 474, 588, 497, 595, 161],\n", + " 639: [2571, 1196, 3578, 1210, 4226, 2858, 2762, 2028, 589, 260],\n", + " 640: [296, 2762, 593, 260, 1036, 50, 2329, 527, 1200, 3996],\n", + " 641: [150, 165, 110, 588, 356, 292, 364, 434, 47, 253],\n", + " 642: [1358, 2324, 1962, 1641, 527, 110, 1299, 1610, 1584, 1207],\n", + " 643: [2948, 2947, 2951, 5060, 3508, 2186, 2949, 861, 1198, 2406],\n", + " 644: [32, 1374, 1356, 1617, 924, 858, 1610, 2916, 1199, 296],\n", + " 645: [593, 349, 329, 344, 50, 1, 288, 225, 339, 733],\n", + " 646: [150, 349, 589, 318, 165, 110, 161, 316, 10, 377],\n", + " 647: [708, 362, 1196, 1028, 1097, 260, 1029, 79, 1035, 1012],\n", + " 648: [750, 1208, 908, 527, 1221, 1136, 260, 1206, 1219, 1304],\n", + " 649: [2571, 5952, 2959, 4993, 1196, 7153, 3578, 318, 1210, 4226],\n", + " 650: [2959, 4027, 6711, 4973, 5952, 1732, 2692, 1206, 7361, 32],\n", + " 651: [904, 1208, 111, 913, 1304, 1230, 924, 593, 922, 1234],\n", + " 652: [296, 1271, 2797, 1721, 318, 2858, 260, 1246, 3083, 608],\n", + " 653: [431,\n", + " 4308,\n", + " 45186,\n", + " 53322,\n", + " 214,\n", + " 49530,\n", + " 306,\n", + " 31696,\n", + " 2858,\n", + " 8644],\n", + " 654: [589, 377, 364, 47, 50, 1, 500, 474, 527, 454],\n", + " 655: [1079, 1234, 1278, 1220, 2797, 2406, 1968, 2791, 914, 1641],\n", + " 656: [357, 457, 527, 590, 17, 282, 497, 454, 62, 586],\n", + " 657: [3793, 2692, 1206, 2502, 293, 4886, 4011, 1748, 4848, 5618],\n", + " 658: [3481, 4027, 6711, 2997, 4993, 4034, 4973, 5952, 1258, 3793],\n", + " 659: [2959, 3578, 2028, 110, 50, 1291, 2329, 1270, 480, 6539],\n", + " 660: [5952, 4993, 1196, 7153, 1210, 4226, 589, 260, 1036, 1198],\n", + " 661: [539, 357, 339, 11, 17, 350, 236, 474, 497, 62],\n", + " 662: [1252, 923, 1208, 903, 908, 527, 913, 1247, 1136, 1207],\n", + " 663: [1702, 158, 1713, 239, 256, 2142, 2083, 2089, 1196, 1373],\n", + " 664: [7445, 7254, 3897, 1831, 3701, 7022, 180, 5952, 4993, 2424],\n", + " 665: [904, 858, 527, 913, 1247, 1221, 1136, 1207, 260, 1219],\n", + " 666: [3578, 318, 1210, 2762, 356, 2028, 4306, 593, 589, 260],\n", + " 667: [762, 662, 280, 1476, 828, 467, 8327, 836, 2019, 733],\n", + " 668: [1193, 904, 541, 858, 1252, 912, 608, 1208, 903, 908],\n", + " 669: [595, 10, 377, 364, 434, 47, 50, 1, 500, 474],\n", + " 670: [1, 260, 608, 736, 32, 648, 494, 832, 95, 25],\n", + " 671: [904, 913, 1207, 910, 1234, 1148, 1276, 1250, 969, 1179],\n", + " 672: [5952, 4993, 7153, 318, 4226, 4306, 1036, 1214, 1200, 3996],\n", + " 674: [1198, 32, 2028, 1617, 1291, 858, 1610, 2916, 1199, 296],\n", + " 675: [2858, 3408, 2762, 1833, 50, 2706, 1249, 2683, 1127, 3101],\n", + " 676: [539, 597, 356, 587, 34, 508, 593, 357, 440, 457],\n", + " 677: [349, 165, 595, 329, 47, 153, 50, 1, 32, 288],\n", + " 678: [904, 111, 1207, 1230, 910, 922, 1212, 1148, 1617, 1288],\n", + " 679: [1307, 1197, 1079, 1278, 1220, 1028, 2797, 1097, 2406, 1968],\n", + " 680: [3468, 1683, 4034, 5013, 3022, 3983, 4226, 919, 1617, 903],\n", + " 681: [4022, 356, 1625, 1610, 2762, 1833, 50, 2706, 1249, 593],\n", + " 683: [4963, 3147, 2762, 2353, 4896, 4995, 597, 5989, 2959, 3408],\n", + " 684: [527, 1097, 1193, 2762, 1080, 919, 2028, 2858, 3545, 3534],\n", + " 685: [62, 494, 832, 95, 802, 104, 112, 1393, 58, 7],\n", + " 686: [1356, 1610, 1199, 296, 1676, 318, 1148, 1127, 47, 110],\n", + " 688: [2542, 4973, 7361, 2502, 3996, 293, 4878, 223, 8636, 3897],\n", + " 689: [589, 165, 10, 377, 364, 329, 47, 253, 50, 1],\n", + " 690: [608, 62, 1073, 32, 494, 832, 36, 25, 17, 805],\n", + " 691: [2567, 1215, 1343, 1500, 1457, 1079, 373, 1515, 1270, 3114],\n", + " 693: [539, 34, 508, 11, 440, 377, 590, 500, 282, 236],\n", + " 694: [904, 541, 858, 1252, 923, 608, 750, 1208, 903, 908],\n", + " 695: [2572, 2762, 2605, 2706, 3081, 1210, 1777, 2716, 3578, 2355],\n", + " 696: [2605, 1210, 1777, 2485, 2716, 2125, 3578, 2571, 2394, 1586],\n", + " 697: [3468, 1683, 4034, 5013, 3022, 3983, 4226, 2858, 919, 1617],\n", + " 698: [3481, 4027, 2997, 4034, 4973, 2692, 2502, 5349, 3052, 293],\n", + " 699: [2087, 2143, 1006, 1354, 3020, 2161, 2683, 2023, 1221, 858],\n", + " 700: [110, 296, 595, 364, 434, 329, 253, 231, 50, 500],\n", + " 701: [380, 593, 150, 480, 349, 589, 590, 318, 165, 110],\n", + " 702: [2571, 1198, 2028, 1356, 1617, 1291, 858, 1610, 1036, 2916],\n", + " 703: [1307, 1197, 1079, 1234, 1220, 1028, 2797, 1097, 2406, 1259],\n", + " 704: [3147, 6539, 356, 6377, 4018, 5299, 597, 6378, 2763, 588],\n", + " 705: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 1210],\n", + " 706: [260, 608, 62, 1073, 832, 36, 95, 6, 17, 802],\n", + " 707: [1219, 2683, 2268, 648, 858, 1252, 1230, 2764, 1221, 1213],\n", + " 708: [1196, 1210, 1198, 593, 1374, 1356, 1617, 1291, 1610, 1036],\n", + " 709: [1240, 1210, 1214, 541, 32, 593, 1356, 924, 1291, 1036],\n", + " 710: [904, 541, 923, 912, 1208, 903, 111, 913, 1247, 1136],\n", + " 711: [2858, 4022, 356, 1625, 3408, 1610, 2762, 1833, 50, 2706],\n", + " 712: [539, 597, 587, 34, 508, 593, 339, 11, 440, 457],\n", + " 714: [1196, 1210, 593, 589, 1036, 47, 1214, 1200, 1222, 1089],\n", + " 715: [457, 593, 480, 349, 589, 590, 318, 110, 356, 377],\n", + " 716: [858, 1036, 1676, 110, 1387, 1089, 1201, 2288, 1275, 223],\n", + " 718: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 318],\n", + " 719: [1020, 1036, 647, 852, 1569, 1035, 541, 1042, 1021, 1566],\n", + " 720: [589, 165, 110, 595, 316, 10, 592, 434, 329, 153],\n", + " 721: [597, 150, 356, 508, 593, 357, 339, 440, 457, 527],\n", + " 723: [296, 1196, 1210, 2858, 2028, 593, 260, 1036, 1198, 50],\n", + " 724: [780, 62, 736, 494, 832, 36, 95, 25, 6, 802],\n", + " 725: [2863, 2804, 2948, 2947, 1136, 2160, 2951, 1197, 2918, 1997],\n", + " 726: [260, 1240, 589, 1200, 2571, 1214, 541, 32, 2028, 1374],\n", + " 727: [349, 589, 588, 161, 316, 10, 592, 292, 434, 329],\n", + " 728: [260, 1200, 1198, 1214, 541, 32, 593, 1374, 1356, 1617],\n", + " 729: [539, 597, 356, 587, 508, 593, 357, 440, 457, 527],\n", + " 730: [457, 593, 480, 589, 110, 161, 356, 377, 292, 364],\n", + " 731: [1234, 1278, 1220, 1028, 2791, 1380, 1641, 3039, 1297, 2396],\n", + " 732: [1465, 1231, 457, 2943, 531, 1056, 593, 3082, 1277, 474],\n", + " 733: [2959, 2858, 527, 3157, 1176, 4022, 750, 593, 4226, 2712],\n", + " 734: [762, 662, 608, 1476, 828, 467, 8327, 836, 2797, 2028],\n", + " 735: [150, 349, 589, 318, 588, 595, 10, 329, 344, 1],\n", + " 736: [356, 296, 1271, 5418, 2797, 1307, 1721, 318, 2858, 4995],\n", + " 737: [260, 608, 62, 141, 1073, 494, 832, 36, 95, 25],\n", + " 738: [608, 62, 736, 36, 25, 6, 17, 802, 104, 805],\n", + " 739: [2858, 4022, 3408, 2706, 1127, 3101, 260, 3751, 1210, 1961],\n", + " 740: [1240, 589, 1200, 1214, 541, 32, 1374, 1356, 1617, 924],\n", + " 741: [260, 1240, 1210, 1200, 1198, 1214, 541, 32, 2028, 1374],\n", + " 742: [3753, 2763, 3510, 3623, 1917, 2396, 4367, 8368, 3255, 858],\n", + " 743: [457, 593, 150, 349, 589, 590, 318, 165, 110, 161],\n", + " 744: [590, 2324, 608, 1961, 1617, 2396, 1242, 1094, 2762, 3104],\n", + " 745: [4973, 2329, 5952, 2692, 1206, 7361, 3052, 4878, 8636, 6502],\n", + " 746: [2054, 370, 1019, 1380, 1193, 912, 188, 2599, 1203, 432],\n", + " 748: [296, 36, 223, 32, 593, 608, 293, 111, 337, 353],\n", + " 749: [260, 733, 608, 62, 736, 141, 32, 494, 832, 36],\n", + " 750: [55820, 1213, 1222, 7361, 1234, 858, 5147, 923, 4873, 44195],\n", + " 751: [457, 380, 480, 589, 318, 110, 296, 356, 377, 292],\n", + " 752: [457, 593, 480, 589, 318, 110, 356, 377, 292, 364],\n", + " 753: [1358, 2028, 590, 2324, 858, 1617, 2396, 1242, 1094, 2762],\n", + " 754: [2959, 2858, 527, 2707, 589, 3157, 1176, 750, 593, 2712],\n", + " 755: [25, 32, 608, 47, 111, 353, 112, 235, 290, 6],\n", + " 756: [260, 494, 104, 1210, 1356, 1393, 3, 788, 858, 5],\n", + " 757: [1234, 1278, 1028, 2797, 2406, 1968, 2791, 1380, 914, 919],\n", + " 758: [457, 380, 480, 589, 318, 165, 296, 161, 356, 316],\n", + " 759: [1200, 593, 1617, 924, 858, 1199, 296, 608, 50, 318],\n", + " 761: [3147, 3578, 5349, 6377, 4701, 4025, 4246, 4896, 4995, 4018],\n", + " 762: [32, 832, 36, 6, 805, 1210, 1356, 1393, 3, 52],\n", + " 763: [1193, 904, 541, 858, 1252, 923, 912, 608, 750, 1208],\n", + " 764: [3578, 2707, 589, 2571, 4993, 3157, 4022, 750, 4226, 1046],\n", + " 765: [1358, 1704, 2324, 1961, 318, 2396, 1242, 2194, 2289, 2243],\n", + " 766: [5952, 2959, 296, 4993, 7153, 3578, 4226, 2762, 4306, 593],\n", + " 767: [88, 1552, 743, 1982, 724, 1562, 2953, 1210, 575, 1573],\n", + " 768: [5464, 610, 2987, 1089, 5679, 7445, 2140, 1968, 1172, 7254],\n", + " 769: [34, 377, 364, 595, 161, 380, 589, 105, 736, 733],\n", + " 770: [608, 62, 32, 36, 25, 6, 104, 1210, 112, 1393],\n", + " 771: [1197, 1079, 1234, 1278, 1220, 1259, 1380, 2100, 1285, 1136],\n", + " 772: [4226, 2959, 4027, 2858, 2329, 5952, 1258, 2692, 7361, 2502],\n", + " 773: [786, 362, 1028, 1029, 79, 1035, 1012, 1022, 661, 1198],\n", + " 774: [2571, 5952, 2959, 296, 4993, 1196, 3578, 1210, 4226, 2858],\n", + " 775: [508, 593, 357, 527, 110, 282, 62, 21, 509, 292],\n", + " 776: [2324, 608, 1961, 1617, 318, 2396, 1242, 2762, 2194, 3104],\n", + " 777: [1210, 97, 2571, 1304, 3753, 5378, 1287, 3947, 4643, 920],\n", + " 780: [1704, 2289, 2243, 2858, 1299, 2355, 1247, 1207, 1960, 1272],\n", + " 781: [260, 1196, 1240, 1210, 589, 1200, 2571, 1198, 1214, 541],\n", + " 782: [608, 25, 50, 296, 1120, 110, 1968, 1912, 1041, 3125],\n", + " 783: [2959, 296, 3578, 1210, 4226, 2858, 2762, 356, 2028, 589],\n", + " 784: [1200, 1222, 1089, 4011, 1080, 1527, 4973, 2502, 1617, 7361],\n", + " 785: [150, 34, 508, 339, 11, 440, 364, 500, 282, 474],\n", + " 786: [2572, 2683, 2706, 1777, 2716, 2396, 1586, 2355, 2710, 2424],\n", + " 787: [1358, 2028, 590, 1617, 318, 593, 2396, 1094, 2762, 2194],\n", + " 788: [3481, 2542, 4034, 4973, 1732, 2692, 1206, 2502, 1089, 4878],\n", + " 789: [34, 17, 282, 236, 497, 39, 22, 277, 224, 367],\n", + " 790: [1193, 923, 912, 608, 750, 1208, 903, 908, 913, 1207],\n", + " 791: [3468, 1683, 4034, 5013, 3983, 4226, 1617, 903, 1084, 3307],\n", + " 792: [457, 593, 480, 589, 110, 356, 595, 10, 377, 364],\n", + " 793: [2959, 296, 318, 2858, 2762, 356, 2028, 593, 589, 1036],\n", + " 794: [1193, 904, 541, 1252, 923, 912, 608, 750, 1208, 903],\n", + " 795: [34, 357, 339, 11, 440, 17, 282, 236, 588, 497],\n", + " 796: [733, 141, 1073, 32, 494, 832, 36, 95, 25, 6],\n", + " 797: [2858, 852, 3624, 2891, 3254, 4448, 3745, 4223, 736, 4963],\n", + " 798: [3481, 4027, 4034, 2329, 1732, 7361, 2502, 3052, 4011, 223],\n", + " 799: [364, 47, 253, 50, 1, 32, 34, 204, 442, 21],\n", + " 800: [733, 608, 494, 832, 36, 95, 25, 17, 805, 653],\n", + " 801: [318, 2858, 2762, 356, 1036, 50, 858, 1240, 1222, 1213],\n", + " 802: [150, 34, 357, 339, 11, 110, 364, 17, 282, 236],\n", + " 803: [1358, 1617, 3104, 527, 2355, 2336, 1095, 3114, 2916, 2571],\n", + " 804: [457, 380, 150, 480, 349, 589, 590, 318, 165, 588],\n", + " 805: [2959, 296, 318, 4226, 2858, 2762, 356, 2028, 589, 1036],\n", + " 806: [539, 597, 587, 508, 17, 350, 474, 497, 62, 141],\n", + " 807: [457, 593, 480, 589, 110, 356, 595, 316, 377, 364],\n", + " 808: [2571, 4993, 4963, 3147, 3578, 5349, 1580, 6539, 356, 2762],\n", + " 809: [1833, 2706, 593, 2683, 3101, 1552, 479, 608, 1210, 3675],\n", + " 810: [597, 150, 587, 34, 508, 593, 357, 339, 11, 440],\n", + " 811: [260, 608, 32, 832, 36, 6, 802, 104, 805, 1210],\n", + " 812: [34, 357, 590, 110, 39, 161, 266, 21, 296, 509],\n", + " 813: [1358, 1704, 590, 608, 1961, 1617, 318, 593, 1242, 1094],\n", + " 814: [1197, 1079, 1270, 1028, 2797, 1097, 1968, 1259, 1380, 914],\n", + " 815: [2959, 3578, 318, 4226, 2858, 1036, 47, 50, 1291, 2329],\n", + " 816: [380, 480, 589, 165, 110, 356, 377, 364, 434, 329],\n", + " 817: [2028, 590, 608, 858, 1617, 593, 2396, 1242, 2762, 3104],\n", + " 818: [371, 544, 68, 514, 270, 71, 315, 1302, 248, 1196],\n", + " 819: [720, 2858, 1265, 852, 3624, 2891, 4448, 3578, 4002, 608],\n", + " 820: [3481, 2542, 4034, 2329, 4011, 223, 778, 3897, 6502, 4262],\n", + " 821: [2571, 4993, 4963, 3578, 5349, 1580, 6539, 2273, 6377, 4701],\n", + " 822: [36, 32, 593, 608, 47, 555, 337, 353, 290, 6],\n", + " 823: [786, 708, 362, 79, 531, 852, 919, 1270, 1015, 837],\n", + " 824: [923, 527, 111, 913, 1267, 1230, 1213, 50, 296, 1148],\n", + " 825: [1617, 904, 912, 1219, 913, 928, 950, 903, 1207, 1258],\n", + " 826: [2329, 2692, 2502, 5349, 293, 4886, 8636, 2762, 2395, 5669],\n", + " 827: [593, 589, 318, 110, 296, 434, 329, 47, 253, 50],\n", + " 828: [593, 150, 590, 318, 588, 161, 356, 595, 329, 344],\n", + " 829: [608, 25, 104, 112, 1356, 1393, 58, 52, 788, 14],\n", + " 830: [1307, 1079, 1234, 1278, 1270, 2797, 2791, 914, 919, 1641],\n", + " 831: [2762, 2581, 3081, 3578, 2571, 2394, 1586, 2355, 780, 1197],\n", + " 832: [1200, 2571, 1198, 2028, 593, 1356, 1617, 1291, 858, 1610],\n", + " 833: [1699, 1429, 7153, 923, 2791, 3897, 2541, 627, 837, 1234],\n", + " 834: [5952, 296, 4993, 7153, 3578, 1210, 589, 260, 1036, 1198],\n", + " 835: [150, 587, 34, 527, 377, 590, 110, 364, 17, 282],\n", + " 836: [141, 1073, 494, 36, 25, 802, 104, 805, 1210, 1393],\n", + " 837: [370, 256, 19, 410, 420, 333, 248, 355, 455, 466],\n", + " 838: [3244,\n", + " 3707,\n", + " 2918,\n", + " 8405,\n", + " 3189,\n", + " 27878,\n", + " 3733,\n", + " 1569,\n", + " 2949,\n", + " 1090],\n", + " 839: [1230, 3244, 3707, 1233, 2918, 1240, 1358, 3347, 2396, 1197],\n", + " 840: [1028, 1259, 1380, 3039, 1784, 1101, 1297, 342, 1777, 594],\n", + " 841: [2959, 2858, 527, 2707, 3157, 1176, 4022, 593, 2712, 16],\n", + " 842: [457, 380, 593, 480, 349, 589, 318, 165, 296, 161],\n", + " 843: [923, 912, 608, 908, 913, 1213, 593, 922, 1212, 50],\n", + " 844: [1465, 1231, 1225, 2943, 531, 1056, 509, 2804, 613, 3469],\n", + " 846: [36, 608, 111, 337, 232, 290, 778, 52, 288, 468],\n", + " 847: [1702, 158, 1713, 239, 256, 2142, 2083, 2089, 1196, 588],\n", + " 848: [50, 318, 36, 223, 527, 32, 593, 608, 293, 47],\n", + " 849: [371, 318, 544, 68, 514, 270, 71, 315, 1302, 248],\n", + " 851: [5952, 2959, 4993, 7153, 3578, 318, 4226, 2858, 2028, 593],\n", + " 852: [150, 165, 110, 316, 10, 292, 329, 153, 50, 1],\n", + " 853: [260, 832, 25, 17, 802, 805, 1210, 1356, 1393, 858],\n", + " 854: [1358, 1704, 590, 1617, 318, 2396, 1242, 1094, 3104, 2289],\n", + " 855: [1358, 1704, 2028, 590, 1961, 858, 2396, 1242, 1094, 2762],\n", + " 856: [260, 1196, 1240, 1210, 1200, 1198, 1214, 541, 32, 593],\n", + " 857: [2959, 296, 318, 1210, 4226, 2858, 2762, 4306, 260, 1198],\n", + " 859: [318, 2858, 4306, 47, 50, 2329, 527, 1214, 6874, 32],\n", + " 860: [410, 193, 324, 534, 2858, 2336, 1183, 1252, 2997, 532],\n", + " 861: [5952, 2959, 4993, 1196, 7153, 3578, 318, 1210, 4226, 2858],\n", + " 862: [508, 593, 11, 590, 110, 17, 497, 62, 161, 141],\n", + " 863: [260, 1196, 1240, 1200, 1198, 1214, 541, 1374, 924, 1291],\n", + " 864: [4014,\n", + " 8645,\n", + " 3148,\n", + " 4296,\n", + " 6870,\n", + " 2023,\n", + " 40819,\n", + " 3252,\n", + " 5364,\n", + " 30707],\n", + " 865: [5952, 4993, 2762, 2028, 589, 1036, 1198, 1291, 858, 2329],\n", + " 866: [1240, 589, 2571, 541, 2028, 1356, 1617, 924, 1291, 1610],\n", + " 867: [6711, 2542, 1258, 1206, 7361, 2502, 32, 1089, 3052, 293],\n", + " 868: [260, 1196, 1240, 1200, 2571, 1198, 1214, 541, 2028, 1374],\n", + " 869: [1639, 2997, 3996, 1500, 2890, 1747, 5004, 4086, 1213, 912],\n", + " 870: [50, 36, 32, 608, 47, 555, 353, 235, 307, 290],\n", + " 871: [910, 1212, 1148, 2019, 1617, 1254, 1250, 2858, 1233, 1952],\n", + " 872: [904, 541, 858, 923, 912, 608, 750, 903, 908, 527],\n", + " 873: [912, 527, 3244, 260, 2918, 1240, 3347, 1197, 8405, 3189],\n", + " 874: [2273, 4701, 4025, 2353, 4018, 5299, 6378, 3977, 3052, 3510],\n", + " 875: [539, 597, 34, 11, 440, 457, 377, 110, 364, 500],\n", + " 876: [150, 587, 34, 508, 357, 11, 110, 364, 17, 350],\n", + " 878: [1304, 910, 1212, 1234, 1148, 1276, 1617, 1254, 2858, 1233],\n", + " 879: [858, 1699, 1429, 7153, 923, 2541, 1587, 627, 837, 1208],\n", + " 881: [349, 434, 1, 204, 21, 733, 300, 786, 196, 1036],\n", + " 882: [733, 608, 1073, 494, 832, 36, 6, 17, 802, 104],\n", + " 883: [539, 597, 150, 356, 587, 34, 508, 593, 357, 339],\n", + " 884: [260, 780, 733, 608, 494, 832, 36, 95, 25, 6],\n", + " 885: [1234, 1278, 1394, 1663, 1297, 2144, 2371, 440, 2150, 902],\n", + " 886: [2324, 1954, 110, 2355, 1247, 1207, 1272, 3114, 2890, 1183],\n", + " 887: [1358, 2324, 608, 1961, 858, 2396, 1242, 1094, 2762, 2194],\n", + " 888: [296, 50, 318, 36, 25, 223, 527, 32, 593, 608],\n", + " 889: [539, 597, 356, 587, 508, 593, 357, 11, 440, 457],\n", + " 890: [2901, 1732, 2976, 593, 1617, 2908, 1639, 2396, 2320, 1620],\n", + " 891: [593, 858, 2329, 6874, 6539, 1136, 1222, 1089, 1213, 6377],\n", + " 892: [337, 112, 232, 235, 307, 290, 306, 509, 31, 288],\n", + " 893: [2959, 296, 4993, 7153, 1210, 4226, 2858, 2762, 356, 4306],\n", + " 894: [296, 50, 318, 36, 25, 223, 527, 32, 593, 608],\n", + " 895: [457, 593, 480, 349, 318, 165, 110, 292, 47, 50],\n", + " 896: [318, 246, 111, 555, 337, 300, 232, 6, 16, 509],\n", + " 897: [457, 150, 480, 349, 589, 318, 588, 161, 356, 377],\n", + " 898: [1240, 1200, 1198, 2028, 593, 1374, 1617, 924, 1291, 858],\n", + " 899: [539, 597, 356, 587, 508, 593, 357, 11, 440, 457],\n", + " 900: [3, 58, 628, 140, 135, 1405, 76, 748, 743, 671],\n", + " 901: [5952, 2959, 296, 4993, 1196, 7153, 3578, 1210, 4226, 2858],\n", + " 902: [110, 527, 32, 541, 6377, 1221, 1961, 4973, 4878, 2502],\n", + " 903: [608, 1073, 832, 36, 25, 6, 17, 104, 805, 653],\n", + " 904: [2028, 1961, 858, 593, 2396, 1242, 2762, 2194, 3104, 2289],\n", + " 905: [762, 662, 280, 828, 467, 8327, 836, 2019, 1291, 441],\n", + " 906: [1258, 3793, 5349, 3052, 4886, 47, 8636, 1214, 4979, 6502],\n", + " 907: [588, 161, 595, 316, 292, 434, 329, 1, 34, 185],\n", + " 908: [32, 593, 1617, 1199, 296, 608, 50, 1197, 318, 1148],\n", + " 909: [4226, 3481, 4027, 6711, 2542, 4034, 4973, 1732, 2692, 1206],\n", + " 910: [2571, 1196, 3578, 1210, 2762, 356, 2028, 589, 260, 1036],\n", + " 911: [786, 708, 1097, 1029, 79, 1012, 1022, 661, 531, 852],\n", + " 912: [2028, 965, 2186, 919, 2858, 2935, 931, 1066, 2324, 2208],\n", + " 913: [1465, 2943, 531, 1056, 3082, 1277, 590, 613, 4709, 2397],\n", + " 914: [1270, 1246, 280, 608, 828, 8327, 2019, 1291, 2797, 2028],\n", + " 915: [1220, 2406, 1380, 914, 919, 1641, 1285, 1136, 1101, 1663],\n", + " 916: [2571, 5952, 296, 1196, 7153, 3578, 318, 1210, 4226, 2858],\n", + " 917: [260, 32, 494, 6, 802, 104, 805, 1210, 112, 1356],\n", + " 918: [608, 141, 32, 36, 25, 6, 17, 805, 112, 58],\n", + " 919: [26, 637, 1042, 711, 724, 708, 49278, 12, 719, 609],\n", + " 920: [527, 3707, 1233, 2918, 1358, 3347, 2396, 1197, 8405, 3189],\n", + " 921: [1230, 527, 3244, 3707, 260, 1233, 2918, 1240, 1358, 3347],\n", + " 922: [4025, 3793, 2353, 5989, 6378, 3408, 1704, 2028, 3052, 2763],\n", + " 923: [260, 62, 736, 32, 648, 832, 36, 25, 17, 802],\n", + " 924: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 593],\n", + " 925: [2863, 2948, 2918, 1256, 346, 1580, 2363, 2186, 2949, 2273],\n", + " 926: [858, 2396, 1252, 1699, 1704, 593, 1429, 3671, 1148, 2541],\n", + " 927: [2571, 5952, 2959, 296, 4993, 1196, 7153, 3578, 318, 4226],\n", + " 928: [7153, 2028, 1036, 110, 1291, 858, 527, 1214, 1200, 1704],\n", + " 930: [34, 357, 11, 440, 110, 364, 17, 497, 454, 62],\n", + " 931: [1, 260, 608, 62, 141, 648, 832, 36, 95, 25],\n", + " 932: [150, 356, 508, 339, 440, 527, 590, 110, 318, 500],\n", + " 933: [1374, 924, 858, 1199, 608, 1197, 1376, 1148, 110, 1213],\n", + " 934: [2959, 7254, 1006, 1354, 1967, 3020, 2683, 318, 2023, 1221],\n", + " 935: [19, 21, 1784, 274, 2195, 1092, 575, 1527, 590, 2329],\n", + " 936: [318, 1270, 1, 1213, 1527, 2716, 1580, 2918, 2628, 3114],\n", + " 937: [2571, 296, 4993, 1196, 3578, 1210, 4226, 2858, 356, 2028],\n", + " 938: [480, 589, 165, 110, 588, 356, 595, 10, 377, 592],\n", + " 939: [62, 494, 25, 17, 802, 104, 805, 653, 1210, 112],\n", + " 940: [431,\n", + " 11,\n", + " 45186,\n", + " 53322,\n", + " 1213,\n", + " 49530,\n", + " 31696,\n", + " 8644,\n", + " 3298,\n", + " 1573],\n", + " 941: [370, 256, 19, 410, 420, 333, 248, 355, 455, 466],\n", + " 942: [150, 480, 589, 590, 110, 161, 356, 377, 364, 47],\n", + " 943: [466, 104, 543, 88, 520, 1552, 2717, 2735, 743, 1982],\n", + " 945: [780, 608, 648, 832, 36, 95, 6, 104, 805, 1210],\n", + " 946: [1200, 541, 2028, 1036, 1199, 296, 318, 1148, 1270, 47],\n", + " 947: [5952, 2959, 296, 4993, 7153, 3578, 318, 4226, 2858, 2762],\n", + " 948: [1358, 590, 1961, 1242, 2194, 3104, 2289, 2243, 1954, 1962],\n", + " 949: [1732, 2890, 1747, 4086, 4242, 246, 5303, 1468, 608, 4034],\n", + " 950: [4226, 2959, 3481, 4027, 2542, 4993, 4034, 4973, 5952, 3793],\n", + " 951: [260, 25, 802, 805, 1210, 1356, 1393, 3, 58, 52],\n", + " 952: [1, 608, 141, 32, 36, 25, 6, 104, 653, 112],\n", + " 953: [1343, 2396, 1457, 373, 1515, 1967, 73, 919, 1197, 892],\n", + " 954: [5952, 296, 4993, 7153, 318, 4226, 2858, 356, 4306, 593],\n", + " 955: [1230, 912, 3244, 3707, 260, 1233, 1240, 1358, 3347, 8405],\n", + " 956: [316, 1, 204, 733, 786, 196, 173, 6, 1036, 780],\n", + " 957: [1704, 2324, 2396, 1094, 2762, 2194, 3104, 2289, 2243, 1962],\n", + " 958: [4993, 4963, 3147, 3578, 1580, 6539, 356, 2273, 6377, 4701],\n", + " 960: [50, 318, 36, 25, 223, 32, 293, 246, 111, 555],\n", + " 961: [904, 541, 858, 1252, 923, 912, 608, 750, 1208, 903],\n", + " 962: [356, 1625, 1610, 2762, 1833, 50, 1249, 593, 1127, 3101],\n", + " 963: [296, 50, 318, 36, 25, 223, 527, 32, 593, 608],\n", + " 964: [5952, 4993, 7153, 2858, 2762, 4306, 1198, 50, 1291, 1214],\n", + " 965: [25, 527, 293, 555, 337, 353, 112, 235, 307, 6],\n", + " 966: [2329, 1258, 7361, 3996, 3052, 4011, 778, 47, 4262, 2762],\n", + " 967: [5952, 4993, 1196, 7153, 3578, 1210, 4226, 2028, 4306, 589],\n", + " 968: [380, 589, 588, 161, 356, 595, 10, 377, 592, 364],\n", + " 969: [260, 608, 648, 494, 832, 95, 6, 802, 104, 805],\n", + " 970: [457, 480, 349, 589, 165, 588, 161, 356, 595, 316],\n", + " 971: [3481, 6711, 2542, 7361, 2502, 32, 1089, 4878, 4011, 778],\n", + " 972: [1961, 3104, 2289, 2243, 36, 1674, 260, 1299, 2355, 1960],\n", + " 973: [3949, 55820, 1222, 7361, 1234, 858, 5147, 6874, 2858, 2959],\n", + " 974: [371, 318, 544, 68, 514, 270, 71, 315, 248, 440],\n", + " 975: [318, 36, 25, 223, 527, 593, 293, 47, 246, 555],\n", + " 976: [457, 593, 480, 589, 110, 356, 316, 10, 377, 292],\n", + " 977: [1219, 1304, 1212, 2019, 1254, 1233, 1204, 1394, 1284, 2396],\n", + " 978: [527, 1097, 1193, 356, 2762, 1080, 2028, 2858, 3534, 32],\n", + " 979: [610, 5679, 7445, 2140, 1172, 7254, 593, 3897, 1193, 1831],\n", + " 980: [2571, 5952, 1196, 3578, 318, 2028, 4306, 589, 1036, 1198],\n", + " 982: [733, 62, 494, 832, 36, 6, 17, 802, 104, 805],\n", + " 983: [4993, 4963, 3578, 2273, 4025, 2353, 3753, 780, 5989, 6378],\n", + " 984: [2571, 5952, 4993, 7153, 3578, 4226, 2858, 4306, 589, 260],\n", + " 985: [4226, 2959, 3481, 6711, 2858, 2542, 2997, 4034, 2329, 1258],\n", + " 986: [34, 508, 364, 17, 497, 62, 595, 39, 141, 21],\n", + " 987: [539, 597, 356, 587, 34, 508, 593, 357, 11, 440],\n", + " 988: [4027, 6711, 4034, 2329, 1732, 7361, 8636, 4979, 6502, 5902],\n", + " 989: [923, 750, 1208, 903, 111, 913, 1247, 1221, 1207, 1206],\n", + " 990: [349, 110, 161, 595, 316, 292, 329, 47, 153, 253],\n", + " 991: [3949, 55820, 1213, 7361, 858, 5147, 6874, 2858, 2959, 923],\n", + " 992: [786, 708, 1210, 362, 1028, 1029, 79, 1035, 1012, 1022],\n", + " 993: [2571, 2959, 296, 7153, 318, 2858, 2762, 356, 593, 589],\n", + " 994: [261, 265, 372, 537, 247, 531, 147, 427, 481, 45],\n", + " 995: [1358, 1704, 2028, 590, 2324, 608, 1961, 858, 1617, 593],\n", + " 996: [587, 440, 364, 17, 282, 480, 588, 497, 595, 141],\n", + " 997: [260, 608, 832, 802, 104, 805, 1210, 1356, 1393, 58],\n", + " 998: [1732, 318, 1500, 2692, 5004, 4086, 1682, 4242, 5303, 1],\n", + " 999: [1702, 158, 1713, 239, 256, 2142, 2083, 2089, 1196, 1373],\n", + " 1001: [380, 593, 349, 590, 318, 165, 296, 292, 434, 47],\n", + " 1002: [1, 733, 608, 62, 648, 494, 832, 36, 95, 25],\n", + " 1003: [2581,\n", + " 3081,\n", + " 1210,\n", + " 1777,\n", + " 2485,\n", + " 2716,\n", + " 2125,\n", + " 3578,\n", + " 2394,\n", + " 2396],\n", + " 1004: [527, 1080, 919, 3545, 3534, 2971, 5504, 1968, 8917, 3101],\n", + " 1005: [34, 508, 11, 590, 17, 282, 497, 266, 261, 509],\n", + " 1006: [296, 50, 36, 25, 223, 593, 293, 47, 246, 111],\n", + " 1007: [356, 2355, 1265, 2567, 1136, 1215, 1196, 1220, 1060, 1343],\n", + " 1008: [3481, 4027, 2542, 4034, 1258, 1206, 2502, 1089, 4011, 223],\n", + " 1009: [4993,\n", + " 4963,\n", + " 3147,\n", + " 3578,\n", + " 5349,\n", + " 6539,\n", + " 2762,\n", + " 2273,\n", + " 4701,\n", + " 3793],\n", + " 1011: [762, 662, 280, 1476, 828, 467, 8327, 836, 2797, 1242],\n", + " 1012: [356, 1625, 3408, 1610, 2762, 1833, 50, 2706, 1249, 2683],\n", + " 1013: [2959, 3578, 4226, 2858, 2762, 1036, 47, 1291, 2329, 1214],\n", + " 1014: [1193, 923, 912, 750, 1208, 903, 111, 913, 1221, 1136],\n", + " 1015: [3468, 4034, 5013, 3022, 3983, 4226, 919, 1084, 3307, 694],\n", + " 1016: [904, 541, 858, 1252, 912, 750, 1208, 903, 908, 913],\n", + " 1017: [2571, 2959, 296, 3578, 318, 4226, 2858, 2762, 356, 2028],\n", + " 1018: [4027, 2692, 2502, 8636, 4979, 5902, 4262, 50, 1748, 923],\n", + " 1019: [62, 1073, 32, 494, 832, 36, 25, 6, 17, 802],\n", + " 1020: [1079, 1270, 2797, 1097, 1259, 2791, 919, 1641, 3039, 1285],\n", + " 1021: [1193, 904, 541, 1252, 912, 608, 750, 1208, 903, 908],\n", + " 1022: [1193, 356, 2762, 1080, 2028, 2858, 3545, 3534, 2971, 32],\n", + " 1023: [296, 318, 1210, 4226, 2762, 356, 2028, 4306, 589, 1036],\n", + " 1025: [1193, 904, 541, 1252, 750, 1208, 903, 527, 913, 1206],\n", + " 1026: [6711, 2858, 2542, 2997, 4034, 1732, 2692, 1206, 32, 3996],\n", + " 1027: [2571, 5952, 4993, 1196, 7153, 318, 1210, 2858, 2762, 356],\n", + " 1028: [589, 318, 110, 588, 595, 377, 364, 344, 47, 253],\n", + " 1029: [36, 25, 223, 527, 32, 608, 293, 246, 111, 300],\n", + " 1030: [4963,\n", + " 3147,\n", + " 3578,\n", + " 5349,\n", + " 6377,\n", + " 4701,\n", + " 4025,\n", + " 4246,\n", + " 4896,\n", + " 4886],\n", + " 1031: [457, 380, 150, 349, 589, 318, 588, 296, 161, 356],\n", + " 1032: [1, 260, 733, 608, 62, 141, 32, 832, 36, 25],\n", + " 1033: [2571, 5952, 2959, 4993, 7153, 3578, 4226, 2858, 1036, 858],\n", + " 1034: [2571, 2959, 296, 4993, 1196, 318, 1210, 4226, 2858, 2762],\n", + " 1035: [2140, 2087, 2143, 1006, 1354, 1967, 3020, 2161, 4878, 912],\n", + " 1037: [508, 11, 440, 457, 527, 590, 110, 364, 318, 17],\n", + " 1038: [786, 362, 79, 1198, 852, 1291, 1367, 837, 653, 745],\n", + " 1039: [1196, 1240, 589, 1200, 2571, 1198, 1214, 32, 1374, 1356],\n", + " 1040: [466, 104, 543, 88, 520, 1552, 2717, 2735, 743, 1982],\n", + " 1041: [356, 4306, 1270, 480, 32, 1136, 1240, 1222, 541, 1213],\n", + " 1043: [260, 733, 608, 1073, 832, 802, 104, 805, 653, 1210],\n", + " 1044: [608, 62, 141, 494, 832, 36, 6, 17, 104, 805],\n", + " 1045: [5952,\n", + " 1214,\n", + " 1200,\n", + " 3996,\n", + " 480,\n", + " 1240,\n", + " 1080,\n", + " 33794,\n", + " 2716,\n", + " 4973],\n", + " 1046: [589, 318, 110, 588, 161, 10, 377, 292, 364, 329],\n", + " 1047: [1222,\n", + " 1234,\n", + " 5147,\n", + " 4873,\n", + " 1080,\n", + " 2585,\n", + " 55805,\n", + " 3507,\n", + " 6339,\n", + " 5792],\n", + " 1048: [3578, 356, 260, 110, 858, 527, 1214, 3996, 480, 1136],\n", + " 1050: [36, 608, 246, 111, 112, 232, 235, 307, 290, 306],\n", + " 1051: [608, 32, 494, 832, 36, 95, 25, 6, 805, 653],\n", + " 1052: [21, 2028, 1004, 274, 2195, 1092, 575, 1610, 2403, 3623],\n", + " 1053: [2028, 593, 1374, 1356, 1617, 858, 1199, 296, 608, 457]})" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from collections import defaultdict\n", + "\n", + "# 각 사용자에 대한 추천 리스트를 작성한다\n", + "# 각 사용자의 소속 확률이 가장 높은 토픽을 얻고, 해당 토픽 안에서 확률이 높은 아이템을 저장해 나간다\n", + "\n", + "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", + "\n", + "pred_user2items = defaultdict(list)\n", + "for i, (user_id, data) in enumerate(movielens_train_high_rating.groupby(\"user_id\")):\n", + " evaluated_movie_ids = user_evaluated_movies[user_id]\n", + " # 사용자의 소속 확률이 가장 높은 토픽을 얻는다\n", + " user_topic = sorted(lda_topics[i], key=lambda x: -x[1])[0][0]\n", + " # 해당 토픽 안에서 확률이 높은 아이템을 얻는다\n", + " topic_movies = lda_model.get_topic_terms(user_topic, topn=len(movies))\n", + "\n", + " for token_id, score in topic_movies:\n", + " movie_id = int(common_dictionary.id2token[token_id])\n", + " if movie_id not in evaluated_movie_ids:\n", + " pred_user2items[user_id].append(movie_id)\n", + " if len(pred_user2items[user_id]) == 10:\n", + " break\n", + "\n", + "pred_user2items" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "1701bd43", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 288 + }, + "executionInfo": { + "elapsed": 24, + "status": "ok", + "timestamp": 1672118441268, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "1701bd43", + "outputId": "ee59bd31-4381-4245-f7ae-752409de578c" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " user_id movie_id rating timestamp \\\n", + "4732 2 110 5.0 868245777 \n", + "5246 2 260 5.0 868244562 \n", + "5798 2 590 5.0 868245608 \n", + "8381 2 1210 4.0 868245644 \n", + "\n", + " title \\\n", + "4732 Braveheart (1995) \n", + "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", + "5798 Dances with Wolves (1990) \n", + "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", + "\n", + " genre \\\n", + "4732 [Action, Drama, War] \n", + "5246 [Action, Adventure, Sci-Fi] \n", + "5798 [Adventure, Drama, Western] \n", + "8381 [Action, Adventure, Sci-Fi] \n", + "\n", + " tag timestamp_rank \n", + "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", + "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", + "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", + "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", + "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "16eddf46", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 143 + }, + "executionInfo": { + "elapsed": 18, + "status": "ok", + "timestamp": 1672118441268, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "16eddf46", + "outputId": "da0309a9-ae28-406a-bcf1-f5d45c559abc" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idtitlegenretag
11711196Star Wars: Episode V - The Empire Strikes Back...[Action, Adventure, Sci-Fi][lucas, george lucas, george lucas, gfei own i...
11731198Raiders of the Lost Ark (Indiana Jones and the...[Action, Adventure][egypt, lucas, seen more than once, dvd collec...
12121240Terminator, The (1984)[Action, Sci-Fi, Thriller][arnold schwarzenegger, sci-fi, time travel, d...
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " movie_id title \\\n", + "1171 1196 Star Wars: Episode V - The Empire Strikes Back... \n", + "1173 1198 Raiders of the Lost Ark (Indiana Jones and the... \n", + "1212 1240 Terminator, The (1984) \n", + "\n", + " genre \\\n", + "1171 [Action, Adventure, Sci-Fi] \n", + "1173 [Action, Adventure] \n", + "1212 [Action, Sci-Fi, Thriller] \n", + "\n", + " tag \n", + "1171 [lucas, george lucas, george lucas, gfei own i... \n", + "1173 [egypt, lucas, seen more than once, dvd collec... \n", + "1212 [arnold schwarzenegger, sci-fi, time travel, d... " + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2에 대한 추천(1198, 1196, 1240)\n", + "movies[movies.movie_id.isin([1198, 1196, 1240])]" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "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.10.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/chapter5/colab/LDA_content.ipynb b/chapter5/colab/LDA_content.ipynb index 11cf8eb..9b86a34 100644 --- a/chapter5/colab/LDA_content.ipynb +++ b/chapter5/colab/LDA_content.ipynb @@ -1 +1,4865 @@ -{"cells":[{"cell_type":"markdown","id":"0a902087","metadata":{"id":"0a902087"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/LDA_content.ipynb)"]},{"cell_type":"markdown","id":"98853cdc","metadata":{"id":"98853cdc"},"source":["# Latent Dirichlet Allocation (LDA)"]},{"cell_type":"code","execution_count":1,"id":"dd0a4718","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"dd0a4718","executionInfo":{"status":"ok","timestamp":1672118379265,"user_tz":-540,"elapsed":3985,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c3c7a4e6-690d-431c-a767-3ff7cd0aea7a"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:19:32-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 106MB/s in 0.6s \n","\n","2022-12-27 05:19:33 (106 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"38f1eabd","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"38f1eabd","executionInfo":{"status":"ok","timestamp":1672118460251,"user_tz":-540,"elapsed":80989,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"7dbb3693-16e5-4e38-fd8e-c20f1595a08f"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"ea40c411","metadata":{"id":"ea40c411","executionInfo":{"status":"ok","timestamp":1672118460251,"user_tz":-540,"elapsed":11,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 인자 수\n","factors = 50\n","# 에폭 수\n","n_epochs = 30"]},{"cell_type":"code","execution_count":4,"id":"7aa2bed1","metadata":{"id":"7aa2bed1","executionInfo":{"status":"ok","timestamp":1672118460252,"user_tz":-540,"elapsed":12,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["movie_content = movies.copy()\n","# tag가 부여되어 있지 않은 영화가 있지만, genre는 모든 영화에 부여되어 있다\n","# tag와 genre를 결합한 것을 영화 콘텐츠 정보로 하여 비슷한 영화를 찾아서 추천한다\n","# tag가 없는 영화는 NaN으로 되어 있으므로, 빈 리스트로 변환한 뒤 처리한다\n","movie_content[\"tag_genre\"] = movie_content[\"tag\"].fillna(\"\").apply(list) + movie_content[\"genre\"].apply(list)\n","movie_content[\"tag_genre\"] = movie_content[\"tag_genre\"].apply(lambda x: list(map(str, x)))\n","\n","# 태그와 장르 데이터를 사용해 lda를 학습한다\n","tag_genre_data = movie_content.tag_genre.tolist()"]},{"cell_type":"code","execution_count":5,"id":"d5804af1","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"d5804af1","executionInfo":{"status":"ok","timestamp":1672118468216,"user_tz":-540,"elapsed":7975,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"04a68cd3-8b0e-45ee-a1ee-d1a952a63437"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting gensim==4.0.1\n"," Downloading gensim-4.0.1-cp38-cp38-manylinux1_x86_64.whl (23.9 MB)\n","\u001b[K |████████████████████████████████| 23.9 MB 1.4 MB/s \n","\u001b[?25hRequirement already satisfied: scipy>=0.18.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.7.3)\n","Requirement already satisfied: numpy>=1.11.3 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.21.6)\n","Requirement already satisfied: smart-open>=1.8.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (6.3.0)\n","Installing collected packages: gensim\n"," Attempting uninstall: gensim\n"," Found existing installation: gensim 3.6.0\n"," Uninstalling gensim-3.6.0:\n"," Successfully uninstalled gensim-3.6.0\n","Successfully installed gensim-4.0.1\n"]}],"source":["!pip install gensim==4.0.1"]},{"cell_type":"code","execution_count":6,"id":"c448ef53","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"c448ef53","executionInfo":{"status":"ok","timestamp":1672118469654,"user_tz":-540,"elapsed":1442,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"040b678f-bb33-4b0e-eea1-9c147aa589c6"},"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.8/dist-packages/gensim/similarities/__init__.py:15: UserWarning: The gensim.similarities.levenshtein submodule is disabled, because the optional Levenshtein package is unavailable. Install Levenhstein (e.g. `pip install python-Levenshtein`) to suppress this warning.\n"," warnings.warn(msg)\n"]}],"source":["from gensim.corpora.dictionary import Dictionary\n","\n","# LDA의 입력으로 사용할 데이터를 작성한다\n","common_dictionary = Dictionary(tag_genre_data)\n","common_corpus = [common_dictionary.doc2bow(text) for text in tag_genre_data]\n"]},{"cell_type":"code","execution_count":7,"id":"a4449eb1","metadata":{"id":"a4449eb1","executionInfo":{"status":"ok","timestamp":1672118564370,"user_tz":-540,"elapsed":94718,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["import gensim\n","\n","# LDA 학습\n","lda_model = gensim.models.LdaModel(\n"," common_corpus, id2word=common_dictionary, num_topics=factors, passes=n_epochs\n",")"]},{"cell_type":"code","execution_count":8,"id":"a5911f4e","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"a5911f4e","executionInfo":{"status":"ok","timestamp":1672118564371,"user_tz":-540,"elapsed":13,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"851e44c7-0605-4c9b-cd83-701340697d26"},"outputs":[{"output_type":"stream","name":"stdout","text":["word=coen brothers, score=0.06292896717786789\n","word=bechdel test:fail, score=0.04510311409831047\n","word=based on book, score=0.04402820020914078\n","word=philip k. dick, score=0.04182061925530434\n","word=kidnapping, score=0.03534778952598572\n","word=quirky, score=0.02876952663064003\n","word=david lynch, score=0.022975284606218338\n","word=fascism, score=0.01680714637041092\n","word=sure thing, score=0.015899477526545525\n","word=robert altman, score=0.015737345442175865\n"]}],"source":["# topic0인 단어 목록\n","for token_id, score in lda_model.get_topic_terms(0, topn=10):\n"," word = common_dictionary.id2token[token_id]\n"," print(f'word={word}, score={score}')"]},{"cell_type":"code","execution_count":9,"id":"858bf7ea","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"858bf7ea","executionInfo":{"status":"ok","timestamp":1672118564371,"user_tz":-540,"elapsed":11,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"df48bb09-d2ad-4570-fa8f-e5b38679a98c"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[(0, 0.01000004),\n"," (1, 0.01000004),\n"," (2, 0.01000004),\n"," (3, 0.01000004),\n"," (4, 0.01000004),\n"," (5, 0.01000004),\n"," (6, 0.01000004),\n"," (7, 0.01000004),\n"," (8, 0.01000004),\n"," (9, 0.01000004),\n"," (10, 0.01000004),\n"," (11, 0.01000004),\n"," (12, 0.01000004),\n"," (13, 0.01000004),\n"," (14, 0.01000004),\n"," (15, 0.01000004),\n"," (16, 0.01000004),\n"," (17, 0.01000004),\n"," (18, 0.01000004),\n"," (19, 0.01000004),\n"," (20, 0.01000004),\n"," (21, 0.01000004),\n"," (22, 0.01000004),\n"," (23, 0.01000004),\n"," (24, 0.01000004),\n"," (25, 0.01000004),\n"," (26, 0.01000004),\n"," (27, 0.01000004),\n"," (28, 0.01000004),\n"," (29, 0.01000004),\n"," (30, 0.01000004),\n"," (31, 0.01000004),\n"," (32, 0.509998),\n"," (33, 0.01000004),\n"," (34, 0.01000004),\n"," (35, 0.01000004),\n"," (36, 0.01000004),\n"," (37, 0.01000004),\n"," (38, 0.01000004),\n"," (39, 0.01000004),\n"," (40, 0.01000004),\n"," (41, 0.01000004),\n"," (42, 0.01000004),\n"," (43, 0.01000004),\n"," (44, 0.01000004),\n"," (45, 0.01000004),\n"," (46, 0.01000004),\n"," (47, 0.01000004),\n"," (48, 0.01000004),\n"," (49, 0.01000004)]"]},"metadata":{},"execution_count":9}],"source":["# samurai라는 단어의 토픽(각 토픽에 소속될 확률)\n","lda_model[common_dictionary.doc2bow(['samurai'])]"]},{"cell_type":"code","execution_count":10,"id":"e03ab49d","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":554},"id":"e03ab49d","executionInfo":{"status":"ok","timestamp":1672118571397,"user_tz":-540,"elapsed":7036,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"04f31642-f84a-4a5b-a7a7-17f5e79ad431"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","0 1 Toy Story (1995) \n","1 2 Jumanji (1995) \n","2 3 Grumpier Old Men (1995) \n","3 4 Waiting to Exhale (1995) \n","4 5 Father of the Bride Part II (1995) \n","... ... ... \n","10676 65088 Bedtime Stories (2008) \n","10677 65091 Manhattan Melodrama (1934) \n","10678 65126 Choke (2008) \n","10679 65130 Revolutionary Road (2008) \n","10680 65133 Blackadder Back & Forth (1999) \n","\n"," genre \\\n","0 [Adventure, Animation, Children, Comedy, Fantasy] \n","1 [Adventure, Children, Fantasy] \n","2 [Comedy, Romance] \n","3 [Comedy, Drama, Romance] \n","4 [Comedy] \n","... ... \n","10676 [Adventure, Children, Comedy] \n","10677 [Crime, Drama, Romance] \n","10678 [Comedy, Drama] \n","10679 [Drama, Romance] \n","10680 [Comedy] \n","\n"," tag \\\n","0 [pixar, pixar, pixar, animation, pixar, animat... \n","1 [for children, game, animals, joe johnston, ro... \n","2 [funniest movies, comedinha de velhinhos engra... \n","3 [girl movie] \n","4 [steve martin, pregnancy, remake, steve martin... \n","... ... \n","10676 NaN \n","10677 NaN \n","10678 [chuck palahniuk, based on book] \n","10679 [toplist08] \n","10680 NaN \n","\n"," tag_genre topic topic_score \n","0 [pixar, pixar, pixar, animation, pixar, animat... 34 0.777594 \n","1 [for children, game, animals, joe johnston, ro... 40 0.275520 \n","2 [funniest movies, comedinha de velhinhos engra... 7 0.501525 \n","3 [girl movie, Comedy, Drama, Romance] 49 0.755000 \n","4 [steve martin, pregnancy, remake, steve martin... 34 0.692084 \n","... ... ... ... \n","10676 [Adventure, Children, Comedy] 34 0.755000 \n","10677 [Crime, Drama, Romance] 49 0.456076 \n","10678 [chuck palahniuk, based on book, Comedy, Drama] 49 0.505002 \n","10679 [toplist08, Drama, Romance] 49 0.673333 \n","10680 [Comedy] 17 0.510000 \n","\n","[10681 rows x 7 columns]"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretagtag_genretopictopic_score
01Toy Story (1995)[Adventure, Animation, Children, Comedy, Fantasy][pixar, pixar, pixar, animation, pixar, animat...[pixar, pixar, pixar, animation, pixar, animat...340.777594
12Jumanji (1995)[Adventure, Children, Fantasy][for children, game, animals, joe johnston, ro...[for children, game, animals, joe johnston, ro...400.275520
23Grumpier Old Men (1995)[Comedy, Romance][funniest movies, comedinha de velhinhos engra...[funniest movies, comedinha de velhinhos engra...70.501525
34Waiting to Exhale (1995)[Comedy, Drama, Romance][girl movie][girl movie, Comedy, Drama, Romance]490.755000
45Father of the Bride Part II (1995)[Comedy][steve martin, pregnancy, remake, steve martin...[steve martin, pregnancy, remake, steve martin...340.692084
........................
1067665088Bedtime Stories (2008)[Adventure, Children, Comedy]NaN[Adventure, Children, Comedy]340.755000
1067765091Manhattan Melodrama (1934)[Crime, Drama, Romance]NaN[Crime, Drama, Romance]490.456076
1067865126Choke (2008)[Comedy, Drama][chuck palahniuk, based on book][chuck palahniuk, based on book, Comedy, Drama]490.505002
1067965130Revolutionary Road (2008)[Drama, Romance][toplist08][toplist08, Drama, Romance]490.673333
1068065133Blackadder Back & Forth (1999)[Comedy]NaN[Comedy]170.510000
\n","

10681 rows × 7 columns

\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":10}],"source":["# 각 영화의 토픽을 저장한다\n","lda_topics = lda_model[common_corpus]\n","\n","# 각 영화에 가장 확률이 높은 토픽을 1개 추출해서 저장한다\n","movie_topics = []\n","movie_topic_scores = []\n","for movie_index, lda_topic in enumerate(lda_topics):\n"," sorted_topic = sorted(lda_topics[movie_index], key=lambda x: -x[1])\n"," # 가장 확률이 높은 토픽\n"," movie_topic, topic_score = sorted_topic[0]\n"," movie_topics.append(movie_topic)\n"," movie_topic_scores.append(topic_score)\n","movie_content[\"topic\"] = movie_topics\n","movie_content[\"topic_score\"] = movie_topic_scores\n","movie_content"]},{"cell_type":"code","execution_count":11,"id":"961bb095","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"961bb095","executionInfo":{"status":"ok","timestamp":1672118572985,"user_tz":-540,"elapsed":1592,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"e05ef7b3-811d-4c1e-a76b-32c2721be3ad"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {1: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 2: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788],\n"," 3: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 4: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 5: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n"," 6: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n"," 7: [25766, 910, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494],\n"," 8: [3683, 4881, 1394, 5756, 33823, 2583, 76, 663, 1464, 45028],\n"," 9: [1513, 45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102],\n"," 10: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n"," 11: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 12: [1210, 1196, 260, 5378, 33493, 1200, 1580, 377, 1584, 1438],\n"," 13: [260, 5378, 33493, 780, 2628, 1200, 377, 1584, 1438, 788],\n"," 14: [780, 2628, 1200, 1580, 377, 1584, 1438, 788, 8644, 736],\n"," 16: [5378, 33493, 780, 2628, 377, 1584, 1438, 788, 8644, 736],\n"," 17: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 18: [5378, 33493, 2628, 1200, 1584, 8644, 1690, 4812, 3699, 2311],\n"," 19: [104,\n"," 59900,\n"," 1777,\n"," 2014,\n"," 27830,\n"," 60487,\n"," 3979,\n"," 1241,\n"," 6593,\n"," 27873],\n"," 22: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 23: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 1584, 1438, 788],\n"," 24: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 26: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 27: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 28: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 29: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 457],\n"," 30: [135, 5146, 2810, 27731, 42217, 1537, 3484, 4850, 1717, 1343],\n"," 33: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 34: [5378, 33493, 1580, 8644, 4812, 2311, 6882, 3527, 2193, 2115],\n"," 35: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2622],\n"," 36: [262,\n"," 1130,\n"," 5335,\n"," 60530,\n"," 59290,\n"," 27513,\n"," 3012,\n"," 4514,\n"," 8025,\n"," 5833],\n"," 37: [2249, 3833, 32019, 1785, 18, 3744, 27734, 1729, 1635, 1213],\n"," 38: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 40: [555, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n"," 41: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 42: [1513, 45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102],\n"," 43: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 44: [1513, 45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102],\n"," 45: [48161, 993, 930, 2178, 2375, 904, 2186, 290, 43710, 2236],\n"," 46: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 47: [5378, 33493, 1438, 788, 8644, 1690, 4812, 3699, 2311, 6882],\n"," 48: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 50: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 51: [586, 1734, 7091, 317, 7058, 34002, 8734, 34018, 4763, 2804],\n"," 52: [2924, 2582, 112, 51277, 5621, 1429, 2879, 2880, 3139, 1867],\n"," 53: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 54: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 55: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n"," 56: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 57: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 58: [1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848, 63237],\n"," 59: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 60: [1210, 1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 61: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 62: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 63: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 64: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 65: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1881,\n"," 63237,\n"," 8713,\n"," 48159],\n"," 66: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n"," 67: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 68: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 69: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 70: [48161, 993, 2178, 524, 2375, 2186, 290, 43710, 2236, 47644],\n"," 71: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 72: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 73: [1513, 45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102],\n"," 74: [1261, 26915, 1215, 4105, 8928, 256, 33834, 8874, 8225, 4553],\n"," 75: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 76: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 77: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n"," 78: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 79: [8457, 2610, 700, 47778, 1057, 4408, 492, 31038, 8801, 3178],\n"," 80: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 81: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1942, 1937],\n"," 82: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 83: [61352,\n"," 6699,\n"," 56719,\n"," 27255,\n"," 55726,\n"," 1893,\n"," 279,\n"," 3192,\n"," 4977,\n"," 8619],\n"," 84: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 85: [555, 1089, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n"," 86: [260, 5378, 33493, 2628, 1580, 377, 1584, 1438, 788, 8644],\n"," 87: [45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102, 6212],\n"," 88: [33493, 1200, 377, 1584, 1438, 788, 8644, 1690, 4812, 3699],\n"," 89: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n"," 90: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 91: [5378, 33493, 2628, 1580, 377, 1584, 1438, 788, 8644, 736],\n"," 92: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n"," 93: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n"," 94: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 95: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 96: [2513,\n"," 2120,\n"," 5022,\n"," 4178,\n"," 7178,\n"," 2517,\n"," 26788,\n"," 26007,\n"," 4921,\n"," 2121],\n"," 97: [1210, 260, 5378, 33493, 780, 1200, 1580, 377, 1584, 1438],\n"," 98: [3683, 4881, 1394, 5756, 33823, 2583, 76, 1732, 7163, 1464],\n"," 99: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 100: [48161, 993, 930, 2178, 524, 2375, 290, 43710, 2236, 47644],\n"," 101: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 102: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 103: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 104: [1210, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n"," 105: [5378, 33493, 780, 2628, 1200, 377, 1584, 1438, 788, 8644],\n"," 106: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 107: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 108: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 110: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 111: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 112: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 113: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 114: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 115: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n"," 116: [1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438, 8644],\n"," 117: [6374, 6380, 1586, 29, 121, 943, 8337, 225, 351, 8516],\n"," 118: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 119: [2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734, 1729],\n"," 120: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 8644],\n"," 121: [260, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n"," 122: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 123: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 124: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 125: [176,\n"," 3631,\n"," 3786,\n"," 5222,\n"," 51666,\n"," 5847,\n"," 33136,\n"," 4389,\n"," 1897,\n"," 1615],\n"," 126: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 127: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 2107],\n"," 128: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 129: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 130: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 131: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 132: [1348,\n"," 27850,\n"," 2783,\n"," 1694,\n"," 3872,\n"," 8194,\n"," 4113,\n"," 2454,\n"," 2064,\n"," 26306],\n"," 134: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 135: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 136: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584, 1438],\n"," 137: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 138: [2249, 7438, 3833, 32019, 1785, 18, 3744, 27734, 1729, 1635],\n"," 139: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 63237],\n"," 140: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n"," 141: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 142: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 143: [4740, 7211, 7221, 745, 1148, 6501, 3501, 27509, 1075, 2884],\n"," 144: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 2094, 6305],\n"," 145: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 148: [5378, 33493, 780, 2628, 1580, 1584, 1438, 788, 8644, 736],\n"," 149: [555, 1089, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1635],\n"," 150: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 151: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 152: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 153: [1210, 1196, 5378, 33493, 780, 1580, 377, 1584, 1438, 788],\n"," 154: [33493, 1438, 8644, 4812, 2311, 6882, 2193, 2115, 8810, 748],\n"," 155: [1302, 5644, 1940, 3100, 7771, 1943, 1929, 1225, 1942, 1937],\n"," 156: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 157: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 158: [1695, 1060, 719, 502, 4021, 6876, 2059, 4273, 5517, 6341],\n"," 159: [2401,\n"," 44168,\n"," 5959,\n"," 318,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889,\n"," 8340,\n"," 4714],\n"," 160: [63113,\n"," 2989,\n"," 7570,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005,\n"," 3984,\n"," 7573],\n"," 161: [5378, 33493, 780, 1580, 377, 1438, 788, 8644, 736, 1690],\n"," 162: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 163: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 164: [58059,\n"," 1608,\n"," 8939,\n"," 1704,\n"," 4176,\n"," 2889,\n"," 2019,\n"," 3030,\n"," 4640,\n"," 7919],\n"," 165: [1210, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 166: [5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788, 8644],\n"," 167: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n"," 168: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1848, 63237, 8713],\n"," 169: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 170: [1753, 8807, 194, 4034, 7959, 4439, 4994, 410, 784, 2150],\n"," 171: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 172: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 173: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 174: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 175: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 176: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 177: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 178: [5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438, 788],\n"," 179: [596, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 63237, 8713],\n"," 180: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n"," 182: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 183: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 184: [1196, 260, 5378, 33493, 780, 1200, 1580, 377, 1584, 1438],\n"," 185: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 186: [1196, 33493, 780, 2628, 1580, 377, 1584, 1438, 788, 8644],\n"," 187: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 188: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 189: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 1584, 1438, 788],\n"," 190: [5378, 377, 788, 1690, 4812, 2311, 6882, 748, 5290, 3927],\n"," 191: [7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619, 445],\n"," 192: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 193: [2924, 2582, 112, 51277, 5621, 1429, 2879, 2880, 3139, 1867],\n"," 194: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 195: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n"," 196: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 197: [1485, 344, 19, 1753, 8807, 194, 4034, 7959, 4439, 4994],\n"," 198: [377, 1438, 788, 736, 4812, 3699, 2311, 6882, 3527, 2193],\n"," 199: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 200: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 201: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 202: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 203: [5378, 33493, 2628, 377, 1584, 1438, 788, 8644, 1690, 4812],\n"," 204: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 205: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n"," 206: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 207: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 208: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 209: [2550,\n"," 1789,\n"," 1103,\n"," 1340,\n"," 4722,\n"," 4942,\n"," 2665,\n"," 47836,\n"," 4518,\n"," 2650],\n"," 210: [1196, 260, 5378, 33493, 1200, 377, 1438, 8644, 736, 1690],\n"," 211: [1210, 5378, 33493, 780, 2628, 377, 1584, 1438, 788, 8644],\n"," 212: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 50259,\n"," 5842,\n"," 61724],\n"," 213: [500, 58059, 8939, 4176, 2889, 2019, 3030, 4640, 7919, 8292],\n"," 214: [33493,\n"," 1200,\n"," 1438,\n"," 8644,\n"," 1690,\n"," 4812,\n"," 6882,\n"," 3527,\n"," 2193,\n"," 8810],\n"," 215: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 32525],\n"," 216: [4740, 7211, 5077, 7221, 838, 1148, 3454, 6501, 3501, 27509],\n"," 217: [1485, 19, 231, 1753, 8807, 194, 4034, 7959, 4439, 4994],\n"," 218: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 219: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 220: [1266, 2401, 44168, 5959, 318, 4945, 54787, 4785, 7889, 599],\n"," 221: [5378, 33493, 2628, 1200, 1580, 1584, 1438, 788, 8644, 1690],\n"," 222: [1261, 26915, 1215, 4105, 342, 8928, 256, 33834, 8874, 8225],\n"," 223: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 224: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 225: [2924, 2582, 112, 51277, 5621, 1429, 2879, 2880, 3139, 1867],\n"," 226: [1046,\n"," 2550,\n"," 1789,\n"," 1103,\n"," 1340,\n"," 4722,\n"," 4942,\n"," 2665,\n"," 47836,\n"," 4518],\n"," 227: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 228: [1261,\n"," 26915,\n"," 1215,\n"," 4105,\n"," 342,\n"," 8928,\n"," 33834,\n"," 8874,\n"," 8225,\n"," 4553],\n"," 229: [2924,\n"," 2582,\n"," 51277,\n"," 5621,\n"," 2879,\n"," 2880,\n"," 3139,\n"," 1867,\n"," 5702,\n"," 7113],\n"," 230: [2848, 7069, 3723, 26, 2820, 3719, 2011, 2622, 4319, 4324],\n"," 231: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 232: [5378, 33493, 2628, 1580, 1584, 1438, 788, 8644, 1690, 4812],\n"," 234: [2924, 2582, 112, 51277, 5621, 1429, 2879, 2880, 3139, 1867],\n"," 235: [1210, 1196, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n"," 236: [1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n"," 237: [5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788, 8644],\n"," 238: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 239: [1210, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 241: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 242: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n"," 243: [5378, 33493, 780, 2628, 1200, 1584, 1438, 788, 8644, 736],\n"," 244: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 245: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 246: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 247: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 248: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 249: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 2107],\n"," 250: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 251: [5378, 33493, 2628, 1580, 377, 1584, 1438, 8644, 1690, 4812],\n"," 252: [48161, 993, 2178, 524, 2375, 290, 43710, 2236, 47644, 2335],\n"," 253: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n"," 254: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n"," 255: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 256: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 257: [1210, 1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 258: [63113, 7570, 2642, 2990, 2376, 2991, 3633, 2949, 4005, 153],\n"," 259: [49282, 2546, 448, 1288, 7770, 1179, 1968, 2248, 6558, 6776],\n"," 260: [5378, 33493, 2628, 1580, 1584, 1438, 788, 8644, 736, 1690],\n"," 261: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 262: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 263: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 264: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 265: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 266: [2848, 1411, 7069, 26, 3598, 2820, 497, 3719, 2011, 2622],\n"," 267: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n"," 268: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 269: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 270: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 271: [5378, 33493, 2628, 1200, 377, 1438, 8644, 736, 1690, 4812],\n"," 272: [4740, 7211, 5077, 7221, 838, 3454, 6501, 3501, 27509, 1075],\n"," 273: [1196, 33493, 780, 2628, 1580, 1584, 1438, 788, 8644, 736],\n"," 274: [596, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848, 63237],\n"," 275: [1210, 260, 5378, 33493, 780, 2628, 1200, 1438, 8644, 736],\n"," 276: [26915,\n"," 8928,\n"," 33834,\n"," 8225,\n"," 4531,\n"," 7225,\n"," 5195,\n"," 6134,\n"," 5040,\n"," 7000],\n"," 277: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 278: [1210, 1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 279: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 280: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n"," 281: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n"," 282: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 285: [1967, 6374, 6380, 1586, 29, 121, 943, 8337, 225, 351],\n"," 286: [5378, 33493, 780, 1580, 377, 1584, 1438, 788, 8644, 736],\n"," 287: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 2023],\n"," 288: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1225, 1942],\n"," 289: [2513,\n"," 2120,\n"," 5022,\n"," 7178,\n"," 2517,\n"," 906,\n"," 26788,\n"," 26007,\n"," 2118,\n"," 4921],\n"," 290: [596, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848, 63237],\n"," 291: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 318,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785],\n"," 292: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 293: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 294: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 295: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n"," 296: [6952,\n"," 3652,\n"," 3970,\n"," 3832,\n"," 5980,\n"," 27317,\n"," 2159,\n"," 5165,\n"," 2460,\n"," 8906],\n"," 297: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 298: [596,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3611,\n"," 1848,\n"," 63237,\n"," 8713,\n"," 48159,\n"," 32153],\n"," 300: [1496, 4420, 5483, 4181, 6460, 5177, 89, 3467, 550, 916],\n"," 301: [1302, 5644, 1961, 1940, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 302: [350, 6296, 49282, 2546, 448, 6187, 6323, 7770, 1179, 1449],\n"," 303: [350, 6296, 49282, 2546, 448, 50, 6187, 6323, 7770, 1179],\n"," 304: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1942, 1937],\n"," 305: [951, 2330, 537, 26770, 6001, 7100, 4870, 3038, 5142, 1641],\n"," 306: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n"," 307: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 308: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 309: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 310: [1485, 344, 19, 231, 1753, 8807, 194, 7959, 4439, 4994],\n"," 311: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 312: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 313: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 314: [5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788, 8644],\n"," 315: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 316: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 317: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 318: [5644, 1940, 3100, 7771, 1943, 1929, 1942, 1937, 1946, 1936],\n"," 319: [33493, 780, 1580, 377, 1438, 788, 8644, 736, 4812, 3699],\n"," 320: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 321: [597, 1059, 3619, 605, 1552, 5942, 6996, 5245, 2023, 3512],\n"," 322: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 323: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 324: [1196, 260, 5378, 33493, 780, 1200, 1580, 377, 1438, 788],\n"," 325: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 326: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 327: [348, 8457, 2610, 700, 47778, 1057, 4408, 492, 31038, 8801],\n"," 328: [1210, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n"," 329: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 330: [780, 1580, 377, 1584, 1438, 788, 8644, 736, 4812, 3699],\n"," 331: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 332: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 333: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 334: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 335: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n"," 336: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 337: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 338: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n"," 339: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 340: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 341: [1348,\n"," 27850,\n"," 2783,\n"," 1694,\n"," 3872,\n"," 8194,\n"," 4113,\n"," 2454,\n"," 2064,\n"," 26306],\n"," 342: [555, 1089, 296, 2249, 3833, 32019, 1785, 18, 3744, 27734],\n"," 343: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 344: [5378, 33493, 780, 2628, 1200, 1580, 1584, 1438, 788, 8644],\n"," 345: [5378, 33493, 780, 1200, 377, 1584, 1438, 8644, 1690, 4812],\n"," 346: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 347: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 348: [1302, 5644, 1940, 3100, 7771, 1943, 1929, 1225, 1942, 1937],\n"," 349: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 350: [1757, 994, 59141, 69, 1889, 7324, 7297, 7062, 947, 1952],\n"," 351: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 352: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 353: [1210, 260, 5378, 33493, 780, 2628, 377, 1584, 1438, 788],\n"," 354: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 355: [2513,\n"," 2120,\n"," 5022,\n"," 4178,\n"," 7178,\n"," 2517,\n"," 3256,\n"," 906,\n"," 26788,\n"," 26007],\n"," 356: [2848, 7069, 3723, 3598, 2820, 497, 3719, 2011, 2622, 4319],\n"," 357: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 358: [33493, 1584, 1438, 788, 8644, 1690, 4812, 3699, 2311, 6882],\n"," 359: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 360: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 361: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 362: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 363: [555, 1089, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1729],\n"," 364: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 365: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 366: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 367: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 368: [2582,\n"," 51277,\n"," 5621,\n"," 1429,\n"," 2880,\n"," 3139,\n"," 1867,\n"," 5702,\n"," 7113,\n"," 5302],\n"," 369: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 370: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n"," 371: [1210, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 372: [260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1438, 788],\n"," 373: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 375: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 376: [1196, 5378, 780, 1580, 377, 1584, 1438, 788, 8644, 736],\n"," 377: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 378: [5378, 33493, 780, 1200, 1580, 377, 1584, 1438, 788, 8644],\n"," 379: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 380: [1196, 260, 33493, 780, 1200, 1580, 377, 1584, 1438, 788],\n"," 381: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 382: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 383: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 384: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 385: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 386: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 387: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 388: [1210, 1196, 260, 5378, 33493, 780, 1200, 1580, 377, 1584],\n"," 389: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n"," 390: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 391: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 392: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 393: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 394: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 395: [5574, 27193, 8605, 2555, 3738, 1220, 237, 58, 3717, 1350],\n"," 396: [33493, 780, 1200, 377, 1584, 1438, 788, 8644, 736, 1690],\n"," 397: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 398: [1210, 5378, 33493, 780, 2628, 1200, 1580, 1584, 1438, 788],\n"," 399: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 400: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 401: [4030, 2167, 2006, 1191, 6754, 8985, 70, 6500, 7886, 2958],\n"," 402: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 403: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 404: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 405: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 406: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 407: [1210, 1196, 5378, 33493, 1584, 1438, 788, 8644, 736, 4812],\n"," 408: [348, 8457, 2610, 700, 47778, 1057, 4408, 492, 31038, 8801],\n"," 409: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 410: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 411: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n"," 412: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 413: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 414: [45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 415: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 416: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 417: [1210, 1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 418: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n"," 419: [1210, 1196, 33493, 1584, 1438, 788, 8644, 1690, 4812, 3699],\n"," 420: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 421: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 422: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 424: [8749,\n"," 6921,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985,\n"," 32525],\n"," 425: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n"," 426: [2924, 2582, 112, 51277, 1429, 2879, 2880, 3139, 1867, 5702],\n"," 427: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 428: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1848, 63237],\n"," 429: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 430: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 431: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 432: [1348,\n"," 27850,\n"," 2783,\n"," 1694,\n"," 3872,\n"," 8194,\n"," 4113,\n"," 2454,\n"," 2064,\n"," 26306],\n"," 433: [58059,\n"," 8939,\n"," 1704,\n"," 4176,\n"," 2889,\n"," 2019,\n"," 3030,\n"," 4640,\n"," 7919,\n"," 8292],\n"," 434: [33493, 1584, 1438, 8644, 4812, 3699, 2311, 6882, 8810, 748],\n"," 435: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1584],\n"," 436: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 437: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 438: [5378, 33493, 1584, 8644, 736, 4812, 3699, 2311, 6882, 3527],\n"," 439: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 440: [555, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n"," 441: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 443: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 444: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n"," 445: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 446: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 447: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 448: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 449: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 450: [1261, 26915, 1215, 4105, 342, 8928, 256, 33834, 8874, 8225],\n"," 451: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 452: [529, 951, 2330, 537, 26770, 6001, 7100, 4870, 3038, 5142],\n"," 453: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 454: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 455: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n"," 456: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 458: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n"," 459: [4030, 2006, 1191, 6500, 7886, 2958, 5128, 2328, 6709, 4753],\n"," 460: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 461: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788],\n"," 462: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n"," 463: [33493, 1438, 788, 1690, 4812, 3699, 2311, 6882, 2193, 2115],\n"," 464: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 465: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 466: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 467: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1438],\n"," 468: [104,\n"," 59900,\n"," 1777,\n"," 2014,\n"," 27830,\n"," 60487,\n"," 3979,\n"," 1241,\n"," 1022,\n"," 6593],\n"," 469: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 470: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 471: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 472: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 473: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n"," 474: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 2107],\n"," 475: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 476: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1343],\n"," 477: [2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889,\n"," 599],\n"," 479: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 480: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n"," 481: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 482: [780, 1200, 1584, 1438, 1690, 4812, 3699, 2311, 6882, 3527],\n"," 483: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 484: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 485: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 486: [1210, 1196, 260, 5378, 780, 2628, 1200, 1580, 377, 1584],\n"," 487: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 488: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 489: [5644, 1961, 1940, 3100, 7771, 1943, 1929, 1942, 1937, 1946],\n"," 490: [5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942, 1937],\n"," 491: [555, 1089, 296, 2249, 3833, 32019, 1785, 18, 3744, 27734],\n"," 492: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n"," 493: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 494: [6952,\n"," 3652,\n"," 3970,\n"," 3832,\n"," 5980,\n"," 27317,\n"," 2159,\n"," 5165,\n"," 2460,\n"," 8906],\n"," 495: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 496: [2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734, 1729],\n"," 497: [555, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 498: [1261, 26915, 1215, 4105, 342, 8928, 256, 33834, 8874, 8225],\n"," 499: [1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n"," 500: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 501: [5378, 33493, 1200, 1438, 788, 8644, 1690, 4812, 3699, 2311],\n"," 502: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 503: [7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619, 445],\n"," 504: [1059, 3619, 605, 1552, 5942, 6996, 5245, 2023, 3512, 1831],\n"," 505: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 506: [5378, 33493, 2628, 1580, 377, 1584, 1438, 788, 8644, 736],\n"," 507: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 508: [1210, 260, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438],\n"," 509: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 510: [1059, 3619, 605, 1552, 5942, 6996, 5245, 2023, 3512, 1831],\n"," 511: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 512: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 513: [48161, 993, 930, 2178, 524, 290, 43710, 47644, 5473, 6207],\n"," 515: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 516: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n"," 517: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 518: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 520: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 521: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 522: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 43710, 2236],\n"," 523: [3683, 4881, 5756, 33823, 2583, 76, 1732, 7163, 1464, 45028],\n"," 524: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 525: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 526: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 527: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 529: [1196, 5378, 33493, 780, 2628, 1200, 377, 1584, 1438, 788],\n"," 530: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 531: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 532: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 533: [63113, 2989, 7570, 2990, 2376, 2991, 4005, 3984, 7573, 10],\n"," 534: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 535: [8749,\n"," 6921,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 32525,\n"," 3620],\n"," 536: [1196, 5378, 33493, 2628, 1200, 1580, 1584, 788, 8644, 736],\n"," 537: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 539: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 540: [4030, 2167, 2006, 1191, 6754, 8985, 70, 6500, 7886, 2958],\n"," 541: [6952,\n"," 3652,\n"," 3970,\n"," 3832,\n"," 5980,\n"," 27317,\n"," 2159,\n"," 5165,\n"," 2460,\n"," 8906],\n"," 542: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 543: [63113,\n"," 2989,\n"," 7570,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005,\n"," 3984],\n"," 544: [555, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1729, 1635],\n"," 545: [5378, 33493, 2628, 1584, 1438, 788, 8644, 1690, 4812, 3699],\n"," 546: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 547: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 548: [5378, 33493, 780, 2628, 1200, 1580, 377, 1438, 788, 8644],\n"," 549: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 550: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 551: [2513,\n"," 2120,\n"," 5022,\n"," 4178,\n"," 7178,\n"," 2517,\n"," 3256,\n"," 906,\n"," 26788,\n"," 26007],\n"," 552: [45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212,\n"," 7261],\n"," 553: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 554: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 555: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n"," 556: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 557: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 558: [45221,\n"," 4452,\n"," 5802,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212,\n"," 7261,\n"," 6104],\n"," 559: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 560: [26915,\n"," 1215,\n"," 8928,\n"," 256,\n"," 33834,\n"," 8874,\n"," 8225,\n"," 4553,\n"," 4531,\n"," 7225],\n"," 561: [135, 248, 27731, 42217, 1537, 3484, 4850, 1717, 1343, 5069],\n"," 562: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 563: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n"," 564: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 565: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 566: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 567: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 568: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 569: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 570: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 571: [33493, 1580, 377, 1438, 788, 1690, 4812, 2311, 6882, 2115],\n"," 572: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 573: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 574: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 575: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 576: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 577: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 578: [5378, 33493, 780, 377, 1584, 1438, 8644, 1690, 4812, 3699],\n"," 579: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 580: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 581: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 582: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 583: [1210, 1196, 260, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 584: [6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770, 1179],\n"," 585: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 5691],\n"," 586: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 587: [5378, 33493, 2628, 1200, 1580, 1584, 1438, 788, 8644, 736],\n"," 588: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 589: [48161, 993, 930, 2178, 524, 2375, 2186, 43710, 2236, 47644],\n"," 590: [5378, 33493, 377, 1584, 1438, 8644, 736, 4812, 3699, 2311],\n"," 591: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 4619, 445],\n"," 592: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 593: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 594: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 595: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 596: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 597: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 598: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 599: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 600: [1196, 260, 33493, 780, 1580, 377, 1438, 788, 8644, 736],\n"," 601: [5378, 33493, 2628, 1200, 1584, 1438, 788, 8644, 1690, 4812],\n"," 602: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 603: [25766, 910, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494],\n"," 604: [6296, 49282, 2546, 448, 1288, 6187, 6323, 7770, 1179, 1449],\n"," 605: [3683, 4881, 1394, 5756, 33823, 2583, 76, 1732, 663, 7163],\n"," 606: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 607: [555, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 608: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1584],\n"," 609: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 610: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 612: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n"," 613: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 614: [1210, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n"," 616: [1196,\n"," 5378,\n"," 33493,\n"," 2628,\n"," 1200,\n"," 1580,\n"," 1438,\n"," 8644,\n"," 1690,\n"," 4812],\n"," 617: [4740,\n"," 7211,\n"," 5077,\n"," 7221,\n"," 3454,\n"," 6501,\n"," 3501,\n"," 27509,\n"," 1075,\n"," 2884],\n"," 618: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 619: [1196, 5378, 33493, 780, 2628, 377, 1584, 1438, 788, 8644],\n"," 620: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 621: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n"," 622: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n"," 623: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 624: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 625: [5378, 33493, 780, 2628, 1580, 1584, 1438, 788, 8644, 736],\n"," 627: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 628: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 629: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 630: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 631: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n"," 632: [260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n"," 633: [33493, 1438, 788, 8644, 1690, 4812, 3699, 2311, 6882, 3527],\n"," 634: [5378,\n"," 33493,\n"," 2628,\n"," 1438,\n"," 8644,\n"," 4812,\n"," 3699,\n"," 2311,\n"," 6882,\n"," 3527],\n"," 635: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 636: [555, 1089, 3833, 32019, 1785, 18, 3744, 27734, 1635, 4164],\n"," 637: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 638: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 639: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 640: [260, 5378, 2628, 1200, 1580, 377, 1584, 1438, 788, 8644],\n"," 641: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 642: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 643: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n"," 644: [33493, 780, 1580, 377, 1584, 1438, 788, 8644, 1690, 4812],\n"," 645: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 646: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 647: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 648: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 649: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 650: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 6212,\n"," 7261],\n"," 651: [61352,\n"," 6699,\n"," 56719,\n"," 27255,\n"," 55726,\n"," 1893,\n"," 279,\n"," 3192,\n"," 4977,\n"," 8619],\n"," 652: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 653: [500, 58059, 1608, 8939, 1704, 4176, 2889, 2019, 3030, 4640],\n"," 654: [2513,\n"," 2120,\n"," 5022,\n"," 4178,\n"," 7178,\n"," 2517,\n"," 3256,\n"," 906,\n"," 26788,\n"," 26007],\n"," 655: [3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237,\n"," 8713],\n"," 656: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 657: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 658: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 457],\n"," 659: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n"," 660: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 377, 1584],\n"," 661: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 662: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n"," 663: [4030, 2167, 2006, 1191, 6754, 8985, 70, 6500, 7886, 2958],\n"," 664: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 665: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n"," 666: [555, 2249, 7438, 3833, 32019, 1785, 18, 3744, 27734, 1729],\n"," 667: [1210, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n"," 668: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 669: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 670: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 671: [39425,\n"," 53883,\n"," 4237,\n"," 55071,\n"," 3002,\n"," 1446,\n"," 6368,\n"," 5137,\n"," 1827,\n"," 6677],\n"," 672: [555, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n"," 674: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 2107],\n"," 675: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 676: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 677: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 678: [5644, 1961, 1940, 3100, 7771, 1943, 1929, 1942, 1937, 1946],\n"," 679: [5378, 33493, 2628, 1200, 1438, 788, 8644, 4812, 3699, 2311],\n"," 680: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 681: [235, 1496, 4420, 5483, 4181, 6460, 5177, 89, 3467, 550],\n"," 683: [5378, 33493, 377, 1584, 1438, 8644, 736, 4812, 3699, 2311],\n"," 684: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1881, 1848, 63237],\n"," 685: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 8644],\n"," 686: [5378, 33493, 780, 1580, 377, 1584, 1438, 788, 8644, 736],\n"," 688: [1584, 1438, 788, 8644, 736, 4812, 3699, 6882, 2193, 8810],\n"," 689: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 690: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 691: [5378, 33493, 1200, 1584, 1438, 788, 8644, 736, 1690, 4812],\n"," 693: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 694: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 695: [2513,\n"," 2120,\n"," 5022,\n"," 4178,\n"," 7178,\n"," 2517,\n"," 3256,\n"," 906,\n"," 26788,\n"," 26007],\n"," 696: [45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 697: [500, 58059, 1608, 8939, 1704, 4176, 2889, 2019, 3030, 4640],\n"," 698: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 699: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 700: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 701: [1967, 6374, 6380, 1586, 29, 121, 943, 8337, 351, 8516],\n"," 702: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 2107],\n"," 703: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 704: [262,\n"," 180,\n"," 1130,\n"," 5335,\n"," 60530,\n"," 59290,\n"," 27513,\n"," 3012,\n"," 4514,\n"," 8025],\n"," 705: [3683, 4881, 1394, 608, 5756, 33823, 2583, 76, 663, 7163],\n"," 706: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 707: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 708: [1210, 1196, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438],\n"," 709: [1210, 5378, 33493, 780, 1580, 377, 1584, 1438, 788, 8644],\n"," 710: [25766, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494, 1077],\n"," 711: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 712: [951, 2330, 26770, 6001, 7100, 4870, 3038, 5142, 1641, 85],\n"," 714: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 715: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 716: [4740, 7211, 5077, 7221, 838, 3454, 6501, 3501, 27509, 1075],\n"," 718: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 719: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 720: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 721: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 723: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 724: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 725: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 726: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 727: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n"," 728: [260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n"," 729: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 730: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 731: [5378, 33493, 1438, 8644, 4812, 2311, 6882, 2115, 8810, 748],\n"," 732: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 733: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 734: [5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 735: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 2023],\n"," 736: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 737: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 738: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n"," 739: [34, 1059, 3619, 605, 5942, 6996, 5245, 2023, 3512, 31],\n"," 740: [5378, 33493, 780, 1200, 1580, 377, 1584, 1438, 788, 8644],\n"," 741: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 742: [555, 1089, 2249, 7438, 3833, 32019, 1785, 18, 3744, 27734],\n"," 743: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 744: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 745: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 746: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n"," 748: [951, 2330, 537, 26770, 6001, 7100, 4870, 3038, 5142, 1641],\n"," 749: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 750: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 751: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 752: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 753: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 754: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 755: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 756: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n"," 757: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 758: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 759: [3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237,\n"," 8713],\n"," 761: [1196, 260, 5378, 33493, 1200, 1438, 788, 8644, 736, 1690],\n"," 762: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 763: [4740, 7211, 5077, 7221, 838, 745, 3454, 6501, 3501, 27509],\n"," 764: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 765: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 766: [5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438, 788],\n"," 767: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 768: [1695, 1060, 719, 502, 4021, 6876, 2059, 4273, 5517, 381],\n"," 769: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 770: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 771: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2622],\n"," 772: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n"," 773: [7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619, 445],\n"," 774: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 775: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 776: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n"," 777: [529, 951, 537, 26770, 6001, 7100, 4870, 3038, 5142, 1641],\n"," 780: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 781: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 782: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 783: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 784: [235, 1496, 4420, 5483, 4181, 6460, 5177, 89, 3467, 550],\n"," 785: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 786: [3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237,\n"," 8713],\n"," 787: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n"," 788: [1210, 1196, 260, 5378, 33493, 2628, 1438, 1690, 4812, 3699],\n"," 789: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 790: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1881,\n"," 1848,\n"," 63237,\n"," 8713],\n"," 791: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n"," 792: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 793: [33493, 780, 1200, 377, 1438, 788, 8644, 736, 1690, 4812],\n"," 794: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 795: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 796: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788],\n"," 797: [2513,\n"," 2120,\n"," 5022,\n"," 4178,\n"," 7178,\n"," 2517,\n"," 906,\n"," 26788,\n"," 26007,\n"," 2118],\n"," 798: [63113, 2989, 2990, 2376, 2991, 3633, 4005, 153, 7573, 3639],\n"," 799: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 800: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n"," 801: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 802: [3061,\n"," 1734,\n"," 7091,\n"," 317,\n"," 7058,\n"," 34002,\n"," 8734,\n"," 34018,\n"," 4763,\n"," 2804],\n"," 803: [5378, 33493, 2628, 1438, 788, 8644, 736, 1690, 4812, 2311],\n"," 804: [1348,\n"," 27850,\n"," 2783,\n"," 1694,\n"," 3872,\n"," 8194,\n"," 4113,\n"," 2454,\n"," 2064,\n"," 26306],\n"," 805: [33493, 780, 1200, 1580, 377, 1584, 1438, 788, 736, 1690],\n"," 806: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 807: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 808: [260, 5378, 33493, 780, 1200, 1580, 1584, 1438, 788, 8644],\n"," 809: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n"," 810: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 811: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 812: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 813: [63113, 2989, 7570, 2642, 2990, 2376, 2991, 3633, 4005, 153],\n"," 814: [48161, 993, 930, 2178, 524, 904, 2186, 290, 43710, 2236],\n"," 815: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n"," 816: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 817: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 818: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 819: [5574, 27193, 8605, 2555, 3738, 1220, 237, 58, 3717, 1350],\n"," 820: [2582,\n"," 51277,\n"," 5621,\n"," 1429,\n"," 2879,\n"," 2880,\n"," 3139,\n"," 1867,\n"," 5702,\n"," 7113],\n"," 821: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 822: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1881, 1848, 63237],\n"," 823: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 824: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 825: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n"," 826: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n"," 827: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 828: [3061,\n"," 345,\n"," 1734,\n"," 7091,\n"," 7058,\n"," 34002,\n"," 8734,\n"," 34018,\n"," 4763,\n"," 2804],\n"," 829: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 830: [5378, 33493, 780, 1200, 1584, 1438, 8644, 1690, 4812, 3699],\n"," 831: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 832: [5378, 33493, 780, 1200, 1580, 377, 1584, 1438, 788, 8644],\n"," 833: [1210, 1196, 5378, 33493, 1438, 8644, 736, 1690, 4812, 2311],\n"," 834: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 835: [58059,\n"," 1608,\n"," 8939,\n"," 1704,\n"," 4176,\n"," 2889,\n"," 2019,\n"," 3030,\n"," 4640,\n"," 7919],\n"," 836: [4740, 7211, 5077, 7221, 838, 1148, 3454, 6501, 3501, 27509],\n"," 837: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 838: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 839: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 840: [3631,\n"," 3786,\n"," 5222,\n"," 51666,\n"," 5847,\n"," 33136,\n"," 4389,\n"," 1897,\n"," 1615,\n"," 444],\n"," 841: [33493, 1580, 377, 1438, 788, 8644, 736, 1690, 4812, 2311],\n"," 842: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 843: [529, 951, 2330, 537, 26770, 6001, 7100, 4870, 3038, 5142],\n"," 844: [5378, 33493, 2628, 1584, 1438, 788, 8644, 1690, 4812, 3699],\n"," 846: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n"," 847: [1196, 260, 5378, 33493, 2628, 1200, 1584, 1438, 788, 8644],\n"," 848: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 849: [1261, 26915, 1215, 4105, 342, 8928, 256, 33834, 8874, 8225],\n"," 851: [61352,\n"," 6699,\n"," 56719,\n"," 27255,\n"," 55726,\n"," 1893,\n"," 279,\n"," 3192,\n"," 4977,\n"," 8619],\n"," 852: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 853: [4740, 7211, 5077, 7221, 838, 1148, 3454, 6501, 3501, 27509],\n"," 854: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 855: [350, 6296, 49282, 2546, 448, 1288, 6187, 6323, 7770, 1179],\n"," 856: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 857: [1210, 260, 5378, 33493, 780, 2628, 1584, 1438, 788, 8644],\n"," 859: [33493, 1584, 1438, 788, 736, 1690, 4812, 3699, 2311, 6882],\n"," 860: [5637,\n"," 45664,\n"," 46231,\n"," 34499,\n"," 52448,\n"," 56028,\n"," 60393,\n"," 58367,\n"," 3211,\n"," 26803],\n"," 861: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 862: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 863: [2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734, 1635],\n"," 864: [500, 58059, 1608, 8939, 1704, 4176, 2889, 2019, 3030, 4640],\n"," 865: [5378, 33493, 2628, 1200, 1580, 377, 1438, 788, 8644, 736],\n"," 866: [3683, 4881, 5756, 33823, 2583, 76, 1732, 663, 7163, 1464],\n"," 867: [1967, 6374, 6380, 1586, 29, 121, 943, 225, 351, 8516],\n"," 868: [25766, 910, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494],\n"," 869: [25766, 910, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494],\n"," 870: [61352,\n"," 6699,\n"," 56719,\n"," 27255,\n"," 55726,\n"," 1893,\n"," 3192,\n"," 4977,\n"," 8619,\n"," 3570],\n"," 871: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 872: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n"," 873: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 377, 1438],\n"," 874: [34, 3619, 605, 1552, 5942, 6996, 5245, 457, 2023, 3512],\n"," 875: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 876: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 878: [1210, 5378, 33493, 2628, 1580, 1584, 1438, 788, 8644, 1690],\n"," 879: [4740, 7211, 5077, 7221, 838, 745, 3454, 6501, 3501, 27509],\n"," 881: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 882: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 883: [39425,\n"," 53883,\n"," 4237,\n"," 55071,\n"," 3002,\n"," 1446,\n"," 6368,\n"," 5137,\n"," 246,\n"," 1827],\n"," 884: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 885: [586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018, 4763],\n"," 886: [45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 2107,\n"," 5691,\n"," 5476],\n"," 887: [1210, 1196, 260, 5378, 33493, 1200, 1438, 788, 8644, 736],\n"," 888: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 889: [6952,\n"," 3652,\n"," 3970,\n"," 3832,\n"," 5980,\n"," 27317,\n"," 2159,\n"," 5165,\n"," 2460,\n"," 8906],\n"," 890: [104,\n"," 59900,\n"," 1777,\n"," 2014,\n"," 27830,\n"," 60487,\n"," 3979,\n"," 1241,\n"," 1022,\n"," 6593],\n"," 891: [6952,\n"," 3652,\n"," 3970,\n"," 3832,\n"," 5980,\n"," 27317,\n"," 2159,\n"," 5165,\n"," 2460,\n"," 8906],\n"," 892: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 893: [1210, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 894: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n"," 895: [58059,\n"," 1608,\n"," 8939,\n"," 1704,\n"," 4176,\n"," 2889,\n"," 2019,\n"," 3030,\n"," 4640,\n"," 7919],\n"," 896: [4030, 2167, 2006, 1191, 6754, 8985, 6500, 7886, 2958, 5128],\n"," 897: [6296, 49282, 2546, 448, 1288, 6187, 6323, 7770, 1179, 1449],\n"," 898: [5378, 33493, 1200, 377, 1584, 1438, 788, 8644, 736, 4812],\n"," 899: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 900: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 901: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1584],\n"," 902: [4030, 2167, 2006, 1191, 6754, 8985, 70, 6500, 7886, 2958],\n"," 903: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 904: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 905: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 906: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1942, 1937],\n"," 907: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 908: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 909: [500, 58059, 1608, 8939, 1704, 4176, 2889, 2019, 3030, 4640],\n"," 910: [555, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1729, 1635],\n"," 911: [5378, 33493, 780, 1200, 1580, 377, 1584, 788, 8644, 736],\n"," 912: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 913: [6422,\n"," 4033,\n"," 40946,\n"," 556,\n"," 5008,\n"," 8753,\n"," 8375,\n"," 4465,\n"," 27912,\n"," 1883],\n"," 914: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 915: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 916: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 917: [2848, 1411, 7069, 3723, 3598, 2820, 497, 3719, 2011, 2622],\n"," 918: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 8644],\n"," 919: [4466,\n"," 5252,\n"," 64231,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237,\n"," 46430,\n"," 56700],\n"," 920: [1210, 1196, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438],\n"," 921: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1881, 1848, 63237],\n"," 922: [1210, 1196, 260, 5378, 33493, 2628, 8644, 4812, 3699, 2311],\n"," 923: [3683, 4881, 1394, 5756, 33823, 2583, 76, 1732, 7163, 1464],\n"," 924: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 925: [555,\n"," 1089,\n"," 2249,\n"," 7438,\n"," 3833,\n"," 6874,\n"," 32019,\n"," 1785,\n"," 3744,\n"," 27734],\n"," 926: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 927: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n"," 928: [1200, 1438, 788, 8644, 1690, 4812, 3699, 2311, 6882, 3527],\n"," 930: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 931: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 932: [1196, 5378, 33493, 2628, 1200, 1580, 1584, 1438, 788, 8644],\n"," 933: [63113, 2989, 7570, 2642, 2376, 3633, 2949, 4005, 153, 3984],\n"," 934: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 63237],\n"," 935: [1210, 5378, 33493, 780, 1200, 1580, 1584, 1438, 788, 8644],\n"," 936: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 937: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n"," 938: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 939: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 940: [3643,\n"," 3372,\n"," 8789,\n"," 6439,\n"," 5208,\n"," 3222,\n"," 55402,\n"," 63791,\n"," 49688,\n"," 53342],\n"," 941: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 942: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 943: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 945: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 946: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 947: [5378, 33493, 780, 1200, 1580, 377, 1584, 1438, 788, 8644],\n"," 948: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 377, 1584],\n"," 949: [33493, 2628, 1200, 1580, 1438, 788, 8644, 736, 1690, 4812],\n"," 950: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n"," 951: [3683,\n"," 4881,\n"," 1394,\n"," 5756,\n"," 33823,\n"," 2583,\n"," 1732,\n"," 7163,\n"," 1464,\n"," 45028],\n"," 952: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788],\n"," 953: [5378, 33493, 2628, 377, 1584, 1438, 788, 8644, 736, 1690],\n"," 954: [5378, 33493, 2628, 1200, 1584, 1438, 788, 8644, 736, 1690],\n"," 955: [63113,\n"," 2989,\n"," 7570,\n"," 2642,\n"," 2990,\n"," 2376,\n"," 2991,\n"," 3633,\n"," 2949,\n"," 4005],\n"," 956: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 957: [6374, 6380, 1586, 121, 943, 8337, 225, 351, 8516, 4808],\n"," 958: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n"," 960: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 961: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n"," 962: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 963: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n"," 964: [1753, 8807, 194, 4034, 7959, 4439, 4994, 410, 784, 1884],\n"," 965: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 966: [2249, 3833, 6874, 32019, 1785, 18, 3744, 27734, 1635, 4164],\n"," 967: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 968: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 969: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n"," 970: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 971: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 972: [393,\n"," 1681,\n"," 1111,\n"," 2549,\n"," 33819,\n"," 59908,\n"," 55020,\n"," 8915,\n"," 57536,\n"," 1497],\n"," 973: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n"," 974: [5087,\n"," 54193,\n"," 6875,\n"," 8302,\n"," 8294,\n"," 2675,\n"," 6513,\n"," 25993,\n"," 50259,\n"," 5842],\n"," 975: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 976: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 977: [39425,\n"," 53883,\n"," 4237,\n"," 55071,\n"," 3002,\n"," 1446,\n"," 6368,\n"," 5137,\n"," 1827,\n"," 6677],\n"," 978: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 979: [555, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n"," 980: [1196, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n"," 982: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n"," 983: [48161, 993, 930, 2178, 2375, 904, 2186, 290, 43710, 47644],\n"," 984: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n"," 985: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 986: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 987: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n"," 988: [33493, 377, 1438, 788, 8644, 736, 4812, 6882, 2193, 8810],\n"," 989: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n"," 990: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 991: [1210, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n"," 992: [1210, 5378, 33493, 1200, 377, 1438, 788, 8644, 736, 1690],\n"," 993: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 2338,\n"," 2107],\n"," 994: [26782,\n"," 5017,\n"," 1416,\n"," 7456,\n"," 25951,\n"," 3915,\n"," 918,\n"," 25999,\n"," 7990,\n"," 3425],\n"," 995: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n"," 996: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 997: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 457],\n"," 998: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 999: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 1001: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 1002: [7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619, 445],\n"," 1003: [1513,\n"," 45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102],\n"," 1004: [5378,\n"," 33493,\n"," 1200,\n"," 1584,\n"," 1438,\n"," 788,\n"," 8644,\n"," 1690,\n"," 4812,\n"," 3699],\n"," 1005: [1196,\n"," 5378,\n"," 33493,\n"," 2628,\n"," 1200,\n"," 1438,\n"," 788,\n"," 8644,\n"," 1690,\n"," 4812],\n"," 1006: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 1007: [1302,\n"," 5644,\n"," 1961,\n"," 1940,\n"," 3100,\n"," 1393,\n"," 7771,\n"," 1943,\n"," 1929,\n"," 1225],\n"," 1008: [5378,\n"," 33493,\n"," 1438,\n"," 788,\n"," 8644,\n"," 1690,\n"," 4812,\n"," 3699,\n"," 2311,\n"," 6882],\n"," 1009: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 1011: [5378,\n"," 33493,\n"," 2628,\n"," 1438,\n"," 788,\n"," 8644,\n"," 1690,\n"," 4812,\n"," 3699,\n"," 2311],\n"," 1012: [1046,\n"," 2550,\n"," 1789,\n"," 1103,\n"," 1340,\n"," 4722,\n"," 4942,\n"," 2665,\n"," 47836,\n"," 4518],\n"," 1013: [5378, 33493, 2628, 1200, 1580, 1584, 1438, 788, 8644, 736],\n"," 1014: [1348,\n"," 27850,\n"," 2783,\n"," 1694,\n"," 3872,\n"," 8194,\n"," 4113,\n"," 2454,\n"," 2064,\n"," 26306],\n"," 1015: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n"," 1016: [1266,\n"," 2401,\n"," 44168,\n"," 5959,\n"," 2921,\n"," 3508,\n"," 4945,\n"," 54787,\n"," 4785,\n"," 7889],\n"," 1017: [260, 780, 1200, 1580, 377, 1584, 1438, 788, 8644, 736],\n"," 1018: [1603,\n"," 2364,\n"," 45981,\n"," 26603,\n"," 5556,\n"," 5700,\n"," 57473,\n"," 5746,\n"," 1969,\n"," 5691],\n"," 1019: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 1020: [1046,\n"," 2550,\n"," 1789,\n"," 1340,\n"," 4722,\n"," 4942,\n"," 2665,\n"," 47836,\n"," 4518,\n"," 2650],\n"," 1021: [1030,\n"," 3759,\n"," 5109,\n"," 3775,\n"," 3964,\n"," 3611,\n"," 1025,\n"," 1881,\n"," 1848,\n"," 63237],\n"," 1022: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 1023: [1210, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n"," 1025: [45221,\n"," 4452,\n"," 5802,\n"," 1285,\n"," 6807,\n"," 1602,\n"," 5439,\n"," 6816,\n"," 4102,\n"," 6212],\n"," 1026: [3061,\n"," 345,\n"," 1734,\n"," 7091,\n"," 7058,\n"," 34002,\n"," 8734,\n"," 34018,\n"," 4763,\n"," 2432],\n"," 1027: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1584],\n"," 1028: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 1029: [1385,\n"," 4466,\n"," 5252,\n"," 64231,\n"," 2540,\n"," 27828,\n"," 8593,\n"," 6280,\n"," 6757,\n"," 60237],\n"," 1030: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 377, 1584],\n"," 1031: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 1032: [8749,\n"," 6921,\n"," 3134,\n"," 7176,\n"," 6649,\n"," 8126,\n"," 4046,\n"," 7238,\n"," 26151,\n"," 6985],\n"," 1033: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n"," 1034: [1210, 1196, 260, 5378, 780, 2628, 1200, 1580, 377, 1584],\n"," 1035: [1210, 1196, 260, 5378, 33493, 2628, 1200, 377, 1584, 1438],\n"," 1037: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 1038: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 1039: [4740,\n"," 7211,\n"," 5077,\n"," 7221,\n"," 838,\n"," 3454,\n"," 6501,\n"," 3501,\n"," 27509,\n"," 1075],\n"," 1040: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 1041: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n"," 1043: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n"," 1044: [1196,\n"," 5378,\n"," 33493,\n"," 2628,\n"," 1200,\n"," 1580,\n"," 377,\n"," 1584,\n"," 1438,\n"," 8644],\n"," 1045: [262,\n"," 180,\n"," 1130,\n"," 5335,\n"," 60530,\n"," 59290,\n"," 27513,\n"," 3012,\n"," 4514,\n"," 8025],\n"," 1046: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n"," 1047: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 1048: [555, 1089, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1729],\n"," 1050: [104,\n"," 59900,\n"," 1777,\n"," 2014,\n"," 27830,\n"," 60487,\n"," 3979,\n"," 1241,\n"," 1022,\n"," 6593],\n"," 1051: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n"," 1052: [1302,\n"," 5644,\n"," 1961,\n"," 1940,\n"," 3100,\n"," 1393,\n"," 7771,\n"," 1943,\n"," 1929,\n"," 1225],\n"," 1053: [5378, 780, 2628, 377, 1438, 788, 736, 1690, 4812, 3699]})"]},"metadata":{},"execution_count":11}],"source":["from collections import defaultdict\n","from collections import Counter\n","\n","# 각 사용자에 대한 추천 리스트를 작성한다\n","# 사용자가 높게 평가한 영화가, 어떤 토픽에 많이 소속되어 있는지 카운트한다\n","# 가장 많은 토픽을 사용자가 좋아하는 토픽으로 간주하고, 해당 토픽의 영화를 추천한다\n","\n","movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n","user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","\n","movie_id2index = dict(zip(movie_content.movie_id.tolist(), range(len(movie_content))))\n","pred_user2items = defaultdict(list)\n","for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n"," # 사용자가 높이 평가한 영화\n"," evaluated_movie_ids = user_evaluated_movies[user_id]\n"," # 최근 열람한 영화를 얻는다\n"," movie_ids = data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-10:]\n","\n"," movie_indexes = [movie_id2index[id] for id in movie_ids]\n"," \n"," # 최근 열람한 영화의 토픽을 얻고, 풀현 횟수를 카운트한다\n"," topic_counter = Counter([movie_topics[i] for i in movie_indexes])\n"," # 가장 출현 횟수가 많았던 토픽을 얻는다\n"," frequent_topic = topic_counter.most_common(1)[0][0]\n"," # 해당 토픽의 영화 중에서도 점수가 높은 것을 추천한다\n"," topic_movies = (\n"," movie_content[movie_content.topic == frequent_topic]\n"," .sort_values(\"topic_score\", ascending=False)\n"," .movie_id.tolist()\n"," )\n","\n"," for movie_id in topic_movies:\n"," if movie_id not in evaluated_movie_ids:\n"," pred_user2items[user_id].append(movie_id)\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","pred_user2items"]},{"cell_type":"code","execution_count":12,"id":"8d238322","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":175},"id":"8d238322","executionInfo":{"status":"ok","timestamp":1672118572986,"user_tz":-540,"elapsed":10,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"68a428f8-984a-4fab-b1e3-8d24e4c5369a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","8381 2 1210 4.0 868245644 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","8381 [Action, Adventure, Sci-Fi] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":12}],"source":["# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n","movielens_train_high_rating[movielens_train_high_rating.user_id==2]"]},{"cell_type":"code","execution_count":13,"id":"d6877799","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"d6877799","executionInfo":{"status":"ok","timestamp":1672118572986,"user_tz":-540,"elapsed":9,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"6892e806-a4b2-4a5b-dfd9-da01db2f2d4a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","75 76 Screamers (1995) \n","1922 2006 Mask of Zorro, The (1998) \n","2031 2115 Indiana Jones and the Temple of Doom (1984) \n","\n"," genre \\\n","75 [Action, Sci-Fi, Thriller] \n","1922 [Action, Adventure, Romance] \n","2031 [Action, Adventure] \n","\n"," tag \n","75 [philip k. dick, artificial intelligence, post... \n","1922 [california, mexico, funny, banderas, anthony ... \n","2031 [lucas, want it, dvd collection, harrison ford... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
7576Screamers (1995)[Action, Sci-Fi, Thriller][philip k. dick, artificial intelligence, post...
19222006Mask of Zorro, The (1998)[Action, Adventure, Romance][california, mexico, funny, banderas, anthony ...
20312115Indiana Jones and the Temple of Doom (1984)[Action, Adventure][lucas, want it, dvd collection, harrison ford...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":13}],"source":["# user_id=2에 대한 추천(2115, 76, 2006)\n","movies[movies.movie_id.isin([2115, 76, 2006])]"]},{"cell_type":"code","execution_count":14,"id":"129f2877","metadata":{"id":"129f2877","executionInfo":{"status":"ok","timestamp":1672118572986,"user_tz":-540,"elapsed":8,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 여기에서는 각 사용자의 평가 이력으로부터 1개의 토픽을 픽업했지만, 토픽의 확률값을 사용해서 가중치를 주면서 아이템을 추출할 수도 있습니다."]},{"cell_type":"code","execution_count":14,"id":"6a30f15c","metadata":{"id":"6a30f15c","executionInfo":{"status":"ok","timestamp":1672118572987,"user_tz":-540,"elapsed":9,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0a902087", + "metadata": { + "id": "0a902087" + }, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/LDA_content.ipynb)" + ] + }, + { + "cell_type": "markdown", + "id": "98853cdc", + "metadata": { + "id": "98853cdc" + }, + "source": [ + "# 잠재 디리클레 할당(Latent Dirichlet Allocation, LDA)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "dd0a4718", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 3985, + "status": "ok", + "timestamp": 1672118379265, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "dd0a4718", + "outputId": "c3c7a4e6-690d-431c-a767-3ff7cd0aea7a" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-12-27 05:19:32-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n", + "Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n", + "Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 65566137 (63M) [application/zip]\n", + "Saving to: ‘../data/ml-10m.zip’\n", + "\n", + "ml-10m.zip 100%[===================>] 62.53M 106MB/s in 0.6s \n", + "\n", + "2022-12-27 05:19:33 (106 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n", + "\n", + "Archive: ../data/ml-10m.zip\n", + " creating: ../data/ml-10M100K/\n", + " inflating: ../data/ml-10M100K/allbut.pl \n", + " inflating: ../data/ml-10M100K/movies.dat \n", + " inflating: ../data/ml-10M100K/ratings.dat \n", + " inflating: ../data/ml-10M100K/README.html \n", + " inflating: ../data/ml-10M100K/split_ratings.sh \n", + " inflating: ../data/ml-10M100K/tags.dat \n" + ] + } + ], + "source": [ + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", + "\n", + "# 데이터 다운로드와 압축 풀기\n", + "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", + "!unzip -n ../data/ml-10m.zip -d ../data/" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "38f1eabd", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 80989, + "status": "ok", + "timestamp": 1672118460251, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "38f1eabd", + "outputId": "7dbb3693-16e5-4e38-fd8e-c20f1595a08f" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "unique_users=1000, unique_movies=6736\n" + ] + } + ], + "source": [ + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", + "import pandas as pd\n", + "\n", + "# movieID와 제목만 사용\n", + "m_cols = ['movie_id', 'title', 'genre']\n", + "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", + "\n", + "# genre를 list 형식으로 저장한다\n", + "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", + "\n", + "\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", + "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", + "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", + "\n", + "# tag를 소문자로 바꾼다\n", + "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", + "\n", + "\n", + "# tag를 영화별로 list 형식으로 저장한다\n", + "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", + "\n", + "# 태그 정보를 결합한다\n", + "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", + "\n", + "# 평갓값 데이터만 로딩한다\n", + "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", + "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", + "\n", + "\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", + "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", + "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", + "\n", + "\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", + "movielens = ratings.merge(movies, on='movie_id')\n", + "\n", + "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", + "\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", + "\n", + "movielens['timestamp_rank'] = movielens.groupby(\n", + " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", + "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", + "movielens_test = movielens[movielens['timestamp_rank']<= 5]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ea40c411", + "metadata": { + "executionInfo": { + "elapsed": 11, + "status": "ok", + "timestamp": 1672118460251, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "ea40c411" + }, + "outputs": [], + "source": [ + "# 인자 수\n", + "factors = 50\n", + "# 에폭 수\n", + "n_epochs = 30" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "7aa2bed1", + "metadata": { + "executionInfo": { + "elapsed": 12, + "status": "ok", + "timestamp": 1672118460252, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "7aa2bed1" + }, + "outputs": [], + "source": [ + "movie_content = movies.copy()\n", + "# tag가 부여되어 있지 않은 영화가 있지만, genre는 모든 영화에 부여되어 있다\n", + "# tag와 genre를 결합한 것을 영화 콘텐츠 정보로 하여 비슷한 영화를 찾아서 추천한다\n", + "# tag가 없는 영화는 NaN으로 되어 있으므로, 빈 리스트로 변환한 뒤 처리한다\n", + "movie_content[\"tag_genre\"] = movie_content[\"tag\"].fillna(\"\").apply(list) + movie_content[\"genre\"].apply(list)\n", + "movie_content[\"tag_genre\"] = movie_content[\"tag_genre\"].apply(lambda x: list(map(str, x)))\n", + "\n", + "# 태그와 장르 데이터를 사용해 lda를 학습한다\n", + "tag_genre_data = movie_content.tag_genre.tolist()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "d5804af1", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 7975, + "status": "ok", + "timestamp": 1672118468216, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "d5804af1", + "outputId": "04a68cd3-8b0e-45ee-a1ee-d1a952a63437" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", + "Collecting gensim==4.0.1\n", + " Downloading gensim-4.0.1-cp38-cp38-manylinux1_x86_64.whl (23.9 MB)\n", + "\u001b[K |████████████████████████████████| 23.9 MB 1.4 MB/s \n", + "\u001b[?25hRequirement already satisfied: scipy>=0.18.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.7.3)\n", + "Requirement already satisfied: numpy>=1.11.3 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (1.21.6)\n", + "Requirement already satisfied: smart-open>=1.8.1 in /usr/local/lib/python3.8/dist-packages (from gensim==4.0.1) (6.3.0)\n", + "Installing collected packages: gensim\n", + " Attempting uninstall: gensim\n", + " Found existing installation: gensim 3.6.0\n", + " Uninstalling gensim-3.6.0:\n", + " Successfully uninstalled gensim-3.6.0\n", + "Successfully installed gensim-4.0.1\n" + ] + } + ], + "source": [ + "!pip install gensim==4.0.1" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "c448ef53", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 1442, + "status": "ok", + "timestamp": 1672118469654, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "c448ef53", + "outputId": "040b678f-bb33-4b0e-eea1-9c147aa589c6" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.8/dist-packages/gensim/similarities/__init__.py:15: UserWarning: The gensim.similarities.levenshtein submodule is disabled, because the optional Levenshtein package is unavailable. Install Levenhstein (e.g. `pip install python-Levenshtein`) to suppress this warning.\n", + " warnings.warn(msg)\n" + ] + } + ], + "source": [ + "from gensim.corpora.dictionary import Dictionary\n", + "\n", + "# LDA의 입력으로 사용할 데이터를 작성한다\n", + "common_dictionary = Dictionary(tag_genre_data)\n", + "common_corpus = [common_dictionary.doc2bow(text) for text in tag_genre_data]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "a4449eb1", + "metadata": { + "executionInfo": { + "elapsed": 94718, + "status": "ok", + "timestamp": 1672118564370, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "a4449eb1" + }, + "outputs": [], + "source": [ + "import gensim\n", + "\n", + "# LDA 학습\n", + "lda_model = gensim.models.LdaModel(\n", + " common_corpus, id2word=common_dictionary, num_topics=factors, passes=n_epochs\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "a5911f4e", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 13, + "status": "ok", + "timestamp": 1672118564371, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "a5911f4e", + "outputId": "851e44c7-0605-4c9b-cd83-701340697d26" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "word=coen brothers, score=0.06292896717786789\n", + "word=bechdel test:fail, score=0.04510311409831047\n", + "word=based on book, score=0.04402820020914078\n", + "word=philip k. dick, score=0.04182061925530434\n", + "word=kidnapping, score=0.03534778952598572\n", + "word=quirky, score=0.02876952663064003\n", + "word=david lynch, score=0.022975284606218338\n", + "word=fascism, score=0.01680714637041092\n", + "word=sure thing, score=0.015899477526545525\n", + "word=robert altman, score=0.015737345442175865\n" + ] + } + ], + "source": [ + "# topic0인 단어 목록\n", + "for token_id, score in lda_model.get_topic_terms(0, topn=10):\n", + " word = common_dictionary.id2token[token_id]\n", + " print(f'word={word}, score={score}')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "858bf7ea", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 11, + "status": "ok", + "timestamp": 1672118564371, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "858bf7ea", + "outputId": "df48bb09-d2ad-4570-fa8f-e5b38679a98c" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[(0, 0.01000004),\n", + " (1, 0.01000004),\n", + " (2, 0.01000004),\n", + " (3, 0.01000004),\n", + " (4, 0.01000004),\n", + " (5, 0.01000004),\n", + " (6, 0.01000004),\n", + " (7, 0.01000004),\n", + " (8, 0.01000004),\n", + " (9, 0.01000004),\n", + " (10, 0.01000004),\n", + " (11, 0.01000004),\n", + " (12, 0.01000004),\n", + " (13, 0.01000004),\n", + " (14, 0.01000004),\n", + " (15, 0.01000004),\n", + " (16, 0.01000004),\n", + " (17, 0.01000004),\n", + " (18, 0.01000004),\n", + " (19, 0.01000004),\n", + " (20, 0.01000004),\n", + " (21, 0.01000004),\n", + " (22, 0.01000004),\n", + " (23, 0.01000004),\n", + " (24, 0.01000004),\n", + " (25, 0.01000004),\n", + " (26, 0.01000004),\n", + " (27, 0.01000004),\n", + " (28, 0.01000004),\n", + " (29, 0.01000004),\n", + " (30, 0.01000004),\n", + " (31, 0.01000004),\n", + " (32, 0.509998),\n", + " (33, 0.01000004),\n", + " (34, 0.01000004),\n", + " (35, 0.01000004),\n", + " (36, 0.01000004),\n", + " (37, 0.01000004),\n", + " (38, 0.01000004),\n", + " (39, 0.01000004),\n", + " (40, 0.01000004),\n", + " (41, 0.01000004),\n", + " (42, 0.01000004),\n", + " (43, 0.01000004),\n", + " (44, 0.01000004),\n", + " (45, 0.01000004),\n", + " (46, 0.01000004),\n", + " (47, 0.01000004),\n", + " (48, 0.01000004),\n", + " (49, 0.01000004)]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# samurai라는 단어의 토픽(각 토픽에 소속될 확률)\n", + "lda_model[common_dictionary.doc2bow(['samurai'])]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e03ab49d", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 554 + }, + "executionInfo": { + "elapsed": 7036, + "status": "ok", + "timestamp": 1672118571397, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "e03ab49d", + "outputId": "04f31642-f84a-4a5b-a7a7-17f5e79ad431" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idtitlegenretagtag_genretopictopic_score
01Toy Story (1995)[Adventure, Animation, Children, Comedy, Fantasy][pixar, pixar, pixar, animation, pixar, animat...[pixar, pixar, pixar, animation, pixar, animat...340.777594
12Jumanji (1995)[Adventure, Children, Fantasy][for children, game, animals, joe johnston, ro...[for children, game, animals, joe johnston, ro...400.275520
23Grumpier Old Men (1995)[Comedy, Romance][funniest movies, comedinha de velhinhos engra...[funniest movies, comedinha de velhinhos engra...70.501525
34Waiting to Exhale (1995)[Comedy, Drama, Romance][girl movie][girl movie, Comedy, Drama, Romance]490.755000
45Father of the Bride Part II (1995)[Comedy][steve martin, pregnancy, remake, steve martin...[steve martin, pregnancy, remake, steve martin...340.692084
........................
1067665088Bedtime Stories (2008)[Adventure, Children, Comedy]NaN[Adventure, Children, Comedy]340.755000
1067765091Manhattan Melodrama (1934)[Crime, Drama, Romance]NaN[Crime, Drama, Romance]490.456076
1067865126Choke (2008)[Comedy, Drama][chuck palahniuk, based on book][chuck palahniuk, based on book, Comedy, Drama]490.505002
1067965130Revolutionary Road (2008)[Drama, Romance][toplist08][toplist08, Drama, Romance]490.673333
1068065133Blackadder Back & Forth (1999)[Comedy]NaN[Comedy]170.510000
\n", + "

10681 rows × 7 columns

\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " movie_id title \\\n", + "0 1 Toy Story (1995) \n", + "1 2 Jumanji (1995) \n", + "2 3 Grumpier Old Men (1995) \n", + "3 4 Waiting to Exhale (1995) \n", + "4 5 Father of the Bride Part II (1995) \n", + "... ... ... \n", + "10676 65088 Bedtime Stories (2008) \n", + "10677 65091 Manhattan Melodrama (1934) \n", + "10678 65126 Choke (2008) \n", + "10679 65130 Revolutionary Road (2008) \n", + "10680 65133 Blackadder Back & Forth (1999) \n", + "\n", + " genre \\\n", + "0 [Adventure, Animation, Children, Comedy, Fantasy] \n", + "1 [Adventure, Children, Fantasy] \n", + "2 [Comedy, Romance] \n", + "3 [Comedy, Drama, Romance] \n", + "4 [Comedy] \n", + "... ... \n", + "10676 [Adventure, Children, Comedy] \n", + "10677 [Crime, Drama, Romance] \n", + "10678 [Comedy, Drama] \n", + "10679 [Drama, Romance] \n", + "10680 [Comedy] \n", + "\n", + " tag \\\n", + "0 [pixar, pixar, pixar, animation, pixar, animat... \n", + "1 [for children, game, animals, joe johnston, ro... \n", + "2 [funniest movies, comedinha de velhinhos engra... \n", + "3 [girl movie] \n", + "4 [steve martin, pregnancy, remake, steve martin... \n", + "... ... \n", + "10676 NaN \n", + "10677 NaN \n", + "10678 [chuck palahniuk, based on book] \n", + "10679 [toplist08] \n", + "10680 NaN \n", + "\n", + " tag_genre topic topic_score \n", + "0 [pixar, pixar, pixar, animation, pixar, animat... 34 0.777594 \n", + "1 [for children, game, animals, joe johnston, ro... 40 0.275520 \n", + "2 [funniest movies, comedinha de velhinhos engra... 7 0.501525 \n", + "3 [girl movie, Comedy, Drama, Romance] 49 0.755000 \n", + "4 [steve martin, pregnancy, remake, steve martin... 34 0.692084 \n", + "... ... ... ... \n", + "10676 [Adventure, Children, Comedy] 34 0.755000 \n", + "10677 [Crime, Drama, Romance] 49 0.456076 \n", + "10678 [chuck palahniuk, based on book, Comedy, Drama] 49 0.505002 \n", + "10679 [toplist08, Drama, Romance] 49 0.673333 \n", + "10680 [Comedy] 17 0.510000 \n", + "\n", + "[10681 rows x 7 columns]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 각 영화의 토픽을 저장한다\n", + "lda_topics = lda_model[common_corpus]\n", + "\n", + "# 각 영화에 가장 확률이 높은 토픽을 1개 추출해서 저장한다\n", + "movie_topics = []\n", + "movie_topic_scores = []\n", + "for movie_index, lda_topic in enumerate(lda_topics):\n", + " sorted_topic = sorted(lda_topics[movie_index], key=lambda x: -x[1])\n", + " # 가장 확률이 높은 토픽\n", + " movie_topic, topic_score = sorted_topic[0]\n", + " movie_topics.append(movie_topic)\n", + " movie_topic_scores.append(topic_score)\n", + "movie_content[\"topic\"] = movie_topics\n", + "movie_content[\"topic_score\"] = movie_topic_scores\n", + "movie_content" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "961bb095", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 1592, + "status": "ok", + "timestamp": 1672118572985, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "961bb095", + "outputId": "e05ef7b3-811d-4c1e-a76b-32c2721be3ad" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "defaultdict(list,\n", + " {1: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 2: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788],\n", + " 3: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n", + " 4: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 5: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n", + " 6: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n", + " 7: [25766, 910, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494],\n", + " 8: [3683, 4881, 1394, 5756, 33823, 2583, 76, 663, 1464, 45028],\n", + " 9: [1513, 45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102],\n", + " 10: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n", + " 11: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n", + " 12: [1210, 1196, 260, 5378, 33493, 1200, 1580, 377, 1584, 1438],\n", + " 13: [260, 5378, 33493, 780, 2628, 1200, 377, 1584, 1438, 788],\n", + " 14: [780, 2628, 1200, 1580, 377, 1584, 1438, 788, 8644, 736],\n", + " 16: [5378, 33493, 780, 2628, 377, 1584, 1438, 788, 8644, 736],\n", + " 17: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n", + " 18: [5378, 33493, 2628, 1200, 1584, 8644, 1690, 4812, 3699, 2311],\n", + " 19: [104,\n", + " 59900,\n", + " 1777,\n", + " 2014,\n", + " 27830,\n", + " 60487,\n", + " 3979,\n", + " 1241,\n", + " 6593,\n", + " 27873],\n", + " 22: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 23: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 1584, 1438, 788],\n", + " 24: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 26: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 27: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n", + " 28: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 29: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 457],\n", + " 30: [135, 5146, 2810, 27731, 42217, 1537, 3484, 4850, 1717, 1343],\n", + " 33: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 34: [5378, 33493, 1580, 8644, 4812, 2311, 6882, 3527, 2193, 2115],\n", + " 35: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2622],\n", + " 36: [262,\n", + " 1130,\n", + " 5335,\n", + " 60530,\n", + " 59290,\n", + " 27513,\n", + " 3012,\n", + " 4514,\n", + " 8025,\n", + " 5833],\n", + " 37: [2249, 3833, 32019, 1785, 18, 3744, 27734, 1729, 1635, 1213],\n", + " 38: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 40: [555, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n", + " 41: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 42: [1513, 45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102],\n", + " 43: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 44: [1513, 45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102],\n", + " 45: [48161, 993, 930, 2178, 2375, 904, 2186, 290, 43710, 2236],\n", + " 46: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 47: [5378, 33493, 1438, 788, 8644, 1690, 4812, 3699, 2311, 6882],\n", + " 48: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 50: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 51: [586, 1734, 7091, 317, 7058, 34002, 8734, 34018, 4763, 2804],\n", + " 52: [2924, 2582, 112, 51277, 5621, 1429, 2879, 2880, 3139, 1867],\n", + " 53: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 54: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 55: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n", + " 56: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 57: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 58: [1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848, 63237],\n", + " 59: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 60: [1210, 1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n", + " 61: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n", + " 62: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 63: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n", + " 64: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 65: [1030,\n", + " 3759,\n", + " 5109,\n", + " 3775,\n", + " 3964,\n", + " 3611,\n", + " 1881,\n", + " 63237,\n", + " 8713,\n", + " 48159],\n", + " 66: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n", + " 67: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 68: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 69: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 70: [48161, 993, 2178, 524, 2375, 2186, 290, 43710, 2236, 47644],\n", + " 71: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 72: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 73: [1513, 45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102],\n", + " 74: [1261, 26915, 1215, 4105, 8928, 256, 33834, 8874, 8225, 4553],\n", + " 75: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 76: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 77: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n", + " 78: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 79: [8457, 2610, 700, 47778, 1057, 4408, 492, 31038, 8801, 3178],\n", + " 80: [1266,\n", + " 2401,\n", + " 44168,\n", + " 5959,\n", + " 2921,\n", + " 3508,\n", + " 4945,\n", + " 54787,\n", + " 4785,\n", + " 7889],\n", + " 81: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1942, 1937],\n", + " 82: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 83: [61352,\n", + " 6699,\n", + " 56719,\n", + " 27255,\n", + " 55726,\n", + " 1893,\n", + " 279,\n", + " 3192,\n", + " 4977,\n", + " 8619],\n", + " 84: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 85: [555, 1089, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n", + " 86: [260, 5378, 33493, 2628, 1580, 377, 1584, 1438, 788, 8644],\n", + " 87: [45221, 4452, 5802, 1285, 6807, 1602, 5439, 6816, 4102, 6212],\n", + " 88: [33493, 1200, 377, 1584, 1438, 788, 8644, 1690, 4812, 3699],\n", + " 89: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n", + " 90: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 91: [5378, 33493, 2628, 1580, 377, 1584, 1438, 788, 8644, 736],\n", + " 92: [8749, 6921, 3134, 7176, 6649, 8126, 4046, 7238, 26151, 6985],\n", + " 93: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n", + " 94: [26782,\n", + " 5017,\n", + " 1416,\n", + " 7456,\n", + " 25951,\n", + " 3915,\n", + " 918,\n", + " 25999,\n", + " 7990,\n", + " 3425],\n", + " 95: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 96: [2513,\n", + " 2120,\n", + " 5022,\n", + " 4178,\n", + " 7178,\n", + " 2517,\n", + " 26788,\n", + " 26007,\n", + " 4921,\n", + " 2121],\n", + " 97: [1210, 260, 5378, 33493, 780, 1200, 1580, 377, 1584, 1438],\n", + " 98: [3683, 4881, 1394, 5756, 33823, 2583, 76, 1732, 7163, 1464],\n", + " 99: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n", + " 100: [48161, 993, 930, 2178, 524, 2375, 290, 43710, 2236, 47644],\n", + " 101: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 102: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n", + " 103: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 104: [1210, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 105: [5378, 33493, 780, 2628, 1200, 377, 1584, 1438, 788, 8644],\n", + " 106: [1030,\n", + " 3759,\n", + " 5109,\n", + " 3775,\n", + " 3964,\n", + " 3611,\n", + " 1025,\n", + " 1881,\n", + " 1848,\n", + " 63237],\n", + " 107: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 108: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 110: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n", + " 111: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 112: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 113: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 114: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 115: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n", + " 116: [1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438, 8644],\n", + " 117: [6374, 6380, 1586, 29, 121, 943, 8337, 225, 351, 8516],\n", + " 118: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 119: [2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734, 1729],\n", + " 120: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 8644],\n", + " 121: [260, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n", + " 122: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 123: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n", + " 124: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 125: [176,\n", + " 3631,\n", + " 3786,\n", + " 5222,\n", + " 51666,\n", + " 5847,\n", + " 33136,\n", + " 4389,\n", + " 1897,\n", + " 1615],\n", + " 126: [3643,\n", + " 3372,\n", + " 8789,\n", + " 6439,\n", + " 5208,\n", + " 3222,\n", + " 55402,\n", + " 63791,\n", + " 49688,\n", + " 53342],\n", + " 127: [1603,\n", + " 2364,\n", + " 45981,\n", + " 26603,\n", + " 5556,\n", + " 5700,\n", + " 57473,\n", + " 5746,\n", + " 2338,\n", + " 2107],\n", + " 128: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 129: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 130: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 131: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 132: [1348,\n", + " 27850,\n", + " 2783,\n", + " 1694,\n", + " 3872,\n", + " 8194,\n", + " 4113,\n", + " 2454,\n", + " 2064,\n", + " 26306],\n", + " 134: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n", + " 135: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 136: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584, 1438],\n", + " 137: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 138: [2249, 7438, 3833, 32019, 1785, 18, 3744, 27734, 1729, 1635],\n", + " 139: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 63237],\n", + " 140: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n", + " 141: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 142: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n", + " 143: [4740, 7211, 7221, 745, 1148, 6501, 3501, 27509, 1075, 2884],\n", + " 144: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 2094, 6305],\n", + " 145: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 148: [5378, 33493, 780, 2628, 1580, 1584, 1438, 788, 8644, 736],\n", + " 149: [555, 1089, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1635],\n", + " 150: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 151: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n", + " 152: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 153: [1210, 1196, 5378, 33493, 780, 1580, 377, 1584, 1438, 788],\n", + " 154: [33493, 1438, 8644, 4812, 2311, 6882, 2193, 2115, 8810, 748],\n", + " 155: [1302, 5644, 1940, 3100, 7771, 1943, 1929, 1225, 1942, 1937],\n", + " 156: [26782,\n", + " 5017,\n", + " 1416,\n", + " 7456,\n", + " 25951,\n", + " 3915,\n", + " 918,\n", + " 25999,\n", + " 7990,\n", + " 3425],\n", + " 157: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 158: [1695, 1060, 719, 502, 4021, 6876, 2059, 4273, 5517, 6341],\n", + " 159: [2401,\n", + " 44168,\n", + " 5959,\n", + " 318,\n", + " 4945,\n", + " 54787,\n", + " 4785,\n", + " 7889,\n", + " 8340,\n", + " 4714],\n", + " 160: [63113,\n", + " 2989,\n", + " 7570,\n", + " 2376,\n", + " 2991,\n", + " 3633,\n", + " 2949,\n", + " 4005,\n", + " 3984,\n", + " 7573],\n", + " 161: [5378, 33493, 780, 1580, 377, 1438, 788, 8644, 736, 1690],\n", + " 162: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 163: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 164: [58059,\n", + " 1608,\n", + " 8939,\n", + " 1704,\n", + " 4176,\n", + " 2889,\n", + " 2019,\n", + " 3030,\n", + " 4640,\n", + " 7919],\n", + " 165: [1210, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n", + " 166: [5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788, 8644],\n", + " 167: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n", + " 168: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1848, 63237, 8713],\n", + " 169: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 170: [1753, 8807, 194, 4034, 7959, 4439, 4994, 410, 784, 2150],\n", + " 171: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 172: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 173: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 174: [1266,\n", + " 2401,\n", + " 44168,\n", + " 5959,\n", + " 2921,\n", + " 3508,\n", + " 4945,\n", + " 54787,\n", + " 4785,\n", + " 7889],\n", + " 175: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 176: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 177: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 178: [5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438, 788],\n", + " 179: [596, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 63237, 8713],\n", + " 180: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n", + " 182: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 183: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 184: [1196, 260, 5378, 33493, 780, 1200, 1580, 377, 1584, 1438],\n", + " 185: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 186: [1196, 33493, 780, 2628, 1580, 377, 1584, 1438, 788, 8644],\n", + " 187: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 188: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 189: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 1584, 1438, 788],\n", + " 190: [5378, 377, 788, 1690, 4812, 2311, 6882, 748, 5290, 3927],\n", + " 191: [7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619, 445],\n", + " 192: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102,\n", + " 6212],\n", + " 193: [2924, 2582, 112, 51277, 5621, 1429, 2879, 2880, 3139, 1867],\n", + " 194: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n", + " 195: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n", + " 196: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n", + " 197: [1485, 344, 19, 1753, 8807, 194, 4034, 7959, 4439, 4994],\n", + " 198: [377, 1438, 788, 736, 4812, 3699, 2311, 6882, 3527, 2193],\n", + " 199: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 200: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n", + " 201: [26782,\n", + " 5017,\n", + " 1416,\n", + " 7456,\n", + " 25951,\n", + " 3915,\n", + " 918,\n", + " 25999,\n", + " 7990,\n", + " 3425],\n", + " 202: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 203: [5378, 33493, 2628, 377, 1584, 1438, 788, 8644, 1690, 4812],\n", + " 204: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 205: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n", + " 206: [3643,\n", + " 3372,\n", + " 8789,\n", + " 6439,\n", + " 5208,\n", + " 3222,\n", + " 55402,\n", + " 63791,\n", + " 49688,\n", + " 53342],\n", + " 207: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 208: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 209: [2550,\n", + " 1789,\n", + " 1103,\n", + " 1340,\n", + " 4722,\n", + " 4942,\n", + " 2665,\n", + " 47836,\n", + " 4518,\n", + " 2650],\n", + " 210: [1196, 260, 5378, 33493, 1200, 377, 1438, 8644, 736, 1690],\n", + " 211: [1210, 5378, 33493, 780, 2628, 377, 1584, 1438, 788, 8644],\n", + " 212: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 50259,\n", + " 5842,\n", + " 61724],\n", + " 213: [500, 58059, 8939, 4176, 2889, 2019, 3030, 4640, 7919, 8292],\n", + " 214: [33493,\n", + " 1200,\n", + " 1438,\n", + " 8644,\n", + " 1690,\n", + " 4812,\n", + " 6882,\n", + " 3527,\n", + " 2193,\n", + " 8810],\n", + " 215: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 32525],\n", + " 216: [4740, 7211, 5077, 7221, 838, 1148, 3454, 6501, 3501, 27509],\n", + " 217: [1485, 19, 231, 1753, 8807, 194, 4034, 7959, 4439, 4994],\n", + " 218: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 219: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 220: [1266, 2401, 44168, 5959, 318, 4945, 54787, 4785, 7889, 599],\n", + " 221: [5378, 33493, 2628, 1200, 1580, 1584, 1438, 788, 8644, 1690],\n", + " 222: [1261, 26915, 1215, 4105, 342, 8928, 256, 33834, 8874, 8225],\n", + " 223: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 224: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 225: [2924, 2582, 112, 51277, 5621, 1429, 2879, 2880, 3139, 1867],\n", + " 226: [1046,\n", + " 2550,\n", + " 1789,\n", + " 1103,\n", + " 1340,\n", + " 4722,\n", + " 4942,\n", + " 2665,\n", + " 47836,\n", + " 4518],\n", + " 227: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 228: [1261,\n", + " 26915,\n", + " 1215,\n", + " 4105,\n", + " 342,\n", + " 8928,\n", + " 33834,\n", + " 8874,\n", + " 8225,\n", + " 4553],\n", + " 229: [2924,\n", + " 2582,\n", + " 51277,\n", + " 5621,\n", + " 2879,\n", + " 2880,\n", + " 3139,\n", + " 1867,\n", + " 5702,\n", + " 7113],\n", + " 230: [2848, 7069, 3723, 26, 2820, 3719, 2011, 2622, 4319, 4324],\n", + " 231: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n", + " 232: [5378, 33493, 2628, 1580, 1584, 1438, 788, 8644, 1690, 4812],\n", + " 234: [2924, 2582, 112, 51277, 5621, 1429, 2879, 2880, 3139, 1867],\n", + " 235: [1210, 1196, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 236: [1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n", + " 237: [5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788, 8644],\n", + " 238: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 239: [1210, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n", + " 241: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n", + " 242: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n", + " 243: [5378, 33493, 780, 2628, 1200, 1584, 1438, 788, 8644, 736],\n", + " 244: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 245: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n", + " 246: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n", + " 247: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 248: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 249: [1603,\n", + " 2364,\n", + " 45981,\n", + " 26603,\n", + " 5556,\n", + " 5700,\n", + " 57473,\n", + " 5746,\n", + " 2338,\n", + " 2107],\n", + " 250: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 251: [5378, 33493, 2628, 1580, 377, 1584, 1438, 8644, 1690, 4812],\n", + " 252: [48161, 993, 2178, 524, 2375, 290, 43710, 2236, 47644, 2335],\n", + " 253: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n", + " 254: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n", + " 255: [63113,\n", + " 2989,\n", + " 7570,\n", + " 2642,\n", + " 2990,\n", + " 2376,\n", + " 2991,\n", + " 3633,\n", + " 2949,\n", + " 4005],\n", + " 256: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 257: [1210, 1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n", + " 258: [63113, 7570, 2642, 2990, 2376, 2991, 3633, 2949, 4005, 153],\n", + " 259: [49282, 2546, 448, 1288, 7770, 1179, 1968, 2248, 6558, 6776],\n", + " 260: [5378, 33493, 2628, 1580, 1584, 1438, 788, 8644, 736, 1690],\n", + " 261: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 262: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 263: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n", + " 264: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 265: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 266: [2848, 1411, 7069, 26, 3598, 2820, 497, 3719, 2011, 2622],\n", + " 267: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n", + " 268: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n", + " 269: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 270: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 271: [5378, 33493, 2628, 1200, 377, 1438, 8644, 736, 1690, 4812],\n", + " 272: [4740, 7211, 5077, 7221, 838, 3454, 6501, 3501, 27509, 1075],\n", + " 273: [1196, 33493, 780, 2628, 1580, 1584, 1438, 788, 8644, 736],\n", + " 274: [596, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848, 63237],\n", + " 275: [1210, 260, 5378, 33493, 780, 2628, 1200, 1438, 8644, 736],\n", + " 276: [26915,\n", + " 8928,\n", + " 33834,\n", + " 8225,\n", + " 4531,\n", + " 7225,\n", + " 5195,\n", + " 6134,\n", + " 5040,\n", + " 7000],\n", + " 277: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 278: [1210, 1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n", + " 279: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 280: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n", + " 281: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n", + " 282: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 285: [1967, 6374, 6380, 1586, 29, 121, 943, 8337, 225, 351],\n", + " 286: [5378, 33493, 780, 1580, 377, 1584, 1438, 788, 8644, 736],\n", + " 287: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 2023],\n", + " 288: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1225, 1942],\n", + " 289: [2513,\n", + " 2120,\n", + " 5022,\n", + " 7178,\n", + " 2517,\n", + " 906,\n", + " 26788,\n", + " 26007,\n", + " 2118,\n", + " 4921],\n", + " 290: [596, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848, 63237],\n", + " 291: [1266,\n", + " 2401,\n", + " 44168,\n", + " 5959,\n", + " 318,\n", + " 2921,\n", + " 3508,\n", + " 4945,\n", + " 54787,\n", + " 4785],\n", + " 292: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 293: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 294: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n", + " 295: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n", + " 296: [6952,\n", + " 3652,\n", + " 3970,\n", + " 3832,\n", + " 5980,\n", + " 27317,\n", + " 2159,\n", + " 5165,\n", + " 2460,\n", + " 8906],\n", + " 297: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 298: [596,\n", + " 3759,\n", + " 5109,\n", + " 3775,\n", + " 3611,\n", + " 1848,\n", + " 63237,\n", + " 8713,\n", + " 48159,\n", + " 32153],\n", + " 300: [1496, 4420, 5483, 4181, 6460, 5177, 89, 3467, 550, 916],\n", + " 301: [1302, 5644, 1961, 1940, 1393, 7771, 1943, 1929, 1225, 1942],\n", + " 302: [350, 6296, 49282, 2546, 448, 6187, 6323, 7770, 1179, 1449],\n", + " 303: [350, 6296, 49282, 2546, 448, 50, 6187, 6323, 7770, 1179],\n", + " 304: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1942, 1937],\n", + " 305: [951, 2330, 537, 26770, 6001, 7100, 4870, 3038, 5142, 1641],\n", + " 306: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n", + " 307: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 308: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 309: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 310: [1485, 344, 19, 231, 1753, 8807, 194, 7959, 4439, 4994],\n", + " 311: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 312: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 313: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n", + " 314: [5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788, 8644],\n", + " 315: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n", + " 316: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 317: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 318: [5644, 1940, 3100, 7771, 1943, 1929, 1942, 1937, 1946, 1936],\n", + " 319: [33493, 780, 1580, 377, 1438, 788, 8644, 736, 4812, 3699],\n", + " 320: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 321: [597, 1059, 3619, 605, 1552, 5942, 6996, 5245, 2023, 3512],\n", + " 322: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 323: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 324: [1196, 260, 5378, 33493, 780, 1200, 1580, 377, 1438, 788],\n", + " 325: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n", + " 326: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 327: [348, 8457, 2610, 700, 47778, 1057, 4408, 492, 31038, 8801],\n", + " 328: [1210, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n", + " 329: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 330: [780, 1580, 377, 1584, 1438, 788, 8644, 736, 4812, 3699],\n", + " 331: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 332: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 333: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 334: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n", + " 335: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n", + " 336: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 337: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 338: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n", + " 339: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 340: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 341: [1348,\n", + " 27850,\n", + " 2783,\n", + " 1694,\n", + " 3872,\n", + " 8194,\n", + " 4113,\n", + " 2454,\n", + " 2064,\n", + " 26306],\n", + " 342: [555, 1089, 296, 2249, 3833, 32019, 1785, 18, 3744, 27734],\n", + " 343: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 344: [5378, 33493, 780, 2628, 1200, 1580, 1584, 1438, 788, 8644],\n", + " 345: [5378, 33493, 780, 1200, 377, 1584, 1438, 8644, 1690, 4812],\n", + " 346: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 347: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 348: [1302, 5644, 1940, 3100, 7771, 1943, 1929, 1225, 1942, 1937],\n", + " 349: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 350: [1757, 994, 59141, 69, 1889, 7324, 7297, 7062, 947, 1952],\n", + " 351: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 352: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 353: [1210, 260, 5378, 33493, 780, 2628, 377, 1584, 1438, 788],\n", + " 354: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 355: [2513,\n", + " 2120,\n", + " 5022,\n", + " 4178,\n", + " 7178,\n", + " 2517,\n", + " 3256,\n", + " 906,\n", + " 26788,\n", + " 26007],\n", + " 356: [2848, 7069, 3723, 3598, 2820, 497, 3719, 2011, 2622, 4319],\n", + " 357: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102,\n", + " 6212],\n", + " 358: [33493, 1584, 1438, 788, 8644, 1690, 4812, 3699, 2311, 6882],\n", + " 359: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 360: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102,\n", + " 6212],\n", + " 361: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 362: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 363: [555, 1089, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1729],\n", + " 364: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 365: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 366: [5637,\n", + " 45664,\n", + " 46231,\n", + " 34499,\n", + " 52448,\n", + " 56028,\n", + " 60393,\n", + " 58367,\n", + " 3211,\n", + " 26803],\n", + " 367: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 368: [2582,\n", + " 51277,\n", + " 5621,\n", + " 1429,\n", + " 2880,\n", + " 3139,\n", + " 1867,\n", + " 5702,\n", + " 7113,\n", + " 5302],\n", + " 369: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 370: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n", + " 371: [1210, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n", + " 372: [260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1438, 788],\n", + " 373: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 375: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 376: [1196, 5378, 780, 1580, 377, 1584, 1438, 788, 8644, 736],\n", + " 377: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 378: [5378, 33493, 780, 1200, 1580, 377, 1584, 1438, 788, 8644],\n", + " 379: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n", + " 380: [1196, 260, 33493, 780, 1200, 1580, 377, 1584, 1438, 788],\n", + " 381: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n", + " 382: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 383: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 384: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 385: [26782,\n", + " 5017,\n", + " 1416,\n", + " 7456,\n", + " 25951,\n", + " 3915,\n", + " 918,\n", + " 25999,\n", + " 7990,\n", + " 3425],\n", + " 386: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 387: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 388: [1210, 1196, 260, 5378, 33493, 780, 1200, 1580, 377, 1584],\n", + " 389: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n", + " 390: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 391: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 392: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n", + " 393: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 394: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 395: [5574, 27193, 8605, 2555, 3738, 1220, 237, 58, 3717, 1350],\n", + " 396: [33493, 780, 1200, 377, 1584, 1438, 788, 8644, 736, 1690],\n", + " 397: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 398: [1210, 5378, 33493, 780, 2628, 1200, 1580, 1584, 1438, 788],\n", + " 399: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 400: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 401: [4030, 2167, 2006, 1191, 6754, 8985, 70, 6500, 7886, 2958],\n", + " 402: [63113,\n", + " 2989,\n", + " 7570,\n", + " 2642,\n", + " 2990,\n", + " 2376,\n", + " 2991,\n", + " 3633,\n", + " 2949,\n", + " 4005],\n", + " 403: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n", + " 404: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 405: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 406: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 407: [1210, 1196, 5378, 33493, 1584, 1438, 788, 8644, 736, 4812],\n", + " 408: [348, 8457, 2610, 700, 47778, 1057, 4408, 492, 31038, 8801],\n", + " 409: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 410: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n", + " 411: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n", + " 412: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 413: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 414: [45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102,\n", + " 6212],\n", + " 415: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n", + " 416: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 417: [1210, 1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n", + " 418: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n", + " 419: [1210, 1196, 33493, 1584, 1438, 788, 8644, 1690, 4812, 3699],\n", + " 420: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 421: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 422: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 424: [8749,\n", + " 6921,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985,\n", + " 32525],\n", + " 425: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n", + " 426: [2924, 2582, 112, 51277, 1429, 2879, 2880, 3139, 1867, 5702],\n", + " 427: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 428: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1848, 63237],\n", + " 429: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 430: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 431: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 432: [1348,\n", + " 27850,\n", + " 2783,\n", + " 1694,\n", + " 3872,\n", + " 8194,\n", + " 4113,\n", + " 2454,\n", + " 2064,\n", + " 26306],\n", + " 433: [58059,\n", + " 8939,\n", + " 1704,\n", + " 4176,\n", + " 2889,\n", + " 2019,\n", + " 3030,\n", + " 4640,\n", + " 7919,\n", + " 8292],\n", + " 434: [33493, 1584, 1438, 8644, 4812, 3699, 2311, 6882, 8810, 748],\n", + " 435: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1584],\n", + " 436: [5637,\n", + " 45664,\n", + " 46231,\n", + " 34499,\n", + " 52448,\n", + " 56028,\n", + " 60393,\n", + " 58367,\n", + " 3211,\n", + " 26803],\n", + " 437: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n", + " 438: [5378, 33493, 1584, 8644, 736, 4812, 3699, 2311, 6882, 3527],\n", + " 439: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 440: [555, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n", + " 441: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 443: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 444: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n", + " 445: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 446: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 447: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 448: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 449: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 450: [1261, 26915, 1215, 4105, 342, 8928, 256, 33834, 8874, 8225],\n", + " 451: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n", + " 452: [529, 951, 2330, 537, 26770, 6001, 7100, 4870, 3038, 5142],\n", + " 453: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 454: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 455: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n", + " 456: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 458: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n", + " 459: [4030, 2006, 1191, 6500, 7886, 2958, 5128, 2328, 6709, 4753],\n", + " 460: [63113,\n", + " 2989,\n", + " 7570,\n", + " 2642,\n", + " 2990,\n", + " 2376,\n", + " 2991,\n", + " 3633,\n", + " 2949,\n", + " 4005],\n", + " 461: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788],\n", + " 462: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n", + " 463: [33493, 1438, 788, 1690, 4812, 3699, 2311, 6882, 2193, 2115],\n", + " 464: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n", + " 465: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 466: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n", + " 467: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1438],\n", + " 468: [104,\n", + " 59900,\n", + " 1777,\n", + " 2014,\n", + " 27830,\n", + " 60487,\n", + " 3979,\n", + " 1241,\n", + " 1022,\n", + " 6593],\n", + " 469: [63113,\n", + " 2989,\n", + " 7570,\n", + " 2642,\n", + " 2990,\n", + " 2376,\n", + " 2991,\n", + " 3633,\n", + " 2949,\n", + " 4005],\n", + " 470: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 471: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 472: [1030,\n", + " 3759,\n", + " 5109,\n", + " 3775,\n", + " 3964,\n", + " 3611,\n", + " 1025,\n", + " 1881,\n", + " 1848,\n", + " 63237],\n", + " 473: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n", + " 474: [1603,\n", + " 2364,\n", + " 45981,\n", + " 26603,\n", + " 5556,\n", + " 5700,\n", + " 57473,\n", + " 5746,\n", + " 2338,\n", + " 2107],\n", + " 475: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 476: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1343],\n", + " 477: [2401,\n", + " 44168,\n", + " 5959,\n", + " 2921,\n", + " 3508,\n", + " 4945,\n", + " 54787,\n", + " 4785,\n", + " 7889,\n", + " 599],\n", + " 479: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 480: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n", + " 481: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 482: [780, 1200, 1584, 1438, 1690, 4812, 3699, 2311, 6882, 3527],\n", + " 483: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 484: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 485: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 486: [1210, 1196, 260, 5378, 780, 2628, 1200, 1580, 377, 1584],\n", + " 487: [1266,\n", + " 2401,\n", + " 44168,\n", + " 5959,\n", + " 2921,\n", + " 3508,\n", + " 4945,\n", + " 54787,\n", + " 4785,\n", + " 7889],\n", + " 488: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 489: [5644, 1961, 1940, 3100, 7771, 1943, 1929, 1942, 1937, 1946],\n", + " 490: [5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942, 1937],\n", + " 491: [555, 1089, 296, 2249, 3833, 32019, 1785, 18, 3744, 27734],\n", + " 492: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n", + " 493: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 494: [6952,\n", + " 3652,\n", + " 3970,\n", + " 3832,\n", + " 5980,\n", + " 27317,\n", + " 2159,\n", + " 5165,\n", + " 2460,\n", + " 8906],\n", + " 495: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 496: [2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734, 1729],\n", + " 497: [555, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n", + " 498: [1261, 26915, 1215, 4105, 342, 8928, 256, 33834, 8874, 8225],\n", + " 499: [1196, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 500: [1266,\n", + " 2401,\n", + " 44168,\n", + " 5959,\n", + " 2921,\n", + " 3508,\n", + " 4945,\n", + " 54787,\n", + " 4785,\n", + " 7889],\n", + " 501: [5378, 33493, 1200, 1438, 788, 8644, 1690, 4812, 3699, 2311],\n", + " 502: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 503: [7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619, 445],\n", + " 504: [1059, 3619, 605, 1552, 5942, 6996, 5245, 2023, 3512, 1831],\n", + " 505: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 506: [5378, 33493, 2628, 1580, 377, 1584, 1438, 788, 8644, 736],\n", + " 507: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 508: [1210, 260, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438],\n", + " 509: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 510: [1059, 3619, 605, 1552, 5942, 6996, 5245, 2023, 3512, 1831],\n", + " 511: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 512: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 513: [48161, 993, 930, 2178, 524, 290, 43710, 47644, 5473, 6207],\n", + " 515: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 516: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n", + " 517: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 518: [1266,\n", + " 2401,\n", + " 44168,\n", + " 5959,\n", + " 2921,\n", + " 3508,\n", + " 4945,\n", + " 54787,\n", + " 4785,\n", + " 7889],\n", + " 520: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n", + " 521: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 522: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 43710, 2236],\n", + " 523: [3683, 4881, 5756, 33823, 2583, 76, 1732, 7163, 1464, 45028],\n", + " 524: [26782,\n", + " 5017,\n", + " 1416,\n", + " 7456,\n", + " 25951,\n", + " 3915,\n", + " 918,\n", + " 25999,\n", + " 7990,\n", + " 3425],\n", + " 525: [63113,\n", + " 2989,\n", + " 7570,\n", + " 2642,\n", + " 2990,\n", + " 2376,\n", + " 2991,\n", + " 3633,\n", + " 2949,\n", + " 4005],\n", + " 526: [5637,\n", + " 45664,\n", + " 46231,\n", + " 34499,\n", + " 52448,\n", + " 56028,\n", + " 60393,\n", + " 58367,\n", + " 3211,\n", + " 26803],\n", + " 527: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 529: [1196, 5378, 33493, 780, 2628, 1200, 377, 1584, 1438, 788],\n", + " 530: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 531: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 532: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 533: [63113, 2989, 7570, 2990, 2376, 2991, 4005, 3984, 7573, 10],\n", + " 534: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 535: [8749,\n", + " 6921,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 32525,\n", + " 3620],\n", + " 536: [1196, 5378, 33493, 2628, 1200, 1580, 1584, 788, 8644, 736],\n", + " 537: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 539: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 540: [4030, 2167, 2006, 1191, 6754, 8985, 70, 6500, 7886, 2958],\n", + " 541: [6952,\n", + " 3652,\n", + " 3970,\n", + " 3832,\n", + " 5980,\n", + " 27317,\n", + " 2159,\n", + " 5165,\n", + " 2460,\n", + " 8906],\n", + " 542: [3643,\n", + " 3372,\n", + " 8789,\n", + " 6439,\n", + " 5208,\n", + " 3222,\n", + " 55402,\n", + " 63791,\n", + " 49688,\n", + " 53342],\n", + " 543: [63113,\n", + " 2989,\n", + " 7570,\n", + " 2990,\n", + " 2376,\n", + " 2991,\n", + " 3633,\n", + " 2949,\n", + " 4005,\n", + " 3984],\n", + " 544: [555, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1729, 1635],\n", + " 545: [5378, 33493, 2628, 1584, 1438, 788, 8644, 1690, 4812, 3699],\n", + " 546: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 547: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n", + " 548: [5378, 33493, 780, 2628, 1200, 1580, 377, 1438, 788, 8644],\n", + " 549: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 550: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 551: [2513,\n", + " 2120,\n", + " 5022,\n", + " 4178,\n", + " 7178,\n", + " 2517,\n", + " 3256,\n", + " 906,\n", + " 26788,\n", + " 26007],\n", + " 552: [45221,\n", + " 4452,\n", + " 5802,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102,\n", + " 6212,\n", + " 7261],\n", + " 553: [5637,\n", + " 45664,\n", + " 46231,\n", + " 34499,\n", + " 52448,\n", + " 56028,\n", + " 60393,\n", + " 58367,\n", + " 3211,\n", + " 26803],\n", + " 554: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 555: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n", + " 556: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 557: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 558: [45221,\n", + " 4452,\n", + " 5802,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102,\n", + " 6212,\n", + " 7261,\n", + " 6104],\n", + " 559: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n", + " 560: [26915,\n", + " 1215,\n", + " 8928,\n", + " 256,\n", + " 33834,\n", + " 8874,\n", + " 8225,\n", + " 4553,\n", + " 4531,\n", + " 7225],\n", + " 561: [135, 248, 27731, 42217, 1537, 3484, 4850, 1717, 1343, 5069],\n", + " 562: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 563: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n", + " 564: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 565: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 566: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 567: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 568: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 569: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 570: [26782,\n", + " 5017,\n", + " 1416,\n", + " 7456,\n", + " 25951,\n", + " 3915,\n", + " 918,\n", + " 25999,\n", + " 7990,\n", + " 3425],\n", + " 571: [33493, 1580, 377, 1438, 788, 1690, 4812, 2311, 6882, 2115],\n", + " 572: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n", + " 573: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 574: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 575: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n", + " 576: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 577: [3643,\n", + " 3372,\n", + " 8789,\n", + " 6439,\n", + " 5208,\n", + " 3222,\n", + " 55402,\n", + " 63791,\n", + " 49688,\n", + " 53342],\n", + " 578: [5378, 33493, 780, 377, 1584, 1438, 8644, 1690, 4812, 3699],\n", + " 579: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n", + " 580: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 581: [1030,\n", + " 3759,\n", + " 5109,\n", + " 3775,\n", + " 3964,\n", + " 3611,\n", + " 1025,\n", + " 1881,\n", + " 1848,\n", + " 63237],\n", + " 582: [1030,\n", + " 3759,\n", + " 5109,\n", + " 3775,\n", + " 3964,\n", + " 3611,\n", + " 1025,\n", + " 1881,\n", + " 1848,\n", + " 63237],\n", + " 583: [1210, 1196, 260, 33493, 780, 2628, 1200, 1580, 377, 1584],\n", + " 584: [6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770, 1179],\n", + " 585: [1603,\n", + " 2364,\n", + " 45981,\n", + " 26603,\n", + " 5556,\n", + " 5700,\n", + " 57473,\n", + " 5746,\n", + " 2338,\n", + " 5691],\n", + " 586: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 587: [5378, 33493, 2628, 1200, 1580, 1584, 1438, 788, 8644, 736],\n", + " 588: [1030,\n", + " 3759,\n", + " 5109,\n", + " 3775,\n", + " 3964,\n", + " 3611,\n", + " 1025,\n", + " 1881,\n", + " 1848,\n", + " 63237],\n", + " 589: [48161, 993, 930, 2178, 524, 2375, 2186, 43710, 2236, 47644],\n", + " 590: [5378, 33493, 377, 1584, 1438, 8644, 736, 4812, 3699, 2311],\n", + " 591: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 4619, 445],\n", + " 592: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 593: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 594: [5637,\n", + " 45664,\n", + " 46231,\n", + " 34499,\n", + " 52448,\n", + " 56028,\n", + " 60393,\n", + " 58367,\n", + " 3211,\n", + " 26803],\n", + " 595: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102,\n", + " 6212],\n", + " 596: [3643,\n", + " 3372,\n", + " 8789,\n", + " 6439,\n", + " 5208,\n", + " 3222,\n", + " 55402,\n", + " 63791,\n", + " 49688,\n", + " 53342],\n", + " 597: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 598: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 599: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 600: [1196, 260, 33493, 780, 1580, 377, 1438, 788, 8644, 736],\n", + " 601: [5378, 33493, 2628, 1200, 1584, 1438, 788, 8644, 1690, 4812],\n", + " 602: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 603: [25766, 910, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494],\n", + " 604: [6296, 49282, 2546, 448, 1288, 6187, 6323, 7770, 1179, 1449],\n", + " 605: [3683, 4881, 1394, 5756, 33823, 2583, 76, 1732, 663, 7163],\n", + " 606: [3643,\n", + " 3372,\n", + " 8789,\n", + " 6439,\n", + " 5208,\n", + " 3222,\n", + " 55402,\n", + " 63791,\n", + " 49688,\n", + " 53342],\n", + " 607: [555, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n", + " 608: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1584],\n", + " 609: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 610: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n", + " 612: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n", + " 613: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 614: [1210, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n", + " 616: [1196,\n", + " 5378,\n", + " 33493,\n", + " 2628,\n", + " 1200,\n", + " 1580,\n", + " 1438,\n", + " 8644,\n", + " 1690,\n", + " 4812],\n", + " 617: [4740,\n", + " 7211,\n", + " 5077,\n", + " 7221,\n", + " 3454,\n", + " 6501,\n", + " 3501,\n", + " 27509,\n", + " 1075,\n", + " 2884],\n", + " 618: [26782,\n", + " 5017,\n", + " 1416,\n", + " 7456,\n", + " 25951,\n", + " 3915,\n", + " 918,\n", + " 25999,\n", + " 7990,\n", + " 3425],\n", + " 619: [1196, 5378, 33493, 780, 2628, 377, 1584, 1438, 788, 8644],\n", + " 620: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 621: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n", + " 622: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n", + " 623: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 624: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 625: [5378, 33493, 780, 2628, 1580, 1584, 1438, 788, 8644, 736],\n", + " 627: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 628: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 629: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 630: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n", + " 631: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n", + " 632: [260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 633: [33493, 1438, 788, 8644, 1690, 4812, 3699, 2311, 6882, 3527],\n", + " 634: [5378,\n", + " 33493,\n", + " 2628,\n", + " 1438,\n", + " 8644,\n", + " 4812,\n", + " 3699,\n", + " 2311,\n", + " 6882,\n", + " 3527],\n", + " 635: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 636: [555, 1089, 3833, 32019, 1785, 18, 3744, 27734, 1635, 4164],\n", + " 637: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 638: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 639: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 640: [260, 5378, 2628, 1200, 1580, 377, 1584, 1438, 788, 8644],\n", + " 641: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n", + " 642: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n", + " 643: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n", + " 644: [33493, 780, 1580, 377, 1584, 1438, 788, 8644, 1690, 4812],\n", + " 645: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 646: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 647: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 648: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 649: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 650: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 6212,\n", + " 7261],\n", + " 651: [61352,\n", + " 6699,\n", + " 56719,\n", + " 27255,\n", + " 55726,\n", + " 1893,\n", + " 279,\n", + " 3192,\n", + " 4977,\n", + " 8619],\n", + " 652: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 653: [500, 58059, 1608, 8939, 1704, 4176, 2889, 2019, 3030, 4640],\n", + " 654: [2513,\n", + " 2120,\n", + " 5022,\n", + " 4178,\n", + " 7178,\n", + " 2517,\n", + " 3256,\n", + " 906,\n", + " 26788,\n", + " 26007],\n", + " 655: [3759,\n", + " 5109,\n", + " 3775,\n", + " 3964,\n", + " 3611,\n", + " 1025,\n", + " 1881,\n", + " 1848,\n", + " 63237,\n", + " 8713],\n", + " 656: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 657: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 658: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 457],\n", + " 659: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n", + " 660: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 377, 1584],\n", + " 661: [5637,\n", + " 45664,\n", + " 46231,\n", + " 34499,\n", + " 52448,\n", + " 56028,\n", + " 60393,\n", + " 58367,\n", + " 3211,\n", + " 26803],\n", + " 662: [1302, 5644, 1961, 1940, 3100, 7771, 1943, 1929, 1225, 1942],\n", + " 663: [4030, 2167, 2006, 1191, 6754, 8985, 70, 6500, 7886, 2958],\n", + " 664: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 665: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n", + " 666: [555, 2249, 7438, 3833, 32019, 1785, 18, 3744, 27734, 1729],\n", + " 667: [1210, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n", + " 668: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 669: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 670: [26782,\n", + " 5017,\n", + " 1416,\n", + " 7456,\n", + " 25951,\n", + " 3915,\n", + " 918,\n", + " 25999,\n", + " 7990,\n", + " 3425],\n", + " 671: [39425,\n", + " 53883,\n", + " 4237,\n", + " 55071,\n", + " 3002,\n", + " 1446,\n", + " 6368,\n", + " 5137,\n", + " 1827,\n", + " 6677],\n", + " 672: [555, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734],\n", + " 674: [1603,\n", + " 2364,\n", + " 45981,\n", + " 26603,\n", + " 5556,\n", + " 5700,\n", + " 57473,\n", + " 5746,\n", + " 2338,\n", + " 2107],\n", + " 675: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 676: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 677: [26782,\n", + " 5017,\n", + " 1416,\n", + " 7456,\n", + " 25951,\n", + " 3915,\n", + " 918,\n", + " 25999,\n", + " 7990,\n", + " 3425],\n", + " 678: [5644, 1961, 1940, 3100, 7771, 1943, 1929, 1942, 1937, 1946],\n", + " 679: [5378, 33493, 2628, 1200, 1438, 788, 8644, 4812, 3699, 2311],\n", + " 680: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 681: [235, 1496, 4420, 5483, 4181, 6460, 5177, 89, 3467, 550],\n", + " 683: [5378, 33493, 377, 1584, 1438, 8644, 736, 4812, 3699, 2311],\n", + " 684: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1881, 1848, 63237],\n", + " 685: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 8644],\n", + " 686: [5378, 33493, 780, 1580, 377, 1584, 1438, 788, 8644, 736],\n", + " 688: [1584, 1438, 788, 8644, 736, 4812, 3699, 6882, 2193, 8810],\n", + " 689: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 690: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 691: [5378, 33493, 1200, 1584, 1438, 788, 8644, 736, 1690, 4812],\n", + " 693: [1266,\n", + " 2401,\n", + " 44168,\n", + " 5959,\n", + " 2921,\n", + " 3508,\n", + " 4945,\n", + " 54787,\n", + " 4785,\n", + " 7889],\n", + " 694: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 695: [2513,\n", + " 2120,\n", + " 5022,\n", + " 4178,\n", + " 7178,\n", + " 2517,\n", + " 3256,\n", + " 906,\n", + " 26788,\n", + " 26007],\n", + " 696: [45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102,\n", + " 6212],\n", + " 697: [500, 58059, 1608, 8939, 1704, 4176, 2889, 2019, 3030, 4640],\n", + " 698: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n", + " 699: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n", + " 700: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 701: [1967, 6374, 6380, 1586, 29, 121, 943, 8337, 351, 8516],\n", + " 702: [1603,\n", + " 2364,\n", + " 45981,\n", + " 26603,\n", + " 5556,\n", + " 5700,\n", + " 57473,\n", + " 5746,\n", + " 2338,\n", + " 2107],\n", + " 703: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n", + " 704: [262,\n", + " 180,\n", + " 1130,\n", + " 5335,\n", + " 60530,\n", + " 59290,\n", + " 27513,\n", + " 3012,\n", + " 4514,\n", + " 8025],\n", + " 705: [3683, 4881, 1394, 608, 5756, 33823, 2583, 76, 663, 7163],\n", + " 706: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n", + " 707: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 708: [1210, 1196, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438],\n", + " 709: [1210, 5378, 33493, 780, 1580, 377, 1584, 1438, 788, 8644],\n", + " 710: [25766, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494, 1077],\n", + " 711: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 712: [951, 2330, 26770, 6001, 7100, 4870, 3038, 5142, 1641, 85],\n", + " 714: [1030,\n", + " 3759,\n", + " 5109,\n", + " 3775,\n", + " 3964,\n", + " 3611,\n", + " 1025,\n", + " 1881,\n", + " 1848,\n", + " 63237],\n", + " 715: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 716: [4740, 7211, 5077, 7221, 838, 3454, 6501, 3501, 27509, 1075],\n", + " 718: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 719: [1030,\n", + " 3759,\n", + " 5109,\n", + " 3775,\n", + " 3964,\n", + " 3611,\n", + " 1025,\n", + " 1881,\n", + " 1848,\n", + " 63237],\n", + " 720: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 721: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 723: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n", + " 724: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 725: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 726: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102,\n", + " 6212],\n", + " 727: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 1584, 1438],\n", + " 728: [260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 729: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 730: [63113,\n", + " 2989,\n", + " 7570,\n", + " 2642,\n", + " 2990,\n", + " 2376,\n", + " 2991,\n", + " 3633,\n", + " 2949,\n", + " 4005],\n", + " 731: [5378, 33493, 1438, 8644, 4812, 2311, 6882, 2115, 8810, 748],\n", + " 732: [5637,\n", + " 45664,\n", + " 46231,\n", + " 34499,\n", + " 52448,\n", + " 56028,\n", + " 60393,\n", + " 58367,\n", + " 3211,\n", + " 26803],\n", + " 733: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 734: [5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n", + " 735: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 2023],\n", + " 736: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 737: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n", + " 738: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n", + " 739: [34, 1059, 3619, 605, 5942, 6996, 5245, 2023, 3512, 31],\n", + " 740: [5378, 33493, 780, 1200, 1580, 377, 1584, 1438, 788, 8644],\n", + " 741: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 742: [555, 1089, 2249, 7438, 3833, 32019, 1785, 18, 3744, 27734],\n", + " 743: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 744: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n", + " 745: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 746: [5341, 4192, 369, 1289, 4187, 4126, 789, 8589, 8535, 8132],\n", + " 748: [951, 2330, 537, 26770, 6001, 7100, 4870, 3038, 5142, 1641],\n", + " 749: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 750: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 751: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 752: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 753: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 754: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 755: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 756: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n", + " 757: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102,\n", + " 6212],\n", + " 758: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 759: [3759,\n", + " 5109,\n", + " 3775,\n", + " 3964,\n", + " 3611,\n", + " 1025,\n", + " 1881,\n", + " 1848,\n", + " 63237,\n", + " 8713],\n", + " 761: [1196, 260, 5378, 33493, 1200, 1438, 788, 8644, 736, 1690],\n", + " 762: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 763: [4740, 7211, 5077, 7221, 838, 745, 3454, 6501, 3501, 27509],\n", + " 764: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 765: [5637,\n", + " 45664,\n", + " 46231,\n", + " 34499,\n", + " 52448,\n", + " 56028,\n", + " 60393,\n", + " 58367,\n", + " 3211,\n", + " 26803],\n", + " 766: [5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438, 788],\n", + " 767: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 768: [1695, 1060, 719, 502, 4021, 6876, 2059, 4273, 5517, 381],\n", + " 769: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 770: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 771: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2622],\n", + " 772: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1225, 1942],\n", + " 773: [7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619, 445],\n", + " 774: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n", + " 775: [1030,\n", + " 3759,\n", + " 5109,\n", + " 3775,\n", + " 3964,\n", + " 3611,\n", + " 1025,\n", + " 1881,\n", + " 1848,\n", + " 63237],\n", + " 776: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n", + " 777: [529, 951, 537, 26770, 6001, 7100, 4870, 3038, 5142, 1641],\n", + " 780: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 781: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 782: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n", + " 783: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 784: [235, 1496, 4420, 5483, 4181, 6460, 5177, 89, 3467, 550],\n", + " 785: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 786: [3759,\n", + " 5109,\n", + " 3775,\n", + " 3964,\n", + " 3611,\n", + " 1025,\n", + " 1881,\n", + " 1848,\n", + " 63237,\n", + " 8713],\n", + " 787: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n", + " 788: [1210, 1196, 260, 5378, 33493, 2628, 1438, 1690, 4812, 3699],\n", + " 789: [5637,\n", + " 45664,\n", + " 46231,\n", + " 34499,\n", + " 52448,\n", + " 56028,\n", + " 60393,\n", + " 58367,\n", + " 3211,\n", + " 26803],\n", + " 790: [1030,\n", + " 3759,\n", + " 5109,\n", + " 3775,\n", + " 3964,\n", + " 3611,\n", + " 1881,\n", + " 1848,\n", + " 63237,\n", + " 8713],\n", + " 791: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n", + " 792: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 793: [33493, 780, 1200, 377, 1438, 788, 8644, 736, 1690, 4812],\n", + " 794: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n", + " 795: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 796: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788],\n", + " 797: [2513,\n", + " 2120,\n", + " 5022,\n", + " 4178,\n", + " 7178,\n", + " 2517,\n", + " 906,\n", + " 26788,\n", + " 26007,\n", + " 2118],\n", + " 798: [63113, 2989, 2990, 2376, 2991, 3633, 4005, 153, 7573, 3639],\n", + " 799: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 800: [6152, 7236, 3702, 2528, 4460, 6678, 4166, 2117, 1527, 1682],\n", + " 801: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102,\n", + " 6212],\n", + " 802: [3061,\n", + " 1734,\n", + " 7091,\n", + " 317,\n", + " 7058,\n", + " 34002,\n", + " 8734,\n", + " 34018,\n", + " 4763,\n", + " 2804],\n", + " 803: [5378, 33493, 2628, 1438, 788, 8644, 736, 1690, 4812, 2311],\n", + " 804: [1348,\n", + " 27850,\n", + " 2783,\n", + " 1694,\n", + " 3872,\n", + " 8194,\n", + " 4113,\n", + " 2454,\n", + " 2064,\n", + " 26306],\n", + " 805: [33493, 780, 1200, 1580, 377, 1584, 1438, 788, 736, 1690],\n", + " 806: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 807: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 808: [260, 5378, 33493, 780, 1200, 1580, 1584, 1438, 788, 8644],\n", + " 809: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n", + " 810: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 811: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n", + " 812: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 813: [63113, 2989, 7570, 2642, 2990, 2376, 2991, 3633, 4005, 153],\n", + " 814: [48161, 993, 930, 2178, 524, 904, 2186, 290, 43710, 2236],\n", + " 815: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n", + " 816: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 817: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 818: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 819: [5574, 27193, 8605, 2555, 3738, 1220, 237, 58, 3717, 1350],\n", + " 820: [2582,\n", + " 51277,\n", + " 5621,\n", + " 1429,\n", + " 2879,\n", + " 2880,\n", + " 3139,\n", + " 1867,\n", + " 5702,\n", + " 7113],\n", + " 821: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 822: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1881, 1848, 63237],\n", + " 823: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n", + " 824: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 825: [500, 58059, 1608, 8939, 4176, 2889, 2019, 3030, 4640, 7919],\n", + " 826: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n", + " 827: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 828: [3061,\n", + " 345,\n", + " 1734,\n", + " 7091,\n", + " 7058,\n", + " 34002,\n", + " 8734,\n", + " 34018,\n", + " 4763,\n", + " 2804],\n", + " 829: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 830: [5378, 33493, 780, 1200, 1584, 1438, 8644, 1690, 4812, 3699],\n", + " 831: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 832: [5378, 33493, 780, 1200, 1580, 377, 1584, 1438, 788, 8644],\n", + " 833: [1210, 1196, 5378, 33493, 1438, 8644, 736, 1690, 4812, 2311],\n", + " 834: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 835: [58059,\n", + " 1608,\n", + " 8939,\n", + " 1704,\n", + " 4176,\n", + " 2889,\n", + " 2019,\n", + " 3030,\n", + " 4640,\n", + " 7919],\n", + " 836: [4740, 7211, 5077, 7221, 838, 1148, 3454, 6501, 3501, 27509],\n", + " 837: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 838: [3643,\n", + " 3372,\n", + " 8789,\n", + " 6439,\n", + " 5208,\n", + " 3222,\n", + " 55402,\n", + " 63791,\n", + " 49688,\n", + " 53342],\n", + " 839: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 840: [3631,\n", + " 3786,\n", + " 5222,\n", + " 51666,\n", + " 5847,\n", + " 33136,\n", + " 4389,\n", + " 1897,\n", + " 1615,\n", + " 444],\n", + " 841: [33493, 1580, 377, 1438, 788, 8644, 736, 1690, 4812, 2311],\n", + " 842: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 843: [529, 951, 2330, 537, 26770, 6001, 7100, 4870, 3038, 5142],\n", + " 844: [5378, 33493, 2628, 1584, 1438, 788, 8644, 1690, 4812, 3699],\n", + " 846: [135, 5146, 248, 2810, 27731, 42217, 1537, 3484, 4850, 1717],\n", + " 847: [1196, 260, 5378, 33493, 2628, 1200, 1584, 1438, 788, 8644],\n", + " 848: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n", + " 849: [1261, 26915, 1215, 4105, 342, 8928, 256, 33834, 8874, 8225],\n", + " 851: [61352,\n", + " 6699,\n", + " 56719,\n", + " 27255,\n", + " 55726,\n", + " 1893,\n", + " 279,\n", + " 3192,\n", + " 4977,\n", + " 8619],\n", + " 852: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 853: [4740, 7211, 5077, 7221, 838, 1148, 3454, 6501, 3501, 27509],\n", + " 854: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 855: [350, 6296, 49282, 2546, 448, 1288, 6187, 6323, 7770, 1179],\n", + " 856: [63113,\n", + " 2989,\n", + " 7570,\n", + " 2642,\n", + " 2990,\n", + " 2376,\n", + " 2991,\n", + " 3633,\n", + " 2949,\n", + " 4005],\n", + " 857: [1210, 260, 5378, 33493, 780, 2628, 1584, 1438, 788, 8644],\n", + " 859: [33493, 1584, 1438, 788, 736, 1690, 4812, 3699, 2311, 6882],\n", + " 860: [5637,\n", + " 45664,\n", + " 46231,\n", + " 34499,\n", + " 52448,\n", + " 56028,\n", + " 60393,\n", + " 58367,\n", + " 3211,\n", + " 26803],\n", + " 861: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n", + " 862: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 863: [2249, 7438, 3833, 6874, 32019, 1785, 18, 3744, 27734, 1635],\n", + " 864: [500, 58059, 1608, 8939, 1704, 4176, 2889, 2019, 3030, 4640],\n", + " 865: [5378, 33493, 2628, 1200, 1580, 377, 1438, 788, 8644, 736],\n", + " 866: [3683, 4881, 5756, 33823, 2583, 76, 1732, 663, 7163, 1464],\n", + " 867: [1967, 6374, 6380, 1586, 29, 121, 943, 225, 351, 8516],\n", + " 868: [25766, 910, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494],\n", + " 869: [25766, 910, 116, 5231, 2136, 5682, 2937, 464, 7080, 2494],\n", + " 870: [61352,\n", + " 6699,\n", + " 56719,\n", + " 27255,\n", + " 55726,\n", + " 1893,\n", + " 3192,\n", + " 4977,\n", + " 8619,\n", + " 3570],\n", + " 871: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 872: [3061, 586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018],\n", + " 873: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 377, 1438],\n", + " 874: [34, 3619, 605, 1552, 5942, 6996, 5245, 457, 2023, 3512],\n", + " 875: [26782,\n", + " 5017,\n", + " 1416,\n", + " 7456,\n", + " 25951,\n", + " 3915,\n", + " 918,\n", + " 25999,\n", + " 7990,\n", + " 3425],\n", + " 876: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 878: [1210, 5378, 33493, 2628, 1580, 1584, 1438, 788, 8644, 1690],\n", + " 879: [4740, 7211, 5077, 7221, 838, 745, 3454, 6501, 3501, 27509],\n", + " 881: [26782,\n", + " 5017,\n", + " 1416,\n", + " 7456,\n", + " 25951,\n", + " 3915,\n", + " 918,\n", + " 25999,\n", + " 7990,\n", + " 3425],\n", + " 882: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 883: [39425,\n", + " 53883,\n", + " 4237,\n", + " 55071,\n", + " 3002,\n", + " 1446,\n", + " 6368,\n", + " 5137,\n", + " 246,\n", + " 1827],\n", + " 884: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 885: [586, 345, 1734, 7091, 317, 7058, 34002, 8734, 34018, 4763],\n", + " 886: [45981,\n", + " 26603,\n", + " 5556,\n", + " 5700,\n", + " 57473,\n", + " 5746,\n", + " 2338,\n", + " 2107,\n", + " 5691,\n", + " 5476],\n", + " 887: [1210, 1196, 260, 5378, 33493, 1200, 1438, 788, 8644, 736],\n", + " 888: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 889: [6952,\n", + " 3652,\n", + " 3970,\n", + " 3832,\n", + " 5980,\n", + " 27317,\n", + " 2159,\n", + " 5165,\n", + " 2460,\n", + " 8906],\n", + " 890: [104,\n", + " 59900,\n", + " 1777,\n", + " 2014,\n", + " 27830,\n", + " 60487,\n", + " 3979,\n", + " 1241,\n", + " 1022,\n", + " 6593],\n", + " 891: [6952,\n", + " 3652,\n", + " 3970,\n", + " 3832,\n", + " 5980,\n", + " 27317,\n", + " 2159,\n", + " 5165,\n", + " 2460,\n", + " 8906],\n", + " 892: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 893: [1210, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 894: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n", + " 895: [58059,\n", + " 1608,\n", + " 8939,\n", + " 1704,\n", + " 4176,\n", + " 2889,\n", + " 2019,\n", + " 3030,\n", + " 4640,\n", + " 7919],\n", + " 896: [4030, 2167, 2006, 1191, 6754, 8985, 6500, 7886, 2958, 5128],\n", + " 897: [6296, 49282, 2546, 448, 1288, 6187, 6323, 7770, 1179, 1449],\n", + " 898: [5378, 33493, 1200, 377, 1584, 1438, 788, 8644, 736, 4812],\n", + " 899: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 900: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 901: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1584],\n", + " 902: [4030, 2167, 2006, 1191, 6754, 8985, 70, 6500, 7886, 2958],\n", + " 903: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 904: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 905: [26782,\n", + " 5017,\n", + " 1416,\n", + " 7456,\n", + " 25951,\n", + " 3915,\n", + " 918,\n", + " 25999,\n", + " 7990,\n", + " 3425],\n", + " 906: [1302, 5644, 1940, 3100, 1393, 7771, 1943, 1929, 1942, 1937],\n", + " 907: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n", + " 908: [3643,\n", + " 3372,\n", + " 8789,\n", + " 6439,\n", + " 5208,\n", + " 3222,\n", + " 55402,\n", + " 63791,\n", + " 49688,\n", + " 53342],\n", + " 909: [500, 58059, 1608, 8939, 1704, 4176, 2889, 2019, 3030, 4640],\n", + " 910: [555, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1729, 1635],\n", + " 911: [5378, 33493, 780, 1200, 1580, 377, 1584, 788, 8644, 736],\n", + " 912: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 913: [6422,\n", + " 4033,\n", + " 40946,\n", + " 556,\n", + " 5008,\n", + " 8753,\n", + " 8375,\n", + " 4465,\n", + " 27912,\n", + " 1883],\n", + " 914: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 915: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 916: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n", + " 917: [2848, 1411, 7069, 3723, 3598, 2820, 497, 3719, 2011, 2622],\n", + " 918: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 8644],\n", + " 919: [4466,\n", + " 5252,\n", + " 64231,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237,\n", + " 46430,\n", + " 56700],\n", + " 920: [1210, 1196, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438],\n", + " 921: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1881, 1848, 63237],\n", + " 922: [1210, 1196, 260, 5378, 33493, 2628, 8644, 4812, 3699, 2311],\n", + " 923: [3683, 4881, 1394, 5756, 33823, 2583, 76, 1732, 7163, 1464],\n", + " 924: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 925: [555,\n", + " 1089,\n", + " 2249,\n", + " 7438,\n", + " 3833,\n", + " 6874,\n", + " 32019,\n", + " 1785,\n", + " 3744,\n", + " 27734],\n", + " 926: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 927: [1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584],\n", + " 928: [1200, 1438, 788, 8644, 1690, 4812, 3699, 2311, 6882, 3527],\n", + " 930: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 931: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 932: [1196, 5378, 33493, 2628, 1200, 1580, 1584, 1438, 788, 8644],\n", + " 933: [63113, 2989, 7570, 2642, 2376, 3633, 2949, 4005, 153, 3984],\n", + " 934: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 63237],\n", + " 935: [1210, 5378, 33493, 780, 1200, 1580, 1584, 1438, 788, 8644],\n", + " 936: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n", + " 937: [2848, 1411, 7069, 3723, 26, 3598, 2820, 497, 3719, 2011],\n", + " 938: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 939: [63113,\n", + " 2989,\n", + " 7570,\n", + " 2642,\n", + " 2990,\n", + " 2376,\n", + " 2991,\n", + " 3633,\n", + " 2949,\n", + " 4005],\n", + " 940: [3643,\n", + " 3372,\n", + " 8789,\n", + " 6439,\n", + " 5208,\n", + " 3222,\n", + " 55402,\n", + " 63791,\n", + " 49688,\n", + " 53342],\n", + " 941: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 942: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 943: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 945: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 946: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 947: [5378, 33493, 780, 1200, 1580, 377, 1584, 1438, 788, 8644],\n", + " 948: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 377, 1584],\n", + " 949: [33493, 2628, 1200, 1580, 1438, 788, 8644, 736, 1690, 4812],\n", + " 950: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n", + " 951: [3683,\n", + " 4881,\n", + " 1394,\n", + " 5756,\n", + " 33823,\n", + " 2583,\n", + " 1732,\n", + " 7163,\n", + " 1464,\n", + " 45028],\n", + " 952: [1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438, 788],\n", + " 953: [5378, 33493, 2628, 377, 1584, 1438, 788, 8644, 736, 1690],\n", + " 954: [5378, 33493, 2628, 1200, 1584, 1438, 788, 8644, 736, 1690],\n", + " 955: [63113,\n", + " 2989,\n", + " 7570,\n", + " 2642,\n", + " 2990,\n", + " 2376,\n", + " 2991,\n", + " 3633,\n", + " 2949,\n", + " 4005],\n", + " 956: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 957: [6374, 6380, 1586, 121, 943, 8337, 225, 351, 8516, 4808],\n", + " 958: [6952, 3652, 3970, 3832, 5980, 27317, 2159, 5165, 293, 2460],\n", + " 960: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n", + " 961: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1942],\n", + " 962: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n", + " 963: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 1584],\n", + " 964: [1753, 8807, 194, 4034, 7959, 4439, 4994, 410, 784, 1884],\n", + " 965: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 966: [2249, 3833, 6874, 32019, 1785, 18, 3744, 27734, 1635, 4164],\n", + " 967: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 968: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 969: [4740, 7211, 5077, 7221, 745, 1148, 3454, 6501, 3501, 27509],\n", + " 970: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 971: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 972: [393,\n", + " 1681,\n", + " 1111,\n", + " 2549,\n", + " 33819,\n", + " 59908,\n", + " 55020,\n", + " 8915,\n", + " 57536,\n", + " 1497],\n", + " 973: [555, 1089, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18],\n", + " 974: [5087,\n", + " 54193,\n", + " 6875,\n", + " 8302,\n", + " 8294,\n", + " 2675,\n", + " 6513,\n", + " 25993,\n", + " 50259,\n", + " 5842],\n", + " 975: [555, 1089, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n", + " 976: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 977: [39425,\n", + " 53883,\n", + " 4237,\n", + " 55071,\n", + " 3002,\n", + " 1446,\n", + " 6368,\n", + " 5137,\n", + " 1827,\n", + " 6677],\n", + " 978: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 979: [555, 296, 2249, 7438, 3833, 6874, 32019, 1785, 18, 3744],\n", + " 980: [1196, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n", + " 982: [1210, 1196, 5378, 33493, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 983: [48161, 993, 930, 2178, 2375, 904, 2186, 290, 43710, 47644],\n", + " 984: [6422, 4033, 40946, 556, 5008, 8753, 954, 8375, 4465, 27912],\n", + " 985: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 986: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 987: [1302, 5644, 1961, 1940, 3100, 1393, 7771, 1943, 1929, 1225],\n", + " 988: [33493, 377, 1438, 788, 8644, 736, 4812, 6882, 2193, 8810],\n", + " 989: [520, 7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619],\n", + " 990: [1266,\n", + " 2401,\n", + " 44168,\n", + " 5959,\n", + " 2921,\n", + " 3508,\n", + " 4945,\n", + " 54787,\n", + " 4785,\n", + " 7889],\n", + " 991: [1210, 5378, 33493, 780, 2628, 1580, 377, 1584, 1438, 788],\n", + " 992: [1210, 5378, 33493, 1200, 377, 1438, 788, 8644, 736, 1690],\n", + " 993: [1603,\n", + " 2364,\n", + " 45981,\n", + " 26603,\n", + " 5556,\n", + " 5700,\n", + " 57473,\n", + " 5746,\n", + " 2338,\n", + " 2107],\n", + " 994: [26782,\n", + " 5017,\n", + " 1416,\n", + " 7456,\n", + " 25951,\n", + " 3915,\n", + " 918,\n", + " 25999,\n", + " 7990,\n", + " 3425],\n", + " 995: [350, 6296, 49282, 2546, 448, 50, 1288, 6187, 6323, 7770],\n", + " 996: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 997: [597, 34, 1059, 3619, 605, 1552, 5942, 6996, 5245, 457],\n", + " 998: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 999: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 1001: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 1002: [7378, 6475, 4676, 4520, 4502, 6464, 4585, 542, 4619, 445],\n", + " 1003: [1513,\n", + " 45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102],\n", + " 1004: [5378,\n", + " 33493,\n", + " 1200,\n", + " 1584,\n", + " 1438,\n", + " 788,\n", + " 8644,\n", + " 1690,\n", + " 4812,\n", + " 3699],\n", + " 1005: [1196,\n", + " 5378,\n", + " 33493,\n", + " 2628,\n", + " 1200,\n", + " 1438,\n", + " 788,\n", + " 8644,\n", + " 1690,\n", + " 4812],\n", + " 1006: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 1007: [1302,\n", + " 5644,\n", + " 1961,\n", + " 1940,\n", + " 3100,\n", + " 1393,\n", + " 7771,\n", + " 1943,\n", + " 1929,\n", + " 1225],\n", + " 1008: [5378,\n", + " 33493,\n", + " 1438,\n", + " 788,\n", + " 8644,\n", + " 1690,\n", + " 4812,\n", + " 3699,\n", + " 2311,\n", + " 6882],\n", + " 1009: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n", + " 1011: [5378,\n", + " 33493,\n", + " 2628,\n", + " 1438,\n", + " 788,\n", + " 8644,\n", + " 1690,\n", + " 4812,\n", + " 3699,\n", + " 2311],\n", + " 1012: [1046,\n", + " 2550,\n", + " 1789,\n", + " 1103,\n", + " 1340,\n", + " 4722,\n", + " 4942,\n", + " 2665,\n", + " 47836,\n", + " 4518],\n", + " 1013: [5378, 33493, 2628, 1200, 1580, 1584, 1438, 788, 8644, 736],\n", + " 1014: [1348,\n", + " 27850,\n", + " 2783,\n", + " 1694,\n", + " 3872,\n", + " 8194,\n", + " 4113,\n", + " 2454,\n", + " 2064,\n", + " 26306],\n", + " 1015: [48161, 993, 930, 2178, 524, 2375, 2186, 290, 43710, 2236],\n", + " 1016: [1266,\n", + " 2401,\n", + " 44168,\n", + " 5959,\n", + " 2921,\n", + " 3508,\n", + " 4945,\n", + " 54787,\n", + " 4785,\n", + " 7889],\n", + " 1017: [260, 780, 1200, 1580, 377, 1584, 1438, 788, 8644, 736],\n", + " 1018: [1603,\n", + " 2364,\n", + " 45981,\n", + " 26603,\n", + " 5556,\n", + " 5700,\n", + " 57473,\n", + " 5746,\n", + " 1969,\n", + " 5691],\n", + " 1019: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 1020: [1046,\n", + " 2550,\n", + " 1789,\n", + " 1340,\n", + " 4722,\n", + " 4942,\n", + " 2665,\n", + " 47836,\n", + " 4518,\n", + " 2650],\n", + " 1021: [1030,\n", + " 3759,\n", + " 5109,\n", + " 3775,\n", + " 3964,\n", + " 3611,\n", + " 1025,\n", + " 1881,\n", + " 1848,\n", + " 63237],\n", + " 1022: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 1023: [1210, 5378, 33493, 780, 2628, 1200, 1580, 377, 1584, 1438],\n", + " 1025: [45221,\n", + " 4452,\n", + " 5802,\n", + " 1285,\n", + " 6807,\n", + " 1602,\n", + " 5439,\n", + " 6816,\n", + " 4102,\n", + " 6212],\n", + " 1026: [3061,\n", + " 345,\n", + " 1734,\n", + " 7091,\n", + " 7058,\n", + " 34002,\n", + " 8734,\n", + " 34018,\n", + " 4763,\n", + " 2432],\n", + " 1027: [1210, 1196, 260, 5378, 33493, 780, 2628, 1580, 377, 1584],\n", + " 1028: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 1029: [1385,\n", + " 4466,\n", + " 5252,\n", + " 64231,\n", + " 2540,\n", + " 27828,\n", + " 8593,\n", + " 6280,\n", + " 6757,\n", + " 60237],\n", + " 1030: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 377, 1584],\n", + " 1031: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 1032: [8749,\n", + " 6921,\n", + " 3134,\n", + " 7176,\n", + " 6649,\n", + " 8126,\n", + " 4046,\n", + " 7238,\n", + " 26151,\n", + " 6985],\n", + " 1033: [48161, 993, 930, 2178, 524, 2375, 904, 2186, 290, 43710],\n", + " 1034: [1210, 1196, 260, 5378, 780, 2628, 1200, 1580, 377, 1584],\n", + " 1035: [1210, 1196, 260, 5378, 33493, 2628, 1200, 377, 1584, 1438],\n", + " 1037: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 1038: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 1039: [4740,\n", + " 7211,\n", + " 5077,\n", + " 7221,\n", + " 838,\n", + " 3454,\n", + " 6501,\n", + " 3501,\n", + " 27509,\n", + " 1075],\n", + " 1040: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 1041: [596, 1030, 3759, 5109, 3775, 3964, 3611, 1025, 1881, 1848],\n", + " 1043: [1210, 1196, 260, 5378, 33493, 2628, 1200, 1580, 377, 1584],\n", + " 1044: [1196,\n", + " 5378,\n", + " 33493,\n", + " 2628,\n", + " 1200,\n", + " 1580,\n", + " 377,\n", + " 1584,\n", + " 1438,\n", + " 8644],\n", + " 1045: [262,\n", + " 180,\n", + " 1130,\n", + " 5335,\n", + " 60530,\n", + " 59290,\n", + " 27513,\n", + " 3012,\n", + " 4514,\n", + " 8025],\n", + " 1046: [1210, 1196, 260, 5378, 33493, 780, 2628, 1200, 1580, 377],\n", + " 1047: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 1048: [555, 1089, 2249, 3833, 32019, 1785, 18, 3744, 27734, 1729],\n", + " 1050: [104,\n", + " 59900,\n", + " 1777,\n", + " 2014,\n", + " 27830,\n", + " 60487,\n", + " 3979,\n", + " 1241,\n", + " 1022,\n", + " 6593],\n", + " 1051: [4740, 7211, 5077, 7221, 838, 745, 1148, 3454, 6501, 3501],\n", + " 1052: [1302,\n", + " 5644,\n", + " 1961,\n", + " 1940,\n", + " 3100,\n", + " 1393,\n", + " 7771,\n", + " 1943,\n", + " 1929,\n", + " 1225],\n", + " 1053: [5378, 780, 2628, 377, 1438, 788, 736, 1690, 4812, 3699]})" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from collections import defaultdict\n", + "from collections import Counter\n", + "\n", + "# 각 사용자에 대한 추천 리스트를 작성한다\n", + "# 사용자가 높게 평가한 영화가, 어떤 토픽에 많이 소속되어 있는지 카운트한다\n", + "# 가장 많은 토픽을 사용자가 좋아하는 토픽으로 간주하고, 해당 토픽의 영화를 추천한다\n", + "\n", + "movielens_train_high_rating = movielens_train[movielens_train.rating >= 4]\n", + "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", + "\n", + "movie_id2index = dict(zip(movie_content.movie_id.tolist(), range(len(movie_content))))\n", + "pred_user2items = defaultdict(list)\n", + "for user_id, data in movielens_train_high_rating.groupby(\"user_id\"):\n", + " # 사용자가 높이 평가한 영화\n", + " evaluated_movie_ids = user_evaluated_movies[user_id]\n", + " # 최근 열람한 영화를 얻는다\n", + " movie_ids = data.sort_values(\"timestamp\")[\"movie_id\"].tolist()[-10:]\n", + "\n", + " movie_indexes = [movie_id2index[id] for id in movie_ids]\n", + " \n", + " # 최근 열람한 영화의 토픽을 얻고, 풀현 횟수를 카운트한다\n", + " topic_counter = Counter([movie_topics[i] for i in movie_indexes])\n", + " # 가장 출현 횟수가 많았던 토픽을 얻는다\n", + " frequent_topic = topic_counter.most_common(1)[0][0]\n", + " # 해당 토픽의 영화 중에서도 점수가 높은 것을 추천한다\n", + " topic_movies = (\n", + " movie_content[movie_content.topic == frequent_topic]\n", + " .sort_values(\"topic_score\", ascending=False)\n", + " .movie_id.tolist()\n", + " )\n", + "\n", + " for movie_id in topic_movies:\n", + " if movie_id not in evaluated_movie_ids:\n", + " pred_user2items[user_id].append(movie_id)\n", + " if len(pred_user2items[user_id]) == 10:\n", + " break\n", + "pred_user2items" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "8d238322", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 175 + }, + "executionInfo": { + "elapsed": 10, + "status": "ok", + "timestamp": 1672118572986, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "8d238322", + "outputId": "68a428f8-984a-4fab-b1e3-8d24e4c5369a" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " user_id movie_id rating timestamp \\\n", + "4732 2 110 5.0 868245777 \n", + "5246 2 260 5.0 868244562 \n", + "5798 2 590 5.0 868245608 \n", + "8381 2 1210 4.0 868245644 \n", + "\n", + " title \\\n", + "4732 Braveheart (1995) \n", + "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", + "5798 Dances with Wolves (1990) \n", + "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", + "\n", + " genre \\\n", + "4732 [Action, Drama, War] \n", + "5246 [Action, Adventure, Sci-Fi] \n", + "5798 [Adventure, Drama, Western] \n", + "8381 [Action, Adventure, Sci-Fi] \n", + "\n", + " tag timestamp_rank \n", + "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", + "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", + "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", + "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 " + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2인 사용자가 학습 데이터에서 4 이상의 평가를 부여한 영화 목록\n", + "movielens_train_high_rating[movielens_train_high_rating.user_id==2]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "d6877799", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 143 + }, + "executionInfo": { + "elapsed": 9, + "status": "ok", + "timestamp": 1672118572986, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "d6877799", + "outputId": "6892e806-a4b2-4a5b-dfd9-da01db2f2d4a" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idtitlegenretag
7576Screamers (1995)[Action, Sci-Fi, Thriller][philip k. dick, artificial intelligence, post...
19222006Mask of Zorro, The (1998)[Action, Adventure, Romance][california, mexico, funny, banderas, anthony ...
20312115Indiana Jones and the Temple of Doom (1984)[Action, Adventure][lucas, want it, dvd collection, harrison ford...
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " movie_id title \\\n", + "75 76 Screamers (1995) \n", + "1922 2006 Mask of Zorro, The (1998) \n", + "2031 2115 Indiana Jones and the Temple of Doom (1984) \n", + "\n", + " genre \\\n", + "75 [Action, Sci-Fi, Thriller] \n", + "1922 [Action, Adventure, Romance] \n", + "2031 [Action, Adventure] \n", + "\n", + " tag \n", + "75 [philip k. dick, artificial intelligence, post... \n", + "1922 [california, mexico, funny, banderas, anthony ... \n", + "2031 [lucas, want it, dvd collection, harrison ford... " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2에 대한 추천(2115, 76, 2006)\n", + "movies[movies.movie_id.isin([2115, 76, 2006])]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "129f2877", + "metadata": { + "executionInfo": { + "elapsed": 8, + "status": "ok", + "timestamp": 1672118572986, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "129f2877" + }, + "outputs": [], + "source": [ + "# 여기에서는 각 사용자의 평가 이력으로부터 1개의 토픽을 픽업했지만, 토픽의 확률값을 사용해서 가중치를 주면서 아이템을 추출할 수도 있습니다." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "6a30f15c", + "metadata": { + "executionInfo": { + "elapsed": 9, + "status": "ok", + "timestamp": 1672118572987, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "6a30f15c" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "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.10.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/chapter5/colab/MF.ipynb b/chapter5/colab/MF.ipynb index 9c5ef59..2b63efc 100644 --- a/chapter5/colab/MF.ipynb +++ b/chapter5/colab/MF.ipynb @@ -1 +1,1980 @@ -{"cells":[{"cell_type":"markdown","id":"88a3be74","metadata":{"id":"88a3be74"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/MF.ipynb)"]},{"cell_type":"markdown","id":"47e2fec5","metadata":{"id":"47e2fec5"},"source":["# Matrix Factorization"]},{"cell_type":"code","execution_count":1,"id":"99e09acf","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"99e09acf","executionInfo":{"status":"ok","timestamp":1672119437385,"user_tz":-540,"elapsed":3804,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"294107d4-f398-41b9-a605-09d7c15bb44f"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:35:29-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 63.1MB/s in 1.0s \n","\n","2022-12-27 05:35:30 (63.1 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"179ce864","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"179ce864","executionInfo":{"status":"ok","timestamp":1672119502987,"user_tz":-540,"elapsed":65608,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"4e5a1760-788a-4246-e64d-8cda917e1a11"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"8c10d538","metadata":{"id":"8c10d538","executionInfo":{"status":"ok","timestamp":1672119502988,"user_tz":-540,"elapsed":28,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 인자 수\n","factors = 5\n","# 평가수 임곗값\n","minimum_num_rating = 100\n","# 바이어스 항 사용\n","use_biase = False\n","# 학습률\n","lr_all = 0.005\n","# 에폭 수\n","n_epochs = 50"]},{"cell_type":"code","execution_count":4,"id":"af591e1a","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"af591e1a","executionInfo":{"status":"ok","timestamp":1672119547233,"user_tz":-540,"elapsed":44271,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"f5f3025d-2ead-479f-c315-94433d318640"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting surprise\n"," Downloading surprise-0.1-py2.py3-none-any.whl (1.8 kB)\n","Collecting scikit-surprise\n"," Downloading scikit-surprise-1.1.3.tar.gz (771 kB)\n","\u001b[K |████████████████████████████████| 771 kB 4.8 MB/s \n","\u001b[?25hRequirement already satisfied: joblib>=1.0.0 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.2.0)\n","Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.21.6)\n","Requirement already satisfied: scipy>=1.3.2 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.7.3)\n","Building wheels for collected packages: scikit-surprise\n"," Building wheel for scikit-surprise (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for scikit-surprise: filename=scikit_surprise-1.1.3-cp38-cp38-linux_x86_64.whl size=2626477 sha256=a922027e3c7f6d8735b7192824bc8d1a46af450d003dde385ce514ec0ae33d2d\n"," Stored in directory: /root/.cache/pip/wheels/af/db/86/2c18183a80ba05da35bf0fb7417aac5cddbd93bcb1b92fd3ea\n","Successfully built scikit-surprise\n","Installing collected packages: scikit-surprise, surprise\n","Successfully installed scikit-surprise-1.1.3 surprise-0.1\n"]}],"source":["!pip install surprise"]},{"cell_type":"code","execution_count":5,"id":"735ff486","metadata":{"id":"735ff486","executionInfo":{"status":"ok","timestamp":1672119548405,"user_tz":-540,"elapsed":1188,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["from surprise import SVD, Reader\n","from surprise import Dataset as SurpriseDataset\n","\n","# 평가 수가 minimum_num_rating 건 이상 있는 영화로 줄인다\n","filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n"," lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n",")\n","\n","# Surprise용으로 데이터를 가공한다\n","reader = Reader(rating_scale=(0.5, 5))\n","data_train = SurpriseDataset.load_from_df(\n"," filtered_movielens_train[[\"user_id\", \"movie_id\", \"rating\"]], reader\n",").build_full_trainset()"]},{"cell_type":"code","execution_count":6,"id":"cbc512a3","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"cbc512a3","executionInfo":{"status":"ok","timestamp":1672119549729,"user_tz":-540,"elapsed":1327,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"b776c506-902c-4525-a5de-88ecc825e60b"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[""]},"metadata":{},"execution_count":6}],"source":["# Surprise로 행렬 분해를 학습한다\n","# 이름은 SVD지만, 특이값 분석이 아니라 Matrix Factorization가 실행된다\n","matrix_factorization = SVD(n_factors=factors, n_epochs=n_epochs, lr_all=lr_all, biased=use_biase)\n","matrix_factorization.fit(data_train)"]},{"cell_type":"code","execution_count":7,"id":"48876224","metadata":{"id":"48876224","executionInfo":{"status":"ok","timestamp":1672119549730,"user_tz":-540,"elapsed":13,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["from collections import defaultdict\n","\n","def get_top_n(predictions, n=10):\n"," # 각 사용자별로 예측된 아이템을 저장한다\n"," top_n = defaultdict(list)\n"," for uid, iid, true_r, est, _ in predictions:\n"," top_n[uid].append((iid, est))\n","\n"," # 사용자별로 아이템을 예측 평갓값 순으로 나열해 상위 n개를 저장한다\n"," for uid, user_ratings in top_n.items():\n"," user_ratings.sort(key=lambda x: x[1], reverse=True)\n"," top_n[uid] = [d[0] for d in user_ratings[:n]]\n","\n"," return top_n"]},{"cell_type":"code","execution_count":8,"id":"a2b23304","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"a2b23304","executionInfo":{"status":"ok","timestamp":1672119551833,"user_tz":-540,"elapsed":2114,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"2318faf1-5003-42d9-f6aa-bc551e8ab571"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {1: [110, 260, 590, 733, 802, 858, 1073, 1210, 1148, 1246],\n"," 22: [318, 260, 608, 1196, 912, 1234, 1213, 858, 904, 2959],\n"," 26: [260, 1210, 318, 527, 1196, 50, 593, 1234, 3578, 1704],\n"," 30: [1148, 912, 457, 3578, 1234, 2762, 1704, 3147, 1233, 2324],\n"," 34: [2324, 1148, 1234, 1207, 4306, 1233, 904, 497, 1247, 17],\n"," 38: [1380, 50, 920, 1036, 1234, 1210, 2324, 2081, 165, 589],\n"," 50: [260, 1207, 904, 2858, 1148, 4993, 1704, 5952, 912, 1233],\n"," 53: [318, 1233, 858, 912, 1193, 904, 2019, 4973, 4226, 1234],\n"," 54: [1210, 1380, 3578, 260, 1196, 1704, 527, 2324, 1234, 1198],\n"," 67: [2959, 1234, 1089, 858, 1213, 1036, 912, 4226, 1221, 1201],\n"," 71: [318, 260, 50, 593, 912, 1234, 527, 1196, 858, 904],\n"," 76: [1721, 597, 587, 3578, 356, 539, 780, 500, 527, 786],\n"," 88: [318, 1036, 50, 589, 1234, 3147, 2000, 457, 593, 733],\n"," 89: [593, 1234, 2959, 858, 912, 1213, 47, 4226, 1036, 1221],\n"," 94: [260, 1704, 1148, 4993, 1207, 2028, 17, 904, 2324, 2762],\n"," 95: [50, 260, 1196, 1210, 47, 1234, 1213, 2959, 4226, 1198],\n"," 100: [1199, 1206, 2019, 541, 1221, 750, 924, 1208, 923, 1219],\n"," 101: [3147, 3578, 1234, 1036, 919, 1242, 2000, 733, 1035, 2324],\n"," 102: [50, 260, 1196, 593, 1210, 1213, 2959, 1234, 4226, 1221],\n"," 103: [318, 1148, 1193, 858, 2858, 904, 912, 2571, 4226, 7153],\n"," 111: [50, 260, 1210, 1036, 47, 3578, 1196, 1234, 2571, 1198],\n"," 116: [1721, 1380, 920, 3578, 919, 527, 1704, 457, 2324, 832],\n"," 118: [260, 1196, 1210, 1234, 904, 5952, 4993, 912, 1704, 7153],\n"," 139: [50, 2542, 2692, 4011, 1200, 4226, 6874, 858, 1193, 1221],\n"," 143: [912, 1233, 1207, 2019, 908, 750, 1247, 1213, 1250, 1234],\n"," 144: [111, 1193, 908, 904, 2502, 1234, 1288, 923, 1225, 1247],\n"," 162: [318, 50, 593, 1234, 608, 912, 1213, 904, 4226, 2324],\n"," 172: [318, 260, 2571, 50, 1148, 527, 3578, 1234, 1198, 4993],\n"," 173: [3578, 1704, 2324, 1148, 2762, 2571, 4306, 2028, 3147, 4993],\n"," 187: [780, 3147, 587, 2396, 62, 11, 736, 1242, 733, 1641],\n"," 193: [3578, 1035, 919, 1234, 2324, 1704, 1036, 3147, 1242, 912],\n"," 208: [733, 780, 597, 919, 457, 3578, 1234, 1036, 2000, 3147],\n"," 210: [912, 50, 1234, 527, 858, 2324, 904, 919, 1193, 1207],\n"," 214: [318, 1207, 1233, 904, 2858, 1247, 2028, 912, 1288, 5952],\n"," 228: [3147, 733, 736, 2000, 802, 1610, 11, 786, 2706, 1242],\n"," 232: [2571, 7153, 5952, 4993, 2858, 1288, 1148, 1136, 4226, 1221],\n"," 236: [2959, 858, 1193, 1234, 1233, 1036, 4226, 4011, 1213, 912],\n"," 259: [318, 1036, 1240, 589, 1234, 380, 3578, 4011, 110, 1213],\n"," 260: [50, 318, 2959, 1234, 2571, 4226, 3578, 1213, 4011, 110],\n"," 267: [1148, 1213, 904, 36, 908, 4011, 912, 1197, 1304, 1250],\n"," 268: [1721, 1035, 919, 920, 1380, 1641, 3147, 2671, 1242, 3578],\n"," 271: [527, 3578, 1704, 356, 150, 318, 17, 2324, 590, 2762],\n"," 274: [527, 593, 608, 912, 50, 318, 904, 296, 1213, 4226],\n"," 281: [1234, 858, 912, 1233, 1193, 2959, 919, 904, 4973, 4226],\n"," 287: [318, 260, 2571, 50, 1148, 3578, 527, 1198, 4993, 1234],\n"," 292: [1219, 2019, 904, 908, 1199, 923, 1201, 1233, 1208, 778],\n"," 296: [260, 1234, 1196, 1148, 1198, 912, 1136, 1210, 608, 908],\n"," 303: [111, 1199, 2019, 923, 1208, 1148, 904, 1193, 1206, 908],\n"," 307: [4993, 1288, 7153, 1148, 5952, 2858, 318, 1136, 293, 4226],\n"," 310: [3578, 1210, 904, 150, 4306, 1148, 1233, 6539, 1242, 4226],\n"," 315: [1721, 494, 653, 1917, 2628, 1584, 3, 786, 832, 802],\n"," 320: [50, 1221, 1213, 318, 1201, 858, 608, 1234, 1198, 2019],\n"," 326: [260, 858, 1148, 527, 912, 1193, 904, 2858, 1233, 318],\n"," 332: [527, 912, 1207, 904, 919, 1233, 4973, 1394, 1035, 1247],\n"," 339: [260, 527, 50, 1234, 3578, 2571, 2324, 1210, 1196, 1704],\n"," 343: [318, 3578, 3147, 733, 1242, 1234, 2000, 1036, 527, 597],\n"," 355: [260, 1196, 1234, 4226, 1213, 527, 912, 2571, 858, 904],\n"," 364: [858, 912, 1234, 1233, 2959, 1193, 1213, 904, 4226, 4973],\n"," 365: [858, 912, 904, 1233, 318, 4973, 1394, 1207, 608, 919],\n"," 368: [1221, 1213, 1193, 318, 1233, 2858, 111, 1208, 904, 1222],\n"," 381: [260, 1148, 912, 1207, 1247, 1193, 2028, 2396, 3578, 904],\n"," 382: [527, 318, 1207, 1233, 1148, 904, 912, 1247, 1704, 2028],\n"," 383: [1219, 923, 1199, 1288, 904, 1094, 1394, 1136, 2019, 1080],\n"," 391: [1234, 50, 3578, 527, 1233, 1148, 3147, 2324, 1036, 912],\n"," 396: [858, 593, 608, 912, 1221, 1193, 50, 904, 296, 1213],\n"," 398: [1704, 318, 1210, 17, 2324, 3578, 1207, 6539, 919, 4993],\n"," 406: [318, 527, 1207, 912, 1233, 904, 1234, 919, 2324, 1148],\n"," 409: [780, 1917, 3578, 380, 2628, 733, 786, 2001, 2000, 3147],\n"," 410: [3147, 1148, 3578, 2762, 1233, 2000, 2396, 2028, 1230, 457],\n"," 416: [318, 912, 527, 919, 1207, 904, 1035, 1233, 1234, 4973],\n"," 418: [260, 1148, 1288, 5952, 7153, 527, 541, 923, 1199, 1196],\n"," 419: [2959, 1206, 6874, 2502, 7153, 223, 2019, 293, 1080, 1196],\n"," 421: [527, 1035, 1704, 1028, 17, 919, 364, 1721, 1207, 2324],\n"," 424: [1207, 1219, 1233, 4973, 1394, 111, 5952, 2019, 858, 1288],\n"," 426: [2502, 1374, 1242, 17, 1278, 2791, 1356, 112, 1376, 1073],\n"," 432: [912, 608, 904, 2858, 4973, 923, 1233, 858, 260, 1219],\n"," 434: [1288, 1148, 318, 17, 904, 34, 1207, 923, 509, 1358],\n"," 436: [260, 2571, 1234, 4226, 1213, 858, 1198, 1148, 1196, 912],\n"," 438: [4993, 7153, 50, 5952, 1288, 4226, 47, 1213, 6874, 527],\n"," 441: [260, 318, 527, 3578, 1210, 1704, 2571, 356, 1148, 4993],\n"," 446: [50, 260, 858, 4226, 2571, 1213, 1193, 1233, 1148, 1221],\n"," 452: [1036, 2959, 2000, 380, 1234, 589, 733, 919, 593, 1035],\n"," 456: [541, 1221, 2959, 2571, 1136, 4226, 858, 750, 2019, 1213],\n"," 459: [50, 2502, 1201, 1221, 223, 1206, 1213, 2692, 6, 1198],\n"," 460: [527, 50, 1234, 318, 3578, 260, 2324, 356, 912, 1036],\n"," 463: [1234, 1213, 4011, 912, 1148, 1304, 380, 919, 1247, 7153],\n"," 468: [260, 1196, 4993, 5952, 7153, 1210, 2571, 1288, 2858, 318],\n"," 469: [733, 858, 1252, 1288, 1207, 1247, 1193, 50, 904, 1617],\n"," 472: [1721, 919, 527, 1207, 2324, 3578, 500, 2396, 1246, 920],\n"," 476: [1193, 858, 904, 912, 1288, 1247, 1213, 111, 908, 1207],\n"," 480: [111, 1089, 1213, 923, 908, 778, 1208, 1233, 1201, 1193],\n"," 482: [1233, 1222, 912, 1230, 2019, 4973, 1252, 750, 2692, 904],\n"," 493: [912, 904, 1234, 593, 1196, 1207, 1233, 919, 1148, 1247],\n"," 494: [2959, 2502, 2542, 1206, 858, 1200, 1221, 2997, 2692, 1201],\n"," 496: [260, 1196, 318, 50, 527, 1234, 1198, 1704, 110, 2324],\n"," 501: [527, 1207, 318, 904, 1233, 2324, 1247, 4973, 2858, 1035],\n"," 504: [1233, 1148, 904, 1193, 2858, 912, 1247, 1207, 858, 1288],\n"," 505: [527, 1704, 3578, 2324, 1207, 1234, 919, 1148, 904, 912],\n"," 511: [527, 318, 1704, 356, 260, 3578, 2324, 919, 1035, 17],\n"," 516: [1233, 1193, 912, 904, 1148, 1247, 1252, 1207, 50, 923],\n"," 525: [260, 1210, 1196, 527, 50, 356, 1704, 3578, 2324, 1234],\n"," 530: [912, 919, 1035, 1207, 593, 1234, 904, 4973, 527, 1394],\n"," 531: [527, 1207, 919, 1035, 2324, 912, 1704, 2396, 1233, 904],\n"," 533: [1213, 111, 2329, 4011, 58, 778, 1090, 2194, 4995, 150],\n"," 536: [527, 318, 1704, 2324, 1207, 3578, 919, 356, 1035, 590],\n"," 543: [2028, 1234, 1233, 1288, 36, 1242, 497, 4011, 1250, 2329],\n"," 547: [260, 1210, 1196, 1704, 318, 4993, 5952, 17, 2571, 7153],\n"," 549: [912, 919, 1035, 1207, 527, 1233, 904, 1234, 4973, 364],\n"," 553: [858, 541, 778, 1206, 1221, 1193, 1732, 4226, 1089, 1200],\n"," 556: [260, 1196, 1210, 5952, 4993, 7153, 2571, 608, 1198, 1704],\n"," 558: [1233, 4973, 904, 919, 1193, 1250, 2019, 908, 1225, 750],\n"," 562: [1035, 1721, 919, 1380, 920, 2000, 1101, 3147, 2706, 786],\n"," 567: [780, 786, 733, 2000, 1917, 3147, 1721, 2001, 802, 3578],\n"," 571: [296, 608, 2019, 912, 1213, 750, 1233, 1193, 2959, 111],\n"," 572: [318, 1148, 36, 3578, 1036, 1233, 1704, 2019, 1225, 1304],\n"," 577: [356, 1036, 2959, 919, 47, 3578, 2324, 1213, 1380, 110],\n"," 581: [912, 1233, 904, 1207, 4973, 858, 2858, 1247, 923, 1193],\n"," 585: [1221, 4973, 1233, 1208, 4226, 2502, 3897, 2542, 1250, 7153],\n"," 593: [1210, 260, 1196, 1036, 2571, 1240, 1198, 3578, 1234, 2959],\n"," 601: [1035, 2324, 1704, 3578, 1234, 590, 1207, 6539, 50, 4306],\n"," 604: [2959, 2502, 1221, 1089, 2542, 1200, 1201, 1206, 1213, 541],\n"," 605: [593, 1213, 912, 1221, 858, 1234, 4226, 904, 2019, 2959],\n"," 609: [1234, 912, 260, 2324, 904, 919, 1233, 1207, 858, 3578],\n"," 628: [1234, 527, 50, 3578, 593, 2324, 260, 912, 1148, 1233],\n"," 629: [260, 4993, 318, 2571, 7153, 1148, 5952, 1288, 527, 2858],\n"," 634: [527, 3578, 50, 1234, 296, 318, 2324, 1704, 1213, 912],\n"," 645: [3147, 1193, 1233, 858, 2959, 1036, 2692, 733, 4011, 1242],\n"," 650: [111, 912, 923, 1221, 1136, 2959, 296, 1213, 1233, 750],\n"," 656: [527, 3578, 260, 1704, 2324, 1148, 1234, 2762, 2571, 2028],\n"," 657: [1394, 1199, 2019, 1233, 750, 1136, 1080, 1288, 1222, 1148],\n"," 669: [527, 3578, 919, 1035, 2324, 1234, 1704, 1207, 912, 260],\n"," 678: [3578, 2571, 47, 2324, 1704, 1148, 4011, 2000, 4226, 36],\n"," 683: [3147, 318, 50, 1240, 457, 4011, 2959, 1234, 2706, 1610],\n"," 688: [1288, 1221, 1208, 223, 293, 1148, 3996, 1079, 318, 1197],\n"," 689: [527, 912, 1207, 904, 919, 1234, 1233, 4973, 1035, 260],\n"," 693: [1035, 919, 912, 1207, 1233, 1234, 904, 4973, 2324, 1242],\n"," 701: [858, 912, 2959, 1233, 4973, 318, 593, 1193, 1234, 919],\n"," 716: [5952, 111, 1288, 7153, 4993, 923, 1136, 1208, 1219, 1080],\n"," 719: [3147, 1233, 1641, 2396, 919, 2706, 1242, 1035, 1230, 912],\n"," 720: [1233, 3147, 858, 1193, 912, 1242, 1234, 1230, 2959, 1222],\n"," 734: [527, 318, 3578, 2324, 1704, 150, 912, 904, 1148, 2762],\n"," 735: [318, 260, 1196, 1234, 527, 1210, 912, 1198, 1213, 2324],\n"," 739: [296, 2502, 858, 1036, 1234, 318, 1213, 1201, 1220, 4011],\n"," 745: [1234, 912, 919, 2324, 356, 4973, 904, 1201, 1304, 2019],\n"," 755: [858, 1233, 912, 2019, 1193, 750, 4973, 904, 1221, 2858],\n"," 758: [527, 1704, 17, 356, 260, 3578, 318, 1210, 2324, 1028],\n"," 767: [1193, 50, 1233, 1234, 1148, 4226, 2959, 912, 4011, 1213],\n"," 769: [260, 1196, 4993, 1210, 5952, 7153, 2571, 1288, 1148, 2858],\n"," 775: [260, 1210, 1148, 1288, 5952, 6539, 7153, 527, 1207, 1196],\n"," 785: [858, 2959, 1234, 912, 1213, 1193, 4226, 1233, 904, 1221],\n"," 786: [589, 293, 2692, 1148, 380, 4993, 7153, 1288, 296, 36],\n"," 789: [260, 1210, 1704, 3578, 17, 1196, 2324, 4993, 6539, 2571],\n"," 792: [527, 260, 1704, 4993, 1148, 3578, 17, 2571, 2028, 1210],\n"," 795: [260, 2571, 1196, 1221, 4226, 1213, 2959, 7153, 858, 1136],\n"," 798: [36, 4011, 1233, 2329, 223, 163, 1358, 1997, 4027, 16],\n"," 799: [919, 1035, 1234, 2324, 912, 3578, 260, 1207, 1704, 50],\n"," 802: [2571, 3578, 1036, 2000, 1148, 1240, 3147, 1917, 2001, 1291],\n"," 806: [1207, 912, 1233, 904, 2396, 1247, 923, 919, 4973, 1394],\n"," 807: [260, 858, 527, 593, 912, 50, 1234, 1213, 4226, 2324],\n"," 816: [527, 1721, 2396, 62, 1207, 1584, 539, 919, 597, 500],\n"," 827: [260, 1148, 527, 904, 4993, 318, 2858, 2571, 7153, 1196],\n"," 828: [356, 539, 920, 1035, 1380, 1721, 786, 919, 1101, 3578],\n"," 846: [2959, 858, 1193, 2542, 2502, 1233, 1036, 1234, 4011, 3147],\n"," 859: [50, 1221, 47, 1213, 608, 318, 1201, 750, 1234, 2502],\n"," 862: [1035, 1721, 919, 1028, 1207, 62, 590, 2324, 2396, 920],\n"," 870: [50, 260, 1234, 2571, 3578, 1148, 1198, 2324, 4226, 1036],\n"," 876: [1035, 919, 912, 1207, 1234, 364, 904, 2324, 1233, 4973],\n"," 881: [1035, 1380, 919, 920, 2324, 1234, 1210, 3578, 1704, 260],\n"," 885: [912, 4973, 1234, 1233, 2858, 4226, 1394, 923, 750, 2324],\n"," 886: [7153, 1148, 4993, 5952, 4226, 4011, 111, 6874, 1291, 1213],\n"," 889: [1148, 318, 1233, 527, 4993, 1288, 2762, 2028, 1247, 2858],\n"," 890: [380, 165, 318, 3147, 1148, 2001, 36, 1610, 1270, 1198],\n"," 891: [1288, 111, 1136, 1221, 1148, 750, 2019, 1213, 1199, 1208],\n"," 896: [912, 1219, 1394, 4973, 904, 858, 2019, 111, 2858, 923],\n"," 897: [1233, 912, 318, 858, 1193, 904, 4973, 1207, 1247, 1234],\n"," 898: [527, 318, 1148, 1704, 3578, 4993, 2762, 2028, 2324, 1207],\n"," 908: [1148, 593, 912, 1207, 1225, 1247, 1193, 3578, 50, 904],\n"," 922: [1242, 733, 2000, 919, 457, 1234, 1233, 1035, 1036, 2324],\n"," 930: [919, 1207, 1233, 1035, 912, 3147, 2396, 1242, 3578, 2324],\n"," 938: [3578, 50, 1234, 1036, 356, 527, 2324, 3147, 919, 1198],\n"," 956: [1196, 1210, 2959, 260, 6874, 1240, 1089, 223, 1201, 2571],\n"," 958: [1394, 912, 1035, 919, 4973, 608, 364, 1207, 1073, 904],\n"," 968: [527, 912, 1207, 904, 919, 1233, 1234, 2324, 1247, 1035],\n"," 977: [5952, 7153, 4993, 2997, 2019, 1219, 1233, 4034, 3996, 3897],\n"," 987: [1721, 1035, 919, 597, 539, 2396, 1641, 3147, 500, 1242],\n"," 990: [608, 912, 1394, 1035, 858, 2959, 4973, 919, 1089, 1234],\n"," 996: [1233, 912, 1207, 904, 1193, 1247, 2396, 858, 4973, 919],\n"," 1004: [527, 3578, 1234, 2324, 1148, 912, 1036, 1704, 919, 1233],\n"," 1005: [1148,\n"," 4993,\n"," 1704,\n"," 2028,\n"," 3578,\n"," 2762,\n"," 2571,\n"," 1288,\n"," 1207,\n"," 7153],\n"," 1008: [1234, 1213, 1233, 904, 2019, 1089, 750, 4011, 908, 2324],\n"," 1029: [2959, 1036, 589, 1240, 2502, 2542, 1234, 4011, 1213, 1089],\n"," 1037: [858, 1233, 912, 1193, 318, 904, 4973, 2019, 750, 4226],\n"," 1050: [260, 2571, 7153, 5952, 4993, 1288, 541, 2858, 1136, 1196],\n"," 4: [356, 260, 1210, 527, 1196, 3578, 1704, 17, 318, 2324],\n"," 8: [296, 2502, 2692, 1221, 318, 1201, 1213, 750, 1193, 1288],\n"," 18: [50, 4226, 1221, 1200, 293, 2692, 1213, 6874, 858, 1148],\n"," 36: [318, 1234, 912, 47, 1193, 2542, 4973, 1233, 1035, 1201],\n"," 47: [380, 1234, 356, 47, 2000, 457, 3147, 2324, 6, 1304],\n"," 59: [527, 260, 1704, 1207, 1148, 2324, 904, 912, 1234, 3578],\n"," 62: [356, 1035, 3578, 919, 1234, 2324, 457, 50, 1036, 527],\n"," 77: [318, 3578, 50, 1234, 260, 2324, 1210, 1704, 1036, 919],\n"," 79: [858, 912, 2959, 1221, 1213, 2019, 4973, 750, 4226, 1089],\n"," 80: [1233, 858, 1193, 912, 1234, 904, 1148, 4226, 4973, 1247],\n"," 119: [912, 50, 1234, 919, 904, 4973, 1233, 527, 608, 1207],\n"," 122: [541, 912, 923, 1199, 1219, 908, 1233, 750, 924, 2019],\n"," 125: [1201, 1288, 778, 1617, 908, 1304, 2329, 1090, 1234, 1252],\n"," 126: [4973, 908, 1035, 2019, 1233, 17, 750, 58, 551, 1199],\n"," 132: [912, 1234, 919, 1233, 858, 50, 1035, 1193, 1207, 904],\n"," 141: [3578, 318, 1704, 150, 2324, 919, 1035, 1234, 260, 1721],\n"," 154: [318, 4226, 858, 1234, 1221, 4011, 1233, 1136, 7153, 2019],\n"," 155: [1233, 912, 2019, 904, 4973, 1234, 4226, 750, 1221, 1222],\n"," 163: [2571, 2959, 1200, 541, 1206, 6874, 1240, 1221, 293, 7153],\n"," 164: [1233, 858, 912, 1193, 4973, 904, 1234, 1222, 1207, 919],\n"," 170: [1221, 6874, 1200, 1201, 1213, 2502, 541, 1089, 260, 589],\n"," 171: [912, 919, 1035, 364, 1207, 1234, 1233, 1242, 2324, 593],\n"," 176: [318, 527, 1207, 260, 904, 912, 1233, 1148, 2324, 1704],\n"," 182: [260, 1148, 904, 1233, 1584, 1035, 1288, 1198, 1252, 1210],\n"," 190: [527, 1288, 17, 1704, 2858, 1148, 34, 509, 318, 1358],\n"," 197: [2959, 296, 912, 2502, 608, 4973, 2019, 1222, 593, 1213],\n"," 198: [1233, 2019, 4973, 904, 908, 4011, 1201, 2542, 1198, 1247],\n"," 199: [527, 1035, 919, 318, 1207, 1704, 2324, 364, 356, 1028],\n"," 212: [2858, 2502, 1222, 1233, 2542, 3897, 1230, 1079, 1247, 4011],\n"," 221: [2959, 1240, 1234, 3578, 4011, 2542, 3147, 6, 2502, 4226],\n"," 223: [356, 364, 110, 260, 858, 1210, 1148, 1246, 1252, 1288],\n"," 226: [912, 1193, 2959, 1233, 2019, 4973, 750, 1252, 1230, 1247],\n"," 241: [2959, 858, 296, 50, 1193, 912, 2502, 1233, 318, 2542],\n"," 247: [1035, 919, 318, 3578, 1234, 2324, 1721, 1380, 527, 3147],\n"," 249: [858, 1234, 1233, 912, 1193, 904, 260, 1148, 2019, 1221],\n"," 254: [7153, 4226, 2019, 1213, 4993, 1148, 608, 1198, 1201, 904],\n"," 264: [318, 912, 260, 904, 858, 608, 527, 1234, 1233, 4973],\n"," 273: [1234, 1233, 912, 1193, 858, 904, 1148, 1207, 1242, 919],\n"," 275: [1219, 1394, 912, 4973, 858, 923, 2019, 1221, 908, 1213],\n"," 276: [1221, 2019, 1148, 1233, 908, 904, 1201, 1230, 912, 1266],\n"," 293: [527, 356, 3578, 2324, 1234, 919, 1035, 1704, 260, 50],\n"," 294: [2959, 593, 1213, 858, 1234, 1036, 1089, 1221, 4226, 1240],\n"," 295: [858, 912, 904, 1233, 318, 4973, 1193, 1250, 593, 923],\n"," 318: [1288, 1094, 1233, 1207, 924, 1199, 1358, 1219, 908, 1252],\n"," 321: [318, 527, 919, 912, 1207, 1035, 1234, 2324, 904, 1233],\n"," 345: [318, 50, 858, 1233, 4226, 1213, 1221, 912, 2019, 1148],\n"," 346: [3147, 733, 2000, 1242, 1233, 318, 1036, 1193, 858, 589],\n"," 348: [1234, 260, 1233, 912, 904, 1136, 1247, 908, 1225, 2324],\n"," 349: [260, 1704, 1210, 1196, 4993, 1148, 2324, 5952, 3578, 7153],\n"," 354: [527, 1207, 919, 2324, 260, 1234, 904, 1233, 1035, 1148],\n"," 359: [608, 111, 1394, 1199, 2019, 912, 1221, 858, 904, 1208],\n"," 366: [1233, 318, 1193, 1148, 912, 858, 904, 1247, 1230, 1207],\n"," 369: [2571, 50, 1240, 260, 47, 1210, 1036, 589, 6874, 1196],\n"," 384: [3578, 527, 1704, 260, 380, 2324, 1210, 1148, 2762, 2571],\n"," 390: [1221, 912, 2019, 750, 1233, 1089, 908, 541, 111, 1222],\n"," 392: [858, 912, 1233, 2019, 2858, 904, 608, 1193, 4973, 750],\n"," 403: [2959, 858, 912, 2019, 608, 4973, 1221, 1213, 1193, 1089],\n"," 407: [318, 36, 293, 1288, 4011, 4226, 1193, 3147, 527, 2858],\n"," 414: [858, 1193, 2502, 1222, 2019, 1233, 750, 1221, 2542, 912],\n"," 431: [858, 912, 1234, 1233, 904, 1193, 593, 527, 1207, 4226],\n"," 454: [260, 527, 1210, 318, 1196, 1704, 3578, 4993, 2324, 356],\n"," 465: [912, 2019, 750, 1394, 1233, 904, 541, 1199, 1201, 1136],\n"," 481: [1193, 1233, 1234, 1148, 750, 1222, 2692, 1247, 4973, 3147],\n"," 485: [2019, 750, 912, 4973, 2502, 1233, 1206, 2542, 1394, 1201],\n"," 503: [260, 50, 1196, 608, 1210, 1234, 912, 47, 904, 1089],\n"," 513: [7153, 5952, 4993, 4226, 4973, 3897, 1358, 1250, 235, 1213],\n"," 517: [260, 1210, 1196, 593, 527, 1234, 2571, 1198, 1213, 5952],\n"," 545: [1199, 1230, 912, 908, 1234, 1148, 1997, 1250, 36, 3147],\n"," 552: [260, 47, 2571, 1221, 593, 1196, 1240, 1198, 1036, 858],\n"," 554: [260, 1196, 1288, 1199, 1210, 1136, 541, 923, 1080, 1221],\n"," 555: [1036, 1221, 36, 1304, 2692, 541, 2324, 1200, 904, 6],\n"," 561: [50, 293, 318, 1198, 1148, 1288, 223, 36, 1136, 1221],\n"," 565: [318, 527, 1234, 912, 1233, 50, 2324, 904, 593, 260],\n"," 591: [1233, 2396, 1230, 912, 1193, 858, 1252, 1073, 4973, 3897],\n"," 617: [1704, 4993, 3578, 318, 2571, 2028, 2628, 2762, 5952, 1288],\n"," 621: [1233, 2542, 1080, 1278, 4011, 2329, 2692, 3897, 1387, 7153],\n"," 622: [858, 1148, 1193, 3578, 50, 1234, 1233, 4226, 1036, 912],\n"," 623: [1233, 912, 858, 1193, 50, 904, 1234, 1148, 4226, 2858],\n"," 633: [1199, 4973, 924, 2997, 1080, 778, 1247, 1079, 2329, 1148],\n"," 636: [2858, 1234, 1247, 4226, 1288, 1207, 1230, 36, 1252, 1242],\n"," 638: [1148, 4993, 1704, 2571, 7153, 1288, 2028, 5952, 2858, 2762],\n"," 641: [356, 3578, 50, 1210, 260, 527, 1234, 2324, 110, 1196],\n"," 646: [318, 50, 260, 1234, 527, 912, 858, 4226, 904, 1213],\n"," 654: [919, 527, 1035, 912, 1234, 2324, 1207, 904, 50, 3578],\n"," 655: [527, 593, 912, 3578, 50, 1234, 2324, 4226, 904, 1233],\n"," 658: [50, 858, 318, 1221, 1213, 1193, 2019, 750, 541, 2502],\n"," 660: [1233, 1207, 923, 912, 1247, 1148, 2396, 1252, 1230, 1250],\n"," 661: [50, 2571, 1148, 1036, 1193, 1234, 4226, 858, 1233, 4011],\n"," 677: [1207, 912, 904, 1233, 2324, 260, 1148, 1234, 919, 1247],\n"," 714: [912, 1234, 1233, 593, 1207, 1193, 1247, 1250, 1213, 1242],\n"," 715: [2959, 858, 1221, 50, 541, 2019, 750, 1193, 1213, 4226],\n"," 723: [912, 858, 4973, 1394, 904, 593, 1207, 2019, 919, 1234],\n"," 731: [3578, 50, 1148, 1234, 1198, 3147, 457, 4993, 4306, 36],\n"," 742: [1233, 1193, 1288, 1230, 36, 858, 904, 2692, 1252, 527],\n"," 743: [527, 318, 3578, 260, 1210, 1704, 2324, 1035, 110, 593],\n"," 752: [912, 318, 858, 4973, 904, 1233, 608, 2019, 1193, 593],\n"," 772: [1394, 912, 1219, 904, 858, 923, 318, 2019, 1207, 908],\n"," 780: [3578, 912, 919, 904, 1207, 1704, 1035, 1148, 4226, 1247],\n"," 788: [1234, 912, 919, 1233, 1193, 1213, 296, 904, 1035, 4973],\n"," 814: [858, 1193, 912, 1222, 4973, 1230, 1252, 2019, 904, 750],\n"," 823: [593, 50, 318, 1234, 356, 2324, 919, 527, 47, 3578],\n"," 826: [1148, 1199, 2692, 2502, 293, 36, 1247, 1198, 1225, 1266],\n"," 833: [1233, 1193, 904, 2019, 912, 4226, 7153, 50, 1247, 4973],\n"," 838: [2019, 1394, 750, 1199, 1221, 924, 1222, 1080, 1250, 1252],\n"," 842: [858, 1148, 527, 912, 919, 1207, 1247, 1193, 904, 1234],\n"," 852: [50, 3578, 1234, 1036, 260, 110, 527, 1210, 2324, 1704],\n"," 878: [2858, 7153, 1148, 5952, 4993, 1233, 2571, 4226, 1617, 2997],\n"," 887: [260, 858, 1148, 1252, 1288, 5952, 7153, 111, 527, 541],\n"," 895: [527, 1704, 3578, 1721, 318, 17, 2324, 62, 587, 1584],\n"," 899: [318, 50, 858, 260, 1233, 1234, 912, 1193, 4226, 1148],\n"," 902: [912, 1234, 1233, 4973, 904, 1221, 2019, 919, 908, 2324],\n"," 907: [1233, 1193, 1148, 858, 904, 912, 2858, 1247, 1230, 4226],\n"," 928: [912, 1233, 904, 858, 2019, 1207, 111, 1394, 1247, 1219],\n"," 936: [318, 1234, 1213, 2324, 904, 1304, 1148, 750, 908, 1250],\n"," 964: [1233, 912, 904, 4973, 1234, 1207, 1247, 1148, 1250, 1252],\n"," 970: [858, 912, 1073, 1233, 919, 1035, 2959, 104, 4973, 2791],\n"," 972: [260, 1234, 1148, 912, 904, 1233, 50, 1198, 919, 1250],\n"," 988: [7153, 1221, 908, 36, 6874, 4034, 1732, 1222, 4027, 2329],\n"," 1001: [318, 527, 912, 919, 1234, 260, 1207, 2324, 1035, 904],\n"," 1013: [1233, 1193, 1230, 1148, 912, 1252, 1247, 904, 3147, 1207],\n"," 1018: [50, 1221, 1213, 858, 2019, 750, 1193, 1201, 912, 1234],\n"," 1020: [912, 1230, 2959, 3147, 1233, 318, 1090, 1242, 2692, 2542],\n"," 1028: [260, 1210, 527, 1196, 3578, 1704, 318, 2324, 17, 110],\n"," 1031: [50, 1234, 318, 912, 858, 1233, 1193, 2959, 4226, 1213],\n"," 1035: [2502, 2542, 50, 1625, 6, 1220, 1234, 1201, 4011, 1278],\n"," 1038: [1148, 150, 527, 912, 1207, 1247, 2396, 904, 1234, 2762],\n"," 1045: [1035, 1234, 4973, 608, 1394, 904, 1207, 1233, 908, 1250],\n"," 1046: [318, 3578, 1234, 1036, 50, 527, 2324, 3147, 919, 1242],\n"," 35: [2997, 858, 231, 2019, 924, 1221, 1199, 541, 1193, 2502],\n"," 72: [318, 50, 2571, 1036, 1234, 1148, 1193, 858, 1233, 4226],\n"," 91: [1233, 111, 1199, 2019, 858, 4973, 1252, 7153, 5952, 908],\n"," 106: [1721, 597, 539, 587, 3147, 500, 62, 2396, 150, 3578],\n"," 128: [260, 858, 1148, 1288, 5952, 7153, 608, 912, 923, 1207],\n"," 158: [260, 318, 2571, 1196, 4226, 7153, 1213, 1221, 1198, 1148],\n"," 160: [47, 111, 541, 593, 608, 912, 1219, 1221, 1193, 50],\n"," 175: [1207, 908, 1247, 1199, 1148, 3897, 1230, 1073, 2324, 1242],\n"," 196: [3578, 1148, 1704, 3147, 733, 2762, 2324, 50, 4993, 36],\n"," 203: [2959, 858, 3578, 4011, 4226, 1193, 912, 3147, 2571, 1233],\n"," 206: [858, 923, 1199, 1207, 1247, 1193, 2858, 1233, 1394, 2019],\n"," 207: [2858, 1288, 7153, 5952, 4993, 111, 260, 1148, 1136, 2571],\n"," 215: [527, 2329, 3147, 1246, 58, 1090, 337, 1035, 1201, 509],\n"," 255: [50, 1234, 3578, 1036, 2324, 527, 260, 1198, 47, 919],\n"," 265: [356, 597, 527, 150, 1704, 587, 318, 2000, 457, 3147],\n"," 340: [1380, 3578, 2959, 2324, 920, 858, 1968, 2081, 4011, 1304],\n"," 404: [3578, 1036, 1234, 50, 3147, 593, 1242, 733, 2000, 2324],\n"," 433: [1148, 1233, 318, 2858, 1288, 1193, 2571, 7153, 4993, 904],\n"," 440: [1234, 912, 1233, 919, 904, 4973, 4011, 2324, 2019, 1250],\n"," 444: [318, 3578, 527, 1234, 2324, 1704, 1148, 3147, 150, 260],\n"," 450: [912, 1234, 2324, 1035, 2019, 923, 1704, 1247, 364, 1250],\n"," 479: [260, 1196, 5952, 1210, 7153, 4993, 1219, 1288, 1221, 904],\n"," 491: [2997, 541, 1193, 750, 1233, 2502, 296, 1208, 924, 1732],\n"," 506: [2858, 7153, 1221, 2019, 5952, 2571, 4226, 4993, 1233, 904],\n"," 523: [2858, 1233, 904, 912, 1148, 111, 2019, 923, 7153, 1288],\n"," 539: [260, 1207, 904, 912, 1219, 923, 2858, 17, 1196, 1704],\n"," 541: [7153, 318, 4993, 5952, 1148, 4226, 111, 904, 1233, 2019],\n"," 616: [1234, 2324, 919, 912, 1704, 1035, 904, 1207, 1196, 1233],\n"," 647: [3147, 2000, 597, 2706, 587, 539, 1242, 3578, 104, 1036],\n"," 659: [1148, 1288, 1233, 904, 1193, 2028, 2019, 750, 50, 36],\n"," 695: [1233, 2858, 904, 1193, 4993, 1247, 1288, 2762, 1207, 7153],\n"," 700: [260, 50, 296, 1196, 2571, 1210, 4226, 1213, 1221, 7153],\n"," 707: [260, 318, 1196, 1210, 4993, 5952, 1148, 7153, 3578, 904],\n"," 748: [260, 593, 1234, 1196, 1210, 3578, 1198, 2324, 2571, 296],\n"," 759: [296, 2959, 50, 47, 593, 1089, 1221, 1213, 318, 608],\n"," 784: [912, 1233, 1193, 904, 4973, 111, 908, 1199, 1222, 1247],\n"," 790: [1233, 1148, 1207, 912, 2762, 1193, 2028, 2324, 3578, 2858],\n"," 835: [858, 111, 608, 912, 923, 1199, 1221, 1193, 904, 908],\n"," 844: [318, 527, 1704, 50, 2324, 1234, 150, 1148, 733, 4306],\n"," 871: [2019, 2858, 2959, 2997, 4226, 5952, 4973, 7153, 1394, 1233],\n"," 875: [1148, 4993, 260, 1288, 2028, 2762, 2858, 1704, 7153, 2571],\n"," 892: [4226, 2959, 2019, 750, 912, 1193, 1136, 541, 1234, 1233],\n"," 919: [3578, 3147, 318, 597, 1036, 589, 1148, 356, 587, 150],\n"," 935: [1148, 2692, 318, 1193, 296, 2959, 541, 293, 7153, 1288],\n"," 942: [356, 3578, 1210, 260, 110, 50, 1036, 527, 1704, 1234],\n"," 960: [260, 318, 2858, 50, 1221, 2019, 858, 1213, 111, 1196],\n"," 1006: [912, 2858, 904, 1233, 923, 858, 4973, 1207, 5952, 2019],\n"," 1026: [912, 923, 1207, 904, 2858, 1233, 1247, 318, 527, 858],\n"," 1047: [260, 912, 904, 1233, 5952, 1196, 1221, 1193, 908, 1148],\n"," 65: [1233, 1207, 527, 904, 1193, 2762, 3147, 2028, 1250, 1252],\n"," 135: [318, 50, 2571, 1148, 4993, 7153, 527, 4226, 5952, 2858],\n"," 152: [296, 527, 1234, 4226, 1213, 7153, 4993, 5952, 1148, 2324],\n"," 166: [1035, 919, 318, 1234, 356, 527, 2324, 912, 364, 50],\n"," 179: [912, 2959, 4973, 318, 904, 4226, 2997, 2502, 1136, 1208],\n"," 188: [318, 260, 3578, 2324, 1234, 1704, 50, 919, 912, 1207],\n"," 217: [318, 527, 1207, 912, 1233, 919, 904, 1035, 1234, 1247],\n"," 253: [1148, 1233, 318, 1288, 904, 4993, 1193, 527, 7153, 1247],\n"," 262: [589, 2000, 1234, 1148, 36, 2324, 2001, 1270, 1304, 1917],\n"," 277: [318, 260, 50, 2571, 1148, 4226, 1196, 1198, 1234, 2858],\n"," 289: [1233, 1199, 541, 6377, 1198, 1073, 364, 778, 1035, 2194],\n"," 300: [1394, 4973, 1207, 1219, 1250, 1234, 593, 2858, 1035, 4226],\n"," 302: [4993, 7153, 1198, 5952, 36, 1036, 293, 4226, 1234, 2324],\n"," 308: [318, 912, 919, 1233, 1207, 1035, 1234, 904, 527, 858],\n"," 311: [318, 527, 919, 1035, 2324, 1234, 912, 1207, 260, 593],\n"," 328: [1288, 5952, 7153, 111, 1221, 1136, 4993, 296, 2019, 4226],\n"," 329: [318, 912, 1234, 50, 858, 919, 1233, 904, 1193, 1035],\n"," 344: [1233, 1193, 1230, 858, 1252, 923, 904, 1247, 4973, 1207],\n"," 347: [2858, 111, 5952, 608, 7153, 923, 2019, 904, 318, 1136],\n"," 358: [50, 2959, 1036, 47, 4011, 1234, 858, 4226, 2542, 3578],\n"," 474: [318, 1148, 4993, 7153, 2858, 1288, 1233, 50, 5952, 527],\n"," 483: [3578, 919, 1035, 1721, 2324, 1704, 1207, 1234, 3147, 1242],\n"," 509: [260, 1148, 912, 1207, 1221, 1230, 1247, 1198, 3578, 904],\n"," 578: [2959, 2502, 6874, 2542, 47, 50, 2692, 1206, 293, 1221],\n"," 589: [318, 5952, 4993, 7153, 2858, 2571, 1288, 4226, 912, 1213],\n"," 643: [4973, 1394, 2324, 2019, 4226, 1242, 2329, 1246, 1198, 2959],\n"," 672: [318, 1234, 4226, 5952, 7153, 4993, 1240, 1036, 1148, 1136],\n"," 679: [919, 1207, 1035, 912, 1233, 2396, 318, 527, 904, 364],\n"," 680: [318, 527, 3578, 2324, 1704, 919, 1234, 150, 457, 593],\n"," 691: [1148, 1233, 2762, 904, 1247, 1207, 1193, 1234, 3147, 912],\n"," 702: [2571, 4993, 7153, 5952, 1148, 2858, 1288, 50, 4226, 1198],\n"," 708: [318, 1148, 1234, 527, 1233, 1193, 4226, 1198, 3578, 904],\n"," 730: [858, 912, 1193, 50, 1234, 3147, 1233, 1148, 1242, 4011],\n"," 751: [318, 527, 1234, 50, 919, 1035, 260, 2324, 356, 912],\n"," 773: [527, 4993, 1704, 2028, 17, 150, 509, 2762, 1288, 497],\n"," 803: [62, 736, 597, 3147, 802, 653, 1148, 586, 527, 509],\n"," 809: [1210, 318, 2571, 7153, 1704, 1198, 1288, 593, 1234, 3578],\n"," 820: [1288, 318, 1233, 111, 904, 1221, 1213, 1247, 1198, 1617],\n"," 824: [4973, 364, 318, 527, 923, 1183, 588, 1213, 50, 595],\n"," 863: [858, 1193, 912, 2019, 4226, 1221, 2959, 750, 904, 1136],\n"," 865: [527, 1234, 1148, 912, 904, 1233, 1198, 858, 2324, 1193],\n"," 867: [912, 593, 357, 1193, 17, 1682, 58, 1148, 2291, 2762],\n"," 911: [608, 318, 527, 912, 904, 5952, 593, 50, 1207, 4973],\n"," 915: [527, 3578, 1704, 318, 110, 2324, 150, 1196, 1198, 17],\n"," 939: [527, 919, 1035, 2324, 912, 1207, 1234, 1704, 904, 3578],\n"," 946: [912, 1221, 1193, 908, 1234, 4226, 2959, 296, 1213, 1233],\n"," 954: [527, 318, 593, 1704, 50, 356, 2324, 1234, 110, 1198],\n"," 957: [1148, 5952, 7153, 4993, 1199, 923, 750, 2019, 904, 1094],\n"," 971: [1252, 541, 923, 1247, 1193, 904, 1208, 1233, 1207, 1148],\n"," 986: [260, 1210, 1196, 3578, 1234, 1704, 2324, 1198, 1036, 2571],\n"," 992: [2858, 527, 1148, 4993, 904, 5952, 1288, 7153, 1233, 923],\n"," 92: [593, 919, 50, 1035, 1380, 1234, 920, 2324, 296, 2959],\n"," 107: [1193, 318, 2019, 1148, 750, 904, 2858, 4226, 1252, 1230],\n"," 131: [2959, 1200, 1206, 6874, 2571, 541, 1240, 2502, 1221, 293],\n"," 138: [223, 288, 1221, 1288, 111, 1527, 1213, 2502, 2997, 2692],\n"," 145: [2959, 1221, 858, 1213, 608, 2019, 318, 4226, 750, 541],\n"," 183: [356, 150, 3578, 2324, 17, 4306, 50, 1148, 6539, 2762],\n"," 209: [1233, 912, 1193, 923, 858, 904, 2858, 4973, 2019, 1247],\n"," 230: [318, 858, 1193, 904, 2019, 4226, 111, 7153, 4973, 908],\n"," 263: [904, 1234, 1233, 1148, 2324, 1247, 4011, 1250, 919, 1225],\n"," 305: [318, 919, 1234, 912, 1207, 3578, 1233, 2324, 1035, 904],\n"," 314: [50, 1213, 2019, 4226, 608, 7153, 2571, 1233, 2959, 1148],\n"," 319: [858, 608, 912, 1394, 2019, 4973, 2959, 1221, 1233, 1193],\n"," 325: [2571, 2692, 733, 4011, 780, 3147, 3578, 293, 2959, 36],\n"," 341: [5952, 7153, 111, 541, 608, 912, 1221, 1193, 50, 904],\n"," 471: [318, 1233, 912, 904, 1193, 858, 1207, 527, 1148, 1234],\n"," 488: [318, 1036, 3147, 2000, 3578, 733, 50, 1234, 1242, 2959],\n"," 495: [527, 3578, 1704, 318, 780, 17, 1148, 2028, 11, 356],\n"," 532: [231, 2959, 1732, 2502, 924, 1222, 750, 2019, 2542, 1193],\n"," 564: [1148, 527, 912, 919, 1207, 1247, 2028, 3578, 1234, 2762],\n"," 574: [356, 3578, 2000, 318, 733, 3147, 50, 1234, 1101, 110],\n"," 590: [912, 858, 904, 1234, 4973, 527, 1233, 1207, 4226, 919],\n"," 603: [1035, 919, 364, 62, 2396, 500, 1028, 1641, 920, 1207],\n"," 674: [2959, 296, 2502, 2692, 2542, 858, 1221, 750, 50, 4226],\n"," 753: [858, 1148, 541, 912, 1221, 1193, 50, 904, 4226, 1136],\n"," 810: [1035, 919, 912, 593, 318, 1234, 858, 50, 4973, 2324],\n"," 830: [318, 3578, 17, 4993, 1148, 2762, 6539, 4306, 1234, 2571],\n"," 841: [50, 318, 1148, 7153, 2858, 858, 1233, 296, 1198, 1136],\n"," 856: [318, 50, 912, 593, 858, 1234, 904, 1233, 1213, 4973],\n"," 921: [50, 318, 593, 260, 1234, 296, 1036, 3578, 2571, 1198],\n"," 933: [1233, 912, 904, 4973, 1207, 858, 1193, 2858, 1394, 924],\n"," 976: [912, 904, 608, 4973, 1233, 858, 260, 2858, 1207, 923],\n"," 10: [1148, 2858, 1288, 1247, 1207, 1230, 904, 923, 2396, 318],\n"," 19: [1704, 4993, 3578, 2571, 2324, 5952, 7153, 2028, 2762, 4306],\n"," 41: [318, 527, 2324, 593, 1234, 3578, 1704, 590, 150, 1207],\n"," 43: [780, 1148, 1252, 150, 527, 1207, 1230, 1247, 1584, 2028],\n"," 44: [858, 1148, 1252, 7153, 111, 541, 912, 923, 1199, 1207],\n"," 45: [2959, 318, 1234, 2542, 4011, 296, 1193, 2502, 2000, 733],\n"," 51: [47, 1221, 50, 1089, 2959, 1213, 318, 1201, 1394, 2019],\n"," 56: [608, 1199, 1394, 1183, 1233, 1073, 318, 778, 2997, 2959],\n"," 61: [919, 1035, 2396, 1233, 904, 150, 2324, 1242, 1246, 364],\n"," 68: [318, 527, 3578, 1035, 1234, 912, 150, 1233, 1704, 3147],\n"," 69: [1207, 904, 1233, 923, 1148, 2028, 919, 4973, 1704, 1250],\n"," 78: [2019, 1221, 1213, 3897, 7153, 1266, 50, 5952, 2329, 4011],\n"," 110: [2000, 733, 597, 3578, 3147, 786, 1036, 165, 587, 1101],\n"," 115: [1233, 923, 904, 1148, 1207, 1288, 912, 1252, 4973, 2028],\n"," 129: [858, 541, 608, 912, 1221, 1193, 50, 904, 908, 1234],\n"," 149: [1200, 47, 1206, 1201, 1089, 1240, 2571, 1213, 223, 2542],\n"," 150: [318, 1148, 1233, 2571, 1193, 260, 904, 4993, 2858, 1288],\n"," 168: [50, 318, 593, 296, 2959, 1234, 858, 912, 1213, 47],\n"," 169: [260, 858, 1148, 1252, 7153, 47, 527, 541, 593, 608],\n"," 178: [3578, 1234, 2324, 919, 50, 1035, 912, 1198, 1207, 1036],\n"," 186: [1199, 2019, 2858, 923, 750, 924, 1221, 858, 1208, 2997],\n"," 201: [318, 260, 1035, 919, 1207, 3578, 17, 1234, 912, 904],\n"," 239: [318, 50, 912, 593, 1234, 260, 527, 858, 904, 1233],\n"," 248: [260, 858, 912, 904, 2858, 318, 1233, 50, 2019, 608],\n"," 256: [318, 527, 260, 1148, 1234, 50, 3578, 1233, 2324, 904],\n"," 257: [318, 50, 593, 1234, 2959, 296, 912, 4011, 47, 1193],\n"," 272: [1206, 111, 541, 1199, 2019, 750, 924, 1136, 608, 1080],\n"," 279: [858, 608, 912, 1221, 1233, 750, 2019, 4973, 1193, 1394],\n"," 280: [318, 3147, 1233, 3578, 1242, 1207, 1148, 1234, 919, 150],\n"," 285: [858, 541, 923, 1199, 1193, 1208, 2858, 1233, 750, 924],\n"," 298: [912, 1394, 608, 923, 4973, 904, 1233, 858, 1219, 2019],\n"," 301: [111, 7153, 5952, 1233, 4226, 1193, 904, 1148, 4993, 924],\n"," 304: [527, 318, 1704, 1207, 3578, 1584, 62, 2028, 1148, 17],\n"," 333: [150, 2396, 1207, 500, 3578, 919, 11, 3147, 1035, 1961],\n"," 334: [318, 527, 3578, 2324, 1704, 593, 1035, 50, 150, 1207],\n"," 338: [50, 2959, 608, 1213, 1221, 858, 260, 912, 1089, 4226],\n"," 350: [2858, 527, 923, 904, 1233, 1207, 1288, 5952, 1148, 4993],\n"," 351: [1219, 5952, 7153, 2019, 4993, 1199, 4226, 1233, 541, 1080],\n"," 353: [1136, 1221, 2858, 6874, 260, 1080, 750, 223, 2997, 1208],\n"," 378: [318, 1233, 1193, 2858, 904, 1148, 912, 2019, 1247, 4226],\n"," 386: [1148, 1234, 1233, 50, 2571, 1207, 904, 1193, 4306, 919],\n"," 397: [260, 1207, 1234, 919, 904, 150, 1035, 1148, 1233, 17],\n"," 420: [541, 1206, 1199, 2997, 924, 750, 2019, 1208, 2858, 1221],\n"," 439: [260, 858, 593, 912, 1221, 50, 904, 1234, 4226, 296],\n"," 449: [296, 318, 110, 1036, 1234, 1198, 1240, 1213, 4226, 2324],\n"," 478: [50, 593, 1234, 912, 919, 2959, 296, 1036, 858, 2324],\n"," 487: [1233, 912, 858, 1234, 1193, 904, 593, 1148, 527, 1207],\n"," 489: [912, 4973, 593, 4226, 2959, 1242, 908, 1148, 2324, 1252],\n"," 500: [858, 912, 2019, 1233, 1221, 1193, 904, 50, 750, 4973],\n"," 510: [260, 904, 1207, 912, 2858, 1233, 1148, 1247, 923, 5952],\n"," 521: [260, 527, 1210, 1234, 1196, 3578, 1198, 2324, 2571, 110],\n"," 522: [50, 2858, 4226, 7153, 5952, 2019, 904, 912, 750, 2571],\n"," 524: [1233, 912, 904, 1207, 527, 1193, 1148, 1247, 260, 1234],\n"," 527: [912, 318, 1233, 1234, 1207, 904, 919, 858, 1193, 1247],\n"," 529: [1233, 1193, 858, 1230, 2858, 1252, 1148, 2019, 750, 923],\n"," 535: [1233, 2858, 3897, 1230, 2396, 1247, 1207, 1288, 1148, 1094],\n"," 550: [3578, 3147, 2324, 1242, 2028, 1704, 4306, 1246, 6377, 4973],\n"," 560: [858, 2502, 1221, 1222, 2019, 1213, 912, 1201, 750, 4973],\n"," 573: [260, 1196, 1210, 912, 1207, 904, 1219, 919, 1035, 5952],\n"," 579: [1240, 6874, 110, 4226, 223, 1221, 7153, 1200, 1213, 4993],\n"," 582: [1233, 923, 924, 4973, 750, 2858, 1148, 3897, 2997, 1199],\n"," 583: [1233, 2858, 1193, 858, 2019, 923, 111, 924, 904, 1288],\n"," 584: [318, 919, 3578, 1234, 1035, 2324, 593, 3147, 912, 1242],\n"," 587: [111, 923, 2858, 2019, 1199, 912, 858, 1233, 4973, 904],\n"," 588: [260, 1148, 4993, 2571, 7153, 1288, 2858, 5952, 1233, 904],\n"," 596: [1094, 3114, 5952, 4993, 1148, 1394, 7153, 1250, 1358, 1246],\n"," 602: [2858, 318, 1148, 7153, 1233, 1288, 1193, 2571, 1136, 5952],\n"," 618: [1233, 912, 904, 1193, 1207, 1247, 858, 1148, 4973, 923],\n"," 624: [589, 260, 858, 1210, 1148, 1252, 1288, 5952, 7153, 32],\n"," 627: [260, 7153, 1148, 5952, 1288, 1136, 1196, 527, 904, 1233],\n"," 635: [858, 1148, 912, 1207, 1247, 1193, 50, 904, 1234, 4226],\n"," 639: [858, 1073, 1252, 111, 608, 912, 919, 923, 1199, 1207],\n"," 640: [260, 50, 1148, 296, 1234, 1193, 1213, 527, 1233, 593],\n"," 642: [1233, 912, 1222, 4973, 904, 4226, 750, 2542, 2502, 4011],\n"," 649: [318, 1233, 3147, 919, 1242, 1207, 912, 2396, 527, 1234],\n"," 652: [919, 318, 3578, 2324, 364, 1234, 1380, 1721, 1704, 593],\n"," 662: [2997, 1206, 924, 1208, 1222, 2959, 923, 1136, 1252, 1230],\n"," 671: [3897, 4973, 904, 1207, 1073, 1222, 231, 2291, 1250, 1682],\n"," 675: [260, 1196, 1210, 527, 50, 608, 5952, 1234, 912, 904],\n"," 684: [318, 593, 50, 260, 912, 1234, 527, 608, 904, 1196],\n"," 703: [318, 1233, 912, 904, 858, 1207, 1193, 1234, 4973, 1247],\n"," 712: [260, 1704, 1207, 904, 1196, 2324, 912, 1148, 1210, 4993],\n"," 726: [2858, 1233, 1193, 318, 904, 923, 7153, 2019, 111, 1136],\n"," 727: [260, 912, 1234, 904, 1207, 2324, 919, 1704, 1233, 1196],\n"," 744: [527, 912, 919, 1234, 260, 904, 1207, 2324, 1035, 50],\n"," 746: [1221, 2959, 2019, 858, 750, 111, 1136, 50, 1213, 4226],\n"," 757: [1148, 1288, 5952, 7153, 527, 1247, 1193, 2028, 2571, 3578],\n"," 761: [1148, 3147, 3578, 1288, 2028, 733, 1233, 527, 1230, 36],\n"," 765: [2959, 2502, 2542, 50, 318, 1233, 1222, 912, 4011, 4226],\n"," 766: [527, 593, 3578, 2324, 1234, 47, 17, 1380, 296, 6539],\n"," 771: [3578, 1917, 1148, 165, 4993, 3147, 2762, 36, 1704, 150],\n"," 776: [318, 912, 1193, 4226, 1213, 1148, 2019, 296, 527, 2571],\n"," 797: [527, 1207, 260, 904, 2762, 2028, 1247, 912, 2324, 4993],\n"," 812: [919, 1207, 2324, 3578, 904, 1704, 1233, 1246, 1242, 1721],\n"," 815: [318, 3578, 1148, 1233, 1234, 1036, 527, 1242, 2000, 1193],\n"," 818: [1233, 1148, 1247, 1193, 1234, 260, 2858, 858, 1250, 2762],\n"," 821: [1035, 919, 587, 500, 920, 364, 1028, 1641, 527, 2396],\n"," 822: [1233, 912, 904, 1148, 858, 260, 1193, 2858, 4226, 1234],\n"," 831: [589, 733, 527, 593, 919, 457, 3578, 50, 1234, 1036],\n"," 834: [912, 858, 1394, 1233, 2019, 1193, 904, 1222, 1073, 923],\n"," 837: [924, 1199, 923, 231, 2019, 858, 1394, 1208, 750, 912],\n"," 839: [296, 541, 1221, 2858, 750, 111, 2019, 2571, 50, 2959],\n"," 840: [4973, 904, 1233, 2858, 318, 4226, 2997, 3897, 2959, 5952],\n"," 851: [1233, 318, 1247, 2858, 904, 527, 1230, 1288, 1207, 1252],\n"," 855: [2959, 47, 1036, 1234, 858, 4226, 1240, 4011, 1221, 1198],\n"," 857: [318, 527, 260, 50, 1704, 1234, 2324, 1148, 1198, 1210],\n"," 868: [858, 1233, 2019, 1193, 750, 541, 1221, 1136, 912, 4226],\n"," 874: [318, 50, 527, 1234, 1036, 912, 4226, 1213, 904, 457],\n"," 904: [260, 5952, 2858, 1196, 111, 1219, 4993, 7153, 923, 1288],\n"," 905: [500, 150, 2396, 527, 919, 1584, 3147, 3578, 1207, 780],\n"," 906: [2019, 912, 111, 318, 750, 1219, 904, 541, 908, 1233],\n"," 924: [527, 1704, 260, 2324, 3578, 1207, 919, 1035, 590, 1234],\n"," 925: [1089, 608, 50, 2019, 4973, 47, 778, 2542, 4226, 2997],\n"," 927: [318, 3578, 593, 1035, 1234, 919, 50, 2324, 527, 1380],\n"," 940: [912, 1233, 318, 904, 1207, 1193, 527, 1247, 858, 1148],\n"," 948: [260, 1234, 912, 1196, 904, 3578, 1213, 1210, 1233, 1207],\n"," 953: [110, 733, 1148, 165, 380, 527, 457, 1193, 1198, 3578],\n"," 966: [608, 111, 1221, 1219, 2019, 750, 778, 50, 858, 908],\n"," 967: [111, 260, 2019, 541, 5952, 7153, 1136, 1199, 750, 608],\n"," 979: [318, 50, 593, 260, 1234, 1196, 912, 296, 527, 608],\n"," 980: [1221, 1196, 318, 2019, 912, 47, 1219, 4973, 111, 1234],\n"," 983: [50, 593, 1234, 3578, 1036, 919, 527, 260, 457, 110],\n"," 984: [1721, 1035, 3578, 527, 150, 539, 457, 1242, 590, 1234],\n"," 991: [231, 344, 1500, 2997, 1732, 3897, 858, 104, 2791, 2959],\n"," 995: [2959, 858, 1233, 912, 1222, 2542, 1234, 50, 2502, 4973],\n"," 1009: [1288, 4993, 11, 3147, 1230, 733, 2762, 2692, 36, 2028],\n"," 1011: [858, 1233, 4973, 1222, 750, 904, 2959, 1252, 318, 1230],\n"," 1014: [1394, 912, 1183, 923, 1219, 4973, 318, 357, 1028, 17],\n"," 1021: [1394, 912, 4973, 608, 2019, 1199, 1233, 924, 111, 750],\n"," 1030: [260, 527, 318, 1196, 904, 1207, 1704, 2324, 1234, 1210],\n"," 1033: [912, 858, 1234, 1233, 1193, 904, 4226, 1213, 4973, 1148],\n"," 1039: [111, 2858, 1136, 2019, 7153, 750, 1221, 1288, 1199, 5952],\n"," 1040: [1721, 539, 500, 587, 1035, 62, 919, 2396, 3147, 527],\n"," 1053: [50, 318, 296, 593, 2959, 47, 1213, 4226, 858, 912],\n"," 42: [1233, 1148, 2858, 1193, 1288, 1230, 318, 1252, 1247, 904],\n"," 73: [912, 527, 1234, 4973, 4226, 2324, 1193, 2019, 1247, 1210],\n"," 82: [1035, 919, 912, 318, 1207, 1234, 527, 1394, 593, 904],\n"," 159: [527, 318, 260, 1207, 1148, 1704, 904, 2028, 4993, 1233],\n"," 161: [1221, 111, 1213, 2019, 750, 858, 1288, 1089, 1080, 1199],\n"," 192: [1233, 912, 1199, 1208, 318, 904, 908, 924, 1201, 1080],\n"," 216: [527, 1704, 3578, 150, 356, 1207, 6539, 1148, 2028, 590],\n"," 219: [17, 1210, 318, 1196, 590, 6539, 1207, 4993, 2324, 2028],\n"," 290: [318, 912, 1035, 1234, 593, 527, 1207, 1233, 904, 2324],\n"," 379: [318, 912, 1234, 1233, 527, 593, 50, 904, 858, 919],\n"," 389: [260, 1196, 50, 1288, 1148, 904, 1136, 111, 2019, 1213],\n"," 400: [318, 1233, 912, 858, 904, 1193, 2019, 4973, 750, 4226],\n"," 428: [527, 1234, 318, 260, 593, 50, 912, 2324, 919, 904],\n"," 462: [1234, 527, 904, 1233, 858, 1148, 4226, 2324, 1198, 1213],\n"," 507: [318, 1233, 527, 1148, 904, 912, 1207, 1193, 1247, 1234],\n"," 600: [296, 50, 318, 260, 47, 593, 2571, 1196, 1036, 1198],\n"," 721: [1148, 527, 2762, 3147, 2028, 1233, 3578, 150, 4993, 2396],\n"," 793: [318, 2858, 1233, 1148, 858, 1193, 1288, 1136, 2019, 50],\n"," 912: [2959, 858, 318, 50, 296, 912, 1193, 1233, 593, 1234],\n"," 932: [318, 1233, 912, 904, 1207, 858, 1193, 1234, 527, 1247],\n"," 949: [231, 1278, 593, 1222, 2502, 1089, 2791, 1233, 608, 1193],\n"," 1025: [4973, 593, 1394, 1234, 2959, 904, 1073, 1193, 50, 1222],\n"," 46: [2858, 1233, 904, 318, 912, 923, 858, 1193, 2019, 111],\n"," 74: [318, 50, 1234, 1148, 1233, 527, 3578, 1193, 912, 2571],\n"," 342: [260, 1148, 912, 1207, 1247, 1193, 2571, 50, 904, 1234],\n"," 508: [2858, 111, 2019, 923, 1199, 608, 750, 858, 1136, 904],\n"," 580: [1035, 919, 1234, 593, 2706, 356, 1036, 3147, 318, 457],\n"," 774: [1234, 1233, 593, 919, 904, 4973, 1193, 1207, 1035, 527],\n"," 783: [1207, 527, 904, 919, 1233, 1035, 1247, 364, 2324, 1250],\n"," 1002: [1721, 597, 3147, 539, 587, 919, 500, 1035, 1242, 2396],\n"," 1023: [318, 1148, 2762, 1704, 2028, 1288, 1233, 1247, 150, 904],\n"," 1048: [111, 608, 1221, 541, 1199, 2019, 260, 750, 1136, 1219],\n"," 23: [318, 912, 904, 1196, 2858, 1207, 1234, 1233, 1148, 5952],\n"," 96: [318, 1704, 2324, 356, 150, 1234, 1207, 4306, 912, 497],\n"," 124: [1148, 2858, 318, 111, 1617, 1252, 904, 2762, 4226, 36],\n"," 136: [2959, 2502, 2542, 1221, 50, 1222, 750, 1233, 541, 2692],\n"," 148: [858, 527, 593, 912, 904, 1234, 1213, 318, 4226, 1233],\n"," 189: [318, 2571, 1148, 50, 3578, 4993, 527, 7153, 1233, 1234],\n"," 213: [150, 318, 1207, 62, 1584, 1148, 3578, 11, 1233, 497],\n"," 243: [296, 2019, 111, 750, 912, 1213, 1199, 1089, 4973, 541],\n"," 323: [1233, 904, 1148, 2858, 2028, 318, 1584, 3114, 2762, 6377],\n"," 352: [1207, 527, 62, 1233, 919, 318, 539, 1584, 150, 3147],\n"," 429: [2858, 111, 923, 912, 2019, 858, 1233, 904, 4973, 1199],\n"," 625: [356, 318, 3578, 527, 1035, 919, 2324, 1234, 1704, 1380],\n"," 808: [318, 1233, 1234, 50, 1193, 1148, 3147, 858, 3578, 912],\n"," 843: [923, 2858, 1233, 1288, 1148, 7153, 3897, 5952, 4993, 912],\n"," 847: [318, 1233, 1234, 912, 527, 3147, 919, 3578, 1242, 1207],\n"," 963: [318, 593, 50, 1234, 356, 919, 1035, 3578, 1036, 2324],\n"," 975: [2959, 1221, 47, 1213, 858, 318, 1089, 593, 4226, 1201],\n"," 998: [2858, 1233, 4973, 1207, 1219, 318, 858, 260, 527, 2019],\n"," 75: [50, 260, 1196, 1210, 318, 47, 593, 2571, 2959, 1213],\n"," 427: [1233, 912, 1193, 904, 1148, 4226, 1247, 1207, 2858, 4973],\n"," 466: [1148, 1288, 2858, 4993, 7153, 318, 2571, 260, 1233, 1193],\n"," 801: [608, 318, 2858, 50, 1219, 111, 904, 912, 1213, 1221],\n"," 848: [260, 527, 318, 50, 1234, 593, 2324, 912, 904, 1704],\n"," 888: [260, 318, 2858, 7153, 50, 2571, 1148, 4993, 1288, 4226],\n"," 191: [912, 904, 1233, 4973, 608, 858, 318, 923, 1207, 1394],\n"," 227: [318, 858, 50, 296, 912, 1221, 1213, 608, 4226, 1193],\n"," 245: [318, 1233, 912, 904, 2858, 1207, 527, 260, 1247, 1148],\n"," 380: [3147, 318, 780, 1148, 1233, 733, 1242, 2762, 2000, 527],\n"," 408: [541, 2858, 750, 1193, 1136, 1206, 1288, 1233, 2019, 111],\n"," 668: [541, 2571, 7153, 1136, 2858, 1288, 1221, 111, 2019, 4226],\n"," 747: [1148, 2858, 4993, 1233, 7153, 5952, 923, 318, 904, 527],\n"," 754: [318, 527, 1148, 1233, 260, 904, 912, 1207, 1247, 50],\n"," 11: [1148, 150, 527, 912, 919, 1207, 3578, 904, 1234, 2762],\n"," 16: [4993, 2571, 318, 5952, 7153, 527, 1288, 50, 1148, 2858],\n"," 81: [318, 858, 50, 1233, 912, 1213, 4226, 1221, 2019, 1234],\n"," 86: [912, 1207, 1193, 1234, 1233, 318, 1242, 3147, 904, 4973],\n"," 97: [260, 527, 912, 50, 1234, 1233, 318, 904, 593, 1148],\n"," 151: [1233, 904, 1207, 2858, 1193, 1148, 1247, 858, 4973, 923],\n"," 235: [1240, 293, 1148, 1288, 1136, 1221, 5952, 6874, 1196, 36],\n"," 251: [1219, 111, 1089, 1394, 2019, 2959, 912, 4973, 50, 750],\n"," 258: [318, 1234, 50, 3578, 1233, 1148, 3147, 1036, 527, 593],\n"," 278: [318, 1234, 1704, 2324, 3578, 904, 1148, 1207, 912, 50],\n"," 388: [318, 260, 296, 593, 1196, 1234, 1213, 47, 1210, 858],\n"," 551: [318, 3147, 3578, 780, 1148, 150, 597, 11, 2762, 2396],\n"," 606: [1233, 231, 1193, 1230, 924, 1252, 2997, 1222, 2019, 923],\n"," 614: [318, 912, 1233, 904, 1234, 1193, 527, 1207, 50, 1148],\n"," 681: [1233, 923, 912, 904, 1207, 4973, 1247, 1193, 858, 924],\n"," 686: [2959, 912, 4973, 1193, 231, 1213, 296, 2502, 318, 919],\n"," 704: [1148, 1036, 3147, 318, 1233, 1234, 733, 1198, 527, 1193],\n"," 711: [2959, 50, 1221, 858, 318, 1213, 4226, 593, 2019, 608],\n"," 718: [260, 318, 50, 1196, 527, 1210, 1234, 2571, 1198, 904],\n"," 873: [318, 1148, 527, 1207, 904, 1247, 1193, 912, 2762, 3147],\n"," 962: [1233, 318, 858, 1193, 912, 904, 1234, 1148, 50, 1247],\n"," 985: [1233, 1230, 231, 1193, 1252, 858, 2997, 1222, 1208, 923],\n"," 993: [260, 858, 527, 593, 912, 1198, 2571, 50, 904, 1234],\n"," 58: [2959, 858, 1193, 4973, 2542, 1222, 2502, 1213, 1035, 4011],\n"," 112: [2858, 4973, 1148, 7153, 5952, 2997, 3897, 4993, 4226, 1617],\n"," 357: [2959, 296, 858, 50, 1089, 593, 1221, 1213, 912, 2502],\n"," 367: [1233, 1148, 50, 2571, 2858, 4226, 260, 7153, 1234, 1136],\n"," 548: [1148, 1233, 527, 904, 1193, 912, 2858, 2571, 50, 1234],\n"," 791: [318, 50, 858, 1233, 1193, 904, 1234, 4226, 1213, 260],\n"," 909: [318, 858, 1233, 912, 1193, 50, 1234, 593, 904, 4973],\n"," 1041: [608, 1213, 1234, 1221, 912, 1219, 904, 2324, 2019, 908],\n"," 13: [318, 2959, 1036, 2571, 1240, 47, 589, 4226, 4011, 593],\n"," 83: [1233, 904, 2858, 1148, 1247, 1230, 1252, 318, 4973, 2019],\n"," 869: [858, 912, 2019, 1233, 1193, 1221, 608, 4973, 750, 1213],\n"," 246: [318, 1234, 3578, 50, 527, 593, 1036, 2324, 1148, 1233],\n"," 415: [858, 2959, 912, 608, 2019, 4973, 1221, 50, 1213, 318],\n"," 477: [1234, 1233, 904, 4973, 608, 1148, 750, 908, 2858, 1247],\n"," 569: [260, 858, 1148, 527, 912, 1207, 1247, 1193, 904, 1234],\n"," 694: [527, 1035, 318, 364, 2324, 904, 1234, 1028, 1246, 4973],\n"," 729: [527, 318, 1234, 912, 260, 2324, 1207, 904, 1233, 50],\n"," 741: [527, 912, 1207, 1233, 919, 904, 1234, 2324, 1247, 1035],\n"," 965: [260, 2571, 7153, 4993, 5952, 1288, 2858, 541, 1136, 4226],\n"," 17: [1148, 527, 912, 923, 1207, 1247, 2396, 904, 2858, 1233],\n"," 37: [2502, 1221, 1206, 1213, 541, 778, 1997, 608, 858, 750],\n"," 40: [912, 858, 260, 1221, 904, 2019, 4226, 4973, 1234, 2959],\n"," 114: [527, 318, 1207, 904, 912, 1233, 2858, 1148, 1247, 923],\n"," 137: [380, 356, 1917, 733, 597, 165, 3147, 2001, 786, 587],\n"," 153: [1196, 1210, 318, 2571, 4993, 5952, 50, 7153, 2858, 1288],\n"," 211: [318, 527, 1213, 1234, 4226, 5952, 7153, 2019, 4973, 1148],\n"," 286: [296, 318, 1148, 7153, 293, 1136, 2692, 1288, 4011, 47],\n"," 330: [318, 50, 1036, 1234, 593, 3578, 1198, 4226, 1148, 858],\n"," 336: [318, 50, 296, 7153, 4993, 5952, 4226, 1198, 1148, 2858],\n"," 372: [858, 593, 608, 1221, 50, 1089, 296, 1213, 1201, 47],\n"," 376: [50, 7153, 1221, 1136, 4226, 2959, 318, 2858, 1288, 750],\n"," 412: [527, 1207, 260, 904, 1148, 912, 1247, 4993, 1288, 5952],\n"," 447: [2858, 541, 111, 924, 7153, 1199, 1233, 1208, 750, 1193],\n"," 467: [2571, 260, 1148, 4993, 7153, 296, 1198, 1288, 4226, 293],\n"," 490: [1148, 1233, 260, 904, 2858, 2571, 1193, 4993, 1247, 1288],\n"," 518: [1233, 912, 858, 1234, 904, 1148, 50, 1207, 1247, 4973],\n"," 608: [6874, 47, 1240, 50, 1201, 2542, 1089, 1221, 223, 541],\n"," 619: [318, 50, 2571, 296, 4226, 1234, 1148, 2959, 1193, 593],\n"," 644: [733, 780, 802, 858, 1148, 1252, 1288, 4995, 6377, 7153],\n"," 667: [527, 904, 2858, 912, 1233, 1148, 7153, 1207, 5952, 50],\n"," 698: [608, 260, 858, 912, 1213, 1221, 2019, 904, 750, 4973],\n"," 709: [50, 296, 318, 7153, 4226, 1213, 1136, 541, 5952, 2019],\n"," 728: [318, 858, 50, 1193, 1233, 4226, 2019, 2858, 1221, 1148],\n"," 733: [318, 50, 260, 1234, 1148, 4226, 858, 1233, 593, 527],\n"," 777: [527, 904, 318, 912, 923, 1207, 1233, 5952, 1219, 4973],\n"," 813: [593, 608, 318, 50, 296, 912, 1213, 4973, 904, 527],\n"," 832: [1233, 318, 2858, 1148, 904, 858, 912, 1288, 1247, 923],\n"," 893: [50, 593, 260, 1234, 527, 912, 904, 858, 2324, 1233],\n"," 901: [260, 1148, 1252, 1288, 5952, 7153, 527, 593, 912, 923],\n"," 937: [296, 593, 260, 1234, 1196, 2571, 1198, 4226, 1213, 1210],\n"," 947: [5952, 4993, 527, 7153, 2858, 1288, 17, 1704, 1219, 111],\n"," 362: [912, 1207, 919, 904, 1035, 4973, 1233, 1394, 1234, 364],\n"," 375: [1233, 1193, 858, 318, 1148, 2019, 750, 4226, 50, 2959],\n"," 599: [260, 858, 1148, 527, 593, 1247, 1193, 1198, 2571, 3578],\n"," 632: [260, 318, 296, 527, 1234, 5952, 1213, 1198, 4226, 47],\n"," 779: [260, 2858, 5952, 111, 1288, 4993, 1196, 1136, 923, 1199],\n"," 1022: [1233, 1193, 318, 904, 912, 1148, 1247, 2858, 1207, 858],\n"," 1034: [318, 527, 1233, 1207, 904, 912, 1148, 1247, 260, 1193],\n"," 2: [527, 1196, 318, 1704, 356, 3578, 2324, 17, 50, 4993],\n"," 3: [318, 50, 1234, 527, 260, 593, 912, 904, 1233, 2324],\n"," 104: [1148, 1288, 7153, 527, 1230, 2028, 3578, 50, 904, 1234],\n"," 105: [318, 2858, 1233, 858, 904, 1148, 912, 2019, 7153, 4226],\n"," 184: [260, 1196, 318, 2571, 593, 5952, 7153, 4993, 527, 1198],\n"," 218: [858, 2019, 1233, 1193, 750, 541, 1221, 1136, 4226, 912],\n"," 250: [527, 260, 912, 1234, 904, 1233, 1207, 1148, 50, 2324],\n"," 313: [527, 318, 260, 1148, 4993, 3578, 904, 2324, 2762, 1233],\n"," 377: [1207, 919, 912, 1035, 1233, 1234, 364, 4973, 1246, 150],\n"," 413: [50, 318, 608, 1221, 1213, 2019, 912, 4226, 593, 750],\n"," 576: [858, 912, 608, 2019, 4973, 50, 904, 1233, 750, 1193],\n"," 586: [1233, 912, 858, 4973, 904, 923, 1193, 1207, 1247, 2019],\n"," 595: [1210, 4993, 2628, 3578, 380, 318, 356, 1527, 7153, 50],\n"," 610: [318, 1207, 3578, 150, 2324, 1035, 1233, 1234, 3147, 912],\n"," 613: [318, 260, 527, 50, 904, 912, 1148, 593, 1233, 2858],\n"," 637: [260, 318, 2571, 527, 1148, 50, 4993, 7153, 2858, 1196],\n"," 663: [858, 912, 1233, 4973, 1193, 2019, 904, 318, 608, 750],\n"," 740: [527, 50, 1704, 3578, 1234, 2324, 356, 4993, 1148, 904],\n"," 787: [260, 150, 3578, 318, 356, 17, 1148, 2028, 2762, 497],\n"," 804: [2959, 296, 50, 858, 318, 1234, 1213, 912, 1193, 1221],\n"," 805: [858, 47, 608, 1221, 50, 1234, 1089, 2959, 296, 1213],\n"," 866: [2959, 4226, 2019, 1234, 912, 5952, 541, 908, 7153, 1079],\n"," 883: [318, 260, 1148, 2571, 527, 4993, 50, 7153, 1233, 2858],\n"," 941: [2997, 858, 1233, 924, 1193, 2019, 1206, 750, 1199, 541],\n"," 1007: [1233, 1193, 1230, 858, 1252, 1222, 2019, 750, 924, 912],\n"," 6: [1148, 527, 593, 912, 1207, 1247, 50, 904, 1234, 4226],\n"," 7: [1394, 1233, 4973, 858, 919, 1193, 1247, 318, 1035, 1073],\n"," 14: [527, 318, 4993, 1148, 2858, 5952, 904, 1288, 1207, 1233],\n"," 24: [527, 318, 1704, 1148, 1207, 150, 2028, 2762, 904, 3578],\n"," 57: [1148, 527, 1193, 1233, 318, 2571, 904, 1234, 1247, 3147],\n"," 60: [912, 919, 1207, 904, 4973, 364, 1250, 2324, 908, 1242],\n"," 64: [527, 1148, 318, 2858, 4993, 1288, 904, 1233, 5952, 7153],\n"," 84: [527, 318, 1148, 4993, 1704, 2028, 1207, 2858, 5952, 904],\n"," 90: [1148, 1233, 318, 527, 1207, 1247, 2028, 904, 2762, 2396],\n"," 98: [858, 47, 593, 912, 1221, 1196, 50, 4226, 1089, 2959],\n"," 113: [318, 1233, 912, 904, 1193, 858, 527, 1234, 1207, 1148],\n"," 120: [1148, 2571, 3578, 3147, 733, 318, 11, 2762, 2000, 4993],\n"," 123: [1148, 1230, 1233, 11, 2762, 1288, 1247, 318, 3147, 1252],\n"," 157: [364, 858, 1148, 1246, 1252, 1288, 4995, 5952, 6377, 7153],\n"," 194: [1230, 2396, 1233, 3147, 1207, 11, 1252, 1641, 1242, 1247],\n"," 200: [858, 1148, 1252, 1288, 912, 923, 1207, 1225, 1230, 1247],\n"," 204: [318, 912, 904, 527, 2858, 1233, 1207, 4973, 858, 923],\n"," 205: [318, 2019, 750, 2858, 904, 4226, 4973, 1213, 50, 1148],\n"," 225: [318, 1148, 2571, 527, 50, 4993, 1233, 7153, 1234, 1198],\n"," 229: [318, 50, 593, 912, 1196, 296, 858, 1213, 904, 1234],\n"," 237: [527, 17, 1721, 150, 1028, 590, 1035, 62, 919, 508],\n"," 242: [858, 1148, 1252, 1288, 527, 912, 923, 1207, 1230, 1247],\n"," 252: [318, 4973, 923, 1247, 1234, 858, 1148, 1219, 1250, 1394],\n"," 266: [858, 111, 541, 1221, 50, 4226, 1136, 296, 1213, 750],\n"," 270: [2858, 318, 527, 904, 5952, 1148, 1233, 4993, 7153, 1288],\n"," 282: [1233, 318, 912, 1193, 904, 858, 1207, 1247, 1148, 4973],\n"," 297: [318, 50, 296, 1196, 1213, 593, 4226, 1221, 2858, 858],\n"," 309: [1148, 1233, 318, 527, 1247, 1193, 2858, 1288, 904, 2762],\n"," 316: [1148, 1233, 318, 1230, 1193, 1288, 1247, 2762, 3147, 2858],\n"," 327: [593, 1221, 50, 2959, 296, 1213, 318, 912, 4226, 2019],\n"," 356: [318, 1233, 912, 904, 1148, 1193, 858, 527, 1247, 1234],\n"," 393: [1233, 318, 1193, 912, 1148, 3147, 1207, 904, 1247, 858],\n"," 394: [1148, 1288, 7153, 527, 1247, 1193, 2571, 904, 1234, 4226],\n"," 395: [780, 733, 1148, 2000, 1233, 1193, 1036, 589, 2571, 2692],\n"," 399: [1233, 1193, 858, 318, 912, 1230, 1148, 1252, 904, 2019],\n"," 401: [2959, 1233, 1193, 912, 2019, 50, 750, 4226, 296, 4973],\n"," 402: [318, 2959, 50, 1234, 858, 593, 1036, 1193, 912, 3147],\n"," 405: [527, 1207, 2396, 1148, 1233, 318, 2028, 1247, 904, 1584],\n"," 417: [318, 912, 50, 904, 858, 1233, 2858, 1213, 4226, 608],\n"," 422: [318, 1148, 1233, 527, 904, 1247, 1207, 2858, 1193, 912],\n"," 437: [5952, 7153, 4993, 923, 924, 4226, 1148, 858, 1206, 1233],\n"," 455: [318, 527, 1148, 1233, 904, 4993, 2858, 1207, 912, 1247],\n"," 461: [318, 50, 858, 2959, 1193, 1233, 1234, 4226, 912, 1213],\n"," 473: [318, 527, 1196, 5952, 2858, 904, 4993, 912, 1210, 7153],\n"," 484: [1148, 1233, 318, 2858, 1288, 1193, 4993, 2571, 7153, 904],\n"," 499: [318, 1196, 593, 50, 904, 1219, 1213, 4973, 527, 1234],\n"," 526: [318, 50, 858, 1233, 1193, 2858, 4226, 1148, 2019, 2571],\n"," 537: [318, 527, 50, 1196, 904, 912, 593, 2858, 1234, 5952],\n"," 542: [318, 2858, 2019, 4973, 4226, 1213, 608, 750, 1234, 1247],\n"," 557: [527, 1148, 1207, 2858, 1233, 2028, 4993, 1288, 2396, 904],\n"," 563: [296, 1221, 2959, 50, 111, 541, 1213, 2019, 858, 750],\n"," 570: [858, 1148, 5952, 7153, 593, 912, 1196, 2571, 50, 904],\n"," 575: [1148, 1288, 5952, 7153, 527, 912, 919, 923, 1207, 1219],\n"," 594: [11, 1148, 3147, 2762, 2396, 527, 597, 2028, 150, 1584],\n"," 607: [2571, 1148, 1234, 296, 527, 7153, 1213, 1193, 3578, 1036],\n"," 631: [912, 858, 318, 1233, 4973, 904, 50, 1234, 2019, 1213],\n"," 651: [4973, 904, 318, 1222, 4226, 2959, 50, 1208, 111, 924],\n"," 664: [318, 1233, 1148, 912, 904, 858, 2858, 1247, 1207, 527],\n"," 685: [1219, 912, 1394, 904, 4973, 923, 2858, 318, 1207, 1196],\n"," 690: [318, 1148, 527, 1233, 2858, 904, 4993, 1288, 7153, 1247],\n"," 696: [318, 527, 1234, 912, 904, 50, 1148, 1207, 2324, 1233],\n"," 724: [318, 912, 904, 1233, 527, 858, 50, 2858, 4973, 1234],\n"," 738: [527, 318, 1148, 4993, 1704, 2571, 3578, 2028, 2762, 1288],\n"," 762: [1196, 318, 2858, 50, 5952, 904, 7153, 912, 527, 1213],\n"," 763: [318, 3578, 1234, 1704, 2324, 2571, 50, 2762, 1233, 1198],\n"," 770: [1233, 2396, 923, 1230, 1207, 1252, 1247, 3897, 904, 1193],\n"," 796: [318, 912, 904, 2858, 1233, 858, 527, 4973, 923, 1207],\n"," 800: [318, 50, 1148, 2571, 1233, 1193, 858, 4226, 1234, 904],\n"," 829: [1148, 1252, 1288, 5952, 7153, 111, 527, 608, 912, 923],\n"," 836: [527, 318, 904, 1207, 912, 1233, 1148, 2858, 1247, 1704],\n"," 882: [858, 912, 1207, 1193, 904, 1233, 318, 4973, 1247, 919],\n"," 900: [296, 50, 318, 1221, 1213, 912, 2019, 1196, 593, 4226],\n"," 903: [318, 1148, 527, 1233, 904, 3578, 2762, 1207, 1247, 1234],\n"," 914: [318, 1233, 912, 1234, 527, 1193, 904, 1148, 858, 1207],\n"," 918: [1148, 2571, 1288, 318, 1233, 4993, 1230, 3147, 1193, 2762],\n"," 920: [2959, 1193, 2019, 296, 1233, 750, 318, 50, 1213, 4226],\n"," 934: [318, 1148, 1233, 2858, 527, 904, 1193, 7153, 1288, 4993],\n"," 945: [527, 1207, 2396, 1233, 904, 923, 1247, 912, 1148, 2858],\n"," 950: [912, 858, 318, 4973, 1207, 923, 1247, 750, 908, 1213],\n"," 952: [1148, 1233, 2571, 318, 1288, 4993, 1193, 2858, 7153, 1230],\n"," 982: [318, 1233, 1193, 912, 904, 2858, 1148, 2019, 50, 4226],\n"," 989: [1221, 4226, 2959, 750, 318, 2019, 4973, 593, 111, 1148],\n"," 1016: [5952, 7153, 1196, 541, 4993, 1288, 1136, 1221, 2571, 1199],\n"," 1019: [1148, 1233, 318, 1193, 3147, 2571, 1230, 1247, 2762, 858],\n"," 1044: [364, 539, 858, 1148, 1246, 1252, 1288, 4995, 5952, 6377],\n"," 1051: [318, 527, 1207, 1233, 904, 912, 1148, 1247, 1234, 2858],\n"," 174: [1210, 260, 1196, 356, 1035, 1704, 1380, 2324, 919, 1234],\n"," 676: [318, 527, 3578, 1148, 1704, 3147, 2324, 2762, 356, 1234],\n"," 764: [260, 904, 912, 1207, 1196, 1234, 2324, 1148, 1233, 50],\n"," 1052: [318, 50, 1234, 527, 1148, 2571, 1036, 260, 1233, 1198],\n"," 5: [296, 1196, 50, 260, 1213, 1089, 2959, 318, 2019, 4226],\n"," 27: [318, 1148, 1233, 2858, 1193, 1288, 904, 2571, 527, 4993],\n"," 33: [318, 260, 527, 593, 50, 1196, 1234, 1210, 2324, 912],\n"," 134: [858, 1148, 1252, 1288, 541, 912, 923, 1207, 1221, 1225],\n"," 142: [260, 318, 50, 1196, 296, 1210, 1213, 1234, 527, 912],\n"," 156: [2396, 11, 1148, 1233, 527, 1584, 2028, 2762, 1207, 1230],\n"," 167: [593, 1196, 50, 296, 1089, 2959, 1213, 260, 912, 318],\n"," 177: [1233, 858, 1193, 912, 318, 904, 2019, 2858, 4973, 750],\n"," 224: [1148, 3147, 1233, 318, 733, 1230, 1193, 1242, 2000, 3578],\n"," 269: [318, 527, 260, 1148, 1234, 3578, 904, 2324, 1233, 1704],\n"," 312: [318, 1233, 1148, 1193, 858, 2858, 2571, 4226, 50, 1288],\n"," 360: [527, 318, 260, 912, 1207, 904, 919, 1196, 2324, 4973],\n"," 385: [527, 318, 2858, 260, 904, 1148, 1233, 1207, 4993, 1288],\n"," 411: [318, 527, 1233, 260, 1234, 912, 1148, 904, 50, 1207],\n"," 464: [1148, 527, 912, 904, 2858, 1233, 318, 260, 1247, 1207],\n"," 568: [11, 3147, 1230, 1148, 1233, 2396, 802, 2762, 1252, 1193],\n"," 612: [1233, 1148, 318, 904, 1193, 1247, 2858, 1207, 912, 1230],\n"," 630: [2396, 11, 1233, 1230, 62, 1584, 1148, 1207, 3147, 1247],\n"," 706: [296, 50, 318, 2571, 2959, 260, 4226, 1221, 1213, 47],\n"," 737: [296, 2959, 50, 1221, 858, 1213, 318, 1089, 593, 4226],\n"," 749: [318, 1148, 50, 1233, 1234, 527, 260, 2571, 1193, 912],\n"," 756: [260, 527, 318, 912, 904, 1196, 1207, 2858, 1234, 4973],\n"," 811: [1233, 1193, 1230, 3147, 858, 1252, 318, 912, 1242, 1148],\n"," 853: [318, 1233, 1148, 527, 1193, 904, 912, 1207, 1234, 1247],\n"," 884: [318, 1148, 527, 2571, 3578, 260, 1233, 2762, 4993, 1234],\n"," 917: [318, 527, 260, 904, 1148, 1233, 912, 1207, 2858, 1247],\n"," 951: [3147, 1233, 1193, 318, 1230, 1242, 858, 1148, 2000, 2692],\n"," 955: [260, 858, 1148, 47, 593, 912, 1193, 1198, 2571, 3578],\n"," 997: [858, 1148, 1252, 1288, 527, 912, 923, 1207, 1225, 1230],\n"," 1032: [260, 733, 858, 1148, 1246, 1252, 1288, 4995, 5952, 6377],\n"," 1043: [1148, 3147, 11, 733, 597, 2396, 2762, 802, 1230, 1233],\n"," 670: [318, 50, 593, 296, 1234, 2959, 858, 912, 1213, 260],\n"," 923: [260, 1148, 150, 527, 912, 1207, 1247, 2028, 3578, 904],\n"," 931: [11, 597, 3147, 802, 1148, 2000, 587, 2396, 539, 500],\n"," 969: [527, 318, 1704, 260, 1207, 1148, 150, 2028, 2324, 904],\n"," 12: [1148, 318, 1233, 1193, 1230, 1247, 2571, 527, 1288, 904],\n"," 370: [1148, 318, 1233, 527, 260, 2571, 1193, 904, 1234, 4993],\n"," 597: [318, 1233, 904, 858, 1193, 50, 260, 1234, 1148, 527],\n"," 195: [1233, 912, 904, 318, 2396, 1222, 923, 1242, 3147, 1148],\n"," 337: [858, 912, 50, 296, 608, 2019, 2959, 4973, 904, 1193],\n"," 910: [608, 1221, 1219, 111, 2019, 912, 750, 1394, 4973, 541],\n"," 63: [318, 260, 50, 1148, 1196, 2571, 4993, 1234, 7153, 5952],\n"," 70: [1233, 1247, 923, 1250, 919, 2858, 1394, 2396, 1230, 1225],\n"," 99: [2997, 2019, 2959, 1221, 1208, 1233, 1222, 2858, 1732, 2502],\n"," 121: [260, 4993, 5952, 7153, 1704, 1148, 1234, 110, 3578, 4226],\n"," 130: [2959, 2019, 1221, 912, 750, 1222, 2502, 1213, 4226, 318],\n"," 244: [318, 1233, 260, 1207, 4973, 923, 2019, 4226, 908, 1250],\n"," 291: [912, 904, 4973, 608, 1233, 923, 1394, 318, 2858, 1219],\n"," 335: [318, 608, 1233, 50, 2959, 1213, 296, 1221, 1193, 593],\n"," 361: [1233, 912, 904, 318, 923, 1193, 1207, 1247, 4973, 1148],\n"," 470: [2019, 260, 912, 1196, 904, 1193, 908, 1233, 1201, 7153],\n"," 497: [296, 2959, 1221, 2019, 608, 541, 1206, 750, 1213, 50],\n"," 620: [260, 318, 2571, 7153, 4993, 5952, 2858, 50, 1148, 1196],\n"," 648: [3147, 780, 1230, 733, 1242, 2762, 3578, 2692, 2571, 11],\n"," 666: [260, 527, 318, 1288, 904, 923, 111, 1148, 912, 1207],\n"," 710: [260, 912, 904, 1233, 1148, 1247, 1234, 4973, 2324, 923],\n"," 794: [2571, 4993, 1288, 260, 5952, 2858, 318, 1136, 293, 541],\n"," 854: [260, 318, 2571, 1148, 4993, 7153, 1288, 5952, 3578, 1704],\n"," 861: [318, 912, 1233, 904, 1193, 4973, 1234, 50, 2019, 1207],\n"," 819: [1233, 912, 1207, 904, 2396, 4973, 1193, 923, 1247, 858],\n"," 87: [589, 260, 858, 1148, 1252, 1288, 4995, 5952, 6377, 7153],\n"," 317: [1233, 318, 858, 912, 904, 2858, 1148, 2019, 4973, 1247],\n"," 324: [296, 608, 1221, 50, 1196, 593, 260, 1201, 2019, 858],\n"," 387: [318, 912, 50, 593, 1234, 858, 260, 904, 527, 1233],\n"," 451: [296, 260, 50, 1221, 2858, 318, 541, 1136, 111, 1213],\n"," 502: [527, 150, 1207, 62, 1584, 1704, 1721, 17, 2028, 318],\n"," 559: [260, 1148, 527, 904, 2858, 4993, 318, 1233, 2571, 7153],\n"," 973: [858, 1233, 1193, 2019, 912, 750, 318, 4973, 904, 1221],\n"," 1015: [318, 912, 1233, 858, 1207, 1193, 527, 1234, 1247, 4973],\n"," 1017: [318, 2571, 1148, 50, 260, 4226, 1233, 1193, 2858, 1288],\n"," 85: [260, 1196, 1210, 318, 110, 1234, 47, 1198, 1704, 2324],\n"," 306: [318, 1233, 912, 858, 1193, 904, 1234, 1207, 4973, 1247],\n"," 653: [318, 1233, 912, 904, 858, 1193, 50, 1148, 1234, 2858],\n"," 371: [318, 50, 260, 2571, 4226, 1234, 593, 1213, 1198, 858],\n"," 566: [780, 3147, 736, 104, 733, 802, 1233, 2000, 11, 597],\n"," 331: [296, 858, 1221, 2019, 1089, 912, 1222, 750, 2997, 608],\n"," 665: [50, 318, 858, 2959, 1221, 1213, 1233, 1136, 2571, 260],\n"," 872: [318, 912, 858, 1233, 904, 1234, 4973, 4226, 593, 1213],\n"," 879: [858, 527, 912, 923, 1207, 2858, 1233, 318, 4973, 1247],\n"," 486: [318, 1233, 1148, 1193, 858, 50, 2571, 912, 4226, 904],\n"," 817: [2396, 1233, 1584, 1148, 2028, 3147, 2762, 1230, 904, 1242],\n"," 864: [260, 318, 1704, 1207, 904, 1148, 2324, 17, 4993, 912],\n"," 52: [1233, 912, 858, 4973, 1207, 1247, 1230, 318, 923, 2019],\n"," 9: [2571, 1148, 7153, 318, 541, 1136, 1193, 1233, 4226, 858],\n"," 117: [527, 260, 318, 1207, 904, 1704, 1148, 912, 2858, 1233],\n"," 220: [318, 50, 858, 1233, 1193, 4226, 912, 1234, 2959, 1213],\n"," 544: [1206, 1221, 541, 2997, 608, 111, 1201, 2019, 750, 1200],\n"," 546: [2858, 1148, 1288, 1233, 2571, 260, 1193, 1136, 904, 541],\n"," 363: [318, 1233, 1148, 260, 904, 2858, 1193, 912, 527, 858],\n"," 445: [318, 2571, 1148, 260, 50, 2858, 1233, 1193, 4226, 1288],\n"," 492: [260, 4993, 1288, 7153, 1148, 2858, 2571, 527, 318, 2028],\n"," 534: [2858, 541, 111, 1136, 750, 2019, 7153, 1288, 1221, 858],\n"," 234: [296, 589, 1240, 1036, 47, 2502, 380, 2542, 1200, 6874],\n"," 430: [296, 50, 318, 2959, 593, 858, 1213, 4226, 260, 1234],\n"," 1027: [318, 912, 1233, 1234, 858, 1193, 50, 904, 593, 1207],\n"," 140: [1233, 904, 858, 4973, 923, 1207, 2019, 1247, 608, 908],\n"," 373: [919, 356, 1234, 593, 3578, 2324, 50, 527, 1380, 457],\n"," 926: [2959, 296, 1206, 2997, 858, 1221, 2502, 2019, 541, 1222],\n"," 781: [260, 858, 1148, 541, 608, 912, 923, 1221, 1193, 50],\n"," 825: [318, 912, 1207, 904, 1148, 1247, 527, 3147, 1242, 2396],\n"," 913: [1035, 912, 318, 1234, 858, 1233, 364, 4973, 3147, 1207],\n"," 453: [318, 3578, 356, 527, 2324, 1704, 1234, 260, 50, 1036],\n"," 540: [260, 47, 593, 1221, 1196, 50, 1234, 4226, 2959, 296],\n"," 66: [50, 1221, 858, 2019, 318, 4226, 593, 750, 608, 541],\n"," 185: [318, 527, 1207, 1233, 3578, 1148, 3147, 150, 2324, 2762],\n"," 222: [296, 2959, 50, 858, 318, 1221, 4226, 1193, 1213, 2019],\n"," 498: [1233, 2858, 858, 1193, 2019, 111, 750, 923, 904, 1136],\n"," 994: [912, 608, 904, 1394, 527, 1207, 4973, 1219, 260, 923],\n"," 165: [318, 2571, 260, 50, 7153, 1148, 2858, 4226, 1288, 1136],\n"," 202: [260, 858, 1148, 150, 912, 919, 1207, 1247, 1193, 3578],\n"," 180: [260, 1148, 1288, 5952, 7153, 527, 912, 923, 1207, 1225],\n"," 261: [318, 912, 527, 904, 1207, 1233, 4973, 919, 1234, 260],\n"," 435: [318, 1233, 527, 912, 904, 1207, 1148, 1247, 2858, 1193],\n"," 322: [318, 50, 858, 912, 1233, 1193, 4226, 904, 1213, 260],\n"," 238: [260, 7153, 4993, 318, 5952, 1288, 1148, 2571, 527, 904],\n"," 425: [2858, 923, 1233, 1199, 924, 904, 1288, 2019, 912, 1208],\n"," 512: [858, 1233, 912, 2019, 1193, 4973, 904, 750, 923, 1221],\n"," 725: [296, 50, 858, 318, 1221, 1213, 4226, 2019, 1193, 750],\n"," 732: [1148, 527, 4993, 1288, 2028, 1233, 318, 2762, 1247, 7153],\n"," 916: [296, 541, 1221, 2571, 7153, 111, 1136, 1206, 260, 2858],\n"," 736: [2571, 50, 296, 318, 2959, 4226, 1221, 541, 260, 7153],\n"," 961: [318, 50, 1233, 912, 1234, 858, 904, 1148, 593, 260],\n"," 974: [318, 50, 260, 912, 1234, 593, 904, 858, 4226, 1148],\n"," 443: [50, 296, 2571, 260, 1234, 4226, 1036, 1198, 858, 2959],\n"," 1012: [318, 912, 1234, 1233, 858, 919, 904, 527, 50, 1207],\n"," 515: [318, 593, 50, 1234, 858, 904, 1233, 4973, 527, 919],\n"," 288: [260, 527, 912, 1207, 1234, 318, 2324, 1704, 1233, 3578],\n"," 978: [1207, 1035, 527, 912, 318, 364, 2396, 1233, 904, 1247],\n"," 28: [318, 260, 50, 527, 2571, 1148, 1234, 4226, 593, 1198],\n"," 458: [527, 1207, 904, 318, 912, 1233, 1247, 923, 260, 1148],\n"," 475: [858, 1233, 1193, 318, 912, 2019, 50, 750, 4226, 1221],\n"," 592: [318, 2571, 50, 1148, 260, 4226, 1193, 1233, 7153, 858],\n"," 598: [912, 318, 858, 1233, 904, 4973, 1193, 2019, 608, 2858],\n"," 943: [2858, 318, 260, 1148, 1233, 1288, 7153, 904, 4993, 5952],\n"," 55: [858, 2959, 912, 2019, 1233, 4973, 608, 750, 296, 1213],\n"," 520: [1233, 858, 1193, 912, 904, 2019, 4973, 1148, 1247, 50],\n"," 697: [1233, 2396, 923, 1230, 1207, 1252, 1193, 1247, 912, 904],\n"," 849: [858, 1148, 593, 912, 1193, 2571, 50, 1234, 4226, 1233],\n"," 1003: [260, 1148, 1288, 7153, 50, 2858, 4993, 318, 5952, 527],\n"," 705: [912, 608, 858, 318, 4973, 593, 904, 50, 1213, 2019],\n"," 231: [296, 318, 260, 593, 2959, 1213, 1196, 4226, 1221, 47],\n"," 699: [858, 912, 1234, 1233, 593, 1193, 904, 4226, 1213, 260],\n"," 448: [318, 1233, 904, 912, 1148, 1193, 260, 858, 1247, 527],\n"," 750: [318, 527, 260, 1148, 904, 912, 1233, 1234, 1207, 50],\n"," 782: [318, 50, 858, 912, 1233, 1234, 1193, 4226, 904, 593],\n"," 108: [296, 858, 2959, 1221, 2019, 50, 1213, 318, 750, 912],\n"," 29: [318, 1036, 50, 589, 3578, 380, 2571, 1234, 1240, 3147]})"]},"metadata":{},"execution_count":8}],"source":["# 학습 데이터에 나오지 않는 사용자와 아이템의 조합을 준비한다\n","data_test = data_train.build_anti_testset(None)\n","predictions = matrix_factorization.test(data_test)\n","pred_user2items = get_top_n(predictions, n=10)\n","pred_user2items"]},{"cell_type":"code","execution_count":9,"id":"afa174f5","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":841},"id":"afa174f5","executionInfo":{"status":"ok","timestamp":1672119551834,"user_tz":-540,"elapsed":26,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"cc01c6d1-c6f5-4616-a63f-2add1448726a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","6150 2 648 2.0 868244699 \n","6531 2 733 3.0 868244562 \n","6813 2 736 3.0 868244698 \n","7113 2 780 3.0 868244698 \n","7506 2 786 3.0 868244562 \n","7661 2 802 2.0 868244603 \n","7779 2 858 2.0 868245645 \n","8077 2 1049 3.0 868245920 \n","8127 2 1073 3.0 868244562 \n","8381 2 1210 4.0 868245644 \n","8771 2 1356 3.0 868244603 \n","9097 2 1544 3.0 868245920 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","6150 Mission: Impossible (1996) \n","6531 Rock, The (1996) \n","6813 Twister (1996) \n","7113 Independence Day (a.k.a. ID4) (1996) \n","7506 Eraser (1996) \n","7661 Phenomenon (1996) \n","7779 Godfather, The (1972) \n","8077 Ghost and the Darkness, The (1996) \n","8127 Willy Wonka & the Chocolate Factory (1971) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","8771 Star Trek: First Contact (1996) \n","9097 Lost World: Jurassic Park, The (Jurassic Park ... \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","6150 [Action, Adventure, Mystery, Thriller] \n","6531 [Action, Adventure, Thriller] \n","6813 [Action, Adventure, Romance, Thriller] \n","7113 [Action, Adventure, Sci-Fi, War] \n","7506 [Action, Drama, Thriller] \n","7661 [Drama, Romance] \n","7779 [Crime, Drama] \n","8077 [Action, Adventure] \n","8127 [Children, Comedy, Fantasy, Musical] \n","8381 [Action, Adventure, Sci-Fi] \n","8771 [Action, Adventure, Sci-Fi, Thriller] \n","9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","6150 [confusing, confusing plot, memorable sequence... 12.0 \n","6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n","6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n","7113 [action, alien invasion, aliens, will smith, a... 14.0 \n","7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n","7661 [interesting concept, own, john travolta, john... 15.0 \n","7779 [oscar (best picture), marlon brando, classic,... 9.0 \n","8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n","8127 [based on a book, roald dahl, based on a book,... 20.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n","8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n","9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":9}],"source":["# user_id=2인 사용자가 학습 데이터로 평가를 부여한 영화 목록\n","movielens_train[movielens_train.user_id==2]"]},{"cell_type":"code","execution_count":10,"id":"06bb1a90","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"06bb1a90","executionInfo":{"status":"ok","timestamp":1672119551835,"user_tz":-540,"elapsed":23,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"d1d3d0cf-cae7-41ff-bd6c-76121fe4689e"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title genre \\\n","2487 2571 Matrix, The (1999) [Action, Sci-Fi, Thriller] \n","2874 2959 Fight Club (1999) [Action, Crime, Drama, Thriller] \n","3489 3578 Gladiator (2000) [Action, Adventure, Drama] \n","\n"," tag \n","2487 [artificial intelligence, hackers, heroine in ... \n","2874 [based on a book, chuck palahniuk, edward nort... \n","3489 [revenge, crowe's best, gfei own it, dvd, glad... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
24872571Matrix, The (1999)[Action, Sci-Fi, Thriller][artificial intelligence, hackers, heroine in ...
28742959Fight Club (1999)[Action, Crime, Drama, Thriller][based on a book, chuck palahniuk, edward nort...
34893578Gladiator (2000)[Action, Adventure, Drama][revenge, crowe's best, gfei own it, dvd, glad...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":10}],"source":["# user_id=2에 대한 추천(3578, 2571, 2959)\n","movies[movies.movie_id.isin([3578, 2571, 2959])]"]}],"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.7.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "id": "88a3be74", + "metadata": { + "id": "88a3be74" + }, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/MF.ipynb)" + ] + }, + { + "cell_type": "markdown", + "id": "47e2fec5", + "metadata": { + "id": "47e2fec5" + }, + "source": [ + "# 행렬 분해(Matrix Factorization, MF)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "99e09acf", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 3804, + "status": "ok", + "timestamp": 1672119437385, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "99e09acf", + "outputId": "294107d4-f398-41b9-a605-09d7c15bb44f" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-12-27 05:35:29-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n", + "Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n", + "Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 65566137 (63M) [application/zip]\n", + "Saving to: ‘../data/ml-10m.zip’\n", + "\n", + "ml-10m.zip 100%[===================>] 62.53M 63.1MB/s in 1.0s \n", + "\n", + "2022-12-27 05:35:30 (63.1 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n", + "\n", + "Archive: ../data/ml-10m.zip\n", + " creating: ../data/ml-10M100K/\n", + " inflating: ../data/ml-10M100K/allbut.pl \n", + " inflating: ../data/ml-10M100K/movies.dat \n", + " inflating: ../data/ml-10M100K/ratings.dat \n", + " inflating: ../data/ml-10M100K/README.html \n", + " inflating: ../data/ml-10M100K/split_ratings.sh \n", + " inflating: ../data/ml-10M100K/tags.dat \n" + ] + } + ], + "source": [ + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", + "\n", + "# 데이터 다운로드와 압축 풀기\n", + "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", + "!unzip -n ../data/ml-10m.zip -d ../data/" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "179ce864", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 65608, + "status": "ok", + "timestamp": 1672119502987, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "179ce864", + "outputId": "4e5a1760-788a-4246-e64d-8cda917e1a11" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "unique_users=1000, unique_movies=6736\n" + ] + } + ], + "source": [ + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", + "import pandas as pd\n", + "\n", + "# movieID와 제목만 사용\n", + "m_cols = ['movie_id', 'title', 'genre']\n", + "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", + "\n", + "# genre를 list 형식으로 저장한다\n", + "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", + "\n", + "\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", + "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", + "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", + "\n", + "# tag를 소문자로 바꾼다\n", + "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", + "\n", + "\n", + "# tag를 영화별로 list 형식으로 저장한다\n", + "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", + "\n", + "# 태그 정보를 결합한다\n", + "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", + "\n", + "# 평갓값 데이터만 로딩한다\n", + "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", + "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", + "\n", + "\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", + "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", + "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", + "\n", + "\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", + "movielens = ratings.merge(movies, on='movie_id')\n", + "\n", + "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", + "\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", + "\n", + "movielens['timestamp_rank'] = movielens.groupby(\n", + " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", + "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", + "movielens_test = movielens[movielens['timestamp_rank']<= 5]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8c10d538", + "metadata": { + "executionInfo": { + "elapsed": 28, + "status": "ok", + "timestamp": 1672119502988, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "8c10d538" + }, + "outputs": [], + "source": [ + "# 인자 수\n", + "factors = 5\n", + "# 평가수 임곗값\n", + "minimum_num_rating = 100\n", + "# 바이어스 항 사용\n", + "use_biase = False\n", + "# 학습률\n", + "lr_all = 0.005\n", + "# 에폭 수\n", + "n_epochs = 50" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "af591e1a", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 44271, + "status": "ok", + "timestamp": 1672119547233, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "af591e1a", + "outputId": "f5f3025d-2ead-479f-c315-94433d318640" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", + "Collecting surprise\n", + " Downloading surprise-0.1-py2.py3-none-any.whl (1.8 kB)\n", + "Collecting scikit-surprise\n", + " Downloading scikit-surprise-1.1.3.tar.gz (771 kB)\n", + "\u001b[K |████████████████████████████████| 771 kB 4.8 MB/s \n", + "\u001b[?25hRequirement already satisfied: joblib>=1.0.0 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.2.0)\n", + "Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.21.6)\n", + "Requirement already satisfied: scipy>=1.3.2 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.7.3)\n", + "Building wheels for collected packages: scikit-surprise\n", + " Building wheel for scikit-surprise (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + " Created wheel for scikit-surprise: filename=scikit_surprise-1.1.3-cp38-cp38-linux_x86_64.whl size=2626477 sha256=a922027e3c7f6d8735b7192824bc8d1a46af450d003dde385ce514ec0ae33d2d\n", + " Stored in directory: /root/.cache/pip/wheels/af/db/86/2c18183a80ba05da35bf0fb7417aac5cddbd93bcb1b92fd3ea\n", + "Successfully built scikit-surprise\n", + "Installing collected packages: scikit-surprise, surprise\n", + "Successfully installed scikit-surprise-1.1.3 surprise-0.1\n" + ] + } + ], + "source": [ + "!pip install surprise" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "735ff486", + "metadata": { + "executionInfo": { + "elapsed": 1188, + "status": "ok", + "timestamp": 1672119548405, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "735ff486" + }, + "outputs": [], + "source": [ + "from surprise import SVD, Reader\n", + "from surprise import Dataset as SurpriseDataset\n", + "\n", + "# 평가 수가 minimum_num_rating 건 이상 있는 영화로 줄인다\n", + "filtered_movielens_train = movielens_train.groupby(\"movie_id\").filter(\n", + " lambda x: len(x[\"movie_id\"]) >= minimum_num_rating\n", + ")\n", + "\n", + "# Surprise용으로 데이터를 가공한다\n", + "reader = Reader(rating_scale=(0.5, 5))\n", + "data_train = SurpriseDataset.load_from_df(\n", + " filtered_movielens_train[[\"user_id\", \"movie_id\", \"rating\"]], reader\n", + ").build_full_trainset()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "cbc512a3", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 1327, + "status": "ok", + "timestamp": 1672119549729, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "cbc512a3", + "outputId": "b776c506-902c-4525-a5de-88ecc825e60b" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Surprise로 행렬 분해를 학습한다\n", + "# 이름은 SVD지만, 특이값 분석이 아니라 Matrix Factorization가 실행된다\n", + "matrix_factorization = SVD(n_factors=factors, n_epochs=n_epochs, lr_all=lr_all, biased=use_biase)\n", + "matrix_factorization.fit(data_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "48876224", + "metadata": { + "executionInfo": { + "elapsed": 13, + "status": "ok", + "timestamp": 1672119549730, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "48876224" + }, + "outputs": [], + "source": [ + "from collections import defaultdict\n", + "\n", + "def get_top_n(predictions, n=10):\n", + " # 각 사용자별로 예측된 아이템을 저장한다\n", + " top_n = defaultdict(list)\n", + " for uid, iid, true_r, est, _ in predictions:\n", + " top_n[uid].append((iid, est))\n", + "\n", + " # 사용자별로 아이템을 예측 평갓값 순으로 나열해 상위 n개를 저장한다\n", + " for uid, user_ratings in top_n.items():\n", + " user_ratings.sort(key=lambda x: x[1], reverse=True)\n", + " top_n[uid] = [d[0] for d in user_ratings[:n]]\n", + "\n", + " return top_n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "a2b23304", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 2114, + "status": "ok", + "timestamp": 1672119551833, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "a2b23304", + "outputId": "2318faf1-5003-42d9-f6aa-bc551e8ab571" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "defaultdict(list,\n", + " {1: [110, 260, 590, 733, 802, 858, 1073, 1210, 1148, 1246],\n", + " 22: [318, 260, 608, 1196, 912, 1234, 1213, 858, 904, 2959],\n", + " 26: [260, 1210, 318, 527, 1196, 50, 593, 1234, 3578, 1704],\n", + " 30: [1148, 912, 457, 3578, 1234, 2762, 1704, 3147, 1233, 2324],\n", + " 34: [2324, 1148, 1234, 1207, 4306, 1233, 904, 497, 1247, 17],\n", + " 38: [1380, 50, 920, 1036, 1234, 1210, 2324, 2081, 165, 589],\n", + " 50: [260, 1207, 904, 2858, 1148, 4993, 1704, 5952, 912, 1233],\n", + " 53: [318, 1233, 858, 912, 1193, 904, 2019, 4973, 4226, 1234],\n", + " 54: [1210, 1380, 3578, 260, 1196, 1704, 527, 2324, 1234, 1198],\n", + " 67: [2959, 1234, 1089, 858, 1213, 1036, 912, 4226, 1221, 1201],\n", + " 71: [318, 260, 50, 593, 912, 1234, 527, 1196, 858, 904],\n", + " 76: [1721, 597, 587, 3578, 356, 539, 780, 500, 527, 786],\n", + " 88: [318, 1036, 50, 589, 1234, 3147, 2000, 457, 593, 733],\n", + " 89: [593, 1234, 2959, 858, 912, 1213, 47, 4226, 1036, 1221],\n", + " 94: [260, 1704, 1148, 4993, 1207, 2028, 17, 904, 2324, 2762],\n", + " 95: [50, 260, 1196, 1210, 47, 1234, 1213, 2959, 4226, 1198],\n", + " 100: [1199, 1206, 2019, 541, 1221, 750, 924, 1208, 923, 1219],\n", + " 101: [3147, 3578, 1234, 1036, 919, 1242, 2000, 733, 1035, 2324],\n", + " 102: [50, 260, 1196, 593, 1210, 1213, 2959, 1234, 4226, 1221],\n", + " 103: [318, 1148, 1193, 858, 2858, 904, 912, 2571, 4226, 7153],\n", + " 111: [50, 260, 1210, 1036, 47, 3578, 1196, 1234, 2571, 1198],\n", + " 116: [1721, 1380, 920, 3578, 919, 527, 1704, 457, 2324, 832],\n", + " 118: [260, 1196, 1210, 1234, 904, 5952, 4993, 912, 1704, 7153],\n", + " 139: [50, 2542, 2692, 4011, 1200, 4226, 6874, 858, 1193, 1221],\n", + " 143: [912, 1233, 1207, 2019, 908, 750, 1247, 1213, 1250, 1234],\n", + " 144: [111, 1193, 908, 904, 2502, 1234, 1288, 923, 1225, 1247],\n", + " 162: [318, 50, 593, 1234, 608, 912, 1213, 904, 4226, 2324],\n", + " 172: [318, 260, 2571, 50, 1148, 527, 3578, 1234, 1198, 4993],\n", + " 173: [3578, 1704, 2324, 1148, 2762, 2571, 4306, 2028, 3147, 4993],\n", + " 187: [780, 3147, 587, 2396, 62, 11, 736, 1242, 733, 1641],\n", + " 193: [3578, 1035, 919, 1234, 2324, 1704, 1036, 3147, 1242, 912],\n", + " 208: [733, 780, 597, 919, 457, 3578, 1234, 1036, 2000, 3147],\n", + " 210: [912, 50, 1234, 527, 858, 2324, 904, 919, 1193, 1207],\n", + " 214: [318, 1207, 1233, 904, 2858, 1247, 2028, 912, 1288, 5952],\n", + " 228: [3147, 733, 736, 2000, 802, 1610, 11, 786, 2706, 1242],\n", + " 232: [2571, 7153, 5952, 4993, 2858, 1288, 1148, 1136, 4226, 1221],\n", + " 236: [2959, 858, 1193, 1234, 1233, 1036, 4226, 4011, 1213, 912],\n", + " 259: [318, 1036, 1240, 589, 1234, 380, 3578, 4011, 110, 1213],\n", + " 260: [50, 318, 2959, 1234, 2571, 4226, 3578, 1213, 4011, 110],\n", + " 267: [1148, 1213, 904, 36, 908, 4011, 912, 1197, 1304, 1250],\n", + " 268: [1721, 1035, 919, 920, 1380, 1641, 3147, 2671, 1242, 3578],\n", + " 271: [527, 3578, 1704, 356, 150, 318, 17, 2324, 590, 2762],\n", + " 274: [527, 593, 608, 912, 50, 318, 904, 296, 1213, 4226],\n", + " 281: [1234, 858, 912, 1233, 1193, 2959, 919, 904, 4973, 4226],\n", + " 287: [318, 260, 2571, 50, 1148, 3578, 527, 1198, 4993, 1234],\n", + " 292: [1219, 2019, 904, 908, 1199, 923, 1201, 1233, 1208, 778],\n", + " 296: [260, 1234, 1196, 1148, 1198, 912, 1136, 1210, 608, 908],\n", + " 303: [111, 1199, 2019, 923, 1208, 1148, 904, 1193, 1206, 908],\n", + " 307: [4993, 1288, 7153, 1148, 5952, 2858, 318, 1136, 293, 4226],\n", + " 310: [3578, 1210, 904, 150, 4306, 1148, 1233, 6539, 1242, 4226],\n", + " 315: [1721, 494, 653, 1917, 2628, 1584, 3, 786, 832, 802],\n", + " 320: [50, 1221, 1213, 318, 1201, 858, 608, 1234, 1198, 2019],\n", + " 326: [260, 858, 1148, 527, 912, 1193, 904, 2858, 1233, 318],\n", + " 332: [527, 912, 1207, 904, 919, 1233, 4973, 1394, 1035, 1247],\n", + " 339: [260, 527, 50, 1234, 3578, 2571, 2324, 1210, 1196, 1704],\n", + " 343: [318, 3578, 3147, 733, 1242, 1234, 2000, 1036, 527, 597],\n", + " 355: [260, 1196, 1234, 4226, 1213, 527, 912, 2571, 858, 904],\n", + " 364: [858, 912, 1234, 1233, 2959, 1193, 1213, 904, 4226, 4973],\n", + " 365: [858, 912, 904, 1233, 318, 4973, 1394, 1207, 608, 919],\n", + " 368: [1221, 1213, 1193, 318, 1233, 2858, 111, 1208, 904, 1222],\n", + " 381: [260, 1148, 912, 1207, 1247, 1193, 2028, 2396, 3578, 904],\n", + " 382: [527, 318, 1207, 1233, 1148, 904, 912, 1247, 1704, 2028],\n", + " 383: [1219, 923, 1199, 1288, 904, 1094, 1394, 1136, 2019, 1080],\n", + " 391: [1234, 50, 3578, 527, 1233, 1148, 3147, 2324, 1036, 912],\n", + " 396: [858, 593, 608, 912, 1221, 1193, 50, 904, 296, 1213],\n", + " 398: [1704, 318, 1210, 17, 2324, 3578, 1207, 6539, 919, 4993],\n", + " 406: [318, 527, 1207, 912, 1233, 904, 1234, 919, 2324, 1148],\n", + " 409: [780, 1917, 3578, 380, 2628, 733, 786, 2001, 2000, 3147],\n", + " 410: [3147, 1148, 3578, 2762, 1233, 2000, 2396, 2028, 1230, 457],\n", + " 416: [318, 912, 527, 919, 1207, 904, 1035, 1233, 1234, 4973],\n", + " 418: [260, 1148, 1288, 5952, 7153, 527, 541, 923, 1199, 1196],\n", + " 419: [2959, 1206, 6874, 2502, 7153, 223, 2019, 293, 1080, 1196],\n", + " 421: [527, 1035, 1704, 1028, 17, 919, 364, 1721, 1207, 2324],\n", + " 424: [1207, 1219, 1233, 4973, 1394, 111, 5952, 2019, 858, 1288],\n", + " 426: [2502, 1374, 1242, 17, 1278, 2791, 1356, 112, 1376, 1073],\n", + " 432: [912, 608, 904, 2858, 4973, 923, 1233, 858, 260, 1219],\n", + " 434: [1288, 1148, 318, 17, 904, 34, 1207, 923, 509, 1358],\n", + " 436: [260, 2571, 1234, 4226, 1213, 858, 1198, 1148, 1196, 912],\n", + " 438: [4993, 7153, 50, 5952, 1288, 4226, 47, 1213, 6874, 527],\n", + " 441: [260, 318, 527, 3578, 1210, 1704, 2571, 356, 1148, 4993],\n", + " 446: [50, 260, 858, 4226, 2571, 1213, 1193, 1233, 1148, 1221],\n", + " 452: [1036, 2959, 2000, 380, 1234, 589, 733, 919, 593, 1035],\n", + " 456: [541, 1221, 2959, 2571, 1136, 4226, 858, 750, 2019, 1213],\n", + " 459: [50, 2502, 1201, 1221, 223, 1206, 1213, 2692, 6, 1198],\n", + " 460: [527, 50, 1234, 318, 3578, 260, 2324, 356, 912, 1036],\n", + " 463: [1234, 1213, 4011, 912, 1148, 1304, 380, 919, 1247, 7153],\n", + " 468: [260, 1196, 4993, 5952, 7153, 1210, 2571, 1288, 2858, 318],\n", + " 469: [733, 858, 1252, 1288, 1207, 1247, 1193, 50, 904, 1617],\n", + " 472: [1721, 919, 527, 1207, 2324, 3578, 500, 2396, 1246, 920],\n", + " 476: [1193, 858, 904, 912, 1288, 1247, 1213, 111, 908, 1207],\n", + " 480: [111, 1089, 1213, 923, 908, 778, 1208, 1233, 1201, 1193],\n", + " 482: [1233, 1222, 912, 1230, 2019, 4973, 1252, 750, 2692, 904],\n", + " 493: [912, 904, 1234, 593, 1196, 1207, 1233, 919, 1148, 1247],\n", + " 494: [2959, 2502, 2542, 1206, 858, 1200, 1221, 2997, 2692, 1201],\n", + " 496: [260, 1196, 318, 50, 527, 1234, 1198, 1704, 110, 2324],\n", + " 501: [527, 1207, 318, 904, 1233, 2324, 1247, 4973, 2858, 1035],\n", + " 504: [1233, 1148, 904, 1193, 2858, 912, 1247, 1207, 858, 1288],\n", + " 505: [527, 1704, 3578, 2324, 1207, 1234, 919, 1148, 904, 912],\n", + " 511: [527, 318, 1704, 356, 260, 3578, 2324, 919, 1035, 17],\n", + " 516: [1233, 1193, 912, 904, 1148, 1247, 1252, 1207, 50, 923],\n", + " 525: [260, 1210, 1196, 527, 50, 356, 1704, 3578, 2324, 1234],\n", + " 530: [912, 919, 1035, 1207, 593, 1234, 904, 4973, 527, 1394],\n", + " 531: [527, 1207, 919, 1035, 2324, 912, 1704, 2396, 1233, 904],\n", + " 533: [1213, 111, 2329, 4011, 58, 778, 1090, 2194, 4995, 150],\n", + " 536: [527, 318, 1704, 2324, 1207, 3578, 919, 356, 1035, 590],\n", + " 543: [2028, 1234, 1233, 1288, 36, 1242, 497, 4011, 1250, 2329],\n", + " 547: [260, 1210, 1196, 1704, 318, 4993, 5952, 17, 2571, 7153],\n", + " 549: [912, 919, 1035, 1207, 527, 1233, 904, 1234, 4973, 364],\n", + " 553: [858, 541, 778, 1206, 1221, 1193, 1732, 4226, 1089, 1200],\n", + " 556: [260, 1196, 1210, 5952, 4993, 7153, 2571, 608, 1198, 1704],\n", + " 558: [1233, 4973, 904, 919, 1193, 1250, 2019, 908, 1225, 750],\n", + " 562: [1035, 1721, 919, 1380, 920, 2000, 1101, 3147, 2706, 786],\n", + " 567: [780, 786, 733, 2000, 1917, 3147, 1721, 2001, 802, 3578],\n", + " 571: [296, 608, 2019, 912, 1213, 750, 1233, 1193, 2959, 111],\n", + " 572: [318, 1148, 36, 3578, 1036, 1233, 1704, 2019, 1225, 1304],\n", + " 577: [356, 1036, 2959, 919, 47, 3578, 2324, 1213, 1380, 110],\n", + " 581: [912, 1233, 904, 1207, 4973, 858, 2858, 1247, 923, 1193],\n", + " 585: [1221, 4973, 1233, 1208, 4226, 2502, 3897, 2542, 1250, 7153],\n", + " 593: [1210, 260, 1196, 1036, 2571, 1240, 1198, 3578, 1234, 2959],\n", + " 601: [1035, 2324, 1704, 3578, 1234, 590, 1207, 6539, 50, 4306],\n", + " 604: [2959, 2502, 1221, 1089, 2542, 1200, 1201, 1206, 1213, 541],\n", + " 605: [593, 1213, 912, 1221, 858, 1234, 4226, 904, 2019, 2959],\n", + " 609: [1234, 912, 260, 2324, 904, 919, 1233, 1207, 858, 3578],\n", + " 628: [1234, 527, 50, 3578, 593, 2324, 260, 912, 1148, 1233],\n", + " 629: [260, 4993, 318, 2571, 7153, 1148, 5952, 1288, 527, 2858],\n", + " 634: [527, 3578, 50, 1234, 296, 318, 2324, 1704, 1213, 912],\n", + " 645: [3147, 1193, 1233, 858, 2959, 1036, 2692, 733, 4011, 1242],\n", + " 650: [111, 912, 923, 1221, 1136, 2959, 296, 1213, 1233, 750],\n", + " 656: [527, 3578, 260, 1704, 2324, 1148, 1234, 2762, 2571, 2028],\n", + " 657: [1394, 1199, 2019, 1233, 750, 1136, 1080, 1288, 1222, 1148],\n", + " 669: [527, 3578, 919, 1035, 2324, 1234, 1704, 1207, 912, 260],\n", + " 678: [3578, 2571, 47, 2324, 1704, 1148, 4011, 2000, 4226, 36],\n", + " 683: [3147, 318, 50, 1240, 457, 4011, 2959, 1234, 2706, 1610],\n", + " 688: [1288, 1221, 1208, 223, 293, 1148, 3996, 1079, 318, 1197],\n", + " 689: [527, 912, 1207, 904, 919, 1234, 1233, 4973, 1035, 260],\n", + " 693: [1035, 919, 912, 1207, 1233, 1234, 904, 4973, 2324, 1242],\n", + " 701: [858, 912, 2959, 1233, 4973, 318, 593, 1193, 1234, 919],\n", + " 716: [5952, 111, 1288, 7153, 4993, 923, 1136, 1208, 1219, 1080],\n", + " 719: [3147, 1233, 1641, 2396, 919, 2706, 1242, 1035, 1230, 912],\n", + " 720: [1233, 3147, 858, 1193, 912, 1242, 1234, 1230, 2959, 1222],\n", + " 734: [527, 318, 3578, 2324, 1704, 150, 912, 904, 1148, 2762],\n", + " 735: [318, 260, 1196, 1234, 527, 1210, 912, 1198, 1213, 2324],\n", + " 739: [296, 2502, 858, 1036, 1234, 318, 1213, 1201, 1220, 4011],\n", + " 745: [1234, 912, 919, 2324, 356, 4973, 904, 1201, 1304, 2019],\n", + " 755: [858, 1233, 912, 2019, 1193, 750, 4973, 904, 1221, 2858],\n", + " 758: [527, 1704, 17, 356, 260, 3578, 318, 1210, 2324, 1028],\n", + " 767: [1193, 50, 1233, 1234, 1148, 4226, 2959, 912, 4011, 1213],\n", + " 769: [260, 1196, 4993, 1210, 5952, 7153, 2571, 1288, 1148, 2858],\n", + " 775: [260, 1210, 1148, 1288, 5952, 6539, 7153, 527, 1207, 1196],\n", + " 785: [858, 2959, 1234, 912, 1213, 1193, 4226, 1233, 904, 1221],\n", + " 786: [589, 293, 2692, 1148, 380, 4993, 7153, 1288, 296, 36],\n", + " 789: [260, 1210, 1704, 3578, 17, 1196, 2324, 4993, 6539, 2571],\n", + " 792: [527, 260, 1704, 4993, 1148, 3578, 17, 2571, 2028, 1210],\n", + " 795: [260, 2571, 1196, 1221, 4226, 1213, 2959, 7153, 858, 1136],\n", + " 798: [36, 4011, 1233, 2329, 223, 163, 1358, 1997, 4027, 16],\n", + " 799: [919, 1035, 1234, 2324, 912, 3578, 260, 1207, 1704, 50],\n", + " 802: [2571, 3578, 1036, 2000, 1148, 1240, 3147, 1917, 2001, 1291],\n", + " 806: [1207, 912, 1233, 904, 2396, 1247, 923, 919, 4973, 1394],\n", + " 807: [260, 858, 527, 593, 912, 50, 1234, 1213, 4226, 2324],\n", + " 816: [527, 1721, 2396, 62, 1207, 1584, 539, 919, 597, 500],\n", + " 827: [260, 1148, 527, 904, 4993, 318, 2858, 2571, 7153, 1196],\n", + " 828: [356, 539, 920, 1035, 1380, 1721, 786, 919, 1101, 3578],\n", + " 846: [2959, 858, 1193, 2542, 2502, 1233, 1036, 1234, 4011, 3147],\n", + " 859: [50, 1221, 47, 1213, 608, 318, 1201, 750, 1234, 2502],\n", + " 862: [1035, 1721, 919, 1028, 1207, 62, 590, 2324, 2396, 920],\n", + " 870: [50, 260, 1234, 2571, 3578, 1148, 1198, 2324, 4226, 1036],\n", + " 876: [1035, 919, 912, 1207, 1234, 364, 904, 2324, 1233, 4973],\n", + " 881: [1035, 1380, 919, 920, 2324, 1234, 1210, 3578, 1704, 260],\n", + " 885: [912, 4973, 1234, 1233, 2858, 4226, 1394, 923, 750, 2324],\n", + " 886: [7153, 1148, 4993, 5952, 4226, 4011, 111, 6874, 1291, 1213],\n", + " 889: [1148, 318, 1233, 527, 4993, 1288, 2762, 2028, 1247, 2858],\n", + " 890: [380, 165, 318, 3147, 1148, 2001, 36, 1610, 1270, 1198],\n", + " 891: [1288, 111, 1136, 1221, 1148, 750, 2019, 1213, 1199, 1208],\n", + " 896: [912, 1219, 1394, 4973, 904, 858, 2019, 111, 2858, 923],\n", + " 897: [1233, 912, 318, 858, 1193, 904, 4973, 1207, 1247, 1234],\n", + " 898: [527, 318, 1148, 1704, 3578, 4993, 2762, 2028, 2324, 1207],\n", + " 908: [1148, 593, 912, 1207, 1225, 1247, 1193, 3578, 50, 904],\n", + " 922: [1242, 733, 2000, 919, 457, 1234, 1233, 1035, 1036, 2324],\n", + " 930: [919, 1207, 1233, 1035, 912, 3147, 2396, 1242, 3578, 2324],\n", + " 938: [3578, 50, 1234, 1036, 356, 527, 2324, 3147, 919, 1198],\n", + " 956: [1196, 1210, 2959, 260, 6874, 1240, 1089, 223, 1201, 2571],\n", + " 958: [1394, 912, 1035, 919, 4973, 608, 364, 1207, 1073, 904],\n", + " 968: [527, 912, 1207, 904, 919, 1233, 1234, 2324, 1247, 1035],\n", + " 977: [5952, 7153, 4993, 2997, 2019, 1219, 1233, 4034, 3996, 3897],\n", + " 987: [1721, 1035, 919, 597, 539, 2396, 1641, 3147, 500, 1242],\n", + " 990: [608, 912, 1394, 1035, 858, 2959, 4973, 919, 1089, 1234],\n", + " 996: [1233, 912, 1207, 904, 1193, 1247, 2396, 858, 4973, 919],\n", + " 1004: [527, 3578, 1234, 2324, 1148, 912, 1036, 1704, 919, 1233],\n", + " 1005: [1148,\n", + " 4993,\n", + " 1704,\n", + " 2028,\n", + " 3578,\n", + " 2762,\n", + " 2571,\n", + " 1288,\n", + " 1207,\n", + " 7153],\n", + " 1008: [1234, 1213, 1233, 904, 2019, 1089, 750, 4011, 908, 2324],\n", + " 1029: [2959, 1036, 589, 1240, 2502, 2542, 1234, 4011, 1213, 1089],\n", + " 1037: [858, 1233, 912, 1193, 318, 904, 4973, 2019, 750, 4226],\n", + " 1050: [260, 2571, 7153, 5952, 4993, 1288, 541, 2858, 1136, 1196],\n", + " 4: [356, 260, 1210, 527, 1196, 3578, 1704, 17, 318, 2324],\n", + " 8: [296, 2502, 2692, 1221, 318, 1201, 1213, 750, 1193, 1288],\n", + " 18: [50, 4226, 1221, 1200, 293, 2692, 1213, 6874, 858, 1148],\n", + " 36: [318, 1234, 912, 47, 1193, 2542, 4973, 1233, 1035, 1201],\n", + " 47: [380, 1234, 356, 47, 2000, 457, 3147, 2324, 6, 1304],\n", + " 59: [527, 260, 1704, 1207, 1148, 2324, 904, 912, 1234, 3578],\n", + " 62: [356, 1035, 3578, 919, 1234, 2324, 457, 50, 1036, 527],\n", + " 77: [318, 3578, 50, 1234, 260, 2324, 1210, 1704, 1036, 919],\n", + " 79: [858, 912, 2959, 1221, 1213, 2019, 4973, 750, 4226, 1089],\n", + " 80: [1233, 858, 1193, 912, 1234, 904, 1148, 4226, 4973, 1247],\n", + " 119: [912, 50, 1234, 919, 904, 4973, 1233, 527, 608, 1207],\n", + " 122: [541, 912, 923, 1199, 1219, 908, 1233, 750, 924, 2019],\n", + " 125: [1201, 1288, 778, 1617, 908, 1304, 2329, 1090, 1234, 1252],\n", + " 126: [4973, 908, 1035, 2019, 1233, 17, 750, 58, 551, 1199],\n", + " 132: [912, 1234, 919, 1233, 858, 50, 1035, 1193, 1207, 904],\n", + " 141: [3578, 318, 1704, 150, 2324, 919, 1035, 1234, 260, 1721],\n", + " 154: [318, 4226, 858, 1234, 1221, 4011, 1233, 1136, 7153, 2019],\n", + " 155: [1233, 912, 2019, 904, 4973, 1234, 4226, 750, 1221, 1222],\n", + " 163: [2571, 2959, 1200, 541, 1206, 6874, 1240, 1221, 293, 7153],\n", + " 164: [1233, 858, 912, 1193, 4973, 904, 1234, 1222, 1207, 919],\n", + " 170: [1221, 6874, 1200, 1201, 1213, 2502, 541, 1089, 260, 589],\n", + " 171: [912, 919, 1035, 364, 1207, 1234, 1233, 1242, 2324, 593],\n", + " 176: [318, 527, 1207, 260, 904, 912, 1233, 1148, 2324, 1704],\n", + " 182: [260, 1148, 904, 1233, 1584, 1035, 1288, 1198, 1252, 1210],\n", + " 190: [527, 1288, 17, 1704, 2858, 1148, 34, 509, 318, 1358],\n", + " 197: [2959, 296, 912, 2502, 608, 4973, 2019, 1222, 593, 1213],\n", + " 198: [1233, 2019, 4973, 904, 908, 4011, 1201, 2542, 1198, 1247],\n", + " 199: [527, 1035, 919, 318, 1207, 1704, 2324, 364, 356, 1028],\n", + " 212: [2858, 2502, 1222, 1233, 2542, 3897, 1230, 1079, 1247, 4011],\n", + " 221: [2959, 1240, 1234, 3578, 4011, 2542, 3147, 6, 2502, 4226],\n", + " 223: [356, 364, 110, 260, 858, 1210, 1148, 1246, 1252, 1288],\n", + " 226: [912, 1193, 2959, 1233, 2019, 4973, 750, 1252, 1230, 1247],\n", + " 241: [2959, 858, 296, 50, 1193, 912, 2502, 1233, 318, 2542],\n", + " 247: [1035, 919, 318, 3578, 1234, 2324, 1721, 1380, 527, 3147],\n", + " 249: [858, 1234, 1233, 912, 1193, 904, 260, 1148, 2019, 1221],\n", + " 254: [7153, 4226, 2019, 1213, 4993, 1148, 608, 1198, 1201, 904],\n", + " 264: [318, 912, 260, 904, 858, 608, 527, 1234, 1233, 4973],\n", + " 273: [1234, 1233, 912, 1193, 858, 904, 1148, 1207, 1242, 919],\n", + " 275: [1219, 1394, 912, 4973, 858, 923, 2019, 1221, 908, 1213],\n", + " 276: [1221, 2019, 1148, 1233, 908, 904, 1201, 1230, 912, 1266],\n", + " 293: [527, 356, 3578, 2324, 1234, 919, 1035, 1704, 260, 50],\n", + " 294: [2959, 593, 1213, 858, 1234, 1036, 1089, 1221, 4226, 1240],\n", + " 295: [858, 912, 904, 1233, 318, 4973, 1193, 1250, 593, 923],\n", + " 318: [1288, 1094, 1233, 1207, 924, 1199, 1358, 1219, 908, 1252],\n", + " 321: [318, 527, 919, 912, 1207, 1035, 1234, 2324, 904, 1233],\n", + " 345: [318, 50, 858, 1233, 4226, 1213, 1221, 912, 2019, 1148],\n", + " 346: [3147, 733, 2000, 1242, 1233, 318, 1036, 1193, 858, 589],\n", + " 348: [1234, 260, 1233, 912, 904, 1136, 1247, 908, 1225, 2324],\n", + " 349: [260, 1704, 1210, 1196, 4993, 1148, 2324, 5952, 3578, 7153],\n", + " 354: [527, 1207, 919, 2324, 260, 1234, 904, 1233, 1035, 1148],\n", + " 359: [608, 111, 1394, 1199, 2019, 912, 1221, 858, 904, 1208],\n", + " 366: [1233, 318, 1193, 1148, 912, 858, 904, 1247, 1230, 1207],\n", + " 369: [2571, 50, 1240, 260, 47, 1210, 1036, 589, 6874, 1196],\n", + " 384: [3578, 527, 1704, 260, 380, 2324, 1210, 1148, 2762, 2571],\n", + " 390: [1221, 912, 2019, 750, 1233, 1089, 908, 541, 111, 1222],\n", + " 392: [858, 912, 1233, 2019, 2858, 904, 608, 1193, 4973, 750],\n", + " 403: [2959, 858, 912, 2019, 608, 4973, 1221, 1213, 1193, 1089],\n", + " 407: [318, 36, 293, 1288, 4011, 4226, 1193, 3147, 527, 2858],\n", + " 414: [858, 1193, 2502, 1222, 2019, 1233, 750, 1221, 2542, 912],\n", + " 431: [858, 912, 1234, 1233, 904, 1193, 593, 527, 1207, 4226],\n", + " 454: [260, 527, 1210, 318, 1196, 1704, 3578, 4993, 2324, 356],\n", + " 465: [912, 2019, 750, 1394, 1233, 904, 541, 1199, 1201, 1136],\n", + " 481: [1193, 1233, 1234, 1148, 750, 1222, 2692, 1247, 4973, 3147],\n", + " 485: [2019, 750, 912, 4973, 2502, 1233, 1206, 2542, 1394, 1201],\n", + " 503: [260, 50, 1196, 608, 1210, 1234, 912, 47, 904, 1089],\n", + " 513: [7153, 5952, 4993, 4226, 4973, 3897, 1358, 1250, 235, 1213],\n", + " 517: [260, 1210, 1196, 593, 527, 1234, 2571, 1198, 1213, 5952],\n", + " 545: [1199, 1230, 912, 908, 1234, 1148, 1997, 1250, 36, 3147],\n", + " 552: [260, 47, 2571, 1221, 593, 1196, 1240, 1198, 1036, 858],\n", + " 554: [260, 1196, 1288, 1199, 1210, 1136, 541, 923, 1080, 1221],\n", + " 555: [1036, 1221, 36, 1304, 2692, 541, 2324, 1200, 904, 6],\n", + " 561: [50, 293, 318, 1198, 1148, 1288, 223, 36, 1136, 1221],\n", + " 565: [318, 527, 1234, 912, 1233, 50, 2324, 904, 593, 260],\n", + " 591: [1233, 2396, 1230, 912, 1193, 858, 1252, 1073, 4973, 3897],\n", + " 617: [1704, 4993, 3578, 318, 2571, 2028, 2628, 2762, 5952, 1288],\n", + " 621: [1233, 2542, 1080, 1278, 4011, 2329, 2692, 3897, 1387, 7153],\n", + " 622: [858, 1148, 1193, 3578, 50, 1234, 1233, 4226, 1036, 912],\n", + " 623: [1233, 912, 858, 1193, 50, 904, 1234, 1148, 4226, 2858],\n", + " 633: [1199, 4973, 924, 2997, 1080, 778, 1247, 1079, 2329, 1148],\n", + " 636: [2858, 1234, 1247, 4226, 1288, 1207, 1230, 36, 1252, 1242],\n", + " 638: [1148, 4993, 1704, 2571, 7153, 1288, 2028, 5952, 2858, 2762],\n", + " 641: [356, 3578, 50, 1210, 260, 527, 1234, 2324, 110, 1196],\n", + " 646: [318, 50, 260, 1234, 527, 912, 858, 4226, 904, 1213],\n", + " 654: [919, 527, 1035, 912, 1234, 2324, 1207, 904, 50, 3578],\n", + " 655: [527, 593, 912, 3578, 50, 1234, 2324, 4226, 904, 1233],\n", + " 658: [50, 858, 318, 1221, 1213, 1193, 2019, 750, 541, 2502],\n", + " 660: [1233, 1207, 923, 912, 1247, 1148, 2396, 1252, 1230, 1250],\n", + " 661: [50, 2571, 1148, 1036, 1193, 1234, 4226, 858, 1233, 4011],\n", + " 677: [1207, 912, 904, 1233, 2324, 260, 1148, 1234, 919, 1247],\n", + " 714: [912, 1234, 1233, 593, 1207, 1193, 1247, 1250, 1213, 1242],\n", + " 715: [2959, 858, 1221, 50, 541, 2019, 750, 1193, 1213, 4226],\n", + " 723: [912, 858, 4973, 1394, 904, 593, 1207, 2019, 919, 1234],\n", + " 731: [3578, 50, 1148, 1234, 1198, 3147, 457, 4993, 4306, 36],\n", + " 742: [1233, 1193, 1288, 1230, 36, 858, 904, 2692, 1252, 527],\n", + " 743: [527, 318, 3578, 260, 1210, 1704, 2324, 1035, 110, 593],\n", + " 752: [912, 318, 858, 4973, 904, 1233, 608, 2019, 1193, 593],\n", + " 772: [1394, 912, 1219, 904, 858, 923, 318, 2019, 1207, 908],\n", + " 780: [3578, 912, 919, 904, 1207, 1704, 1035, 1148, 4226, 1247],\n", + " 788: [1234, 912, 919, 1233, 1193, 1213, 296, 904, 1035, 4973],\n", + " 814: [858, 1193, 912, 1222, 4973, 1230, 1252, 2019, 904, 750],\n", + " 823: [593, 50, 318, 1234, 356, 2324, 919, 527, 47, 3578],\n", + " 826: [1148, 1199, 2692, 2502, 293, 36, 1247, 1198, 1225, 1266],\n", + " 833: [1233, 1193, 904, 2019, 912, 4226, 7153, 50, 1247, 4973],\n", + " 838: [2019, 1394, 750, 1199, 1221, 924, 1222, 1080, 1250, 1252],\n", + " 842: [858, 1148, 527, 912, 919, 1207, 1247, 1193, 904, 1234],\n", + " 852: [50, 3578, 1234, 1036, 260, 110, 527, 1210, 2324, 1704],\n", + " 878: [2858, 7153, 1148, 5952, 4993, 1233, 2571, 4226, 1617, 2997],\n", + " 887: [260, 858, 1148, 1252, 1288, 5952, 7153, 111, 527, 541],\n", + " 895: [527, 1704, 3578, 1721, 318, 17, 2324, 62, 587, 1584],\n", + " 899: [318, 50, 858, 260, 1233, 1234, 912, 1193, 4226, 1148],\n", + " 902: [912, 1234, 1233, 4973, 904, 1221, 2019, 919, 908, 2324],\n", + " 907: [1233, 1193, 1148, 858, 904, 912, 2858, 1247, 1230, 4226],\n", + " 928: [912, 1233, 904, 858, 2019, 1207, 111, 1394, 1247, 1219],\n", + " 936: [318, 1234, 1213, 2324, 904, 1304, 1148, 750, 908, 1250],\n", + " 964: [1233, 912, 904, 4973, 1234, 1207, 1247, 1148, 1250, 1252],\n", + " 970: [858, 912, 1073, 1233, 919, 1035, 2959, 104, 4973, 2791],\n", + " 972: [260, 1234, 1148, 912, 904, 1233, 50, 1198, 919, 1250],\n", + " 988: [7153, 1221, 908, 36, 6874, 4034, 1732, 1222, 4027, 2329],\n", + " 1001: [318, 527, 912, 919, 1234, 260, 1207, 2324, 1035, 904],\n", + " 1013: [1233, 1193, 1230, 1148, 912, 1252, 1247, 904, 3147, 1207],\n", + " 1018: [50, 1221, 1213, 858, 2019, 750, 1193, 1201, 912, 1234],\n", + " 1020: [912, 1230, 2959, 3147, 1233, 318, 1090, 1242, 2692, 2542],\n", + " 1028: [260, 1210, 527, 1196, 3578, 1704, 318, 2324, 17, 110],\n", + " 1031: [50, 1234, 318, 912, 858, 1233, 1193, 2959, 4226, 1213],\n", + " 1035: [2502, 2542, 50, 1625, 6, 1220, 1234, 1201, 4011, 1278],\n", + " 1038: [1148, 150, 527, 912, 1207, 1247, 2396, 904, 1234, 2762],\n", + " 1045: [1035, 1234, 4973, 608, 1394, 904, 1207, 1233, 908, 1250],\n", + " 1046: [318, 3578, 1234, 1036, 50, 527, 2324, 3147, 919, 1242],\n", + " 35: [2997, 858, 231, 2019, 924, 1221, 1199, 541, 1193, 2502],\n", + " 72: [318, 50, 2571, 1036, 1234, 1148, 1193, 858, 1233, 4226],\n", + " 91: [1233, 111, 1199, 2019, 858, 4973, 1252, 7153, 5952, 908],\n", + " 106: [1721, 597, 539, 587, 3147, 500, 62, 2396, 150, 3578],\n", + " 128: [260, 858, 1148, 1288, 5952, 7153, 608, 912, 923, 1207],\n", + " 158: [260, 318, 2571, 1196, 4226, 7153, 1213, 1221, 1198, 1148],\n", + " 160: [47, 111, 541, 593, 608, 912, 1219, 1221, 1193, 50],\n", + " 175: [1207, 908, 1247, 1199, 1148, 3897, 1230, 1073, 2324, 1242],\n", + " 196: [3578, 1148, 1704, 3147, 733, 2762, 2324, 50, 4993, 36],\n", + " 203: [2959, 858, 3578, 4011, 4226, 1193, 912, 3147, 2571, 1233],\n", + " 206: [858, 923, 1199, 1207, 1247, 1193, 2858, 1233, 1394, 2019],\n", + " 207: [2858, 1288, 7153, 5952, 4993, 111, 260, 1148, 1136, 2571],\n", + " 215: [527, 2329, 3147, 1246, 58, 1090, 337, 1035, 1201, 509],\n", + " 255: [50, 1234, 3578, 1036, 2324, 527, 260, 1198, 47, 919],\n", + " 265: [356, 597, 527, 150, 1704, 587, 318, 2000, 457, 3147],\n", + " 340: [1380, 3578, 2959, 2324, 920, 858, 1968, 2081, 4011, 1304],\n", + " 404: [3578, 1036, 1234, 50, 3147, 593, 1242, 733, 2000, 2324],\n", + " 433: [1148, 1233, 318, 2858, 1288, 1193, 2571, 7153, 4993, 904],\n", + " 440: [1234, 912, 1233, 919, 904, 4973, 4011, 2324, 2019, 1250],\n", + " 444: [318, 3578, 527, 1234, 2324, 1704, 1148, 3147, 150, 260],\n", + " 450: [912, 1234, 2324, 1035, 2019, 923, 1704, 1247, 364, 1250],\n", + " 479: [260, 1196, 5952, 1210, 7153, 4993, 1219, 1288, 1221, 904],\n", + " 491: [2997, 541, 1193, 750, 1233, 2502, 296, 1208, 924, 1732],\n", + " 506: [2858, 7153, 1221, 2019, 5952, 2571, 4226, 4993, 1233, 904],\n", + " 523: [2858, 1233, 904, 912, 1148, 111, 2019, 923, 7153, 1288],\n", + " 539: [260, 1207, 904, 912, 1219, 923, 2858, 17, 1196, 1704],\n", + " 541: [7153, 318, 4993, 5952, 1148, 4226, 111, 904, 1233, 2019],\n", + " 616: [1234, 2324, 919, 912, 1704, 1035, 904, 1207, 1196, 1233],\n", + " 647: [3147, 2000, 597, 2706, 587, 539, 1242, 3578, 104, 1036],\n", + " 659: [1148, 1288, 1233, 904, 1193, 2028, 2019, 750, 50, 36],\n", + " 695: [1233, 2858, 904, 1193, 4993, 1247, 1288, 2762, 1207, 7153],\n", + " 700: [260, 50, 296, 1196, 2571, 1210, 4226, 1213, 1221, 7153],\n", + " 707: [260, 318, 1196, 1210, 4993, 5952, 1148, 7153, 3578, 904],\n", + " 748: [260, 593, 1234, 1196, 1210, 3578, 1198, 2324, 2571, 296],\n", + " 759: [296, 2959, 50, 47, 593, 1089, 1221, 1213, 318, 608],\n", + " 784: [912, 1233, 1193, 904, 4973, 111, 908, 1199, 1222, 1247],\n", + " 790: [1233, 1148, 1207, 912, 2762, 1193, 2028, 2324, 3578, 2858],\n", + " 835: [858, 111, 608, 912, 923, 1199, 1221, 1193, 904, 908],\n", + " 844: [318, 527, 1704, 50, 2324, 1234, 150, 1148, 733, 4306],\n", + " 871: [2019, 2858, 2959, 2997, 4226, 5952, 4973, 7153, 1394, 1233],\n", + " 875: [1148, 4993, 260, 1288, 2028, 2762, 2858, 1704, 7153, 2571],\n", + " 892: [4226, 2959, 2019, 750, 912, 1193, 1136, 541, 1234, 1233],\n", + " 919: [3578, 3147, 318, 597, 1036, 589, 1148, 356, 587, 150],\n", + " 935: [1148, 2692, 318, 1193, 296, 2959, 541, 293, 7153, 1288],\n", + " 942: [356, 3578, 1210, 260, 110, 50, 1036, 527, 1704, 1234],\n", + " 960: [260, 318, 2858, 50, 1221, 2019, 858, 1213, 111, 1196],\n", + " 1006: [912, 2858, 904, 1233, 923, 858, 4973, 1207, 5952, 2019],\n", + " 1026: [912, 923, 1207, 904, 2858, 1233, 1247, 318, 527, 858],\n", + " 1047: [260, 912, 904, 1233, 5952, 1196, 1221, 1193, 908, 1148],\n", + " 65: [1233, 1207, 527, 904, 1193, 2762, 3147, 2028, 1250, 1252],\n", + " 135: [318, 50, 2571, 1148, 4993, 7153, 527, 4226, 5952, 2858],\n", + " 152: [296, 527, 1234, 4226, 1213, 7153, 4993, 5952, 1148, 2324],\n", + " 166: [1035, 919, 318, 1234, 356, 527, 2324, 912, 364, 50],\n", + " 179: [912, 2959, 4973, 318, 904, 4226, 2997, 2502, 1136, 1208],\n", + " 188: [318, 260, 3578, 2324, 1234, 1704, 50, 919, 912, 1207],\n", + " 217: [318, 527, 1207, 912, 1233, 919, 904, 1035, 1234, 1247],\n", + " 253: [1148, 1233, 318, 1288, 904, 4993, 1193, 527, 7153, 1247],\n", + " 262: [589, 2000, 1234, 1148, 36, 2324, 2001, 1270, 1304, 1917],\n", + " 277: [318, 260, 50, 2571, 1148, 4226, 1196, 1198, 1234, 2858],\n", + " 289: [1233, 1199, 541, 6377, 1198, 1073, 364, 778, 1035, 2194],\n", + " 300: [1394, 4973, 1207, 1219, 1250, 1234, 593, 2858, 1035, 4226],\n", + " 302: [4993, 7153, 1198, 5952, 36, 1036, 293, 4226, 1234, 2324],\n", + " 308: [318, 912, 919, 1233, 1207, 1035, 1234, 904, 527, 858],\n", + " 311: [318, 527, 919, 1035, 2324, 1234, 912, 1207, 260, 593],\n", + " 328: [1288, 5952, 7153, 111, 1221, 1136, 4993, 296, 2019, 4226],\n", + " 329: [318, 912, 1234, 50, 858, 919, 1233, 904, 1193, 1035],\n", + " 344: [1233, 1193, 1230, 858, 1252, 923, 904, 1247, 4973, 1207],\n", + " 347: [2858, 111, 5952, 608, 7153, 923, 2019, 904, 318, 1136],\n", + " 358: [50, 2959, 1036, 47, 4011, 1234, 858, 4226, 2542, 3578],\n", + " 474: [318, 1148, 4993, 7153, 2858, 1288, 1233, 50, 5952, 527],\n", + " 483: [3578, 919, 1035, 1721, 2324, 1704, 1207, 1234, 3147, 1242],\n", + " 509: [260, 1148, 912, 1207, 1221, 1230, 1247, 1198, 3578, 904],\n", + " 578: [2959, 2502, 6874, 2542, 47, 50, 2692, 1206, 293, 1221],\n", + " 589: [318, 5952, 4993, 7153, 2858, 2571, 1288, 4226, 912, 1213],\n", + " 643: [4973, 1394, 2324, 2019, 4226, 1242, 2329, 1246, 1198, 2959],\n", + " 672: [318, 1234, 4226, 5952, 7153, 4993, 1240, 1036, 1148, 1136],\n", + " 679: [919, 1207, 1035, 912, 1233, 2396, 318, 527, 904, 364],\n", + " 680: [318, 527, 3578, 2324, 1704, 919, 1234, 150, 457, 593],\n", + " 691: [1148, 1233, 2762, 904, 1247, 1207, 1193, 1234, 3147, 912],\n", + " 702: [2571, 4993, 7153, 5952, 1148, 2858, 1288, 50, 4226, 1198],\n", + " 708: [318, 1148, 1234, 527, 1233, 1193, 4226, 1198, 3578, 904],\n", + " 730: [858, 912, 1193, 50, 1234, 3147, 1233, 1148, 1242, 4011],\n", + " 751: [318, 527, 1234, 50, 919, 1035, 260, 2324, 356, 912],\n", + " 773: [527, 4993, 1704, 2028, 17, 150, 509, 2762, 1288, 497],\n", + " 803: [62, 736, 597, 3147, 802, 653, 1148, 586, 527, 509],\n", + " 809: [1210, 318, 2571, 7153, 1704, 1198, 1288, 593, 1234, 3578],\n", + " 820: [1288, 318, 1233, 111, 904, 1221, 1213, 1247, 1198, 1617],\n", + " 824: [4973, 364, 318, 527, 923, 1183, 588, 1213, 50, 595],\n", + " 863: [858, 1193, 912, 2019, 4226, 1221, 2959, 750, 904, 1136],\n", + " 865: [527, 1234, 1148, 912, 904, 1233, 1198, 858, 2324, 1193],\n", + " 867: [912, 593, 357, 1193, 17, 1682, 58, 1148, 2291, 2762],\n", + " 911: [608, 318, 527, 912, 904, 5952, 593, 50, 1207, 4973],\n", + " 915: [527, 3578, 1704, 318, 110, 2324, 150, 1196, 1198, 17],\n", + " 939: [527, 919, 1035, 2324, 912, 1207, 1234, 1704, 904, 3578],\n", + " 946: [912, 1221, 1193, 908, 1234, 4226, 2959, 296, 1213, 1233],\n", + " 954: [527, 318, 593, 1704, 50, 356, 2324, 1234, 110, 1198],\n", + " 957: [1148, 5952, 7153, 4993, 1199, 923, 750, 2019, 904, 1094],\n", + " 971: [1252, 541, 923, 1247, 1193, 904, 1208, 1233, 1207, 1148],\n", + " 986: [260, 1210, 1196, 3578, 1234, 1704, 2324, 1198, 1036, 2571],\n", + " 992: [2858, 527, 1148, 4993, 904, 5952, 1288, 7153, 1233, 923],\n", + " 92: [593, 919, 50, 1035, 1380, 1234, 920, 2324, 296, 2959],\n", + " 107: [1193, 318, 2019, 1148, 750, 904, 2858, 4226, 1252, 1230],\n", + " 131: [2959, 1200, 1206, 6874, 2571, 541, 1240, 2502, 1221, 293],\n", + " 138: [223, 288, 1221, 1288, 111, 1527, 1213, 2502, 2997, 2692],\n", + " 145: [2959, 1221, 858, 1213, 608, 2019, 318, 4226, 750, 541],\n", + " 183: [356, 150, 3578, 2324, 17, 4306, 50, 1148, 6539, 2762],\n", + " 209: [1233, 912, 1193, 923, 858, 904, 2858, 4973, 2019, 1247],\n", + " 230: [318, 858, 1193, 904, 2019, 4226, 111, 7153, 4973, 908],\n", + " 263: [904, 1234, 1233, 1148, 2324, 1247, 4011, 1250, 919, 1225],\n", + " 305: [318, 919, 1234, 912, 1207, 3578, 1233, 2324, 1035, 904],\n", + " 314: [50, 1213, 2019, 4226, 608, 7153, 2571, 1233, 2959, 1148],\n", + " 319: [858, 608, 912, 1394, 2019, 4973, 2959, 1221, 1233, 1193],\n", + " 325: [2571, 2692, 733, 4011, 780, 3147, 3578, 293, 2959, 36],\n", + " 341: [5952, 7153, 111, 541, 608, 912, 1221, 1193, 50, 904],\n", + " 471: [318, 1233, 912, 904, 1193, 858, 1207, 527, 1148, 1234],\n", + " 488: [318, 1036, 3147, 2000, 3578, 733, 50, 1234, 1242, 2959],\n", + " 495: [527, 3578, 1704, 318, 780, 17, 1148, 2028, 11, 356],\n", + " 532: [231, 2959, 1732, 2502, 924, 1222, 750, 2019, 2542, 1193],\n", + " 564: [1148, 527, 912, 919, 1207, 1247, 2028, 3578, 1234, 2762],\n", + " 574: [356, 3578, 2000, 318, 733, 3147, 50, 1234, 1101, 110],\n", + " 590: [912, 858, 904, 1234, 4973, 527, 1233, 1207, 4226, 919],\n", + " 603: [1035, 919, 364, 62, 2396, 500, 1028, 1641, 920, 1207],\n", + " 674: [2959, 296, 2502, 2692, 2542, 858, 1221, 750, 50, 4226],\n", + " 753: [858, 1148, 541, 912, 1221, 1193, 50, 904, 4226, 1136],\n", + " 810: [1035, 919, 912, 593, 318, 1234, 858, 50, 4973, 2324],\n", + " 830: [318, 3578, 17, 4993, 1148, 2762, 6539, 4306, 1234, 2571],\n", + " 841: [50, 318, 1148, 7153, 2858, 858, 1233, 296, 1198, 1136],\n", + " 856: [318, 50, 912, 593, 858, 1234, 904, 1233, 1213, 4973],\n", + " 921: [50, 318, 593, 260, 1234, 296, 1036, 3578, 2571, 1198],\n", + " 933: [1233, 912, 904, 4973, 1207, 858, 1193, 2858, 1394, 924],\n", + " 976: [912, 904, 608, 4973, 1233, 858, 260, 2858, 1207, 923],\n", + " 10: [1148, 2858, 1288, 1247, 1207, 1230, 904, 923, 2396, 318],\n", + " 19: [1704, 4993, 3578, 2571, 2324, 5952, 7153, 2028, 2762, 4306],\n", + " 41: [318, 527, 2324, 593, 1234, 3578, 1704, 590, 150, 1207],\n", + " 43: [780, 1148, 1252, 150, 527, 1207, 1230, 1247, 1584, 2028],\n", + " 44: [858, 1148, 1252, 7153, 111, 541, 912, 923, 1199, 1207],\n", + " 45: [2959, 318, 1234, 2542, 4011, 296, 1193, 2502, 2000, 733],\n", + " 51: [47, 1221, 50, 1089, 2959, 1213, 318, 1201, 1394, 2019],\n", + " 56: [608, 1199, 1394, 1183, 1233, 1073, 318, 778, 2997, 2959],\n", + " 61: [919, 1035, 2396, 1233, 904, 150, 2324, 1242, 1246, 364],\n", + " 68: [318, 527, 3578, 1035, 1234, 912, 150, 1233, 1704, 3147],\n", + " 69: [1207, 904, 1233, 923, 1148, 2028, 919, 4973, 1704, 1250],\n", + " 78: [2019, 1221, 1213, 3897, 7153, 1266, 50, 5952, 2329, 4011],\n", + " 110: [2000, 733, 597, 3578, 3147, 786, 1036, 165, 587, 1101],\n", + " 115: [1233, 923, 904, 1148, 1207, 1288, 912, 1252, 4973, 2028],\n", + " 129: [858, 541, 608, 912, 1221, 1193, 50, 904, 908, 1234],\n", + " 149: [1200, 47, 1206, 1201, 1089, 1240, 2571, 1213, 223, 2542],\n", + " 150: [318, 1148, 1233, 2571, 1193, 260, 904, 4993, 2858, 1288],\n", + " 168: [50, 318, 593, 296, 2959, 1234, 858, 912, 1213, 47],\n", + " 169: [260, 858, 1148, 1252, 7153, 47, 527, 541, 593, 608],\n", + " 178: [3578, 1234, 2324, 919, 50, 1035, 912, 1198, 1207, 1036],\n", + " 186: [1199, 2019, 2858, 923, 750, 924, 1221, 858, 1208, 2997],\n", + " 201: [318, 260, 1035, 919, 1207, 3578, 17, 1234, 912, 904],\n", + " 239: [318, 50, 912, 593, 1234, 260, 527, 858, 904, 1233],\n", + " 248: [260, 858, 912, 904, 2858, 318, 1233, 50, 2019, 608],\n", + " 256: [318, 527, 260, 1148, 1234, 50, 3578, 1233, 2324, 904],\n", + " 257: [318, 50, 593, 1234, 2959, 296, 912, 4011, 47, 1193],\n", + " 272: [1206, 111, 541, 1199, 2019, 750, 924, 1136, 608, 1080],\n", + " 279: [858, 608, 912, 1221, 1233, 750, 2019, 4973, 1193, 1394],\n", + " 280: [318, 3147, 1233, 3578, 1242, 1207, 1148, 1234, 919, 150],\n", + " 285: [858, 541, 923, 1199, 1193, 1208, 2858, 1233, 750, 924],\n", + " 298: [912, 1394, 608, 923, 4973, 904, 1233, 858, 1219, 2019],\n", + " 301: [111, 7153, 5952, 1233, 4226, 1193, 904, 1148, 4993, 924],\n", + " 304: [527, 318, 1704, 1207, 3578, 1584, 62, 2028, 1148, 17],\n", + " 333: [150, 2396, 1207, 500, 3578, 919, 11, 3147, 1035, 1961],\n", + " 334: [318, 527, 3578, 2324, 1704, 593, 1035, 50, 150, 1207],\n", + " 338: [50, 2959, 608, 1213, 1221, 858, 260, 912, 1089, 4226],\n", + " 350: [2858, 527, 923, 904, 1233, 1207, 1288, 5952, 1148, 4993],\n", + " 351: [1219, 5952, 7153, 2019, 4993, 1199, 4226, 1233, 541, 1080],\n", + " 353: [1136, 1221, 2858, 6874, 260, 1080, 750, 223, 2997, 1208],\n", + " 378: [318, 1233, 1193, 2858, 904, 1148, 912, 2019, 1247, 4226],\n", + " 386: [1148, 1234, 1233, 50, 2571, 1207, 904, 1193, 4306, 919],\n", + " 397: [260, 1207, 1234, 919, 904, 150, 1035, 1148, 1233, 17],\n", + " 420: [541, 1206, 1199, 2997, 924, 750, 2019, 1208, 2858, 1221],\n", + " 439: [260, 858, 593, 912, 1221, 50, 904, 1234, 4226, 296],\n", + " 449: [296, 318, 110, 1036, 1234, 1198, 1240, 1213, 4226, 2324],\n", + " 478: [50, 593, 1234, 912, 919, 2959, 296, 1036, 858, 2324],\n", + " 487: [1233, 912, 858, 1234, 1193, 904, 593, 1148, 527, 1207],\n", + " 489: [912, 4973, 593, 4226, 2959, 1242, 908, 1148, 2324, 1252],\n", + " 500: [858, 912, 2019, 1233, 1221, 1193, 904, 50, 750, 4973],\n", + " 510: [260, 904, 1207, 912, 2858, 1233, 1148, 1247, 923, 5952],\n", + " 521: [260, 527, 1210, 1234, 1196, 3578, 1198, 2324, 2571, 110],\n", + " 522: [50, 2858, 4226, 7153, 5952, 2019, 904, 912, 750, 2571],\n", + " 524: [1233, 912, 904, 1207, 527, 1193, 1148, 1247, 260, 1234],\n", + " 527: [912, 318, 1233, 1234, 1207, 904, 919, 858, 1193, 1247],\n", + " 529: [1233, 1193, 858, 1230, 2858, 1252, 1148, 2019, 750, 923],\n", + " 535: [1233, 2858, 3897, 1230, 2396, 1247, 1207, 1288, 1148, 1094],\n", + " 550: [3578, 3147, 2324, 1242, 2028, 1704, 4306, 1246, 6377, 4973],\n", + " 560: [858, 2502, 1221, 1222, 2019, 1213, 912, 1201, 750, 4973],\n", + " 573: [260, 1196, 1210, 912, 1207, 904, 1219, 919, 1035, 5952],\n", + " 579: [1240, 6874, 110, 4226, 223, 1221, 7153, 1200, 1213, 4993],\n", + " 582: [1233, 923, 924, 4973, 750, 2858, 1148, 3897, 2997, 1199],\n", + " 583: [1233, 2858, 1193, 858, 2019, 923, 111, 924, 904, 1288],\n", + " 584: [318, 919, 3578, 1234, 1035, 2324, 593, 3147, 912, 1242],\n", + " 587: [111, 923, 2858, 2019, 1199, 912, 858, 1233, 4973, 904],\n", + " 588: [260, 1148, 4993, 2571, 7153, 1288, 2858, 5952, 1233, 904],\n", + " 596: [1094, 3114, 5952, 4993, 1148, 1394, 7153, 1250, 1358, 1246],\n", + " 602: [2858, 318, 1148, 7153, 1233, 1288, 1193, 2571, 1136, 5952],\n", + " 618: [1233, 912, 904, 1193, 1207, 1247, 858, 1148, 4973, 923],\n", + " 624: [589, 260, 858, 1210, 1148, 1252, 1288, 5952, 7153, 32],\n", + " 627: [260, 7153, 1148, 5952, 1288, 1136, 1196, 527, 904, 1233],\n", + " 635: [858, 1148, 912, 1207, 1247, 1193, 50, 904, 1234, 4226],\n", + " 639: [858, 1073, 1252, 111, 608, 912, 919, 923, 1199, 1207],\n", + " 640: [260, 50, 1148, 296, 1234, 1193, 1213, 527, 1233, 593],\n", + " 642: [1233, 912, 1222, 4973, 904, 4226, 750, 2542, 2502, 4011],\n", + " 649: [318, 1233, 3147, 919, 1242, 1207, 912, 2396, 527, 1234],\n", + " 652: [919, 318, 3578, 2324, 364, 1234, 1380, 1721, 1704, 593],\n", + " 662: [2997, 1206, 924, 1208, 1222, 2959, 923, 1136, 1252, 1230],\n", + " 671: [3897, 4973, 904, 1207, 1073, 1222, 231, 2291, 1250, 1682],\n", + " 675: [260, 1196, 1210, 527, 50, 608, 5952, 1234, 912, 904],\n", + " 684: [318, 593, 50, 260, 912, 1234, 527, 608, 904, 1196],\n", + " 703: [318, 1233, 912, 904, 858, 1207, 1193, 1234, 4973, 1247],\n", + " 712: [260, 1704, 1207, 904, 1196, 2324, 912, 1148, 1210, 4993],\n", + " 726: [2858, 1233, 1193, 318, 904, 923, 7153, 2019, 111, 1136],\n", + " 727: [260, 912, 1234, 904, 1207, 2324, 919, 1704, 1233, 1196],\n", + " 744: [527, 912, 919, 1234, 260, 904, 1207, 2324, 1035, 50],\n", + " 746: [1221, 2959, 2019, 858, 750, 111, 1136, 50, 1213, 4226],\n", + " 757: [1148, 1288, 5952, 7153, 527, 1247, 1193, 2028, 2571, 3578],\n", + " 761: [1148, 3147, 3578, 1288, 2028, 733, 1233, 527, 1230, 36],\n", + " 765: [2959, 2502, 2542, 50, 318, 1233, 1222, 912, 4011, 4226],\n", + " 766: [527, 593, 3578, 2324, 1234, 47, 17, 1380, 296, 6539],\n", + " 771: [3578, 1917, 1148, 165, 4993, 3147, 2762, 36, 1704, 150],\n", + " 776: [318, 912, 1193, 4226, 1213, 1148, 2019, 296, 527, 2571],\n", + " 797: [527, 1207, 260, 904, 2762, 2028, 1247, 912, 2324, 4993],\n", + " 812: [919, 1207, 2324, 3578, 904, 1704, 1233, 1246, 1242, 1721],\n", + " 815: [318, 3578, 1148, 1233, 1234, 1036, 527, 1242, 2000, 1193],\n", + " 818: [1233, 1148, 1247, 1193, 1234, 260, 2858, 858, 1250, 2762],\n", + " 821: [1035, 919, 587, 500, 920, 364, 1028, 1641, 527, 2396],\n", + " 822: [1233, 912, 904, 1148, 858, 260, 1193, 2858, 4226, 1234],\n", + " 831: [589, 733, 527, 593, 919, 457, 3578, 50, 1234, 1036],\n", + " 834: [912, 858, 1394, 1233, 2019, 1193, 904, 1222, 1073, 923],\n", + " 837: [924, 1199, 923, 231, 2019, 858, 1394, 1208, 750, 912],\n", + " 839: [296, 541, 1221, 2858, 750, 111, 2019, 2571, 50, 2959],\n", + " 840: [4973, 904, 1233, 2858, 318, 4226, 2997, 3897, 2959, 5952],\n", + " 851: [1233, 318, 1247, 2858, 904, 527, 1230, 1288, 1207, 1252],\n", + " 855: [2959, 47, 1036, 1234, 858, 4226, 1240, 4011, 1221, 1198],\n", + " 857: [318, 527, 260, 50, 1704, 1234, 2324, 1148, 1198, 1210],\n", + " 868: [858, 1233, 2019, 1193, 750, 541, 1221, 1136, 912, 4226],\n", + " 874: [318, 50, 527, 1234, 1036, 912, 4226, 1213, 904, 457],\n", + " 904: [260, 5952, 2858, 1196, 111, 1219, 4993, 7153, 923, 1288],\n", + " 905: [500, 150, 2396, 527, 919, 1584, 3147, 3578, 1207, 780],\n", + " 906: [2019, 912, 111, 318, 750, 1219, 904, 541, 908, 1233],\n", + " 924: [527, 1704, 260, 2324, 3578, 1207, 919, 1035, 590, 1234],\n", + " 925: [1089, 608, 50, 2019, 4973, 47, 778, 2542, 4226, 2997],\n", + " 927: [318, 3578, 593, 1035, 1234, 919, 50, 2324, 527, 1380],\n", + " 940: [912, 1233, 318, 904, 1207, 1193, 527, 1247, 858, 1148],\n", + " 948: [260, 1234, 912, 1196, 904, 3578, 1213, 1210, 1233, 1207],\n", + " 953: [110, 733, 1148, 165, 380, 527, 457, 1193, 1198, 3578],\n", + " 966: [608, 111, 1221, 1219, 2019, 750, 778, 50, 858, 908],\n", + " 967: [111, 260, 2019, 541, 5952, 7153, 1136, 1199, 750, 608],\n", + " 979: [318, 50, 593, 260, 1234, 1196, 912, 296, 527, 608],\n", + " 980: [1221, 1196, 318, 2019, 912, 47, 1219, 4973, 111, 1234],\n", + " 983: [50, 593, 1234, 3578, 1036, 919, 527, 260, 457, 110],\n", + " 984: [1721, 1035, 3578, 527, 150, 539, 457, 1242, 590, 1234],\n", + " 991: [231, 344, 1500, 2997, 1732, 3897, 858, 104, 2791, 2959],\n", + " 995: [2959, 858, 1233, 912, 1222, 2542, 1234, 50, 2502, 4973],\n", + " 1009: [1288, 4993, 11, 3147, 1230, 733, 2762, 2692, 36, 2028],\n", + " 1011: [858, 1233, 4973, 1222, 750, 904, 2959, 1252, 318, 1230],\n", + " 1014: [1394, 912, 1183, 923, 1219, 4973, 318, 357, 1028, 17],\n", + " 1021: [1394, 912, 4973, 608, 2019, 1199, 1233, 924, 111, 750],\n", + " 1030: [260, 527, 318, 1196, 904, 1207, 1704, 2324, 1234, 1210],\n", + " 1033: [912, 858, 1234, 1233, 1193, 904, 4226, 1213, 4973, 1148],\n", + " 1039: [111, 2858, 1136, 2019, 7153, 750, 1221, 1288, 1199, 5952],\n", + " 1040: [1721, 539, 500, 587, 1035, 62, 919, 2396, 3147, 527],\n", + " 1053: [50, 318, 296, 593, 2959, 47, 1213, 4226, 858, 912],\n", + " 42: [1233, 1148, 2858, 1193, 1288, 1230, 318, 1252, 1247, 904],\n", + " 73: [912, 527, 1234, 4973, 4226, 2324, 1193, 2019, 1247, 1210],\n", + " 82: [1035, 919, 912, 318, 1207, 1234, 527, 1394, 593, 904],\n", + " 159: [527, 318, 260, 1207, 1148, 1704, 904, 2028, 4993, 1233],\n", + " 161: [1221, 111, 1213, 2019, 750, 858, 1288, 1089, 1080, 1199],\n", + " 192: [1233, 912, 1199, 1208, 318, 904, 908, 924, 1201, 1080],\n", + " 216: [527, 1704, 3578, 150, 356, 1207, 6539, 1148, 2028, 590],\n", + " 219: [17, 1210, 318, 1196, 590, 6539, 1207, 4993, 2324, 2028],\n", + " 290: [318, 912, 1035, 1234, 593, 527, 1207, 1233, 904, 2324],\n", + " 379: [318, 912, 1234, 1233, 527, 593, 50, 904, 858, 919],\n", + " 389: [260, 1196, 50, 1288, 1148, 904, 1136, 111, 2019, 1213],\n", + " 400: [318, 1233, 912, 858, 904, 1193, 2019, 4973, 750, 4226],\n", + " 428: [527, 1234, 318, 260, 593, 50, 912, 2324, 919, 904],\n", + " 462: [1234, 527, 904, 1233, 858, 1148, 4226, 2324, 1198, 1213],\n", + " 507: [318, 1233, 527, 1148, 904, 912, 1207, 1193, 1247, 1234],\n", + " 600: [296, 50, 318, 260, 47, 593, 2571, 1196, 1036, 1198],\n", + " 721: [1148, 527, 2762, 3147, 2028, 1233, 3578, 150, 4993, 2396],\n", + " 793: [318, 2858, 1233, 1148, 858, 1193, 1288, 1136, 2019, 50],\n", + " 912: [2959, 858, 318, 50, 296, 912, 1193, 1233, 593, 1234],\n", + " 932: [318, 1233, 912, 904, 1207, 858, 1193, 1234, 527, 1247],\n", + " 949: [231, 1278, 593, 1222, 2502, 1089, 2791, 1233, 608, 1193],\n", + " 1025: [4973, 593, 1394, 1234, 2959, 904, 1073, 1193, 50, 1222],\n", + " 46: [2858, 1233, 904, 318, 912, 923, 858, 1193, 2019, 111],\n", + " 74: [318, 50, 1234, 1148, 1233, 527, 3578, 1193, 912, 2571],\n", + " 342: [260, 1148, 912, 1207, 1247, 1193, 2571, 50, 904, 1234],\n", + " 508: [2858, 111, 2019, 923, 1199, 608, 750, 858, 1136, 904],\n", + " 580: [1035, 919, 1234, 593, 2706, 356, 1036, 3147, 318, 457],\n", + " 774: [1234, 1233, 593, 919, 904, 4973, 1193, 1207, 1035, 527],\n", + " 783: [1207, 527, 904, 919, 1233, 1035, 1247, 364, 2324, 1250],\n", + " 1002: [1721, 597, 3147, 539, 587, 919, 500, 1035, 1242, 2396],\n", + " 1023: [318, 1148, 2762, 1704, 2028, 1288, 1233, 1247, 150, 904],\n", + " 1048: [111, 608, 1221, 541, 1199, 2019, 260, 750, 1136, 1219],\n", + " 23: [318, 912, 904, 1196, 2858, 1207, 1234, 1233, 1148, 5952],\n", + " 96: [318, 1704, 2324, 356, 150, 1234, 1207, 4306, 912, 497],\n", + " 124: [1148, 2858, 318, 111, 1617, 1252, 904, 2762, 4226, 36],\n", + " 136: [2959, 2502, 2542, 1221, 50, 1222, 750, 1233, 541, 2692],\n", + " 148: [858, 527, 593, 912, 904, 1234, 1213, 318, 4226, 1233],\n", + " 189: [318, 2571, 1148, 50, 3578, 4993, 527, 7153, 1233, 1234],\n", + " 213: [150, 318, 1207, 62, 1584, 1148, 3578, 11, 1233, 497],\n", + " 243: [296, 2019, 111, 750, 912, 1213, 1199, 1089, 4973, 541],\n", + " 323: [1233, 904, 1148, 2858, 2028, 318, 1584, 3114, 2762, 6377],\n", + " 352: [1207, 527, 62, 1233, 919, 318, 539, 1584, 150, 3147],\n", + " 429: [2858, 111, 923, 912, 2019, 858, 1233, 904, 4973, 1199],\n", + " 625: [356, 318, 3578, 527, 1035, 919, 2324, 1234, 1704, 1380],\n", + " 808: [318, 1233, 1234, 50, 1193, 1148, 3147, 858, 3578, 912],\n", + " 843: [923, 2858, 1233, 1288, 1148, 7153, 3897, 5952, 4993, 912],\n", + " 847: [318, 1233, 1234, 912, 527, 3147, 919, 3578, 1242, 1207],\n", + " 963: [318, 593, 50, 1234, 356, 919, 1035, 3578, 1036, 2324],\n", + " 975: [2959, 1221, 47, 1213, 858, 318, 1089, 593, 4226, 1201],\n", + " 998: [2858, 1233, 4973, 1207, 1219, 318, 858, 260, 527, 2019],\n", + " 75: [50, 260, 1196, 1210, 318, 47, 593, 2571, 2959, 1213],\n", + " 427: [1233, 912, 1193, 904, 1148, 4226, 1247, 1207, 2858, 4973],\n", + " 466: [1148, 1288, 2858, 4993, 7153, 318, 2571, 260, 1233, 1193],\n", + " 801: [608, 318, 2858, 50, 1219, 111, 904, 912, 1213, 1221],\n", + " 848: [260, 527, 318, 50, 1234, 593, 2324, 912, 904, 1704],\n", + " 888: [260, 318, 2858, 7153, 50, 2571, 1148, 4993, 1288, 4226],\n", + " 191: [912, 904, 1233, 4973, 608, 858, 318, 923, 1207, 1394],\n", + " 227: [318, 858, 50, 296, 912, 1221, 1213, 608, 4226, 1193],\n", + " 245: [318, 1233, 912, 904, 2858, 1207, 527, 260, 1247, 1148],\n", + " 380: [3147, 318, 780, 1148, 1233, 733, 1242, 2762, 2000, 527],\n", + " 408: [541, 2858, 750, 1193, 1136, 1206, 1288, 1233, 2019, 111],\n", + " 668: [541, 2571, 7153, 1136, 2858, 1288, 1221, 111, 2019, 4226],\n", + " 747: [1148, 2858, 4993, 1233, 7153, 5952, 923, 318, 904, 527],\n", + " 754: [318, 527, 1148, 1233, 260, 904, 912, 1207, 1247, 50],\n", + " 11: [1148, 150, 527, 912, 919, 1207, 3578, 904, 1234, 2762],\n", + " 16: [4993, 2571, 318, 5952, 7153, 527, 1288, 50, 1148, 2858],\n", + " 81: [318, 858, 50, 1233, 912, 1213, 4226, 1221, 2019, 1234],\n", + " 86: [912, 1207, 1193, 1234, 1233, 318, 1242, 3147, 904, 4973],\n", + " 97: [260, 527, 912, 50, 1234, 1233, 318, 904, 593, 1148],\n", + " 151: [1233, 904, 1207, 2858, 1193, 1148, 1247, 858, 4973, 923],\n", + " 235: [1240, 293, 1148, 1288, 1136, 1221, 5952, 6874, 1196, 36],\n", + " 251: [1219, 111, 1089, 1394, 2019, 2959, 912, 4973, 50, 750],\n", + " 258: [318, 1234, 50, 3578, 1233, 1148, 3147, 1036, 527, 593],\n", + " 278: [318, 1234, 1704, 2324, 3578, 904, 1148, 1207, 912, 50],\n", + " 388: [318, 260, 296, 593, 1196, 1234, 1213, 47, 1210, 858],\n", + " 551: [318, 3147, 3578, 780, 1148, 150, 597, 11, 2762, 2396],\n", + " 606: [1233, 231, 1193, 1230, 924, 1252, 2997, 1222, 2019, 923],\n", + " 614: [318, 912, 1233, 904, 1234, 1193, 527, 1207, 50, 1148],\n", + " 681: [1233, 923, 912, 904, 1207, 4973, 1247, 1193, 858, 924],\n", + " 686: [2959, 912, 4973, 1193, 231, 1213, 296, 2502, 318, 919],\n", + " 704: [1148, 1036, 3147, 318, 1233, 1234, 733, 1198, 527, 1193],\n", + " 711: [2959, 50, 1221, 858, 318, 1213, 4226, 593, 2019, 608],\n", + " 718: [260, 318, 50, 1196, 527, 1210, 1234, 2571, 1198, 904],\n", + " 873: [318, 1148, 527, 1207, 904, 1247, 1193, 912, 2762, 3147],\n", + " 962: [1233, 318, 858, 1193, 912, 904, 1234, 1148, 50, 1247],\n", + " 985: [1233, 1230, 231, 1193, 1252, 858, 2997, 1222, 1208, 923],\n", + " 993: [260, 858, 527, 593, 912, 1198, 2571, 50, 904, 1234],\n", + " 58: [2959, 858, 1193, 4973, 2542, 1222, 2502, 1213, 1035, 4011],\n", + " 112: [2858, 4973, 1148, 7153, 5952, 2997, 3897, 4993, 4226, 1617],\n", + " 357: [2959, 296, 858, 50, 1089, 593, 1221, 1213, 912, 2502],\n", + " 367: [1233, 1148, 50, 2571, 2858, 4226, 260, 7153, 1234, 1136],\n", + " 548: [1148, 1233, 527, 904, 1193, 912, 2858, 2571, 50, 1234],\n", + " 791: [318, 50, 858, 1233, 1193, 904, 1234, 4226, 1213, 260],\n", + " 909: [318, 858, 1233, 912, 1193, 50, 1234, 593, 904, 4973],\n", + " 1041: [608, 1213, 1234, 1221, 912, 1219, 904, 2324, 2019, 908],\n", + " 13: [318, 2959, 1036, 2571, 1240, 47, 589, 4226, 4011, 593],\n", + " 83: [1233, 904, 2858, 1148, 1247, 1230, 1252, 318, 4973, 2019],\n", + " 869: [858, 912, 2019, 1233, 1193, 1221, 608, 4973, 750, 1213],\n", + " 246: [318, 1234, 3578, 50, 527, 593, 1036, 2324, 1148, 1233],\n", + " 415: [858, 2959, 912, 608, 2019, 4973, 1221, 50, 1213, 318],\n", + " 477: [1234, 1233, 904, 4973, 608, 1148, 750, 908, 2858, 1247],\n", + " 569: [260, 858, 1148, 527, 912, 1207, 1247, 1193, 904, 1234],\n", + " 694: [527, 1035, 318, 364, 2324, 904, 1234, 1028, 1246, 4973],\n", + " 729: [527, 318, 1234, 912, 260, 2324, 1207, 904, 1233, 50],\n", + " 741: [527, 912, 1207, 1233, 919, 904, 1234, 2324, 1247, 1035],\n", + " 965: [260, 2571, 7153, 4993, 5952, 1288, 2858, 541, 1136, 4226],\n", + " 17: [1148, 527, 912, 923, 1207, 1247, 2396, 904, 2858, 1233],\n", + " 37: [2502, 1221, 1206, 1213, 541, 778, 1997, 608, 858, 750],\n", + " 40: [912, 858, 260, 1221, 904, 2019, 4226, 4973, 1234, 2959],\n", + " 114: [527, 318, 1207, 904, 912, 1233, 2858, 1148, 1247, 923],\n", + " 137: [380, 356, 1917, 733, 597, 165, 3147, 2001, 786, 587],\n", + " 153: [1196, 1210, 318, 2571, 4993, 5952, 50, 7153, 2858, 1288],\n", + " 211: [318, 527, 1213, 1234, 4226, 5952, 7153, 2019, 4973, 1148],\n", + " 286: [296, 318, 1148, 7153, 293, 1136, 2692, 1288, 4011, 47],\n", + " 330: [318, 50, 1036, 1234, 593, 3578, 1198, 4226, 1148, 858],\n", + " 336: [318, 50, 296, 7153, 4993, 5952, 4226, 1198, 1148, 2858],\n", + " 372: [858, 593, 608, 1221, 50, 1089, 296, 1213, 1201, 47],\n", + " 376: [50, 7153, 1221, 1136, 4226, 2959, 318, 2858, 1288, 750],\n", + " 412: [527, 1207, 260, 904, 1148, 912, 1247, 4993, 1288, 5952],\n", + " 447: [2858, 541, 111, 924, 7153, 1199, 1233, 1208, 750, 1193],\n", + " 467: [2571, 260, 1148, 4993, 7153, 296, 1198, 1288, 4226, 293],\n", + " 490: [1148, 1233, 260, 904, 2858, 2571, 1193, 4993, 1247, 1288],\n", + " 518: [1233, 912, 858, 1234, 904, 1148, 50, 1207, 1247, 4973],\n", + " 608: [6874, 47, 1240, 50, 1201, 2542, 1089, 1221, 223, 541],\n", + " 619: [318, 50, 2571, 296, 4226, 1234, 1148, 2959, 1193, 593],\n", + " 644: [733, 780, 802, 858, 1148, 1252, 1288, 4995, 6377, 7153],\n", + " 667: [527, 904, 2858, 912, 1233, 1148, 7153, 1207, 5952, 50],\n", + " 698: [608, 260, 858, 912, 1213, 1221, 2019, 904, 750, 4973],\n", + " 709: [50, 296, 318, 7153, 4226, 1213, 1136, 541, 5952, 2019],\n", + " 728: [318, 858, 50, 1193, 1233, 4226, 2019, 2858, 1221, 1148],\n", + " 733: [318, 50, 260, 1234, 1148, 4226, 858, 1233, 593, 527],\n", + " 777: [527, 904, 318, 912, 923, 1207, 1233, 5952, 1219, 4973],\n", + " 813: [593, 608, 318, 50, 296, 912, 1213, 4973, 904, 527],\n", + " 832: [1233, 318, 2858, 1148, 904, 858, 912, 1288, 1247, 923],\n", + " 893: [50, 593, 260, 1234, 527, 912, 904, 858, 2324, 1233],\n", + " 901: [260, 1148, 1252, 1288, 5952, 7153, 527, 593, 912, 923],\n", + " 937: [296, 593, 260, 1234, 1196, 2571, 1198, 4226, 1213, 1210],\n", + " 947: [5952, 4993, 527, 7153, 2858, 1288, 17, 1704, 1219, 111],\n", + " 362: [912, 1207, 919, 904, 1035, 4973, 1233, 1394, 1234, 364],\n", + " 375: [1233, 1193, 858, 318, 1148, 2019, 750, 4226, 50, 2959],\n", + " 599: [260, 858, 1148, 527, 593, 1247, 1193, 1198, 2571, 3578],\n", + " 632: [260, 318, 296, 527, 1234, 5952, 1213, 1198, 4226, 47],\n", + " 779: [260, 2858, 5952, 111, 1288, 4993, 1196, 1136, 923, 1199],\n", + " 1022: [1233, 1193, 318, 904, 912, 1148, 1247, 2858, 1207, 858],\n", + " 1034: [318, 527, 1233, 1207, 904, 912, 1148, 1247, 260, 1193],\n", + " 2: [527, 1196, 318, 1704, 356, 3578, 2324, 17, 50, 4993],\n", + " 3: [318, 50, 1234, 527, 260, 593, 912, 904, 1233, 2324],\n", + " 104: [1148, 1288, 7153, 527, 1230, 2028, 3578, 50, 904, 1234],\n", + " 105: [318, 2858, 1233, 858, 904, 1148, 912, 2019, 7153, 4226],\n", + " 184: [260, 1196, 318, 2571, 593, 5952, 7153, 4993, 527, 1198],\n", + " 218: [858, 2019, 1233, 1193, 750, 541, 1221, 1136, 4226, 912],\n", + " 250: [527, 260, 912, 1234, 904, 1233, 1207, 1148, 50, 2324],\n", + " 313: [527, 318, 260, 1148, 4993, 3578, 904, 2324, 2762, 1233],\n", + " 377: [1207, 919, 912, 1035, 1233, 1234, 364, 4973, 1246, 150],\n", + " 413: [50, 318, 608, 1221, 1213, 2019, 912, 4226, 593, 750],\n", + " 576: [858, 912, 608, 2019, 4973, 50, 904, 1233, 750, 1193],\n", + " 586: [1233, 912, 858, 4973, 904, 923, 1193, 1207, 1247, 2019],\n", + " 595: [1210, 4993, 2628, 3578, 380, 318, 356, 1527, 7153, 50],\n", + " 610: [318, 1207, 3578, 150, 2324, 1035, 1233, 1234, 3147, 912],\n", + " 613: [318, 260, 527, 50, 904, 912, 1148, 593, 1233, 2858],\n", + " 637: [260, 318, 2571, 527, 1148, 50, 4993, 7153, 2858, 1196],\n", + " 663: [858, 912, 1233, 4973, 1193, 2019, 904, 318, 608, 750],\n", + " 740: [527, 50, 1704, 3578, 1234, 2324, 356, 4993, 1148, 904],\n", + " 787: [260, 150, 3578, 318, 356, 17, 1148, 2028, 2762, 497],\n", + " 804: [2959, 296, 50, 858, 318, 1234, 1213, 912, 1193, 1221],\n", + " 805: [858, 47, 608, 1221, 50, 1234, 1089, 2959, 296, 1213],\n", + " 866: [2959, 4226, 2019, 1234, 912, 5952, 541, 908, 7153, 1079],\n", + " 883: [318, 260, 1148, 2571, 527, 4993, 50, 7153, 1233, 2858],\n", + " 941: [2997, 858, 1233, 924, 1193, 2019, 1206, 750, 1199, 541],\n", + " 1007: [1233, 1193, 1230, 858, 1252, 1222, 2019, 750, 924, 912],\n", + " 6: [1148, 527, 593, 912, 1207, 1247, 50, 904, 1234, 4226],\n", + " 7: [1394, 1233, 4973, 858, 919, 1193, 1247, 318, 1035, 1073],\n", + " 14: [527, 318, 4993, 1148, 2858, 5952, 904, 1288, 1207, 1233],\n", + " 24: [527, 318, 1704, 1148, 1207, 150, 2028, 2762, 904, 3578],\n", + " 57: [1148, 527, 1193, 1233, 318, 2571, 904, 1234, 1247, 3147],\n", + " 60: [912, 919, 1207, 904, 4973, 364, 1250, 2324, 908, 1242],\n", + " 64: [527, 1148, 318, 2858, 4993, 1288, 904, 1233, 5952, 7153],\n", + " 84: [527, 318, 1148, 4993, 1704, 2028, 1207, 2858, 5952, 904],\n", + " 90: [1148, 1233, 318, 527, 1207, 1247, 2028, 904, 2762, 2396],\n", + " 98: [858, 47, 593, 912, 1221, 1196, 50, 4226, 1089, 2959],\n", + " 113: [318, 1233, 912, 904, 1193, 858, 527, 1234, 1207, 1148],\n", + " 120: [1148, 2571, 3578, 3147, 733, 318, 11, 2762, 2000, 4993],\n", + " 123: [1148, 1230, 1233, 11, 2762, 1288, 1247, 318, 3147, 1252],\n", + " 157: [364, 858, 1148, 1246, 1252, 1288, 4995, 5952, 6377, 7153],\n", + " 194: [1230, 2396, 1233, 3147, 1207, 11, 1252, 1641, 1242, 1247],\n", + " 200: [858, 1148, 1252, 1288, 912, 923, 1207, 1225, 1230, 1247],\n", + " 204: [318, 912, 904, 527, 2858, 1233, 1207, 4973, 858, 923],\n", + " 205: [318, 2019, 750, 2858, 904, 4226, 4973, 1213, 50, 1148],\n", + " 225: [318, 1148, 2571, 527, 50, 4993, 1233, 7153, 1234, 1198],\n", + " 229: [318, 50, 593, 912, 1196, 296, 858, 1213, 904, 1234],\n", + " 237: [527, 17, 1721, 150, 1028, 590, 1035, 62, 919, 508],\n", + " 242: [858, 1148, 1252, 1288, 527, 912, 923, 1207, 1230, 1247],\n", + " 252: [318, 4973, 923, 1247, 1234, 858, 1148, 1219, 1250, 1394],\n", + " 266: [858, 111, 541, 1221, 50, 4226, 1136, 296, 1213, 750],\n", + " 270: [2858, 318, 527, 904, 5952, 1148, 1233, 4993, 7153, 1288],\n", + " 282: [1233, 318, 912, 1193, 904, 858, 1207, 1247, 1148, 4973],\n", + " 297: [318, 50, 296, 1196, 1213, 593, 4226, 1221, 2858, 858],\n", + " 309: [1148, 1233, 318, 527, 1247, 1193, 2858, 1288, 904, 2762],\n", + " 316: [1148, 1233, 318, 1230, 1193, 1288, 1247, 2762, 3147, 2858],\n", + " 327: [593, 1221, 50, 2959, 296, 1213, 318, 912, 4226, 2019],\n", + " 356: [318, 1233, 912, 904, 1148, 1193, 858, 527, 1247, 1234],\n", + " 393: [1233, 318, 1193, 912, 1148, 3147, 1207, 904, 1247, 858],\n", + " 394: [1148, 1288, 7153, 527, 1247, 1193, 2571, 904, 1234, 4226],\n", + " 395: [780, 733, 1148, 2000, 1233, 1193, 1036, 589, 2571, 2692],\n", + " 399: [1233, 1193, 858, 318, 912, 1230, 1148, 1252, 904, 2019],\n", + " 401: [2959, 1233, 1193, 912, 2019, 50, 750, 4226, 296, 4973],\n", + " 402: [318, 2959, 50, 1234, 858, 593, 1036, 1193, 912, 3147],\n", + " 405: [527, 1207, 2396, 1148, 1233, 318, 2028, 1247, 904, 1584],\n", + " 417: [318, 912, 50, 904, 858, 1233, 2858, 1213, 4226, 608],\n", + " 422: [318, 1148, 1233, 527, 904, 1247, 1207, 2858, 1193, 912],\n", + " 437: [5952, 7153, 4993, 923, 924, 4226, 1148, 858, 1206, 1233],\n", + " 455: [318, 527, 1148, 1233, 904, 4993, 2858, 1207, 912, 1247],\n", + " 461: [318, 50, 858, 2959, 1193, 1233, 1234, 4226, 912, 1213],\n", + " 473: [318, 527, 1196, 5952, 2858, 904, 4993, 912, 1210, 7153],\n", + " 484: [1148, 1233, 318, 2858, 1288, 1193, 4993, 2571, 7153, 904],\n", + " 499: [318, 1196, 593, 50, 904, 1219, 1213, 4973, 527, 1234],\n", + " 526: [318, 50, 858, 1233, 1193, 2858, 4226, 1148, 2019, 2571],\n", + " 537: [318, 527, 50, 1196, 904, 912, 593, 2858, 1234, 5952],\n", + " 542: [318, 2858, 2019, 4973, 4226, 1213, 608, 750, 1234, 1247],\n", + " 557: [527, 1148, 1207, 2858, 1233, 2028, 4993, 1288, 2396, 904],\n", + " 563: [296, 1221, 2959, 50, 111, 541, 1213, 2019, 858, 750],\n", + " 570: [858, 1148, 5952, 7153, 593, 912, 1196, 2571, 50, 904],\n", + " 575: [1148, 1288, 5952, 7153, 527, 912, 919, 923, 1207, 1219],\n", + " 594: [11, 1148, 3147, 2762, 2396, 527, 597, 2028, 150, 1584],\n", + " 607: [2571, 1148, 1234, 296, 527, 7153, 1213, 1193, 3578, 1036],\n", + " 631: [912, 858, 318, 1233, 4973, 904, 50, 1234, 2019, 1213],\n", + " 651: [4973, 904, 318, 1222, 4226, 2959, 50, 1208, 111, 924],\n", + " 664: [318, 1233, 1148, 912, 904, 858, 2858, 1247, 1207, 527],\n", + " 685: [1219, 912, 1394, 904, 4973, 923, 2858, 318, 1207, 1196],\n", + " 690: [318, 1148, 527, 1233, 2858, 904, 4993, 1288, 7153, 1247],\n", + " 696: [318, 527, 1234, 912, 904, 50, 1148, 1207, 2324, 1233],\n", + " 724: [318, 912, 904, 1233, 527, 858, 50, 2858, 4973, 1234],\n", + " 738: [527, 318, 1148, 4993, 1704, 2571, 3578, 2028, 2762, 1288],\n", + " 762: [1196, 318, 2858, 50, 5952, 904, 7153, 912, 527, 1213],\n", + " 763: [318, 3578, 1234, 1704, 2324, 2571, 50, 2762, 1233, 1198],\n", + " 770: [1233, 2396, 923, 1230, 1207, 1252, 1247, 3897, 904, 1193],\n", + " 796: [318, 912, 904, 2858, 1233, 858, 527, 4973, 923, 1207],\n", + " 800: [318, 50, 1148, 2571, 1233, 1193, 858, 4226, 1234, 904],\n", + " 829: [1148, 1252, 1288, 5952, 7153, 111, 527, 608, 912, 923],\n", + " 836: [527, 318, 904, 1207, 912, 1233, 1148, 2858, 1247, 1704],\n", + " 882: [858, 912, 1207, 1193, 904, 1233, 318, 4973, 1247, 919],\n", + " 900: [296, 50, 318, 1221, 1213, 912, 2019, 1196, 593, 4226],\n", + " 903: [318, 1148, 527, 1233, 904, 3578, 2762, 1207, 1247, 1234],\n", + " 914: [318, 1233, 912, 1234, 527, 1193, 904, 1148, 858, 1207],\n", + " 918: [1148, 2571, 1288, 318, 1233, 4993, 1230, 3147, 1193, 2762],\n", + " 920: [2959, 1193, 2019, 296, 1233, 750, 318, 50, 1213, 4226],\n", + " 934: [318, 1148, 1233, 2858, 527, 904, 1193, 7153, 1288, 4993],\n", + " 945: [527, 1207, 2396, 1233, 904, 923, 1247, 912, 1148, 2858],\n", + " 950: [912, 858, 318, 4973, 1207, 923, 1247, 750, 908, 1213],\n", + " 952: [1148, 1233, 2571, 318, 1288, 4993, 1193, 2858, 7153, 1230],\n", + " 982: [318, 1233, 1193, 912, 904, 2858, 1148, 2019, 50, 4226],\n", + " 989: [1221, 4226, 2959, 750, 318, 2019, 4973, 593, 111, 1148],\n", + " 1016: [5952, 7153, 1196, 541, 4993, 1288, 1136, 1221, 2571, 1199],\n", + " 1019: [1148, 1233, 318, 1193, 3147, 2571, 1230, 1247, 2762, 858],\n", + " 1044: [364, 539, 858, 1148, 1246, 1252, 1288, 4995, 5952, 6377],\n", + " 1051: [318, 527, 1207, 1233, 904, 912, 1148, 1247, 1234, 2858],\n", + " 174: [1210, 260, 1196, 356, 1035, 1704, 1380, 2324, 919, 1234],\n", + " 676: [318, 527, 3578, 1148, 1704, 3147, 2324, 2762, 356, 1234],\n", + " 764: [260, 904, 912, 1207, 1196, 1234, 2324, 1148, 1233, 50],\n", + " 1052: [318, 50, 1234, 527, 1148, 2571, 1036, 260, 1233, 1198],\n", + " 5: [296, 1196, 50, 260, 1213, 1089, 2959, 318, 2019, 4226],\n", + " 27: [318, 1148, 1233, 2858, 1193, 1288, 904, 2571, 527, 4993],\n", + " 33: [318, 260, 527, 593, 50, 1196, 1234, 1210, 2324, 912],\n", + " 134: [858, 1148, 1252, 1288, 541, 912, 923, 1207, 1221, 1225],\n", + " 142: [260, 318, 50, 1196, 296, 1210, 1213, 1234, 527, 912],\n", + " 156: [2396, 11, 1148, 1233, 527, 1584, 2028, 2762, 1207, 1230],\n", + " 167: [593, 1196, 50, 296, 1089, 2959, 1213, 260, 912, 318],\n", + " 177: [1233, 858, 1193, 912, 318, 904, 2019, 2858, 4973, 750],\n", + " 224: [1148, 3147, 1233, 318, 733, 1230, 1193, 1242, 2000, 3578],\n", + " 269: [318, 527, 260, 1148, 1234, 3578, 904, 2324, 1233, 1704],\n", + " 312: [318, 1233, 1148, 1193, 858, 2858, 2571, 4226, 50, 1288],\n", + " 360: [527, 318, 260, 912, 1207, 904, 919, 1196, 2324, 4973],\n", + " 385: [527, 318, 2858, 260, 904, 1148, 1233, 1207, 4993, 1288],\n", + " 411: [318, 527, 1233, 260, 1234, 912, 1148, 904, 50, 1207],\n", + " 464: [1148, 527, 912, 904, 2858, 1233, 318, 260, 1247, 1207],\n", + " 568: [11, 3147, 1230, 1148, 1233, 2396, 802, 2762, 1252, 1193],\n", + " 612: [1233, 1148, 318, 904, 1193, 1247, 2858, 1207, 912, 1230],\n", + " 630: [2396, 11, 1233, 1230, 62, 1584, 1148, 1207, 3147, 1247],\n", + " 706: [296, 50, 318, 2571, 2959, 260, 4226, 1221, 1213, 47],\n", + " 737: [296, 2959, 50, 1221, 858, 1213, 318, 1089, 593, 4226],\n", + " 749: [318, 1148, 50, 1233, 1234, 527, 260, 2571, 1193, 912],\n", + " 756: [260, 527, 318, 912, 904, 1196, 1207, 2858, 1234, 4973],\n", + " 811: [1233, 1193, 1230, 3147, 858, 1252, 318, 912, 1242, 1148],\n", + " 853: [318, 1233, 1148, 527, 1193, 904, 912, 1207, 1234, 1247],\n", + " 884: [318, 1148, 527, 2571, 3578, 260, 1233, 2762, 4993, 1234],\n", + " 917: [318, 527, 260, 904, 1148, 1233, 912, 1207, 2858, 1247],\n", + " 951: [3147, 1233, 1193, 318, 1230, 1242, 858, 1148, 2000, 2692],\n", + " 955: [260, 858, 1148, 47, 593, 912, 1193, 1198, 2571, 3578],\n", + " 997: [858, 1148, 1252, 1288, 527, 912, 923, 1207, 1225, 1230],\n", + " 1032: [260, 733, 858, 1148, 1246, 1252, 1288, 4995, 5952, 6377],\n", + " 1043: [1148, 3147, 11, 733, 597, 2396, 2762, 802, 1230, 1233],\n", + " 670: [318, 50, 593, 296, 1234, 2959, 858, 912, 1213, 260],\n", + " 923: [260, 1148, 150, 527, 912, 1207, 1247, 2028, 3578, 904],\n", + " 931: [11, 597, 3147, 802, 1148, 2000, 587, 2396, 539, 500],\n", + " 969: [527, 318, 1704, 260, 1207, 1148, 150, 2028, 2324, 904],\n", + " 12: [1148, 318, 1233, 1193, 1230, 1247, 2571, 527, 1288, 904],\n", + " 370: [1148, 318, 1233, 527, 260, 2571, 1193, 904, 1234, 4993],\n", + " 597: [318, 1233, 904, 858, 1193, 50, 260, 1234, 1148, 527],\n", + " 195: [1233, 912, 904, 318, 2396, 1222, 923, 1242, 3147, 1148],\n", + " 337: [858, 912, 50, 296, 608, 2019, 2959, 4973, 904, 1193],\n", + " 910: [608, 1221, 1219, 111, 2019, 912, 750, 1394, 4973, 541],\n", + " 63: [318, 260, 50, 1148, 1196, 2571, 4993, 1234, 7153, 5952],\n", + " 70: [1233, 1247, 923, 1250, 919, 2858, 1394, 2396, 1230, 1225],\n", + " 99: [2997, 2019, 2959, 1221, 1208, 1233, 1222, 2858, 1732, 2502],\n", + " 121: [260, 4993, 5952, 7153, 1704, 1148, 1234, 110, 3578, 4226],\n", + " 130: [2959, 2019, 1221, 912, 750, 1222, 2502, 1213, 4226, 318],\n", + " 244: [318, 1233, 260, 1207, 4973, 923, 2019, 4226, 908, 1250],\n", + " 291: [912, 904, 4973, 608, 1233, 923, 1394, 318, 2858, 1219],\n", + " 335: [318, 608, 1233, 50, 2959, 1213, 296, 1221, 1193, 593],\n", + " 361: [1233, 912, 904, 318, 923, 1193, 1207, 1247, 4973, 1148],\n", + " 470: [2019, 260, 912, 1196, 904, 1193, 908, 1233, 1201, 7153],\n", + " 497: [296, 2959, 1221, 2019, 608, 541, 1206, 750, 1213, 50],\n", + " 620: [260, 318, 2571, 7153, 4993, 5952, 2858, 50, 1148, 1196],\n", + " 648: [3147, 780, 1230, 733, 1242, 2762, 3578, 2692, 2571, 11],\n", + " 666: [260, 527, 318, 1288, 904, 923, 111, 1148, 912, 1207],\n", + " 710: [260, 912, 904, 1233, 1148, 1247, 1234, 4973, 2324, 923],\n", + " 794: [2571, 4993, 1288, 260, 5952, 2858, 318, 1136, 293, 541],\n", + " 854: [260, 318, 2571, 1148, 4993, 7153, 1288, 5952, 3578, 1704],\n", + " 861: [318, 912, 1233, 904, 1193, 4973, 1234, 50, 2019, 1207],\n", + " 819: [1233, 912, 1207, 904, 2396, 4973, 1193, 923, 1247, 858],\n", + " 87: [589, 260, 858, 1148, 1252, 1288, 4995, 5952, 6377, 7153],\n", + " 317: [1233, 318, 858, 912, 904, 2858, 1148, 2019, 4973, 1247],\n", + " 324: [296, 608, 1221, 50, 1196, 593, 260, 1201, 2019, 858],\n", + " 387: [318, 912, 50, 593, 1234, 858, 260, 904, 527, 1233],\n", + " 451: [296, 260, 50, 1221, 2858, 318, 541, 1136, 111, 1213],\n", + " 502: [527, 150, 1207, 62, 1584, 1704, 1721, 17, 2028, 318],\n", + " 559: [260, 1148, 527, 904, 2858, 4993, 318, 1233, 2571, 7153],\n", + " 973: [858, 1233, 1193, 2019, 912, 750, 318, 4973, 904, 1221],\n", + " 1015: [318, 912, 1233, 858, 1207, 1193, 527, 1234, 1247, 4973],\n", + " 1017: [318, 2571, 1148, 50, 260, 4226, 1233, 1193, 2858, 1288],\n", + " 85: [260, 1196, 1210, 318, 110, 1234, 47, 1198, 1704, 2324],\n", + " 306: [318, 1233, 912, 858, 1193, 904, 1234, 1207, 4973, 1247],\n", + " 653: [318, 1233, 912, 904, 858, 1193, 50, 1148, 1234, 2858],\n", + " 371: [318, 50, 260, 2571, 4226, 1234, 593, 1213, 1198, 858],\n", + " 566: [780, 3147, 736, 104, 733, 802, 1233, 2000, 11, 597],\n", + " 331: [296, 858, 1221, 2019, 1089, 912, 1222, 750, 2997, 608],\n", + " 665: [50, 318, 858, 2959, 1221, 1213, 1233, 1136, 2571, 260],\n", + " 872: [318, 912, 858, 1233, 904, 1234, 4973, 4226, 593, 1213],\n", + " 879: [858, 527, 912, 923, 1207, 2858, 1233, 318, 4973, 1247],\n", + " 486: [318, 1233, 1148, 1193, 858, 50, 2571, 912, 4226, 904],\n", + " 817: [2396, 1233, 1584, 1148, 2028, 3147, 2762, 1230, 904, 1242],\n", + " 864: [260, 318, 1704, 1207, 904, 1148, 2324, 17, 4993, 912],\n", + " 52: [1233, 912, 858, 4973, 1207, 1247, 1230, 318, 923, 2019],\n", + " 9: [2571, 1148, 7153, 318, 541, 1136, 1193, 1233, 4226, 858],\n", + " 117: [527, 260, 318, 1207, 904, 1704, 1148, 912, 2858, 1233],\n", + " 220: [318, 50, 858, 1233, 1193, 4226, 912, 1234, 2959, 1213],\n", + " 544: [1206, 1221, 541, 2997, 608, 111, 1201, 2019, 750, 1200],\n", + " 546: [2858, 1148, 1288, 1233, 2571, 260, 1193, 1136, 904, 541],\n", + " 363: [318, 1233, 1148, 260, 904, 2858, 1193, 912, 527, 858],\n", + " 445: [318, 2571, 1148, 260, 50, 2858, 1233, 1193, 4226, 1288],\n", + " 492: [260, 4993, 1288, 7153, 1148, 2858, 2571, 527, 318, 2028],\n", + " 534: [2858, 541, 111, 1136, 750, 2019, 7153, 1288, 1221, 858],\n", + " 234: [296, 589, 1240, 1036, 47, 2502, 380, 2542, 1200, 6874],\n", + " 430: [296, 50, 318, 2959, 593, 858, 1213, 4226, 260, 1234],\n", + " 1027: [318, 912, 1233, 1234, 858, 1193, 50, 904, 593, 1207],\n", + " 140: [1233, 904, 858, 4973, 923, 1207, 2019, 1247, 608, 908],\n", + " 373: [919, 356, 1234, 593, 3578, 2324, 50, 527, 1380, 457],\n", + " 926: [2959, 296, 1206, 2997, 858, 1221, 2502, 2019, 541, 1222],\n", + " 781: [260, 858, 1148, 541, 608, 912, 923, 1221, 1193, 50],\n", + " 825: [318, 912, 1207, 904, 1148, 1247, 527, 3147, 1242, 2396],\n", + " 913: [1035, 912, 318, 1234, 858, 1233, 364, 4973, 3147, 1207],\n", + " 453: [318, 3578, 356, 527, 2324, 1704, 1234, 260, 50, 1036],\n", + " 540: [260, 47, 593, 1221, 1196, 50, 1234, 4226, 2959, 296],\n", + " 66: [50, 1221, 858, 2019, 318, 4226, 593, 750, 608, 541],\n", + " 185: [318, 527, 1207, 1233, 3578, 1148, 3147, 150, 2324, 2762],\n", + " 222: [296, 2959, 50, 858, 318, 1221, 4226, 1193, 1213, 2019],\n", + " 498: [1233, 2858, 858, 1193, 2019, 111, 750, 923, 904, 1136],\n", + " 994: [912, 608, 904, 1394, 527, 1207, 4973, 1219, 260, 923],\n", + " 165: [318, 2571, 260, 50, 7153, 1148, 2858, 4226, 1288, 1136],\n", + " 202: [260, 858, 1148, 150, 912, 919, 1207, 1247, 1193, 3578],\n", + " 180: [260, 1148, 1288, 5952, 7153, 527, 912, 923, 1207, 1225],\n", + " 261: [318, 912, 527, 904, 1207, 1233, 4973, 919, 1234, 260],\n", + " 435: [318, 1233, 527, 912, 904, 1207, 1148, 1247, 2858, 1193],\n", + " 322: [318, 50, 858, 912, 1233, 1193, 4226, 904, 1213, 260],\n", + " 238: [260, 7153, 4993, 318, 5952, 1288, 1148, 2571, 527, 904],\n", + " 425: [2858, 923, 1233, 1199, 924, 904, 1288, 2019, 912, 1208],\n", + " 512: [858, 1233, 912, 2019, 1193, 4973, 904, 750, 923, 1221],\n", + " 725: [296, 50, 858, 318, 1221, 1213, 4226, 2019, 1193, 750],\n", + " 732: [1148, 527, 4993, 1288, 2028, 1233, 318, 2762, 1247, 7153],\n", + " 916: [296, 541, 1221, 2571, 7153, 111, 1136, 1206, 260, 2858],\n", + " 736: [2571, 50, 296, 318, 2959, 4226, 1221, 541, 260, 7153],\n", + " 961: [318, 50, 1233, 912, 1234, 858, 904, 1148, 593, 260],\n", + " 974: [318, 50, 260, 912, 1234, 593, 904, 858, 4226, 1148],\n", + " 443: [50, 296, 2571, 260, 1234, 4226, 1036, 1198, 858, 2959],\n", + " 1012: [318, 912, 1234, 1233, 858, 919, 904, 527, 50, 1207],\n", + " 515: [318, 593, 50, 1234, 858, 904, 1233, 4973, 527, 919],\n", + " 288: [260, 527, 912, 1207, 1234, 318, 2324, 1704, 1233, 3578],\n", + " 978: [1207, 1035, 527, 912, 318, 364, 2396, 1233, 904, 1247],\n", + " 28: [318, 260, 50, 527, 2571, 1148, 1234, 4226, 593, 1198],\n", + " 458: [527, 1207, 904, 318, 912, 1233, 1247, 923, 260, 1148],\n", + " 475: [858, 1233, 1193, 318, 912, 2019, 50, 750, 4226, 1221],\n", + " 592: [318, 2571, 50, 1148, 260, 4226, 1193, 1233, 7153, 858],\n", + " 598: [912, 318, 858, 1233, 904, 4973, 1193, 2019, 608, 2858],\n", + " 943: [2858, 318, 260, 1148, 1233, 1288, 7153, 904, 4993, 5952],\n", + " 55: [858, 2959, 912, 2019, 1233, 4973, 608, 750, 296, 1213],\n", + " 520: [1233, 858, 1193, 912, 904, 2019, 4973, 1148, 1247, 50],\n", + " 697: [1233, 2396, 923, 1230, 1207, 1252, 1193, 1247, 912, 904],\n", + " 849: [858, 1148, 593, 912, 1193, 2571, 50, 1234, 4226, 1233],\n", + " 1003: [260, 1148, 1288, 7153, 50, 2858, 4993, 318, 5952, 527],\n", + " 705: [912, 608, 858, 318, 4973, 593, 904, 50, 1213, 2019],\n", + " 231: [296, 318, 260, 593, 2959, 1213, 1196, 4226, 1221, 47],\n", + " 699: [858, 912, 1234, 1233, 593, 1193, 904, 4226, 1213, 260],\n", + " 448: [318, 1233, 904, 912, 1148, 1193, 260, 858, 1247, 527],\n", + " 750: [318, 527, 260, 1148, 904, 912, 1233, 1234, 1207, 50],\n", + " 782: [318, 50, 858, 912, 1233, 1234, 1193, 4226, 904, 593],\n", + " 108: [296, 858, 2959, 1221, 2019, 50, 1213, 318, 750, 912],\n", + " 29: [318, 1036, 50, 589, 3578, 380, 2571, 1234, 1240, 3147]})" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 학습 데이터에 나오지 않는 사용자와 아이템의 조합을 준비한다\n", + "data_test = data_train.build_anti_testset(None)\n", + "predictions = matrix_factorization.test(data_test)\n", + "pred_user2items = get_top_n(predictions, n=10)\n", + "pred_user2items" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "afa174f5", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 841 + }, + "executionInfo": { + "elapsed": 26, + "status": "ok", + "timestamp": 1672119551834, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "afa174f5", + "outputId": "cc01c6d1-c6f5-4616-a63f-2add1448726a" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " user_id movie_id rating timestamp \\\n", + "4732 2 110 5.0 868245777 \n", + "5246 2 260 5.0 868244562 \n", + "5798 2 590 5.0 868245608 \n", + "6150 2 648 2.0 868244699 \n", + "6531 2 733 3.0 868244562 \n", + "6813 2 736 3.0 868244698 \n", + "7113 2 780 3.0 868244698 \n", + "7506 2 786 3.0 868244562 \n", + "7661 2 802 2.0 868244603 \n", + "7779 2 858 2.0 868245645 \n", + "8077 2 1049 3.0 868245920 \n", + "8127 2 1073 3.0 868244562 \n", + "8381 2 1210 4.0 868245644 \n", + "8771 2 1356 3.0 868244603 \n", + "9097 2 1544 3.0 868245920 \n", + "\n", + " title \\\n", + "4732 Braveheart (1995) \n", + "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", + "5798 Dances with Wolves (1990) \n", + "6150 Mission: Impossible (1996) \n", + "6531 Rock, The (1996) \n", + "6813 Twister (1996) \n", + "7113 Independence Day (a.k.a. ID4) (1996) \n", + "7506 Eraser (1996) \n", + "7661 Phenomenon (1996) \n", + "7779 Godfather, The (1972) \n", + "8077 Ghost and the Darkness, The (1996) \n", + "8127 Willy Wonka & the Chocolate Factory (1971) \n", + "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", + "8771 Star Trek: First Contact (1996) \n", + "9097 Lost World: Jurassic Park, The (Jurassic Park ... \n", + "\n", + " genre \\\n", + "4732 [Action, Drama, War] \n", + "5246 [Action, Adventure, Sci-Fi] \n", + "5798 [Adventure, Drama, Western] \n", + "6150 [Action, Adventure, Mystery, Thriller] \n", + "6531 [Action, Adventure, Thriller] \n", + "6813 [Action, Adventure, Romance, Thriller] \n", + "7113 [Action, Adventure, Sci-Fi, War] \n", + "7506 [Action, Drama, Thriller] \n", + "7661 [Drama, Romance] \n", + "7779 [Crime, Drama] \n", + "8077 [Action, Adventure] \n", + "8127 [Children, Comedy, Fantasy, Musical] \n", + "8381 [Action, Adventure, Sci-Fi] \n", + "8771 [Action, Adventure, Sci-Fi, Thriller] \n", + "9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n", + "\n", + " tag timestamp_rank \n", + "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", + "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", + "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", + "6150 [confusing, confusing plot, memorable sequence... 12.0 \n", + "6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n", + "6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n", + "7113 [action, alien invasion, aliens, will smith, a... 14.0 \n", + "7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n", + "7661 [interesting concept, own, john travolta, john... 15.0 \n", + "7779 [oscar (best picture), marlon brando, classic,... 9.0 \n", + "8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n", + "8127 [based on a book, roald dahl, based on a book,... 20.0 \n", + "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n", + "8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n", + "9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 " + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2인 사용자가 학습 데이터로 평가를 부여한 영화 목록\n", + "movielens_train[movielens_train.user_id==2]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "06bb1a90", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 143 + }, + "executionInfo": { + "elapsed": 23, + "status": "ok", + "timestamp": 1672119551835, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "06bb1a90", + "outputId": "d1d3d0cf-cae7-41ff-bd6c-76121fe4689e" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idtitlegenretag
24872571Matrix, The (1999)[Action, Sci-Fi, Thriller][artificial intelligence, hackers, heroine in ...
28742959Fight Club (1999)[Action, Crime, Drama, Thriller][based on a book, chuck palahniuk, edward nort...
34893578Gladiator (2000)[Action, Adventure, Drama][revenge, crowe's best, gfei own it, dvd, glad...
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " movie_id title genre \\\n", + "2487 2571 Matrix, The (1999) [Action, Sci-Fi, Thriller] \n", + "2874 2959 Fight Club (1999) [Action, Crime, Drama, Thriller] \n", + "3489 3578 Gladiator (2000) [Action, Adventure, Drama] \n", + "\n", + " tag \n", + "2487 [artificial intelligence, hackers, heroine in ... \n", + "2874 [based on a book, chuck palahniuk, edward nort... \n", + "3489 [revenge, crowe's best, gfei own it, dvd, glad... " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2에 대한 추천(3578, 2571, 2959)\n", + "movies[movies.movie_id.isin([3578, 2571, 2959])]" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "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.7.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/chapter5/colab/NMF.ipynb b/chapter5/colab/NMF.ipynb index 0f8192f..3c34734 100644 --- a/chapter5/colab/NMF.ipynb +++ b/chapter5/colab/NMF.ipynb @@ -1 +1,2286 @@ -{"cells":[{"cell_type":"markdown","id":"b9224173","metadata":{"id":"b9224173"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/NMF.ipynb)"]},{"cell_type":"markdown","id":"f8caaceb","metadata":{"id":"f8caaceb"},"source":["# 비부값 행렬 분석"]},{"cell_type":"code","execution_count":1,"id":"9cb2f773","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9cb2f773","executionInfo":{"status":"ok","timestamp":1672119380127,"user_tz":-540,"elapsed":4459,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"3b3441b6-3940-4b5a-ef0c-99ca4e312e13"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:36:13-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 64.1MB/s in 1.0s \n","\n","2022-12-27 05:36:14 (64.1 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"ed3c6a08","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ed3c6a08","executionInfo":{"status":"ok","timestamp":1672119449934,"user_tz":-540,"elapsed":69811,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"740a21e4-a8ae-42cc-f142-e51190fa0f81"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"8e6879e3","metadata":{"id":"8e6879e3","executionInfo":{"status":"ok","timestamp":1672119449934,"user_tz":-540,"elapsed":21,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 결손값을 채우는 방법\n","fillna_with_zero = True\n","# 인자 수\n","factors = 5"]},{"cell_type":"code","execution_count":4,"id":"52281452","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"52281452","executionInfo":{"status":"ok","timestamp":1672119449935,"user_tz":-540,"elapsed":20,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"1bb4e599-cc7a-4fc5-cb95-4ef09185a7a2"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[0., 0., 0., ..., 0., 0., 0.],\n"," [0., 0., 0., ..., 0., 0., 0.],\n"," [0., 0., 0., ..., 0., 0., 0.],\n"," ...,\n"," [5., 0., 3., ..., 0., 0., 0.],\n"," [0., 0., 0., ..., 0., 0., 0.],\n"," [5., 0., 0., ..., 0., 0., 0.]])"]},"metadata":{},"execution_count":4}],"source":["# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다.\n","user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n","user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n","movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n","if fillna_with_zero:\n"," matrix = user_movie_matrix.fillna(0).to_numpy()\n","else:\n"," matrix = user_movie_matrix.fillna(movielens_train.rating.mean()).to_numpy()\n","matrix"]},{"cell_type":"code","execution_count":5,"id":"708dda3c","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"708dda3c","executionInfo":{"status":"ok","timestamp":1672119463518,"user_tz":-540,"elapsed":13601,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"e404fb9c-9bd5-4466-95a6-79c39e5ea205"},"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.8/dist-packages/sklearn/decomposition/_nmf.py:289: FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).\n"," warnings.warn(\n","/usr/local/lib/python3.8/dist-packages/sklearn/decomposition/_nmf.py:1637: ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve convergence.\n"," warnings.warn(\n"]},{"output_type":"execute_result","data":{"text/plain":["NMF(n_components=5)"]},"metadata":{},"execution_count":5}],"source":["from sklearn.decomposition import NMF\n","\n","# NMF 실행\n","nmf = NMF(n_components=factors)\n","nmf.fit(matrix)\n"]},{"cell_type":"code","execution_count":6,"id":"687a16b1","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"687a16b1","executionInfo":{"status":"ok","timestamp":1672119475949,"user_tz":-540,"elapsed":12450,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"64397446-be94-4869-bc6c-61d351679634"},"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.8/dist-packages/sklearn/decomposition/_nmf.py:289: FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).\n"," warnings.warn(\n","/usr/local/lib/python3.8/dist-packages/sklearn/decomposition/_nmf.py:1637: ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve convergence.\n"," warnings.warn(\n"]},{"output_type":"execute_result","data":{"text/plain":["array([[0.02183306, 0.53589472, 0. , 0. , 0. ],\n"," [0.21316649, 0.10881363, 0. , 0. , 0. ],\n"," [0. , 0.02976153, 0.05290897, 0.15364729, 0.02014201],\n"," ...,\n"," [0.13635649, 0.14281654, 0. , 0. , 0.00656846],\n"," [0.09753435, 0.01077205, 0. , 0.13237952, 0.13516597],\n"," [0.99758645, 0. , 0. , 0.64704016, 0.0597298 ]])"]},"metadata":{},"execution_count":6}],"source":["P = nmf.fit_transform(matrix)\n","P"]},{"cell_type":"code","execution_count":7,"id":"a731dbb1","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"a731dbb1","executionInfo":{"status":"ok","timestamp":1672119475949,"user_tz":-540,"elapsed":5,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"f6e9c43b-428e-4a65-e742-25a037fbe084"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[1.96418272, 0.50117827, 0.39871676, ..., 0. , 0. ,\n"," 0. ],\n"," [1.15067071, 0.96077987, 0.40196914, ..., 0. , 0.00289232,\n"," 0.00216924],\n"," [0.47176639, 0. , 0. , ..., 0. , 0. ,\n"," 0. ],\n"," [0.79016059, 0.30417491, 0. , ..., 0.02803924, 0.01446954,\n"," 0.01085215],\n"," [0.29616062, 0.30060155, 0.17846866, ..., 0. , 0. ,\n"," 0. ]])"]},"metadata":{},"execution_count":7}],"source":["Q = nmf.components_\n","Q"]},{"cell_type":"code","execution_count":8,"id":"36669c15","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"36669c15","executionInfo":{"status":"ok","timestamp":1672119475949,"user_tz":-540,"elapsed":3,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"6c3b7cb4-feb2-460f-8f90-42484580128c"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[6.59522475e-01, 5.25819116e-01, 2.24118350e-01, ...,\n"," 0.00000000e+00, 1.54997784e-03, 1.16248338e-03],\n"," [5.43906588e-01, 2.11380357e-01, 1.28732773e-01, ...,\n"," 0.00000000e+00, 3.14723598e-04, 2.36042698e-04],\n"," [1.86577692e-01, 8.13846441e-02, 1.55579328e-02, ...,\n"," 4.30815294e-03, 2.30928521e-03, 1.73196391e-03],\n"," ...,\n"," [4.34109190e-01, 2.07528655e-01, 1.12947724e-01, ...,\n"," 0.00000000e+00, 4.13070817e-04, 3.09803112e-04],\n"," [3.48602292e-01, 1.40129296e-01, 6.73415036e-02, ...,\n"," 3.71182091e-03, 1.94662680e-03, 1.45997010e-03],\n"," [2.48839731e+00, 7.14736905e-01, 4.08414332e-01, ...,\n"," 1.81425136e-02, 9.36237290e-03, 7.02177967e-03]])"]},"metadata":{},"execution_count":8}],"source":["import numpy as np\n","# 예측 평갓값 행렬\n","pred_matrix = np.dot(P, Q)\n","pred_matrix"]},{"cell_type":"code","execution_count":9,"id":"08eb2849","metadata":{"id":"08eb2849","executionInfo":{"status":"ok","timestamp":1672119476234,"user_tz":-540,"elapsed":287,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 학습용에 나타나지 않는 사용자나 영화의 예측 평갓값은 평균 평갓값으로 한다\n","average_score = movielens_train.rating.mean()\n","movie_rating_predict = movielens_test.copy()\n","pred_results = []\n","for i, row in movielens_test.iterrows():\n"," user_id = row[\"user_id\"]\n"," if user_id not in user_id2index or row[\"movie_id\"] not in movie_id2index:\n"," pred_results.append(average_score)\n"," continue\n"," user_index = user_id2index[row[\"user_id\"]]\n"," movie_index = movie_id2index[row[\"movie_id\"]]\n"," pred_score = pred_matrix[user_index, movie_index]\n"," pred_results.append(pred_score)\n","movie_rating_predict[\"rating_pred\"] = pred_results"]},{"cell_type":"code","execution_count":10,"id":"7aa822a0","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"7aa822a0","executionInfo":{"status":"ok","timestamp":1672119477563,"user_tz":-540,"elapsed":1330,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"12551108-c9b0-445a-fe32-eb39af8205c8"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {139: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n"," 149: [4226, 2571, 2762, 47, 3996, 318, 6539, 5445, 4963, 1704],\n"," 182: [47, 6874, 2329, 3793, 4011, 7361, 4878, 7438, 6333, 2502],\n"," 215: [2329, 527, 6711, 3147, 2683, 8360, 5669, 6502, 3948, 1246],\n"," 281: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 326: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 351: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n"," 357: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 426: [2502,\n"," 33794,\n"," 3949,\n"," 7147,\n"," 33493,\n"," 5902,\n"," 44191,\n"," 33166,\n"," 4848,\n"," 6016],\n"," 456: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 459: [318, 4886, 2997, 50, 4995, 4973, 7361, 4878, 3897, 2502],\n"," 494: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 517: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 524: [7153, 3996, 6539, 5349, 4886, 3793, 7361, 593, 7438, 527],\n"," 556: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 588: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 589: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 590: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 4306, 3996, 6539],\n"," 601: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 621: [5952, 7153, 4306, 2329, 4995, 4011, 4878, 1682, 3897, 7438],\n"," 634: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 672: [4993, 5952, 4226, 7153, 4306, 3996, 318, 6539, 5445, 6874],\n"," 701: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 719: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 745: [5952, 7153, 4306, 6539, 5445, 6874, 2329, 6377, 356, 4973],\n"," 757: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 775: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 780: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 4306, 3996],\n"," 785: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 788: [296, 4973, 4878, 3897, 1089, 2502, 1136, 1961, 2542, 4034],\n"," 870: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 987: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 988: [7153, 6539, 5445, 6874, 4963, 2329, 6377, 4995, 7361, 4027],\n"," 1020: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 1: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 22: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 26: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 30: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 34: [4993, 5952, 4226, 2858, 7153, 4306, 3996, 6539, 5445, 6874],\n"," 38: [4226, 2858, 4306, 6539, 5445, 4886, 2329, 3793, 2997, 50],\n"," 50: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 53: [2959, 4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996],\n"," 54: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 67: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 71: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 76: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 88: [4226, 296, 47, 4306, 3996, 318, 1704, 2997, 50, 4995],\n"," 89: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 94: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 95: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 100: [2959, 4993, 4226, 7153, 3578, 2762, 4306, 5445, 6874, 4963],\n"," 101: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 102: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 103: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 111: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 116: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 118: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 143: [7153, 6539, 6874, 6377, 50, 7361, 4027, 7438, 8961, 6711],\n"," 144: [1704, 4886, 3897, 5989, 2502, 2706, 3147, 1784, 3114, 4979],\n"," 162: [4226, 318, 4963, 1704, 2329, 2997, 50, 4011, 7361, 4878],\n"," 172: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 173: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 187: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 193: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 208: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 210: [2959, 5952, 47, 6539, 5445, 6874, 4963, 5349, 4886, 2329],\n"," 214: [2959, 5952, 2858, 7153, 4306, 318, 6539, 6874, 2329, 6377],\n"," 228: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 232: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 236: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 259: [3578, 318, 6377, 4011, 4027, 1089, 8961, 1961, 2542, 4034],\n"," 260: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 267: [4306, 1704, 4886, 4011, 4878, 1682, 5989, 2502, 6711, 4034],\n"," 268: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 271: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 274: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n"," 287: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 292: [6874, 4963, 527, 6333, 5989, 2542, 3147, 5418, 1517, 3481],\n"," 296: [3996, 1704, 6377, 1136, 2683, 1270, 1784, 1258, 364, 1517],\n"," 303: [6539, 4963, 1704, 5349, 2329, 6377, 2997, 50, 4995, 4973],\n"," 307: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 310: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n"," 315: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 320: [318, 6874, 1704, 5349, 2329, 3793, 2997, 50, 7361, 4878],\n"," 332: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 339: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 343: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 355: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 364: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 365: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 368: [2858, 2762, 318, 1704, 2329, 4995, 2028, 4878, 593, 7438],\n"," 381: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 382: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 383: [2959, 47, 4306, 6539, 6874, 4963, 5349, 2329, 356, 4011],\n"," 391: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 396: [4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 3996, 318],\n"," 398: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 406: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 409: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 410: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 416: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 418: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 419: [2959, 7153, 3578, 6539, 6874, 1704, 4886, 2329, 6377, 356],\n"," 421: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 424: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 432: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 434: [4226, 296, 47, 318, 2329, 2997, 50, 4973, 7361, 4878],\n"," 436: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 438: [2959, 4993, 5952, 4226, 7153, 47, 6539, 5445, 6874, 4963],\n"," 441: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 446: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 452: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 3996],\n"," 460: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 463: [7153, 6874, 4963, 6377, 4973, 4011, 7361, 1682, 3897, 7438],\n"," 468: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 469: [2959, 47, 2329, 50, 4995, 4011, 7361, 4878, 1682, 3897],\n"," 472: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 476: [1704, 4886, 4995, 7438, 2502, 2291, 1923, 1721, 4034, 1270],\n"," 480: [7153, 318, 6539, 6874, 1704, 2329, 6377, 7361, 4878, 1682],\n"," 482: [2858, 2762, 3996, 5445, 6874, 2997, 50, 4973, 1682, 3897],\n"," 493: [4993, 5952, 7153, 593, 7438, 6333, 2502, 1136, 6365, 1258],\n"," 496: [2959, 4993, 5952, 2858, 7153, 3578, 4306, 3996, 318, 6539],\n"," 501: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 504: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 505: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 511: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 516: [6377, 50, 7361, 1682, 4027, 2542, 33794, 364, 3481, 2918],\n"," 525: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 530: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 531: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 533: [4886, 2329, 4995, 4011, 4878, 2706, 3147, 6365, 2683, 778],\n"," 536: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 543: [2329, 2028, 4011, 3897, 5989, 1923, 2542, 4034, 3481, 3052],\n"," 547: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 549: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 553: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 558: [7153, 2762, 6874, 4886, 2329, 2997, 4973, 4011, 7361, 4878],\n"," 562: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 567: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 571: [2959, 4993, 5952, 7153, 2762, 296, 3996, 6874, 356, 4878],\n"," 572: [3578, 3996, 318, 1704, 4973, 1961, 4034, 33794, 5418, 1784],\n"," 577: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 581: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 585: [4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996, 6539],\n"," 593: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 604: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 605: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 609: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 628: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 629: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 645: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 650: [2959, 5952, 7153, 296, 4306, 6539, 5445, 6874, 4963, 4886],\n"," 656: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 657: [4306, 4963, 4886, 3793, 4011, 7438, 6333, 2502, 1136, 8961],\n"," 669: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 678: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 683: [2959, 5952, 4226, 2858, 2762, 296, 3996, 318, 6874, 4963],\n"," 688: [3996, 318, 5445, 4973, 2028, 7361, 4878, 1682, 3897, 2502],\n"," 689: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 693: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 716: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n"," 720: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 734: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 735: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 739: [4993, 5952, 4226, 2858, 7153, 3578, 296, 4306, 3996, 318],\n"," 755: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 758: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 767: [2959, 4226, 2858, 296, 47, 4306, 5445, 4963, 1704, 4886],\n"," 769: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 786: [2959, 4993, 5952, 2858, 7153, 296, 47, 6539, 5445, 6874],\n"," 789: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 792: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 795: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 798: [2329, 6377, 4011, 7361, 4027, 2502, 2706, 4034, 1784, 3481],\n"," 799: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 802: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 806: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 807: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 816: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 827: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 828: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 846: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 859: [2858, 47, 4306, 318, 6874, 4963, 2329, 6377, 2997, 50],\n"," 862: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 876: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 881: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 885: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 4306, 3996],\n"," 886: [4993, 5952, 4226, 7153, 4306, 6539, 5445, 6874, 4963, 5349],\n"," 889: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 890: [4993, 5952, 4226, 7153, 47, 4306, 318, 6539, 5445, 6874],\n"," 891: [6539, 5445, 6874, 4963, 2329, 6377, 4995, 4011, 7361, 593],\n"," 896: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 897: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 898: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 908: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 922: [4226, 2858, 296, 3996, 5445, 6874, 1704, 2329, 3793, 2997],\n"," 930: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 938: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 956: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 958: [4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306, 3996],\n"," 968: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 977: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 4306, 3996, 6539],\n"," 990: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 996: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 1004: [4993,\n"," 5952,\n"," 4226,\n"," 7153,\n"," 3578,\n"," 4306,\n"," 3996,\n"," 6539,\n"," 5445,\n"," 6874],\n"," 1005: [2959,\n"," 4993,\n"," 5952,\n"," 4226,\n"," 2571,\n"," 2858,\n"," 7153,\n"," 3578,\n"," 2762,\n"," 4306],\n"," 1008: [6539,\n"," 4963,\n"," 4995,\n"," 2028,\n"," 4011,\n"," 1682,\n"," 3897,\n"," 4027,\n"," 1089,\n"," 5989],\n"," 1029: [2959,\n"," 4993,\n"," 5952,\n"," 4226,\n"," 2571,\n"," 2858,\n"," 7153,\n"," 3578,\n"," 2762,\n"," 4306],\n"," 1037: [2959,\n"," 4993,\n"," 5952,\n"," 4226,\n"," 2571,\n"," 2858,\n"," 7153,\n"," 3578,\n"," 2762,\n"," 4306],\n"," 1050: [2959,\n"," 4993,\n"," 5952,\n"," 4226,\n"," 2571,\n"," 2858,\n"," 7153,\n"," 3578,\n"," 2762,\n"," 4306],\n"," 4: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 8: [296, 318, 6377, 356, 4995, 4973, 7361, 5989, 2502, 2706],\n"," 18: [4993, 5952, 4226, 7153, 5445, 6874, 5349, 4886, 2329, 3793],\n"," 36: [7153, 47, 3996, 318, 5445, 6874, 1704, 4886, 2329, 2997],\n"," 47: [47, 4963, 1704, 5349, 4886, 6377, 356, 7361, 4878, 1682],\n"," 59: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 62: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 77: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 79: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 80: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 119: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 122: [4993, 5952, 4226, 7153, 47, 4306, 6539, 5445, 6874, 4963],\n"," 125: [2329,\n"," 7361,\n"," 4878,\n"," 1682,\n"," 7438,\n"," 8961,\n"," 33794,\n"," 5418,\n"," 32587,\n"," 8636],\n"," 126: [4973, 7361, 4878, 6711, 2542, 6365, 3052, 778, 1206, 5669],\n"," 132: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 141: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 154: [4993, 5952, 4226, 2858, 7153, 3578, 4306, 3996, 318, 6874],\n"," 155: [4226, 7153, 6539, 5445, 6874, 4963, 5349, 4886, 6377, 3793],\n"," 163: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 164: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 170: [4993, 5952, 7153, 3578, 3996, 6539, 5445, 6874, 1704, 5349],\n"," 171: [4993, 5952, 4226, 2571, 7153, 3578, 4306, 3996, 6539, 5445],\n"," 176: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 190: [4226, 2858, 47, 318, 4963, 1704, 2329, 6377, 2997, 50],\n"," 197: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 198: [2997,\n"," 4973,\n"," 4011,\n"," 6333,\n"," 5989,\n"," 2291,\n"," 2542,\n"," 4034,\n"," 3147,\n"," 33794],\n"," 199: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 212: [2858, 3578, 1704, 4886, 2329, 6377, 4011, 4878, 1682, 3897],\n"," 221: [2959, 4993, 4226, 7153, 3578, 2762, 4306, 3996, 6539, 5445],\n"," 223: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 226: [2959, 2858, 7153, 6539, 6874, 4963, 6377, 2997, 4973, 7361],\n"," 241: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 247: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 249: [2858, 3996, 6874, 2997, 4973, 3897, 7438, 527, 6333, 8961],\n"," 254: [4993, 4226, 7153, 6539, 6874, 4963, 1704, 4886, 2329, 6377],\n"," 264: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 273: [2959, 4226, 2762, 296, 47, 4306, 3996, 5445, 6874, 4963],\n"," 275: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 6539, 5445],\n"," 276: [6539, 4963, 4995, 4027, 33794, 5418, 1517, 2918, 3052, 110],\n"," 293: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 294: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 295: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 318: [4226, 2329, 4878, 1923, 3147, 32, 2692, 293, 5669, 1213],\n"," 321: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 345: [4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318, 6539],\n"," 346: [2959, 4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996],\n"," 348: [1136, 6365, 5418, 3481, 2918, 3052, 1580, 4022, 1732, 1265],\n"," 349: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 354: [4226, 296, 47, 6874, 4886, 2329, 3793, 2997, 50, 2028],\n"," 359: [47, 318, 6874, 1704, 5349, 4886, 2329, 356, 50, 2028],\n"," 366: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 369: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 384: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 390: [47, 6539, 6377, 7361, 3897, 1089, 7438, 527, 2291, 1961],\n"," 392: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 403: [2959, 4993, 5952, 2858, 3578, 4306, 3996, 318, 6539, 6874],\n"," 407: [4226, 2858, 318, 1704, 5349, 4995, 4973, 4011, 7361, 4878],\n"," 414: [4226, 7153, 3578, 4306, 318, 6539, 5445, 5349, 4886, 2329],\n"," 431: [2959, 4226, 2571, 2858, 3578, 2762, 296, 47, 3996, 5445],\n"," 454: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 465: [5952, 2571, 7153, 5445, 4963, 4886, 3793, 2028, 3897, 6333],\n"," 481: [2762, 6377, 2997, 4973, 4027, 527, 5989, 8961, 1961, 3147],\n"," 485: [4993, 5952, 4226, 7153, 47, 4306, 3996, 6539, 5445, 6874],\n"," 503: [47, 3996, 4963, 1704, 5349, 50, 4011, 3897, 4027, 1089],\n"," 513: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n"," 545: [3578, 4306, 6539, 5445, 4963, 5349, 3793, 1682, 6333, 2706],\n"," 552: [4993, 5952, 2571, 7153, 3578, 47, 3996, 5445, 6874, 4963],\n"," 554: [4226, 2571, 3578, 47, 6539, 5445, 5349, 4886, 2329, 50],\n"," 555: [5445, 1704, 4973, 7361, 1682, 5989, 1923, 1721, 4034, 6365],\n"," 561: [318, 1704, 2997, 50, 4995, 7361, 1682, 3897, 4027, 1089],\n"," 565: [2959, 4993, 5952, 4226, 2571, 7153, 47, 4306, 318, 6539],\n"," 591: [2959, 4993, 5952, 4226, 2571, 7153, 2762, 296, 47, 4306],\n"," 617: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 622: [4226, 3578, 3996, 6539, 6874, 4886, 6377, 3793, 2997, 50],\n"," 623: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 633: [2762, 5445, 4963, 2329, 2997, 4995, 4973, 4011, 4878, 1682],\n"," 636: [2959, 4226, 2858, 47, 4306, 3996, 1704, 5349, 4886, 6377],\n"," 638: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 641: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 646: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 654: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 655: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 658: [4993, 5952, 7153, 2762, 4306, 3996, 318, 5445, 1704, 5349],\n"," 660: [4993, 5952, 4226, 7153, 6539, 5445, 6874, 1704, 5349, 4886],\n"," 661: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 677: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 714: [47, 5349, 3793, 4011, 7361, 4878, 593, 1089, 7438, 6333],\n"," 715: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 723: [2858, 296, 3996, 5445, 4963, 1704, 4886, 6377, 3793, 2997],\n"," 731: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 47, 4306, 3996],\n"," 742: [593, 1089, 7438, 527, 2502, 1258, 2692, 858, 1732, 293],\n"," 743: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 752: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 772: [2959, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47, 318],\n"," 814: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 823: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 826: [2762, 4306, 5349, 4886, 2329, 527, 5989, 2502, 2291, 8961],\n"," 833: [2959, 4226, 7153, 3578, 2762, 47, 6539, 6874, 4886, 2329],\n"," 838: [2959, 7153, 4306, 3996, 6874, 4963, 5349, 4886, 2329, 3793],\n"," 842: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 852: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 878: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 887: [4993, 5952, 4226, 7153, 2762, 4306, 3996, 6539, 5445, 6874],\n"," 895: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 899: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 902: [6377, 2997, 4973, 4878, 1682, 4027, 527, 2502, 2291, 1923],\n"," 907: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 928: [7153, 6539, 6874, 1704, 5349, 3793, 4995, 2028, 1682, 4027],\n"," 936: [318, 5349, 3793, 5989, 2706, 2291, 1721, 4034, 1270, 1258],\n"," 964: [4993, 5952, 2858, 7153, 2762, 4306, 3996, 5445, 6874, 1704],\n"," 970: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 972: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n"," 1001: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1013: [2959, 4226, 2858, 3578, 2762, 47, 6539, 5445, 6874, 1704],\n"," 1018: [3578, 4963, 1704, 6377, 50, 4995, 4027, 527, 2502, 8961],\n"," 1028: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 1031: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1035: [3996, 6539, 4963, 1704, 2329, 2997, 50, 4995, 4973, 4011],\n"," 1038: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1045: [5952,\n"," 3996,\n"," 4973,\n"," 6711,\n"," 2542,\n"," 33794,\n"," 5418,\n"," 2692,\n"," 1580,\n"," 480],\n"," 1046: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 35: [5952, 7153, 3578, 296, 318, 6539, 1704, 5349, 4886, 6377],\n"," 72: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 91: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 4306, 3996],\n"," 106: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 4306, 3996],\n"," 128: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 158: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 160: [2959, 4993, 5952, 4226, 7153, 2762, 296, 47, 4306, 318],\n"," 175: [4306, 3996, 6539, 5445, 4963, 1704, 5349, 3793, 4995, 1682],\n"," 196: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306, 3996],\n"," 203: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 206: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n"," 207: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 255: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 265: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 296, 4306, 3996],\n"," 340: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 404: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 433: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 440: [3578, 4306, 3996, 5445, 6874, 4963, 1704, 5349, 4886, 6377],\n"," 444: [2959, 4993, 5952, 4226, 7153, 3578, 3996, 318, 6539, 5445],\n"," 450: [2959, 7153, 6539, 6874, 1704, 6377, 4011, 7361, 4878, 1682],\n"," 479: [4993, 5952, 7153, 3578, 47, 4306, 3996, 6539, 5445, 6874],\n"," 491: [4993, 7153, 296, 4306, 6539, 5445, 4886, 2329, 6377, 3793],\n"," 506: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 523: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 539: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 541: [4993, 5952, 4226, 7153, 3578, 2762, 296, 4306, 3996, 318],\n"," 616: [4306, 3996, 6874, 4963, 1704, 5349, 2329, 6377, 3793, 4995],\n"," 647: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 659: [2959, 3578, 6539, 4963, 5349, 4886, 2329, 3793, 50, 2028],\n"," 695: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 4306, 3996],\n"," 700: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 707: [4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996, 318],\n"," 748: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 759: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 784: [4973, 4011, 7361, 1682, 4027, 1089, 5989, 2502, 6711, 2542],\n"," 790: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 835: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 844: [2959, 4993, 5952, 4226, 7153, 296, 47, 4306, 3996, 318],\n"," 871: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 875: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 892: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 919: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 935: [2959, 4993, 5952, 2858, 7153, 2762, 296, 47, 4306, 318],\n"," 942: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 960: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 1006: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1026: [2858, 296, 47, 3996, 318, 6539, 5445, 356, 2997, 50],\n"," 1047: [5952, 6539, 1704, 593, 7438, 5989, 2291, 1961, 2683, 5418],\n"," 65: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 3996],\n"," 135: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 152: [2959, 4993, 5952, 4226, 2858, 7153, 296, 4306, 3996, 6539],\n"," 166: [2959, 4226, 2571, 2858, 7153, 3578, 296, 47, 4306, 3996],\n"," 179: [2959, 5952, 4226, 2858, 7153, 2762, 47, 318, 6539, 6874],\n"," 188: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 217: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 253: [2959, 4993, 5952, 4226, 7153, 2762, 296, 47, 4306, 318],\n"," 262: [2858, 2329, 6377, 1682, 3897, 4027, 1089, 5989, 1136, 6711],\n"," 277: [2959, 4226, 2571, 2858, 3578, 47, 4306, 3996, 318, 6539],\n"," 289: [6377, 4878, 7438, 6333, 2502, 2542, 6365, 2683, 5418, 364],\n"," 300: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 47, 4306, 3996],\n"," 302: [4993, 5952, 4226, 7153, 47, 4306, 3996, 6539, 5445, 6874],\n"," 308: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 311: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 328: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 329: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 344: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 347: [2959, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47, 3996],\n"," 358: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 3996, 6539],\n"," 474: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 483: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 509: [4993, 3578, 4306, 318, 6539, 5445, 6377, 2997, 4973, 4878],\n"," 578: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n"," 643: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n"," 679: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 680: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n"," 691: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 47, 4306, 3996],\n"," 702: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 708: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 730: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 751: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 773: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n"," 803: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996],\n"," 809: [2959, 4226, 2571, 7153, 3578, 296, 4306, 3996, 318, 6539],\n"," 820: [2762, 318, 1704, 2329, 4995, 4011, 3897, 527, 5989, 2542],\n"," 824: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 4306],\n"," 863: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 4306, 3996, 6539],\n"," 865: [4993, 5952, 2762, 3996, 6539, 5445, 6874, 5349, 4886, 2329],\n"," 867: [2762, 47, 6874, 4995, 4011, 7361, 4878, 1682, 593, 1089],\n"," 911: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 915: [2959, 4226, 7153, 3578, 296, 3996, 318, 6539, 6874, 1704],\n"," 939: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 946: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 954: [4993, 5952, 4226, 2858, 7153, 296, 4306, 3996, 318, 6539],\n"," 957: [4993, 5952, 4226, 7153, 3578, 2762, 4306, 3996, 6539, 5445],\n"," 971: [7153, 3578, 2762, 47, 4306, 6539, 5445, 6874, 4963, 6377],\n"," 986: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 992: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n"," 92: [2959, 296, 4306, 3996, 6874, 4886, 2329, 6377, 2997, 50],\n"," 107: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 131: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 138: [3996, 4963, 5349, 4886, 3793, 2997, 4973, 7361, 4878, 1682],\n"," 145: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 183: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 209: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 230: [4993, 5952, 4226, 2571, 7153, 2762, 47, 4306, 3996, 318],\n"," 263: [7153, 4306, 6874, 356, 2997, 2028, 4011, 1682, 3897, 1089],\n"," 305: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 314: [2959, 4226, 2571, 7153, 47, 4306, 6539, 5445, 6874, 4963],\n"," 319: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 325: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 341: [4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996, 6539],\n"," 471: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 488: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 495: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 532: [2959, 5952, 7153, 47, 4306, 318, 6539, 5445, 6874, 1704],\n"," 564: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 574: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 603: [4226, 3578, 2762, 47, 3996, 6539, 5445, 6874, 4963, 5349],\n"," 674: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 753: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 810: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 830: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 841: [2959, 5952, 2858, 7153, 2762, 296, 47, 4306, 318, 6539],\n"," 856: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 921: [2959, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 933: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 4306, 3996, 6539],\n"," 976: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 37: [2858, 2762, 6539, 5445, 4963, 5349, 4886, 2329, 6377, 356],\n"," 83: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 248: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 387: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 428: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 451: [2959, 2858, 3578, 296, 47, 4306, 3996, 318, 6539, 5445],\n"," 584: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 874: [4226, 318, 50, 4011, 4878, 1089, 527, 2291, 1961, 6711],\n"," 995: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 10: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 19: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 41: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 43: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 44: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 45: [2959, 4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996],\n"," 51: [2959, 4993, 5952, 2571, 7153, 47, 4306, 318, 6539, 5445],\n"," 56: [2959, 2762, 47, 3996, 318, 6539, 5445, 4963, 1704, 5349],\n"," 61: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 68: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n"," 69: [2959, 4993, 5952, 4226, 2571, 7153, 47, 4306, 3996, 6539],\n"," 78: [4993, 5952, 7153, 3578, 47, 4306, 6539, 4963, 1704, 5349],\n"," 110: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 115: [2959, 4993, 5952, 4226, 2571, 7153, 47, 4306, 3996, 6539],\n"," 129: [4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306, 3996],\n"," 150: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 168: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 169: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 178: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 186: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n"," 201: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 4306, 3996],\n"," 239: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 256: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 257: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 296, 47, 4306],\n"," 272: [2571, 2762, 47, 318, 6874, 4963, 1704, 4886, 4995, 4973],\n"," 279: [4993, 4226, 2858, 5445, 4963, 1704, 2329, 50, 4995, 4973],\n"," 280: [2959, 4226, 3578, 2762, 296, 47, 3996, 318, 6539, 5445],\n"," 285: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n"," 298: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 301: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n"," 304: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 333: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 334: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 338: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n"," 350: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 353: [2858, 3578, 2762, 4306, 318, 6539, 5445, 6874, 4963, 1704],\n"," 378: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 386: [4993, 5952, 2571, 7153, 47, 4306, 6539, 5445, 6874, 4963],\n"," 397: [4993, 5952, 7153, 47, 4306, 3996, 6539, 5445, 6874, 4963],\n"," 420: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 439: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 449: [4993, 5952, 4226, 7153, 296, 4306, 3996, 318, 6539, 5445],\n"," 478: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 487: [4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539, 5445],\n"," 489: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 500: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 510: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 521: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 522: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 527: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 529: [2959, 4993, 5952, 2571, 2858, 7153, 3578, 2762, 47, 3996],\n"," 535: [4226, 2858, 7153, 2762, 3996, 6539, 6874, 4963, 1704, 5349],\n"," 550: [2959, 4226, 2571, 7153, 3578, 47, 4306, 6539, 5445, 6874],\n"," 560: [4993, 5952, 2571, 7153, 3578, 4306, 3996, 6539, 5445, 6874],\n"," 573: [2959, 4993, 5952, 7153, 3578, 296, 47, 4306, 3996, 6539],\n"," 579: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n"," 582: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 583: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 587: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 596: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n"," 602: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 618: [2959, 4993, 5952, 4226, 7153, 3578, 296, 4306, 3996, 6539],\n"," 624: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 627: [2959, 5952, 7153, 47, 6539, 5445, 6874, 4886, 2329, 6377],\n"," 635: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 639: [4226, 2571, 2858, 3578, 2762, 3996, 5445, 6874, 4963, 1704],\n"," 640: [2762, 296, 3996, 4963, 1704, 2329, 2997, 50, 4995, 4011],\n"," 642: [4993, 5952, 4226, 7153, 4306, 6539, 5445, 6874, 4963, 5349],\n"," 649: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 652: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 662: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 671: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996],\n"," 675: [2959, 5952, 4226, 2571, 2858, 7153, 2762, 47, 4306, 3996],\n"," 684: [2959, 4993, 5952, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 703: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 712: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 726: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 727: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 744: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 746: [2959, 4993, 4226, 2571, 7153, 2762, 6539, 4963, 5349, 4886],\n"," 761: [2959, 4226, 3578, 296, 47, 3996, 6874, 1704, 5349, 2329],\n"," 765: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n"," 766: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 771: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 776: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 797: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 47, 4306],\n"," 812: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 815: [2959, 4226, 2858, 3578, 47, 3996, 318, 6539, 5445, 4963],\n"," 818: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 821: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n"," 822: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 831: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 834: [4993, 5952, 7153, 3578, 296, 47, 3996, 5445, 6874, 1704],\n"," 837: [5952, 4226, 7153, 2762, 47, 4306, 6539, 5445, 6874, 4963],\n"," 839: [2959, 2571, 2858, 3578, 296, 47, 4306, 3996, 318, 6874],\n"," 840: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 851: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 47, 3996, 318],\n"," 855: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 857: [2959, 4226, 2858, 2762, 296, 4306, 3996, 318, 5445, 1704],\n"," 868: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 4306, 3996],\n"," 904: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 905: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 906: [7153, 3578, 47, 4306, 318, 6539, 5445, 5349, 4886, 6377],\n"," 924: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 925: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n"," 927: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 940: [2959, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306, 3996],\n"," 948: [2959, 7153, 3578, 4306, 6539, 5445, 6874, 4963, 5349, 4886],\n"," 953: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 966: [3578, 2762, 47, 4306, 3996, 318, 6539, 6874, 1704, 2329],\n"," 967: [4993, 5952, 4226, 7153, 3578, 4306, 3996, 5445, 6874, 4963],\n"," 979: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 980: [5952, 2571, 3578, 47, 4306, 318, 6539, 5445, 6874, 4963],\n"," 983: [4993, 3578, 296, 47, 6874, 4963, 1704, 2329, 2997, 50],\n"," 984: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 47, 4306, 3996],\n"," 991: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1009: [2959, 4993, 5952, 4226, 3578, 2762, 296, 47, 4306, 3996],\n"," 1011: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 1014: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 1021: [4993, 5952, 7153, 296, 47, 318, 6539, 5445, 6874, 4963],\n"," 1030: [2959, 4226, 2858, 7153, 3578, 296, 47, 4306, 3996, 318],\n"," 1033: [2959,\n"," 4993,\n"," 5952,\n"," 4226,\n"," 2571,\n"," 2858,\n"," 7153,\n"," 3578,\n"," 3996,\n"," 6539],\n"," 1039: [2959,\n"," 4993,\n"," 5952,\n"," 4226,\n"," 2571,\n"," 2858,\n"," 7153,\n"," 3578,\n"," 2762,\n"," 4306],\n"," 1040: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 1053: [2959, 4993, 5952, 4226, 7153, 296, 47, 3996, 318, 6874],\n"," 704: [2858, 7153, 296, 318, 6539, 6874, 2329, 6377, 356, 2997],\n"," 934: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 42: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 73: [4993, 5952, 4226, 7153, 3578, 4306, 3996, 6539, 5445, 6874],\n"," 82: [2959, 2858, 7153, 3578, 2762, 47, 3996, 318, 5445, 1704],\n"," 159: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 161: [4306, 4963, 1704, 2329, 356, 2997, 4995, 2028, 4011, 1682],\n"," 192: [4993, 5952, 7153, 2762, 3996, 318, 6539, 2329, 356, 4995],\n"," 216: [2959, 4226, 7153, 3578, 296, 6539, 5445, 6874, 1704, 6377],\n"," 219: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n"," 290: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 379: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 4306, 3996],\n"," 389: [296, 4306, 4963, 356, 50, 4973, 1089, 2706, 1136, 1923],\n"," 400: [4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996, 318],\n"," 462: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 507: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 600: [4993, 5952, 2571, 7153, 2762, 296, 47, 4306, 3996, 318],\n"," 721: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 793: [2959, 2858, 2762, 296, 47, 3996, 318, 6539, 6874, 4963],\n"," 912: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 932: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 949: [4993, 5952, 4226, 47, 4306, 6539, 6874, 2329, 356, 50],\n"," 1025: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 46: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 74: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 342: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 508: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 580: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 774: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 783: [2959, 4226, 2858, 3578, 2762, 296, 47, 5445, 6874, 4963],\n"," 1002: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1023: [4226, 2762, 296, 4306, 3996, 318, 5445, 4963, 1704, 5349],\n"," 1048: [3578, 3996, 4963, 6377, 3793, 356, 4973, 7361, 4878, 1682],\n"," 23: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 96: [2959, 4993, 5952, 4226, 7153, 47, 4306, 3996, 318, 6539],\n"," 124: [2959, 4226, 2858, 3578, 2762, 296, 47, 4306, 318, 6539],\n"," 136: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 148: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 189: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 213: [2959, 4993, 5952, 4226, 7153, 3578, 4306, 3996, 318, 6539],\n"," 243: [4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996, 318],\n"," 323: [2959, 4226, 2571, 2858, 3578, 2762, 47, 4306, 3996, 318],\n"," 352: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 429: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 625: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 808: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 843: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 847: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 963: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 975: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 998: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47, 318],\n"," 75: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 47, 4306],\n"," 427: [2959, 4993, 5952, 4226, 2858, 7153, 296, 4306, 3996, 5445],\n"," 466: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 801: [2858, 2762, 318, 5445, 356, 2997, 50, 4995, 4011, 4878],\n"," 848: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 888: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 191: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 227: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 245: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 380: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n"," 408: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 668: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 747: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 754: [2959, 2858, 2762, 296, 318, 1704, 2329, 356, 2997, 50],\n"," 11: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 16: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 81: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306, 3996],\n"," 86: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 97: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 151: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n"," 235: [5952, 2762, 4306, 3996, 6874, 4963, 1704, 5349, 4886, 2329],\n"," 251: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 258: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 278: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 388: [2959, 4993, 5952, 2858, 7153, 3578, 2762, 296, 47, 4306],\n"," 551: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 606: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 614: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 681: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 686: [2959, 4993, 5952, 4226, 7153, 296, 47, 4306, 3996, 318],\n"," 711: [2959, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306, 3996],\n"," 718: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 873: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 962: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 985: [2959, 4226, 2571, 2858, 2762, 296, 47, 318, 6539, 6874],\n"," 993: [2959, 2571, 2858, 7153, 2762, 296, 47, 318, 6539, 6874],\n"," 184: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n"," 246: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 373: [2959, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306],\n"," 430: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 534: [2959, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47, 4306],\n"," 805: [2959, 4226, 2858, 2762, 296, 47, 3996, 318, 5445, 6874],\n"," 58: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n"," 112: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 367: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 548: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 791: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 909: [4226, 7153, 3578, 296, 47, 4306, 3996, 318, 6874, 4963],\n"," 1041: [4306, 5445, 5349, 6377, 3793, 356, 4995, 1682, 3897, 4027],\n"," 13: [2959, 5952, 4226, 2571, 2858, 7153, 2762, 47, 4306, 3996],\n"," 869: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 415: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 477: [2858, 3578, 4306, 6539, 5445, 6874, 4963, 1704, 5349, 4886],\n"," 569: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 694: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 729: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 741: [2959, 4993, 5952, 4226, 7153, 3578, 4306, 3996, 6539, 5445],\n"," 965: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 17: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 40: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n"," 114: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 137: [5952, 4226, 7153, 6539, 5445, 6874, 4886, 6377, 356, 4973],\n"," 153: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 47, 4306, 3996],\n"," 211: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n"," 286: [4993, 5952, 7153, 2762, 296, 47, 4306, 3996, 318, 6539],\n"," 330: [4226, 3578, 4306, 3996, 318, 6539, 5445, 4963, 1704, 4886],\n"," 336: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 372: [4226, 2858, 7153, 296, 47, 4306, 3996, 318, 6539, 5445],\n"," 376: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 3996],\n"," 412: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 447: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n"," 467: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n"," 490: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 518: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 608: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 3996],\n"," 619: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 644: [2959, 4226, 2858, 7153, 2762, 296, 47, 3996, 318, 6539],\n"," 667: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 698: [4306, 6539, 5349, 4886, 356, 2997, 4973, 4027, 2502, 2706],\n"," 709: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 728: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n"," 733: [2959, 5952, 4226, 2858, 2762, 296, 47, 4306, 3996, 318],\n"," 777: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 813: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 832: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 893: [2959, 4993, 4226, 2858, 7153, 2762, 296, 47, 4306, 3996],\n"," 901: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 937: [4993, 4226, 2571, 2858, 3578, 296, 3996, 6539, 5445, 6874],\n"," 947: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 362: [2858, 3578, 296, 47, 4306, 3996, 6539, 5445, 6874, 4963],\n"," 375: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 599: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 632: [2959, 4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996],\n"," 779: [2959, 4993, 5952, 2571, 2858, 3578, 2762, 296, 47, 4306],\n"," 1022: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1034: [2959, 4993, 4226, 2571, 2858, 2762, 296, 47, 4306, 3996],\n"," 819: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 2: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 3: [2959, 4993, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306],\n"," 104: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 105: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 218: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 250: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 313: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 377: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n"," 413: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 576: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 586: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 595: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n"," 610: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 613: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 637: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 663: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 740: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 787: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 804: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 866: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 883: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 941: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1007: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 817: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 6: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 296, 47, 4306],\n"," 7: [2959, 4993, 5952, 2571, 2858, 7153, 3578, 296, 47, 3996],\n"," 14: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 24: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 57: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 60: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 64: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 84: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 90: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 98: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 113: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 120: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 123: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 157: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 194: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 200: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 204: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 205: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 225: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 229: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 237: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n"," 242: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 252: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 266: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n"," 270: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 282: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 297: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 309: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 316: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 327: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 356: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 393: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 394: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 4306, 3996, 6539],\n"," 395: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 399: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 401: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n"," 402: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n"," 405: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 417: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 422: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 437: [2959, 4993, 5952, 4226, 7153, 3578, 4306, 3996, 6539, 5445],\n"," 455: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 461: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 473: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 484: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 499: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 526: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 537: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 542: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 557: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 563: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 570: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 575: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 594: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 607: [2959, 4993, 2571, 2858, 7153, 3578, 2762, 296, 47, 4306],\n"," 631: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 651: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 664: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 685: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 690: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 696: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 4306, 3996],\n"," 724: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 738: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 762: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 763: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 770: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 796: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 800: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 829: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 836: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 882: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 900: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 903: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 914: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 918: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 920: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 945: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 950: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 952: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 982: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 989: [2959, 4993, 5952, 4226, 7153, 2762, 47, 4306, 3996, 318],\n"," 1016: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 1019: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1044: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1051: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 917: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 951: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 997: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 174: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 676: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n"," 764: [4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996, 6539],\n"," 1052: [4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47, 4306],\n"," 5: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 27: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 33: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 134: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 142: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 156: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 167: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 177: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 224: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 269: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 312: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 360: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 385: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 411: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 464: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n"," 568: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 612: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 630: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 706: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 737: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 749: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 756: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 811: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 853: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 884: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 955: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 1032: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1043: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 370: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 670: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 923: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 931: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 969: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 12: [4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996, 318],\n"," 597: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 195: [2959, 5952, 2571, 7153, 47, 318, 6539, 5445, 6874, 1704],\n"," 337: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 910: [2571, 3578, 2762, 6539, 5445, 4963, 5349, 356, 2997, 4973],\n"," 63: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 70: [2959, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47, 3996],\n"," 99: [2959, 5952, 2571, 2858, 7153, 3578, 47, 4306, 3996, 6539],\n"," 121: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n"," 130: [2959, 4226, 2571, 3578, 2762, 47, 4306, 318, 6539, 5445],\n"," 244: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 291: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 335: [2959, 5952, 2571, 2858, 7153, 2762, 296, 47, 4306, 318],\n"," 361: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 4306, 3996],\n"," 470: [4993, 7153, 3578, 4306, 4963, 1704, 5349, 4886, 3793, 356],\n"," 497: [2959, 5952, 2858, 3578, 296, 47, 3996, 6539, 5445, 6874],\n"," 620: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 648: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 666: [3578, 2762, 4306, 318, 6539, 5445, 4963, 1704, 5349, 4886],\n"," 710: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 794: [2959, 4993, 5952, 2571, 2858, 3578, 296, 47, 4306, 3996],\n"," 854: [4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996, 318],\n"," 861: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n"," 87: [4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996, 318],\n"," 317: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 324: [2858, 2762, 296, 47, 4306, 3996, 318, 6539, 6874, 4963],\n"," 502: [4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306, 3996],\n"," 559: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 973: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n"," 1015: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 1017: [2959, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306, 3996],\n"," 85: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n"," 306: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 653: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 371: [2959, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n"," 566: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 331: [5952, 3578, 2762, 296, 47, 4306, 3996, 5445, 1704, 5349],\n"," 665: [2959, 4993, 2571, 7153, 3578, 2762, 47, 4306, 318, 6539],\n"," 872: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 879: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 486: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 864: [4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306, 3996],\n"," 52: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 288: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 9: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 117: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 220: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 544: [4226, 2858, 3578, 2762, 4306, 3996, 318, 6539, 5445, 4963],\n"," 999: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 458: [2959, 4993, 5952, 2571, 7153, 296, 47, 4306, 3996, 318],\n"," 974: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 546: [2959, 4226, 2571, 2858, 2762, 296, 47, 6874, 4963, 1704],\n"," 55: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 363: [4226, 2571, 2858, 3578, 2762, 47, 4306, 3996, 318, 6539],\n"," 445: [2959, 4993, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306],\n"," 492: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 234: [4993, 5952, 7153, 3578, 2762, 296, 47, 318, 6539, 6874],\n"," 1027: [4993, 5952, 2571, 2858, 7153, 2762, 47, 4306, 3996, 318],\n"," 140: [2959, 4993, 5952, 2571, 3578, 2762, 296, 47, 4306, 3996],\n"," 926: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n"," 781: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 825: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 913: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 453: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n"," 540: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 66: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306, 3996],\n"," 185: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 222: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 498: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 994: [2959, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 165: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 202: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 180: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n"," 93: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 261: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n"," 435: [4993, 5952, 2858, 7153, 3578, 2762, 296, 4306, 3996, 318],\n"," 322: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 238: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 425: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 512: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n"," 725: [4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996, 318],\n"," 732: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 108: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 592: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 443: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 916: [5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47, 4306],\n"," 736: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n"," 961: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n"," 1012: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 515: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 978: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 28: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 475: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n"," 598: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 943: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 520: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 697: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 849: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 1003: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n"," 705: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 48: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 29: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 231: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 699: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n"," 448: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n"," 750: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n"," 782: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 860: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 768: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 127: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n"," 894: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296]})"]},"metadata":{},"execution_count":10}],"source":["from collections import defaultdict\n","\n","# 각 사용자에 대한 추천 영화는 해당 사용자가 아직 평가하지 않은 영화 중에서 예측값이 높은 순으로 한다\n","pred_user2items = defaultdict(list)\n","user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","for user_id in movielens_train.user_id.unique():\n"," if user_id not in user_id2index:\n"," continue\n"," user_index = user_id2index[row[\"user_id\"]]\n"," movie_indexes = np.argsort(-pred_matrix[user_index, :])\n"," for movie_index in movie_indexes:\n"," movie_id = user_movie_matrix.columns[movie_index]\n"," if movie_id not in user_evaluated_movies[user_id]:\n"," pred_user2items[user_id].append(movie_id)\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","pred_user2items"]},{"cell_type":"code","execution_count":11,"id":"27b87c98","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":564},"id":"27b87c98","executionInfo":{"status":"ok","timestamp":1672119477563,"user_tz":-540,"elapsed":25,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"3b53ae05-8f2b-4bcd-e3e5-72cac813ffcf"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","6150 2 648 2.0 868244699 \n","6531 2 733 3.0 868244562 \n","6813 2 736 3.0 868244698 \n","7113 2 780 3.0 868244698 \n","7506 2 786 3.0 868244562 \n","7661 2 802 2.0 868244603 \n","7779 2 858 2.0 868245645 \n","8077 2 1049 3.0 868245920 \n","8127 2 1073 3.0 868244562 \n","8381 2 1210 4.0 868245644 \n","8771 2 1356 3.0 868244603 \n","9097 2 1544 3.0 868245920 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","6150 Mission: Impossible (1996) \n","6531 Rock, The (1996) \n","6813 Twister (1996) \n","7113 Independence Day (a.k.a. ID4) (1996) \n","7506 Eraser (1996) \n","7661 Phenomenon (1996) \n","7779 Godfather, The (1972) \n","8077 Ghost and the Darkness, The (1996) \n","8127 Willy Wonka & the Chocolate Factory (1971) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","8771 Star Trek: First Contact (1996) \n","9097 Lost World: Jurassic Park, The (Jurassic Park ... \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","6150 [Action, Adventure, Mystery, Thriller] \n","6531 [Action, Adventure, Thriller] \n","6813 [Action, Adventure, Romance, Thriller] \n","7113 [Action, Adventure, Sci-Fi, War] \n","7506 [Action, Drama, Thriller] \n","7661 [Drama, Romance] \n","7779 [Crime, Drama] \n","8077 [Action, Adventure] \n","8127 [Children, Comedy, Fantasy, Musical] \n","8381 [Action, Adventure, Sci-Fi] \n","8771 [Action, Adventure, Sci-Fi, Thriller] \n","9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","6150 [confusing, confusing plot, memorable sequence... 12.0 \n","6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n","6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n","7113 [action, alien invasion, aliens, will smith, a... 14.0 \n","7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n","7661 [interesting concept, own, john travolta, john... 15.0 \n","7779 [oscar (best picture), marlon brando, classic,... 9.0 \n","8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n","8127 [based on a book, roald dahl, based on a book,... 20.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n","8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n","9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":11}],"source":["# user_id=2의 사용자가 학습 데이터에 평가를 부여한 영화 목록\n","movielens_train[movielens_train.user_id==2]"]},{"cell_type":"code","execution_count":12,"id":"1940df09","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"1940df09","executionInfo":{"status":"ok","timestamp":1672119477563,"user_tz":-540,"elapsed":24,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"c9d4698b-99ae-48dd-8628-92b6791aaa0e"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296]"]},"metadata":{},"execution_count":12}],"source":["pred_user2items[2]"]},{"cell_type":"code","execution_count":13,"id":"d1786a85","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"d1786a85","executionInfo":{"status":"ok","timestamp":1672119477563,"user_tz":-540,"elapsed":5,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"9bf45053-0677-4bd4-b3e2-e27b4f1c6384"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","2874 2959 Fight Club (1999) \n","4899 4993 Lord of the Rings: The Fellowship of the Ring,... \n","5852 5952 Lord of the Rings: The Two Towers, The (2002) \n","\n"," genre \\\n","2874 [Action, Crime, Drama, Thriller] \n","4899 [Action, Adventure, Fantasy] \n","5852 [Action, Adventure, Fantasy] \n","\n"," tag \n","2874 [based on a book, chuck palahniuk, edward nort... \n","4899 [based on a book, big budget, new zealand, sce... \n","5852 [based on a book, big budget, new zealand, sce... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
28742959Fight Club (1999)[Action, Crime, Drama, Thriller][based on a book, chuck palahniuk, edward nort...
48994993Lord of the Rings: The Fellowship of the Ring,...[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
58525952Lord of the Rings: The Two Towers, The (2002)[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":13}],"source":["# user_id=2에 대한 추천(2959, 4993, 5952)\n","movies[movies.movie_id.isin([2959, 4993, 5952])]"]},{"cell_type":"code","execution_count":13,"id":"441ff6da","metadata":{"id":"441ff6da","executionInfo":{"status":"ok","timestamp":1672119477563,"user_tz":-540,"elapsed":4,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b9224173", + "metadata": { + "id": "b9224173" + }, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/NMF.ipynb)" + ] + }, + { + "cell_type": "markdown", + "id": "f8caaceb", + "metadata": { + "id": "f8caaceb" + }, + "source": [ + "# 비음수 행렬 분해(Non-negative Matrix Factorization, NMF)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "9cb2f773", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 4459, + "status": "ok", + "timestamp": 1672119380127, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "9cb2f773", + "outputId": "3b3441b6-3940-4b5a-ef0c-99ca4e312e13" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-12-27 05:36:13-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n", + "Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n", + "Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 65566137 (63M) [application/zip]\n", + "Saving to: ‘../data/ml-10m.zip’\n", + "\n", + "ml-10m.zip 100%[===================>] 62.53M 64.1MB/s in 1.0s \n", + "\n", + "2022-12-27 05:36:14 (64.1 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n", + "\n", + "Archive: ../data/ml-10m.zip\n", + " creating: ../data/ml-10M100K/\n", + " inflating: ../data/ml-10M100K/allbut.pl \n", + " inflating: ../data/ml-10M100K/movies.dat \n", + " inflating: ../data/ml-10M100K/ratings.dat \n", + " inflating: ../data/ml-10M100K/README.html \n", + " inflating: ../data/ml-10M100K/split_ratings.sh \n", + " inflating: ../data/ml-10M100K/tags.dat \n" + ] + } + ], + "source": [ + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", + "\n", + "# 데이터 다운로드와 압축 풀기\n", + "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", + "!unzip -n ../data/ml-10m.zip -d ../data/" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "ed3c6a08", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 69811, + "status": "ok", + "timestamp": 1672119449934, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "ed3c6a08", + "outputId": "740a21e4-a8ae-42cc-f142-e51190fa0f81" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "unique_users=1000, unique_movies=6736\n" + ] + } + ], + "source": [ + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", + "import pandas as pd\n", + "\n", + "# movieID와 제목만 사용\n", + "m_cols = ['movie_id', 'title', 'genre']\n", + "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", + "\n", + "# genre를 list 형식으로 저장한다\n", + "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", + "\n", + "\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", + "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", + "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", + "\n", + "# tag를 소문자로 바꾼다\n", + "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", + "\n", + "\n", + "# tag를 영화별로 list 형식으로 저장한다\n", + "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", + "\n", + "# 태그 정보를 결합한다\n", + "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", + "\n", + "# 평갓값 데이터만 로딩한다\n", + "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", + "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", + "\n", + "\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", + "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", + "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", + "\n", + "\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", + "movielens = ratings.merge(movies, on='movie_id')\n", + "\n", + "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", + "\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", + "\n", + "movielens['timestamp_rank'] = movielens.groupby(\n", + " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", + "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", + "movielens_test = movielens[movielens['timestamp_rank']<= 5]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8e6879e3", + "metadata": { + "executionInfo": { + "elapsed": 21, + "status": "ok", + "timestamp": 1672119449934, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "8e6879e3" + }, + "outputs": [], + "source": [ + "# 결손값을 채우는 방법\n", + "fillna_with_zero = True\n", + "# 인자 수\n", + "factors = 5" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "52281452", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 20, + "status": "ok", + "timestamp": 1672119449935, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "52281452", + "outputId": "1bb4e599-cc7a-4fc5-cb95-4ef09185a7a2" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " ...,\n", + " [5., 0., 3., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [5., 0., 0., ..., 0., 0., 0.]])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다.\n", + "user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n", + "user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n", + "movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n", + "if fillna_with_zero:\n", + " matrix = user_movie_matrix.fillna(0).to_numpy()\n", + "else:\n", + " matrix = user_movie_matrix.fillna(movielens_train.rating.mean()).to_numpy()\n", + "matrix" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "708dda3c", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 13601, + "status": "ok", + "timestamp": 1672119463518, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "708dda3c", + "outputId": "e404fb9c-9bd5-4466-95a6-79c39e5ea205" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.8/dist-packages/sklearn/decomposition/_nmf.py:289: FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).\n", + " warnings.warn(\n", + "/usr/local/lib/python3.8/dist-packages/sklearn/decomposition/_nmf.py:1637: ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve convergence.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "NMF(n_components=5)" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.decomposition import NMF\n", + "\n", + "# NMF 실행\n", + "nmf = NMF(n_components=factors)\n", + "nmf.fit(matrix)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "687a16b1", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 12450, + "status": "ok", + "timestamp": 1672119475949, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "687a16b1", + "outputId": "64397446-be94-4869-bc6c-61d351679634" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.8/dist-packages/sklearn/decomposition/_nmf.py:289: FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).\n", + " warnings.warn(\n", + "/usr/local/lib/python3.8/dist-packages/sklearn/decomposition/_nmf.py:1637: ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve convergence.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "array([[0.02183306, 0.53589472, 0. , 0. , 0. ],\n", + " [0.21316649, 0.10881363, 0. , 0. , 0. ],\n", + " [0. , 0.02976153, 0.05290897, 0.15364729, 0.02014201],\n", + " ...,\n", + " [0.13635649, 0.14281654, 0. , 0. , 0.00656846],\n", + " [0.09753435, 0.01077205, 0. , 0.13237952, 0.13516597],\n", + " [0.99758645, 0. , 0. , 0.64704016, 0.0597298 ]])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "P = nmf.fit_transform(matrix)\n", + "P" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "a731dbb1", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 5, + "status": "ok", + "timestamp": 1672119475949, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "a731dbb1", + "outputId": "f6e9c43b-428e-4a65-e742-25a037fbe084" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1.96418272, 0.50117827, 0.39871676, ..., 0. , 0. ,\n", + " 0. ],\n", + " [1.15067071, 0.96077987, 0.40196914, ..., 0. , 0.00289232,\n", + " 0.00216924],\n", + " [0.47176639, 0. , 0. , ..., 0. , 0. ,\n", + " 0. ],\n", + " [0.79016059, 0.30417491, 0. , ..., 0.02803924, 0.01446954,\n", + " 0.01085215],\n", + " [0.29616062, 0.30060155, 0.17846866, ..., 0. , 0. ,\n", + " 0. ]])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Q = nmf.components_\n", + "Q" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "36669c15", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 3, + "status": "ok", + "timestamp": 1672119475949, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "36669c15", + "outputId": "6c3b7cb4-feb2-460f-8f90-42484580128c" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[6.59522475e-01, 5.25819116e-01, 2.24118350e-01, ...,\n", + " 0.00000000e+00, 1.54997784e-03, 1.16248338e-03],\n", + " [5.43906588e-01, 2.11380357e-01, 1.28732773e-01, ...,\n", + " 0.00000000e+00, 3.14723598e-04, 2.36042698e-04],\n", + " [1.86577692e-01, 8.13846441e-02, 1.55579328e-02, ...,\n", + " 4.30815294e-03, 2.30928521e-03, 1.73196391e-03],\n", + " ...,\n", + " [4.34109190e-01, 2.07528655e-01, 1.12947724e-01, ...,\n", + " 0.00000000e+00, 4.13070817e-04, 3.09803112e-04],\n", + " [3.48602292e-01, 1.40129296e-01, 6.73415036e-02, ...,\n", + " 3.71182091e-03, 1.94662680e-03, 1.45997010e-03],\n", + " [2.48839731e+00, 7.14736905e-01, 4.08414332e-01, ...,\n", + " 1.81425136e-02, 9.36237290e-03, 7.02177967e-03]])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "# 예측 평갓값 행렬\n", + "pred_matrix = np.dot(P, Q)\n", + "pred_matrix" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "08eb2849", + "metadata": { + "executionInfo": { + "elapsed": 287, + "status": "ok", + "timestamp": 1672119476234, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "08eb2849" + }, + "outputs": [], + "source": [ + "# 학습용에 나타나지 않는 사용자나 영화의 예측 평갓값은 평균 평갓값으로 한다\n", + "average_score = movielens_train.rating.mean()\n", + "movie_rating_predict = movielens_test.copy()\n", + "pred_results = []\n", + "for i, row in movielens_test.iterrows():\n", + " user_id = row[\"user_id\"]\n", + " if user_id not in user_id2index or row[\"movie_id\"] not in movie_id2index:\n", + " pred_results.append(average_score)\n", + " continue\n", + " user_index = user_id2index[row[\"user_id\"]]\n", + " movie_index = movie_id2index[row[\"movie_id\"]]\n", + " pred_score = pred_matrix[user_index, movie_index]\n", + " pred_results.append(pred_score)\n", + "movie_rating_predict[\"rating_pred\"] = pred_results" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "7aa822a0", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 1330, + "status": "ok", + "timestamp": 1672119477563, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "7aa822a0", + "outputId": "12551108-c9b0-445a-fe32-eb39af8205c8" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "defaultdict(list,\n", + " {139: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n", + " 149: [4226, 2571, 2762, 47, 3996, 318, 6539, 5445, 4963, 1704],\n", + " 182: [47, 6874, 2329, 3793, 4011, 7361, 4878, 7438, 6333, 2502],\n", + " 215: [2329, 527, 6711, 3147, 2683, 8360, 5669, 6502, 3948, 1246],\n", + " 281: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 326: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 351: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n", + " 357: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 426: [2502,\n", + " 33794,\n", + " 3949,\n", + " 7147,\n", + " 33493,\n", + " 5902,\n", + " 44191,\n", + " 33166,\n", + " 4848,\n", + " 6016],\n", + " 456: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 459: [318, 4886, 2997, 50, 4995, 4973, 7361, 4878, 3897, 2502],\n", + " 494: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 517: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 524: [7153, 3996, 6539, 5349, 4886, 3793, 7361, 593, 7438, 527],\n", + " 556: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 588: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 589: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 590: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 4306, 3996, 6539],\n", + " 601: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 621: [5952, 7153, 4306, 2329, 4995, 4011, 4878, 1682, 3897, 7438],\n", + " 634: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 672: [4993, 5952, 4226, 7153, 4306, 3996, 318, 6539, 5445, 6874],\n", + " 701: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 719: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 745: [5952, 7153, 4306, 6539, 5445, 6874, 2329, 6377, 356, 4973],\n", + " 757: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 775: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 780: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 4306, 3996],\n", + " 785: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 788: [296, 4973, 4878, 3897, 1089, 2502, 1136, 1961, 2542, 4034],\n", + " 870: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 987: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 988: [7153, 6539, 5445, 6874, 4963, 2329, 6377, 4995, 7361, 4027],\n", + " 1020: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 1: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 22: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 26: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 30: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 34: [4993, 5952, 4226, 2858, 7153, 4306, 3996, 6539, 5445, 6874],\n", + " 38: [4226, 2858, 4306, 6539, 5445, 4886, 2329, 3793, 2997, 50],\n", + " 50: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 53: [2959, 4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996],\n", + " 54: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 67: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 71: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 76: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 88: [4226, 296, 47, 4306, 3996, 318, 1704, 2997, 50, 4995],\n", + " 89: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 94: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 95: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 100: [2959, 4993, 4226, 7153, 3578, 2762, 4306, 5445, 6874, 4963],\n", + " 101: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 102: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 103: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 111: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 116: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 118: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 143: [7153, 6539, 6874, 6377, 50, 7361, 4027, 7438, 8961, 6711],\n", + " 144: [1704, 4886, 3897, 5989, 2502, 2706, 3147, 1784, 3114, 4979],\n", + " 162: [4226, 318, 4963, 1704, 2329, 2997, 50, 4011, 7361, 4878],\n", + " 172: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 173: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 187: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 193: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 208: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 210: [2959, 5952, 47, 6539, 5445, 6874, 4963, 5349, 4886, 2329],\n", + " 214: [2959, 5952, 2858, 7153, 4306, 318, 6539, 6874, 2329, 6377],\n", + " 228: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 232: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 236: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 259: [3578, 318, 6377, 4011, 4027, 1089, 8961, 1961, 2542, 4034],\n", + " 260: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 267: [4306, 1704, 4886, 4011, 4878, 1682, 5989, 2502, 6711, 4034],\n", + " 268: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 271: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 274: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n", + " 287: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 292: [6874, 4963, 527, 6333, 5989, 2542, 3147, 5418, 1517, 3481],\n", + " 296: [3996, 1704, 6377, 1136, 2683, 1270, 1784, 1258, 364, 1517],\n", + " 303: [6539, 4963, 1704, 5349, 2329, 6377, 2997, 50, 4995, 4973],\n", + " 307: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 310: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n", + " 315: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 320: [318, 6874, 1704, 5349, 2329, 3793, 2997, 50, 7361, 4878],\n", + " 332: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 339: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 343: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 355: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 364: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 365: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 368: [2858, 2762, 318, 1704, 2329, 4995, 2028, 4878, 593, 7438],\n", + " 381: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 382: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 383: [2959, 47, 4306, 6539, 6874, 4963, 5349, 2329, 356, 4011],\n", + " 391: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 396: [4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 3996, 318],\n", + " 398: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 406: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 409: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 410: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 416: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 418: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 419: [2959, 7153, 3578, 6539, 6874, 1704, 4886, 2329, 6377, 356],\n", + " 421: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 424: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 432: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 434: [4226, 296, 47, 318, 2329, 2997, 50, 4973, 7361, 4878],\n", + " 436: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 438: [2959, 4993, 5952, 4226, 7153, 47, 6539, 5445, 6874, 4963],\n", + " 441: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 446: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 452: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 3996],\n", + " 460: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 463: [7153, 6874, 4963, 6377, 4973, 4011, 7361, 1682, 3897, 7438],\n", + " 468: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 469: [2959, 47, 2329, 50, 4995, 4011, 7361, 4878, 1682, 3897],\n", + " 472: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 476: [1704, 4886, 4995, 7438, 2502, 2291, 1923, 1721, 4034, 1270],\n", + " 480: [7153, 318, 6539, 6874, 1704, 2329, 6377, 7361, 4878, 1682],\n", + " 482: [2858, 2762, 3996, 5445, 6874, 2997, 50, 4973, 1682, 3897],\n", + " 493: [4993, 5952, 7153, 593, 7438, 6333, 2502, 1136, 6365, 1258],\n", + " 496: [2959, 4993, 5952, 2858, 7153, 3578, 4306, 3996, 318, 6539],\n", + " 501: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 504: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 505: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 511: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 516: [6377, 50, 7361, 1682, 4027, 2542, 33794, 364, 3481, 2918],\n", + " 525: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 530: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 531: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 533: [4886, 2329, 4995, 4011, 4878, 2706, 3147, 6365, 2683, 778],\n", + " 536: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 543: [2329, 2028, 4011, 3897, 5989, 1923, 2542, 4034, 3481, 3052],\n", + " 547: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 549: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 553: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 558: [7153, 2762, 6874, 4886, 2329, 2997, 4973, 4011, 7361, 4878],\n", + " 562: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 567: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 571: [2959, 4993, 5952, 7153, 2762, 296, 3996, 6874, 356, 4878],\n", + " 572: [3578, 3996, 318, 1704, 4973, 1961, 4034, 33794, 5418, 1784],\n", + " 577: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 581: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 585: [4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996, 6539],\n", + " 593: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 604: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 605: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 609: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 628: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 629: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 645: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 650: [2959, 5952, 7153, 296, 4306, 6539, 5445, 6874, 4963, 4886],\n", + " 656: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 657: [4306, 4963, 4886, 3793, 4011, 7438, 6333, 2502, 1136, 8961],\n", + " 669: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 678: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 683: [2959, 5952, 4226, 2858, 2762, 296, 3996, 318, 6874, 4963],\n", + " 688: [3996, 318, 5445, 4973, 2028, 7361, 4878, 1682, 3897, 2502],\n", + " 689: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 693: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 716: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n", + " 720: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 734: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 735: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 739: [4993, 5952, 4226, 2858, 7153, 3578, 296, 4306, 3996, 318],\n", + " 755: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 758: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 767: [2959, 4226, 2858, 296, 47, 4306, 5445, 4963, 1704, 4886],\n", + " 769: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 786: [2959, 4993, 5952, 2858, 7153, 296, 47, 6539, 5445, 6874],\n", + " 789: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 792: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 795: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 798: [2329, 6377, 4011, 7361, 4027, 2502, 2706, 4034, 1784, 3481],\n", + " 799: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 802: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 806: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 807: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 816: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 827: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 828: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 846: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 859: [2858, 47, 4306, 318, 6874, 4963, 2329, 6377, 2997, 50],\n", + " 862: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 876: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 881: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 885: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 4306, 3996],\n", + " 886: [4993, 5952, 4226, 7153, 4306, 6539, 5445, 6874, 4963, 5349],\n", + " 889: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 890: [4993, 5952, 4226, 7153, 47, 4306, 318, 6539, 5445, 6874],\n", + " 891: [6539, 5445, 6874, 4963, 2329, 6377, 4995, 4011, 7361, 593],\n", + " 896: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 897: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 898: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 908: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 922: [4226, 2858, 296, 3996, 5445, 6874, 1704, 2329, 3793, 2997],\n", + " 930: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 938: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 956: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 958: [4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306, 3996],\n", + " 968: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 977: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 4306, 3996, 6539],\n", + " 990: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 996: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 1004: [4993,\n", + " 5952,\n", + " 4226,\n", + " 7153,\n", + " 3578,\n", + " 4306,\n", + " 3996,\n", + " 6539,\n", + " 5445,\n", + " 6874],\n", + " 1005: [2959,\n", + " 4993,\n", + " 5952,\n", + " 4226,\n", + " 2571,\n", + " 2858,\n", + " 7153,\n", + " 3578,\n", + " 2762,\n", + " 4306],\n", + " 1008: [6539,\n", + " 4963,\n", + " 4995,\n", + " 2028,\n", + " 4011,\n", + " 1682,\n", + " 3897,\n", + " 4027,\n", + " 1089,\n", + " 5989],\n", + " 1029: [2959,\n", + " 4993,\n", + " 5952,\n", + " 4226,\n", + " 2571,\n", + " 2858,\n", + " 7153,\n", + " 3578,\n", + " 2762,\n", + " 4306],\n", + " 1037: [2959,\n", + " 4993,\n", + " 5952,\n", + " 4226,\n", + " 2571,\n", + " 2858,\n", + " 7153,\n", + " 3578,\n", + " 2762,\n", + " 4306],\n", + " 1050: [2959,\n", + " 4993,\n", + " 5952,\n", + " 4226,\n", + " 2571,\n", + " 2858,\n", + " 7153,\n", + " 3578,\n", + " 2762,\n", + " 4306],\n", + " 4: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 8: [296, 318, 6377, 356, 4995, 4973, 7361, 5989, 2502, 2706],\n", + " 18: [4993, 5952, 4226, 7153, 5445, 6874, 5349, 4886, 2329, 3793],\n", + " 36: [7153, 47, 3996, 318, 5445, 6874, 1704, 4886, 2329, 2997],\n", + " 47: [47, 4963, 1704, 5349, 4886, 6377, 356, 7361, 4878, 1682],\n", + " 59: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 62: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 77: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 79: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 80: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 119: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 122: [4993, 5952, 4226, 7153, 47, 4306, 6539, 5445, 6874, 4963],\n", + " 125: [2329,\n", + " 7361,\n", + " 4878,\n", + " 1682,\n", + " 7438,\n", + " 8961,\n", + " 33794,\n", + " 5418,\n", + " 32587,\n", + " 8636],\n", + " 126: [4973, 7361, 4878, 6711, 2542, 6365, 3052, 778, 1206, 5669],\n", + " 132: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 141: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 154: [4993, 5952, 4226, 2858, 7153, 3578, 4306, 3996, 318, 6874],\n", + " 155: [4226, 7153, 6539, 5445, 6874, 4963, 5349, 4886, 6377, 3793],\n", + " 163: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 164: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 170: [4993, 5952, 7153, 3578, 3996, 6539, 5445, 6874, 1704, 5349],\n", + " 171: [4993, 5952, 4226, 2571, 7153, 3578, 4306, 3996, 6539, 5445],\n", + " 176: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 190: [4226, 2858, 47, 318, 4963, 1704, 2329, 6377, 2997, 50],\n", + " 197: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 198: [2997,\n", + " 4973,\n", + " 4011,\n", + " 6333,\n", + " 5989,\n", + " 2291,\n", + " 2542,\n", + " 4034,\n", + " 3147,\n", + " 33794],\n", + " 199: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 212: [2858, 3578, 1704, 4886, 2329, 6377, 4011, 4878, 1682, 3897],\n", + " 221: [2959, 4993, 4226, 7153, 3578, 2762, 4306, 3996, 6539, 5445],\n", + " 223: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 226: [2959, 2858, 7153, 6539, 6874, 4963, 6377, 2997, 4973, 7361],\n", + " 241: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 247: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 249: [2858, 3996, 6874, 2997, 4973, 3897, 7438, 527, 6333, 8961],\n", + " 254: [4993, 4226, 7153, 6539, 6874, 4963, 1704, 4886, 2329, 6377],\n", + " 264: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 273: [2959, 4226, 2762, 296, 47, 4306, 3996, 5445, 6874, 4963],\n", + " 275: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 6539, 5445],\n", + " 276: [6539, 4963, 4995, 4027, 33794, 5418, 1517, 2918, 3052, 110],\n", + " 293: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 294: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 295: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 318: [4226, 2329, 4878, 1923, 3147, 32, 2692, 293, 5669, 1213],\n", + " 321: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 345: [4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318, 6539],\n", + " 346: [2959, 4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996],\n", + " 348: [1136, 6365, 5418, 3481, 2918, 3052, 1580, 4022, 1732, 1265],\n", + " 349: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 354: [4226, 296, 47, 6874, 4886, 2329, 3793, 2997, 50, 2028],\n", + " 359: [47, 318, 6874, 1704, 5349, 4886, 2329, 356, 50, 2028],\n", + " 366: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 369: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 384: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 390: [47, 6539, 6377, 7361, 3897, 1089, 7438, 527, 2291, 1961],\n", + " 392: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 403: [2959, 4993, 5952, 2858, 3578, 4306, 3996, 318, 6539, 6874],\n", + " 407: [4226, 2858, 318, 1704, 5349, 4995, 4973, 4011, 7361, 4878],\n", + " 414: [4226, 7153, 3578, 4306, 318, 6539, 5445, 5349, 4886, 2329],\n", + " 431: [2959, 4226, 2571, 2858, 3578, 2762, 296, 47, 3996, 5445],\n", + " 454: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 465: [5952, 2571, 7153, 5445, 4963, 4886, 3793, 2028, 3897, 6333],\n", + " 481: [2762, 6377, 2997, 4973, 4027, 527, 5989, 8961, 1961, 3147],\n", + " 485: [4993, 5952, 4226, 7153, 47, 4306, 3996, 6539, 5445, 6874],\n", + " 503: [47, 3996, 4963, 1704, 5349, 50, 4011, 3897, 4027, 1089],\n", + " 513: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n", + " 545: [3578, 4306, 6539, 5445, 4963, 5349, 3793, 1682, 6333, 2706],\n", + " 552: [4993, 5952, 2571, 7153, 3578, 47, 3996, 5445, 6874, 4963],\n", + " 554: [4226, 2571, 3578, 47, 6539, 5445, 5349, 4886, 2329, 50],\n", + " 555: [5445, 1704, 4973, 7361, 1682, 5989, 1923, 1721, 4034, 6365],\n", + " 561: [318, 1704, 2997, 50, 4995, 7361, 1682, 3897, 4027, 1089],\n", + " 565: [2959, 4993, 5952, 4226, 2571, 7153, 47, 4306, 318, 6539],\n", + " 591: [2959, 4993, 5952, 4226, 2571, 7153, 2762, 296, 47, 4306],\n", + " 617: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 622: [4226, 3578, 3996, 6539, 6874, 4886, 6377, 3793, 2997, 50],\n", + " 623: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 633: [2762, 5445, 4963, 2329, 2997, 4995, 4973, 4011, 4878, 1682],\n", + " 636: [2959, 4226, 2858, 47, 4306, 3996, 1704, 5349, 4886, 6377],\n", + " 638: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 641: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 646: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 654: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 655: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 658: [4993, 5952, 7153, 2762, 4306, 3996, 318, 5445, 1704, 5349],\n", + " 660: [4993, 5952, 4226, 7153, 6539, 5445, 6874, 1704, 5349, 4886],\n", + " 661: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 677: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 714: [47, 5349, 3793, 4011, 7361, 4878, 593, 1089, 7438, 6333],\n", + " 715: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 723: [2858, 296, 3996, 5445, 4963, 1704, 4886, 6377, 3793, 2997],\n", + " 731: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 47, 4306, 3996],\n", + " 742: [593, 1089, 7438, 527, 2502, 1258, 2692, 858, 1732, 293],\n", + " 743: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 752: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 772: [2959, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47, 318],\n", + " 814: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 823: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 826: [2762, 4306, 5349, 4886, 2329, 527, 5989, 2502, 2291, 8961],\n", + " 833: [2959, 4226, 7153, 3578, 2762, 47, 6539, 6874, 4886, 2329],\n", + " 838: [2959, 7153, 4306, 3996, 6874, 4963, 5349, 4886, 2329, 3793],\n", + " 842: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 852: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 878: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 887: [4993, 5952, 4226, 7153, 2762, 4306, 3996, 6539, 5445, 6874],\n", + " 895: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 899: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 902: [6377, 2997, 4973, 4878, 1682, 4027, 527, 2502, 2291, 1923],\n", + " 907: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 928: [7153, 6539, 6874, 1704, 5349, 3793, 4995, 2028, 1682, 4027],\n", + " 936: [318, 5349, 3793, 5989, 2706, 2291, 1721, 4034, 1270, 1258],\n", + " 964: [4993, 5952, 2858, 7153, 2762, 4306, 3996, 5445, 6874, 1704],\n", + " 970: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 972: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n", + " 1001: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 1013: [2959, 4226, 2858, 3578, 2762, 47, 6539, 5445, 6874, 1704],\n", + " 1018: [3578, 4963, 1704, 6377, 50, 4995, 4027, 527, 2502, 8961],\n", + " 1028: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 1031: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 1035: [3996, 6539, 4963, 1704, 2329, 2997, 50, 4995, 4973, 4011],\n", + " 1038: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 1045: [5952,\n", + " 3996,\n", + " 4973,\n", + " 6711,\n", + " 2542,\n", + " 33794,\n", + " 5418,\n", + " 2692,\n", + " 1580,\n", + " 480],\n", + " 1046: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 35: [5952, 7153, 3578, 296, 318, 6539, 1704, 5349, 4886, 6377],\n", + " 72: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 91: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 4306, 3996],\n", + " 106: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 4306, 3996],\n", + " 128: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 158: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 160: [2959, 4993, 5952, 4226, 7153, 2762, 296, 47, 4306, 318],\n", + " 175: [4306, 3996, 6539, 5445, 4963, 1704, 5349, 3793, 4995, 1682],\n", + " 196: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306, 3996],\n", + " 203: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 206: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n", + " 207: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 255: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 265: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 296, 4306, 3996],\n", + " 340: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 404: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 433: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 440: [3578, 4306, 3996, 5445, 6874, 4963, 1704, 5349, 4886, 6377],\n", + " 444: [2959, 4993, 5952, 4226, 7153, 3578, 3996, 318, 6539, 5445],\n", + " 450: [2959, 7153, 6539, 6874, 1704, 6377, 4011, 7361, 4878, 1682],\n", + " 479: [4993, 5952, 7153, 3578, 47, 4306, 3996, 6539, 5445, 6874],\n", + " 491: [4993, 7153, 296, 4306, 6539, 5445, 4886, 2329, 6377, 3793],\n", + " 506: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 523: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 539: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 541: [4993, 5952, 4226, 7153, 3578, 2762, 296, 4306, 3996, 318],\n", + " 616: [4306, 3996, 6874, 4963, 1704, 5349, 2329, 6377, 3793, 4995],\n", + " 647: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 659: [2959, 3578, 6539, 4963, 5349, 4886, 2329, 3793, 50, 2028],\n", + " 695: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 4306, 3996],\n", + " 700: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 707: [4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996, 318],\n", + " 748: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 759: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 784: [4973, 4011, 7361, 1682, 4027, 1089, 5989, 2502, 6711, 2542],\n", + " 790: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 835: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 844: [2959, 4993, 5952, 4226, 7153, 296, 47, 4306, 3996, 318],\n", + " 871: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 875: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 892: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 919: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 935: [2959, 4993, 5952, 2858, 7153, 2762, 296, 47, 4306, 318],\n", + " 942: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 960: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 1006: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 1026: [2858, 296, 47, 3996, 318, 6539, 5445, 356, 2997, 50],\n", + " 1047: [5952, 6539, 1704, 593, 7438, 5989, 2291, 1961, 2683, 5418],\n", + " 65: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 3996],\n", + " 135: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 152: [2959, 4993, 5952, 4226, 2858, 7153, 296, 4306, 3996, 6539],\n", + " 166: [2959, 4226, 2571, 2858, 7153, 3578, 296, 47, 4306, 3996],\n", + " 179: [2959, 5952, 4226, 2858, 7153, 2762, 47, 318, 6539, 6874],\n", + " 188: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 217: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 253: [2959, 4993, 5952, 4226, 7153, 2762, 296, 47, 4306, 318],\n", + " 262: [2858, 2329, 6377, 1682, 3897, 4027, 1089, 5989, 1136, 6711],\n", + " 277: [2959, 4226, 2571, 2858, 3578, 47, 4306, 3996, 318, 6539],\n", + " 289: [6377, 4878, 7438, 6333, 2502, 2542, 6365, 2683, 5418, 364],\n", + " 300: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 47, 4306, 3996],\n", + " 302: [4993, 5952, 4226, 7153, 47, 4306, 3996, 6539, 5445, 6874],\n", + " 308: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 311: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 328: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", + " 329: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 344: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 347: [2959, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47, 3996],\n", + " 358: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 3996, 6539],\n", + " 474: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 483: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 509: [4993, 3578, 4306, 318, 6539, 5445, 6377, 2997, 4973, 4878],\n", + " 578: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n", + " 643: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n", + " 679: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 680: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n", + " 691: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 47, 4306, 3996],\n", + " 702: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 708: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 730: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 751: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 773: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n", + " 803: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996],\n", + " 809: [2959, 4226, 2571, 7153, 3578, 296, 4306, 3996, 318, 6539],\n", + " 820: [2762, 318, 1704, 2329, 4995, 4011, 3897, 527, 5989, 2542],\n", + " 824: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 4306],\n", + " 863: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 4306, 3996, 6539],\n", + " 865: [4993, 5952, 2762, 3996, 6539, 5445, 6874, 5349, 4886, 2329],\n", + " 867: [2762, 47, 6874, 4995, 4011, 7361, 4878, 1682, 593, 1089],\n", + " 911: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", + " 915: [2959, 4226, 7153, 3578, 296, 3996, 318, 6539, 6874, 1704],\n", + " 939: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 946: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 954: [4993, 5952, 4226, 2858, 7153, 296, 4306, 3996, 318, 6539],\n", + " 957: [4993, 5952, 4226, 7153, 3578, 2762, 4306, 3996, 6539, 5445],\n", + " 971: [7153, 3578, 2762, 47, 4306, 6539, 5445, 6874, 4963, 6377],\n", + " 986: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 992: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n", + " 92: [2959, 296, 4306, 3996, 6874, 4886, 2329, 6377, 2997, 50],\n", + " 107: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 131: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 138: [3996, 4963, 5349, 4886, 3793, 2997, 4973, 7361, 4878, 1682],\n", + " 145: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 183: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 209: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 230: [4993, 5952, 4226, 2571, 7153, 2762, 47, 4306, 3996, 318],\n", + " 263: [7153, 4306, 6874, 356, 2997, 2028, 4011, 1682, 3897, 1089],\n", + " 305: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 314: [2959, 4226, 2571, 7153, 47, 4306, 6539, 5445, 6874, 4963],\n", + " 319: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 325: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 341: [4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996, 6539],\n", + " 471: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 488: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 495: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 532: [2959, 5952, 7153, 47, 4306, 318, 6539, 5445, 6874, 1704],\n", + " 564: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 574: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 603: [4226, 3578, 2762, 47, 3996, 6539, 5445, 6874, 4963, 5349],\n", + " 674: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 753: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 810: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 830: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 841: [2959, 5952, 2858, 7153, 2762, 296, 47, 4306, 318, 6539],\n", + " 856: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 921: [2959, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", + " 933: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 4306, 3996, 6539],\n", + " 976: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 37: [2858, 2762, 6539, 5445, 4963, 5349, 4886, 2329, 6377, 356],\n", + " 83: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 248: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 387: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 428: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 451: [2959, 2858, 3578, 296, 47, 4306, 3996, 318, 6539, 5445],\n", + " 584: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 874: [4226, 318, 50, 4011, 4878, 1089, 527, 2291, 1961, 6711],\n", + " 995: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", + " 10: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 19: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 41: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 43: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 44: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 45: [2959, 4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996],\n", + " 51: [2959, 4993, 5952, 2571, 7153, 47, 4306, 318, 6539, 5445],\n", + " 56: [2959, 2762, 47, 3996, 318, 6539, 5445, 4963, 1704, 5349],\n", + " 61: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 68: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n", + " 69: [2959, 4993, 5952, 4226, 2571, 7153, 47, 4306, 3996, 6539],\n", + " 78: [4993, 5952, 7153, 3578, 47, 4306, 6539, 4963, 1704, 5349],\n", + " 110: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 115: [2959, 4993, 5952, 4226, 2571, 7153, 47, 4306, 3996, 6539],\n", + " 129: [4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306, 3996],\n", + " 150: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 168: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 169: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 178: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 186: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n", + " 201: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 4306, 3996],\n", + " 239: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 256: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 257: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 296, 47, 4306],\n", + " 272: [2571, 2762, 47, 318, 6874, 4963, 1704, 4886, 4995, 4973],\n", + " 279: [4993, 4226, 2858, 5445, 4963, 1704, 2329, 50, 4995, 4973],\n", + " 280: [2959, 4226, 3578, 2762, 296, 47, 3996, 318, 6539, 5445],\n", + " 285: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n", + " 298: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 301: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n", + " 304: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", + " 333: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 334: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 338: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n", + " 350: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 353: [2858, 3578, 2762, 4306, 318, 6539, 5445, 6874, 4963, 1704],\n", + " 378: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 386: [4993, 5952, 2571, 7153, 47, 4306, 6539, 5445, 6874, 4963],\n", + " 397: [4993, 5952, 7153, 47, 4306, 3996, 6539, 5445, 6874, 4963],\n", + " 420: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 439: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 449: [4993, 5952, 4226, 7153, 296, 4306, 3996, 318, 6539, 5445],\n", + " 478: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 487: [4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539, 5445],\n", + " 489: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 500: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 510: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 521: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 522: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 527: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 529: [2959, 4993, 5952, 2571, 2858, 7153, 3578, 2762, 47, 3996],\n", + " 535: [4226, 2858, 7153, 2762, 3996, 6539, 6874, 4963, 1704, 5349],\n", + " 550: [2959, 4226, 2571, 7153, 3578, 47, 4306, 6539, 5445, 6874],\n", + " 560: [4993, 5952, 2571, 7153, 3578, 4306, 3996, 6539, 5445, 6874],\n", + " 573: [2959, 4993, 5952, 7153, 3578, 296, 47, 4306, 3996, 6539],\n", + " 579: [4993, 5952, 4226, 7153, 4306, 3996, 6539, 5445, 6874, 4963],\n", + " 582: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 583: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 587: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 596: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n", + " 602: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 618: [2959, 4993, 5952, 4226, 7153, 3578, 296, 4306, 3996, 6539],\n", + " 624: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 627: [2959, 5952, 7153, 47, 6539, 5445, 6874, 4886, 2329, 6377],\n", + " 635: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 639: [4226, 2571, 2858, 3578, 2762, 3996, 5445, 6874, 4963, 1704],\n", + " 640: [2762, 296, 3996, 4963, 1704, 2329, 2997, 50, 4995, 4011],\n", + " 642: [4993, 5952, 4226, 7153, 4306, 6539, 5445, 6874, 4963, 5349],\n", + " 649: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 652: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 662: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 671: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996],\n", + " 675: [2959, 5952, 4226, 2571, 2858, 7153, 2762, 47, 4306, 3996],\n", + " 684: [2959, 4993, 5952, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", + " 703: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 712: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 726: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 727: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 744: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 746: [2959, 4993, 4226, 2571, 7153, 2762, 6539, 4963, 5349, 4886],\n", + " 761: [2959, 4226, 3578, 296, 47, 3996, 6874, 1704, 5349, 2329],\n", + " 765: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n", + " 766: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", + " 771: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 776: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 797: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 47, 4306],\n", + " 812: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 815: [2959, 4226, 2858, 3578, 47, 3996, 318, 6539, 5445, 4963],\n", + " 818: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 821: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n", + " 822: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 831: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 834: [4993, 5952, 7153, 3578, 296, 47, 3996, 5445, 6874, 1704],\n", + " 837: [5952, 4226, 7153, 2762, 47, 4306, 6539, 5445, 6874, 4963],\n", + " 839: [2959, 2571, 2858, 3578, 296, 47, 4306, 3996, 318, 6874],\n", + " 840: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 851: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 47, 3996, 318],\n", + " 855: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 857: [2959, 4226, 2858, 2762, 296, 4306, 3996, 318, 5445, 1704],\n", + " 868: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 4306, 3996],\n", + " 904: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 905: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", + " 906: [7153, 3578, 47, 4306, 318, 6539, 5445, 5349, 4886, 6377],\n", + " 924: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 925: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n", + " 927: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 940: [2959, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306, 3996],\n", + " 948: [2959, 7153, 3578, 4306, 6539, 5445, 6874, 4963, 5349, 4886],\n", + " 953: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 966: [3578, 2762, 47, 4306, 3996, 318, 6539, 6874, 1704, 2329],\n", + " 967: [4993, 5952, 4226, 7153, 3578, 4306, 3996, 5445, 6874, 4963],\n", + " 979: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 980: [5952, 2571, 3578, 47, 4306, 318, 6539, 5445, 6874, 4963],\n", + " 983: [4993, 3578, 296, 47, 6874, 4963, 1704, 2329, 2997, 50],\n", + " 984: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 47, 4306, 3996],\n", + " 991: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 1009: [2959, 4993, 5952, 4226, 3578, 2762, 296, 47, 4306, 3996],\n", + " 1011: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 1014: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 1021: [4993, 5952, 7153, 296, 47, 318, 6539, 5445, 6874, 4963],\n", + " 1030: [2959, 4226, 2858, 7153, 3578, 296, 47, 4306, 3996, 318],\n", + " 1033: [2959,\n", + " 4993,\n", + " 5952,\n", + " 4226,\n", + " 2571,\n", + " 2858,\n", + " 7153,\n", + " 3578,\n", + " 3996,\n", + " 6539],\n", + " 1039: [2959,\n", + " 4993,\n", + " 5952,\n", + " 4226,\n", + " 2571,\n", + " 2858,\n", + " 7153,\n", + " 3578,\n", + " 2762,\n", + " 4306],\n", + " 1040: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 1053: [2959, 4993, 5952, 4226, 7153, 296, 47, 3996, 318, 6874],\n", + " 704: [2858, 7153, 296, 318, 6539, 6874, 2329, 6377, 356, 2997],\n", + " 934: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 42: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 73: [4993, 5952, 4226, 7153, 3578, 4306, 3996, 6539, 5445, 6874],\n", + " 82: [2959, 2858, 7153, 3578, 2762, 47, 3996, 318, 5445, 1704],\n", + " 159: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 161: [4306, 4963, 1704, 2329, 356, 2997, 4995, 2028, 4011, 1682],\n", + " 192: [4993, 5952, 7153, 2762, 3996, 318, 6539, 2329, 356, 4995],\n", + " 216: [2959, 4226, 7153, 3578, 296, 6539, 5445, 6874, 1704, 6377],\n", + " 219: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n", + " 290: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 379: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 4306, 3996],\n", + " 389: [296, 4306, 4963, 356, 50, 4973, 1089, 2706, 1136, 1923],\n", + " 400: [4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996, 318],\n", + " 462: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 507: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 600: [4993, 5952, 2571, 7153, 2762, 296, 47, 4306, 3996, 318],\n", + " 721: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 793: [2959, 2858, 2762, 296, 47, 3996, 318, 6539, 6874, 4963],\n", + " 912: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 932: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 949: [4993, 5952, 4226, 47, 4306, 6539, 6874, 2329, 356, 50],\n", + " 1025: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", + " 46: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", + " 74: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 342: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", + " 508: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 580: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", + " 774: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", + " 783: [2959, 4226, 2858, 3578, 2762, 296, 47, 5445, 6874, 4963],\n", + " 1002: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 1023: [4226, 2762, 296, 4306, 3996, 318, 5445, 4963, 1704, 5349],\n", + " 1048: [3578, 3996, 4963, 6377, 3793, 356, 4973, 7361, 4878, 1682],\n", + " 23: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 96: [2959, 4993, 5952, 4226, 7153, 47, 4306, 3996, 318, 6539],\n", + " 124: [2959, 4226, 2858, 3578, 2762, 296, 47, 4306, 318, 6539],\n", + " 136: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 148: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 189: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 213: [2959, 4993, 5952, 4226, 7153, 3578, 4306, 3996, 318, 6539],\n", + " 243: [4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996, 318],\n", + " 323: [2959, 4226, 2571, 2858, 3578, 2762, 47, 4306, 3996, 318],\n", + " 352: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 429: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", + " 625: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 808: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 843: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 847: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 963: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 975: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 998: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47, 318],\n", + " 75: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 47, 4306],\n", + " 427: [2959, 4993, 5952, 4226, 2858, 7153, 296, 4306, 3996, 5445],\n", + " 466: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", + " 801: [2858, 2762, 318, 5445, 356, 2997, 50, 4995, 4011, 4878],\n", + " 848: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 888: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", + " 191: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 227: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 245: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 380: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n", + " 408: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 668: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 747: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 754: [2959, 2858, 2762, 296, 318, 1704, 2329, 356, 2997, 50],\n", + " 11: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 16: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 81: [4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306, 3996],\n", + " 86: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 97: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", + " 151: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n", + " 235: [5952, 2762, 4306, 3996, 6874, 4963, 1704, 5349, 4886, 2329],\n", + " 251: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 258: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 278: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 388: [2959, 4993, 5952, 2858, 7153, 3578, 2762, 296, 47, 4306],\n", + " 551: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 606: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 614: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 681: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 686: [2959, 4993, 5952, 4226, 7153, 296, 47, 4306, 3996, 318],\n", + " 711: [2959, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306, 3996],\n", + " 718: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 873: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", + " 962: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 985: [2959, 4226, 2571, 2858, 2762, 296, 47, 318, 6539, 6874],\n", + " 993: [2959, 2571, 2858, 7153, 2762, 296, 47, 318, 6539, 6874],\n", + " 184: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n", + " 246: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 373: [2959, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306],\n", + " 430: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 534: [2959, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47, 4306],\n", + " 805: [2959, 4226, 2858, 2762, 296, 47, 3996, 318, 5445, 6874],\n", + " 58: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 6539],\n", + " 112: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 367: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 548: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 791: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 909: [4226, 7153, 3578, 296, 47, 4306, 3996, 318, 6874, 4963],\n", + " 1041: [4306, 5445, 5349, 6377, 3793, 356, 4995, 1682, 3897, 4027],\n", + " 13: [2959, 5952, 4226, 2571, 2858, 7153, 2762, 47, 4306, 3996],\n", + " 869: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", + " 415: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 477: [2858, 3578, 4306, 6539, 5445, 6874, 4963, 1704, 5349, 4886],\n", + " 569: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 694: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 729: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 741: [2959, 4993, 5952, 4226, 7153, 3578, 4306, 3996, 6539, 5445],\n", + " 965: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 17: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", + " 40: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n", + " 114: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 137: [5952, 4226, 7153, 6539, 5445, 6874, 4886, 6377, 356, 4973],\n", + " 153: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 47, 4306, 3996],\n", + " 211: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n", + " 286: [4993, 5952, 7153, 2762, 296, 47, 4306, 3996, 318, 6539],\n", + " 330: [4226, 3578, 4306, 3996, 318, 6539, 5445, 4963, 1704, 4886],\n", + " 336: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 372: [4226, 2858, 7153, 296, 47, 4306, 3996, 318, 6539, 5445],\n", + " 376: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 3996],\n", + " 412: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", + " 447: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n", + " 467: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n", + " 490: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 518: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 608: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 3996],\n", + " 619: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", + " 644: [2959, 4226, 2858, 7153, 2762, 296, 47, 3996, 318, 6539],\n", + " 667: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", + " 698: [4306, 6539, 5349, 4886, 356, 2997, 4973, 4027, 2502, 2706],\n", + " 709: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", + " 728: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n", + " 733: [2959, 5952, 4226, 2858, 2762, 296, 47, 4306, 3996, 318],\n", + " 777: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 813: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", + " 832: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 893: [2959, 4993, 4226, 2858, 7153, 2762, 296, 47, 4306, 3996],\n", + " 901: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 937: [4993, 4226, 2571, 2858, 3578, 296, 3996, 6539, 5445, 6874],\n", + " 947: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 362: [2858, 3578, 296, 47, 4306, 3996, 6539, 5445, 6874, 4963],\n", + " 375: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 599: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 632: [2959, 4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996],\n", + " 779: [2959, 4993, 5952, 2571, 2858, 3578, 2762, 296, 47, 4306],\n", + " 1022: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 1034: [2959, 4993, 4226, 2571, 2858, 2762, 296, 47, 4306, 3996],\n", + " 819: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 2: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 3: [2959, 4993, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306],\n", + " 104: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 105: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 218: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 250: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 313: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 377: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 47, 4306, 3996],\n", + " 413: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 576: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 586: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 595: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n", + " 610: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 613: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 637: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", + " 663: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 740: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 787: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 804: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 866: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 883: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 941: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 1007: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 817: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 6: [2959, 4993, 5952, 4226, 2858, 7153, 2762, 296, 47, 4306],\n", + " 7: [2959, 4993, 5952, 2571, 2858, 7153, 3578, 296, 47, 3996],\n", + " 14: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", + " 24: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 57: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 60: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 64: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 84: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 90: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 98: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 113: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", + " 120: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 123: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 157: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 194: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 200: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 204: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 205: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 225: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 229: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 237: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n", + " 242: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 252: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 266: [2959, 4993, 5952, 4226, 7153, 3578, 2762, 296, 47, 4306],\n", + " 270: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 282: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 297: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 309: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 316: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 327: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 356: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 393: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 394: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 4306, 3996, 6539],\n", + " 395: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", + " 399: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 401: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n", + " 402: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n", + " 405: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 417: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 422: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 437: [2959, 4993, 5952, 4226, 7153, 3578, 4306, 3996, 6539, 5445],\n", + " 455: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 461: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 473: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 484: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 499: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 526: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 537: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 542: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", + " 557: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 563: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 570: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 575: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 594: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 607: [2959, 4993, 2571, 2858, 7153, 3578, 2762, 296, 47, 4306],\n", + " 631: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 651: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 664: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 685: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 690: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 696: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 4306, 3996],\n", + " 724: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 738: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 762: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 763: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 770: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 796: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 800: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 829: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 836: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 882: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 900: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 903: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 914: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 918: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 920: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 945: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 950: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 952: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 982: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 989: [2959, 4993, 5952, 4226, 7153, 2762, 47, 4306, 3996, 318],\n", + " 1016: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 1019: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 1044: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 1051: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 917: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 951: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 997: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 174: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 676: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47],\n", + " 764: [4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996, 6539],\n", + " 1052: [4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47, 4306],\n", + " 5: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 27: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 33: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 134: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 142: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 156: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 167: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 177: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 224: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 269: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 312: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 360: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 385: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 411: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 464: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n", + " 568: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 612: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 630: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 706: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 737: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 749: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 756: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 811: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 853: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 884: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 955: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", + " 1032: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 1043: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 370: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 670: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 923: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 931: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 969: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 12: [4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996, 318],\n", + " 597: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 195: [2959, 5952, 2571, 7153, 47, 318, 6539, 5445, 6874, 1704],\n", + " 337: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 910: [2571, 3578, 2762, 6539, 5445, 4963, 5349, 356, 2997, 4973],\n", + " 63: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 70: [2959, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47, 3996],\n", + " 99: [2959, 5952, 2571, 2858, 7153, 3578, 47, 4306, 3996, 6539],\n", + " 121: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n", + " 130: [2959, 4226, 2571, 3578, 2762, 47, 4306, 318, 6539, 5445],\n", + " 244: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 291: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 335: [2959, 5952, 2571, 2858, 7153, 2762, 296, 47, 4306, 318],\n", + " 361: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 4306, 3996],\n", + " 470: [4993, 7153, 3578, 4306, 4963, 1704, 5349, 4886, 3793, 356],\n", + " 497: [2959, 5952, 2858, 3578, 296, 47, 3996, 6539, 5445, 6874],\n", + " 620: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 648: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 666: [3578, 2762, 4306, 318, 6539, 5445, 4963, 1704, 5349, 4886],\n", + " 710: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 794: [2959, 4993, 5952, 2571, 2858, 3578, 296, 47, 4306, 3996],\n", + " 854: [4993, 5952, 4226, 2571, 7153, 3578, 47, 4306, 3996, 318],\n", + " 861: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 47, 4306],\n", + " 87: [4993, 5952, 4226, 2571, 7153, 296, 47, 4306, 3996, 318],\n", + " 317: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 324: [2858, 2762, 296, 47, 4306, 3996, 318, 6539, 6874, 4963],\n", + " 502: [4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306, 3996],\n", + " 559: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 973: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n", + " 1015: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 1017: [2959, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306, 3996],\n", + " 85: [2959, 4993, 5952, 4226, 7153, 3578, 47, 4306, 3996, 318],\n", + " 306: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 653: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 371: [2959, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 47, 4306],\n", + " 566: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", + " 331: [5952, 3578, 2762, 296, 47, 4306, 3996, 5445, 1704, 5349],\n", + " 665: [2959, 4993, 2571, 7153, 3578, 2762, 47, 4306, 318, 6539],\n", + " 872: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 879: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 486: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", + " 864: [4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306, 3996],\n", + " 52: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 288: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 9: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 117: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", + " 220: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 544: [4226, 2858, 3578, 2762, 4306, 3996, 318, 6539, 5445, 4963],\n", + " 999: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 458: [2959, 4993, 5952, 2571, 7153, 296, 47, 4306, 3996, 318],\n", + " 974: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 546: [2959, 4226, 2571, 2858, 2762, 296, 47, 6874, 4963, 1704],\n", + " 55: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 363: [4226, 2571, 2858, 3578, 2762, 47, 4306, 3996, 318, 6539],\n", + " 445: [2959, 4993, 4226, 2571, 2858, 3578, 2762, 296, 47, 4306],\n", + " 492: [2959, 4993, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", + " 234: [4993, 5952, 7153, 3578, 2762, 296, 47, 318, 6539, 6874],\n", + " 1027: [4993, 5952, 2571, 2858, 7153, 2762, 47, 4306, 3996, 318],\n", + " 140: [2959, 4993, 5952, 2571, 3578, 2762, 296, 47, 4306, 3996],\n", + " 926: [2959, 4993, 5952, 4226, 2571, 2858, 3578, 2762, 296, 47],\n", + " 781: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 825: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 913: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", + " 453: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 4306],\n", + " 540: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", + " 66: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306, 3996],\n", + " 185: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 222: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 498: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 994: [2959, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", + " 165: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 202: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 180: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 296, 47],\n", + " 93: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 261: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 2762, 296, 47],\n", + " 435: [4993, 5952, 2858, 7153, 3578, 2762, 296, 4306, 3996, 318],\n", + " 322: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 238: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 425: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 512: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 47, 4306],\n", + " 725: [4993, 5952, 4226, 7153, 3578, 296, 47, 4306, 3996, 318],\n", + " 732: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 108: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 592: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 443: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 916: [5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47, 4306],\n", + " 736: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 2762, 296, 47],\n", + " 961: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 296, 47, 4306],\n", + " 1012: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 515: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 978: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 28: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 475: [4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296, 47],\n", + " 598: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 943: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 520: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 697: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 849: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 1003: [2959, 4993, 5952, 4226, 2858, 7153, 3578, 296, 47, 4306],\n", + " 705: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 48: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 29: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 231: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 699: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n", + " 448: [2959, 4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47],\n", + " 750: [4993, 5952, 4226, 2571, 7153, 3578, 2762, 296, 47, 4306],\n", + " 782: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 860: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 768: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 127: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296],\n", + " 894: [2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296]})" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from collections import defaultdict\n", + "\n", + "# 각 사용자에 대한 추천 영화는 해당 사용자가 아직 평가하지 않은 영화 중에서 예측값이 높은 순으로 한다\n", + "pred_user2items = defaultdict(list)\n", + "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", + "for user_id in movielens_train.user_id.unique():\n", + " if user_id not in user_id2index:\n", + " continue\n", + " user_index = user_id2index[row[\"user_id\"]]\n", + " movie_indexes = np.argsort(-pred_matrix[user_index, :])\n", + " for movie_index in movie_indexes:\n", + " movie_id = user_movie_matrix.columns[movie_index]\n", + " if movie_id not in user_evaluated_movies[user_id]:\n", + " pred_user2items[user_id].append(movie_id)\n", + " if len(pred_user2items[user_id]) == 10:\n", + " break\n", + "pred_user2items" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "27b87c98", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 564 + }, + "executionInfo": { + "elapsed": 25, + "status": "ok", + "timestamp": 1672119477563, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "27b87c98", + "outputId": "3b53ae05-8f2b-4bcd-e3e5-72cac813ffcf" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " user_id movie_id rating timestamp \\\n", + "4732 2 110 5.0 868245777 \n", + "5246 2 260 5.0 868244562 \n", + "5798 2 590 5.0 868245608 \n", + "6150 2 648 2.0 868244699 \n", + "6531 2 733 3.0 868244562 \n", + "6813 2 736 3.0 868244698 \n", + "7113 2 780 3.0 868244698 \n", + "7506 2 786 3.0 868244562 \n", + "7661 2 802 2.0 868244603 \n", + "7779 2 858 2.0 868245645 \n", + "8077 2 1049 3.0 868245920 \n", + "8127 2 1073 3.0 868244562 \n", + "8381 2 1210 4.0 868245644 \n", + "8771 2 1356 3.0 868244603 \n", + "9097 2 1544 3.0 868245920 \n", + "\n", + " title \\\n", + "4732 Braveheart (1995) \n", + "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", + "5798 Dances with Wolves (1990) \n", + "6150 Mission: Impossible (1996) \n", + "6531 Rock, The (1996) \n", + "6813 Twister (1996) \n", + "7113 Independence Day (a.k.a. ID4) (1996) \n", + "7506 Eraser (1996) \n", + "7661 Phenomenon (1996) \n", + "7779 Godfather, The (1972) \n", + "8077 Ghost and the Darkness, The (1996) \n", + "8127 Willy Wonka & the Chocolate Factory (1971) \n", + "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", + "8771 Star Trek: First Contact (1996) \n", + "9097 Lost World: Jurassic Park, The (Jurassic Park ... \n", + "\n", + " genre \\\n", + "4732 [Action, Drama, War] \n", + "5246 [Action, Adventure, Sci-Fi] \n", + "5798 [Adventure, Drama, Western] \n", + "6150 [Action, Adventure, Mystery, Thriller] \n", + "6531 [Action, Adventure, Thriller] \n", + "6813 [Action, Adventure, Romance, Thriller] \n", + "7113 [Action, Adventure, Sci-Fi, War] \n", + "7506 [Action, Drama, Thriller] \n", + "7661 [Drama, Romance] \n", + "7779 [Crime, Drama] \n", + "8077 [Action, Adventure] \n", + "8127 [Children, Comedy, Fantasy, Musical] \n", + "8381 [Action, Adventure, Sci-Fi] \n", + "8771 [Action, Adventure, Sci-Fi, Thriller] \n", + "9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n", + "\n", + " tag timestamp_rank \n", + "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", + "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", + "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", + "6150 [confusing, confusing plot, memorable sequence... 12.0 \n", + "6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n", + "6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n", + "7113 [action, alien invasion, aliens, will smith, a... 14.0 \n", + "7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n", + "7661 [interesting concept, own, john travolta, john... 15.0 \n", + "7779 [oscar (best picture), marlon brando, classic,... 9.0 \n", + "8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n", + "8127 [based on a book, roald dahl, based on a book,... 20.0 \n", + "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n", + "8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n", + "9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2의 사용자가 학습 데이터에 평가를 부여한 영화 목록\n", + "movielens_train[movielens_train.user_id==2]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "1940df09", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 24, + "status": "ok", + "timestamp": 1672119477563, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "1940df09", + "outputId": "c9d4698b-99ae-48dd-8628-92b6791aaa0e" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[2959, 4993, 5952, 4226, 2571, 2858, 7153, 3578, 2762, 296]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred_user2items[2]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "d1786a85", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 143 + }, + "executionInfo": { + "elapsed": 5, + "status": "ok", + "timestamp": 1672119477563, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "d1786a85", + "outputId": "9bf45053-0677-4bd4-b3e2-e27b4f1c6384" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idtitlegenretag
28742959Fight Club (1999)[Action, Crime, Drama, Thriller][based on a book, chuck palahniuk, edward nort...
48994993Lord of the Rings: The Fellowship of the Ring,...[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
58525952Lord of the Rings: The Two Towers, The (2002)[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " movie_id title \\\n", + "2874 2959 Fight Club (1999) \n", + "4899 4993 Lord of the Rings: The Fellowship of the Ring,... \n", + "5852 5952 Lord of the Rings: The Two Towers, The (2002) \n", + "\n", + " genre \\\n", + "2874 [Action, Crime, Drama, Thriller] \n", + "4899 [Action, Adventure, Fantasy] \n", + "5852 [Action, Adventure, Fantasy] \n", + "\n", + " tag \n", + "2874 [based on a book, chuck palahniuk, edward nort... \n", + "4899 [based on a book, big budget, new zealand, sce... \n", + "5852 [based on a book, big budget, new zealand, sce... " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2에 대한 추천(2959, 4993, 5952)\n", + "movies[movies.movie_id.isin([2959, 4993, 5952])]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "441ff6da", + "metadata": { + "executionInfo": { + "elapsed": 4, + "status": "ok", + "timestamp": 1672119477563, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "441ff6da" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "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.10.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/chapter5/colab/RF.ipynb b/chapter5/colab/RF.ipynb index 3e14165..8b93d6b 100644 --- a/chapter5/colab/RF.ipynb +++ b/chapter5/colab/RF.ipynb @@ -1 +1,5237 @@ -{"cells":[{"cell_type":"markdown","metadata":{"id":"0d5889b3"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/RF.ipynb)"],"id":"0d5889b3"},{"cell_type":"markdown","metadata":{"id":"4935d845"},"source":["# RandomForest(회귀 모델)"],"id":"4935d845"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":4283,"status":"ok","timestamp":1672119776862,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"},"user_tz":-540},"id":"52eedd0b","outputId":"d53d23e4-53b5-440a-b5d5-5432ccedb2d6"},"outputs":[{"name":"stdout","output_type":"stream","text":["--2022-12-27 05:42:50-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 64.4MB/s in 1.0s \n","\n","2022-12-27 05:42:51 (64.4 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"],"id":"52eedd0b"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":73811,"status":"ok","timestamp":1672119850668,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"},"user_tz":-540},"id":"d3c02fa7","outputId":"2703b391-837b-4ced-8876-73fe4b6b7a9e"},"outputs":[{"name":"stdout","output_type":"stream","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"],"id":"d3c02fa7"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":455},"executionInfo":{"elapsed":24,"status":"ok","timestamp":1672119850668,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"},"user_tz":-540},"id":"683d7c01-91e8-4835-b9cc-332b16c13966","outputId":"3df466b9-dbeb-47f1-ecd2-105e2288c100"},"outputs":[{"data":{"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_id12345678910...62000621136229362344623946280162803631136399264716
user_id
1NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
2NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
3NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
51.0NaNNaNNaNNaNNaN3.0NaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
..................................................................
1048NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1050NaN3.0NaNNaNNaN3.0NaNNaNNaN3.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
10515.0NaN3.0NaN3.0NaN4.0NaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1052NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
10535.0NaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n","

1000 rows × 6673 columns

\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "],"text/plain":["movie_id 1 2 3 4 5 6 7 8 9 \\\n","user_id \n","1 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n","2 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n","3 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n","4 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n","5 1.0 NaN NaN NaN NaN NaN 3.0 NaN NaN \n","... ... ... ... ... ... ... ... ... ... \n","1048 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n","1050 NaN 3.0 NaN NaN NaN 3.0 NaN NaN NaN \n","1051 5.0 NaN 3.0 NaN 3.0 NaN 4.0 NaN NaN \n","1052 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n","1053 5.0 NaN NaN NaN NaN NaN NaN NaN NaN \n","\n","movie_id 10 ... 62000 62113 62293 62344 62394 62801 62803 63113 \\\n","user_id ... \n","1 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","2 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","3 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","4 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","5 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","... ... ... ... ... ... ... ... ... ... ... \n","1048 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","1050 3.0 ... NaN NaN NaN NaN NaN NaN NaN NaN \n","1051 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","1052 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","1053 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n","\n","movie_id 63992 64716 \n","user_id \n","1 NaN NaN \n","2 NaN NaN \n","3 NaN NaN \n","4 NaN NaN \n","5 NaN NaN \n","... ... ... \n","1048 NaN NaN \n","1050 NaN NaN \n","1051 NaN NaN \n","1052 NaN NaN \n","1053 NaN NaN \n","\n","[1000 rows x 6673 columns]"]},"execution_count":3,"metadata":{},"output_type":"execute_result"}],"source":["# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다\n","user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n","user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n","movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n","user_movie_matrix"],"id":"683d7c01-91e8-4835-b9cc-332b16c13966"},{"cell_type":"code","execution_count":null,"metadata":{"id":"1f34610c"},"outputs":[],"source":["# 학습에 사용하는 학습용 데이터 안의 사용자와 영화의 조합을 얻는다\n","train_keys = movielens_train[[\"user_id\", \"movie_id\"]]\n","# 학습용 데이터 안의 평갓값을 학습의 정답 데이터로 얻는다\n","train_y = movielens_train.rating.values\n","\n","# 평갓값을 예측할 테스트용 데이터 안의 사용자와 영화의 조합을 얻는다\n","test_keys = movielens_test[[\"user_id\", \"movie_id\"]]\n","# 순위 형식의 추천 리스트 작성을 위해 학습용 데이터에 존재하는 모든 사용자와 모든 영화의 조합을 얻는다\n","train_all_keys = user_movie_matrix.stack(dropna=False).reset_index()[[\"user_id\", \"movie_id\"]]\n"],"id":"1f34610c"},{"cell_type":"code","execution_count":null,"metadata":{"id":"9f5053fe"},"outputs":[],"source":["# 특징량을 작성한다\n","train_x = train_keys.copy()\n","test_x = test_keys.copy()\n","train_all_x = train_all_keys.copy()"],"id":"9f5053fe"},{"cell_type":"code","execution_count":null,"metadata":{"id":"3b756eca"},"outputs":[],"source":["# 학습용 데이터에 존재하는 사용자별 평갓값의 최솟값, 최댓값, 평균값\n","# 및, 영화별 평갓값의 최솟값, 최댓값, 평균값을 특징량으로 추가한다\n","aggregators = [\"min\", \"max\", \"mean\"]\n","user_features = movielens_train.groupby(\"user_id\").rating.agg(aggregators).to_dict()\n","movie_features = movielens_train.groupby(\"movie_id\").rating.agg(aggregators).to_dict()\n","for agg in aggregators:\n"," train_x[f\"u_{agg}\"] = train_x[\"user_id\"].map(user_features[agg])\n"," test_x[f\"u_{agg}\"] = test_x[\"user_id\"].map(user_features[agg])\n"," train_all_x[f\"u_{agg}\"] = train_all_x[\"user_id\"].map(user_features[agg])\n"," train_x[f\"m_{agg}\"] = train_x[\"movie_id\"].map(movie_features[agg])\n"," test_x[f\"m_{agg}\"] = test_x[\"movie_id\"].map(movie_features[agg])\n"," train_all_x[f\"m_{agg}\"] = train_all_x[\"movie_id\"].map(movie_features[agg])\n","# 테스트용 데이터에만 존재하는 사용자나 영화의 특징량을, 학습용 데이터 전체의 평균 평갓값으로 채운다\n","average_rating = train_y.mean()\n","test_x.fillna(average_rating, inplace=True)"],"id":"3b756eca"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":1492,"status":"ok","timestamp":1672119853162,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"},"user_tz":-540},"id":"3499ae5a","outputId":"ae542425-5ea1-46bd-fe3f-b68df0abae71"},"outputs":[{"name":"stderr","output_type":"stream","text":[":7: SettingWithCopyWarning: \n","A value is trying to be set on a copy of a slice from a DataFrame.\n","Try using .loc[row_indexer,col_indexer] = value instead\n","\n","See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n"," movie_genres[f\"is_{genre}\"] = movie_genres.genre.apply(lambda x: genre in x)\n"]}],"source":["import itertools\n","\n","# 영화가 특정한 genre인지 나타내는 특징량을 추가한다\n","movie_genres = movies[[\"movie_id\", \"genre\"]]\n","genres = set(list(itertools.chain(*movie_genres.genre)))\n","for genre in genres:\n"," movie_genres[f\"is_{genre}\"] = movie_genres.genre.apply(lambda x: genre in x)\n","movie_genres.drop(\"genre\", axis=1, inplace=True)\n","train_x = train_x.merge(movie_genres, on=\"movie_id\")\n","test_x = test_x.merge(movie_genres, on=\"movie_id\")\n","train_all_x = train_all_x.merge(movie_genres, on=\"movie_id\")"],"id":"3499ae5a"},{"cell_type":"code","execution_count":null,"metadata":{"id":"eca70ebb"},"outputs":[],"source":["# 특징량으로 사용하지 않는 정보는 삭제한다\n","train_x = train_x.drop(columns=[\"user_id\", \"movie_id\"])\n","test_x = test_x.drop(columns=[\"user_id\", \"movie_id\"])\n","train_all_x = train_all_x.drop(columns=[\"user_id\", \"movie_id\"])"],"id":"eca70ebb"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":47235,"status":"ok","timestamp":1672119900826,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"},"user_tz":-540},"id":"78bde7fd","outputId":"6aa184b5-c138-4343-8e8c-918a5383c6a4"},"outputs":[{"data":{"text/plain":["RandomForestRegressor(n_jobs=-1, random_state=0)"]},"execution_count":9,"metadata":{},"output_type":"execute_result"}],"source":["from sklearn.ensemble import RandomForestRegressor as RFR\n","\n","# Random Forest를 사용한 학습\n","reg = RFR(n_jobs=-1, random_state=0)\n","reg.fit(train_x.values, train_y)\n"],"id":"78bde7fd"},{"cell_type":"code","execution_count":null,"metadata":{"id":"ca01da90"},"outputs":[],"source":["# 테스트용 데이터 안의 사용와 영화의 조합에 대해 평갓값을 예측한다\n","test_pred = reg.predict(test_x.values)\n","\n","movie_rating_predict = test_keys.copy()\n","movie_rating_predict[\"rating_pred\"] = test_pred"],"id":"ca01da90"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true},"id":"3ec280f6","outputId":"2757cf67-bb2c-4111-8871-e88cbe01853b"},"outputs":[{"data":{"text/plain":["defaultdict(list,\n"," {139: [7986, 6356, 6565, 4270, 6538, 5817, 4828, 3588, 631, 26974],\n"," 149: [5914, 1672, 1570, 555, 5928, 616, 640, 5996, 1326, 1671],\n"," 182: [4956,\n"," 5971,\n"," 6729,\n"," 8379,\n"," 6713,\n"," 5662,\n"," 30894,\n"," 6890,\n"," 7647,\n"," 5090],\n"," 215: [5598, 4626, 4679, 6286, 4458, 4802, 4887, 848, 3274, 5572],\n"," 281: [8482, 1497, 715, 880, 1483, 4531, 6583, 5472, 6722, 1992],\n"," 326: [2269, 2211, 2393, 1084, 1643, 1711, 1336, 1186, 1156, 523],\n"," 351: [6312, 6058, 7458, 7117, 7523, 7340, 6008, 8485, 7836, 8369],\n"," 357: [56949,\n"," 56587,\n"," 59037,\n"," 13,\n"," 2569,\n"," 2243,\n"," 2993,\n"," 2013,\n"," 56801,\n"," 126],\n"," 426: [3718, 3035, 3620, 7817, 3892, 3387, 3496, 3223, 3546, 5723],\n"," 456: [5060, 5634, 5688, 4975, 5909, 5275, 4988, 6568, 1880, 6672],\n"," 459: [6005,\n"," 42004,\n"," 8827,\n"," 40851,\n"," 33903,\n"," 47810,\n"," 56333,\n"," 1940,\n"," 42021,\n"," 27773],\n"," 494: [26144, 8722, 7153, 9, 6874, 8191, 7111, 8, 32596, 7030],\n"," 517: [2770, 3423, 218, 3468, 6772, 6250, 6333, 6005, 3525, 5930],\n"," 524: [3186, 3338, 3992, 4486, 4535, 3135, 2727, 3939, 2665, 3924],\n"," 556: [26, 1783, 1265, 1210, 1215, 32011, 58293, 1135, 166, 82],\n"," 588: [1938, 2898, 2010, 2454, 2824, 2478, 2381, 1809, 1873, 2529],\n"," 589: [7704, 6375, 25850, 5668, 423, 4701, 1661, 910, 729, 854],\n"," 590: [59985,\n"," 6281,\n"," 51088,\n"," 5372,\n"," 32596,\n"," 5427,\n"," 39381,\n"," 53318,\n"," 8939,\n"," 7223],\n"," 601: [6330, 335, 6423, 7150, 8873, 6569, 7075, 8746, 6672, 7025],\n"," 621: [2043, 2443, 2455, 2103, 2906, 2342, 2492, 2412, 2116, 3008],\n"," 634: [559, 840, 767, 1350, 1750, 1496, 1704, 1296, 854, 1342],\n"," 672: [2210, 4272, 1149, 2275, 4926, 1874, 1667, 1370, 4565, 1351],\n"," 701: [2533, 3270, 3802, 4470, 253, 500, 1203, 1237, 5046, 104],\n"," 719: [423, 967, 957, 918, 909, 1585, 893, 1574, 969, 1353],\n"," 745: [1185, 1128, 599, 3, 1759, 116, 5333, 1583, 4634, 691],\n"," 757: [521, 58306, 60688, 550, 757, 1084, 526, 1218, 273, 53921],\n"," 775: [8595,\n"," 6914,\n"," 31687,\n"," 8093,\n"," 8363,\n"," 8998,\n"," 58803,\n"," 8253,\n"," 32019,\n"," 6934],\n"," 780: [4178, 4729, 4108, 4893, 6702, 5529, 4102, 5516, 4483, 4077],\n"," 785: [605, 423, 579, 466, 801, 326, 518, 880, 270, 1086],\n"," 788: [1081, 1885, 907, 553, 876, 58047, 54281, 65, 251, 2340],\n"," 870: [6862, 7375, 7373, 8961, 7368, 7361, 7355, 8981, 3395, 8957],\n"," 987: [6214, 5114, 6927, 5881, 704, 3760, 5302, 513, 765, 6183],\n"," 988: [927, 465, 246, 53956, 1525, 55765, 614, 220, 1615, 1518],\n"," 1020: [2693,\n"," 2748,\n"," 3208,\n"," 3158,\n"," 2687,\n"," 2879,\n"," 3884,\n"," 3821,\n"," 42015,\n"," 45852],\n"," 1: [100, 854, 449, 1025, 802, 196, 1100, 31689, 685, 1136],\n"," 22: [26138,\n"," 6806,\n"," 9005,\n"," 26745,\n"," 8932,\n"," 6887,\n"," 8128,\n"," 7383,\n"," 8256,\n"," 26171],\n"," 26: [520, 4823, 5843, 4845, 4284, 3476, 376, 38, 4296, 4701],\n"," 30: [4723, 3876, 1498, 2163, 5324, 6412, 5341, 2603, 45722, 1378],\n"," 34: [7384, 6709, 6590, 7820, 8743, 7068, 6597, 7321, 3549, 6581],\n"," 38: [881, 4662, 3827, 250, 46, 781, 39381, 1034, 708, 485],\n"," 50: [5480, 4776, 4772, 4771, 5452, 4768, 4766, 4765, 4757, 4756],\n"," 53: [6744, 5792, 6429, 6430, 5788, 6436, 5786, 7163, 5785, 7162],\n"," 54: [48043, 8939, 352, 27790, 1407, 5573, 271, 948, 1556, 4614],\n"," 67: [2605,\n"," 61262,\n"," 55442,\n"," 4433,\n"," 54775,\n"," 3565,\n"," 57536,\n"," 47997,\n"," 3732,\n"," 34143],\n"," 71: [58025,\n"," 51935,\n"," 47950,\n"," 58299,\n"," 62000,\n"," 48385,\n"," 5459,\n"," 52375,\n"," 56367,\n"," 279],\n"," 76: [431, 5, 542, 378, 837, 235, 485, 753, 1045, 555],\n"," 88: [1713,\n"," 1574,\n"," 1018,\n"," 52717,\n"," 26729,\n"," 2003,\n"," 1636,\n"," 2194,\n"," 1940,\n"," 1747],\n"," 89: [7764, 7566, 7170, 7176, 7164, 8779, 7292, 8633, 39446, 7167],\n"," 94: [5494, 4876, 4799, 5668, 6063, 5225, 4806, 4788, 5437, 4774],\n"," 95: [43871, 862, 61160, 58490, 234, 835, 52279, 361, 681, 378],\n"," 100: [1471, 1617, 1172, 1170, 1878, 1616, 1154, 1356, 1882, 1365],\n"," 101: [4418,\n"," 8907,\n"," 6993,\n"," 4488,\n"," 4789,\n"," 3881,\n"," 3968,\n"," 32076,\n"," 4164,\n"," 4560],\n"," 102: [7739,\n"," 2929,\n"," 33193,\n"," 7771,\n"," 4160,\n"," 2889,\n"," 4017,\n"," 4161,\n"," 6892,\n"," 6884],\n"," 103: [3435, 3943, 3351, 4384, 3893, 3330, 3359, 4069, 3364, 3716],\n"," 111: [6886, 8754, 33138, 33312, 19, 60069, 2440, 14, 3165, 911],\n"," 116: [4521, 7323, 6346, 6204, 8789, 4001, 3189, 4009, 8782, 6441],\n"," 118: [51091,\n"," 47629,\n"," 48780,\n"," 47970,\n"," 54256,\n"," 53953,\n"," 59315,\n"," 48516,\n"," 59985,\n"," 60522],\n"," 143: [40148,\n"," 7168,\n"," 25995,\n"," 7297,\n"," 8270,\n"," 5379,\n"," 8913,\n"," 55280,\n"," 8784,\n"," 7156],\n"," 144: [3627, 3096, 4440, 100, 4366, 3038, 3760, 5004, 3392, 3043],\n"," 162: [2659, 3342, 2193, 4084, 226, 2130, 3414, 2141, 2607, 88],\n"," 172: [2512, 3118, 5189, 2639, 3269, 2504, 6724, 4471, 2597, 7000],\n"," 173: [8016,\n"," 36525,\n"," 30820,\n"," 8905,\n"," 8605,\n"," 26491,\n"," 8125,\n"," 8131,\n"," 41997,\n"," 30848],\n"," 187: [3300, 4307, 4224, 2474, 4102, 4188, 4405, 3362, 3877, 3287],\n"," 193: [3841,\n"," 3147,\n"," 3684,\n"," 4231,\n"," 7084,\n"," 4007,\n"," 3038,\n"," 4350,\n"," 61132,\n"," 5949],\n"," 208: [53953,\n"," 54256,\n"," 60037,\n"," 58303,\n"," 58418,\n"," 53999,\n"," 502,\n"," 55442,\n"," 513,\n"," 58291],\n"," 210: [3831, 4428, 3978, 3824, 3985, 3896, 3814, 4267, 4371, 3972],\n"," 214: [535, 463, 436, 1665, 5682, 1554, 6870, 1035, 668, 1658],\n"," 228: [7139,\n"," 7211,\n"," 6870,\n"," 8609,\n"," 3628,\n"," 6884,\n"," 7084,\n"," 7216,\n"," 31594,\n"," 6874],\n"," 232: [45880, 197, 2154, 2335, 2027, 1855, 2284, 1640, 2395, 2745],\n"," 236: [1624, 2278, 2427, 2178, 6614, 5470, 1533, 2033, 3503, 2717],\n"," 259: [1769, 2834, 2937, 2884, 2286, 2559, 2577, 2669, 2429, 1912],\n"," 260: [4867, 5685, 6279, 6383, 4722, 6346, 5847, 5522, 5918, 6252],\n"," 267: [67, 34405, 81, 72, 802, 6241, 5164, 1255, 5334, 6973],\n"," 268: [425, 5688, 1647, 19, 6875, 441, 1202, 414, 7728, 50872],\n"," 271: [1020, 519, 970, 1151, 7844, 2410, 1804, 32587, 49530, 7720],\n"," 274: [31923,\n"," 7577,\n"," 5611,\n"," 5016,\n"," 48780,\n"," 5009,\n"," 4126,\n"," 48883,\n"," 26318,\n"," 5478],\n"," 287: [64716,\n"," 4777,\n"," 4772,\n"," 4770,\n"," 4768,\n"," 4766,\n"," 4758,\n"," 4757,\n"," 4754,\n"," 4753],\n"," 292: [411, 501, 215, 101, 4512, 8884, 5362, 2002, 5182, 341],\n"," 296: [747, 1042, 232, 4163, 4855, 3683, 3574, 5930, 3663, 4352],\n"," 303: [73, 337, 122, 39, 854, 159, 391, 247, 31, 611],\n"," 307: [45501,\n"," 61361,\n"," 5299,\n"," 760,\n"," 48678,\n"," 59103,\n"," 3996,\n"," 4725,\n"," 1288,\n"," 43904],\n"," 310: [58334,\n"," 44929,\n"," 805,\n"," 907,\n"," 271,\n"," 60074,\n"," 42197,\n"," 7314,\n"," 8526,\n"," 1057],\n"," 315: [7698, 7235, 7325, 6252, 929, 6508, 7937, 6626, 5690, 7757],\n"," 320: [51939, 43, 7834, 1347, 33677, 5309, 4215, 5101, 21, 5709],\n"," 332: [8045,\n"," 31617,\n"," 7915,\n"," 8711,\n"," 52712,\n"," 45081,\n"," 33154,\n"," 50149,\n"," 5610,\n"," 6780],\n"," 339: [6268, 8377, 7287, 8535, 6537, 6315, 6626, 6620, 6969, 6373],\n"," 343: [4406, 2457, 3069, 3584, 2359, 2395, 1919, 2344, 1111, 3571],\n"," 355: [5621, 4916, 4921, 5094, 5643, 4903, 5101, 5303, 5855, 5826],\n"," 364: [5736,\n"," 4767,\n"," 52241,\n"," 27340,\n"," 26391,\n"," 5343,\n"," 6291,\n"," 6433,\n"," 5901,\n"," 51088],\n"," 365: [2616, 3587, 2605, 2936, 2624, 2693, 3147, 6345, 3330, 3098],\n"," 368: [7202,\n"," 8639,\n"," 7104,\n"," 31032,\n"," 8501,\n"," 7086,\n"," 2107,\n"," 8941,\n"," 1428,\n"," 7844],\n"," 381: [6203, 5295, 1642, 1233, 2447, 2023, 6025, 6425, 5193, 5692],\n"," 382: [7334, 6545, 6810, 5816, 7573, 6646, 5648, 2399, 1942, 6232],\n"," 383: [2118, 7728, 2110, 2359, 8698, 2926, 2069, 2170, 2431, 3239],\n"," 391: [2977, 3408, 3705, 3104, 3773, 3543, 3395, 2830, 2837, 2970],\n"," 396: [2461, 3073, 3284, 2405, 2550, 2921, 2876, 2961, 2410, 3050],\n"," 398: [813, 3180, 1238, 1279, 7204, 6077, 43919, 748, 3735, 3350],\n"," 406: [5398,\n"," 4047,\n"," 3993,\n"," 4602,\n"," 26828,\n"," 4510,\n"," 7386,\n"," 5300,\n"," 3941,\n"," 5321],\n"," 409: [3412,\n"," 2762,\n"," 26425,\n"," 7364,\n"," 2191,\n"," 1409,\n"," 41573,\n"," 3387,\n"," 3232,\n"," 2695],\n"," 410: [6130, 7075, 2387, 2470, 2570, 17, 2628, 2342, 2005, 6005],\n"," 416: [1293, 1826, 2530, 1151, 647, 1459, 1799, 1214, 570, 8800],\n"," 418: [4502,\n"," 42197,\n"," 160,\n"," 896,\n"," 42009,\n"," 44665,\n"," 4641,\n"," 59725,\n"," 4677,\n"," 53000],\n"," 419: [6772, 3599, 5999, 3752, 3157, 6970, 4257, 6690, 3016, 6525],\n"," 421: [5572, 5321, 6333, 5648, 5512, 5339, 5688, 5944, 5324, 5651],\n"," 424: [457, 456, 455, 453, 452, 448, 447, 446, 445, 444],\n"," 432: [4300,\n"," 4229,\n"," 4236,\n"," 4807,\n"," 4867,\n"," 4458,\n"," 3676,\n"," 54286,\n"," 4612,\n"," 2875],\n"," 434: [8365,\n"," 8157,\n"," 8584,\n"," 26152,\n"," 7079,\n"," 6997,\n"," 33649,\n"," 7781,\n"," 27563,\n"," 8768],\n"," 436: [5362, 4739, 207, 165, 4654, 5516, 618, 5913, 219, 70],\n"," 438: [4187, 4397, 4470, 4169, 4265, 5485, 510, 992, 2363, 4692],\n"," 441: [1727, 1845, 2798, 2744, 1904, 2409, 2202, 2272, 2512, 1650],\n"," 446: [870, 1281, 4645, 6166, 1333, 4840, 4580, 4833, 6037, 5472],\n"," 452: [3774, 3726, 4395, 2676, 4333, 3992, 2073, 3173, 3157, 3740],\n"," 460: [3580, 4153, 3732, 3564, 3573, 3014, 3653, 2405, 4094, 4637],\n"," 463: [3552, 3624, 3547, 4274, 4126, 4182, 4622, 4371, 3755, 4063],\n"," 468: [7058, 5915, 8197, 51925, 459, 42002, 143, 8235, 54995, 188],\n"," 469: [3504, 3566, 3499, 4792, 4428, 4444, 4144, 3937, 3600, 4714],\n"," 472: [118, 932, 702, 680, 230, 695, 65, 934, 147, 664],\n"," 476: [355, 702, 844, 5580, 7440, 27731, 6597, 577, 124, 38992],\n"," 480: [2333, 1805, 4932, 2446, 4276, 2118, 1814, 2283, 1793, 2906],\n"," 482: [3161, 3169, 3168, 3155, 3152, 3145, 3142, 3173, 3135, 3133],\n"," 493: [26064,\n"," 41569,\n"," 801,\n"," 1550,\n"," 45730,\n"," 59615,\n"," 3286,\n"," 46976,\n"," 58293,\n"," 8874],\n"," 496: [8799, 2590, 2723, 5840, 4600, 2137, 2082, 2545, 2087, 5009],\n"," 501: [50804,\n"," 47099,\n"," 58972,\n"," 48142,\n"," 54997,\n"," 47254,\n"," 62394,\n"," 48678,\n"," 48518,\n"," 50068],\n"," 504: [5859, 5992, 6240, 5662, 6405, 6312, 6777, 6063, 6261, 7293],\n"," 505: [105, 759, 750, 922, 1703, 1287, 1407, 1081, 879, 64],\n"," 511: [3202, 206, 3733, 3688, 4231, 3086, 4270, 4411, 3306, 3107],\n"," 516: [31903,\n"," 54736,\n"," 3351,\n"," 4310,\n"," 2408,\n"," 4130,\n"," 2844,\n"," 4279,\n"," 4208,\n"," 3629],\n"," 525: [2451, 2707, 2540, 540, 2977, 2517, 2397, 2183, 2086, 2252],\n"," 530: [7355,\n"," 6664,\n"," 6540,\n"," 7820,\n"," 7287,\n"," 8661,\n"," 8426,\n"," 7748,\n"," 7036,\n"," 26138],\n"," 531: [5423, 6125, 5470, 5333, 6920, 5351, 6020, 5339, 5604, 5662],\n"," 533: [476, 123, 522, 893, 519, 763, 419, 637, 807, 717],\n"," 536: [31694,\n"," 26230,\n"," 50354,\n"," 33085,\n"," 31184,\n"," 26425,\n"," 3980,\n"," 3473,\n"," 2191,\n"," 33794],\n"," 543: [5604, 4783, 5410, 5568, 5472, 369, 4690, 5205, 5841, 843],\n"," 547: [747, 42, 6990, 8275, 1216, 8732, 26085, 8531, 2071, 7064],\n"," 549: [4828, 5944, 4643, 5508, 5823, 4837, 6003, 5938, 4821, 5081],\n"," 553: [5331, 5251, 6718, 5875, 6312, 6584, 6467, 6254, 6423, 5883],\n"," 558: [270, 2552, 2102, 135, 87, 7265, 6162, 248, 2050, 189],\n"," 562: [408, 397, 394, 908, 391, 389, 388, 383, 379, 910],\n"," 567: [875, 1472, 1283, 1398, 635, 1572, 3591, 3742, 4285, 1185],\n"," 571: [549, 149, 210, 715, 807, 223, 409, 32011, 54780, 94],\n"," 572: [656, 661, 286, 663, 665, 281, 280, 667, 668, 289],\n"," 577: [17, 567, 43, 255, 910, 602, 729, 562, 668, 615],\n"," 581: [2712, 2654, 3169, 2843, 3114, 3780, 3846, 2730, 2886, 2639],\n"," 585: [1759, 505, 757, 665, 1643, 1735, 688, 1423, 709, 1753],\n"," 593: [3810, 5139, 3816, 34170, 72, 4876, 4570, 76, 77, 24],\n"," 604: [49822,\n"," 53993,\n"," 58154,\n"," 34538,\n"," 26939,\n"," 58103,\n"," 34536,\n"," 26974,\n"," 58025,\n"," 27005],\n"," 605: [3, 4, 2, 5, 6, 2470, 2462, 2656, 2445, 2606],\n"," 609: [6714, 2336, 5541, 1569, 240, 35, 27801, 2764, 2003, 5663],\n"," 628: [40723,\n"," 8375,\n"," 55729,\n"," 3358,\n"," 3289,\n"," 55402,\n"," 40870,\n"," 27722,\n"," 55247,\n"," 3379],\n"," 629: [2207, 1973, 1255, 1256, 1258, 1261, 1263, 1265, 1267, 1272],\n"," 645: [839, 1278, 122, 1002, 806, 1269, 1283, 729, 1196, 1032],\n"," 650: [974, 1114, 1440, 923, 2046, 2147, 2824, 2211, 2136, 1592],\n"," 656: [5546, 4589, 5302, 4735, 6243, 5646, 4711, 5556, 6238, 4898],\n"," 657: [362, 703, 958, 485, 673, 39, 728, 4164, 313, 4466],\n"," 669: [4229, 4411, 477, 529, 4298, 4588, 616, 813, 3717, 337],\n"," 678: [618, 1917, 673, 41863, 906, 1642, 8501, 1888, 957, 1366],\n"," 683: [8130,\n"," 6789,\n"," 7459,\n"," 7070,\n"," 7104,\n"," 8511,\n"," 6603,\n"," 27674,\n"," 7986,\n"," 27660],\n"," 688: [8833,\n"," 7327,\n"," 7206,\n"," 8722,\n"," 7386,\n"," 25995,\n"," 5356,\n"," 32153,\n"," 6429,\n"," 7844],\n"," 689: [8094, 6646, 6484, 7016, 7369, 6718, 6201, 6997, 5930, 7046],\n"," 693: [1950, 2100, 2460, 2726, 2188, 2187, 2453, 2847, 2849, 2328],\n"," 716: [39183,\n"," 26012,\n"," 39444,\n"," 27839,\n"," 40581,\n"," 31114,\n"," 26163,\n"," 8870,\n"," 46967,\n"," 41285],\n"," 720: [2134, 2586, 6356, 731, 485, 2084, 7033, 169, 290, 7095],\n"," 734: [1444, 5873, 1384, 1940, 6287, 1850, 5588, 6279, 1112, 6639],\n"," 735: [3303,\n"," 3831,\n"," 58295,\n"," 3168,\n"," 3964,\n"," 50153,\n"," 3578,\n"," 2889,\n"," 3729,\n"," 3618],\n"," 739: [3106, 3111, 3868, 3061, 4383, 3176, 3334, 3708, 1960, 2090],\n"," 755: [7067, 7134, 7142, 7150, 7157, 7160, 7161, 7165, 7126, 7166],\n"," 758: [2123, 952, 941, 1661, 1475, 947, 1087, 1094, 1134, 1633],\n"," 767: [1404, 905, 1535, 913, 916, 427, 923, 1417, 904, 926],\n"," 769: [1870, 1271, 1328, 1266, 1605, 1992, 2004, 2232, 2440, 1260],\n"," 786: [835, 888, 389, 1038, 1379, 423, 328, 419, 1194, 1280],\n"," 789: [3243, 2813, 3293, 3472, 1483, 3660, 3066, 3963, 2749, 3448],\n"," 792: [4809,\n"," 4063,\n"," 4003,\n"," 47970,\n"," 4661,\n"," 5034,\n"," 3998,\n"," 5388,\n"," 4262,\n"," 4780],\n"," 795: [330, 754, 6198, 809, 943, 1421, 5445, 2202, 5433, 5529],\n"," 798: [2751,\n"," 3399,\n"," 2721,\n"," 3893,\n"," 2635,\n"," 3161,\n"," 27266,\n"," 3365,\n"," 32017,\n"," 6626],\n"," 799: [4868, 5836, 4799, 4801, 4802, 4803, 5608, 5606, 4809, 4814],\n"," 802: [1303, 541, 1826, 4583, 5140, 5324, 118, 3439, 4077, 5421],\n"," 806: [5685, 5508, 4899, 4819, 5452, 5072, 6337, 6430, 4809, 4828],\n"," 807: [7027,\n"," 2191,\n"," 5927,\n"," 3635,\n"," 1496,\n"," 39292,\n"," 3272,\n"," 3181,\n"," 5770,\n"," 3600],\n"," 816: [2059, 1923, 1542, 1460, 1872, 1513, 1377, 1822, 2054, 1595],\n"," 827: [64716,\n"," 40339,\n"," 40614,\n"," 40732,\n"," 40946,\n"," 41285,\n"," 41571,\n"," 41617,\n"," 41831,\n"," 41997],\n"," 828: [1, 3, 3798, 4941, 4030, 4995, 59141, 6116, 3719, 5047],\n"," 846: [5109, 4467, 4533, 4475, 5310, 5054, 6197, 4441, 5643, 6093],\n"," 859: [26163,\n"," 33312,\n"," 8581,\n"," 33358,\n"," 8575,\n"," 8542,\n"," 8535,\n"," 8532,\n"," 8531,\n"," 8528],\n"," 862: [7227, 3145, 2627, 8698, 2691, 2621, 8970, 2932, 3287, 7147],\n"," 876: [64716,\n"," 40581,\n"," 40614,\n"," 40723,\n"," 40732,\n"," 40870,\n"," 40946,\n"," 40955,\n"," 41527,\n"," 41716],\n"," 881: [64716,\n"," 8991,\n"," 55290,\n"," 40870,\n"," 41585,\n"," 25766,\n"," 25769,\n"," 42007,\n"," 55094,\n"," 55063],\n"," 885: [5411,\n"," 5327,\n"," 1190,\n"," 2409,\n"," 5893,\n"," 5291,\n"," 6530,\n"," 6857,\n"," 5418,\n"," 32296],\n"," 886: [1841, 1649, 2643, 2538, 2345, 2208, 2471, 2078, 1826, 1940],\n"," 889: [54190,\n"," 58154,\n"," 54268,\n"," 53921,\n"," 55247,\n"," 52950,\n"," 60514,\n"," 52042,\n"," 56775,\n"," 52283],\n"," 890: [31705,\n"," 40581,\n"," 40574,\n"," 40412,\n"," 40278,\n"," 40148,\n"," 54004,\n"," 39715,\n"," 54259,\n"," 54268],\n"," 891: [5360, 57669, 34153, 144, 197, 391, 148, 1011, 54995, 688],\n"," 896: [4519, 4525, 5194, 4585, 5373, 6044, 7002, 4467, 4767, 5893],\n"," 897: [3556, 4383, 4928, 2340, 3050, 1080, 539, 239, 641, 597],\n"," 898: [7366,\n"," 8987,\n"," 7487,\n"," 8916,\n"," 7355,\n"," 34162,\n"," 7372,\n"," 27391,\n"," 7338,\n"," 8493],\n"," 908: [60069,\n"," 58998,\n"," 56915,\n"," 1042,\n"," 1731,\n"," 57464,\n"," 58492,\n"," 800,\n"," 57522,\n"," 55288],\n"," 922: [3102, 3246, 3453, 2910, 2905, 2806, 2648, 2576, 2993, 2823],\n"," 930: [59016,\n"," 58490,\n"," 54736,\n"," 54612,\n"," 54503,\n"," 54290,\n"," 58655,\n"," 54281,\n"," 58964,\n"," 58975],\n"," 938: [1625, 2328, 1375, 1437, 1336, 2037, 5334, 5416, 2219, 1342],\n"," 956: [6883, 6436, 8235, 7706, 6232, 7986, 7117, 6212, 7618, 6067],\n"," 958: [26870,\n"," 7389,\n"," 1484,\n"," 2446,\n"," 1574,\n"," 1881,\n"," 25777,\n"," 43560,\n"," 1493,\n"," 2078],\n"," 968: [4082, 4561, 4559, 4558, 4556, 4547, 4534, 4531, 4527, 4526],\n"," 977: [1272, 810, 496, 378, 579, 1093, 183, 269, 889, 994],\n"," 990: [2559, 4392, 3175, 2971, 3809, 4681, 3022, 4945, 3755, 4045],\n"," 996: [688, 96, 4443, 4285, 3706, 3768, 33, 4247, 5016, 649],\n"," 1004: [3343,\n"," 2857,\n"," 3770,\n"," 2788,\n"," 2775,\n"," 3285,\n"," 2794,\n"," 3491,\n"," 2799,\n"," 3104],\n"," 1005: [2678, 917, 910, 1422, 1663, 2075, 755, 1038, 1794, 1298],\n"," 1008: [44195,\n"," 52975,\n"," 56801,\n"," 53189,\n"," 49132,\n"," 56156,\n"," 56915,\n"," 33193,\n"," 51709,\n"," 30816],\n"," 1029: [6558,\n"," 7771,\n"," 6548,\n"," 4173,\n"," 26148,\n"," 26122,\n"," 3707,\n"," 4019,\n"," 59615,\n"," 46972],\n"," 1037: [2241,\n"," 2084,\n"," 2076,\n"," 2075,\n"," 2070,\n"," 2067,\n"," 2066,\n"," 2065,\n"," 2062,\n"," 2060],\n"," 1050: [5752,\n"," 4719,\n"," 5268,\n"," 4753,\n"," 6020,\n"," 5118,\n"," 5046,\n"," 5603,\n"," 5172,\n"," 6192],\n"," 4: [58246, 5875, 3105, 34338, 5398, 4990, 2392, 5298, 1144, 80],\n"," 8: [1769, 7697, 27873, 2048, 1707, 1747, 2420, 2507, 1897, 1924],\n"," 18: [1725, 2243, 1496, 1801, 1511, 1676, 1499, 1806, 1997, 1854],\n"," 36: [8010, 6540, 5852, 7349, 6305, 5215, 7000, 6785, 4428, 44193],\n"," 47: [1631, 996, 4127, 4405, 3316, 4646, 3453, 3371, 2841, 3797],\n"," 59: [7, 1136, 933, 203, 7448, 6626, 176, 6271, 7012, 364],\n"," 62: [5472, 354, 4381, 572, 5139, 4069, 4954, 702, 5307, 1581],\n"," 77: [3269, 2798, 6291, 2738, 5577, 3428, 6231, 5617, 3713, 6789],\n"," 79: [3729, 544, 3468, 4323, 3638, 3473, 3487, 411, 4510, 522],\n"," 80: [3936, 5382, 3250, 4788, 3190, 3402, 2778, 3654, 7201, 1609],\n"," 119: [56788,\n"," 8874,\n"," 49647,\n"," 8969,\n"," 26198,\n"," 3816,\n"," 8864,\n"," 52241,\n"," 33085,\n"," 47778],\n"," 122: [1298, 839, 764, 1427, 1723, 778, 1091, 757, 741, 1865],\n"," 125: [6254, 2009, 732, 6191, 2515, 8781, 1902, 1844, 7003, 1227],\n"," 126: [6886, 2809, 2459, 2421, 2606, 2382, 2390, 2971, 2867, 5081],\n"," 132: [2400, 7636, 3773, 6811, 1170, 6729, 3500, 2294, 2351, 2529],\n"," 141: [1318,\n"," 4307,\n"," 674,\n"," 1233,\n"," 33794,\n"," 45081,\n"," 54612,\n"," 58367,\n"," 1482,\n"," 8154],\n"," 154: [3103, 3917, 4447, 2649, 4267, 3463, 4217, 2953, 3247, 5092],\n"," 155: [515, 571, 1078, 1212, 509, 1234, 870, 1173, 674, 1533],\n"," 163: [8623, 5186, 8254, 4543, 5954, 7265, 3839, 6639, 8199, 7366],\n"," 164: [6235,\n"," 5706,\n"," 53894,\n"," 6813,\n"," 6129,\n"," 6252,\n"," 5823,\n"," 6486,\n"," 7151,\n"," 57243],\n"," 170: [4223, 585, 84, 921, 31427, 4781, 2917, 616, 678, 8535],\n"," 171: [3260,\n"," 3328,\n"," 1513,\n"," 25777,\n"," 897,\n"," 2749,\n"," 1217,\n"," 8740,\n"," 58105,\n"," 1499],\n"," 176: [1690, 1671, 2874, 7730, 1608, 180, 506, 314, 2755, 3308],\n"," 190: [1369, 599, 5974, 1887, 582, 3866, 3057, 181, 3943, 1893],\n"," 197: [49824,\n"," 53000,\n"," 5102,\n"," 58078,\n"," 5570,\n"," 5741,\n"," 31101,\n"," 52694,\n"," 5440,\n"," 4857],\n"," 198: [1497, 2107, 2104, 2097, 2091, 2090, 2088, 2087, 2108, 2083],\n"," 199: [93, 6210, 474, 200, 525, 7319, 7009, 8040, 2972, 2533],\n"," 212: [7222, 6410, 6423, 8404, 6371, 6392, 6951, 746, 5629, 4803],\n"," 221: [1547, 920, 46972, 26055, 97, 262, 507, 6, 2155, 138],\n"," 223: [6412, 2921, 3597, 6510, 5198, 4864, 5749, 968, 476, 6729],\n"," 226: [1096, 1586, 2275, 1699, 347, 2605, 2237, 1960, 1570, 1824],\n"," 241: [630, 1393, 920, 1918, 1264, 42011, 8529, 1673, 5636, 1653],\n"," 247: [1352, 581, 1875, 4370, 4422, 5454, 5305, 5152, 4889, 5603],\n"," 249: [4012,\n"," 4628,\n"," 4748,\n"," 4959,\n"," 4391,\n"," 2749,\n"," 4317,\n"," 5036,\n"," 42018,\n"," 26203],\n"," 254: [2440, 2328, 2908, 1079, 2406, 3114, 3189, 2253, 2399, 2527],\n"," 264: [3903, 2854, 3566, 3240, 3005, 3197, 2761, 2078, 2566, 6270],\n"," 273: [60753, 2015, 4527, 33669, 26, 3824, 3707, 31, 1224, 4721],\n"," 275: [6228, 4578, 5529, 2771, 4035, 2162, 3240, 2105, 3950, 2059],\n"," 276: [4265,\n"," 4512,\n"," 4504,\n"," 59729,\n"," 4065,\n"," 37731,\n"," 6713,\n"," 5425,\n"," 719,\n"," 7206],\n"," 293: [45852,\n"," 59900,\n"," 48560,\n"," 48416,\n"," 48385,\n"," 48326,\n"," 48319,\n"," 48262,\n"," 48142,\n"," 48043],\n"," 294: [137, 103, 102, 101, 204, 206, 96, 94, 208, 92],\n"," 295: [26, 614, 7035, 6221, 525, 216, 7161, 7418, 452, 474],\n"," 318: [2045, 1660, 909, 333, 893, 1703, 724, 563, 6374, 422],\n"," 321: [8188, 6965, 7349, 394, 5177, 8981, 8482, 6413, 5780, 873],\n"," 345: [6280, 8201, 5404, 4465, 8520, 6180, 6314, 7069, 6620, 6550],\n"," 346: [55830,\n"," 31000,\n"," 3025,\n"," 2893,\n"," 2436,\n"," 3289,\n"," 2849,\n"," 49772,\n"," 2456,\n"," 3048],\n"," 348: [5140, 6152, 8859, 4499, 6130, 213, 42718, 639, 1401, 7708],\n"," 349: [3667,\n"," 4350,\n"," 4895,\n"," 3531,\n"," 27912,\n"," 4167,\n"," 55276,\n"," 3938,\n"," 47997,\n"," 4534],\n"," 354: [831, 1172, 1425, 6890, 7068, 3961, 1216, 664, 1784, 6168],\n"," 359: [5480, 5387, 4085, 6213, 4979, 6714, 4711, 4396, 3947, 4102],\n"," 366: [8196,\n"," 31431,\n"," 32587,\n"," 8948,\n"," 52668,\n"," 8832,\n"," 26686,\n"," 45668,\n"," 51088,\n"," 43871],\n"," 369: [1895, 1814, 2296, 2346, 2643, 2868, 2849, 2398, 2024, 2130],\n"," 384: [561, 405, 886, 888, 889, 389, 896, 383, 897, 379],\n"," 390: [34536,\n"," 1249,\n"," 58347,\n"," 1395,\n"," 2238,\n"," 2208,\n"," 1747,\n"," 1969,\n"," 1255,\n"," 1266],\n"," 392: [4878, 4641, 5194, 4809, 4574, 4569, 4749, 4563, 4566, 5276],\n"," 403: [6380, 5588, 5496, 6300, 6811, 5971, 5501, 6525, 5483, 4826],\n"," 407: [6039, 6180, 6897, 6818, 6045, 4517, 7073, 5095, 5028, 6008],\n"," 414: [491, 2276, 2342, 3217, 574, 254, 3243, 735, 2283, 2791],\n"," 431: [56274,\n"," 40851,\n"," 37720,\n"," 37739,\n"," 62000,\n"," 55247,\n"," 36509,\n"," 37380,\n"," 49910,\n"," 58418],\n"," 454: [7380,\n"," 1620,\n"," 26152,\n"," 8228,\n"," 7562,\n"," 26082,\n"," 2273,\n"," 26696,\n"," 8011,\n"," 8970],\n"," 465: [39715,\n"," 3844,\n"," 3039,\n"," 33585,\n"," 3825,\n"," 3250,\n"," 43560,\n"," 4040,\n"," 47423,\n"," 39234],\n"," 481: [44929,\n"," 4835,\n"," 4765,\n"," 26269,\n"," 48982,\n"," 57243,\n"," 6346,\n"," 5449,\n"," 4941,\n"," 26375],\n"," 485: [4571, 3746, 5008, 2054, 1261, 5135, 3230, 2496, 799, 78],\n"," 503: [2472, 2929, 3060, 2407, 2884, 2728, 3340, 2413, 2396, 628],\n"," 513: [2301, 2337, 1772, 2066, 1671, 1976, 2229, 1913, 1723, 1450],\n"," 545: [2411, 2266, 1805, 1793, 2541, 1911, 1946, 2744, 2455, 2798],\n"," 552: [310, 3333, 2727, 4184, 4418, 229, 3271, 176, 3908, 3487],\n"," 554: [51931,\n"," 4067,\n"," 4964,\n"," 52579,\n"," 49793,\n"," 55269,\n"," 52604,\n"," 55363,\n"," 57532,\n"," 55805],\n"," 555: [4806, 5389, 4695, 5902, 5903, 5388, 5912, 5381, 5896, 5372],\n"," 561: [60649,\n"," 59725,\n"," 59727,\n"," 59729,\n"," 59795,\n"," 59333,\n"," 59315,\n"," 59306,\n"," 60069,\n"," 59141],\n"," 565: [6784,\n"," 7104,\n"," 3551,\n"," 5958,\n"," 8966,\n"," 26303,\n"," 7386,\n"," 6522,\n"," 2334,\n"," 3045],\n"," 591: [5817, 6880, 5936, 7396, 191, 6684, 5923, 7101, 7228, 6319],\n"," 617: [4059, 4349, 4043, 5352, 4888, 4131, 5462, 4509, 4296, 4226],\n"," 622: [1748, 1094, 1500, 2021, 1872, 1189, 2088, 3668, 2297, 3598],\n"," 623: [45668,\n"," 50802,\n"," 53123,\n"," 48304,\n"," 47997,\n"," 52458,\n"," 54513,\n"," 59615,\n"," 60514,\n"," 52462],\n"," 633: [297, 246, 765, 712, 316, 433, 234, 469, 428, 836],\n"," 636: [3981,\n"," 4705,\n"," 7166,\n"," 8910,\n"," 8782,\n"," 30898,\n"," 39052,\n"," 39715,\n"," 162,\n"," 8266],\n"," 638: [2242, 2920, 2429, 2480, 2255, 2396, 2245, 3394, 2517, 3104],\n"," 641: [5496, 4880, 5670, 5963, 5313, 5231, 5439, 5584, 4792, 4909],\n"," 646: [1232, 470, 1696, 2460, 1921, 1704, 2887, 2806, 1051, 2437],\n"," 654: [5120, 5459, 5391, 6743, 5398, 5768, 6239, 6812, 6777, 6448],\n"," 655: [1890, 2379, 876, 1336, 443, 2252, 1688, 452, 1421, 613],\n"," 658: [6786, 5783, 6754, 6645, 4090, 7019, 2827, 6212, 3618, 6794],\n"," 660: [8691, 7020, 111, 709, 536, 495, 279, 671, 632, 243],\n"," 661: [7844,\n"," 26558,\n"," 1723,\n"," 1654,\n"," 2154,\n"," 7697,\n"," 31026,\n"," 26052,\n"," 2338,\n"," 7624],\n"," 677: [3964, 4828, 2699, 3464, 3953, 3948, 4174, 4807, 4193, 5427],\n"," 714: [6352, 5264, 6714, 6184, 5431, 5272, 5367, 5147, 5733, 5840],\n"," 715: [494, 1147, 383, 1611, 116, 180, 362, 1296, 993, 405],\n"," 723: [2488, 1635, 2641, 2152, 1912, 1623, 2188, 2102, 1695, 1586],\n"," 731: [1145,\n"," 33615,\n"," 32019,\n"," 51931,\n"," 2323,\n"," 55363,\n"," 1096,\n"," 53956,\n"," 44761,\n"," 31923],\n"," 742: [34323,\n"," 53752,\n"," 33085,\n"," 53921,\n"," 32892,\n"," 32627,\n"," 53956,\n"," 32600,\n"," 32591,\n"," 32584],\n"," 743: [671, 674, 681, 691, 692, 694, 695, 664, 56145, 707],\n"," 752: [6385, 5448, 5051, 5504, 4787, 4803, 5703, 5630, 5090, 5078],\n"," 772: [4262, 3724, 4323, 3795, 4477, 4047, 1301, 4782, 1994, 3882],\n"," 814: [2952,\n"," 2962,\n"," 3707,\n"," 3022,\n"," 4166,\n"," 30822,\n"," 3249,\n"," 3605,\n"," 47644,\n"," 4193],\n"," 823: [5136, 5072, 5596, 5086, 5588, 4443, 5099, 4570, 4441, 5101],\n"," 826: [5664, 6777, 7454, 7215, 2204, 6748, 5867, 5927, 2374, 1609],\n"," 833: [38304,\n"," 8852,\n"," 33817,\n"," 34534,\n"," 49932,\n"," 8970,\n"," 44849,\n"," 44193,\n"," 54780,\n"," 26939],\n"," 838: [4844, 4128, 4676, 4618, 4728, 4210, 4229, 5377, 5289, 5074],\n"," 842: [332, 331, 330, 320, 318, 317, 315, 336, 314, 307],\n"," 852: [2535, 2026, 2024, 2023, 2022, 2015, 2009, 2029, 2008, 2002],\n"," 878: [24, 30, 42, 12, 9, 35, 43, 44, 5, 4],\n"," 887: [64716,\n"," 62801,\n"," 63113,\n"," 62803,\n"," 62394,\n"," 62293,\n"," 62344,\n"," 61323,\n"," 62113,\n"," 61361],\n"," 895: [1507, 2289, 2727, 6639, 5483, 7311, 6294, 1855, 2706, 2379],\n"," 899: [6251, 6810, 6408, 6530, 6920, 7570, 7153, 6342, 7226, 7326],\n"," 902: [2423, 2023, 55, 371, 2469, 3064, 3006, 108, 196, 337],\n"," 907: [3970, 7260, 4776, 4240, 7570, 8870, 5237, 3962, 5358, 7250],\n"," 928: [178, 41617, 602, 37475, 564, 759, 555, 42718, 324, 56176],\n"," 936: [4807, 4245, 5460, 4467, 5219, 5495, 5226, 4700, 4545, 4511],\n"," 964: [3593, 5603, 5527, 5784, 4033, 4094, 328, 512, 4816, 5202],\n"," 970: [5529, 6577, 4830, 6584, 4734, 6686, 7791, 5621, 5743, 4918],\n"," 972: [619, 1079, 1127, 5193, 1862, 3766, 1255, 2966, 4276, 4418],\n"," 1001: [5928,\n"," 6287,\n"," 6579,\n"," 6283,\n"," 6281,\n"," 7069,\n"," 6279,\n"," 7067,\n"," 7072,\n"," 7065],\n"," 1013: [3576,\n"," 3824,\n"," 4019,\n"," 4720,\n"," 4595,\n"," 3573,\n"," 3557,\n"," 4094,\n"," 4496,\n"," 4541],\n"," 1018: [3688,\n"," 3093,\n"," 1324,\n"," 3633,\n"," 3088,\n"," 3152,\n"," 3079,\n"," 3245,\n"," 1156,\n"," 3252],\n"," 1028: [1131, 568, 628, 1083, 563, 556, 728, 737, 1784, 889],\n"," 1031: [1873,\n"," 1855,\n"," 1858,\n"," 1866,\n"," 1867,\n"," 1872,\n"," 1875,\n"," 1878,\n"," 1879,\n"," 1882],\n"," 1035: [1623, 1476, 1135, 942, 1935, 1178, 1551, 1658, 1985, 5749],\n"," 1038: [4903,\n"," 4846,\n"," 5065,\n"," 4251,\n"," 4531,\n"," 5423,\n"," 4341,\n"," 4855,\n"," 4368,\n"," 5068],\n"," 1045: [177, 267, 32296, 7720, 8019, 38499, 8375, 26138, 237, 64],\n"," 1046: [4749,\n"," 7410,\n"," 6271,\n"," 5373,\n"," 6259,\n"," 5525,\n"," 5072,\n"," 5568,\n"," 5312,\n"," 5445],\n"," 35: [3342, 6370, 5448, 1357, 2141, 5521, 2643, 906, 7073, 6666],\n"," 72: [258, 508, 608, 131, 443, 504, 24, 537, 78, 531],\n"," 91: [3117, 455, 3056, 242, 2191, 4801, 2910, 501, 634, 2692],\n"," 106: [8464, 7065, 6466, 7247, 830, 7117, 6973, 2188, 8891, 7044],\n"," 128: [3217, 5147, 76, 790, 2533, 2212, 5092, 2550, 49822, 3062],\n"," 158: [3010,\n"," 3518,\n"," 3168,\n"," 2879,\n"," 3469,\n"," 3547,\n"," 3329,\n"," 3666,\n"," 55288,\n"," 3760],\n"," 160: [8633,\n"," 33838,\n"," 26425,\n"," 8810,\n"," 2599,\n"," 8865,\n"," 3221,\n"," 8405,\n"," 7116,\n"," 7841],\n"," 175: [58047,\n"," 34198,\n"," 51884,\n"," 3661,\n"," 4442,\n"," 39446,\n"," 6974,\n"," 7941,\n"," 4254,\n"," 6035],\n"," 196: [4405, 4475, 4624, 4338, 5272, 5896, 5039, 5787, 4389, 4981],\n"," 203: [6658, 6552, 7347, 3514, 926, 4063, 4204, 26138, 7263, 3921],\n"," 206: [4169, 3363, 2561, 389, 372, 2876, 2255, 2880, 911, 3122],\n"," 207: [2094,\n"," 43396,\n"," 2084,\n"," 2430,\n"," 1412,\n"," 1299,\n"," 1875,\n"," 2526,\n"," 2363,\n"," 2072],\n"," 255: [3970, 949, 2138, 4511, 25866, 2707, 7260, 1470, 4125, 4396],\n"," 265: [7036, 6785, 7334, 6899, 39, 7314, 7587, 6286, 7116, 6672],\n"," 340: [3091,\n"," 2479,\n"," 3574,\n"," 3067,\n"," 2938,\n"," 56367,\n"," 2460,\n"," 2606,\n"," 3095,\n"," 52973],\n"," 404: [4482, 2025, 3103, 3190, 5117, 4467, 4541, 4639, 4476, 3889],\n"," 433: [227, 280, 7179, 185, 340, 7450, 7300, 511, 34, 7991],\n"," 440: [712, 14, 1180, 5, 4, 1078, 239, 556, 32721, 59387],\n"," 444: [4082, 7318, 7316, 7311, 7310, 7308, 7307, 4142, 4144, 4146],\n"," 450: [1541, 1633, 2103, 2104, 1631, 1627, 2108, 2110, 2111, 2112],\n"," 479: [8959,\n"," 7030,\n"," 36537,\n"," 31770,\n"," 7334,\n"," 7706,\n"," 26303,\n"," 7293,\n"," 32598,\n"," 7566],\n"," 491: [8261, 7060, 6978, 27, 8042, 8526, 8784, 8712, 2561, 2875],\n"," 506: [51939,\n"," 55451,\n"," 5951,\n"," 59729,\n"," 36537,\n"," 7834,\n"," 39421,\n"," 50153,\n"," 31221,\n"," 55946],\n"," 523: [7045,\n"," 7573,\n"," 8930,\n"," 7891,\n"," 7440,\n"," 6800,\n"," 6770,\n"," 6615,\n"," 25923,\n"," 8643],\n"," 539: [7828,\n"," 33660,\n"," 5971,\n"," 7444,\n"," 7577,\n"," 6378,\n"," 51575,\n"," 7284,\n"," 5981,\n"," 6997],\n"," 541: [4182, 4612, 4611, 4602, 4600, 4599, 4598, 4595, 4591, 4589],\n"," 616: [2833, 4881, 2842, 5731, 2841, 5726, 2837, 4155, 5723, 3978],\n"," 647: [893, 1641, 2847, 982, 2120, 2130, 1645, 2856, 2509, 2168],\n"," 659: [2761, 2049, 1539, 1372, 1431, 1504, 2559, 3206, 1722, 914],\n"," 695: [52712,\n"," 47629,\n"," 56775,\n"," 42011,\n"," 60069,\n"," 42217,\n"," 47254,\n"," 47518,\n"," 45728,\n"," 53519],\n"," 700: [44022,\n"," 31270,\n"," 27741,\n"," 49772,\n"," 45442,\n"," 60286,\n"," 34048,\n"," 50685,\n"," 32179,\n"," 31225],\n"," 707: [7118,\n"," 8241,\n"," 7032,\n"," 8447,\n"," 8813,\n"," 7038,\n"," 7070,\n"," 2051,\n"," 34148,\n"," 1258],\n"," 748: [1951, 2394, 2353, 5244, 5852, 4964, 2514, 2114, 1881, 2021],\n"," 759: [2128, 2312, 2420, 2385, 2244, 2097, 1431, 1439, 2329, 1746],\n"," 784: [106, 3184, 3355, 3189, 3949, 3470, 3181, 3130, 3257, 3361],\n"," 790: [3734,\n"," 8825,\n"," 47099,\n"," 53894,\n"," 3128,\n"," 3870,\n"," 3689,\n"," 8798,\n"," 3569,\n"," 4062],\n"," 835: [50149,\n"," 48412,\n"," 42723,\n"," 48319,\n"," 46347,\n"," 27882,\n"," 57243,\n"," 56251,\n"," 7701,\n"," 30707],\n"," 844: [78, 76, 31705, 8636, 27, 245, 8951, 8957, 27660, 7983],\n"," 871: [808, 194, 3244, 3572, 2797, 3095, 2755, 3138, 2616, 3076],\n"," 875: [6020, 7445, 7451, 7456, 7459, 7461, 6405, 7484, 7489, 7560],\n"," 892: [1063, 426, 1525, 953, 918, 972, 4911, 1230, 869, 537],\n"," 919: [1525, 1585, 1535, 1970, 2306, 2536, 2095, 1929, 1431, 1363],\n"," 935: [6057, 6808, 6247, 6855, 5540, 5357, 5685, 6027, 5099, 6592],\n"," 942: [4021, 3559, 2892, 3464, 4033, 2786, 3739, 2752, 4038, 1888],\n"," 960: [5097, 5297, 4519, 5034, 4441, 5625, 4696, 4834, 4458, 4426],\n"," 1006: [4111,\n"," 3763,\n"," 56339,\n"," 4916,\n"," 4710,\n"," 44828,\n"," 4336,\n"," 44759,\n"," 4641,\n"," 3596],\n"," 1026: [5820,\n"," 4929,\n"," 5783,\n"," 5782,\n"," 5220,\n"," 5768,\n"," 5740,\n"," 5739,\n"," 5736,\n"," 5734],\n"," 1047: [8722,\n"," 8268,\n"," 7062,\n"," 7263,\n"," 6980,\n"," 6995,\n"," 6988,\n"," 31903,\n"," 33437,\n"," 8057],\n"," 65: [1565, 4936, 6711, 5539, 320, 2334, 7364, 5194, 4188, 5103],\n"," 135: [3168, 6179, 3105, 6816, 6896, 155, 3100, 6025, 35, 7072],\n"," 152: [535, 4959, 540, 818, 5479, 5483, 594, 762, 4317, 4994],\n"," 166: [1321,\n"," 34271,\n"," 6181,\n"," 44195,\n"," 2064,\n"," 1958,\n"," 5597,\n"," 3171,\n"," 1461,\n"," 48698],\n"," 179: [412, 904, 7620, 27834, 849, 347, 341, 1277, 33493, 26492],\n"," 188: [3649, 3013, 2404, 4152, 4092, 3780, 2523, 4506, 4299, 2298],\n"," 217: [8542,\n"," 32325,\n"," 7810,\n"," 8711,\n"," 8379,\n"," 7836,\n"," 49280,\n"," 26055,\n"," 8800,\n"," 40629],\n"," 253: [6042, 5966, 120, 8128, 8601, 2539, 5959, 1953, 7892, 7161],\n"," 262: [2925,\n"," 54272,\n"," 7895,\n"," 3726,\n"," 4034,\n"," 33880,\n"," 60074,\n"," 55729,\n"," 3125,\n"," 53322],\n"," 277: [4982, 3604, 2925, 1282, 4960, 4792, 1033, 4234, 1592, 1127],\n"," 289: [4535, 762, 4543, 3194, 3925, 1375, 3785, 1013, 3734, 1754],\n"," 300: [1641, 1156, 1087, 1804, 2062, 1092, 1400, 5011, 1081, 1592],\n"," 302: [4437,\n"," 58047,\n"," 57522,\n"," 4508,\n"," 59795,\n"," 57669,\n"," 7096,\n"," 5285,\n"," 5081,\n"," 57536],\n"," 308: [393, 101, 466, 270, 253, 302, 42, 191, 114, 8607],\n"," 311: [1136, 634, 568, 463, 22, 1264, 103, 1533, 930, 573],\n"," 328: [8607,\n"," 7172,\n"," 33681,\n"," 3767,\n"," 7292,\n"," 4356,\n"," 60943,\n"," 7254,\n"," 31594,\n"," 7704],\n"," 329: [3078, 2884, 3646, 3133, 4290, 3044, 2898, 3174, 4700, 2950],\n"," 344: [7386,\n"," 3876,\n"," 3939,\n"," 40962,\n"," 45183,\n"," 7572,\n"," 8576,\n"," 2985,\n"," 7585,\n"," 34532],\n"," 347: [266, 45028, 48774, 7293, 3479, 129, 2715, 3587, 140, 54736],\n"," 358: [6753, 6881, 362, 7934, 6660, 8722, 7365, 6867, 8943, 6631],\n"," 474: [1871,\n"," 60037,\n"," 2374,\n"," 6005,\n"," 55276,\n"," 3014,\n"," 4011,\n"," 7003,\n"," 6708,\n"," 6777],\n"," 483: [6567, 6077, 6322, 6067, 7284, 7587, 7585, 6909, 6062, 6323],\n"," 509: [3247, 4928, 3451, 3365, 3102, 3316, 2448, 3412, 5954, 2429],\n"," 578: [4143, 4541, 4695, 4433, 3928, 5294, 4733, 5014, 4613, 3980],\n"," 643: [319, 321, 136, 137, 317, 313, 144, 145, 146, 312],\n"," 679: [27834,\n"," 55063,\n"," 8207,\n"," 6653,\n"," 4390,\n"," 4570,\n"," 38798,\n"," 4583,\n"," 4873,\n"," 4849],\n"," 680: [4603, 4799, 1326, 5391, 4677, 4768, 4994, 231, 981, 240],\n"," 691: [2151,\n"," 1485,\n"," 49824,\n"," 59729,\n"," 1810,\n"," 1670,\n"," 58047,\n"," 2130,\n"," 54513,\n"," 45183],\n"," 702: [1236, 573, 517, 1145, 1388, 511, 474, 1715, 934, 1031],\n"," 708: [3677,\n"," 2876,\n"," 54290,\n"," 1673,\n"," 2423,\n"," 52287,\n"," 1983,\n"," 2365,\n"," 58299,\n"," 394],\n"," 730: [6124, 6378, 8195, 6858, 8392, 8275, 7587, 7831, 6918, 7284],\n"," 751: [1799, 2516, 2956, 1931, 2331, 2493, 1913, 2094, 2520, 5202],\n"," 773: [6856, 6568, 7191, 6567, 5765, 6561, 6558, 7177, 5743, 6554],\n"," 803: [1178, 1024, 1965, 1171, 2058, 2105, 2026, 1585, 1898, 1016],\n"," 809: [7454, 8641, 8640, 6795, 6794, 6793, 6791, 6789, 8623, 6784],\n"," 820: [46850,\n"," 8980,\n"," 33826,\n"," 30818,\n"," 39449,\n"," 33162,\n"," 46970,\n"," 32632,\n"," 42728,\n"," 48997],\n"," 824: [4082, 3646, 3643, 4208, 4210, 4211, 3639, 4215, 4216, 4218],\n"," 863: [5792, 4406, 5125, 5692, 4974, 4561, 4511, 4951, 4915, 5147],\n"," 865: [5327, 5404, 6223, 5638, 5317, 5580, 5996, 5680, 6315, 6078],\n"," 867: [3721, 4392, 4139, 3566, 3420, 4511, 4477, 4565, 3688, 3849],\n"," 911: [2042,\n"," 8833,\n"," 38886,\n"," 54513,\n"," 2560,\n"," 1895,\n"," 2535,\n"," 8426,\n"," 1912,\n"," 2406],\n"," 915: [8972,\n"," 7925,\n"," 7897,\n"," 7895,\n"," 8620,\n"," 7883,\n"," 6814,\n"," 7840,\n"," 26116,\n"," 7828],\n"," 939: [471, 920, 361, 1929, 1588, 1115, 1384, 2363, 1725, 1057],\n"," 946: [505, 1136, 691, 1439, 842, 1369, 668, 1263, 892, 1279],\n"," 954: [7088,\n"," 7585,\n"," 7061,\n"," 8973,\n"," 1878,\n"," 7118,\n"," 6867,\n"," 1194,\n"," 27831,\n"," 6932],\n"," 957: [3011, 7809, 2349, 7059, 8128, 2983, 2917, 3171, 2860, 8811],\n"," 971: [431, 372, 206, 200, 211, 719, 1333, 261, 550, 1242],\n"," 986: [8698, 6367, 8833, 7389, 7150, 6772, 6744, 7190, 6794, 7334],\n"," 992: [6396, 7368, 7063, 6296, 6238, 8860, 6659, 8712, 6279, 4030],\n"," 92: [1392, 1380, 1601, 34155, 7369, 1986, 1946, 1453, 1661, 1563],\n"," 107: [3037, 2517, 3214, 3502, 3060, 3390, 2826, 2734, 3132, 2815],\n"," 131: [8810,\n"," 32721,\n"," 2470,\n"," 6948,\n"," 6380,\n"," 6204,\n"," 2024,\n"," 6869,\n"," 8620,\n"," 1968],\n"," 138: [571, 493, 1343, 263, 538, 482, 353, 562, 132, 509],\n"," 145: [2318, 2768, 2723, 2889, 2250, 2259, 3535, 3414, 4220, 4754],\n"," 183: [47261,\n"," 48943,\n"," 56176,\n"," 27741,\n"," 7303,\n"," 59784,\n"," 55908,\n"," 45208,\n"," 50601,\n"," 50153],\n"," 209: [421, 270, 391, 881, 44, 282, 714, 779, 668, 414],\n"," 230: [1913, 1793, 781, 8799, 871, 848, 8961, 44759, 1528, 8724],\n"," 263: [559, 82, 366, 2860, 1653, 4149, 2140, 618, 387, 3341],\n"," 305: [702, 1191, 7916, 6116, 9, 6858, 7976, 6784, 1658, 6312],\n"," 314: [5808,\n"," 6987,\n"," 7937,\n"," 26122,\n"," 6678,\n"," 7980,\n"," 34520,\n"," 5987,\n"," 6213,\n"," 53004],\n"," 319: [42418,\n"," 57951,\n"," 53189,\n"," 39292,\n"," 36529,\n"," 39449,\n"," 59900,\n"," 2509,\n"," 51086,\n"," 55946],\n"," 325: [2040, 1358, 1958, 1249, 4559, 57, 2414, 2462, 3733, 1501],\n"," 341: [6385, 5669, 970, 4159, 4903, 5588, 5598, 5498, 4021, 4053],\n"," 471: [1156, 653, 582, 1276, 1550, 588, 943, 574, 1101, 563],\n"," 488: [5221, 6324, 6325, 6800, 6803, 5705, 6576, 6573, 6330, 5712],\n"," 495: [2752, 2701, 4865, 1953, 1658, 2176, 5574, 5202, 1936, 2300],\n"," 532: [1589, 1029, 1701, 898, 1219, 889, 1488, 870, 1246, 1525],\n"," 564: [230, 7191, 3905, 650, 148, 3, 89, 3241, 181, 3714],\n"," 574: [5618, 5802, 4987, 6540, 6116, 4912, 5013, 5097, 5341, 5346],\n"," 603: [54190,\n"," 7486,\n"," 31658,\n"," 1132,\n"," 486,\n"," 5611,\n"," 60649,\n"," 375,\n"," 1602,\n"," 48394],\n"," 674: [59103,\n"," 48879,\n"," 56885,\n"," 4853,\n"," 3985,\n"," 46850,\n"," 46972,\n"," 49649,\n"," 47202,\n"," 54999],\n"," 753: [41585,\n"," 55069,\n"," 56274,\n"," 43928,\n"," 52241,\n"," 52245,\n"," 55292,\n"," 48879,\n"," 60074,\n"," 40959],\n"," 810: [4082, 4615, 4610, 4603, 4598, 4589, 4588, 4582, 4572, 4571],\n"," 830: [2738, 2059, 4782, 3168, 2574, 2122, 2730, 2072, 4578, 5932],\n"," 841: [64716,\n"," 53988,\n"," 53956,\n"," 53921,\n"," 53752,\n"," 53466,\n"," 53464,\n"," 53189,\n"," 53125,\n"," 53121],\n"," 856: [4616, 4545, 4789, 5777, 5555, 5177, 4774, 5504, 5690, 4501],\n"," 921: [8700, 2871, 7581, 7362, 8620, 2150, 6687, 7001, 3910, 1668],\n"," 933: [510, 1171, 708, 421, 411, 1631, 452, 805, 217, 182],\n"," 976: [963, 1497, 1027, 1644, 1879, 1444, 1279, 1546, 957, 1575],\n"," 37: [4219,\n"," 3465,\n"," 3451,\n"," 45028,\n"," 4734,\n"," 8451,\n"," 3459,\n"," 3620,\n"," 4023,\n"," 46723],\n"," 83: [6460, 5506, 2387, 315, 383, 7177, 258, 793, 7166, 928],\n"," 248: [1064, 1610, 1058, 1252, 1211, 1051, 1218, 1563, 2240, 1125],\n"," 387: [5453, 5106, 6152, 4306, 5109, 5392, 3786, 110, 3720, 33830],\n"," 428: [818, 94, 2624, 3219, 3040, 3083, 1262, 2765, 2071, 1276],\n"," 451: [3371, 3717, 3721, 3081, 3726, 3727, 3079, 3077, 3076, 3730],\n"," 584: [885, 252, 202, 1057, 854, 754, 153, 1326, 710, 1302],\n"," 874: [2761, 3184, 3504, 2734, 2593, 2780, 2530, 3725, 3672, 2524],\n"," 995: [3263, 3538, 4017, 3255, 3854, 4426, 3333, 4531, 4009, 3698],\n"," 10: [56286, 31225, 291, 1087, 27410, 606, 8973, 5841, 5525, 6796],\n"," 19: [3667, 3714, 6193, 3873, 6060, 6044, 6932, 747, 848, 3181],\n"," 41: [7092, 7324, 6624, 7697, 8367, 8724, 7419, 6522, 666, 7234],\n"," 43: [5768, 6957, 484, 1246, 2454, 2476, 7880, 1722, 1804, 2261],\n"," 44: [2261, 2431, 2518, 2863, 4845, 5666, 2669, 2259, 2655, 2787],\n"," 45: [53129,\n"," 42217,\n"," 38304,\n"," 59795,\n"," 55908,\n"," 59729,\n"," 36527,\n"," 62344,\n"," 25,\n"," 5],\n"," 51: [6510, 7204, 6378, 7142, 55080, 7067, 7418, 6725, 8712, 6486],\n"," 56: [1161, 503, 1305, 2882, 382, 4109, 222, 4095, 3872, 3978],\n"," 61: [5, 32460, 59014, 703, 50601, 3645, 2415, 3134, 1187, 36527],\n"," 68: [6669, 5506, 2057, 2150, 2455, 7340, 2016, 2398, 2739, 2284],\n"," 69: [4532, 6077, 4614, 5312, 5428, 5941, 4518, 4487, 5231, 6098],\n"," 78: [5483, 4798, 4799, 4613, 4800, 4801, 4610, 4803, 4602, 4806],\n"," 110: [2626, 2112, 2302, 2253, 2117, 2106, 2263, 3224, 2577, 2169],\n"," 115: [2802, 3585, 3693, 3926, 3016, 4063, 6764, 1112, 358, 5737],\n"," 129: [6764, 6858, 1096, 2877, 1191, 6773, 7562, 7743, 1874, 2371],\n"," 150: [1457, 1113, 1620, 1110, 1623, 1627, 1633, 1639, 1646, 1654],\n"," 168: [3359,\n"," 6311,\n"," 40966,\n"," 26002,\n"," 2271,\n"," 2833,\n"," 2879,\n"," 4710,\n"," 27255,\n"," 5279],\n"," 169: [4310,\n"," 2531,\n"," 2992,\n"," 3789,\n"," 4251,\n"," 53988,\n"," 113,\n"," 497,\n"," 60286,\n"," 55094],\n"," 178: [6944,\n"," 4417,\n"," 33826,\n"," 56805,\n"," 5763,\n"," 3719,\n"," 5684,\n"," 3594,\n"," 4300,\n"," 5111],\n"," 186: [313, 8967, 1598, 851, 2248, 8874, 7327, 7451, 26840, 27523],\n"," 201: [298, 852, 592, 289, 1129, 273, 272, 266, 881, 885],\n"," 239: [60, 2758, 2747, 252, 3241, 3289, 2810, 3446, 3726, 174],\n"," 256: [3614, 1132, 3745, 5457, 1400, 564, 1750, 2503, 3217, 574],\n"," 257: [1054, 2083, 1702, 1475, 458, 971, 1534, 945, 2118, 852],\n"," 272: [4063,\n"," 26242,\n"," 2793,\n"," 3399,\n"," 47970,\n"," 5446,\n"," 2181,\n"," 3618,\n"," 3459,\n"," 2125],\n"," 279: [697, 101, 5103, 8659, 7009, 5214, 7123, 36517, 6988, 25996],\n"," 280: [46972, 7827, 31223, 186, 27618, 6744, 5729, 129, 69, 47778],\n"," 285: [5688,\n"," 6708,\n"," 7757,\n"," 30825,\n"," 7377,\n"," 46965,\n"," 7366,\n"," 25753,\n"," 5843,\n"," 5531],\n"," 298: [5966,\n"," 41527,\n"," 5339,\n"," 4404,\n"," 189,\n"," 55292,\n"," 8796,\n"," 33781,\n"," 40412,\n"," 5349],\n"," 301: [3915, 3605, 2695, 3313, 3688, 3807, 3083, 2709, 3426, 3028],\n"," 304: [5503,\n"," 6230,\n"," 43919,\n"," 46335,\n"," 260,\n"," 5438,\n"," 107,\n"," 6410,\n"," 60069,\n"," 6057],\n"," 333: [2755, 6226, 2144, 7352, 179, 292, 2042, 8831, 3200, 633],\n"," 334: [4486,\n"," 59016,\n"," 32584,\n"," 3781,\n"," 8667,\n"," 4299,\n"," 3667,\n"," 5033,\n"," 3135,\n"," 6855],\n"," 338: [8042,\n"," 41571,\n"," 8019,\n"," 7396,\n"," 37240,\n"," 44397,\n"," 32011,\n"," 32591,\n"," 7385,\n"," 33826],\n"," 350: [7440,\n"," 27391,\n"," 1454,\n"," 2241,\n"," 44022,\n"," 7234,\n"," 4077,\n"," 27523,\n"," 32019,\n"," 8375],\n"," 353: [3251, 2779, 4041, 4789, 1428, 4543, 2864, 2208, 5410, 3095],\n"," 378: [7111,\n"," 8861,\n"," 31026,\n"," 4563,\n"," 6970,\n"," 3861,\n"," 5454,\n"," 33896,\n"," 5431,\n"," 5346],\n"," 386: [7340, 8609, 6545, 7003, 8605, 8602, 8596, 8589, 6408, 6409],\n"," 397: [5569, 3334, 5841, 6582, 5966, 6784, 6062, 6550, 5808, 3272],\n"," 420: [2255, 2802, 2800, 2798, 2793, 2792, 2791, 2785, 2784, 2780],\n"," 439: [3275,\n"," 3287,\n"," 3872,\n"," 3360,\n"," 41025,\n"," 45720,\n"," 4005,\n"," 4560,\n"," 46965,\n"," 26005],\n"," 449: [6416, 844, 7054, 7372, 6668, 6750, 1463, 714, 6970, 6296],\n"," 478: [4719, 435, 5681, 907, 6378, 912, 2247, 2827, 3066, 843],\n"," 487: [2462, 2552, 3073, 2554, 2555, 3074, 3075, 2562, 2565, 2566],\n"," 489: [1650, 1797, 2847, 2204, 2407, 2752, 32291, 394, 8261, 2858],\n"," 500: [7980,\n"," 6872,\n"," 7831,\n"," 8239,\n"," 8959,\n"," 27005,\n"," 31617,\n"," 8576,\n"," 7086,\n"," 7454],\n"," 510: [48560, 51709, 47999, 361, 1151, 904, 1012, 52668, 268, 716],\n"," 521: [30894,\n"," 40574,\n"," 40614,\n"," 25923,\n"," 40723,\n"," 40819,\n"," 40851,\n"," 25777,\n"," 25752,\n"," 25993],\n"," 522: [464, 154, 347, 546, 378, 460, 411, 550, 7062, 136],\n"," 527: [83, 727, 268, 1099, 2898, 2749, 735, 153, 50, 135],\n"," 529: [4426,\n"," 3683,\n"," 4355,\n"," 4266,\n"," 36509,\n"," 4990,\n"," 3949,\n"," 8040,\n"," 4939,\n"," 5186],\n"," 535: [61, 472, 4510, 8984, 7157, 30803, 178, 5954, 6603, 46],\n"," 550: [64716,\n"," 48516,\n"," 48518,\n"," 48696,\n"," 48741,\n"," 48783,\n"," 49220,\n"," 48416,\n"," 49647,\n"," 50068],\n"," 560: [5872,\n"," 7300,\n"," 48997,\n"," 5820,\n"," 7442,\n"," 7119,\n"," 6803,\n"," 7450,\n"," 53129,\n"," 7381],\n"," 573: [8532,\n"," 3047,\n"," 39234,\n"," 33358,\n"," 40581,\n"," 8985,\n"," 8743,\n"," 46335,\n"," 34520,\n"," 55288],\n"," 579: [4915, 5013, 5015, 4420, 5021, 5023, 5025, 4418, 5028, 4417],\n"," 582: [4354, 4433, 4994, 5169, 4361, 4947, 4333, 5820, 5506, 4520],\n"," 583: [4025, 3527, 3462, 4186, 4487, 3807, 3467, 3982, 3453, 3440],\n"," 587: [3930, 4636, 2665, 2549, 3793, 3694, 3289, 2560, 2841, 2921],\n"," 596: [5313, 5902, 5970, 6196, 5219, 6590, 6679, 5464, 5637, 5189],\n"," 602: [129, 152, 969, 552, 510, 65, 1183, 972, 172, 703],\n"," 618: [905, 7001, 1427, 1501, 6166, 809, 1400, 742, 7771, 1931],\n"," 624: [3659, 316, 3534, 3678, 3623, 4091, 3447, 3289, 3821, 3639],\n"," 627: [2073, 5541, 7179, 5469, 6264, 2186, 5411, 1321, 2378, 3435],\n"," 635: [52885,\n"," 31026,\n"," 49647,\n"," 52042,\n"," 47830,\n"," 57669,\n"," 27706,\n"," 6482,\n"," 4795,\n"," 42632],\n"," 639: [1948, 1991, 1394, 2106, 1389, 1382, 1614, 2506, 2081, 2565],\n"," 640: [1923, 2506, 1862, 1784, 2946, 1994, 1999, 1857, 2770, 2034],\n"," 642: [55830,\n"," 47099,\n"," 46970,\n"," 46948,\n"," 46572,\n"," 46335,\n"," 46322,\n"," 47202,\n"," 45950,\n"," 45880],\n"," 649: [5731, 7416, 6219, 5902, 6221, 5909, 5912, 7439, 6379, 7440],\n"," 652: [9, 420, 150, 358, 397, 218, 248, 373, 6858, 29],\n"," 662: [762, 1508, 6210, 62113, 7325, 2017, 6813, 2012, 6582, 1615],\n"," 671: [4483, 4772, 4690, 5048, 5882, 4699, 5445, 5970, 5637, 5935],\n"," 675: [78, 197, 359, 35, 137, 554, 628, 432, 103, 634],\n"," 684: [5517, 5385, 6188, 7163, 6204, 7076, 7088, 5705, 7019, 5690],\n"," 703: [7620,\n"," 6567,\n"," 6356,\n"," 7178,\n"," 25752,\n"," 4949,\n"," 5651,\n"," 5446,\n"," 7614,\n"," 4142],\n"," 712: [1017, 2634, 2175, 2118, 2123, 885, 1024, 1161, 1554, 1928],\n"," 726: [3539, 3512, 2819, 2876, 3420, 3998, 2767, 4021, 2956, 3622],\n"," 727: [49649,\n"," 48698,\n"," 8782,\n"," 8789,\n"," 48856,\n"," 48879,\n"," 48943,\n"," 8807,\n"," 49132,\n"," 49220],\n"," 744: [177, 36, 39, 40, 47, 182, 179, 53, 55, 61],\n"," 746: [27801,\n"," 31116,\n"," 48043,\n"," 52375,\n"," 27816,\n"," 46322,\n"," 27674,\n"," 60649,\n"," 32584,\n"," 49932],\n"," 761: [1059, 1587, 496, 558, 1444, 766, 1220, 1372, 1016, 580],\n"," 765: [7459, 6493, 8740, 6303, 8949, 7194, 7308, 8014, 6367, 6902],\n"," 766: [36537,\n"," 35957,\n"," 45074,\n"," 55820,\n"," 40278,\n"," 54780,\n"," 46972,\n"," 36525,\n"," 36509,\n"," 43936],\n"," 771: [865, 1002, 1565, 2041, 4720, 4880, 5289, 4958, 1783, 1042],\n"," 776: [51903,\n"," 1821,\n"," 2630,\n"," 1831,\n"," 1739,\n"," 2479,\n"," 58490,\n"," 49649,\n"," 2340,\n"," 2597],\n"," 797: [5025, 5410, 6448, 6378, 1655, 6244, 5034, 5943, 5256, 5349],\n"," 812: [26491,\n"," 26375,\n"," 3095,\n"," 2917,\n"," 45074,\n"," 3036,\n"," 3224,\n"," 2297,\n"," 3217,\n"," 2552],\n"," 815: [5636, 5502, 5882, 5434, 4812, 1629, 994, 5603, 5127, 6320],\n"," 818: [858, 1606, 4098, 8970, 3730, 3287, 2093, 48698, 967, 1585],\n"," 821: [25777,\n"," 48322,\n"," 59037,\n"," 27731,\n"," 31553,\n"," 56152,\n"," 25750,\n"," 27773,\n"," 25764,\n"," 34336],\n"," 822: [2215, 2034, 2040, 2042, 2043, 2046, 2048, 2052, 2054, 2058],\n"," 831: [53550,\n"," 34520,\n"," 33237,\n"," 57522,\n"," 46530,\n"," 33499,\n"," 33154,\n"," 52245,\n"," 32598,\n"," 34323],\n"," 834: [1938, 1131, 2367, 1247, 1827, 1688, 1171, 1914, 2310, 1379],\n"," 837: [7178,\n"," 7791,\n"," 7713,\n"," 6807,\n"," 7255,\n"," 6093,\n"," 5516,\n"," 8872,\n"," 26285,\n"," 6565],\n"," 839: [1959,\n"," 2664,\n"," 34538,\n"," 43744,\n"," 42197,\n"," 5400,\n"," 8740,\n"," 3101,\n"," 8894,\n"," 4463],\n"," 840: [2380, 2513, 2385, 2612, 3046, 2377, 2434, 2335, 2518, 3543],\n"," 851: [302, 647, 300, 298, 297, 295, 663, 664, 289, 303],\n"," 855: [5358, 5670, 5596, 1173, 6977, 6010, 1245, 950, 5601, 1096],\n"," 857: [30894,\n"," 52712,\n"," 47644,\n"," 51935,\n"," 49347,\n"," 45672,\n"," 39419,\n"," 60040,\n"," 26713,\n"," 57536],\n"," 868: [6218, 1426, 1425, 1422, 6038, 6035, 1416, 1413, 1412, 1411],\n"," 904: [3436, 2781, 3197, 3034, 3616, 3253, 2671, 2979, 2702, 3324],\n"," 905: [563,\n"," 5318,\n"," 61361,\n"," 4386,\n"," 59404,\n"," 58299,\n"," 59501,\n"," 58418,\n"," 59615,\n"," 174],\n"," 906: [30820,\n"," 48997,\n"," 47810,\n"," 27912,\n"," 31687,\n"," 33646,\n"," 33681,\n"," 49647,\n"," 40278,\n"," 45732],\n"," 924: [7617, 6564, 6794, 8796, 7256, 6774, 8125, 6550, 6452, 7326],\n"," 925: [6006,\n"," 6229,\n"," 5949,\n"," 5351,\n"," 48744,\n"," 56251,\n"," 3214,\n"," 39231,\n"," 5556,\n"," 5959],\n"," 927: [378, 4661, 4974, 4896, 6157, 5291, 4901, 5662, 6232, 6196],\n"," 940: [2818, 2453, 2708, 2706, 2456, 2462, 3052, 3050, 3064, 2693],\n"," 948: [5762, 5110, 5968, 5682, 5358, 5323, 5023, 6750, 6650, 5026],\n"," 953: [338, 329, 326, 324, 322, 320, 316, 312, 300, 297],\n"," 966: [595, 5036, 582, 834, 6331, 1180, 4388, 5460, 5852, 5231],\n"," 967: [52283,\n"," 47970,\n"," 27731,\n"," 52975,\n"," 49822,\n"," 58047,\n"," 31086,\n"," 39886,\n"," 60514,\n"," 42728],\n"," 979: [2408, 4876, 2669, 280, 442, 6265, 753, 5734, 501, 5250],\n"," 980: [5955, 6233, 6013, 5357, 5269, 6659, 5593, 1583, 6522, 3252],\n"," 983: [382, 862, 565, 2686, 769, 249, 504, 795, 228, 71],\n"," 984: [1551, 2480, 1370, 2424, 1517, 1814, 1296, 1914, 2023, 1863],\n"," 991: [2941, 3452, 3399, 3514, 3624, 4030, 2875, 2863, 4098, 3269],\n"," 1009: [8360,\n"," 6872,\n"," 7762,\n"," 6783,\n"," 32300,\n"," 8932,\n"," 26614,\n"," 6776,\n"," 32598,\n"," 37857],\n"," 1011: [4090, 4835, 4167, 2252, 4297, 3969, 4219, 5453, 4635, 234],\n"," 1014: [49, 236, 59985, 6984, 6477, 34338, 6331, 8366, 6947, 8593],\n"," 1021: [145, 549, 461, 55286, 58655, 117, 278, 38, 227, 538],\n"," 1030: [59016,\n"," 44022,\n"," 49278,\n"," 58025,\n"," 8998,\n"," 57532,\n"," 40959,\n"," 48560,\n"," 50005,\n"," 40955],\n"," 1033: [5630,\n"," 5544,\n"," 6315,\n"," 5496,\n"," 5318,\n"," 5308,\n"," 5832,\n"," 5634,\n"," 6643,\n"," 6281],\n"," 1039: [4090,\n"," 5600,\n"," 3956,\n"," 5633,\n"," 3612,\n"," 4123,\n"," 4409,\n"," 3313,\n"," 3906,\n"," 3624],\n"," 1040: [43460,\n"," 52042,\n"," 52644,\n"," 50872,\n"," 42730,\n"," 46572,\n"," 60037,\n"," 46530,\n"," 54094,\n"," 54268],\n"," 1053: [4035,\n"," 4392,\n"," 4294,\n"," 4221,\n"," 4442,\n"," 3870,\n"," 3691,\n"," 4437,\n"," 3861,\n"," 4082],\n"," 704: [4426, 3894, 3822, 3975, 3812, 3983, 4127, 5177, 4442, 4084],\n"," 934: [30793,\n"," 27611,\n"," 42725,\n"," 8933,\n"," 59014,\n"," 53322,\n"," 39231,\n"," 55250,\n"," 48385,\n"," 57669],\n"," 42: [36708, 5225, 1861, 1902, 2130, 6311, 3206, 2812, 1984, 4634],\n"," 73: [53460,\n"," 6223,\n"," 46322,\n"," 3024,\n"," 3514,\n"," 2375,\n"," 5808,\n"," 2892,\n"," 2477,\n"," 6684],\n"," 82: [1590, 1397, 1348, 3614, 1262, 1255, 1257, 2050, 1358, 2261],\n"," 159: [3100, 2291, 2841, 2285, 2835, 2282, 2279, 2824, 2276, 2819],\n"," 161: [4453,\n"," 4299,\n"," 54281,\n"," 5433,\n"," 5341,\n"," 5373,\n"," 56333,\n"," 4186,\n"," 4806,\n"," 4148],\n"," 192: [2899, 3511, 2006, 2498, 2130, 1686, 2964, 3092, 2765, 3239],\n"," 216: [58, 766, 3087, 2967, 3174, 3467, 1076, 3374, 3486, 2768],\n"," 219: [34405,\n"," 144,\n"," 741,\n"," 38886,\n"," 8040,\n"," 1867,\n"," 55269,\n"," 7059,\n"," 8783,\n"," 1326],\n"," 290: [1167, 1172, 1914, 1104, 2345, 1224, 1356, 1721, 6448, 170],\n"," 379: [32591,\n"," 46965,\n"," 49910,\n"," 31026,\n"," 8753,\n"," 39419,\n"," 7714,\n"," 7844,\n"," 8119,\n"," 37727],\n"," 389: [569, 1667, 248, 882, 298, 283, 418, 275, 480, 7088],\n"," 400: [6593,\n"," 5618,\n"," 4650,\n"," 4272,\n"," 5380,\n"," 53189,\n"," 4023,\n"," 4735,\n"," 4599,\n"," 4823],\n"," 462: [4521, 4463, 4614, 5036, 5099, 5962, 4787, 4621, 182, 5325],\n"," 507: [209, 3497, 268, 2836, 226, 146, 277, 278, 11, 208],\n"," 600: [53464,\n"," 4188,\n"," 4265,\n"," 5347,\n"," 4770,\n"," 4373,\n"," 5303,\n"," 4167,\n"," 4995,\n"," 4830],\n"," 721: [3122, 2406, 3632, 4021, 3037, 3303, 4544, 2768, 4988, 3838],\n"," 793: [165, 2791, 46, 5, 187, 5553, 5826, 5646, 5749, 5363],\n"," 912: [27831,\n"," 55063,\n"," 55052,\n"," 6624,\n"," 6615,\n"," 6603,\n"," 6593,\n"," 6586,\n"," 54999,\n"," 6581],\n"," 932: [59985,\n"," 43871,\n"," 53953,\n"," 46572,\n"," 55820,\n"," 44974,\n"," 53972,\n"," 55999,\n"," 55765,\n"," 55687],\n"," 949: [1352, 489, 484, 483, 482, 481, 477, 473, 472, 471],\n"," 1025: [96, 477, 528, 2778, 2717, 2891, 2562, 460, 98, 255],\n"," 46: [42, 7781, 7132, 6777, 189, 7226, 449, 6409, 6909, 33672],\n"," 74: [259, 4847, 4103, 34150, 7349, 8661, 26122, 4, 32387, 8485],\n"," 342: [8941, 4547, 4533, 4776, 5236, 5137, 4615, 4541, 4846, 5854],\n"," 508: [56885, 1416, 801, 1928, 43558, 1840, 1945, 662, 1583, 8874],\n"," 580: [2207, 2928, 4237, 3430, 2937, 3420, 2500, 3412, 3181, 2800],\n"," 774: [921, 1262, 1022, 1080, 1750, 987, 1326, 1580, 1501, 1629],\n"," 783: [3289, 2982, 3040, 2860, 2797, 2791, 2802, 2935, 2794, 3351],\n"," 1002: [937, 1060, 1447, 1686, 1324, 1831, 1611, 1027, 769, 1190],\n"," 1023: [2019,\n"," 1976,\n"," 1493,\n"," 2135,\n"," 1413,\n"," 60943,\n"," 176,\n"," 45431,\n"," 177,\n"," 1517],\n"," 1048: [1767,\n"," 2185,\n"," 6663,\n"," 6554,\n"," 2827,\n"," 7032,\n"," 7485,\n"," 2839,\n"," 3629,\n"," 4111],\n"," 23: [7376, 230, 1683, 7299, 2551, 6506, 1422, 4783, 2126, 965],\n"," 96: [67, 44, 213, 473, 4241, 5131, 488, 4705, 60147, 5762],\n"," 124: [7616,\n"," 47952,\n"," 8957,\n"," 2792,\n"," 2787,\n"," 2847,\n"," 2548,\n"," 3988,\n"," 1575,\n"," 3741],\n"," 136: [6764, 8459, 8426, 8378, 8376, 7062, 7063, 8368, 8363, 7069],\n"," 148: [1993, 1459, 1391, 4676, 2108, 3962, 2364, 1755, 1396, 1950],\n"," 189: [4367, 4801, 3945, 6535, 5418, 5404, 26903, 3972, 4998, 985],\n"," 213: [77, 798, 1260, 2053, 2476, 1251, 3225, 3745, 4570, 2606],\n"," 243: [452, 1190, 520, 521, 1189, 523, 526, 527, 1186, 529],\n"," 323: [1044, 483, 496, 445, 1426, 1357, 1669, 1184, 2886, 1105],\n"," 352: [3665, 2669, 2289, 3004, 4768, 4798, 3862, 4521, 4139, 4727],\n"," 429: [2894,\n"," 3698,\n"," 1192,\n"," 491,\n"," 2303,\n"," 1054,\n"," 32598,\n"," 1438,\n"," 42723,\n"," 32721],\n"," 625: [2946, 2801, 2802, 2807, 2808, 2809, 2817, 2827, 2828, 2830],\n"," 808: [33679,\n"," 46965,\n"," 8939,\n"," 46970,\n"," 8932,\n"," 8928,\n"," 4333,\n"," 30894,\n"," 8941,\n"," 47200],\n"," 843: [1731, 1610, 1608, 1605, 1597, 1595, 1591, 1611, 1590, 2073],\n"," 847: [1094, 1237, 1086, 5194, 1335, 2170, 2029, 1245, 1824, 2094],\n"," 963: [59387,\n"," 3334,\n"," 27822,\n"," 5299,\n"," 39446,\n"," 38388,\n"," 3639,\n"," 33138,\n"," 45722,\n"," 8700],\n"," 975: [5875, 5872, 5890, 6261, 5973, 6663, 6975, 7570, 6744, 6582],\n"," 998: [2567, 2065, 2700, 2115, 2528, 2520, 2264, 2051, 3083, 2702],\n"," 75: [6338,\n"," 7915,\n"," 59306,\n"," 7149,\n"," 7564,\n"," 59421,\n"," 6568,\n"," 1213,\n"," 7368,\n"," 6988],\n"," 427: [5650, 5445, 6319, 267, 6352, 4745, 4754, 378, 5472, 7619],\n"," 466: [3469, 4276, 2499, 3210, 2972, 2898, 2511, 2769, 4821, 2252],\n"," 801: [40, 122, 175, 82, 180, 85, 6, 6303, 49278, 165],\n"," 848: [4787, 3727, 3070, 2790, 3035, 2861, 3932, 2965, 2733, 3262],\n"," 888: [1004, 427, 1010, 421, 417, 408, 397, 393, 382, 380],\n"," 191: [2385,\n"," 1028,\n"," 2987,\n"," 1827,\n"," 3479,\n"," 2275,\n"," 2402,\n"," 2264,\n"," 54290,\n"," 3002],\n"," 227: [2568, 2195, 3016, 2183, 2973, 2711, 2826, 2187, 2701, 2925],\n"," 245: [3555, 4129, 3721, 3628, 3544, 3550, 4308, 3714, 4067, 4654],\n"," 380: [1593, 840, 2080, 2089, 1233, 4080, 3329, 4573, 3408, 2801],\n"," 408: [1081, 1824, 1143, 1624, 4268, 2154, 3457, 1359, 2382, 2983],\n"," 668: [44657,\n"," 8698,\n"," 58655,\n"," 61361,\n"," 3962,\n"," 58998,\n"," 3145,\n"," 4484,\n"," 59333,\n"," 27721],\n"," 747: [171, 176, 118, 175, 100, 7, 2881, 3544, 3142, 3846],\n"," 754: [485, 222, 63, 258, 250, 34, 105, 480, 278, 206],\n"," 11: [27790,\n"," 7316,\n"," 5069,\n"," 45183,\n"," 2758,\n"," 3683,\n"," 4750,\n"," 4868,\n"," 5453,\n"," 3399],\n"," 16: [8620,\n"," 1921,\n"," 56251,\n"," 1396,\n"," 31435,\n"," 1937,\n"," 41573,\n"," 54256,\n"," 26172,\n"," 633],\n"," 81: [6001, 8228, 6889, 8336, 3857, 7925, 6812, 7102, 7352, 6017],\n"," 86: [45635,\n"," 55805,\n"," 42734,\n"," 59315,\n"," 43836,\n"," 2273,\n"," 41585,\n"," 1212,\n"," 1305,\n"," 1432],\n"," 97: [2867, 2265, 4705, 5670, 2133, 3627, 4650, 6366, 25788, 1436],\n"," 151: [692, 8643, 4642, 1641, 3940, 852, 1432, 1092, 1739, 8520],\n"," 235: [2863,\n"," 5095,\n"," 3108,\n"," 2387,\n"," 2376,\n"," 2907,\n"," 3061,\n"," 56176,\n"," 31193,\n"," 2630],\n"," 251: [3502, 4447, 3853, 4069, 3572, 3507, 4228, 4148, 3496, 4527],\n"," 258: [148, 2721, 2788, 281, 1197, 1302, 351, 1012, 240, 1214],\n"," 278: [2037, 2751, 3196, 228, 27728, 365, 53956, 31923, 521, 81],\n"," 388: [5424,\n"," 4213,\n"," 50005,\n"," 54881,\n"," 5135,\n"," 49772,\n"," 52279,\n"," 53468,\n"," 54736,\n"," 8365],\n"," 551: [1, 159, 161, 166, 169, 176, 178, 328, 183, 355],\n"," 606: [918, 1128, 1129, 582, 590, 1136, 1143, 1145, 1127, 1147],\n"," 614: [2032, 2165, 2026, 2977, 2300, 2549, 2263, 2155, 2023, 2532],\n"," 681: [3055,\n"," 3864,\n"," 179,\n"," 31660,\n"," 60147,\n"," 33237,\n"," 34336,\n"," 56152,\n"," 39400,\n"," 43926],\n"," 686: [826, 4599, 2962, 486, 4239, 4139, 411, 2248, 791, 4565],\n"," 711: [4300, 4713, 4433, 4498, 4799, 5312, 5009, 4387, 5085, 5151],\n"," 718: [2995, 2478, 2473, 2533, 3147, 2614, 2467, 3667, 2425, 2720],\n"," 873: [3270, 2820, 2107, 2829, 2674, 3169, 2797, 3265, 2912, 2695],\n"," 962: [3238, 2764, 3390, 2711, 3178, 3678, 3015, 2697, 3402, 3648],\n"," 985: [8138,\n"," 27801,\n"," 32721,\n"," 7879,\n"," 43460,\n"," 27186,\n"," 50189,\n"," 2877,\n"," 39449,\n"," 3678],\n"," 993: [54775, 66, 117, 53189, 1189, 714, 16, 198, 33830, 243],\n"," 184: [4568, 650, 1410, 5385, 537, 614, 13, 42734, 8589, 220],\n"," 246: [3308, 3422, 2769, 3078, 3598, 2691, 3183, 3683, 3910, 2704],\n"," 373: [44729,\n"," 48774,\n"," 27416,\n"," 26203,\n"," 42734,\n"," 56782,\n"," 34164,\n"," 26138,\n"," 26163,\n"," 49220],\n"," 430: [8593, 7440, 7300, 8493, 6614, 6948, 380, 7023, 7107, 7062],\n"," 534: [8967,\n"," 2099,\n"," 7184,\n"," 1304,\n"," 8617,\n"," 8789,\n"," 8928,\n"," 27611,\n"," 26828,\n"," 37733],\n"," 805: [4356, 5666, 4727, 4350, 4991, 5503, 5423, 4342, 4427, 5159],\n"," 58: [45210,\n"," 41585,\n"," 39419,\n"," 43928,\n"," 33615,\n"," 42002,\n"," 37380,\n"," 50514,\n"," 45501,\n"," 42021],\n"," 112: [368, 48856, 278, 346, 248, 347, 52885, 56775, 49910, 282],\n"," 367: [2699,\n"," 2745,\n"," 2208,\n"," 2196,\n"," 3296,\n"," 2289,\n"," 2800,\n"," 2888,\n"," 27820,\n"," 51088],\n"," 548: [852, 934, 935, 943, 945, 947, 948, 954, 955, 961],\n"," 791: [4967, 5036, 5609, 5878, 5670, 4972, 4960, 6273, 6541, 5136],\n"," 909: [1485, 2142, 2144, 2145, 1459, 1460, 1186, 1930, 1464, 1190],\n"," 1041: [177, 249, 336, 368, 372, 304, 32, 187, 174, 150],\n"," 13: [1082, 6709, 8366, 1887, 30793, 3043, 5956, 2331, 3531, 4930],\n"," 869: [2353, 2796, 2402, 1940, 2400, 1836, 2394, 2393, 2804, 1941],\n"," 415: [5459, 3358, 2719, 6347, 7099, 1252, 224, 5999, 1298, 5777],\n"," 477: [6978,\n"," 2494,\n"," 4251,\n"," 5975,\n"," 5147,\n"," 1259,\n"," 42007,\n"," 8376,\n"," 1760,\n"," 3744],\n"," 569: [1333, 297, 1382, 965, 803, 506, 489, 840, 523, 926],\n"," 694: [2738,\n"," 3262,\n"," 6481,\n"," 2313,\n"," 7847,\n"," 2778,\n"," 2342,\n"," 26230,\n"," 3054,\n"," 2364],\n"," 729: [1812, 2053, 2342, 2389, 2386, 2594, 1772, 1754, 1918, 2579],\n"," 741: [2714, 3241, 2767, 2844, 3181, 2701, 3253, 2976, 3914, 3744],\n"," 965: [83, 141, 106, 1, 70, 15, 25, 198, 174, 27],\n"," 17: [6368, 5928, 5319, 5903, 26680, 5152, 5644, 5039, 7647, 5973],\n"," 40: [6841, 5860, 1916, 6502, 2361, 7190, 5986, 6986, 1837, 2731],\n"," 114: [707, 108, 6126, 5054, 804, 6816, 1091, 901, 372, 498],\n"," 137: [44828,\n"," 46850,\n"," 44729,\n"," 59014,\n"," 55830,\n"," 45730,\n"," 60753,\n"," 47518,\n"," 50851,\n"," 55069],\n"," 153: [7720, 6595, 4853, 6180, 4970, 5469, 7072, 7386, 2417, 2803],\n"," 211: [43904,\n"," 40278,\n"," 39449,\n"," 39446,\n"," 39444,\n"," 39292,\n"," 39231,\n"," 39183,\n"," 8336,\n"," 38992],\n"," 286: [64716,\n"," 60037,\n"," 5264,\n"," 61323,\n"," 8740,\n"," 60069,\n"," 59795,\n"," 5179,\n"," 5422,\n"," 60147],\n"," 330: [4641,\n"," 7149,\n"," 4646,\n"," 4728,\n"," 5768,\n"," 27839,\n"," 5958,\n"," 7899,\n"," 5523,\n"," 6856],\n"," 336: [8927,\n"," 39444,\n"," 27584,\n"," 9002,\n"," 50153,\n"," 26138,\n"," 26662,\n"," 56176,\n"," 1028,\n"," 45517],\n"," 372: [6592, 7126, 7295, 7132, 5923, 5927, 6573, 6195, 6951, 5936],\n"," 376: [27839,\n"," 8198,\n"," 7781,\n"," 38701,\n"," 48783,\n"," 8972,\n"," 8690,\n"," 50851,\n"," 27523,\n"," 31485],\n"," 412: [4552, 4949, 4005, 4304, 4620, 4167, 4707, 2686, 3946, 3939],\n"," 447: [4443, 3624, 649, 4989, 4976, 4824, 200, 516, 4688, 3628],\n"," 467: [1860,\n"," 940,\n"," 47629,\n"," 42009,\n"," 204,\n"," 43926,\n"," 2176,\n"," 1392,\n"," 58972,\n"," 2612],\n"," 490: [3909, 3313, 3396, 889, 3323, 942, 1078, 1399, 1546, 2068],\n"," 518: [3837, 166, 3480, 4200, 556, 3821, 4129, 3251, 4355, 3178],\n"," 608: [86, 471, 512, 733, 551, 8614, 6809, 969, 1086, 31698],\n"," 619: [7307,\n"," 25777,\n"," 1088,\n"," 1894,\n"," 8372,\n"," 7303,\n"," 6963,\n"," 8266,\n"," 26242,\n"," 6862],\n"," 644: [1667, 1168, 1513, 2870, 2149, 1997, 1489, 1392, 1022, 1894],\n"," 667: [1542, 2318, 2748, 2327, 2655, 295, 49, 223, 1600, 171],\n"," 698: [43926,\n"," 41566,\n"," 42718,\n"," 47810,\n"," 58964,\n"," 46335,\n"," 52950,\n"," 38701,\n"," 46578,\n"," 48416],\n"," 709: [33621,\n"," 48412,\n"," 8958,\n"," 53921,\n"," 26513,\n"," 2135,\n"," 2383,\n"," 45186,\n"," 34538,\n"," 2143],\n"," 728: [416, 595, 956, 299, 298, 297, 1043, 295, 597, 955],\n"," 733: [43396,\n"," 57669,\n"," 8595,\n"," 8870,\n"," 38798,\n"," 6157,\n"," 6502,\n"," 48416,\n"," 27851,\n"," 34437],\n"," 777: [3309, 288, 3780, 3247, 3555, 3408, 3462, 3472, 126, 4517],\n"," 813: [5298, 5293, 6025, 5459, 7001, 6993, 5364, 6855, 5603, 5289],\n"," 832: [126, 6427, 2884, 6666, 223, 319, 5690, 5912, 6478, 63],\n"," 893: [59725,\n"," 60766,\n"," 4828,\n"," 59404,\n"," 59900,\n"," 59421,\n"," 59729,\n"," 4757,\n"," 6041,\n"," 5433],\n"," 901: [3272, 2744, 3432, 3053, 2749, 2801, 3640, 2962, 2944, 3354],\n"," 937: [55402,\n"," 45517,\n"," 42730,\n"," 54999,\n"," 26555,\n"," 32179,\n"," 2016,\n"," 33817,\n"," 36531,\n"," 34332],\n"," 947: [3444, 3370, 3810, 3158, 4155, 4378, 3728, 4232, 3985, 4329],\n"," 362: [1347, 911, 176, 918, 1000, 364, 1222, 387, 269, 1040],\n"," 375: [8511,\n"," 7142,\n"," 7054,\n"," 8859,\n"," 27822,\n"," 7720,\n"," 7061,\n"," 7043,\n"," 8337,\n"," 7027],\n"," 599: [35, 22, 8800, 7069, 31, 26, 8743, 18, 8336, 45],\n"," 632: [1782, 1003, 2232, 2221, 1112, 5308, 1544, 4267, 5570, 3462],\n"," 779: [3868, 4448, 3631, 4994, 4989, 3928, 4628, 4341, 3681, 4422],\n"," 1022: [31184,\n"," 46335,\n"," 48082,\n"," 52448,\n"," 27788,\n"," 36531,\n"," 52885,\n"," 4147,\n"," 475,\n"," 35836],\n"," 1034: [580, 1085, 516, 522, 527, 1219, 1471, 1723, 880, 688],\n"," 819: [6221, 5310, 6897, 6192, 5966, 5292, 6226, 5460, 6053, 6448],\n"," 2: [4210, 4961, 4105, 2351, 3573, 4032, 1586, 5159, 4840, 2804],\n"," 3: [3680, 3310, 3903, 4178, 3606, 3781, 3833, 4161, 3248, 4127],\n"," 104: [1361, 1856, 1663, 1303, 1975, 1806, 2310, 1534, 1353, 54],\n"," 105: [50440, 982, 5856, 5673, 1027, 6856, 466, 526, 1592, 7649],\n"," 218: [6344, 6337, 6436, 1545, 8910, 7162, 1398, 3107, 3200, 7367],\n"," 250: [3666, 3608, 3725, 3793, 146, 3061, 3128, 4342, 5902, 3822],\n"," 313: [4664, 3830, 5275, 2553, 1337, 2122, 5103, 8836, 2559, 3315],\n"," 377: [5613, 4793, 4641, 6305, 5481, 4682, 4849, 5856, 6297, 5418],\n"," 413: [58381,\n"," 32294,\n"," 8633,\n"," 36708,\n"," 55687,\n"," 8376,\n"," 30749,\n"," 45106,\n"," 31435,\n"," 8464],\n"," 576: [55282,\n"," 58347,\n"," 57368,\n"," 59784,\n"," 64716,\n"," 151,\n"," 56587,\n"," 56805,\n"," 58418,\n"," 62293],\n"," 586: [930, 1683, 2155, 1037, 2150, 1692, 2068, 1457, 1145, 2032],\n"," 595: [8951,\n"," 6291,\n"," 60074,\n"," 8974,\n"," 48744,\n"," 4638,\n"," 6316,\n"," 5609,\n"," 7484,\n"," 5620],\n"," 610: [1564, 7380, 8661, 6316, 963, 927, 6442, 2616, 6997, 2557],\n"," 613: [3529, 6780, 6387, 2758, 6672, 2867, 4012, 5670, 5577, 6920],\n"," 637: [6687, 6178, 7883, 6127, 6980, 6985, 7845, 6989, 6991, 7840],\n"," 663: [516, 90, 640, 1964, 28, 475, 17, 936, 322, 1273],\n"," 740: [5596, 6057, 6045, 6044, 6373, 6041, 6040, 5563, 6038, 5559],\n"," 787: [4516, 5409, 5179, 6021, 4675, 4978, 5890, 4510, 4574, 5392],\n"," 804: [3165, 3111, 2709, 2633, 2642, 2649, 3606, 3309, 2840, 3774],\n"," 866: [8633,\n"," 8142,\n"," 4580,\n"," 8665,\n"," 8128,\n"," 5140,\n"," 8640,\n"," 4523,\n"," 33819,\n"," 31083],\n"," 883: [1370, 1385, 411, 904, 907, 406, 397, 394, 393, 908],\n"," 941: [2453, 2448, 2969, 1274, 2651, 2511, 2529, 1730, 3559, 2921],\n"," 1007: [5541,\n"," 6542,\n"," 6516,\n"," 3963,\n"," 5609,\n"," 7124,\n"," 6078,\n"," 6284,\n"," 7142,\n"," 5606],\n"," 817: [54, 411, 80, 416, 145, 257, 6879, 187, 5690, 4147],\n"," 6: [7043, 2550, 268, 6305, 6225, 2099, 2696, 2961, 3143, 7216],\n"," 7: [7706, 7394, 3605, 8191, 8195, 8451, 4426, 8581, 8859, 7891],\n"," 14: [3973,\n"," 8977,\n"," 4842,\n"," 5516,\n"," 5604,\n"," 27020,\n"," 8643,\n"," 6319,\n"," 32300,\n"," 7474],\n"," 24: [3048, 3937, 59784, 4077, 4002, 4326, 4213, 3556, 4091, 3358],\n"," 57: [8195, 7223, 6416, 7379, 7898, 6290, 2165, 2775, 48082, 6855],\n"," 60: [1529, 908, 2025, 1223, 1516, 2029, 784, 2031, 1343, 4560],\n"," 64: [32019,\n"," 58299,\n"," 42004,\n"," 34332,\n"," 34153,\n"," 44004,\n"," 58334,\n"," 40851,\n"," 3638,\n"," 55820],\n"," 84: [1345, 1662, 805, 973, 705, 1053, 1485, 1326, 1339, 847],\n"," 90: [6548,\n"," 8117,\n"," 7360,\n"," 4566,\n"," 36531,\n"," 3783,\n"," 6021,\n"," 5221,\n"," 54780,\n"," 7016],\n"," 98: [3099, 2643, 2581, 3243, 1276, 3771, 3054, 3604, 3713, 2780],\n"," 113: [2147, 2239, 2733, 2097, 2962, 2414, 2557, 2612, 3005, 317],\n"," 120: [3871,\n"," 4407,\n"," 4249,\n"," 1943,\n"," 8484,\n"," 26965,\n"," 8528,\n"," 7131,\n"," 8266,\n"," 7766],\n"," 123: [5107, 5994, 614, 1095, 5679, 5962, 5859, 6252, 5016, 5747],\n"," 157: [5352, 5502, 7149, 6953, 5893, 7347, 7365, 5517, 8360, 5951],\n"," 194: [5604, 5528, 6513, 6542, 5414, 2250, 308, 4887, 2965, 5127],\n"," 200: [7376,\n"," 26555,\n"," 2182,\n"," 26122,\n"," 52375,\n"," 6567,\n"," 4840,\n"," 960,\n"," 3689,\n"," 5530],\n"," 204: [3304, 2677, 6012, 3422, 5324, 5418, 6327, 6732, 6192, 6294],\n"," 205: [53121,\n"," 54881,\n"," 7938,\n"," 34319,\n"," 49272,\n"," 8972,\n"," 52722,\n"," 40148,\n"," 52456,\n"," 25923],\n"," 225: [46, 97, 522, 650, 4477, 1169, 3659, 6827, 670, 174],\n"," 229: [2878,\n"," 26119,\n"," 3544,\n"," 9015,\n"," 4023,\n"," 2769,\n"," 4921,\n"," 44161,\n"," 31770,\n"," 57],\n"," 237: [4132, 3232, 3330, 3158, 2203, 3923, 4251, 2462, 2469, 661],\n"," 242: [33836,\n"," 47382,\n"," 33085,\n"," 54001,\n"," 33004,\n"," 32892,\n"," 54190,\n"," 47254,\n"," 37240,\n"," 54259],\n"," 252: [2545, 1752, 1753, 1759, 1762, 1769, 1770, 1782, 1783, 1784],\n"," 266: [4124,\n"," 9010,\n"," 49272,\n"," 3311,\n"," 25750,\n"," 55820,\n"," 60943,\n"," 44929,\n"," 52668,\n"," 31445],\n"," 270: [40412,\n"," 55872,\n"," 7094,\n"," 3203,\n"," 8372,\n"," 60649,\n"," 2585,\n"," 54796,\n"," 33819,\n"," 5893],\n"," 282: [6045, 5011, 6790, 5164, 6631, 5928, 5812, 6305, 6784, 5504],\n"," 297: [44197, 1917, 251, 2237, 1448, 994, 1438, 1291, 51412, 981],\n"," 309: [5546,\n"," 52668,\n"," 5481,\n"," 4850,\n"," 2206,\n"," 4857,\n"," 2927,\n"," 5729,\n"," 2174,\n"," 30848],\n"," 316: [4381, 4124, 8623, 5012, 4015, 8491, 3299, 3072, 2664, 4911],\n"," 327: [2085, 2797, 45, 27266, 3254, 3249, 8941, 353, 48082, 45732],\n"," 356: [56367,\n"," 46572,\n"," 54999,\n"," 44204,\n"," 60147,\n"," 44665,\n"," 47382,\n"," 951,\n"," 3269,\n"," 215],\n"," 393: [6970,\n"," 7938,\n"," 3095,\n"," 2382,\n"," 6875,\n"," 8485,\n"," 31584,\n"," 6857,\n"," 5782,\n"," 25788],\n"," 394: [50442,\n"," 48416,\n"," 51088,\n"," 59387,\n"," 53129,\n"," 52694,\n"," 56563,\n"," 49793,\n"," 56286,\n"," 55052],\n"," 395: [75, 891, 1457, 615, 840, 965, 1583, 263, 596, 595],\n"," 399: [5348, 5285, 5980, 4992, 5009, 5222, 5507, 5392, 6690, 5085],\n"," 401: [606, 299, 502, 42728, 8581, 7176, 217, 6513, 30749, 33615],\n"," 402: [5055,\n"," 5942,\n"," 27186,\n"," 7883,\n"," 6862,\n"," 7564,\n"," 8198,\n"," 6774,\n"," 7745,\n"," 55288],\n"," 405: [2858, 2401, 2347, 2979, 3250, 416, 364, 2352, 2653, 6650],\n"," 417: [2916,\n"," 2320,\n"," 2769,\n"," 2890,\n"," 2827,\n"," 26203,\n"," 3074,\n"," 2558,\n"," 2618,\n"," 6480],\n"," 422: [56805,\n"," 58490,\n"," 54286,\n"," 59795,\n"," 58418,\n"," 58381,\n"," 59985,\n"," 58367,\n"," 60037,\n"," 2069],\n"," 437: [5269, 5927, 2557, 3019, 5839, 6130, 2496, 2501, 5171, 3143],\n"," 455: [3224, 3250, 3751, 7173, 4340, 3893, 6235, 81, 4339, 3705],\n"," 461: [6356,\n"," 47830,\n"," 6273,\n"," 6791,\n"," 7190,\n"," 5372,\n"," 6480,\n"," 4205,\n"," 7169,\n"," 4772],\n"," 473: [3967,\n"," 4682,\n"," 7134,\n"," 4452,\n"," 7834,\n"," 35836,\n"," 7880,\n"," 7217,\n"," 7301,\n"," 27768],\n"," 484: [988, 4119, 3308, 876, 1623, 2108, 963, 2834, 4186, 1397],\n"," 499: [1493, 876, 1581, 745, 1337, 2005, 2000, 1285, 4526, 1675],\n"," 526: [4082, 4267, 4266, 4265, 4263, 4262, 4255, 4250, 4249, 4248],\n"," 537: [4887, 4867, 4868, 4133, 4351, 4111, 3972, 4574, 4037, 4881],\n"," 542: [491, 1563, 486, 780, 1648, 1642, 959, 960, 1542, 1466],\n"," 557: [51007,\n"," 333,\n"," 31923,\n"," 45722,\n"," 8012,\n"," 8208,\n"," 324,\n"," 55269,\n"," 7706,\n"," 1545],\n"," 563: [32591,\n"," 45440,\n"," 33164,\n"," 8884,\n"," 8142,\n"," 8894,\n"," 8138,\n"," 8132,\n"," 8130,\n"," 8125],\n"," 570: [60766,\n"," 58293,\n"," 8477,\n"," 41566,\n"," 58303,\n"," 49278,\n"," 56563,\n"," 56171,\n"," 8604,\n"," 58291],\n"," 575: [42632,\n"," 3402,\n"," 2641,\n"," 3663,\n"," 46337,\n"," 2686,\n"," 3330,\n"," 3896,\n"," 2929,\n"," 3876],\n"," 594: [33166,\n"," 8195,\n"," 27831,\n"," 32325,\n"," 5076,\n"," 25916,\n"," 31359,\n"," 7899,\n"," 4190,\n"," 446],\n"," 607: [2733, 2022, 45635, 613, 8808, 25753, 60649, 3178, 74, 674],\n"," 631: [162, 472, 4161, 554, 328, 141, 3232, 26, 3396, 426],\n"," 651: [40815,\n"," 37729,\n"," 34164,\n"," 56174,\n"," 36537,\n"," 55094,\n"," 45672,\n"," 37380,\n"," 47518,\n"," 2812],\n"," 664: [1814, 1690, 2185, 1725, 2178, 1627, 1621, 2315, 2774, 2702],\n"," 685: [159, 559, 166, 4682, 476, 5788, 5266, 5068, 5004, 4803],\n"," 690: [4062, 3563, 7933, 4220, 6724, 3486, 4011, 3472, 4520, 3844],\n"," 696: [286, 271, 210, 361, 79, 487, 416, 188, 333, 7000],\n"," 724: [2577, 2753, 2441, 2708, 2267, 2105, 3171, 2816, 2847, 2947],\n"," 738: [5159, 4768, 4649, 5112, 4125, 4370, 4445, 4517, 4484, 4444],\n"," 762: [3196, 2780, 2775, 2772, 2766, 2765, 2763, 2762, 2757, 2751],\n"," 763: [4572,\n"," 3747,\n"," 6982,\n"," 34162,\n"," 7123,\n"," 8873,\n"," 5136,\n"," 34164,\n"," 27850,\n"," 4345],\n"," 770: [998, 436, 498, 1610, 1151, 1053, 292, 1593, 443, 1123],\n"," 796: [2473, 2094, 2095, 2856, 2371, 2852, 2368, 2848, 2593, 2105],\n"," 800: [2876, 2259, 2862, 2864, 2871, 2875, 2878, 2879, 2255, 2885],\n"," 829: [6748, 5732, 353, 1104, 6583, 6708, 6986, 1580, 5636, 6473],\n"," 836: [5397, 5226, 44197, 8667, 568, 251, 4531, 516, 5734, 5311],\n"," 882: [2887, 3179, 3180, 3181, 3182, 3183, 2709, 2708, 3187, 2706],\n"," 900: [1345, 2094, 2312, 1190, 1873, 779, 1969, 965, 592, 929],\n"," 903: [2106, 1242, 4881, 1189, 2193, 1951, 1694, 1946, 1282, 1997],\n"," 914: [54745,\n"," 59725,\n"," 59037,\n"," 7076,\n"," 60760,\n"," 58975,\n"," 58299,\n"," 60649,\n"," 54513,\n"," 57464],\n"," 918: [3508, 4195, 3966, 3421, 3390, 4723, 4470, 3436, 4641, 1082],\n"," 920: [2625, 2530, 2528, 2527, 2526, 2523, 2522, 2521, 2519, 2517],\n"," 945: [2719, 3600, 2921, 3604, 3605, 2506, 3276, 3270, 2502, 2857],\n"," 950: [8915,\n"," 36477,\n"," 33836,\n"," 8796,\n"," 42728,\n"," 43708,\n"," 27618,\n"," 58295,\n"," 25916,\n"," 55080],\n"," 952: [52668,\n"," 55805,\n"," 48698,\n"," 55765,\n"," 55729,\n"," 55687,\n"," 55577,\n"," 55451,\n"," 48738,\n"," 55442],\n"," 982: [504, 499, 53460, 763, 55094, 496, 1584, 51709, 1680, 1224],\n"," 989: [4055, 3394, 1580, 2059, 1973, 827, 3444, 3792, 1117, 2066],\n"," 1016: [2990,\n"," 2279,\n"," 3483,\n"," 2795,\n"," 2388,\n"," 8967,\n"," 7990,\n"," 7745,\n"," 5588,\n"," 8919],\n"," 1019: [5836, 4979, 5570, 4837, 6561, 516, 4895, 5608, 5081, 5213],\n"," 1044: [43987,\n"," 48319,\n"," 61132,\n"," 56251,\n"," 36517,\n"," 46976,\n"," 52283,\n"," 43836,\n"," 43917,\n"," 44161],\n"," 1051: [3839,\n"," 4982,\n"," 4945,\n"," 4131,\n"," 4080,\n"," 3998,\n"," 4926,\n"," 4193,\n"," 3847,\n"," 4812],\n"," 917: [4238, 3073, 3539, 3761, 1123, 2961, 4256, 908, 3006, 1251],\n"," 951: [8378,\n"," 6889,\n"," 52281,\n"," 30850,\n"," 48262,\n"," 59727,\n"," 36529,\n"," 6725,\n"," 61160,\n"," 7306],\n"," 997: [26270,\n"," 25908,\n"," 7562,\n"," 7811,\n"," 7218,\n"," 45210,\n"," 5582,\n"," 26870,\n"," 8661,\n"," 30803],\n"," 174: [2112,\n"," 58154,\n"," 55995,\n"," 2060,\n"," 1856,\n"," 3770,\n"," 6244,\n"," 2563,\n"," 3078,\n"," 49220],\n"," 676: [2321, 3034, 3500, 3526, 3358, 2506, 3505, 3464, 3374, 2519],\n"," 764: [5668, 5066, 2597, 2784, 2745, 5028, 2450, 2667, 2209, 4873],\n"," 1052: [7493,\n"," 8451,\n"," 8198,\n"," 8985,\n"," 8208,\n"," 44555,\n"," 32029,\n"," 45950,\n"," 45183,\n"," 37380],\n"," 5: [62803, 50851, 440, 2019, 6424, 1679, 378, 6662, 2670, 2580],\n"," 27: [603, 6448, 236, 1089, 1445, 6721, 3639, 852, 1670, 1383],\n"," 33: [7035, 6383, 6839, 6053, 6261, 2542, 1821, 1224, 1472, 1956],\n"," 134: [62394,\n"," 45208,\n"," 47629,\n"," 45442,\n"," 50005,\n"," 52281,\n"," 50153,\n"," 44225,\n"," 49957,\n"," 45499],\n"," 142: [3643, 3663, 3664, 3668, 3669, 4598, 3677, 3680, 3684, 3688],\n"," 156: [3289, 3031, 3276, 2839, 2681, 2842, 3286, 2843, 3293, 2678],\n"," 167: [2665, 442, 5785, 6375, 7418, 1609, 492, 910, 1517, 1964],\n"," 177: [1236, 1627, 5438, 5323, 6102, 824, 5650, 1701, 5952, 716],\n"," 224: [901, 1518, 1696, 1304, 1799, 806, 8772, 45732, 305, 25850],\n"," 269: [59985,\n"," 8968,\n"," 6308,\n"," 26606,\n"," 7461,\n"," 4094,\n"," 48678,\n"," 8983,\n"," 4599,\n"," 3424],\n"," 312: [3403, 463, 4213, 4735, 31225, 940, 3461, 4220, 7842, 7624],\n"," 360: [3054, 3112, 3781, 3649, 3061, 5380, 3592, 3037, 4304, 5706],\n"," 385: [58315,\n"," 56274,\n"," 50354,\n"," 52950,\n"," 987,\n"," 55250,\n"," 55276,\n"," 50806,\n"," 58367,\n"," 50514],\n"," 411: [2300, 3432, 3175, 2307, 3425, 3333, 2810, 5321, 2854, 2291],\n"," 464: [2766, 2713, 3419, 2708, 2656, 2843, 3912, 2095, 2848, 2194],\n"," 568: [4672, 4307, 4213, 4633, 3714, 3936, 3996, 4061, 4024, 4863],\n"," 612: [8542,\n"," 6965,\n"," 6784,\n"," 7791,\n"," 31445,\n"," 2379,\n"," 8531,\n"," 8584,\n"," 3599,\n"," 8196],\n"," 630: [44761,\n"," 52717,\n"," 44555,\n"," 49347,\n"," 44694,\n"," 53988,\n"," 44225,\n"," 56563,\n"," 49132,\n"," 46578],\n"," 706: [54281,\n"," 26840,\n"," 41573,\n"," 27584,\n"," 59727,\n"," 37382,\n"," 33836,\n"," 39052,\n"," 50794,\n"," 1619],\n"," 737: [1051, 1859, 2289, 555, 1041, 945, 235, 471, 161, 659],\n"," 749: [1077, 1020, 1167, 1498, 2189, 1220, 1563, 2136, 1009, 1258],\n"," 756: [1361, 1621, 1353, 2432, 2104, 2324, 2523, 1503, 2360, 1870],\n"," 811: [420, 473, 5957, 2938, 3115, 3183, 3446, 3122, 12, 4084],\n"," 853: [64716,\n"," 56915,\n"," 57243,\n"," 57522,\n"," 60688,\n"," 57910,\n"," 57949,\n"," 58078,\n"," 58103,\n"," 58154],\n"," 884: [3353,\n"," 3866,\n"," 3812,\n"," 3274,\n"," 3998,\n"," 3269,\n"," 2757,\n"," 25963,\n"," 2146,\n"," 8941],\n"," 955: [484, 1101, 7250, 1413, 735, 300, 27513, 1237, 354, 44199],\n"," 1032: [49932,\n"," 27776,\n"," 44197,\n"," 45517,\n"," 44974,\n"," 50804,\n"," 36517,\n"," 47950,\n"," 27706,\n"," 32591],\n"," 1043: [5404,\n"," 5563,\n"," 4686,\n"," 5956,\n"," 5343,\n"," 5682,\n"," 5099,\n"," 6130,\n"," 6042,\n"," 5360],\n"," 370: [1437, 1021, 1488, 1636, 951, 2139, 2087, 1169, 954, 1152],\n"," 670: [45431, 27826, 7327, 8959, 98, 75, 7618, 160, 45501, 297],\n"," 923: [926, 541, 539, 538, 536, 534, 533, 525, 522, 519],\n"," 931: [1, 475, 155, 474, 472, 471, 159, 160, 469, 465],\n"," 969: [848, 1096, 1111, 1731, 791, 1669, 1034, 1647, 1276, 1539],\n"," 12: [6991, 6242, 6920, 7157, 6770, 6156, 6269, 8261, 7063, 6166],\n"," 597: [27731,\n"," 7883,\n"," 32011,\n"," 7844,\n"," 1663,\n"," 2415,\n"," 44197,\n"," 46948,\n"," 8008,\n"," 31804],\n"," 195: [4008, 3955, 4644, 4223, 3946, 4169, 4503, 4262, 4556, 4741],\n"," 337: [667,\n"," 7166,\n"," 7084,\n"," 26163,\n"," 27851,\n"," 8991,\n"," 2397,\n"," 8045,\n"," 25993,\n"," 7382],\n"," 910: [7158,\n"," 7720,\n"," 7459,\n"," 34336,\n"," 7478,\n"," 8533,\n"," 50514,\n"," 26558,\n"," 48520,\n"," 38304],\n"," 63: [293, 741, 502, 732, 581, 725, 300, 489, 577, 372],\n"," 70: [5989,\n"," 3068,\n"," 5102,\n"," 2456,\n"," 31364,\n"," 56563,\n"," 3165,\n"," 5958,\n"," 5740,\n"," 5080],\n"," 99: [2468, 2041, 1779, 1993, 1958, 48877, 1797, 516, 58299, 2445],\n"," 121: [861, 514, 1046, 1047, 518, 1050, 1051, 1056, 1041, 520],\n"," 130: [5585,\n"," 4243,\n"," 27434,\n"," 7445,\n"," 4249,\n"," 4081,\n"," 4625,\n"," 5349,\n"," 6299,\n"," 5424],\n"," 244: [3108, 3178, 3846, 3710, 3113, 2580, 3664, 2456, 6297, 4378],\n"," 291: [52462,\n"," 55999,\n"," 52644,\n"," 60397,\n"," 27821,\n"," 52241,\n"," 8369,\n"," 51077,\n"," 27584,\n"," 58347],\n"," 335: [4082, 4758, 5331, 4989, 5334, 4774, 4445, 4444, 4777, 5503],\n"," 361: [7920, 6718, 973, 1748, 8983, 2210, 26585, 6525, 7587, 8542],\n"," 470: [8928,\n"," 8125,\n"," 8128,\n"," 34148,\n"," 34143,\n"," 34072,\n"," 33880,\n"," 33838,\n"," 8138,\n"," 33832],\n"," 497: [8643,\n"," 32296,\n"," 58655,\n"," 692,\n"," 7005,\n"," 6828,\n"," 45662,\n"," 32076,\n"," 7898,\n"," 1170],\n"," 620: [5517, 5611, 7486, 6326, 6552, 5506, 8915, 6261, 6969, 5525],\n"," 648: [2068, 1384, 2151, 2262, 1937, 2253, 2043, 1783, 2126, 1367],\n"," 666: [57951,\n"," 34164,\n"," 7063,\n"," 6971,\n"," 7070,\n"," 31364,\n"," 20,\n"," 7980,\n"," 6031,\n"," 5137],\n"," 710: [45, 6603, 5970, 40, 5127, 6460, 6783, 5852, 6235, 6582],\n"," 794: [5475, 6058, 4971, 4972, 6053, 4974, 6045, 4976, 4977, 4978],\n"," 854: [514, 645, 640, 639, 218, 634, 632, 630, 617, 615],\n"," 861: [728, 26, 4721, 3909, 335, 329, 267, 865, 786, 101],\n"," 87: [129, 45, 273, 337, 532, 537, 104, 43, 77, 372],\n"," 317: [34072, 7915, 64, 5125, 5706, 4377, 470, 5734, 5292, 5613],\n"," 324: [7482,\n"," 48741,\n"," 26686,\n"," 26398,\n"," 34338,\n"," 60522,\n"," 42004,\n"," 6513,\n"," 8045,\n"," 33683],\n"," 502: [849, 1468, 266, 7257, 1266, 6301, 718, 1983, 1649, 5444],\n"," 559: [6157, 6724, 5276, 5463, 5246, 5066, 5747, 5058, 6257, 5447],\n"," 973: [6881,\n"," 7728,\n"," 8985,\n"," 6710,\n"," 25927,\n"," 6816,\n"," 6869,\n"," 7809,\n"," 7394,\n"," 8825],\n"," 1015: [1961,\n"," 2614,\n"," 3046,\n"," 2086,\n"," 2093,\n"," 2800,\n"," 2589,\n"," 2126,\n"," 1956,\n"," 2322],\n"," 1017: [270, 327, 806, 748, 275, 940, 252, 263, 1201, 1399],\n"," 85: [4821, 5809, 4800, 1779, 3717, 26870, 7191, 8610, 7706, 8808],\n"," 306: [2256, 2989, 2986, 2695, 2979, 2978, 2977, 2279, 3425, 2974],\n"," 653: [7383, 7176, 6743, 7119, 6473, 7295, 8810, 6722, 6346, 7984],\n"," 371: [36708,\n"," 1658,\n"," 1902,\n"," 1949,\n"," 1623,\n"," 2065,\n"," 1928,\n"," 1570,\n"," 2077,\n"," 1340],\n"," 566: [362, 886, 1440, 1275, 873, 871, 1432, 893, 868, 553],\n"," 331: [6675, 6666, 5878, 6669, 5876, 5212, 6678, 5202, 5874, 6687],\n"," 665: [3475, 1929, 1921, 1920, 1914, 1912, 1909, 1885, 1884, 1883],\n"," 872: [1844, 2436, 2142, 2592, 2879, 1687, 2357, 2431, 1746, 2246],\n"," 879: [5893, 5670, 5930, 5668, 5667, 5666, 7045, 7044, 7043, 5663],\n"," 486: [5065, 4177, 5667, 5673, 5105, 5462, 6897, 4626, 7008, 6885],\n"," 864: [5493, 5331, 5914, 5677, 4977, 4986, 4803, 4973, 6005, 4798],\n"," 52: [4558, 3732, 5108, 7010, 90, 1233, 8376, 8795, 888, 426],\n"," 288: [71, 158, 160, 239, 240, 243, 193, 164, 81, 79],\n"," 9: [3050, 2135, 2139, 2140, 2141, 2143, 2148, 2149, 2150, 2151],\n"," 117: [5078, 5832, 6793, 3643, 4466, 5743, 5002, 6720, 5940, 5379],\n"," 220: [56715,\n"," 60037,\n"," 56176,\n"," 53121,\n"," 49957,\n"," 5003,\n"," 53999,\n"," 58156,\n"," 573,\n"," 58105],\n"," 544: [4082, 3729, 4556, 3853, 314, 4326, 4397, 4929, 4989, 4245],\n"," 999: [53322,\n"," 56885,\n"," 6978,\n"," 6795,\n"," 34321,\n"," 8593,\n"," 31685,\n"," 51927,\n"," 3153,\n"," 42718],\n"," 458: [852, 802, 363, 982, 3467, 2702, 448, 678, 314, 2376],\n"," 974: [6326, 5275, 7042, 241, 870, 1310, 143, 799, 1291, 864],\n"," 546: [2125, 2794, 2131, 2082, 1405, 3251, 2182, 946, 2331, 2644],\n"," 55: [1875,\n"," 1336,\n"," 6196,\n"," 1271,\n"," 5289,\n"," 1997,\n"," 55288,\n"," 3739,\n"," 39381,\n"," 2240],\n"," 363: [3623, 3563, 3093, 3869, 3755, 3247, 3214, 4217, 3235, 4167],\n"," 445: [492, 5633, 453, 344, 5706, 1093, 1565, 7199, 380, 665],\n"," 492: [613, 5004, 4251, 727, 1010, 1224, 481, 1154, 497, 795],\n"," 234: [245, 6058, 673, 5420, 4479, 5304, 5630, 6066, 4960, 4510],\n"," 1027: [2115,\n"," 1957,\n"," 2000,\n"," 1468,\n"," 2190,\n"," 2336,\n"," 1392,\n"," 2150,\n"," 4510,\n"," 4649],\n"," 140: [3388, 2738, 3267, 3556, 3049, 1372, 199, 934, 7122, 2657],\n"," 926: [5085, 1213, 4332, 1472, 1051, 1692, 550, 495, 500, 631],\n"," 781: [2344, 2364, 2991, 2566, 2025, 2989, 2442, 2983, 2357, 2974],\n"," 825: [1305, 1782, 14, 1850, 1342, 1411, 2408, 1974, 1756, 1352],\n"," 913: [1, 108, 106, 104, 101, 100, 95, 94, 85, 113],\n"," 453: [1095, 1904, 6731, 8383, 5013, 2336, 5358, 5111, 5823, 5893],\n"," 540: [6319, 4662, 3313, 4125, 5635, 5646, 4729, 3695, 6198, 6325],\n"," 66: [710, 726, 279, 6166, 2001, 2712, 49793, 592, 44937, 272],\n"," 185: [2423, 3036, 2323, 3528, 3539, 4903, 4780, 4359, 3677, 1879],\n"," 222: [8718, 6873, 8, 3150, 3122, 2536, 26554, 8520, 7247, 3060],\n"," 498: [8191,\n"," 7827,\n"," 25753,\n"," 27731,\n"," 7817,\n"," 32627,\n"," 43869,\n"," 8623,\n"," 8622,\n"," 8620],\n"," 994: [31590,\n"," 8587,\n"," 8371,\n"," 7621,\n"," 7706,\n"," 8208,\n"," 37853,\n"," 8667,\n"," 8989,\n"," 31225],\n"," 165: [2356, 259, 6667, 6429, 491, 3068, 164, 8836, 593, 347],\n"," 202: [842, 1777, 980, 1772, 1771, 1767, 1380, 986, 965, 1389],\n"," 180: [6157, 8602, 6181, 7079, 3942, 3251, 6263, 240, 8533, 3357],\n"," 93: [8207,\n"," 8235,\n"," 8484,\n"," 34143,\n"," 31429,\n"," 4975,\n"," 47382,\n"," 38499,\n"," 32139,\n"," 8831],\n"," 261: [7034, 8966, 4629, 5248, 6303, 4212, 4526, 4566, 4837, 3925],\n"," 435: [1825, 2048, 2578, 2574, 2042, 2040, 2038, 2037, 2569, 2035],\n"," 322: [6247, 5343, 5996, 6221, 6568, 6118, 5447, 6510, 6433, 5764],\n"," 238: [33004,\n"," 51080,\n"," 31435,\n"," 49280,\n"," 31359,\n"," 31590,\n"," 55118,\n"," 31685,\n"," 44191,\n"," 62803],\n"," 425: [3918, 4448, 4393, 4972, 4637, 4588, 4334, 4743, 4686, 4153],\n"," 512: [55250,\n"," 32296,\n"," 1055,\n"," 2294,\n"," 1862,\n"," 43921,\n"," 54612,\n"," 27873,\n"," 34321,\n"," 51925],\n"," 725: [4389, 4705, 4164, 4695, 4969, 4252, 4409, 3901, 4003, 4087],\n"," 732: [3819, 3088, 3204, 3962, 3702, 3051, 2845, 3101, 3221, 3361],\n"," 108: [3640,\n"," 2847,\n"," 4124,\n"," 49649,\n"," 50796,\n"," 53468,\n"," 1388,\n"," 1011,\n"," 1009,\n"," 51086],\n"," 592: [44665,\n"," 26150,\n"," 27340,\n"," 26172,\n"," 48738,\n"," 42728,\n"," 56715,\n"," 26002,\n"," 7584,\n"," 26119],\n"," 443: [45726,\n"," 25788,\n"," 5494,\n"," 40412,\n"," 4603,\n"," 4679,\n"," 4546,\n"," 6198,\n"," 62394,\n"," 42734],\n"," 916: [7621,\n"," 8864,\n"," 8860,\n"," 33171,\n"," 33237,\n"," 33312,\n"," 8852,\n"," 8841,\n"," 33493,\n"," 33499],\n"," 736: [6093, 6957, 8371, 6794, 8377, 7027, 8459, 8365, 7394, 7646],\n"," 961: [1583,\n"," 1785,\n"," 6790,\n"," 1145,\n"," 7405,\n"," 27689,\n"," 7572,\n"," 26492,\n"," 1626,\n"," 27416],\n"," 1012: [6482,\n"," 6094,\n"," 6377,\n"," 6216,\n"," 6125,\n"," 7134,\n"," 7155,\n"," 7163,\n"," 7486,\n"," 6326],\n"," 515: [7124, 6191, 6299, 6159, 3871, 7445, 1880, 6339, 7102, 1374],\n"," 978: [729, 1655, 1587, 546, 1334, 1662, 1582, 709, 1262, 1261],\n"," 28: [3132, 3825, 2566, 1867, 149, 55269, 3064, 3797, 3728, 58975],\n"," 475: [4205, 3515, 1696, 345, 575, 1050, 810, 2300, 2236, 213],\n"," 598: [27803,\n"," 25764,\n"," 47644,\n"," 54513,\n"," 57538,\n"," 27768,\n"," 59306,\n"," 31594,\n"," 32179,\n"," 25805],\n"," 943: [1251, 1365, 1373, 1152, 1797, 1144, 1785, 1125, 1421, 1428],\n"," 520: [4039, 4104, 4795, 3600, 3738, 3518, 3527, 4677, 4251, 2461],\n"," 697: [938, 2166, 1693, 1669, 1046, 1284, 1468, 1968, 981, 964],\n"," 849: [5024, 4970, 4968, 5602, 4961, 4960, 4958, 4957, 4951, 5606],\n"," 1003: [7194,\n"," 7828,\n"," 8484,\n"," 31367,\n"," 7013,\n"," 8827,\n"," 7237,\n"," 8811,\n"," 6855,\n"," 7047],\n"," 705: [2421, 2306, 1754, 2445, 2365, 2600, 1857, 2095, 2677, 2864],\n"," 48: [3073, 2613, 7134, 5172, 8275, 2754, 2542, 3743, 3204, 6244],\n"," 29: [7943,\n"," 1103,\n"," 7698,\n"," 1593,\n"," 1040,\n"," 1045,\n"," 26745,\n"," 25753,\n"," 8604,\n"," 1733],\n"," 231: [627, 58, 1032, 56949, 33836, 1113, 5499, 164, 719, 157],\n"," 699: [485, 468, 301, 37741, 436, 8537, 50794, 73, 378, 69],\n"," 448: [4722, 4168, 5111, 4477, 4886, 6686, 5523, 4085, 1841, 5099],\n"," 750: [3968, 4453, 5295, 4509, 5202, 3849, 4121, 5214, 4599, 4683],\n"," 782: [2473, 2885, 2930, 2408, 3061, 3519, 2610, 2975, 2443, 3135],\n"," 860: [4366, 4521, 5823, 4355, 5236, 4517, 5187, 4531, 5464, 5560],\n"," 768: [960, 2017, 1126, 1997, 961, 1371, 1575, 1465, 1145, 1780],\n"," 127: [47099,\n"," 3189,\n"," 2824,\n"," 7373,\n"," 3528,\n"," 3605,\n"," 58047,\n"," 3252,\n"," 3592,\n"," 8636],\n"," 894: [118, 177, 900, 830, 1014, 486, 868, 298, 640, 969]})"]},"execution_count":11,"metadata":{},"output_type":"execute_result"}],"source":["from collections import defaultdict\n","import numpy as np\n","\n","# 학습용 데이터에 존재하는 모든 사용자와 모든 영화의 조합에 대해 평갓값을 예측한다\n","train_all_pred = reg.predict(train_all_x.values)\n","\n","pred_train_all = train_all_keys.copy()\n","pred_train_all[\"rating_pred\"] = train_all_pred\n","pred_matrix = pred_train_all.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating_pred\")\n","\n","# 사용자가 학습용 데이터 안에서 평가하지 않은 영화 중에서\n","# 예측 평갓값이 높은 순으로 10편의 영화를 순위 형식으로 추천 리스트로 만든다\n","pred_user2items = defaultdict(list)\n","user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","for user_id in movielens_train.user_id.unique():\n"," movie_indexes = np.argsort(-pred_matrix.loc[user_id, :]).values\n"," for movie_index in movie_indexes:\n"," movie_id = user_movie_matrix.columns[movie_index]\n"," if movie_id not in (user_evaluated_movies[user_id]):\n"," pred_user2items[user_id].append(movie_id)\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","pred_user2items"],"id":"3ec280f6"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true},"id":"c3a25c25","outputId":"aa1f9306-1bdb-43c6-f692-1731569f185f"},"outputs":[{"data":{"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "],"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","6150 2 648 2.0 868244699 \n","6531 2 733 3.0 868244562 \n","6813 2 736 3.0 868244698 \n","7113 2 780 3.0 868244698 \n","7506 2 786 3.0 868244562 \n","7661 2 802 2.0 868244603 \n","7779 2 858 2.0 868245645 \n","8077 2 1049 3.0 868245920 \n","8127 2 1073 3.0 868244562 \n","8381 2 1210 4.0 868245644 \n","8771 2 1356 3.0 868244603 \n","9097 2 1544 3.0 868245920 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","6150 Mission: Impossible (1996) \n","6531 Rock, The (1996) \n","6813 Twister (1996) \n","7113 Independence Day (a.k.a. ID4) (1996) \n","7506 Eraser (1996) \n","7661 Phenomenon (1996) \n","7779 Godfather, The (1972) \n","8077 Ghost and the Darkness, The (1996) \n","8127 Willy Wonka & the Chocolate Factory (1971) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","8771 Star Trek: First Contact (1996) \n","9097 Lost World: Jurassic Park, The (Jurassic Park ... \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","6150 [Action, Adventure, Mystery, Thriller] \n","6531 [Action, Adventure, Thriller] \n","6813 [Action, Adventure, Romance, Thriller] \n","7113 [Action, Adventure, Sci-Fi, War] \n","7506 [Action, Drama, Thriller] \n","7661 [Drama, Romance] \n","7779 [Crime, Drama] \n","8077 [Action, Adventure] \n","8127 [Children, Comedy, Fantasy, Musical] \n","8381 [Action, Adventure, Sci-Fi] \n","8771 [Action, Adventure, Sci-Fi, Thriller] \n","9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","6150 [confusing, confusing plot, memorable sequence... 12.0 \n","6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n","6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n","7113 [action, alien invasion, aliens, will smith, a... 14.0 \n","7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n","7661 [interesting concept, own, john travolta, john... 15.0 \n","7779 [oscar (best picture), marlon brando, classic,... 9.0 \n","8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n","8127 [based on a book, roald dahl, based on a book,... 20.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n","8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n","9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 "]},"execution_count":12,"metadata":{},"output_type":"execute_result"}],"source":["# user_id=2인 사용자가 학습 데이터에 평가를 부여한 영화 목록\n","movielens_train[movielens_train.user_id==2]"],"id":"c3a25c25"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true},"id":"a178ecdc","outputId":"9254da3c-39f8-4c2d-f850-120f1e9b7e68"},"outputs":[{"data":{"text/plain":["[4210, 4961, 4105, 2351, 3573, 4032, 1586, 5159, 4840, 2804]"]},"execution_count":13,"metadata":{},"output_type":"execute_result"}],"source":["pred_user2items[2]"],"id":"a178ecdc"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true},"id":"09555a1f","outputId":"0a669df8-2100-4815-af2c-0ab68484aab4"},"outputs":[{"data":{"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
40134105Evil Dead, The (1981)[Fantasy, Horror][directorial debut, bruce campbell, cult class...
41184210Manhunter (1986)[Action, Crime, Drama, Horror, Thriller][hannibal lecter, serial killer, ei muista, er...
48674961Pornstar: The Legend of Ron Jeremy (2001)[Documentary][pornography]
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "],"text/plain":[" movie_id title \\\n","4013 4105 Evil Dead, The (1981) \n","4118 4210 Manhunter (1986) \n","4867 4961 Pornstar: The Legend of Ron Jeremy (2001) \n","\n"," genre \\\n","4013 [Fantasy, Horror] \n","4118 [Action, Crime, Drama, Horror, Thriller] \n","4867 [Documentary] \n","\n"," tag \n","4013 [directorial debut, bruce campbell, cult class... \n","4118 [hannibal lecter, serial killer, ei muista, er... \n","4867 [pornography] "]},"execution_count":14,"metadata":{},"output_type":"execute_result"}],"source":["# user_id=2에 대한 추천(4210, 4961, 4105)\n","movies[movies.movie_id.isin([4210, 4961, 4105])]"],"id":"09555a1f"},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true},"id":"7a42fa17"},"outputs":[],"source":[],"id":"7a42fa17"}],"metadata":{"colab":{"provenance":[]},"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.10.8"}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0d5889b3", + "metadata": { + "id": "0d5889b3" + }, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/RF.ipynb)" + ] + }, + { + "cell_type": "markdown", + "id": "4935d845", + "metadata": { + "id": "4935d845" + }, + "source": [ + "# 회귀 모델, 랜덤 포레스트(Random Forest)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "52eedd0b", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 4283, + "status": "ok", + "timestamp": 1672119776862, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "52eedd0b", + "outputId": "d53d23e4-53b5-440a-b5d5-5432ccedb2d6" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-12-27 05:42:50-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n", + "Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n", + "Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 65566137 (63M) [application/zip]\n", + "Saving to: ‘../data/ml-10m.zip’\n", + "\n", + "ml-10m.zip 100%[===================>] 62.53M 64.4MB/s in 1.0s \n", + "\n", + "2022-12-27 05:42:51 (64.4 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n", + "\n", + "Archive: ../data/ml-10m.zip\n", + " creating: ../data/ml-10M100K/\n", + " inflating: ../data/ml-10M100K/allbut.pl \n", + " inflating: ../data/ml-10M100K/movies.dat \n", + " inflating: ../data/ml-10M100K/ratings.dat \n", + " inflating: ../data/ml-10M100K/README.html \n", + " inflating: ../data/ml-10M100K/split_ratings.sh \n", + " inflating: ../data/ml-10M100K/tags.dat \n" + ] + } + ], + "source": [ + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", + "\n", + "# 데이터 다운로드와 압축 풀기\n", + "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", + "!unzip -n ../data/ml-10m.zip -d ../data/" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d3c02fa7", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 73811, + "status": "ok", + "timestamp": 1672119850668, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "d3c02fa7", + "outputId": "2703b391-837b-4ced-8876-73fe4b6b7a9e" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "unique_users=1000, unique_movies=6736\n" + ] + } + ], + "source": [ + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", + "import pandas as pd\n", + "\n", + "# movieID와 제목만 사용\n", + "m_cols = ['movie_id', 'title', 'genre']\n", + "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", + "\n", + "# genre를 list 형식으로 저장한다\n", + "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", + "\n", + "\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", + "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", + "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", + "\n", + "# tag를 소문자로 바꾼다\n", + "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", + "\n", + "\n", + "# tag를 영화별로 list 형식으로 저장한다\n", + "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", + "\n", + "# 태그 정보를 결합한다\n", + "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", + "\n", + "# 평갓값 데이터만 로딩한다\n", + "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", + "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", + "\n", + "\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", + "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", + "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", + "\n", + "\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", + "movielens = ratings.merge(movies, on='movie_id')\n", + "\n", + "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", + "\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", + "\n", + "movielens['timestamp_rank'] = movielens.groupby(\n", + " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", + "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", + "movielens_test = movielens[movielens['timestamp_rank']<= 5]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "683d7c01-91e8-4835-b9cc-332b16c13966", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 455 + }, + "executionInfo": { + "elapsed": 24, + "status": "ok", + "timestamp": 1672119850668, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "683d7c01-91e8-4835-b9cc-332b16c13966", + "outputId": "3df466b9-dbeb-47f1-ecd2-105e2288c100" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_id12345678910...62000621136229362344623946280162803631136399264716
user_id
1NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
2NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
3NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
51.0NaNNaNNaNNaNNaN3.0NaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
..................................................................
1048NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1050NaN3.0NaNNaNNaN3.0NaNNaNNaN3.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
10515.0NaN3.0NaN3.0NaN4.0NaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1052NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
10535.0NaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", + "

1000 rows × 6673 columns

\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + "movie_id 1 2 3 4 5 6 7 8 9 \\\n", + "user_id \n", + "1 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "5 1.0 NaN NaN NaN NaN NaN 3.0 NaN NaN \n", + "... ... ... ... ... ... ... ... ... ... \n", + "1048 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "1050 NaN 3.0 NaN NaN NaN 3.0 NaN NaN NaN \n", + "1051 5.0 NaN 3.0 NaN 3.0 NaN 4.0 NaN NaN \n", + "1052 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "1053 5.0 NaN NaN NaN NaN NaN NaN NaN NaN \n", + "\n", + "movie_id 10 ... 62000 62113 62293 62344 62394 62801 62803 63113 \\\n", + "user_id ... \n", + "1 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", + "2 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", + "3 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", + "4 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", + "5 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", + "... ... ... ... ... ... ... ... ... ... ... \n", + "1048 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", + "1050 3.0 ... NaN NaN NaN NaN NaN NaN NaN NaN \n", + "1051 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", + "1052 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", + "1053 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN \n", + "\n", + "movie_id 63992 64716 \n", + "user_id \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "5 NaN NaN \n", + "... ... ... \n", + "1048 NaN NaN \n", + "1050 NaN NaN \n", + "1051 NaN NaN \n", + "1052 NaN NaN \n", + "1053 NaN NaN \n", + "\n", + "[1000 rows x 6673 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다\n", + "user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n", + "user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n", + "movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n", + "user_movie_matrix" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1f34610c", + "metadata": { + "id": "1f34610c" + }, + "outputs": [], + "source": [ + "# 학습에 사용하는 학습용 데이터 안의 사용자와 영화의 조합을 얻는다\n", + "train_keys = movielens_train[[\"user_id\", \"movie_id\"]]\n", + "# 학습용 데이터 안의 평갓값을 학습의 정답 데이터로 얻는다\n", + "train_y = movielens_train.rating.values\n", + "\n", + "# 평갓값을 예측할 테스트용 데이터 안의 사용자와 영화의 조합을 얻는다\n", + "test_keys = movielens_test[[\"user_id\", \"movie_id\"]]\n", + "# 순위 형식의 추천 리스트 작성을 위해 학습용 데이터에 존재하는 모든 사용자와 모든 영화의 조합을 얻는다\n", + "train_all_keys = user_movie_matrix.stack(dropna=False).reset_index()[[\"user_id\", \"movie_id\"]]\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9f5053fe", + "metadata": { + "id": "9f5053fe" + }, + "outputs": [], + "source": [ + "# 특징량을 작성한다\n", + "train_x = train_keys.copy()\n", + "test_x = test_keys.copy()\n", + "train_all_x = train_all_keys.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3b756eca", + "metadata": { + "id": "3b756eca" + }, + "outputs": [], + "source": [ + "# 학습용 데이터에 존재하는 사용자별 평갓값의 최솟값, 최댓값, 평균값\n", + "# 및, 영화별 평갓값의 최솟값, 최댓값, 평균값을 특징량으로 추가한다\n", + "aggregators = [\"min\", \"max\", \"mean\"]\n", + "user_features = movielens_train.groupby(\"user_id\").rating.agg(aggregators).to_dict()\n", + "movie_features = movielens_train.groupby(\"movie_id\").rating.agg(aggregators).to_dict()\n", + "for agg in aggregators:\n", + " train_x[f\"u_{agg}\"] = train_x[\"user_id\"].map(user_features[agg])\n", + " test_x[f\"u_{agg}\"] = test_x[\"user_id\"].map(user_features[agg])\n", + " train_all_x[f\"u_{agg}\"] = train_all_x[\"user_id\"].map(user_features[agg])\n", + " train_x[f\"m_{agg}\"] = train_x[\"movie_id\"].map(movie_features[agg])\n", + " test_x[f\"m_{agg}\"] = test_x[\"movie_id\"].map(movie_features[agg])\n", + " train_all_x[f\"m_{agg}\"] = train_all_x[\"movie_id\"].map(movie_features[agg])\n", + "# 테스트용 데이터에만 존재하는 사용자나 영화의 특징량을, 학습용 데이터 전체의 평균 평갓값으로 채운다\n", + "average_rating = train_y.mean()\n", + "test_x.fillna(average_rating, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3499ae5a", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 1492, + "status": "ok", + "timestamp": 1672119853162, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "3499ae5a", + "outputId": "ae542425-5ea1-46bd-fe3f-b68df0abae71" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + ":7: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " movie_genres[f\"is_{genre}\"] = movie_genres.genre.apply(lambda x: genre in x)\n" + ] + } + ], + "source": [ + "import itertools\n", + "\n", + "# 영화가 특정한 genre인지 나타내는 특징량을 추가한다\n", + "movie_genres = movies[[\"movie_id\", \"genre\"]]\n", + "genres = set(list(itertools.chain(*movie_genres.genre)))\n", + "for genre in genres:\n", + " movie_genres[f\"is_{genre}\"] = movie_genres.genre.apply(lambda x: genre in x)\n", + "movie_genres.drop(\"genre\", axis=1, inplace=True)\n", + "train_x = train_x.merge(movie_genres, on=\"movie_id\")\n", + "test_x = test_x.merge(movie_genres, on=\"movie_id\")\n", + "train_all_x = train_all_x.merge(movie_genres, on=\"movie_id\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eca70ebb", + "metadata": { + "id": "eca70ebb" + }, + "outputs": [], + "source": [ + "# 특징량으로 사용하지 않는 정보는 삭제한다\n", + "train_x = train_x.drop(columns=[\"user_id\", \"movie_id\"])\n", + "test_x = test_x.drop(columns=[\"user_id\", \"movie_id\"])\n", + "train_all_x = train_all_x.drop(columns=[\"user_id\", \"movie_id\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "78bde7fd", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 47235, + "status": "ok", + "timestamp": 1672119900826, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "78bde7fd", + "outputId": "6aa184b5-c138-4343-8e8c-918a5383c6a4" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "RandomForestRegressor(n_jobs=-1, random_state=0)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.ensemble import RandomForestRegressor as RFR\n", + "\n", + "# Random Forest를 사용한 학습\n", + "reg = RFR(n_jobs=-1, random_state=0)\n", + "reg.fit(train_x.values, train_y)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ca01da90", + "metadata": { + "id": "ca01da90" + }, + "outputs": [], + "source": [ + "# 테스트용 데이터 안의 사용와 영화의 조합에 대해 평갓값을 예측한다\n", + "test_pred = reg.predict(test_x.values)\n", + "\n", + "movie_rating_predict = test_keys.copy()\n", + "movie_rating_predict[\"rating_pred\"] = test_pred" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3ec280f6", + "metadata": { + "colab": { + "background_save": true + }, + "id": "3ec280f6", + "outputId": "2757cf67-bb2c-4111-8871-e88cbe01853b" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "defaultdict(list,\n", + " {139: [7986, 6356, 6565, 4270, 6538, 5817, 4828, 3588, 631, 26974],\n", + " 149: [5914, 1672, 1570, 555, 5928, 616, 640, 5996, 1326, 1671],\n", + " 182: [4956,\n", + " 5971,\n", + " 6729,\n", + " 8379,\n", + " 6713,\n", + " 5662,\n", + " 30894,\n", + " 6890,\n", + " 7647,\n", + " 5090],\n", + " 215: [5598, 4626, 4679, 6286, 4458, 4802, 4887, 848, 3274, 5572],\n", + " 281: [8482, 1497, 715, 880, 1483, 4531, 6583, 5472, 6722, 1992],\n", + " 326: [2269, 2211, 2393, 1084, 1643, 1711, 1336, 1186, 1156, 523],\n", + " 351: [6312, 6058, 7458, 7117, 7523, 7340, 6008, 8485, 7836, 8369],\n", + " 357: [56949,\n", + " 56587,\n", + " 59037,\n", + " 13,\n", + " 2569,\n", + " 2243,\n", + " 2993,\n", + " 2013,\n", + " 56801,\n", + " 126],\n", + " 426: [3718, 3035, 3620, 7817, 3892, 3387, 3496, 3223, 3546, 5723],\n", + " 456: [5060, 5634, 5688, 4975, 5909, 5275, 4988, 6568, 1880, 6672],\n", + " 459: [6005,\n", + " 42004,\n", + " 8827,\n", + " 40851,\n", + " 33903,\n", + " 47810,\n", + " 56333,\n", + " 1940,\n", + " 42021,\n", + " 27773],\n", + " 494: [26144, 8722, 7153, 9, 6874, 8191, 7111, 8, 32596, 7030],\n", + " 517: [2770, 3423, 218, 3468, 6772, 6250, 6333, 6005, 3525, 5930],\n", + " 524: [3186, 3338, 3992, 4486, 4535, 3135, 2727, 3939, 2665, 3924],\n", + " 556: [26, 1783, 1265, 1210, 1215, 32011, 58293, 1135, 166, 82],\n", + " 588: [1938, 2898, 2010, 2454, 2824, 2478, 2381, 1809, 1873, 2529],\n", + " 589: [7704, 6375, 25850, 5668, 423, 4701, 1661, 910, 729, 854],\n", + " 590: [59985,\n", + " 6281,\n", + " 51088,\n", + " 5372,\n", + " 32596,\n", + " 5427,\n", + " 39381,\n", + " 53318,\n", + " 8939,\n", + " 7223],\n", + " 601: [6330, 335, 6423, 7150, 8873, 6569, 7075, 8746, 6672, 7025],\n", + " 621: [2043, 2443, 2455, 2103, 2906, 2342, 2492, 2412, 2116, 3008],\n", + " 634: [559, 840, 767, 1350, 1750, 1496, 1704, 1296, 854, 1342],\n", + " 672: [2210, 4272, 1149, 2275, 4926, 1874, 1667, 1370, 4565, 1351],\n", + " 701: [2533, 3270, 3802, 4470, 253, 500, 1203, 1237, 5046, 104],\n", + " 719: [423, 967, 957, 918, 909, 1585, 893, 1574, 969, 1353],\n", + " 745: [1185, 1128, 599, 3, 1759, 116, 5333, 1583, 4634, 691],\n", + " 757: [521, 58306, 60688, 550, 757, 1084, 526, 1218, 273, 53921],\n", + " 775: [8595,\n", + " 6914,\n", + " 31687,\n", + " 8093,\n", + " 8363,\n", + " 8998,\n", + " 58803,\n", + " 8253,\n", + " 32019,\n", + " 6934],\n", + " 780: [4178, 4729, 4108, 4893, 6702, 5529, 4102, 5516, 4483, 4077],\n", + " 785: [605, 423, 579, 466, 801, 326, 518, 880, 270, 1086],\n", + " 788: [1081, 1885, 907, 553, 876, 58047, 54281, 65, 251, 2340],\n", + " 870: [6862, 7375, 7373, 8961, 7368, 7361, 7355, 8981, 3395, 8957],\n", + " 987: [6214, 5114, 6927, 5881, 704, 3760, 5302, 513, 765, 6183],\n", + " 988: [927, 465, 246, 53956, 1525, 55765, 614, 220, 1615, 1518],\n", + " 1020: [2693,\n", + " 2748,\n", + " 3208,\n", + " 3158,\n", + " 2687,\n", + " 2879,\n", + " 3884,\n", + " 3821,\n", + " 42015,\n", + " 45852],\n", + " 1: [100, 854, 449, 1025, 802, 196, 1100, 31689, 685, 1136],\n", + " 22: [26138,\n", + " 6806,\n", + " 9005,\n", + " 26745,\n", + " 8932,\n", + " 6887,\n", + " 8128,\n", + " 7383,\n", + " 8256,\n", + " 26171],\n", + " 26: [520, 4823, 5843, 4845, 4284, 3476, 376, 38, 4296, 4701],\n", + " 30: [4723, 3876, 1498, 2163, 5324, 6412, 5341, 2603, 45722, 1378],\n", + " 34: [7384, 6709, 6590, 7820, 8743, 7068, 6597, 7321, 3549, 6581],\n", + " 38: [881, 4662, 3827, 250, 46, 781, 39381, 1034, 708, 485],\n", + " 50: [5480, 4776, 4772, 4771, 5452, 4768, 4766, 4765, 4757, 4756],\n", + " 53: [6744, 5792, 6429, 6430, 5788, 6436, 5786, 7163, 5785, 7162],\n", + " 54: [48043, 8939, 352, 27790, 1407, 5573, 271, 948, 1556, 4614],\n", + " 67: [2605,\n", + " 61262,\n", + " 55442,\n", + " 4433,\n", + " 54775,\n", + " 3565,\n", + " 57536,\n", + " 47997,\n", + " 3732,\n", + " 34143],\n", + " 71: [58025,\n", + " 51935,\n", + " 47950,\n", + " 58299,\n", + " 62000,\n", + " 48385,\n", + " 5459,\n", + " 52375,\n", + " 56367,\n", + " 279],\n", + " 76: [431, 5, 542, 378, 837, 235, 485, 753, 1045, 555],\n", + " 88: [1713,\n", + " 1574,\n", + " 1018,\n", + " 52717,\n", + " 26729,\n", + " 2003,\n", + " 1636,\n", + " 2194,\n", + " 1940,\n", + " 1747],\n", + " 89: [7764, 7566, 7170, 7176, 7164, 8779, 7292, 8633, 39446, 7167],\n", + " 94: [5494, 4876, 4799, 5668, 6063, 5225, 4806, 4788, 5437, 4774],\n", + " 95: [43871, 862, 61160, 58490, 234, 835, 52279, 361, 681, 378],\n", + " 100: [1471, 1617, 1172, 1170, 1878, 1616, 1154, 1356, 1882, 1365],\n", + " 101: [4418,\n", + " 8907,\n", + " 6993,\n", + " 4488,\n", + " 4789,\n", + " 3881,\n", + " 3968,\n", + " 32076,\n", + " 4164,\n", + " 4560],\n", + " 102: [7739,\n", + " 2929,\n", + " 33193,\n", + " 7771,\n", + " 4160,\n", + " 2889,\n", + " 4017,\n", + " 4161,\n", + " 6892,\n", + " 6884],\n", + " 103: [3435, 3943, 3351, 4384, 3893, 3330, 3359, 4069, 3364, 3716],\n", + " 111: [6886, 8754, 33138, 33312, 19, 60069, 2440, 14, 3165, 911],\n", + " 116: [4521, 7323, 6346, 6204, 8789, 4001, 3189, 4009, 8782, 6441],\n", + " 118: [51091,\n", + " 47629,\n", + " 48780,\n", + " 47970,\n", + " 54256,\n", + " 53953,\n", + " 59315,\n", + " 48516,\n", + " 59985,\n", + " 60522],\n", + " 143: [40148,\n", + " 7168,\n", + " 25995,\n", + " 7297,\n", + " 8270,\n", + " 5379,\n", + " 8913,\n", + " 55280,\n", + " 8784,\n", + " 7156],\n", + " 144: [3627, 3096, 4440, 100, 4366, 3038, 3760, 5004, 3392, 3043],\n", + " 162: [2659, 3342, 2193, 4084, 226, 2130, 3414, 2141, 2607, 88],\n", + " 172: [2512, 3118, 5189, 2639, 3269, 2504, 6724, 4471, 2597, 7000],\n", + " 173: [8016,\n", + " 36525,\n", + " 30820,\n", + " 8905,\n", + " 8605,\n", + " 26491,\n", + " 8125,\n", + " 8131,\n", + " 41997,\n", + " 30848],\n", + " 187: [3300, 4307, 4224, 2474, 4102, 4188, 4405, 3362, 3877, 3287],\n", + " 193: [3841,\n", + " 3147,\n", + " 3684,\n", + " 4231,\n", + " 7084,\n", + " 4007,\n", + " 3038,\n", + " 4350,\n", + " 61132,\n", + " 5949],\n", + " 208: [53953,\n", + " 54256,\n", + " 60037,\n", + " 58303,\n", + " 58418,\n", + " 53999,\n", + " 502,\n", + " 55442,\n", + " 513,\n", + " 58291],\n", + " 210: [3831, 4428, 3978, 3824, 3985, 3896, 3814, 4267, 4371, 3972],\n", + " 214: [535, 463, 436, 1665, 5682, 1554, 6870, 1035, 668, 1658],\n", + " 228: [7139,\n", + " 7211,\n", + " 6870,\n", + " 8609,\n", + " 3628,\n", + " 6884,\n", + " 7084,\n", + " 7216,\n", + " 31594,\n", + " 6874],\n", + " 232: [45880, 197, 2154, 2335, 2027, 1855, 2284, 1640, 2395, 2745],\n", + " 236: [1624, 2278, 2427, 2178, 6614, 5470, 1533, 2033, 3503, 2717],\n", + " 259: [1769, 2834, 2937, 2884, 2286, 2559, 2577, 2669, 2429, 1912],\n", + " 260: [4867, 5685, 6279, 6383, 4722, 6346, 5847, 5522, 5918, 6252],\n", + " 267: [67, 34405, 81, 72, 802, 6241, 5164, 1255, 5334, 6973],\n", + " 268: [425, 5688, 1647, 19, 6875, 441, 1202, 414, 7728, 50872],\n", + " 271: [1020, 519, 970, 1151, 7844, 2410, 1804, 32587, 49530, 7720],\n", + " 274: [31923,\n", + " 7577,\n", + " 5611,\n", + " 5016,\n", + " 48780,\n", + " 5009,\n", + " 4126,\n", + " 48883,\n", + " 26318,\n", + " 5478],\n", + " 287: [64716,\n", + " 4777,\n", + " 4772,\n", + " 4770,\n", + " 4768,\n", + " 4766,\n", + " 4758,\n", + " 4757,\n", + " 4754,\n", + " 4753],\n", + " 292: [411, 501, 215, 101, 4512, 8884, 5362, 2002, 5182, 341],\n", + " 296: [747, 1042, 232, 4163, 4855, 3683, 3574, 5930, 3663, 4352],\n", + " 303: [73, 337, 122, 39, 854, 159, 391, 247, 31, 611],\n", + " 307: [45501,\n", + " 61361,\n", + " 5299,\n", + " 760,\n", + " 48678,\n", + " 59103,\n", + " 3996,\n", + " 4725,\n", + " 1288,\n", + " 43904],\n", + " 310: [58334,\n", + " 44929,\n", + " 805,\n", + " 907,\n", + " 271,\n", + " 60074,\n", + " 42197,\n", + " 7314,\n", + " 8526,\n", + " 1057],\n", + " 315: [7698, 7235, 7325, 6252, 929, 6508, 7937, 6626, 5690, 7757],\n", + " 320: [51939, 43, 7834, 1347, 33677, 5309, 4215, 5101, 21, 5709],\n", + " 332: [8045,\n", + " 31617,\n", + " 7915,\n", + " 8711,\n", + " 52712,\n", + " 45081,\n", + " 33154,\n", + " 50149,\n", + " 5610,\n", + " 6780],\n", + " 339: [6268, 8377, 7287, 8535, 6537, 6315, 6626, 6620, 6969, 6373],\n", + " 343: [4406, 2457, 3069, 3584, 2359, 2395, 1919, 2344, 1111, 3571],\n", + " 355: [5621, 4916, 4921, 5094, 5643, 4903, 5101, 5303, 5855, 5826],\n", + " 364: [5736,\n", + " 4767,\n", + " 52241,\n", + " 27340,\n", + " 26391,\n", + " 5343,\n", + " 6291,\n", + " 6433,\n", + " 5901,\n", + " 51088],\n", + " 365: [2616, 3587, 2605, 2936, 2624, 2693, 3147, 6345, 3330, 3098],\n", + " 368: [7202,\n", + " 8639,\n", + " 7104,\n", + " 31032,\n", + " 8501,\n", + " 7086,\n", + " 2107,\n", + " 8941,\n", + " 1428,\n", + " 7844],\n", + " 381: [6203, 5295, 1642, 1233, 2447, 2023, 6025, 6425, 5193, 5692],\n", + " 382: [7334, 6545, 6810, 5816, 7573, 6646, 5648, 2399, 1942, 6232],\n", + " 383: [2118, 7728, 2110, 2359, 8698, 2926, 2069, 2170, 2431, 3239],\n", + " 391: [2977, 3408, 3705, 3104, 3773, 3543, 3395, 2830, 2837, 2970],\n", + " 396: [2461, 3073, 3284, 2405, 2550, 2921, 2876, 2961, 2410, 3050],\n", + " 398: [813, 3180, 1238, 1279, 7204, 6077, 43919, 748, 3735, 3350],\n", + " 406: [5398,\n", + " 4047,\n", + " 3993,\n", + " 4602,\n", + " 26828,\n", + " 4510,\n", + " 7386,\n", + " 5300,\n", + " 3941,\n", + " 5321],\n", + " 409: [3412,\n", + " 2762,\n", + " 26425,\n", + " 7364,\n", + " 2191,\n", + " 1409,\n", + " 41573,\n", + " 3387,\n", + " 3232,\n", + " 2695],\n", + " 410: [6130, 7075, 2387, 2470, 2570, 17, 2628, 2342, 2005, 6005],\n", + " 416: [1293, 1826, 2530, 1151, 647, 1459, 1799, 1214, 570, 8800],\n", + " 418: [4502,\n", + " 42197,\n", + " 160,\n", + " 896,\n", + " 42009,\n", + " 44665,\n", + " 4641,\n", + " 59725,\n", + " 4677,\n", + " 53000],\n", + " 419: [6772, 3599, 5999, 3752, 3157, 6970, 4257, 6690, 3016, 6525],\n", + " 421: [5572, 5321, 6333, 5648, 5512, 5339, 5688, 5944, 5324, 5651],\n", + " 424: [457, 456, 455, 453, 452, 448, 447, 446, 445, 444],\n", + " 432: [4300,\n", + " 4229,\n", + " 4236,\n", + " 4807,\n", + " 4867,\n", + " 4458,\n", + " 3676,\n", + " 54286,\n", + " 4612,\n", + " 2875],\n", + " 434: [8365,\n", + " 8157,\n", + " 8584,\n", + " 26152,\n", + " 7079,\n", + " 6997,\n", + " 33649,\n", + " 7781,\n", + " 27563,\n", + " 8768],\n", + " 436: [5362, 4739, 207, 165, 4654, 5516, 618, 5913, 219, 70],\n", + " 438: [4187, 4397, 4470, 4169, 4265, 5485, 510, 992, 2363, 4692],\n", + " 441: [1727, 1845, 2798, 2744, 1904, 2409, 2202, 2272, 2512, 1650],\n", + " 446: [870, 1281, 4645, 6166, 1333, 4840, 4580, 4833, 6037, 5472],\n", + " 452: [3774, 3726, 4395, 2676, 4333, 3992, 2073, 3173, 3157, 3740],\n", + " 460: [3580, 4153, 3732, 3564, 3573, 3014, 3653, 2405, 4094, 4637],\n", + " 463: [3552, 3624, 3547, 4274, 4126, 4182, 4622, 4371, 3755, 4063],\n", + " 468: [7058, 5915, 8197, 51925, 459, 42002, 143, 8235, 54995, 188],\n", + " 469: [3504, 3566, 3499, 4792, 4428, 4444, 4144, 3937, 3600, 4714],\n", + " 472: [118, 932, 702, 680, 230, 695, 65, 934, 147, 664],\n", + " 476: [355, 702, 844, 5580, 7440, 27731, 6597, 577, 124, 38992],\n", + " 480: [2333, 1805, 4932, 2446, 4276, 2118, 1814, 2283, 1793, 2906],\n", + " 482: [3161, 3169, 3168, 3155, 3152, 3145, 3142, 3173, 3135, 3133],\n", + " 493: [26064,\n", + " 41569,\n", + " 801,\n", + " 1550,\n", + " 45730,\n", + " 59615,\n", + " 3286,\n", + " 46976,\n", + " 58293,\n", + " 8874],\n", + " 496: [8799, 2590, 2723, 5840, 4600, 2137, 2082, 2545, 2087, 5009],\n", + " 501: [50804,\n", + " 47099,\n", + " 58972,\n", + " 48142,\n", + " 54997,\n", + " 47254,\n", + " 62394,\n", + " 48678,\n", + " 48518,\n", + " 50068],\n", + " 504: [5859, 5992, 6240, 5662, 6405, 6312, 6777, 6063, 6261, 7293],\n", + " 505: [105, 759, 750, 922, 1703, 1287, 1407, 1081, 879, 64],\n", + " 511: [3202, 206, 3733, 3688, 4231, 3086, 4270, 4411, 3306, 3107],\n", + " 516: [31903,\n", + " 54736,\n", + " 3351,\n", + " 4310,\n", + " 2408,\n", + " 4130,\n", + " 2844,\n", + " 4279,\n", + " 4208,\n", + " 3629],\n", + " 525: [2451, 2707, 2540, 540, 2977, 2517, 2397, 2183, 2086, 2252],\n", + " 530: [7355,\n", + " 6664,\n", + " 6540,\n", + " 7820,\n", + " 7287,\n", + " 8661,\n", + " 8426,\n", + " 7748,\n", + " 7036,\n", + " 26138],\n", + " 531: [5423, 6125, 5470, 5333, 6920, 5351, 6020, 5339, 5604, 5662],\n", + " 533: [476, 123, 522, 893, 519, 763, 419, 637, 807, 717],\n", + " 536: [31694,\n", + " 26230,\n", + " 50354,\n", + " 33085,\n", + " 31184,\n", + " 26425,\n", + " 3980,\n", + " 3473,\n", + " 2191,\n", + " 33794],\n", + " 543: [5604, 4783, 5410, 5568, 5472, 369, 4690, 5205, 5841, 843],\n", + " 547: [747, 42, 6990, 8275, 1216, 8732, 26085, 8531, 2071, 7064],\n", + " 549: [4828, 5944, 4643, 5508, 5823, 4837, 6003, 5938, 4821, 5081],\n", + " 553: [5331, 5251, 6718, 5875, 6312, 6584, 6467, 6254, 6423, 5883],\n", + " 558: [270, 2552, 2102, 135, 87, 7265, 6162, 248, 2050, 189],\n", + " 562: [408, 397, 394, 908, 391, 389, 388, 383, 379, 910],\n", + " 567: [875, 1472, 1283, 1398, 635, 1572, 3591, 3742, 4285, 1185],\n", + " 571: [549, 149, 210, 715, 807, 223, 409, 32011, 54780, 94],\n", + " 572: [656, 661, 286, 663, 665, 281, 280, 667, 668, 289],\n", + " 577: [17, 567, 43, 255, 910, 602, 729, 562, 668, 615],\n", + " 581: [2712, 2654, 3169, 2843, 3114, 3780, 3846, 2730, 2886, 2639],\n", + " 585: [1759, 505, 757, 665, 1643, 1735, 688, 1423, 709, 1753],\n", + " 593: [3810, 5139, 3816, 34170, 72, 4876, 4570, 76, 77, 24],\n", + " 604: [49822,\n", + " 53993,\n", + " 58154,\n", + " 34538,\n", + " 26939,\n", + " 58103,\n", + " 34536,\n", + " 26974,\n", + " 58025,\n", + " 27005],\n", + " 605: [3, 4, 2, 5, 6, 2470, 2462, 2656, 2445, 2606],\n", + " 609: [6714, 2336, 5541, 1569, 240, 35, 27801, 2764, 2003, 5663],\n", + " 628: [40723,\n", + " 8375,\n", + " 55729,\n", + " 3358,\n", + " 3289,\n", + " 55402,\n", + " 40870,\n", + " 27722,\n", + " 55247,\n", + " 3379],\n", + " 629: [2207, 1973, 1255, 1256, 1258, 1261, 1263, 1265, 1267, 1272],\n", + " 645: [839, 1278, 122, 1002, 806, 1269, 1283, 729, 1196, 1032],\n", + " 650: [974, 1114, 1440, 923, 2046, 2147, 2824, 2211, 2136, 1592],\n", + " 656: [5546, 4589, 5302, 4735, 6243, 5646, 4711, 5556, 6238, 4898],\n", + " 657: [362, 703, 958, 485, 673, 39, 728, 4164, 313, 4466],\n", + " 669: [4229, 4411, 477, 529, 4298, 4588, 616, 813, 3717, 337],\n", + " 678: [618, 1917, 673, 41863, 906, 1642, 8501, 1888, 957, 1366],\n", + " 683: [8130,\n", + " 6789,\n", + " 7459,\n", + " 7070,\n", + " 7104,\n", + " 8511,\n", + " 6603,\n", + " 27674,\n", + " 7986,\n", + " 27660],\n", + " 688: [8833,\n", + " 7327,\n", + " 7206,\n", + " 8722,\n", + " 7386,\n", + " 25995,\n", + " 5356,\n", + " 32153,\n", + " 6429,\n", + " 7844],\n", + " 689: [8094, 6646, 6484, 7016, 7369, 6718, 6201, 6997, 5930, 7046],\n", + " 693: [1950, 2100, 2460, 2726, 2188, 2187, 2453, 2847, 2849, 2328],\n", + " 716: [39183,\n", + " 26012,\n", + " 39444,\n", + " 27839,\n", + " 40581,\n", + " 31114,\n", + " 26163,\n", + " 8870,\n", + " 46967,\n", + " 41285],\n", + " 720: [2134, 2586, 6356, 731, 485, 2084, 7033, 169, 290, 7095],\n", + " 734: [1444, 5873, 1384, 1940, 6287, 1850, 5588, 6279, 1112, 6639],\n", + " 735: [3303,\n", + " 3831,\n", + " 58295,\n", + " 3168,\n", + " 3964,\n", + " 50153,\n", + " 3578,\n", + " 2889,\n", + " 3729,\n", + " 3618],\n", + " 739: [3106, 3111, 3868, 3061, 4383, 3176, 3334, 3708, 1960, 2090],\n", + " 755: [7067, 7134, 7142, 7150, 7157, 7160, 7161, 7165, 7126, 7166],\n", + " 758: [2123, 952, 941, 1661, 1475, 947, 1087, 1094, 1134, 1633],\n", + " 767: [1404, 905, 1535, 913, 916, 427, 923, 1417, 904, 926],\n", + " 769: [1870, 1271, 1328, 1266, 1605, 1992, 2004, 2232, 2440, 1260],\n", + " 786: [835, 888, 389, 1038, 1379, 423, 328, 419, 1194, 1280],\n", + " 789: [3243, 2813, 3293, 3472, 1483, 3660, 3066, 3963, 2749, 3448],\n", + " 792: [4809,\n", + " 4063,\n", + " 4003,\n", + " 47970,\n", + " 4661,\n", + " 5034,\n", + " 3998,\n", + " 5388,\n", + " 4262,\n", + " 4780],\n", + " 795: [330, 754, 6198, 809, 943, 1421, 5445, 2202, 5433, 5529],\n", + " 798: [2751,\n", + " 3399,\n", + " 2721,\n", + " 3893,\n", + " 2635,\n", + " 3161,\n", + " 27266,\n", + " 3365,\n", + " 32017,\n", + " 6626],\n", + " 799: [4868, 5836, 4799, 4801, 4802, 4803, 5608, 5606, 4809, 4814],\n", + " 802: [1303, 541, 1826, 4583, 5140, 5324, 118, 3439, 4077, 5421],\n", + " 806: [5685, 5508, 4899, 4819, 5452, 5072, 6337, 6430, 4809, 4828],\n", + " 807: [7027,\n", + " 2191,\n", + " 5927,\n", + " 3635,\n", + " 1496,\n", + " 39292,\n", + " 3272,\n", + " 3181,\n", + " 5770,\n", + " 3600],\n", + " 816: [2059, 1923, 1542, 1460, 1872, 1513, 1377, 1822, 2054, 1595],\n", + " 827: [64716,\n", + " 40339,\n", + " 40614,\n", + " 40732,\n", + " 40946,\n", + " 41285,\n", + " 41571,\n", + " 41617,\n", + " 41831,\n", + " 41997],\n", + " 828: [1, 3, 3798, 4941, 4030, 4995, 59141, 6116, 3719, 5047],\n", + " 846: [5109, 4467, 4533, 4475, 5310, 5054, 6197, 4441, 5643, 6093],\n", + " 859: [26163,\n", + " 33312,\n", + " 8581,\n", + " 33358,\n", + " 8575,\n", + " 8542,\n", + " 8535,\n", + " 8532,\n", + " 8531,\n", + " 8528],\n", + " 862: [7227, 3145, 2627, 8698, 2691, 2621, 8970, 2932, 3287, 7147],\n", + " 876: [64716,\n", + " 40581,\n", + " 40614,\n", + " 40723,\n", + " 40732,\n", + " 40870,\n", + " 40946,\n", + " 40955,\n", + " 41527,\n", + " 41716],\n", + " 881: [64716,\n", + " 8991,\n", + " 55290,\n", + " 40870,\n", + " 41585,\n", + " 25766,\n", + " 25769,\n", + " 42007,\n", + " 55094,\n", + " 55063],\n", + " 885: [5411,\n", + " 5327,\n", + " 1190,\n", + " 2409,\n", + " 5893,\n", + " 5291,\n", + " 6530,\n", + " 6857,\n", + " 5418,\n", + " 32296],\n", + " 886: [1841, 1649, 2643, 2538, 2345, 2208, 2471, 2078, 1826, 1940],\n", + " 889: [54190,\n", + " 58154,\n", + " 54268,\n", + " 53921,\n", + " 55247,\n", + " 52950,\n", + " 60514,\n", + " 52042,\n", + " 56775,\n", + " 52283],\n", + " 890: [31705,\n", + " 40581,\n", + " 40574,\n", + " 40412,\n", + " 40278,\n", + " 40148,\n", + " 54004,\n", + " 39715,\n", + " 54259,\n", + " 54268],\n", + " 891: [5360, 57669, 34153, 144, 197, 391, 148, 1011, 54995, 688],\n", + " 896: [4519, 4525, 5194, 4585, 5373, 6044, 7002, 4467, 4767, 5893],\n", + " 897: [3556, 4383, 4928, 2340, 3050, 1080, 539, 239, 641, 597],\n", + " 898: [7366,\n", + " 8987,\n", + " 7487,\n", + " 8916,\n", + " 7355,\n", + " 34162,\n", + " 7372,\n", + " 27391,\n", + " 7338,\n", + " 8493],\n", + " 908: [60069,\n", + " 58998,\n", + " 56915,\n", + " 1042,\n", + " 1731,\n", + " 57464,\n", + " 58492,\n", + " 800,\n", + " 57522,\n", + " 55288],\n", + " 922: [3102, 3246, 3453, 2910, 2905, 2806, 2648, 2576, 2993, 2823],\n", + " 930: [59016,\n", + " 58490,\n", + " 54736,\n", + " 54612,\n", + " 54503,\n", + " 54290,\n", + " 58655,\n", + " 54281,\n", + " 58964,\n", + " 58975],\n", + " 938: [1625, 2328, 1375, 1437, 1336, 2037, 5334, 5416, 2219, 1342],\n", + " 956: [6883, 6436, 8235, 7706, 6232, 7986, 7117, 6212, 7618, 6067],\n", + " 958: [26870,\n", + " 7389,\n", + " 1484,\n", + " 2446,\n", + " 1574,\n", + " 1881,\n", + " 25777,\n", + " 43560,\n", + " 1493,\n", + " 2078],\n", + " 968: [4082, 4561, 4559, 4558, 4556, 4547, 4534, 4531, 4527, 4526],\n", + " 977: [1272, 810, 496, 378, 579, 1093, 183, 269, 889, 994],\n", + " 990: [2559, 4392, 3175, 2971, 3809, 4681, 3022, 4945, 3755, 4045],\n", + " 996: [688, 96, 4443, 4285, 3706, 3768, 33, 4247, 5016, 649],\n", + " 1004: [3343,\n", + " 2857,\n", + " 3770,\n", + " 2788,\n", + " 2775,\n", + " 3285,\n", + " 2794,\n", + " 3491,\n", + " 2799,\n", + " 3104],\n", + " 1005: [2678, 917, 910, 1422, 1663, 2075, 755, 1038, 1794, 1298],\n", + " 1008: [44195,\n", + " 52975,\n", + " 56801,\n", + " 53189,\n", + " 49132,\n", + " 56156,\n", + " 56915,\n", + " 33193,\n", + " 51709,\n", + " 30816],\n", + " 1029: [6558,\n", + " 7771,\n", + " 6548,\n", + " 4173,\n", + " 26148,\n", + " 26122,\n", + " 3707,\n", + " 4019,\n", + " 59615,\n", + " 46972],\n", + " 1037: [2241,\n", + " 2084,\n", + " 2076,\n", + " 2075,\n", + " 2070,\n", + " 2067,\n", + " 2066,\n", + " 2065,\n", + " 2062,\n", + " 2060],\n", + " 1050: [5752,\n", + " 4719,\n", + " 5268,\n", + " 4753,\n", + " 6020,\n", + " 5118,\n", + " 5046,\n", + " 5603,\n", + " 5172,\n", + " 6192],\n", + " 4: [58246, 5875, 3105, 34338, 5398, 4990, 2392, 5298, 1144, 80],\n", + " 8: [1769, 7697, 27873, 2048, 1707, 1747, 2420, 2507, 1897, 1924],\n", + " 18: [1725, 2243, 1496, 1801, 1511, 1676, 1499, 1806, 1997, 1854],\n", + " 36: [8010, 6540, 5852, 7349, 6305, 5215, 7000, 6785, 4428, 44193],\n", + " 47: [1631, 996, 4127, 4405, 3316, 4646, 3453, 3371, 2841, 3797],\n", + " 59: [7, 1136, 933, 203, 7448, 6626, 176, 6271, 7012, 364],\n", + " 62: [5472, 354, 4381, 572, 5139, 4069, 4954, 702, 5307, 1581],\n", + " 77: [3269, 2798, 6291, 2738, 5577, 3428, 6231, 5617, 3713, 6789],\n", + " 79: [3729, 544, 3468, 4323, 3638, 3473, 3487, 411, 4510, 522],\n", + " 80: [3936, 5382, 3250, 4788, 3190, 3402, 2778, 3654, 7201, 1609],\n", + " 119: [56788,\n", + " 8874,\n", + " 49647,\n", + " 8969,\n", + " 26198,\n", + " 3816,\n", + " 8864,\n", + " 52241,\n", + " 33085,\n", + " 47778],\n", + " 122: [1298, 839, 764, 1427, 1723, 778, 1091, 757, 741, 1865],\n", + " 125: [6254, 2009, 732, 6191, 2515, 8781, 1902, 1844, 7003, 1227],\n", + " 126: [6886, 2809, 2459, 2421, 2606, 2382, 2390, 2971, 2867, 5081],\n", + " 132: [2400, 7636, 3773, 6811, 1170, 6729, 3500, 2294, 2351, 2529],\n", + " 141: [1318,\n", + " 4307,\n", + " 674,\n", + " 1233,\n", + " 33794,\n", + " 45081,\n", + " 54612,\n", + " 58367,\n", + " 1482,\n", + " 8154],\n", + " 154: [3103, 3917, 4447, 2649, 4267, 3463, 4217, 2953, 3247, 5092],\n", + " 155: [515, 571, 1078, 1212, 509, 1234, 870, 1173, 674, 1533],\n", + " 163: [8623, 5186, 8254, 4543, 5954, 7265, 3839, 6639, 8199, 7366],\n", + " 164: [6235,\n", + " 5706,\n", + " 53894,\n", + " 6813,\n", + " 6129,\n", + " 6252,\n", + " 5823,\n", + " 6486,\n", + " 7151,\n", + " 57243],\n", + " 170: [4223, 585, 84, 921, 31427, 4781, 2917, 616, 678, 8535],\n", + " 171: [3260,\n", + " 3328,\n", + " 1513,\n", + " 25777,\n", + " 897,\n", + " 2749,\n", + " 1217,\n", + " 8740,\n", + " 58105,\n", + " 1499],\n", + " 176: [1690, 1671, 2874, 7730, 1608, 180, 506, 314, 2755, 3308],\n", + " 190: [1369, 599, 5974, 1887, 582, 3866, 3057, 181, 3943, 1893],\n", + " 197: [49824,\n", + " 53000,\n", + " 5102,\n", + " 58078,\n", + " 5570,\n", + " 5741,\n", + " 31101,\n", + " 52694,\n", + " 5440,\n", + " 4857],\n", + " 198: [1497, 2107, 2104, 2097, 2091, 2090, 2088, 2087, 2108, 2083],\n", + " 199: [93, 6210, 474, 200, 525, 7319, 7009, 8040, 2972, 2533],\n", + " 212: [7222, 6410, 6423, 8404, 6371, 6392, 6951, 746, 5629, 4803],\n", + " 221: [1547, 920, 46972, 26055, 97, 262, 507, 6, 2155, 138],\n", + " 223: [6412, 2921, 3597, 6510, 5198, 4864, 5749, 968, 476, 6729],\n", + " 226: [1096, 1586, 2275, 1699, 347, 2605, 2237, 1960, 1570, 1824],\n", + " 241: [630, 1393, 920, 1918, 1264, 42011, 8529, 1673, 5636, 1653],\n", + " 247: [1352, 581, 1875, 4370, 4422, 5454, 5305, 5152, 4889, 5603],\n", + " 249: [4012,\n", + " 4628,\n", + " 4748,\n", + " 4959,\n", + " 4391,\n", + " 2749,\n", + " 4317,\n", + " 5036,\n", + " 42018,\n", + " 26203],\n", + " 254: [2440, 2328, 2908, 1079, 2406, 3114, 3189, 2253, 2399, 2527],\n", + " 264: [3903, 2854, 3566, 3240, 3005, 3197, 2761, 2078, 2566, 6270],\n", + " 273: [60753, 2015, 4527, 33669, 26, 3824, 3707, 31, 1224, 4721],\n", + " 275: [6228, 4578, 5529, 2771, 4035, 2162, 3240, 2105, 3950, 2059],\n", + " 276: [4265,\n", + " 4512,\n", + " 4504,\n", + " 59729,\n", + " 4065,\n", + " 37731,\n", + " 6713,\n", + " 5425,\n", + " 719,\n", + " 7206],\n", + " 293: [45852,\n", + " 59900,\n", + " 48560,\n", + " 48416,\n", + " 48385,\n", + " 48326,\n", + " 48319,\n", + " 48262,\n", + " 48142,\n", + " 48043],\n", + " 294: [137, 103, 102, 101, 204, 206, 96, 94, 208, 92],\n", + " 295: [26, 614, 7035, 6221, 525, 216, 7161, 7418, 452, 474],\n", + " 318: [2045, 1660, 909, 333, 893, 1703, 724, 563, 6374, 422],\n", + " 321: [8188, 6965, 7349, 394, 5177, 8981, 8482, 6413, 5780, 873],\n", + " 345: [6280, 8201, 5404, 4465, 8520, 6180, 6314, 7069, 6620, 6550],\n", + " 346: [55830,\n", + " 31000,\n", + " 3025,\n", + " 2893,\n", + " 2436,\n", + " 3289,\n", + " 2849,\n", + " 49772,\n", + " 2456,\n", + " 3048],\n", + " 348: [5140, 6152, 8859, 4499, 6130, 213, 42718, 639, 1401, 7708],\n", + " 349: [3667,\n", + " 4350,\n", + " 4895,\n", + " 3531,\n", + " 27912,\n", + " 4167,\n", + " 55276,\n", + " 3938,\n", + " 47997,\n", + " 4534],\n", + " 354: [831, 1172, 1425, 6890, 7068, 3961, 1216, 664, 1784, 6168],\n", + " 359: [5480, 5387, 4085, 6213, 4979, 6714, 4711, 4396, 3947, 4102],\n", + " 366: [8196,\n", + " 31431,\n", + " 32587,\n", + " 8948,\n", + " 52668,\n", + " 8832,\n", + " 26686,\n", + " 45668,\n", + " 51088,\n", + " 43871],\n", + " 369: [1895, 1814, 2296, 2346, 2643, 2868, 2849, 2398, 2024, 2130],\n", + " 384: [561, 405, 886, 888, 889, 389, 896, 383, 897, 379],\n", + " 390: [34536,\n", + " 1249,\n", + " 58347,\n", + " 1395,\n", + " 2238,\n", + " 2208,\n", + " 1747,\n", + " 1969,\n", + " 1255,\n", + " 1266],\n", + " 392: [4878, 4641, 5194, 4809, 4574, 4569, 4749, 4563, 4566, 5276],\n", + " 403: [6380, 5588, 5496, 6300, 6811, 5971, 5501, 6525, 5483, 4826],\n", + " 407: [6039, 6180, 6897, 6818, 6045, 4517, 7073, 5095, 5028, 6008],\n", + " 414: [491, 2276, 2342, 3217, 574, 254, 3243, 735, 2283, 2791],\n", + " 431: [56274,\n", + " 40851,\n", + " 37720,\n", + " 37739,\n", + " 62000,\n", + " 55247,\n", + " 36509,\n", + " 37380,\n", + " 49910,\n", + " 58418],\n", + " 454: [7380,\n", + " 1620,\n", + " 26152,\n", + " 8228,\n", + " 7562,\n", + " 26082,\n", + " 2273,\n", + " 26696,\n", + " 8011,\n", + " 8970],\n", + " 465: [39715,\n", + " 3844,\n", + " 3039,\n", + " 33585,\n", + " 3825,\n", + " 3250,\n", + " 43560,\n", + " 4040,\n", + " 47423,\n", + " 39234],\n", + " 481: [44929,\n", + " 4835,\n", + " 4765,\n", + " 26269,\n", + " 48982,\n", + " 57243,\n", + " 6346,\n", + " 5449,\n", + " 4941,\n", + " 26375],\n", + " 485: [4571, 3746, 5008, 2054, 1261, 5135, 3230, 2496, 799, 78],\n", + " 503: [2472, 2929, 3060, 2407, 2884, 2728, 3340, 2413, 2396, 628],\n", + " 513: [2301, 2337, 1772, 2066, 1671, 1976, 2229, 1913, 1723, 1450],\n", + " 545: [2411, 2266, 1805, 1793, 2541, 1911, 1946, 2744, 2455, 2798],\n", + " 552: [310, 3333, 2727, 4184, 4418, 229, 3271, 176, 3908, 3487],\n", + " 554: [51931,\n", + " 4067,\n", + " 4964,\n", + " 52579,\n", + " 49793,\n", + " 55269,\n", + " 52604,\n", + " 55363,\n", + " 57532,\n", + " 55805],\n", + " 555: [4806, 5389, 4695, 5902, 5903, 5388, 5912, 5381, 5896, 5372],\n", + " 561: [60649,\n", + " 59725,\n", + " 59727,\n", + " 59729,\n", + " 59795,\n", + " 59333,\n", + " 59315,\n", + " 59306,\n", + " 60069,\n", + " 59141],\n", + " 565: [6784,\n", + " 7104,\n", + " 3551,\n", + " 5958,\n", + " 8966,\n", + " 26303,\n", + " 7386,\n", + " 6522,\n", + " 2334,\n", + " 3045],\n", + " 591: [5817, 6880, 5936, 7396, 191, 6684, 5923, 7101, 7228, 6319],\n", + " 617: [4059, 4349, 4043, 5352, 4888, 4131, 5462, 4509, 4296, 4226],\n", + " 622: [1748, 1094, 1500, 2021, 1872, 1189, 2088, 3668, 2297, 3598],\n", + " 623: [45668,\n", + " 50802,\n", + " 53123,\n", + " 48304,\n", + " 47997,\n", + " 52458,\n", + " 54513,\n", + " 59615,\n", + " 60514,\n", + " 52462],\n", + " 633: [297, 246, 765, 712, 316, 433, 234, 469, 428, 836],\n", + " 636: [3981,\n", + " 4705,\n", + " 7166,\n", + " 8910,\n", + " 8782,\n", + " 30898,\n", + " 39052,\n", + " 39715,\n", + " 162,\n", + " 8266],\n", + " 638: [2242, 2920, 2429, 2480, 2255, 2396, 2245, 3394, 2517, 3104],\n", + " 641: [5496, 4880, 5670, 5963, 5313, 5231, 5439, 5584, 4792, 4909],\n", + " 646: [1232, 470, 1696, 2460, 1921, 1704, 2887, 2806, 1051, 2437],\n", + " 654: [5120, 5459, 5391, 6743, 5398, 5768, 6239, 6812, 6777, 6448],\n", + " 655: [1890, 2379, 876, 1336, 443, 2252, 1688, 452, 1421, 613],\n", + " 658: [6786, 5783, 6754, 6645, 4090, 7019, 2827, 6212, 3618, 6794],\n", + " 660: [8691, 7020, 111, 709, 536, 495, 279, 671, 632, 243],\n", + " 661: [7844,\n", + " 26558,\n", + " 1723,\n", + " 1654,\n", + " 2154,\n", + " 7697,\n", + " 31026,\n", + " 26052,\n", + " 2338,\n", + " 7624],\n", + " 677: [3964, 4828, 2699, 3464, 3953, 3948, 4174, 4807, 4193, 5427],\n", + " 714: [6352, 5264, 6714, 6184, 5431, 5272, 5367, 5147, 5733, 5840],\n", + " 715: [494, 1147, 383, 1611, 116, 180, 362, 1296, 993, 405],\n", + " 723: [2488, 1635, 2641, 2152, 1912, 1623, 2188, 2102, 1695, 1586],\n", + " 731: [1145,\n", + " 33615,\n", + " 32019,\n", + " 51931,\n", + " 2323,\n", + " 55363,\n", + " 1096,\n", + " 53956,\n", + " 44761,\n", + " 31923],\n", + " 742: [34323,\n", + " 53752,\n", + " 33085,\n", + " 53921,\n", + " 32892,\n", + " 32627,\n", + " 53956,\n", + " 32600,\n", + " 32591,\n", + " 32584],\n", + " 743: [671, 674, 681, 691, 692, 694, 695, 664, 56145, 707],\n", + " 752: [6385, 5448, 5051, 5504, 4787, 4803, 5703, 5630, 5090, 5078],\n", + " 772: [4262, 3724, 4323, 3795, 4477, 4047, 1301, 4782, 1994, 3882],\n", + " 814: [2952,\n", + " 2962,\n", + " 3707,\n", + " 3022,\n", + " 4166,\n", + " 30822,\n", + " 3249,\n", + " 3605,\n", + " 47644,\n", + " 4193],\n", + " 823: [5136, 5072, 5596, 5086, 5588, 4443, 5099, 4570, 4441, 5101],\n", + " 826: [5664, 6777, 7454, 7215, 2204, 6748, 5867, 5927, 2374, 1609],\n", + " 833: [38304,\n", + " 8852,\n", + " 33817,\n", + " 34534,\n", + " 49932,\n", + " 8970,\n", + " 44849,\n", + " 44193,\n", + " 54780,\n", + " 26939],\n", + " 838: [4844, 4128, 4676, 4618, 4728, 4210, 4229, 5377, 5289, 5074],\n", + " 842: [332, 331, 330, 320, 318, 317, 315, 336, 314, 307],\n", + " 852: [2535, 2026, 2024, 2023, 2022, 2015, 2009, 2029, 2008, 2002],\n", + " 878: [24, 30, 42, 12, 9, 35, 43, 44, 5, 4],\n", + " 887: [64716,\n", + " 62801,\n", + " 63113,\n", + " 62803,\n", + " 62394,\n", + " 62293,\n", + " 62344,\n", + " 61323,\n", + " 62113,\n", + " 61361],\n", + " 895: [1507, 2289, 2727, 6639, 5483, 7311, 6294, 1855, 2706, 2379],\n", + " 899: [6251, 6810, 6408, 6530, 6920, 7570, 7153, 6342, 7226, 7326],\n", + " 902: [2423, 2023, 55, 371, 2469, 3064, 3006, 108, 196, 337],\n", + " 907: [3970, 7260, 4776, 4240, 7570, 8870, 5237, 3962, 5358, 7250],\n", + " 928: [178, 41617, 602, 37475, 564, 759, 555, 42718, 324, 56176],\n", + " 936: [4807, 4245, 5460, 4467, 5219, 5495, 5226, 4700, 4545, 4511],\n", + " 964: [3593, 5603, 5527, 5784, 4033, 4094, 328, 512, 4816, 5202],\n", + " 970: [5529, 6577, 4830, 6584, 4734, 6686, 7791, 5621, 5743, 4918],\n", + " 972: [619, 1079, 1127, 5193, 1862, 3766, 1255, 2966, 4276, 4418],\n", + " 1001: [5928,\n", + " 6287,\n", + " 6579,\n", + " 6283,\n", + " 6281,\n", + " 7069,\n", + " 6279,\n", + " 7067,\n", + " 7072,\n", + " 7065],\n", + " 1013: [3576,\n", + " 3824,\n", + " 4019,\n", + " 4720,\n", + " 4595,\n", + " 3573,\n", + " 3557,\n", + " 4094,\n", + " 4496,\n", + " 4541],\n", + " 1018: [3688,\n", + " 3093,\n", + " 1324,\n", + " 3633,\n", + " 3088,\n", + " 3152,\n", + " 3079,\n", + " 3245,\n", + " 1156,\n", + " 3252],\n", + " 1028: [1131, 568, 628, 1083, 563, 556, 728, 737, 1784, 889],\n", + " 1031: [1873,\n", + " 1855,\n", + " 1858,\n", + " 1866,\n", + " 1867,\n", + " 1872,\n", + " 1875,\n", + " 1878,\n", + " 1879,\n", + " 1882],\n", + " 1035: [1623, 1476, 1135, 942, 1935, 1178, 1551, 1658, 1985, 5749],\n", + " 1038: [4903,\n", + " 4846,\n", + " 5065,\n", + " 4251,\n", + " 4531,\n", + " 5423,\n", + " 4341,\n", + " 4855,\n", + " 4368,\n", + " 5068],\n", + " 1045: [177, 267, 32296, 7720, 8019, 38499, 8375, 26138, 237, 64],\n", + " 1046: [4749,\n", + " 7410,\n", + " 6271,\n", + " 5373,\n", + " 6259,\n", + " 5525,\n", + " 5072,\n", + " 5568,\n", + " 5312,\n", + " 5445],\n", + " 35: [3342, 6370, 5448, 1357, 2141, 5521, 2643, 906, 7073, 6666],\n", + " 72: [258, 508, 608, 131, 443, 504, 24, 537, 78, 531],\n", + " 91: [3117, 455, 3056, 242, 2191, 4801, 2910, 501, 634, 2692],\n", + " 106: [8464, 7065, 6466, 7247, 830, 7117, 6973, 2188, 8891, 7044],\n", + " 128: [3217, 5147, 76, 790, 2533, 2212, 5092, 2550, 49822, 3062],\n", + " 158: [3010,\n", + " 3518,\n", + " 3168,\n", + " 2879,\n", + " 3469,\n", + " 3547,\n", + " 3329,\n", + " 3666,\n", + " 55288,\n", + " 3760],\n", + " 160: [8633,\n", + " 33838,\n", + " 26425,\n", + " 8810,\n", + " 2599,\n", + " 8865,\n", + " 3221,\n", + " 8405,\n", + " 7116,\n", + " 7841],\n", + " 175: [58047,\n", + " 34198,\n", + " 51884,\n", + " 3661,\n", + " 4442,\n", + " 39446,\n", + " 6974,\n", + " 7941,\n", + " 4254,\n", + " 6035],\n", + " 196: [4405, 4475, 4624, 4338, 5272, 5896, 5039, 5787, 4389, 4981],\n", + " 203: [6658, 6552, 7347, 3514, 926, 4063, 4204, 26138, 7263, 3921],\n", + " 206: [4169, 3363, 2561, 389, 372, 2876, 2255, 2880, 911, 3122],\n", + " 207: [2094,\n", + " 43396,\n", + " 2084,\n", + " 2430,\n", + " 1412,\n", + " 1299,\n", + " 1875,\n", + " 2526,\n", + " 2363,\n", + " 2072],\n", + " 255: [3970, 949, 2138, 4511, 25866, 2707, 7260, 1470, 4125, 4396],\n", + " 265: [7036, 6785, 7334, 6899, 39, 7314, 7587, 6286, 7116, 6672],\n", + " 340: [3091,\n", + " 2479,\n", + " 3574,\n", + " 3067,\n", + " 2938,\n", + " 56367,\n", + " 2460,\n", + " 2606,\n", + " 3095,\n", + " 52973],\n", + " 404: [4482, 2025, 3103, 3190, 5117, 4467, 4541, 4639, 4476, 3889],\n", + " 433: [227, 280, 7179, 185, 340, 7450, 7300, 511, 34, 7991],\n", + " 440: [712, 14, 1180, 5, 4, 1078, 239, 556, 32721, 59387],\n", + " 444: [4082, 7318, 7316, 7311, 7310, 7308, 7307, 4142, 4144, 4146],\n", + " 450: [1541, 1633, 2103, 2104, 1631, 1627, 2108, 2110, 2111, 2112],\n", + " 479: [8959,\n", + " 7030,\n", + " 36537,\n", + " 31770,\n", + " 7334,\n", + " 7706,\n", + " 26303,\n", + " 7293,\n", + " 32598,\n", + " 7566],\n", + " 491: [8261, 7060, 6978, 27, 8042, 8526, 8784, 8712, 2561, 2875],\n", + " 506: [51939,\n", + " 55451,\n", + " 5951,\n", + " 59729,\n", + " 36537,\n", + " 7834,\n", + " 39421,\n", + " 50153,\n", + " 31221,\n", + " 55946],\n", + " 523: [7045,\n", + " 7573,\n", + " 8930,\n", + " 7891,\n", + " 7440,\n", + " 6800,\n", + " 6770,\n", + " 6615,\n", + " 25923,\n", + " 8643],\n", + " 539: [7828,\n", + " 33660,\n", + " 5971,\n", + " 7444,\n", + " 7577,\n", + " 6378,\n", + " 51575,\n", + " 7284,\n", + " 5981,\n", + " 6997],\n", + " 541: [4182, 4612, 4611, 4602, 4600, 4599, 4598, 4595, 4591, 4589],\n", + " 616: [2833, 4881, 2842, 5731, 2841, 5726, 2837, 4155, 5723, 3978],\n", + " 647: [893, 1641, 2847, 982, 2120, 2130, 1645, 2856, 2509, 2168],\n", + " 659: [2761, 2049, 1539, 1372, 1431, 1504, 2559, 3206, 1722, 914],\n", + " 695: [52712,\n", + " 47629,\n", + " 56775,\n", + " 42011,\n", + " 60069,\n", + " 42217,\n", + " 47254,\n", + " 47518,\n", + " 45728,\n", + " 53519],\n", + " 700: [44022,\n", + " 31270,\n", + " 27741,\n", + " 49772,\n", + " 45442,\n", + " 60286,\n", + " 34048,\n", + " 50685,\n", + " 32179,\n", + " 31225],\n", + " 707: [7118,\n", + " 8241,\n", + " 7032,\n", + " 8447,\n", + " 8813,\n", + " 7038,\n", + " 7070,\n", + " 2051,\n", + " 34148,\n", + " 1258],\n", + " 748: [1951, 2394, 2353, 5244, 5852, 4964, 2514, 2114, 1881, 2021],\n", + " 759: [2128, 2312, 2420, 2385, 2244, 2097, 1431, 1439, 2329, 1746],\n", + " 784: [106, 3184, 3355, 3189, 3949, 3470, 3181, 3130, 3257, 3361],\n", + " 790: [3734,\n", + " 8825,\n", + " 47099,\n", + " 53894,\n", + " 3128,\n", + " 3870,\n", + " 3689,\n", + " 8798,\n", + " 3569,\n", + " 4062],\n", + " 835: [50149,\n", + " 48412,\n", + " 42723,\n", + " 48319,\n", + " 46347,\n", + " 27882,\n", + " 57243,\n", + " 56251,\n", + " 7701,\n", + " 30707],\n", + " 844: [78, 76, 31705, 8636, 27, 245, 8951, 8957, 27660, 7983],\n", + " 871: [808, 194, 3244, 3572, 2797, 3095, 2755, 3138, 2616, 3076],\n", + " 875: [6020, 7445, 7451, 7456, 7459, 7461, 6405, 7484, 7489, 7560],\n", + " 892: [1063, 426, 1525, 953, 918, 972, 4911, 1230, 869, 537],\n", + " 919: [1525, 1585, 1535, 1970, 2306, 2536, 2095, 1929, 1431, 1363],\n", + " 935: [6057, 6808, 6247, 6855, 5540, 5357, 5685, 6027, 5099, 6592],\n", + " 942: [4021, 3559, 2892, 3464, 4033, 2786, 3739, 2752, 4038, 1888],\n", + " 960: [5097, 5297, 4519, 5034, 4441, 5625, 4696, 4834, 4458, 4426],\n", + " 1006: [4111,\n", + " 3763,\n", + " 56339,\n", + " 4916,\n", + " 4710,\n", + " 44828,\n", + " 4336,\n", + " 44759,\n", + " 4641,\n", + " 3596],\n", + " 1026: [5820,\n", + " 4929,\n", + " 5783,\n", + " 5782,\n", + " 5220,\n", + " 5768,\n", + " 5740,\n", + " 5739,\n", + " 5736,\n", + " 5734],\n", + " 1047: [8722,\n", + " 8268,\n", + " 7062,\n", + " 7263,\n", + " 6980,\n", + " 6995,\n", + " 6988,\n", + " 31903,\n", + " 33437,\n", + " 8057],\n", + " 65: [1565, 4936, 6711, 5539, 320, 2334, 7364, 5194, 4188, 5103],\n", + " 135: [3168, 6179, 3105, 6816, 6896, 155, 3100, 6025, 35, 7072],\n", + " 152: [535, 4959, 540, 818, 5479, 5483, 594, 762, 4317, 4994],\n", + " 166: [1321,\n", + " 34271,\n", + " 6181,\n", + " 44195,\n", + " 2064,\n", + " 1958,\n", + " 5597,\n", + " 3171,\n", + " 1461,\n", + " 48698],\n", + " 179: [412, 904, 7620, 27834, 849, 347, 341, 1277, 33493, 26492],\n", + " 188: [3649, 3013, 2404, 4152, 4092, 3780, 2523, 4506, 4299, 2298],\n", + " 217: [8542,\n", + " 32325,\n", + " 7810,\n", + " 8711,\n", + " 8379,\n", + " 7836,\n", + " 49280,\n", + " 26055,\n", + " 8800,\n", + " 40629],\n", + " 253: [6042, 5966, 120, 8128, 8601, 2539, 5959, 1953, 7892, 7161],\n", + " 262: [2925,\n", + " 54272,\n", + " 7895,\n", + " 3726,\n", + " 4034,\n", + " 33880,\n", + " 60074,\n", + " 55729,\n", + " 3125,\n", + " 53322],\n", + " 277: [4982, 3604, 2925, 1282, 4960, 4792, 1033, 4234, 1592, 1127],\n", + " 289: [4535, 762, 4543, 3194, 3925, 1375, 3785, 1013, 3734, 1754],\n", + " 300: [1641, 1156, 1087, 1804, 2062, 1092, 1400, 5011, 1081, 1592],\n", + " 302: [4437,\n", + " 58047,\n", + " 57522,\n", + " 4508,\n", + " 59795,\n", + " 57669,\n", + " 7096,\n", + " 5285,\n", + " 5081,\n", + " 57536],\n", + " 308: [393, 101, 466, 270, 253, 302, 42, 191, 114, 8607],\n", + " 311: [1136, 634, 568, 463, 22, 1264, 103, 1533, 930, 573],\n", + " 328: [8607,\n", + " 7172,\n", + " 33681,\n", + " 3767,\n", + " 7292,\n", + " 4356,\n", + " 60943,\n", + " 7254,\n", + " 31594,\n", + " 7704],\n", + " 329: [3078, 2884, 3646, 3133, 4290, 3044, 2898, 3174, 4700, 2950],\n", + " 344: [7386,\n", + " 3876,\n", + " 3939,\n", + " 40962,\n", + " 45183,\n", + " 7572,\n", + " 8576,\n", + " 2985,\n", + " 7585,\n", + " 34532],\n", + " 347: [266, 45028, 48774, 7293, 3479, 129, 2715, 3587, 140, 54736],\n", + " 358: [6753, 6881, 362, 7934, 6660, 8722, 7365, 6867, 8943, 6631],\n", + " 474: [1871,\n", + " 60037,\n", + " 2374,\n", + " 6005,\n", + " 55276,\n", + " 3014,\n", + " 4011,\n", + " 7003,\n", + " 6708,\n", + " 6777],\n", + " 483: [6567, 6077, 6322, 6067, 7284, 7587, 7585, 6909, 6062, 6323],\n", + " 509: [3247, 4928, 3451, 3365, 3102, 3316, 2448, 3412, 5954, 2429],\n", + " 578: [4143, 4541, 4695, 4433, 3928, 5294, 4733, 5014, 4613, 3980],\n", + " 643: [319, 321, 136, 137, 317, 313, 144, 145, 146, 312],\n", + " 679: [27834,\n", + " 55063,\n", + " 8207,\n", + " 6653,\n", + " 4390,\n", + " 4570,\n", + " 38798,\n", + " 4583,\n", + " 4873,\n", + " 4849],\n", + " 680: [4603, 4799, 1326, 5391, 4677, 4768, 4994, 231, 981, 240],\n", + " 691: [2151,\n", + " 1485,\n", + " 49824,\n", + " 59729,\n", + " 1810,\n", + " 1670,\n", + " 58047,\n", + " 2130,\n", + " 54513,\n", + " 45183],\n", + " 702: [1236, 573, 517, 1145, 1388, 511, 474, 1715, 934, 1031],\n", + " 708: [3677,\n", + " 2876,\n", + " 54290,\n", + " 1673,\n", + " 2423,\n", + " 52287,\n", + " 1983,\n", + " 2365,\n", + " 58299,\n", + " 394],\n", + " 730: [6124, 6378, 8195, 6858, 8392, 8275, 7587, 7831, 6918, 7284],\n", + " 751: [1799, 2516, 2956, 1931, 2331, 2493, 1913, 2094, 2520, 5202],\n", + " 773: [6856, 6568, 7191, 6567, 5765, 6561, 6558, 7177, 5743, 6554],\n", + " 803: [1178, 1024, 1965, 1171, 2058, 2105, 2026, 1585, 1898, 1016],\n", + " 809: [7454, 8641, 8640, 6795, 6794, 6793, 6791, 6789, 8623, 6784],\n", + " 820: [46850,\n", + " 8980,\n", + " 33826,\n", + " 30818,\n", + " 39449,\n", + " 33162,\n", + " 46970,\n", + " 32632,\n", + " 42728,\n", + " 48997],\n", + " 824: [4082, 3646, 3643, 4208, 4210, 4211, 3639, 4215, 4216, 4218],\n", + " 863: [5792, 4406, 5125, 5692, 4974, 4561, 4511, 4951, 4915, 5147],\n", + " 865: [5327, 5404, 6223, 5638, 5317, 5580, 5996, 5680, 6315, 6078],\n", + " 867: [3721, 4392, 4139, 3566, 3420, 4511, 4477, 4565, 3688, 3849],\n", + " 911: [2042,\n", + " 8833,\n", + " 38886,\n", + " 54513,\n", + " 2560,\n", + " 1895,\n", + " 2535,\n", + " 8426,\n", + " 1912,\n", + " 2406],\n", + " 915: [8972,\n", + " 7925,\n", + " 7897,\n", + " 7895,\n", + " 8620,\n", + " 7883,\n", + " 6814,\n", + " 7840,\n", + " 26116,\n", + " 7828],\n", + " 939: [471, 920, 361, 1929, 1588, 1115, 1384, 2363, 1725, 1057],\n", + " 946: [505, 1136, 691, 1439, 842, 1369, 668, 1263, 892, 1279],\n", + " 954: [7088,\n", + " 7585,\n", + " 7061,\n", + " 8973,\n", + " 1878,\n", + " 7118,\n", + " 6867,\n", + " 1194,\n", + " 27831,\n", + " 6932],\n", + " 957: [3011, 7809, 2349, 7059, 8128, 2983, 2917, 3171, 2860, 8811],\n", + " 971: [431, 372, 206, 200, 211, 719, 1333, 261, 550, 1242],\n", + " 986: [8698, 6367, 8833, 7389, 7150, 6772, 6744, 7190, 6794, 7334],\n", + " 992: [6396, 7368, 7063, 6296, 6238, 8860, 6659, 8712, 6279, 4030],\n", + " 92: [1392, 1380, 1601, 34155, 7369, 1986, 1946, 1453, 1661, 1563],\n", + " 107: [3037, 2517, 3214, 3502, 3060, 3390, 2826, 2734, 3132, 2815],\n", + " 131: [8810,\n", + " 32721,\n", + " 2470,\n", + " 6948,\n", + " 6380,\n", + " 6204,\n", + " 2024,\n", + " 6869,\n", + " 8620,\n", + " 1968],\n", + " 138: [571, 493, 1343, 263, 538, 482, 353, 562, 132, 509],\n", + " 145: [2318, 2768, 2723, 2889, 2250, 2259, 3535, 3414, 4220, 4754],\n", + " 183: [47261,\n", + " 48943,\n", + " 56176,\n", + " 27741,\n", + " 7303,\n", + " 59784,\n", + " 55908,\n", + " 45208,\n", + " 50601,\n", + " 50153],\n", + " 209: [421, 270, 391, 881, 44, 282, 714, 779, 668, 414],\n", + " 230: [1913, 1793, 781, 8799, 871, 848, 8961, 44759, 1528, 8724],\n", + " 263: [559, 82, 366, 2860, 1653, 4149, 2140, 618, 387, 3341],\n", + " 305: [702, 1191, 7916, 6116, 9, 6858, 7976, 6784, 1658, 6312],\n", + " 314: [5808,\n", + " 6987,\n", + " 7937,\n", + " 26122,\n", + " 6678,\n", + " 7980,\n", + " 34520,\n", + " 5987,\n", + " 6213,\n", + " 53004],\n", + " 319: [42418,\n", + " 57951,\n", + " 53189,\n", + " 39292,\n", + " 36529,\n", + " 39449,\n", + " 59900,\n", + " 2509,\n", + " 51086,\n", + " 55946],\n", + " 325: [2040, 1358, 1958, 1249, 4559, 57, 2414, 2462, 3733, 1501],\n", + " 341: [6385, 5669, 970, 4159, 4903, 5588, 5598, 5498, 4021, 4053],\n", + " 471: [1156, 653, 582, 1276, 1550, 588, 943, 574, 1101, 563],\n", + " 488: [5221, 6324, 6325, 6800, 6803, 5705, 6576, 6573, 6330, 5712],\n", + " 495: [2752, 2701, 4865, 1953, 1658, 2176, 5574, 5202, 1936, 2300],\n", + " 532: [1589, 1029, 1701, 898, 1219, 889, 1488, 870, 1246, 1525],\n", + " 564: [230, 7191, 3905, 650, 148, 3, 89, 3241, 181, 3714],\n", + " 574: [5618, 5802, 4987, 6540, 6116, 4912, 5013, 5097, 5341, 5346],\n", + " 603: [54190,\n", + " 7486,\n", + " 31658,\n", + " 1132,\n", + " 486,\n", + " 5611,\n", + " 60649,\n", + " 375,\n", + " 1602,\n", + " 48394],\n", + " 674: [59103,\n", + " 48879,\n", + " 56885,\n", + " 4853,\n", + " 3985,\n", + " 46850,\n", + " 46972,\n", + " 49649,\n", + " 47202,\n", + " 54999],\n", + " 753: [41585,\n", + " 55069,\n", + " 56274,\n", + " 43928,\n", + " 52241,\n", + " 52245,\n", + " 55292,\n", + " 48879,\n", + " 60074,\n", + " 40959],\n", + " 810: [4082, 4615, 4610, 4603, 4598, 4589, 4588, 4582, 4572, 4571],\n", + " 830: [2738, 2059, 4782, 3168, 2574, 2122, 2730, 2072, 4578, 5932],\n", + " 841: [64716,\n", + " 53988,\n", + " 53956,\n", + " 53921,\n", + " 53752,\n", + " 53466,\n", + " 53464,\n", + " 53189,\n", + " 53125,\n", + " 53121],\n", + " 856: [4616, 4545, 4789, 5777, 5555, 5177, 4774, 5504, 5690, 4501],\n", + " 921: [8700, 2871, 7581, 7362, 8620, 2150, 6687, 7001, 3910, 1668],\n", + " 933: [510, 1171, 708, 421, 411, 1631, 452, 805, 217, 182],\n", + " 976: [963, 1497, 1027, 1644, 1879, 1444, 1279, 1546, 957, 1575],\n", + " 37: [4219,\n", + " 3465,\n", + " 3451,\n", + " 45028,\n", + " 4734,\n", + " 8451,\n", + " 3459,\n", + " 3620,\n", + " 4023,\n", + " 46723],\n", + " 83: [6460, 5506, 2387, 315, 383, 7177, 258, 793, 7166, 928],\n", + " 248: [1064, 1610, 1058, 1252, 1211, 1051, 1218, 1563, 2240, 1125],\n", + " 387: [5453, 5106, 6152, 4306, 5109, 5392, 3786, 110, 3720, 33830],\n", + " 428: [818, 94, 2624, 3219, 3040, 3083, 1262, 2765, 2071, 1276],\n", + " 451: [3371, 3717, 3721, 3081, 3726, 3727, 3079, 3077, 3076, 3730],\n", + " 584: [885, 252, 202, 1057, 854, 754, 153, 1326, 710, 1302],\n", + " 874: [2761, 3184, 3504, 2734, 2593, 2780, 2530, 3725, 3672, 2524],\n", + " 995: [3263, 3538, 4017, 3255, 3854, 4426, 3333, 4531, 4009, 3698],\n", + " 10: [56286, 31225, 291, 1087, 27410, 606, 8973, 5841, 5525, 6796],\n", + " 19: [3667, 3714, 6193, 3873, 6060, 6044, 6932, 747, 848, 3181],\n", + " 41: [7092, 7324, 6624, 7697, 8367, 8724, 7419, 6522, 666, 7234],\n", + " 43: [5768, 6957, 484, 1246, 2454, 2476, 7880, 1722, 1804, 2261],\n", + " 44: [2261, 2431, 2518, 2863, 4845, 5666, 2669, 2259, 2655, 2787],\n", + " 45: [53129,\n", + " 42217,\n", + " 38304,\n", + " 59795,\n", + " 55908,\n", + " 59729,\n", + " 36527,\n", + " 62344,\n", + " 25,\n", + " 5],\n", + " 51: [6510, 7204, 6378, 7142, 55080, 7067, 7418, 6725, 8712, 6486],\n", + " 56: [1161, 503, 1305, 2882, 382, 4109, 222, 4095, 3872, 3978],\n", + " 61: [5, 32460, 59014, 703, 50601, 3645, 2415, 3134, 1187, 36527],\n", + " 68: [6669, 5506, 2057, 2150, 2455, 7340, 2016, 2398, 2739, 2284],\n", + " 69: [4532, 6077, 4614, 5312, 5428, 5941, 4518, 4487, 5231, 6098],\n", + " 78: [5483, 4798, 4799, 4613, 4800, 4801, 4610, 4803, 4602, 4806],\n", + " 110: [2626, 2112, 2302, 2253, 2117, 2106, 2263, 3224, 2577, 2169],\n", + " 115: [2802, 3585, 3693, 3926, 3016, 4063, 6764, 1112, 358, 5737],\n", + " 129: [6764, 6858, 1096, 2877, 1191, 6773, 7562, 7743, 1874, 2371],\n", + " 150: [1457, 1113, 1620, 1110, 1623, 1627, 1633, 1639, 1646, 1654],\n", + " 168: [3359,\n", + " 6311,\n", + " 40966,\n", + " 26002,\n", + " 2271,\n", + " 2833,\n", + " 2879,\n", + " 4710,\n", + " 27255,\n", + " 5279],\n", + " 169: [4310,\n", + " 2531,\n", + " 2992,\n", + " 3789,\n", + " 4251,\n", + " 53988,\n", + " 113,\n", + " 497,\n", + " 60286,\n", + " 55094],\n", + " 178: [6944,\n", + " 4417,\n", + " 33826,\n", + " 56805,\n", + " 5763,\n", + " 3719,\n", + " 5684,\n", + " 3594,\n", + " 4300,\n", + " 5111],\n", + " 186: [313, 8967, 1598, 851, 2248, 8874, 7327, 7451, 26840, 27523],\n", + " 201: [298, 852, 592, 289, 1129, 273, 272, 266, 881, 885],\n", + " 239: [60, 2758, 2747, 252, 3241, 3289, 2810, 3446, 3726, 174],\n", + " 256: [3614, 1132, 3745, 5457, 1400, 564, 1750, 2503, 3217, 574],\n", + " 257: [1054, 2083, 1702, 1475, 458, 971, 1534, 945, 2118, 852],\n", + " 272: [4063,\n", + " 26242,\n", + " 2793,\n", + " 3399,\n", + " 47970,\n", + " 5446,\n", + " 2181,\n", + " 3618,\n", + " 3459,\n", + " 2125],\n", + " 279: [697, 101, 5103, 8659, 7009, 5214, 7123, 36517, 6988, 25996],\n", + " 280: [46972, 7827, 31223, 186, 27618, 6744, 5729, 129, 69, 47778],\n", + " 285: [5688,\n", + " 6708,\n", + " 7757,\n", + " 30825,\n", + " 7377,\n", + " 46965,\n", + " 7366,\n", + " 25753,\n", + " 5843,\n", + " 5531],\n", + " 298: [5966,\n", + " 41527,\n", + " 5339,\n", + " 4404,\n", + " 189,\n", + " 55292,\n", + " 8796,\n", + " 33781,\n", + " 40412,\n", + " 5349],\n", + " 301: [3915, 3605, 2695, 3313, 3688, 3807, 3083, 2709, 3426, 3028],\n", + " 304: [5503,\n", + " 6230,\n", + " 43919,\n", + " 46335,\n", + " 260,\n", + " 5438,\n", + " 107,\n", + " 6410,\n", + " 60069,\n", + " 6057],\n", + " 333: [2755, 6226, 2144, 7352, 179, 292, 2042, 8831, 3200, 633],\n", + " 334: [4486,\n", + " 59016,\n", + " 32584,\n", + " 3781,\n", + " 8667,\n", + " 4299,\n", + " 3667,\n", + " 5033,\n", + " 3135,\n", + " 6855],\n", + " 338: [8042,\n", + " 41571,\n", + " 8019,\n", + " 7396,\n", + " 37240,\n", + " 44397,\n", + " 32011,\n", + " 32591,\n", + " 7385,\n", + " 33826],\n", + " 350: [7440,\n", + " 27391,\n", + " 1454,\n", + " 2241,\n", + " 44022,\n", + " 7234,\n", + " 4077,\n", + " 27523,\n", + " 32019,\n", + " 8375],\n", + " 353: [3251, 2779, 4041, 4789, 1428, 4543, 2864, 2208, 5410, 3095],\n", + " 378: [7111,\n", + " 8861,\n", + " 31026,\n", + " 4563,\n", + " 6970,\n", + " 3861,\n", + " 5454,\n", + " 33896,\n", + " 5431,\n", + " 5346],\n", + " 386: [7340, 8609, 6545, 7003, 8605, 8602, 8596, 8589, 6408, 6409],\n", + " 397: [5569, 3334, 5841, 6582, 5966, 6784, 6062, 6550, 5808, 3272],\n", + " 420: [2255, 2802, 2800, 2798, 2793, 2792, 2791, 2785, 2784, 2780],\n", + " 439: [3275,\n", + " 3287,\n", + " 3872,\n", + " 3360,\n", + " 41025,\n", + " 45720,\n", + " 4005,\n", + " 4560,\n", + " 46965,\n", + " 26005],\n", + " 449: [6416, 844, 7054, 7372, 6668, 6750, 1463, 714, 6970, 6296],\n", + " 478: [4719, 435, 5681, 907, 6378, 912, 2247, 2827, 3066, 843],\n", + " 487: [2462, 2552, 3073, 2554, 2555, 3074, 3075, 2562, 2565, 2566],\n", + " 489: [1650, 1797, 2847, 2204, 2407, 2752, 32291, 394, 8261, 2858],\n", + " 500: [7980,\n", + " 6872,\n", + " 7831,\n", + " 8239,\n", + " 8959,\n", + " 27005,\n", + " 31617,\n", + " 8576,\n", + " 7086,\n", + " 7454],\n", + " 510: [48560, 51709, 47999, 361, 1151, 904, 1012, 52668, 268, 716],\n", + " 521: [30894,\n", + " 40574,\n", + " 40614,\n", + " 25923,\n", + " 40723,\n", + " 40819,\n", + " 40851,\n", + " 25777,\n", + " 25752,\n", + " 25993],\n", + " 522: [464, 154, 347, 546, 378, 460, 411, 550, 7062, 136],\n", + " 527: [83, 727, 268, 1099, 2898, 2749, 735, 153, 50, 135],\n", + " 529: [4426,\n", + " 3683,\n", + " 4355,\n", + " 4266,\n", + " 36509,\n", + " 4990,\n", + " 3949,\n", + " 8040,\n", + " 4939,\n", + " 5186],\n", + " 535: [61, 472, 4510, 8984, 7157, 30803, 178, 5954, 6603, 46],\n", + " 550: [64716,\n", + " 48516,\n", + " 48518,\n", + " 48696,\n", + " 48741,\n", + " 48783,\n", + " 49220,\n", + " 48416,\n", + " 49647,\n", + " 50068],\n", + " 560: [5872,\n", + " 7300,\n", + " 48997,\n", + " 5820,\n", + " 7442,\n", + " 7119,\n", + " 6803,\n", + " 7450,\n", + " 53129,\n", + " 7381],\n", + " 573: [8532,\n", + " 3047,\n", + " 39234,\n", + " 33358,\n", + " 40581,\n", + " 8985,\n", + " 8743,\n", + " 46335,\n", + " 34520,\n", + " 55288],\n", + " 579: [4915, 5013, 5015, 4420, 5021, 5023, 5025, 4418, 5028, 4417],\n", + " 582: [4354, 4433, 4994, 5169, 4361, 4947, 4333, 5820, 5506, 4520],\n", + " 583: [4025, 3527, 3462, 4186, 4487, 3807, 3467, 3982, 3453, 3440],\n", + " 587: [3930, 4636, 2665, 2549, 3793, 3694, 3289, 2560, 2841, 2921],\n", + " 596: [5313, 5902, 5970, 6196, 5219, 6590, 6679, 5464, 5637, 5189],\n", + " 602: [129, 152, 969, 552, 510, 65, 1183, 972, 172, 703],\n", + " 618: [905, 7001, 1427, 1501, 6166, 809, 1400, 742, 7771, 1931],\n", + " 624: [3659, 316, 3534, 3678, 3623, 4091, 3447, 3289, 3821, 3639],\n", + " 627: [2073, 5541, 7179, 5469, 6264, 2186, 5411, 1321, 2378, 3435],\n", + " 635: [52885,\n", + " 31026,\n", + " 49647,\n", + " 52042,\n", + " 47830,\n", + " 57669,\n", + " 27706,\n", + " 6482,\n", + " 4795,\n", + " 42632],\n", + " 639: [1948, 1991, 1394, 2106, 1389, 1382, 1614, 2506, 2081, 2565],\n", + " 640: [1923, 2506, 1862, 1784, 2946, 1994, 1999, 1857, 2770, 2034],\n", + " 642: [55830,\n", + " 47099,\n", + " 46970,\n", + " 46948,\n", + " 46572,\n", + " 46335,\n", + " 46322,\n", + " 47202,\n", + " 45950,\n", + " 45880],\n", + " 649: [5731, 7416, 6219, 5902, 6221, 5909, 5912, 7439, 6379, 7440],\n", + " 652: [9, 420, 150, 358, 397, 218, 248, 373, 6858, 29],\n", + " 662: [762, 1508, 6210, 62113, 7325, 2017, 6813, 2012, 6582, 1615],\n", + " 671: [4483, 4772, 4690, 5048, 5882, 4699, 5445, 5970, 5637, 5935],\n", + " 675: [78, 197, 359, 35, 137, 554, 628, 432, 103, 634],\n", + " 684: [5517, 5385, 6188, 7163, 6204, 7076, 7088, 5705, 7019, 5690],\n", + " 703: [7620,\n", + " 6567,\n", + " 6356,\n", + " 7178,\n", + " 25752,\n", + " 4949,\n", + " 5651,\n", + " 5446,\n", + " 7614,\n", + " 4142],\n", + " 712: [1017, 2634, 2175, 2118, 2123, 885, 1024, 1161, 1554, 1928],\n", + " 726: [3539, 3512, 2819, 2876, 3420, 3998, 2767, 4021, 2956, 3622],\n", + " 727: [49649,\n", + " 48698,\n", + " 8782,\n", + " 8789,\n", + " 48856,\n", + " 48879,\n", + " 48943,\n", + " 8807,\n", + " 49132,\n", + " 49220],\n", + " 744: [177, 36, 39, 40, 47, 182, 179, 53, 55, 61],\n", + " 746: [27801,\n", + " 31116,\n", + " 48043,\n", + " 52375,\n", + " 27816,\n", + " 46322,\n", + " 27674,\n", + " 60649,\n", + " 32584,\n", + " 49932],\n", + " 761: [1059, 1587, 496, 558, 1444, 766, 1220, 1372, 1016, 580],\n", + " 765: [7459, 6493, 8740, 6303, 8949, 7194, 7308, 8014, 6367, 6902],\n", + " 766: [36537,\n", + " 35957,\n", + " 45074,\n", + " 55820,\n", + " 40278,\n", + " 54780,\n", + " 46972,\n", + " 36525,\n", + " 36509,\n", + " 43936],\n", + " 771: [865, 1002, 1565, 2041, 4720, 4880, 5289, 4958, 1783, 1042],\n", + " 776: [51903,\n", + " 1821,\n", + " 2630,\n", + " 1831,\n", + " 1739,\n", + " 2479,\n", + " 58490,\n", + " 49649,\n", + " 2340,\n", + " 2597],\n", + " 797: [5025, 5410, 6448, 6378, 1655, 6244, 5034, 5943, 5256, 5349],\n", + " 812: [26491,\n", + " 26375,\n", + " 3095,\n", + " 2917,\n", + " 45074,\n", + " 3036,\n", + " 3224,\n", + " 2297,\n", + " 3217,\n", + " 2552],\n", + " 815: [5636, 5502, 5882, 5434, 4812, 1629, 994, 5603, 5127, 6320],\n", + " 818: [858, 1606, 4098, 8970, 3730, 3287, 2093, 48698, 967, 1585],\n", + " 821: [25777,\n", + " 48322,\n", + " 59037,\n", + " 27731,\n", + " 31553,\n", + " 56152,\n", + " 25750,\n", + " 27773,\n", + " 25764,\n", + " 34336],\n", + " 822: [2215, 2034, 2040, 2042, 2043, 2046, 2048, 2052, 2054, 2058],\n", + " 831: [53550,\n", + " 34520,\n", + " 33237,\n", + " 57522,\n", + " 46530,\n", + " 33499,\n", + " 33154,\n", + " 52245,\n", + " 32598,\n", + " 34323],\n", + " 834: [1938, 1131, 2367, 1247, 1827, 1688, 1171, 1914, 2310, 1379],\n", + " 837: [7178,\n", + " 7791,\n", + " 7713,\n", + " 6807,\n", + " 7255,\n", + " 6093,\n", + " 5516,\n", + " 8872,\n", + " 26285,\n", + " 6565],\n", + " 839: [1959,\n", + " 2664,\n", + " 34538,\n", + " 43744,\n", + " 42197,\n", + " 5400,\n", + " 8740,\n", + " 3101,\n", + " 8894,\n", + " 4463],\n", + " 840: [2380, 2513, 2385, 2612, 3046, 2377, 2434, 2335, 2518, 3543],\n", + " 851: [302, 647, 300, 298, 297, 295, 663, 664, 289, 303],\n", + " 855: [5358, 5670, 5596, 1173, 6977, 6010, 1245, 950, 5601, 1096],\n", + " 857: [30894,\n", + " 52712,\n", + " 47644,\n", + " 51935,\n", + " 49347,\n", + " 45672,\n", + " 39419,\n", + " 60040,\n", + " 26713,\n", + " 57536],\n", + " 868: [6218, 1426, 1425, 1422, 6038, 6035, 1416, 1413, 1412, 1411],\n", + " 904: [3436, 2781, 3197, 3034, 3616, 3253, 2671, 2979, 2702, 3324],\n", + " 905: [563,\n", + " 5318,\n", + " 61361,\n", + " 4386,\n", + " 59404,\n", + " 58299,\n", + " 59501,\n", + " 58418,\n", + " 59615,\n", + " 174],\n", + " 906: [30820,\n", + " 48997,\n", + " 47810,\n", + " 27912,\n", + " 31687,\n", + " 33646,\n", + " 33681,\n", + " 49647,\n", + " 40278,\n", + " 45732],\n", + " 924: [7617, 6564, 6794, 8796, 7256, 6774, 8125, 6550, 6452, 7326],\n", + " 925: [6006,\n", + " 6229,\n", + " 5949,\n", + " 5351,\n", + " 48744,\n", + " 56251,\n", + " 3214,\n", + " 39231,\n", + " 5556,\n", + " 5959],\n", + " 927: [378, 4661, 4974, 4896, 6157, 5291, 4901, 5662, 6232, 6196],\n", + " 940: [2818, 2453, 2708, 2706, 2456, 2462, 3052, 3050, 3064, 2693],\n", + " 948: [5762, 5110, 5968, 5682, 5358, 5323, 5023, 6750, 6650, 5026],\n", + " 953: [338, 329, 326, 324, 322, 320, 316, 312, 300, 297],\n", + " 966: [595, 5036, 582, 834, 6331, 1180, 4388, 5460, 5852, 5231],\n", + " 967: [52283,\n", + " 47970,\n", + " 27731,\n", + " 52975,\n", + " 49822,\n", + " 58047,\n", + " 31086,\n", + " 39886,\n", + " 60514,\n", + " 42728],\n", + " 979: [2408, 4876, 2669, 280, 442, 6265, 753, 5734, 501, 5250],\n", + " 980: [5955, 6233, 6013, 5357, 5269, 6659, 5593, 1583, 6522, 3252],\n", + " 983: [382, 862, 565, 2686, 769, 249, 504, 795, 228, 71],\n", + " 984: [1551, 2480, 1370, 2424, 1517, 1814, 1296, 1914, 2023, 1863],\n", + " 991: [2941, 3452, 3399, 3514, 3624, 4030, 2875, 2863, 4098, 3269],\n", + " 1009: [8360,\n", + " 6872,\n", + " 7762,\n", + " 6783,\n", + " 32300,\n", + " 8932,\n", + " 26614,\n", + " 6776,\n", + " 32598,\n", + " 37857],\n", + " 1011: [4090, 4835, 4167, 2252, 4297, 3969, 4219, 5453, 4635, 234],\n", + " 1014: [49, 236, 59985, 6984, 6477, 34338, 6331, 8366, 6947, 8593],\n", + " 1021: [145, 549, 461, 55286, 58655, 117, 278, 38, 227, 538],\n", + " 1030: [59016,\n", + " 44022,\n", + " 49278,\n", + " 58025,\n", + " 8998,\n", + " 57532,\n", + " 40959,\n", + " 48560,\n", + " 50005,\n", + " 40955],\n", + " 1033: [5630,\n", + " 5544,\n", + " 6315,\n", + " 5496,\n", + " 5318,\n", + " 5308,\n", + " 5832,\n", + " 5634,\n", + " 6643,\n", + " 6281],\n", + " 1039: [4090,\n", + " 5600,\n", + " 3956,\n", + " 5633,\n", + " 3612,\n", + " 4123,\n", + " 4409,\n", + " 3313,\n", + " 3906,\n", + " 3624],\n", + " 1040: [43460,\n", + " 52042,\n", + " 52644,\n", + " 50872,\n", + " 42730,\n", + " 46572,\n", + " 60037,\n", + " 46530,\n", + " 54094,\n", + " 54268],\n", + " 1053: [4035,\n", + " 4392,\n", + " 4294,\n", + " 4221,\n", + " 4442,\n", + " 3870,\n", + " 3691,\n", + " 4437,\n", + " 3861,\n", + " 4082],\n", + " 704: [4426, 3894, 3822, 3975, 3812, 3983, 4127, 5177, 4442, 4084],\n", + " 934: [30793,\n", + " 27611,\n", + " 42725,\n", + " 8933,\n", + " 59014,\n", + " 53322,\n", + " 39231,\n", + " 55250,\n", + " 48385,\n", + " 57669],\n", + " 42: [36708, 5225, 1861, 1902, 2130, 6311, 3206, 2812, 1984, 4634],\n", + " 73: [53460,\n", + " 6223,\n", + " 46322,\n", + " 3024,\n", + " 3514,\n", + " 2375,\n", + " 5808,\n", + " 2892,\n", + " 2477,\n", + " 6684],\n", + " 82: [1590, 1397, 1348, 3614, 1262, 1255, 1257, 2050, 1358, 2261],\n", + " 159: [3100, 2291, 2841, 2285, 2835, 2282, 2279, 2824, 2276, 2819],\n", + " 161: [4453,\n", + " 4299,\n", + " 54281,\n", + " 5433,\n", + " 5341,\n", + " 5373,\n", + " 56333,\n", + " 4186,\n", + " 4806,\n", + " 4148],\n", + " 192: [2899, 3511, 2006, 2498, 2130, 1686, 2964, 3092, 2765, 3239],\n", + " 216: [58, 766, 3087, 2967, 3174, 3467, 1076, 3374, 3486, 2768],\n", + " 219: [34405,\n", + " 144,\n", + " 741,\n", + " 38886,\n", + " 8040,\n", + " 1867,\n", + " 55269,\n", + " 7059,\n", + " 8783,\n", + " 1326],\n", + " 290: [1167, 1172, 1914, 1104, 2345, 1224, 1356, 1721, 6448, 170],\n", + " 379: [32591,\n", + " 46965,\n", + " 49910,\n", + " 31026,\n", + " 8753,\n", + " 39419,\n", + " 7714,\n", + " 7844,\n", + " 8119,\n", + " 37727],\n", + " 389: [569, 1667, 248, 882, 298, 283, 418, 275, 480, 7088],\n", + " 400: [6593,\n", + " 5618,\n", + " 4650,\n", + " 4272,\n", + " 5380,\n", + " 53189,\n", + " 4023,\n", + " 4735,\n", + " 4599,\n", + " 4823],\n", + " 462: [4521, 4463, 4614, 5036, 5099, 5962, 4787, 4621, 182, 5325],\n", + " 507: [209, 3497, 268, 2836, 226, 146, 277, 278, 11, 208],\n", + " 600: [53464,\n", + " 4188,\n", + " 4265,\n", + " 5347,\n", + " 4770,\n", + " 4373,\n", + " 5303,\n", + " 4167,\n", + " 4995,\n", + " 4830],\n", + " 721: [3122, 2406, 3632, 4021, 3037, 3303, 4544, 2768, 4988, 3838],\n", + " 793: [165, 2791, 46, 5, 187, 5553, 5826, 5646, 5749, 5363],\n", + " 912: [27831,\n", + " 55063,\n", + " 55052,\n", + " 6624,\n", + " 6615,\n", + " 6603,\n", + " 6593,\n", + " 6586,\n", + " 54999,\n", + " 6581],\n", + " 932: [59985,\n", + " 43871,\n", + " 53953,\n", + " 46572,\n", + " 55820,\n", + " 44974,\n", + " 53972,\n", + " 55999,\n", + " 55765,\n", + " 55687],\n", + " 949: [1352, 489, 484, 483, 482, 481, 477, 473, 472, 471],\n", + " 1025: [96, 477, 528, 2778, 2717, 2891, 2562, 460, 98, 255],\n", + " 46: [42, 7781, 7132, 6777, 189, 7226, 449, 6409, 6909, 33672],\n", + " 74: [259, 4847, 4103, 34150, 7349, 8661, 26122, 4, 32387, 8485],\n", + " 342: [8941, 4547, 4533, 4776, 5236, 5137, 4615, 4541, 4846, 5854],\n", + " 508: [56885, 1416, 801, 1928, 43558, 1840, 1945, 662, 1583, 8874],\n", + " 580: [2207, 2928, 4237, 3430, 2937, 3420, 2500, 3412, 3181, 2800],\n", + " 774: [921, 1262, 1022, 1080, 1750, 987, 1326, 1580, 1501, 1629],\n", + " 783: [3289, 2982, 3040, 2860, 2797, 2791, 2802, 2935, 2794, 3351],\n", + " 1002: [937, 1060, 1447, 1686, 1324, 1831, 1611, 1027, 769, 1190],\n", + " 1023: [2019,\n", + " 1976,\n", + " 1493,\n", + " 2135,\n", + " 1413,\n", + " 60943,\n", + " 176,\n", + " 45431,\n", + " 177,\n", + " 1517],\n", + " 1048: [1767,\n", + " 2185,\n", + " 6663,\n", + " 6554,\n", + " 2827,\n", + " 7032,\n", + " 7485,\n", + " 2839,\n", + " 3629,\n", + " 4111],\n", + " 23: [7376, 230, 1683, 7299, 2551, 6506, 1422, 4783, 2126, 965],\n", + " 96: [67, 44, 213, 473, 4241, 5131, 488, 4705, 60147, 5762],\n", + " 124: [7616,\n", + " 47952,\n", + " 8957,\n", + " 2792,\n", + " 2787,\n", + " 2847,\n", + " 2548,\n", + " 3988,\n", + " 1575,\n", + " 3741],\n", + " 136: [6764, 8459, 8426, 8378, 8376, 7062, 7063, 8368, 8363, 7069],\n", + " 148: [1993, 1459, 1391, 4676, 2108, 3962, 2364, 1755, 1396, 1950],\n", + " 189: [4367, 4801, 3945, 6535, 5418, 5404, 26903, 3972, 4998, 985],\n", + " 213: [77, 798, 1260, 2053, 2476, 1251, 3225, 3745, 4570, 2606],\n", + " 243: [452, 1190, 520, 521, 1189, 523, 526, 527, 1186, 529],\n", + " 323: [1044, 483, 496, 445, 1426, 1357, 1669, 1184, 2886, 1105],\n", + " 352: [3665, 2669, 2289, 3004, 4768, 4798, 3862, 4521, 4139, 4727],\n", + " 429: [2894,\n", + " 3698,\n", + " 1192,\n", + " 491,\n", + " 2303,\n", + " 1054,\n", + " 32598,\n", + " 1438,\n", + " 42723,\n", + " 32721],\n", + " 625: [2946, 2801, 2802, 2807, 2808, 2809, 2817, 2827, 2828, 2830],\n", + " 808: [33679,\n", + " 46965,\n", + " 8939,\n", + " 46970,\n", + " 8932,\n", + " 8928,\n", + " 4333,\n", + " 30894,\n", + " 8941,\n", + " 47200],\n", + " 843: [1731, 1610, 1608, 1605, 1597, 1595, 1591, 1611, 1590, 2073],\n", + " 847: [1094, 1237, 1086, 5194, 1335, 2170, 2029, 1245, 1824, 2094],\n", + " 963: [59387,\n", + " 3334,\n", + " 27822,\n", + " 5299,\n", + " 39446,\n", + " 38388,\n", + " 3639,\n", + " 33138,\n", + " 45722,\n", + " 8700],\n", + " 975: [5875, 5872, 5890, 6261, 5973, 6663, 6975, 7570, 6744, 6582],\n", + " 998: [2567, 2065, 2700, 2115, 2528, 2520, 2264, 2051, 3083, 2702],\n", + " 75: [6338,\n", + " 7915,\n", + " 59306,\n", + " 7149,\n", + " 7564,\n", + " 59421,\n", + " 6568,\n", + " 1213,\n", + " 7368,\n", + " 6988],\n", + " 427: [5650, 5445, 6319, 267, 6352, 4745, 4754, 378, 5472, 7619],\n", + " 466: [3469, 4276, 2499, 3210, 2972, 2898, 2511, 2769, 4821, 2252],\n", + " 801: [40, 122, 175, 82, 180, 85, 6, 6303, 49278, 165],\n", + " 848: [4787, 3727, 3070, 2790, 3035, 2861, 3932, 2965, 2733, 3262],\n", + " 888: [1004, 427, 1010, 421, 417, 408, 397, 393, 382, 380],\n", + " 191: [2385,\n", + " 1028,\n", + " 2987,\n", + " 1827,\n", + " 3479,\n", + " 2275,\n", + " 2402,\n", + " 2264,\n", + " 54290,\n", + " 3002],\n", + " 227: [2568, 2195, 3016, 2183, 2973, 2711, 2826, 2187, 2701, 2925],\n", + " 245: [3555, 4129, 3721, 3628, 3544, 3550, 4308, 3714, 4067, 4654],\n", + " 380: [1593, 840, 2080, 2089, 1233, 4080, 3329, 4573, 3408, 2801],\n", + " 408: [1081, 1824, 1143, 1624, 4268, 2154, 3457, 1359, 2382, 2983],\n", + " 668: [44657,\n", + " 8698,\n", + " 58655,\n", + " 61361,\n", + " 3962,\n", + " 58998,\n", + " 3145,\n", + " 4484,\n", + " 59333,\n", + " 27721],\n", + " 747: [171, 176, 118, 175, 100, 7, 2881, 3544, 3142, 3846],\n", + " 754: [485, 222, 63, 258, 250, 34, 105, 480, 278, 206],\n", + " 11: [27790,\n", + " 7316,\n", + " 5069,\n", + " 45183,\n", + " 2758,\n", + " 3683,\n", + " 4750,\n", + " 4868,\n", + " 5453,\n", + " 3399],\n", + " 16: [8620,\n", + " 1921,\n", + " 56251,\n", + " 1396,\n", + " 31435,\n", + " 1937,\n", + " 41573,\n", + " 54256,\n", + " 26172,\n", + " 633],\n", + " 81: [6001, 8228, 6889, 8336, 3857, 7925, 6812, 7102, 7352, 6017],\n", + " 86: [45635,\n", + " 55805,\n", + " 42734,\n", + " 59315,\n", + " 43836,\n", + " 2273,\n", + " 41585,\n", + " 1212,\n", + " 1305,\n", + " 1432],\n", + " 97: [2867, 2265, 4705, 5670, 2133, 3627, 4650, 6366, 25788, 1436],\n", + " 151: [692, 8643, 4642, 1641, 3940, 852, 1432, 1092, 1739, 8520],\n", + " 235: [2863,\n", + " 5095,\n", + " 3108,\n", + " 2387,\n", + " 2376,\n", + " 2907,\n", + " 3061,\n", + " 56176,\n", + " 31193,\n", + " 2630],\n", + " 251: [3502, 4447, 3853, 4069, 3572, 3507, 4228, 4148, 3496, 4527],\n", + " 258: [148, 2721, 2788, 281, 1197, 1302, 351, 1012, 240, 1214],\n", + " 278: [2037, 2751, 3196, 228, 27728, 365, 53956, 31923, 521, 81],\n", + " 388: [5424,\n", + " 4213,\n", + " 50005,\n", + " 54881,\n", + " 5135,\n", + " 49772,\n", + " 52279,\n", + " 53468,\n", + " 54736,\n", + " 8365],\n", + " 551: [1, 159, 161, 166, 169, 176, 178, 328, 183, 355],\n", + " 606: [918, 1128, 1129, 582, 590, 1136, 1143, 1145, 1127, 1147],\n", + " 614: [2032, 2165, 2026, 2977, 2300, 2549, 2263, 2155, 2023, 2532],\n", + " 681: [3055,\n", + " 3864,\n", + " 179,\n", + " 31660,\n", + " 60147,\n", + " 33237,\n", + " 34336,\n", + " 56152,\n", + " 39400,\n", + " 43926],\n", + " 686: [826, 4599, 2962, 486, 4239, 4139, 411, 2248, 791, 4565],\n", + " 711: [4300, 4713, 4433, 4498, 4799, 5312, 5009, 4387, 5085, 5151],\n", + " 718: [2995, 2478, 2473, 2533, 3147, 2614, 2467, 3667, 2425, 2720],\n", + " 873: [3270, 2820, 2107, 2829, 2674, 3169, 2797, 3265, 2912, 2695],\n", + " 962: [3238, 2764, 3390, 2711, 3178, 3678, 3015, 2697, 3402, 3648],\n", + " 985: [8138,\n", + " 27801,\n", + " 32721,\n", + " 7879,\n", + " 43460,\n", + " 27186,\n", + " 50189,\n", + " 2877,\n", + " 39449,\n", + " 3678],\n", + " 993: [54775, 66, 117, 53189, 1189, 714, 16, 198, 33830, 243],\n", + " 184: [4568, 650, 1410, 5385, 537, 614, 13, 42734, 8589, 220],\n", + " 246: [3308, 3422, 2769, 3078, 3598, 2691, 3183, 3683, 3910, 2704],\n", + " 373: [44729,\n", + " 48774,\n", + " 27416,\n", + " 26203,\n", + " 42734,\n", + " 56782,\n", + " 34164,\n", + " 26138,\n", + " 26163,\n", + " 49220],\n", + " 430: [8593, 7440, 7300, 8493, 6614, 6948, 380, 7023, 7107, 7062],\n", + " 534: [8967,\n", + " 2099,\n", + " 7184,\n", + " 1304,\n", + " 8617,\n", + " 8789,\n", + " 8928,\n", + " 27611,\n", + " 26828,\n", + " 37733],\n", + " 805: [4356, 5666, 4727, 4350, 4991, 5503, 5423, 4342, 4427, 5159],\n", + " 58: [45210,\n", + " 41585,\n", + " 39419,\n", + " 43928,\n", + " 33615,\n", + " 42002,\n", + " 37380,\n", + " 50514,\n", + " 45501,\n", + " 42021],\n", + " 112: [368, 48856, 278, 346, 248, 347, 52885, 56775, 49910, 282],\n", + " 367: [2699,\n", + " 2745,\n", + " 2208,\n", + " 2196,\n", + " 3296,\n", + " 2289,\n", + " 2800,\n", + " 2888,\n", + " 27820,\n", + " 51088],\n", + " 548: [852, 934, 935, 943, 945, 947, 948, 954, 955, 961],\n", + " 791: [4967, 5036, 5609, 5878, 5670, 4972, 4960, 6273, 6541, 5136],\n", + " 909: [1485, 2142, 2144, 2145, 1459, 1460, 1186, 1930, 1464, 1190],\n", + " 1041: [177, 249, 336, 368, 372, 304, 32, 187, 174, 150],\n", + " 13: [1082, 6709, 8366, 1887, 30793, 3043, 5956, 2331, 3531, 4930],\n", + " 869: [2353, 2796, 2402, 1940, 2400, 1836, 2394, 2393, 2804, 1941],\n", + " 415: [5459, 3358, 2719, 6347, 7099, 1252, 224, 5999, 1298, 5777],\n", + " 477: [6978,\n", + " 2494,\n", + " 4251,\n", + " 5975,\n", + " 5147,\n", + " 1259,\n", + " 42007,\n", + " 8376,\n", + " 1760,\n", + " 3744],\n", + " 569: [1333, 297, 1382, 965, 803, 506, 489, 840, 523, 926],\n", + " 694: [2738,\n", + " 3262,\n", + " 6481,\n", + " 2313,\n", + " 7847,\n", + " 2778,\n", + " 2342,\n", + " 26230,\n", + " 3054,\n", + " 2364],\n", + " 729: [1812, 2053, 2342, 2389, 2386, 2594, 1772, 1754, 1918, 2579],\n", + " 741: [2714, 3241, 2767, 2844, 3181, 2701, 3253, 2976, 3914, 3744],\n", + " 965: [83, 141, 106, 1, 70, 15, 25, 198, 174, 27],\n", + " 17: [6368, 5928, 5319, 5903, 26680, 5152, 5644, 5039, 7647, 5973],\n", + " 40: [6841, 5860, 1916, 6502, 2361, 7190, 5986, 6986, 1837, 2731],\n", + " 114: [707, 108, 6126, 5054, 804, 6816, 1091, 901, 372, 498],\n", + " 137: [44828,\n", + " 46850,\n", + " 44729,\n", + " 59014,\n", + " 55830,\n", + " 45730,\n", + " 60753,\n", + " 47518,\n", + " 50851,\n", + " 55069],\n", + " 153: [7720, 6595, 4853, 6180, 4970, 5469, 7072, 7386, 2417, 2803],\n", + " 211: [43904,\n", + " 40278,\n", + " 39449,\n", + " 39446,\n", + " 39444,\n", + " 39292,\n", + " 39231,\n", + " 39183,\n", + " 8336,\n", + " 38992],\n", + " 286: [64716,\n", + " 60037,\n", + " 5264,\n", + " 61323,\n", + " 8740,\n", + " 60069,\n", + " 59795,\n", + " 5179,\n", + " 5422,\n", + " 60147],\n", + " 330: [4641,\n", + " 7149,\n", + " 4646,\n", + " 4728,\n", + " 5768,\n", + " 27839,\n", + " 5958,\n", + " 7899,\n", + " 5523,\n", + " 6856],\n", + " 336: [8927,\n", + " 39444,\n", + " 27584,\n", + " 9002,\n", + " 50153,\n", + " 26138,\n", + " 26662,\n", + " 56176,\n", + " 1028,\n", + " 45517],\n", + " 372: [6592, 7126, 7295, 7132, 5923, 5927, 6573, 6195, 6951, 5936],\n", + " 376: [27839,\n", + " 8198,\n", + " 7781,\n", + " 38701,\n", + " 48783,\n", + " 8972,\n", + " 8690,\n", + " 50851,\n", + " 27523,\n", + " 31485],\n", + " 412: [4552, 4949, 4005, 4304, 4620, 4167, 4707, 2686, 3946, 3939],\n", + " 447: [4443, 3624, 649, 4989, 4976, 4824, 200, 516, 4688, 3628],\n", + " 467: [1860,\n", + " 940,\n", + " 47629,\n", + " 42009,\n", + " 204,\n", + " 43926,\n", + " 2176,\n", + " 1392,\n", + " 58972,\n", + " 2612],\n", + " 490: [3909, 3313, 3396, 889, 3323, 942, 1078, 1399, 1546, 2068],\n", + " 518: [3837, 166, 3480, 4200, 556, 3821, 4129, 3251, 4355, 3178],\n", + " 608: [86, 471, 512, 733, 551, 8614, 6809, 969, 1086, 31698],\n", + " 619: [7307,\n", + " 25777,\n", + " 1088,\n", + " 1894,\n", + " 8372,\n", + " 7303,\n", + " 6963,\n", + " 8266,\n", + " 26242,\n", + " 6862],\n", + " 644: [1667, 1168, 1513, 2870, 2149, 1997, 1489, 1392, 1022, 1894],\n", + " 667: [1542, 2318, 2748, 2327, 2655, 295, 49, 223, 1600, 171],\n", + " 698: [43926,\n", + " 41566,\n", + " 42718,\n", + " 47810,\n", + " 58964,\n", + " 46335,\n", + " 52950,\n", + " 38701,\n", + " 46578,\n", + " 48416],\n", + " 709: [33621,\n", + " 48412,\n", + " 8958,\n", + " 53921,\n", + " 26513,\n", + " 2135,\n", + " 2383,\n", + " 45186,\n", + " 34538,\n", + " 2143],\n", + " 728: [416, 595, 956, 299, 298, 297, 1043, 295, 597, 955],\n", + " 733: [43396,\n", + " 57669,\n", + " 8595,\n", + " 8870,\n", + " 38798,\n", + " 6157,\n", + " 6502,\n", + " 48416,\n", + " 27851,\n", + " 34437],\n", + " 777: [3309, 288, 3780, 3247, 3555, 3408, 3462, 3472, 126, 4517],\n", + " 813: [5298, 5293, 6025, 5459, 7001, 6993, 5364, 6855, 5603, 5289],\n", + " 832: [126, 6427, 2884, 6666, 223, 319, 5690, 5912, 6478, 63],\n", + " 893: [59725,\n", + " 60766,\n", + " 4828,\n", + " 59404,\n", + " 59900,\n", + " 59421,\n", + " 59729,\n", + " 4757,\n", + " 6041,\n", + " 5433],\n", + " 901: [3272, 2744, 3432, 3053, 2749, 2801, 3640, 2962, 2944, 3354],\n", + " 937: [55402,\n", + " 45517,\n", + " 42730,\n", + " 54999,\n", + " 26555,\n", + " 32179,\n", + " 2016,\n", + " 33817,\n", + " 36531,\n", + " 34332],\n", + " 947: [3444, 3370, 3810, 3158, 4155, 4378, 3728, 4232, 3985, 4329],\n", + " 362: [1347, 911, 176, 918, 1000, 364, 1222, 387, 269, 1040],\n", + " 375: [8511,\n", + " 7142,\n", + " 7054,\n", + " 8859,\n", + " 27822,\n", + " 7720,\n", + " 7061,\n", + " 7043,\n", + " 8337,\n", + " 7027],\n", + " 599: [35, 22, 8800, 7069, 31, 26, 8743, 18, 8336, 45],\n", + " 632: [1782, 1003, 2232, 2221, 1112, 5308, 1544, 4267, 5570, 3462],\n", + " 779: [3868, 4448, 3631, 4994, 4989, 3928, 4628, 4341, 3681, 4422],\n", + " 1022: [31184,\n", + " 46335,\n", + " 48082,\n", + " 52448,\n", + " 27788,\n", + " 36531,\n", + " 52885,\n", + " 4147,\n", + " 475,\n", + " 35836],\n", + " 1034: [580, 1085, 516, 522, 527, 1219, 1471, 1723, 880, 688],\n", + " 819: [6221, 5310, 6897, 6192, 5966, 5292, 6226, 5460, 6053, 6448],\n", + " 2: [4210, 4961, 4105, 2351, 3573, 4032, 1586, 5159, 4840, 2804],\n", + " 3: [3680, 3310, 3903, 4178, 3606, 3781, 3833, 4161, 3248, 4127],\n", + " 104: [1361, 1856, 1663, 1303, 1975, 1806, 2310, 1534, 1353, 54],\n", + " 105: [50440, 982, 5856, 5673, 1027, 6856, 466, 526, 1592, 7649],\n", + " 218: [6344, 6337, 6436, 1545, 8910, 7162, 1398, 3107, 3200, 7367],\n", + " 250: [3666, 3608, 3725, 3793, 146, 3061, 3128, 4342, 5902, 3822],\n", + " 313: [4664, 3830, 5275, 2553, 1337, 2122, 5103, 8836, 2559, 3315],\n", + " 377: [5613, 4793, 4641, 6305, 5481, 4682, 4849, 5856, 6297, 5418],\n", + " 413: [58381,\n", + " 32294,\n", + " 8633,\n", + " 36708,\n", + " 55687,\n", + " 8376,\n", + " 30749,\n", + " 45106,\n", + " 31435,\n", + " 8464],\n", + " 576: [55282,\n", + " 58347,\n", + " 57368,\n", + " 59784,\n", + " 64716,\n", + " 151,\n", + " 56587,\n", + " 56805,\n", + " 58418,\n", + " 62293],\n", + " 586: [930, 1683, 2155, 1037, 2150, 1692, 2068, 1457, 1145, 2032],\n", + " 595: [8951,\n", + " 6291,\n", + " 60074,\n", + " 8974,\n", + " 48744,\n", + " 4638,\n", + " 6316,\n", + " 5609,\n", + " 7484,\n", + " 5620],\n", + " 610: [1564, 7380, 8661, 6316, 963, 927, 6442, 2616, 6997, 2557],\n", + " 613: [3529, 6780, 6387, 2758, 6672, 2867, 4012, 5670, 5577, 6920],\n", + " 637: [6687, 6178, 7883, 6127, 6980, 6985, 7845, 6989, 6991, 7840],\n", + " 663: [516, 90, 640, 1964, 28, 475, 17, 936, 322, 1273],\n", + " 740: [5596, 6057, 6045, 6044, 6373, 6041, 6040, 5563, 6038, 5559],\n", + " 787: [4516, 5409, 5179, 6021, 4675, 4978, 5890, 4510, 4574, 5392],\n", + " 804: [3165, 3111, 2709, 2633, 2642, 2649, 3606, 3309, 2840, 3774],\n", + " 866: [8633,\n", + " 8142,\n", + " 4580,\n", + " 8665,\n", + " 8128,\n", + " 5140,\n", + " 8640,\n", + " 4523,\n", + " 33819,\n", + " 31083],\n", + " 883: [1370, 1385, 411, 904, 907, 406, 397, 394, 393, 908],\n", + " 941: [2453, 2448, 2969, 1274, 2651, 2511, 2529, 1730, 3559, 2921],\n", + " 1007: [5541,\n", + " 6542,\n", + " 6516,\n", + " 3963,\n", + " 5609,\n", + " 7124,\n", + " 6078,\n", + " 6284,\n", + " 7142,\n", + " 5606],\n", + " 817: [54, 411, 80, 416, 145, 257, 6879, 187, 5690, 4147],\n", + " 6: [7043, 2550, 268, 6305, 6225, 2099, 2696, 2961, 3143, 7216],\n", + " 7: [7706, 7394, 3605, 8191, 8195, 8451, 4426, 8581, 8859, 7891],\n", + " 14: [3973,\n", + " 8977,\n", + " 4842,\n", + " 5516,\n", + " 5604,\n", + " 27020,\n", + " 8643,\n", + " 6319,\n", + " 32300,\n", + " 7474],\n", + " 24: [3048, 3937, 59784, 4077, 4002, 4326, 4213, 3556, 4091, 3358],\n", + " 57: [8195, 7223, 6416, 7379, 7898, 6290, 2165, 2775, 48082, 6855],\n", + " 60: [1529, 908, 2025, 1223, 1516, 2029, 784, 2031, 1343, 4560],\n", + " 64: [32019,\n", + " 58299,\n", + " 42004,\n", + " 34332,\n", + " 34153,\n", + " 44004,\n", + " 58334,\n", + " 40851,\n", + " 3638,\n", + " 55820],\n", + " 84: [1345, 1662, 805, 973, 705, 1053, 1485, 1326, 1339, 847],\n", + " 90: [6548,\n", + " 8117,\n", + " 7360,\n", + " 4566,\n", + " 36531,\n", + " 3783,\n", + " 6021,\n", + " 5221,\n", + " 54780,\n", + " 7016],\n", + " 98: [3099, 2643, 2581, 3243, 1276, 3771, 3054, 3604, 3713, 2780],\n", + " 113: [2147, 2239, 2733, 2097, 2962, 2414, 2557, 2612, 3005, 317],\n", + " 120: [3871,\n", + " 4407,\n", + " 4249,\n", + " 1943,\n", + " 8484,\n", + " 26965,\n", + " 8528,\n", + " 7131,\n", + " 8266,\n", + " 7766],\n", + " 123: [5107, 5994, 614, 1095, 5679, 5962, 5859, 6252, 5016, 5747],\n", + " 157: [5352, 5502, 7149, 6953, 5893, 7347, 7365, 5517, 8360, 5951],\n", + " 194: [5604, 5528, 6513, 6542, 5414, 2250, 308, 4887, 2965, 5127],\n", + " 200: [7376,\n", + " 26555,\n", + " 2182,\n", + " 26122,\n", + " 52375,\n", + " 6567,\n", + " 4840,\n", + " 960,\n", + " 3689,\n", + " 5530],\n", + " 204: [3304, 2677, 6012, 3422, 5324, 5418, 6327, 6732, 6192, 6294],\n", + " 205: [53121,\n", + " 54881,\n", + " 7938,\n", + " 34319,\n", + " 49272,\n", + " 8972,\n", + " 52722,\n", + " 40148,\n", + " 52456,\n", + " 25923],\n", + " 225: [46, 97, 522, 650, 4477, 1169, 3659, 6827, 670, 174],\n", + " 229: [2878,\n", + " 26119,\n", + " 3544,\n", + " 9015,\n", + " 4023,\n", + " 2769,\n", + " 4921,\n", + " 44161,\n", + " 31770,\n", + " 57],\n", + " 237: [4132, 3232, 3330, 3158, 2203, 3923, 4251, 2462, 2469, 661],\n", + " 242: [33836,\n", + " 47382,\n", + " 33085,\n", + " 54001,\n", + " 33004,\n", + " 32892,\n", + " 54190,\n", + " 47254,\n", + " 37240,\n", + " 54259],\n", + " 252: [2545, 1752, 1753, 1759, 1762, 1769, 1770, 1782, 1783, 1784],\n", + " 266: [4124,\n", + " 9010,\n", + " 49272,\n", + " 3311,\n", + " 25750,\n", + " 55820,\n", + " 60943,\n", + " 44929,\n", + " 52668,\n", + " 31445],\n", + " 270: [40412,\n", + " 55872,\n", + " 7094,\n", + " 3203,\n", + " 8372,\n", + " 60649,\n", + " 2585,\n", + " 54796,\n", + " 33819,\n", + " 5893],\n", + " 282: [6045, 5011, 6790, 5164, 6631, 5928, 5812, 6305, 6784, 5504],\n", + " 297: [44197, 1917, 251, 2237, 1448, 994, 1438, 1291, 51412, 981],\n", + " 309: [5546,\n", + " 52668,\n", + " 5481,\n", + " 4850,\n", + " 2206,\n", + " 4857,\n", + " 2927,\n", + " 5729,\n", + " 2174,\n", + " 30848],\n", + " 316: [4381, 4124, 8623, 5012, 4015, 8491, 3299, 3072, 2664, 4911],\n", + " 327: [2085, 2797, 45, 27266, 3254, 3249, 8941, 353, 48082, 45732],\n", + " 356: [56367,\n", + " 46572,\n", + " 54999,\n", + " 44204,\n", + " 60147,\n", + " 44665,\n", + " 47382,\n", + " 951,\n", + " 3269,\n", + " 215],\n", + " 393: [6970,\n", + " 7938,\n", + " 3095,\n", + " 2382,\n", + " 6875,\n", + " 8485,\n", + " 31584,\n", + " 6857,\n", + " 5782,\n", + " 25788],\n", + " 394: [50442,\n", + " 48416,\n", + " 51088,\n", + " 59387,\n", + " 53129,\n", + " 52694,\n", + " 56563,\n", + " 49793,\n", + " 56286,\n", + " 55052],\n", + " 395: [75, 891, 1457, 615, 840, 965, 1583, 263, 596, 595],\n", + " 399: [5348, 5285, 5980, 4992, 5009, 5222, 5507, 5392, 6690, 5085],\n", + " 401: [606, 299, 502, 42728, 8581, 7176, 217, 6513, 30749, 33615],\n", + " 402: [5055,\n", + " 5942,\n", + " 27186,\n", + " 7883,\n", + " 6862,\n", + " 7564,\n", + " 8198,\n", + " 6774,\n", + " 7745,\n", + " 55288],\n", + " 405: [2858, 2401, 2347, 2979, 3250, 416, 364, 2352, 2653, 6650],\n", + " 417: [2916,\n", + " 2320,\n", + " 2769,\n", + " 2890,\n", + " 2827,\n", + " 26203,\n", + " 3074,\n", + " 2558,\n", + " 2618,\n", + " 6480],\n", + " 422: [56805,\n", + " 58490,\n", + " 54286,\n", + " 59795,\n", + " 58418,\n", + " 58381,\n", + " 59985,\n", + " 58367,\n", + " 60037,\n", + " 2069],\n", + " 437: [5269, 5927, 2557, 3019, 5839, 6130, 2496, 2501, 5171, 3143],\n", + " 455: [3224, 3250, 3751, 7173, 4340, 3893, 6235, 81, 4339, 3705],\n", + " 461: [6356,\n", + " 47830,\n", + " 6273,\n", + " 6791,\n", + " 7190,\n", + " 5372,\n", + " 6480,\n", + " 4205,\n", + " 7169,\n", + " 4772],\n", + " 473: [3967,\n", + " 4682,\n", + " 7134,\n", + " 4452,\n", + " 7834,\n", + " 35836,\n", + " 7880,\n", + " 7217,\n", + " 7301,\n", + " 27768],\n", + " 484: [988, 4119, 3308, 876, 1623, 2108, 963, 2834, 4186, 1397],\n", + " 499: [1493, 876, 1581, 745, 1337, 2005, 2000, 1285, 4526, 1675],\n", + " 526: [4082, 4267, 4266, 4265, 4263, 4262, 4255, 4250, 4249, 4248],\n", + " 537: [4887, 4867, 4868, 4133, 4351, 4111, 3972, 4574, 4037, 4881],\n", + " 542: [491, 1563, 486, 780, 1648, 1642, 959, 960, 1542, 1466],\n", + " 557: [51007,\n", + " 333,\n", + " 31923,\n", + " 45722,\n", + " 8012,\n", + " 8208,\n", + " 324,\n", + " 55269,\n", + " 7706,\n", + " 1545],\n", + " 563: [32591,\n", + " 45440,\n", + " 33164,\n", + " 8884,\n", + " 8142,\n", + " 8894,\n", + " 8138,\n", + " 8132,\n", + " 8130,\n", + " 8125],\n", + " 570: [60766,\n", + " 58293,\n", + " 8477,\n", + " 41566,\n", + " 58303,\n", + " 49278,\n", + " 56563,\n", + " 56171,\n", + " 8604,\n", + " 58291],\n", + " 575: [42632,\n", + " 3402,\n", + " 2641,\n", + " 3663,\n", + " 46337,\n", + " 2686,\n", + " 3330,\n", + " 3896,\n", + " 2929,\n", + " 3876],\n", + " 594: [33166,\n", + " 8195,\n", + " 27831,\n", + " 32325,\n", + " 5076,\n", + " 25916,\n", + " 31359,\n", + " 7899,\n", + " 4190,\n", + " 446],\n", + " 607: [2733, 2022, 45635, 613, 8808, 25753, 60649, 3178, 74, 674],\n", + " 631: [162, 472, 4161, 554, 328, 141, 3232, 26, 3396, 426],\n", + " 651: [40815,\n", + " 37729,\n", + " 34164,\n", + " 56174,\n", + " 36537,\n", + " 55094,\n", + " 45672,\n", + " 37380,\n", + " 47518,\n", + " 2812],\n", + " 664: [1814, 1690, 2185, 1725, 2178, 1627, 1621, 2315, 2774, 2702],\n", + " 685: [159, 559, 166, 4682, 476, 5788, 5266, 5068, 5004, 4803],\n", + " 690: [4062, 3563, 7933, 4220, 6724, 3486, 4011, 3472, 4520, 3844],\n", + " 696: [286, 271, 210, 361, 79, 487, 416, 188, 333, 7000],\n", + " 724: [2577, 2753, 2441, 2708, 2267, 2105, 3171, 2816, 2847, 2947],\n", + " 738: [5159, 4768, 4649, 5112, 4125, 4370, 4445, 4517, 4484, 4444],\n", + " 762: [3196, 2780, 2775, 2772, 2766, 2765, 2763, 2762, 2757, 2751],\n", + " 763: [4572,\n", + " 3747,\n", + " 6982,\n", + " 34162,\n", + " 7123,\n", + " 8873,\n", + " 5136,\n", + " 34164,\n", + " 27850,\n", + " 4345],\n", + " 770: [998, 436, 498, 1610, 1151, 1053, 292, 1593, 443, 1123],\n", + " 796: [2473, 2094, 2095, 2856, 2371, 2852, 2368, 2848, 2593, 2105],\n", + " 800: [2876, 2259, 2862, 2864, 2871, 2875, 2878, 2879, 2255, 2885],\n", + " 829: [6748, 5732, 353, 1104, 6583, 6708, 6986, 1580, 5636, 6473],\n", + " 836: [5397, 5226, 44197, 8667, 568, 251, 4531, 516, 5734, 5311],\n", + " 882: [2887, 3179, 3180, 3181, 3182, 3183, 2709, 2708, 3187, 2706],\n", + " 900: [1345, 2094, 2312, 1190, 1873, 779, 1969, 965, 592, 929],\n", + " 903: [2106, 1242, 4881, 1189, 2193, 1951, 1694, 1946, 1282, 1997],\n", + " 914: [54745,\n", + " 59725,\n", + " 59037,\n", + " 7076,\n", + " 60760,\n", + " 58975,\n", + " 58299,\n", + " 60649,\n", + " 54513,\n", + " 57464],\n", + " 918: [3508, 4195, 3966, 3421, 3390, 4723, 4470, 3436, 4641, 1082],\n", + " 920: [2625, 2530, 2528, 2527, 2526, 2523, 2522, 2521, 2519, 2517],\n", + " 945: [2719, 3600, 2921, 3604, 3605, 2506, 3276, 3270, 2502, 2857],\n", + " 950: [8915,\n", + " 36477,\n", + " 33836,\n", + " 8796,\n", + " 42728,\n", + " 43708,\n", + " 27618,\n", + " 58295,\n", + " 25916,\n", + " 55080],\n", + " 952: [52668,\n", + " 55805,\n", + " 48698,\n", + " 55765,\n", + " 55729,\n", + " 55687,\n", + " 55577,\n", + " 55451,\n", + " 48738,\n", + " 55442],\n", + " 982: [504, 499, 53460, 763, 55094, 496, 1584, 51709, 1680, 1224],\n", + " 989: [4055, 3394, 1580, 2059, 1973, 827, 3444, 3792, 1117, 2066],\n", + " 1016: [2990,\n", + " 2279,\n", + " 3483,\n", + " 2795,\n", + " 2388,\n", + " 8967,\n", + " 7990,\n", + " 7745,\n", + " 5588,\n", + " 8919],\n", + " 1019: [5836, 4979, 5570, 4837, 6561, 516, 4895, 5608, 5081, 5213],\n", + " 1044: [43987,\n", + " 48319,\n", + " 61132,\n", + " 56251,\n", + " 36517,\n", + " 46976,\n", + " 52283,\n", + " 43836,\n", + " 43917,\n", + " 44161],\n", + " 1051: [3839,\n", + " 4982,\n", + " 4945,\n", + " 4131,\n", + " 4080,\n", + " 3998,\n", + " 4926,\n", + " 4193,\n", + " 3847,\n", + " 4812],\n", + " 917: [4238, 3073, 3539, 3761, 1123, 2961, 4256, 908, 3006, 1251],\n", + " 951: [8378,\n", + " 6889,\n", + " 52281,\n", + " 30850,\n", + " 48262,\n", + " 59727,\n", + " 36529,\n", + " 6725,\n", + " 61160,\n", + " 7306],\n", + " 997: [26270,\n", + " 25908,\n", + " 7562,\n", + " 7811,\n", + " 7218,\n", + " 45210,\n", + " 5582,\n", + " 26870,\n", + " 8661,\n", + " 30803],\n", + " 174: [2112,\n", + " 58154,\n", + " 55995,\n", + " 2060,\n", + " 1856,\n", + " 3770,\n", + " 6244,\n", + " 2563,\n", + " 3078,\n", + " 49220],\n", + " 676: [2321, 3034, 3500, 3526, 3358, 2506, 3505, 3464, 3374, 2519],\n", + " 764: [5668, 5066, 2597, 2784, 2745, 5028, 2450, 2667, 2209, 4873],\n", + " 1052: [7493,\n", + " 8451,\n", + " 8198,\n", + " 8985,\n", + " 8208,\n", + " 44555,\n", + " 32029,\n", + " 45950,\n", + " 45183,\n", + " 37380],\n", + " 5: [62803, 50851, 440, 2019, 6424, 1679, 378, 6662, 2670, 2580],\n", + " 27: [603, 6448, 236, 1089, 1445, 6721, 3639, 852, 1670, 1383],\n", + " 33: [7035, 6383, 6839, 6053, 6261, 2542, 1821, 1224, 1472, 1956],\n", + " 134: [62394,\n", + " 45208,\n", + " 47629,\n", + " 45442,\n", + " 50005,\n", + " 52281,\n", + " 50153,\n", + " 44225,\n", + " 49957,\n", + " 45499],\n", + " 142: [3643, 3663, 3664, 3668, 3669, 4598, 3677, 3680, 3684, 3688],\n", + " 156: [3289, 3031, 3276, 2839, 2681, 2842, 3286, 2843, 3293, 2678],\n", + " 167: [2665, 442, 5785, 6375, 7418, 1609, 492, 910, 1517, 1964],\n", + " 177: [1236, 1627, 5438, 5323, 6102, 824, 5650, 1701, 5952, 716],\n", + " 224: [901, 1518, 1696, 1304, 1799, 806, 8772, 45732, 305, 25850],\n", + " 269: [59985,\n", + " 8968,\n", + " 6308,\n", + " 26606,\n", + " 7461,\n", + " 4094,\n", + " 48678,\n", + " 8983,\n", + " 4599,\n", + " 3424],\n", + " 312: [3403, 463, 4213, 4735, 31225, 940, 3461, 4220, 7842, 7624],\n", + " 360: [3054, 3112, 3781, 3649, 3061, 5380, 3592, 3037, 4304, 5706],\n", + " 385: [58315,\n", + " 56274,\n", + " 50354,\n", + " 52950,\n", + " 987,\n", + " 55250,\n", + " 55276,\n", + " 50806,\n", + " 58367,\n", + " 50514],\n", + " 411: [2300, 3432, 3175, 2307, 3425, 3333, 2810, 5321, 2854, 2291],\n", + " 464: [2766, 2713, 3419, 2708, 2656, 2843, 3912, 2095, 2848, 2194],\n", + " 568: [4672, 4307, 4213, 4633, 3714, 3936, 3996, 4061, 4024, 4863],\n", + " 612: [8542,\n", + " 6965,\n", + " 6784,\n", + " 7791,\n", + " 31445,\n", + " 2379,\n", + " 8531,\n", + " 8584,\n", + " 3599,\n", + " 8196],\n", + " 630: [44761,\n", + " 52717,\n", + " 44555,\n", + " 49347,\n", + " 44694,\n", + " 53988,\n", + " 44225,\n", + " 56563,\n", + " 49132,\n", + " 46578],\n", + " 706: [54281,\n", + " 26840,\n", + " 41573,\n", + " 27584,\n", + " 59727,\n", + " 37382,\n", + " 33836,\n", + " 39052,\n", + " 50794,\n", + " 1619],\n", + " 737: [1051, 1859, 2289, 555, 1041, 945, 235, 471, 161, 659],\n", + " 749: [1077, 1020, 1167, 1498, 2189, 1220, 1563, 2136, 1009, 1258],\n", + " 756: [1361, 1621, 1353, 2432, 2104, 2324, 2523, 1503, 2360, 1870],\n", + " 811: [420, 473, 5957, 2938, 3115, 3183, 3446, 3122, 12, 4084],\n", + " 853: [64716,\n", + " 56915,\n", + " 57243,\n", + " 57522,\n", + " 60688,\n", + " 57910,\n", + " 57949,\n", + " 58078,\n", + " 58103,\n", + " 58154],\n", + " 884: [3353,\n", + " 3866,\n", + " 3812,\n", + " 3274,\n", + " 3998,\n", + " 3269,\n", + " 2757,\n", + " 25963,\n", + " 2146,\n", + " 8941],\n", + " 955: [484, 1101, 7250, 1413, 735, 300, 27513, 1237, 354, 44199],\n", + " 1032: [49932,\n", + " 27776,\n", + " 44197,\n", + " 45517,\n", + " 44974,\n", + " 50804,\n", + " 36517,\n", + " 47950,\n", + " 27706,\n", + " 32591],\n", + " 1043: [5404,\n", + " 5563,\n", + " 4686,\n", + " 5956,\n", + " 5343,\n", + " 5682,\n", + " 5099,\n", + " 6130,\n", + " 6042,\n", + " 5360],\n", + " 370: [1437, 1021, 1488, 1636, 951, 2139, 2087, 1169, 954, 1152],\n", + " 670: [45431, 27826, 7327, 8959, 98, 75, 7618, 160, 45501, 297],\n", + " 923: [926, 541, 539, 538, 536, 534, 533, 525, 522, 519],\n", + " 931: [1, 475, 155, 474, 472, 471, 159, 160, 469, 465],\n", + " 969: [848, 1096, 1111, 1731, 791, 1669, 1034, 1647, 1276, 1539],\n", + " 12: [6991, 6242, 6920, 7157, 6770, 6156, 6269, 8261, 7063, 6166],\n", + " 597: [27731,\n", + " 7883,\n", + " 32011,\n", + " 7844,\n", + " 1663,\n", + " 2415,\n", + " 44197,\n", + " 46948,\n", + " 8008,\n", + " 31804],\n", + " 195: [4008, 3955, 4644, 4223, 3946, 4169, 4503, 4262, 4556, 4741],\n", + " 337: [667,\n", + " 7166,\n", + " 7084,\n", + " 26163,\n", + " 27851,\n", + " 8991,\n", + " 2397,\n", + " 8045,\n", + " 25993,\n", + " 7382],\n", + " 910: [7158,\n", + " 7720,\n", + " 7459,\n", + " 34336,\n", + " 7478,\n", + " 8533,\n", + " 50514,\n", + " 26558,\n", + " 48520,\n", + " 38304],\n", + " 63: [293, 741, 502, 732, 581, 725, 300, 489, 577, 372],\n", + " 70: [5989,\n", + " 3068,\n", + " 5102,\n", + " 2456,\n", + " 31364,\n", + " 56563,\n", + " 3165,\n", + " 5958,\n", + " 5740,\n", + " 5080],\n", + " 99: [2468, 2041, 1779, 1993, 1958, 48877, 1797, 516, 58299, 2445],\n", + " 121: [861, 514, 1046, 1047, 518, 1050, 1051, 1056, 1041, 520],\n", + " 130: [5585,\n", + " 4243,\n", + " 27434,\n", + " 7445,\n", + " 4249,\n", + " 4081,\n", + " 4625,\n", + " 5349,\n", + " 6299,\n", + " 5424],\n", + " 244: [3108, 3178, 3846, 3710, 3113, 2580, 3664, 2456, 6297, 4378],\n", + " 291: [52462,\n", + " 55999,\n", + " 52644,\n", + " 60397,\n", + " 27821,\n", + " 52241,\n", + " 8369,\n", + " 51077,\n", + " 27584,\n", + " 58347],\n", + " 335: [4082, 4758, 5331, 4989, 5334, 4774, 4445, 4444, 4777, 5503],\n", + " 361: [7920, 6718, 973, 1748, 8983, 2210, 26585, 6525, 7587, 8542],\n", + " 470: [8928,\n", + " 8125,\n", + " 8128,\n", + " 34148,\n", + " 34143,\n", + " 34072,\n", + " 33880,\n", + " 33838,\n", + " 8138,\n", + " 33832],\n", + " 497: [8643,\n", + " 32296,\n", + " 58655,\n", + " 692,\n", + " 7005,\n", + " 6828,\n", + " 45662,\n", + " 32076,\n", + " 7898,\n", + " 1170],\n", + " 620: [5517, 5611, 7486, 6326, 6552, 5506, 8915, 6261, 6969, 5525],\n", + " 648: [2068, 1384, 2151, 2262, 1937, 2253, 2043, 1783, 2126, 1367],\n", + " 666: [57951,\n", + " 34164,\n", + " 7063,\n", + " 6971,\n", + " 7070,\n", + " 31364,\n", + " 20,\n", + " 7980,\n", + " 6031,\n", + " 5137],\n", + " 710: [45, 6603, 5970, 40, 5127, 6460, 6783, 5852, 6235, 6582],\n", + " 794: [5475, 6058, 4971, 4972, 6053, 4974, 6045, 4976, 4977, 4978],\n", + " 854: [514, 645, 640, 639, 218, 634, 632, 630, 617, 615],\n", + " 861: [728, 26, 4721, 3909, 335, 329, 267, 865, 786, 101],\n", + " 87: [129, 45, 273, 337, 532, 537, 104, 43, 77, 372],\n", + " 317: [34072, 7915, 64, 5125, 5706, 4377, 470, 5734, 5292, 5613],\n", + " 324: [7482,\n", + " 48741,\n", + " 26686,\n", + " 26398,\n", + " 34338,\n", + " 60522,\n", + " 42004,\n", + " 6513,\n", + " 8045,\n", + " 33683],\n", + " 502: [849, 1468, 266, 7257, 1266, 6301, 718, 1983, 1649, 5444],\n", + " 559: [6157, 6724, 5276, 5463, 5246, 5066, 5747, 5058, 6257, 5447],\n", + " 973: [6881,\n", + " 7728,\n", + " 8985,\n", + " 6710,\n", + " 25927,\n", + " 6816,\n", + " 6869,\n", + " 7809,\n", + " 7394,\n", + " 8825],\n", + " 1015: [1961,\n", + " 2614,\n", + " 3046,\n", + " 2086,\n", + " 2093,\n", + " 2800,\n", + " 2589,\n", + " 2126,\n", + " 1956,\n", + " 2322],\n", + " 1017: [270, 327, 806, 748, 275, 940, 252, 263, 1201, 1399],\n", + " 85: [4821, 5809, 4800, 1779, 3717, 26870, 7191, 8610, 7706, 8808],\n", + " 306: [2256, 2989, 2986, 2695, 2979, 2978, 2977, 2279, 3425, 2974],\n", + " 653: [7383, 7176, 6743, 7119, 6473, 7295, 8810, 6722, 6346, 7984],\n", + " 371: [36708,\n", + " 1658,\n", + " 1902,\n", + " 1949,\n", + " 1623,\n", + " 2065,\n", + " 1928,\n", + " 1570,\n", + " 2077,\n", + " 1340],\n", + " 566: [362, 886, 1440, 1275, 873, 871, 1432, 893, 868, 553],\n", + " 331: [6675, 6666, 5878, 6669, 5876, 5212, 6678, 5202, 5874, 6687],\n", + " 665: [3475, 1929, 1921, 1920, 1914, 1912, 1909, 1885, 1884, 1883],\n", + " 872: [1844, 2436, 2142, 2592, 2879, 1687, 2357, 2431, 1746, 2246],\n", + " 879: [5893, 5670, 5930, 5668, 5667, 5666, 7045, 7044, 7043, 5663],\n", + " 486: [5065, 4177, 5667, 5673, 5105, 5462, 6897, 4626, 7008, 6885],\n", + " 864: [5493, 5331, 5914, 5677, 4977, 4986, 4803, 4973, 6005, 4798],\n", + " 52: [4558, 3732, 5108, 7010, 90, 1233, 8376, 8795, 888, 426],\n", + " 288: [71, 158, 160, 239, 240, 243, 193, 164, 81, 79],\n", + " 9: [3050, 2135, 2139, 2140, 2141, 2143, 2148, 2149, 2150, 2151],\n", + " 117: [5078, 5832, 6793, 3643, 4466, 5743, 5002, 6720, 5940, 5379],\n", + " 220: [56715,\n", + " 60037,\n", + " 56176,\n", + " 53121,\n", + " 49957,\n", + " 5003,\n", + " 53999,\n", + " 58156,\n", + " 573,\n", + " 58105],\n", + " 544: [4082, 3729, 4556, 3853, 314, 4326, 4397, 4929, 4989, 4245],\n", + " 999: [53322,\n", + " 56885,\n", + " 6978,\n", + " 6795,\n", + " 34321,\n", + " 8593,\n", + " 31685,\n", + " 51927,\n", + " 3153,\n", + " 42718],\n", + " 458: [852, 802, 363, 982, 3467, 2702, 448, 678, 314, 2376],\n", + " 974: [6326, 5275, 7042, 241, 870, 1310, 143, 799, 1291, 864],\n", + " 546: [2125, 2794, 2131, 2082, 1405, 3251, 2182, 946, 2331, 2644],\n", + " 55: [1875,\n", + " 1336,\n", + " 6196,\n", + " 1271,\n", + " 5289,\n", + " 1997,\n", + " 55288,\n", + " 3739,\n", + " 39381,\n", + " 2240],\n", + " 363: [3623, 3563, 3093, 3869, 3755, 3247, 3214, 4217, 3235, 4167],\n", + " 445: [492, 5633, 453, 344, 5706, 1093, 1565, 7199, 380, 665],\n", + " 492: [613, 5004, 4251, 727, 1010, 1224, 481, 1154, 497, 795],\n", + " 234: [245, 6058, 673, 5420, 4479, 5304, 5630, 6066, 4960, 4510],\n", + " 1027: [2115,\n", + " 1957,\n", + " 2000,\n", + " 1468,\n", + " 2190,\n", + " 2336,\n", + " 1392,\n", + " 2150,\n", + " 4510,\n", + " 4649],\n", + " 140: [3388, 2738, 3267, 3556, 3049, 1372, 199, 934, 7122, 2657],\n", + " 926: [5085, 1213, 4332, 1472, 1051, 1692, 550, 495, 500, 631],\n", + " 781: [2344, 2364, 2991, 2566, 2025, 2989, 2442, 2983, 2357, 2974],\n", + " 825: [1305, 1782, 14, 1850, 1342, 1411, 2408, 1974, 1756, 1352],\n", + " 913: [1, 108, 106, 104, 101, 100, 95, 94, 85, 113],\n", + " 453: [1095, 1904, 6731, 8383, 5013, 2336, 5358, 5111, 5823, 5893],\n", + " 540: [6319, 4662, 3313, 4125, 5635, 5646, 4729, 3695, 6198, 6325],\n", + " 66: [710, 726, 279, 6166, 2001, 2712, 49793, 592, 44937, 272],\n", + " 185: [2423, 3036, 2323, 3528, 3539, 4903, 4780, 4359, 3677, 1879],\n", + " 222: [8718, 6873, 8, 3150, 3122, 2536, 26554, 8520, 7247, 3060],\n", + " 498: [8191,\n", + " 7827,\n", + " 25753,\n", + " 27731,\n", + " 7817,\n", + " 32627,\n", + " 43869,\n", + " 8623,\n", + " 8622,\n", + " 8620],\n", + " 994: [31590,\n", + " 8587,\n", + " 8371,\n", + " 7621,\n", + " 7706,\n", + " 8208,\n", + " 37853,\n", + " 8667,\n", + " 8989,\n", + " 31225],\n", + " 165: [2356, 259, 6667, 6429, 491, 3068, 164, 8836, 593, 347],\n", + " 202: [842, 1777, 980, 1772, 1771, 1767, 1380, 986, 965, 1389],\n", + " 180: [6157, 8602, 6181, 7079, 3942, 3251, 6263, 240, 8533, 3357],\n", + " 93: [8207,\n", + " 8235,\n", + " 8484,\n", + " 34143,\n", + " 31429,\n", + " 4975,\n", + " 47382,\n", + " 38499,\n", + " 32139,\n", + " 8831],\n", + " 261: [7034, 8966, 4629, 5248, 6303, 4212, 4526, 4566, 4837, 3925],\n", + " 435: [1825, 2048, 2578, 2574, 2042, 2040, 2038, 2037, 2569, 2035],\n", + " 322: [6247, 5343, 5996, 6221, 6568, 6118, 5447, 6510, 6433, 5764],\n", + " 238: [33004,\n", + " 51080,\n", + " 31435,\n", + " 49280,\n", + " 31359,\n", + " 31590,\n", + " 55118,\n", + " 31685,\n", + " 44191,\n", + " 62803],\n", + " 425: [3918, 4448, 4393, 4972, 4637, 4588, 4334, 4743, 4686, 4153],\n", + " 512: [55250,\n", + " 32296,\n", + " 1055,\n", + " 2294,\n", + " 1862,\n", + " 43921,\n", + " 54612,\n", + " 27873,\n", + " 34321,\n", + " 51925],\n", + " 725: [4389, 4705, 4164, 4695, 4969, 4252, 4409, 3901, 4003, 4087],\n", + " 732: [3819, 3088, 3204, 3962, 3702, 3051, 2845, 3101, 3221, 3361],\n", + " 108: [3640,\n", + " 2847,\n", + " 4124,\n", + " 49649,\n", + " 50796,\n", + " 53468,\n", + " 1388,\n", + " 1011,\n", + " 1009,\n", + " 51086],\n", + " 592: [44665,\n", + " 26150,\n", + " 27340,\n", + " 26172,\n", + " 48738,\n", + " 42728,\n", + " 56715,\n", + " 26002,\n", + " 7584,\n", + " 26119],\n", + " 443: [45726,\n", + " 25788,\n", + " 5494,\n", + " 40412,\n", + " 4603,\n", + " 4679,\n", + " 4546,\n", + " 6198,\n", + " 62394,\n", + " 42734],\n", + " 916: [7621,\n", + " 8864,\n", + " 8860,\n", + " 33171,\n", + " 33237,\n", + " 33312,\n", + " 8852,\n", + " 8841,\n", + " 33493,\n", + " 33499],\n", + " 736: [6093, 6957, 8371, 6794, 8377, 7027, 8459, 8365, 7394, 7646],\n", + " 961: [1583,\n", + " 1785,\n", + " 6790,\n", + " 1145,\n", + " 7405,\n", + " 27689,\n", + " 7572,\n", + " 26492,\n", + " 1626,\n", + " 27416],\n", + " 1012: [6482,\n", + " 6094,\n", + " 6377,\n", + " 6216,\n", + " 6125,\n", + " 7134,\n", + " 7155,\n", + " 7163,\n", + " 7486,\n", + " 6326],\n", + " 515: [7124, 6191, 6299, 6159, 3871, 7445, 1880, 6339, 7102, 1374],\n", + " 978: [729, 1655, 1587, 546, 1334, 1662, 1582, 709, 1262, 1261],\n", + " 28: [3132, 3825, 2566, 1867, 149, 55269, 3064, 3797, 3728, 58975],\n", + " 475: [4205, 3515, 1696, 345, 575, 1050, 810, 2300, 2236, 213],\n", + " 598: [27803,\n", + " 25764,\n", + " 47644,\n", + " 54513,\n", + " 57538,\n", + " 27768,\n", + " 59306,\n", + " 31594,\n", + " 32179,\n", + " 25805],\n", + " 943: [1251, 1365, 1373, 1152, 1797, 1144, 1785, 1125, 1421, 1428],\n", + " 520: [4039, 4104, 4795, 3600, 3738, 3518, 3527, 4677, 4251, 2461],\n", + " 697: [938, 2166, 1693, 1669, 1046, 1284, 1468, 1968, 981, 964],\n", + " 849: [5024, 4970, 4968, 5602, 4961, 4960, 4958, 4957, 4951, 5606],\n", + " 1003: [7194,\n", + " 7828,\n", + " 8484,\n", + " 31367,\n", + " 7013,\n", + " 8827,\n", + " 7237,\n", + " 8811,\n", + " 6855,\n", + " 7047],\n", + " 705: [2421, 2306, 1754, 2445, 2365, 2600, 1857, 2095, 2677, 2864],\n", + " 48: [3073, 2613, 7134, 5172, 8275, 2754, 2542, 3743, 3204, 6244],\n", + " 29: [7943,\n", + " 1103,\n", + " 7698,\n", + " 1593,\n", + " 1040,\n", + " 1045,\n", + " 26745,\n", + " 25753,\n", + " 8604,\n", + " 1733],\n", + " 231: [627, 58, 1032, 56949, 33836, 1113, 5499, 164, 719, 157],\n", + " 699: [485, 468, 301, 37741, 436, 8537, 50794, 73, 378, 69],\n", + " 448: [4722, 4168, 5111, 4477, 4886, 6686, 5523, 4085, 1841, 5099],\n", + " 750: [3968, 4453, 5295, 4509, 5202, 3849, 4121, 5214, 4599, 4683],\n", + " 782: [2473, 2885, 2930, 2408, 3061, 3519, 2610, 2975, 2443, 3135],\n", + " 860: [4366, 4521, 5823, 4355, 5236, 4517, 5187, 4531, 5464, 5560],\n", + " 768: [960, 2017, 1126, 1997, 961, 1371, 1575, 1465, 1145, 1780],\n", + " 127: [47099,\n", + " 3189,\n", + " 2824,\n", + " 7373,\n", + " 3528,\n", + " 3605,\n", + " 58047,\n", + " 3252,\n", + " 3592,\n", + " 8636],\n", + " 894: [118, 177, 900, 830, 1014, 486, 868, 298, 640, 969]})" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from collections import defaultdict\n", + "import numpy as np\n", + "\n", + "# 학습용 데이터에 존재하는 모든 사용자와 모든 영화의 조합에 대해 평갓값을 예측한다\n", + "train_all_pred = reg.predict(train_all_x.values)\n", + "\n", + "pred_train_all = train_all_keys.copy()\n", + "pred_train_all[\"rating_pred\"] = train_all_pred\n", + "pred_matrix = pred_train_all.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating_pred\")\n", + "\n", + "# 사용자가 학습용 데이터 안에서 평가하지 않은 영화 중에서\n", + "# 예측 평갓값이 높은 순으로 10편의 영화를 순위 형식으로 추천 리스트로 만든다\n", + "pred_user2items = defaultdict(list)\n", + "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", + "for user_id in movielens_train.user_id.unique():\n", + " movie_indexes = np.argsort(-pred_matrix.loc[user_id, :]).values\n", + " for movie_index in movie_indexes:\n", + " movie_id = user_movie_matrix.columns[movie_index]\n", + " if movie_id not in (user_evaluated_movies[user_id]):\n", + " pred_user2items[user_id].append(movie_id)\n", + " if len(pred_user2items[user_id]) == 10:\n", + " break\n", + "pred_user2items" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c3a25c25", + "metadata": { + "colab": { + "background_save": true + }, + "id": "c3a25c25", + "outputId": "aa1f9306-1bdb-43c6-f692-1731569f185f" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " user_id movie_id rating timestamp \\\n", + "4732 2 110 5.0 868245777 \n", + "5246 2 260 5.0 868244562 \n", + "5798 2 590 5.0 868245608 \n", + "6150 2 648 2.0 868244699 \n", + "6531 2 733 3.0 868244562 \n", + "6813 2 736 3.0 868244698 \n", + "7113 2 780 3.0 868244698 \n", + "7506 2 786 3.0 868244562 \n", + "7661 2 802 2.0 868244603 \n", + "7779 2 858 2.0 868245645 \n", + "8077 2 1049 3.0 868245920 \n", + "8127 2 1073 3.0 868244562 \n", + "8381 2 1210 4.0 868245644 \n", + "8771 2 1356 3.0 868244603 \n", + "9097 2 1544 3.0 868245920 \n", + "\n", + " title \\\n", + "4732 Braveheart (1995) \n", + "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", + "5798 Dances with Wolves (1990) \n", + "6150 Mission: Impossible (1996) \n", + "6531 Rock, The (1996) \n", + "6813 Twister (1996) \n", + "7113 Independence Day (a.k.a. ID4) (1996) \n", + "7506 Eraser (1996) \n", + "7661 Phenomenon (1996) \n", + "7779 Godfather, The (1972) \n", + "8077 Ghost and the Darkness, The (1996) \n", + "8127 Willy Wonka & the Chocolate Factory (1971) \n", + "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", + "8771 Star Trek: First Contact (1996) \n", + "9097 Lost World: Jurassic Park, The (Jurassic Park ... \n", + "\n", + " genre \\\n", + "4732 [Action, Drama, War] \n", + "5246 [Action, Adventure, Sci-Fi] \n", + "5798 [Adventure, Drama, Western] \n", + "6150 [Action, Adventure, Mystery, Thriller] \n", + "6531 [Action, Adventure, Thriller] \n", + "6813 [Action, Adventure, Romance, Thriller] \n", + "7113 [Action, Adventure, Sci-Fi, War] \n", + "7506 [Action, Drama, Thriller] \n", + "7661 [Drama, Romance] \n", + "7779 [Crime, Drama] \n", + "8077 [Action, Adventure] \n", + "8127 [Children, Comedy, Fantasy, Musical] \n", + "8381 [Action, Adventure, Sci-Fi] \n", + "8771 [Action, Adventure, Sci-Fi, Thriller] \n", + "9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n", + "\n", + " tag timestamp_rank \n", + "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", + "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", + "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", + "6150 [confusing, confusing plot, memorable sequence... 12.0 \n", + "6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n", + "6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n", + "7113 [action, alien invasion, aliens, will smith, a... 14.0 \n", + "7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n", + "7661 [interesting concept, own, john travolta, john... 15.0 \n", + "7779 [oscar (best picture), marlon brando, classic,... 9.0 \n", + "8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n", + "8127 [based on a book, roald dahl, based on a book,... 20.0 \n", + "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n", + "8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n", + "9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 " + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2인 사용자가 학습 데이터에 평가를 부여한 영화 목록\n", + "movielens_train[movielens_train.user_id==2]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a178ecdc", + "metadata": { + "colab": { + "background_save": true + }, + "id": "a178ecdc", + "outputId": "9254da3c-39f8-4c2d-f850-120f1e9b7e68" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[4210, 4961, 4105, 2351, 3573, 4032, 1586, 5159, 4840, 2804]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred_user2items[2]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "09555a1f", + "metadata": { + "colab": { + "background_save": true + }, + "id": "09555a1f", + "outputId": "0a669df8-2100-4815-af2c-0ab68484aab4" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idtitlegenretag
40134105Evil Dead, The (1981)[Fantasy, Horror][directorial debut, bruce campbell, cult class...
41184210Manhunter (1986)[Action, Crime, Drama, Horror, Thriller][hannibal lecter, serial killer, ei muista, er...
48674961Pornstar: The Legend of Ron Jeremy (2001)[Documentary][pornography]
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " movie_id title \\\n", + "4013 4105 Evil Dead, The (1981) \n", + "4118 4210 Manhunter (1986) \n", + "4867 4961 Pornstar: The Legend of Ron Jeremy (2001) \n", + "\n", + " genre \\\n", + "4013 [Fantasy, Horror] \n", + "4118 [Action, Crime, Drama, Horror, Thriller] \n", + "4867 [Documentary] \n", + "\n", + " tag \n", + "4013 [directorial debut, bruce campbell, cult class... \n", + "4118 [hannibal lecter, serial killer, ei muista, er... \n", + "4867 [pornography] " + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2에 대한 추천(4210, 4961, 4105)\n", + "movies[movies.movie_id.isin([4210, 4961, 4105])]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7a42fa17", + "metadata": { + "colab": { + "background_save": true + }, + "id": "7a42fa17" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "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.10.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/chapter5/colab/SVD.ipynb b/chapter5/colab/SVD.ipynb index b2c9df3..ce786a4 100644 --- a/chapter5/colab/SVD.ipynb +++ b/chapter5/colab/SVD.ipynb @@ -1 +1,2381 @@ -{"cells":[{"cell_type":"markdown","id":"4fb1700b","metadata":{"id":"4fb1700b"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/SVD.ipynb)"]},{"cell_type":"markdown","id":"05fd5c37","metadata":{"id":"05fd5c37"},"source":["# 특이값 분석(SVD)"]},{"cell_type":"code","execution_count":1,"id":"ae97b569","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ae97b569","executionInfo":{"status":"ok","timestamp":1672119890093,"user_tz":-540,"elapsed":4522,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"52b03925-db6b-47e9-e26c-764d0eba7a5b"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:43:01-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 65.4MB/s in 1.0s \n","\n","2022-12-27 05:43:02 (65.4 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"395a5042","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"395a5042","executionInfo":{"status":"ok","timestamp":1672119956404,"user_tz":-540,"elapsed":66319,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"d2cab3b4-2205-46e7-c70a-e37c5d6b611c"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"1bcee149","metadata":{"id":"1bcee149","executionInfo":{"status":"ok","timestamp":1672119956405,"user_tz":-540,"elapsed":30,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 결손값을 채우는 방법\n","fillna_with_zero = True\n","# 인자 수\n","factors = 5"]},{"cell_type":"code","execution_count":4,"id":"2cf8dfe4","metadata":{"id":"2cf8dfe4","executionInfo":{"status":"ok","timestamp":1672119956405,"user_tz":-540,"elapsed":25,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다.\n","user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n","user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n","movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n","if fillna_with_zero:\n"," matrix = user_movie_matrix.fillna(0).to_numpy()\n","else:\n"," matrix = user_movie_matrix.fillna(movielens_train.rating.mean()).to_numpy()\n"]},{"cell_type":"code","execution_count":5,"id":"22c0909b","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"22c0909b","executionInfo":{"status":"ok","timestamp":1672119956405,"user_tz":-540,"elapsed":22,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"73d96ca8-6fd5-42b8-c085-568f67d0d2e5"},"outputs":[{"output_type":"stream","name":"stdout","text":["ユーザー数=1000, アイテム数=6673, 密度=0.02\n"]}],"source":["# 희소 정보\n","user_num = len(user_movie_matrix.index)\n","item_num = len(user_movie_matrix.columns)\n","non_null_num = user_num*item_num - user_movie_matrix.isnull().sum().sum()\n","non_null_ratio = non_null_num / (user_num*item_num)\n","\n","print(f'ユーザー数={user_num}, アイテム数={item_num}, 密度={non_null_ratio:.2f}')"]},{"cell_type":"code","execution_count":6,"id":"7f1f97fa","metadata":{"scrolled":true,"id":"7f1f97fa","executionInfo":{"status":"ok","timestamp":1672119957450,"user_tz":-540,"elapsed":607,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["from scipy.sparse.linalg import svds\n","import numpy as np\n","\n","# 인자 수 k로 특이점 분석을 수행한다\n","P, S, Qt = svds(matrix, k=factors)"]},{"cell_type":"code","execution_count":7,"id":"65a9563b","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"65a9563b","executionInfo":{"status":"ok","timestamp":1672119957451,"user_tz":-540,"elapsed":4,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"b73e0f1a-457a-4e3f-866f-78010e4c4bd3"},"outputs":[{"output_type":"stream","name":"stdout","text":["P: (1000, 5), S: (5,), Qt: (5, 6673), pred_matrix: (1000, 6673)\n"]}],"source":["# 예측 평갓값 행렬\n","pred_matrix = np.dot(np.dot(P, np.diag(S)), Qt)\n","\n","print(f\"P: {P.shape}, S: {S.shape}, Qt: {Qt.shape}, pred_matrix: {pred_matrix.shape}\")"]},{"cell_type":"code","execution_count":8,"id":"75ee52d8","metadata":{"id":"75ee52d8","executionInfo":{"status":"ok","timestamp":1672119957898,"user_tz":-540,"elapsed":449,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 학습용에 나타나지 않은 사용자와 영화 예측 평갓값은 평균 평갓값으로 한다\n","average_score = movielens_train.rating.mean()\n","movie_rating_predict = movielens_test.copy()\n","pred_results = []\n","for i, row in movielens_test.iterrows():\n"," user_id = row[\"user_id\"]\n"," if user_id not in user_id2index or row[\"movie_id\"] not in movie_id2index:\n"," pred_results.append(average_score)\n"," continue\n"," user_index = user_id2index[row[\"user_id\"]]\n"," movie_index = movie_id2index[row[\"movie_id\"]]\n"," pred_score = pred_matrix[user_index, movie_index]\n"," pred_results.append(pred_score)\n","movie_rating_predict[\"rating_pred\"] = pred_results"]},{"cell_type":"code","execution_count":9,"id":"2a761397","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"2a761397","executionInfo":{"status":"ok","timestamp":1672119959233,"user_tz":-540,"elapsed":1343,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"275c7093-7ffa-4628-d041-649854a18e3a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {139: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 4963, 6539, 4886],\n"," 149: [2571, 4226, 2762, 3996, 5349, 47, 2028, 4963, 6539, 4886],\n"," 182: [3793, 47, 6874, 2329, 4011, 7361, 2706, 4878, 2502, 6333],\n"," 215: [2329, 3147, 6711, 527, 2683, 3948, 8360, 5218, 6502, 1246],\n"," 281: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 326: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 351: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 357: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 426: [2502,\n"," 33794,\n"," 7147,\n"," 3949,\n"," 5902,\n"," 4848,\n"," 33166,\n"," 33493,\n"," 2791,\n"," 5995],\n"," 456: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 459: [4886, 318, 2997, 4995, 4973, 50, 3897, 7361, 1923, 4878],\n"," 494: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 517: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 524: [7153, 3996, 3793, 5349, 6539, 4886, 7361, 593, 1923, 5989],\n"," 556: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 588: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 589: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 590: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 601: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 621: [5952, 7153, 4306, 4995, 2329, 3897, 1682, 4011, 4878, 3147],\n"," 634: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 672: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 4963, 6539],\n"," 701: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 719: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 745: [5952, 7153, 4306, 6539, 5445, 356, 6377, 6874, 4973, 2329],\n"," 757: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 775: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 780: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 785: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 788: [296, 4973, 3897, 1089, 4878, 2502, 1961, 1196, 1136, 4034],\n"," 870: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 987: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 988: [7153, 4963, 6539, 5445, 6377, 6874, 4995, 2329, 4027, 7361],\n"," 1020: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 22: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 26: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 30: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 34: [4993, 4226, 5952, 2858, 7153, 4306, 3996, 5349, 4963, 6539],\n"," 38: [4226, 2858, 4306, 3793, 2028, 6539, 4886, 5445, 2997, 2329],\n"," 50: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 53: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 54: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 67: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 71: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 76: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 88: [4226, 4306, 3996, 47, 2028, 296, 1704, 318, 2997, 4995],\n"," 89: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 94: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 95: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 100: [2959, 4993, 3578, 4226, 2762, 7153, 4306, 3793, 5349, 4963],\n"," 101: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 102: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 103: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 111: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 116: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 118: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 143: [7153, 6539, 6377, 6874, 50, 4027, 7361, 6711, 7438, 1617],\n"," 144: [4886, 1704, 3897, 2706, 5989, 2502, 3147, 1784, 3114, 2396],\n"," 162: [4226, 4963, 1704, 318, 2997, 2329, 50, 3897, 4011, 4027],\n"," 172: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 173: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 187: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 193: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 208: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 210: [2959, 5952, 3793, 5349, 47, 2028, 4963, 6539, 4886, 5445],\n"," 214: [2959, 5952, 2858, 7153, 4306, 2028, 6539, 318, 6377, 6874],\n"," 228: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 232: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 236: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 259: [3578, 318, 6377, 4011, 4027, 1089, 1961, 4034, 2542, 3481],\n"," 260: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 267: [4306, 4886, 1704, 1682, 4011, 4878, 5989, 2502, 3147, 6711],\n"," 268: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 271: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 274: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 287: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 292: [4963, 6874, 5989, 6333, 3147, 527, 1517, 2542, 1617, 3481],\n"," 296: [3996, 1704, 6377, 1270, 1196, 1136, 2716, 2683, 1517, 2918],\n"," 303: [5349, 4963, 6539, 1704, 2997, 6377, 4995, 4973, 2329, 50],\n"," 307: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 47],\n"," 310: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 315: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 320: [3793, 5349, 1704, 318, 2997, 6874, 2329, 50, 3897, 4027],\n"," 332: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 339: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 343: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 355: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 364: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 365: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 368: [2858, 2762, 2028, 1704, 318, 4995, 2329, 593, 4878, 5989],\n"," 381: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 382: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 383: [2959, 4306, 5349, 47, 4963, 6539, 356, 6874, 2329, 3897],\n"," 391: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 396: [4993, 3578, 4226, 5952, 2762, 7153, 3996, 3793, 5349, 47],\n"," 398: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 406: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 409: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 410: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 416: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 418: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 419: [2959, 3578, 7153, 2028, 6539, 4886, 1704, 356, 6377, 6874],\n"," 421: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 424: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 432: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 434: [4226, 47, 296, 318, 2997, 4973, 2329, 50, 3897, 1682],\n"," 436: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 438: [2959, 4993, 4226, 5952, 7153, 5349, 47, 2028, 4963, 6539],\n"," 441: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 446: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 452: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 3996, 47, 2028],\n"," 460: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 463: [7153, 4963, 6377, 6874, 4973, 3897, 1682, 4011, 7361, 2291],\n"," 468: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 469: [2959, 47, 4995, 2329, 50, 3897, 1682, 4011, 7361, 1089],\n"," 472: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 476: [4886, 1704, 4995, 1270, 1923, 2291, 2502, 2716, 4034, 1517],\n"," 480: [7153, 6539, 1704, 318, 6377, 6874, 2329, 1682, 7361, 1089],\n"," 482: [2858, 2762, 3996, 5445, 2997, 6874, 4973, 50, 3897, 1682],\n"," 493: [4993, 5952, 7153, 593, 2502, 6333, 1196, 1136, 7438, 589],\n"," 496: [2959, 4993, 3578, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n"," 501: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 504: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 505: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 511: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 516: [6377, 50, 1682, 4027, 7361, 2918, 2542, 3052, 3481, 364],\n"," 525: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 530: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 531: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 533: [4886, 4995, 2329, 4011, 2706, 4878, 3147, 2683, 6365, 1732],\n"," 536: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 543: [2028, 2329, 3897, 4011, 1923, 5989, 4034, 2542, 3052, 3481],\n"," 547: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 549: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 553: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 558: [2762, 7153, 4886, 2997, 6874, 4973, 2329, 4011, 7361, 4878],\n"," 562: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 567: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 571: [2959, 4993, 5952, 2762, 7153, 3996, 296, 356, 6874, 4027],\n"," 572: [3578, 3996, 1704, 318, 4973, 1961, 4034, 2918, 3481, 1784],\n"," 577: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 581: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 585: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 593: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 604: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 605: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 609: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 628: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 629: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 645: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 650: [2959, 5952, 7153, 4306, 2028, 296, 4963, 6539, 4886, 5445],\n"," 656: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 657: [4306, 3793, 4963, 4886, 4011, 2502, 6333, 1136, 1517, 7438],\n"," 669: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 678: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 683: [2959, 4226, 5952, 2858, 2762, 3996, 296, 4963, 1704, 318],\n"," 688: [3996, 2028, 5445, 318, 4973, 3897, 1682, 7361, 4878, 2291],\n"," 689: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 693: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 716: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 4963, 6539],\n"," 720: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 734: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 735: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 739: [4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n"," 755: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 758: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 767: [2959, 4226, 2858, 4306, 3793, 47, 2028, 296, 4963, 4886],\n"," 769: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 786: [2959, 4993, 5952, 2858, 7153, 5349, 47, 2028, 296, 4963],\n"," 789: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 792: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 795: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 798: [6377, 2329, 4011, 4027, 7361, 2706, 2502, 4034, 3052, 3481],\n"," 799: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 802: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 806: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 807: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 816: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 827: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 828: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 846: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 859: [2858, 4306, 47, 4963, 318, 2997, 6377, 6874, 4995, 2329],\n"," 862: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 876: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 881: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 885: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 886: [4993, 4226, 5952, 7153, 4306, 3793, 5349, 4963, 6539, 4886],\n"," 889: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 890: [4993, 4226, 5952, 7153, 4306, 5349, 47, 4963, 6539, 4886],\n"," 891: [4963, 6539, 5445, 6377, 6874, 4995, 2329, 4011, 4027, 7361],\n"," 896: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 897: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 898: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 908: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 922: [4226, 2858, 3996, 3793, 2028, 296, 5445, 1704, 2997, 6874],\n"," 930: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 938: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 956: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 958: [4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 47],\n"," 968: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 977: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 990: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 996: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 1004: [4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 7153,\n"," 4306,\n"," 3996,\n"," 3793,\n"," 5349,\n"," 4963],\n"," 1005: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1008: [2028,\n"," 4963,\n"," 6539,\n"," 4995,\n"," 3897,\n"," 1682,\n"," 4011,\n"," 4027,\n"," 1089,\n"," 2706],\n"," 1029: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1037: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1050: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 4: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 8: [296, 356, 318, 6377, 4995, 4973, 7361, 2706, 5989, 2502],\n"," 18: [4993, 4226, 5952, 7153, 3793, 5349, 4886, 5445, 2997, 6874],\n"," 36: [7153, 3996, 47, 4886, 5445, 1704, 318, 2997, 6874, 4995],\n"," 47: [5349, 47, 4963, 4886, 1704, 356, 6377, 3897, 1682, 4027],\n"," 59: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 62: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 77: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 79: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 80: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 119: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 122: [4993, 4226, 5952, 7153, 4306, 3793, 5349, 47, 2028, 4963],\n"," 125: [2329, 1682, 7361, 4878, 7438, 1617, 5418, 8961, 1527, 8636],\n"," 126: [4973, 7361, 4878, 6711, 2542, 3052, 6365, 3948, 3751, 5378],\n"," 132: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 141: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 154: [4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 2028, 4963],\n"," 155: [4226, 7153, 3793, 5349, 4963, 6539, 4886, 5445, 6377, 6874],\n"," 163: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 164: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 170: [4993, 3578, 5952, 7153, 3996, 5349, 2028, 6539, 5445, 1704],\n"," 171: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 6539],\n"," 176: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 190: [4226, 2858, 47, 4963, 1704, 318, 2997, 6377, 4973, 2329],\n"," 197: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 198: [2997, 4973, 4011, 5989, 2291, 6333, 3147, 4034, 2542, 1291],\n"," 199: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 212: [3578, 2858, 4886, 1704, 6377, 2329, 3897, 1682, 4011, 2706],\n"," 221: [2959, 4993, 3578, 4226, 2762, 7153, 4306, 3996, 5349, 4963],\n"," 223: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 226: [2959, 2858, 7153, 4963, 6539, 2997, 6377, 6874, 4973, 1682],\n"," 241: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 247: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 249: [2858, 3996, 2997, 6874, 4973, 3897, 6333, 527, 7438, 1617],\n"," 254: [4993, 4226, 7153, 3793, 4963, 6539, 4886, 1704, 6377, 6874],\n"," 264: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 273: [2959, 4226, 2762, 4306, 3996, 5349, 47, 296, 4963, 4886],\n"," 275: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3793, 5349, 47],\n"," 276: [4963, 6539, 4995, 4027, 2716, 1517, 2918, 3052, 110, 5418],\n"," 293: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 294: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 295: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n"," 318: [4226, 2329, 1923, 4878, 3147, 32, 2692, 293, 223, 3949],\n"," 321: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 345: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 346: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 348: [1580, 1196, 1136, 2918, 3052, 3481, 5418, 1265, 1210, 6365],\n"," 349: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 354: [4226, 3793, 47, 2028, 296, 4886, 2997, 6874, 2329, 50],\n"," 359: [5349, 47, 2028, 4886, 1704, 356, 318, 6874, 2329, 50],\n"," 366: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 369: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 384: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 390: [47, 6539, 6377, 3897, 7361, 1580, 1089, 1270, 2291, 1961],\n"," 392: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 403: [2959, 4993, 3578, 5952, 2858, 4306, 3996, 5349, 2028, 6539],\n"," 407: [4226, 2858, 5349, 1704, 318, 4995, 4973, 3897, 4011, 4027],\n"," 414: [3578, 4226, 7153, 4306, 3793, 5349, 2028, 6539, 4886, 5445],\n"," 431: [2959, 2571, 3578, 4226, 2858, 2762, 3996, 3793, 5349, 47],\n"," 454: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 465: [2571, 5952, 7153, 3793, 2028, 4963, 4886, 5445, 3897, 2291],\n"," 481: [2762, 2997, 6377, 4973, 4027, 5989, 1961, 3147, 527, 2918],\n"," 485: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47, 2028],\n"," 503: [3996, 5349, 47, 4963, 1704, 50, 3897, 4011, 4027, 1089],\n"," 513: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 545: [3578, 4306, 3793, 5349, 4963, 6539, 5445, 1682, 2706, 1923],\n"," 552: [2571, 4993, 3578, 5952, 7153, 3996, 3793, 5349, 47, 2028],\n"," 554: [2571, 3578, 4226, 5349, 47, 6539, 4886, 5445, 4995, 2329],\n"," 555: [5445, 1704, 4973, 1682, 7361, 1923, 5989, 4034, 3481, 480],\n"," 561: [1704, 318, 2997, 4995, 50, 3897, 1682, 4027, 7361, 1089],\n"," 565: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 5349, 47, 2028],\n"," 591: [2959, 2571, 4993, 4226, 5952, 2762, 7153, 4306, 3793, 5349],\n"," 617: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 622: [3578, 4226, 3996, 3793, 6539, 4886, 2997, 6377, 6874, 4995],\n"," 623: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 633: [2762, 4963, 5445, 2997, 4995, 4973, 2329, 1682, 4011, 1270],\n"," 636: [2959, 4226, 2858, 4306, 3996, 5349, 47, 4886, 1704, 356],\n"," 638: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 641: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 646: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 654: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 655: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 658: [4993, 5952, 2762, 7153, 4306, 3996, 3793, 5349, 4886, 5445],\n"," 660: [4993, 4226, 5952, 7153, 3793, 5349, 6539, 4886, 5445, 1704],\n"," 661: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 677: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 714: [3793, 5349, 47, 4011, 7361, 1089, 593, 4878, 5989, 1961],\n"," 715: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 723: [2858, 3996, 3793, 2028, 296, 4963, 4886, 5445, 1704, 2997],\n"," 731: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 742: [1089, 593, 2502, 527, 7438, 1258, 858, 2692, 1732, 2396],\n"," 743: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 752: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 772: [2959, 2571, 4226, 5952, 2858, 2762, 7153, 5349, 47, 2028],\n"," 814: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 823: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 826: [2762, 4306, 5349, 4886, 2329, 5989, 2291, 2502, 2716, 527],\n"," 833: [2959, 3578, 4226, 2762, 7153, 47, 6539, 4886, 6377, 6874],\n"," 838: [2959, 7153, 4306, 3996, 3793, 5349, 4963, 4886, 6874, 4995],\n"," 842: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 852: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 878: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 887: [4993, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349, 4963],\n"," 895: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 899: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 902: [2997, 6377, 4973, 1682, 4027, 1923, 4878, 2291, 2502, 1961],\n"," 907: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 928: [7153, 3793, 5349, 2028, 6539, 1704, 6874, 4995, 1682, 4027],\n"," 936: [3793, 5349, 318, 1580, 1270, 2706, 5989, 2291, 2716, 4034],\n"," 964: [4993, 5952, 2858, 2762, 7153, 4306, 3996, 3793, 5349, 5445],\n"," 970: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 972: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 4963, 6539],\n"," 1001: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1013: [2959, 3578, 4226, 2858, 2762, 3793, 5349, 47, 6539, 4886],\n"," 1018: [3578, 4963, 1704, 6377, 4995, 50, 4027, 2502, 1961, 527],\n"," 1028: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1031: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1035: [3996, 4963, 6539, 1704, 2997, 4995, 4973, 2329, 50, 3897],\n"," 1038: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1045: [5952, 3996, 4973, 1580, 6711, 2716, 2542, 480, 5418, 2692],\n"," 1046: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 35: [3578, 5952, 7153, 3793, 5349, 296, 6539, 4886, 1704, 356],\n"," 72: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 91: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 106: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 128: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 158: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 160: [2959, 4993, 4226, 5952, 2762, 7153, 4306, 5349, 47, 296],\n"," 175: [4306, 3996, 3793, 5349, 4963, 6539, 5445, 1704, 4995, 3897],\n"," 196: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 203: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 206: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 207: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 255: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 265: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 340: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 404: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 433: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 440: [3578, 4306, 3996, 3793, 5349, 4963, 4886, 5445, 1704, 2997],\n"," 444: [2959, 4993, 3578, 4226, 5952, 7153, 3996, 3793, 5349, 2028],\n"," 450: [2959, 7153, 6539, 1704, 6377, 6874, 1682, 4011, 7361, 1923],\n"," 479: [4993, 3578, 5952, 7153, 4306, 3996, 3793, 5349, 47, 4963],\n"," 491: [4993, 7153, 4306, 3793, 2028, 296, 6539, 4886, 5445, 2997],\n"," 506: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 523: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 539: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 541: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 616: [4306, 3996, 3793, 5349, 4963, 1704, 6377, 6874, 4995, 4973],\n"," 647: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 659: [2959, 3578, 3793, 5349, 2028, 4963, 6539, 4886, 2329, 50],\n"," 695: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 700: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 707: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 748: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 759: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 784: [4973, 1682, 4011, 4027, 7361, 1089, 5989, 2502, 3147, 6711],\n"," 790: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 835: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 844: [2959, 4993, 4226, 5952, 7153, 4306, 3996, 5349, 47, 2028],\n"," 871: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 875: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 892: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 919: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 935: [2959, 4993, 5952, 2858, 2762, 7153, 4306, 5349, 47, 296],\n"," 942: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 960: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 1006: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1026: [2858, 3996, 47, 296, 6539, 5445, 356, 318, 2997, 50],\n"," 1047: [5952, 6539, 1704, 1580, 593, 5989, 2291, 1961, 1196, 2716],\n"," 65: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 3996, 5349, 47],\n"," 135: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 152: [2959, 4993, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n"," 166: [2959, 2571, 3578, 4226, 2858, 7153, 4306, 3996, 3793, 5349],\n"," 179: [2959, 4226, 5952, 2858, 2762, 7153, 3793, 47, 6539, 1704],\n"," 188: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 217: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 253: [2959, 4993, 4226, 5952, 2762, 7153, 4306, 5349, 47, 2028],\n"," 262: [2858, 6377, 2329, 3897, 1682, 4027, 1089, 1270, 5989, 1136],\n"," 277: [2959, 2571, 3578, 4226, 2858, 4306, 3996, 3793, 5349, 47],\n"," 289: [6377, 4878, 2502, 6333, 2683, 7438, 2542, 1291, 5418, 589],\n"," 300: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 302: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 47, 4963, 6539],\n"," 308: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 311: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 328: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 329: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 344: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 347: [2959, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 47, 2028],\n"," 358: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 3996, 3793, 47],\n"," 474: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 483: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 509: [4993, 3578, 4306, 6539, 5445, 318, 2997, 6377, 4973, 3897],\n"," 578: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 643: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 679: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 680: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 691: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 702: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 708: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 730: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 751: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 773: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 803: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 809: [2959, 2571, 3578, 4226, 7153, 4306, 3996, 3793, 5349, 2028],\n"," 820: [2762, 1704, 318, 4995, 2329, 3897, 4011, 5989, 3147, 4034],\n"," 824: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 863: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 865: [4993, 5952, 2762, 3996, 3793, 5349, 2028, 6539, 4886, 5445],\n"," 867: [2762, 47, 6874, 4995, 1682, 4011, 7361, 1089, 593, 4878],\n"," 911: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 915: [2959, 3578, 4226, 7153, 3996, 3793, 5349, 296, 6539, 1704],\n"," 939: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 946: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 954: [4993, 4226, 5952, 2858, 7153, 4306, 3996, 5349, 296, 4963],\n"," 957: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 971: [3578, 2762, 7153, 4306, 47, 4963, 6539, 5445, 6377, 6874],\n"," 986: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 992: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 92: [2959, 4306, 3996, 296, 4886, 2997, 6377, 6874, 2329, 50],\n"," 107: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 131: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 138: [3996, 3793, 5349, 4963, 4886, 2997, 4973, 3897, 1682, 4027],\n"," 145: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 183: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 209: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 230: [2571, 4993, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 263: [7153, 4306, 2028, 356, 2997, 6874, 3897, 1682, 4011, 1580],\n"," 305: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 314: [2959, 2571, 4226, 7153, 4306, 5349, 47, 4963, 6539, 4886],\n"," 319: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 325: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3793],\n"," 341: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 471: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 488: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 495: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 532: [2959, 5952, 7153, 4306, 3793, 5349, 47, 6539, 4886, 5445],\n"," 564: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 574: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 603: [3578, 4226, 2762, 3996, 3793, 5349, 47, 4963, 6539, 4886],\n"," 674: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 753: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 810: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 830: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 841: [2959, 5952, 2858, 2762, 7153, 4306, 5349, 47, 2028, 296],\n"," 856: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 921: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 933: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 976: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 37: [2858, 2762, 5349, 4963, 6539, 4886, 5445, 356, 2997, 6377],\n"," 83: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 248: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 387: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 428: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 451: [2959, 3578, 2858, 4306, 3996, 3793, 5349, 47, 2028, 296],\n"," 584: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 874: [4226, 318, 50, 4011, 1089, 4878, 2291, 1961, 6711, 2716],\n"," 995: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n"," 10: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 19: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 41: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 43: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 44: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 45: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 51: [2959, 2571, 4993, 5952, 7153, 4306, 3793, 5349, 47, 6539],\n"," 56: [2959, 2762, 3996, 3793, 5349, 47, 4963, 6539, 4886, 5445],\n"," 61: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 68: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 69: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 78: [4993, 3578, 5952, 7153, 4306, 5349, 47, 4963, 6539, 4886],\n"," 110: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 115: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 129: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 150: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 168: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 169: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 178: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 186: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 47],\n"," 201: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 239: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 256: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 257: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3793, 5349],\n"," 272: [2571, 2762, 47, 2028, 4963, 4886, 1704, 318, 6874, 4995],\n"," 279: [4993, 4226, 2858, 4963, 5445, 1704, 4995, 4973, 2329, 50],\n"," 280: [2959, 3578, 4226, 2762, 3996, 3793, 5349, 47, 296, 4963],\n"," 285: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 298: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n"," 301: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 304: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 3793, 5349],\n"," 333: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 334: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 338: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n"," 350: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 353: [3578, 2858, 2762, 4306, 3793, 5349, 4963, 6539, 4886, 5445],\n"," 378: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 386: [2571, 4993, 5952, 7153, 4306, 3793, 5349, 47, 4963, 6539],\n"," 397: [4993, 5952, 7153, 4306, 3996, 3793, 5349, 47, 4963, 6539],\n"," 420: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 439: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 449: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 2028, 296, 4963],\n"," 478: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 487: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 489: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 500: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 510: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 521: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 522: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 527: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 529: [2959, 2571, 4993, 3578, 5952, 2858, 2762, 7153, 3996, 3793],\n"," 535: [4226, 2858, 2762, 7153, 3996, 5349, 4963, 6539, 4886, 1704],\n"," 550: [2959, 2571, 3578, 4226, 7153, 4306, 3793, 5349, 47, 2028],\n"," 560: [2571, 4993, 3578, 5952, 7153, 4306, 3996, 3793, 5349, 2028],\n"," 573: [2959, 4993, 3578, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 579: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 2028, 4963, 6539],\n"," 582: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 583: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 587: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 596: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3793, 5349],\n"," 602: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 618: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 624: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 627: [2959, 5952, 7153, 3793, 47, 6539, 4886, 5445, 6377, 6874],\n"," 635: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 639: [2571, 3578, 4226, 2858, 2762, 3996, 2028, 4963, 5445, 1704],\n"," 640: [2762, 3996, 296, 4963, 1704, 2997, 4995, 2329, 50, 3897],\n"," 642: [4993, 4226, 5952, 7153, 4306, 5349, 4963, 6539, 4886, 5445],\n"," 649: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 652: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 662: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 671: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 675: [2959, 2571, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 684: [2959, 2571, 4993, 3578, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 703: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 712: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 726: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 727: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 744: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 746: [2959, 2571, 4993, 4226, 2762, 7153, 5349, 2028, 4963, 6539],\n"," 761: [2959, 3578, 4226, 3996, 5349, 47, 2028, 296, 1704, 2997],\n"," 765: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 766: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 771: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 776: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 797: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 812: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 815: [2959, 3578, 4226, 2858, 3996, 3793, 47, 4963, 6539, 4886],\n"," 818: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 821: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 822: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 831: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 834: [4993, 3578, 5952, 7153, 3996, 3793, 5349, 47, 296, 4886],\n"," 837: [4226, 5952, 2762, 7153, 4306, 3793, 5349, 47, 2028, 4963],\n"," 839: [2959, 2571, 3578, 2858, 4306, 3996, 3793, 5349, 47, 2028],\n"," 840: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 851: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 3996, 3793, 5349],\n"," 855: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 857: [2959, 4226, 2858, 2762, 4306, 3996, 3793, 5349, 296, 4886],\n"," 868: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 904: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 905: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 906: [3578, 7153, 4306, 3793, 5349, 47, 6539, 4886, 5445, 318],\n"," 924: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 925: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 927: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 940: [2959, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 5349, 47],\n"," 948: [2959, 3578, 7153, 4306, 3793, 5349, 4963, 6539, 4886, 5445],\n"," 953: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 966: [3578, 2762, 4306, 3996, 47, 2028, 6539, 1704, 318, 6874],\n"," 967: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 2028],\n"," 979: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 980: [2571, 3578, 5952, 4306, 3793, 5349, 47, 2028, 4963, 6539],\n"," 983: [4993, 3578, 47, 2028, 296, 4963, 1704, 2997, 6874, 4973],\n"," 984: [2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 991: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 1009: [2959,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2762,\n"," 4306,\n"," 3996,\n"," 3793,\n"," 5349],\n"," 1011: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1014: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2762,\n"," 7153,\n"," 4306,\n"," 3996],\n"," 1021: [4993, 5952, 7153, 3793, 5349, 47, 296, 4963, 6539, 4886],\n"," 1030: [2959, 3578, 4226, 2858, 7153, 4306, 3996, 5349, 47, 2028],\n"," 1033: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 7153,\n"," 3996,\n"," 3793],\n"," 1039: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1040: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1053: [2959, 4993, 4226, 5952, 7153, 3996, 47, 2028, 296, 4963],\n"," 704: [2858, 7153, 296, 6539, 356, 318, 2997, 6377, 6874, 2329],\n"," 934: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 42: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 73: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 5349, 4963, 6539],\n"," 82: [2959, 3578, 2858, 2762, 7153, 3996, 3793, 5349, 47, 2028],\n"," 159: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 161: [4306, 2028, 4963, 1704, 356, 2997, 4995, 2329, 1682, 4011],\n"," 192: [4993, 5952, 2762, 7153, 3996, 2028, 6539, 356, 318, 4995],\n"," 216: [2959, 3578, 4226, 7153, 2028, 296, 6539, 5445, 1704, 356],\n"," 219: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 290: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 379: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 389: [4306, 296, 4963, 356, 4973, 50, 1089, 1270, 2706, 1923],\n"," 400: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 462: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 507: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 600: [2571, 4993, 5952, 2762, 7153, 4306, 3996, 3793, 5349, 47],\n"," 721: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 793: [2959, 2858, 2762, 3996, 3793, 5349, 47, 2028, 296, 4963],\n"," 912: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 932: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 949: [4993, 4226, 5952, 4306, 47, 6539, 356, 6874, 2329, 50],\n"," 1025: [2959,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2762,\n"," 7153,\n"," 4306,\n"," 3996,\n"," 3793],\n"," 46: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 74: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 342: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 508: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n"," 580: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 774: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 783: [2959, 3578, 4226, 2858, 2762, 3793, 5349, 47, 2028, 296],\n"," 1002: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1023: [4226, 2762, 4306, 3996, 3793, 5349, 2028, 296, 4963, 5445],\n"," 1048: [3578, 3996, 3793, 4963, 356, 6377, 4973, 1682, 4027, 7361],\n"," 23: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 96: [2959, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 124: [2959, 3578, 4226, 2858, 2762, 4306, 3793, 5349, 47, 296],\n"," 136: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 148: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 189: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 213: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 243: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 323: [2959, 2571, 3578, 4226, 2858, 2762, 4306, 3996, 3793, 5349],\n"," 352: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 429: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 625: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 808: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 843: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 847: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 963: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 975: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 998: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 47, 2028, 296],\n"," 75: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 427: [2959, 4993, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n"," 466: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n"," 801: [2858, 2762, 5445, 356, 318, 2997, 4995, 50, 3897, 1682],\n"," 848: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 888: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n"," 191: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 227: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 245: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n"," 380: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 47],\n"," 408: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 668: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 747: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 754: [2959, 2858, 2762, 2028, 296, 1704, 356, 318, 2997, 4995],\n"," 11: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 16: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 81: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 86: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 97: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 151: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 235: [5952, 2762, 4306, 3996, 3793, 5349, 2028, 4963, 4886, 1704],\n"," 251: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 258: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 278: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 388: [2959, 4993, 3578, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 551: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 606: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 614: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 681: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 686: [2959, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 711: [2959, 2571, 3578, 4226, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 718: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 873: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 962: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 985: [2959, 2571, 4226, 2858, 2762, 47, 2028, 296, 4963, 6539],\n"," 993: [2959, 2571, 2858, 2762, 7153, 47, 296, 6539, 1704, 356],\n"," 184: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 246: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 373: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 4306, 3996, 3793],\n"," 430: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 534: [2959, 2571, 3578, 4226, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 805: [2959, 4226, 2858, 2762, 3996, 3793, 5349, 47, 2028, 296],\n"," 58: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 112: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 367: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 548: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 791: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 909: [3578, 4226, 7153, 4306, 3996, 5349, 47, 2028, 296, 4963],\n"," 1041: [4306, 3793, 5349, 5445, 356, 6377, 4995, 3897, 1682, 4027],\n"," 13: [2959, 2571, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 5349],\n"," 869: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 415: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 477: [3578, 2858, 4306, 3793, 5349, 4963, 6539, 4886, 5445, 1704],\n"," 569: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 694: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 729: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 741: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 965: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 17: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n"," 40: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 114: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 137: [4226, 5952, 7153, 6539, 4886, 5445, 356, 6377, 6874, 4973],\n"," 153: [2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n"," 211: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 286: [4993, 5952, 2762, 7153, 4306, 3996, 5349, 47, 296, 4963],\n"," 330: [3578, 4226, 4306, 3996, 2028, 4963, 6539, 4886, 5445, 1704],\n"," 336: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 372: [4226, 2858, 7153, 4306, 3996, 5349, 47, 2028, 296, 4963],\n"," 376: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 5349],\n"," 412: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 447: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 467: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 490: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 518: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 608: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 3793],\n"," 619: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 644: [2959, 4226, 2858, 2762, 7153, 3996, 3793, 47, 296, 4963],\n"," 667: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 698: [4306, 5349, 6539, 4886, 356, 2997, 4973, 4027, 1580, 1270],\n"," 709: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 728: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 733: [2959, 4226, 5952, 2858, 2762, 4306, 3996, 3793, 5349, 47],\n"," 777: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 5349],\n"," 813: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 832: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 893: [2959, 4993, 4226, 2858, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 901: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 937: [2571, 4993, 3578, 4226, 2858, 3996, 3793, 5349, 2028, 296],\n"," 947: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 5349],\n"," 362: [3578, 2858, 4306, 3996, 5349, 47, 2028, 296, 4963, 6539],\n"," 375: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 599: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 632: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 779: [2959, 2571, 4993, 3578, 5952, 2858, 2762, 4306, 5349, 47],\n"," 1022: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1034: [2959, 2571, 4993, 4226, 2858, 2762, 4306, 3996, 3793, 47],\n"," 819: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 2: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 3: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 4306, 3996, 3793],\n"," 104: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 105: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 218: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 250: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 313: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 377: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 413: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 576: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 586: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 595: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 610: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 613: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 637: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 663: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 740: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 787: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 804: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 866: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 883: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 941: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 1007: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 817: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 6: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3793, 5349],\n"," 7: [2959, 2571, 4993, 3578, 5952, 2858, 7153, 3996, 3793, 5349],\n"," 14: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 24: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 57: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 60: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 64: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 84: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 90: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 98: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 113: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 120: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 123: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 157: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 194: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 200: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 204: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 205: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 225: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 229: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 237: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 242: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 252: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 266: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 270: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 282: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 297: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 309: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 316: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 327: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 356: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 393: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 394: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 395: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 399: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 401: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 402: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 47, 2028],\n"," 405: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 417: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 3793],\n"," 422: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 437: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 455: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 461: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 473: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 484: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 499: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 526: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 537: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 542: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 557: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 563: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 570: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 575: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 594: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 607: [2959, 2571, 4993, 3578, 2858, 2762, 7153, 4306, 3996, 3793],\n"," 631: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 651: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 664: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 685: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 690: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 696: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 724: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 738: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 762: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 763: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 770: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 796: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 800: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 829: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 836: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 882: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 900: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 903: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 914: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 918: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 920: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 945: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 950: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3793],\n"," 952: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 982: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 989: [2959, 4993, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 1016: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2762,\n"," 7153,\n"," 4306,\n"," 3996],\n"," 1019: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1044: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1051: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 917: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 951: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 997: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 174: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 676: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 764: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 1052: [2571,\n"," 4993,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306,\n"," 3996,\n"," 3793],\n"," 5: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 27: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 33: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 134: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 142: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 156: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 167: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 177: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 224: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 269: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 312: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 360: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 385: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 411: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 464: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 568: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 612: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 630: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 706: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 737: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 749: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 756: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 811: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 853: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 884: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 955: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 1032: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 1043: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306],\n"," 370: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 670: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 923: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 931: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 969: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 12: [2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 597: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 195: [2959, 2571, 5952, 7153, 3793, 5349, 47, 6539, 4886, 5445],\n"," 337: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 910: [2571, 3578, 2762, 5349, 2028, 4963, 6539, 5445, 356, 2997],\n"," 63: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 70: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 3996, 3793, 5349],\n"," 99: [2959, 2571, 3578, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n"," 121: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 130: [2959, 2571, 3578, 4226, 2762, 4306, 3793, 5349, 47, 2028],\n"," 244: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 291: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 335: [2959, 2571, 5952, 2858, 2762, 7153, 4306, 3793, 5349, 47],\n"," 361: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 470: [4993, 3578, 7153, 4306, 3793, 5349, 2028, 4963, 4886, 1704],\n"," 497: [2959, 3578, 5952, 2858, 3996, 3793, 5349, 47, 2028, 296],\n"," 620: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 648: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 666: [3578, 2762, 4306, 3793, 5349, 2028, 4963, 6539, 4886, 5445],\n"," 710: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 794: [2959, 2571, 4993, 3578, 5952, 2858, 4306, 3996, 3793, 5349],\n"," 854: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 861: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 87: [2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 317: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 324: [2858, 2762, 4306, 3996, 3793, 47, 2028, 296, 4963, 6539],\n"," 502: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 559: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 973: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 1015: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2762,\n"," 7153,\n"," 4306,\n"," 3996],\n"," 1017: [2959,\n"," 2571,\n"," 3578,\n"," 4226,\n"," 2858,\n"," 2762,\n"," 4306,\n"," 3996,\n"," 3793,\n"," 5349],\n"," 85: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 306: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 653: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 371: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 566: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 331: [3578, 5952, 2762, 4306, 3996, 3793, 5349, 47, 2028, 296],\n"," 665: [2959, 2571, 4993, 3578, 2762, 7153, 4306, 3793, 5349, 47],\n"," 872: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 879: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 486: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n"," 864: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n"," 52: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 288: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 9: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 117: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 3996, 3793],\n"," 220: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 544: [3578, 4226, 2858, 2762, 4306, 3996, 5349, 2028, 4963, 6539],\n"," 999: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 458: [2959, 2571, 4993, 5952, 7153, 4306, 3996, 5349, 47, 2028],\n"," 974: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 546: [2959, 2571, 4226, 2858, 2762, 47, 2028, 296, 4963, 1704],\n"," 55: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 363: [2571, 3578, 4226, 2858, 2762, 4306, 3996, 3793, 5349, 47],\n"," 445: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 4306, 3996, 3793],\n"," 492: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 5349],\n"," 234: [4993, 3578, 5952, 2762, 7153, 3793, 5349, 47, 2028, 296],\n"," 1027: [2571, 4993, 5952, 2858, 2762, 7153, 4306, 3996, 3793, 47],\n"," 140: [2959, 2571, 4993, 3578, 5952, 2762, 4306, 3996, 3793, 5349],\n"," 926: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n"," 781: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 825: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 913: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 5349],\n"," 453: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 540: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 66: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 185: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 222: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 498: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 994: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 165: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 202: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 180: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n"," 93: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 261: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 435: [4993, 3578, 5952, 2858, 2762, 7153, 4306, 3996, 3793, 5349],\n"," 322: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 238: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 425: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 512: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 725: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n"," 732: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 108: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 592: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 443: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 916: [2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 5349],\n"," 736: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 5349],\n"," 961: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n"," 1012: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2762,\n"," 7153,\n"," 4306,\n"," 3996],\n"," 515: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 978: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 28: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 475: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n"," 598: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 943: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 520: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 697: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 849: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 1003: [2959,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 7153,\n"," 4306,\n"," 3996,\n"," 3793],\n"," 705: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 48: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 29: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 231: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 699: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 448: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n"," 750: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n"," 782: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 860: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 768: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 127: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n"," 894: [2959,\n"," 2571,\n"," 4993,\n"," 3578,\n"," 4226,\n"," 5952,\n"," 2858,\n"," 2762,\n"," 7153,\n"," 4306]})"]},"metadata":{},"execution_count":9}],"source":["from collections import defaultdict\n","\n","# 각 사용자에 대한 추천 영화는 해당 사용자 아직 평가하지 않은 영화 중에서 예측값이 높은 순으로 한다\n","pred_user2items = defaultdict(list)\n","user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n","for user_id in movielens_train.user_id.unique():\n"," if user_id not in user_id2index:\n"," continue\n"," user_index = user_id2index[row[\"user_id\"]]\n"," movie_indexes = np.argsort(-pred_matrix[user_index, :])\n"," for movie_index in movie_indexes:\n"," movie_id = user_movie_matrix.columns[movie_index]\n"," if movie_id not in user_evaluated_movies[user_id]:\n"," pred_user2items[user_id].append(movie_id)\n"," if len(pred_user2items[user_id]) == 10:\n"," break\n","\n","pred_user2items"]},{"cell_type":"code","execution_count":10,"id":"14a45925","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":841},"id":"14a45925","executionInfo":{"status":"ok","timestamp":1672119959234,"user_tz":-540,"elapsed":33,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"27d652fa-b864-4756-d5fc-74bd77a05a82"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","6150 2 648 2.0 868244699 \n","6531 2 733 3.0 868244562 \n","6813 2 736 3.0 868244698 \n","7113 2 780 3.0 868244698 \n","7506 2 786 3.0 868244562 \n","7661 2 802 2.0 868244603 \n","7779 2 858 2.0 868245645 \n","8077 2 1049 3.0 868245920 \n","8127 2 1073 3.0 868244562 \n","8381 2 1210 4.0 868245644 \n","8771 2 1356 3.0 868244603 \n","9097 2 1544 3.0 868245920 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","6150 Mission: Impossible (1996) \n","6531 Rock, The (1996) \n","6813 Twister (1996) \n","7113 Independence Day (a.k.a. ID4) (1996) \n","7506 Eraser (1996) \n","7661 Phenomenon (1996) \n","7779 Godfather, The (1972) \n","8077 Ghost and the Darkness, The (1996) \n","8127 Willy Wonka & the Chocolate Factory (1971) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","8771 Star Trek: First Contact (1996) \n","9097 Lost World: Jurassic Park, The (Jurassic Park ... \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","6150 [Action, Adventure, Mystery, Thriller] \n","6531 [Action, Adventure, Thriller] \n","6813 [Action, Adventure, Romance, Thriller] \n","7113 [Action, Adventure, Sci-Fi, War] \n","7506 [Action, Drama, Thriller] \n","7661 [Drama, Romance] \n","7779 [Crime, Drama] \n","8077 [Action, Adventure] \n","8127 [Children, Comedy, Fantasy, Musical] \n","8381 [Action, Adventure, Sci-Fi] \n","8771 [Action, Adventure, Sci-Fi, Thriller] \n","9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","6150 [confusing, confusing plot, memorable sequence... 12.0 \n","6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n","6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n","7113 [action, alien invasion, aliens, will smith, a... 14.0 \n","7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n","7661 [interesting concept, own, john travolta, john... 15.0 \n","7779 [oscar (best picture), marlon brando, classic,... 9.0 \n","8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n","8127 [based on a book, roald dahl, based on a book,... 20.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n","8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n","9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":10}],"source":["# user_id=2인 사용자가 학습 데이터에서 평가를 부여한 영화 목록\n","movielens_train[movielens_train.user_id==2]"]},{"cell_type":"code","execution_count":11,"id":"47543b66","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"47543b66","executionInfo":{"status":"ok","timestamp":1672119959234,"user_tz":-540,"elapsed":31,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"779b6217-68dc-416f-eadc-345a38857d60"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306]"]},"metadata":{},"execution_count":11}],"source":["pred_user2items[2]"]},{"cell_type":"code","execution_count":12,"id":"ac73e03a","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":187},"id":"ac73e03a","executionInfo":{"status":"ok","timestamp":1672119959234,"user_tz":-540,"elapsed":9,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"1fb5be98-7592-4696-d496-571b130f9b1d"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","2487 2571 Matrix, The (1999) \n","2874 2959 Fight Club (1999) \n","4899 4993 Lord of the Rings: The Fellowship of the Ring,... \n","\n"," genre \\\n","2487 [Action, Sci-Fi, Thriller] \n","2874 [Action, Crime, Drama, Thriller] \n","4899 [Action, Adventure, Fantasy] \n","\n"," tag \n","2487 [artificial intelligence, hackers, heroine in ... \n","2874 [based on a book, chuck palahniuk, edward nort... \n","4899 [based on a book, big budget, new zealand, sce... "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
24872571Matrix, The (1999)[Action, Sci-Fi, Thriller][artificial intelligence, hackers, heroine in ...
28742959Fight Club (1999)[Action, Crime, Drama, Thriller][based on a book, chuck palahniuk, edward nort...
48994993Lord of the Rings: The Fellowship of the Ring,...[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":12}],"source":["# user_id=2에 대한 추천(2959, 4993, 5952)\n","movies[movies.movie_id.isin([2959, 2571, 4993])]"]},{"cell_type":"code","execution_count":12,"id":"93ce1b7a","metadata":{"id":"93ce1b7a","executionInfo":{"status":"ok","timestamp":1672119959235,"user_tz":-540,"elapsed":9,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "id": "4fb1700b", + "metadata": { + "id": "4fb1700b" + }, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/SVD.ipynb)" + ] + }, + { + "cell_type": "markdown", + "id": "05fd5c37", + "metadata": { + "id": "05fd5c37" + }, + "source": [ + "# 특잇값 분해(Singular Value Decomposition, SVD)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "ae97b569", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 4522, + "status": "ok", + "timestamp": 1672119890093, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "ae97b569", + "outputId": "52b03925-db6b-47e9-e26c-764d0eba7a5b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-12-27 05:43:01-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n", + "Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n", + "Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 65566137 (63M) [application/zip]\n", + "Saving to: ‘../data/ml-10m.zip’\n", + "\n", + "ml-10m.zip 100%[===================>] 62.53M 65.4MB/s in 1.0s \n", + "\n", + "2022-12-27 05:43:02 (65.4 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n", + "\n", + "Archive: ../data/ml-10m.zip\n", + " creating: ../data/ml-10M100K/\n", + " inflating: ../data/ml-10M100K/allbut.pl \n", + " inflating: ../data/ml-10M100K/movies.dat \n", + " inflating: ../data/ml-10M100K/ratings.dat \n", + " inflating: ../data/ml-10M100K/README.html \n", + " inflating: ../data/ml-10M100K/split_ratings.sh \n", + " inflating: ../data/ml-10M100K/tags.dat \n" + ] + } + ], + "source": [ + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", + "\n", + "# 데이터 다운로드와 압축 풀기\n", + "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", + "!unzip -n ../data/ml-10m.zip -d ../data/" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "395a5042", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 66319, + "status": "ok", + "timestamp": 1672119956404, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "395a5042", + "outputId": "d2cab3b4-2205-46e7-c70a-e37c5d6b611c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "unique_users=1000, unique_movies=6736\n" + ] + } + ], + "source": [ + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", + "import pandas as pd\n", + "\n", + "# movieID와 제목만 사용\n", + "m_cols = ['movie_id', 'title', 'genre']\n", + "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", + "\n", + "# genre를 list 형식으로 저장한다\n", + "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", + "\n", + "\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", + "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", + "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", + "\n", + "# tag를 소문자로 바꾼다\n", + "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", + "\n", + "\n", + "# tag를 영화별로 list 형식으로 저장한다\n", + "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", + "\n", + "# 태그 정보를 결합한다\n", + "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", + "\n", + "# 평갓값 데이터만 로딩한다\n", + "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", + "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", + "\n", + "\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", + "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", + "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", + "\n", + "\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", + "movielens = ratings.merge(movies, on='movie_id')\n", + "\n", + "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", + "\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", + "\n", + "movielens['timestamp_rank'] = movielens.groupby(\n", + " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", + "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", + "movielens_test = movielens[movielens['timestamp_rank']<= 5]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1bcee149", + "metadata": { + "executionInfo": { + "elapsed": 30, + "status": "ok", + "timestamp": 1672119956405, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "1bcee149" + }, + "outputs": [], + "source": [ + "# 결손값을 채우는 방법\n", + "fillna_with_zero = True\n", + "# 인자 수\n", + "factors = 5" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "2cf8dfe4", + "metadata": { + "executionInfo": { + "elapsed": 25, + "status": "ok", + "timestamp": 1672119956405, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "2cf8dfe4" + }, + "outputs": [], + "source": [ + "# 평갓값을 사용자 x 영화 행렬로 변환한다. 결손값은 평균값 또는 0으로 채운다.\n", + "user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n", + "user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n", + "movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n", + "if fillna_with_zero:\n", + " matrix = user_movie_matrix.fillna(0).to_numpy()\n", + "else:\n", + " matrix = user_movie_matrix.fillna(movielens_train.rating.mean()).to_numpy()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "22c0909b", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 22, + "status": "ok", + "timestamp": 1672119956405, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "22c0909b", + "outputId": "73d96ca8-6fd5-42b8-c085-568f67d0d2e5" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ユーザー数=1000, アイテム数=6673, 密度=0.02\n" + ] + } + ], + "source": [ + "# 희소 정보\n", + "user_num = len(user_movie_matrix.index)\n", + "item_num = len(user_movie_matrix.columns)\n", + "non_null_num = user_num*item_num - user_movie_matrix.isnull().sum().sum()\n", + "non_null_ratio = non_null_num / (user_num*item_num)\n", + "\n", + "print(f'ユーザー数={user_num}, アイテム数={item_num}, 密度={non_null_ratio:.2f}')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7f1f97fa", + "metadata": { + "executionInfo": { + "elapsed": 607, + "status": "ok", + "timestamp": 1672119957450, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "7f1f97fa", + "scrolled": true + }, + "outputs": [], + "source": [ + "from scipy.sparse.linalg import svds\n", + "import numpy as np\n", + "\n", + "# 인자 수 k로 특이점 분석을 수행한다\n", + "P, S, Qt = svds(matrix, k=factors)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "65a9563b", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 4, + "status": "ok", + "timestamp": 1672119957451, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "65a9563b", + "outputId": "b73e0f1a-457a-4e3f-866f-78010e4c4bd3" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "P: (1000, 5), S: (5,), Qt: (5, 6673), pred_matrix: (1000, 6673)\n" + ] + } + ], + "source": [ + "# 예측 평갓값 행렬\n", + "pred_matrix = np.dot(np.dot(P, np.diag(S)), Qt)\n", + "\n", + "print(f\"P: {P.shape}, S: {S.shape}, Qt: {Qt.shape}, pred_matrix: {pred_matrix.shape}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "75ee52d8", + "metadata": { + "executionInfo": { + "elapsed": 449, + "status": "ok", + "timestamp": 1672119957898, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "75ee52d8" + }, + "outputs": [], + "source": [ + "# 학습용에 나타나지 않은 사용자와 영화 예측 평갓값은 평균 평갓값으로 한다\n", + "average_score = movielens_train.rating.mean()\n", + "movie_rating_predict = movielens_test.copy()\n", + "pred_results = []\n", + "for i, row in movielens_test.iterrows():\n", + " user_id = row[\"user_id\"]\n", + " if user_id not in user_id2index or row[\"movie_id\"] not in movie_id2index:\n", + " pred_results.append(average_score)\n", + " continue\n", + " user_index = user_id2index[row[\"user_id\"]]\n", + " movie_index = movie_id2index[row[\"movie_id\"]]\n", + " pred_score = pred_matrix[user_index, movie_index]\n", + " pred_results.append(pred_score)\n", + "movie_rating_predict[\"rating_pred\"] = pred_results" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "2a761397", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 1343, + "status": "ok", + "timestamp": 1672119959233, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "2a761397", + "outputId": "275c7093-7ffa-4628-d041-649854a18e3a" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "defaultdict(list,\n", + " {139: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 4963, 6539, 4886],\n", + " 149: [2571, 4226, 2762, 3996, 5349, 47, 2028, 4963, 6539, 4886],\n", + " 182: [3793, 47, 6874, 2329, 4011, 7361, 2706, 4878, 2502, 6333],\n", + " 215: [2329, 3147, 6711, 527, 2683, 3948, 8360, 5218, 6502, 1246],\n", + " 281: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 326: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 351: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 357: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 426: [2502,\n", + " 33794,\n", + " 7147,\n", + " 3949,\n", + " 5902,\n", + " 4848,\n", + " 33166,\n", + " 33493,\n", + " 2791,\n", + " 5995],\n", + " 456: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 459: [4886, 318, 2997, 4995, 4973, 50, 3897, 7361, 1923, 4878],\n", + " 494: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 517: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 524: [7153, 3996, 3793, 5349, 6539, 4886, 7361, 593, 1923, 5989],\n", + " 556: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 588: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 589: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 590: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", + " 601: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 621: [5952, 7153, 4306, 4995, 2329, 3897, 1682, 4011, 4878, 3147],\n", + " 634: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 672: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 4963, 6539],\n", + " 701: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 719: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 745: [5952, 7153, 4306, 6539, 5445, 356, 6377, 6874, 4973, 2329],\n", + " 757: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 775: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 780: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", + " 785: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 788: [296, 4973, 3897, 1089, 4878, 2502, 1961, 1196, 1136, 4034],\n", + " 870: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 987: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 988: [7153, 4963, 6539, 5445, 6377, 6874, 4995, 2329, 4027, 7361],\n", + " 1020: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 22: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 26: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 30: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 34: [4993, 4226, 5952, 2858, 7153, 4306, 3996, 5349, 4963, 6539],\n", + " 38: [4226, 2858, 4306, 3793, 2028, 6539, 4886, 5445, 2997, 2329],\n", + " 50: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 53: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 54: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 67: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 71: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 76: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 88: [4226, 4306, 3996, 47, 2028, 296, 1704, 318, 2997, 4995],\n", + " 89: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 94: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 95: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 100: [2959, 4993, 3578, 4226, 2762, 7153, 4306, 3793, 5349, 4963],\n", + " 101: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 102: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 103: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 111: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 116: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 118: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 143: [7153, 6539, 6377, 6874, 50, 4027, 7361, 6711, 7438, 1617],\n", + " 144: [4886, 1704, 3897, 2706, 5989, 2502, 3147, 1784, 3114, 2396],\n", + " 162: [4226, 4963, 1704, 318, 2997, 2329, 50, 3897, 4011, 4027],\n", + " 172: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 173: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 187: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 193: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 208: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 210: [2959, 5952, 3793, 5349, 47, 2028, 4963, 6539, 4886, 5445],\n", + " 214: [2959, 5952, 2858, 7153, 4306, 2028, 6539, 318, 6377, 6874],\n", + " 228: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 232: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 236: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 259: [3578, 318, 6377, 4011, 4027, 1089, 1961, 4034, 2542, 3481],\n", + " 260: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 267: [4306, 4886, 1704, 1682, 4011, 4878, 5989, 2502, 3147, 6711],\n", + " 268: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 271: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 274: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", + " 287: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 292: [4963, 6874, 5989, 6333, 3147, 527, 1517, 2542, 1617, 3481],\n", + " 296: [3996, 1704, 6377, 1270, 1196, 1136, 2716, 2683, 1517, 2918],\n", + " 303: [5349, 4963, 6539, 1704, 2997, 6377, 4995, 4973, 2329, 50],\n", + " 307: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 47],\n", + " 310: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 315: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 320: [3793, 5349, 1704, 318, 2997, 6874, 2329, 50, 3897, 4027],\n", + " 332: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 339: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 343: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 355: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 364: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 365: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 368: [2858, 2762, 2028, 1704, 318, 4995, 2329, 593, 4878, 5989],\n", + " 381: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 382: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 383: [2959, 4306, 5349, 47, 4963, 6539, 356, 6874, 2329, 3897],\n", + " 391: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 396: [4993, 3578, 4226, 5952, 2762, 7153, 3996, 3793, 5349, 47],\n", + " 398: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 406: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 409: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 410: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 416: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 418: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 419: [2959, 3578, 7153, 2028, 6539, 4886, 1704, 356, 6377, 6874],\n", + " 421: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 424: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 432: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 434: [4226, 47, 296, 318, 2997, 4973, 2329, 50, 3897, 1682],\n", + " 436: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 438: [2959, 4993, 4226, 5952, 7153, 5349, 47, 2028, 4963, 6539],\n", + " 441: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 446: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 452: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 3996, 47, 2028],\n", + " 460: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 463: [7153, 4963, 6377, 6874, 4973, 3897, 1682, 4011, 7361, 2291],\n", + " 468: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 469: [2959, 47, 4995, 2329, 50, 3897, 1682, 4011, 7361, 1089],\n", + " 472: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 476: [4886, 1704, 4995, 1270, 1923, 2291, 2502, 2716, 4034, 1517],\n", + " 480: [7153, 6539, 1704, 318, 6377, 6874, 2329, 1682, 7361, 1089],\n", + " 482: [2858, 2762, 3996, 5445, 2997, 6874, 4973, 50, 3897, 1682],\n", + " 493: [4993, 5952, 7153, 593, 2502, 6333, 1196, 1136, 7438, 589],\n", + " 496: [2959, 4993, 3578, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n", + " 501: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 504: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 505: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 511: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 516: [6377, 50, 1682, 4027, 7361, 2918, 2542, 3052, 3481, 364],\n", + " 525: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 530: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 531: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 533: [4886, 4995, 2329, 4011, 2706, 4878, 3147, 2683, 6365, 1732],\n", + " 536: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 543: [2028, 2329, 3897, 4011, 1923, 5989, 4034, 2542, 3052, 3481],\n", + " 547: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 549: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 553: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 558: [2762, 7153, 4886, 2997, 6874, 4973, 2329, 4011, 7361, 4878],\n", + " 562: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 567: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 571: [2959, 4993, 5952, 2762, 7153, 3996, 296, 356, 6874, 4027],\n", + " 572: [3578, 3996, 1704, 318, 4973, 1961, 4034, 2918, 3481, 1784],\n", + " 577: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 581: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 585: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n", + " 593: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 604: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 605: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 609: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 628: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 629: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 645: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 650: [2959, 5952, 7153, 4306, 2028, 296, 4963, 6539, 4886, 5445],\n", + " 656: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 657: [4306, 3793, 4963, 4886, 4011, 2502, 6333, 1136, 1517, 7438],\n", + " 669: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 678: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 683: [2959, 4226, 5952, 2858, 2762, 3996, 296, 4963, 1704, 318],\n", + " 688: [3996, 2028, 5445, 318, 4973, 3897, 1682, 7361, 4878, 2291],\n", + " 689: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 693: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 716: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 4963, 6539],\n", + " 720: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 734: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 735: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 739: [4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n", + " 755: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 758: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 767: [2959, 4226, 2858, 4306, 3793, 47, 2028, 296, 4963, 4886],\n", + " 769: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 786: [2959, 4993, 5952, 2858, 7153, 5349, 47, 2028, 296, 4963],\n", + " 789: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 792: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 795: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 798: [6377, 2329, 4011, 4027, 7361, 2706, 2502, 4034, 3052, 3481],\n", + " 799: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 802: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 806: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 807: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 816: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 827: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 828: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 846: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 859: [2858, 4306, 47, 4963, 318, 2997, 6377, 6874, 4995, 2329],\n", + " 862: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 876: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 881: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 885: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 886: [4993, 4226, 5952, 7153, 4306, 3793, 5349, 4963, 6539, 4886],\n", + " 889: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 890: [4993, 4226, 5952, 7153, 4306, 5349, 47, 4963, 6539, 4886],\n", + " 891: [4963, 6539, 5445, 6377, 6874, 4995, 2329, 4011, 4027, 7361],\n", + " 896: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 897: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 898: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 908: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 922: [4226, 2858, 3996, 3793, 2028, 296, 5445, 1704, 2997, 6874],\n", + " 930: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 938: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 956: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 958: [4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 47],\n", + " 968: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 977: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 990: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 996: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 1004: [4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 7153,\n", + " 4306,\n", + " 3996,\n", + " 3793,\n", + " 5349,\n", + " 4963],\n", + " 1005: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1008: [2028,\n", + " 4963,\n", + " 6539,\n", + " 4995,\n", + " 3897,\n", + " 1682,\n", + " 4011,\n", + " 4027,\n", + " 1089,\n", + " 2706],\n", + " 1029: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1037: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1050: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 4: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 8: [296, 356, 318, 6377, 4995, 4973, 7361, 2706, 5989, 2502],\n", + " 18: [4993, 4226, 5952, 7153, 3793, 5349, 4886, 5445, 2997, 6874],\n", + " 36: [7153, 3996, 47, 4886, 5445, 1704, 318, 2997, 6874, 4995],\n", + " 47: [5349, 47, 4963, 4886, 1704, 356, 6377, 3897, 1682, 4027],\n", + " 59: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 62: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 77: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 79: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 80: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 119: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 122: [4993, 4226, 5952, 7153, 4306, 3793, 5349, 47, 2028, 4963],\n", + " 125: [2329, 1682, 7361, 4878, 7438, 1617, 5418, 8961, 1527, 8636],\n", + " 126: [4973, 7361, 4878, 6711, 2542, 3052, 6365, 3948, 3751, 5378],\n", + " 132: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 141: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 154: [4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 2028, 4963],\n", + " 155: [4226, 7153, 3793, 5349, 4963, 6539, 4886, 5445, 6377, 6874],\n", + " 163: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 164: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 170: [4993, 3578, 5952, 7153, 3996, 5349, 2028, 6539, 5445, 1704],\n", + " 171: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 6539],\n", + " 176: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 190: [4226, 2858, 47, 4963, 1704, 318, 2997, 6377, 4973, 2329],\n", + " 197: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 198: [2997, 4973, 4011, 5989, 2291, 6333, 3147, 4034, 2542, 1291],\n", + " 199: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 212: [3578, 2858, 4886, 1704, 6377, 2329, 3897, 1682, 4011, 2706],\n", + " 221: [2959, 4993, 3578, 4226, 2762, 7153, 4306, 3996, 5349, 4963],\n", + " 223: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 226: [2959, 2858, 7153, 4963, 6539, 2997, 6377, 6874, 4973, 1682],\n", + " 241: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 247: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 249: [2858, 3996, 2997, 6874, 4973, 3897, 6333, 527, 7438, 1617],\n", + " 254: [4993, 4226, 7153, 3793, 4963, 6539, 4886, 1704, 6377, 6874],\n", + " 264: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 273: [2959, 4226, 2762, 4306, 3996, 5349, 47, 296, 4963, 4886],\n", + " 275: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3793, 5349, 47],\n", + " 276: [4963, 6539, 4995, 4027, 2716, 1517, 2918, 3052, 110, 5418],\n", + " 293: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 294: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 295: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n", + " 318: [4226, 2329, 1923, 4878, 3147, 32, 2692, 293, 223, 3949],\n", + " 321: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 345: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", + " 346: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 348: [1580, 1196, 1136, 2918, 3052, 3481, 5418, 1265, 1210, 6365],\n", + " 349: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 354: [4226, 3793, 47, 2028, 296, 4886, 2997, 6874, 2329, 50],\n", + " 359: [5349, 47, 2028, 4886, 1704, 356, 318, 6874, 2329, 50],\n", + " 366: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 369: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 384: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 390: [47, 6539, 6377, 3897, 7361, 1580, 1089, 1270, 2291, 1961],\n", + " 392: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 403: [2959, 4993, 3578, 5952, 2858, 4306, 3996, 5349, 2028, 6539],\n", + " 407: [4226, 2858, 5349, 1704, 318, 4995, 4973, 3897, 4011, 4027],\n", + " 414: [3578, 4226, 7153, 4306, 3793, 5349, 2028, 6539, 4886, 5445],\n", + " 431: [2959, 2571, 3578, 4226, 2858, 2762, 3996, 3793, 5349, 47],\n", + " 454: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 465: [2571, 5952, 7153, 3793, 2028, 4963, 4886, 5445, 3897, 2291],\n", + " 481: [2762, 2997, 6377, 4973, 4027, 5989, 1961, 3147, 527, 2918],\n", + " 485: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47, 2028],\n", + " 503: [3996, 5349, 47, 4963, 1704, 50, 3897, 4011, 4027, 1089],\n", + " 513: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 545: [3578, 4306, 3793, 5349, 4963, 6539, 5445, 1682, 2706, 1923],\n", + " 552: [2571, 4993, 3578, 5952, 7153, 3996, 3793, 5349, 47, 2028],\n", + " 554: [2571, 3578, 4226, 5349, 47, 6539, 4886, 5445, 4995, 2329],\n", + " 555: [5445, 1704, 4973, 1682, 7361, 1923, 5989, 4034, 3481, 480],\n", + " 561: [1704, 318, 2997, 4995, 50, 3897, 1682, 4027, 7361, 1089],\n", + " 565: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 5349, 47, 2028],\n", + " 591: [2959, 2571, 4993, 4226, 5952, 2762, 7153, 4306, 3793, 5349],\n", + " 617: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 622: [3578, 4226, 3996, 3793, 6539, 4886, 2997, 6377, 6874, 4995],\n", + " 623: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 633: [2762, 4963, 5445, 2997, 4995, 4973, 2329, 1682, 4011, 1270],\n", + " 636: [2959, 4226, 2858, 4306, 3996, 5349, 47, 4886, 1704, 356],\n", + " 638: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 641: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 646: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 654: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 655: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 658: [4993, 5952, 2762, 7153, 4306, 3996, 3793, 5349, 4886, 5445],\n", + " 660: [4993, 4226, 5952, 7153, 3793, 5349, 6539, 4886, 5445, 1704],\n", + " 661: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 677: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 714: [3793, 5349, 47, 4011, 7361, 1089, 593, 4878, 5989, 1961],\n", + " 715: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 723: [2858, 3996, 3793, 2028, 296, 4963, 4886, 5445, 1704, 2997],\n", + " 731: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", + " 742: [1089, 593, 2502, 527, 7438, 1258, 858, 2692, 1732, 2396],\n", + " 743: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 752: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 772: [2959, 2571, 4226, 5952, 2858, 2762, 7153, 5349, 47, 2028],\n", + " 814: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 823: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 826: [2762, 4306, 5349, 4886, 2329, 5989, 2291, 2502, 2716, 527],\n", + " 833: [2959, 3578, 4226, 2762, 7153, 47, 6539, 4886, 6377, 6874],\n", + " 838: [2959, 7153, 4306, 3996, 3793, 5349, 4963, 4886, 6874, 4995],\n", + " 842: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 852: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 878: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 887: [4993, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349, 4963],\n", + " 895: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 899: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 902: [2997, 6377, 4973, 1682, 4027, 1923, 4878, 2291, 2502, 1961],\n", + " 907: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 928: [7153, 3793, 5349, 2028, 6539, 1704, 6874, 4995, 1682, 4027],\n", + " 936: [3793, 5349, 318, 1580, 1270, 2706, 5989, 2291, 2716, 4034],\n", + " 964: [4993, 5952, 2858, 2762, 7153, 4306, 3996, 3793, 5349, 5445],\n", + " 970: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 972: [4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 4963, 6539],\n", + " 1001: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1013: [2959, 3578, 4226, 2858, 2762, 3793, 5349, 47, 6539, 4886],\n", + " 1018: [3578, 4963, 1704, 6377, 4995, 50, 4027, 2502, 1961, 527],\n", + " 1028: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1031: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1035: [3996, 4963, 6539, 1704, 2997, 4995, 4973, 2329, 50, 3897],\n", + " 1038: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1045: [5952, 3996, 4973, 1580, 6711, 2716, 2542, 480, 5418, 2692],\n", + " 1046: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 35: [3578, 5952, 7153, 3793, 5349, 296, 6539, 4886, 1704, 356],\n", + " 72: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 91: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 106: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", + " 128: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 158: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 160: [2959, 4993, 4226, 5952, 2762, 7153, 4306, 5349, 47, 296],\n", + " 175: [4306, 3996, 3793, 5349, 4963, 6539, 5445, 1704, 4995, 3897],\n", + " 196: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n", + " 203: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 206: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", + " 207: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 255: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 265: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n", + " 340: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 404: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 433: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 440: [3578, 4306, 3996, 3793, 5349, 4963, 4886, 5445, 1704, 2997],\n", + " 444: [2959, 4993, 3578, 4226, 5952, 7153, 3996, 3793, 5349, 2028],\n", + " 450: [2959, 7153, 6539, 1704, 6377, 6874, 1682, 4011, 7361, 1923],\n", + " 479: [4993, 3578, 5952, 7153, 4306, 3996, 3793, 5349, 47, 4963],\n", + " 491: [4993, 7153, 4306, 3793, 2028, 296, 6539, 4886, 5445, 2997],\n", + " 506: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 523: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 539: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 541: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n", + " 616: [4306, 3996, 3793, 5349, 4963, 1704, 6377, 6874, 4995, 4973],\n", + " 647: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 659: [2959, 3578, 3793, 5349, 2028, 4963, 6539, 4886, 2329, 50],\n", + " 695: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 700: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 707: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 748: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 759: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 784: [4973, 1682, 4011, 4027, 7361, 1089, 5989, 2502, 3147, 6711],\n", + " 790: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 835: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 844: [2959, 4993, 4226, 5952, 7153, 4306, 3996, 5349, 47, 2028],\n", + " 871: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 875: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 892: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 919: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 935: [2959, 4993, 5952, 2858, 2762, 7153, 4306, 5349, 47, 296],\n", + " 942: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 960: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 1006: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1026: [2858, 3996, 47, 296, 6539, 5445, 356, 318, 2997, 50],\n", + " 1047: [5952, 6539, 1704, 1580, 593, 5989, 2291, 1961, 1196, 2716],\n", + " 65: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 3996, 5349, 47],\n", + " 135: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 152: [2959, 4993, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n", + " 166: [2959, 2571, 3578, 4226, 2858, 7153, 4306, 3996, 3793, 5349],\n", + " 179: [2959, 4226, 5952, 2858, 2762, 7153, 3793, 47, 6539, 1704],\n", + " 188: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 217: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 253: [2959, 4993, 4226, 5952, 2762, 7153, 4306, 5349, 47, 2028],\n", + " 262: [2858, 6377, 2329, 3897, 1682, 4027, 1089, 1270, 5989, 1136],\n", + " 277: [2959, 2571, 3578, 4226, 2858, 4306, 3996, 3793, 5349, 47],\n", + " 289: [6377, 4878, 2502, 6333, 2683, 7438, 2542, 1291, 5418, 589],\n", + " 300: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", + " 302: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 47, 4963, 6539],\n", + " 308: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 311: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 328: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 329: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 344: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 347: [2959, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 47, 2028],\n", + " 358: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 3996, 3793, 47],\n", + " 474: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 483: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 509: [4993, 3578, 4306, 6539, 5445, 318, 2997, 6377, 4973, 3897],\n", + " 578: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 643: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 679: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 680: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 691: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n", + " 702: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 708: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 730: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 751: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 773: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 803: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", + " 809: [2959, 2571, 3578, 4226, 7153, 4306, 3996, 3793, 5349, 2028],\n", + " 820: [2762, 1704, 318, 4995, 2329, 3897, 4011, 5989, 3147, 4034],\n", + " 824: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 863: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 865: [4993, 5952, 2762, 3996, 3793, 5349, 2028, 6539, 4886, 5445],\n", + " 867: [2762, 47, 6874, 4995, 1682, 4011, 7361, 1089, 593, 4878],\n", + " 911: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 915: [2959, 3578, 4226, 7153, 3996, 3793, 5349, 296, 6539, 1704],\n", + " 939: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 946: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 954: [4993, 4226, 5952, 2858, 7153, 4306, 3996, 5349, 296, 4963],\n", + " 957: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n", + " 971: [3578, 2762, 7153, 4306, 47, 4963, 6539, 5445, 6377, 6874],\n", + " 986: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 992: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", + " 92: [2959, 4306, 3996, 296, 4886, 2997, 6377, 6874, 2329, 50],\n", + " 107: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 131: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 138: [3996, 3793, 5349, 4963, 4886, 2997, 4973, 3897, 1682, 4027],\n", + " 145: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 183: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 209: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 230: [2571, 4993, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n", + " 263: [7153, 4306, 2028, 356, 2997, 6874, 3897, 1682, 4011, 1580],\n", + " 305: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 314: [2959, 2571, 4226, 7153, 4306, 5349, 47, 4963, 6539, 4886],\n", + " 319: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 325: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3793],\n", + " 341: [4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n", + " 471: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 488: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 495: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 532: [2959, 5952, 7153, 4306, 3793, 5349, 47, 6539, 4886, 5445],\n", + " 564: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 574: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 603: [3578, 4226, 2762, 3996, 3793, 5349, 47, 4963, 6539, 4886],\n", + " 674: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 753: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 810: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 830: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 841: [2959, 5952, 2858, 2762, 7153, 4306, 5349, 47, 2028, 296],\n", + " 856: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 921: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 933: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n", + " 976: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 37: [2858, 2762, 5349, 4963, 6539, 4886, 5445, 356, 2997, 6377],\n", + " 83: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 248: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 387: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 428: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 451: [2959, 3578, 2858, 4306, 3996, 3793, 5349, 47, 2028, 296],\n", + " 584: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 874: [4226, 318, 50, 4011, 1089, 4878, 2291, 1961, 6711, 2716],\n", + " 995: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n", + " 10: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 19: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 41: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 43: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 44: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 45: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 51: [2959, 2571, 4993, 5952, 7153, 4306, 3793, 5349, 47, 6539],\n", + " 56: [2959, 2762, 3996, 3793, 5349, 47, 4963, 6539, 4886, 5445],\n", + " 61: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 68: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 69: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 78: [4993, 3578, 5952, 7153, 4306, 5349, 47, 4963, 6539, 4886],\n", + " 110: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 115: [2959, 2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 129: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 150: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 168: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 169: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 178: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 186: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 47],\n", + " 201: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 239: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 256: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 257: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3793, 5349],\n", + " 272: [2571, 2762, 47, 2028, 4963, 4886, 1704, 318, 6874, 4995],\n", + " 279: [4993, 4226, 2858, 4963, 5445, 1704, 4995, 4973, 2329, 50],\n", + " 280: [2959, 3578, 4226, 2762, 3996, 3793, 5349, 47, 296, 4963],\n", + " 285: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 298: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n", + " 301: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 304: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 3793, 5349],\n", + " 333: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 334: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 338: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n", + " 350: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 353: [3578, 2858, 2762, 4306, 3793, 5349, 4963, 6539, 4886, 5445],\n", + " 378: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 386: [2571, 4993, 5952, 7153, 4306, 3793, 5349, 47, 4963, 6539],\n", + " 397: [4993, 5952, 7153, 4306, 3996, 3793, 5349, 47, 4963, 6539],\n", + " 420: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 439: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 449: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 2028, 296, 4963],\n", + " 478: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 487: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", + " 489: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 500: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 510: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 521: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 522: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 527: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 529: [2959, 2571, 4993, 3578, 5952, 2858, 2762, 7153, 3996, 3793],\n", + " 535: [4226, 2858, 2762, 7153, 3996, 5349, 4963, 6539, 4886, 1704],\n", + " 550: [2959, 2571, 3578, 4226, 7153, 4306, 3793, 5349, 47, 2028],\n", + " 560: [2571, 4993, 3578, 5952, 7153, 4306, 3996, 3793, 5349, 2028],\n", + " 573: [2959, 4993, 3578, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", + " 579: [4993, 4226, 5952, 7153, 4306, 3996, 5349, 2028, 4963, 6539],\n", + " 582: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 583: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 587: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 596: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3793, 5349],\n", + " 602: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 618: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 624: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 627: [2959, 5952, 7153, 3793, 47, 6539, 4886, 5445, 6377, 6874],\n", + " 635: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 639: [2571, 3578, 4226, 2858, 2762, 3996, 2028, 4963, 5445, 1704],\n", + " 640: [2762, 3996, 296, 4963, 1704, 2997, 4995, 2329, 50, 3897],\n", + " 642: [4993, 4226, 5952, 7153, 4306, 5349, 4963, 6539, 4886, 5445],\n", + " 649: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 652: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 662: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 671: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", + " 675: [2959, 2571, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n", + " 684: [2959, 2571, 4993, 3578, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 703: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 712: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 726: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 727: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 744: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 746: [2959, 2571, 4993, 4226, 2762, 7153, 5349, 2028, 4963, 6539],\n", + " 761: [2959, 3578, 4226, 3996, 5349, 47, 2028, 296, 1704, 2997],\n", + " 765: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 766: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 771: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 776: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 797: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 812: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 815: [2959, 3578, 4226, 2858, 3996, 3793, 47, 4963, 6539, 4886],\n", + " 818: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 821: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", + " 822: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 831: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 834: [4993, 3578, 5952, 7153, 3996, 3793, 5349, 47, 296, 4886],\n", + " 837: [4226, 5952, 2762, 7153, 4306, 3793, 5349, 47, 2028, 4963],\n", + " 839: [2959, 2571, 3578, 2858, 4306, 3996, 3793, 5349, 47, 2028],\n", + " 840: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 851: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 3996, 3793, 5349],\n", + " 855: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 857: [2959, 4226, 2858, 2762, 4306, 3996, 3793, 5349, 296, 4886],\n", + " 868: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", + " 904: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 905: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", + " 906: [3578, 7153, 4306, 3793, 5349, 47, 6539, 4886, 5445, 318],\n", + " 924: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 925: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 927: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 940: [2959, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 5349, 47],\n", + " 948: [2959, 3578, 7153, 4306, 3793, 5349, 4963, 6539, 4886, 5445],\n", + " 953: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 966: [3578, 2762, 4306, 3996, 47, 2028, 6539, 1704, 318, 6874],\n", + " 967: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 2028],\n", + " 979: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 980: [2571, 3578, 5952, 4306, 3793, 5349, 47, 2028, 4963, 6539],\n", + " 983: [4993, 3578, 47, 2028, 296, 4963, 1704, 2997, 6874, 4973],\n", + " 984: [2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", + " 991: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 1009: [2959,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2762,\n", + " 4306,\n", + " 3996,\n", + " 3793,\n", + " 5349],\n", + " 1011: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1014: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2762,\n", + " 7153,\n", + " 4306,\n", + " 3996],\n", + " 1021: [4993, 5952, 7153, 3793, 5349, 47, 296, 4963, 6539, 4886],\n", + " 1030: [2959, 3578, 4226, 2858, 7153, 4306, 3996, 5349, 47, 2028],\n", + " 1033: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 7153,\n", + " 3996,\n", + " 3793],\n", + " 1039: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1040: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1053: [2959, 4993, 4226, 5952, 7153, 3996, 47, 2028, 296, 4963],\n", + " 704: [2858, 7153, 296, 6539, 356, 318, 2997, 6377, 6874, 2329],\n", + " 934: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 42: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 73: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 5349, 4963, 6539],\n", + " 82: [2959, 3578, 2858, 2762, 7153, 3996, 3793, 5349, 47, 2028],\n", + " 159: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 161: [4306, 2028, 4963, 1704, 356, 2997, 4995, 2329, 1682, 4011],\n", + " 192: [4993, 5952, 2762, 7153, 3996, 2028, 6539, 356, 318, 4995],\n", + " 216: [2959, 3578, 4226, 7153, 2028, 296, 6539, 5445, 1704, 356],\n", + " 219: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 290: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 379: [2959, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", + " 389: [4306, 296, 4963, 356, 4973, 50, 1089, 1270, 2706, 1923],\n", + " 400: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", + " 462: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 507: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 600: [2571, 4993, 5952, 2762, 7153, 4306, 3996, 3793, 5349, 47],\n", + " 721: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 793: [2959, 2858, 2762, 3996, 3793, 5349, 47, 2028, 296, 4963],\n", + " 912: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 932: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 949: [4993, 4226, 5952, 4306, 47, 6539, 356, 6874, 2329, 50],\n", + " 1025: [2959,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2762,\n", + " 7153,\n", + " 4306,\n", + " 3996,\n", + " 3793],\n", + " 46: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", + " 74: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 342: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", + " 508: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n", + " 580: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", + " 774: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", + " 783: [2959, 3578, 4226, 2858, 2762, 3793, 5349, 47, 2028, 296],\n", + " 1002: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1023: [4226, 2762, 4306, 3996, 3793, 5349, 2028, 296, 4963, 5445],\n", + " 1048: [3578, 3996, 3793, 4963, 356, 6377, 4973, 1682, 4027, 7361],\n", + " 23: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 96: [2959, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", + " 124: [2959, 3578, 4226, 2858, 2762, 4306, 3793, 5349, 47, 296],\n", + " 136: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 148: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 189: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 213: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 243: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", + " 323: [2959, 2571, 3578, 4226, 2858, 2762, 4306, 3996, 3793, 5349],\n", + " 352: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 429: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", + " 625: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 808: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 843: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 847: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 963: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 975: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 998: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 47, 2028, 296],\n", + " 75: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", + " 427: [2959, 4993, 4226, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n", + " 466: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n", + " 801: [2858, 2762, 5445, 356, 318, 2997, 4995, 50, 3897, 1682],\n", + " 848: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 888: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n", + " 191: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 227: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 245: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996],\n", + " 380: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 47],\n", + " 408: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 668: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 747: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 754: [2959, 2858, 2762, 2028, 296, 1704, 356, 318, 2997, 4995],\n", + " 11: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 16: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 81: [4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n", + " 86: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 97: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", + " 151: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 235: [5952, 2762, 4306, 3996, 3793, 5349, 2028, 4963, 4886, 1704],\n", + " 251: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 258: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 278: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 388: [2959, 4993, 3578, 5952, 2858, 2762, 7153, 4306, 3996, 3793],\n", + " 551: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 606: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 614: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 681: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 686: [2959, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", + " 711: [2959, 2571, 3578, 4226, 2858, 2762, 7153, 4306, 3996, 3793],\n", + " 718: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 873: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 962: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 985: [2959, 2571, 4226, 2858, 2762, 47, 2028, 296, 4963, 6539],\n", + " 993: [2959, 2571, 2858, 2762, 7153, 47, 296, 6539, 1704, 356],\n", + " 184: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 246: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 373: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 4306, 3996, 3793],\n", + " 430: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 534: [2959, 2571, 3578, 4226, 2858, 2762, 7153, 4306, 3996, 3793],\n", + " 805: [2959, 4226, 2858, 2762, 3996, 3793, 5349, 47, 2028, 296],\n", + " 58: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 112: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 367: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 548: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 791: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 909: [3578, 4226, 7153, 4306, 3996, 5349, 47, 2028, 296, 4963],\n", + " 1041: [4306, 3793, 5349, 5445, 356, 6377, 4995, 3897, 1682, 4027],\n", + " 13: [2959, 2571, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 5349],\n", + " 869: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 415: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 477: [3578, 2858, 4306, 3793, 5349, 4963, 6539, 4886, 5445, 1704],\n", + " 569: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 694: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 729: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 741: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 965: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 17: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n", + " 40: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 114: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 137: [4226, 5952, 7153, 6539, 4886, 5445, 356, 6377, 6874, 4973],\n", + " 153: [2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996, 3793],\n", + " 211: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 286: [4993, 5952, 2762, 7153, 4306, 3996, 5349, 47, 296, 4963],\n", + " 330: [3578, 4226, 4306, 3996, 2028, 4963, 6539, 4886, 5445, 1704],\n", + " 336: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 372: [4226, 2858, 7153, 4306, 3996, 5349, 47, 2028, 296, 4963],\n", + " 376: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 5349],\n", + " 412: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 447: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 467: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 490: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 518: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 608: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 3793],\n", + " 619: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", + " 644: [2959, 4226, 2858, 2762, 7153, 3996, 3793, 47, 296, 4963],\n", + " 667: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", + " 698: [4306, 5349, 6539, 4886, 356, 2997, 4973, 4027, 1580, 1270],\n", + " 709: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 728: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 733: [2959, 4226, 5952, 2858, 2762, 4306, 3996, 3793, 5349, 47],\n", + " 777: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 5349],\n", + " 813: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 832: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 893: [2959, 4993, 4226, 2858, 2762, 7153, 4306, 3996, 3793, 5349],\n", + " 901: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 937: [2571, 4993, 3578, 4226, 2858, 3996, 3793, 5349, 2028, 296],\n", + " 947: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 5349],\n", + " 362: [3578, 2858, 4306, 3996, 5349, 47, 2028, 296, 4963, 6539],\n", + " 375: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 599: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 632: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 779: [2959, 2571, 4993, 3578, 5952, 2858, 2762, 4306, 5349, 47],\n", + " 1022: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1034: [2959, 2571, 4993, 4226, 2858, 2762, 4306, 3996, 3793, 47],\n", + " 819: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 2: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 3: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 4306, 3996, 3793],\n", + " 104: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 105: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 218: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 250: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 313: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 377: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 413: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 576: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 586: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 595: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 610: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 613: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 637: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", + " 663: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 740: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 787: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 804: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 866: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 883: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 941: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 1007: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 817: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 6: [2959, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3793, 5349],\n", + " 7: [2959, 2571, 4993, 3578, 5952, 2858, 7153, 3996, 3793, 5349],\n", + " 14: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", + " 24: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 57: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 60: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 64: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 84: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 90: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 98: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 113: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", + " 120: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 123: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 157: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 194: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 200: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 204: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 205: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 225: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 229: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 237: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 242: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 252: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 266: [2959, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 270: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 282: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 297: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 309: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 316: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 327: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 356: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 393: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 394: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 395: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", + " 399: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 401: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", + " 402: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 47, 2028],\n", + " 405: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 417: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 3996, 3793],\n", + " 422: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 437: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 455: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 461: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 473: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 484: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 499: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 526: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 537: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 542: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", + " 557: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 563: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 570: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 575: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 594: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 607: [2959, 2571, 4993, 3578, 2858, 2762, 7153, 4306, 3996, 3793],\n", + " 631: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 651: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 664: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 685: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 690: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 696: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", + " 724: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 738: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 762: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 763: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 770: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 796: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 800: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 829: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 836: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 882: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 900: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 903: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 914: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 918: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 920: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 945: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 950: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3793],\n", + " 952: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 982: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 989: [2959, 4993, 4226, 5952, 2762, 7153, 4306, 3996, 3793, 5349],\n", + " 1016: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2762,\n", + " 7153,\n", + " 4306,\n", + " 3996],\n", + " 1019: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1044: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1051: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 917: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 951: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 997: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 174: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 676: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 764: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 1052: [2571,\n", + " 4993,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306,\n", + " 3996,\n", + " 3793],\n", + " 5: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 27: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 33: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 134: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 142: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 156: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 167: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 177: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 224: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 269: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 312: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 360: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 385: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 411: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 464: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 568: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 612: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 630: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 706: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 737: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 749: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 756: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 811: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 853: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 884: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 955: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", + " 1032: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 1043: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306],\n", + " 370: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 670: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 923: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 931: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 969: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 12: [2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", + " 597: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 195: [2959, 2571, 5952, 7153, 3793, 5349, 47, 6539, 4886, 5445],\n", + " 337: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 910: [2571, 3578, 2762, 5349, 2028, 4963, 6539, 5445, 356, 2997],\n", + " 63: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 70: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 3996, 3793, 5349],\n", + " 99: [2959, 2571, 3578, 5952, 2858, 7153, 4306, 3996, 3793, 5349],\n", + " 121: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 130: [2959, 2571, 3578, 4226, 2762, 4306, 3793, 5349, 47, 2028],\n", + " 244: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 291: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 335: [2959, 2571, 5952, 2858, 2762, 7153, 4306, 3793, 5349, 47],\n", + " 361: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 470: [4993, 3578, 7153, 4306, 3793, 5349, 2028, 4963, 4886, 1704],\n", + " 497: [2959, 3578, 5952, 2858, 3996, 3793, 5349, 47, 2028, 296],\n", + " 620: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 648: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 666: [3578, 2762, 4306, 3793, 5349, 2028, 4963, 6539, 4886, 5445],\n", + " 710: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 794: [2959, 2571, 4993, 3578, 5952, 2858, 4306, 3996, 3793, 5349],\n", + " 854: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 861: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 87: [2571, 4993, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", + " 317: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 324: [2858, 2762, 4306, 3996, 3793, 47, 2028, 296, 4963, 6539],\n", + " 502: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 559: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 973: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 1015: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2762,\n", + " 7153,\n", + " 4306,\n", + " 3996],\n", + " 1017: [2959,\n", + " 2571,\n", + " 3578,\n", + " 4226,\n", + " 2858,\n", + " 2762,\n", + " 4306,\n", + " 3996,\n", + " 3793,\n", + " 5349],\n", + " 85: [2959, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 306: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 653: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 371: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 566: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", + " 331: [3578, 5952, 2762, 4306, 3996, 3793, 5349, 47, 2028, 296],\n", + " 665: [2959, 2571, 4993, 3578, 2762, 7153, 4306, 3793, 5349, 47],\n", + " 872: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 879: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 486: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 3996],\n", + " 864: [2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349],\n", + " 52: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 288: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 9: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 117: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 3996, 3793],\n", + " 220: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 544: [3578, 4226, 2858, 2762, 4306, 3996, 5349, 2028, 4963, 6539],\n", + " 999: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 458: [2959, 2571, 4993, 5952, 7153, 4306, 3996, 5349, 47, 2028],\n", + " 974: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 546: [2959, 2571, 4226, 2858, 2762, 47, 2028, 296, 4963, 1704],\n", + " 55: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 363: [2571, 3578, 4226, 2858, 2762, 4306, 3996, 3793, 5349, 47],\n", + " 445: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 4306, 3996, 3793],\n", + " 492: [2959, 2571, 4993, 3578, 4226, 2858, 2762, 7153, 4306, 5349],\n", + " 234: [4993, 3578, 5952, 2762, 7153, 3793, 5349, 47, 2028, 296],\n", + " 1027: [2571, 4993, 5952, 2858, 2762, 7153, 4306, 3996, 3793, 47],\n", + " 140: [2959, 2571, 4993, 3578, 5952, 2762, 4306, 3996, 3793, 5349],\n", + " 926: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 4306, 3996],\n", + " 781: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 825: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 913: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 5349],\n", + " 453: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 540: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", + " 66: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 185: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 222: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 498: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 994: [2959, 2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 165: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 202: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 180: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 7153, 4306, 3996],\n", + " 93: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 261: [2959, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 435: [4993, 3578, 5952, 2858, 2762, 7153, 4306, 3996, 3793, 5349],\n", + " 322: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 238: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 425: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 512: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 725: [4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793, 5349, 47],\n", + " 732: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 108: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 592: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 443: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 916: [2571, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996, 5349],\n", + " 736: [2959, 2571, 4993, 4226, 5952, 2858, 2762, 7153, 4306, 5349],\n", + " 961: [2959, 2571, 4993, 3578, 4226, 5952, 7153, 4306, 3996, 3793],\n", + " 1012: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2762,\n", + " 7153,\n", + " 4306,\n", + " 3996],\n", + " 515: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 978: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 28: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 475: [2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306, 3996],\n", + " 598: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 943: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 520: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 697: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 849: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 1003: [2959,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 7153,\n", + " 4306,\n", + " 3996,\n", + " 3793],\n", + " 705: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 48: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 29: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 231: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 699: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 448: [2959, 2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996],\n", + " 750: [2571, 4993, 3578, 4226, 5952, 2762, 7153, 4306, 3996, 3793],\n", + " 782: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 860: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 768: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 127: [2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306],\n", + " 894: [2959,\n", + " 2571,\n", + " 4993,\n", + " 3578,\n", + " 4226,\n", + " 5952,\n", + " 2858,\n", + " 2762,\n", + " 7153,\n", + " 4306]})" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from collections import defaultdict\n", + "\n", + "# 각 사용자에 대한 추천 영화는 해당 사용자 아직 평가하지 않은 영화 중에서 예측값이 높은 순으로 한다\n", + "pred_user2items = defaultdict(list)\n", + "user_evaluated_movies = movielens_train.groupby(\"user_id\").agg({\"movie_id\": list})[\"movie_id\"].to_dict()\n", + "for user_id in movielens_train.user_id.unique():\n", + " if user_id not in user_id2index:\n", + " continue\n", + " user_index = user_id2index[row[\"user_id\"]]\n", + " movie_indexes = np.argsort(-pred_matrix[user_index, :])\n", + " for movie_index in movie_indexes:\n", + " movie_id = user_movie_matrix.columns[movie_index]\n", + " if movie_id not in user_evaluated_movies[user_id]:\n", + " pred_user2items[user_id].append(movie_id)\n", + " if len(pred_user2items[user_id]) == 10:\n", + " break\n", + "\n", + "pred_user2items" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "14a45925", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 841 + }, + "executionInfo": { + "elapsed": 33, + "status": "ok", + "timestamp": 1672119959234, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "14a45925", + "outputId": "27d652fa-b864-4756-d5fc-74bd77a05a82" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " user_id movie_id rating timestamp \\\n", + "4732 2 110 5.0 868245777 \n", + "5246 2 260 5.0 868244562 \n", + "5798 2 590 5.0 868245608 \n", + "6150 2 648 2.0 868244699 \n", + "6531 2 733 3.0 868244562 \n", + "6813 2 736 3.0 868244698 \n", + "7113 2 780 3.0 868244698 \n", + "7506 2 786 3.0 868244562 \n", + "7661 2 802 2.0 868244603 \n", + "7779 2 858 2.0 868245645 \n", + "8077 2 1049 3.0 868245920 \n", + "8127 2 1073 3.0 868244562 \n", + "8381 2 1210 4.0 868245644 \n", + "8771 2 1356 3.0 868244603 \n", + "9097 2 1544 3.0 868245920 \n", + "\n", + " title \\\n", + "4732 Braveheart (1995) \n", + "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", + "5798 Dances with Wolves (1990) \n", + "6150 Mission: Impossible (1996) \n", + "6531 Rock, The (1996) \n", + "6813 Twister (1996) \n", + "7113 Independence Day (a.k.a. ID4) (1996) \n", + "7506 Eraser (1996) \n", + "7661 Phenomenon (1996) \n", + "7779 Godfather, The (1972) \n", + "8077 Ghost and the Darkness, The (1996) \n", + "8127 Willy Wonka & the Chocolate Factory (1971) \n", + "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", + "8771 Star Trek: First Contact (1996) \n", + "9097 Lost World: Jurassic Park, The (Jurassic Park ... \n", + "\n", + " genre \\\n", + "4732 [Action, Drama, War] \n", + "5246 [Action, Adventure, Sci-Fi] \n", + "5798 [Adventure, Drama, Western] \n", + "6150 [Action, Adventure, Mystery, Thriller] \n", + "6531 [Action, Adventure, Thriller] \n", + "6813 [Action, Adventure, Romance, Thriller] \n", + "7113 [Action, Adventure, Sci-Fi, War] \n", + "7506 [Action, Drama, Thriller] \n", + "7661 [Drama, Romance] \n", + "7779 [Crime, Drama] \n", + "8077 [Action, Adventure] \n", + "8127 [Children, Comedy, Fantasy, Musical] \n", + "8381 [Action, Adventure, Sci-Fi] \n", + "8771 [Action, Adventure, Sci-Fi, Thriller] \n", + "9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n", + "\n", + " tag timestamp_rank \n", + "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", + "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", + "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", + "6150 [confusing, confusing plot, memorable sequence... 12.0 \n", + "6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n", + "6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n", + "7113 [action, alien invasion, aliens, will smith, a... 14.0 \n", + "7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n", + "7661 [interesting concept, own, john travolta, john... 15.0 \n", + "7779 [oscar (best picture), marlon brando, classic,... 9.0 \n", + "8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n", + "8127 [based on a book, roald dahl, based on a book,... 20.0 \n", + "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n", + "8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n", + "9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2인 사용자가 학습 데이터에서 평가를 부여한 영화 목록\n", + "movielens_train[movielens_train.user_id==2]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "47543b66", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 31, + "status": "ok", + "timestamp": 1672119959234, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "47543b66", + "outputId": "779b6217-68dc-416f-eadc-345a38857d60" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[2959, 2571, 4993, 3578, 4226, 5952, 2858, 2762, 7153, 4306]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred_user2items[2]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "ac73e03a", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 187 + }, + "executionInfo": { + "elapsed": 9, + "status": "ok", + "timestamp": 1672119959234, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "ac73e03a", + "outputId": "1fb5be98-7592-4696-d496-571b130f9b1d" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idtitlegenretag
24872571Matrix, The (1999)[Action, Sci-Fi, Thriller][artificial intelligence, hackers, heroine in ...
28742959Fight Club (1999)[Action, Crime, Drama, Thriller][based on a book, chuck palahniuk, edward nort...
48994993Lord of the Rings: The Fellowship of the Ring,...[Action, Adventure, Fantasy][based on a book, big budget, new zealand, sce...
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " movie_id title \\\n", + "2487 2571 Matrix, The (1999) \n", + "2874 2959 Fight Club (1999) \n", + "4899 4993 Lord of the Rings: The Fellowship of the Ring,... \n", + "\n", + " genre \\\n", + "2487 [Action, Sci-Fi, Thriller] \n", + "2874 [Action, Crime, Drama, Thriller] \n", + "4899 [Action, Adventure, Fantasy] \n", + "\n", + " tag \n", + "2487 [artificial intelligence, hackers, heroine in ... \n", + "2874 [based on a book, chuck palahniuk, edward nort... \n", + "4899 [based on a book, big budget, new zealand, sce... " + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2에 대한 추천(2959, 4993, 5952)\n", + "movies[movies.movie_id.isin([2959, 2571, 4993])]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "93ce1b7a", + "metadata": { + "executionInfo": { + "elapsed": 9, + "status": "ok", + "timestamp": 1672119959235, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "93ce1b7a" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "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.10.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/chapter5/colab/UMCF.ipynb b/chapter5/colab/UMCF.ipynb index 7f20a42..7a0821f 100644 --- a/chapter5/colab/UMCF.ipynb +++ b/chapter5/colab/UMCF.ipynb @@ -1 +1,4927 @@ -{"cells":[{"cell_type":"markdown","id":"66d2e720","metadata":{"id":"66d2e720"},"source":["[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/UMCF.ipynb)"]},{"cell_type":"markdown","id":"f8caaceb","metadata":{"id":"f8caaceb"},"source":["# 사용자-사용자 메모리 기반 협조 필터링"]},{"cell_type":"code","execution_count":1,"id":"9cb2f773","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9cb2f773","executionInfo":{"status":"ok","timestamp":1672120577940,"user_tz":-540,"elapsed":3786,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"1da0f943-c87e-4e98-9eca-45f624108983"},"outputs":[{"output_type":"stream","name":"stdout","text":["--2022-12-27 05:54:30-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n","Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n","Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 65566137 (63M) [application/zip]\n","Saving to: ‘../data/ml-10m.zip’\n","\n","ml-10m.zip 100%[===================>] 62.53M 91.0MB/s in 0.7s \n","\n","2022-12-27 05:54:31 (91.0 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n","\n","Archive: ../data/ml-10m.zip\n"," creating: ../data/ml-10M100K/\n"," inflating: ../data/ml-10M100K/allbut.pl \n"," inflating: ../data/ml-10M100K/movies.dat \n"," inflating: ../data/ml-10M100K/ratings.dat \n"," inflating: ../data/ml-10M100K/README.html \n"," inflating: ../data/ml-10M100K/split_ratings.sh \n"," inflating: ../data/ml-10M100K/tags.dat \n"]}],"source":["# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n","# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n","# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n","\n","# 데이터 다운로드와 압축 풀기\n","!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n","!unzip -n ../data/ml-10m.zip -d ../data/"]},{"cell_type":"code","execution_count":2,"id":"ed3c6a08","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ed3c6a08","executionInfo":{"status":"ok","timestamp":1672120647715,"user_tz":-540,"elapsed":69778,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"0c864b95-f3a3-4b20-ab41-d26580399203"},"outputs":[{"output_type":"stream","name":"stdout","text":["unique_users=1000, unique_movies=6736\n"]}],"source":["# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n","import pandas as pd\n","\n","# movieID와 제목만 사용\n","m_cols = ['movie_id', 'title', 'genre']\n","movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n","\n","# genre를 list 형식으로 저장한다\n","movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n","\n","\n","# 사용자가 부여한 영화의 태그 정보를 로딩한다\n","t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n","user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n","\n","# tag를 소문자로 바꾼다\n","user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n","\n","\n","# tag를 영화별로 list 형식으로 저장한다\n","movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n","\n","# 태그 정보를 결합한다\n","movies = movies.merge(movie_tags, on='movie_id', how='left')\n","\n","# 평갓값 데이터만 로딩한다\n","r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n","ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n","\n","\n","# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n","valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n","ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n","\n","\n","# 영화 데이터와 평가 데이터를 결합한다\n","movielens = ratings.merge(movies, on='movie_id')\n","\n","print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n","\n","# 학습용과 데이터용으로 데이터를 나눈다\n","# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n","# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n","# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n","\n","movielens['timestamp_rank'] = movielens.groupby(\n"," 'user_id')['timestamp'].rank(ascending=False, method='first')\n","movielens_train = movielens[movielens['timestamp_rank'] > 5]\n","movielens_test = movielens[movielens['timestamp_rank']<= 5]"]},{"cell_type":"code","execution_count":3,"id":"06409f5a","metadata":{"id":"06409f5a","executionInfo":{"status":"ok","timestamp":1672120647715,"user_tz":-540,"elapsed":24,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["import numpy as np\n","# 피어슨 상관 계수\n","def peason_coefficient(u: np.ndarray, v: np.ndarray) -> float:\n"," u_diff = u - np.mean(u)\n"," v_diff = v - np.mean(v)\n"," numerator = np.dot(u_diff, v_diff)\n"," denominator = np.sqrt(sum(u_diff ** 2)) * np.sqrt(sum(v_diff ** 2))\n"," if denominator == 0:\n"," return 0.0\n"," return numerator / denominator\n"]},{"cell_type":"code","execution_count":4,"id":"ff148555-35f5-4362-87fb-75f0a8d5d33f","metadata":{"id":"ff148555-35f5-4362-87fb-75f0a8d5d33f","executionInfo":{"status":"ok","timestamp":1672120647716,"user_tz":-540,"elapsed":23,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["from collections import defaultdict\n","\n","# 평갓값을 사용자 x 화면의 행렬로 변환한다\n","user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n","user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n","movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n","\n","# 예측 대상 사용자와 영화의 조합\n","movie_rating_predict = movielens_test.copy()\n","pred_user2items = defaultdict(list)"]},{"cell_type":"code","execution_count":5,"id":"fc0361fa","metadata":{"id":"fc0361fa","executionInfo":{"status":"ok","timestamp":1672120648148,"user_tz":-540,"elapsed":453,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"outputs":[],"source":["# 우직하게 유사도를 계산한다(이 계산은 매우 무겁습니다. 그렇기 떄문에 도중에 break를 넣었습니다. 속도 향상을 위해 라이브러리르 사용한 구현도 다음 셀에서 소개합니다)\n","\n","# 예측 대상 사용자 ID\n","test_users = movie_rating_predict.user_id.unique()\n","\n","# 예측 대상 사용자(사용자 1)에 주목한다\n","for user1_id in test_users:\n"," similar_users = []\n"," similarities = []\n"," avgs = []\n","\n"," # 사용자 1과 평갓값 행렬 안의 기타 사용자(사용자 2)와의 유사도를 산출한다\n"," for user2_id in user_movie_matrix.index:\n"," if user1_id == user2_id:\n"," continue\n","\n"," # 사용자 1과 사용자 2의 평갓값 벡터\n"," u_1 = user_movie_matrix.loc[user1_id, :].to_numpy()\n"," u_2 = user_movie_matrix.loc[user2_id, :].to_numpy()\n","\n"," # `u_1`과 `u_2`로부터, 동시에 결손값이 없는 요소만 추출한 벡터를 얻는다\n"," common_items = ~np.isnan(u_1) & ~np.isnan(u_2)\n","\n"," # 공통으로 평가한 아이템이 없으면 스킵\n"," if not common_items.any():\n"," continue\n","\n"," u_1, u_2 = u_1[common_items], u_2[common_items]\n","\n"," # 피어슨 상관 계수를 사용해 사용자 1과 사용자 2의 유사도를 산출\n"," rho_12 = peason_coefficient(u_1, u_2)\n","\n"," # 사용자 1과의 유사도가 0 보다 큰 경우, 사용자 2를 유사 사용자로 간주한다\n"," if rho_12 > 0:\n"," similar_users.append(user2_id)\n"," similarities.append(rho_12)\n"," avgs.append(np.mean(u_2))\n","\n"," # 사용자 1의 평균 평갓값\n"," avg_1 = np.mean(user_movie_matrix.loc[user1_id, :].dropna().to_numpy())\n","\n"," # 예측 대상 영화의 ID\n"," test_movies = movie_rating_predict[movie_rating_predict[\"user_id\"] == user1_id].movie_id.values\n"," # 예측할 수 없는 영화에 대한 평갓값은 사용자 1의 평균 평갓값으로 한다\n"," movie_rating_predict.loc[(movie_rating_predict[\"user_id\"] == user1_id), \"rating_pred\"] = avg_1\n","\n"," if similar_users:\n"," for movie_id in test_movies:\n"," if movie_id in movie_id2index:\n"," r_xy = user_movie_matrix.loc[similar_users, movie_id].to_numpy()\n"," rating_exists = ~np.isnan(r_xy)\n","\n"," # 유사 사용자가 대상이 되는 영화에 대한 평갓값을 갖지 않은 경우는 스킵한다\n"," if not rating_exists.any():\n"," continue\n","\n"," r_xy = r_xy[rating_exists]\n"," rho_1x = np.array(similarities)[rating_exists]\n"," avg_x = np.array(avgs)[rating_exists]\n"," r_hat_1y = avg_1 + np.dot(rho_1x, (r_xy - avg_x)) / rho_1x.sum()\n","\n"," # 예측 평갓값을 저장\n"," movie_rating_predict.loc[\n"," (movie_rating_predict[\"user_id\"] == user1_id)\n"," & (movie_rating_predict[\"movie_id\"] == movie_id),\n"," \"rating_pred\",\n"," ] = r_hat_1y\n"," break # 계산이 무거우므로, for 루프는 1번만 수행한 뒤 종료합니다. 각 변수에 어떤 값이 들어있는지 확인하면 알고리즘을 더 깊이 이해할 수 있습니다."]},{"cell_type":"code","execution_count":6,"id":"665ebafd","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"665ebafd","executionInfo":{"status":"ok","timestamp":1672120691833,"user_tz":-540,"elapsed":43701,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"114ccdfc-023b-4a0b-d695-4b2c631818a5"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting surprise\n"," Downloading surprise-0.1-py2.py3-none-any.whl (1.8 kB)\n","Collecting scikit-surprise\n"," Downloading scikit-surprise-1.1.3.tar.gz (771 kB)\n","\u001b[K |████████████████████████████████| 771 kB 33.9 MB/s \n","\u001b[?25hRequirement already satisfied: joblib>=1.0.0 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.2.0)\n","Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.21.6)\n","Requirement already satisfied: scipy>=1.3.2 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.7.3)\n","Building wheels for collected packages: scikit-surprise\n"," Building wheel for scikit-surprise (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for scikit-surprise: filename=scikit_surprise-1.1.3-cp38-cp38-linux_x86_64.whl size=2626503 sha256=0e6db95d2a4c33d1ddb4f8a1bdfe526bfa9ce95d16c0f4728ccec069f280cbd1\n"," Stored in directory: /root/.cache/pip/wheels/af/db/86/2c18183a80ba05da35bf0fb7417aac5cddbd93bcb1b92fd3ea\n","Successfully built scikit-surprise\n","Installing collected packages: scikit-surprise, surprise\n","Successfully installed scikit-surprise-1.1.3 surprise-0.1\n"]}],"source":["!pip install surprise"]},{"cell_type":"code","execution_count":8,"id":"b42f291a","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"b42f291a","executionInfo":{"status":"ok","timestamp":1672121035097,"user_tz":-540,"elapsed":203038,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"d9542b8c-d6ab-44a2-ca47-dbb7e74fc6e0"},"outputs":[{"output_type":"stream","name":"stdout","text":["Computing the pearson similarity matrix...\n","Done computing similarity matrix.\n"]},{"output_type":"execute_result","data":{"text/plain":["defaultdict(list,\n"," {139: [6319, 2721, 2131, 3415, 1121, 2509, 4221, 4418, 4509, 5101],\n"," 149: [2494,\n"," 26425,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2425,\n"," 31116],\n"," 182: [6319, 3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 6122],\n"," 215: [1564, 3365, 1204, 1131, 2931, 2938, 1192, 1489, 2679, 1147],\n"," 281: [137,\n"," 1477,\n"," 26425,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 4850,\n"," 5069,\n"," 2494,\n"," 31116],\n"," 326: [1192, 2679, 3341, 7064, 32316, 3415, 3473, 4208, 4453, 146],\n"," 351: [3473,\n"," 6122,\n"," 2911,\n"," 137,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116],\n"," 357: [7064,\n"," 3473,\n"," 4850,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 426: [26425,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 456: [3473,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 3823,\n"," 1444,\n"," 3415,\n"," 4928],\n"," 459: [2494,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 220,\n"," 31116],\n"," 494: [6319,\n"," 2494,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 26425,\n"," 2721,\n"," 31116],\n"," 517: [7064, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 3645],\n"," 524: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6122, 4850, 5069],\n"," 556: [26425,\n"," 137,\n"," 1477,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 4850,\n"," 31116,\n"," 1444],\n"," 588: [7064,\n"," 3473,\n"," 27741,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 2721,\n"," 31116,\n"," 1444],\n"," 589: [6319, 3415, 3473, 6023, 1121, 2509, 4135, 4221, 4418, 4509],\n"," 590: [2930,\n"," 26425,\n"," 4850,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 3645],\n"," 601: [3341, 6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 621: [3415, 3473, 6271, 6918, 7067, 7749, 7759, 8256, 8724, 8785],\n"," 634: [2203,\n"," 1192,\n"," 2679,\n"," 3341,\n"," 7064,\n"," 7933,\n"," 32316,\n"," 2721,\n"," 3415,\n"," 4208],\n"," 672: [26425,\n"," 3002,\n"," 6168,\n"," 3777,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911],\n"," 701: [8533, 2203, 678, 1658, 2618, 5283, 1273, 973, 2679, 6187],\n"," 719: [6319, 4356, 6016, 4850, 5305, 5840, 2977, 1477, 26425, 850],\n"," 745: [3473,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 4850,\n"," 31116,\n"," 1444],\n"," 757: [1564, 5952, 28, 527, 926, 1046, 2028, 1260, 1261, 2959],\n"," 775: [260, 858, 1131, 2075, 2938, 5122, 1192, 2679, 1147, 615],\n"," 780: [3415, 3473, 4850, 3645, 1572, 4928, 6271, 6918, 7067, 7749],\n"," 785: [7064, 2721, 3415, 146, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 788: [4633, 2679, 5304, 6783, 7064, 2721, 1493, 2043, 3415, 4208],\n"," 870: [26425,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 4850,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6271,\n"," 7067],\n"," 987: [4850,\n"," 2494,\n"," 26425,\n"," 4135,\n"," 2879,\n"," 206,\n"," 3266,\n"," 31116,\n"," 5255,\n"," 5438],\n"," 988: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 6271, 7067],\n"," 1020: [260, 28, 47, 242, 2571, 1260, 4226, 1136, 2959, 1131],\n"," 1: [122, 362, 466, 520, 616, 110, 151, 260, 376, 590],\n"," 22: [6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n"," 26: [2679, 2714, 5434, 49932, 6319, 7064, 2721, 3473, 4208, 1844],\n"," 30: [858, 213, 1148, 1564, 8783, 58, 171, 232, 242, 306],\n"," 34: [26425,\n"," 3777,\n"," 3804,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2721,\n"," 31116],\n"," 38: [2852, 40826, 3516, 279, 1837, 2679, 6213, 6219, 2721, 99],\n"," 50: [1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 4732,\n"," 34164,\n"," 2911,\n"," 1871,\n"," 27255],\n"," 53: [2930,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 3645],\n"," 54: [6319,\n"," 7064,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 8199,\n"," 3415],\n"," 67: [2075, 2679, 8916, 6319, 715, 3415, 4208, 4424, 2691, 146],\n"," 71: [2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 3694,\n"," 3695,\n"," 2721,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 76: [1260, 2203, 2618, 5573, 1131, 2075, 2931, 2459, 4633, 279],\n"," 88: [527, 5255, 7193, 1131, 1132, 2931, 2938, 4276, 5122, 318],\n"," 89: [2679, 1034, 615, 7064, 1493, 3415, 4208, 4453, 3076, 8341],\n"," 94: [6319,\n"," 3473,\n"," 5069,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 3415],\n"," 95: [6319, 3415, 4928, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n"," 100: [26425,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 101: [3918, 6319, 7064, 7933, 3224, 3415, 1927, 6122, 4850, 4939],\n"," 102: [4850,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 6122,\n"," 1444,\n"," 3415],\n"," 103: [4850,\n"," 26425,\n"," 3473,\n"," 27255,\n"," 1871,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6023,\n"," 6271],\n"," 111: [2075, 6319, 2721, 2131, 3415, 1121, 2509, 4221, 4418, 4509],\n"," 116: [279, 4920, 3473, 7042, 49957, 1184, 2579, 3579, 6780, 6918],\n"," 118: [1871,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 143: [3415, 3473, 3645, 1572, 4928, 6271, 6918, 7067, 7749, 7759],\n"," 144: [3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 5101, 4928],\n"," 162: [2931, 2938, 4633, 5122, 1192, 2679, 615, 3341, 680, 7064],\n"," 172: [4135,\n"," 4850,\n"," 2704,\n"," 26425,\n"," 6319,\n"," 2721,\n"," 31116,\n"," 3415,\n"," 6023,\n"," 3645],\n"," 173: [5017, 2075, 2938, 1192, 2679, 5434, 49932, 680, 5304, 6783],\n"," 187: [3918,\n"," 4135,\n"," 4850,\n"," 26425,\n"," 1361,\n"," 2930,\n"," 1477,\n"," 34164,\n"," 6780,\n"," 2925],\n"," 193: [26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 850,\n"," 31116,\n"," 1444,\n"," 4079,\n"," 3415],\n"," 208: [28, 541, 926, 1221, 2571, 2936, 5017, 6273, 5438, 5573],\n"," 210: [2931, 2679, 3341, 7064, 3415, 3473, 4453, 2925, 1121, 2509],\n"," 214: [3473,\n"," 2911,\n"," 137,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 228: [3516, 1192, 615, 1684, 49932, 8596, 32316, 206, 2166, 5077],\n"," 232: [1477,\n"," 26425,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 2704,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 236: [6319, 3415, 6023, 5077, 6122, 4850, 4928, 6271, 6918, 7067],\n"," 259: [2494, 2911, 2704, 137, 27255, 3777, 3804, 3002, 1477, 6168],\n"," 260: [2704,\n"," 26425,\n"," 27255,\n"," 2911,\n"," 2977,\n"," 7064,\n"," 121,\n"," 2721,\n"," 31116,\n"," 1444],\n"," 267: [2704,\n"," 26425,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444],\n"," 268: [5573, 615, 6319, 2721, 5077, 6122, 4850, 8477, 5069, 6780],\n"," 271: [1192,\n"," 3676,\n"," 32316,\n"," 2721,\n"," 3473,\n"," 7063,\n"," 3511,\n"," 1121,\n"," 2509,\n"," 4221],\n"," 274: [1192, 2679, 7064, 3415, 3473, 4208, 1121, 2509, 4221, 4418],\n"," 287: [2704,\n"," 26425,\n"," 4135,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 2721,\n"," 31116,\n"," 1444,\n"," 7064],\n"," 292: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 6271, 6918],\n"," 296: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4850, 6271, 6918],\n"," 303: [137,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1871],\n"," 307: [26425,\n"," 2494,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2704,\n"," 31116,\n"," 7064],\n"," 310: [2679, 7064, 2721, 3415, 3473, 4208, 4453, 1121, 2509, 4221],\n"," 315: [2203, 3516, 279, 4914, 1934, 2721, 581, 6122, 1649, 6780],\n"," 320: [2075, 2721, 3415, 146, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 332: [2679,\n"," 6319,\n"," 1934,\n"," 3503,\n"," 32316,\n"," 3415,\n"," 3473,\n"," 2691,\n"," 4783,\n"," 8580],\n"," 339: [3415, 3473, 6023, 6122, 3645, 668, 1572, 4928, 6271, 6918],\n"," 343: [2714,\n"," 1034,\n"," 7064,\n"," 4850,\n"," 2494,\n"," 2704,\n"," 1477,\n"," 26425,\n"," 5893,\n"," 8712],\n"," 355: [1192,\n"," 2679,\n"," 6319,\n"," 7064,\n"," 8199,\n"," 32316,\n"," 3415,\n"," 3473,\n"," 2691,\n"," 1121],\n"," 364: [858, 527, 1046, 1172, 1260, 5017, 2959, 1131, 1132, 2075],\n"," 365: [1192, 3341, 6319, 7064, 3415, 3473, 4453, 2925, 3511, 1121],\n"," 368: [7064, 3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 5101],\n"," 381: [260, 858, 1148, 5952, 28, 111, 232, 242, 306, 326],\n"," 382: [5017, 3516, 2679, 1034, 3918, 615, 4920, 5304, 7064, 1493],\n"," 383: [3473,\n"," 4135,\n"," 137,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 391: [3516, 615, 6319, 7064, 2721, 3415, 1121, 2509, 4221, 4418],\n"," 396: [858, 1564, 28, 47, 912, 1199, 1221, 1260, 2936, 4226],\n"," 398: [3415, 3473, 121, 1121, 2509, 4221, 4418, 4509, 4850, 8195],\n"," 406: [1034, 2721, 99, 3415, 6023, 6122, 4850, 4939, 3645, 668],\n"," 409: [2618,\n"," 2075,\n"," 3516,\n"," 49932,\n"," 4359,\n"," 7327,\n"," 7933,\n"," 8596,\n"," 5034,\n"," 6591],\n"," 410: [5017,\n"," 2679,\n"," 6219,\n"," 2714,\n"," 1684,\n"," 2204,\n"," 3546,\n"," 4920,\n"," 49932,\n"," 6319],\n"," 416: [2931,\n"," 2938,\n"," 4633,\n"," 1192,\n"," 2679,\n"," 2048,\n"," 3341,\n"," 4920,\n"," 5434,\n"," 39419],\n"," 418: [615, 6319, 3415, 146, 6023, 1121, 2509, 4221, 4418, 4509],\n"," 419: [3473,\n"," 2494,\n"," 2911,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 6168,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 421: [408,\n"," 2721,\n"," 3473,\n"," 6122,\n"," 27741,\n"," 2911,\n"," 3694,\n"," 3695,\n"," 27255,\n"," 1477],\n"," 424: [1219, 1221, 2571, 50, 1260, 1131, 2931, 2938, 5122, 1192],\n"," 432: [6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4850],\n"," 434: [137,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 27255,\n"," 2911,\n"," 6319,\n"," 31116,\n"," 1444,\n"," 27648],\n"," 436: [2075, 6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 1572],\n"," 438: [3516, 7064, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509],\n"," 441: [7064, 2721, 99, 3473, 2911, 1477, 3415, 6023, 3645, 1572],\n"," 446: [2075, 6319, 7064, 3415, 146, 1121, 2509, 4221, 4418, 4509],\n"," 452: [615, 1684, 7064, 32316, 2721, 3096, 3384, 3548, 336, 3511],\n"," 460: [326, 1046, 1172, 1264, 50, 1260, 2203, 5017, 2959, 1131],\n"," 463: [3415, 1121, 2509, 4221, 4418, 4509, 3645, 1572, 4928, 6271],\n"," 468: [1871,\n"," 6122,\n"," 1477,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 3823,\n"," 1444,\n"," 3415,\n"," 4928],\n"," 469: [858, 213, 1246, 1252, 1276, 1288, 28, 47, 171, 242],\n"," 472: [5573,\n"," 4276,\n"," 3918,\n"," 3262,\n"," 6319,\n"," 49957,\n"," 2925,\n"," 3511,\n"," 1121,\n"," 2509],\n"," 476: [2075, 2679, 7064, 3415, 3473, 146, 1121, 2509, 4135, 4221],\n"," 480: [26425,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2494,\n"," 31116,\n"," 1444],\n"," 482: [3473,\n"," 2494,\n"," 137,\n"," 27255,\n"," 1477,\n"," 6168,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 493: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4850, 4939],\n"," 496: [3415, 146, 1121, 2509, 4221, 4418, 4509, 6122, 4939, 6271],\n"," 501: [2679, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4850, 6162],\n"," 504: [6319,\n"," 4850,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 26425,\n"," 31116,\n"," 7064,\n"," 1444,\n"," 3415],\n"," 505: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4850, 6241],\n"," 511: [2203, 1658, 5573, 2075, 2931, 2938, 3115, 3516, 1192, 6006],\n"," 516: [50, 2938, 1192, 2679, 680, 7064, 32316, 2721, 2131, 3415],\n"," 525: [6122,\n"," 1477,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 3694,\n"," 3695,\n"," 2721,\n"," 1444,\n"," 3415],\n"," 530: [1034, 615, 3341, 6319, 3415, 3473, 1121, 2509, 4135, 4221],\n"," 531: [3918,\n"," 2721,\n"," 4135,\n"," 6122,\n"," 4850,\n"," 27741,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425],\n"," 533: [2679, 7064, 2721, 3415, 3473, 4453, 146, 1121, 2509, 4221],\n"," 536: [495, 3477, 5255, 6290, 2075, 2938, 40826, 1192, 2679, 1034],\n"," 543: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 5391, 8195],\n"," 547: [5573, 3341, 6319, 7064, 3415, 3473, 3511, 1121, 2509, 4135],\n"," 549: [6319,\n"," 2494,\n"," 2911,\n"," 2704,\n"," 3694,\n"," 3695,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116],\n"," 553: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 4850],\n"," 558: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4939, 3645],\n"," 562: [242, 7193, 7376, 2075, 2931, 2938, 5882, 5122, 6316, 955],\n"," 567: [5255, 4276, 4914, 7064, 7933, 5034, 5899, 1361, 1535, 1121],\n"," 571: [26425,\n"," 1871,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 4850,\n"," 31116,\n"," 1444],\n"," 572: [3473,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 2911,\n"," 2494,\n"," 2704,\n"," 31116],\n"," 577: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6122, 4850, 6271],\n"," 581: [3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 4732,\n"," 5101,\n"," 4939,\n"," 34164],\n"," 585: [3473,\n"," 2911,\n"," 137,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 6168,\n"," 2930,\n"," 26425,\n"," 31116],\n"," 593: [2075, 2679, 6319, 7064, 2721, 1493, 2131, 3224, 3415, 4453],\n"," 604: [26425,\n"," 1477,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 3694,\n"," 3695,\n"," 1621,\n"," 31116,\n"," 1444],\n"," 605: [3473,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 2704,\n"," 1444],\n"," 609: [2075, 2679, 3341, 4920, 49932, 7064, 1493, 4424, 146, 1121],\n"," 628: [2679,\n"," 3546,\n"," 49932,\n"," 1934,\n"," 7064,\n"," 7933,\n"," 32316,\n"," 3473,\n"," 42015,\n"," 4453],\n"," 629: [615, 3341, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n"," 645: [5069,\n"," 5305,\n"," 2704,\n"," 137,\n"," 26425,\n"," 1477,\n"," 1621,\n"," 3473,\n"," 27255,\n"," 3823],\n"," 650: [3516, 2679, 3379, 7064, 3415, 3473, 4208, 4453, 6023, 1121],\n"," 656: [2075,\n"," 2679,\n"," 6319,\n"," 32316,\n"," 1493,\n"," 3415,\n"," 2691,\n"," 2925,\n"," 1121,\n"," 2509],\n"," 657: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6271, 7067, 7749],\n"," 669: [3516,\n"," 2679,\n"," 4920,\n"," 49932,\n"," 3415,\n"," 3473,\n"," 4495,\n"," 1121,\n"," 2509,\n"," 4221],\n"," 678: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4600],\n"," 683: [7064, 8125, 8199, 2131, 3415, 3645, 668, 1572, 4928, 6271],\n"," 688: [3473,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 689: [1172, 5255, 613, 1131, 2938, 955, 1192, 2679, 1147, 1034],\n"," 693: [6319,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 2925,\n"," 6023,\n"," 8580,\n"," 3511,\n"," 1121,\n"," 2509],\n"," 716: [3415,\n"," 3473,\n"," 6271,\n"," 7067,\n"," 7749,\n"," 7759,\n"," 8256,\n"," 8724,\n"," 8785,\n"," 26151],\n"," 720: [2936, 5017, 5438, 6662, 2075, 2931, 3115, 3074, 5007, 7162],\n"," 734: [6319,\n"," 3473,\n"," 4850,\n"," 5069,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 2704],\n"," 735: [6319,\n"," 2494,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 739: [26425,\n"," 3777,\n"," 3804,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2721,\n"," 31116],\n"," 755: [6319,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6023,\n"," 4928],\n"," 758: [1260, 5017, 2931, 2938, 3516, 279, 1192, 2679, 2594, 1646],\n"," 767: [1148, 904, 1234, 1260, 4226, 5017, 2858, 2997, 4011, 1131],\n"," 769: [3341, 7064, 3415, 3473, 6023, 5077, 6122, 8195, 4928, 6271],\n"," 786: [3473,\n"," 2911,\n"," 1871,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 7064],\n"," 789: [6319, 3415, 3473, 6023, 4850, 3645, 4928, 6271, 7067, 7749],\n"," 792: [2704,\n"," 26425,\n"," 2494,\n"," 7064,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 3694,\n"," 3695,\n"," 31116],\n"," 795: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6271, 7067],\n"," 798: [3777, 3804, 137, 2930, 1477, 3473, 27255, 2911, 1444, 3415],\n"," 799: [260, 1192, 2679, 615, 3341, 5434, 49932, 6319, 680, 7013],\n"," 802: [2075, 6319, 2721, 1493, 5899, 8341, 1121, 2509, 4221, 4418],\n"," 806: [6319,\n"," 3473,\n"," 4135,\n"," 4850,\n"," 27741,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 2494],\n"," 807: [260, 1148, 50, 1260, 2203, 3365, 4226, 2858, 2959, 1131],\n"," 816: [5573, 279, 1192, 3918, 615, 6319, 7064, 927, 3415, 190],\n"," 827: [2679, 2721, 715, 1398, 1493, 2691, 8341, 1236, 1442, 1121],\n"," 828: [1046, 678, 6296, 6440, 6695, 1132, 2075, 2931, 2938, 973],\n"," 846: [6319, 3415, 6023, 5077, 6122, 4939, 3645, 4928, 6271, 7067],\n"," 859: [2494,\n"," 2704,\n"," 137,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116],\n"," 862: [6319, 7064, 3473, 5077, 6122, 2488, 4850, 6179, 1859, 6270],\n"," 876: [4276,\n"," 6319,\n"," 1934,\n"," 7064,\n"," 32316,\n"," 2721,\n"," 3473,\n"," 42015,\n"," 4783,\n"," 2483],\n"," 881: [6319, 2721, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4929],\n"," 885: [3415, 6023, 1121, 2509, 4221, 4418, 4509, 4939, 4928, 6271],\n"," 886: [137,\n"," 3777,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444],\n"," 889: [615, 6319, 7064, 3415, 4135, 4939, 3645, 4928, 6271, 7067],\n"," 890: [2721, 3415, 3645, 4928, 6271, 7067, 7749, 7759, 8256, 8724],\n"," 891: [2494,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 896: [137,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 5069,\n"," 31116],\n"," 897: [6319, 7064, 8199, 3415, 3511, 1121, 2509, 4135, 4221, 4418],\n"," 898: [7064, 7933, 32316, 2721, 715, 3415, 1121, 2509, 4221, 4418],\n"," 908: [213, 495, 926, 1172, 904, 1234, 1260, 1348, 2203, 3435],\n"," 922: [1797,\n"," 2679,\n"," 1684,\n"," 1934,\n"," 5304,\n"," 6783,\n"," 7064,\n"," 7933,\n"," 32316,\n"," 2721],\n"," 930: [5573, 1131, 2938, 1192, 103, 2679, 2696, 615, 3546, 4920],\n"," 938: [1260, 2936, 5017, 2075, 1192, 2679, 3341, 4920, 680, 1934],\n"," 956: [26425,\n"," 1477,\n"," 27255,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6023,\n"," 4928,\n"," 6271,\n"," 7067],\n"," 958: [3473,\n"," 2494,\n"," 2911,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 850,\n"," 31116],\n"," 968: [242, 1046, 5017, 6273, 324, 26131, 1131, 1233, 2075, 2931],\n"," 977: [3473,\n"," 2494,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 6122,\n"," 31116],\n"," 990: [26425,\n"," 1477,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 3694,\n"," 3695,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 996: [6319,\n"," 3473,\n"," 4135,\n"," 4850,\n"," 5069,\n"," 34164,\n"," 2704,\n"," 1444,\n"," 137,\n"," 27255],\n"," 1004: [2494,\n"," 3777,\n"," 3804,\n"," 26425,\n"," 2704,\n"," 2930,\n"," 1477,\n"," 27255,\n"," 2911,\n"," 2721],\n"," 1005: [1192,\n"," 2679,\n"," 49932,\n"," 6319,\n"," 1934,\n"," 3415,\n"," 3473,\n"," 6023,\n"," 8580,\n"," 1121],\n"," 1008: [2131,\n"," 3415,\n"," 6023,\n"," 3511,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 6122],\n"," 1029: [6319,\n"," 7064,\n"," 8125,\n"," 8154,\n"," 8199,\n"," 2721,\n"," 1493,\n"," 2131,\n"," 3224,\n"," 3415],\n"," 1037: [1192, 3918, 3341, 7064, 2131, 3415, 4208, 4453, 2691, 121],\n"," 1050: [6319,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 4928,\n"," 6271],\n"," 4: [527, 2203, 5017, 6273, 613, 1131, 1132, 2931, 2938, 3516],\n"," 8: [3415, 1121, 2509, 4221, 4418, 4509, 5101, 4928, 6271, 7067],\n"," 18: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4928, 6271],\n"," 36: [2721, 3415, 3473, 6023, 668, 1572, 4928, 6271, 6918, 7067],\n"," 47: [356, 1148, 28, 306, 326, 527, 912, 926, 1172, 1219],\n"," 59: [1034, 3341, 6319, 7064, 3415, 3645, 6271, 7067, 7749, 7759],\n"," 62: [5017, 1034, 6319, 5304, 7064, 2721, 3415, 3473, 49957, 149],\n"," 77: [6319, 2721, 3415, 3473, 6122, 3645, 4928, 6271, 6918, 7067],\n"," 79: [3415, 3473, 5077, 6122, 4928, 6271, 7067, 7749, 7759, 8256],\n"," 80: [6319, 7064, 8199, 3415, 3473, 6023, 4135, 4850, 3645, 5069],\n"," 119: [2494,\n"," 137,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 2704,\n"," 27255,\n"," 5069,\n"," 2911,\n"," 4850],\n"," 122: [4226, 2931, 2679, 3929, 6319, 680, 7064, 8199, 32316, 2721],\n"," 125: [7064, 3415, 146, 336, 1121, 2509, 4221, 4418, 4509, 5101],\n"," 126: [3473,\n"," 1871,\n"," 137,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 27255,\n"," 2911,\n"," 31116],\n"," 132: [5069,\n"," 2704,\n"," 26425,\n"," 2494,\n"," 4135,\n"," 4850,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 31116],\n"," 141: [3341, 2721, 3415, 3473, 6122, 4850, 3645, 1572, 4928, 6271],\n"," 154: [7064,\n"," 32316,\n"," 3415,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 5101,\n"," 4850],\n"," 155: [1489, 2679, 680, 7064, 8125, 8199, 32316, 2721, 3415, 3473],\n"," 163: [6319,\n"," 4135,\n"," 6122,\n"," 4850,\n"," 2494,\n"," 27255,\n"," 1477,\n"," 2721,\n"," 3823,\n"," 1444],\n"," 164: [2714,\n"," 3932,\n"," 3341,\n"," 4920,\n"," 49932,\n"," 3473,\n"," 2691,\n"," 2102,\n"," 8580,\n"," 3511],\n"," 170: [2494,\n"," 3777,\n"," 3804,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 27255,\n"," 2911,\n"," 7064,\n"," 3694],\n"," 171: [260, 28, 299, 954, 3365, 2618, 4387, 4452, 5110, 6662],\n"," 176: [5017, 2714, 615, 5304, 7064, 8199, 3415, 1236, 4552, 3645],\n"," 190: [2704,\n"," 137,\n"," 26425,\n"," 4850,\n"," 1477,\n"," 27255,\n"," 850,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 197: [3477,\n"," 5438,\n"," 40826,\n"," 7064,\n"," 2721,\n"," 2131,\n"," 3415,\n"," 49957,\n"," 3511,\n"," 1121],\n"," 198: [2931, 2938, 1192, 2679, 680, 7064, 8125, 2721, 2131, 3415],\n"," 199: [5573, 2931, 2938, 3516, 1192, 2679, 2594, 3341, 3831, 4920],\n"," 212: [2911,\n"," 2704,\n"," 1444,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 27648],\n"," 221: [5017,\n"," 3516,\n"," 2679,\n"," 6319,\n"," 7064,\n"," 7933,\n"," 8199,\n"," 32316,\n"," 2920,\n"," 3415],\n"," 223: [260, 858, 213, 1148, 1276, 8533, 28, 30, 47, 242],\n"," 226: [3415, 3473, 1572, 6271, 6918, 7067, 7749, 7759, 8256, 8724],\n"," 241: [3097,\n"," 3307,\n"," 4356,\n"," 3090,\n"," 3857,\n"," 5840,\n"," 2977,\n"," 1477,\n"," 1621,\n"," 26425],\n"," 247: [1148, 30, 495, 1172, 1234, 1260, 3730, 678, 2618, 6695],\n"," 249: [2931, 2938, 5122, 1192, 2679, 3341, 3546, 49932, 6319, 680],\n"," 254: [1046, 3516, 2679, 7064, 2131, 3415, 4208, 4453, 1236, 146],\n"," 264: [6319, 2721, 3415, 212, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 273: [1148, 28, 326, 334, 495, 912, 1046, 1172, 1199, 1221],\n"," 275: [3415, 3473, 6023, 3511, 1121, 2509, 4221, 4418, 4509, 6271],\n"," 276: [26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 7064,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 293: [4978, 5573, 2075, 2931, 2679, 2594, 1646, 615, 3546, 6319],\n"," 294: [2075, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 295: [260, 28, 495, 912, 923, 1172, 1199, 50, 1260, 2203],\n"," 318: [7064, 3415, 3473, 146, 3511, 1121, 2509, 4221, 4418, 4509],\n"," 321: [6319, 7064, 3415, 3473, 1121, 2509, 4135, 4221, 4418, 4509],\n"," 345: [2679, 7064, 2721, 3415, 3473, 146, 1121, 2509, 4135, 4221],\n"," 346: [1132, 973, 2679, 8916, 900, 3932, 4754, 49932, 2726, 5304],\n"," 348: [260, 2075, 2931, 2938, 1192, 2679, 3341, 3546, 49932, 680],\n"," 349: [615, 6319, 7064, 3415, 146, 3511, 1121, 2509, 4221, 4418],\n"," 354: [260, 58, 541, 923, 926, 1172, 1207, 2028, 913, 2936],\n"," 359: [2494,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 1444,\n"," 3415,\n"," 6271,\n"," 7067],\n"," 366: [3516, 2679, 615, 6319, 7064, 7933, 8199, 2721, 581, 3415],\n"," 369: [2704,\n"," 26425,\n"," 2494,\n"," 6122,\n"," 1477,\n"," 6319,\n"," 27255,\n"," 3694,\n"," 3695,\n"," 31116],\n"," 384: [3415, 3473, 1121, 2509, 4135, 4221, 4418, 4509, 4732, 6122],\n"," 390: [1046, 2075, 2679, 6319, 7064, 2721, 581, 2131, 3415, 4208],\n"," 392: [1192, 2679, 6319, 7064, 3415, 3473, 4208, 121, 146, 6023],\n"," 403: [2931, 2938, 3516, 1489, 2679, 7064, 2721, 1493, 2131, 3415],\n"," 407: [1046, 1260, 4226, 44761, 1131, 1132, 2075, 2931, 2938, 318],\n"," 414: [3415, 3473, 6122, 6241, 6271, 7067, 7749, 7759, 8256, 8724],\n"," 431: [260, 1148, 1276, 28, 111, 326, 527, 593, 912, 926],\n"," 454: [3516,\n"," 1192,\n"," 3341,\n"," 4920,\n"," 3503,\n"," 5304,\n"," 7064,\n"," 8125,\n"," 8199,\n"," 32316],\n"," 465: [3415, 1121, 2509, 4221, 4418, 4509, 6271, 7067, 7749, 7759],\n"," 481: [1564, 1219, 1193, 1131, 2931, 2938, 1192, 1489, 2679, 2714],\n"," 485: [2494,\n"," 2911,\n"," 27255,\n"," 3777,\n"," 3804,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 6122,\n"," 31116],\n"," 503: [2679, 615, 6319, 7064, 2721, 2131, 3415, 3473, 4208, 4453],\n"," 513: [3473,\n"," 2911,\n"," 137,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 545: [1046, 2679, 7064, 2721, 3415, 4208, 4424, 4453, 2691, 8341],\n"," 552: [3516, 2721, 3415, 212, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 554: [137, 1871, 2930, 1477, 3473, 27255, 2911, 1444, 3415, 6271],\n"," 555: [7064, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 668, 4928],\n"," 561: [2075, 1489, 2679, 3546, 6319, 5304, 6783, 7064, 8125, 8154],\n"," 565: [4920, 7064, 8199, 3415, 3473, 6023, 1121, 2509, 4221, 4418],\n"," 591: [942, 3917, 2721, 715, 1398, 6591, 190, 2925, 336, 3511],\n"," 617: [3341, 6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 622: [733, 858, 213, 1148, 1246, 1252, 1276, 1288, 1564, 8533],\n"," 623: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 4850],\n"," 633: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 6271, 7067],\n"," 636: [2930,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 3415,\n"," 4928,\n"," 6271],\n"," 638: [2075, 3516, 2679, 7064, 2721, 3415, 3473, 4208, 146, 3511],\n"," 641: [2704,\n"," 26425,\n"," 1477,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 4850,\n"," 2721,\n"," 31116,\n"," 1444],\n"," 646: [3473,\n"," 34164,\n"," 2721,\n"," 6772,\n"," 1444,\n"," 27648,\n"," 5287,\n"," 1149,\n"," 6679,\n"," 4552],\n"," 654: [1034, 615, 6319, 3415, 1121, 2509, 4135, 4221, 4418, 4509],\n"," 655: [2618, 2931, 2679, 2714, 5434, 49932, 6319, 680, 1934, 2935],\n"," 658: [615, 3415, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n"," 660: [7064,\n"," 32316,\n"," 3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 4850,\n"," 3579],\n"," 661: [2679,\n"," 2714,\n"," 6319,\n"," 7064,\n"," 8125,\n"," 8199,\n"," 32316,\n"," 2721,\n"," 3415,\n"," 3473],\n"," 677: [2679, 6319, 1934, 3503, 7064, 32316, 3415, 2691, 121, 2925],\n"," 714: [3516, 2721, 3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509],\n"," 715: [2075, 3516, 3341, 3415, 3473, 6023, 3511, 1121, 2509, 4135],\n"," 723: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4928],\n"," 731: [1172, 50, 2959, 1131, 2075, 2931, 2938, 1192, 2679, 1147],\n"," 742: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 1572, 4928, 6271],\n"," 743: [7064, 3473, 2704, 5840, 137, 27255, 2721, 1444, 5017, 3415],\n"," 752: [2721, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4939, 6162],\n"," 772: [2704,\n"," 137,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444],\n"," 814: [4850,\n"," 2704,\n"," 2930,\n"," 27255,\n"," 2911,\n"," 2425,\n"," 1444,\n"," 3415,\n"," 6023,\n"," 3645],\n"," 823: [2679, 2714, 6319, 7064, 2721, 3415, 3473, 4208, 1121, 2509],\n"," 826: [7064, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 833: [1192, 2679, 3341, 3415, 3473, 4208, 146, 212, 1121, 2509],\n"," 838: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 3645, 6271],\n"," 842: [1260, 2959, 6695, 2852, 2938, 1203, 955, 2679, 6612, 1147],\n"," 852: [2075,\n"," 1192,\n"," 2679,\n"," 1934,\n"," 7064,\n"," 8199,\n"," 32316,\n"," 2721,\n"," 3415,\n"," 4208],\n"," 878: [3415, 3473, 6023, 4850, 6271, 7067, 7749, 7759, 8256, 8724],\n"," 887: [926, 1046, 3365, 1131, 2075, 2931, 2938, 4276, 1192, 2679],\n"," 895: [3341,\n"," 4920,\n"," 7064,\n"," 3473,\n"," 2163,\n"," 1361,\n"," 4850,\n"," 3357,\n"," 6162,\n"," 34164],\n"," 899: [3473,\n"," 6122,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 3694,\n"," 3695,\n"," 31116,\n"," 1444],\n"," 902: [1564, 1212, 1131, 2852, 2931, 2938, 29, 1175, 1192, 2679],\n"," 907: [1046, 1192, 2679, 2696, 3307, 680, 1934, 5304, 6783, 7064],\n"," 928: [3473,\n"," 2911,\n"," 2704,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 936: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 3645, 4928],\n"," 964: [2679, 3546, 6319, 7064, 2721, 3415, 3473, 4208, 4424, 4453],\n"," 970: [1034,\n"," 6319,\n"," 4135,\n"," 4850,\n"," 2494,\n"," 2911,\n"," 2977,\n"," 27255,\n"," 1477,\n"," 1621],\n"," 972: [2075, 2938, 1192, 1489, 2679, 7064, 2721, 3415, 3473, 4208],\n"," 1001: [6319, 7064, 2721, 3415, 3645, 668, 1572, 4928, 6241, 6271],\n"," 1013: [5438, 3341, 6319, 3473, 2925, 212, 1121, 2509, 4221, 4418],\n"," 1018: [3415,\n"," 3473,\n"," 1572,\n"," 4928,\n"," 6271,\n"," 6918,\n"," 7067,\n"," 7749,\n"," 7759,\n"," 8256],\n"," 1028: [1148, 527, 1046, 1096, 1172, 951, 954, 1212, 1260, 2203],\n"," 1031: [260, 326, 1104, 1197, 50, 954, 1212, 1248, 2203, 1611],\n"," 1035: [7064,\n"," 8125,\n"," 8154,\n"," 8199,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 1927,\n"," 6023],\n"," 1038: [1148, 1288, 5952, 150, 242, 299, 326, 527, 912, 926],\n"," 1045: [2679, 7064, 2721, 3415, 3473, 4453, 146, 1121, 2509, 4221],\n"," 1046: [1148, 28, 1260, 2203, 3365, 678, 5573, 2075, 2931, 2938],\n"," 35: [2494,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 72: [28, 26131, 613, 1131, 2075, 2852, 2931, 1192, 1489, 2679],\n"," 91: [3516, 7064, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509],\n"," 106: [7064,\n"," 3473,\n"," 6122,\n"," 6780,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 2925,\n"," 4914,\n"," 8712],\n"," 128: [858, 1148, 1276, 1288, 111, 541, 608, 926, 1172, 1196],\n"," 158: [2075, 2852, 615, 3341, 6319, 7064, 8199, 32316, 2131, 3224],\n"," 160: [2494,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 4850,\n"," 2704,\n"," 31116],\n"," 175: [1564, 28, 232, 326, 926, 1046, 1199, 954, 4327, 6273],\n"," 196: [49932,\n"," 1934,\n"," 7933,\n"," 32316,\n"," 3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509],\n"," 203: [3415, 6023, 8580, 3511, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 206: [1564,\n"," 1199,\n"," 2075,\n"," 2931,\n"," 2938,\n"," 40826,\n"," 3516,\n"," 1192,\n"," 1489,\n"," 2679],\n"," 207: [4850,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6023],\n"," 255: [1264, 4053, 50, 1260, 3365, 6273, 2959, 1131, 2075, 2938],\n"," 265: [2796, 4387, 5438, 506, 1273, 3889, 40826, 1797, 2693, 5954],\n"," 340: [6319,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 4732,\n"," 4939,\n"," 34164,\n"," 2494],\n"," 404: [4850,\n"," 2494,\n"," 2704,\n"," 26425,\n"," 1477,\n"," 6319,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6023],\n"," 433: [6319, 3415, 3473, 6023, 8580, 6122, 8195, 3645, 4928, 6271],\n"," 440: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4929, 4850],\n"," 444: [1131, 2931, 2938, 4633, 3516, 1192, 745, 408, 2679, 1642],\n"," 450: [3415, 3473, 4928, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n"," 479: [3415, 6023, 6122, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n"," 491: [1199,\n"," 2931,\n"," 2679,\n"," 3097,\n"," 3546,\n"," 5434,\n"," 39419,\n"," 49932,\n"," 7064,\n"," 2721],\n"," 506: [3341, 7064, 32316, 2721, 3415, 3473, 4208, 146, 1121, 2509],\n"," 523: [1564, 28, 495, 912, 1046, 1212, 2959, 7193, 44761, 1131],\n"," 539: [6319,\n"," 3473,\n"," 27255,\n"," 26425,\n"," 3694,\n"," 3695,\n"," 34164,\n"," 49957,\n"," 31116,\n"," 1444],\n"," 541: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 4850, 3645],\n"," 616: [1193, 1260, 3365, 1200, 1704, 4878, 1131, 1132, 2075, 2931],\n"," 647: [6319,\n"," 2494,\n"," 2704,\n"," 5840,\n"," 1477,\n"," 26425,\n"," 6122,\n"," 2721,\n"," 8712,\n"," 31116],\n"," 659: [2714, 615, 7064, 3415, 5899, 146, 1121, 2509, 4135, 4221],\n"," 695: [2679, 6319, 1493, 4424, 8580, 1121, 2509, 4221, 4418, 4509],\n"," 700: [2679, 2714, 6319, 7064, 3415, 4453, 121, 1236, 5077, 6122],\n"," 707: [32316,\n"," 3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 4732,\n"," 6162,\n"," 34164],\n"," 748: [3473, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 4850, 6162],\n"," 759: [2704,\n"," 26425,\n"," 137,\n"," 1477,\n"," 6319,\n"," 2911,\n"," 4850,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 784: [3473,\n"," 2494,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 1871,\n"," 31116,\n"," 1444],\n"," 790: [5573, 2931, 2938, 1192, 2679, 1147, 3932, 3379, 6319, 680],\n"," 835: [1192, 2679, 6319, 7064, 3224, 3415, 3473, 4208, 4453, 1236],\n"," 844: [28, 1207, 2028, 942, 1260, 4011, 8968, 1131, 2931, 4276],\n"," 871: [6319, 3415, 3473, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n"," 875: [1260, 5017, 2075, 1192, 2679, 615, 680, 1934, 3503, 6666],\n"," 892: [1192, 2679, 7064, 32316, 2721, 2131, 3415, 4208, 121, 146],\n"," 919: [2931, 1493, 2131, 3415, 42015, 2925, 1176, 336, 8580, 5077],\n"," 935: [5017, 2075, 2852, 680, 5304, 7064, 8199, 2920, 715, 3415],\n"," 942: [2075, 2714, 6319, 7064, 2721, 3415, 3473, 6122, 27592, 668],\n"," 960: [3415, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 6271, 7067],\n"," 1006: [3415, 212, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 4850],\n"," 1026: [2679,\n"," 7064,\n"," 3415,\n"," 3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 5101],\n"," 1047: [3516,\n"," 2679,\n"," 3341,\n"," 7064,\n"," 3415,\n"," 3511,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418],\n"," 65: [1477,\n"," 26425,\n"," 27255,\n"," 2911,\n"," 34164,\n"," 31116,\n"," 1444,\n"," 27648,\n"," 5287,\n"," 1149],\n"," 135: [1046,\n"," 5017,\n"," 2931,\n"," 2938,\n"," 40826,\n"," 1489,\n"," 2679,\n"," 2714,\n"," 49932,\n"," 680],\n"," 152: [2075, 2679, 8916, 680, 7064, 8199, 2721, 2920, 581, 3415],\n"," 166: [5017, 5438, 615, 6319, 7064, 7933, 8199, 3415, 1121, 2509],\n"," 179: [2075,\n"," 2931,\n"," 2938,\n"," 3516,\n"," 1192,\n"," 3341,\n"," 3379,\n"," 49932,\n"," 7064,\n"," 8154],\n"," 188: [6319,\n"," 3473,\n"," 2494,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 26425,\n"," 4850,\n"," 31116,\n"," 1444],\n"," 217: [5438,\n"," 6319,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 3511,\n"," 1121,\n"," 2509,\n"," 4012,\n"," 4135],\n"," 253: [2704,\n"," 3777,\n"," 26425,\n"," 137,\n"," 2930,\n"," 1477,\n"," 27255,\n"," 2721,\n"," 31116,\n"," 1444],\n"," 262: [2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 3645],\n"," 277: [3511, 1121, 2509, 4221, 4418, 4509, 4732, 4929, 5101, 6162],\n"," 289: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6271, 6918, 7067],\n"," 300: [7064,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 6023,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509],\n"," 302: [2679, 7064, 3415, 3473, 4453, 121, 2925, 1121, 2509, 4221],\n"," 308: [1192, 6006, 3341, 4920, 5304, 7064, 7327, 8596, 715, 3415],\n"," 311: [3473,\n"," 4135,\n"," 2704,\n"," 1477,\n"," 26425,\n"," 34164,\n"," 2721,\n"," 31116,\n"," 7297,\n"," 5287],\n"," 328: [356, 110, 858, 1148, 1276, 1288, 5952, 7153, 28, 47],\n"," 329: [3473,\n"," 5069,\n"," 2704,\n"," 26425,\n"," 27255,\n"," 2721,\n"," 31116,\n"," 27741,\n"," 1444,\n"," 3415],\n"," 344: [6219, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 6241],\n"," 347: [3341,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 4732],\n"," 358: [2852, 40826, 2679, 2714, 3546, 680, 6643, 7013, 7064, 7933],\n"," 474: [5017, 26131, 1131, 2931, 2938, 5122, 279, 1489, 2679, 6612],\n"," 483: [213, 1148, 1276, 495, 926, 1046, 2028, 2571, 50, 904],\n"," 509: [260, 1210, 1148, 1276, 1288, 1564, 34, 28, 58, 171],\n"," 578: [6319, 7064, 2721, 3415, 3857, 5077, 8195, 2801, 3645, 1572],\n"," 643: [2721, 3415, 6023, 1121, 2509, 4221, 4418, 4509, 5101, 4850],\n"," 679: [5255, 5573, 2931, 1192, 2679, 615, 6319, 2721, 3415, 49957],\n"," 680: [1234, 3730, 5438, 3429, 1131, 2075, 2931, 2938, 4276, 4633],\n"," 691: [1172, 50, 4226, 4327, 2618, 5438, 7193, 1131, 2931, 2938],\n"," 702: [2618,\n"," 40826,\n"," 2679,\n"," 2696,\n"," 1684,\n"," 3341,\n"," 7064,\n"," 3415,\n"," 3473,\n"," 5899],\n"," 708: [2938, 1192, 2679, 3929, 615, 1684, 5434, 49932, 7013, 7064],\n"," 730: [589, 110, 260, 858, 1148, 1276, 1288, 5952, 28, 47],\n"," 751: [49932, 7064, 99, 3473, 6772, 8477, 570, 6162, 34164, 55814],\n"," 773: [2618, 1934, 7933, 2721, 3473, 1121, 2509, 4135, 4221, 4418],\n"," 803: [3473,\n"," 6122,\n"," 2911,\n"," 137,\n"," 27255,\n"," 3777,\n"," 3804,\n"," 1477,\n"," 2930,\n"," 26425],\n"," 809: [2075, 2931, 2938, 3516, 1192, 2679, 1147, 2696, 5434, 6319],\n"," 820: [7064, 3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 5101],\n"," 824: [3415, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 5069],\n"," 863: [6319, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4850],\n"," 865: [858, 1148, 28, 111, 334, 527, 541, 608, 912, 923],\n"," 867: [3516, 2679, 2721, 3415, 4453, 3078, 3511, 1121, 2509, 4221],\n"," 911: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4850, 6271],\n"," 915: [2075,\n"," 2679,\n"," 49932,\n"," 6319,\n"," 3089,\n"," 5304,\n"," 6783,\n"," 7327,\n"," 7933,\n"," 8042],\n"," 939: [5017, 324, 2931, 2938, 1489, 2679, 5434, 6319, 680, 3503],\n"," 946: [1564, 28, 1234, 1260, 2931, 2938, 4633, 5122, 955, 1192],\n"," 954: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4928, 6271, 7067],\n"," 957: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4850],\n"," 971: [2931, 2938, 4633, 1192, 1489, 2679, 680, 7064, 32316, 2721],\n"," 986: [2075, 1192, 2679, 2714, 615, 6319, 7064, 2721, 1493, 3415],\n"," 992: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4850, 8195],\n"," 92: [326, 1172, 50, 5017, 1131, 1132, 4633, 40826, 3516, 5122],\n"," 107: [2714, 3415, 3473, 6122, 4850, 6271, 7067, 7749, 7759, 8256],\n"," 131: [4135,\n"," 2704,\n"," 26425,\n"," 137,\n"," 6122,\n"," 1477,\n"," 5069,\n"," 27255,\n"," 7064,\n"," 2911],\n"," 138: [3473,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 2911,\n"," 2721,\n"," 31116,\n"," 1444],\n"," 145: [2075, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 4928],\n"," 183: [1564, 326, 926, 50, 1212, 1260, 2203, 3365, 3435, 4327],\n"," 209: [2696, 3341, 7064, 3415, 3473, 3456, 4405, 6271, 6918, 7067],\n"," 230: [356, 1564, 4226, 2931, 2938, 3516, 318, 1192, 2019, 2550],\n"," 263: [1148, 1252, 1276, 1288, 7153, 28, 58, 495, 778, 919],\n"," 305: [2075, 3473, 1121, 2509, 4221, 4418, 4509, 4600, 4732, 4850],\n"," 314: [26425,\n"," 3777,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 319: [2931, 1489, 2679, 7064, 2721, 3415, 2691, 1121, 2509, 4221],\n"," 325: [2075, 2721, 3415, 3473, 5899, 5077, 8195, 3645, 668, 4928],\n"," 341: [1210, 1564, 111, 608, 923, 926, 1199, 1219, 1221, 50],\n"," 471: [1046, 324, 2389, 2618, 5438, 2931, 3516, 408, 6006, 6187],\n"," 488: [4970, 2721, 3415, 2163, 6023, 4850, 3645, 5069, 2932, 4928],\n"," 495: [2203,\n"," 2075,\n"," 1192,\n"," 4808,\n"," 1934,\n"," 7064,\n"," 3470,\n"," 3473,\n"," 6773,\n"," 46530],\n"," 532: [3415, 3473, 6122, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n"," 564: [1073, 213, 1148, 1246, 1288, 1, 28, 232, 299, 326],\n"," 574: [2931, 1192, 2679, 8916, 2696, 680, 4356, 7064, 7933, 2721],\n"," 603: [137, 3777, 3804, 1477, 3473, 27255, 2911, 4846, 1444, 2925],\n"," 674: [40826,\n"," 1489,\n"," 1837,\n"," 2679,\n"," 7064,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 1670],\n"," 753: [1046, 1131, 2075, 2852, 2931, 2938, 4633, 1192, 2679, 2714],\n"," 810: [4135,\n"," 2704,\n"," 26425,\n"," 1046,\n"," 34164,\n"," 31116,\n"," 7297,\n"," 1149,\n"," 4939,\n"," 5255],\n"," 830: [2679, 3341, 6319, 7064, 2721, 3415, 3473, 146, 1121, 2509],\n"," 841: [1046, 50, 2931, 2938, 2679, 2696, 5434, 49932, 680, 7064],\n"," 856: [2075, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 4929],\n"," 921: [110, 5505, 7153, 495, 593, 926, 1046, 2571, 1212, 3730],\n"," 933: [4850,\n"," 2704,\n"," 137,\n"," 26425,\n"," 2930,\n"," 6122,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911],\n"," 976: [3473,\n"," 6122,\n"," 2494,\n"," 2704,\n"," 2977,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 37: [2704, 5840, 26425, 2930, 2314, 1477, 1621, 3473, 7064, 6319],\n"," 83: [3473,\n"," 49957,\n"," 5069,\n"," 2494,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 3823,\n"," 26425],\n"," 248: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 6271, 7067],\n"," 387: [4135,\n"," 4850,\n"," 5069,\n"," 5840,\n"," 26425,\n"," 1477,\n"," 1621,\n"," 27255,\n"," 3097,\n"," 2721],\n"," 428: [3341, 3415, 3473, 6023, 8580, 3511, 1121, 2509, 4221, 4418],\n"," 451: [2704,\n"," 137,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2977,\n"," 31116,\n"," 1444],\n"," 584: [2936, 1658, 7376, 1131, 1132, 1296, 2852, 29, 3516, 279],\n"," 874: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 5391],\n"," 995: [2704,\n"," 4135,\n"," 4850,\n"," 5305,\n"," 5069,\n"," 6122,\n"," 3473,\n"," 27255,\n"," 2425,\n"," 3415],\n"," 10: [324, 5438, 3516, 2679, 3918, 49932, 7064, 3415, 3473, 4208],\n"," 19: [3516, 2679, 1493, 3473, 49957, 1121, 2509, 4135, 4221, 4418],\n"," 41: [3415, 3473, 49957, 6023, 3645, 4405, 4928, 6271, 7067, 7749],\n"," 43: [242, 954, 4226, 324, 6296, 1131, 2931, 2938, 2413, 2908],\n"," 44: [260, 858, 1073, 1148, 1252, 5952, 7153, 28, 32, 47],\n"," 45: [2721, 3473, 5899, 42015, 1184, 1236, 4079, 5077, 6122, 4939],\n"," 51: [1148, 1564, 28, 47, 326, 1046, 1080, 1199, 1206, 1207],\n"," 56: [1148, 1276, 1564, 28, 47, 232, 326, 1046, 1172, 1199],\n"," 61: [28, 242, 4327, 5017, 324, 4978, 5438, 26131, 2931, 2938],\n"," 68: [2075, 8916, 4208, 5899, 4453, 2691, 1472, 149, 206, 1236],\n"," 69: [4920, 3415, 3473, 49957, 3511, 1121, 2271, 2509, 4135, 4221],\n"," 78: [1564, 495, 593, 1046, 50, 1260, 3365, 3879, 1131, 2075],\n"," 110: [1248, 1260, 2203, 4105, 1056, 2075, 2459, 7162, 955, 1192],\n"," 115: [1046,\n"," 2931,\n"," 3516,\n"," 5007,\n"," 2679,\n"," 3546,\n"," 4920,\n"," 7064,\n"," 32316,\n"," 3415],\n"," 129: [5017, 2931, 4633, 40826, 1489, 2550, 3341, 680, 7064, 7327],\n"," 150: [28, 326, 926, 1046, 1264, 50, 1260, 324, 3477, 4978],\n"," 168: [1260, 26131, 2679, 4914, 680, 1934, 2726, 3134, 3503, 5304],\n"," 169: [2075,\n"," 2931,\n"," 1489,\n"," 3341,\n"," 4920,\n"," 49932,\n"," 1934,\n"," 3503,\n"," 7064,\n"," 32316],\n"," 178: [495, 5438, 3516, 1192, 2679, 41571, 1646, 1684, 3307, 6319],\n"," 186: [858, 28, 923, 926, 1046, 1199, 1258, 1196, 2936, 3365],\n"," 201: [3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 6122,\n"," 4850,\n"," 34164,\n"," 2911],\n"," 239: [1046, 5017, 2618, 680, 3134, 3503, 5304, 6783, 7064, 7933],\n"," 256: [1260, 5017, 1131, 2931, 4276, 4633, 932, 3929, 615, 4914],\n"," 257: [1564, 8533, 4226, 2618, 4251, 5673, 6695, 7376, 8641, 8968],\n"," 272: [3473,\n"," 2911,\n"," 27255,\n"," 3777,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 279: [4633,\n"," 1489,\n"," 2679,\n"," 2714,\n"," 2731,\n"," 7064,\n"," 32316,\n"," 2721,\n"," 2131,\n"," 3415],\n"," 280: [171, 1046, 1855, 6966, 2075, 3516, 4033, 1192, 3896, 4047],\n"," 285: [1148, 1564, 923, 1046, 904, 1260, 3365, 4226, 324, 1208],\n"," 298: [5017, 3918, 7064, 2131, 3415, 5899, 4939, 6271, 7067, 7749],\n"," 301: [5952, 28, 111, 903, 926, 969, 1046, 1080, 1207, 1219],\n"," 304: [6219, 2714, 3341, 4920, 7064, 7933, 3473, 6122, 4846, 6722],\n"," 333: [3467, 2060, 1797, 2679, 5893, 937, 1684, 45950, 680, 2935],\n"," 334: [137,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6271,\n"," 7067],\n"," 338: [2721, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4600],\n"," 350: [2931,\n"," 4633,\n"," 1192,\n"," 1489,\n"," 2679,\n"," 3929,\n"," 39419,\n"," 680,\n"," 7064,\n"," 32316],\n"," 353: [26425,\n"," 2494,\n"," 137,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444],\n"," 378: [1564, 2931, 2938, 4633, 3516, 1192, 2550, 1034, 3929, 2696],\n"," 386: [2931,\n"," 2938,\n"," 40826,\n"," 2679,\n"," 8916,\n"," 1034,\n"," 3546,\n"," 5434,\n"," 8132,\n"," 49932],\n"," 397: [1260, 2075, 2931, 2679, 615, 4920, 5434, 680, 7064, 32316],\n"," 420: [2931, 1489, 2048, 2714, 2696, 615, 3097, 7064, 1398, 2131],\n"," 439: [3341, 2721, 3415, 3473, 2691, 8341, 1121, 2509, 4221, 4418],\n"," 449: [2679, 615, 3341, 4920, 2131, 3415, 4453, 146, 1788, 8580],\n"," 478: [26425,\n"," 4135,\n"," 1034,\n"," 1477,\n"," 2911,\n"," 2721,\n"," 31116,\n"," 3415,\n"," 6023,\n"," 3645],\n"," 487: [1046, 1034, 7064, 2721, 3415, 6023, 1121, 2509, 4135, 4221],\n"," 489: [213, 1564, 5952, 7153, 593, 912, 926, 1046, 1304, 2028],\n"," 500: [2931,\n"," 2938,\n"," 1192,\n"," 1489,\n"," 2550,\n"," 32316,\n"," 2721,\n"," 3415,\n"," 4208,\n"," 7063],\n"," 510: [3516, 1192, 2679, 615, 4920, 1934, 32316, 927, 3415, 8341],\n"," 521: [321, 1172, 2028, 2959, 26131, 1131, 1132, 2075, 4276, 3516],\n"," 522: [6319,\n"," 3473,\n"," 6122,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 527: [589, 110, 260, 5505, 8533, 47, 242, 249, 912, 919],\n"," 529: [5069,\n"," 1871,\n"," 1477,\n"," 34164,\n"," 1444,\n"," 27648,\n"," 5287,\n"," 4939,\n"," 3511,\n"," 1121],\n"," 535: [2618,\n"," 2931,\n"," 2938,\n"," 4633,\n"," 40826,\n"," 1192,\n"," 1489,\n"," 2550,\n"," 2679,\n"," 2048],\n"," 550: [1564, 495, 328, 4878, 1131, 1132, 2931, 2938, 40826, 3516],\n"," 560: [1046,\n"," 6273,\n"," 3429,\n"," 26131,\n"," 2075,\n"," 2852,\n"," 1837,\n"," 2679,\n"," 4047,\n"," 4103],\n"," 573: [3473,\n"," 49957,\n"," 3694,\n"," 3695,\n"," 1444,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116],\n"," 579: [2494,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 6319],\n"," 582: [324, 5573, 2075, 2931, 2938, 3634, 1192, 103, 1147, 3929],\n"," 583: [213, 242, 1046, 50, 951, 1260, 3365, 4432, 6273, 799],\n"," 587: [6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n"," 596: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 6122, 4850],\n"," 602: [1046,\n"," 2618,\n"," 2931,\n"," 1489,\n"," 2679,\n"," 7064,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 4453],\n"," 618: [1489, 2679, 4920, 7064, 2721, 3415, 4453, 1121, 2509, 4221],\n"," 624: [1221, 3365, 5017, 6273, 2959, 44761, 1056, 1131, 2075, 750],\n"," 627: [3415, 3473, 8341, 146, 1121, 2509, 4221, 4418, 4509, 4850],\n"," 635: [5952, 28, 32, 47, 912, 926, 1046, 1221, 1198, 2028],\n"," 639: [321, 541, 50, 1260, 26131, 2931, 2938, 1192, 2019, 2550],\n"," 640: [495, 912, 1221, 50, 800, 2203, 4011, 7193, 1131, 1132],\n"," 642: [1046,\n"," 2931,\n"," 1192,\n"," 2679,\n"," 3379,\n"," 5434,\n"," 49932,\n"," 7064,\n"," 8199,\n"," 8228],\n"," 649: [4327, 5152, 26131, 506, 2931, 2938, 1192, 2679, 2594, 937],\n"," 652: [242, 321, 324, 5438, 2931, 4920, 680, 7013, 2721, 2043],\n"," 662: [2075, 1489, 3932, 7064, 2721, 3415, 4453, 6023, 2483, 5077],\n"," 671: [49932,\n"," 3415,\n"," 3473,\n"," 49957,\n"," 4850,\n"," 1870,\n"," 5069,\n"," 6271,\n"," 7067,\n"," 7749],\n"," 675: [2679, 6319, 2721, 715, 1493, 2043, 2925, 1121, 2509, 4135],\n"," 684: [6319,\n"," 2721,\n"," 6122,\n"," 6162,\n"," 55814,\n"," 2833,\n"," 1859,\n"," 6270,\n"," 3694,\n"," 3695],\n"," 703: [1046, 40826, 1192, 3896, 2679, 1646, 615, 5135, 4356, 7013],\n"," 712: [1046, 324, 2938, 4633, 1192, 1489, 2679, 3918, 49932, 7013],\n"," 726: [1564, 28, 1046, 1221, 2571, 50, 4226, 5017, 5152, 1131],\n"," 727: [6319, 7064, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 6162],\n"," 744: [260, 1148, 28, 30, 232, 242, 326, 1172, 1196, 1629],\n"," 746: [7064, 2721, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509],\n"," 761: [6319, 3473, 137, 220, 3777, 3002, 6168, 2911, 850, 3823],\n"," 765: [50, 3516, 2679, 3546, 7064, 2721, 3415, 3473, 4208, 4453],\n"," 766: [5438, 3473, 1121, 2509, 4221, 4418, 4509, 4600, 4678, 4732],\n"," 771: [932, 3918, 7933, 8596, 1161, 5288, 6791, 2163, 206, 1535],\n"," 776: [1148, 7153, 28, 495, 926, 1260, 2997, 6695, 7376, 8968],\n"," 797: [3516,\n"," 1034,\n"," 7064,\n"," 32316,\n"," 3415,\n"," 1161,\n"," 1472,\n"," 3511,\n"," 1121,\n"," 2271],\n"," 812: [3516, 615, 49932, 3415, 6023, 1121, 2271, 2509, 4221, 4418],\n"," 815: [3467, 5017, 6273, 2959, 2931, 2938, 3516, 318, 1192, 2679],\n"," 818: [1564, 926, 1260, 3365, 6273, 36, 324, 44761, 1131, 2075],\n"," 821: [1348, 4327, 678, 741, 1658, 2389, 5110, 26131, 2938, 4633],\n"," 822: [3932, 3415, 3473, 2691, 6023, 8580, 1121, 2509, 4221, 4418],\n"," 831: [28, 242, 2203, 3365, 4432, 324, 5152, 5438, 1131, 2075],\n"," 834: [3516, 4920, 3415, 4453, 121, 3078, 3511, 1121, 2509, 4221],\n"," 837: [3473, 2494, 2911, 137, 27255, 3777, 1477, 2930, 4135, 3804],\n"," 839: [3516, 2714, 7064, 3415, 1121, 2509, 4135, 4221, 4418, 4509],\n"," 840: [2679, 2721, 3415, 3473, 4453, 6023, 1121, 2509, 4221, 4418],\n"," 851: [1288,\n"," 1564,\n"," 1131,\n"," 1132,\n"," 1233,\n"," 2075,\n"," 2931,\n"," 2938,\n"," 40826,\n"," 5122],\n"," 855: [2075, 2938, 2679, 615, 1934, 7064, 32316, 927, 2721, 2920],\n"," 857: [1148, 334, 527, 5255, 3516, 3811, 1192, 932, 2679, 3000],\n"," 868: [1046, 50, 2075, 2931, 2938, 4633, 1192, 1489, 2679, 3918],\n"," 904: [3415, 3473, 6023, 6122, 4850, 4928, 6271, 6918, 7067, 7749],\n"," 905: [2679,\n"," 1934,\n"," 7013,\n"," 7064,\n"," 7933,\n"," 3473,\n"," 49957,\n"," 2691,\n"," 2905,\n"," 3511],\n"," 906: [1046, 2931, 2679, 3415, 3473, 4208, 5899, 146, 6023, 1121],\n"," 924: [324, 5110, 5255, 5438, 2938, 4633, 1797, 47099, 7013, 4208],\n"," 925: [3473,\n"," 2911,\n"," 2704,\n"," 3694,\n"," 3695,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425],\n"," 927: [1273, 1192, 1279, 2714, 1646, 3341, 2372, 5304, 7064, 7065],\n"," 940: [1148, 1564, 527, 926, 1172, 1225, 3365, 4226, 4327, 1204],\n"," 948: [1564, 1260, 2959, 1131, 2938, 4633, 3516, 2679, 2714, 1147],\n"," 953: [858, 1148, 5952, 28, 47, 171, 242, 527, 608, 912],\n"," 966: [3473,\n"," 2911,\n"," 2704,\n"," 1444,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116],\n"," 967: [2494, 137, 2930, 1477, 3473, 27255, 2911, 1444, 3415, 3645],\n"," 979: [2075, 7064, 2721, 3415, 336, 3511, 1121, 2509, 4221, 4418],\n"," 980: [7064, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 983: [26425,\n"," 3002,\n"," 6168,\n"," 137,\n"," 5069,\n"," 1477,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 2911],\n"," 984: [2721,\n"," 4850,\n"," 34164,\n"," 2494,\n"," 5305,\n"," 850,\n"," 2704,\n"," 1444,\n"," 27648,\n"," 1477],\n"," 991: [7064,\n"," 3694,\n"," 3695,\n"," 1444,\n"," 3823,\n"," 7297,\n"," 27648,\n"," 1149,\n"," 4442,\n"," 5034],\n"," 1009: [4850,\n"," 26425,\n"," 5840,\n"," 1477,\n"," 1621,\n"," 1870,\n"," 2425,\n"," 5069,\n"," 8712,\n"," 31116],\n"," 1011: [3473,\n"," 2911,\n"," 27255,\n"," 26425,\n"," 3694,\n"," 3695,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 1572],\n"," 1014: [242, 912, 926, 1260, 3730, 4432, 6273, 290, 324, 5152],\n"," 1021: [3415,\n"," 49957,\n"," 6023,\n"," 3511,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 5101],\n"," 1030: [242, 1046, 1260, 324, 2931, 2938, 4633, 40826, 5122, 1192],\n"," 1033: [3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 5101,\n"," 4850,\n"," 4939,\n"," 6162],\n"," 1039: [1192, 2714, 7064, 2721, 3415, 3473, 336, 6023, 3857, 603],\n"," 1040: [6319,\n"," 3473,\n"," 49957,\n"," 4135,\n"," 1241,\n"," 4850,\n"," 2494,\n"," 2930,\n"," 26425,\n"," 31116],\n"," 1053: [858, 28, 326, 1131, 1132, 2931, 5122, 318, 1192, 932],\n"," 704: [7153, 527, 1046, 5017, 1131, 2931, 2938, 5122, 1192, 2679],\n"," 934: [2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 26425,\n"," 2494,\n"," 2721,\n"," 31116,\n"," 3415],\n"," 42: [40826,\n"," 1192,\n"," 7327,\n"," 2721,\n"," 3224,\n"," 3415,\n"," 3473,\n"," 42015,\n"," 3078,\n"," 3511],\n"," 73: [408, 2679, 6319, 3415, 3473, 5288, 4453, 6023, 1121, 2509],\n"," 82: [1241, 2494, 2911, 27255, 1477, 1621, 1444, 5287, 3511, 1121],\n"," 159: [4850, 2704, 2911, 1444, 7064, 3415, 6023, 3645, 1572, 6271],\n"," 161: [2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 4939],\n"," 192: [3415, 1121, 2509, 4221, 4418, 4509, 6271, 6918, 7067, 7749],\n"," 216: [1564, 527, 2028, 324, 5573, 6695, 1131, 2931, 2938, 3516],\n"," 219: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6122, 4939, 3645],\n"," 290: [3341,\n"," 4920,\n"," 32316,\n"," 3473,\n"," 8580,\n"," 1121,\n"," 2509,\n"," 4135,\n"," 4221,\n"," 4418],\n"," 379: [1046, 2075, 2938, 3516, 1192, 1489, 2726, 7064, 2721, 99],\n"," 389: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 3645, 668, 1572],\n"," 400: [6319,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 27648,\n"," 5287],\n"," 462: [2075, 2931, 2938, 1489, 2679, 615, 49932, 6319, 680, 1281],\n"," 507: [1148,\n"," 1260,\n"," 3365,\n"," 5017,\n"," 44761,\n"," 2931,\n"," 2938,\n"," 4633,\n"," 5007,\n"," 1192],\n"," 600: [2494,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 721: [2203, 2936, 324, 5438, 6296, 6662, 44761, 1131, 1132, 2075],\n"," 793: [2075, 2852, 3516, 1489, 2679, 3341, 680, 7064, 7327, 32316],\n"," 912: [5017,\n"," 2679,\n"," 49932,\n"," 7064,\n"," 7933,\n"," 32316,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 3700],\n"," 932: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 949: [5069,\n"," 26425,\n"," 137,\n"," 1871,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 31116],\n"," 1025: [2679,\n"," 7064,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 4453,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418],\n"," 46: [1121, 2509, 4135, 4221, 4418, 4509, 4732, 4929, 5101, 5245],\n"," 74: [5110, 1934, 7933, 32316, 3473, 2357, 3007, 5077, 6722, 4939],\n"," 342: [260, 912, 926, 50, 4226, 4432, 678, 7193, 44761, 2931],\n"," 508: [2721, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 580: [5573,\n"," 4356,\n"," 7933,\n"," 5899,\n"," 4616,\n"," 3480,\n"," 4939,\n"," 1444,\n"," 4307,\n"," 57243],\n"," 774: [110, 260, 5952, 28, 527, 593, 1046, 1219, 2571, 2936],\n"," 783: [2704,\n"," 137,\n"," 26425,\n"," 2930,\n"," 27255,\n"," 31116,\n"," 1444,\n"," 7297,\n"," 1149,\n"," 3511],\n"," 1002: [4327, 1658, 1753, 40826, 2728, 69, 517, 1209, 2898, 2714],\n"," 1023: [1046, 1131, 2931, 2938, 4633, 3516, 1837, 2679, 6219, 615],\n"," 1048: [3516,\n"," 2679,\n"," 7064,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 5899,\n"," 6023,\n"," 4135,\n"," 5077],\n"," 23: [1148,\n"," 1046,\n"," 1260,\n"," 44761,\n"," 1131,\n"," 2938,\n"," 3516,\n"," 1192,\n"," 2679,\n"," 47099],\n"," 96: [7064, 3473, 49957, 1121, 2509, 4221, 4418, 4509, 4850, 4939],\n"," 124: [6219, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 3645],\n"," 136: [2075, 40826, 2679, 3415, 3473, 8341, 146, 336, 8580, 1121],\n"," 148: [1564, 912, 923, 1172, 1212, 1234, 1260, 4226, 5017, 324],\n"," 189: [5017, 2938, 4633, 1192, 2679, 2677, 2708, 49932, 6319, 680],\n"," 213: [4276, 4920, 7064, 121, 2925, 4495, 1121, 2509, 4221, 4418],\n"," 243: [3473,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 2930,\n"," 26425,\n"," 3694,\n"," 3695,\n"," 2721,\n"," 31116],\n"," 323: [2679, 6219, 49932, 3415, 4208, 4453, 146, 212, 8580, 3078],\n"," 352: [1148, 242, 249, 299, 923, 1207, 1225, 2203, 2936, 3730],\n"," 429: [7064, 2721, 2131, 3415, 146, 336, 603, 1121, 2509, 4135],\n"," 625: [1046, 6296, 1131, 1132, 1570, 4703, 808, 2679, 7318, 2810],\n"," 808: [3365, 5017, 6273, 324, 2796, 5255, 5283, 4276, 40826, 40],\n"," 843: [3516, 3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 5101],\n"," 847: [28, 308, 326, 926, 942, 1260, 2075, 5882, 3516, 1192],\n"," 963: [5017, 6273, 26131, 408, 1966, 5304, 6783, 7064, 7327, 8125],\n"," 975: [2704,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 3694,\n"," 3695,\n"," 1444,\n"," 3415,\n"," 3645,\n"," 4928],\n"," 998: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n"," 75: [3473, 5899, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 2494],\n"," 427: [1192, 1646, 7064, 5899, 336, 2483, 1121, 2509, 4135, 4221],\n"," 466: [2131, 3415, 4850, 5069, 6271, 7067, 7749, 7759, 8256, 8724],\n"," 801: [2679, 4920, 7064, 3415, 3473, 5899, 1121, 2509, 4135, 4221],\n"," 848: [110, 260, 858, 1210, 1148, 1252, 1288, 8533, 28, 58],\n"," 888: [2721, 3415, 3473, 4850, 4939, 3645, 1572, 6271, 6918, 7067],\n"," 191: [4850,\n"," 2704,\n"," 26425,\n"," 5840,\n"," 1477,\n"," 2977,\n"," 4356,\n"," 31116,\n"," 2488,\n"," 1444],\n"," 227: [5017,\n"," 2075,\n"," 2731,\n"," 5304,\n"," 6783,\n"," 7064,\n"," 7933,\n"," 8154,\n"," 32316,\n"," 3415],\n"," 245: [242, 527, 926, 1046, 4053, 904, 1260, 324, 678, 2959],\n"," 380: [3473, 2925, 1361, 8580, 4135, 5077, 6122, 4939, 5069, 6162],\n"," 408: [2494,\n"," 2704,\n"," 26425,\n"," 6122,\n"," 3694,\n"," 3695,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 8195],\n"," 668: [3415, 3473, 2425, 3645, 4928, 6271, 7067, 7749, 7759, 8256],\n"," 747: [2704,\n"," 26425,\n"," 1734,\n"," 3473,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 8195,\n"," 3645,\n"," 668],\n"," 754: [2721, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 4939, 1572],\n"," 11: [28, 527, 608, 1046, 1172, 1193, 50, 1260, 3365, 4432],\n"," 16: [4633, 3516, 1837, 2679, 2714, 2696, 3341, 7064, 581, 3415],\n"," 81: [3516, 1192, 2679, 2714, 680, 7064, 8125, 8199, 32316, 2721],\n"," 86: [260, 1564, 4993, 2931, 2938, 3516, 5122, 2679, 2714, 8916],\n"," 97: [593, 2203, 324, 5110, 6695, 7360, 2075, 2931, 2938, 4633],\n"," 151: [1489,\n"," 2679,\n"," 32316,\n"," 3415,\n"," 4208,\n"," 4453,\n"," 1236,\n"," 6023,\n"," 8580,\n"," 1121],\n"," 235: [1564, 5952, 28, 1046, 3477, 7193, 1131, 2852, 2931, 2938],\n"," 251: [2704,\n"," 137,\n"," 26425,\n"," 2494,\n"," 1477,\n"," 3473,\n"," 6319,\n"," 27255,\n"," 2911,\n"," 31116],\n"," 258: [495, 593, 926, 1172, 913, 1260, 2936, 4432, 324, 5152],\n"," 278: [26425,\n"," 3694,\n"," 3695,\n"," 34164,\n"," 3794,\n"," 8712,\n"," 31116,\n"," 5287,\n"," 250,\n"," 1646],\n"," 388: [1046, 3516, 1192, 2679, 3097, 3341, 5434, 49932, 680, 7064],\n"," 551: [5255, 2679, 4914, 7013, 7933, 3473, 1904, 2691, 7044, 4783],\n"," 606: [7064, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n"," 614: [527, 1260, 4432, 324, 44761, 1131, 2931, 2938, 3516, 318],\n"," 681: [324, 2075, 1753, 3918, 7064, 2721, 3415, 6591, 55247, 7063],\n"," 686: [3516, 2679, 2721, 3415, 3473, 4208, 4453, 2483, 3078, 3511],\n"," 711: [3473,\n"," 2704,\n"," 3694,\n"," 3695,\n"," 27255,\n"," 26425,\n"," 31116,\n"," 1046,\n"," 1444,\n"," 3415],\n"," 718: [2494,\n"," 2704,\n"," 1477,\n"," 1621,\n"," 27255,\n"," 3694,\n"," 3695,\n"," 2721,\n"," 1444,\n"," 3415],\n"," 873: [858, 1148, 1564, 527, 912, 919, 923, 926, 1207, 951],\n"," 962: [28, 1046, 4251, 6695, 2852, 2931, 3061, 2550, 2594, 4951],\n"," 985: [1046, 1489, 3473, 4453, 2691, 8341, 3515, 5077, 4939, 5417],\n"," 993: [1172, 2203, 5017, 2959, 1131, 2075, 2931, 1203, 3516, 955],\n"," 184: [1192, 3415, 3473, 3090, 121, 212, 1788, 1121, 2509, 4221],\n"," 246: [2494,\n"," 2704,\n"," 137,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 2911,\n"," 7064,\n"," 31116],\n"," 373: [26425,\n"," 6122,\n"," 45728,\n"," 3473,\n"," 3694,\n"," 3695,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6023],\n"," 430: [2931, 4276, 40, 2679, 2399, 2721, 3473, 48738, 49957, 1366],\n"," 534: [1034, 2988, 212, 1121, 2271, 2509, 4221, 4418, 4509, 4732],\n"," 805: [858, 28, 326, 50, 3365, 5017, 2997, 26131, 1131, 1132],\n"," 58: [28, 6273, 1136, 2618, 5438, 26131, 2931, 2938, 40826, 3516],\n"," 112: [3473,\n"," 2911,\n"," 137,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 2704,\n"," 49957,\n"," 31116],\n"," 367: [2959, 4251, 613, 2075, 2931, 973, 4633, 1489, 2679, 47099],\n"," 548: [1148, 1252, 7153, 150, 28, 47, 242, 527, 541, 593],\n"," 791: [5017, 324, 2931, 318, 2550, 8916, 47099, 47970, 2696, 680],\n"," 909: [7064, 2721, 2131, 3415, 5899, 6023, 2483, 1121, 2509, 4221],\n"," 1041: [6319,\n"," 3415,\n"," 3473,\n"," 6023,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 5101],\n"," 13: [3473,\n"," 2494,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 2977,\n"," 1444,\n"," 3415],\n"," 869: [7064, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4850],\n"," 415: [2075, 2696, 615, 3097, 7064, 2721, 1398, 2131, 3415, 4453],\n"," 477: [28, 904, 2931, 2938, 3516, 279, 955, 1192, 2679, 1147],\n"," 569: [2075, 2931, 4276, 5882, 1489, 2679, 2714, 6319, 7013, 7064],\n"," 694: [213, 1564, 1629, 2203, 324, 4251, 5283, 1131, 2852, 2931],\n"," 729: [7064,\n"," 2721,\n"," 3473,\n"," 49957,\n"," 2925,\n"," 27592,\n"," 8477,\n"," 668,\n"," 6162,\n"," 6918],\n"," 741: [1046, 1131, 1273, 2852, 2938, 3516, 1192, 2679, 1646, 4920],\n"," 965: [615, 7064, 2721, 3415, 5077, 6122, 6271, 7067, 7749, 7759],\n"," 17: [5438, 2931, 4633, 1192, 1489, 2679, 5304, 6783, 7064, 2721],\n"," 40: [2075, 2931, 40826, 1489, 2679, 2696, 3341, 680, 7064, 8125],\n"," 114: [2931, 2679, 3415, 3473, 7063, 1236, 1121, 2509, 4221, 4418],\n"," 137: [2704,\n"," 137,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 2494,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 4850],\n"," 153: [1192, 1489, 2714, 8916, 2131, 3415, 1904, 4453, 121, 1236],\n"," 211: [1148, 1288, 1564, 5952, 28, 527, 923, 926, 1172, 1199],\n"," 286: [1131, 2679, 5434, 6319, 680, 2726, 6643, 7013, 7064, 7933],\n"," 330: [1096, 7376, 1131, 1132, 2931, 2938, 3634, 955, 1192, 1837],\n"," 336: [2075,\n"," 7064,\n"," 7933,\n"," 32316,\n"," 2721,\n"," 2131,\n"," 3415,\n"," 6023,\n"," 1121,\n"," 2509],\n"," 372: [7193, 2075, 2931, 2938, 40826, 1192, 2679, 1178, 680, 2721],\n"," 376: [1046, 1489, 2550, 2679, 8916, 32316, 2721, 99, 3415, 3473],\n"," 412: [2704,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 6122,\n"," 850,\n"," 5069],\n"," 447: [1489, 2679, 2714, 7064, 7933, 2721, 3415, 3473, 603, 1121],\n"," 467: [28, 171, 926, 1046, 2571, 951, 1248, 6273, 2618, 7827],\n"," 490: [1192, 2679, 680, 3415, 3473, 1161, 1189, 5288, 4453, 190],\n"," 518: [1564, 28, 1046, 1172, 50, 1260, 5017, 2618, 26131, 1131],\n"," 608: [2704,\n"," 220,\n"," 3777,\n"," 3804,\n"," 26425,\n"," 7064,\n"," 3473,\n"," 2721,\n"," 31116,\n"," 1444],\n"," 619: [5505, 28, 171, 527, 541, 926, 1235, 800, 4327, 4432],\n"," 644: [356, 362, 364, 588, 594, 616, 590, 648, 733, 780],\n"," 667: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 3645, 1572, 6271],\n"," 698: [1564, 926, 1260, 3477, 3879, 1131, 1132, 1213, 2075, 2852],\n"," 709: [1046, 2931, 2938, 4633, 5122, 1192, 2550, 2679, 2048, 3097],\n"," 728: [110, 326, 593, 50, 1260, 3365, 4226, 6273, 4251, 6695],\n"," 733: [1046,\n"," 1535,\n"," 2425,\n"," 5069,\n"," 34164,\n"," 2494,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 2721],\n"," 777: [324, 3516, 2721, 3415, 3473, 5077, 6122, 6722, 6772, 3579],\n"," 813: [2679, 615, 7064, 2721, 581, 3415, 3473, 4208, 49957, 4453],\n"," 832: [213, 1564, 912, 923, 926, 1219, 1221, 1258, 904, 6273],\n"," 893: [2938,\n"," 2679,\n"," 615,\n"," 5434,\n"," 49932,\n"," 1281,\n"," 7064,\n"," 7933,\n"," 32316,\n"," 2721],\n"," 901: [260, 1210, 1148, 1252, 1288, 5952, 28, 47, 111, 232],\n"," 937: [2679, 3473, 3511, 603, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 947: [7064,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 1621,\n"," 27255,\n"," 2911,\n"," 8712,\n"," 31116,\n"," 1444],\n"," 362: [2494,\n"," 3777,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 3694,\n"," 3695,\n"," 31116,\n"," 1444],\n"," 375: [2931, 1489, 2048, 5159, 680, 7064, 7065, 7327, 2043, 2131],\n"," 599: [242, 2075, 2679, 32316, 2721, 3473, 2691, 3078, 5077, 4939],\n"," 632: [1192, 2679, 3415, 1121, 2509, 4221, 4418, 4509, 4929, 4850],\n"," 779: [2704,\n"," 26425,\n"," 2494,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 850,\n"," 2721,\n"," 31116,\n"," 1444],\n"," 1022: [2931,\n"," 3516,\n"," 1192,\n"," 1489,\n"," 7064,\n"," 32316,\n"," 3473,\n"," 4208,\n"," 4453,\n"," 2691],\n"," 1034: [6319,\n"," 3473,\n"," 850,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 2494,\n"," 5287],\n"," 819: [213, 2704, 220, 3777, 3804, 2419, 6219, 1734, 3473, 6122],\n"," 2: [3473, 4135, 4850, 2425, 2704, 137, 27255, 26425, 8712, 31116],\n"," 3: [242, 321, 326, 926, 1172, 1212, 1248, 1260, 4432, 6273],\n"," 104: [356, 589, 1073, 1210, 1356, 1148, 1288, 4995, 5952, 7153],\n"," 105: [2796, 680, 7064, 715, 2131, 3224, 3415, 603, 1121, 2509],\n"," 218: [260, 858, 1148, 1288, 1564, 28, 495, 926, 1172, 1199],\n"," 250: [50, 4226, 6695, 7193, 2075, 1192, 2594, 4951, 1034, 615],\n"," 313: [242, 321, 324, 973, 3516, 32316, 3473, 1236, 8580, 6122],\n"," 377: [5438, 2075, 4920, 7064, 3473, 4424, 3511, 1121, 2509, 4221],\n"," 413: [1148, 1564, 28, 306, 593, 608, 926, 1046, 1207, 1221],\n"," 576: [3516, 1489, 2679, 7064, 2721, 3415, 4453, 4783, 5077, 6122],\n"," 586: [1046, 1260, 3365, 4432, 1131, 2931, 2938, 1753, 4633, 1489],\n"," 595: [2679, 6319, 2721, 3473, 4208, 5899, 4453, 8341, 146, 1121],\n"," 610: [50, 1260, 5017, 7193, 7376, 2938, 4633, 3516, 5007, 808],\n"," 613: [5283, 7064, 3415, 3473, 3007, 1904, 5899, 1472, 4135, 5077],\n"," 637: [527, 1041, 5438, 8968, 1131, 1354, 4276, 2360, 1192, 1837],\n"," 663: [2075, 2931, 2679, 3097, 6319, 7064, 2721, 2043, 3224, 3415],\n"," 740: [321, 527, 926, 1046, 1172, 50, 800, 1234, 2203, 4844],\n"," 787: [260, 1246, 4535, 5952, 7153, 28, 58, 171, 232, 242],\n"," 804: [26131,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 6023,\n"," 1121,\n"," 2271,\n"," 2509,\n"," 3688,\n"," 4135],\n"," 866: [1046, 2075, 1489, 2679, 6319, 7064, 3415, 3473, 4208, 4453],\n"," 883: [2075,\n"," 32316,\n"," 8580,\n"," 1121,\n"," 2509,\n"," 4135,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 5101],\n"," 941: [6695, 7007, 1203, 1192, 1489, 4228, 3918, 2696, 680, 2731],\n"," 1007: [242, 1046, 5017, 324, 5255, 5283, 1646, 5304, 6783, 7064],\n"," 817: [110, 1564, 8533, 28, 242, 926, 1172, 457, 1629, 954],\n"," 6: [1260, 3365, 5017, 2959, 2075, 1489, 2679, 3929, 1178, 3097],\n"," 7: [2075, 2931, 4633, 3516, 1192, 1489, 6219, 3929, 3341, 7064],\n"," 14: [2721, 3473, 2911, 850, 2977, 137, 27255, 3777, 3804, 1477],\n"," 24: [1148, 242, 324, 2959, 3477, 5438, 6290, 1131, 2931, 2938],\n"," 57: [2203,\n"," 2936,\n"," 3365,\n"," 5017,\n"," 7193,\n"," 44761,\n"," 2931,\n"," 2938,\n"," 8970,\n"," 40826],\n"," 60: [5438, 6319, 2721, 2131, 3415, 5899, 49957, 6023, 1121, 2509],\n"," 64: [3473,\n"," 2911,\n"," 2704,\n"," 137,\n"," 27255,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 3645],\n"," 84: [4850,\n"," 2704,\n"," 137,\n"," 26425,\n"," 3473,\n"," 27255,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 8195],\n"," 90: [2203,\n"," 1131,\n"," 2931,\n"," 2938,\n"," 40826,\n"," 1192,\n"," 2679,\n"," 2714,\n"," 8916,\n"," 47970],\n"," 98: [28, 495, 912, 1046, 1212, 1260, 3365, 2618, 2959, 5438],\n"," 113: [613, 40826, 3516, 8596, 32316, 715, 4424, 2925, 5077, 2488],\n"," 120: [2163,\n"," 4135,\n"," 5069,\n"," 6780,\n"," 27741,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 26425],\n"," 123: [28, 50, 5017, 324, 2796, 4105, 5438, 44761, 2931, 2938],\n"," 157: [858, 1148, 321, 527, 541, 912, 1172, 1221, 1196, 50],\n"," 194: [8533, 1046, 1248, 1260, 4406, 4432, 678, 2618, 4011, 4251],\n"," 200: [5438,\n"," 26131,\n"," 2938,\n"," 4276,\n"," 1489,\n"," 1837,\n"," 2679,\n"," 3917,\n"," 3929,\n"," 1150],\n"," 204: [3918, 3415, 3473, 336, 6122, 4850, 1585, 3645, 5069, 6271],\n"," 205: [1260, 7376, 2075, 2852, 2931, 2938, 4276, 5007, 808, 1192],\n"," 225: [110, 858, 1210, 1148, 1246, 1276, 5952, 7153, 8783, 28],\n"," 229: [3473, 2911, 2704, 137, 27255, 1444, 408, 3415, 3645, 4405],\n"," 237: [7064,\n"," 3473,\n"," 4135,\n"," 4850,\n"," 5069,\n"," 2911,\n"," 2977,\n"," 27255,\n"," 1477,\n"," 26425],\n"," 242: [858, 242, 912, 1234, 6273, 2618, 4011, 7193, 26131, 1131],\n"," 252: [110, 858, 1148, 1276, 1564, 8533, 28, 306, 593, 903],\n"," 266: [1564, 28, 50, 2959, 4993, 1131, 2931, 2938, 3516, 955],\n"," 270: [2704,\n"," 26425,\n"," 137,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2977,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 282: [3473,\n"," 4850,\n"," 2704,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 3823,\n"," 31116,\n"," 1444],\n"," 297: [615, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n"," 309: [3415, 3473, 149, 8195, 2425, 3645, 668, 1572, 4928, 6271],\n"," 316: [40826,\n"," 680,\n"," 3503,\n"," 5304,\n"," 7064,\n"," 7933,\n"," 32316,\n"," 3415,\n"," 3473,\n"," 42015],\n"," 327: [3516, 2696, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4585],\n"," 356: [137,\n"," 6122,\n"," 3473,\n"," 27255,\n"," 3694,\n"," 3695,\n"," 1444,\n"," 7297,\n"," 27648,\n"," 5287],\n"," 393: [4850,\n"," 5305,\n"," 2704,\n"," 137,\n"," 26425,\n"," 27255,\n"," 2347,\n"," 2732,\n"," 5840,\n"," 31116],\n"," 394: [4633,\n"," 3516,\n"," 1489,\n"," 2679,\n"," 7064,\n"," 8125,\n"," 8199,\n"," 32316,\n"," 2721,\n"," 3415],\n"," 395: [2714,\n"," 7064,\n"," 27741,\n"," 2494,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 3694,\n"," 3695,\n"," 2419],\n"," 399: [1192, 2696, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509],\n"," 401: [3516, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6044],\n"," 402: [26425,\n"," 2977,\n"," 53519,\n"," 99,\n"," 2721,\n"," 31116,\n"," 1444,\n"," 3823,\n"," 27648,\n"," 4939],\n"," 405: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n"," 417: [321, 2931, 3516, 1192, 2679, 2696, 7064, 2721, 3415, 3473],\n"," 422: [4850, 5840, 137, 3473, 1444, 3415, 6023, 8195, 3645, 4928],\n"," 437: [2075, 2931, 2938, 4633, 2679, 2714, 49932, 680, 7064, 7327],\n"," 455: [2679, 3918, 615, 4920, 2131, 3224, 3415, 3473, 123, 5288],\n"," 461: [3415, 6023, 6122, 8195, 3645, 668, 1572, 4928, 6271, 6918],\n"," 473: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n"," 484: [2203, 2931, 1489, 2679, 615, 680, 7064, 7933, 32316, 2721],\n"," 499: [3341, 7064, 7933, 8199, 32316, 715, 3415, 3511, 1121, 2509],\n"," 526: [7064, 3415, 4850, 3645, 6271, 7067, 7749, 7759, 8256, 8724],\n"," 537: [3477, 5438, 3516, 3918, 3415, 3473, 6023, 8580, 1121, 2271],\n"," 542: [7153, 28, 47, 495, 608, 926, 1172, 2571, 1212, 1234],\n"," 557: [2704,\n"," 137,\n"," 26425,\n"," 27255,\n"," 2911,\n"," 5840,\n"," 2425,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 563: [5069,\n"," 2704,\n"," 137,\n"," 26425,\n"," 3473,\n"," 27255,\n"," 6122,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 570: [110, 858, 306, 593, 1046, 1196, 1089, 7193, 1131, 1132],\n"," 575: [1148, 28, 47, 495, 527, 541, 593, 778, 903, 912],\n"," 594: [242, 527, 5017, 5294, 4978, 5110, 5255, 5438, 1131, 1132],\n"," 607: [7153, 2028, 2571, 5017, 7193, 3429, 2075, 2931, 2938, 4276],\n"," 631: [8533, 608, 912, 926, 1046, 50, 904, 1260, 2203, 2936],\n"," 651: [110, 213, 1288, 1564, 5952, 7153, 47, 111, 306, 326],\n"," 664: [5017, 324, 26131, 1131, 2075, 2931, 3516, 1489, 2679, 2714],\n"," 685: [5069,\n"," 2704,\n"," 137,\n"," 1477,\n"," 26425,\n"," 27255,\n"," 1621,\n"," 2911,\n"," 31116,\n"," 1444],\n"," 690: [5069,\n"," 2704,\n"," 137,\n"," 26425,\n"," 1477,\n"," 27255,\n"," 31116,\n"," 3823,\n"," 1444,\n"," 3224],\n"," 696: [2494,\n"," 2704,\n"," 5840,\n"," 26425,\n"," 2930,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 850],\n"," 724: [495,\n"," 2618,\n"," 3516,\n"," 47099,\n"," 2696,\n"," 1734,\n"," 3473,\n"," 4208,\n"," 55247,\n"," 4783],\n"," 738: [5017,\n"," 5304,\n"," 6783,\n"," 7064,\n"," 7933,\n"," 8125,\n"," 8199,\n"," 32316,\n"," 3415,\n"," 3473],\n"," 762: [3473,\n"," 4850,\n"," 2704,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 763: [2679, 3394, 3470, 3473, 1236, 2579, 1442, 1121, 2509, 4135],\n"," 770: [26131,\n"," 1934,\n"," 7064,\n"," 32316,\n"," 927,\n"," 2721,\n"," 3473,\n"," 5077,\n"," 4939,\n"," 45728],\n"," 796: [858, 912, 1046, 1196, 2618, 5438, 296, 2075, 2931, 2938],\n"," 800: [3473,\n"," 4135,\n"," 4850,\n"," 2704,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 829: [5017, 2959, 2931, 2938, 5122, 1192, 2550, 2679, 2714, 8916],\n"," 836: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n"," 882: [2618, 1131, 1913, 2931, 2938, 2360, 5122, 1192, 932, 1837],\n"," 900: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 3645, 6271],\n"," 903: [2618,\n"," 5255,\n"," 5438,\n"," 2075,\n"," 2931,\n"," 2938,\n"," 4276,\n"," 40826,\n"," 1192,\n"," 1489],\n"," 914: [40826,\n"," 7064,\n"," 7933,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418],\n"," 918: [5017,\n"," 7193,\n"," 7376,\n"," 2075,\n"," 2931,\n"," 2938,\n"," 3387,\n"," 40826,\n"," 3516,\n"," 1192],\n"," 920: [1148, 1046, 1199, 908, 4226, 2618, 2959, 7193, 1131, 2852],\n"," 945: [2704,\n"," 26425,\n"," 27255,\n"," 6122,\n"," 4850,\n"," 31116,\n"," 3823,\n"," 27741,\n"," 1444,\n"," 3415],\n"," 950: [356, 1564, 150, 28, 111, 171, 495, 527, 912, 923],\n"," 952: [5505, 306, 308, 321, 326, 926, 1264, 942, 2203, 2936],\n"," 982: [2696, 3415, 3473, 3511, 1121, 2271, 2509, 4221, 4418, 4509],\n"," 989: [362, 589, 110, 733, 1210, 1148, 1674, 5952, 7153, 161],\n"," 1016: [3516, 7064, 2721, 3473, 336, 2483, 1121, 2509, 4135, 4221],\n"," 1019: [321, 5017, 2931, 3516, 1192, 2679, 2696, 1945, 3813, 5434],\n"," 1044: [356, 377, 589, 594, 616, 110, 858, 1356, 213, 1148],\n"," 1051: [3473,\n"," 2704,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 6023],\n"," 917: [3516, 7064, 3415, 3473, 5077, 6122, 4939, 3645, 6241, 6271],\n"," 951: [1260, 4432, 2618, 4105, 6003, 8641, 1056, 1131, 2931, 3516],\n"," 997: [1260, 3429, 2931, 2938, 3516, 1192, 1223, 745, 2550, 3000],\n"," 174: [3415, 3473, 6023, 6122, 3645, 4928, 6271, 6918, 7067, 7749],\n"," 676: [49932, 1934, 3503, 7064, 927, 2721, 3473, 5288, 1361, 7209],\n"," 764: [615, 5899, 2925, 3511, 1121, 2509, 4221, 4418, 4509, 5101],\n"," 1052: [615, 3341, 7013, 8596, 32316, 715, 1493, 7063, 8580, 3511],\n"," 5: [1489, 7064, 3415, 3473, 4208, 49957, 4453, 212, 1121, 2271],\n"," 27: [2704,\n"," 137,\n"," 26425,\n"," 1477,\n"," 27255,\n"," 31116,\n"," 7064,\n"," 1444,\n"," 3415,\n"," 6023],\n"," 33: [3473,\n"," 6122,\n"," 2911,\n"," 2704,\n"," 137,\n"," 27255,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 134: [858, 306, 1046, 1172, 50, 4226, 2618, 26131, 1131, 2852],\n"," 142: [2704,\n"," 26425,\n"," 1477,\n"," 6319,\n"," 5069,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415],\n"," 156: [2714,\n"," 2970,\n"," 27741,\n"," 2977,\n"," 137,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 26425,\n"," 1366],\n"," 167: [3415, 3473, 6023, 3511, 1121, 2509, 4221, 4418, 4509, 4732],\n"," 177: [615, 7064, 7933, 8199, 3415, 1121, 2509, 4221, 4418, 4509],\n"," 224: [321, 326, 926, 1199, 50, 1260, 1348, 1611, 1658, 6695],\n"," 269: [2075, 3516, 3918, 2721, 3415, 5034, 4187, 6023, 3645, 1572],\n"," 312: [1148, 495, 527, 926, 1199, 1248, 1260, 2804, 2936, 4226],\n"," 360: [3477, 5283, 5438, 2931, 2938, 3516, 4102, 2714, 3918, 3341],\n"," 385: [615, 3415, 6023, 5077, 4850, 4939, 3645, 5069, 1572, 4405],\n"," 411: [1260, 3365, 2618, 2075, 2931, 2938, 6612, 3932, 615, 680],\n"," 464: [2075,\n"," 1192,\n"," 1489,\n"," 2679,\n"," 1966,\n"," 5304,\n"," 6783,\n"," 7933,\n"," 32316,\n"," 3415],\n"," 568: [326, 4844, 5110, 6290, 6440, 8641, 1131, 1233, 2852, 29],\n"," 612: [260, 1046, 2618, 5438, 1131, 2852, 3516, 4102, 7162, 1192],\n"," 630: [326, 6273, 1658, 2618, 26131, 1056, 2075, 4276, 1192, 932],\n"," 706: [2936, 5017, 2796, 4047, 6187, 8916, 1646, 49932, 680, 2731],\n"," 737: [2704,\n"," 26425,\n"," 5069,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 31116,\n"," 3823,\n"," 3415,\n"," 6023],\n"," 749: [1192,\n"," 363,\n"," 2704,\n"," 2330,\n"," 1444,\n"," 27255,\n"," 5287,\n"," 1477,\n"," 1621,\n"," 26425],\n"," 756: [3473,\n"," 5069,\n"," 2911,\n"," 2704,\n"," 137,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 811: [1658,\n"," 3022,\n"," 3742,\n"," 7064,\n"," 3694,\n"," 3695,\n"," 3823,\n"," 27648,\n"," 5077,\n"," 4939],\n"," 853: [3093, 206, 1870, 2425, 1649, 6780, 34164, 2494, 2704, 5840],\n"," 884: [1260, 6695, 7193, 7376, 8968, 1132, 2075, 5882, 3516, 1177],\n"," 955: [260, 28, 50, 1260, 3365, 4226, 4327, 324, 4993, 7371],\n"," 1032: [1148, 5952, 7153, 8533, 28, 58, 111, 306, 326, 334],\n"," 1043: [1049, 213, 1148, 3684, 232, 242, 527, 923, 1096, 1207],\n"," 370: [3918, 680, 4356, 7933, 2721, 3473, 6791, 1121, 2271, 2509],\n"," 670: [3341,\n"," 7064,\n"," 7933,\n"," 8199,\n"," 32316,\n"," 2131,\n"," 3415,\n"," 6023,\n"," 3511,\n"," 1121],\n"," 923: [260, 1252, 299, 527, 1046, 1212, 2203, 3365, 4226, 678],\n"," 931: [1658, 3918, 680, 2935, 581, 217, 2787, 6772, 4850, 5069],\n"," 969: [5893, 3473, 4117, 137, 1477, 1621, 6772, 3823, 5287, 3477],\n"," 12: [4914, 3503, 7064, 7933, 8199, 2721, 3415, 1121, 2509, 4221],\n"," 597: [4053, 2931, 3516, 1489, 2679, 2714, 8916, 1034, 2721, 3415],\n"," 195: [28, 242, 2931, 2938, 3516, 1489, 2679, 7064, 32316, 2721],\n"," 337: [356, 260, 858, 1148, 1252, 5952, 28, 232, 326, 495],\n"," 910: [3516, 1192, 3341, 7064, 2721, 3415, 3473, 121, 1121, 2509],\n"," 63: [5069,\n"," 2911,\n"," 2704,\n"," 27255,\n"," 2930,\n"," 26425,\n"," 850,\n"," 31116,\n"," 7064,\n"," 1444],\n"," 70: [7064, 7933, 3415, 3473, 6023, 4135, 4850, 4939, 5069, 668],\n"," 99: [2852, 2931, 3516, 1489, 8916, 7064, 2721, 3415, 3473, 4208],\n"," 121: [5017,\n"," 2075,\n"," 7064,\n"," 8199,\n"," 32316,\n"," 2920,\n"," 2131,\n"," 3415,\n"," 2925,\n"," 4079],\n"," 130: [2075,\n"," 40826,\n"," 4920,\n"," 7064,\n"," 2043,\n"," 3415,\n"," 4453,\n"," 8341,\n"," 4079,\n"," 6023],\n"," 244: [260, 28, 1260, 2203, 4226, 290, 1262, 2618, 2959, 5283],\n"," 291: [2696, 7064, 3415, 3473, 6023, 1121, 2509, 4135, 4221, 4418],\n"," 335: [1564, 1199, 2618, 1233, 2852, 2931, 1203, 4633, 3516, 318],\n"," 361: [7064, 3415, 3473, 5899, 149, 6023, 3511, 710, 1121, 2509],\n"," 470: [260, 3365, 1131, 1132, 2075, 2852, 2931, 2938, 4276, 40826],\n"," 497: [137,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2977,\n"," 31116,\n"," 4850,\n"," 1444],\n"," 620: [242, 2075, 2679, 7064, 1734, 2644, 3415, 3473, 121, 212],\n"," 648: [28, 326, 926, 1046, 2203, 3365, 4432, 4848, 6296, 7371],\n"," 666: [4850,\n"," 850,\n"," 2704,\n"," 27255,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 7064,\n"," 3415,\n"," 6241],\n"," 710: [1564, 28, 593, 1172, 1264, 50, 1260, 4226, 4327, 2959],\n"," 794: [4850, 2704, 27255, 2721, 1444, 3415, 8195, 3645, 668, 1572],\n"," 854: [3473,\n"," 4135,\n"," 4850,\n"," 2911,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 861: [28, 50, 799, 2618, 5438, 2075, 2931, 40826, 3516, 318],\n"," 87: [260, 858, 1148, 1252, 1564, 111, 527, 593, 926, 1046],\n"," 317: [1046, 2721, 3415, 3473, 1184, 146, 3511, 1121, 2509, 4221],\n"," 324: [2721, 3415, 4928, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n"," 502: [3918,\n"," 2721,\n"," 3473,\n"," 6591,\n"," 49957,\n"," 4495,\n"," 4135,\n"," 5077,\n"," 6122,\n"," 1827],\n"," 559: [213,\n"," 2704,\n"," 1034,\n"," 6188,\n"," 34164,\n"," 44974,\n"," 1361,\n"," 6780,\n"," 3811,\n"," 5899],\n"," 973: [1046, 3477, 5438, 1753, 3415, 3473, 212, 6023, 3511, 1121],\n"," 1015: [858, 1564, 321, 527, 1221, 3365, 6695, 2931, 2938, 750],\n"," 1017: [1034,\n"," 2425,\n"," 2704,\n"," 27255,\n"," 26425,\n"," 4850,\n"," 99,\n"," 8712,\n"," 31116,\n"," 6780],\n"," 85: [6122,\n"," 2704,\n"," 137,\n"," 26425,\n"," 1477,\n"," 27255,\n"," 2911,\n"," 34164,\n"," 49957,\n"," 31116],\n"," 306: [2935, 7064, 3473, 2925, 5077, 6122, 4939, 2911, 4442, 850],\n"," 653: [4850,\n"," 26425,\n"," 4135,\n"," 1477,\n"," 1621,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2721,\n"," 31116],\n"," 371: [26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 2721,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 3645],\n"," 566: [2704,\n"," 5840,\n"," 3473,\n"," 1366,\n"," 2977,\n"," 2419,\n"," 3823,\n"," 4356,\n"," 55269,\n"," 6122],\n"," 331: [7064,\n"," 2704,\n"," 26425,\n"," 1477,\n"," 4850,\n"," 5069,\n"," 31116,\n"," 1444,\n"," 8125,\n"," 8199],\n"," 665: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 6122, 4850],\n"," 872: [1046, 2075, 2931, 2938, 2679, 3676, 5304, 6783, 7064, 8042],\n"," 879: [260, 858, 1210, 1276, 28, 111, 306, 527, 541, 778],\n"," 486: [1046, 5438, 2852, 4276, 4633, 3516, 955, 1192, 2550, 6187],\n"," 864: [2704,\n"," 26425,\n"," 2494,\n"," 2930,\n"," 27741,\n"," 27255,\n"," 6122,\n"," 34164,\n"," 850,\n"," 31116],\n"," 52: [3365, 6273, 2618, 26131, 2075, 2931, 2938, 1203, 5122, 6316],\n"," 288: [324, 2060, 5255, 2931, 2679, 3270, 1646, 1281, 5304, 7933],\n"," 9: [61, 2679, 1646, 1946, 3341, 4920, 7064, 99, 715, 1493],\n"," 117: [2721,\n"," 3473,\n"," 2911,\n"," 1444,\n"," 27255,\n"," 1477,\n"," 1621,\n"," 26425,\n"," 31116,\n"," 3415],\n"," 220: [5017, 328, 2931, 1192, 1489, 5159, 3341, 3831, 2731, 5304],\n"," 544: [1046, 3516, 2721, 3415, 3090, 5288, 1121, 2509, 4221, 4418],\n"," 999: [242, 2936, 328, 1658, 506, 2075, 2852, 2931, 3115, 4276],\n"," 458: [4850,\n"," 5069,\n"," 2930,\n"," 26425,\n"," 1477,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 850,\n"," 31116],\n"," 974: [927, 1236, 8580, 4466, 6669, 6162, 2625, 80, 2833, 2704],\n"," 546: [1148, 1252, 1276, 232, 593, 1199, 1230, 50, 904, 1248],\n"," 55: [3415, 121, 212, 3511, 1121, 2509, 4221, 4418, 4509, 5101],\n"," 363: [1148, 242, 608, 1046, 50, 904, 1260, 3365, 4432, 1213],\n"," 445: [3341, 3415, 3473, 121, 1121, 2509, 4135, 4221, 4418, 4509],\n"," 492: [926, 1046, 50, 678, 7193, 1131, 1233, 2075, 2931, 2938],\n"," 234: [615, 1684, 6319, 7933, 32316, 2721, 1121, 2509, 4135, 4221],\n"," 1027: [2075,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 1121,\n"," 2509,\n"," 4221,\n"," 4418,\n"," 4509,\n"," 4850],\n"," 140: [3516,\n"," 2679,\n"," 5304,\n"," 6783,\n"," 7064,\n"," 8125,\n"," 32316,\n"," 2721,\n"," 3415,\n"," 3473],\n"," 926: [5017, 2075, 2931, 1489, 2696, 5304, 6783, 7064, 7933, 8596],\n"," 781: [260, 858, 1210, 1148, 5952, 7153, 232, 242, 306, 527],\n"," 825: [1046,\n"," 2931,\n"," 2938,\n"," 1489,\n"," 2679,\n"," 2696,\n"," 3097,\n"," 5434,\n"," 45950,\n"," 49932],\n"," 913: [3415, 3473, 4616, 3480, 5077, 4850, 4939, 1572, 6241, 6271],\n"," 453: [1260, 2203, 6695, 8968, 2938, 5007, 1192, 408, 6006, 2714],\n"," 540: [7064, 2721, 3415, 6023, 4850, 1572, 4405, 6271, 6918, 7067],\n"," 66: [1046, 2075, 2852, 2931, 2938, 3516, 1192, 1489, 2550, 3929],\n"," 185: [4387, 6595, 6219, 3473, 3090, 869, 3857, 4846, 220, 3777],\n"," 222: [4135, 2704, 137, 26425, 4850, 1184, 2425, 2721, 6772, 2935],\n"," 498: [7064, 8199, 3415, 3473, 3645, 4928, 6241, 6271, 7067, 7749],\n"," 994: [2704, 3694, 3695, 7064, 6122, 3823, 1444, 3415, 6023, 8195],\n"," 165: [3473,\n"," 3700,\n"," 2704,\n"," 1444,\n"," 27255,\n"," 7297,\n"," 1477,\n"," 26425,\n"," 31116,\n"," 27648],\n"," 202: [1148, 28, 299, 321, 904, 1348, 2648, 2804, 1611, 2618],\n"," 180: [260, 3684, 28, 47, 308, 326, 527, 912, 926, 1046],\n"," 93: [242, 1172, 908, 1248, 1260, 2206, 3365, 4327, 5017, 5292],\n"," 261: [5017, 1192, 2679, 7064, 7933, 8199, 927, 2043, 3415, 3473],\n"," 435: [324, 3477, 5255, 2075, 2931, 1468, 2550, 3918, 7064, 32316],\n"," 322: [26131,\n"," 40826,\n"," 7064,\n"," 2721,\n"," 3415,\n"," 3473,\n"," 7063,\n"," 6023,\n"," 3511,\n"," 1121],\n"," 238: [1646, 3341, 3415, 3473, 212, 6023, 8580, 3511, 1121, 2509],\n"," 425: [1046, 2075, 2852, 250, 615, 1684, 49932, 2721, 715, 3415],\n"," 512: [1056, 2931, 3516, 1192, 2500, 8916, 1646, 4920, 49932, 680],\n"," 725: [2494,\n"," 26425,\n"," 1477,\n"," 27255,\n"," 2911,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 3645,\n"," 668],\n"," 732: [2721,\n"," 3473,\n"," 27741,\n"," 2911,\n"," 2977,\n"," 27255,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116],\n"," 108: [2721, 3415, 3473, 1184, 6023, 4135, 4850, 4939, 3645, 668],\n"," 592: [1046, 904, 4226, 2618, 2858, 2959, 7360, 44761, 2931, 2938],\n"," 443: [1489, 2679, 2721, 3415, 3384, 336, 2102, 6023, 8580, 4135],\n"," 916: [2704,\n"," 26425,\n"," 2930,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 7064,\n"," 1046,\n"," 2721,\n"," 31116],\n"," 736: [858, 7153, 326, 951, 1260, 324, 2959, 6296, 2931, 29],\n"," 961: [242, 4432, 2075, 2852, 2931, 2938, 2360, 3516, 932, 1837],\n"," 1012: [2721,\n"," 3473,\n"," 34164,\n"," 2704,\n"," 3694,\n"," 3695,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444],\n"," 515: [2721, 715, 3415, 3645, 4928, 6271, 7067, 7749, 7759, 8256],\n"," 978: [1148, 8533, 321, 1172, 1260, 3365, 4432, 324, 2060, 2618],\n"," 28: [5438, 2075, 3516, 188, 1034, 615, 3097, 2721, 1361, 146],\n"," 475: [3473,\n"," 2704,\n"," 1477,\n"," 2930,\n"," 26425,\n"," 31116,\n"," 1444,\n"," 3415,\n"," 3645,\n"," 668],\n"," 598: [1046, 506, 1056, 2931, 1192, 1489, 250, 2696, 1929, 199],\n"," 943: [4135, 6122, 4850, 2704, 1477, 26425, 1046, 850, 7064, 2721],\n"," 520: [8132,\n"," 26425,\n"," 27255,\n"," 2970,\n"," 31116,\n"," 5017,\n"," 5304,\n"," 7064,\n"," 8199,\n"," 3415],\n"," 697: [2347, 28, 1719, 2721, 328, 4103, 30803, 4307, 55280, 57243],\n"," 849: [260, 1210, 1148, 28, 527, 541, 1199, 1207, 1193, 1197],\n"," 1003: [3516, 250, 7064, 7933, 32316, 2721, 715, 5034, 212, 1121],\n"," 705: [2721, 3415, 3473, 121, 212, 6023, 1121, 2509, 4221, 4418],\n"," 48: [242, 562, 1103, 1199, 1206, 1207, 1244, 904, 913, 1086],\n"," 29: [4135,\n"," 4850,\n"," 26425,\n"," 1184,\n"," 1827,\n"," 1870,\n"," 3360,\n"," 6772,\n"," 8712,\n"," 31116],\n"," 231: [250, 2714, 1646, 3415, 1904, 6791, 3076, 212, 1121, 2271],\n"," 699: [1489, 2679, 1147, 615, 3341, 2731, 5304, 6783, 7064, 8125],\n"," 448: [7064,\n"," 2704,\n"," 26425,\n"," 2494,\n"," 3473,\n"," 27255,\n"," 2911,\n"," 3694,\n"," 3695,\n"," 850],\n"," 750: [213, 242, 926, 26131, 613, 2075, 2931, 2938, 4633, 1192],\n"," 782: [5017,\n"," 26131,\n"," 4356,\n"," 7064,\n"," 8199,\n"," 2721,\n"," 3224,\n"," 3415,\n"," 6023,\n"," 8195],\n"," 860: [5840,\n"," 26425,\n"," 3473,\n"," 59315,\n"," 54995,\n"," 3823,\n"," 4327,\n"," 8712,\n"," 31116,\n"," 1444],\n"," 768: [213, 2704, 26425, 1034, 1361, 2419, 2852, 1477, 2714, 2935],\n"," 127: [1833, 3503, 2721, 2732, 82, 1237, 6881, 2704, 3694, 3695],\n"," 894: [299,\n"," 4103,\n"," 30803,\n"," 4307,\n"," 55280,\n"," 57243,\n"," 1244,\n"," 49932,\n"," 7327,\n"," 4437]})"]},"metadata":{},"execution_count":8}],"source":["# surprise를 사용한 구현\n","\n","from surprise import KNNWithMeans, Reader\n","from surprise import Dataset as SurpriseDataset\n","# surprise용으로 데이터를 가공한다\n","reader = Reader(rating_scale=(0.5, 5))\n","data_train = SurpriseDataset.load_from_df(\n"," movielens_train[[\"user_id\", \"movie_id\", \"rating\"]], reader\n",").build_full_trainset()\n","\n","sim_options = {\"name\": \"pearson\", \"user_based\": True} # 유사도를 계산하는 방법을 정의한다 # False로 하면 아이템 기반이 된다\n","knn = KNNWithMeans(k=30, min_k=1, sim_options=sim_options)\n","knn.fit(data_train)\n","\n","# 학습 데이터셋에서 평갓값이 없는 사용자와 아이템의 조합을 준비한다\n","data_test = data_train.build_anti_testset(None)\n","predictions = knn.test(data_test)\n","\n","def get_top_n(predictions, n=10):\n"," # 각 사용자별로 예측된 아이템을 저장한다\n"," top_n = defaultdict(list)\n"," for uid, iid, true_r, est, _ in predictions:\n"," top_n[uid].append((iid, est))\n","\n"," # 사용자별로 아이템을 예측 평갓값 순으로 나열하고, 상위 n개를 저장한다\n"," for uid, user_ratings in top_n.items():\n"," user_ratings.sort(key=lambda x: x[1], reverse=True)\n"," top_n[uid] = [d[0] for d in user_ratings[:n]]\n","\n"," return top_n\n","\n","pred_user2items = get_top_n(predictions, n=10)\n","\n","average_score = movielens_train.rating.mean()\n","pred_results = []\n","for _, row in movielens_test.iterrows():\n"," user_id = row[\"user_id\"]\n"," movie_id = row[\"movie_id\"]\n"," # 학습 데이터에 존재하지 않고 테스트 데이터에만 존재하는 사용자와 영화에 대한 예측 평갓값은 전체의 평균 평갓값으로 한다\n"," if user_id not in user_id2index or movie_id not in movie_id2index:\n"," pred_results.append(average_score)\n"," continue\n"," pred_score = knn.predict(uid=user_id, iid=movie_id).est\n"," pred_results.append(pred_score)\n","movie_rating_predict[\"rating_pred\"] = pred_results\n","\n","pred_user2items"]},{"cell_type":"code","execution_count":9,"id":"1fccc723","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":841},"id":"1fccc723","executionInfo":{"status":"ok","timestamp":1672121035097,"user_tz":-540,"elapsed":30,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"6420b02f-837f-4f24-adc1-0c986fe8d916"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" user_id movie_id rating timestamp \\\n","4732 2 110 5.0 868245777 \n","5246 2 260 5.0 868244562 \n","5798 2 590 5.0 868245608 \n","6150 2 648 2.0 868244699 \n","6531 2 733 3.0 868244562 \n","6813 2 736 3.0 868244698 \n","7113 2 780 3.0 868244698 \n","7506 2 786 3.0 868244562 \n","7661 2 802 2.0 868244603 \n","7779 2 858 2.0 868245645 \n","8077 2 1049 3.0 868245920 \n","8127 2 1073 3.0 868244562 \n","8381 2 1210 4.0 868245644 \n","8771 2 1356 3.0 868244603 \n","9097 2 1544 3.0 868245920 \n","\n"," title \\\n","4732 Braveheart (1995) \n","5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n","5798 Dances with Wolves (1990) \n","6150 Mission: Impossible (1996) \n","6531 Rock, The (1996) \n","6813 Twister (1996) \n","7113 Independence Day (a.k.a. ID4) (1996) \n","7506 Eraser (1996) \n","7661 Phenomenon (1996) \n","7779 Godfather, The (1972) \n","8077 Ghost and the Darkness, The (1996) \n","8127 Willy Wonka & the Chocolate Factory (1971) \n","8381 Star Wars: Episode VI - Return of the Jedi (1983) \n","8771 Star Trek: First Contact (1996) \n","9097 Lost World: Jurassic Park, The (Jurassic Park ... \n","\n"," genre \\\n","4732 [Action, Drama, War] \n","5246 [Action, Adventure, Sci-Fi] \n","5798 [Adventure, Drama, Western] \n","6150 [Action, Adventure, Mystery, Thriller] \n","6531 [Action, Adventure, Thriller] \n","6813 [Action, Adventure, Romance, Thriller] \n","7113 [Action, Adventure, Sci-Fi, War] \n","7506 [Action, Drama, Thriller] \n","7661 [Drama, Romance] \n","7779 [Crime, Drama] \n","8077 [Action, Adventure] \n","8127 [Children, Comedy, Fantasy, Musical] \n","8381 [Action, Adventure, Sci-Fi] \n","8771 [Action, Adventure, Sci-Fi, Thriller] \n","9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n","\n"," tag timestamp_rank \n","4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n","5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n","5798 [afi 100, lame, native, biopic, american india... 11.0 \n","6150 [confusing, confusing plot, memorable sequence... 12.0 \n","6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n","6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n","7113 [action, alien invasion, aliens, will smith, a... 14.0 \n","7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n","7661 [interesting concept, own, john travolta, john... 15.0 \n","7779 [oscar (best picture), marlon brando, classic,... 9.0 \n","8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n","8127 [based on a book, roald dahl, based on a book,... 20.0 \n","8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n","8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n","9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":9}],"source":["# user_id=2인 사용자가 학습 데이터에서 평가를 부여한 영화 목록\n","movielens_train[movielens_train.user_id==2]"]},{"cell_type":"code","execution_count":10,"id":"874b6e3e","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"874b6e3e","executionInfo":{"status":"ok","timestamp":1672121035098,"user_tz":-540,"elapsed":19,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"b39c148b-c27c-4f83-a2b5-ddf05e1f8545"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["[3473, 4135, 4850, 2425, 2704, 137, 27255, 26425, 8712, 31116]"]},"metadata":{},"execution_count":10}],"source":["pred_user2items[2]"]},{"cell_type":"code","execution_count":11,"id":"c9b77fbd","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"c9b77fbd","executionInfo":{"status":"ok","timestamp":1672121035098,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}},"outputId":"9a9700f9-87ac-459c-b415-1df2a8dceb5c"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" movie_id title \\\n","3386 3473 Jonah Who Will Be 25 in the Year 2000 (Jonas q... \n","4043 4135 Monster Squad, The (1987) \n","4756 4850 Spriggan (Supurigan) (1998) \n","\n"," genre \\\n","3386 [Comedy] \n","4043 [Adventure, Comedy, Horror] \n","4756 [Action, Animation, Sci-Fi] \n","\n"," tag \n","3386 [cerebral, humorous, intersecting lives, intim... \n","4043 [can't remember] \n","4756 [library, anime, spectacle, over expositive] "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
movie_idtitlegenretag
33863473Jonah Who Will Be 25 in the Year 2000 (Jonas q...[Comedy][cerebral, humorous, intersecting lives, intim...
40434135Monster Squad, The (1987)[Adventure, Comedy, Horror][can't remember]
47564850Spriggan (Supurigan) (1998)[Action, Animation, Sci-Fi][library, anime, spectacle, over expositive]
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":11}],"source":["# user_id=2에 대한 추천(1198, 1196, 1097)\n","movies[movies.movie_id.isin([3473, 4135, 4850])]"]},{"cell_type":"code","execution_count":11,"id":"99c25fe6","metadata":{"id":"99c25fe6","executionInfo":{"status":"ok","timestamp":1672121035098,"user_tz":-540,"elapsed":17,"user":{"displayName":"Moses Kim","userId":"10365665687963761023"}}},"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.10.8"},"colab":{"provenance":[]}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "id": "66d2e720", + "metadata": { + "id": "66d2e720" + }, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/oreilly-japan/RecommenderSystems/blob/main/chapter5/colab/UMCF.ipynb)" + ] + }, + { + "cell_type": "markdown", + "id": "f8caaceb", + "metadata": { + "id": "f8caaceb" + }, + "source": [ + "# 사용자-사용자 메모리 기반 방법 협조 필터링(User-User Memory Based Collaborative Filtering)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "9cb2f773", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 3786, + "status": "ok", + "timestamp": 1672120577940, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "9cb2f773", + "outputId": "1da0f943-c87e-4e98-9eca-45f624108983" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-12-27 05:54:30-- https://files.grouplens.org/datasets/movielens/ml-10m.zip\n", + "Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\n", + "Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 65566137 (63M) [application/zip]\n", + "Saving to: ‘../data/ml-10m.zip’\n", + "\n", + "ml-10m.zip 100%[===================>] 62.53M 91.0MB/s in 0.7s \n", + "\n", + "2022-12-27 05:54:31 (91.0 MB/s) - ‘../data/ml-10m.zip’ saved [65566137/65566137]\n", + "\n", + "Archive: ../data/ml-10m.zip\n", + " creating: ../data/ml-10M100K/\n", + " inflating: ../data/ml-10M100K/allbut.pl \n", + " inflating: ../data/ml-10M100K/movies.dat \n", + " inflating: ../data/ml-10M100K/ratings.dat \n", + " inflating: ../data/ml-10M100K/README.html \n", + " inflating: ../data/ml-10M100K/split_ratings.sh \n", + " inflating: ../data/ml-10M100K/tags.dat \n" + ] + } + ], + "source": [ + "# Colab용 notebook입니다. 이 notebook 한 장에서 여러 데이터의 다운로드부터, 추천까지 완결하도록 되어 있습니다(예측 평가는 미포함)\n", + "# MovieLens 데이터를 아직 다운로드 하지 않았다면, 이 셀을 실행해서 다운로드합니다.\n", + "# MovieLens 데이터 분석은 data_download.ipynb를 참조합니다.\n", + "\n", + "# 데이터 다운로드와 압축 풀기\n", + "!wget -nc --no-check-certificate https://files.grouplens.org/datasets/movielens/ml-10m.zip -P ../data\n", + "!unzip -n ../data/ml-10m.zip -d ../data/" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "ed3c6a08", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 69778, + "status": "ok", + "timestamp": 1672120647715, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "ed3c6a08", + "outputId": "0c864b95-f3a3-4b20-ab41-d26580399203" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "unique_users=1000, unique_movies=6736\n" + ] + } + ], + "source": [ + "# Movielens 데이터 로딩(데이터량이 많으므로, 로딩에 시간이 걸릴 수 있습니다)\n", + "import pandas as pd\n", + "\n", + "# movieID와 제목만 사용\n", + "m_cols = ['movie_id', 'title', 'genre']\n", + "movies = pd.read_csv('../data/ml-10M100K/movies.dat', names=m_cols, sep='::' , encoding='latin-1', engine='python')\n", + "\n", + "# genre를 list 형식으로 저장한다\n", + "movies['genre'] = movies.genre.apply(lambda x:x.split('|'))\n", + "\n", + "\n", + "# 사용자가 부여한 영화의 태그 정보를 로딩한다\n", + "t_cols = ['user_id', 'movie_id', 'tag', 'timestamp']\n", + "user_tagged_movies = pd.read_csv('../data/ml-10M100K/tags.dat', names=t_cols, sep='::', engine='python')\n", + "\n", + "# tag를 소문자로 바꾼다\n", + "user_tagged_movies['tag'] = user_tagged_movies['tag'].str.lower()\n", + "\n", + "\n", + "# tag를 영화별로 list 형식으로 저장한다\n", + "movie_tags = user_tagged_movies.groupby('movie_id').agg({'tag':list})\n", + "\n", + "# 태그 정보를 결합한다\n", + "movies = movies.merge(movie_tags, on='movie_id', how='left')\n", + "\n", + "# 평갓값 데이터만 로딩한다\n", + "r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']\n", + "ratings = pd.read_csv('../data/ml-10M100K/ratings.dat', names=r_cols, sep='::', engine='python')\n", + "\n", + "\n", + "# 데이터량이 많으므로 사용자수를 1000으로 줄여서 시험해본다\n", + "valid_user_ids = sorted(ratings.user_id.unique())[:1000]\n", + "ratings = ratings[ratings[\"user_id\"].isin(valid_user_ids)]\n", + "\n", + "\n", + "# 영화 데이터와 평가 데이터를 결합한다\n", + "movielens = ratings.merge(movies, on='movie_id')\n", + "\n", + "print(f'unique_users={len(movielens.user_id.unique())}, unique_movies={len(movielens.movie_id.unique())}')\n", + "\n", + "# 학습용과 데이터용으로 데이터를 나눈다\n", + "# 각 사용자의 최근 5건의 영화를 평가용으로 사용하고, 나머지는 학습용으로 사용한다\n", + "# 우선, 각 사용자가 평가한 영화의 순서를 계산한다\n", + "# 최근 부여한 영화부터 순서를 부여한다(1에서 시작)\n", + "\n", + "movielens['timestamp_rank'] = movielens.groupby(\n", + " 'user_id')['timestamp'].rank(ascending=False, method='first')\n", + "movielens_train = movielens[movielens['timestamp_rank'] > 5]\n", + "movielens_test = movielens[movielens['timestamp_rank']<= 5]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "06409f5a", + "metadata": { + "executionInfo": { + "elapsed": 24, + "status": "ok", + "timestamp": 1672120647715, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "06409f5a" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "# 피어슨 상관 계수\n", + "def peason_coefficient(u: np.ndarray, v: np.ndarray) -> float:\n", + " u_diff = u - np.mean(u)\n", + " v_diff = v - np.mean(v)\n", + " numerator = np.dot(u_diff, v_diff)\n", + " denominator = np.sqrt(sum(u_diff ** 2)) * np.sqrt(sum(v_diff ** 2))\n", + " if denominator == 0:\n", + " return 0.0\n", + " return numerator / denominator\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "ff148555-35f5-4362-87fb-75f0a8d5d33f", + "metadata": { + "executionInfo": { + "elapsed": 23, + "status": "ok", + "timestamp": 1672120647716, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "ff148555-35f5-4362-87fb-75f0a8d5d33f" + }, + "outputs": [], + "source": [ + "from collections import defaultdict\n", + "\n", + "# 평갓값을 사용자 x 화면의 행렬로 변환한다\n", + "user_movie_matrix = movielens_train.pivot(index=\"user_id\", columns=\"movie_id\", values=\"rating\")\n", + "user_id2index = dict(zip(user_movie_matrix.index, range(len(user_movie_matrix.index))))\n", + "movie_id2index = dict(zip(user_movie_matrix.columns, range(len(user_movie_matrix.columns))))\n", + "\n", + "# 예측 대상 사용자와 영화의 조합\n", + "movie_rating_predict = movielens_test.copy()\n", + "pred_user2items = defaultdict(list)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "fc0361fa", + "metadata": { + "executionInfo": { + "elapsed": 453, + "status": "ok", + "timestamp": 1672120648148, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "fc0361fa" + }, + "outputs": [], + "source": [ + "# 우직하게 유사도를 계산한다(이 계산은 매우 무겁습니다. 그렇기 떄문에 도중에 break를 넣었습니다. 속도 향상을 위해 라이브러리르 사용한 구현도 다음 셀에서 소개합니다)\n", + "\n", + "# 예측 대상 사용자 ID\n", + "test_users = movie_rating_predict.user_id.unique()\n", + "\n", + "# 예측 대상 사용자(사용자 1)에 주목한다\n", + "for user1_id in test_users:\n", + " similar_users = []\n", + " similarities = []\n", + " avgs = []\n", + "\n", + " # 사용자 1과 평갓값 행렬 안의 기타 사용자(사용자 2)와의 유사도를 산출한다\n", + " for user2_id in user_movie_matrix.index:\n", + " if user1_id == user2_id:\n", + " continue\n", + "\n", + " # 사용자 1과 사용자 2의 평갓값 벡터\n", + " u_1 = user_movie_matrix.loc[user1_id, :].to_numpy()\n", + " u_2 = user_movie_matrix.loc[user2_id, :].to_numpy()\n", + "\n", + " # `u_1`과 `u_2`로부터, 동시에 결손값이 없는 요소만 추출한 벡터를 얻는다\n", + " common_items = ~np.isnan(u_1) & ~np.isnan(u_2)\n", + "\n", + " # 공통으로 평가한 아이템이 없으면 스킵\n", + " if not common_items.any():\n", + " continue\n", + "\n", + " u_1, u_2 = u_1[common_items], u_2[common_items]\n", + "\n", + " # 피어슨 상관 계수를 사용해 사용자 1과 사용자 2의 유사도를 산출\n", + " rho_12 = peason_coefficient(u_1, u_2)\n", + "\n", + " # 사용자 1과의 유사도가 0 보다 큰 경우, 사용자 2를 유사 사용자로 간주한다\n", + " if rho_12 > 0:\n", + " similar_users.append(user2_id)\n", + " similarities.append(rho_12)\n", + " avgs.append(np.mean(u_2))\n", + "\n", + " # 사용자 1의 평균 평갓값\n", + " avg_1 = np.mean(user_movie_matrix.loc[user1_id, :].dropna().to_numpy())\n", + "\n", + " # 예측 대상 영화의 ID\n", + " test_movies = movie_rating_predict[movie_rating_predict[\"user_id\"] == user1_id].movie_id.values\n", + " # 예측할 수 없는 영화에 대한 평갓값은 사용자 1의 평균 평갓값으로 한다\n", + " movie_rating_predict.loc[(movie_rating_predict[\"user_id\"] == user1_id), \"rating_pred\"] = avg_1\n", + "\n", + " if similar_users:\n", + " for movie_id in test_movies:\n", + " if movie_id in movie_id2index:\n", + " r_xy = user_movie_matrix.loc[similar_users, movie_id].to_numpy()\n", + " rating_exists = ~np.isnan(r_xy)\n", + "\n", + " # 유사 사용자가 대상이 되는 영화에 대한 평갓값을 갖지 않은 경우는 스킵한다\n", + " if not rating_exists.any():\n", + " continue\n", + "\n", + " r_xy = r_xy[rating_exists]\n", + " rho_1x = np.array(similarities)[rating_exists]\n", + " avg_x = np.array(avgs)[rating_exists]\n", + " r_hat_1y = avg_1 + np.dot(rho_1x, (r_xy - avg_x)) / rho_1x.sum()\n", + "\n", + " # 예측 평갓값을 저장\n", + " movie_rating_predict.loc[\n", + " (movie_rating_predict[\"user_id\"] == user1_id)\n", + " & (movie_rating_predict[\"movie_id\"] == movie_id),\n", + " \"rating_pred\",\n", + " ] = r_hat_1y\n", + " break # 계산이 무거우므로, for 루프는 1번만 수행한 뒤 종료합니다. 각 변수에 어떤 값이 들어있는지 확인하면 알고리즘을 더 깊이 이해할 수 있습니다." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "665ebafd", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 43701, + "status": "ok", + "timestamp": 1672120691833, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "665ebafd", + "outputId": "114ccdfc-023b-4a0b-d695-4b2c631818a5" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", + "Collecting surprise\n", + " Downloading surprise-0.1-py2.py3-none-any.whl (1.8 kB)\n", + "Collecting scikit-surprise\n", + " Downloading scikit-surprise-1.1.3.tar.gz (771 kB)\n", + "\u001b[K |████████████████████████████████| 771 kB 33.9 MB/s \n", + "\u001b[?25hRequirement already satisfied: joblib>=1.0.0 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.2.0)\n", + "Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.21.6)\n", + "Requirement already satisfied: scipy>=1.3.2 in /usr/local/lib/python3.8/dist-packages (from scikit-surprise->surprise) (1.7.3)\n", + "Building wheels for collected packages: scikit-surprise\n", + " Building wheel for scikit-surprise (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + " Created wheel for scikit-surprise: filename=scikit_surprise-1.1.3-cp38-cp38-linux_x86_64.whl size=2626503 sha256=0e6db95d2a4c33d1ddb4f8a1bdfe526bfa9ce95d16c0f4728ccec069f280cbd1\n", + " Stored in directory: /root/.cache/pip/wheels/af/db/86/2c18183a80ba05da35bf0fb7417aac5cddbd93bcb1b92fd3ea\n", + "Successfully built scikit-surprise\n", + "Installing collected packages: scikit-surprise, surprise\n", + "Successfully installed scikit-surprise-1.1.3 surprise-0.1\n" + ] + } + ], + "source": [ + "!pip install surprise" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "b42f291a", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 203038, + "status": "ok", + "timestamp": 1672121035097, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "b42f291a", + "outputId": "d9542b8c-d6ab-44a2-ca47-dbb7e74fc6e0" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Computing the pearson similarity matrix...\n", + "Done computing similarity matrix.\n" + ] + }, + { + "data": { + "text/plain": [ + "defaultdict(list,\n", + " {139: [6319, 2721, 2131, 3415, 1121, 2509, 4221, 4418, 4509, 5101],\n", + " 149: [2494,\n", + " 26425,\n", + " 137,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 2425,\n", + " 31116],\n", + " 182: [6319, 3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 6122],\n", + " 215: [1564, 3365, 1204, 1131, 2931, 2938, 1192, 1489, 2679, 1147],\n", + " 281: [137,\n", + " 1477,\n", + " 26425,\n", + " 6319,\n", + " 27255,\n", + " 2911,\n", + " 4850,\n", + " 5069,\n", + " 2494,\n", + " 31116],\n", + " 326: [1192, 2679, 3341, 7064, 32316, 3415, 3473, 4208, 4453, 146],\n", + " 351: [3473,\n", + " 6122,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 3777,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116],\n", + " 357: [7064,\n", + " 3473,\n", + " 4850,\n", + " 2911,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 1444],\n", + " 426: [26425,\n", + " 137,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 456: [3473,\n", + " 2911,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 3823,\n", + " 1444,\n", + " 3415,\n", + " 4928],\n", + " 459: [2494,\n", + " 2911,\n", + " 2704,\n", + " 27255,\n", + " 3777,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 220,\n", + " 31116],\n", + " 494: [6319,\n", + " 2494,\n", + " 2911,\n", + " 2704,\n", + " 27255,\n", + " 1477,\n", + " 1621,\n", + " 26425,\n", + " 2721,\n", + " 31116],\n", + " 517: [7064, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 3645],\n", + " 524: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6122, 4850, 5069],\n", + " 556: [26425,\n", + " 137,\n", + " 1477,\n", + " 3473,\n", + " 6319,\n", + " 27255,\n", + " 2911,\n", + " 4850,\n", + " 31116,\n", + " 1444],\n", + " 588: [7064,\n", + " 3473,\n", + " 27741,\n", + " 2911,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 2721,\n", + " 31116,\n", + " 1444],\n", + " 589: [6319, 3415, 3473, 6023, 1121, 2509, 4135, 4221, 4418, 4509],\n", + " 590: [2930,\n", + " 26425,\n", + " 4850,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 3645],\n", + " 601: [3341, 6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732],\n", + " 621: [3415, 3473, 6271, 6918, 7067, 7749, 7759, 8256, 8724, 8785],\n", + " 634: [2203,\n", + " 1192,\n", + " 2679,\n", + " 3341,\n", + " 7064,\n", + " 7933,\n", + " 32316,\n", + " 2721,\n", + " 3415,\n", + " 4208],\n", + " 672: [26425,\n", + " 3002,\n", + " 6168,\n", + " 3777,\n", + " 137,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911],\n", + " 701: [8533, 2203, 678, 1658, 2618, 5283, 1273, 973, 2679, 6187],\n", + " 719: [6319, 4356, 6016, 4850, 5305, 5840, 2977, 1477, 26425, 850],\n", + " 745: [3473,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 4850,\n", + " 31116,\n", + " 1444],\n", + " 757: [1564, 5952, 28, 527, 926, 1046, 2028, 1260, 1261, 2959],\n", + " 775: [260, 858, 1131, 2075, 2938, 5122, 1192, 2679, 1147, 615],\n", + " 780: [3415, 3473, 4850, 3645, 1572, 4928, 6271, 6918, 7067, 7749],\n", + " 785: [7064, 2721, 3415, 146, 1121, 2509, 4221, 4418, 4509, 4732],\n", + " 788: [4633, 2679, 5304, 6783, 7064, 2721, 1493, 2043, 3415, 4208],\n", + " 870: [26425,\n", + " 6319,\n", + " 27255,\n", + " 2911,\n", + " 4850,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 6271,\n", + " 7067],\n", + " 987: [4850,\n", + " 2494,\n", + " 26425,\n", + " 4135,\n", + " 2879,\n", + " 206,\n", + " 3266,\n", + " 31116,\n", + " 5255,\n", + " 5438],\n", + " 988: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 6271, 7067],\n", + " 1020: [260, 28, 47, 242, 2571, 1260, 4226, 1136, 2959, 1131],\n", + " 1: [122, 362, 466, 520, 616, 110, 151, 260, 376, 590],\n", + " 22: [6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n", + " 26: [2679, 2714, 5434, 49932, 6319, 7064, 2721, 3473, 4208, 1844],\n", + " 30: [858, 213, 1148, 1564, 8783, 58, 171, 232, 242, 306],\n", + " 34: [26425,\n", + " 3777,\n", + " 3804,\n", + " 137,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2721,\n", + " 31116],\n", + " 38: [2852, 40826, 3516, 279, 1837, 2679, 6213, 6219, 2721, 99],\n", + " 50: [1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 4732,\n", + " 34164,\n", + " 2911,\n", + " 1871,\n", + " 27255],\n", + " 53: [2930,\n", + " 26425,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 3645],\n", + " 54: [6319,\n", + " 7064,\n", + " 2911,\n", + " 2704,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 8199,\n", + " 3415],\n", + " 67: [2075, 2679, 8916, 6319, 715, 3415, 4208, 4424, 2691, 146],\n", + " 71: [2704,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 3694,\n", + " 3695,\n", + " 2721,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 76: [1260, 2203, 2618, 5573, 1131, 2075, 2931, 2459, 4633, 279],\n", + " 88: [527, 5255, 7193, 1131, 1132, 2931, 2938, 4276, 5122, 318],\n", + " 89: [2679, 1034, 615, 7064, 1493, 3415, 4208, 4453, 3076, 8341],\n", + " 94: [6319,\n", + " 3473,\n", + " 5069,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 3415],\n", + " 95: [6319, 3415, 4928, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n", + " 100: [26425,\n", + " 137,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 101: [3918, 6319, 7064, 7933, 3224, 3415, 1927, 6122, 4850, 4939],\n", + " 102: [4850,\n", + " 2911,\n", + " 2704,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 6122,\n", + " 1444,\n", + " 3415],\n", + " 103: [4850,\n", + " 26425,\n", + " 3473,\n", + " 27255,\n", + " 1871,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 6023,\n", + " 6271],\n", + " 111: [2075, 6319, 2721, 2131, 3415, 1121, 2509, 4221, 4418, 4509],\n", + " 116: [279, 4920, 3473, 7042, 49957, 1184, 2579, 3579, 6780, 6918],\n", + " 118: [1871,\n", + " 26425,\n", + " 1477,\n", + " 3473,\n", + " 6319,\n", + " 27255,\n", + " 2911,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 143: [3415, 3473, 3645, 1572, 4928, 6271, 6918, 7067, 7749, 7759],\n", + " 144: [3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 5101, 4928],\n", + " 162: [2931, 2938, 4633, 5122, 1192, 2679, 615, 3341, 680, 7064],\n", + " 172: [4135,\n", + " 4850,\n", + " 2704,\n", + " 26425,\n", + " 6319,\n", + " 2721,\n", + " 31116,\n", + " 3415,\n", + " 6023,\n", + " 3645],\n", + " 173: [5017, 2075, 2938, 1192, 2679, 5434, 49932, 680, 5304, 6783],\n", + " 187: [3918,\n", + " 4135,\n", + " 4850,\n", + " 26425,\n", + " 1361,\n", + " 2930,\n", + " 1477,\n", + " 34164,\n", + " 6780,\n", + " 2925],\n", + " 193: [26425,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 850,\n", + " 31116,\n", + " 1444,\n", + " 4079,\n", + " 3415],\n", + " 208: [28, 541, 926, 1221, 2571, 2936, 5017, 6273, 5438, 5573],\n", + " 210: [2931, 2679, 3341, 7064, 3415, 3473, 4453, 2925, 1121, 2509],\n", + " 214: [3473,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 3777,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 1444],\n", + " 228: [3516, 1192, 615, 1684, 49932, 8596, 32316, 206, 2166, 5077],\n", + " 232: [1477,\n", + " 26425,\n", + " 3473,\n", + " 6319,\n", + " 27255,\n", + " 2911,\n", + " 2704,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 236: [6319, 3415, 6023, 5077, 6122, 4850, 4928, 6271, 6918, 7067],\n", + " 259: [2494, 2911, 2704, 137, 27255, 3777, 3804, 3002, 1477, 6168],\n", + " 260: [2704,\n", + " 26425,\n", + " 27255,\n", + " 2911,\n", + " 2977,\n", + " 7064,\n", + " 121,\n", + " 2721,\n", + " 31116,\n", + " 1444],\n", + " 267: [2704,\n", + " 26425,\n", + " 137,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 31116,\n", + " 1444],\n", + " 268: [5573, 615, 6319, 2721, 5077, 6122, 4850, 8477, 5069, 6780],\n", + " 271: [1192,\n", + " 3676,\n", + " 32316,\n", + " 2721,\n", + " 3473,\n", + " 7063,\n", + " 3511,\n", + " 1121,\n", + " 2509,\n", + " 4221],\n", + " 274: [1192, 2679, 7064, 3415, 3473, 4208, 1121, 2509, 4221, 4418],\n", + " 287: [2704,\n", + " 26425,\n", + " 4135,\n", + " 6319,\n", + " 27255,\n", + " 2911,\n", + " 2721,\n", + " 31116,\n", + " 1444,\n", + " 7064],\n", + " 292: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 6271, 6918],\n", + " 296: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4850, 6271, 6918],\n", + " 303: [137,\n", + " 26425,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 6319,\n", + " 27255,\n", + " 2911,\n", + " 31116,\n", + " 1871],\n", + " 307: [26425,\n", + " 2494,\n", + " 137,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2704,\n", + " 31116,\n", + " 7064],\n", + " 310: [2679, 7064, 2721, 3415, 3473, 4208, 4453, 1121, 2509, 4221],\n", + " 315: [2203, 3516, 279, 4914, 1934, 2721, 581, 6122, 1649, 6780],\n", + " 320: [2075, 2721, 3415, 146, 1121, 2509, 4221, 4418, 4509, 4732],\n", + " 332: [2679,\n", + " 6319,\n", + " 1934,\n", + " 3503,\n", + " 32316,\n", + " 3415,\n", + " 3473,\n", + " 2691,\n", + " 4783,\n", + " 8580],\n", + " 339: [3415, 3473, 6023, 6122, 3645, 668, 1572, 4928, 6271, 6918],\n", + " 343: [2714,\n", + " 1034,\n", + " 7064,\n", + " 4850,\n", + " 2494,\n", + " 2704,\n", + " 1477,\n", + " 26425,\n", + " 5893,\n", + " 8712],\n", + " 355: [1192,\n", + " 2679,\n", + " 6319,\n", + " 7064,\n", + " 8199,\n", + " 32316,\n", + " 3415,\n", + " 3473,\n", + " 2691,\n", + " 1121],\n", + " 364: [858, 527, 1046, 1172, 1260, 5017, 2959, 1131, 1132, 2075],\n", + " 365: [1192, 3341, 6319, 7064, 3415, 3473, 4453, 2925, 3511, 1121],\n", + " 368: [7064, 3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 5101],\n", + " 381: [260, 858, 1148, 5952, 28, 111, 232, 242, 306, 326],\n", + " 382: [5017, 3516, 2679, 1034, 3918, 615, 4920, 5304, 7064, 1493],\n", + " 383: [3473,\n", + " 4135,\n", + " 137,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 2911,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 391: [3516, 615, 6319, 7064, 2721, 3415, 1121, 2509, 4221, 4418],\n", + " 396: [858, 1564, 28, 47, 912, 1199, 1221, 1260, 2936, 4226],\n", + " 398: [3415, 3473, 121, 1121, 2509, 4221, 4418, 4509, 4850, 8195],\n", + " 406: [1034, 2721, 99, 3415, 6023, 6122, 4850, 4939, 3645, 668],\n", + " 409: [2618,\n", + " 2075,\n", + " 3516,\n", + " 49932,\n", + " 4359,\n", + " 7327,\n", + " 7933,\n", + " 8596,\n", + " 5034,\n", + " 6591],\n", + " 410: [5017,\n", + " 2679,\n", + " 6219,\n", + " 2714,\n", + " 1684,\n", + " 2204,\n", + " 3546,\n", + " 4920,\n", + " 49932,\n", + " 6319],\n", + " 416: [2931,\n", + " 2938,\n", + " 4633,\n", + " 1192,\n", + " 2679,\n", + " 2048,\n", + " 3341,\n", + " 4920,\n", + " 5434,\n", + " 39419],\n", + " 418: [615, 6319, 3415, 146, 6023, 1121, 2509, 4221, 4418, 4509],\n", + " 419: [3473,\n", + " 2494,\n", + " 2911,\n", + " 27255,\n", + " 3777,\n", + " 1477,\n", + " 6168,\n", + " 26425,\n", + " 31116,\n", + " 1444],\n", + " 421: [408,\n", + " 2721,\n", + " 3473,\n", + " 6122,\n", + " 27741,\n", + " 2911,\n", + " 3694,\n", + " 3695,\n", + " 27255,\n", + " 1477],\n", + " 424: [1219, 1221, 2571, 50, 1260, 1131, 2931, 2938, 5122, 1192],\n", + " 432: [6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4850],\n", + " 434: [137,\n", + " 26425,\n", + " 2930,\n", + " 1477,\n", + " 27255,\n", + " 2911,\n", + " 6319,\n", + " 31116,\n", + " 1444,\n", + " 27648],\n", + " 436: [2075, 6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 1572],\n", + " 438: [3516, 7064, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509],\n", + " 441: [7064, 2721, 99, 3473, 2911, 1477, 3415, 6023, 3645, 1572],\n", + " 446: [2075, 6319, 7064, 3415, 146, 1121, 2509, 4221, 4418, 4509],\n", + " 452: [615, 1684, 7064, 32316, 2721, 3096, 3384, 3548, 336, 3511],\n", + " 460: [326, 1046, 1172, 1264, 50, 1260, 2203, 5017, 2959, 1131],\n", + " 463: [3415, 1121, 2509, 4221, 4418, 4509, 3645, 1572, 4928, 6271],\n", + " 468: [1871,\n", + " 6122,\n", + " 1477,\n", + " 6319,\n", + " 27255,\n", + " 2911,\n", + " 3823,\n", + " 1444,\n", + " 3415,\n", + " 4928],\n", + " 469: [858, 213, 1246, 1252, 1276, 1288, 28, 47, 171, 242],\n", + " 472: [5573,\n", + " 4276,\n", + " 3918,\n", + " 3262,\n", + " 6319,\n", + " 49957,\n", + " 2925,\n", + " 3511,\n", + " 1121,\n", + " 2509],\n", + " 476: [2075, 2679, 7064, 3415, 3473, 146, 1121, 2509, 4135, 4221],\n", + " 480: [26425,\n", + " 137,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 2494,\n", + " 31116,\n", + " 1444],\n", + " 482: [3473,\n", + " 2494,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 6168,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 1444],\n", + " 493: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4850, 4939],\n", + " 496: [3415, 146, 1121, 2509, 4221, 4418, 4509, 6122, 4939, 6271],\n", + " 501: [2679, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4850, 6162],\n", + " 504: [6319,\n", + " 4850,\n", + " 2911,\n", + " 2704,\n", + " 27255,\n", + " 26425,\n", + " 31116,\n", + " 7064,\n", + " 1444,\n", + " 3415],\n", + " 505: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4850, 6241],\n", + " 511: [2203, 1658, 5573, 2075, 2931, 2938, 3115, 3516, 1192, 6006],\n", + " 516: [50, 2938, 1192, 2679, 680, 7064, 32316, 2721, 2131, 3415],\n", + " 525: [6122,\n", + " 1477,\n", + " 6319,\n", + " 27255,\n", + " 2911,\n", + " 3694,\n", + " 3695,\n", + " 2721,\n", + " 1444,\n", + " 3415],\n", + " 530: [1034, 615, 3341, 6319, 3415, 3473, 1121, 2509, 4135, 4221],\n", + " 531: [3918,\n", + " 2721,\n", + " 4135,\n", + " 6122,\n", + " 4850,\n", + " 27741,\n", + " 2704,\n", + " 27255,\n", + " 1477,\n", + " 26425],\n", + " 533: [2679, 7064, 2721, 3415, 3473, 4453, 146, 1121, 2509, 4221],\n", + " 536: [495, 3477, 5255, 6290, 2075, 2938, 40826, 1192, 2679, 1034],\n", + " 543: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 5391, 8195],\n", + " 547: [5573, 3341, 6319, 7064, 3415, 3473, 3511, 1121, 2509, 4135],\n", + " 549: [6319,\n", + " 2494,\n", + " 2911,\n", + " 2704,\n", + " 3694,\n", + " 3695,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116],\n", + " 553: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 4850],\n", + " 558: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4939, 3645],\n", + " 562: [242, 7193, 7376, 2075, 2931, 2938, 5882, 5122, 6316, 955],\n", + " 567: [5255, 4276, 4914, 7064, 7933, 5034, 5899, 1361, 1535, 1121],\n", + " 571: [26425,\n", + " 1871,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 4850,\n", + " 31116,\n", + " 1444],\n", + " 572: [3473,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 2911,\n", + " 2494,\n", + " 2704,\n", + " 31116],\n", + " 577: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6122, 4850, 6271],\n", + " 581: [3473,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 4732,\n", + " 5101,\n", + " 4939,\n", + " 34164],\n", + " 585: [3473,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 3777,\n", + " 1477,\n", + " 6168,\n", + " 2930,\n", + " 26425,\n", + " 31116],\n", + " 593: [2075, 2679, 6319, 7064, 2721, 1493, 2131, 3224, 3415, 4453],\n", + " 604: [26425,\n", + " 1477,\n", + " 6319,\n", + " 27255,\n", + " 2911,\n", + " 3694,\n", + " 3695,\n", + " 1621,\n", + " 31116,\n", + " 1444],\n", + " 605: [3473,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 2704,\n", + " 1444],\n", + " 609: [2075, 2679, 3341, 4920, 49932, 7064, 1493, 4424, 146, 1121],\n", + " 628: [2679,\n", + " 3546,\n", + " 49932,\n", + " 1934,\n", + " 7064,\n", + " 7933,\n", + " 32316,\n", + " 3473,\n", + " 42015,\n", + " 4453],\n", + " 629: [615, 3341, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n", + " 645: [5069,\n", + " 5305,\n", + " 2704,\n", + " 137,\n", + " 26425,\n", + " 1477,\n", + " 1621,\n", + " 3473,\n", + " 27255,\n", + " 3823],\n", + " 650: [3516, 2679, 3379, 7064, 3415, 3473, 4208, 4453, 6023, 1121],\n", + " 656: [2075,\n", + " 2679,\n", + " 6319,\n", + " 32316,\n", + " 1493,\n", + " 3415,\n", + " 2691,\n", + " 2925,\n", + " 1121,\n", + " 2509],\n", + " 657: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6271, 7067, 7749],\n", + " 669: [3516,\n", + " 2679,\n", + " 4920,\n", + " 49932,\n", + " 3415,\n", + " 3473,\n", + " 4495,\n", + " 1121,\n", + " 2509,\n", + " 4221],\n", + " 678: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4600],\n", + " 683: [7064, 8125, 8199, 2131, 3415, 3645, 668, 1572, 4928, 6271],\n", + " 688: [3473,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 689: [1172, 5255, 613, 1131, 2938, 955, 1192, 2679, 1147, 1034],\n", + " 693: [6319,\n", + " 3415,\n", + " 3473,\n", + " 49957,\n", + " 2925,\n", + " 6023,\n", + " 8580,\n", + " 3511,\n", + " 1121,\n", + " 2509],\n", + " 716: [3415,\n", + " 3473,\n", + " 6271,\n", + " 7067,\n", + " 7749,\n", + " 7759,\n", + " 8256,\n", + " 8724,\n", + " 8785,\n", + " 26151],\n", + " 720: [2936, 5017, 5438, 6662, 2075, 2931, 3115, 3074, 5007, 7162],\n", + " 734: [6319,\n", + " 3473,\n", + " 4850,\n", + " 5069,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 2704],\n", + " 735: [6319,\n", + " 2494,\n", + " 2911,\n", + " 2704,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 739: [26425,\n", + " 3777,\n", + " 3804,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 2721,\n", + " 31116],\n", + " 755: [6319,\n", + " 27255,\n", + " 1477,\n", + " 1621,\n", + " 26425,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 6023,\n", + " 4928],\n", + " 758: [1260, 5017, 2931, 2938, 3516, 279, 1192, 2679, 2594, 1646],\n", + " 767: [1148, 904, 1234, 1260, 4226, 5017, 2858, 2997, 4011, 1131],\n", + " 769: [3341, 7064, 3415, 3473, 6023, 5077, 6122, 8195, 4928, 6271],\n", + " 786: [3473,\n", + " 2911,\n", + " 1871,\n", + " 27255,\n", + " 3777,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 7064],\n", + " 789: [6319, 3415, 3473, 6023, 4850, 3645, 4928, 6271, 7067, 7749],\n", + " 792: [2704,\n", + " 26425,\n", + " 2494,\n", + " 7064,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 3694,\n", + " 3695,\n", + " 31116],\n", + " 795: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6271, 7067],\n", + " 798: [3777, 3804, 137, 2930, 1477, 3473, 27255, 2911, 1444, 3415],\n", + " 799: [260, 1192, 2679, 615, 3341, 5434, 49932, 6319, 680, 7013],\n", + " 802: [2075, 6319, 2721, 1493, 5899, 8341, 1121, 2509, 4221, 4418],\n", + " 806: [6319,\n", + " 3473,\n", + " 4135,\n", + " 4850,\n", + " 27741,\n", + " 2911,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 2494],\n", + " 807: [260, 1148, 50, 1260, 2203, 3365, 4226, 2858, 2959, 1131],\n", + " 816: [5573, 279, 1192, 3918, 615, 6319, 7064, 927, 3415, 190],\n", + " 827: [2679, 2721, 715, 1398, 1493, 2691, 8341, 1236, 1442, 1121],\n", + " 828: [1046, 678, 6296, 6440, 6695, 1132, 2075, 2931, 2938, 973],\n", + " 846: [6319, 3415, 6023, 5077, 6122, 4939, 3645, 4928, 6271, 7067],\n", + " 859: [2494,\n", + " 2704,\n", + " 137,\n", + " 26425,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 31116],\n", + " 862: [6319, 7064, 3473, 5077, 6122, 2488, 4850, 6179, 1859, 6270],\n", + " 876: [4276,\n", + " 6319,\n", + " 1934,\n", + " 7064,\n", + " 32316,\n", + " 2721,\n", + " 3473,\n", + " 42015,\n", + " 4783,\n", + " 2483],\n", + " 881: [6319, 2721, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4929],\n", + " 885: [3415, 6023, 1121, 2509, 4221, 4418, 4509, 4939, 4928, 6271],\n", + " 886: [137,\n", + " 3777,\n", + " 26425,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 31116,\n", + " 1444],\n", + " 889: [615, 6319, 7064, 3415, 4135, 4939, 3645, 4928, 6271, 7067],\n", + " 890: [2721, 3415, 3645, 4928, 6271, 7067, 7749, 7759, 8256, 8724],\n", + " 891: [2494,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 2911,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 896: [137,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 3473,\n", + " 6319,\n", + " 27255,\n", + " 2911,\n", + " 5069,\n", + " 31116],\n", + " 897: [6319, 7064, 8199, 3415, 3511, 1121, 2509, 4135, 4221, 4418],\n", + " 898: [7064, 7933, 32316, 2721, 715, 3415, 1121, 2509, 4221, 4418],\n", + " 908: [213, 495, 926, 1172, 904, 1234, 1260, 1348, 2203, 3435],\n", + " 922: [1797,\n", + " 2679,\n", + " 1684,\n", + " 1934,\n", + " 5304,\n", + " 6783,\n", + " 7064,\n", + " 7933,\n", + " 32316,\n", + " 2721],\n", + " 930: [5573, 1131, 2938, 1192, 103, 2679, 2696, 615, 3546, 4920],\n", + " 938: [1260, 2936, 5017, 2075, 1192, 2679, 3341, 4920, 680, 1934],\n", + " 956: [26425,\n", + " 1477,\n", + " 27255,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 6023,\n", + " 4928,\n", + " 6271,\n", + " 7067],\n", + " 958: [3473,\n", + " 2494,\n", + " 2911,\n", + " 27255,\n", + " 3777,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 850,\n", + " 31116],\n", + " 968: [242, 1046, 5017, 6273, 324, 26131, 1131, 1233, 2075, 2931],\n", + " 977: [3473,\n", + " 2494,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 6122,\n", + " 31116],\n", + " 990: [26425,\n", + " 1477,\n", + " 3473,\n", + " 6319,\n", + " 27255,\n", + " 3694,\n", + " 3695,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 996: [6319,\n", + " 3473,\n", + " 4135,\n", + " 4850,\n", + " 5069,\n", + " 34164,\n", + " 2704,\n", + " 1444,\n", + " 137,\n", + " 27255],\n", + " 1004: [2494,\n", + " 3777,\n", + " 3804,\n", + " 26425,\n", + " 2704,\n", + " 2930,\n", + " 1477,\n", + " 27255,\n", + " 2911,\n", + " 2721],\n", + " 1005: [1192,\n", + " 2679,\n", + " 49932,\n", + " 6319,\n", + " 1934,\n", + " 3415,\n", + " 3473,\n", + " 6023,\n", + " 8580,\n", + " 1121],\n", + " 1008: [2131,\n", + " 3415,\n", + " 6023,\n", + " 3511,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 6122],\n", + " 1029: [6319,\n", + " 7064,\n", + " 8125,\n", + " 8154,\n", + " 8199,\n", + " 2721,\n", + " 1493,\n", + " 2131,\n", + " 3224,\n", + " 3415],\n", + " 1037: [1192, 3918, 3341, 7064, 2131, 3415, 4208, 4453, 2691, 121],\n", + " 1050: [6319,\n", + " 2911,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 4928,\n", + " 6271],\n", + " 4: [527, 2203, 5017, 6273, 613, 1131, 1132, 2931, 2938, 3516],\n", + " 8: [3415, 1121, 2509, 4221, 4418, 4509, 5101, 4928, 6271, 7067],\n", + " 18: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4928, 6271],\n", + " 36: [2721, 3415, 3473, 6023, 668, 1572, 4928, 6271, 6918, 7067],\n", + " 47: [356, 1148, 28, 306, 326, 527, 912, 926, 1172, 1219],\n", + " 59: [1034, 3341, 6319, 7064, 3415, 3645, 6271, 7067, 7749, 7759],\n", + " 62: [5017, 1034, 6319, 5304, 7064, 2721, 3415, 3473, 49957, 149],\n", + " 77: [6319, 2721, 3415, 3473, 6122, 3645, 4928, 6271, 6918, 7067],\n", + " 79: [3415, 3473, 5077, 6122, 4928, 6271, 7067, 7749, 7759, 8256],\n", + " 80: [6319, 7064, 8199, 3415, 3473, 6023, 4135, 4850, 3645, 5069],\n", + " 119: [2494,\n", + " 137,\n", + " 26425,\n", + " 1477,\n", + " 3473,\n", + " 2704,\n", + " 27255,\n", + " 5069,\n", + " 2911,\n", + " 4850],\n", + " 122: [4226, 2931, 2679, 3929, 6319, 680, 7064, 8199, 32316, 2721],\n", + " 125: [7064, 3415, 146, 336, 1121, 2509, 4221, 4418, 4509, 5101],\n", + " 126: [3473,\n", + " 1871,\n", + " 137,\n", + " 3777,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 27255,\n", + " 2911,\n", + " 31116],\n", + " 132: [5069,\n", + " 2704,\n", + " 26425,\n", + " 2494,\n", + " 4135,\n", + " 4850,\n", + " 6319,\n", + " 27255,\n", + " 2911,\n", + " 31116],\n", + " 141: [3341, 2721, 3415, 3473, 6122, 4850, 3645, 1572, 4928, 6271],\n", + " 154: [7064,\n", + " 32316,\n", + " 3415,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 5101,\n", + " 4850],\n", + " 155: [1489, 2679, 680, 7064, 8125, 8199, 32316, 2721, 3415, 3473],\n", + " 163: [6319,\n", + " 4135,\n", + " 6122,\n", + " 4850,\n", + " 2494,\n", + " 27255,\n", + " 1477,\n", + " 2721,\n", + " 3823,\n", + " 1444],\n", + " 164: [2714,\n", + " 3932,\n", + " 3341,\n", + " 4920,\n", + " 49932,\n", + " 3473,\n", + " 2691,\n", + " 2102,\n", + " 8580,\n", + " 3511],\n", + " 170: [2494,\n", + " 3777,\n", + " 3804,\n", + " 26425,\n", + " 2930,\n", + " 1477,\n", + " 27255,\n", + " 2911,\n", + " 7064,\n", + " 3694],\n", + " 171: [260, 28, 299, 954, 3365, 2618, 4387, 4452, 5110, 6662],\n", + " 176: [5017, 2714, 615, 5304, 7064, 8199, 3415, 1236, 4552, 3645],\n", + " 190: [2704,\n", + " 137,\n", + " 26425,\n", + " 4850,\n", + " 1477,\n", + " 27255,\n", + " 850,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 197: [3477,\n", + " 5438,\n", + " 40826,\n", + " 7064,\n", + " 2721,\n", + " 2131,\n", + " 3415,\n", + " 49957,\n", + " 3511,\n", + " 1121],\n", + " 198: [2931, 2938, 1192, 2679, 680, 7064, 8125, 2721, 2131, 3415],\n", + " 199: [5573, 2931, 2938, 3516, 1192, 2679, 2594, 3341, 3831, 4920],\n", + " 212: [2911,\n", + " 2704,\n", + " 1444,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 27648],\n", + " 221: [5017,\n", + " 3516,\n", + " 2679,\n", + " 6319,\n", + " 7064,\n", + " 7933,\n", + " 8199,\n", + " 32316,\n", + " 2920,\n", + " 3415],\n", + " 223: [260, 858, 213, 1148, 1276, 8533, 28, 30, 47, 242],\n", + " 226: [3415, 3473, 1572, 6271, 6918, 7067, 7749, 7759, 8256, 8724],\n", + " 241: [3097,\n", + " 3307,\n", + " 4356,\n", + " 3090,\n", + " 3857,\n", + " 5840,\n", + " 2977,\n", + " 1477,\n", + " 1621,\n", + " 26425],\n", + " 247: [1148, 30, 495, 1172, 1234, 1260, 3730, 678, 2618, 6695],\n", + " 249: [2931, 2938, 5122, 1192, 2679, 3341, 3546, 49932, 6319, 680],\n", + " 254: [1046, 3516, 2679, 7064, 2131, 3415, 4208, 4453, 1236, 146],\n", + " 264: [6319, 2721, 3415, 212, 1121, 2509, 4221, 4418, 4509, 4732],\n", + " 273: [1148, 28, 326, 334, 495, 912, 1046, 1172, 1199, 1221],\n", + " 275: [3415, 3473, 6023, 3511, 1121, 2509, 4221, 4418, 4509, 6271],\n", + " 276: [26425,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 7064,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 293: [4978, 5573, 2075, 2931, 2679, 2594, 1646, 615, 3546, 6319],\n", + " 294: [2075, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n", + " 295: [260, 28, 495, 912, 923, 1172, 1199, 50, 1260, 2203],\n", + " 318: [7064, 3415, 3473, 146, 3511, 1121, 2509, 4221, 4418, 4509],\n", + " 321: [6319, 7064, 3415, 3473, 1121, 2509, 4135, 4221, 4418, 4509],\n", + " 345: [2679, 7064, 2721, 3415, 3473, 146, 1121, 2509, 4135, 4221],\n", + " 346: [1132, 973, 2679, 8916, 900, 3932, 4754, 49932, 2726, 5304],\n", + " 348: [260, 2075, 2931, 2938, 1192, 2679, 3341, 3546, 49932, 680],\n", + " 349: [615, 6319, 7064, 3415, 146, 3511, 1121, 2509, 4221, 4418],\n", + " 354: [260, 58, 541, 923, 926, 1172, 1207, 2028, 913, 2936],\n", + " 359: [2494,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 1444,\n", + " 3415,\n", + " 6271,\n", + " 7067],\n", + " 366: [3516, 2679, 615, 6319, 7064, 7933, 8199, 2721, 581, 3415],\n", + " 369: [2704,\n", + " 26425,\n", + " 2494,\n", + " 6122,\n", + " 1477,\n", + " 6319,\n", + " 27255,\n", + " 3694,\n", + " 3695,\n", + " 31116],\n", + " 384: [3415, 3473, 1121, 2509, 4135, 4221, 4418, 4509, 4732, 6122],\n", + " 390: [1046, 2075, 2679, 6319, 7064, 2721, 581, 2131, 3415, 4208],\n", + " 392: [1192, 2679, 6319, 7064, 3415, 3473, 4208, 121, 146, 6023],\n", + " 403: [2931, 2938, 3516, 1489, 2679, 7064, 2721, 1493, 2131, 3415],\n", + " 407: [1046, 1260, 4226, 44761, 1131, 1132, 2075, 2931, 2938, 318],\n", + " 414: [3415, 3473, 6122, 6241, 6271, 7067, 7749, 7759, 8256, 8724],\n", + " 431: [260, 1148, 1276, 28, 111, 326, 527, 593, 912, 926],\n", + " 454: [3516,\n", + " 1192,\n", + " 3341,\n", + " 4920,\n", + " 3503,\n", + " 5304,\n", + " 7064,\n", + " 8125,\n", + " 8199,\n", + " 32316],\n", + " 465: [3415, 1121, 2509, 4221, 4418, 4509, 6271, 7067, 7749, 7759],\n", + " 481: [1564, 1219, 1193, 1131, 2931, 2938, 1192, 1489, 2679, 2714],\n", + " 485: [2494,\n", + " 2911,\n", + " 27255,\n", + " 3777,\n", + " 3804,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 6122,\n", + " 31116],\n", + " 503: [2679, 615, 6319, 7064, 2721, 2131, 3415, 3473, 4208, 4453],\n", + " 513: [3473,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 3777,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 1444],\n", + " 545: [1046, 2679, 7064, 2721, 3415, 4208, 4424, 4453, 2691, 8341],\n", + " 552: [3516, 2721, 3415, 212, 1121, 2509, 4221, 4418, 4509, 4732],\n", + " 554: [137, 1871, 2930, 1477, 3473, 27255, 2911, 1444, 3415, 6271],\n", + " 555: [7064, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 668, 4928],\n", + " 561: [2075, 1489, 2679, 3546, 6319, 5304, 6783, 7064, 8125, 8154],\n", + " 565: [4920, 7064, 8199, 3415, 3473, 6023, 1121, 2509, 4221, 4418],\n", + " 591: [942, 3917, 2721, 715, 1398, 6591, 190, 2925, 336, 3511],\n", + " 617: [3341, 6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732],\n", + " 622: [733, 858, 213, 1148, 1246, 1252, 1276, 1288, 1564, 8533],\n", + " 623: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 4850],\n", + " 633: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 6271, 7067],\n", + " 636: [2930,\n", + " 26425,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 31116,\n", + " 3415,\n", + " 4928,\n", + " 6271],\n", + " 638: [2075, 3516, 2679, 7064, 2721, 3415, 3473, 4208, 146, 3511],\n", + " 641: [2704,\n", + " 26425,\n", + " 1477,\n", + " 6319,\n", + " 27255,\n", + " 2911,\n", + " 4850,\n", + " 2721,\n", + " 31116,\n", + " 1444],\n", + " 646: [3473,\n", + " 34164,\n", + " 2721,\n", + " 6772,\n", + " 1444,\n", + " 27648,\n", + " 5287,\n", + " 1149,\n", + " 6679,\n", + " 4552],\n", + " 654: [1034, 615, 6319, 3415, 1121, 2509, 4135, 4221, 4418, 4509],\n", + " 655: [2618, 2931, 2679, 2714, 5434, 49932, 6319, 680, 1934, 2935],\n", + " 658: [615, 3415, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n", + " 660: [7064,\n", + " 32316,\n", + " 3473,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 4850,\n", + " 3579],\n", + " 661: [2679,\n", + " 2714,\n", + " 6319,\n", + " 7064,\n", + " 8125,\n", + " 8199,\n", + " 32316,\n", + " 2721,\n", + " 3415,\n", + " 3473],\n", + " 677: [2679, 6319, 1934, 3503, 7064, 32316, 3415, 2691, 121, 2925],\n", + " 714: [3516, 2721, 3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509],\n", + " 715: [2075, 3516, 3341, 3415, 3473, 6023, 3511, 1121, 2509, 4135],\n", + " 723: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4928],\n", + " 731: [1172, 50, 2959, 1131, 2075, 2931, 2938, 1192, 2679, 1147],\n", + " 742: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 1572, 4928, 6271],\n", + " 743: [7064, 3473, 2704, 5840, 137, 27255, 2721, 1444, 5017, 3415],\n", + " 752: [2721, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 4939, 6162],\n", + " 772: [2704,\n", + " 137,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 31116,\n", + " 1444],\n", + " 814: [4850,\n", + " 2704,\n", + " 2930,\n", + " 27255,\n", + " 2911,\n", + " 2425,\n", + " 1444,\n", + " 3415,\n", + " 6023,\n", + " 3645],\n", + " 823: [2679, 2714, 6319, 7064, 2721, 3415, 3473, 4208, 1121, 2509],\n", + " 826: [7064, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732],\n", + " 833: [1192, 2679, 3341, 3415, 3473, 4208, 146, 212, 1121, 2509],\n", + " 838: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 3645, 6271],\n", + " 842: [1260, 2959, 6695, 2852, 2938, 1203, 955, 2679, 6612, 1147],\n", + " 852: [2075,\n", + " 1192,\n", + " 2679,\n", + " 1934,\n", + " 7064,\n", + " 8199,\n", + " 32316,\n", + " 2721,\n", + " 3415,\n", + " 4208],\n", + " 878: [3415, 3473, 6023, 4850, 6271, 7067, 7749, 7759, 8256, 8724],\n", + " 887: [926, 1046, 3365, 1131, 2075, 2931, 2938, 4276, 1192, 2679],\n", + " 895: [3341,\n", + " 4920,\n", + " 7064,\n", + " 3473,\n", + " 2163,\n", + " 1361,\n", + " 4850,\n", + " 3357,\n", + " 6162,\n", + " 34164],\n", + " 899: [3473,\n", + " 6122,\n", + " 2704,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 3694,\n", + " 3695,\n", + " 31116,\n", + " 1444],\n", + " 902: [1564, 1212, 1131, 2852, 2931, 2938, 29, 1175, 1192, 2679],\n", + " 907: [1046, 1192, 2679, 2696, 3307, 680, 1934, 5304, 6783, 7064],\n", + " 928: [3473,\n", + " 2911,\n", + " 2704,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 1444],\n", + " 936: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 3645, 4928],\n", + " 964: [2679, 3546, 6319, 7064, 2721, 3415, 3473, 4208, 4424, 4453],\n", + " 970: [1034,\n", + " 6319,\n", + " 4135,\n", + " 4850,\n", + " 2494,\n", + " 2911,\n", + " 2977,\n", + " 27255,\n", + " 1477,\n", + " 1621],\n", + " 972: [2075, 2938, 1192, 1489, 2679, 7064, 2721, 3415, 3473, 4208],\n", + " 1001: [6319, 7064, 2721, 3415, 3645, 668, 1572, 4928, 6241, 6271],\n", + " 1013: [5438, 3341, 6319, 3473, 2925, 212, 1121, 2509, 4221, 4418],\n", + " 1018: [3415,\n", + " 3473,\n", + " 1572,\n", + " 4928,\n", + " 6271,\n", + " 6918,\n", + " 7067,\n", + " 7749,\n", + " 7759,\n", + " 8256],\n", + " 1028: [1148, 527, 1046, 1096, 1172, 951, 954, 1212, 1260, 2203],\n", + " 1031: [260, 326, 1104, 1197, 50, 954, 1212, 1248, 2203, 1611],\n", + " 1035: [7064,\n", + " 8125,\n", + " 8154,\n", + " 8199,\n", + " 2721,\n", + " 3415,\n", + " 3473,\n", + " 49957,\n", + " 1927,\n", + " 6023],\n", + " 1038: [1148, 1288, 5952, 150, 242, 299, 326, 527, 912, 926],\n", + " 1045: [2679, 7064, 2721, 3415, 3473, 4453, 146, 1121, 2509, 4221],\n", + " 1046: [1148, 28, 1260, 2203, 3365, 678, 5573, 2075, 2931, 2938],\n", + " 35: [2494,\n", + " 2911,\n", + " 2704,\n", + " 27255,\n", + " 3777,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 1444],\n", + " 72: [28, 26131, 613, 1131, 2075, 2852, 2931, 1192, 1489, 2679],\n", + " 91: [3516, 7064, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509],\n", + " 106: [7064,\n", + " 3473,\n", + " 6122,\n", + " 6780,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 2925,\n", + " 4914,\n", + " 8712],\n", + " 128: [858, 1148, 1276, 1288, 111, 541, 608, 926, 1172, 1196],\n", + " 158: [2075, 2852, 615, 3341, 6319, 7064, 8199, 32316, 2131, 3224],\n", + " 160: [2494,\n", + " 26425,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 4850,\n", + " 2704,\n", + " 31116],\n", + " 175: [1564, 28, 232, 326, 926, 1046, 1199, 954, 4327, 6273],\n", + " 196: [49932,\n", + " 1934,\n", + " 7933,\n", + " 32316,\n", + " 3473,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509],\n", + " 203: [3415, 6023, 8580, 3511, 1121, 2509, 4221, 4418, 4509, 4732],\n", + " 206: [1564,\n", + " 1199,\n", + " 2075,\n", + " 2931,\n", + " 2938,\n", + " 40826,\n", + " 3516,\n", + " 1192,\n", + " 1489,\n", + " 2679],\n", + " 207: [4850,\n", + " 2704,\n", + " 27255,\n", + " 1477,\n", + " 1621,\n", + " 26425,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 6023],\n", + " 255: [1264, 4053, 50, 1260, 3365, 6273, 2959, 1131, 2075, 2938],\n", + " 265: [2796, 4387, 5438, 506, 1273, 3889, 40826, 1797, 2693, 5954],\n", + " 340: [6319,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 4732,\n", + " 4939,\n", + " 34164,\n", + " 2494],\n", + " 404: [4850,\n", + " 2494,\n", + " 2704,\n", + " 26425,\n", + " 1477,\n", + " 6319,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 6023],\n", + " 433: [6319, 3415, 3473, 6023, 8580, 6122, 8195, 3645, 4928, 6271],\n", + " 440: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4929, 4850],\n", + " 444: [1131, 2931, 2938, 4633, 3516, 1192, 745, 408, 2679, 1642],\n", + " 450: [3415, 3473, 4928, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n", + " 479: [3415, 6023, 6122, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n", + " 491: [1199,\n", + " 2931,\n", + " 2679,\n", + " 3097,\n", + " 3546,\n", + " 5434,\n", + " 39419,\n", + " 49932,\n", + " 7064,\n", + " 2721],\n", + " 506: [3341, 7064, 32316, 2721, 3415, 3473, 4208, 146, 1121, 2509],\n", + " 523: [1564, 28, 495, 912, 1046, 1212, 2959, 7193, 44761, 1131],\n", + " 539: [6319,\n", + " 3473,\n", + " 27255,\n", + " 26425,\n", + " 3694,\n", + " 3695,\n", + " 34164,\n", + " 49957,\n", + " 31116,\n", + " 1444],\n", + " 541: [6319, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 4850, 3645],\n", + " 616: [1193, 1260, 3365, 1200, 1704, 4878, 1131, 1132, 2075, 2931],\n", + " 647: [6319,\n", + " 2494,\n", + " 2704,\n", + " 5840,\n", + " 1477,\n", + " 26425,\n", + " 6122,\n", + " 2721,\n", + " 8712,\n", + " 31116],\n", + " 659: [2714, 615, 7064, 3415, 5899, 146, 1121, 2509, 4135, 4221],\n", + " 695: [2679, 6319, 1493, 4424, 8580, 1121, 2509, 4221, 4418, 4509],\n", + " 700: [2679, 2714, 6319, 7064, 3415, 4453, 121, 1236, 5077, 6122],\n", + " 707: [32316,\n", + " 3473,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 4732,\n", + " 6162,\n", + " 34164],\n", + " 748: [3473, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 4850, 6162],\n", + " 759: [2704,\n", + " 26425,\n", + " 137,\n", + " 1477,\n", + " 6319,\n", + " 2911,\n", + " 4850,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 784: [3473,\n", + " 2494,\n", + " 2911,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 1871,\n", + " 31116,\n", + " 1444],\n", + " 790: [5573, 2931, 2938, 1192, 2679, 1147, 3932, 3379, 6319, 680],\n", + " 835: [1192, 2679, 6319, 7064, 3224, 3415, 3473, 4208, 4453, 1236],\n", + " 844: [28, 1207, 2028, 942, 1260, 4011, 8968, 1131, 2931, 4276],\n", + " 871: [6319, 3415, 3473, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n", + " 875: [1260, 5017, 2075, 1192, 2679, 615, 680, 1934, 3503, 6666],\n", + " 892: [1192, 2679, 7064, 32316, 2721, 2131, 3415, 4208, 121, 146],\n", + " 919: [2931, 1493, 2131, 3415, 42015, 2925, 1176, 336, 8580, 5077],\n", + " 935: [5017, 2075, 2852, 680, 5304, 7064, 8199, 2920, 715, 3415],\n", + " 942: [2075, 2714, 6319, 7064, 2721, 3415, 3473, 6122, 27592, 668],\n", + " 960: [3415, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 6271, 7067],\n", + " 1006: [3415, 212, 1121, 2509, 4221, 4418, 4509, 4732, 6122, 4850],\n", + " 1026: [2679,\n", + " 7064,\n", + " 3415,\n", + " 3473,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 5101],\n", + " 1047: [3516,\n", + " 2679,\n", + " 3341,\n", + " 7064,\n", + " 3415,\n", + " 3511,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418],\n", + " 65: [1477,\n", + " 26425,\n", + " 27255,\n", + " 2911,\n", + " 34164,\n", + " 31116,\n", + " 1444,\n", + " 27648,\n", + " 5287,\n", + " 1149],\n", + " 135: [1046,\n", + " 5017,\n", + " 2931,\n", + " 2938,\n", + " 40826,\n", + " 1489,\n", + " 2679,\n", + " 2714,\n", + " 49932,\n", + " 680],\n", + " 152: [2075, 2679, 8916, 680, 7064, 8199, 2721, 2920, 581, 3415],\n", + " 166: [5017, 5438, 615, 6319, 7064, 7933, 8199, 3415, 1121, 2509],\n", + " 179: [2075,\n", + " 2931,\n", + " 2938,\n", + " 3516,\n", + " 1192,\n", + " 3341,\n", + " 3379,\n", + " 49932,\n", + " 7064,\n", + " 8154],\n", + " 188: [6319,\n", + " 3473,\n", + " 2494,\n", + " 2911,\n", + " 2704,\n", + " 27255,\n", + " 26425,\n", + " 4850,\n", + " 31116,\n", + " 1444],\n", + " 217: [5438,\n", + " 6319,\n", + " 3415,\n", + " 3473,\n", + " 49957,\n", + " 3511,\n", + " 1121,\n", + " 2509,\n", + " 4012,\n", + " 4135],\n", + " 253: [2704,\n", + " 3777,\n", + " 26425,\n", + " 137,\n", + " 2930,\n", + " 1477,\n", + " 27255,\n", + " 2721,\n", + " 31116,\n", + " 1444],\n", + " 262: [2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 3645],\n", + " 277: [3511, 1121, 2509, 4221, 4418, 4509, 4732, 4929, 5101, 6162],\n", + " 289: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6271, 6918, 7067],\n", + " 300: [7064,\n", + " 3415,\n", + " 3473,\n", + " 49957,\n", + " 6023,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509],\n", + " 302: [2679, 7064, 3415, 3473, 4453, 121, 2925, 1121, 2509, 4221],\n", + " 308: [1192, 6006, 3341, 4920, 5304, 7064, 7327, 8596, 715, 3415],\n", + " 311: [3473,\n", + " 4135,\n", + " 2704,\n", + " 1477,\n", + " 26425,\n", + " 34164,\n", + " 2721,\n", + " 31116,\n", + " 7297,\n", + " 5287],\n", + " 328: [356, 110, 858, 1148, 1276, 1288, 5952, 7153, 28, 47],\n", + " 329: [3473,\n", + " 5069,\n", + " 2704,\n", + " 26425,\n", + " 27255,\n", + " 2721,\n", + " 31116,\n", + " 27741,\n", + " 1444,\n", + " 3415],\n", + " 344: [6219, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 6241],\n", + " 347: [3341,\n", + " 3415,\n", + " 3473,\n", + " 49957,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 4732],\n", + " 358: [2852, 40826, 2679, 2714, 3546, 680, 6643, 7013, 7064, 7933],\n", + " 474: [5017, 26131, 1131, 2931, 2938, 5122, 279, 1489, 2679, 6612],\n", + " 483: [213, 1148, 1276, 495, 926, 1046, 2028, 2571, 50, 904],\n", + " 509: [260, 1210, 1148, 1276, 1288, 1564, 34, 28, 58, 171],\n", + " 578: [6319, 7064, 2721, 3415, 3857, 5077, 8195, 2801, 3645, 1572],\n", + " 643: [2721, 3415, 6023, 1121, 2509, 4221, 4418, 4509, 5101, 4850],\n", + " 679: [5255, 5573, 2931, 1192, 2679, 615, 6319, 2721, 3415, 49957],\n", + " 680: [1234, 3730, 5438, 3429, 1131, 2075, 2931, 2938, 4276, 4633],\n", + " 691: [1172, 50, 4226, 4327, 2618, 5438, 7193, 1131, 2931, 2938],\n", + " 702: [2618,\n", + " 40826,\n", + " 2679,\n", + " 2696,\n", + " 1684,\n", + " 3341,\n", + " 7064,\n", + " 3415,\n", + " 3473,\n", + " 5899],\n", + " 708: [2938, 1192, 2679, 3929, 615, 1684, 5434, 49932, 7013, 7064],\n", + " 730: [589, 110, 260, 858, 1148, 1276, 1288, 5952, 28, 47],\n", + " 751: [49932, 7064, 99, 3473, 6772, 8477, 570, 6162, 34164, 55814],\n", + " 773: [2618, 1934, 7933, 2721, 3473, 1121, 2509, 4135, 4221, 4418],\n", + " 803: [3473,\n", + " 6122,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 3777,\n", + " 3804,\n", + " 1477,\n", + " 2930,\n", + " 26425],\n", + " 809: [2075, 2931, 2938, 3516, 1192, 2679, 1147, 2696, 5434, 6319],\n", + " 820: [7064, 3415, 3473, 146, 1121, 2509, 4221, 4418, 4509, 5101],\n", + " 824: [3415, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 5069],\n", + " 863: [6319, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4850],\n", + " 865: [858, 1148, 28, 111, 334, 527, 541, 608, 912, 923],\n", + " 867: [3516, 2679, 2721, 3415, 4453, 3078, 3511, 1121, 2509, 4221],\n", + " 911: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4850, 6271],\n", + " 915: [2075,\n", + " 2679,\n", + " 49932,\n", + " 6319,\n", + " 3089,\n", + " 5304,\n", + " 6783,\n", + " 7327,\n", + " 7933,\n", + " 8042],\n", + " 939: [5017, 324, 2931, 2938, 1489, 2679, 5434, 6319, 680, 3503],\n", + " 946: [1564, 28, 1234, 1260, 2931, 2938, 4633, 5122, 955, 1192],\n", + " 954: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4928, 6271, 7067],\n", + " 957: [2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4850],\n", + " 971: [2931, 2938, 4633, 1192, 1489, 2679, 680, 7064, 32316, 2721],\n", + " 986: [2075, 1192, 2679, 2714, 615, 6319, 7064, 2721, 1493, 3415],\n", + " 992: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4850, 8195],\n", + " 92: [326, 1172, 50, 5017, 1131, 1132, 4633, 40826, 3516, 5122],\n", + " 107: [2714, 3415, 3473, 6122, 4850, 6271, 7067, 7749, 7759, 8256],\n", + " 131: [4135,\n", + " 2704,\n", + " 26425,\n", + " 137,\n", + " 6122,\n", + " 1477,\n", + " 5069,\n", + " 27255,\n", + " 7064,\n", + " 2911],\n", + " 138: [3473,\n", + " 2704,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 2911,\n", + " 2721,\n", + " 31116,\n", + " 1444],\n", + " 145: [2075, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 4928],\n", + " 183: [1564, 326, 926, 50, 1212, 1260, 2203, 3365, 3435, 4327],\n", + " 209: [2696, 3341, 7064, 3415, 3473, 3456, 4405, 6271, 6918, 7067],\n", + " 230: [356, 1564, 4226, 2931, 2938, 3516, 318, 1192, 2019, 2550],\n", + " 263: [1148, 1252, 1276, 1288, 7153, 28, 58, 495, 778, 919],\n", + " 305: [2075, 3473, 1121, 2509, 4221, 4418, 4509, 4600, 4732, 4850],\n", + " 314: [26425,\n", + " 3777,\n", + " 137,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 2911,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 319: [2931, 1489, 2679, 7064, 2721, 3415, 2691, 1121, 2509, 4221],\n", + " 325: [2075, 2721, 3415, 3473, 5899, 5077, 8195, 3645, 668, 4928],\n", + " 341: [1210, 1564, 111, 608, 923, 926, 1199, 1219, 1221, 50],\n", + " 471: [1046, 324, 2389, 2618, 5438, 2931, 3516, 408, 6006, 6187],\n", + " 488: [4970, 2721, 3415, 2163, 6023, 4850, 3645, 5069, 2932, 4928],\n", + " 495: [2203,\n", + " 2075,\n", + " 1192,\n", + " 4808,\n", + " 1934,\n", + " 7064,\n", + " 3470,\n", + " 3473,\n", + " 6773,\n", + " 46530],\n", + " 532: [3415, 3473, 6122, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n", + " 564: [1073, 213, 1148, 1246, 1288, 1, 28, 232, 299, 326],\n", + " 574: [2931, 1192, 2679, 8916, 2696, 680, 4356, 7064, 7933, 2721],\n", + " 603: [137, 3777, 3804, 1477, 3473, 27255, 2911, 4846, 1444, 2925],\n", + " 674: [40826,\n", + " 1489,\n", + " 1837,\n", + " 2679,\n", + " 7064,\n", + " 2721,\n", + " 3415,\n", + " 3473,\n", + " 49957,\n", + " 1670],\n", + " 753: [1046, 1131, 2075, 2852, 2931, 2938, 4633, 1192, 2679, 2714],\n", + " 810: [4135,\n", + " 2704,\n", + " 26425,\n", + " 1046,\n", + " 34164,\n", + " 31116,\n", + " 7297,\n", + " 1149,\n", + " 4939,\n", + " 5255],\n", + " 830: [2679, 3341, 6319, 7064, 2721, 3415, 3473, 146, 1121, 2509],\n", + " 841: [1046, 50, 2931, 2938, 2679, 2696, 5434, 49932, 680, 7064],\n", + " 856: [2075, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 4929],\n", + " 921: [110, 5505, 7153, 495, 593, 926, 1046, 2571, 1212, 3730],\n", + " 933: [4850,\n", + " 2704,\n", + " 137,\n", + " 26425,\n", + " 2930,\n", + " 6122,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911],\n", + " 976: [3473,\n", + " 6122,\n", + " 2494,\n", + " 2704,\n", + " 2977,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 1444],\n", + " 37: [2704, 5840, 26425, 2930, 2314, 1477, 1621, 3473, 7064, 6319],\n", + " 83: [3473,\n", + " 49957,\n", + " 5069,\n", + " 2494,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 3823,\n", + " 26425],\n", + " 248: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 6271, 7067],\n", + " 387: [4135,\n", + " 4850,\n", + " 5069,\n", + " 5840,\n", + " 26425,\n", + " 1477,\n", + " 1621,\n", + " 27255,\n", + " 3097,\n", + " 2721],\n", + " 428: [3341, 3415, 3473, 6023, 8580, 3511, 1121, 2509, 4221, 4418],\n", + " 451: [2704,\n", + " 137,\n", + " 26425,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 2977,\n", + " 31116,\n", + " 1444],\n", + " 584: [2936, 1658, 7376, 1131, 1132, 1296, 2852, 29, 3516, 279],\n", + " 874: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 5391],\n", + " 995: [2704,\n", + " 4135,\n", + " 4850,\n", + " 5305,\n", + " 5069,\n", + " 6122,\n", + " 3473,\n", + " 27255,\n", + " 2425,\n", + " 3415],\n", + " 10: [324, 5438, 3516, 2679, 3918, 49932, 7064, 3415, 3473, 4208],\n", + " 19: [3516, 2679, 1493, 3473, 49957, 1121, 2509, 4135, 4221, 4418],\n", + " 41: [3415, 3473, 49957, 6023, 3645, 4405, 4928, 6271, 7067, 7749],\n", + " 43: [242, 954, 4226, 324, 6296, 1131, 2931, 2938, 2413, 2908],\n", + " 44: [260, 858, 1073, 1148, 1252, 5952, 7153, 28, 32, 47],\n", + " 45: [2721, 3473, 5899, 42015, 1184, 1236, 4079, 5077, 6122, 4939],\n", + " 51: [1148, 1564, 28, 47, 326, 1046, 1080, 1199, 1206, 1207],\n", + " 56: [1148, 1276, 1564, 28, 47, 232, 326, 1046, 1172, 1199],\n", + " 61: [28, 242, 4327, 5017, 324, 4978, 5438, 26131, 2931, 2938],\n", + " 68: [2075, 8916, 4208, 5899, 4453, 2691, 1472, 149, 206, 1236],\n", + " 69: [4920, 3415, 3473, 49957, 3511, 1121, 2271, 2509, 4135, 4221],\n", + " 78: [1564, 495, 593, 1046, 50, 1260, 3365, 3879, 1131, 2075],\n", + " 110: [1248, 1260, 2203, 4105, 1056, 2075, 2459, 7162, 955, 1192],\n", + " 115: [1046,\n", + " 2931,\n", + " 3516,\n", + " 5007,\n", + " 2679,\n", + " 3546,\n", + " 4920,\n", + " 7064,\n", + " 32316,\n", + " 3415],\n", + " 129: [5017, 2931, 4633, 40826, 1489, 2550, 3341, 680, 7064, 7327],\n", + " 150: [28, 326, 926, 1046, 1264, 50, 1260, 324, 3477, 4978],\n", + " 168: [1260, 26131, 2679, 4914, 680, 1934, 2726, 3134, 3503, 5304],\n", + " 169: [2075,\n", + " 2931,\n", + " 1489,\n", + " 3341,\n", + " 4920,\n", + " 49932,\n", + " 1934,\n", + " 3503,\n", + " 7064,\n", + " 32316],\n", + " 178: [495, 5438, 3516, 1192, 2679, 41571, 1646, 1684, 3307, 6319],\n", + " 186: [858, 28, 923, 926, 1046, 1199, 1258, 1196, 2936, 3365],\n", + " 201: [3473,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 6122,\n", + " 4850,\n", + " 34164,\n", + " 2911],\n", + " 239: [1046, 5017, 2618, 680, 3134, 3503, 5304, 6783, 7064, 7933],\n", + " 256: [1260, 5017, 1131, 2931, 4276, 4633, 932, 3929, 615, 4914],\n", + " 257: [1564, 8533, 4226, 2618, 4251, 5673, 6695, 7376, 8641, 8968],\n", + " 272: [3473,\n", + " 2911,\n", + " 27255,\n", + " 3777,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 279: [4633,\n", + " 1489,\n", + " 2679,\n", + " 2714,\n", + " 2731,\n", + " 7064,\n", + " 32316,\n", + " 2721,\n", + " 2131,\n", + " 3415],\n", + " 280: [171, 1046, 1855, 6966, 2075, 3516, 4033, 1192, 3896, 4047],\n", + " 285: [1148, 1564, 923, 1046, 904, 1260, 3365, 4226, 324, 1208],\n", + " 298: [5017, 3918, 7064, 2131, 3415, 5899, 4939, 6271, 7067, 7749],\n", + " 301: [5952, 28, 111, 903, 926, 969, 1046, 1080, 1207, 1219],\n", + " 304: [6219, 2714, 3341, 4920, 7064, 7933, 3473, 6122, 4846, 6722],\n", + " 333: [3467, 2060, 1797, 2679, 5893, 937, 1684, 45950, 680, 2935],\n", + " 334: [137,\n", + " 26425,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 6271,\n", + " 7067],\n", + " 338: [2721, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4600],\n", + " 350: [2931,\n", + " 4633,\n", + " 1192,\n", + " 1489,\n", + " 2679,\n", + " 3929,\n", + " 39419,\n", + " 680,\n", + " 7064,\n", + " 32316],\n", + " 353: [26425,\n", + " 2494,\n", + " 137,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 31116,\n", + " 1444],\n", + " 378: [1564, 2931, 2938, 4633, 3516, 1192, 2550, 1034, 3929, 2696],\n", + " 386: [2931,\n", + " 2938,\n", + " 40826,\n", + " 2679,\n", + " 8916,\n", + " 1034,\n", + " 3546,\n", + " 5434,\n", + " 8132,\n", + " 49932],\n", + " 397: [1260, 2075, 2931, 2679, 615, 4920, 5434, 680, 7064, 32316],\n", + " 420: [2931, 1489, 2048, 2714, 2696, 615, 3097, 7064, 1398, 2131],\n", + " 439: [3341, 2721, 3415, 3473, 2691, 8341, 1121, 2509, 4221, 4418],\n", + " 449: [2679, 615, 3341, 4920, 2131, 3415, 4453, 146, 1788, 8580],\n", + " 478: [26425,\n", + " 4135,\n", + " 1034,\n", + " 1477,\n", + " 2911,\n", + " 2721,\n", + " 31116,\n", + " 3415,\n", + " 6023,\n", + " 3645],\n", + " 487: [1046, 1034, 7064, 2721, 3415, 6023, 1121, 2509, 4135, 4221],\n", + " 489: [213, 1564, 5952, 7153, 593, 912, 926, 1046, 1304, 2028],\n", + " 500: [2931,\n", + " 2938,\n", + " 1192,\n", + " 1489,\n", + " 2550,\n", + " 32316,\n", + " 2721,\n", + " 3415,\n", + " 4208,\n", + " 7063],\n", + " 510: [3516, 1192, 2679, 615, 4920, 1934, 32316, 927, 3415, 8341],\n", + " 521: [321, 1172, 2028, 2959, 26131, 1131, 1132, 2075, 4276, 3516],\n", + " 522: [6319,\n", + " 3473,\n", + " 6122,\n", + " 2911,\n", + " 2704,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 1444],\n", + " 527: [589, 110, 260, 5505, 8533, 47, 242, 249, 912, 919],\n", + " 529: [5069,\n", + " 1871,\n", + " 1477,\n", + " 34164,\n", + " 1444,\n", + " 27648,\n", + " 5287,\n", + " 4939,\n", + " 3511,\n", + " 1121],\n", + " 535: [2618,\n", + " 2931,\n", + " 2938,\n", + " 4633,\n", + " 40826,\n", + " 1192,\n", + " 1489,\n", + " 2550,\n", + " 2679,\n", + " 2048],\n", + " 550: [1564, 495, 328, 4878, 1131, 1132, 2931, 2938, 40826, 3516],\n", + " 560: [1046,\n", + " 6273,\n", + " 3429,\n", + " 26131,\n", + " 2075,\n", + " 2852,\n", + " 1837,\n", + " 2679,\n", + " 4047,\n", + " 4103],\n", + " 573: [3473,\n", + " 49957,\n", + " 3694,\n", + " 3695,\n", + " 1444,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116],\n", + " 579: [2494,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 1444,\n", + " 6319],\n", + " 582: [324, 5573, 2075, 2931, 2938, 3634, 1192, 103, 1147, 3929],\n", + " 583: [213, 242, 1046, 50, 951, 1260, 3365, 4432, 6273, 799],\n", + " 587: [6319, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n", + " 596: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 6122, 4850],\n", + " 602: [1046,\n", + " 2618,\n", + " 2931,\n", + " 1489,\n", + " 2679,\n", + " 7064,\n", + " 3415,\n", + " 3473,\n", + " 49957,\n", + " 4453],\n", + " 618: [1489, 2679, 4920, 7064, 2721, 3415, 4453, 1121, 2509, 4221],\n", + " 624: [1221, 3365, 5017, 6273, 2959, 44761, 1056, 1131, 2075, 750],\n", + " 627: [3415, 3473, 8341, 146, 1121, 2509, 4221, 4418, 4509, 4850],\n", + " 635: [5952, 28, 32, 47, 912, 926, 1046, 1221, 1198, 2028],\n", + " 639: [321, 541, 50, 1260, 26131, 2931, 2938, 1192, 2019, 2550],\n", + " 640: [495, 912, 1221, 50, 800, 2203, 4011, 7193, 1131, 1132],\n", + " 642: [1046,\n", + " 2931,\n", + " 1192,\n", + " 2679,\n", + " 3379,\n", + " 5434,\n", + " 49932,\n", + " 7064,\n", + " 8199,\n", + " 8228],\n", + " 649: [4327, 5152, 26131, 506, 2931, 2938, 1192, 2679, 2594, 937],\n", + " 652: [242, 321, 324, 5438, 2931, 4920, 680, 7013, 2721, 2043],\n", + " 662: [2075, 1489, 3932, 7064, 2721, 3415, 4453, 6023, 2483, 5077],\n", + " 671: [49932,\n", + " 3415,\n", + " 3473,\n", + " 49957,\n", + " 4850,\n", + " 1870,\n", + " 5069,\n", + " 6271,\n", + " 7067,\n", + " 7749],\n", + " 675: [2679, 6319, 2721, 715, 1493, 2043, 2925, 1121, 2509, 4135],\n", + " 684: [6319,\n", + " 2721,\n", + " 6122,\n", + " 6162,\n", + " 55814,\n", + " 2833,\n", + " 1859,\n", + " 6270,\n", + " 3694,\n", + " 3695],\n", + " 703: [1046, 40826, 1192, 3896, 2679, 1646, 615, 5135, 4356, 7013],\n", + " 712: [1046, 324, 2938, 4633, 1192, 1489, 2679, 3918, 49932, 7013],\n", + " 726: [1564, 28, 1046, 1221, 2571, 50, 4226, 5017, 5152, 1131],\n", + " 727: [6319, 7064, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 6162],\n", + " 744: [260, 1148, 28, 30, 232, 242, 326, 1172, 1196, 1629],\n", + " 746: [7064, 2721, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509],\n", + " 761: [6319, 3473, 137, 220, 3777, 3002, 6168, 2911, 850, 3823],\n", + " 765: [50, 3516, 2679, 3546, 7064, 2721, 3415, 3473, 4208, 4453],\n", + " 766: [5438, 3473, 1121, 2509, 4221, 4418, 4509, 4600, 4678, 4732],\n", + " 771: [932, 3918, 7933, 8596, 1161, 5288, 6791, 2163, 206, 1535],\n", + " 776: [1148, 7153, 28, 495, 926, 1260, 2997, 6695, 7376, 8968],\n", + " 797: [3516,\n", + " 1034,\n", + " 7064,\n", + " 32316,\n", + " 3415,\n", + " 1161,\n", + " 1472,\n", + " 3511,\n", + " 1121,\n", + " 2271],\n", + " 812: [3516, 615, 49932, 3415, 6023, 1121, 2271, 2509, 4221, 4418],\n", + " 815: [3467, 5017, 6273, 2959, 2931, 2938, 3516, 318, 1192, 2679],\n", + " 818: [1564, 926, 1260, 3365, 6273, 36, 324, 44761, 1131, 2075],\n", + " 821: [1348, 4327, 678, 741, 1658, 2389, 5110, 26131, 2938, 4633],\n", + " 822: [3932, 3415, 3473, 2691, 6023, 8580, 1121, 2509, 4221, 4418],\n", + " 831: [28, 242, 2203, 3365, 4432, 324, 5152, 5438, 1131, 2075],\n", + " 834: [3516, 4920, 3415, 4453, 121, 3078, 3511, 1121, 2509, 4221],\n", + " 837: [3473, 2494, 2911, 137, 27255, 3777, 1477, 2930, 4135, 3804],\n", + " 839: [3516, 2714, 7064, 3415, 1121, 2509, 4135, 4221, 4418, 4509],\n", + " 840: [2679, 2721, 3415, 3473, 4453, 6023, 1121, 2509, 4221, 4418],\n", + " 851: [1288,\n", + " 1564,\n", + " 1131,\n", + " 1132,\n", + " 1233,\n", + " 2075,\n", + " 2931,\n", + " 2938,\n", + " 40826,\n", + " 5122],\n", + " 855: [2075, 2938, 2679, 615, 1934, 7064, 32316, 927, 2721, 2920],\n", + " 857: [1148, 334, 527, 5255, 3516, 3811, 1192, 932, 2679, 3000],\n", + " 868: [1046, 50, 2075, 2931, 2938, 4633, 1192, 1489, 2679, 3918],\n", + " 904: [3415, 3473, 6023, 6122, 4850, 4928, 6271, 6918, 7067, 7749],\n", + " 905: [2679,\n", + " 1934,\n", + " 7013,\n", + " 7064,\n", + " 7933,\n", + " 3473,\n", + " 49957,\n", + " 2691,\n", + " 2905,\n", + " 3511],\n", + " 906: [1046, 2931, 2679, 3415, 3473, 4208, 5899, 146, 6023, 1121],\n", + " 924: [324, 5110, 5255, 5438, 2938, 4633, 1797, 47099, 7013, 4208],\n", + " 925: [3473,\n", + " 2911,\n", + " 2704,\n", + " 3694,\n", + " 3695,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425],\n", + " 927: [1273, 1192, 1279, 2714, 1646, 3341, 2372, 5304, 7064, 7065],\n", + " 940: [1148, 1564, 527, 926, 1172, 1225, 3365, 4226, 4327, 1204],\n", + " 948: [1564, 1260, 2959, 1131, 2938, 4633, 3516, 2679, 2714, 1147],\n", + " 953: [858, 1148, 5952, 28, 47, 171, 242, 527, 608, 912],\n", + " 966: [3473,\n", + " 2911,\n", + " 2704,\n", + " 1444,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116],\n", + " 967: [2494, 137, 2930, 1477, 3473, 27255, 2911, 1444, 3415, 3645],\n", + " 979: [2075, 7064, 2721, 3415, 336, 3511, 1121, 2509, 4221, 4418],\n", + " 980: [7064, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n", + " 983: [26425,\n", + " 3002,\n", + " 6168,\n", + " 137,\n", + " 5069,\n", + " 1477,\n", + " 3473,\n", + " 6319,\n", + " 27255,\n", + " 2911],\n", + " 984: [2721,\n", + " 4850,\n", + " 34164,\n", + " 2494,\n", + " 5305,\n", + " 850,\n", + " 2704,\n", + " 1444,\n", + " 27648,\n", + " 1477],\n", + " 991: [7064,\n", + " 3694,\n", + " 3695,\n", + " 1444,\n", + " 3823,\n", + " 7297,\n", + " 27648,\n", + " 1149,\n", + " 4442,\n", + " 5034],\n", + " 1009: [4850,\n", + " 26425,\n", + " 5840,\n", + " 1477,\n", + " 1621,\n", + " 1870,\n", + " 2425,\n", + " 5069,\n", + " 8712,\n", + " 31116],\n", + " 1011: [3473,\n", + " 2911,\n", + " 27255,\n", + " 26425,\n", + " 3694,\n", + " 3695,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 1572],\n", + " 1014: [242, 912, 926, 1260, 3730, 4432, 6273, 290, 324, 5152],\n", + " 1021: [3415,\n", + " 49957,\n", + " 6023,\n", + " 3511,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 5101],\n", + " 1030: [242, 1046, 1260, 324, 2931, 2938, 4633, 40826, 5122, 1192],\n", + " 1033: [3473,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 5101,\n", + " 4850,\n", + " 4939,\n", + " 6162],\n", + " 1039: [1192, 2714, 7064, 2721, 3415, 3473, 336, 6023, 3857, 603],\n", + " 1040: [6319,\n", + " 3473,\n", + " 49957,\n", + " 4135,\n", + " 1241,\n", + " 4850,\n", + " 2494,\n", + " 2930,\n", + " 26425,\n", + " 31116],\n", + " 1053: [858, 28, 326, 1131, 1132, 2931, 5122, 318, 1192, 932],\n", + " 704: [7153, 527, 1046, 5017, 1131, 2931, 2938, 5122, 1192, 2679],\n", + " 934: [2911,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 1621,\n", + " 26425,\n", + " 2494,\n", + " 2721,\n", + " 31116,\n", + " 3415],\n", + " 42: [40826,\n", + " 1192,\n", + " 7327,\n", + " 2721,\n", + " 3224,\n", + " 3415,\n", + " 3473,\n", + " 42015,\n", + " 3078,\n", + " 3511],\n", + " 73: [408, 2679, 6319, 3415, 3473, 5288, 4453, 6023, 1121, 2509],\n", + " 82: [1241, 2494, 2911, 27255, 1477, 1621, 1444, 5287, 3511, 1121],\n", + " 159: [4850, 2704, 2911, 1444, 7064, 3415, 6023, 3645, 1572, 6271],\n", + " 161: [2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 5101, 4939],\n", + " 192: [3415, 1121, 2509, 4221, 4418, 4509, 6271, 6918, 7067, 7749],\n", + " 216: [1564, 527, 2028, 324, 5573, 6695, 1131, 2931, 2938, 3516],\n", + " 219: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 6122, 4939, 3645],\n", + " 290: [3341,\n", + " 4920,\n", + " 32316,\n", + " 3473,\n", + " 8580,\n", + " 1121,\n", + " 2509,\n", + " 4135,\n", + " 4221,\n", + " 4418],\n", + " 379: [1046, 2075, 2938, 3516, 1192, 1489, 2726, 7064, 2721, 99],\n", + " 389: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 3645, 668, 1572],\n", + " 400: [6319,\n", + " 2911,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 1444,\n", + " 27648,\n", + " 5287],\n", + " 462: [2075, 2931, 2938, 1489, 2679, 615, 49932, 6319, 680, 1281],\n", + " 507: [1148,\n", + " 1260,\n", + " 3365,\n", + " 5017,\n", + " 44761,\n", + " 2931,\n", + " 2938,\n", + " 4633,\n", + " 5007,\n", + " 1192],\n", + " 600: [2494,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 721: [2203, 2936, 324, 5438, 6296, 6662, 44761, 1131, 1132, 2075],\n", + " 793: [2075, 2852, 3516, 1489, 2679, 3341, 680, 7064, 7327, 32316],\n", + " 912: [5017,\n", + " 2679,\n", + " 49932,\n", + " 7064,\n", + " 7933,\n", + " 32316,\n", + " 2721,\n", + " 3415,\n", + " 3473,\n", + " 3700],\n", + " 932: [6319, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n", + " 949: [5069,\n", + " 26425,\n", + " 137,\n", + " 1871,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 31116],\n", + " 1025: [2679,\n", + " 7064,\n", + " 2721,\n", + " 3415,\n", + " 3473,\n", + " 4453,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418],\n", + " 46: [1121, 2509, 4135, 4221, 4418, 4509, 4732, 4929, 5101, 5245],\n", + " 74: [5110, 1934, 7933, 32316, 3473, 2357, 3007, 5077, 6722, 4939],\n", + " 342: [260, 912, 926, 50, 4226, 4432, 678, 7193, 44761, 2931],\n", + " 508: [2721, 3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732],\n", + " 580: [5573,\n", + " 4356,\n", + " 7933,\n", + " 5899,\n", + " 4616,\n", + " 3480,\n", + " 4939,\n", + " 1444,\n", + " 4307,\n", + " 57243],\n", + " 774: [110, 260, 5952, 28, 527, 593, 1046, 1219, 2571, 2936],\n", + " 783: [2704,\n", + " 137,\n", + " 26425,\n", + " 2930,\n", + " 27255,\n", + " 31116,\n", + " 1444,\n", + " 7297,\n", + " 1149,\n", + " 3511],\n", + " 1002: [4327, 1658, 1753, 40826, 2728, 69, 517, 1209, 2898, 2714],\n", + " 1023: [1046, 1131, 2931, 2938, 4633, 3516, 1837, 2679, 6219, 615],\n", + " 1048: [3516,\n", + " 2679,\n", + " 7064,\n", + " 2721,\n", + " 3415,\n", + " 3473,\n", + " 5899,\n", + " 6023,\n", + " 4135,\n", + " 5077],\n", + " 23: [1148,\n", + " 1046,\n", + " 1260,\n", + " 44761,\n", + " 1131,\n", + " 2938,\n", + " 3516,\n", + " 1192,\n", + " 2679,\n", + " 47099],\n", + " 96: [7064, 3473, 49957, 1121, 2509, 4221, 4418, 4509, 4850, 4939],\n", + " 124: [6219, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 3645],\n", + " 136: [2075, 40826, 2679, 3415, 3473, 8341, 146, 336, 8580, 1121],\n", + " 148: [1564, 912, 923, 1172, 1212, 1234, 1260, 4226, 5017, 324],\n", + " 189: [5017, 2938, 4633, 1192, 2679, 2677, 2708, 49932, 6319, 680],\n", + " 213: [4276, 4920, 7064, 121, 2925, 4495, 1121, 2509, 4221, 4418],\n", + " 243: [3473,\n", + " 27255,\n", + " 1477,\n", + " 1621,\n", + " 2930,\n", + " 26425,\n", + " 3694,\n", + " 3695,\n", + " 2721,\n", + " 31116],\n", + " 323: [2679, 6219, 49932, 3415, 4208, 4453, 146, 212, 8580, 3078],\n", + " 352: [1148, 242, 249, 299, 923, 1207, 1225, 2203, 2936, 3730],\n", + " 429: [7064, 2721, 2131, 3415, 146, 336, 603, 1121, 2509, 4135],\n", + " 625: [1046, 6296, 1131, 1132, 1570, 4703, 808, 2679, 7318, 2810],\n", + " 808: [3365, 5017, 6273, 324, 2796, 5255, 5283, 4276, 40826, 40],\n", + " 843: [3516, 3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 5101],\n", + " 847: [28, 308, 326, 926, 942, 1260, 2075, 5882, 3516, 1192],\n", + " 963: [5017, 6273, 26131, 408, 1966, 5304, 6783, 7064, 7327, 8125],\n", + " 975: [2704,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 3694,\n", + " 3695,\n", + " 1444,\n", + " 3415,\n", + " 3645,\n", + " 4928],\n", + " 998: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n", + " 75: [3473, 5899, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 2494],\n", + " 427: [1192, 1646, 7064, 5899, 336, 2483, 1121, 2509, 4135, 4221],\n", + " 466: [2131, 3415, 4850, 5069, 6271, 7067, 7749, 7759, 8256, 8724],\n", + " 801: [2679, 4920, 7064, 3415, 3473, 5899, 1121, 2509, 4135, 4221],\n", + " 848: [110, 260, 858, 1210, 1148, 1252, 1288, 8533, 28, 58],\n", + " 888: [2721, 3415, 3473, 4850, 4939, 3645, 1572, 6271, 6918, 7067],\n", + " 191: [4850,\n", + " 2704,\n", + " 26425,\n", + " 5840,\n", + " 1477,\n", + " 2977,\n", + " 4356,\n", + " 31116,\n", + " 2488,\n", + " 1444],\n", + " 227: [5017,\n", + " 2075,\n", + " 2731,\n", + " 5304,\n", + " 6783,\n", + " 7064,\n", + " 7933,\n", + " 8154,\n", + " 32316,\n", + " 3415],\n", + " 245: [242, 527, 926, 1046, 4053, 904, 1260, 324, 678, 2959],\n", + " 380: [3473, 2925, 1361, 8580, 4135, 5077, 6122, 4939, 5069, 6162],\n", + " 408: [2494,\n", + " 2704,\n", + " 26425,\n", + " 6122,\n", + " 3694,\n", + " 3695,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 8195],\n", + " 668: [3415, 3473, 2425, 3645, 4928, 6271, 7067, 7749, 7759, 8256],\n", + " 747: [2704,\n", + " 26425,\n", + " 1734,\n", + " 3473,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 8195,\n", + " 3645,\n", + " 668],\n", + " 754: [2721, 3415, 1121, 2509, 4221, 4418, 4509, 5101, 4939, 1572],\n", + " 11: [28, 527, 608, 1046, 1172, 1193, 50, 1260, 3365, 4432],\n", + " 16: [4633, 3516, 1837, 2679, 2714, 2696, 3341, 7064, 581, 3415],\n", + " 81: [3516, 1192, 2679, 2714, 680, 7064, 8125, 8199, 32316, 2721],\n", + " 86: [260, 1564, 4993, 2931, 2938, 3516, 5122, 2679, 2714, 8916],\n", + " 97: [593, 2203, 324, 5110, 6695, 7360, 2075, 2931, 2938, 4633],\n", + " 151: [1489,\n", + " 2679,\n", + " 32316,\n", + " 3415,\n", + " 4208,\n", + " 4453,\n", + " 1236,\n", + " 6023,\n", + " 8580,\n", + " 1121],\n", + " 235: [1564, 5952, 28, 1046, 3477, 7193, 1131, 2852, 2931, 2938],\n", + " 251: [2704,\n", + " 137,\n", + " 26425,\n", + " 2494,\n", + " 1477,\n", + " 3473,\n", + " 6319,\n", + " 27255,\n", + " 2911,\n", + " 31116],\n", + " 258: [495, 593, 926, 1172, 913, 1260, 2936, 4432, 324, 5152],\n", + " 278: [26425,\n", + " 3694,\n", + " 3695,\n", + " 34164,\n", + " 3794,\n", + " 8712,\n", + " 31116,\n", + " 5287,\n", + " 250,\n", + " 1646],\n", + " 388: [1046, 3516, 1192, 2679, 3097, 3341, 5434, 49932, 680, 7064],\n", + " 551: [5255, 2679, 4914, 7013, 7933, 3473, 1904, 2691, 7044, 4783],\n", + " 606: [7064, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n", + " 614: [527, 1260, 4432, 324, 44761, 1131, 2931, 2938, 3516, 318],\n", + " 681: [324, 2075, 1753, 3918, 7064, 2721, 3415, 6591, 55247, 7063],\n", + " 686: [3516, 2679, 2721, 3415, 3473, 4208, 4453, 2483, 3078, 3511],\n", + " 711: [3473,\n", + " 2704,\n", + " 3694,\n", + " 3695,\n", + " 27255,\n", + " 26425,\n", + " 31116,\n", + " 1046,\n", + " 1444,\n", + " 3415],\n", + " 718: [2494,\n", + " 2704,\n", + " 1477,\n", + " 1621,\n", + " 27255,\n", + " 3694,\n", + " 3695,\n", + " 2721,\n", + " 1444,\n", + " 3415],\n", + " 873: [858, 1148, 1564, 527, 912, 919, 923, 926, 1207, 951],\n", + " 962: [28, 1046, 4251, 6695, 2852, 2931, 3061, 2550, 2594, 4951],\n", + " 985: [1046, 1489, 3473, 4453, 2691, 8341, 3515, 5077, 4939, 5417],\n", + " 993: [1172, 2203, 5017, 2959, 1131, 2075, 2931, 1203, 3516, 955],\n", + " 184: [1192, 3415, 3473, 3090, 121, 212, 1788, 1121, 2509, 4221],\n", + " 246: [2494,\n", + " 2704,\n", + " 137,\n", + " 26425,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 2911,\n", + " 7064,\n", + " 31116],\n", + " 373: [26425,\n", + " 6122,\n", + " 45728,\n", + " 3473,\n", + " 3694,\n", + " 3695,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 6023],\n", + " 430: [2931, 4276, 40, 2679, 2399, 2721, 3473, 48738, 49957, 1366],\n", + " 534: [1034, 2988, 212, 1121, 2271, 2509, 4221, 4418, 4509, 4732],\n", + " 805: [858, 28, 326, 50, 3365, 5017, 2997, 26131, 1131, 1132],\n", + " 58: [28, 6273, 1136, 2618, 5438, 26131, 2931, 2938, 40826, 3516],\n", + " 112: [3473,\n", + " 2911,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 2704,\n", + " 49957,\n", + " 31116],\n", + " 367: [2959, 4251, 613, 2075, 2931, 973, 4633, 1489, 2679, 47099],\n", + " 548: [1148, 1252, 7153, 150, 28, 47, 242, 527, 541, 593],\n", + " 791: [5017, 324, 2931, 318, 2550, 8916, 47099, 47970, 2696, 680],\n", + " 909: [7064, 2721, 2131, 3415, 5899, 6023, 2483, 1121, 2509, 4221],\n", + " 1041: [6319,\n", + " 3415,\n", + " 3473,\n", + " 6023,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 5101],\n", + " 13: [3473,\n", + " 2494,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 2977,\n", + " 1444,\n", + " 3415],\n", + " 869: [7064, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 5101, 4850],\n", + " 415: [2075, 2696, 615, 3097, 7064, 2721, 1398, 2131, 3415, 4453],\n", + " 477: [28, 904, 2931, 2938, 3516, 279, 955, 1192, 2679, 1147],\n", + " 569: [2075, 2931, 4276, 5882, 1489, 2679, 2714, 6319, 7013, 7064],\n", + " 694: [213, 1564, 1629, 2203, 324, 4251, 5283, 1131, 2852, 2931],\n", + " 729: [7064,\n", + " 2721,\n", + " 3473,\n", + " 49957,\n", + " 2925,\n", + " 27592,\n", + " 8477,\n", + " 668,\n", + " 6162,\n", + " 6918],\n", + " 741: [1046, 1131, 1273, 2852, 2938, 3516, 1192, 2679, 1646, 4920],\n", + " 965: [615, 7064, 2721, 3415, 5077, 6122, 6271, 7067, 7749, 7759],\n", + " 17: [5438, 2931, 4633, 1192, 1489, 2679, 5304, 6783, 7064, 2721],\n", + " 40: [2075, 2931, 40826, 1489, 2679, 2696, 3341, 680, 7064, 8125],\n", + " 114: [2931, 2679, 3415, 3473, 7063, 1236, 1121, 2509, 4221, 4418],\n", + " 137: [2704,\n", + " 137,\n", + " 26425,\n", + " 2930,\n", + " 1477,\n", + " 2494,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 4850],\n", + " 153: [1192, 1489, 2714, 8916, 2131, 3415, 1904, 4453, 121, 1236],\n", + " 211: [1148, 1288, 1564, 5952, 28, 527, 923, 926, 1172, 1199],\n", + " 286: [1131, 2679, 5434, 6319, 680, 2726, 6643, 7013, 7064, 7933],\n", + " 330: [1096, 7376, 1131, 1132, 2931, 2938, 3634, 955, 1192, 1837],\n", + " 336: [2075,\n", + " 7064,\n", + " 7933,\n", + " 32316,\n", + " 2721,\n", + " 2131,\n", + " 3415,\n", + " 6023,\n", + " 1121,\n", + " 2509],\n", + " 372: [7193, 2075, 2931, 2938, 40826, 1192, 2679, 1178, 680, 2721],\n", + " 376: [1046, 1489, 2550, 2679, 8916, 32316, 2721, 99, 3415, 3473],\n", + " 412: [2704,\n", + " 26425,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 6122,\n", + " 850,\n", + " 5069],\n", + " 447: [1489, 2679, 2714, 7064, 7933, 2721, 3415, 3473, 603, 1121],\n", + " 467: [28, 171, 926, 1046, 2571, 951, 1248, 6273, 2618, 7827],\n", + " 490: [1192, 2679, 680, 3415, 3473, 1161, 1189, 5288, 4453, 190],\n", + " 518: [1564, 28, 1046, 1172, 50, 1260, 5017, 2618, 26131, 1131],\n", + " 608: [2704,\n", + " 220,\n", + " 3777,\n", + " 3804,\n", + " 26425,\n", + " 7064,\n", + " 3473,\n", + " 2721,\n", + " 31116,\n", + " 1444],\n", + " 619: [5505, 28, 171, 527, 541, 926, 1235, 800, 4327, 4432],\n", + " 644: [356, 362, 364, 588, 594, 616, 590, 648, 733, 780],\n", + " 667: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 3645, 1572, 6271],\n", + " 698: [1564, 926, 1260, 3477, 3879, 1131, 1132, 1213, 2075, 2852],\n", + " 709: [1046, 2931, 2938, 4633, 5122, 1192, 2550, 2679, 2048, 3097],\n", + " 728: [110, 326, 593, 50, 1260, 3365, 4226, 6273, 4251, 6695],\n", + " 733: [1046,\n", + " 1535,\n", + " 2425,\n", + " 5069,\n", + " 34164,\n", + " 2494,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 2721],\n", + " 777: [324, 3516, 2721, 3415, 3473, 5077, 6122, 6722, 6772, 3579],\n", + " 813: [2679, 615, 7064, 2721, 581, 3415, 3473, 4208, 49957, 4453],\n", + " 832: [213, 1564, 912, 923, 926, 1219, 1221, 1258, 904, 6273],\n", + " 893: [2938,\n", + " 2679,\n", + " 615,\n", + " 5434,\n", + " 49932,\n", + " 1281,\n", + " 7064,\n", + " 7933,\n", + " 32316,\n", + " 2721],\n", + " 901: [260, 1210, 1148, 1252, 1288, 5952, 28, 47, 111, 232],\n", + " 937: [2679, 3473, 3511, 603, 1121, 2509, 4221, 4418, 4509, 4732],\n", + " 947: [7064,\n", + " 26425,\n", + " 2930,\n", + " 1477,\n", + " 1621,\n", + " 27255,\n", + " 2911,\n", + " 8712,\n", + " 31116,\n", + " 1444],\n", + " 362: [2494,\n", + " 3777,\n", + " 26425,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 3694,\n", + " 3695,\n", + " 31116,\n", + " 1444],\n", + " 375: [2931, 1489, 2048, 5159, 680, 7064, 7065, 7327, 2043, 2131],\n", + " 599: [242, 2075, 2679, 32316, 2721, 3473, 2691, 3078, 5077, 4939],\n", + " 632: [1192, 2679, 3415, 1121, 2509, 4221, 4418, 4509, 4929, 4850],\n", + " 779: [2704,\n", + " 26425,\n", + " 2494,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 850,\n", + " 2721,\n", + " 31116,\n", + " 1444],\n", + " 1022: [2931,\n", + " 3516,\n", + " 1192,\n", + " 1489,\n", + " 7064,\n", + " 32316,\n", + " 3473,\n", + " 4208,\n", + " 4453,\n", + " 2691],\n", + " 1034: [6319,\n", + " 3473,\n", + " 850,\n", + " 2704,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 2494,\n", + " 5287],\n", + " 819: [213, 2704, 220, 3777, 3804, 2419, 6219, 1734, 3473, 6122],\n", + " 2: [3473, 4135, 4850, 2425, 2704, 137, 27255, 26425, 8712, 31116],\n", + " 3: [242, 321, 326, 926, 1172, 1212, 1248, 1260, 4432, 6273],\n", + " 104: [356, 589, 1073, 1210, 1356, 1148, 1288, 4995, 5952, 7153],\n", + " 105: [2796, 680, 7064, 715, 2131, 3224, 3415, 603, 1121, 2509],\n", + " 218: [260, 858, 1148, 1288, 1564, 28, 495, 926, 1172, 1199],\n", + " 250: [50, 4226, 6695, 7193, 2075, 1192, 2594, 4951, 1034, 615],\n", + " 313: [242, 321, 324, 973, 3516, 32316, 3473, 1236, 8580, 6122],\n", + " 377: [5438, 2075, 4920, 7064, 3473, 4424, 3511, 1121, 2509, 4221],\n", + " 413: [1148, 1564, 28, 306, 593, 608, 926, 1046, 1207, 1221],\n", + " 576: [3516, 1489, 2679, 7064, 2721, 3415, 4453, 4783, 5077, 6122],\n", + " 586: [1046, 1260, 3365, 4432, 1131, 2931, 2938, 1753, 4633, 1489],\n", + " 595: [2679, 6319, 2721, 3473, 4208, 5899, 4453, 8341, 146, 1121],\n", + " 610: [50, 1260, 5017, 7193, 7376, 2938, 4633, 3516, 5007, 808],\n", + " 613: [5283, 7064, 3415, 3473, 3007, 1904, 5899, 1472, 4135, 5077],\n", + " 637: [527, 1041, 5438, 8968, 1131, 1354, 4276, 2360, 1192, 1837],\n", + " 663: [2075, 2931, 2679, 3097, 6319, 7064, 2721, 2043, 3224, 3415],\n", + " 740: [321, 527, 926, 1046, 1172, 50, 800, 1234, 2203, 4844],\n", + " 787: [260, 1246, 4535, 5952, 7153, 28, 58, 171, 232, 242],\n", + " 804: [26131,\n", + " 2721,\n", + " 3415,\n", + " 3473,\n", + " 6023,\n", + " 1121,\n", + " 2271,\n", + " 2509,\n", + " 3688,\n", + " 4135],\n", + " 866: [1046, 2075, 1489, 2679, 6319, 7064, 3415, 3473, 4208, 4453],\n", + " 883: [2075,\n", + " 32316,\n", + " 8580,\n", + " 1121,\n", + " 2509,\n", + " 4135,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 5101],\n", + " 941: [6695, 7007, 1203, 1192, 1489, 4228, 3918, 2696, 680, 2731],\n", + " 1007: [242, 1046, 5017, 324, 5255, 5283, 1646, 5304, 6783, 7064],\n", + " 817: [110, 1564, 8533, 28, 242, 926, 1172, 457, 1629, 954],\n", + " 6: [1260, 3365, 5017, 2959, 2075, 1489, 2679, 3929, 1178, 3097],\n", + " 7: [2075, 2931, 4633, 3516, 1192, 1489, 6219, 3929, 3341, 7064],\n", + " 14: [2721, 3473, 2911, 850, 2977, 137, 27255, 3777, 3804, 1477],\n", + " 24: [1148, 242, 324, 2959, 3477, 5438, 6290, 1131, 2931, 2938],\n", + " 57: [2203,\n", + " 2936,\n", + " 3365,\n", + " 5017,\n", + " 7193,\n", + " 44761,\n", + " 2931,\n", + " 2938,\n", + " 8970,\n", + " 40826],\n", + " 60: [5438, 6319, 2721, 2131, 3415, 5899, 49957, 6023, 1121, 2509],\n", + " 64: [3473,\n", + " 2911,\n", + " 2704,\n", + " 137,\n", + " 27255,\n", + " 26425,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 3645],\n", + " 84: [4850,\n", + " 2704,\n", + " 137,\n", + " 26425,\n", + " 3473,\n", + " 27255,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 8195],\n", + " 90: [2203,\n", + " 1131,\n", + " 2931,\n", + " 2938,\n", + " 40826,\n", + " 1192,\n", + " 2679,\n", + " 2714,\n", + " 8916,\n", + " 47970],\n", + " 98: [28, 495, 912, 1046, 1212, 1260, 3365, 2618, 2959, 5438],\n", + " 113: [613, 40826, 3516, 8596, 32316, 715, 4424, 2925, 5077, 2488],\n", + " 120: [2163,\n", + " 4135,\n", + " 5069,\n", + " 6780,\n", + " 27741,\n", + " 2704,\n", + " 27255,\n", + " 1477,\n", + " 1621,\n", + " 26425],\n", + " 123: [28, 50, 5017, 324, 2796, 4105, 5438, 44761, 2931, 2938],\n", + " 157: [858, 1148, 321, 527, 541, 912, 1172, 1221, 1196, 50],\n", + " 194: [8533, 1046, 1248, 1260, 4406, 4432, 678, 2618, 4011, 4251],\n", + " 200: [5438,\n", + " 26131,\n", + " 2938,\n", + " 4276,\n", + " 1489,\n", + " 1837,\n", + " 2679,\n", + " 3917,\n", + " 3929,\n", + " 1150],\n", + " 204: [3918, 3415, 3473, 336, 6122, 4850, 1585, 3645, 5069, 6271],\n", + " 205: [1260, 7376, 2075, 2852, 2931, 2938, 4276, 5007, 808, 1192],\n", + " 225: [110, 858, 1210, 1148, 1246, 1276, 5952, 7153, 8783, 28],\n", + " 229: [3473, 2911, 2704, 137, 27255, 1444, 408, 3415, 3645, 4405],\n", + " 237: [7064,\n", + " 3473,\n", + " 4135,\n", + " 4850,\n", + " 5069,\n", + " 2911,\n", + " 2977,\n", + " 27255,\n", + " 1477,\n", + " 26425],\n", + " 242: [858, 242, 912, 1234, 6273, 2618, 4011, 7193, 26131, 1131],\n", + " 252: [110, 858, 1148, 1276, 1564, 8533, 28, 306, 593, 903],\n", + " 266: [1564, 28, 50, 2959, 4993, 1131, 2931, 2938, 3516, 955],\n", + " 270: [2704,\n", + " 26425,\n", + " 137,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 2977,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 282: [3473,\n", + " 4850,\n", + " 2704,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 3823,\n", + " 31116,\n", + " 1444],\n", + " 297: [615, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n", + " 309: [3415, 3473, 149, 8195, 2425, 3645, 668, 1572, 4928, 6271],\n", + " 316: [40826,\n", + " 680,\n", + " 3503,\n", + " 5304,\n", + " 7064,\n", + " 7933,\n", + " 32316,\n", + " 3415,\n", + " 3473,\n", + " 42015],\n", + " 327: [3516, 2696, 3415, 3473, 1121, 2509, 4221, 4418, 4509, 4585],\n", + " 356: [137,\n", + " 6122,\n", + " 3473,\n", + " 27255,\n", + " 3694,\n", + " 3695,\n", + " 1444,\n", + " 7297,\n", + " 27648,\n", + " 5287],\n", + " 393: [4850,\n", + " 5305,\n", + " 2704,\n", + " 137,\n", + " 26425,\n", + " 27255,\n", + " 2347,\n", + " 2732,\n", + " 5840,\n", + " 31116],\n", + " 394: [4633,\n", + " 3516,\n", + " 1489,\n", + " 2679,\n", + " 7064,\n", + " 8125,\n", + " 8199,\n", + " 32316,\n", + " 2721,\n", + " 3415],\n", + " 395: [2714,\n", + " 7064,\n", + " 27741,\n", + " 2494,\n", + " 27255,\n", + " 1477,\n", + " 1621,\n", + " 3694,\n", + " 3695,\n", + " 2419],\n", + " 399: [1192, 2696, 2721, 3415, 3473, 1121, 2509, 4221, 4418, 4509],\n", + " 401: [3516, 2721, 3415, 1121, 2509, 4221, 4418, 4509, 4732, 6044],\n", + " 402: [26425,\n", + " 2977,\n", + " 53519,\n", + " 99,\n", + " 2721,\n", + " 31116,\n", + " 1444,\n", + " 3823,\n", + " 27648,\n", + " 4939],\n", + " 405: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n", + " 417: [321, 2931, 3516, 1192, 2679, 2696, 7064, 2721, 3415, 3473],\n", + " 422: [4850, 5840, 137, 3473, 1444, 3415, 6023, 8195, 3645, 4928],\n", + " 437: [2075, 2931, 2938, 4633, 2679, 2714, 49932, 680, 7064, 7327],\n", + " 455: [2679, 3918, 615, 4920, 2131, 3224, 3415, 3473, 123, 5288],\n", + " 461: [3415, 6023, 6122, 8195, 3645, 668, 1572, 4928, 6271, 6918],\n", + " 473: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 4732, 6122],\n", + " 484: [2203, 2931, 1489, 2679, 615, 680, 7064, 7933, 32316, 2721],\n", + " 499: [3341, 7064, 7933, 8199, 32316, 715, 3415, 3511, 1121, 2509],\n", + " 526: [7064, 3415, 4850, 3645, 6271, 7067, 7749, 7759, 8256, 8724],\n", + " 537: [3477, 5438, 3516, 3918, 3415, 3473, 6023, 8580, 1121, 2271],\n", + " 542: [7153, 28, 47, 495, 608, 926, 1172, 2571, 1212, 1234],\n", + " 557: [2704,\n", + " 137,\n", + " 26425,\n", + " 27255,\n", + " 2911,\n", + " 5840,\n", + " 2425,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 563: [5069,\n", + " 2704,\n", + " 137,\n", + " 26425,\n", + " 3473,\n", + " 27255,\n", + " 6122,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 570: [110, 858, 306, 593, 1046, 1196, 1089, 7193, 1131, 1132],\n", + " 575: [1148, 28, 47, 495, 527, 541, 593, 778, 903, 912],\n", + " 594: [242, 527, 5017, 5294, 4978, 5110, 5255, 5438, 1131, 1132],\n", + " 607: [7153, 2028, 2571, 5017, 7193, 3429, 2075, 2931, 2938, 4276],\n", + " 631: [8533, 608, 912, 926, 1046, 50, 904, 1260, 2203, 2936],\n", + " 651: [110, 213, 1288, 1564, 5952, 7153, 47, 111, 306, 326],\n", + " 664: [5017, 324, 26131, 1131, 2075, 2931, 3516, 1489, 2679, 2714],\n", + " 685: [5069,\n", + " 2704,\n", + " 137,\n", + " 1477,\n", + " 26425,\n", + " 27255,\n", + " 1621,\n", + " 2911,\n", + " 31116,\n", + " 1444],\n", + " 690: [5069,\n", + " 2704,\n", + " 137,\n", + " 26425,\n", + " 1477,\n", + " 27255,\n", + " 31116,\n", + " 3823,\n", + " 1444,\n", + " 3224],\n", + " 696: [2494,\n", + " 2704,\n", + " 5840,\n", + " 26425,\n", + " 2930,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 850],\n", + " 724: [495,\n", + " 2618,\n", + " 3516,\n", + " 47099,\n", + " 2696,\n", + " 1734,\n", + " 3473,\n", + " 4208,\n", + " 55247,\n", + " 4783],\n", + " 738: [5017,\n", + " 5304,\n", + " 6783,\n", + " 7064,\n", + " 7933,\n", + " 8125,\n", + " 8199,\n", + " 32316,\n", + " 3415,\n", + " 3473],\n", + " 762: [3473,\n", + " 4850,\n", + " 2704,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 763: [2679, 3394, 3470, 3473, 1236, 2579, 1442, 1121, 2509, 4135],\n", + " 770: [26131,\n", + " 1934,\n", + " 7064,\n", + " 32316,\n", + " 927,\n", + " 2721,\n", + " 3473,\n", + " 5077,\n", + " 4939,\n", + " 45728],\n", + " 796: [858, 912, 1046, 1196, 2618, 5438, 296, 2075, 2931, 2938],\n", + " 800: [3473,\n", + " 4135,\n", + " 4850,\n", + " 2704,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 1444],\n", + " 829: [5017, 2959, 2931, 2938, 5122, 1192, 2550, 2679, 2714, 8916],\n", + " 836: [3415, 3473, 3511, 1121, 2509, 4221, 4418, 4509, 4732, 5101],\n", + " 882: [2618, 1131, 1913, 2931, 2938, 2360, 5122, 1192, 932, 1837],\n", + " 900: [3415, 3473, 1121, 2509, 4221, 4418, 4509, 4732, 3645, 6271],\n", + " 903: [2618,\n", + " 5255,\n", + " 5438,\n", + " 2075,\n", + " 2931,\n", + " 2938,\n", + " 4276,\n", + " 40826,\n", + " 1192,\n", + " 1489],\n", + " 914: [40826,\n", + " 7064,\n", + " 7933,\n", + " 2721,\n", + " 3415,\n", + " 3473,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418],\n", + " 918: [5017,\n", + " 7193,\n", + " 7376,\n", + " 2075,\n", + " 2931,\n", + " 2938,\n", + " 3387,\n", + " 40826,\n", + " 3516,\n", + " 1192],\n", + " 920: [1148, 1046, 1199, 908, 4226, 2618, 2959, 7193, 1131, 2852],\n", + " 945: [2704,\n", + " 26425,\n", + " 27255,\n", + " 6122,\n", + " 4850,\n", + " 31116,\n", + " 3823,\n", + " 27741,\n", + " 1444,\n", + " 3415],\n", + " 950: [356, 1564, 150, 28, 111, 171, 495, 527, 912, 923],\n", + " 952: [5505, 306, 308, 321, 326, 926, 1264, 942, 2203, 2936],\n", + " 982: [2696, 3415, 3473, 3511, 1121, 2271, 2509, 4221, 4418, 4509],\n", + " 989: [362, 589, 110, 733, 1210, 1148, 1674, 5952, 7153, 161],\n", + " 1016: [3516, 7064, 2721, 3473, 336, 2483, 1121, 2509, 4135, 4221],\n", + " 1019: [321, 5017, 2931, 3516, 1192, 2679, 2696, 1945, 3813, 5434],\n", + " 1044: [356, 377, 589, 594, 616, 110, 858, 1356, 213, 1148],\n", + " 1051: [3473,\n", + " 2704,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 6023],\n", + " 917: [3516, 7064, 3415, 3473, 5077, 6122, 4939, 3645, 6241, 6271],\n", + " 951: [1260, 4432, 2618, 4105, 6003, 8641, 1056, 1131, 2931, 3516],\n", + " 997: [1260, 3429, 2931, 2938, 3516, 1192, 1223, 745, 2550, 3000],\n", + " 174: [3415, 3473, 6023, 6122, 3645, 4928, 6271, 6918, 7067, 7749],\n", + " 676: [49932, 1934, 3503, 7064, 927, 2721, 3473, 5288, 1361, 7209],\n", + " 764: [615, 5899, 2925, 3511, 1121, 2509, 4221, 4418, 4509, 5101],\n", + " 1052: [615, 3341, 7013, 8596, 32316, 715, 1493, 7063, 8580, 3511],\n", + " 5: [1489, 7064, 3415, 3473, 4208, 49957, 4453, 212, 1121, 2271],\n", + " 27: [2704,\n", + " 137,\n", + " 26425,\n", + " 1477,\n", + " 27255,\n", + " 31116,\n", + " 7064,\n", + " 1444,\n", + " 3415,\n", + " 6023],\n", + " 33: [3473,\n", + " 6122,\n", + " 2911,\n", + " 2704,\n", + " 137,\n", + " 27255,\n", + " 26425,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 134: [858, 306, 1046, 1172, 50, 4226, 2618, 26131, 1131, 2852],\n", + " 142: [2704,\n", + " 26425,\n", + " 1477,\n", + " 6319,\n", + " 5069,\n", + " 27255,\n", + " 2911,\n", + " 31116,\n", + " 1444,\n", + " 3415],\n", + " 156: [2714,\n", + " 2970,\n", + " 27741,\n", + " 2977,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 1621,\n", + " 26425,\n", + " 1366],\n", + " 167: [3415, 3473, 6023, 3511, 1121, 2509, 4221, 4418, 4509, 4732],\n", + " 177: [615, 7064, 7933, 8199, 3415, 1121, 2509, 4221, 4418, 4509],\n", + " 224: [321, 326, 926, 1199, 50, 1260, 1348, 1611, 1658, 6695],\n", + " 269: [2075, 3516, 3918, 2721, 3415, 5034, 4187, 6023, 3645, 1572],\n", + " 312: [1148, 495, 527, 926, 1199, 1248, 1260, 2804, 2936, 4226],\n", + " 360: [3477, 5283, 5438, 2931, 2938, 3516, 4102, 2714, 3918, 3341],\n", + " 385: [615, 3415, 6023, 5077, 4850, 4939, 3645, 5069, 1572, 4405],\n", + " 411: [1260, 3365, 2618, 2075, 2931, 2938, 6612, 3932, 615, 680],\n", + " 464: [2075,\n", + " 1192,\n", + " 1489,\n", + " 2679,\n", + " 1966,\n", + " 5304,\n", + " 6783,\n", + " 7933,\n", + " 32316,\n", + " 3415],\n", + " 568: [326, 4844, 5110, 6290, 6440, 8641, 1131, 1233, 2852, 29],\n", + " 612: [260, 1046, 2618, 5438, 1131, 2852, 3516, 4102, 7162, 1192],\n", + " 630: [326, 6273, 1658, 2618, 26131, 1056, 2075, 4276, 1192, 932],\n", + " 706: [2936, 5017, 2796, 4047, 6187, 8916, 1646, 49932, 680, 2731],\n", + " 737: [2704,\n", + " 26425,\n", + " 5069,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 31116,\n", + " 3823,\n", + " 3415,\n", + " 6023],\n", + " 749: [1192,\n", + " 363,\n", + " 2704,\n", + " 2330,\n", + " 1444,\n", + " 27255,\n", + " 5287,\n", + " 1477,\n", + " 1621,\n", + " 26425],\n", + " 756: [3473,\n", + " 5069,\n", + " 2911,\n", + " 2704,\n", + " 137,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 1444],\n", + " 811: [1658,\n", + " 3022,\n", + " 3742,\n", + " 7064,\n", + " 3694,\n", + " 3695,\n", + " 3823,\n", + " 27648,\n", + " 5077,\n", + " 4939],\n", + " 853: [3093, 206, 1870, 2425, 1649, 6780, 34164, 2494, 2704, 5840],\n", + " 884: [1260, 6695, 7193, 7376, 8968, 1132, 2075, 5882, 3516, 1177],\n", + " 955: [260, 28, 50, 1260, 3365, 4226, 4327, 324, 4993, 7371],\n", + " 1032: [1148, 5952, 7153, 8533, 28, 58, 111, 306, 326, 334],\n", + " 1043: [1049, 213, 1148, 3684, 232, 242, 527, 923, 1096, 1207],\n", + " 370: [3918, 680, 4356, 7933, 2721, 3473, 6791, 1121, 2271, 2509],\n", + " 670: [3341,\n", + " 7064,\n", + " 7933,\n", + " 8199,\n", + " 32316,\n", + " 2131,\n", + " 3415,\n", + " 6023,\n", + " 3511,\n", + " 1121],\n", + " 923: [260, 1252, 299, 527, 1046, 1212, 2203, 3365, 4226, 678],\n", + " 931: [1658, 3918, 680, 2935, 581, 217, 2787, 6772, 4850, 5069],\n", + " 969: [5893, 3473, 4117, 137, 1477, 1621, 6772, 3823, 5287, 3477],\n", + " 12: [4914, 3503, 7064, 7933, 8199, 2721, 3415, 1121, 2509, 4221],\n", + " 597: [4053, 2931, 3516, 1489, 2679, 2714, 8916, 1034, 2721, 3415],\n", + " 195: [28, 242, 2931, 2938, 3516, 1489, 2679, 7064, 32316, 2721],\n", + " 337: [356, 260, 858, 1148, 1252, 5952, 28, 232, 326, 495],\n", + " 910: [3516, 1192, 3341, 7064, 2721, 3415, 3473, 121, 1121, 2509],\n", + " 63: [5069,\n", + " 2911,\n", + " 2704,\n", + " 27255,\n", + " 2930,\n", + " 26425,\n", + " 850,\n", + " 31116,\n", + " 7064,\n", + " 1444],\n", + " 70: [7064, 7933, 3415, 3473, 6023, 4135, 4850, 4939, 5069, 668],\n", + " 99: [2852, 2931, 3516, 1489, 8916, 7064, 2721, 3415, 3473, 4208],\n", + " 121: [5017,\n", + " 2075,\n", + " 7064,\n", + " 8199,\n", + " 32316,\n", + " 2920,\n", + " 2131,\n", + " 3415,\n", + " 2925,\n", + " 4079],\n", + " 130: [2075,\n", + " 40826,\n", + " 4920,\n", + " 7064,\n", + " 2043,\n", + " 3415,\n", + " 4453,\n", + " 8341,\n", + " 4079,\n", + " 6023],\n", + " 244: [260, 28, 1260, 2203, 4226, 290, 1262, 2618, 2959, 5283],\n", + " 291: [2696, 7064, 3415, 3473, 6023, 1121, 2509, 4135, 4221, 4418],\n", + " 335: [1564, 1199, 2618, 1233, 2852, 2931, 1203, 4633, 3516, 318],\n", + " 361: [7064, 3415, 3473, 5899, 149, 6023, 3511, 710, 1121, 2509],\n", + " 470: [260, 3365, 1131, 1132, 2075, 2852, 2931, 2938, 4276, 40826],\n", + " 497: [137,\n", + " 26425,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 2977,\n", + " 31116,\n", + " 4850,\n", + " 1444],\n", + " 620: [242, 2075, 2679, 7064, 1734, 2644, 3415, 3473, 121, 212],\n", + " 648: [28, 326, 926, 1046, 2203, 3365, 4432, 4848, 6296, 7371],\n", + " 666: [4850,\n", + " 850,\n", + " 2704,\n", + " 27255,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 7064,\n", + " 3415,\n", + " 6241],\n", + " 710: [1564, 28, 593, 1172, 1264, 50, 1260, 4226, 4327, 2959],\n", + " 794: [4850, 2704, 27255, 2721, 1444, 3415, 8195, 3645, 668, 1572],\n", + " 854: [3473,\n", + " 4135,\n", + " 4850,\n", + " 2911,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 1444],\n", + " 861: [28, 50, 799, 2618, 5438, 2075, 2931, 40826, 3516, 318],\n", + " 87: [260, 858, 1148, 1252, 1564, 111, 527, 593, 926, 1046],\n", + " 317: [1046, 2721, 3415, 3473, 1184, 146, 3511, 1121, 2509, 4221],\n", + " 324: [2721, 3415, 4928, 6271, 7067, 7749, 7759, 8256, 8724, 8785],\n", + " 502: [3918,\n", + " 2721,\n", + " 3473,\n", + " 6591,\n", + " 49957,\n", + " 4495,\n", + " 4135,\n", + " 5077,\n", + " 6122,\n", + " 1827],\n", + " 559: [213,\n", + " 2704,\n", + " 1034,\n", + " 6188,\n", + " 34164,\n", + " 44974,\n", + " 1361,\n", + " 6780,\n", + " 3811,\n", + " 5899],\n", + " 973: [1046, 3477, 5438, 1753, 3415, 3473, 212, 6023, 3511, 1121],\n", + " 1015: [858, 1564, 321, 527, 1221, 3365, 6695, 2931, 2938, 750],\n", + " 1017: [1034,\n", + " 2425,\n", + " 2704,\n", + " 27255,\n", + " 26425,\n", + " 4850,\n", + " 99,\n", + " 8712,\n", + " 31116,\n", + " 6780],\n", + " 85: [6122,\n", + " 2704,\n", + " 137,\n", + " 26425,\n", + " 1477,\n", + " 27255,\n", + " 2911,\n", + " 34164,\n", + " 49957,\n", + " 31116],\n", + " 306: [2935, 7064, 3473, 2925, 5077, 6122, 4939, 2911, 4442, 850],\n", + " 653: [4850,\n", + " 26425,\n", + " 4135,\n", + " 1477,\n", + " 1621,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 2721,\n", + " 31116],\n", + " 371: [26425,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 2721,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 3645],\n", + " 566: [2704,\n", + " 5840,\n", + " 3473,\n", + " 1366,\n", + " 2977,\n", + " 2419,\n", + " 3823,\n", + " 4356,\n", + " 55269,\n", + " 6122],\n", + " 331: [7064,\n", + " 2704,\n", + " 26425,\n", + " 1477,\n", + " 4850,\n", + " 5069,\n", + " 31116,\n", + " 1444,\n", + " 8125,\n", + " 8199],\n", + " 665: [3415, 3473, 6023, 1121, 2509, 4221, 4418, 4509, 6122, 4850],\n", + " 872: [1046, 2075, 2931, 2938, 2679, 3676, 5304, 6783, 7064, 8042],\n", + " 879: [260, 858, 1210, 1276, 28, 111, 306, 527, 541, 778],\n", + " 486: [1046, 5438, 2852, 4276, 4633, 3516, 955, 1192, 2550, 6187],\n", + " 864: [2704,\n", + " 26425,\n", + " 2494,\n", + " 2930,\n", + " 27741,\n", + " 27255,\n", + " 6122,\n", + " 34164,\n", + " 850,\n", + " 31116],\n", + " 52: [3365, 6273, 2618, 26131, 2075, 2931, 2938, 1203, 5122, 6316],\n", + " 288: [324, 2060, 5255, 2931, 2679, 3270, 1646, 1281, 5304, 7933],\n", + " 9: [61, 2679, 1646, 1946, 3341, 4920, 7064, 99, 715, 1493],\n", + " 117: [2721,\n", + " 3473,\n", + " 2911,\n", + " 1444,\n", + " 27255,\n", + " 1477,\n", + " 1621,\n", + " 26425,\n", + " 31116,\n", + " 3415],\n", + " 220: [5017, 328, 2931, 1192, 1489, 5159, 3341, 3831, 2731, 5304],\n", + " 544: [1046, 3516, 2721, 3415, 3090, 5288, 1121, 2509, 4221, 4418],\n", + " 999: [242, 2936, 328, 1658, 506, 2075, 2852, 2931, 3115, 4276],\n", + " 458: [4850,\n", + " 5069,\n", + " 2930,\n", + " 26425,\n", + " 1477,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 850,\n", + " 31116],\n", + " 974: [927, 1236, 8580, 4466, 6669, 6162, 2625, 80, 2833, 2704],\n", + " 546: [1148, 1252, 1276, 232, 593, 1199, 1230, 50, 904, 1248],\n", + " 55: [3415, 121, 212, 3511, 1121, 2509, 4221, 4418, 4509, 5101],\n", + " 363: [1148, 242, 608, 1046, 50, 904, 1260, 3365, 4432, 1213],\n", + " 445: [3341, 3415, 3473, 121, 1121, 2509, 4135, 4221, 4418, 4509],\n", + " 492: [926, 1046, 50, 678, 7193, 1131, 1233, 2075, 2931, 2938],\n", + " 234: [615, 1684, 6319, 7933, 32316, 2721, 1121, 2509, 4135, 4221],\n", + " 1027: [2075,\n", + " 2721,\n", + " 3415,\n", + " 3473,\n", + " 1121,\n", + " 2509,\n", + " 4221,\n", + " 4418,\n", + " 4509,\n", + " 4850],\n", + " 140: [3516,\n", + " 2679,\n", + " 5304,\n", + " 6783,\n", + " 7064,\n", + " 8125,\n", + " 32316,\n", + " 2721,\n", + " 3415,\n", + " 3473],\n", + " 926: [5017, 2075, 2931, 1489, 2696, 5304, 6783, 7064, 7933, 8596],\n", + " 781: [260, 858, 1210, 1148, 5952, 7153, 232, 242, 306, 527],\n", + " 825: [1046,\n", + " 2931,\n", + " 2938,\n", + " 1489,\n", + " 2679,\n", + " 2696,\n", + " 3097,\n", + " 5434,\n", + " 45950,\n", + " 49932],\n", + " 913: [3415, 3473, 4616, 3480, 5077, 4850, 4939, 1572, 6241, 6271],\n", + " 453: [1260, 2203, 6695, 8968, 2938, 5007, 1192, 408, 6006, 2714],\n", + " 540: [7064, 2721, 3415, 6023, 4850, 1572, 4405, 6271, 6918, 7067],\n", + " 66: [1046, 2075, 2852, 2931, 2938, 3516, 1192, 1489, 2550, 3929],\n", + " 185: [4387, 6595, 6219, 3473, 3090, 869, 3857, 4846, 220, 3777],\n", + " 222: [4135, 2704, 137, 26425, 4850, 1184, 2425, 2721, 6772, 2935],\n", + " 498: [7064, 8199, 3415, 3473, 3645, 4928, 6241, 6271, 7067, 7749],\n", + " 994: [2704, 3694, 3695, 7064, 6122, 3823, 1444, 3415, 6023, 8195],\n", + " 165: [3473,\n", + " 3700,\n", + " 2704,\n", + " 1444,\n", + " 27255,\n", + " 7297,\n", + " 1477,\n", + " 26425,\n", + " 31116,\n", + " 27648],\n", + " 202: [1148, 28, 299, 321, 904, 1348, 2648, 2804, 1611, 2618],\n", + " 180: [260, 3684, 28, 47, 308, 326, 527, 912, 926, 1046],\n", + " 93: [242, 1172, 908, 1248, 1260, 2206, 3365, 4327, 5017, 5292],\n", + " 261: [5017, 1192, 2679, 7064, 7933, 8199, 927, 2043, 3415, 3473],\n", + " 435: [324, 3477, 5255, 2075, 2931, 1468, 2550, 3918, 7064, 32316],\n", + " 322: [26131,\n", + " 40826,\n", + " 7064,\n", + " 2721,\n", + " 3415,\n", + " 3473,\n", + " 7063,\n", + " 6023,\n", + " 3511,\n", + " 1121],\n", + " 238: [1646, 3341, 3415, 3473, 212, 6023, 8580, 3511, 1121, 2509],\n", + " 425: [1046, 2075, 2852, 250, 615, 1684, 49932, 2721, 715, 3415],\n", + " 512: [1056, 2931, 3516, 1192, 2500, 8916, 1646, 4920, 49932, 680],\n", + " 725: [2494,\n", + " 26425,\n", + " 1477,\n", + " 27255,\n", + " 2911,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 3645,\n", + " 668],\n", + " 732: [2721,\n", + " 3473,\n", + " 27741,\n", + " 2911,\n", + " 2977,\n", + " 27255,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116],\n", + " 108: [2721, 3415, 3473, 1184, 6023, 4135, 4850, 4939, 3645, 668],\n", + " 592: [1046, 904, 4226, 2618, 2858, 2959, 7360, 44761, 2931, 2938],\n", + " 443: [1489, 2679, 2721, 3415, 3384, 336, 2102, 6023, 8580, 4135],\n", + " 916: [2704,\n", + " 26425,\n", + " 2930,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 7064,\n", + " 1046,\n", + " 2721,\n", + " 31116],\n", + " 736: [858, 7153, 326, 951, 1260, 324, 2959, 6296, 2931, 29],\n", + " 961: [242, 4432, 2075, 2852, 2931, 2938, 2360, 3516, 932, 1837],\n", + " 1012: [2721,\n", + " 3473,\n", + " 34164,\n", + " 2704,\n", + " 3694,\n", + " 3695,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 1444],\n", + " 515: [2721, 715, 3415, 3645, 4928, 6271, 7067, 7749, 7759, 8256],\n", + " 978: [1148, 8533, 321, 1172, 1260, 3365, 4432, 324, 2060, 2618],\n", + " 28: [5438, 2075, 3516, 188, 1034, 615, 3097, 2721, 1361, 146],\n", + " 475: [3473,\n", + " 2704,\n", + " 1477,\n", + " 2930,\n", + " 26425,\n", + " 31116,\n", + " 1444,\n", + " 3415,\n", + " 3645,\n", + " 668],\n", + " 598: [1046, 506, 1056, 2931, 1192, 1489, 250, 2696, 1929, 199],\n", + " 943: [4135, 6122, 4850, 2704, 1477, 26425, 1046, 850, 7064, 2721],\n", + " 520: [8132,\n", + " 26425,\n", + " 27255,\n", + " 2970,\n", + " 31116,\n", + " 5017,\n", + " 5304,\n", + " 7064,\n", + " 8199,\n", + " 3415],\n", + " 697: [2347, 28, 1719, 2721, 328, 4103, 30803, 4307, 55280, 57243],\n", + " 849: [260, 1210, 1148, 28, 527, 541, 1199, 1207, 1193, 1197],\n", + " 1003: [3516, 250, 7064, 7933, 32316, 2721, 715, 5034, 212, 1121],\n", + " 705: [2721, 3415, 3473, 121, 212, 6023, 1121, 2509, 4221, 4418],\n", + " 48: [242, 562, 1103, 1199, 1206, 1207, 1244, 904, 913, 1086],\n", + " 29: [4135,\n", + " 4850,\n", + " 26425,\n", + " 1184,\n", + " 1827,\n", + " 1870,\n", + " 3360,\n", + " 6772,\n", + " 8712,\n", + " 31116],\n", + " 231: [250, 2714, 1646, 3415, 1904, 6791, 3076, 212, 1121, 2271],\n", + " 699: [1489, 2679, 1147, 615, 3341, 2731, 5304, 6783, 7064, 8125],\n", + " 448: [7064,\n", + " 2704,\n", + " 26425,\n", + " 2494,\n", + " 3473,\n", + " 27255,\n", + " 2911,\n", + " 3694,\n", + " 3695,\n", + " 850],\n", + " 750: [213, 242, 926, 26131, 613, 2075, 2931, 2938, 4633, 1192],\n", + " 782: [5017,\n", + " 26131,\n", + " 4356,\n", + " 7064,\n", + " 8199,\n", + " 2721,\n", + " 3224,\n", + " 3415,\n", + " 6023,\n", + " 8195],\n", + " 860: [5840,\n", + " 26425,\n", + " 3473,\n", + " 59315,\n", + " 54995,\n", + " 3823,\n", + " 4327,\n", + " 8712,\n", + " 31116,\n", + " 1444],\n", + " 768: [213, 2704, 26425, 1034, 1361, 2419, 2852, 1477, 2714, 2935],\n", + " 127: [1833, 3503, 2721, 2732, 82, 1237, 6881, 2704, 3694, 3695],\n", + " 894: [299,\n", + " 4103,\n", + " 30803,\n", + " 4307,\n", + " 55280,\n", + " 57243,\n", + " 1244,\n", + " 49932,\n", + " 7327,\n", + " 4437]})" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# surprise를 사용한 구현\n", + "\n", + "from surprise import KNNWithMeans, Reader\n", + "from surprise import Dataset as SurpriseDataset\n", + "# surprise용으로 데이터를 가공한다\n", + "reader = Reader(rating_scale=(0.5, 5))\n", + "data_train = SurpriseDataset.load_from_df(\n", + " movielens_train[[\"user_id\", \"movie_id\", \"rating\"]], reader\n", + ").build_full_trainset()\n", + "\n", + "sim_options = {\"name\": \"pearson\", \"user_based\": True} # 유사도를 계산하는 방법을 정의한다 # False로 하면 아이템 기반이 된다\n", + "knn = KNNWithMeans(k=30, min_k=1, sim_options=sim_options)\n", + "knn.fit(data_train)\n", + "\n", + "# 학습 데이터셋에서 평갓값이 없는 사용자와 아이템의 조합을 준비한다\n", + "data_test = data_train.build_anti_testset(None)\n", + "predictions = knn.test(data_test)\n", + "\n", + "def get_top_n(predictions, n=10):\n", + " # 각 사용자별로 예측된 아이템을 저장한다\n", + " top_n = defaultdict(list)\n", + " for uid, iid, true_r, est, _ in predictions:\n", + " top_n[uid].append((iid, est))\n", + "\n", + " # 사용자별로 아이템을 예측 평갓값 순으로 나열하고, 상위 n개를 저장한다\n", + " for uid, user_ratings in top_n.items():\n", + " user_ratings.sort(key=lambda x: x[1], reverse=True)\n", + " top_n[uid] = [d[0] for d in user_ratings[:n]]\n", + "\n", + " return top_n\n", + "\n", + "pred_user2items = get_top_n(predictions, n=10)\n", + "\n", + "average_score = movielens_train.rating.mean()\n", + "pred_results = []\n", + "for _, row in movielens_test.iterrows():\n", + " user_id = row[\"user_id\"]\n", + " movie_id = row[\"movie_id\"]\n", + " # 학습 데이터에 존재하지 않고 테스트 데이터에만 존재하는 사용자와 영화에 대한 예측 평갓값은 전체의 평균 평갓값으로 한다\n", + " if user_id not in user_id2index or movie_id not in movie_id2index:\n", + " pred_results.append(average_score)\n", + " continue\n", + " pred_score = knn.predict(uid=user_id, iid=movie_id).est\n", + " pred_results.append(pred_score)\n", + "movie_rating_predict[\"rating_pred\"] = pred_results\n", + "\n", + "pred_user2items" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1fccc723", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 841 + }, + "executionInfo": { + "elapsed": 30, + "status": "ok", + "timestamp": 1672121035097, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "1fccc723", + "outputId": "6420b02f-837f-4f24-adc1-0c986fe8d916" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestamptitlegenretagtimestamp_rank
473221105.0868245777Braveheart (1995)[Action, Drama, War][bullshit history, medieval, bloodshed, hero, ...8.0
524622605.0868244562Star Wars: Episode IV - A New Hope (a.k.a. Sta...[Action, Adventure, Sci-Fi][desert, quotable, lucas, gfei own it, seen mo...17.0
579825905.0868245608Dances with Wolves (1990)[Adventure, Drama, Western][afi 100, lame, native, biopic, american india...11.0
615026482.0868244699Mission: Impossible (1996)[Action, Adventure, Mystery, Thriller][confusing, confusing plot, memorable sequence...12.0
653127333.0868244562Rock, The (1996)[Action, Adventure, Thriller][gfei own it, alcatraz, nicolas cage, sean con...18.0
681327363.0868244698Twister (1996)[Action, Adventure, Romance, Thriller][disaster, disaster, storm, bill paxton, helen...13.0
711327803.0868244698Independence Day (a.k.a. ID4) (1996)[Action, Adventure, Sci-Fi, War][action, alien invasion, aliens, will smith, a...14.0
750627863.0868244562Eraser (1996)[Action, Drama, Thriller][arnold schwarzenegger, action, arnold, arnold...19.0
766128022.0868244603Phenomenon (1996)[Drama, Romance][interesting concept, own, john travolta, john...15.0
777928582.0868245645Godfather, The (1972)[Crime, Drama][oscar (best picture), marlon brando, classic,...9.0
8077210493.0868245920Ghost and the Darkness, The (1996)[Action, Adventure][lions, own, seen at the cinema, adventure, af...6.0
8127210733.0868244562Willy Wonka & the Chocolate Factory (1971)[Children, Comedy, Fantasy, Musical][based on a book, roald dahl, based on a book,...20.0
8381212104.0868245644Star Wars: Episode VI - Return of the Jedi (1983)[Action, Adventure, Sci-Fi][desert, fantasy, sci-fi, space, lucas, gfei o...10.0
8771213563.0868244603Star Trek: First Contact (1996)[Action, Adventure, Sci-Fi, Thriller][space, borg, futuristmovies.com, patrick stew...16.0
9097215443.0868245920Lost World: Jurassic Park, The (Jurassic Park ...[Action, Adventure, Horror, Sci-Fi, Thriller][dinosaurs, dinosaurs, steven spielberg, borin...7.0
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " user_id movie_id rating timestamp \\\n", + "4732 2 110 5.0 868245777 \n", + "5246 2 260 5.0 868244562 \n", + "5798 2 590 5.0 868245608 \n", + "6150 2 648 2.0 868244699 \n", + "6531 2 733 3.0 868244562 \n", + "6813 2 736 3.0 868244698 \n", + "7113 2 780 3.0 868244698 \n", + "7506 2 786 3.0 868244562 \n", + "7661 2 802 2.0 868244603 \n", + "7779 2 858 2.0 868245645 \n", + "8077 2 1049 3.0 868245920 \n", + "8127 2 1073 3.0 868244562 \n", + "8381 2 1210 4.0 868245644 \n", + "8771 2 1356 3.0 868244603 \n", + "9097 2 1544 3.0 868245920 \n", + "\n", + " title \\\n", + "4732 Braveheart (1995) \n", + "5246 Star Wars: Episode IV - A New Hope (a.k.a. Sta... \n", + "5798 Dances with Wolves (1990) \n", + "6150 Mission: Impossible (1996) \n", + "6531 Rock, The (1996) \n", + "6813 Twister (1996) \n", + "7113 Independence Day (a.k.a. ID4) (1996) \n", + "7506 Eraser (1996) \n", + "7661 Phenomenon (1996) \n", + "7779 Godfather, The (1972) \n", + "8077 Ghost and the Darkness, The (1996) \n", + "8127 Willy Wonka & the Chocolate Factory (1971) \n", + "8381 Star Wars: Episode VI - Return of the Jedi (1983) \n", + "8771 Star Trek: First Contact (1996) \n", + "9097 Lost World: Jurassic Park, The (Jurassic Park ... \n", + "\n", + " genre \\\n", + "4732 [Action, Drama, War] \n", + "5246 [Action, Adventure, Sci-Fi] \n", + "5798 [Adventure, Drama, Western] \n", + "6150 [Action, Adventure, Mystery, Thriller] \n", + "6531 [Action, Adventure, Thriller] \n", + "6813 [Action, Adventure, Romance, Thriller] \n", + "7113 [Action, Adventure, Sci-Fi, War] \n", + "7506 [Action, Drama, Thriller] \n", + "7661 [Drama, Romance] \n", + "7779 [Crime, Drama] \n", + "8077 [Action, Adventure] \n", + "8127 [Children, Comedy, Fantasy, Musical] \n", + "8381 [Action, Adventure, Sci-Fi] \n", + "8771 [Action, Adventure, Sci-Fi, Thriller] \n", + "9097 [Action, Adventure, Horror, Sci-Fi, Thriller] \n", + "\n", + " tag timestamp_rank \n", + "4732 [bullshit history, medieval, bloodshed, hero, ... 8.0 \n", + "5246 [desert, quotable, lucas, gfei own it, seen mo... 17.0 \n", + "5798 [afi 100, lame, native, biopic, american india... 11.0 \n", + "6150 [confusing, confusing plot, memorable sequence... 12.0 \n", + "6531 [gfei own it, alcatraz, nicolas cage, sean con... 18.0 \n", + "6813 [disaster, disaster, storm, bill paxton, helen... 13.0 \n", + "7113 [action, alien invasion, aliens, will smith, a... 14.0 \n", + "7506 [arnold schwarzenegger, action, arnold, arnold... 19.0 \n", + "7661 [interesting concept, own, john travolta, john... 15.0 \n", + "7779 [oscar (best picture), marlon brando, classic,... 9.0 \n", + "8077 [lions, own, seen at the cinema, adventure, af... 6.0 \n", + "8127 [based on a book, roald dahl, based on a book,... 20.0 \n", + "8381 [desert, fantasy, sci-fi, space, lucas, gfei o... 10.0 \n", + "8771 [space, borg, futuristmovies.com, patrick stew... 16.0 \n", + "9097 [dinosaurs, dinosaurs, steven spielberg, borin... 7.0 " + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2인 사용자가 학습 데이터에서 평가를 부여한 영화 목록\n", + "movielens_train[movielens_train.user_id==2]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "874b6e3e", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 19, + "status": "ok", + "timestamp": 1672121035098, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "874b6e3e", + "outputId": "b39c148b-c27c-4f83-a2b5-ddf05e1f8545" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[3473, 4135, 4850, 2425, 2704, 137, 27255, 26425, 8712, 31116]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred_user2items[2]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "c9b77fbd", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 143 + }, + "executionInfo": { + "elapsed": 17, + "status": "ok", + "timestamp": 1672121035098, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "c9b77fbd", + "outputId": "9a9700f9-87ac-459c-b415-1df2a8dceb5c" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idtitlegenretag
33863473Jonah Who Will Be 25 in the Year 2000 (Jonas q...[Comedy][cerebral, humorous, intersecting lives, intim...
40434135Monster Squad, The (1987)[Adventure, Comedy, Horror][can't remember]
47564850Spriggan (Supurigan) (1998)[Action, Animation, Sci-Fi][library, anime, spectacle, over expositive]
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " movie_id title \\\n", + "3386 3473 Jonah Who Will Be 25 in the Year 2000 (Jonas q... \n", + "4043 4135 Monster Squad, The (1987) \n", + "4756 4850 Spriggan (Supurigan) (1998) \n", + "\n", + " genre \\\n", + "3386 [Comedy] \n", + "4043 [Adventure, Comedy, Horror] \n", + "4756 [Action, Animation, Sci-Fi] \n", + "\n", + " tag \n", + "3386 [cerebral, humorous, intersecting lives, intim... \n", + "4043 [can't remember] \n", + "4756 [library, anime, spectacle, over expositive] " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# user_id=2에 대한 추천(1198, 1196, 1097)\n", + "movies[movies.movie_id.isin([3473, 4135, 4850])]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "99c25fe6", + "metadata": { + "executionInfo": { + "elapsed": 17, + "status": "ok", + "timestamp": 1672121035098, + "user": { + "displayName": "Moses Kim", + "userId": "10365665687963761023" + }, + "user_tz": -540 + }, + "id": "99c25fe6" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "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.10.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/chapter5/notebook/Association.ipynb b/chapter5/notebook/Association.ipynb index e36bdbd..e8269e8 100644 --- a/chapter5/notebook/Association.ipynb +++ b/chapter5/notebook/Association.ipynb @@ -5,7 +5,7 @@ "id": "c7dc31f1", "metadata": {}, "source": [ - "# 어소시에이션 분석" + "# 어소시에이션 분석(Apriori 알고리즘)" ] }, { diff --git a/chapter5/notebook/BPR.ipynb b/chapter5/notebook/BPR.ipynb index d421bcf..4002ead 100644 --- a/chapter5/notebook/BPR.ipynb +++ b/chapter5/notebook/BPR.ipynb @@ -5,7 +5,7 @@ "id": "1dd49045", "metadata": {}, "source": [ - "# Bayesian Personalized Ranking(BPR)" + "# 개인화 된 랭킹 문제(Bayesian Personalized Ranking, BPR)" ] }, { diff --git a/chapter5/notebook/IMF.ipynb b/chapter5/notebook/IMF.ipynb index 8a5439a..3d983d3 100644 --- a/chapter5/notebook/IMF.ipynb +++ b/chapter5/notebook/IMF.ipynb @@ -5,7 +5,7 @@ "id": "c0dccd9c", "metadata": {}, "source": [ - "# Implicit Matrix Factorization" + "# 암묵적 행렬 분해(Implicit Matrix Factorization, IMF)" ] }, { diff --git a/chapter5/notebook/LDA_collaboration.ipynb b/chapter5/notebook/LDA_collaboration.ipynb index a49e8ac..9807fc3 100644 --- a/chapter5/notebook/LDA_collaboration.ipynb +++ b/chapter5/notebook/LDA_collaboration.ipynb @@ -5,7 +5,7 @@ "id": "942a9897", "metadata": {}, "source": [ - "# Latent Dirichlet Allocation (LDA)의 행동 데이터로의 적용" + "# LDA를 행동 데이터로의 적용" ] }, { diff --git a/chapter5/notebook/LDA_content.ipynb b/chapter5/notebook/LDA_content.ipynb index 8f2b2f8..fb7aa5e 100644 --- a/chapter5/notebook/LDA_content.ipynb +++ b/chapter5/notebook/LDA_content.ipynb @@ -5,7 +5,7 @@ "id": "98853cdc", "metadata": {}, "source": [ - "# Latent Dirichlet Allocation (LDA)" + "# 잠재 디리클레 할당(Latent Dirichlet Allocation, LDA)" ] }, { diff --git a/chapter5/notebook/MF.ipynb b/chapter5/notebook/MF.ipynb index b55d1eb..7a4d612 100644 --- a/chapter5/notebook/MF.ipynb +++ b/chapter5/notebook/MF.ipynb @@ -5,7 +5,7 @@ "id": "47e2fec5", "metadata": {}, "source": [ - "# Matrix Factorization" + "# 행렬 분해(Matrix Factorization, MF)" ] }, { diff --git a/chapter5/notebook/NMF.ipynb b/chapter5/notebook/NMF.ipynb index 6949cb4..7bd1614 100644 --- a/chapter5/notebook/NMF.ipynb +++ b/chapter5/notebook/NMF.ipynb @@ -5,7 +5,7 @@ "id": "f8caaceb", "metadata": {}, "source": [ - "# 비부값 행렬 분석" + "# 비음수 행렬 분해(Non-negative Matrix Factorization, NMF)" ] }, { diff --git a/chapter5/notebook/SVD.ipynb b/chapter5/notebook/SVD.ipynb index d55536e..008a07a 100644 --- a/chapter5/notebook/SVD.ipynb +++ b/chapter5/notebook/SVD.ipynb @@ -5,7 +5,7 @@ "id": "05fd5c37", "metadata": {}, "source": [ - "# 특이값 분해SVD)" + "# 특잇값 분해(Singular Value Decomposition, SVD)" ] }, { diff --git a/chapter5/notebook/UMCF.ipynb b/chapter5/notebook/UMCF.ipynb index fff77cc..55d6848 100644 --- a/chapter5/notebook/UMCF.ipynb +++ b/chapter5/notebook/UMCF.ipynb @@ -5,7 +5,7 @@ "id": "f8caaceb", "metadata": {}, "source": [ - "# 사용자-사용자 메모리 기반 방법 협조 필터링" + "# 사용자-사용자 메모리 기반 방법 협조 필터링(User-User Memory Based Collaborative Filtering)" ] }, { From 7780219a33c1c8107d21403699680a8cc3598d03 Mon Sep 17 00:00:00 2001 From: moseskim Date: Thu, 7 Nov 2024 10:47:29 +0900 Subject: [PATCH 17/17] Correct typo in text --- chapter5/README.md | 2 +- chapter5/colab/BPR.ipynb | 2 +- chapter5/notebook/BPR.ipynb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/chapter5/README.md b/chapter5/README.md index 1dfcd20..0dea092 100644 --- a/chapter5/README.md +++ b/chapter5/README.md @@ -52,7 +52,7 @@ chapter5 |`NMF.ipynb`|비음수 행렬 분해Non-negative Matrix Factorization, NMF|5.8.3|p.148| |`MF.ipynb`|행렬 분해Matrix Factorization, MF|5.8.4|p.150| |`IMF.ipynb`|암묵적 행렬 분해Implicit Matrix Factorization, IMF|5.8.5|p.154| -|`BPR.ipynb`|개인화 된 랭킹 문제Bayesian Personalized Ranking, BPR|5.8.6|p.158| +|`BPR.ipynb`|개인화된 랭킹 문제Bayesian Personalized Ranking, BPR|5.8.6|p.158| |`FM.ipynb`|Factorization Machines, FM|5.8.7|p.160| |`LDA_content.ipynb`|잠재 디리클레 할당Latent Dirichlet Allocation, LDA|5.9.1|p.165| |`LDA_collaboration.ipynb`|LDA를 행동 데이터에 적용|5.9.3|p.169| diff --git a/chapter5/colab/BPR.ipynb b/chapter5/colab/BPR.ipynb index 468e916..dfc9448 100644 --- a/chapter5/colab/BPR.ipynb +++ b/chapter5/colab/BPR.ipynb @@ -17,7 +17,7 @@ "id": "1dd49045" }, "source": [ - "# 개인화 된 랭킹 문제(Bayesian Personalized Ranking, BPR)" + "# 개인화된 랭킹 문제(Bayesian Personalized Ranking, BPR)" ] }, { diff --git a/chapter5/notebook/BPR.ipynb b/chapter5/notebook/BPR.ipynb index 4002ead..e9df5ba 100644 --- a/chapter5/notebook/BPR.ipynb +++ b/chapter5/notebook/BPR.ipynb @@ -5,7 +5,7 @@ "id": "1dd49045", "metadata": {}, "source": [ - "# 개인화 된 랭킹 문제(Bayesian Personalized Ranking, BPR)" + "# 개인화된 랭킹 문제(Bayesian Personalized Ranking, BPR)" ] }, {