Probability Distribution

Tugas Week 11

M. Yustian Putra Muhadi

Institut Tekonologi Sains Bandung


1 Pendahuluan

Probabilitas tidak hanya membantu kita memahami seberapa besar kemungkinan suatu peristiwa terjadi, tetapi juga membentuk dasar dari banyak metode statistik yang digunakan untuk pengambilan keputusan. Ketika suatu proses atau eksperimen menghasilkan berbagai hasil, kita menggunakan variabel acak untuk merepresentasikan hasil tersebut dan distribusi probabilitas untuk menjelaskan bagaimana probabilitas ditetapkan untuk setiap nilai yang mungkin. Memahami bentuk dan sifat distribusi sangat penting karena menentukan bagaimana data berperilaku, bagaimana kita menghitung probabilitas, dan bagaimana kita membuat prediksi. Dari distribusi untuk variabel kontinu hingga perilaku statistik seperti rata-rata sampel, distribusi probabilitas berfungsi sebagai inti dari statistik inferensial.

2 Acak Berkelanjutan

Perubahan acak merupakan suatu fungsi yang memetakan ruang kejadian (daerah fungsi) ke ruang bilangan ril (wilayah fungsi). Fungsi perubahan acak merupakan suatu langkah dalam perubahan acak yang menyatakan banyaknya sisi angka yang muncul pada lantunan statistika untuk mengkuantifikasikan kejadian-kejadian alam. Untuk Mendefinisikan fungsi perubahan acak harus mampu memetakan setiap kejadian dengan tepat ke satu bilangan ril.

Untuk memahami variabel acak kontinu, penting untuk mengetahui bagaimana probabilitas direpresentasikan menggunakan Fungsi Kepadatan Probabilitas (PDF). Tidak seperti variabel acak diskrit, variabel acak kontinu tidak menetapkan probabilitas ke titik-titik individual. Sebaliknya, probabilitas diperoleh dari luas area di bawah kurva PDF.

2.1 Variabel Acak

Suatu variabel acak dikatakan kontinu jika dapat mengambil nilai apa pun dalam suatu interval pada garis bilangan riil. Contohnya meliputi: tinggi, waktu, suhu, usia, tekanan, dan kecepatan.

Karakteristik Utama:

  • Variabel mengambil nilai dalam interval seperti (π‘Ž, 𝑏) atau bahkan (βˆ’βˆž, +∞).
  • Probabilitas setiap titik tunggal selalu nol:

\[𝑃 (𝑋 = π‘₯) = 0\]

  • Probabilitas hanya bermakna pada interval tertentu:

\[P(a \leq X \leq b) = \int_{a}^{b} f(x) \, dx\]


2.1.1 Fungsi Kepadatan Probabilitas

Fungsi 𝑓(π‘₯) merupakan Fungsi Kepadatan Probabilitas (PDF) yang valid jika memenuhi:

1. Non-negatif:

\[𝑓(π‘₯) β‰₯ 0 βˆ€x\]

2. Luas Total Sama Dengan 1:

\[\int_{-\infty}^{\infty} f(x) \, dx = 1\]

Interpretasi:

  • Nilai 𝑓(π‘₯) yang lebih besar menunjukkan kepadatan probabilitas yang lebih tinggi di sekitar nilai tersebut.
  • Namun, 𝑓(π‘₯) bukanlah probabilitas: probabilitas berasal dari area di bawah kurva.

Contoh PDF: \(𝑓(π‘₯) = 3π‘₯^2 on [0, 1]\)

Pertimbangkan fungsi kepadatan probabilitas:

\[𝑓(π‘₯) = 3π‘₯^2, 0 ≀ π‘₯ ≀ 1\]

Validasi:

\[\int_{1}^{0}3π‘₯^2 𝑑π‘₯ = 1\]


2.1.2 Probabilitas pada Interval

Untuk menghitung probabilitas dalam suatu interval.

\[𝑃(π‘Ž ≀ 𝑋 ≀ 𝑏) = \int_{a}^{b}3π‘₯^2 𝑑x\]

Contoh:

\[𝑃(0.5 ≀ 𝑋 ≀ 1)\]


2.1.3 Fungsi Distribusi Kumulatif

Fungsi Distribusi Kumulatif (CDF) didefinisikan sebagai:

\[𝐹(π‘₯) = 𝑃 (𝑋 ≀ π‘₯) = \int_{0}^{x}3𝑑^2 𝑑𝑑 = π‘₯^3\]

Hubungan antara PDF dan CDF:

\[𝑓(π‘₯) = 𝐹′(π‘₯)\]

3 Sample Distribusi

Melalui distribusi sampel, kita dapat memahami variabilitas statistik tersebut, mengukur ketidakpastian (standard error), serta membuat inferensi tentang parameter populasi. Intinya, distribusi sampel menunjukkan bahwa statistik dari sampel tidak tetap, melainkan berubah-ubah, tetapi pola perubahan itu dapat diprediksi dan digunakan sebagai dasar untuk estimasi dan pengujian hipotesis.

Menejelaskan Distribusi Sampling sebagai jembatan penting yang menghubungkan data dari sampel kecil dengan kesimpulan tentang populasi besar. Ini adalah konsep inti dalam Statistika Inferensial, yang memungkinkan kita membuat perkiraan dan menguji hipotesis mengenai parameter populasi (seperti rata-rata \(\mu\)) tanpa perlu mengukur setiap individu di dalamnya.

3.1 Jenis - jenis Distribusi

Distribusi Populasi

  • Merupakan distribusi semua nilai data dari setiap individu di seluruh populasi.

  • Didefinisikan oleh Rata-rata Populasi (\(\mu\)) dan Simpangan Baku Populasi (\(\sigma\)).

Distribusi Sampel

  • Distribusi nilai data dari satu sampel tunggal yang diambil dari populasi. Distribusi ini memiliki variabilitas yang besar.

Distribusi Sampling (Distribusi Pengambilan Sampel)

  • Ini adalah distribusi yang dibuat dari statistik (misalnya, rata-rata \(\bar{x}\)) yang dihitung dari banyak sampel acak yang diambil berulang kali dari populasi yang sama.

  • Menyediakan model teoritis yang memungkinkan kita mengukur seberapa mungkin hasil sampel kita (misalnya, rata-rata \(\bar{x}\)) terjadi, sehingga kita dapat membuat kesimpulan tentang \(\mu\).


3.2 Sifat-Sifat Kunci Distribusi Sampling

Rata-rata Distribusi Sampling

  • Rata-rata dari semua rata-rata sampel yang mungkin diambil selalu sama dengan rata-rata populasi aslinya. Artinya, rata-rata sampel kita merupakan penduga tak bias (unbiased estimator) dari rata-rata populasi.

  • Rumus Rata-rata Distribusi Sampling:

\[\mu_{\bar{x}} = \mu \quad \text{}\]

Simpangan Baku Distribusi Sampling

  • Simpangan baku Distribusi Sampling, yang disebut Galat Baku (\(\sigma_{\bar{x}}\)), selalu lebih kecil daripada simpangan baku populasi (\(\sigma\)). Galat Baku yang lebih kecil menunjukkan bahwa rata-rata sampel (\(\bar{x}\)) memiliki variabilitas yang lebih sedikit dibandingkan dengan nilai individual (\(X\)) dari populasi. Dengan kata lain, rata-rata sampel cenderung berkumpul (kurva Distribusi Sampling lebih sempit) di sekitar rata-rata populasi (\(\mu\)).

  • Rumus Galat Baku (Standard Eror):

\[\sigma_{\bar{x}} = \frac{\sigma}{\sqrt{n}} \quad \text{}\]

Keterangan: \(\sigma\) adalah simpangan baku populasi, dan \(n\) adalah ukuran sampel.


3.3 Teorema Limit Pusat

  • Jika populasi sudah berdistribusi normal, distribusi sampling akan selalu normal untuk ukuran sampel \(n\) berapapun.

  • Jika populasi TIDAK berdistribusi normal, distribusi sampling rata-rata (\(\bar{x}\)) akan cenderung normal seiring bertambahnya ukuran sampel (\(n\)), biasanya ketika \(n \geq 30\).


3.4 Rumus Standardisasi untuk Perhitungan Probabilitas

Untuk Nilai Individu (Populasi)

  • Digunakan ketika pertanyaan mengacu pada satu individu atau seluruh populasi.

  • Rumus Z-score Poupulasi:

\[\ Z = \frac{X - \mu}{\sigma} \quad \]

Untuk Rata-Rata Sampel (Distribusi Sampling)

  • Digunakan ketika pertanyaan mengacu pada rata-rata dari sekelompok sampel.

  • Rumus Z-score Distribusi Sampling:

\[\text Z = \frac{\bar{X} - \mu}{\sigma / \sqrt{n}} \quad \]


3.5 Contoh Soal – Distribusi Sampling Rata-rata

Sebuah populasi mempunyai rata-rata:

\[πœ‡=50ΞΌ=50\]

Dan simpangan baku populasi:

\[𝜎=12\]

Kita mengambil sampel acak sederhana dengan ukuran:

\[𝑛=36\]

Pertanyaan:

  • Berapa rata-rata distribusi sampling dari rata-rata sampel?

  • Berapa standard error (SE) distribusi sampling dari rata-rata sampel?

  • Jika kita mengambil banyak sampel acak ukuran 36, nilai rata-rata sampel yang diperoleh akan cenderung mendekati distribusi apa?

Penyelesaian:

  • Rata-rata Distribusi Sampling:

\[\mu_{\bar{X}} = \mu\]

\[= 50\]

  • Standard Error (SE):

\[ SE = \frac{\sigma}{\sqrt{n}} \]

  • Hitung:

\[ SE = \frac{12}{\sqrt{36}}\]

\[= \frac{12}{6}\]

\[= 2\]

  • Bentuk Distribusi Sampling:

Karena ukuran sampel cukup besar (n = 36 β‰₯ 30), maka menurut Teorema Limit Pusat, distribusi sampling dari rata-rata sampel akan mendekati:

\[Distribusi Normal\]

4 Teorema Batas Pusat

Teorema Batas Pusat menyatakan bahwa rata-rata sampel dari banyak sampel acak akan membentuk distribusi yang mendekati normal, meskipun data asalnya tidak normal, jika ukuran sampel cukup besar. Hal ini memungkinkan kita menggunakan distribusi normal untuk membuat estimasi dan pengujian statistik karena rata-rata sampel cenderung mendekati rata-rata populasi dengan variasi yang semakin kecil saat ukuran sampel meningkat.

CLT adalah salah satu teorema paling fundamental dalam statistik inferensial, yang berfungsi sebagai dasar untuk pengujian hipotesis dan pembuatan interval kepercayaan.

Berfokus pada Teorema Limit Pusat (CLT), yang merupakan prinsip yang menjelaskan dan memprediksi bentuk dari Distribusi Sampling (Distribusi Pengambilan Sampel). CLT menghilangkan batasan bentuk Distribusi Populasi asli dan memungkinkan analisis statistik yang lebih luas.

4.1 Inti dan Definisi Teorema Limit Pusat

  • Teorema Limit Pusat pada dasarnya memprediksi bentuk Distribusi Sampling dari Rata-rata Sampel (\(\bar{X}\)).

  • Definisi Utama:Jika ukuran sampel (\(n\)) cukup besar, maka Distribusi Sampling dari Rata-rata Sampel (\(\bar{X}\)) akan berdistribusi mendekati Normal, terlepas dari bentuk Distribusi Populasi aslinya.

  • Jika populasi asalnya sangat miring (skewed), Distribusi Sampling yang Anda buat dari rata-rata-rata sampel tersebut akan berbentuk lonceng (Normal).


4.2 Aturan Praktis Ukuran Sampel

Kapan \(n\) dianggap β€œcukup besar” untuk menerapkan CLT?

  • Aturan Umum: Umumnya disepakati bahwa aman untuk menerapkan Teorema Limit Pusat ketika ukuran sampel (\(n\)) lebih besar atau sama dengan 30 (\(n \ge 30\)).

  • Implikasi: Jika \(n \ge 30\), kita dapat mengasumsikan Distribusi Sampling adalah Normal, dan oleh karena itu, kita dapat menggunakan semua rumus dan metode yang terkait dengan Distribusi Normal (misalnya, Z-score).


4.3 Logika Dibalik Transformasi Bentuk Kurva

