### A Pluto.jl notebook ###
# v0.19.4

using Markdown
using InteractiveUtils

# ╔═╡ c39dc109-88dc-415c-b423-28ad99f6305d
begin
	using CSV
	using DataFrames
	using ScikitLearn
	using Statistics
	using Random
	using CairoMakie
	using StatsBase
end

# ╔═╡ c0cb1d26-5f49-4c4f-a5bc-31636dd91e3c
using Conda

# ╔═╡ a1f24b10-2141-47b6-84c4-a09cd9f16b50
using ScikitLearn.CrossValidation: train_test_split

# ╔═╡ 97cf5c61-ee3c-49b3-a333-bcec3fcd20df
using DataWrangler

# ╔═╡ b06b801f-be75-422a-9787-857d88276d20
using XGBoost

# ╔═╡ e16d817a-d1d6-11ec-3393-db311583ad16
md"# ガラスの分類
[ここを解く、【練習問題】ガラスの分類](https://signate.jp/competitions/125)

[データのソース](https://archive.ics.uci.edu/ml/datasets/Glass+Identification)

[kaggleのここが参考できそう](https://www.kaggle.com/code/eliekawerk/glass-type-classification-with-machine-learning)
"

# ╔═╡ 0b57167d-8306-41d3-97b0-c3df7e84d96c
md"##### ライブラリのロード"

# ╔═╡ ddbba5c8-e69e-4742-b709-f4a3c2c8d9ce
md"""
| カラム | ヘッダ名称  | データ型 | 説明                |
|-------|-----------|---------|--------------------| 
| 0	    | id	    | int     | インデックスとして使用 |
| 1	    | RI	    | float	  | 屈折率              |
| 2	    | Na	    | float	  | ナトリウム※1         |
| 3	    | Mg	    | float	  | マグネシウム※1       |
| 4	    | Al	    | float	  | アルミニウム※1       |
| 5	    | Si	    | float	  | シリコン※1          |
| 6	    | K	        | float	  | ポタシウム※1         |
| 7	    | Ca	    | float	  | カルシウム※1         |
| 8	    | Ba	    | float	  | バリウム※1          |
| 9	    | Fe	    | float	  | 鉄※1               |
|10	    | Type      |int      | ガラスの種類※2       |

※1: カラム2～9は「酸素に対する質量パーセント」

※2: (1=building_windows_float_processed, 2=building_windows_non_float_processed, 3=vehicle_windows_float_processed,5=containers, 6=tableware, 7=headlamps）※4は無し


**カラム10のTypeが目的変数**
"""

# ╔═╡ 064b7e11-3452-4e6d-8301-86b44802ea73
md"##### データの理解"

# ╔═╡ 6960b6ef-ceec-4e8a-8afb-5c7c51d50b50
begin
	train = CSV.read("./train.tsv", DataFrame)
	rename!(train ,Dict(:Column1 => "id"))
	features_index = 2:10
end;

# ╔═╡ 8c10abf4-92b0-428f-b8bd-2273ba333e74
describe(train)

# ╔═╡ ae4e405c-f18f-44f1-bee2-3a35350665e9
combine( groupby(train, :Type),  nrow => :count)

# ╔═╡ ef70fa5e-e01a-4f10-8916-33b1062476b2
md"タイプ1、2が多いので、データセットのバランスがちょっと良くない。"

# ╔═╡ e1f1f957-37c6-4444-b3f1-d854e20d076e
function distplot(df, features_index, color)
	xlabel = names(df)[features_index]
	
	fig = Figure(backgroundcolor=:gray95, resolution=(750, 700))
	grid = fig[1,1] = GridLayout()
	axes = [Axis(grid[i, j]) for i in 1:3, j in 1:3]

	for i in 1:length(axes)
		axes[i].ylabel = "Count"
		axes[i].xlabel = xlabel[i]

		label = skewness(df[:,features_index[i]]) |> x -> round(x, digits=3) |> string
		hist!(axes[i], df[:,features_index[i]], 
				bins=30, normalization=:none, color=(color,0.6), label=label)
		axislegend(axes[i])
	end
	for i in 1:3, j in 1:3
	  	colgap!(grid, 10)
	 	rowgap!(grid, 10)
	end

	fig
end

# ╔═╡ ae785846-5200-4335-833b-3ba5a42b5292
distplot(train, features_index, :blue)

# ╔═╡ afaa1a9c-4167-4f42-8e73-04889639cb20
md"　どの特徴量も正規分布していない。特徴量Fe, Ba, Ca, Kは、最も高い歪度（わいど、skewness は、分布の非対称性を示す指標)を示している。さらに、カリウム (K) とバリウム (Ba) の分布は、多くのはずれ値を含んでいるようです。外れ値を含む測定値の指標を、[Tukey's method](http://datapigtechnologies.com/blog/index.php/highlighting-outliers-in-your-data-with-the-tukey-method/) [テューキーの範囲検定](https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%A5%E3%83%BC%E3%82%AD%E3%83%BC%E3%81%AE%E7%AF%84%E5%9B%B2%E6%A4%9C%E5%AE%9A)を用いて同定してみましょう。"

# ╔═╡ dce77031-e140-4475-948a-746bb1ce3a9e
let
	cc = :Al
	fig = Figure(backgroundcolor=:gray95, resolution=(750, 700))
	grid = fig[1,1] = GridLayout()
	ax = Axis(grid[1, 1])

	hist!(ax, train[:,cc], bins=25)

	Q1 = train[:,cc] |> x -> percentile(x, 25)	
	Q3 = train[:,cc] |> x -> percentile(x, 75)

	# Interquartile range(IQR)
	IQR = Q3 - Q1

	outlier_step = 1.5 * iqr(train[:,cc])
	# outlier_step = 1.5 * IQR

	Q1_r = Q1 - outlier_step
	Q3_r = Q3 + outlier_step
	
	vlines!(ax, Q1_r, color=:red, linewidth=2)
	vlines!(ax, Q3_r, color=:red, linewidth=2)

	fig
end

# ╔═╡ 46e0cf0b-e62b-4bf1-bb89-1091b2daeae4
# 複数の異常値を持つ観測値を検出する関数
function outlier_hunt(df)
	"""
    特徴量のデータフレーム df を受け取り，2個以上の外れ値を含む観測値に対応する
	インデックスのリストを返す。 
    """	
	outlier_indices = []

	for col in features_index
		outlier_list_col = []
		
		# 1st quarile (25%)
		Q1 = percentile(df[:,col], 25)
		# 3rd quarile (75%)
		Q3 = percentile(df[:,col], 75)
		# Interquartile range(IQR)
		# IQR = Q3 - Q1

		# outlier step
		outlier_step = 1.5 * iqr(df[:,col])
		# Determine a list of indices of outliers for feature col
		for i in 1:size(train)[1]
			judge_Q1 = (df[i,col] < Q1 - outlier_step) 
			judge_Q3 = (df[i,col] > Q3 + outlier_step)

			if judge_Q1 || judge_Q3
				push!(outlier_list_col, i)
			end
		end

		push!(outlier_indices, outlier_list_col)
	end

	return outlier_indices
end

# ╔═╡ 681d12b8-f07b-4c58-a6c9-39a633a744c7
begin
	outier_num = length(outlier_hunt(train))
	println("The dataset contains $(outier_num) observations with more than 2 outliers")
end

# ╔═╡ 59b6cc8f-bc79-4920-9a9a-f80761b7d6bc
md"　ああ！複数の外れ値を持つ $(outier_num) 個のオブザベーションが存在します。これらは、我々の学習アルゴリズムの効率に害を与える可能性があります。我々は、次のセクションでこれらを取り除くことを確実にします。

いくつかの分布の箱ひげ図を調べてみましょう。
"

# ╔═╡ 1136f2a5-8a9b-4236-aaa9-6e07b32e2d5f
let
	fig = Figure(backgroundcolor=:gray95, resolution=(750, 700))
	grid = fig[1,1] = GridLayout()
	axes = Axis(grid[1, 1])
	
	axes.xlabel = "元素"
	axes.ylabel = "酸素に対する質量パーセント [%]"
	axes.xticks = (features_index, names(train)[features_index])
	axes.yticks = (0:10:80)

	for i in features_index
		boxplot!(fill(i, length(train[:,i])), train[:,i])
	end
	fig
end

# ╔═╡ 4b0387bb-09f2-4044-9ed5-7e8159d5e10c
md"　当然のことながら、前項で見たように、シリコンは他の成分よりはるかに優れた意味を持っています。まあ、ガラスはシリカが主成分ですから、当たり前といえば当たり前なのですが。

それでは、pairplotを描いて特徴量の相関を視覚的に検証してみましょう。
"

# ╔═╡ 7419369f-b442-4c5a-877e-6a6a5432da60
function pairplot(df, gdf_index)
	gdf = select(df, gdf_index) |> x -> groupby(x, gdf_index[end])
	colors = [:blue, :orange, :green, :cyan, :purple, :pink, :brown]
	material = names(gdf)[1:end-1]
	alpha = 0.7
	dim = size(material)[1]
	types = sort(unique(df.Type)) .|> string
	type_num = length(types)
	
	fig = Figure(backgroundcolor=:gray95, resolution=(1200, 900), markersize=8)
	grid = fig[1,1] = GridLayout()
	axes = [Axis(grid[i, j]) for i in 1:dim, j in 1:dim]

	# 軸の幅	
	for j in 1:dim
		linkxaxes!(axes[1,j], axes[2:dim,j])
		linkxaxes!(axes[1,j], axes[2:dim,j])
		linkxaxes!(axes[1,j], axes[2:dim,j])
		linkxaxes!(axes[1,j], axes[2:dim,j])
	end
	
	for i in 1:dim, j in 1:dim
		
		# x軸とy軸のラベル
		if i == j
		 	axes[i,j].ylabel="カウント"
		else
			axes[i,j].ylabel=material[i]
		end
		if i == 4
			axes[i,j].xlabel = material[j]
		end

		# プロット
		# 密度分布
		if i == j
			for k in 1:type_num
				density!(axes[i,j], (gdf[k])[:,i], color=(colors[k], alpha), 
					label=types[k])
			end
		# 散布図
		else
			for k in 1:type_num
				scatter!(axes[i,j], (gdf[k])[:,j], (gdf[k])[:,i], 
					color=(colors[k], alpha))
			end
		end
	end
	
	fig[1,2] = Legend(fig, axes[1,1])
	
	for i in 1:dim-1, j in 1:dim
	  	colgap!(grid, 10)
	 	rowgap!(grid, 10)
	 	hidexdecorations!(axes[i,j], grid=false)
	end
	fig
end

# ╔═╡ b39bc203-00ec-4e23-96ed-61c7c2be3dee
pairplot(train, [:Na, :Mg, :Al, :Si, :Type])

# ╔═╡ d031cfdf-2803-4dcb-88df-59e28e4ea8e0
pairplot(train, [:K, :Ca, :Ba, :Fe, :Type])

# ╔═╡ d99d64c6-5a66-4593-9065-bbe89d53f029
md"それでは、相関関係をヒートマップで検証してみましょう。"

# ╔═╡ 40be2cdc-9443-4005-85f2-cecc5decdf24
corr_matrix = train[:, features_index] |> Matrix |> x -> cor(x, dims=1)

# ╔═╡ 8ea2ed04-fcf3-4ba1-9554-7fb11fa62fad
md"[カラーマップの参考](https://docs.juliaplots.org/latest/generated/colorschemes/)"

# ╔═╡ e05e3434-5cc2-43be-b027-4fcf52c1659d
begin
	fig = Figure(backgroundcolor=:gray95, resolution=(700, 700))
	ax, hm = heatmap(fig[1,1], corr_matrix, colormap=(:coolwarm, 0.8),
		axis = (aspect=DataAspect(), yreversed=true))

	ax.xticks = (features_index.-1, names(train)[features_index])
	ax.yticks = (features_index.-1, names(train)[features_index])
	
	row, col = size(corr_matrix)
	for i in 1:row, j in 1:col
		ann = string(round(corr_matrix[i,j], digits=2))
		text!(ax, ann, position = (i, j), align = (:center, :center), textsize=12)
	end

	cb = Colorbar(fig[1,2], hm, ticks=-1.0:0.2:1.0)
	cb.limits = (-1.0, 1.0)
	
	fig
end

# ╔═╡ 01dc9f2e-6ed9-4ef2-8531-5934dd134469
md"　**RIとCaの間には強い正の相関があるようだ。**これは、主成分分析により、入力された特徴の一部を相関させるためのヒントとなる可能性がある。"

# ╔═╡ c89439fa-d4ff-4c40-b3ef-f9e3c63c7a17
md"## データの準備"

# ╔═╡ fd21b9fb-91bc-4510-a545-a6b5730ae1ae
md"### データ洗浄"

# ╔═╡ e51d9829-7327-4e16-99fd-09eb287ee572
describe(train)

# ╔═╡ 639c7eea-8e60-4a7e-a0e5-90fae355e666
md"このデータセットはクリーンで、欠損値もありません。"

# ╔═╡ 0fb0dd27-6de6-4700-874a-7342b02d7e3c
md"#### 多重外れ値を探し削除する。
前節で作成した関数で、複数の外れ値を含む測定値を除去してみましょう。"

# ╔═╡ 542914c5-87d2-4dff-bf9a-017f58ee51aa
outlier_indices_r = [3, 6, 11, 21, 59, 67, 78, 83, 97]

# ╔═╡ b34b3023-3b9e-4bea-b97b-201565158604
# ╠═╡ show_logs = false
# ╠═╡ disabled = true
#=╠═╡
for i in 1:length(outlier_indices)

	multiple_outliers = []
	println("----- $(i) -----")
	for j in 1:length(outlier_indices)-1
		if i ≠ j
			temp = outlier_indices[i] ∩ outlier_indices[j]
#			println(temp)
			if length(temp) ≠ 0
				push!(multiple_outliers, temp)
			end
		end
	end
	# println("-------------")

	for k in 1:length(multiple_outliers)
		for m in 1:length(multiple_outliers)-1
			temp2 = multiple_outliers[k] ∩ multiple_outliers[m]
			println(temp2)
		end
	end
		
	println(length(multiple_outliers))
end
  ╠═╡ =#

# ╔═╡ f1e81c3f-30ac-4461-8e61-63293cf6f9d1
train2 = deepcopy(train)

# ╔═╡ 8da56caf-8da3-4d34-a595-004066c60ef7
deleteat!(train2, outlier_indices_r)

# ╔═╡ a682661f-7e86-4c7f-9d44-b64259619745
size(train2)

# ╔═╡ 3a7be2e3-1b90-48e6-aa67-1b4d23db1b9c
distplot(train2, features_index, :blue)

# ╔═╡ 926ac5f0-ab29-4cc4-ac72-64270272da05
count2 = combine( groupby(train2, :Type),  nrow => :count)

# ╔═╡ 7ee63fe0-c963-451c-9f12-2c12946b9fd1
let
	fig = Figure(backgroundcolor=:gray95, resolution=(750, 700))
	grid = fig[1,1] = GridLayout()
	axes = Axis(grid[1, 1])
	
	axes.xlabel = "Type"
	axes.ylabel = "Count"
	axes.xticks = (1:7)
	axes.yticks = (0:10:50)

	barplot!(axes, count2[:,1], count2[:,2], color=:blue)
	
	fig
end

# ╔═╡ ce2c02e9-840e-4bc4-89ac-f71cbd57b865
md"### Split-out validation dataset"

# ╔═╡ c13a19ad-724e-4c69-a63d-7ffe79a44a38
Conda.runconda(`install mlxtend -c conda-forge -y`)

# ╔═╡ 7e347cfa-0981-46cb-b29d-08477edd2fe8
begin
	X = train2[:,features_index] |> Matrix
	y = train2[:, :Type]
	seed = 7
	test_size = 0.2
	X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=test_size, random_state=seed)
end

# ╔═╡ c23328aa-011a-4eda-919f-c9d5b240b493
md"　Box-Cox変換がいくつかの特徴の正規化に貢献できるかどうかを検証してみましょう。強調すべきは、データの詮索を避けるために、すべての変換はトレーニングセットに対してのみ行われるべきであるということです。さもなければ、テスト誤差の推定に偏りが生じます。"

# ╔═╡ 56c90b44-f42f-44ed-9d24-6516fcc11e28
size(train2)

# ╔═╡ 373e4ae0-b80b-4951-b3bc-e37aeb948f1b
begin
	features_boxcox = []

	for feature in collect(features_index)
		bc_transformed = boxcox(train2[:,feature].+1)
		push!(features_boxcox, bc_transformed[:x])
	end
	features_boxcox = hcat(features_boxcox...)
	train_bc = DataFrame(features_boxcox, :auto)
	rename!(train_bc, names(train2[:,features_index]))
	train_bc.Type = train2[:, :Type]
end

# ╔═╡ 2a544c3a-dd1b-499b-9721-481bddea478e
describe(train_bc)

# ╔═╡ b2152e1a-1006-4f8a-af16-71628d3078f9
distplot(train2, features_index, :blue)

# ╔═╡ 48f32f3a-a33d-4298-ad38-4b6c48a3ad9b
distplot(train_bc, 1:9, :red)

# ╔═╡ edf595e7-1e74-4b87-b1cb-efd491c19a82
# 歪度がBox-cox変換後にゼロに近づいたか確認
begin
	name = names(train_bc)
	for i in features_index
	
		before_bc = train2[:,i] |> skewness
		after_bc  = train_bc[:,i-1] |> skewness
		δ = abs( after_bc / before_bc)
	
		if δ < 1.0
			println("Feature $(name[i-1]) is less skewed after a Box-Cox transform")
		else
			println("Feature $(name[i-1]) is more skewed after a Box-Cox transform")
		end
	end
end

# ╔═╡ 4cb7a0f7-e52e-4904-9cbf-da19fcc533a0
md"　Box-Cox変換は、特徴量の異なる分布の歪みを減らすのに良い働きをするようだ。しかし、特徴量分布の正規化にはつながりません。試行錯誤の結果、使用したアルゴリズムの性能向上にはつながらないことがわかりました。次に、次元削減の手法を検討します。"

# ╔═╡ fd8019c8-d1bc-43c4-b1ce-efc981547752
md"### アルゴリズムの評価
#### 次元削減
##### XGBoost → AdaBoost"

# ╔═╡ e7725cb4-2d20-4b1c-be4e-8890f99f7d45
bst = xgboost(X_train, 2, label=y_train, eta=1, max_depth=2)

# ╔═╡ cfc979ba-fc94-4628-ba87-4ce4514b3b1f
@sk_import metrics: (accuracy_score, confusion_matrix)

# ╔═╡ 725b50dc-250e-4105-8eed-8bcf5fdb8fe9
md"それでは、特徴量に対してPCAを行い、線形依存性のあるものを非相関化し、累積説明分散をプロットしてみましょう。"

# ╔═╡ 24ae74a1-4d84-49ff-a82c-bfbe7bdc1c32
@sk_import decomposition : PCA

# ╔═╡ 1798e6c2-1ad6-477c-b639-c93efd95e2c6
function pca_plot(X_train)
	pca = PCA(random_state=1)
	pca.fit(X_train)
	var_exp = pca.explained_variance_ratio_
	cum_var_exp = cumsum(var_exp)

	fig = Figure(backgroundcolor=:gray95, resolution=(900, 700))
	grid = fig[1,1] = GridLayout()
	ax1 = Axis(grid[1, 1])
	
	ax1.xlabel = "Principal components"
	ax1.ylabel = "Explained variance ratio"
	ax1.xticks = 1:9
	ax1.yticks = 0.0:0.2:1.0

	barplot!(ax1, 1:length(cum_var_exp), var_exp, color=(:blue, 0.7))

	stairs!(ax1, 1:length(cum_var_exp), cum_var_exp, color=:red)
	
	fig
	
end

# ╔═╡ 45d619d0-9523-4975-b06b-e230de7a2b41
pca_plot(X_train)

# ╔═╡ c5148ca9-6e21-4cc0-a68f-af9137bc8afc
md"最初の5つの主成分で分散の約99%を説明できるようである。しかし、PCAの特徴を学習アルゴリズムに与えても、性能向上には寄与しなかった。これは、PCAが捉えることのできない非線形性に起因している可能性があります。
"

# ╔═╡ 444ac01f-8de3-4a32-aaba-1b0306eb7fc3
md"### アルゴリズムの比較
　さて、いよいよ様々な機械学習アルゴリズムのパフォーマンスを比較する時が来ました。10倍クロスバリデーションを用いて、分類精度を指標に各モデルの性能を評価します。データの漏洩を防ぐため、StandarizationとPCAを含むパイプラインが使用されています。木ベースの手法では、Standarizationは行われない。
"

# ╔═╡ 56b40c57-5147-4467-8390-bd4724868d28
begin
	@sk_import preprocessing: StandardScaler
	@sk_import svm : SVC
	@sk_import neighbors : KNeighborsClassifier
	@sk_import ensemble : RandomForestClassifier
	@sk_import ensemble : AdaBoostClassifier
	@sk_import ensemble : ExtraTreesClassifier
	@sk_import ensemble : GradientBoostingClassifier
	@sk_import linear_model : LogisticRegression
end

# ╔═╡ a3a921df-8e12-4d8f-826a-8e132d694108
begin
	# using ScikitLearn.CrossValidation: cross_val_score
	@sk_import model_selection : cross_val_score
	@sk_import model_selection : StratifiedKFold
end

# ╔═╡ d2330c32-8c6e-4068-9972-ee0dcfab4da6
begin
	sc = StandardScaler()
	sc.fit(X_train)
	X_train_std = sc.transform(X_train)
	X_test_std = sc.transform(X_test)
end

# ╔═╡ 4568ac71-b1c6-4a17-90c1-d6cdacd7f732
begin
	n_components = 5
	n_estimators = 200
	svc = SVC(kernel="rbf", C=0.1)
	knn = KNeighborsClassifier()
	rf = RandomForestClassifier(random_state=1, n_estimators=n_estimators)
	ada = AdaBoostClassifier(random_state=1, n_estimators=n_estimators)
	et = ExtraTreesClassifier(random_state=1, n_estimators=n_estimators)
	gb = GradientBoostingClassifier(random_state=1)
	lr = LogisticRegression(random_state=1)
end

# ╔═╡ d0a55dc8-d109-4204-9e72-83c4556969d5
md"##### SVM(Support Vector Machine)の結果"

# ╔═╡ 4b61499c-fc35-4af5-b47a-d0f6a1932abb
# パラメータの設定
begin
	num_folds = 10
	scoring = "accuracy"
	kfold = StratifiedKFold(n_splits=num_folds, random_state=1)
end

# ╔═╡ 4f1ebb9b-d098-4dca-9d55-56fc5e73c360
cv_results = cross_val_score(svc, X_train_std, y_train, cv=kfold, scoring=scoring)

# ╔═╡ e2576b89-b2fe-44bc-8cca-e61cab632f10
function calc_cv(model, X_train, y_train)

	cv_results = cross_val_score(model, X_train_std, y_train, cv=kfold, scoring=scoring)
	cv_mean100 = 100*mean(cv_results)
	cv_std100 = 100*std(cv_results) 
	
	msg = "$(model): " * "$(cv_mean100) (+/- $(cv_std100))" 
	println("$msg")
end

# ╔═╡ b7de9176-73c3-4d76-9ddf-9eaad352b5ce
for model in [svc, knn, rf, ada, et, gb, lr]
	calc_cv(model, X_train_std, y_train)
end

# ╔═╡ e9fa8c39-617a-463e-9e90-0e5e06ea1947
md"**観測**：最高のパフォーマンスはRFで達成される。しかし、RFでは分布が広くなってしまう。今後、RFのチューニングを行い、研究を継続する価値がある。
"

# ╔═╡ af024a64-98cf-4308-afc3-4d194832f830
md"### アルゴリズムのチューニング
　ランダムフォレストでは、成長する木の数（*n_estimators*）、木の深さ（*max_depth*）、分割の基準（*gini or entropy*）などを調整することができます。早速、これらのチューニングを始めてみましょう。
"

# ╔═╡ 51e2357d-bf61-406a-9acc-4989c1621464
function rfc_tuning(n_estimator, max_depth, X_train, y_train)
	num_folds = 10
	scoring = "accuracy"
	kfold = StratifiedKFold(n_splits=num_folds, random_state=1)
	rf = RandomForestClassifier(random_state=1, n_estimators=n_estimator, max_depth=max_depth, )
	cv_results = cross_val_score(rf, X_train_std, y_train, cv=kfold, scoring=scoring)

	cv_mean100 = 100*mean(cv_results)
	cv_std100 = 100*std(cv_results) 
	
	msg = "$(rf): " * "$(cv_mean100) (+/- $(cv_std100))" 
	println("$msg")
end

# ╔═╡ 93345720-7e3b-4465-a1ca-a7084e9de575
rfc_tuning(100, 5, X_train_std, y_train)

# ╔═╡ 7bb4c7e9-b72f-4b99-8224-4e342d8889d4
rfc_tuning(200, 5, X_train_std, y_train)

# ╔═╡ 800d54ad-a60e-4dae-b351-1795ed65d050
rfc_tuning(300, 5, X_train_std, y_train)

# ╔═╡ d2bcefcd-5cc5-4a8e-8dba-d7a9817c3616
rfc_tuning(400, 5, X_train_std, y_train)

# ╔═╡ 988ed586-3f13-4cf7-bd74-2a45b687f356
rfc_tuning(500, nothing, X_train_std, y_train)

# ╔═╡ 75581257-1b58-4db9-a8fe-2fb551e8b0a5
rfc_tuning(500, 5, X_train_std, y_train)

# ╔═╡ e8761b55-7df3-4f32-98be-42d6a6a83bff
rfc_tuning(600, 5, X_train_std, y_train)

# ╔═╡ 703b4539-1f1c-4b83-9a30-18184df6769c
md"##### 木の数(n_estimator)は500がよさそう。"

# ╔═╡ 1dfe0ba1-d8b1-428c-8053-1c3738402107
md"#### *n_estimator=500* のランダムフォレストでtestの確率を見積もる"

# ╔═╡ 44be6af0-ffa4-40cb-8d8e-8f58020a4cbe
begin
	rfout = RandomForestClassifier(random_state=1, n_estimators=500, max_depth=nothing, max_features=0.05, min_samples_split=0.005)
	rfout.fit(X_train_std, y_train)
	y_pred = rfout.predict(X_test_std)
	acc = accuracy_score(y_test, y_pred) |> x -> round(x, digits=4)
end

# ╔═╡ e3a1b6d2-0a89-4078-be33-b9d2a700b920
md"#### 提出用テストデータの読み込み"

# ╔═╡ a37e04ef-b17e-4bbb-bf9d-fb5b122a6840
begin
	test_out = CSV.read("./test.tsv", DataFrame)
	rename!(test_out ,Dict(:Column1 => "id"))
	X_test_out = Matrix(test_out[:, 2:end])
	X_test_out_std = sc.transform(X_test_out)
end

# ╔═╡ b1632b5f-f2a2-40b2-986a-2da969d7ddde
begin
	results = rfout.predict_proba(X_test_out_std)
	predict_result = mapslices(argmax, results, dims=2)
	for i in 1:length(predict_result)
	 	if predict_result[i] ≥ 4
	 		predict_result[i] += 1
		end
	end
	output = hcat(test_out[:,1], predict_result) |> x -> DataFrame(x, :auto)
	CSV.write("./output_rf_fine.csv", output, writeheader=false)
end

# ╔═╡ 7e0f1deb-c61f-49c0-aede-c04d31c3207d


# ╔═╡ 5178bced-3a2e-4732-be4a-a5dbbbed6f22


# ╔═╡ 51d2528b-ae9a-46a3-884f-f7d90f90a341


# ╔═╡ 97a71e16-7e27-4e23-96dd-8c2d3a839d98


# ╔═╡ 0ae450e3-6436-41f5-9f43-7fa366f97de7


# ╔═╡ e70e6737-168e-4e68-9292-055f924460ee


# ╔═╡ c295464b-434e-45b1-8ffb-595212baac50


# ╔═╡ c9563f10-5a5b-48ed-ae91-e05873184a22


# ╔═╡ 00000000-0000-0000-0000-000000000001
PLUTO_PROJECT_TOML_CONTENTS = """
[deps]
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
Conda = "8f4d0f93-b110-5947-807f-2305c1781a2d"
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
DataWrangler = "a7a6b7e4-f56f-4e7a-9983-6838d7ccc3b8"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
ScikitLearn = "3646fa90-6ef7-5e7e-9f22-8aca16db6324"
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
XGBoost = "009559a3-9522-5dbb-924b-0b6ed2b22bb9"

[compat]
CSV = "~0.10.4"
CairoMakie = "~0.8.1"
Conda = "~1.7.0"
DataFrames = "~1.3.4"
DataWrangler = "~0.1.0"
ScikitLearn = "~0.6.4"
StatsBase = "~0.33.16"
XGBoost = "~1.5.2"
"""

# ╔═╡ 00000000-0000-0000-0000-000000000002
PLUTO_MANIFEST_TOML_CONTENTS = """
# This file is machine-generated - editing it directly is not advised

julia_version = "1.7.2"
manifest_format = "2.0"

[[deps.AbstractFFTs]]
deps = ["ChainRulesCore", "LinearAlgebra"]
git-tree-sha1 = "6f1d9bc1c08f9f4a8fa92e3ea3cb50153a1b40d4"
uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c"
version = "1.1.0"

[[deps.AbstractTrees]]
git-tree-sha1 = "03e0550477d86222521d254b741d470ba17ea0b5"
uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"
version = "0.3.4"

[[deps.Adapt]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "af92965fb30777147966f58acb05da51c5616b5f"
uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
version = "3.3.3"

[[deps.Animations]]
deps = ["Colors"]
git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d"
uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340"
version = "0.4.1"

[[deps.ArgTools]]
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"

[[deps.ArrayInterface]]
deps = ["Compat", "IfElse", "LinearAlgebra", "Requires", "SparseArrays", "Static"]
git-tree-sha1 = "81f0cb60dc994ca17f68d9fb7c942a5ae70d9ee4"
uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
version = "5.0.8"

[[deps.Artifacts]]
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"

[[deps.Automa]]
deps = ["Printf", "ScanByte", "TranscodingStreams"]
git-tree-sha1 = "d50976f217489ce799e366d9561d56a98a30d7fe"
uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b"
version = "0.8.2"

[[deps.AxisAlgorithms]]
deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"]
git-tree-sha1 = "66771c8d21c8ff5e3a93379480a2307ac36863f7"
uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950"
version = "1.0.1"

[[deps.Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"

[[deps.Bzip2_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2"
uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0"
version = "1.0.8+0"

[[deps.CEnum]]
git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90"
uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82"
version = "0.4.2"

[[deps.CSV]]
deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings"]
git-tree-sha1 = "873fb188a4b9d76549b81465b1f75c82aaf59238"
uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
version = "0.10.4"

[[deps.Cairo]]
deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"]
git-tree-sha1 = "d0b3f8b4ad16cb0a2988c6788646a5e6a17b6b1b"
uuid = "159f3aea-2a34-519c-b102-8c37f9878175"
version = "1.0.5"

[[deps.CairoMakie]]
deps = ["Base64", "Cairo", "Colors", "FFTW", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "SHA"]
git-tree-sha1 = "9f71c7c0d154e256006eb91661f14dd8f1622c2e"
uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
version = "0.8.1"

[[deps.Cairo_jll]]
deps = ["Artifacts", "Bzip2_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"]
git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2"
uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a"
version = "1.16.1+1"

[[deps.Calculus]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad"
uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9"
version = "0.5.1"

[[deps.ChainRulesCore]]
deps = ["Compat", "LinearAlgebra", "SparseArrays"]
git-tree-sha1 = "9950387274246d08af38f6eef8cb5480862a435f"
uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
version = "1.14.0"

[[deps.ChangesOfVariables]]
deps = ["ChainRulesCore", "LinearAlgebra", "Test"]
git-tree-sha1 = "1e315e3f4b0b7ce40feded39c73049692126cf53"
uuid = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0"
version = "0.1.3"

[[deps.CodecZlib]]
deps = ["TranscodingStreams", "Zlib_jll"]
git-tree-sha1 = "ded953804d019afa9a3f98981d99b33e3db7b6da"
uuid = "944b1d66-785c-5afd-91f1-9de20f533193"
version = "0.7.0"

[[deps.ColorBrewer]]
deps = ["Colors", "JSON", "Test"]
git-tree-sha1 = "61c5334f33d91e570e1d0c3eb5465835242582c4"
uuid = "a2cac450-b92f-5266-8821-25eda20663c8"
version = "0.4.0"

[[deps.ColorSchemes]]
deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Random"]
git-tree-sha1 = "7297381ccb5df764549818d9a7d57e45f1057d30"
uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4"
version = "3.18.0"

[[deps.ColorTypes]]
deps = ["FixedPointNumbers", "Random"]
git-tree-sha1 = "63d1e802de0c4882c00aee5cb16f9dd4d6d7c59c"
uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f"
version = "0.11.1"

[[deps.ColorVectorSpace]]
deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "TensorCore"]
git-tree-sha1 = "3f1f500312161f1ae067abe07d13b40f78f32e07"
uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4"
version = "0.9.8"

[[deps.Colors]]
deps = ["ColorTypes", "FixedPointNumbers", "Reexport"]
git-tree-sha1 = "417b0ed7b8b838aa6ca0a87aadf1bb9eb111ce40"
uuid = "5ae59095-9a9b-59fe-a467-6f913c188581"
version = "0.12.8"

[[deps.CommonSubexpressions]]
deps = ["MacroTools", "Test"]
git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7"
uuid = "bbf7d656-a473-5ed7-a52c-81e309532950"
version = "0.3.0"

[[deps.Compat]]
deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"]
git-tree-sha1 = "b153278a25dd42c65abbf4e62344f9d22e59191b"
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
version = "3.43.0"

[[deps.CompilerSupportLibraries_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"

[[deps.Conda]]
deps = ["Downloads", "JSON", "VersionParsing"]
git-tree-sha1 = "6e47d11ea2776bc5627421d59cdcc1296c058071"
uuid = "8f4d0f93-b110-5947-807f-2305c1781a2d"
version = "1.7.0"

[[deps.Contour]]
deps = ["StaticArrays"]
git-tree-sha1 = "9f02045d934dc030edad45944ea80dbd1f0ebea7"
uuid = "d38c429a-6771-53c6-b99e-75d170b6e991"
version = "0.5.7"

[[deps.Crayons]]
git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15"
uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f"
version = "4.1.1"

[[deps.DataAPI]]
git-tree-sha1 = "fb5f5316dd3fd4c5e7c30a24d50643b73e37cd40"
uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a"
version = "1.10.0"

[[deps.DataFrames]]
deps = ["Compat", "DataAPI", "Future", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrettyTables", "Printf", "REPL", "Reexport", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"]
git-tree-sha1 = "daa21eb85147f72e41f6352a57fccea377e310a9"
uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
version = "1.3.4"

[[deps.DataStructures]]
deps = ["Compat", "InteractiveUtils", "OrderedCollections"]
git-tree-sha1 = "cc1a8e22627f33c789ab60b36a9132ac050bbf75"
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
version = "0.18.12"

[[deps.DataValueInterfaces]]
git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6"
uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464"
version = "1.0.0"

[[deps.DataWrangler]]
deps = ["FFTW", "Optim", "Smoothers", "Statistics"]
git-tree-sha1 = "828bad42fa744db972eddb3b5ce797db093183bf"
uuid = "a7a6b7e4-f56f-4e7a-9983-6838d7ccc3b8"
version = "0.1.0"

[[deps.Dates]]
deps = ["Printf"]
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"

[[deps.DelimitedFiles]]
deps = ["Mmap"]
uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab"

[[deps.DensityInterface]]
deps = ["InverseFunctions", "Test"]
git-tree-sha1 = "80c3e8639e3353e5d2912fb3a1916b8455e2494b"
uuid = "b429d917-457f-4dbc-8f4c-0cc954292b1d"
version = "0.4.0"

[[deps.Dierckx]]
deps = ["Dierckx_jll"]
git-tree-sha1 = "633c119fcfddf61fb4c75d77ce3ebab552a44723"
uuid = "39dd38d3-220a-591b-8e3c-4c3a8c710a94"
version = "0.5.2"

[[deps.Dierckx_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "6596b96fe1caff3db36415eeb6e9d3b50bfe40ee"
uuid = "cd4c43a9-7502-52ba-aa6d-59fb2a88580b"
version = "0.1.0+0"

[[deps.DiffResults]]
deps = ["StaticArrays"]
git-tree-sha1 = "c18e98cba888c6c25d1c3b048e4b3380ca956805"
uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5"
version = "1.0.3"

[[deps.DiffRules]]
deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"]
git-tree-sha1 = "28d605d9a0ac17118fe2c5e9ce0fbb76c3ceb120"
uuid = "b552c78f-8df3-52c6-915a-8e097449b14b"
version = "1.11.0"

[[deps.Distributed]]
deps = ["Random", "Serialization", "Sockets"]
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"

[[deps.Distributions]]
deps = ["ChainRulesCore", "DensityInterface", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SparseArrays", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Test"]
git-tree-sha1 = "8a6b49396a4058771c5c072239b2e0a76e2e898c"
uuid = "31c24e10-a181-5473-b8eb-7969acd0382f"
version = "0.25.58"

[[deps.DocStringExtensions]]
deps = ["LibGit2"]
git-tree-sha1 = "b19534d1895d702889b219c382a6e18010797f0b"
uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
version = "0.8.6"

[[deps.Downloads]]
deps = ["ArgTools", "LibCURL", "NetworkOptions"]
uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6"

[[deps.DualNumbers]]
deps = ["Calculus", "NaNMath", "SpecialFunctions"]
git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566"
uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74"
version = "0.6.8"

[[deps.EarCut_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "3f3a2501fa7236e9b911e0f7a588c657e822bb6d"
uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5"
version = "2.2.3+0"

[[deps.Expat_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "bad72f730e9e91c08d9427d5e8db95478a3c323d"
uuid = "2e619515-83b5-522b-bb60-26c02a35a201"
version = "2.4.8+0"

[[deps.FFMPEG]]
deps = ["FFMPEG_jll"]
git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8"
uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a"
version = "0.4.1"

[[deps.FFMPEG_jll]]
deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "Pkg", "Zlib_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"]
git-tree-sha1 = "d8a578692e3077ac998b50c0217dfd67f21d1e5f"
uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5"
version = "4.4.0+0"

[[deps.FFTW]]
deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"]
git-tree-sha1 = "505876577b5481e50d089c1c68899dfb6faebc62"
uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341"
version = "1.4.6"

[[deps.FFTW_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea"
uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a"
version = "3.3.10+0"

[[deps.FileIO]]
deps = ["Pkg", "Requires", "UUIDs"]
git-tree-sha1 = "9267e5f50b0e12fdfd5a2455534345c4cf2c7f7a"
uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
version = "1.14.0"

[[deps.FilePathsBase]]
deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"]
git-tree-sha1 = "129b104185df66e408edd6625d480b7f9e9823a0"
uuid = "48062228-2e41-5def-b9a4-89aafe57970f"
version = "0.9.18"

[[deps.FillArrays]]
deps = ["LinearAlgebra", "Random", "SparseArrays", "Statistics"]
git-tree-sha1 = "246621d23d1f43e3b9c368bf3b72b2331a27c286"
uuid = "1a297f60-69ca-5386-bcde-b61e274b549b"
version = "0.13.2"

[[deps.FiniteDiff]]
deps = ["ArrayInterface", "LinearAlgebra", "Requires", "SparseArrays", "StaticArrays"]
git-tree-sha1 = "51c8f36c81badaa0e9ec405dcbabaf345ed18c84"
uuid = "6a86dc24-6348-571c-b903-95158fe2bd41"
version = "2.11.1"

[[deps.FixedPointNumbers]]
deps = ["Statistics"]
git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc"
uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93"
version = "0.8.4"

[[deps.Fontconfig_jll]]
deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"]
git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03"
uuid = "a3f928ae-7b40-5064-980b-68af3947d34b"
version = "2.13.93+0"

[[deps.Formatting]]
deps = ["Printf"]
git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8"
uuid = "59287772-0a20-5a39-b81b-1366585eb4c0"
version = "0.4.2"

[[deps.ForwardDiff]]
deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions", "StaticArrays"]
git-tree-sha1 = "89cc49bf5819f0a10a7a3c38885e7c7ee048de57"
uuid = "f6369f11-7733-5829-9624-2563aa707210"
version = "0.10.29"

[[deps.FreeType]]
deps = ["CEnum", "FreeType2_jll"]
git-tree-sha1 = "cabd77ab6a6fdff49bfd24af2ebe76e6e018a2b4"
uuid = "b38be410-82b0-50bf-ab77-7b57e271db43"
version = "4.0.0"

[[deps.FreeType2_jll]]
deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"]
git-tree-sha1 = "87eb71354d8ec1a96d4a7636bd57a7347dde3ef9"
uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7"
version = "2.10.4+0"

[[deps.FreeTypeAbstraction]]
deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"]
git-tree-sha1 = "b5c7fe9cea653443736d264b85466bad8c574f4a"
uuid = "663a7486-cb36-511b-a19d-713bb74d65c9"
version = "0.9.9"

[[deps.FriBidi_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91"
uuid = "559328eb-81f9-559d-9380-de523a88c83c"
version = "1.0.10+0"

[[deps.Future]]
deps = ["Random"]
uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820"

[[deps.GeometryBasics]]
deps = ["EarCut_jll", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"]
git-tree-sha1 = "83ea630384a13fc4f002b77690bc0afeb4255ac9"
uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326"
version = "0.4.2"

[[deps.Gettext_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"]
git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046"
uuid = "78b55507-aeef-58d4-861c-77aaff3498b1"
version = "0.21.0+0"

[[deps.Glib_jll]]
deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE_jll", "Pkg", "Zlib_jll"]
git-tree-sha1 = "a32d672ac2c967f3deb8a81d828afc739c838a06"
uuid = "7746bdde-850d-59dc-9ae8-88ece973131d"
version = "2.68.3+2"

[[deps.Graphics]]
deps = ["Colors", "LinearAlgebra", "NaNMath"]
git-tree-sha1 = "1c5a84319923bea76fa145d49e93aa4394c73fc2"
uuid = "a2bd30eb-e257-5431-a919-1863eab51364"
version = "1.1.1"

[[deps.Graphite2_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011"
uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472"
version = "1.3.14+0"

[[deps.GridLayoutBase]]
deps = ["GeometryBasics", "InteractiveUtils", "Observables"]
git-tree-sha1 = "e7b3493c3e64d072a9f22c4b24bc51874a3edcdf"
uuid = "3955a311-db13-416c-9275-1d80ed98e5e9"
version = "0.7.5"

[[deps.Grisu]]
git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2"
uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe"
version = "1.0.2"

[[deps.HarfBuzz_jll]]
deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"]
git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3"
uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566"
version = "2.8.1+1"

[[deps.HypergeometricFunctions]]
deps = ["DualNumbers", "LinearAlgebra", "SpecialFunctions", "Test"]
git-tree-sha1 = "cb7099a0109939f16a4d3b572ba8396b1f6c7c31"
uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a"
version = "0.3.10"

[[deps.IfElse]]
git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1"
uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173"
version = "0.1.1"

[[deps.ImageCore]]
deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Graphics", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "Reexport"]
git-tree-sha1 = "9a5c62f231e5bba35695a20988fc7cd6de7eeb5a"
uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534"
version = "0.9.3"

[[deps.ImageIO]]
deps = ["FileIO", "IndirectArrays", "JpegTurbo", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"]
git-tree-sha1 = "539682309e12265fbe75de8d83560c307af975bd"
uuid = "82e4d734-157c-48bb-816b-45c225c6df19"
version = "0.6.2"

[[deps.Imath_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "87f7662e03a649cffa2e05bf19c303e168732d3e"
uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1"
version = "3.1.2+0"

[[deps.IndirectArrays]]
git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f"
uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959"
version = "1.0.0"

[[deps.Inflate]]
git-tree-sha1 = "f5fc07d4e706b84f72d54eedcc1c13d92fb0871c"
uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9"
version = "0.1.2"

[[deps.InlineStrings]]
deps = ["Parsers"]
git-tree-sha1 = "61feba885fac3a407465726d0c330b3055df897f"
uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48"
version = "1.1.2"

[[deps.IntelOpenMP_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "d979e54b71da82f3a65b62553da4fc3d18c9004c"
uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0"
version = "2018.0.3+2"

[[deps.InteractiveUtils]]
deps = ["Markdown"]
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"

[[deps.Interpolations]]
deps = ["AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"]
git-tree-sha1 = "b7bc05649af456efc75d178846f47006c2c4c3c7"
uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59"
version = "0.13.6"

[[deps.IntervalSets]]
deps = ["Dates", "Statistics"]
git-tree-sha1 = "ad841eddfb05f6d9be0bff1fa48dcae32f134a2d"
uuid = "8197267c-284f-5f27-9208-e0e47529a953"
version = "0.6.2"

[[deps.InverseFunctions]]
deps = ["Test"]
git-tree-sha1 = "336cc738f03e069ef2cac55a104eb823455dca75"
uuid = "3587e190-3f89-42d0-90ee-14403ec27112"
version = "0.1.4"

[[deps.InvertedIndices]]
git-tree-sha1 = "bee5f1ef5bf65df56bdd2e40447590b272a5471f"
uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f"
version = "1.1.0"

[[deps.IrrationalConstants]]
git-tree-sha1 = "7fd44fd4ff43fc60815f8e764c0f352b83c49151"
uuid = "92d709cd-6900-40b7-9082-c6be49f344b6"
version = "0.1.1"

[[deps.Isoband]]
deps = ["isoband_jll"]
git-tree-sha1 = "f9b6d97355599074dc867318950adaa6f9946137"
uuid = "f1662d9f-8043-43de-a69a-05efc1cc6ff4"
version = "0.1.1"

[[deps.IterTools]]
git-tree-sha1 = "fa6287a4469f5e048d763df38279ee729fbd44e5"
uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e"
version = "1.4.0"

[[deps.IteratorInterfaceExtensions]]
git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856"
uuid = "82899510-4779-5014-852e-03e436cf321d"
version = "1.0.0"

[[deps.JLLWrappers]]
deps = ["Preferences"]
git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1"
uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210"
version = "1.4.1"

[[deps.JSON]]
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
git-tree-sha1 = "3c837543ddb02250ef42f4738347454f95079d4e"
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
version = "0.21.3"

[[deps.JpegTurbo]]
deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"]
git-tree-sha1 = "a77b273f1ddec645d1b7c4fd5fb98c8f90ad10a5"
uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0"
version = "0.1.1"

[[deps.JpegTurbo_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "b53380851c6e6664204efb2e62cd24fa5c47e4ba"
uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8"
version = "2.1.2+0"

[[deps.KernelDensity]]
deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"]
git-tree-sha1 = "591e8dc09ad18386189610acafb970032c519707"
uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b"
version = "0.6.3"

[[deps.LAME_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c"
uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d"
version = "3.100.1+0"

[[deps.LZO_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6"
uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac"
version = "2.10.1+0"

[[deps.LaTeXStrings]]
git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996"
uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f"
version = "1.3.0"

[[deps.LazyArtifacts]]
deps = ["Artifacts", "Pkg"]
uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3"

[[deps.LibCURL]]
deps = ["LibCURL_jll", "MozillaCACerts_jll"]
uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"

[[deps.LibCURL_jll]]
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"]
uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"

[[deps.LibGit2]]
deps = ["Base64", "NetworkOptions", "Printf", "SHA"]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"

[[deps.LibSSH2_jll]]
deps = ["Artifacts", "Libdl", "MbedTLS_jll"]
uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"

[[deps.Libdl]]
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"

[[deps.Libffi_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290"
uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490"
version = "3.2.2+1"

[[deps.Libgcrypt_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"]
git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae"
uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4"
version = "1.8.7+0"

[[deps.Libgpg_error_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9"
uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8"
version = "1.42.0+0"

[[deps.Libiconv_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "42b62845d70a619f063a7da093d995ec8e15e778"
uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531"
version = "1.16.1+1"

[[deps.Libmount_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73"
uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9"
version = "2.35.0+0"

[[deps.Libuuid_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066"
uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700"
version = "2.36.0+0"

[[deps.LineSearches]]
deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"]
git-tree-sha1 = "f27132e551e959b3667d8c93eae90973225032dd"
uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255"
version = "7.1.1"

[[deps.LinearAlgebra]]
deps = ["Libdl", "libblastrampoline_jll"]
uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"

[[deps.LogExpFunctions]]
deps = ["ChainRulesCore", "ChangesOfVariables", "DocStringExtensions", "InverseFunctions", "IrrationalConstants", "LinearAlgebra"]
git-tree-sha1 = "09e4b894ce6a976c354a69041a04748180d43637"
uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688"
version = "0.3.15"

[[deps.Logging]]
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"

[[deps.MKL_jll]]
deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"]
git-tree-sha1 = "e595b205efd49508358f7dc670a940c790204629"
uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7"
version = "2022.0.0+0"

[[deps.MacroTools]]
deps = ["Markdown", "Random"]
git-tree-sha1 = "3d3e902b31198a27340d0bf00d6ac452866021cf"
uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
version = "0.5.9"

[[deps.Makie]]
deps = ["Animations", "Base64", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Distributions", "DocStringExtensions", "FFMPEG", "FileIO", "FixedPointNumbers", "Formatting", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MakieCore", "Markdown", "Match", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "Printf", "Random", "RelocatableFolders", "Serialization", "Showoff", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "UnicodeFun"]
git-tree-sha1 = "0762d8af469c1666d7a979f85bc23c861f2d7be6"
uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a"
version = "0.17.1"

[[deps.MakieCore]]
deps = ["Observables"]
git-tree-sha1 = "cd999cfcda9ae0dd564a968087005d25359344c9"
uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b"
version = "0.3.1"

[[deps.MappedArrays]]
git-tree-sha1 = "e8b359ef06ec72e8c030463fe02efe5527ee5142"
uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900"
version = "0.4.1"

[[deps.Markdown]]
deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"

[[deps.Match]]
git-tree-sha1 = "1d9bc5c1a6e7ee24effb93f175c9342f9154d97f"
uuid = "7eb4fadd-790c-5f42-8a69-bfa0b872bfbf"
version = "1.2.0"

[[deps.MathTeXEngine]]
deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "Test"]
git-tree-sha1 = "70e733037bbf02d691e78f95171a1fa08cdc6332"
uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53"
version = "0.2.1"

[[deps.MbedTLS_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"

[[deps.Missings]]
deps = ["DataAPI"]
git-tree-sha1 = "bf210ce90b6c9eed32d25dbcae1ebc565df2687f"
uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28"
version = "1.0.2"

[[deps.Mmap]]
uuid = "a63ad114-7e13-5084-954f-fe012c677804"

[[deps.MosaicViews]]
deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"]
git-tree-sha1 = "b34e3bc3ca7c94914418637cb10cc4d1d80d877d"
uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389"
version = "0.3.3"

[[deps.MozillaCACerts_jll]]
uuid = "14a3606d-f60d-562e-9121-12d972cd8159"

[[deps.NLSolversBase]]
deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"]
git-tree-sha1 = "50310f934e55e5ca3912fb941dec199b49ca9b68"
uuid = "d41bc354-129a-5804-8e4c-c37616107c6c"
version = "7.8.2"

[[deps.NaNMath]]
git-tree-sha1 = "b086b7ea07f8e38cf122f5016af580881ac914fe"
uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
version = "0.3.7"

[[deps.Netpbm]]
deps = ["FileIO", "ImageCore"]
git-tree-sha1 = "18efc06f6ec36a8b801b23f076e3c6ac7c3bf153"
uuid = "f09324ee-3d7c-5217-9330-fc30815ba969"
version = "1.0.2"

[[deps.NetworkOptions]]
uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"

[[deps.Observables]]
git-tree-sha1 = "dfd8d34871bc3ad08cd16026c1828e271d554db9"
uuid = "510215fc-4207-5dde-b226-833fc4488ee2"
version = "0.5.1"

[[deps.OffsetArrays]]
deps = ["Adapt"]
git-tree-sha1 = "aee446d0b3d5764e35289762f6a18e8ea041a592"
uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881"
version = "1.11.0"

[[deps.Ogg_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f"
uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051"
version = "1.3.5+1"

[[deps.OpenBLAS_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"]
uuid = "4536629a-c528-5b80-bd46-f80d51c5b363"

[[deps.OpenEXR]]
deps = ["Colors", "FileIO", "OpenEXR_jll"]
git-tree-sha1 = "327f53360fdb54df7ecd01e96ef1983536d1e633"
uuid = "52e1d378-f018-4a11-a4be-720524705ac7"
version = "0.3.2"

[[deps.OpenEXR_jll]]
deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"]
git-tree-sha1 = "923319661e9a22712f24596ce81c54fc0366f304"
uuid = "18a262bb-aa17-5467-a713-aee519bc75cb"
version = "3.1.1+0"

[[deps.OpenLibm_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "05823500-19ac-5b8b-9628-191a04bc5112"

[[deps.OpenSSL_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "ab05aa4cc89736e95915b01e7279e61b1bfe33b8"
uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95"
version = "1.1.14+0"

[[deps.OpenSpecFun_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1"
uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e"
version = "0.5.5+0"

[[deps.Optim]]
deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"]
git-tree-sha1 = "7a28efc8e34d5df89fc87343318b0a8add2c4021"
uuid = "429524aa-4258-5aef-a3af-852621145aeb"
version = "1.7.0"

[[deps.Opus_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720"
uuid = "91d4177d-7536-5919-b921-800302f37372"
version = "1.3.2+0"

[[deps.OrderedCollections]]
git-tree-sha1 = "85f8e6578bf1f9ee0d11e7bb1b1456435479d47c"
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
version = "1.4.1"

[[deps.PCRE_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "b2a7af664e098055a7529ad1a900ded962bca488"
uuid = "2f80f16e-611a-54ab-bc61-aa92de5b98fc"
version = "8.44.0+0"

[[deps.PDMats]]
deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"]
git-tree-sha1 = "027185efff6be268abbaf30cfd53ca9b59e3c857"
uuid = "90014a1f-27ba-587c-ab20-58faa44d9150"
version = "0.11.10"

[[deps.PNGFiles]]
deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"]
git-tree-sha1 = "e925a64b8585aa9f4e3047b8d2cdc3f0e79fd4e4"
uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883"
version = "0.3.16"

[[deps.Packing]]
deps = ["GeometryBasics"]
git-tree-sha1 = "1155f6f937fa2b94104162f01fa400e192e4272f"
uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566"
version = "0.4.2"

[[deps.PaddedViews]]
deps = ["OffsetArrays"]
git-tree-sha1 = "03a7a85b76381a3d04c7a1656039197e70eda03d"
uuid = "5432bcbf-9aad-5242-b902-cca2824c8663"
version = "0.5.11"

[[deps.Pango_jll]]
deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "3a121dfbba67c94a5bec9dde613c3d0cbcf3a12b"
uuid = "36c8627f-9965-5494-a995-c6b170f724f3"
version = "1.50.3+0"

[[deps.Parameters]]
deps = ["OrderedCollections", "UnPack"]
git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe"
uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a"
version = "0.12.3"

[[deps.Parsers]]
deps = ["Dates"]
git-tree-sha1 = "1285416549ccfcdf0c50d4997a94331e88d68413"
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
version = "2.3.1"

[[deps.Pixman_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "b4f5d02549a10e20780a24fce72bea96b6329e29"
uuid = "30392449-352a-5448-841d-b1acce4e97dc"
version = "0.40.1+0"

[[deps.Pkg]]
deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"

[[deps.PkgVersion]]
deps = ["Pkg"]
git-tree-sha1 = "a7a7e1a88853564e551e4eba8650f8c38df79b37"
uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688"
version = "0.1.1"

[[deps.PlotUtils]]
deps = ["ColorSchemes", "Colors", "Dates", "Printf", "Random", "Reexport", "Statistics"]
git-tree-sha1 = "bb16469fd5224100e422f0b027d26c5a25de1200"
uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043"
version = "1.2.0"

[[deps.PolygonOps]]
git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6"
uuid = "647866c9-e3ac-4575-94e7-e3d426903924"
version = "0.1.2"

[[deps.PooledArrays]]
deps = ["DataAPI", "Future"]
git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7"
uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720"
version = "1.4.2"

[[deps.PositiveFactorizations]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20"
uuid = "85a6dd25-e78a-55b7-8502-1745935b8125"
version = "0.2.4"

[[deps.Preferences]]
deps = ["TOML"]
git-tree-sha1 = "47e5f437cc0e7ef2ce8406ce1e7e24d44915f88d"
uuid = "21216c6a-2e73-6563-6e65-726566657250"
version = "1.3.0"

[[deps.PrettyTables]]
deps = ["Crayons", "Formatting", "Markdown", "Reexport", "Tables"]
git-tree-sha1 = "dfb54c4e414caa595a1f2ed759b160f5a3ddcba5"
uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d"
version = "1.3.1"

[[deps.Printf]]
deps = ["Unicode"]
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"

[[deps.ProgressMeter]]
deps = ["Distributed", "Printf"]
git-tree-sha1 = "d7a7aef8f8f2d537104f170139553b14dfe39fe9"
uuid = "92933f4c-e287-5a05-a399-4b506db050ca"
version = "1.7.2"

[[deps.PyCall]]
deps = ["Conda", "Dates", "Libdl", "LinearAlgebra", "MacroTools", "Serialization", "VersionParsing"]
git-tree-sha1 = "1fc929f47d7c151c839c5fc1375929766fb8edcc"
uuid = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0"
version = "1.93.1"

[[deps.QOI]]
deps = ["ColorTypes", "FileIO", "FixedPointNumbers"]
git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce"
uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65"
version = "1.0.0"

[[deps.QuadGK]]
deps = ["DataStructures", "LinearAlgebra"]
git-tree-sha1 = "78aadffb3efd2155af139781b8a8df1ef279ea39"
uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc"
version = "2.4.2"

[[deps.REPL]]
deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"]
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"

[[deps.Random]]
deps = ["SHA", "Serialization"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"

[[deps.Ratios]]
deps = ["Requires"]
git-tree-sha1 = "dc84268fe0e3335a62e315a3a7cf2afa7178a734"
uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439"
version = "0.4.3"

[[deps.Reexport]]
git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b"
uuid = "189a3867-3050-52da-a836-e630ba90ab69"
version = "1.2.2"

[[deps.RelocatableFolders]]
deps = ["SHA", "Scratch"]
git-tree-sha1 = "cdbd3b1338c72ce29d9584fdbe9e9b70eeb5adca"
uuid = "05181044-ff0b-4ac5-8273-598c1e38db00"
version = "0.1.3"

[[deps.Requires]]
deps = ["UUIDs"]
git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7"
uuid = "ae029012-a4dd-5104-9daa-d747884805df"
version = "1.3.0"

[[deps.Rmath]]
deps = ["Random", "Rmath_jll"]
git-tree-sha1 = "bf3188feca147ce108c76ad82c2792c57abe7b1f"
uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa"
version = "0.7.0"

[[deps.Rmath_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "68db32dff12bb6127bac73c209881191bf0efbb7"
uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f"
version = "0.3.0+0"

[[deps.SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"

[[deps.SIMD]]
git-tree-sha1 = "7dbc15af7ed5f751a82bf3ed37757adf76c32402"
uuid = "fdea26ae-647d-5447-a871-4b548cad5224"
version = "3.4.1"

[[deps.ScanByte]]
deps = ["Libdl", "SIMD"]
git-tree-sha1 = "9cc2955f2a254b18be655a4ee70bc4031b2b189e"
uuid = "7b38b023-a4d7-4c5e-8d43-3f3097f304eb"
version = "0.3.0"

[[deps.ScikitLearn]]
deps = ["Compat", "Conda", "DataFrames", "Distributed", "IterTools", "LinearAlgebra", "MacroTools", "Parameters", "Printf", "PyCall", "Random", "ScikitLearnBase", "SparseArrays", "StatsBase", "VersionParsing"]
git-tree-sha1 = "ccb822ff4222fcf6ff43bbdbd7b80332690f168e"
uuid = "3646fa90-6ef7-5e7e-9f22-8aca16db6324"
version = "0.6.4"

[[deps.ScikitLearnBase]]
deps = ["LinearAlgebra", "Random", "Statistics"]
git-tree-sha1 = "7877e55c1523a4b336b433da39c8e8c08d2f221f"
uuid = "6e75b9c4-186b-50bd-896f-2d2496a4843e"
version = "0.5.0"

[[deps.Scratch]]
deps = ["Dates"]
git-tree-sha1 = "0b4b7f1393cff97c33891da2a0bf69c6ed241fda"
uuid = "6c6a2e73-6563-6170-7368-637461726353"
version = "1.1.0"

[[deps.SentinelArrays]]
deps = ["Dates", "Random"]
git-tree-sha1 = "6a2f7d70512d205ca8c7ee31bfa9f142fe74310c"
uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c"
version = "1.3.12"

[[deps.Serialization]]
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"

[[deps.SharedArrays]]
deps = ["Distributed", "Mmap", "Random", "Serialization"]
uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383"

[[deps.Showoff]]
deps = ["Dates", "Grisu"]
git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de"
uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f"
version = "1.0.3"

[[deps.SignedDistanceFields]]
deps = ["Random", "Statistics", "Test"]
git-tree-sha1 = "d263a08ec505853a5ff1c1ebde2070419e3f28e9"
uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96"
version = "0.4.0"

[[deps.Sixel]]
deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"]
git-tree-sha1 = "8fb59825be681d451c246a795117f317ecbcaa28"
uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47"
version = "0.1.2"

[[deps.Smoothers]]
deps = ["Dierckx"]
git-tree-sha1 = "fab44b0ca72bc5e44606fa37762850e6952b3a3a"
uuid = "012d725f-b4dd-4916-8440-03955fc52575"
version = "0.1.3"

[[deps.Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"

[[deps.SortingAlgorithms]]
deps = ["DataStructures"]
git-tree-sha1 = "b3363d7460f7d098ca0912c69b082f75625d7508"
uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c"
version = "1.0.1"

[[deps.SparseArrays]]
deps = ["LinearAlgebra", "Random"]
uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"

[[deps.SpecialFunctions]]
deps = ["ChainRulesCore", "IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"]
git-tree-sha1 = "5ba658aeecaaf96923dce0da9e703bd1fe7666f9"
uuid = "276daf66-3868-5448-9aa4-cd146d93841b"
version = "2.1.4"

[[deps.StackViews]]
deps = ["OffsetArrays"]
git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c"
uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15"
version = "0.1.1"

[[deps.Static]]
deps = ["IfElse"]
git-tree-sha1 = "5309da1cdef03e95b73cd3251ac3a39f887da53e"
uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3"
version = "0.6.4"

[[deps.StaticArrays]]
deps = ["LinearAlgebra", "Random", "Statistics"]
git-tree-sha1 = "cd56bf18ed715e8b09f06ef8c6b781e6cdc49911"
uuid = "90137ffa-7385-5640-81b9-e52037218182"
version = "1.4.4"

[[deps.Statistics]]
deps = ["LinearAlgebra", "SparseArrays"]
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"

[[deps.StatsAPI]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "c82aaa13b44ea00134f8c9c89819477bd3986ecd"
uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0"
version = "1.3.0"

[[deps.StatsBase]]
deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"]
git-tree-sha1 = "8977b17906b0a1cc74ab2e3a05faa16cf08a8291"
uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
version = "0.33.16"

[[deps.StatsFuns]]
deps = ["ChainRulesCore", "HypergeometricFunctions", "InverseFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"]
git-tree-sha1 = "5783b877201a82fc0014cbf381e7e6eb130473a4"
uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c"
version = "1.0.1"

[[deps.StructArrays]]
deps = ["Adapt", "DataAPI", "StaticArrays", "Tables"]
git-tree-sha1 = "e75d82493681dfd884a357952bbd7ab0608e1dc3"
uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a"
version = "0.6.7"

[[deps.SuiteSparse]]
deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"]
uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9"

[[deps.TOML]]
deps = ["Dates"]
uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76"

[[deps.TableTraits]]
deps = ["IteratorInterfaceExtensions"]
git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39"
uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c"
version = "1.0.1"

[[deps.Tables]]
deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits", "Test"]
git-tree-sha1 = "5ce79ce186cc678bbb5c5681ca3379d1ddae11a1"
uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"
version = "1.7.0"

[[deps.Tar]]
deps = ["ArgTools", "SHA"]
uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e"

[[deps.TensorCore]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6"
uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50"
version = "0.1.1"

[[deps.Test]]
deps = ["InteractiveUtils", "Logging", "Random", "Serialization"]
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[[deps.TiffImages]]
deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"]
git-tree-sha1 = "f90022b44b7bf97952756a6b6737d1a0024a3233"
uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69"
version = "0.5.5"

[[deps.TranscodingStreams]]
deps = ["Random", "Test"]
git-tree-sha1 = "216b95ea110b5972db65aa90f88d8d89dcb8851c"
uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa"
version = "0.9.6"

[[deps.UUIDs]]
deps = ["Random", "SHA"]
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"

[[deps.UnPack]]
git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b"
uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed"
version = "1.0.2"

[[deps.Unicode]]
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"

[[deps.UnicodeFun]]
deps = ["REPL"]
git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf"
uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1"
version = "0.4.1"

[[deps.VersionParsing]]
git-tree-sha1 = "58d6e80b4ee071f5efd07fda82cb9fbe17200868"
uuid = "81def892-9a0e-5fdd-b105-ffc91e053289"
version = "1.3.0"

[[deps.WeakRefStrings]]
deps = ["DataAPI", "InlineStrings", "Parsers"]
git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23"
uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5"
version = "1.4.2"

[[deps.WoodburyMatrices]]
deps = ["LinearAlgebra", "SparseArrays"]
git-tree-sha1 = "de67fa59e33ad156a590055375a30b23c40299d3"
uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6"
version = "0.5.5"

[[deps.XGBoost]]
deps = ["Libdl", "Printf", "Random", "SparseArrays", "Statistics", "Test", "XGBoost_jll"]
git-tree-sha1 = "63685309857689d515395f7895a4d90b5942f716"
uuid = "009559a3-9522-5dbb-924b-0b6ed2b22bb9"
version = "1.5.2"

[[deps.XGBoost_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "af5a07debf4747d9fe906d74180d29015700a317"
uuid = "a5c6f535-4255-5ca2-a466-0e519f119c46"
version = "1.5.2+0"

[[deps.XML2_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"]
git-tree-sha1 = "1acf5bdf07aa0907e0a37d3718bb88d4b687b74a"
uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a"
version = "2.9.12+0"

[[deps.XSLT_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"]
git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a"
uuid = "aed1982a-8fda-507f-9586-7b0439959a61"
version = "1.1.34+0"

[[deps.Xorg_libX11_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll", "Xorg_xtrans_jll"]
git-tree-sha1 = "5be649d550f3f4b95308bf0183b82e2582876527"
uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc"
version = "1.6.9+4"

[[deps.Xorg_libXau_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "4e490d5c960c314f33885790ed410ff3a94ce67e"
uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec"
version = "1.0.9+4"

[[deps.Xorg_libXdmcp_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "4fe47bd2247248125c428978740e18a681372dd4"
uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05"
version = "1.1.3+4"

[[deps.Xorg_libXext_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"]
git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3"
uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3"
version = "1.3.4+4"

[[deps.Xorg_libXrender_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"]
git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96"
uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa"
version = "0.9.10+4"

[[deps.Xorg_libpthread_stubs_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "6783737e45d3c59a4a4c4091f5f88cdcf0908cbb"
uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74"
version = "0.1.0+3"

[[deps.Xorg_libxcb_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"]
git-tree-sha1 = "daf17f441228e7a3833846cd048892861cff16d6"
uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b"
version = "1.13.0+3"

[[deps.Xorg_xtrans_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "79c31e7844f6ecf779705fbc12146eb190b7d845"
uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10"
version = "1.4.0+3"

[[deps.Zlib_jll]]
deps = ["Libdl"]
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"

[[deps.isoband_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c"
uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4"
version = "0.2.3+0"

[[deps.libass_jll]]
deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"]
git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47"
uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0"
version = "0.15.1+0"

[[deps.libblastrampoline_jll]]
deps = ["Artifacts", "Libdl", "OpenBLAS_jll"]
uuid = "8e850b90-86db-534c-a0d3-1478176c7d93"

[[deps.libfdk_aac_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55"
uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280"
version = "2.0.2+0"

[[deps.libpng_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"]
git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c"
uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f"
version = "1.6.38+0"

[[deps.libsixel_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "78736dab31ae7a53540a6b752efc61f77b304c5b"
uuid = "075b6546-f08a-558a-be8f-8157d0f608a5"
version = "1.8.6+1"

[[deps.libvorbis_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"]
git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c"
uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a"
version = "1.3.7+1"

[[deps.nghttp2_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"

[[deps.p7zip_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"

[[deps.x264_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2"
uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a"
version = "2021.5.5+0"

[[deps.x265_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9"
uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76"
version = "3.5.0+0"
"""

# ╔═╡ Cell order:
# ╟─e16d817a-d1d6-11ec-3393-db311583ad16
# ╠═0b57167d-8306-41d3-97b0-c3df7e84d96c
# ╠═c39dc109-88dc-415c-b423-28ad99f6305d
# ╟─ddbba5c8-e69e-4742-b709-f4a3c2c8d9ce
# ╠═064b7e11-3452-4e6d-8301-86b44802ea73
# ╠═6960b6ef-ceec-4e8a-8afb-5c7c51d50b50
# ╠═8c10abf4-92b0-428f-b8bd-2273ba333e74
# ╠═ae4e405c-f18f-44f1-bee2-3a35350665e9
# ╟─ef70fa5e-e01a-4f10-8916-33b1062476b2
# ╠═e1f1f957-37c6-4444-b3f1-d854e20d076e
# ╠═ae785846-5200-4335-833b-3ba5a42b5292
# ╟─afaa1a9c-4167-4f42-8e73-04889639cb20
# ╠═dce77031-e140-4475-948a-746bb1ce3a9e
# ╟─46e0cf0b-e62b-4bf1-bb89-1091b2daeae4
# ╠═681d12b8-f07b-4c58-a6c9-39a633a744c7
# ╠═59b6cc8f-bc79-4920-9a9a-f80761b7d6bc
# ╠═1136f2a5-8a9b-4236-aaa9-6e07b32e2d5f
# ╟─4b0387bb-09f2-4044-9ed5-7e8159d5e10c
# ╟─7419369f-b442-4c5a-877e-6a6a5432da60
# ╠═b39bc203-00ec-4e23-96ed-61c7c2be3dee
# ╠═d031cfdf-2803-4dcb-88df-59e28e4ea8e0
# ╠═d99d64c6-5a66-4593-9065-bbe89d53f029
# ╠═40be2cdc-9443-4005-85f2-cecc5decdf24
# ╠═8ea2ed04-fcf3-4ba1-9554-7fb11fa62fad
# ╠═e05e3434-5cc2-43be-b027-4fcf52c1659d
# ╠═01dc9f2e-6ed9-4ef2-8531-5934dd134469
# ╠═c89439fa-d4ff-4c40-b3ef-f9e3c63c7a17
# ╠═fd21b9fb-91bc-4510-a545-a6b5730ae1ae
# ╠═e51d9829-7327-4e16-99fd-09eb287ee572
# ╠═639c7eea-8e60-4a7e-a0e5-90fae355e666
# ╠═0fb0dd27-6de6-4700-874a-7342b02d7e3c
# ╠═542914c5-87d2-4dff-bf9a-017f58ee51aa
# ╠═b34b3023-3b9e-4bea-b97b-201565158604
# ╠═f1e81c3f-30ac-4461-8e61-63293cf6f9d1
# ╠═8da56caf-8da3-4d34-a595-004066c60ef7
# ╠═a682661f-7e86-4c7f-9d44-b64259619745
# ╠═3a7be2e3-1b90-48e6-aa67-1b4d23db1b9c
# ╠═926ac5f0-ab29-4cc4-ac72-64270272da05
# ╠═7ee63fe0-c963-451c-9f12-2c12946b9fd1
# ╠═ce2c02e9-840e-4bc4-89ac-f71cbd57b865
# ╠═c0cb1d26-5f49-4c4f-a5bc-31636dd91e3c
# ╠═c13a19ad-724e-4c69-a63d-7ffe79a44a38
# ╠═a1f24b10-2141-47b6-84c4-a09cd9f16b50
# ╠═7e347cfa-0981-46cb-b29d-08477edd2fe8
# ╠═c23328aa-011a-4eda-919f-c9d5b240b493
# ╠═97cf5c61-ee3c-49b3-a333-bcec3fcd20df
# ╠═56c90b44-f42f-44ed-9d24-6516fcc11e28
# ╠═373e4ae0-b80b-4951-b3bc-e37aeb948f1b
# ╠═2a544c3a-dd1b-499b-9721-481bddea478e
# ╠═b2152e1a-1006-4f8a-af16-71628d3078f9
# ╠═48f32f3a-a33d-4298-ad38-4b6c48a3ad9b
# ╠═edf595e7-1e74-4b87-b1cb-efd491c19a82
# ╠═4cb7a0f7-e52e-4904-9cbf-da19fcc533a0
# ╠═fd8019c8-d1bc-43c4-b1ce-efc981547752
# ╠═b06b801f-be75-422a-9787-857d88276d20
# ╠═e7725cb4-2d20-4b1c-be4e-8890f99f7d45
# ╠═cfc979ba-fc94-4628-ba87-4ce4514b3b1f
# ╠═725b50dc-250e-4105-8eed-8bcf5fdb8fe9
# ╠═24ae74a1-4d84-49ff-a82c-bfbe7bdc1c32
# ╠═1798e6c2-1ad6-477c-b639-c93efd95e2c6
# ╠═45d619d0-9523-4975-b06b-e230de7a2b41
# ╠═c5148ca9-6e21-4cc0-a68f-af9137bc8afc
# ╠═444ac01f-8de3-4a32-aaba-1b0306eb7fc3
# ╠═56b40c57-5147-4467-8390-bd4724868d28
# ╠═a3a921df-8e12-4d8f-826a-8e132d694108
# ╠═d2330c32-8c6e-4068-9972-ee0dcfab4da6
# ╠═4568ac71-b1c6-4a17-90c1-d6cdacd7f732
# ╠═d0a55dc8-d109-4204-9e72-83c4556969d5
# ╠═4b61499c-fc35-4af5-b47a-d0f6a1932abb
# ╠═4f1ebb9b-d098-4dca-9d55-56fc5e73c360
# ╠═e2576b89-b2fe-44bc-8cca-e61cab632f10
# ╠═b7de9176-73c3-4d76-9ddf-9eaad352b5ce
# ╠═e9fa8c39-617a-463e-9e90-0e5e06ea1947
# ╠═af024a64-98cf-4308-afc3-4d194832f830
# ╠═51e2357d-bf61-406a-9acc-4989c1621464
# ╠═93345720-7e3b-4465-a1ca-a7084e9de575
# ╠═7bb4c7e9-b72f-4b99-8224-4e342d8889d4
# ╠═800d54ad-a60e-4dae-b351-1795ed65d050
# ╠═d2bcefcd-5cc5-4a8e-8dba-d7a9817c3616
# ╠═988ed586-3f13-4cf7-bd74-2a45b687f356
# ╠═75581257-1b58-4db9-a8fe-2fb551e8b0a5
# ╠═e8761b55-7df3-4f32-98be-42d6a6a83bff
# ╠═703b4539-1f1c-4b83-9a30-18184df6769c
# ╠═1dfe0ba1-d8b1-428c-8053-1c3738402107
# ╠═44be6af0-ffa4-40cb-8d8e-8f58020a4cbe
# ╠═e3a1b6d2-0a89-4078-be33-b9d2a700b920
# ╠═a37e04ef-b17e-4bbb-bf9d-fb5b122a6840
# ╠═b1632b5f-f2a2-40b2-986a-2da969d7ddde
# ╠═7e0f1deb-c61f-49c0-aede-c04d31c3207d
# ╠═5178bced-3a2e-4732-be4a-a5dbbbed6f22
# ╠═51d2528b-ae9a-46a3-884f-f7d90f90a341
# ╠═97a71e16-7e27-4e23-96dd-8c2d3a839d98
# ╠═0ae450e3-6436-41f5-9f43-7fa366f97de7
# ╠═e70e6737-168e-4e68-9292-055f924460ee
# ╠═c295464b-434e-45b1-8ffb-595212baac50
# ╠═c9563f10-5a5b-48ed-ae91-e05873184a22
# ╟─00000000-0000-0000-0000-000000000001
# ╟─00000000-0000-0000-0000-000000000002