Mengapa Distribusi Sampling menjadi normal bahkan jika populasi asalnya miring:

  • Pengambilan Sampel Acak: Karena proses pengambilan sampel adalah acak, rata-rata sampel (\(\bar{X}\)) dari berbagai sampel cenderung mendekati Rata-rata Populasi (\(\mu\)) yang sebenarnya.

  • Keseimbangan: Sampel yang diambil dari β€œbulk” (bagian terbesar) populasi akan lebih sering terjadi daripada sampel ekstrem. Rata-rata (\(\bar{X}\)) bertindak sebagai titik penyeimbang (balancing point) untuk setiap sampel.

  • Variabilitas: Ketika semua \(\bar{X}\) ini diplot, meskipun beberapa \(\bar{X}\) mungkin jauh dari \(\mu\) (sampel yang tidak biasa), sebagian besar \(\bar{X}\) akan terkumpul rapat di sekitar \(\mu\). Pengumpulan yang ketat inilah yang menciptakan bentuk lonceng (Distribusi Normal) yang simetris di sekitar \(\mu\).


4.4 Pengecualian dan Batasan CLT

Populasi Sudah Normal

  • Jika Populasi awal sudah berdistribusi Normal, maka Distribusi Sampling juga akan berdistribusi Normal, terlepas dari ukuran sampel (\(n\)).

  • Catatan Praktis: Meskipun Distribusi Sampling tetap Normal dengan \(n < 30\), ukuran sampel kecil (\(n\) kecil) tetap menghasilkan perkiraan yang kurang akurat dan memiliki variabilitas (variability) yang lebih besar. Oleh karena itu, ukuran sampel besar (\(n \ge 30\)) tetap disarankan dalam praktik.

Populasi Tidak Normal dan \(n < 30\)

  • Jika Populasi tidak Normal dan ukuran sampel kecil (\(n < 30\)), maka CLT tidak dapat diterapkan.

  • Implikasi: Distribusi Sampling dalam kasus ini tidak dapat diasumsikan Normal, dan metode statistik inferensial standar tidak dapat digunakan secara akurat.


4.5 Pentingnya CLT

  • Memungkinkan Inferensi: Dengan mengetahui bahwa Distribusi Sampling adalah Normal (ketika \(n\) besar), kita dapat menggunakan probabilitas standar dan rumus Z-score untuk menginterpretasikan data sampel besar.

  • Mendasari Metode: CLT adalah fondasi teoritis untuk banyak metode statistik, termasuk menghitung margin of error (batas kesalahan) dan membuat interval kepercayaan. Ini memungkinkan para ahli statistik untuk membuat kesimpulan yang andal tentang populasi besar hanya dari sampel.

5 Proporsi Sampel

Proporsi sampel adalah ukuran yang menunjukkan bagian atau persentase suatu karakteristik dalam sampel dan digunakan untuk memperkirakan proporsi populasi sebenarnya. Nilai ini dapat berubah-ubah antar sampel karena proses pengambilan sampel, namun semakin besar ukuran sampel, proporsi sampel cenderung semakin mendekati nilai populasi. Melalui distribusi proporsi sampel, kita dapat melakukan inferensi statistik seperti membuat interval kepercayaan dan menguji hipotesis tentang proporsi populasi.

Menjelaskan bahwa ketika kita mengambil banyak sampel dari suatu populasi yang memiliki proporsi sebenarnya, setiap sampel akan menghasilkan nilai proporsi sampel yang berbeda-beda, disebut (sample proportion). Kumpulan seluruh nilai tersebut akan membentuk suatu pola atau distribusi sampling, yang menggambarkan bagaimana proporsi sampel berubah-ubah dari satu sampel ke sampel lainnya.

Distribusi ini memiliki rata-rata yang selalu sama dengan proporsi populasi sedangkan penyebarannya (simpangan baku) mengikuti rumus yang berarti bahwa semakin besar ukuran sampel semakin kecil variasi antara satu proporsi sampel dengan yang lain. Ketika ukuran sampel cukup besar, distribusi akan mendekati distribusi normal, sehingga kita dapat menggunakan Z-score untuk menghitung peluang suatu proporsi sampel berada di bawah atau di atas nilai tertentu.

Proporsi sampel bukanlah angka pasti tetapi nilai yang bervariasi, dan variasi itu dapat diprediksi secara matematis sehingga memungkinkan kita melakukan inferensi statistik terhadap populasi hanya berdasarkan sampel.

5.1 Konsep Dasar

Apa itu Distribusi Sampling

  • Distribusi sampling melibatkan pengambilan sampel berulang kali dari suatu populasi.

  • Untuk setiap sampel, dihitung statistik tertentu (seperti \(\bar{x}\) atau \(\hat{P}\)), dan kemudian semua informasi ini digabungkan dalam bentuk grafik untuk membuat sebuah distribusi.

Apa itu Proporsi

  • Dalam statistika, proporsi menggambarkan pecahan dari hasil yang menguntungkan (favorable outcomes) dalam kaitannya dengan keseluruhan.

  • Rumus umum proporsi: Jumlah Hasil yang Menguntungkan / Jumlah Total Hasil.

\[\hat{P} = \frac{x}{n}\]

Di mana:

  • \(x\) = Jumlah β€œsukses” atau jumlah unit dalam sampel yang memiliki karakteristik yang dicari (disebut juga hasil yang menguntungkan).

  • \(n\) = Ukuran sampel (jumlah total unit yang diamati dalam sampel).

Contoh Ilustrasi: Misalnya, kita ingin mengetahui proporsi pemilih di suatu kota yang mendukung Calon A (\(P\)). Karena tidak mungkin mensurvei seluruh populasi, kita mengambil sampel acak 200 pemilih (\(n=200\)).

Jika 110 pemilih dalam sampel tersebut mendukung Calon A (\(x=110\)), maka:

\[\hat{P} = \frac{110}{200} = 0.55\]

Proporsi sampel pemilih yang mendukung Calon A adalah 0.55 atau 55%.

Simbol untuk Proporsi

  • Proporsi dalam Populasi dilambangkan dengan simbol \(P\).

  • Proporsi dalam Sampel dilambangkan dengan simbol \(\hat{P}\) (P-topi/P-hat).


5.2 Distribusi Sampling dari Proporsi Sampel (\(\hat{P}\))

  • Jika sampel diambil berulang kali dari populasi yang sama dan \(\hat{P}\) dihitung untuk setiap sampel, hasilnya akan bervariasi.

  • Distribusi Sampling dari Proporsi Sampel adalah distribusi yang dibuat dari semua nilai \(\hat{P}\) yang berbeda ini.


5.3 Karakteristik Distribusi

Rata-rata (\(\text{Mean}\)):

Rata-rata dari semua \(\hat{P}\) (dinotasikan sebagai \(\mu_{\hat{P}}\)) sama dengan proporsi populasi \(P\)

Rumusnya:

\[\mu_{\hat{P}} = P\]

Simpangan Baku (\(\text{Standard Deviation}\)):

Rumusnya:

\[\sigma_{\hat{P}} = \sqrt{\frac{P Q}{n}}\]

  • \(n\): Ukuran sampel.

  • \(P\): Proporsi hasil sukses.

  • \(Q\): Proporsi hasil tidak sukses, di mana \(Q = 1 - P\).


5.4 Skor-Z (\(\text{Z-score}\)):

  • Rumus standardisasi (Skor-Z untuk proporsi):

\[Z = \frac{\hat{P} - P}{\sigma_{\hat{P}}} = \frac{\hat{P} - P}{\sqrt{\frac{P(1-P)}{n}}}\]


5.5 Kondisi Teorema Limit Pusat

Agar Distribusi Sampling dari Proporsi Sampel dapat dianggap normal (sehingga tabel skor-Z dapat digunakan) ada dua kondisi:

  • \(n \cdot P \geq 10\)

  • \(n \cdot (1 - P) \geq 10\)

6 Tinjauan Distribusi Sampel

Tinjauan distribusi sampel menggambarkan bagaimana statistik sampelβ€”seperti rata-rata, proporsi, atau variansiβ€”akan berperilaku jika kita mengambil banyak sampel acak dari suatu populasi. Distribusi ini penting karena menunjukkan pola variasi alami yang terjadi akibat proses pengambilan sampel, bukan karena perubahan pada populasi. Melalui distribusi sampel, kita dapat memahami seberapa dekat nilai statistik sampel dengan parameter populasi yang sebenarnya, serta seberapa besar ketidakpastian yang muncul dalam estimasi. Konsep ini menjadi dasar bagi inferensi statistik, termasuk pembentukan interval kepercayaan dan pengujian hipotesis, karena memberikan gambaran bahwa meskipun nilai sampel dapat berubah-ubah, pola distribusinya tetap mengikuti aturan tertentu, misalnya mendekati distribusi normal berdasarkan Teorema Limit Pusat.

Berfungsi sebagai ulasan untuk menyatukan konsep-konsep dasar probabilitas, Distribusi Binomial, dan Distribusi Sampel dari Proporsi Sampel (Sampling Distribution of the Sample Proportion) melalui soal-soal latihan.

6.1 Ulasan Probabilitas Dasar

Masalah probabilitas dasar:

Jika sebuah wadah berisi 200 kelereng hijau (Green) dan 300 kelereng biru (Blue), berapa probabilitas menarik setidaknya dua kelereng hijau dalam tiga kali pengambilan dengan pengembalian?

  • Probabilitas Sukses (P) / Kelereng Hijau:

\[200 / 500 = 0.4\]

  • Probabilitas Gagal (Q) / Kelereng Biru:

\[300 / 500 = 0.6\]

Untuk mendapatkan setidaknya dua kelereng hijau, kita perlu menghitung probabilitas untuk tepat dua kelereng hijau ditambah probabilitas untuk tepat tiga kelereng hijau.

  • Probabilitas Tepat Dua Hijau: Menjumlahkan semua kemungkinan urutan (GGB, GBG, BGG).

\[0.096 + 0.096 + 0.096 = 0.288\]

  • Probabilitas Tepat Tiga Hijau (GGG):

\[0.4 \times 0.4 \times 0.4 = 0.064\]

  • Total Probabilitas (Setidaknya Dua Hijau):

\[0.288 + 0.064 = 0.352\]


6.2 Distribusi Binomial

Jika jumlah percobaan (pengambilan) ditingkatkan menjadi lima kali, menghitung semua kemungkinan urutan akan memakan waktu.

Untuk kasus ini, digunakan Formula Binomial untuk menghitung probabilitas jumlah sukses (k) yang tepat:

\[P(X=k) = C(n, k) \cdot p^k \cdot (1-p)^{n-k}\]

Dalam contoh ini (\(n=5, p=0.4\)), probabilitas setidaknya dua kelereng hijau dihitung dengan menjumlahkan probabilitas untuk \(k=2, k=3, k=4,\) dan \(k=5\).

  • Setiap probabilitas dihitung menggunakan Formula Binomial (misalnya, untuk \(k=2\), probabilitasnya adalah 0.3456.

  • Setelah perhitungan, semua nilai dijumlahkan. Hasil akhir probabilitasnya adalah 0.6634


6.3 Distribusi Sampel Proporsi

Jika jumlah percobaan ditingkatkan secara signifikan, misalnya menarik kelereng 100 kali, menggunakan Formula Binomial secara berulang (65 kali, dari 35 hingga 100 sukses) menjadi tidak praktis.

Solusinya adalah menggunakan Distribusi Sampel Proporsi dengan Pendekatan Normal melalui Teorema Batas Pusat (Central Limit Theorem).

6.3.1 Memeriksa Kondisi Teorema Batas Pusat (CLT)

CLT dapat diterapkan jika dua kondisi terpenuhi:

  • \(n \times P \ge 10\): \(100 \times 0.4 = 40\) (Terpenuhi).

  • \(n \times (1-P) \ge 10\): \(100 \times 0.6 = 60\) (Terpenuhi).


6.3.2 Menghitung Z-Skor

Karena kondisi terpenuhi, kita dapat menggunakan Z-Skor untuk standardisasi:

\[Z = \frac{\hat{P} - P}{\sqrt{\frac{P(1-P)}{n}}}\]

Dalam kasus ini, kita mencari probabilitas menarik setidaknya 35 kelereng hijau. Proporsi sampel (\(\hat{P}\)) yang sesuai adalah \(35/100 = 0.35\).

  • Perhitungan Z-Skor:

\[Z = \frac{0.35 - 0.4}{\sqrt{\frac{0.4 \times 0.6}{100}}} = -1.02\]

  • Mencari Probabilitas: Z-skor -1.02 memiliki area di sebelah kiri sebesar 0.1539.

  • Karena pertanyaan meminta probabilitas β€œsetidaknya” 35 (area ke kanan), kita menghitung:

\[1 - 0.1539 = 0.8461\]

Hasilnya, perkiraan probabilitas menarik setidaknya 35 kelereng hijau:

\[0.8461\] \[atau\] \[84.61%.\]

LS0tDQp0aXRsZTogIiBQcm9iYWJpbGl0eSBEaXN0cmlidXRpb24gIiAgICAgICAjIE1haW4gdGl0bGUgb2YgdGhlIGRvY3VtZW50DQoNCnN1YnRpdGxlOiAiVHVnYXMgV2VlayAxMSAiICAgICAgICAjIFN1YnRpdGxlIG9yIHRvcGljIGZvciB3ZWVrIDEwDQphdXRob3I6IA0KICAtICJNLiBZdXN0aWFuIFB1dHJhIE11aGFkaSIgICAgICAgICAgICAgICAjIFJlcGxhY2Ugd2l0aCB5b3VyIGZ1bGwgbmFtZQ0KZGF0ZTogImByIGZvcm1hdChTeXMuRGF0ZSgpLCAnJUIgJWQsICVZJylgIiAgIyBBdXRvIGRpc3BsYXlzIGN1cnJlbnQgZGF0ZQ0KDQpvdXRwdXQ6DQogIHJtZGZvcm1hdHM6OnJlYWR0aGVkb3duOiAgICAgICAgICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL2p1YmEvcm1kZm9ybWF0cw0KICAgIGNzczogInN0eWxlLmNzcyIgICAgICAgICAgICAgICAgICAgICAjIDwtLS0gUEFOR0dJTCBGSUxFIENTUyBESSBTSU5JDQogICAgc2VsZl9jb250YWluZWQ6IHRydWUgICAgICAgICAgICAgICAgICMgRW1iZWQgYWxsIHJlc291cmNlcw0KICAgIHRodW1ibmFpbHM6IHRydWUgICAgICAgICAgICAgICAgICAgICAjIFNob3cgaW1hZ2UgdGh1bWJuYWlscw0KICAgIGxpZ2h0Ym94OiB0cnVlICAgICAgICAgICAgICAgICAgICAgICAjIEVuYWJsZSBjbGljay10by16b29tIGltYWdlcw0KICAgIGdhbGxlcnk6IHRydWUgICAgICAgICAgICAgICAgICAgICAgICAjIEdyb3VwIGltYWdlcyBpbnRvIGdhbGxlcnkNCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUgICAgICAgICAgICAgICAgIyBOdW1iZXIgYWxsIHNlY3Rpb25zDQogICAgbGliX2RpcjogbGlicyAgICAgICAgICAgICAgICAgICAgICAgICMgU2F2ZSBKUy9DU1MgbGlicmFyaWVzDQogICAgZGZfcHJpbnQ6ICJwYWdlZCIgICAgICAgICAgICAgICAgICAgICMgUGFnZWQgZGF0YSBmcmFtZXMNCiAgICBjb2RlX2ZvbGRpbmc6ICJzaG93IiAgICAgICAgICAgICAgICAgIyBFeHBhbmRhYmxlIGNvZGUgYmxvY2tzDQogICAgY29kZV9kb3dubG9hZDogeWVzICAgICAgICAgICAgICAgICAgICMgQWRkIGJ1dHRvbiB0byBkb3dubG9hZCBSIGNvZGUNCg0KLS0tDQoNCmBgYHtyIHByb2ZpbGUsIGVjaG89RkFMU0V9DQpsaWJyYXJ5KGh0bWx0b29scykNCkhUTUwoJw0KPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiAzMHB4OyBhbGlnbi1pdGVtczogY2VudGVyOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmNWY3ZmEgMCUsICNjM2NmZTIgMTAwJSk7IHBhZGRpbmc6IDMwcHg7IGJvcmRlci1yYWRpdXM6IDE1cHg7IG1hcmdpbjogMjBweCAwOyI+DQogIDxkaXY+DQogICAgPGltZyBzcmM9Ik11aGhoLmpwZyIgDQogICAgICAgICBzdHlsZT0id2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDI1MHB4OyBib3JkZXItcmFkaXVzOiA1MCU7IG9iamVjdC1maXQ6IGNvdmVyOyBib3JkZXI6IDRweCBzb2xpZCB3aGl0ZTsgYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsMCwwLDAuMik7Ij4NCiAgPC9kaXY+DQogIDxkaXY+DQogICAgPGgxIHN0eWxlPSJjb2xvcjogIzJjM2U1MDsgbWFyZ2luOiAwOyI+TS4gWXVzdGlhbiBQdXRyYSBNdWhhZGk8L2gxPg0KICAgIDxwIHN0eWxlPSJjb2xvcjogIzdmOGM4ZDsgbWFyZ2luOiA1cHggMCAxNXB4IDA7Ij5JbnN0aXR1dCBUZWtvbm9sb2dpIFNhaW5zIEJhbmR1bmc8L3A+DQogICAgDQogICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiAxNXB4OyBtYXJnaW4tdG9wOiAyMHB4OyI+DQogICAgICA8YnV0dG9uIHN0eWxlPSJiYWNrZ3JvdW5kOiAjMzQ5OGRiOyBjb2xvcjogd2hpdGU7IHBhZGRpbmc6IDEwcHggMjBweDsgYm9yZGVyOiBub25lOyBib3JkZXItcmFkaXVzOiAxNXB4OyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtd2VpZ2h0OiBib2xkOyI+DQogICAgICAgIFIgUHJvZ3JhbW1pbmcNCiAgICAgIDwvYnV0dG9uPg0KICAgICAgPGJ1dHRvbiBzdHlsZT0iYmFja2dyb3VuZDogI2U3NGMzYzsgY29sb3I6IFdoaXRlOyBwYWRkaW5nOiAxMHB4IDIwcHg7IGJvcmRlcjogbm9uZTsgYm9yZGVyLXJhZGl1czogMTVweDsgY3Vyc29yOiBwb2ludGVyOyBmb250LXdlaWdodDogYm9sZDsiPg0KICAgICAgICBEYXRhIFNjaWVuY2UNCiAgICAgIDwvYnV0dG9uPg0KICAgICAgPGJ1dHRvbiBzdHlsZT0iYmFja2dyb3VuZDogIzJlY2M3MTsgY29sb3I6IHdoaXRlOyBwYWRkaW5nOiAxMHB4IDIwcHg7IGJvcmRlcjogbm9uZTsgYm9yZGVyLXJhZGl1czogMTVweDsgY3Vyc29yOiBwb2ludGVyOyBmb250LXdlaWdodDogYm9sZDsiPg0KICAgICAgICBTdGF0aXN0aWNzDQogICAgICA8L2J1dHRvbj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQo8L2Rpdj4NCicpDQoNCmBgYA0KDQotLS0NCg0KIyMgUGVuZGFodWx1YW4NCg0KUHJvYmFiaWxpdGFzIHRpZGFrIGhhbnlhIG1lbWJhbnR1IGtpdGEgbWVtYWhhbWkgc2ViZXJhcGEgYmVzYXIga2VtdW5na2luYW4gc3VhdHUgcGVyaXN0aXdhIHRlcmphZGksIHRldGFwaSBqdWdhIG1lbWJlbnR1ayBkYXNhciBkYXJpIGJhbnlhayBtZXRvZGUgc3RhdGlzdGlrIHlhbmcgZGlndW5ha2FuIHVudHVrIHBlbmdhbWJpbGFuIGtlcHV0dXNhbi4gS2V0aWthIHN1YXR1IHByb3NlcyBhdGF1IGVrc3BlcmltZW4gbWVuZ2hhc2lsa2FuIGJlcmJhZ2FpIGhhc2lsLCBraXRhIG1lbmdndW5ha2FuIHZhcmlhYmVsIGFjYWsgdW50dWsgbWVyZXByZXNlbnRhc2lrYW4gaGFzaWwgdGVyc2VidXQgZGFuIGRpc3RyaWJ1c2kgcHJvYmFiaWxpdGFzIHVudHVrIG1lbmplbGFza2FuIGJhZ2FpbWFuYSBwcm9iYWJpbGl0YXMgZGl0ZXRhcGthbiB1bnR1ayBzZXRpYXAgbmlsYWkgeWFuZyBtdW5na2luLiBNZW1haGFtaSBiZW50dWsgZGFuIHNpZmF0IGRpc3RyaWJ1c2kgc2FuZ2F0IHBlbnRpbmcga2FyZW5hIG1lbmVudHVrYW4gYmFnYWltYW5hIGRhdGEgYmVycGVyaWxha3UsIGJhZ2FpbWFuYSBraXRhIG1lbmdoaXR1bmcgcHJvYmFiaWxpdGFzLCBkYW4gYmFnYWltYW5hIGtpdGEgbWVtYnVhdCBwcmVkaWtzaS4gRGFyaSBkaXN0cmlidXNpIHVudHVrIHZhcmlhYmVsIGtvbnRpbnUgaGluZ2dhIHBlcmlsYWt1IHN0YXRpc3RpayBzZXBlcnRpIHJhdGEtcmF0YSBzYW1wZWwsIGRpc3RyaWJ1c2kgcHJvYmFiaWxpdGFzIGJlcmZ1bmdzaSBzZWJhZ2FpIGludGkgZGFyaSBzdGF0aXN0aWsgaW5mZXJlbnNpYWwuDQoNCiMjIEFjYWsgQmVya2VsYW5qdXRhbg0KDQpQZXJ1YmFoYW4gYWNhayBtZXJ1cGFrYW4gc3VhdHUgZnVuZ3NpIHlhbmcgbWVtZXRha2FuIHJ1YW5nIGtlamFkaWFuIChkYWVyYWggZnVuZ3NpKQ0Ka2UgcnVhbmcgYmlsYW5nYW4gcmlsICh3aWxheWFoIGZ1bmdzaSkuIEZ1bmdzaSBwZXJ1YmFoYW4gYWNhayBtZXJ1cGFrYW4gc3VhdHUgbGFuZ2thaCBkYWxhbSBwZXJ1YmFoYW4gYWNhayB5YW5nIG1lbnlhdGFrYW4gYmFueWFrbnlhIHNpc2kgYW5na2EgeWFuZyBtdW5jdWwgcGFkYSBsYW50dW5hbiBzdGF0aXN0aWthIHVudHVrIG1lbmdrdWFudGlmaWthc2lrYW4ga2VqYWRpYW4ta2VqYWRpYW4gYWxhbS4gVW50dWsgTWVuZGVmaW5pc2lrYW4gZnVuZ3NpDQpwZXJ1YmFoYW4gYWNhayBoYXJ1cyBtYW1wdSBtZW1ldGFrYW4gc2V0aWFwIGtlamFkaWFuIGRlbmdhbiB0ZXBhdCBrZSBzYXR1IGJpbGFuZ2FuIHJpbC4NCg0KPGNlbnRlcj4NCjxpZnJhbWUgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9aeVV6UlZhNmhDTSIgd2lkdGg9Ijc2MCIgaGVpZ2h0PSI0MDAiIGRhdGEtZXh0ZXJuYWw9IjEiPjwvaWZyYW1lPg0KPC9jZW50ZXI+DQoNClVudHVrIG1lbWFoYW1pIHZhcmlhYmVsIGFjYWsga29udGludSwgcGVudGluZyB1bnR1ayBtZW5nZXRhaHVpIGJhZ2FpbWFuYSBwcm9iYWJpbGl0YXMNCmRpcmVwcmVzZW50YXNpa2FuIG1lbmdndW5ha2FuIEZ1bmdzaSBLZXBhZGF0YW4gUHJvYmFiaWxpdGFzIChQREYpLg0KVGlkYWsgc2VwZXJ0aSB2YXJpYWJlbCBhY2FrIGRpc2tyaXQsIHZhcmlhYmVsIGFjYWsga29udGludSB0aWRhayBtZW5ldGFwa2FuIHByb2JhYmlsaXRhcyBrZSB0aXRpay10aXRpayBpbmRpdmlkdWFsLiBTZWJhbGlrbnlhLCBwcm9iYWJpbGl0YXMgZGlwZXJvbGVoIGRhcmkgbHVhcyBhcmVhIGRpIGJhd2FoIGt1cnZhDQpQREYuDQoNCiMjIyAqVmFyaWFiZWwgQWNhayoNCg0KU3VhdHUgdmFyaWFiZWwgYWNhayBkaWthdGFrYW4gKiprb250aW51KiogamlrYSBkYXBhdCBtZW5nYW1iaWwgbmlsYWkgYXBhIHB1biBkYWxhbSBzdWF0dSBpbnRlcnZhbCBwYWRhIGdhcmlzIGJpbGFuZ2FuIHJpaWwuIENvbnRvaG55YSBtZWxpcHV0aTogdGluZ2dpLCB3YWt0dSwgc3VodSwgdXNpYSwgdGVrYW5hbiwgZGFuIGtlY2VwYXRhbi4NCg0KKipLYXJha3RlcmlzdGlrIFV0YW1hOioqDQoNCi0gVmFyaWFiZWwgbWVuZ2FtYmlsIG5pbGFpIGRhbGFtIGludGVydmFsIHNlcGVydGkgKPCdkY4sIPCdkY8pIGF0YXUgYmFoa2FuICjiiJLiiJ4sICviiJ4pLg0KLSBQcm9iYWJpbGl0YXMgc2V0aWFwIHRpdGlrIHR1bmdnYWwgc2VsYWx1IG5vbDoNCg0KJCTwnZGDICjwnZGLID0g8J2RpSkgPSAwJCQNCg0KLSBQcm9iYWJpbGl0YXMgaGFueWEgYmVybWFrbmEgcGFkYSBpbnRlcnZhbCB0ZXJ0ZW50dToNCg0KJCRQKGEgXGxlcSBYIFxsZXEgYikgPSBcaW50X3thfV57Yn0gZih4KSBcLCBkeCQkDQoNCi0tLQ0KDQojIyMjICpGdW5nc2kgS2VwYWRhdGFuIFByb2JhYmlsaXRhcyoNCg0KRnVuZ3NpIPCdkZMo8J2RpSkgbWVydXBha2FuIEZ1bmdzaSBLZXBhZGF0YW4gUHJvYmFiaWxpdGFzIChQREYpIHlhbmcgdmFsaWQgamlrYSBtZW1lbnVoaToNCg0KKioxLiBOb24tbmVnYXRpZjoqKg0KDQokJPCdkZMo8J2RpSkg4omlIDAg4oiAeCQkDQoNCioqMi4gTHVhcyBUb3RhbCBTYW1hIERlbmdhbiAxOioqDQoNCiQkXGludF97LVxpbmZ0eX1ee1xpbmZ0eX0gZih4KSBcLCBkeCA9IDEkJA0KDQoqKkludGVycHJldGFzaToqKg0KDQotIE5pbGFpIPCdkZMo8J2RpSkgeWFuZyBsZWJpaCBiZXNhciBtZW51bmp1a2thbiBrZXBhZGF0YW4gcHJvYmFiaWxpdGFzIHlhbmcgbGViaWggdGluZ2dpIGRpIHNla2l0YXIgbmlsYWkgdGVyc2VidXQuDQotIE5hbXVuLCDwnZGTKPCdkaUpICoqYnVrYW5sYWggcHJvYmFiaWxpdGFzOioqIHByb2JhYmlsaXRhcyBiZXJhc2FsIGRhcmkgYXJlYSBkaSBiYXdhaA0Ka3VydmEuDQoNCioqQ29udG9oIFBERjoqKiAk8J2RkyjwnZGlKSA9IDPwnZGlXjIgb24gWzAsIDFdJA0KDQpQZXJ0aW1iYW5na2FuIGZ1bmdzaSBrZXBhZGF0YW4gcHJvYmFiaWxpdGFzOg0KDQokJPCdkZMo8J2RpSkgPSAz8J2RpV4yLCAwIOKJpCDwnZGlIOKJpCAxJCQNCg0KKipWYWxpZGFzaToqKg0KDQokJFxpbnRfezF9XnswfTPwnZGlXjIg8J2RkfCdkaUgPSAxJCQNCg0KLS0tDQoNCiMjIyMgKlByb2JhYmlsaXRhcyBwYWRhIEludGVydmFsKg0KDQpVbnR1ayBtZW5naGl0dW5nIHByb2JhYmlsaXRhcyBkYWxhbSBzdWF0dSBpbnRlcnZhbC4NCg0KJCTwnZGDKPCdkY4g4omkIPCdkYsg4omkIPCdkY8pID0gXGludF97YX1ee2J9M/CdkaVeMiDwnZGReCQkDQoNCkNvbnRvaDoNCg0KJCTwnZGDKDAuNSDiiaQg8J2RiyDiiaQgMSkkJA0KDQotLS0NCg0KIyMjIyAqRnVuZ3NpIERpc3RyaWJ1c2kgS3VtdWxhdGlmKg0KDQpGdW5nc2kgRGlzdHJpYnVzaSBLdW11bGF0aWYgKENERikgZGlkZWZpbmlzaWthbiBzZWJhZ2FpOg0KDQokJPCdkLko8J2RpSkgPSDwnZGDICjwnZGLIOKJpCDwnZGlKSA9IFxpbnRfezB9Xnt4fTPwnZGhXjIg8J2RkfCdkaEgPSDwnZGlXjMkJA0KDQpIdWJ1bmdhbiBhbnRhcmEgUERGIGRhbiBDREY6DQoNCiQk8J2RkyjwnZGlKSA9IPCdkLnigLIo8J2RpSkkJA0KDQojIyBTYW1wbGUgIERpc3RyaWJ1c2kNCg0KTWVsYWx1aSBkaXN0cmlidXNpIHNhbXBlbCwga2l0YSBkYXBhdCBtZW1haGFtaSB2YXJpYWJpbGl0YXMgc3RhdGlzdGlrIHRlcnNlYnV0LCBtZW5ndWt1ciBrZXRpZGFrcGFzdGlhbiAoc3RhbmRhcmQgZXJyb3IpLCBzZXJ0YSBtZW1idWF0IGluZmVyZW5zaSB0ZW50YW5nIHBhcmFtZXRlciBwb3B1bGFzaS4gSW50aW55YSwgZGlzdHJpYnVzaSBzYW1wZWwgbWVudW5qdWtrYW4gYmFod2Egc3RhdGlzdGlrIGRhcmkgc2FtcGVsIHRpZGFrIHRldGFwLCBtZWxhaW5rYW4gYmVydWJhaC11YmFoLCB0ZXRhcGkgcG9sYSBwZXJ1YmFoYW4gaXR1IGRhcGF0IGRpcHJlZGlrc2kgZGFuIGRpZ3VuYWthbiBzZWJhZ2FpIGRhc2FyIHVudHVrIGVzdGltYXNpIGRhbiBwZW5ndWppYW4gaGlwb3Rlc2lzLg0KDQo8Y2VudGVyPg0KPGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLzdTN2o3NWQzR000IiB3aWR0aD0iNzYwIiBoZWlnaHQ9IjQwMCIgd2lkdGg9Ijc2OCIgaGVpZ2h0PSI0MDBweCIgZGF0YS1leHRlcm5hbD0iMSI+IDwvaWZyYW1lPg0KPC9jZW50ZXI+DQoNCk1lbmVqZWxhc2thbiBEaXN0cmlidXNpIFNhbXBsaW5nIHNlYmFnYWkgamVtYmF0YW4gcGVudGluZyB5YW5nIG1lbmdodWJ1bmdrYW4gZGF0YSBkYXJpIHNhbXBlbCBrZWNpbCBkZW5nYW4ga2VzaW1wdWxhbiB0ZW50YW5nIHBvcHVsYXNpIGJlc2FyLiBJbmkgYWRhbGFoIGtvbnNlcCBpbnRpIGRhbGFtIFN0YXRpc3Rpa2EgSW5mZXJlbnNpYWwsIHlhbmcgbWVtdW5na2lua2FuIGtpdGEgbWVtYnVhdCBwZXJraXJhYW4gZGFuIG1lbmd1amkgaGlwb3Rlc2lzIG1lbmdlbmFpIHBhcmFtZXRlciBwb3B1bGFzaSAoc2VwZXJ0aSByYXRhLXJhdGEgJFxtdSQpIHRhbnBhIHBlcmx1IG1lbmd1a3VyIHNldGlhcCBpbmRpdmlkdSBkaSBkYWxhbW55YS4NCg0KIyMjICpKZW5pcyAtIGplbmlzIERpc3RyaWJ1c2kqDQoNCioqRGlzdHJpYnVzaSBQb3B1bGFzaSoqDQoNCi0gTWVydXBha2FuIGRpc3RyaWJ1c2kgc2VtdWEgbmlsYWkgZGF0YSBkYXJpIHNldGlhcCBpbmRpdmlkdSBkaSBzZWx1cnVoIHBvcHVsYXNpLg0KDQotIERpZGVmaW5pc2lrYW4gb2xlaCBSYXRhLXJhdGEgUG9wdWxhc2kgKCRcbXUkKSBkYW4gU2ltcGFuZ2FuIEJha3UgUG9wdWxhc2kgKCRcc2lnbWEkKS4NCg0KKipEaXN0cmlidXNpIFNhbXBlbCoqDQoNCi0gRGlzdHJpYnVzaSBuaWxhaSBkYXRhIGRhcmkgc2F0dSBzYW1wZWwgdHVuZ2dhbCB5YW5nIGRpYW1iaWwgZGFyaSBwb3B1bGFzaS4gRGlzdHJpYnVzaSBpbmkgbWVtaWxpa2kgdmFyaWFiaWxpdGFzIHlhbmcgYmVzYXIuDQoNCioqRGlzdHJpYnVzaSBTYW1wbGluZyAoRGlzdHJpYnVzaSBQZW5nYW1iaWxhbiBTYW1wZWwpKioNCg0KLSBJbmkgYWRhbGFoIGRpc3RyaWJ1c2kgeWFuZyBkaWJ1YXQgZGFyaSBzdGF0aXN0aWsgKG1pc2FsbnlhLCByYXRhLXJhdGEgJFxiYXJ7eH0kKSB5YW5nIGRpaGl0dW5nIGRhcmkgYmFueWFrIHNhbXBlbCBhY2FrIHlhbmcgZGlhbWJpbCBiZXJ1bGFuZyBrYWxpIGRhcmkgcG9wdWxhc2kgeWFuZyBzYW1hLg0KDQotIE1lbnllZGlha2FuIG1vZGVsIHRlb3JpdGlzIHlhbmcgbWVtdW5na2lua2FuIGtpdGEgbWVuZ3VrdXIgc2ViZXJhcGEgbXVuZ2tpbiBoYXNpbCBzYW1wZWwga2l0YSAobWlzYWxueWEsIHJhdGEtcmF0YSAkXGJhcnt4fSQpIHRlcmphZGksIHNlaGluZ2dhIGtpdGEgZGFwYXQgbWVtYnVhdCBrZXNpbXB1bGFuIHRlbnRhbmcgJFxtdSQuDQoNCi0tLQ0KDQojIyMgKlNpZmF0LVNpZmF0IEt1bmNpIERpc3RyaWJ1c2kgU2FtcGxpbmcqDQoNCioqUmF0YS1yYXRhIERpc3RyaWJ1c2kgU2FtcGxpbmcqKg0KDQotIFJhdGEtcmF0YSBkYXJpIHNlbXVhIHJhdGEtcmF0YSBzYW1wZWwgeWFuZyBtdW5na2luIGRpYW1iaWwgc2VsYWx1IHNhbWEgZGVuZ2FuIHJhdGEtcmF0YSBwb3B1bGFzaSBhc2xpbnlhLg0KQXJ0aW55YSwgcmF0YS1yYXRhIHNhbXBlbCBraXRhIG1lcnVwYWthbiBwZW5kdWdhIHRhayBiaWFzICh1bmJpYXNlZCBlc3RpbWF0b3IpIGRhcmkgcmF0YS1yYXRhIHBvcHVsYXNpLg0KDQotIFJ1bXVzIFJhdGEtcmF0YSBEaXN0cmlidXNpIFNhbXBsaW5nOg0KDQokJFxtdV97XGJhcnt4fX0gPSBcbXUgXHF1YWQgXHRleHR7fSQkDQoNCioqU2ltcGFuZ2FuIEJha3UgRGlzdHJpYnVzaSBTYW1wbGluZyoqDQoNCi0gU2ltcGFuZ2FuIGJha3UgRGlzdHJpYnVzaSBTYW1wbGluZywgeWFuZyBkaXNlYnV0IEdhbGF0IEJha3UgKCRcc2lnbWFfe1xiYXJ7eH19JCksIHNlbGFsdSBsZWJpaCBrZWNpbCBkYXJpcGFkYSBzaW1wYW5nYW4gYmFrdSBwb3B1bGFzaSAoJFxzaWdtYSQpLg0KR2FsYXQgQmFrdSB5YW5nIGxlYmloIGtlY2lsIG1lbnVuanVra2FuIGJhaHdhIHJhdGEtcmF0YSBzYW1wZWwgKCRcYmFye3h9JCkgbWVtaWxpa2kgdmFyaWFiaWxpdGFzIHlhbmcgbGViaWggc2VkaWtpdCBkaWJhbmRpbmdrYW4gZGVuZ2FuIG5pbGFpIGluZGl2aWR1YWwgKCRYJCkgZGFyaSBwb3B1bGFzaS4gRGVuZ2FuIGthdGEgbGFpbiwgcmF0YS1yYXRhIHNhbXBlbCBjZW5kZXJ1bmcgYmVya3VtcHVsIChrdXJ2YSBEaXN0cmlidXNpIFNhbXBsaW5nIGxlYmloIHNlbXBpdCkgZGkgc2VraXRhciByYXRhLXJhdGEgcG9wdWxhc2kgKCRcbXUkKS4NCg0KLSBSdW11cyBHYWxhdCBCYWt1IChTdGFuZGFyZCBFcm9yKToNCg0KJCRcc2lnbWFfe1xiYXJ7eH19ID0gXGZyYWN7XHNpZ21hfXtcc3FydHtufX0gXHF1YWQgXHRleHR7fSQkDQoNCioqS2V0ZXJhbmdhbjoqKg0KJFxzaWdtYSQgYWRhbGFoIHNpbXBhbmdhbiBiYWt1IHBvcHVsYXNpLCBkYW4gJG4kIGFkYWxhaCB1a3VyYW4gc2FtcGVsLg0KDQotLS0NCg0KIyMjICpUZW9yZW1hIExpbWl0IFB1c2F0Kg0KDQotIEppa2EgcG9wdWxhc2kgc3VkYWggYmVyZGlzdHJpYnVzaSBub3JtYWwsIGRpc3RyaWJ1c2kgc2FtcGxpbmcgYWthbiBzZWxhbHUgbm9ybWFsIHVudHVrIHVrdXJhbiBzYW1wZWwgJG4kIGJlcmFwYXB1bi4NCg0KLSBKaWthIHBvcHVsYXNpIFRJREFLIGJlcmRpc3RyaWJ1c2kgbm9ybWFsLCBkaXN0cmlidXNpIHNhbXBsaW5nIHJhdGEtcmF0YSAoJFxiYXJ7eH0kKSBha2FuIGNlbmRlcnVuZyBub3JtYWwgc2VpcmluZyBiZXJ0YW1iYWhueWEgdWt1cmFuIHNhbXBlbCAoJG4kKSwgYmlhc2FueWEga2V0aWthICRuIFxnZXEgMzAkLg0KDQotLS0NCg0KIyMjICpSdW11cyBTdGFuZGFyZGlzYXNpIHVudHVrIFBlcmhpdHVuZ2FuIFByb2JhYmlsaXRhcyoNCg0KKipVbnR1ayBOaWxhaSBJbmRpdmlkdSAoUG9wdWxhc2kpKioNCg0KLSBEaWd1bmFrYW4ga2V0aWthIHBlcnRhbnlhYW4gbWVuZ2FjdSBwYWRhIHNhdHUgaW5kaXZpZHUgYXRhdSBzZWx1cnVoIHBvcHVsYXNpLg0KDQoNCi0gUnVtdXMgWi1zY29yZSBQb3VwdWxhc2k6DQoNCiQkXCBaID0gXGZyYWN7WCAtIFxtdX17XHNpZ21hfSBccXVhZCAkJA0KDQoqKlVudHVrIFJhdGEtUmF0YSBTYW1wZWwgKERpc3RyaWJ1c2kgU2FtcGxpbmcpKioNCg0KLSBEaWd1bmFrYW4ga2V0aWthIHBlcnRhbnlhYW4gbWVuZ2FjdSBwYWRhIHJhdGEtcmF0YSBkYXJpIHNla2Vsb21wb2sgc2FtcGVsLg0KDQotIFJ1bXVzIFotc2NvcmUgRGlzdHJpYnVzaSBTYW1wbGluZzoNCg0KJCRcdGV4dCAgWiA9IFxmcmFje1xiYXJ7WH0gLSBcbXV9e1xzaWdtYSAvIFxzcXJ0e259fSBccXVhZCAkJA0KDQotLS0NCg0KIyMjICpDb250b2ggU29hbCDigJMgRGlzdHJpYnVzaSBTYW1wbGluZyBSYXRhLXJhdGEqDQoNCioqU2VidWFoIHBvcHVsYXNpIG1lbXB1bnlhaSByYXRhLXJhdGE6KioNCg0KJCTwnZyHPTUwzrw9NTAkJA0KDQoqKkRhbiBzaW1wYW5nYW4gYmFrdSBwb3B1bGFzaToqKg0KDQokJPCdnI49MTIkJA0KDQoqKktpdGEgbWVuZ2FtYmlsIHNhbXBlbCBhY2FrIHNlZGVyaGFuYSBkZW5nYW4gdWt1cmFuOioqDQoNCiQk8J2Rmz0zNiQkDQoNCioqUGVydGFueWFhbjoqKg0KDQotIEJlcmFwYSByYXRhLXJhdGEgZGlzdHJpYnVzaSBzYW1wbGluZyBkYXJpIHJhdGEtcmF0YSBzYW1wZWw/DQoNCi0gQmVyYXBhIHN0YW5kYXJkIGVycm9yIChTRSkgZGlzdHJpYnVzaSBzYW1wbGluZyBkYXJpIHJhdGEtcmF0YSBzYW1wZWw/DQoNCi0gSmlrYSBraXRhIG1lbmdhbWJpbCBiYW55YWsgc2FtcGVsIGFjYWsgdWt1cmFuIDM2LCBuaWxhaSByYXRhLXJhdGEgc2FtcGVsIHlhbmcgZGlwZXJvbGVoIGFrYW4gY2VuZGVydW5nIG1lbmRla2F0aSBkaXN0cmlidXNpIGFwYT8NCg0KKipQZW55ZWxlc2FpYW46KioNCg0KLSBSYXRhLXJhdGEgRGlzdHJpYnVzaSBTYW1wbGluZzoNCg0KJCRcbXVfe1xiYXJ7WH19ID0gXG11JCQNCg0KJCQ9IDUwJCQNCg0KLSBTdGFuZGFyZCBFcnJvciAoU0UpOg0KDQoNCiQkIFNFID0gXGZyYWN7XHNpZ21hfXtcc3FydHtufX0gJCQNCg0KDQotIEhpdHVuZzoNCg0KJCQgU0UgPSBcZnJhY3sxMn17XHNxcnR7MzZ9fSQkDQoNCiQkPSBcZnJhY3sxMn17Nn0kJA0KDQokJD0gMiQkDQoNCi0gQmVudHVrIERpc3RyaWJ1c2kgU2FtcGxpbmc6DQoNCkthcmVuYSB1a3VyYW4gc2FtcGVsIGN1a3VwIGJlc2FyICoqKG4gPSAzNiDiiaUgMzApKiosIG1ha2EgbWVudXJ1dCBUZW9yZW1hIExpbWl0IFB1c2F0LCBkaXN0cmlidXNpIHNhbXBsaW5nIGRhcmkgcmF0YS1yYXRhIHNhbXBlbCBha2FuIG1lbmRla2F0aToNCg0KJCREaXN0cmlidXNpIE5vcm1hbCQkDQoNCiMjIFRlb3JlbWEgQmF0YXMgUHVzYXQNCg0KVGVvcmVtYSBCYXRhcyBQdXNhdCBtZW55YXRha2FuIGJhaHdhIHJhdGEtcmF0YSBzYW1wZWwgZGFyaSBiYW55YWsgc2FtcGVsIGFjYWsgYWthbiBtZW1iZW50dWsgZGlzdHJpYnVzaSB5YW5nIG1lbmRla2F0aSBub3JtYWwsIG1lc2tpcHVuIGRhdGEgYXNhbG55YSB0aWRhayBub3JtYWwsIGppa2EgdWt1cmFuIHNhbXBlbCBjdWt1cCBiZXNhci4gSGFsIGluaSBtZW11bmdraW5rYW4ga2l0YSBtZW5nZ3VuYWthbiBkaXN0cmlidXNpIG5vcm1hbCB1bnR1ayBtZW1idWF0IGVzdGltYXNpIGRhbiBwZW5ndWppYW4gc3RhdGlzdGlrIGthcmVuYSByYXRhLXJhdGEgc2FtcGVsIGNlbmRlcnVuZyBtZW5kZWthdGkgcmF0YS1yYXRhIHBvcHVsYXNpIGRlbmdhbiB2YXJpYXNpIHlhbmcgc2VtYWtpbiBrZWNpbCBzYWF0IHVrdXJhbiBzYW1wZWwgbWVuaW5na2F0LiANCg0KPGNlbnRlcj4NCjxpZnJhbWUgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9pdmQ4d0VIbk1DZyIgd2lkdGg9Ijc2MCIgaGVpZ2h0PSI0MDAiIGRhdGEtZXh0ZXJuYWw9IjEiPjwvaWZyYW1lPg0KPC9jZW50ZXI+DQoNCkNMVCBhZGFsYWggc2FsYWggc2F0dSB0ZW9yZW1hIHBhbGluZyBmdW5kYW1lbnRhbCBkYWxhbSBzdGF0aXN0aWsgaW5mZXJlbnNpYWwsIHlhbmcgYmVyZnVuZ3NpIHNlYmFnYWkgZGFzYXIgdW50dWsgcGVuZ3VqaWFuIGhpcG90ZXNpcyBkYW4gcGVtYnVhdGFuIGludGVydmFsIGtlcGVyY2F5YWFuLg0KDQpCZXJmb2t1cyBwYWRhIFRlb3JlbWEgTGltaXQgUHVzYXQgKENMVCksIHlhbmcgbWVydXBha2FuIHByaW5zaXAgeWFuZyBtZW5qZWxhc2thbiBkYW4gbWVtcHJlZGlrc2kgYmVudHVrIGRhcmkgRGlzdHJpYnVzaSBTYW1wbGluZyAoRGlzdHJpYnVzaSBQZW5nYW1iaWxhbiBTYW1wZWwpLiBDTFQgbWVuZ2hpbGFuZ2thbiBiYXRhc2FuIGJlbnR1ayBEaXN0cmlidXNpIFBvcHVsYXNpIGFzbGkgZGFuIG1lbXVuZ2tpbmthbiBhbmFsaXNpcyBzdGF0aXN0aWsgeWFuZyBsZWJpaCBsdWFzLg0KDQojIyMgKkludGkgZGFuIERlZmluaXNpIFRlb3JlbWEgTGltaXQgUHVzYXQqDQoNCi0gVGVvcmVtYSBMaW1pdCBQdXNhdCBwYWRhIGRhc2FybnlhIG1lbXByZWRpa3NpIGJlbnR1ayBEaXN0cmlidXNpIFNhbXBsaW5nIGRhcmkgUmF0YS1yYXRhIFNhbXBlbCAoJFxiYXJ7WH0kKS4NCg0KLSBEZWZpbmlzaSBVdGFtYTpKaWthIHVrdXJhbiBzYW1wZWwgKCRuJCkgY3VrdXAgYmVzYXIsIG1ha2EgRGlzdHJpYnVzaSBTYW1wbGluZyBkYXJpIFJhdGEtcmF0YSBTYW1wZWwgKCRcYmFye1h9JCkgYWthbiBiZXJkaXN0cmlidXNpIG1lbmRla2F0aSBOb3JtYWwsIHRlcmxlcGFzIGRhcmkgYmVudHVrIERpc3RyaWJ1c2kgUG9wdWxhc2kgYXNsaW55YS4NCg0KLSBKaWthIHBvcHVsYXNpIGFzYWxueWEgc2FuZ2F0IG1pcmluZyAoc2tld2VkKSwgRGlzdHJpYnVzaSBTYW1wbGluZyB5YW5nIEFuZGEgYnVhdCBkYXJpIHJhdGEtcmF0YS1yYXRhIHNhbXBlbCB0ZXJzZWJ1dCBha2FuIGJlcmJlbnR1ayBsb25jZW5nIChOb3JtYWwpLg0KDQotLS0NCg0KIyMjICpBdHVyYW4gUHJha3RpcyBVa3VyYW4gU2FtcGVsKg0KDQoqKkthcGFuICRuJCBkaWFuZ2dhcCAiY3VrdXAgYmVzYXIiIHVudHVrIG1lbmVyYXBrYW4gQ0xUPyoqDQoNCi0gQXR1cmFuIFVtdW06IFVtdW1ueWEgZGlzZXBha2F0aSBiYWh3YSBhbWFuIHVudHVrIG1lbmVyYXBrYW4gVGVvcmVtYSBMaW1pdCBQdXNhdCBrZXRpa2EgdWt1cmFuIHNhbXBlbCAoJG4kKSBsZWJpaCBiZXNhciBhdGF1IHNhbWEgZGVuZ2FuIDMwICgkbiBcZ2UgMzAkKS4NCg0KLSBJbXBsaWthc2k6IEppa2EgJG4gXGdlIDMwJCwga2l0YSBkYXBhdCBtZW5nYXN1bXNpa2FuIERpc3RyaWJ1c2kgU2FtcGxpbmcgYWRhbGFoIE5vcm1hbCwgZGFuIG9sZWgga2FyZW5hIGl0dSwga2l0YSBkYXBhdCBtZW5nZ3VuYWthbiBzZW11YSBydW11cyBkYW4gbWV0b2RlIHlhbmcgdGVya2FpdCBkZW5nYW4gRGlzdHJpYnVzaSBOb3JtYWwgKG1pc2FsbnlhLCBaLXNjb3JlKS4NCg0KLS0tDQoNCiMjIyAqTG9naWthIERpYmFsaWsgVHJhbnNmb3JtYXNpIEJlbnR1ayBLdXJ2YSoNCg0KKipNZW5nYXBhIERpc3RyaWJ1c2kgU2FtcGxpbmcgbWVuamFkaSBub3JtYWwgYmFoa2FuIGppa2EgcG9wdWxhc2kgYXNhbG55YSBtaXJpbmc6KioNCg0KLSBQZW5nYW1iaWxhbiBTYW1wZWwgQWNhazogS2FyZW5hIHByb3NlcyBwZW5nYW1iaWxhbiBzYW1wZWwgYWRhbGFoIGFjYWssIHJhdGEtcmF0YSBzYW1wZWwgKCRcYmFye1h9JCkgZGFyaSBiZXJiYWdhaSBzYW1wZWwgY2VuZGVydW5nIG1lbmRla2F0aSBSYXRhLXJhdGEgUG9wdWxhc2kgKCRcbXUkKSB5YW5nIHNlYmVuYXJueWEuDQoNCi0gS2VzZWltYmFuZ2FuOiBTYW1wZWwgeWFuZyBkaWFtYmlsIGRhcmkgImJ1bGsiIChiYWdpYW4gdGVyYmVzYXIpIHBvcHVsYXNpIGFrYW4gbGViaWggc2VyaW5nIHRlcmphZGkgZGFyaXBhZGEgc2FtcGVsIGVrc3RyZW0uIFJhdGEtcmF0YSAoJFxiYXJ7WH0kKSBiZXJ0aW5kYWsgc2ViYWdhaSB0aXRpayBwZW55ZWltYmFuZyAoYmFsYW5jaW5nIHBvaW50KSB1bnR1ayBzZXRpYXAgc2FtcGVsLg0KDQotIFZhcmlhYmlsaXRhczogS2V0aWthIHNlbXVhICRcYmFye1h9JCBpbmkgZGlwbG90LCBtZXNraXB1biBiZWJlcmFwYSAkXGJhcntYfSQgbXVuZ2tpbiBqYXVoIGRhcmkgJFxtdSQgKHNhbXBlbCB5YW5nIHRpZGFrIGJpYXNhKSwgc2ViYWdpYW4gYmVzYXIgJFxiYXJ7WH0kIGFrYW4gdGVya3VtcHVsIHJhcGF0IGRpIHNla2l0YXIgJFxtdSQuIFBlbmd1bXB1bGFuIHlhbmcga2V0YXQgaW5pbGFoIHlhbmcgbWVuY2lwdGFrYW4gYmVudHVrIGxvbmNlbmcgKERpc3RyaWJ1c2kgTm9ybWFsKSB5YW5nIHNpbWV0cmlzIGRpIHNla2l0YXIgJFxtdSQuDQoNCi0tLQ0KDQojIyMgKlBlbmdlY3VhbGlhbiBkYW4gQmF0YXNhbiBDTFQqDQoNCioqUG9wdWxhc2kgU3VkYWggTm9ybWFsKioNCg0KLSBKaWthIFBvcHVsYXNpIGF3YWwgc3VkYWggYmVyZGlzdHJpYnVzaSBOb3JtYWwsIG1ha2EgRGlzdHJpYnVzaSBTYW1wbGluZyBqdWdhIGFrYW4gYmVyZGlzdHJpYnVzaSBOb3JtYWwsIHRlcmxlcGFzIGRhcmkgdWt1cmFuIHNhbXBlbCAoJG4kKS4NCg0KLSBDYXRhdGFuIFByYWt0aXM6IE1lc2tpcHVuIERpc3RyaWJ1c2kgU2FtcGxpbmcgdGV0YXAgTm9ybWFsIGRlbmdhbiAkbiA8IDMwJCwgdWt1cmFuIHNhbXBlbCBrZWNpbCAoJG4kIGtlY2lsKSB0ZXRhcCBtZW5naGFzaWxrYW4gcGVya2lyYWFuIHlhbmcga3VyYW5nIGFrdXJhdCBkYW4gbWVtaWxpa2kgdmFyaWFiaWxpdGFzICh2YXJpYWJpbGl0eSkgeWFuZyBsZWJpaCBiZXNhci4gT2xlaCBrYXJlbmEgaXR1LCB1a3VyYW4gc2FtcGVsIGJlc2FyICgkbiBcZ2UgMzAkKSB0ZXRhcCBkaXNhcmFua2FuIGRhbGFtIHByYWt0aWsuDQoNCioqUG9wdWxhc2kgVGlkYWsgTm9ybWFsIGRhbiAkbiA8IDMwJCoqDQoNCi0gSmlrYSBQb3B1bGFzaSB0aWRhayBOb3JtYWwgZGFuIHVrdXJhbiBzYW1wZWwga2VjaWwgKCRuIDwgMzAkKSwgbWFrYSBDTFQgdGlkYWsgZGFwYXQgZGl0ZXJhcGthbi4NCg0KLSBJbXBsaWthc2k6IERpc3RyaWJ1c2kgU2FtcGxpbmcgZGFsYW0ga2FzdXMgaW5pIHRpZGFrIGRhcGF0IGRpYXN1bXNpa2FuIE5vcm1hbCwgZGFuIG1ldG9kZSBzdGF0aXN0aWsgaW5mZXJlbnNpYWwgc3RhbmRhciB0aWRhayBkYXBhdCBkaWd1bmFrYW4gc2VjYXJhIGFrdXJhdC4NCg0KLS0tDQoNCiMjIyAqUGVudGluZ255YSBDTFQqDQoNCi0gTWVtdW5na2lua2FuIEluZmVyZW5zaTogRGVuZ2FuIG1lbmdldGFodWkgYmFod2EgRGlzdHJpYnVzaSBTYW1wbGluZyBhZGFsYWggTm9ybWFsIChrZXRpa2EgJG4kIGJlc2FyKSwga2l0YSBkYXBhdCBtZW5nZ3VuYWthbiBwcm9iYWJpbGl0YXMgc3RhbmRhciBkYW4gcnVtdXMgWi1zY29yZSB1bnR1ayBtZW5naW50ZXJwcmV0YXNpa2FuIGRhdGEgc2FtcGVsIGJlc2FyLiANCg0KLSBNZW5kYXNhcmkgTWV0b2RlOiBDTFQgYWRhbGFoIGZvbmRhc2kgdGVvcml0aXMgdW50dWsgYmFueWFrIG1ldG9kZSBzdGF0aXN0aWssIHRlcm1hc3VrIG1lbmdoaXR1bmcgbWFyZ2luIG9mIGVycm9yIChiYXRhcyBrZXNhbGFoYW4pIGRhbiBtZW1idWF0IGludGVydmFsIGtlcGVyY2F5YWFuLiBJbmkgbWVtdW5na2lua2FuIHBhcmEgYWhsaSBzdGF0aXN0aWsgdW50dWsgbWVtYnVhdCBrZXNpbXB1bGFuIHlhbmcgYW5kYWwgdGVudGFuZyBwb3B1bGFzaSBiZXNhciBoYW55YSBkYXJpIHNhbXBlbC4NCg0KIyMgUHJvcG9yc2kgU2FtcGVsDQoNClByb3BvcnNpIHNhbXBlbCBhZGFsYWggdWt1cmFuIHlhbmcgbWVudW5qdWtrYW4gYmFnaWFuIGF0YXUgcGVyc2VudGFzZSBzdWF0dSBrYXJha3RlcmlzdGlrIGRhbGFtIHNhbXBlbCBkYW4gZGlndW5ha2FuIHVudHVrIG1lbXBlcmtpcmFrYW4gcHJvcG9yc2kgcG9wdWxhc2kgc2ViZW5hcm55YS4gTmlsYWkgaW5pIGRhcGF0IGJlcnViYWgtdWJhaCBhbnRhciBzYW1wZWwga2FyZW5hIHByb3NlcyBwZW5nYW1iaWxhbiBzYW1wZWwsIG5hbXVuIHNlbWFraW4gYmVzYXIgdWt1cmFuIHNhbXBlbCwgcHJvcG9yc2kgc2FtcGVsIGNlbmRlcnVuZyBzZW1ha2luIG1lbmRla2F0aSBuaWxhaSBwb3B1bGFzaS4gTWVsYWx1aSBkaXN0cmlidXNpIHByb3BvcnNpIHNhbXBlbCwga2l0YSBkYXBhdCBtZWxha3VrYW4gaW5mZXJlbnNpIHN0YXRpc3RpayBzZXBlcnRpIG1lbWJ1YXQgaW50ZXJ2YWwga2VwZXJjYXlhYW4gZGFuIG1lbmd1amkgaGlwb3Rlc2lzIHRlbnRhbmcgcHJvcG9yc2kgcG9wdWxhc2kuDQoNCjxjZW50ZXI+DQo8aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvcTJlNG1LMEZUYnciIHdpZHRoPSI3NjAiIGhlaWdodD0iNDAwIiBkYXRhLWV4dGVybmFsPSIxIj48L2lmcmFtZT4NCjwvY2VudGVyPg0KDQpNZW5qZWxhc2thbiBiYWh3YSBrZXRpa2Ega2l0YSBtZW5nYW1iaWwgYmFueWFrIHNhbXBlbCBkYXJpIHN1YXR1IHBvcHVsYXNpIHlhbmcgbWVtaWxpa2kgcHJvcG9yc2kgc2ViZW5hcm55YSwgc2V0aWFwIHNhbXBlbCBha2FuIG1lbmdoYXNpbGthbiBuaWxhaSBwcm9wb3JzaSBzYW1wZWwgeWFuZyBiZXJiZWRhLWJlZGEsIGRpc2VidXQgKHNhbXBsZSBwcm9wb3J0aW9uKS4gS3VtcHVsYW4gc2VsdXJ1aCBuaWxhaSB0ZXJzZWJ1dCBha2FuIG1lbWJlbnR1ayBzdWF0dSBwb2xhIGF0YXUgZGlzdHJpYnVzaSBzYW1wbGluZywgeWFuZyBtZW5nZ2FtYmFya2FuIGJhZ2FpbWFuYSBwcm9wb3JzaSBzYW1wZWwgYmVydWJhaC11YmFoIGRhcmkgc2F0dSBzYW1wZWwga2Ugc2FtcGVsIGxhaW5ueWEuDQoNCkRpc3RyaWJ1c2kgaW5pIG1lbWlsaWtpIHJhdGEtcmF0YSB5YW5nIHNlbGFsdSBzYW1hIGRlbmdhbiBwcm9wb3JzaSBwb3B1bGFzaSBzZWRhbmdrYW4gcGVueWViYXJhbm55YSAoc2ltcGFuZ2FuIGJha3UpIG1lbmdpa3V0aSBydW11cyB5YW5nIGJlcmFydGkgYmFod2Egc2VtYWtpbiBiZXNhciB1a3VyYW4gc2FtcGVsIHNlbWFraW4ga2VjaWwgdmFyaWFzaSBhbnRhcmEgc2F0dSBwcm9wb3JzaSBzYW1wZWwgZGVuZ2FuIHlhbmcgbGFpbi4gS2V0aWthIHVrdXJhbiBzYW1wZWwgY3VrdXAgYmVzYXIsIGRpc3RyaWJ1c2kgYWthbiBtZW5kZWthdGkgZGlzdHJpYnVzaSBub3JtYWwsIHNlaGluZ2dhIGtpdGEgZGFwYXQgbWVuZ2d1bmFrYW4gWi1zY29yZSB1bnR1ayBtZW5naGl0dW5nIHBlbHVhbmcgc3VhdHUgcHJvcG9yc2kgc2FtcGVsIGJlcmFkYSBkaSBiYXdhaCBhdGF1IGRpIGF0YXMgbmlsYWkgdGVydGVudHUuIA0KDQpQcm9wb3JzaSBzYW1wZWwgYnVrYW5sYWggYW5na2EgcGFzdGkgdGV0YXBpIG5pbGFpIHlhbmcgYmVydmFyaWFzaSwgZGFuIHZhcmlhc2kgaXR1IGRhcGF0IGRpcHJlZGlrc2kgc2VjYXJhIG1hdGVtYXRpcyBzZWhpbmdnYSBtZW11bmdraW5rYW4ga2l0YSBtZWxha3VrYW4gaW5mZXJlbnNpIHN0YXRpc3RpayB0ZXJoYWRhcCBwb3B1bGFzaSBoYW55YSBiZXJkYXNhcmthbiBzYW1wZWwuDQoNCiMjIyAqS29uc2VwIERhc2FyKg0KDQoNCg0KKipBcGEgaXR1IERpc3RyaWJ1c2kgU2FtcGxpbmcqKg0KDQotIERpc3RyaWJ1c2kgc2FtcGxpbmcgbWVsaWJhdGthbiBwZW5nYW1iaWxhbiBzYW1wZWwgYmVydWxhbmcga2FsaSBkYXJpIHN1YXR1IHBvcHVsYXNpLg0KDQotIFVudHVrIHNldGlhcCBzYW1wZWwsIGRpaGl0dW5nIHN0YXRpc3RpayB0ZXJ0ZW50dSAoc2VwZXJ0aSAkXGJhcnt4fSQgYXRhdSAkXGhhdHtQfSQpLCBkYW4ga2VtdWRpYW4gc2VtdWEgaW5mb3JtYXNpIGluaSBkaWdhYnVuZ2thbiBkYWxhbSBiZW50dWsgZ3JhZmlrIHVudHVrIG1lbWJ1YXQgc2VidWFoIGRpc3RyaWJ1c2kuDQoNCioqQXBhIGl0dSBQcm9wb3JzaSoqDQoNCi0gRGFsYW0gc3RhdGlzdGlrYSwgcHJvcG9yc2kgbWVuZ2dhbWJhcmthbiBwZWNhaGFuIGRhcmkgaGFzaWwgeWFuZyBtZW5ndW50dW5na2FuIChmYXZvcmFibGUgb3V0Y29tZXMpIGRhbGFtIGthaXRhbm55YSBkZW5nYW4ga2VzZWx1cnVoYW4uDQoNCi0gUnVtdXMgdW11bSBwcm9wb3JzaTogSnVtbGFoIEhhc2lsIHlhbmcgTWVuZ3VudHVuZ2thbiAvIEp1bWxhaCBUb3RhbCBIYXNpbC4NCg0KJCRcaGF0e1B9ID0gXGZyYWN7eH17bn0kJA0KDQoqKkRpIG1hbmE6KioNCg0KLSAkeCQgPSBKdW1sYWggInN1a3NlcyIgYXRhdSBqdW1sYWggdW5pdCBkYWxhbSBzYW1wZWwgeWFuZyBtZW1pbGlraSBrYXJha3RlcmlzdGlrIHlhbmcgZGljYXJpIChkaXNlYnV0IGp1Z2EgaGFzaWwgeWFuZyBtZW5ndW50dW5na2FuKS4NCg0KLSAkbiQgPSBVa3VyYW4gc2FtcGVsIChqdW1sYWggdG90YWwgdW5pdCB5YW5nIGRpYW1hdGkgZGFsYW0gc2FtcGVsKS4NCg0KKipDb250b2ggSWx1c3RyYXNpOioqDQpNaXNhbG55YSwga2l0YSBpbmdpbiBtZW5nZXRhaHVpIHByb3BvcnNpIHBlbWlsaWggZGkgc3VhdHUga290YSB5YW5nIG1lbmR1a3VuZyBDYWxvbiBBICgkUCQpLiBLYXJlbmEgdGlkYWsgbXVuZ2tpbiBtZW5zdXJ2ZWkgc2VsdXJ1aCBwb3B1bGFzaSwga2l0YSBtZW5nYW1iaWwgc2FtcGVsIGFjYWsgMjAwIHBlbWlsaWggKCRuPTIwMCQpLg0KDQpKaWthIDExMCBwZW1pbGloIGRhbGFtIHNhbXBlbCB0ZXJzZWJ1dCBtZW5kdWt1bmcgQ2Fsb24gQSAoJHg9MTEwJCksIG1ha2E6DQoNCiQkXGhhdHtQfSA9IFxmcmFjezExMH17MjAwfSA9IDAuNTUkJA0KDQpQcm9wb3JzaSBzYW1wZWwgcGVtaWxpaCB5YW5nIG1lbmR1a3VuZyBDYWxvbiBBIGFkYWxhaCAqKjAuNTUqKiBhdGF1ICoqNTUlLioqDQoNCioqU2ltYm9sIHVudHVrIFByb3BvcnNpKioNCg0KLSBQcm9wb3JzaSBkYWxhbSBQb3B1bGFzaSBkaWxhbWJhbmdrYW4gZGVuZ2FuIHNpbWJvbCAkUCQuDQoNCi0gUHJvcG9yc2kgZGFsYW0gU2FtcGVsIGRpbGFtYmFuZ2thbiBkZW5nYW4gc2ltYm9sICRcaGF0e1B9JCAoUC10b3BpL1AtaGF0KS4NCg0KLS0tDQoNCiMjIyAqRGlzdHJpYnVzaSBTYW1wbGluZyBkYXJpIFByb3BvcnNpIFNhbXBlbCAoJFxoYXR7UH0kKSoNCg0KLSBKaWthIHNhbXBlbCBkaWFtYmlsIGJlcnVsYW5nIGthbGkgZGFyaSBwb3B1bGFzaSB5YW5nIHNhbWEgZGFuICRcaGF0e1B9JCBkaWhpdHVuZyB1bnR1ayBzZXRpYXAgc2FtcGVsLCBoYXNpbG55YSBha2FuIGJlcnZhcmlhc2kuDQoNCi0gRGlzdHJpYnVzaSBTYW1wbGluZyBkYXJpIFByb3BvcnNpIFNhbXBlbCBhZGFsYWggZGlzdHJpYnVzaSB5YW5nIGRpYnVhdCBkYXJpIHNlbXVhIG5pbGFpICRcaGF0e1B9JCB5YW5nIGJlcmJlZGEgaW5pLg0KDQotLS0NCg0KIyMjICpLYXJha3RlcmlzdGlrIERpc3RyaWJ1c2kqDQoNCioqUmF0YS1yYXRhICgkXHRleHR7TWVhbn0kKToqKiANCg0KUmF0YS1yYXRhIGRhcmkgc2VtdWEgJFxoYXR7UH0kIChkaW5vdGFzaWthbiBzZWJhZ2FpICRcbXVfe1xoYXR7UH19JCkgc2FtYSBkZW5nYW4gcHJvcG9yc2kgcG9wdWxhc2kgJFAkDQoNClJ1bXVzbnlhOg0KDQokJFxtdV97XGhhdHtQfX0gPSBQJCQNCg0KKipTaW1wYW5nYW4gQmFrdSAoJFx0ZXh0e1N0YW5kYXJkIERldmlhdGlvbn0kKToqKg0KDQpSdW11c255YToNCg0KJCRcc2lnbWFfe1xoYXR7UH19ID0gXHNxcnR7XGZyYWN7UCBRfXtufX0kJA0KDQotICRuJDogVWt1cmFuIHNhbXBlbC4NCg0KLSAkUCQ6IFByb3BvcnNpIGhhc2lsIHN1a3Nlcy4NCg0KLSAkUSQ6IFByb3BvcnNpIGhhc2lsIHRpZGFrIHN1a3NlcywgZGkgbWFuYSAkUSA9IDEgLSBQJC4NCg0KLS0tDQoNCiMjIyAqU2tvci1aICgkXHRleHR7Wi1zY29yZX0kKToqDQoNCi0gUnVtdXMgc3RhbmRhcmRpc2FzaSAoU2tvci1aIHVudHVrIHByb3BvcnNpKToNCg0KJCRaID0gXGZyYWN7XGhhdHtQfSAtIFB9e1xzaWdtYV97XGhhdHtQfX19ID0gXGZyYWN7XGhhdHtQfSAtIFB9e1xzcXJ0e1xmcmFje1AoMS1QKX17bn19fSQkDQoNCi0tLQ0KDQojIyMgKktvbmRpc2kgVGVvcmVtYSBMaW1pdCBQdXNhdCoNCg0KQWdhciBEaXN0cmlidXNpIFNhbXBsaW5nIGRhcmkgUHJvcG9yc2kgU2FtcGVsIGRhcGF0IGRpYW5nZ2FwIG5vcm1hbCAoc2VoaW5nZ2EgdGFiZWwgc2tvci1aIGRhcGF0IGRpZ3VuYWthbikgYWRhIGR1YSBrb25kaXNpOg0KDQotICRuIFxjZG90IFAgXGdlcSAxMCQNCg0KLSAkbiBcY2RvdCAoMSAtIFApIFxnZXEgMTAkDQoNCg0KIyMgVGluamF1YW4gRGlzdHJpYnVzaSBTYW1wZWwNCg0KVGluamF1YW4gZGlzdHJpYnVzaSBzYW1wZWwgbWVuZ2dhbWJhcmthbiBiYWdhaW1hbmEgc3RhdGlzdGlrIHNhbXBlbOKAlHNlcGVydGkgcmF0YS1yYXRhLCBwcm9wb3JzaSwgYXRhdSB2YXJpYW5zaeKAlGFrYW4gYmVycGVyaWxha3UgamlrYSBraXRhIG1lbmdhbWJpbCBiYW55YWsgc2FtcGVsIGFjYWsgZGFyaSBzdWF0dSBwb3B1bGFzaS4gRGlzdHJpYnVzaSBpbmkgcGVudGluZyBrYXJlbmEgbWVudW5qdWtrYW4gcG9sYSB2YXJpYXNpIGFsYW1pIHlhbmcgdGVyamFkaSBha2liYXQgcHJvc2VzIHBlbmdhbWJpbGFuIHNhbXBlbCwgYnVrYW4ga2FyZW5hIHBlcnViYWhhbiBwYWRhIHBvcHVsYXNpLiBNZWxhbHVpIGRpc3RyaWJ1c2kgc2FtcGVsLCBraXRhIGRhcGF0IG1lbWFoYW1pIHNlYmVyYXBhIGRla2F0IG5pbGFpIHN0YXRpc3RpayBzYW1wZWwgZGVuZ2FuIHBhcmFtZXRlciBwb3B1bGFzaSB5YW5nIHNlYmVuYXJueWEsIHNlcnRhIHNlYmVyYXBhIGJlc2FyIGtldGlkYWtwYXN0aWFuIHlhbmcgbXVuY3VsIGRhbGFtIGVzdGltYXNpLiBLb25zZXAgaW5pIG1lbmphZGkgZGFzYXIgYmFnaSBpbmZlcmVuc2kgc3RhdGlzdGlrLCB0ZXJtYXN1ayBwZW1iZW50dWthbiBpbnRlcnZhbCBrZXBlcmNheWFhbiBkYW4gcGVuZ3VqaWFuIGhpcG90ZXNpcywga2FyZW5hIG1lbWJlcmlrYW4gZ2FtYmFyYW4gYmFod2EgbWVza2lwdW4gbmlsYWkgc2FtcGVsIGRhcGF0IGJlcnViYWgtdWJhaCwgcG9sYSBkaXN0cmlidXNpbnlhIHRldGFwIG1lbmdpa3V0aSBhdHVyYW4gdGVydGVudHUsIG1pc2FsbnlhIG1lbmRla2F0aSBkaXN0cmlidXNpIG5vcm1hbCBiZXJkYXNhcmthbiBUZW9yZW1hIExpbWl0IFB1c2F0Lg0KDQo8Y2VudGVyPg0KPGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2MwbUZFTF9TV3pFIiB3aWR0aD0iNzYwIiBoZWlnaHQ9IjQwMCIgZGF0YS1leHRlcm5hbD0iMSI+PC9pZnJhbWU+DQo8L2NlbnRlcj4NCg0KQmVyZnVuZ3NpIHNlYmFnYWkgdWxhc2FuIHVudHVrIG1lbnlhdHVrYW4ga29uc2VwLWtvbnNlcCBkYXNhciBwcm9iYWJpbGl0YXMsIERpc3RyaWJ1c2kgQmlub21pYWwsIGRhbiBEaXN0cmlidXNpIFNhbXBlbCBkYXJpIFByb3BvcnNpIFNhbXBlbCAoU2FtcGxpbmcgRGlzdHJpYnV0aW9uIG9mIHRoZSBTYW1wbGUgUHJvcG9ydGlvbikgbWVsYWx1aSBzb2FsLXNvYWwgbGF0aWhhbi4NCg0KIyMjICpVbGFzYW4gUHJvYmFiaWxpdGFzIERhc2FyKg0KDQoqKk1hc2FsYWggcHJvYmFiaWxpdGFzIGRhc2FyOioqDQoNCkppa2Egc2VidWFoIHdhZGFoIGJlcmlzaSAyMDAga2VsZXJlbmcgaGlqYXUgKEdyZWVuKSBkYW4gMzAwIGtlbGVyZW5nIGJpcnUgKEJsdWUpLCBiZXJhcGEgcHJvYmFiaWxpdGFzIG1lbmFyaWsgc2V0aWRha255YSBkdWEga2VsZXJlbmcgaGlqYXUgZGFsYW0gdGlnYSBrYWxpIHBlbmdhbWJpbGFuIGRlbmdhbiBwZW5nZW1iYWxpYW4/DQoNCi0gUHJvYmFiaWxpdGFzIFN1a3NlcyAoUCkgLyBLZWxlcmVuZyBIaWphdToNCg0KJCQyMDAgLyA1MDAgPSAwLjQkJA0KDQotIFByb2JhYmlsaXRhcyBHYWdhbCAoUSkgLyBLZWxlcmVuZyBCaXJ1OiANCg0KJCQzMDAgLyA1MDAgPSAwLjYkJA0KDQpVbnR1ayBtZW5kYXBhdGthbiBzZXRpZGFrbnlhIGR1YSBrZWxlcmVuZyBoaWphdSwga2l0YSBwZXJsdSBtZW5naGl0dW5nIHByb2JhYmlsaXRhcyB1bnR1ayB0ZXBhdCBkdWEga2VsZXJlbmcgaGlqYXUgZGl0YW1iYWggcHJvYmFiaWxpdGFzIHVudHVrIHRlcGF0IHRpZ2Ega2VsZXJlbmcgaGlqYXUuDQoNCi0gUHJvYmFiaWxpdGFzIFRlcGF0IER1YSBIaWphdTogTWVuanVtbGFoa2FuIHNlbXVhIGtlbXVuZ2tpbmFuIHVydXRhbiAoR0dCLCBHQkcsIEJHRykuIA0KDQokJDAuMDk2ICsgMC4wOTYgKyAwLjA5NiA9IDAuMjg4JCQNCg0KLSBQcm9iYWJpbGl0YXMgVGVwYXQgVGlnYSBIaWphdSAoR0dHKToNCg0KJCQwLjQgXHRpbWVzIDAuNCBcdGltZXMgMC40ID0gMC4wNjQkJA0KDQotIFRvdGFsIFByb2JhYmlsaXRhcyAoU2V0aWRha255YSBEdWEgSGlqYXUpOiANCg0KJCQwLjI4OCArIDAuMDY0ID0gMC4zNTIkJCANCg0KLS0tDQoNCiMjIyAqRGlzdHJpYnVzaSBCaW5vbWlhbCoNCg0KSmlrYSBqdW1sYWggcGVyY29iYWFuIChwZW5nYW1iaWxhbikgZGl0aW5na2F0a2FuIG1lbmphZGkgbGltYSBrYWxpLCBtZW5naGl0dW5nIHNlbXVhIGtlbXVuZ2tpbmFuIHVydXRhbiBha2FuIG1lbWFrYW4gd2FrdHUuDQoNCioqVW50dWsga2FzdXMgaW5pLCBkaWd1bmFrYW4gRm9ybXVsYSBCaW5vbWlhbCB1bnR1ayBtZW5naGl0dW5nIHByb2JhYmlsaXRhcyBqdW1sYWggc3Vrc2VzIChrKSB5YW5nIHRlcGF0OioqDQoNCiQkUChYPWspID0gQyhuLCBrKSBcY2RvdCBwXmsgXGNkb3QgKDEtcClee24ta30kJA0KDQpEYWxhbSBjb250b2ggaW5pICgkbj01LCBwPTAuNCQpLCBwcm9iYWJpbGl0YXMgc2V0aWRha255YSBkdWEga2VsZXJlbmcgaGlqYXUgZGloaXR1bmcgZGVuZ2FuIG1lbmp1bWxhaGthbiBwcm9iYWJpbGl0YXMgdW50dWsgJGs9Miwgaz0zLCBrPTQsJCBkYW4gJGs9NSQuDQoNCi0gU2V0aWFwIHByb2JhYmlsaXRhcyBkaWhpdHVuZyBtZW5nZ3VuYWthbiBGb3JtdWxhIEJpbm9taWFsIChtaXNhbG55YSwgdW50dWsgJGs9MiQsIHByb2JhYmlsaXRhc255YSBhZGFsYWggKiowLjM0NTYuKioNCg0KLSBTZXRlbGFoIHBlcmhpdHVuZ2FuLCBzZW11YSBuaWxhaSBkaWp1bWxhaGthbi4gSGFzaWwgYWtoaXIgcHJvYmFiaWxpdGFzbnlhIGFkYWxhaCAqKjAuNjYzNCoqDQoNCi0tLQ0KDQojIyMgKkRpc3RyaWJ1c2kgU2FtcGVsIFByb3BvcnNpKg0KDQpKaWthIGp1bWxhaCBwZXJjb2JhYW4gZGl0aW5na2F0a2FuIHNlY2FyYSBzaWduaWZpa2FuLCBtaXNhbG55YSBtZW5hcmlrIGtlbGVyZW5nIDEwMCBrYWxpLCBtZW5nZ3VuYWthbiBGb3JtdWxhIEJpbm9taWFsIHNlY2FyYSBiZXJ1bGFuZyAoNjUga2FsaSwgZGFyaSAzNSBoaW5nZ2EgMTAwIHN1a3NlcykgbWVuamFkaSB0aWRhayBwcmFrdGlzLiANCg0KU29sdXNpbnlhIGFkYWxhaCBtZW5nZ3VuYWthbiBEaXN0cmlidXNpIFNhbXBlbCBQcm9wb3JzaSBkZW5nYW4gUGVuZGVrYXRhbiBOb3JtYWwgbWVsYWx1aSBUZW9yZW1hIEJhdGFzIFB1c2F0IChDZW50cmFsIExpbWl0IFRoZW9yZW0pLg0KDQojIyMjICpNZW1lcmlrc2EgS29uZGlzaSBUZW9yZW1hIEJhdGFzIFB1c2F0IChDTFQpKg0KDQoqKkNMVCBkYXBhdCBkaXRlcmFwa2FuIGppa2EgZHVhIGtvbmRpc2kgdGVycGVudWhpOioqDQoNCi0gJG4gXHRpbWVzIFAgXGdlIDEwJDogJDEwMCBcdGltZXMgMC40ID0gNDAkIChUZXJwZW51aGkpLg0KDQotICRuIFx0aW1lcyAoMS1QKSBcZ2UgMTAkOiAkMTAwIFx0aW1lcyAwLjYgPSA2MCQgKFRlcnBlbnVoaSkuDQoNCi0tLQ0KDQojIyMjICpNZW5naGl0dW5nIFotU2tvcioNCg0KKipLYXJlbmEga29uZGlzaSB0ZXJwZW51aGksIGtpdGEgZGFwYXQgbWVuZ2d1bmFrYW4gWi1Ta29yIHVudHVrIHN0YW5kYXJkaXNhc2k6KioNCg0KJCRaID0gXGZyYWN7XGhhdHtQfSAtIFB9e1xzcXJ0e1xmcmFje1AoMS1QKX17bn19fSQkDQoNCkRhbGFtIGthc3VzIGluaSwga2l0YSBtZW5jYXJpIHByb2JhYmlsaXRhcyBtZW5hcmlrIHNldGlkYWtueWEgMzUga2VsZXJlbmcgaGlqYXUuIFByb3BvcnNpIHNhbXBlbCAoJFxoYXR7UH0kKSB5YW5nIHNlc3VhaSBhZGFsYWggJDM1LzEwMCA9IDAuMzUkLg0KDQotIFBlcmhpdHVuZ2FuIFotU2tvcjoNCg0KJCRaID0gXGZyYWN7MC4zNSAtIDAuNH17XHNxcnR7XGZyYWN7MC40IFx0aW1lcyAwLjZ9ezEwMH19fSA9IC0xLjAyJCQNCg0KLSBNZW5jYXJpIFByb2JhYmlsaXRhczogWi1za29yIC0xLjAyIG1lbWlsaWtpIGFyZWEgZGkgc2ViZWxhaCBraXJpIHNlYmVzYXIgKiowLjE1MzkuKioNCg0KLSBLYXJlbmEgcGVydGFueWFhbiBtZW1pbnRhIHByb2JhYmlsaXRhcyAic2V0aWRha255YSIgMzUgKGFyZWEga2Uga2FuYW4pLCBraXRhIG1lbmdoaXR1bmc6IA0KDQokJDEgLSAwLjE1MzkgPSAwLjg0NjEkJA0KDQoqKkhhc2lsbnlhLCBwZXJraXJhYW4gcHJvYmFiaWxpdGFzIG1lbmFyaWsgc2V0aWRha255YSAzNSBrZWxlcmVuZyBoaWphdToqKg0KDQokJDAuODQ2MSQkDQokJGF0YXUkJA0KJCQ4NC42MSUuJCQNCg0KIyMgUmVmZXJlbnNpDQoNCi0gaHR0cHM6Ly9ib29rZG93bi5vcmcvZHNjaWVuY2VsYWJzL2ludHJvX3N0YXRpc3RpY3MvMDctUHJvYmFiaWxpdHlfRGlzdHJpYnV0aW9ucy5odG1sDQoNCi0gaHR0cHM6Ly9zZWFyY2gtbGliLnVtcy5hYy5pZC9jZ2ktYmluL2tvaGEvb3BhYy1kZXRhaWwucGw/YmlibGlvbnVtYmVyPTc1MTg1DQoNCi0gaHR0cHM6Ly9lcHJpbnRzLmFrcHJpbmQuYWMuaWQvNDQ3LzEvZml4X1BlbmdhbnRhciUyMFRlb3JpJTIwUHJvYmFiaWxpdGFzJTIwJTI4Tm9lcnlhbnRpJTI5LVBlcnB1cy5wZGYNCg0KDQoNCg0KDQoNCg0KDQoNCg0K