Teknik Sampling dan Survey

Logo


Prinsip Pengambilan Sampel

1. Apa itu pengambilan Sampel?

Pengambilan sampel adalah proses pemilihan sebagian individu, item, atau pengamatan dari sebuah populasi yang lebih besar untuk memperkirakan karakteristik dari keseluruhan populasi. Pengambilan sampel sering digunakan dalam sebuah penelitian, bisnis, dan kebijakan publik untuk membuat sebuah keputusan yang berdasarkan data secara efisien.

Dalam vidio berjudul “Konsep Dasar Sampling” dari YouTube Statmat.id, dijelaskan juga bahwa sampling adalah teknik pengambilan sebagian kecil data (sampel) yang diharapkan dapat mewakili karakteristik keseluruhan data (populasi). Sampel yang representatif adalah kunci, karena bertujuan untuk mencerminkan populasi secara akurat. Dengan ukuran sampel yang memadai penting untuk memastikan representasi yang baik. Berikut penjelasan lengkapnya :

1.1 Pengertian Sampel Lebih Luas

Dalam statistika, sampel tidak terbatas pada orang saja. Sampel juga dapat berupa apa saja yang ingin diteliti lebih lanjut, seperti kondisi suatu negara, jenis masalah di perusahaan, atau bahkan spesies burung tertentu. Tujuan sampling adalah untuk mempelajari konsep dasar dalam statistika dengan lebih mendalam.

1.2 Langkah Pengambilan Sampel

Salah satu langkah dalam pengambilan sampel adalah memastikan sampel yang di ambil yakni secara acak untuk menghindari bias. Jika masih tidak memungkinkan, maka dapat menggunakan mengonfirmasi penelitian yakni menggunakan pembagian populasi ke dalam beberapa kelompok sampel ( usia, jenis kelamin) yang bertujuan untuk memastikan keterwakilan.

1.3 Contoh Ilustrasi

Disini saya membuat sebuah contoh yang berbeda dengan vidio akan tetapi masih memiliki kesamaan yakni :

Sebuah puskesmas kota mengadakan penyuluhan di desa dan menawarkan 1000 dosis vaksin kepada masyarakat. Jika hanya 10 orang yang dijadikan sampel data, hasil penelitian berpotensi tidak akurat. Akan lebih baik jika sampel terdiri dari 100 orang (\(\frac{1}{10}\) dari total populasi yang menerima tawaran vaksin). Dengan demikian, sampel akan lebih representatif atau mewakili terhadap keseluruhan data.

Kesimpulan

Dari penjelasan yang ada pada video menekankan bahwa sampling dapat memungkinkan kita untuk menarik kesimpulan tentang populasi yang lebih besar tanpa harus meneliti setiap individu di dalamnya. Ini sangat berguna ketika populasi sangat besar atau penelitian terhadap seluruh populasi tidak praktis atau tidak mungkin dilakukan. Kualitas sampel sangat menentukan kualitas kesimpulan yang dapat ditarik. Oleh karena itu, teknik sampling yang tepat dan ukuran sampel yang memadai itu sangat penting.

2. Populasi dan Sampel

Dalam statistik, memahami perbedaan antara populasi dan sampel sangat penting untuk menganalisis data, referensi, dan pengambilan sebuah keputusan.

Seperti yang dijelaskan dalam video berjudul “Populations vs Samples” dari The ACE Tutors, yakni pemahaman tentang populasi dan sampel sangat penting dalam statistika. Berikut penjelasan lengkapnya :

2.1 Apa itu Populasi?

Populasi adalah keseluruhan individu, objek, atau titik data yang menjadi anggota suatu kelompok tertentu. Populasi mencakup semua kemungkinan pengamatan yang relevan dengan penelitian.

Contohnya :

  • Populasinya bisa berupa seluruh warga negara Indonesia saat mempelajari perilaku pemilih.
  • Seluruh celana yang diproduksi oleh sebuah perusahaan.
  • Setiap handphone yang di produksi dari pabrik saat menganalisis tingkat kerusakan.
  • Setiap mahasiswa di suatu universitas saat mengukur nilai rata-rata ujian.

Pada intinya, populasi itu mencakup setiap elemen yang termasuk dalam kelompok yang sedang diteliti.

2.1.1 Jenis Populasi

  1. Populasi Terbatas: Populasi dengan jumlah elemen yang tetap (misalnya karyawan di suatu perusahaan).
  2. Populasi Tak Terbatas: Populasi dengan jumlah elemen yang tidak dapat dihitung (misalnya, bakteri dalam cawan petri).
  3. Populasi Target: Populasi spesifik yang ingin dipelajari oleh peneliti.
  4. Populasi yang Dapat Diakses: Bagian dari populasi sasaran yang tersedia untuk penelitian.

2.1.2 Simbol-Simbol dalam Populasi

Dalam statistik, populasi memiliki simbol-simbol khusus yang disebut parameter:

  1. \(\mu\) : Rata-rata populasi
  2. \(p\) : Proporsi populasi
  3. \(\sigma\) : Simpangan baku populasi
  4. \(N\) : Ukuran populasi (jumlah anggota populasi)
  5. \(\rho\) : Koefisien korelasi populasi

2.2 Apa itu Sampel?

Sampel adalah sebagian kecil atau subset dari populasi yang lebih besar untuk analisis. Karena mempelajaru keseluruhan populasi sering mengalami ketidak praktisan karena faktor biaya, waktu, atau aksebilitas maka sampel ini digunakan untuk membuat kesimpulan tentang sebuah populasi.

Contohnya :

  • Dari seluruh warga negara Indonesia, kita bisa mengambil sampel 1.000 orang dari wilayah Jakarta, atau 100 orang dari setiap provinsi.
  • Survei terhadap 1.000 penduduk kota untuk memperkirakan opini publik.
  • Memeriksa 500 telepon pintar yang dipilih secara acak untuk menilai tingkat kerusakan
  • Menganalisis nilai ujian dari 200 siswa yang dipilih secara acak.
  • Sebuah perusahaan pakaian, dimana bisa berupa setiap celana yang diproduksi pada hari Senin, atau setiap celana keempat yang diproduksi selama seminggu.

2.2.1 Ciri-Ciri Sampel yang Baik

  1. Representatif: Secara akurat mencerminkan populasi.
  2. Acak: Dipilih tanpa bias.
  3. Cukup Besar: Memastikan estimasi yang dapat diandalkan.
  4. Meminimalkan Bias: Menghindari kesalahan sistematis.

2.2.2 Simbol Populasi yang Setara Dengan Sampel

simbol pada sampel memiliki kemiripan dengan semua nilai untuk populasi ( parameter populasi ). nilai untuk sempel disebut sampel statistik :

  1. \(\bar{x}\) : rata-rata sampel (memperkirakan rata-rata populasi)

  2. \(\hat{p}\) : proporsi sampel (perkiraan dari proporsi populasi)

  3. \(s\) : simpangan sampel baku ( menggambarkan simpangan baku populasi)

  4. \(n\) : ukuran sampel

  5. \(r\) : koefisien korelasi sampel

2.3 Penggunaan Populasi dan Sampel

Dalam analisis statistik, kita sering kali ingin mengetahui informasi tentang populasi secara keseluruhan. Misalnya, kita ingin mengetahui pendapatan rata-rata warga negara Indonesia atau panjang rata-rata celana yang diproduksi. Namun, jika populasinya sangat besar, akan sulit atau bahkan tidak mungkin untuk mengumpulkan data dari anggota seluruh populasi.

2.4 Perbedaan Utama Populasi dan Sampel

Saat melakukan penelitian atau analisis statistik, penting untuk membedakan antara populasi dan sampel. Populasi mengacu pada seluruh kelompok yang menjadi perhatian dalam sebuah penelitian, sedangkan sampel adalah bagian yang lebih kecil yang dipilih dari populasi tersebut untuk dianalisis. Memahami perbedaannya sangat penting untuk membuat kesimpulan yang akurat dan memastikan validitas kesimpulan.

Berikut adalah perbedaan utama dari populasi dan sampel :

FITUR POPULASI (N) SAMPEL (n)
Definisi Seluruh kelompok yang diminati Subset yang dipilih untuk dipelajari
Ukuran Besar atau Tidak terbatas Kecil dan mudah dianalisis
Notasi Menggunakan huruf kapital (misalnya N, \(\mu\), \(\sigma\)) Menggunakan huruf kecil (misalnya,\(n\),\(\bar{x}\),\(s\))
Parameter Nilai sebenarnya ( misalnya, Rata-rata populasi \(\mu\), Standart Deviasi \(\sigma\) ) Perkiraan (misalnya, Rata-rata mean \(\bar{x}\), Standart Deviasi \(s\) )
BIaya dan Waktu Tinggi Rendah
Keakuratan Memberikan Informasi yang Akurat Memberikan perkiraan dengan beberapa kesalahan margin

3. Mengapa Menggunakan Sampel?

Dalam penelitian dan pengumpulan data, mempelajari keseluruhan populasi sering kali tidak praktis atau mustahil. Sebaliknya, peneliti menggunakan sampel, yang merupakan bagian populasi yang lebih kecil dan mudah dikelola.

Berikut ini adalah alasan utama penggunaan sampel:

  • Efektivitas Biaya : Pengumpulan data dari keseluruhan populasi membutuhkan sumber daya keuangan yang signifikan. Sampel mengurangi biaya yang terkait dengan pengumpulan, pemrosesan, dan analisis data.

  • Efisiensi Waktu : Mempelajari keseluruhan populasi memakan waktu. Sampel yang dipilih dengan baik memungkinkan pengumpulan dan analisis data yang lebih cepat.

  • Kemungkinan : Beberapa populasi terlalu besar atau tidak dapat diakses untuk diteliti secara menyeluruh. Sampel memungkinkan penelitian dilakukan ketika pengumpulan data pada seluruh populasi tidak praktis.

  • Akurasi dan Keandalan : Bila dipilih dengan tepat, sampel dapat memberikan wawasan yang sangat akurat dan dapat diandalkan. Teknik statistik memastikan bahwa sampel tersebut mewakili seluruh populasi secara efektif.

  • Mengurangi Kompleksitas Manajemen Data : Menangani data dalam jumlah besar bisa jadi sulit. Sampel menyederhanakan pengelolaan data sekaligus memberikan kesimpulan yang bermakna.

  • Pertimbangan Etis : Beberapa penelitian (misalnya, uji coba medis) mungkin mengandung risiko, sehingga tidak etis untuk mengujinya pada seluruh populasi. Sampel memungkinkan eksperimen yang terkontrol dan etis.

Kesimpulan

Penggunaan sampel dalam penelitian dan pengumpulan data merupakan solusi yang efisien dan praktis dibandingkan dengan mempelajari seluruh populasi. Sampel dipilih karena lebih hemat biaya, menghemat waktu, memungkinkan penelitian terhadap populasi yang sulit dijangkau, serta dapat memberikan hasil yang akurat dan dapat diandalkan jika dipilih dengan tepat. Selain itu, sampel juga membantu dalam mengelola data dengan lebih sederhana dan mempertimbangkan aspek etika dalam penelitian.

4. Menghindari Bias Sampel

Bias pada pengambilan sampel terjadi ketika anggota populasi tertentu secra sistematis dikecualikan atau diwakili secara berlebihan dalam sampel.

Pada Penjelaskan dalam video berjudul “How to avoid bias in scientific tests”, yang membahas mengenai Menghindari Bias dalam Investigasi. Berikut penjelasan lengkapnya :

4.1 Pentingnya Mengeliminasi Bias dalam Investigasi

Untuk memastikan hasil penyelidikan seakurat mungkin, kita harus selalu waspada terhadap bias dan berupaya menghilangkannya. Analogi sederhananya, termometer yang akurat akan memberikan hasil yang salah jika diletakkan di bawah sinar matahari langsung atau dipegang di tangan.

4.2 Jenis-Jenis Bias dalam Investigasi

  1. Bias respon : Jawaban tidak akurat atau terdistorsi.
  2. Bias prosedur : Kesalahan dalam prosedur investigasi yang mempengaruhi hasil.
  3. Bias Budaya: Interpretasi hasil dipengaruhi oleh asumsi budaya peneliti.
  4. Bias Desain: Kesalahan dalam desain penelitian yang mengarah pada hasil bias.
  5. Bias Konfirmasi: Mencari atau menafsirkan informasi yang mengonfirmasi keyakinan awal .
  6. Halo Effect: Kesan umum mempengaruhi penilaian terhadap aspek lain.
  7. Bias Publikasi: Hasil penelitian tertentu mungkin lebih dipublikasikan daripada yang lain.
  8. Bias seleksi : Dimana bias ini muncul Ketika sampel tidak mewakili populasi target.

Jenis bias diatas dapat muncul pada setiap tahap investigasi dari merancang metode yang benar, mengumpulkan data yang benar, menafsirkan/mengidentifikasi data yang baik, dan menarik kesimpulan yang benar. Sehinggamereka dapat diproduksi dengan mengukir intstrument metode pengambilan sampel atau keinginan bahwa sadar untuk dibuktikan benar.

4.3 Penyebab Bias dalam Pengambilan Sampel

ASPEK KETERANGAN CARA MENGATASI
Cakupan yang menyamar Beberapa kelompok dalam populasi tidak dimasukkan dalamkerangka sampel. Gunakan kerangka sampel yang representatif untuk memastikan semua kelompok tercakup
Representasi yang berlebihan Kelompok tertentu memiliki peluang yang jauh lebih tinggi untuk dipilih. Gunakan pengambilan sampel berstrata untuk menjaga proporsi yang seimbang.
Bias seleksi diri Peserta secara sukarela memilih untuk mengambil bagian, sehingga menghasilkan sampel non-acak. Gunakan undangan acak dan pertimbangkan insentif untuk menarik kelompok responden yang lebih beragam.

Kesimpulan

Meminimalkan bias saat pengambilan sampel sangat penting untuk menghasilka temuan peneitian yang valid , andal dan dapat digeneralisasi. Dengan memastikan kerangka pengambilan sampel yang dibangun dengan baik, menerapkan metode pemilihan secara acak, dan mengurangi efek pemilihan sendiri, sehingga dapat meningkatkan kualitas dan keakurasi penelitian.

5. Pengacakan dalam Pengambilan Sampel

Pengacakan adalah proses yang memastikan setiap anggota populasi memiliki peluang yang sama untuk dipilih. Hal ini mengurangi bias pengambilan sampel dan meningkatkan generalisasi temuan penelitian. Sampling dan randomisasi adalah dua konsep penting dalam ilmu data. Sampling adalah proses pemilihan subset populasi untuk dipelajari, sedangkan randomisasi adalah proses menetapkan peserta ke kelompok yang berbeda dalam sebuah studi.

Pada Penjelaskan dalam video berjudul Introduction to Sampling and Randomization, Berikut penjelasan lengkapnya :

5.1 Pengambilan Sampel Acak Sederhana

Suatu metode di mana setiap elemen dalam populasi memiliki probabilitas pemilihan yang sama, sehingga menghasilkan sampel yang benar-benar acak.

  • Cara kerja :
  1. Tetapkan nomor unik untuk setiap anggota populasi.
  2. Gunakan generator angka acak atau sistem lotere untuk memilih peserta.
  • Contoh : Sebuah perusahaan ingin mensurvei 500 karyawan dari total 5.000 karyawan. Setiap karyawan diberi nomor, dan 500 dipilih secara acak menggunakan sistem undian.

5.2 Pengambilan Sampel Sistematis

Suatu metode dimana elemen-elemen dipilih pada interval tertentu dari daftar berurutan.

  • Cara kerja :
  1. Tentukan ukuran sampel ( memilih 100 orang dari daftar 1.000 ).
  2. Hitung interval pengambilan sampel : Ukuran populasi \(\div\) Ukuran sampel (misalnya, 1.000 \(\div\) 100 = 10)
  • Contoh : Seorang peneliti ingin mensurvei setiap pelanggan Sth dari daftar 1.000 pembeli. Jika titik awalnya adalah 3, individu yang dipilih akan berada di urutan ke-3, ke-8, ke-13, dst.

5.3 Pengambilan Sampel Berstrata

Suatu metode yang membagi populasi ke dalam subkelompok (strata) berdasarkan karakteristik yang sama, kemudian secara acak memilih sejumlah partisipan yang proporsional dari setiap strata.

  • Cara kerja :
  1. Identifikasi strata yang relevan (misalnya, kelompok usia, tingkat pendapatan, pendidikan).
  2. Tentukan proporsi setiap strata dalam populasi.
  3. Melakukan pengambilan sampel secara acak dalam setiap strata.
  • Contoh : Sebuah universitas ingin mensurvei mahasiswa dari berbagai tahun akademik. Jika 40% mahasiswa adalah mahasiswa baru, 30% adalah mahasiswa tingkat dua, 20% adalah mahasiswa tingkat tiga, dan 10% adalah mahasiswa tingkat empat, maka sampel akan mencerminkan proporsi ini.

5.4 Manfaat dari Pengacakan dalam Pengambilan Sampel

  • Memungkinkan untuk mempelajari populasi yang besar tanpa harus mengumpulkan data dari setiap individu.
  • Membantu mengurangi bias dalam penelitian.
  • Memungkinkan untuk menguji hipotesis dan menarik kesimpulan yang valid.

5.5 Tantangan

Dalam pengacakan pasti memiliki sebuah tantangan yakni mengalami kesulitan untuk mendapatkan sampel yang representatif dari populasi. Selain itu juga, Randomisasi/ Pengacakan ini dapat sulit dilakukan dalam beberapa situasi. Meskipun itu pengacakan ini adalah alat yang berharga untuk ilmu data, karena dapat digunakan untuk mengumpulkan data yang akirat dan andal serta untuk menarik kesimpulan yang valid tentang sebuah populasi

Kesimpulan

Penggunaan metode pengambilan sampel acak seperti SRS, pengambilan sampel sistematis, dan pengambilan sampel berstrata membantu memastikan sampel yang adil, tidak bias, dan representatif. Hal ini meningkatkan keandalan dan validitas temuan penelitian, sehingga lebih dapat digeneralisasikan ke seluruh populasi.

6. Tantangan dalam Pengambilan Sampel

Pengambilan sampel merupakan proses penting dalam penelitian, tetapi proses ini memiliki beberapa tantangan yang dapat memengaruhi akurasi dan keandalan. Berikut ini adalah tantangan utama pengambilan sampel beserta penyebabnya dan kemungkinan solusinya.

  1. Bias Non-Respon
  • Penyebab: Peserta tidak mau atau tidak mampu menjawab, survei terlalu panjang, atau kelompok tertentu cenderung tidak berpartisipasi.

  • Solusi: Mengirimkan pengingat, memberikan insentif, serta menyederhanakan format survei agar lebih mudah diakses.

  1. Kesalahan Bias Pengambilan Sampel
  • Penyebab: Kerangka sampel tidak lengkap, klasifikasi salah, atau peserta duplikat/tidak memenuhi syarat.

  • Solusi: Memperbarui kerangka sampel, memeriksa kembali sumber data, dan menggunakan metode pengambilan sampel berstrata.

  1. Ukuran Sampel Tidak Memadai
  • Penyebab: Keterbatasan sumber daya, kesalahan dalam perhitungan ukuran sampel, serta tingkat putus sekolah tinggi dalam studi longitudinal.

  • Solusi: Menggunakan metode statistik untuk menentukan ukuran sampel yang tepat serta mempertimbangkan kemungkinan dropout.

  1. Kendala Biaya dan Waktu
  • Penyebab: Biaya tinggi, keterlambatan dalam menjangkau partisipan, serta kebutuhan peralatan/personel khusus.

  • Solusi: Menggunakan survei online, mengotomatisasi pengumpulan data, serta mengoptimalkan sumber daya yang tersedia.

Kesimpulan

Dengan mengatasi tantangan ini, proses pengambilan sampel menjadi lebih andal, efisien, dan representatif. Penerapan solusi yang tepat membantu peneliti meminimalkan kesalahan serta meningkatkan kualitas penelitian secara keseluruhan.

7. Pengaplikasian Dalam Industri

Pengambilan sampel memainkan peran penting di berbagai industri, yang memungkinkan organisasi mengumpulkan wawasan, membuat keputusan yang tepat, dan mengoptimalkan proses. Berikut ini adalah area utama di mana pengambilan sampel digunakan secara luas:

INDUSTRI APLIKASI TUJUAN
Riset Pasar Melakukan survei dan kelompok fokus. Memahami pelanggan, pereferensi, perilaku, dan tren
Pelayanan Kesehatan Mempelajari data pasien dan uji klinis Memperkirakan prevalensi penyakit, efektivitas pengobatan, dan tren kesehatan masyarakat.
Kontrol Kualitas Memeriksa sebagian produk dalam proses produksi. Memastikan kualitas produk dan kepatuhan terhadap standar industri.
Keuangan Menganalisis transaksi keuangan dan tren pasar. Menilai risiko, mendeteksi penipuan, dan membuat keputusan investasi.

Kesimpulan

Pengambilan sampel memainkan peran penting di berbagai industri, yang dapat memungkinkan organisasi mengumpulkan wawasan, membuat keputusan yang tepat, dan mengoptimalkan proses. Teknik ini digunakan dalam riset pasar untuk memahami pelanggan dan tren, di pelayanan kesehatan untuk menganalisis data pasien dan efektivitas pengobatan, dalam kontrol kualitas untuk memastikan standar produk, serta di sektor keuangan untuk menilai resiko dan mendeteksi penipuan.

Dengan menerapkan teknik pengambilan sampel yang tepat, industri dapat memperoleh wawasan yang akurat dan andal sekaligus meminimalkan kesalahan dan bias. Hal ini memastikan pengambilan keputusan yang lebih baik, penghematan biaya, serta peningkatan efisiensi operasional, yang pada akhirnya mendukung keberlanjutan dan daya saing bisnis di berbagai sektor.

LS0tDQp0aXRsZTogIlRla25payBTYW1wbGluZyBkYW4gU3VydmV5Ig0KYXV0aG9yOiAiV2hpcmR5YW5hIFNoYWxmYSBBeXViaSINCmRhdGU6ICAiYHIgZm9ybWF0KFN5cy5EYXRlKCksICclQiAlZCwgJVknKWAiDQpvdXRwdXQ6IA0KICBybWRmb3JtYXRzOjpyZWFkdGhlZG93bjogICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9qdWJhL3JtZGZvcm1hdHMNCiAgICBzZWxmX2NvbnRhaW5lZDogdHJ1ZQ0KICAgIHRodW1ibmFpbHM6IHRydWUNCiAgICBsaWdodGJveDogdHJ1ZQ0KICAgIGdhbGxlcnk6IHRydWUNCiAgICBsaWJfZGlyOiBsaWJzDQogICAgZGZfcHJpbnQ6ICJwYWdlZCINCiAgICBjb2RlX2ZvbGRpbmc6ICJzaG93Ig0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIGNzczogIkM6L1VzZXJzL1NBTEZBL09uZURyaXZlL0RvY3VtZW50cy9wcmFrdGlrdW0vc3R5bGUuY3NzIg0KLS0tDQoNCjxpbWcgaWQ9ImZvdG8tc2hhbGZhIiBzcmM9IkM6L1VzZXJzL1NBTEZBL09uZURyaXZlL0RvY3VtZW50cy9mb3RvIHNoYWxmYS5qcGciIGFsdD0iTG9nbyIgc3R5bGU9IndpZHRoOjIwMHB4OyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiBhdXRvOyI+DQoNCi0tLS0NCg0KIyBQcmluc2lwIFBlbmdhbWJpbGFuIFNhbXBlbA0KDQojIyAxLiBBcGEgaXR1IHBlbmdhbWJpbGFuIFNhbXBlbD8NCg0KUGVuZ2FtYmlsYW4gc2FtcGVsIGFkYWxhaCBwcm9zZXMgcGVtaWxpaGFuIHNlYmFnaWFuIGluZGl2aWR1LCBpdGVtLCBhdGF1IHBlbmdhbWF0YW4gZGFyaSBzZWJ1YWggcG9wdWxhc2kgeWFuZyBsZWJpaCBiZXNhciB1bnR1ayBtZW1wZXJraXJha2FuIGthcmFrdGVyaXN0aWsgZGFyaSBrZXNlbHVydWhhbiBwb3B1bGFzaS4gUGVuZ2FtYmlsYW4gc2FtcGVsIHNlcmluZyBkaWd1bmFrYW4gZGFsYW0gc2VidWFoIHBlbmVsaXRpYW4sIGJpc25pcywgZGFuIGtlYmlqYWthbiBwdWJsaWsgdW50dWsgbWVtYnVhdCBzZWJ1YWgga2VwdXR1c2FuIHlhbmcgYmVyZGFzYXJrYW4gZGF0YSBzZWNhcmEgZWZpc2llbi4NCg0KRGFsYW0gdmlkaW8gYmVyanVkdWwgKioiS29uc2VwIERhc2FyIFNhbXBsaW5nIiBkYXJpIFlvdVR1YmUgU3RhdG1hdC5pZCoqLCBkaWplbGFza2FuIGp1Z2EgYmFod2Egc2FtcGxpbmcgYWRhbGFoIHRla25payBwZW5nYW1iaWxhbiBzZWJhZ2lhbiBrZWNpbCBkYXRhIChzYW1wZWwpIHlhbmcgZGloYXJhcGthbiBkYXBhdCBtZXdha2lsaSBrYXJha3RlcmlzdGlrIGtlc2VsdXJ1aGFuIGRhdGEgKHBvcHVsYXNpKS4gU2FtcGVsIHlhbmcgcmVwcmVzZW50YXRpZiBhZGFsYWgga3VuY2ksIGthcmVuYSBiZXJ0dWp1YW4gdW50dWsgbWVuY2VybWlua2FuIHBvcHVsYXNpIHNlY2FyYSBha3VyYXQuIERlbmdhbiB1a3VyYW4gc2FtcGVsIHlhbmcgbWVtYWRhaSBwZW50aW5nIHVudHVrIG1lbWFzdGlrYW4gcmVwcmVzZW50YXNpIHlhbmcgYmFpay4gQmVyaWt1dCBwZW5qZWxhc2FuIGxlbmdrYXBueWEgOg0KDQojIyMgMS4xIFBlbmdlcnRpYW4gU2FtcGVsIExlYmloIEx1YXMNCg0KRGFsYW0gc3RhdGlzdGlrYSwgc2FtcGVsIHRpZGFrIHRlcmJhdGFzIHBhZGEgb3Jhbmcgc2FqYS4gU2FtcGVsIGp1Z2EgZGFwYXQgYmVydXBhIGFwYSBzYWphIHlhbmcgaW5naW4gZGl0ZWxpdGkgbGViaWggbGFuanV0LCBzZXBlcnRpIGtvbmRpc2kgc3VhdHUgbmVnYXJhLCBqZW5pcyBtYXNhbGFoIGRpIHBlcnVzYWhhYW4sIGF0YXUgYmFoa2FuIHNwZXNpZXMgYnVydW5nIHRlcnRlbnR1LiBUdWp1YW4gc2FtcGxpbmcgYWRhbGFoIHVudHVrIG1lbXBlbGFqYXJpIGtvbnNlcCBkYXNhciBkYWxhbSBzdGF0aXN0aWthIGRlbmdhbiBsZWJpaCBtZW5kYWxhbS4NCg0KIyMjIDEuMiBMYW5na2FoIFBlbmdhbWJpbGFuIFNhbXBlbA0KDQpTYWxhaCBzYXR1IGxhbmdrYWggZGFsYW0gcGVuZ2FtYmlsYW4gc2FtcGVsIGFkYWxhaCBtZW1hc3Rpa2FuIHNhbXBlbCB5YW5nIGRpIGFtYmlsIHlha25pIHNlY2FyYSBhY2FrIHVudHVrIG1lbmdoaW5kYXJpIGJpYXMuIEppa2EgbWFzaWggdGlkYWsgbWVtdW5na2lua2FuLCBtYWthIGRhcGF0IG1lbmdndW5ha2FuIG1lbmdvbmZpcm1hc2kgcGVuZWxpdGlhbiB5YWtuaSBtZW5nZ3VuYWthbiBwZW1iYWdpYW4gcG9wdWxhc2kga2UgZGFsYW0gYmViZXJhcGEga2Vsb21wb2sgc2FtcGVsICggdXNpYSwgamVuaXMga2VsYW1pbikgeWFuZyBiZXJ0dWp1YW4gdW50dWsgbWVtYXN0aWthbiBrZXRlcndha2lsYW4uDQoNCiMjIyAxLjMgQ29udG9oIElsdXN0cmFzaQ0KDQpEaXNpbmkgc2F5YSBtZW1idWF0IHNlYnVhaCBjb250b2ggeWFuZyBiZXJiZWRhIGRlbmdhbiB2aWRpbyBha2FuIHRldGFwaSBtYXNpaCBtZW1pbGlraSBrZXNhbWFhbiB5YWtuaSA6DQoNClNlYnVhaCBwdXNrZXNtYXMga290YSBtZW5nYWRha2FuIHBlbnl1bHVoYW4gZGkgZGVzYSBkYW4gbWVuYXdhcmthbiAxMDAwIGRvc2lzIHZha3NpbiBrZXBhZGEgbWFzeWFyYWthdC4gSmlrYSBoYW55YSAxMCBvcmFuZyB5YW5nIGRpamFkaWthbiBzYW1wZWwgZGF0YSwgaGFzaWwgcGVuZWxpdGlhbiBiZXJwb3RlbnNpIHRpZGFrIGFrdXJhdC4gQWthbiBsZWJpaCBiYWlrIGppa2Egc2FtcGVsIHRlcmRpcmkgZGFyaSAxMDAgb3JhbmcgKCRcZnJhY3sxfXsxMH0kIGRhcmkgdG90YWwgcG9wdWxhc2kgeWFuZyBtZW5lcmltYSB0YXdhcmFuIHZha3NpbikuIERlbmdhbiBkZW1pa2lhbiwgc2FtcGVsIGFrYW4gbGViaWggcmVwcmVzZW50YXRpZiBhdGF1IG1ld2FraWxpIHRlcmhhZGFwIGtlc2VsdXJ1aGFuIGRhdGEuDQoNCg0KDQojIyMgS2VzaW1wdWxhbg0KDQpEYXJpIHBlbmplbGFzYW4geWFuZyBhZGEgcGFkYSB2aWRlbyBtZW5la2Fua2FuIGJhaHdhIHNhbXBsaW5nIGRhcGF0IG1lbXVuZ2tpbmthbiBraXRhIHVudHVrIG1lbmFyaWsga2VzaW1wdWxhbiB0ZW50YW5nIHBvcHVsYXNpIHlhbmcgbGViaWggYmVzYXIgdGFucGEgaGFydXMgbWVuZWxpdGkgc2V0aWFwIGluZGl2aWR1IGRpIGRhbGFtbnlhLiBJbmkgc2FuZ2F0IGJlcmd1bmEga2V0aWthIHBvcHVsYXNpIHNhbmdhdCBiZXNhciBhdGF1IHBlbmVsaXRpYW4gdGVyaGFkYXAgc2VsdXJ1aCBwb3B1bGFzaSB0aWRhayBwcmFrdGlzIGF0YXUgdGlkYWsgbXVuZ2tpbiBkaWxha3VrYW4uIEt1YWxpdGFzIHNhbXBlbCBzYW5nYXQgbWVuZW50dWthbiBrdWFsaXRhcyBrZXNpbXB1bGFuIHlhbmcgZGFwYXQgZGl0YXJpay4gT2xlaCBrYXJlbmEgaXR1LCB0ZWtuaWsgc2FtcGxpbmcgeWFuZyB0ZXBhdCBkYW4gdWt1cmFuIHNhbXBlbCB5YW5nIG1lbWFkYWkgaXR1IHNhbmdhdCBwZW50aW5nLg0KDQoNCiMjIDIuIFBvcHVsYXNpIGRhbiBTYW1wZWwNCg0KRGFsYW0gc3RhdGlzdGlrLCBtZW1haGFtaSBwZXJiZWRhYW4gYW50YXJhIHBvcHVsYXNpIGRhbiBzYW1wZWwgc2FuZ2F0IHBlbnRpbmcgdW50dWsgbWVuZ2FuYWxpc2lzIGRhdGEsIHJlZmVyZW5zaSwgZGFuIHBlbmdhbWJpbGFuIHNlYnVhaCBrZXB1dHVzYW4uIA0KDQpTZXBlcnRpIHlhbmcgZGlqZWxhc2thbiBkYWxhbSB2aWRlbyBiZXJqdWR1bCAqKiJQb3B1bGF0aW9ucyB2cyBTYW1wbGVzIiBkYXJpIFRoZSBBQ0UgVHV0b3JzKiosIHlha25pIHBlbWFoYW1hbiB0ZW50YW5nIHBvcHVsYXNpIGRhbiBzYW1wZWwgc2FuZ2F0IHBlbnRpbmcgZGFsYW0gc3RhdGlzdGlrYS4gQmVyaWt1dCBwZW5qZWxhc2FuIGxlbmdrYXBueWEgOg0KDQojIyMgMi4xIEFwYSBpdHUgUG9wdWxhc2k/DQoNClBvcHVsYXNpIGFkYWxhaCBrZXNlbHVydWhhbiBpbmRpdmlkdSwgb2JqZWssIGF0YXUgdGl0aWsgZGF0YSB5YW5nIG1lbmphZGkgYW5nZ290YSBzdWF0dSBrZWxvbXBvayB0ZXJ0ZW50dS4gUG9wdWxhc2kgbWVuY2FrdXAgc2VtdWEga2VtdW5na2luYW4gcGVuZ2FtYXRhbiB5YW5nIHJlbGV2YW4gZGVuZ2FuIHBlbmVsaXRpYW4uIA0KDQpDb250b2hueWEgOg0KDQotIFBvcHVsYXNpbnlhIGJpc2EgYmVydXBhIHNlbHVydWggd2FyZ2EgbmVnYXJhIEluZG9uZXNpYSBzYWF0IG1lbXBlbGFqYXJpIHBlcmlsYWt1IHBlbWlsaWguDQotIFNlbHVydWggY2VsYW5hIHlhbmcgZGlwcm9kdWtzaSBvbGVoIHNlYnVhaCBwZXJ1c2FoYWFuLg0KLSBTZXRpYXAgaGFuZHBob25lIHlhbmcgZGkgcHJvZHVrc2kgZGFyaSBwYWJyaWsgc2FhdCBtZW5nYW5hbGlzaXMgdGluZ2thdCBrZXJ1c2FrYW4uDQotIFNldGlhcCBtYWhhc2lzd2EgZGkgc3VhdHUgdW5pdmVyc2l0YXMgc2FhdCBtZW5ndWt1ciBuaWxhaSByYXRhLXJhdGEgdWppYW4uDQoNClBhZGEgaW50aW55YSwgcG9wdWxhc2kgaXR1IG1lbmNha3VwIHNldGlhcCBlbGVtZW4geWFuZyB0ZXJtYXN1ayBkYWxhbSBrZWxvbXBvayB5YW5nIHNlZGFuZyBkaXRlbGl0aS4NCg0KIyMjIyAyLjEuMSBKZW5pcyBQb3B1bGFzaSANCg0KMS4gUG9wdWxhc2kgVGVyYmF0YXM6IFBvcHVsYXNpIGRlbmdhbiBqdW1sYWggZWxlbWVuIHlhbmcgdGV0YXAgKG1pc2FsbnlhIGthcnlhd2FuIGRpIHN1YXR1IHBlcnVzYWhhYW4pLg0KMi4gUG9wdWxhc2kgVGFrIFRlcmJhdGFzOiBQb3B1bGFzaSBkZW5nYW4ganVtbGFoIGVsZW1lbiB5YW5nIHRpZGFrIGRhcGF0IGRpaGl0dW5nIChtaXNhbG55YSwgYmFrdGVyaSBkYWxhbSBjYXdhbiBwZXRyaSkuDQozLiBQb3B1bGFzaSBUYXJnZXQ6IFBvcHVsYXNpIHNwZXNpZmlrIHlhbmcgaW5naW4gZGlwZWxhamFyaSBvbGVoIHBlbmVsaXRpLg0KNC4gUG9wdWxhc2kgeWFuZyBEYXBhdCBEaWFrc2VzOiBCYWdpYW4gZGFyaSBwb3B1bGFzaSBzYXNhcmFuIHlhbmcgdGVyc2VkaWEgdW50dWsgcGVuZWxpdGlhbi4NCg0KIyMjIyAyLjEuMiBTaW1ib2wtU2ltYm9sIGRhbGFtIFBvcHVsYXNpDQoNCkRhbGFtIHN0YXRpc3RpaywgcG9wdWxhc2kgbWVtaWxpa2kgc2ltYm9sLXNpbWJvbCBraHVzdXMgeWFuZyBkaXNlYnV0IHBhcmFtZXRlcjoNCg0KMS4gJFxtdSQgOiBSYXRhLXJhdGEgcG9wdWxhc2kNCjIuICRwJCA6IFByb3BvcnNpIHBvcHVsYXNpDQozLiAkXHNpZ21hJCA6IFNpbXBhbmdhbiBiYWt1IHBvcHVsYXNpDQo0LiAkTiQgOiBVa3VyYW4gcG9wdWxhc2kgKGp1bWxhaCBhbmdnb3RhIHBvcHVsYXNpKQ0KNS4gJFxyaG8kIDogS29lZmlzaWVuIGtvcmVsYXNpIHBvcHVsYXNpDQoNCiMjIyAyLjIgQXBhIGl0dSBTYW1wZWw/DQoNClNhbXBlbCBhZGFsYWggc2ViYWdpYW4ga2VjaWwgYXRhdSBzdWJzZXQgZGFyaSBwb3B1bGFzaSB5YW5nIGxlYmloIGJlc2FyIHVudHVrIGFuYWxpc2lzLiBLYXJlbmEgbWVtcGVsYWphcnUga2VzZWx1cnVoYW4gcG9wdWxhc2kgc2VyaW5nIG1lbmdhbGFtaSBrZXRpZGFrIHByYWt0aXNhbiBrYXJlbmEgZmFrdG9yIGJpYXlhLCB3YWt0dSwgYXRhdSBha3NlYmlsaXRhcyBtYWthIHNhbXBlbCBpbmkgZGlndW5ha2FuIHVudHVrIG1lbWJ1YXQga2VzaW1wdWxhbiB0ZW50YW5nIHNlYnVhaCBwb3B1bGFzaS4NCg0KQ29udG9obnlhIDoNCg0KLSBEYXJpIHNlbHVydWggd2FyZ2EgbmVnYXJhIEluZG9uZXNpYSwga2l0YSBiaXNhIG1lbmdhbWJpbCBzYW1wZWwgMS4wMDAgb3JhbmcgZGFyaSB3aWxheWFoIEpha2FydGEsIGF0YXUgMTAwIG9yYW5nIGRhcmkgc2V0aWFwIHByb3ZpbnNpLg0KLSBTdXJ2ZWkgdGVyaGFkYXAgMS4wMDAgcGVuZHVkdWsga290YSB1bnR1ayBtZW1wZXJraXJha2FuIG9waW5pIHB1Ymxpay4NCi0gTWVtZXJpa3NhIDUwMCB0ZWxlcG9uIHBpbnRhciB5YW5nIGRpcGlsaWggc2VjYXJhIGFjYWsgdW50dWsgbWVuaWxhaSB0aW5na2F0IGtlcnVzYWthbg0KLSBNZW5nYW5hbGlzaXMgbmlsYWkgdWppYW4gZGFyaSAyMDAgc2lzd2EgeWFuZyBkaXBpbGloIHNlY2FyYSBhY2FrLg0KLSBTZWJ1YWggcGVydXNhaGFhbiBwYWthaWFuLCBkaW1hbmEgYmlzYSBiZXJ1cGEgc2V0aWFwIGNlbGFuYSB5YW5nIGRpcHJvZHVrc2kgcGFkYSBoYXJpIFNlbmluLCBhdGF1IHNldGlhcCBjZWxhbmEga2VlbXBhdCB5YW5nIGRpcHJvZHVrc2kgc2VsYW1hIHNlbWluZ2d1Lg0KDQojIyMjIDIuMi4xIENpcmktQ2lyaSBTYW1wZWwgeWFuZyBCYWlrIA0KDQoxLiBSZXByZXNlbnRhdGlmOiBTZWNhcmEgYWt1cmF0IG1lbmNlcm1pbmthbiBwb3B1bGFzaS4NCjIuIEFjYWs6IERpcGlsaWggdGFucGEgYmlhcy4NCjMuIEN1a3VwIEJlc2FyOiBNZW1hc3Rpa2FuIGVzdGltYXNpIHlhbmcgZGFwYXQgZGlhbmRhbGthbi4NCjQuIE1lbWluaW1hbGthbiBCaWFzOiBNZW5naGluZGFyaSBrZXNhbGFoYW4gc2lzdGVtYXRpcy4NCg0KDQojIyMjIDIuMi4yIFNpbWJvbCBQb3B1bGFzaSB5YW5nIFNldGFyYSBEZW5nYW4gU2FtcGVsDQoNCnNpbWJvbCBwYWRhIHNhbXBlbCBtZW1pbGlraSBrZW1pcmlwYW4gZGVuZ2FuIHNlbXVhIG5pbGFpIHVudHVrIHBvcHVsYXNpICggcGFyYW1ldGVyIHBvcHVsYXNpICkuIG5pbGFpIHVudHVrIHNlbXBlbCBkaXNlYnV0IHNhbXBlbCBzdGF0aXN0aWsgOiANCg0KMS4gJFxiYXJ7eH0kIDogcmF0YS1yYXRhIHNhbXBlbCAobWVtcGVya2lyYWthbiByYXRhLXJhdGEgcG9wdWxhc2kpDQoNCjIuICRcaGF0e3B9JCA6IHByb3BvcnNpIHNhbXBlbCAocGVya2lyYWFuIGRhcmkgcHJvcG9yc2kgcG9wdWxhc2kpDQoNCjMuICRzJCA6IHNpbXBhbmdhbiBzYW1wZWwgYmFrdSAoIG1lbmdnYW1iYXJrYW4gc2ltcGFuZ2FuIGJha3UgcG9wdWxhc2kpDQoNCjQuICRuJCA6IHVrdXJhbiBzYW1wZWwgDQoNCjUuICRyJCA6IGtvZWZpc2llbiBrb3JlbGFzaSBzYW1wZWwNCg0KDQojIyMgMi4zIFBlbmdndW5hYW4gUG9wdWxhc2kgZGFuIFNhbXBlbCANCg0KRGFsYW0gYW5hbGlzaXMgc3RhdGlzdGlrLCBraXRhIHNlcmluZyBrYWxpIGluZ2luIG1lbmdldGFodWkgaW5mb3JtYXNpIHRlbnRhbmcgcG9wdWxhc2kgc2VjYXJhIGtlc2VsdXJ1aGFuLiBNaXNhbG55YSwga2l0YSBpbmdpbiBtZW5nZXRhaHVpIHBlbmRhcGF0YW4gcmF0YS1yYXRhIHdhcmdhIG5lZ2FyYSBJbmRvbmVzaWEgYXRhdSBwYW5qYW5nIHJhdGEtcmF0YSBjZWxhbmEgeWFuZyBkaXByb2R1a3NpLiBOYW11biwgamlrYSBwb3B1bGFzaW55YSBzYW5nYXQgYmVzYXIsIGFrYW4gc3VsaXQgYXRhdSBiYWhrYW4gdGlkYWsgbXVuZ2tpbiB1bnR1ayBtZW5ndW1wdWxrYW4gZGF0YSBkYXJpIGFuZ2dvdGEgc2VsdXJ1aCBwb3B1bGFzaS4NCg0KIyMjIDIuNCBQZXJiZWRhYW4gVXRhbWEgUG9wdWxhc2kgZGFuIFNhbXBlbA0KDQpTYWF0IG1lbGFrdWthbiBwZW5lbGl0aWFuIGF0YXUgYW5hbGlzaXMgc3RhdGlzdGlrLCBwZW50aW5nIHVudHVrIG1lbWJlZGFrYW4gYW50YXJhIHBvcHVsYXNpIGRhbiBzYW1wZWwuIFBvcHVsYXNpIG1lbmdhY3UgcGFkYSBzZWx1cnVoIGtlbG9tcG9rIHlhbmcgbWVuamFkaSBwZXJoYXRpYW4gZGFsYW0gc2VidWFoIHBlbmVsaXRpYW4sIHNlZGFuZ2thbiBzYW1wZWwgYWRhbGFoIGJhZ2lhbiB5YW5nIGxlYmloIGtlY2lsIHlhbmcgZGlwaWxpaCBkYXJpIHBvcHVsYXNpIHRlcnNlYnV0IHVudHVrIGRpYW5hbGlzaXMuIE1lbWFoYW1pIHBlcmJlZGFhbm55YSBzYW5nYXQgcGVudGluZyB1bnR1ayBtZW1idWF0IGtlc2ltcHVsYW4geWFuZyBha3VyYXQgZGFuIG1lbWFzdGlrYW4gdmFsaWRpdGFzIGtlc2ltcHVsYW4uDQoNCkJlcmlrdXQgYWRhbGFoIHBlcmJlZGFhbiB1dGFtYSBkYXJpIHBvcHVsYXNpIGRhbiBzYW1wZWwgOg0KDQp8IEZJVFVSICAgICAgfCBQT1BVTEFTSSAoTil8IFNBTVBFTCAobil8IA0KfC0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLXwNCnwgRGVmaW5pc2kgICB8IFNlbHVydWgga2Vsb21wb2sgeWFuZyBkaW1pbmF0aXwgU3Vic2V0IHlhbmcgZGlwaWxpaCB1bnR1ayBkaXBlbGFqYXJpfCANCnwgVWt1cmFuICAgICB8IEJlc2FyIGF0YXUgVGlkYWsgdGVyYmF0YXMgfCBLZWNpbCBkYW4gbXVkYWggZGlhbmFsaXNpcyB8IA0KfCBOb3Rhc2kgICAgIHwgTWVuZ2d1bmFrYW4gaHVydWYga2FwaXRhbCAobWlzYWxueWEgTiwgJFxtdSQsICRcc2lnbWEkKSB8IE1lbmdndW5ha2FuIGh1cnVmIGtlY2lsIChtaXNhbG55YSwkbiQsJFxiYXJ7eH0kLCRzJCkgICAgIHwNCnwgUGFyYW1ldGVyICB8IE5pbGFpIHNlYmVuYXJueWEgKCBtaXNhbG55YSwgUmF0YS1yYXRhIHBvcHVsYXNpICRcbXUkLCBTdGFuZGFydCBEZXZpYXNpICRcc2lnbWEkICkgICB8IFBlcmtpcmFhbiAobWlzYWxueWEsIFJhdGEtcmF0YSBtZWFuICRcYmFye3h9JCwgU3RhbmRhcnQgRGV2aWFzaSAkcyQgKSB8IA0KfCBCSWF5YSBkYW4gV2FrdHUgfCBUaW5nZ2kgfCAgIFJlbmRhaCAgIHwNCnwgS2Vha3VyYXRhbiAgICAgIHwgTWVtYmVyaWthbiBJbmZvcm1hc2kgeWFuZyBBa3VyYXQgICAgIHwgIE1lbWJlcmlrYW4gcGVya2lyYWFuIGRlbmdhbiBiZWJlcmFwYSBrZXNhbGFoYW4gbWFyZ2luICAgICAgIHwNCiANCiANCiMjIDMuIE1lbmdhcGEgTWVuZ2d1bmFrYW4gU2FtcGVsPw0KDQpEYWxhbSBwZW5lbGl0aWFuIGRhbiBwZW5ndW1wdWxhbiBkYXRhLCBtZW1wZWxhamFyaSBrZXNlbHVydWhhbiBwb3B1bGFzaSBzZXJpbmcga2FsaSB0aWRhayBwcmFrdGlzIGF0YXUgbXVzdGFoaWwuIFNlYmFsaWtueWEsIHBlbmVsaXRpIG1lbmdndW5ha2FuIHNhbXBlbCwgeWFuZyBtZXJ1cGFrYW4gYmFnaWFuIHBvcHVsYXNpIHlhbmcgbGViaWgga2VjaWwgZGFuIG11ZGFoIGRpa2Vsb2xhLg0KDQpCZXJpa3V0IGluaSBhZGFsYWggYWxhc2FuIHV0YW1hIHBlbmdndW5hYW4gc2FtcGVsOg0KIA0KLSBFZmVrdGl2aXRhcyBCaWF5YSA6IFBlbmd1bXB1bGFuIGRhdGEgZGFyaSBrZXNlbHVydWhhbiBwb3B1bGFzaSBtZW1idXR1aGthbiBzdW1iZXIgZGF5YSBrZXVhbmdhbiB5YW5nIHNpZ25pZmlrYW4uIFNhbXBlbCBtZW5ndXJhbmdpIGJpYXlhIHlhbmcgdGVya2FpdCBkZW5nYW4gcGVuZ3VtcHVsYW4sIHBlbXJvc2VzYW4sIGRhbiBhbmFsaXNpcyBkYXRhLg0KDQotIEVmaXNpZW5zaSBXYWt0dSA6IE1lbXBlbGFqYXJpIGtlc2VsdXJ1aGFuIHBvcHVsYXNpIG1lbWFrYW4gd2FrdHUuIFNhbXBlbCB5YW5nIGRpcGlsaWggZGVuZ2FuIGJhaWsgbWVtdW5na2lua2FuIHBlbmd1bXB1bGFuIGRhbiBhbmFsaXNpcyBkYXRhIHlhbmcgbGViaWggY2VwYXQuDQoNCi0gS2VtdW5na2luYW4gOiBCZWJlcmFwYSBwb3B1bGFzaSB0ZXJsYWx1IGJlc2FyIGF0YXUgdGlkYWsgZGFwYXQgZGlha3NlcyB1bnR1ayBkaXRlbGl0aSBzZWNhcmEgbWVueWVsdXJ1aC4gU2FtcGVsIG1lbXVuZ2tpbmthbiBwZW5lbGl0aWFuIGRpbGFrdWthbiBrZXRpa2EgcGVuZ3VtcHVsYW4gZGF0YSBwYWRhIHNlbHVydWggcG9wdWxhc2kgdGlkYWsgcHJha3Rpcy4NCg0KLSBBa3VyYXNpIGRhbiBLZWFuZGFsYW4gOiBCaWxhIGRpcGlsaWggZGVuZ2FuIHRlcGF0LCBzYW1wZWwgZGFwYXQgbWVtYmVyaWthbiB3YXdhc2FuIHlhbmcgc2FuZ2F0IGFrdXJhdCBkYW4gZGFwYXQgZGlhbmRhbGthbi4gVGVrbmlrIHN0YXRpc3RpayBtZW1hc3Rpa2FuIGJhaHdhIHNhbXBlbCB0ZXJzZWJ1dCBtZXdha2lsaSBzZWx1cnVoIHBvcHVsYXNpIHNlY2FyYSBlZmVrdGlmLg0KDQotIE1lbmd1cmFuZ2kgS29tcGxla3NpdGFzIE1hbmFqZW1lbiBEYXRhIDogTWVuYW5nYW5pIGRhdGEgZGFsYW0ganVtbGFoIGJlc2FyIGJpc2EgamFkaSBzdWxpdC4gU2FtcGVsIG1lbnllZGVyaGFuYWthbiBwZW5nZWxvbGFhbiBkYXRhIHNla2FsaWd1cyBtZW1iZXJpa2FuIGtlc2ltcHVsYW4geWFuZyBiZXJtYWtuYS4NCg0KLSBQZXJ0aW1iYW5nYW4gRXRpcyA6IEJlYmVyYXBhIHBlbmVsaXRpYW4gKG1pc2FsbnlhLCB1amkgY29iYSBtZWRpcykgbXVuZ2tpbiBtZW5nYW5kdW5nIHJpc2lrbywgc2VoaW5nZ2EgdGlkYWsgZXRpcyB1bnR1ayBtZW5ndWppbnlhIHBhZGEgc2VsdXJ1aCBwb3B1bGFzaS4gU2FtcGVsIG1lbXVuZ2tpbmthbiBla3NwZXJpbWVuIHlhbmcgdGVya29udHJvbCBkYW4gZXRpcy4gDQoNCiMjIyBLZXNpbXB1bGFuIA0KDQpQZW5nZ3VuYWFuIHNhbXBlbCBkYWxhbSBwZW5lbGl0aWFuIGRhbiBwZW5ndW1wdWxhbiBkYXRhIG1lcnVwYWthbiBzb2x1c2kgeWFuZyBlZmlzaWVuIGRhbiBwcmFrdGlzIGRpYmFuZGluZ2thbiBkZW5nYW4gbWVtcGVsYWphcmkgc2VsdXJ1aCBwb3B1bGFzaS4gU2FtcGVsIGRpcGlsaWgga2FyZW5hIGxlYmloIGhlbWF0IGJpYXlhLCBtZW5naGVtYXQgd2FrdHUsIG1lbXVuZ2tpbmthbiBwZW5lbGl0aWFuIHRlcmhhZGFwIHBvcHVsYXNpIHlhbmcgc3VsaXQgZGlqYW5na2F1LCBzZXJ0YSBkYXBhdCBtZW1iZXJpa2FuIGhhc2lsIHlhbmcgYWt1cmF0IGRhbiBkYXBhdCBkaWFuZGFsa2FuIGppa2EgZGlwaWxpaCBkZW5nYW4gdGVwYXQuIFNlbGFpbiBpdHUsIHNhbXBlbCBqdWdhIG1lbWJhbnR1IGRhbGFtIG1lbmdlbG9sYSBkYXRhIGRlbmdhbiBsZWJpaCBzZWRlcmhhbmEgZGFuIG1lbXBlcnRpbWJhbmdrYW4gYXNwZWsgZXRpa2EgZGFsYW0gcGVuZWxpdGlhbi4NCg0KDQojIyA0LiBNZW5naGluZGFyaSBCaWFzIFNhbXBlbA0KDQpCaWFzIHBhZGEgcGVuZ2FtYmlsYW4gc2FtcGVsIHRlcmphZGkga2V0aWthIGFuZ2dvdGEgcG9wdWxhc2kgdGVydGVudHUgc2VjcmEgc2lzdGVtYXRpcyBkaWtlY3VhbGlrYW4gYXRhdSBkaXdha2lsaSBzZWNhcmEgYmVybGViaWhhbiBkYWxhbSBzYW1wZWwuDQoNClBhZGEgUGVuamVsYXNrYW4gZGFsYW0gdmlkZW8gYmVyanVkdWwgKioiSG93IHRvIGF2b2lkIGJpYXMgaW4gc2NpZW50aWZpYyB0ZXN0cyIqKiwgeWFuZyBtZW1iYWhhcyBtZW5nZW5haSBNZW5naGluZGFyaSBCaWFzIGRhbGFtIEludmVzdGlnYXNpLiBCZXJpa3V0IHBlbmplbGFzYW4gbGVuZ2thcG55YSA6DQoNCiMjIyA0LjEgUGVudGluZ255YSBNZW5nZWxpbWluYXNpIEJpYXMgZGFsYW0gSW52ZXN0aWdhc2kNCg0KVW50dWsgbWVtYXN0aWthbiBoYXNpbCBwZW55ZWxpZGlrYW4gc2Vha3VyYXQgbXVuZ2tpbiwga2l0YSBoYXJ1cyBzZWxhbHUgd2FzcGFkYSB0ZXJoYWRhcCBiaWFzIGRhbiBiZXJ1cGF5YSBtZW5naGlsYW5na2FubnlhLiBBbmFsb2dpIHNlZGVyaGFuYW55YSwgdGVybW9tZXRlciB5YW5nIGFrdXJhdCBha2FuIG1lbWJlcmlrYW4gaGFzaWwgeWFuZyBzYWxhaCBqaWthIGRpbGV0YWtrYW4gZGkgYmF3YWggc2luYXIgbWF0YWhhcmkgbGFuZ3N1bmcgYXRhdSBkaXBlZ2FuZyBkaSB0YW5nYW4uIA0KDQojIyMgNC4yIEplbmlzLUplbmlzIEJpYXMgZGFsYW0gSW52ZXN0aWdhc2kgDQoNCjEuIEJpYXMgcmVzcG9uIDogSmF3YWJhbiB0aWRhayBha3VyYXQgYXRhdSB0ZXJkaXN0b3JzaS4NCjIuIEJpYXMgcHJvc2VkdXIgOiBLZXNhbGFoYW4gZGFsYW0gcHJvc2VkdXIgaW52ZXN0aWdhc2kgeWFuZyBtZW1wZW5nYXJ1aGkgaGFzaWwuDQozLiBCaWFzIEJ1ZGF5YTogSW50ZXJwcmV0YXNpIGhhc2lsIGRpcGVuZ2FydWhpIG9sZWggYXN1bXNpIGJ1ZGF5YSBwZW5lbGl0aS4NCjQuIEJpYXMgRGVzYWluOiBLZXNhbGFoYW4gZGFsYW0gZGVzYWluIHBlbmVsaXRpYW4geWFuZyBtZW5nYXJhaCBwYWRhIGhhc2lsIGJpYXMuDQo1LiBCaWFzIEtvbmZpcm1hc2k6IE1lbmNhcmkgYXRhdSBtZW5hZnNpcmthbiBpbmZvcm1hc2kgeWFuZyBtZW5nb25maXJtYXNpIGtleWFraW5hbiBhd2FsIC4NCjYuIEhhbG8gRWZmZWN0OiBLZXNhbiB1bXVtIG1lbXBlbmdhcnVoaSBwZW5pbGFpYW4gdGVyaGFkYXAgYXNwZWsgbGFpbi4NCjcuIEJpYXMgUHVibGlrYXNpOiBIYXNpbCBwZW5lbGl0aWFuIHRlcnRlbnR1IG11bmdraW4gbGViaWggZGlwdWJsaWthc2lrYW4gZGFyaXBhZGEgeWFuZyBsYWluLg0KOC4gQmlhcyBzZWxla3NpIDogRGltYW5hIGJpYXMgaW5pIG11bmN1bCBLZXRpa2Egc2FtcGVsIHRpZGFrIG1ld2FraWxpIHBvcHVsYXNpIHRhcmdldC4gDQoNCkplbmlzIGJpYXMgZGlhdGFzIGRhcGF0IG11bmN1bCBwYWRhIHNldGlhcCB0YWhhcCBpbnZlc3RpZ2FzaSBkYXJpIG1lcmFuY2FuZyBtZXRvZGUgeWFuZyBiZW5hciwgbWVuZ3VtcHVsa2FuIGRhdGEgeWFuZyBiZW5hciwgbWVuYWZzaXJrYW4vbWVuZ2lkZW50aWZpa2FzaSAgZGF0YSB5YW5nIGJhaWssIGRhbiBtZW5hcmlrIGtlc2ltcHVsYW4geWFuZyBiZW5hci4gU2VoaW5nZ2FtZXJla2EgZGFwYXQgZGlwcm9kdWtzaSBkZW5nYW4gbWVuZ3VraXIgaW50c3RydW1lbnQgbWV0b2RlIHBlbmdhbWJpbGFuIHNhbXBlbCBhdGF1IGtlaW5naW5hbiBiYWh3YSBzYWRhciB1bnR1ayBkaWJ1a3Rpa2FuIGJlbmFyLg0KDQojIyMgNC4zIFBlbnllYmFiIEJpYXMgZGFsYW0gUGVuZ2FtYmlsYW4gU2FtcGVsIA0KDQp8IEFTUEVLICAgfCBLRVRFUkFOR0FOICB8IENBUkEgTUVOR0FUQVNJfCANCnwtLS0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS18DQp8IENha3VwYW4geWFuZyBtZW55YW1hciB8IEJlYmVyYXBhIGtlbG9tcG9rIGRhbGFtIHBvcHVsYXNpIHRpZGFrIGRpbWFzdWtrYW4gZGFsYW1rZXJhbmdrYSBzYW1wZWwuICAgICAgIHwgIEd1bmFrYW4ga2VyYW5na2Egc2FtcGVsIHlhbmcgcmVwcmVzZW50YXRpZiB1bnR1ayBtZW1hc3Rpa2FuIHNlbXVhIGtlbG9tcG9rIHRlcmNha3VwICAgICB8IA0KfCBSZXByZXNlbnRhc2kgeWFuZyBiZXJsZWJpaGFuIHwgS2Vsb21wb2sgdGVydGVudHUgbWVtaWxpa2kgcGVsdWFuZyB5YW5nIGphdWggbGViaWggdGluZ2dpIHVudHVrIGRpcGlsaWguICAgICAgIHwgIEd1bmFrYW4gcGVuZ2FtYmlsYW4gc2FtcGVsIGJlcnN0cmF0YSB1bnR1ayBtZW5qYWdhIHByb3BvcnNpIHlhbmcgc2VpbWJhbmcuICAgICB8DQp8IEJpYXMgc2VsZWtzaSBkaXJpIHwgUGVzZXJ0YSBzZWNhcmEgc3VrYXJlbGEgbWVtaWxpaCB1bnR1ayBtZW5nYW1iaWwgYmFnaWFuLCBzZWhpbmdnYSBtZW5naGFzaWxrYW4gc2FtcGVsIG5vbi1hY2FrLiAgICAgICB8ICBHdW5ha2FuIHVuZGFuZ2FuIGFjYWsgZGFuIHBlcnRpbWJhbmdrYW4gaW5zZW50aWYgdW50dWsgbWVuYXJpayBrZWxvbXBvayByZXNwb25kZW4geWFuZyBsZWJpaCBiZXJhZ2FtLiAgICAgfCANCg0KDQojIyMgS2VzaW1wdWxhbg0KDQpNZW1pbmltYWxrYW4gYmlhcyBzYWF0IHBlbmdhbWJpbGFuIHNhbXBlbCBzYW5nYXQgcGVudGluZyB1bnR1ayBtZW5naGFzaWxrYSB0ZW11YW4gcGVuZWl0aWFuIHlhbmcgdmFsaWQgLCBhbmRhbCBkYW4gZGFwYXQgZGlnZW5lcmFsaXNhc2kuIERlbmdhbiBtZW1hc3Rpa2FuIGtlcmFuZ2thIHBlbmdhbWJpbGFuIHNhbXBlbCB5YW5nIGRpYmFuZ3VuIGRlbmdhbiBiYWlrLCBtZW5lcmFwa2FuIG1ldG9kZSBwZW1pbGloYW4gc2VjYXJhIGFjYWssIGRhbiBtZW5ndXJhbmdpIGVmZWsgcGVtaWxpaGFuIHNlbmRpcmksIHNlaGluZ2dhIGRhcGF0IG1lbmluZ2thdGthbiBrdWFsaXRhcyBkYW4ga2Vha3VyYXNpIHBlbmVsaXRpYW4uDQoNCiMjIDUuIFBlbmdhY2FrYW4gZGFsYW0gUGVuZ2FtYmlsYW4gU2FtcGVsIA0KDQpQZW5nYWNha2FuIGFkYWxhaCBwcm9zZXMgeWFuZyBtZW1hc3Rpa2FuIHNldGlhcCBhbmdnb3RhIHBvcHVsYXNpIG1lbWlsaWtpIHBlbHVhbmcgeWFuZyBzYW1hIHVudHVrIGRpcGlsaWguIEhhbCBpbmkgbWVuZ3VyYW5naSBiaWFzIHBlbmdhbWJpbGFuIHNhbXBlbCBkYW4gbWVuaW5na2F0a2FuIGdlbmVyYWxpc2FzaSB0ZW11YW4gcGVuZWxpdGlhbi4gU2FtcGxpbmcgZGFuIHJhbmRvbWlzYXNpIGFkYWxhaCBkdWEga29uc2VwIHBlbnRpbmcgZGFsYW0gaWxtdSBkYXRhLiBTYW1wbGluZyBhZGFsYWggcHJvc2VzIHBlbWlsaWhhbiBzdWJzZXQgcG9wdWxhc2kgdW50dWsgZGlwZWxhamFyaSwgc2VkYW5na2FuIHJhbmRvbWlzYXNpIGFkYWxhaCBwcm9zZXMgbWVuZXRhcGthbiBwZXNlcnRhIGtlIGtlbG9tcG9rIHlhbmcgYmVyYmVkYSBkYWxhbSBzZWJ1YWggc3R1ZGkuDQoNClBhZGEgUGVuamVsYXNrYW4gZGFsYW0gdmlkZW8gYmVyanVkdWwgKipJbnRyb2R1Y3Rpb24gdG8gU2FtcGxpbmcgYW5kIFJhbmRvbWl6YXRpb24qKiwgQmVyaWt1dCBwZW5qZWxhc2FuIGxlbmdrYXBueWEgOg0KDQojIyMgNS4xIFBlbmdhbWJpbGFuIFNhbXBlbCBBY2FrIFNlZGVyaGFuYQ0KDQpTdWF0dSBtZXRvZGUgZGkgbWFuYSBzZXRpYXAgZWxlbWVuIGRhbGFtIHBvcHVsYXNpIG1lbWlsaWtpIHByb2JhYmlsaXRhcyBwZW1pbGloYW4geWFuZyBzYW1hLCBzZWhpbmdnYSBtZW5naGFzaWxrYW4gc2FtcGVsIHlhbmcgYmVuYXItYmVuYXIgYWNhay4NCg0KLSBDYXJhIGtlcmphIDoNCg0KMS4gVGV0YXBrYW4gbm9tb3IgdW5payB1bnR1ayBzZXRpYXAgYW5nZ290YSBwb3B1bGFzaS4NCjIuICBHdW5ha2FuIGdlbmVyYXRvciBhbmdrYSBhY2FrIGF0YXUgc2lzdGVtIGxvdGVyZSB1bnR1ayBtZW1pbGloIHBlc2VydGEuDQoNCi0gQ29udG9oIDogU2VidWFoIHBlcnVzYWhhYW4gaW5naW4gbWVuc3VydmVpIDUwMCBrYXJ5YXdhbiBkYXJpIHRvdGFsIDUuMDAwIGthcnlhd2FuLiBTZXRpYXAga2FyeWF3YW4gZGliZXJpIG5vbW9yLCBkYW4gNTAwIGRpcGlsaWggc2VjYXJhIGFjYWsgbWVuZ2d1bmFrYW4gc2lzdGVtIHVuZGlhbi4NCg0KIyMjIDUuMiBQZW5nYW1iaWxhbiBTYW1wZWwgU2lzdGVtYXRpcw0KDQpTdWF0dSBtZXRvZGUgZGltYW5hIGVsZW1lbi1lbGVtZW4gZGlwaWxpaCBwYWRhIGludGVydmFsIHRlcnRlbnR1IGRhcmkgZGFmdGFyIGJlcnVydXRhbi4gDQoNCi0gQ2FyYSBrZXJqYSA6DQoNCjEuIFRlbnR1a2FuIHVrdXJhbiBzYW1wZWwgKCBtZW1pbGloIDEwMCBvcmFuZyBkYXJpIGRhZnRhciAxLjAwMCApLg0KMi4gSGl0dW5nIGludGVydmFsIHBlbmdhbWJpbGFuIHNhbXBlbCA6IFVrdXJhbiBwb3B1bGFzaSAkXGRpdiQgVWt1cmFuIHNhbXBlbCAobWlzYWxueWEsIDEuMDAwICRcZGl2JCAxMDAgPSAxMCkNCg0KDQotIENvbnRvaCA6IFNlb3JhbmcgcGVuZWxpdGkgaW5naW4gbWVuc3VydmVpIHNldGlhcCBwZWxhbmdnYW4gU3RoIGRhcmkgZGFmdGFyIDEuMDAwIHBlbWJlbGkuIEppa2EgdGl0aWsgYXdhbG55YSBhZGFsYWggMywgaW5kaXZpZHUgeWFuZyBkaXBpbGloIGFrYW4gYmVyYWRhIGRpIHVydXRhbiBrZS0zLCBrZS04LCBrZS0xMywgZHN0Lg0KDQojIyMgNS4zIFBlbmdhbWJpbGFuIFNhbXBlbCBCZXJzdHJhdGENCg0KU3VhdHUgbWV0b2RlIHlhbmcgbWVtYmFnaSBwb3B1bGFzaSBrZSBkYWxhbSBzdWJrZWxvbXBvayAoc3RyYXRhKSBiZXJkYXNhcmthbiBrYXJha3RlcmlzdGlrIHlhbmcgc2FtYSwga2VtdWRpYW4gc2VjYXJhIGFjYWsgbWVtaWxpaCBzZWp1bWxhaCBwYXJ0aXNpcGFuIHlhbmcgcHJvcG9yc2lvbmFsIGRhcmkgc2V0aWFwIHN0cmF0YS4NCg0KLSBDYXJhIGtlcmphIDoNCg0KMS4gSWRlbnRpZmlrYXNpIHN0cmF0YSB5YW5nIHJlbGV2YW4gKG1pc2FsbnlhLCBrZWxvbXBvayB1c2lhLCB0aW5na2F0IHBlbmRhcGF0YW4sIHBlbmRpZGlrYW4pLg0KMi4gVGVudHVrYW4gcHJvcG9yc2kgc2V0aWFwIHN0cmF0YSBkYWxhbSBwb3B1bGFzaS4NCjMuIE1lbGFrdWthbiBwZW5nYW1iaWxhbiBzYW1wZWwgc2VjYXJhIGFjYWsgZGFsYW0gc2V0aWFwIHN0cmF0YS4NCg0KLSBDb250b2ggOiBTZWJ1YWggdW5pdmVyc2l0YXMgaW5naW4gbWVuc3VydmVpIG1haGFzaXN3YSBkYXJpIGJlcmJhZ2FpIHRhaHVuIGFrYWRlbWlrLiBKaWthIDQwJSBtYWhhc2lzd2EgYWRhbGFoIG1haGFzaXN3YSBiYXJ1LCAzMCUgYWRhbGFoIG1haGFzaXN3YSB0aW5na2F0IGR1YSwgMjAlIGFkYWxhaCBtYWhhc2lzd2EgdGluZ2thdCB0aWdhLCBkYW4gMTAlIGFkYWxhaCBtYWhhc2lzd2EgdGluZ2thdCBlbXBhdCwgbWFrYSBzYW1wZWwgYWthbiBtZW5jZXJtaW5rYW4gcHJvcG9yc2kgaW5pLg0KDQojIyMgNS40IE1hbmZhYXQgZGFyaSBQZW5nYWNha2FuIGRhbGFtIFBlbmdhbWJpbGFuIFNhbXBlbA0KDQotIE1lbXVuZ2tpbmthbiB1bnR1ayBtZW1wZWxhamFyaSBwb3B1bGFzaSB5YW5nIGJlc2FyIHRhbnBhIGhhcnVzIG1lbmd1bXB1bGthbiBkYXRhIGRhcmkgc2V0aWFwIGluZGl2aWR1Lg0KLSBNZW1iYW50dSBtZW5ndXJhbmdpIGJpYXMgZGFsYW0gcGVuZWxpdGlhbi4NCi0gTWVtdW5na2lua2FuIHVudHVrIG1lbmd1amkgaGlwb3Rlc2lzIGRhbiBtZW5hcmlrIGtlc2ltcHVsYW4geWFuZyB2YWxpZC4NCg0KIyMjIDUuNSBUYW50YW5nYW4gDQoNCkRhbGFtIHBlbmdhY2FrYW4gcGFzdGkgbWVtaWxpa2kgc2VidWFoIHRhbnRhbmdhbiB5YWtuaSBtZW5nYWxhbWkga2VzdWxpdGFuIHVudHVrIG1lbmRhcGF0a2FuIHNhbXBlbCB5YW5nIHJlcHJlc2VudGF0aWYgZGFyaSBwb3B1bGFzaS4gU2VsYWluIGl0dSBqdWdhLCBSYW5kb21pc2FzaS8gUGVuZ2FjYWthbiBpbmkgZGFwYXQgc3VsaXQgZGlsYWt1a2FuIGRhbGFtIGJlYmVyYXBhIHNpdHVhc2kuIE1lc2tpcHVuIGl0dSBwZW5nYWNha2FuIGluaSBhZGFsYWggYWxhdCB5YW5nIGJlcmhhcmdhIHVudHVrIGlsbXUgZGF0YSwga2FyZW5hIGRhcGF0IGRpZ3VuYWthbiB1bnR1ayBtZW5ndW1wdWxrYW4gZGF0YSB5YW5nIGFraXJhdCBkYW4gYW5kYWwgc2VydGEgdW50dWsgbWVuYXJpayBrZXNpbXB1bGFuIHlhbmcgdmFsaWQgdGVudGFuZyBzZWJ1YWggcG9wdWxhc2kNCg0KIyMjIyAgS2VzaW1wdWxhbiANCg0KUGVuZ2d1bmFhbiBtZXRvZGUgcGVuZ2FtYmlsYW4gc2FtcGVsIGFjYWsgc2VwZXJ0aSBTUlMsIHBlbmdhbWJpbGFuIHNhbXBlbCBzaXN0ZW1hdGlzLCBkYW4gcGVuZ2FtYmlsYW4gc2FtcGVsIGJlcnN0cmF0YSBtZW1iYW50dSBtZW1hc3Rpa2FuIHNhbXBlbCB5YW5nIGFkaWwsIHRpZGFrIGJpYXMsIGRhbiByZXByZXNlbnRhdGlmLiBIYWwgaW5pIG1lbmluZ2thdGthbiBrZWFuZGFsYW4gZGFuIHZhbGlkaXRhcyB0ZW11YW4gcGVuZWxpdGlhbiwgc2VoaW5nZ2EgbGViaWggZGFwYXQgZGlnZW5lcmFsaXNhc2lrYW4ga2Ugc2VsdXJ1aCBwb3B1bGFzaS4NCg0KIyMgNi4gVGFudGFuZ2FuIGRhbGFtIFBlbmdhbWJpbGFuIFNhbXBlbA0KDQpQZW5nYW1iaWxhbiBzYW1wZWwgbWVydXBha2FuIHByb3NlcyBwZW50aW5nIGRhbGFtIHBlbmVsaXRpYW4sIHRldGFwaSBwcm9zZXMgaW5pIG1lbWlsaWtpIGJlYmVyYXBhIHRhbnRhbmdhbiB5YW5nIGRhcGF0IG1lbWVuZ2FydWhpIGFrdXJhc2kgZGFuIGtlYW5kYWxhbi4gQmVyaWt1dCBpbmkgYWRhbGFoICB0YW50YW5nYW4gdXRhbWEgcGVuZ2FtYmlsYW4gc2FtcGVsIGJlc2VydGEgcGVueWViYWJueWEgZGFuIGtlbXVuZ2tpbmFuIHNvbHVzaW55YS4NCg0KMS4gQmlhcyBOb24tUmVzcG9uDQoNCiAgLSBQZW55ZWJhYjogUGVzZXJ0YSB0aWRhayBtYXUgYXRhdSB0aWRhayBtYW1wdSBtZW5qYXdhYiwgc3VydmVpIHRlcmxhbHUgcGFuamFuZywgYXRhdSBrZWxvbXBvayB0ZXJ0ZW50dSBjZW5kZXJ1bmcgdGlkYWsgYmVycGFydGlzaXBhc2kuDQogIA0KICAtIFNvbHVzaTogTWVuZ2lyaW1rYW4gcGVuZ2luZ2F0LCBtZW1iZXJpa2FuIGluc2VudGlmLCBzZXJ0YSBtZW55ZWRlcmhhbmFrYW4gZm9ybWF0IHN1cnZlaSBhZ2FyIGxlYmloIG11ZGFoIGRpYWtzZXMuDQogIA0KMi4gS2VzYWxhaGFuIEJpYXMgUGVuZ2FtYmlsYW4gU2FtcGVsDQoNCiAgLSBQZW55ZWJhYjogS2VyYW5na2Egc2FtcGVsIHRpZGFrIGxlbmdrYXAsIGtsYXNpZmlrYXNpIHNhbGFoLCBhdGF1IHBlc2VydGEgZHVwbGlrYXQvdGlkYWsgbWVtZW51aGkgc3lhcmF0Lg0KICANCiAgLSBTb2x1c2k6IE1lbXBlcmJhcnVpIGtlcmFuZ2thIHNhbXBlbCwgbWVtZXJpa3NhIGtlbWJhbGkgc3VtYmVyIGRhdGEsIGRhbiBtZW5nZ3VuYWthbiBtZXRvZGUgcGVuZ2FtYmlsYW4gc2FtcGVsIGJlcnN0cmF0YS4NCiAgDQozLiBVa3VyYW4gU2FtcGVsIFRpZGFrIE1lbWFkYWkNCg0KICAtIFBlbnllYmFiOiBLZXRlcmJhdGFzYW4gc3VtYmVyIGRheWEsIGtlc2FsYWhhbiBkYWxhbSBwZXJoaXR1bmdhbiB1a3VyYW4gc2FtcGVsLCBzZXJ0YSB0aW5na2F0IHB1dHVzIHNla29sYWggdGluZ2dpIGRhbGFtIHN0dWRpIGxvbmdpdHVkaW5hbC4NCiAgDQogIC0gU29sdXNpOiBNZW5nZ3VuYWthbiBtZXRvZGUgc3RhdGlzdGlrIHVudHVrIG1lbmVudHVrYW4gdWt1cmFuIHNhbXBlbCB5YW5nIHRlcGF0IHNlcnRhIG1lbXBlcnRpbWJhbmdrYW4ga2VtdW5na2luYW4gZHJvcG91dC4NCiAgDQo0LiBLZW5kYWxhIEJpYXlhIGRhbiBXYWt0dQ0KDQogIC0gUGVueWViYWI6IEJpYXlhIHRpbmdnaSwga2V0ZXJsYW1iYXRhbiBkYWxhbSBtZW5qYW5na2F1IHBhcnRpc2lwYW4sIHNlcnRhIGtlYnV0dWhhbiBwZXJhbGF0YW4vcGVyc29uZWwga2h1c3VzLg0KICANCiAgLSBTb2x1c2k6IE1lbmdndW5ha2FuIHN1cnZlaSBvbmxpbmUsIG1lbmdvdG9tYXRpc2FzaSBwZW5ndW1wdWxhbiBkYXRhLCBzZXJ0YSBtZW5nb3B0aW1hbGthbiBzdW1iZXIgZGF5YSB5YW5nIHRlcnNlZGlhLg0KDQoNCg0KDQoNCiMjIyBLZXNpbXB1bGFuIA0KDQpEZW5nYW4gbWVuZ2F0YXNpIHRhbnRhbmdhbiBpbmksIHByb3NlcyBwZW5nYW1iaWxhbiBzYW1wZWwgbWVuamFkaSBsZWJpaCBhbmRhbCwgZWZpc2llbiwgZGFuIHJlcHJlc2VudGF0aWYuIFBlbmVyYXBhbiBzb2x1c2kgeWFuZyB0ZXBhdCBtZW1iYW50dSBwZW5lbGl0aSBtZW1pbmltYWxrYW4ga2VzYWxhaGFuIHNlcnRhIG1lbmluZ2thdGthbiBrdWFsaXRhcyBwZW5lbGl0aWFuIHNlY2FyYSBrZXNlbHVydWhhbi4NCg0KIyMgNy4gUGVuZ2FwbGlrYXNpYW4gRGFsYW0gSW5kdXN0cmkNCg0KUGVuZ2FtYmlsYW4gc2FtcGVsIG1lbWFpbmthbiBwZXJhbiBwZW50aW5nIGRpIGJlcmJhZ2FpIGluZHVzdHJpLCB5YW5nIG1lbXVuZ2tpbmthbiBvcmdhbmlzYXNpIG1lbmd1bXB1bGthbiB3YXdhc2FuLCBtZW1idWF0IGtlcHV0dXNhbiB5YW5nIHRlcGF0LCBkYW4gbWVuZ29wdGltYWxrYW4gcHJvc2VzLiBCZXJpa3V0IGluaSBhZGFsYWggYXJlYSB1dGFtYSBkaSBtYW5hIHBlbmdhbWJpbGFuIHNhbXBlbCBkaWd1bmFrYW4gc2VjYXJhIGx1YXM6DQoNCnwgSU5EVVNUUkkgIHwgQVBMSUtBU0kgfCBUVUpVQU4gfCANCnwtLS0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS18DQp8IFJpc2V0IFBhc2FyICAgICAgIHwgTWVsYWt1a2FuIHN1cnZlaSBkYW4ga2Vsb21wb2sgZm9rdXMuICAgICAgIHwgIE1lbWFoYW1pIHBlbGFuZ2dhbiwgcGVyZWZlcmVuc2ksIHBlcmlsYWt1LCBkYW4gdHJlbiAgICAgfCANCnwgUGVsYXlhbmFuIEtlc2VoYXRhbiAgICAgICAgIHwgTWVtcGVsYWphcmkgZGF0YSBwYXNpZW4gZGFuIHVqaSBrbGluaXMgICAgICAgIHwgIE1lbXBlcmtpcmFrYW4gcHJldmFsZW5zaSBwZW55YWtpdCwgZWZla3Rpdml0YXMgcGVuZ29iYXRhbiwgZGFuIHRyZW4ga2VzZWhhdGFuIG1hc3lhcmFrYXQuICAgICB8IA0KfCBLb250cm9sIEt1YWxpdGFzICAgICAgICAgfCBNZW1lcmlrc2Egc2ViYWdpYW4gcHJvZHVrIGRhbGFtIHByb3NlcyBwcm9kdWtzaS4gICAgICAgfCAgTWVtYXN0aWthbiBrdWFsaXRhcyBwcm9kdWsgZGFuIGtlcGF0dWhhbiB0ZXJoYWRhcCBzdGFuZGFyIGluZHVzdHJpLiAgICAgfCANCnwgS2V1YW5nYW4gICAgICAgICB8IE1lbmdhbmFsaXNpcyB0cmFuc2Frc2kga2V1YW5nYW4gZGFuIHRyZW4gcGFzYXIuICAgICAgIHwgIE1lbmlsYWkgcmlzaWtvLCBtZW5kZXRla3NpIHBlbmlwdWFuLCBkYW4gbWVtYnVhdCBrZXB1dHVzYW4gaW52ZXN0YXNpLiAgICAgfCANCiANCiMjIyBLZXNpbXB1bGFuDQoNClBlbmdhbWJpbGFuIHNhbXBlbCBtZW1haW5rYW4gcGVyYW4gcGVudGluZyBkaSBiZXJiYWdhaSBpbmR1c3RyaSwgeWFuZyBkYXBhdCBtZW11bmdraW5rYW4gb3JnYW5pc2FzaSBtZW5ndW1wdWxrYW4gd2F3YXNhbiwgbWVtYnVhdCBrZXB1dHVzYW4geWFuZyB0ZXBhdCwgZGFuIG1lbmdvcHRpbWFsa2FuIHByb3Nlcy4gVGVrbmlrIGluaSBkaWd1bmFrYW4gZGFsYW0gcmlzZXQgcGFzYXIgdW50dWsgbWVtYWhhbWkgcGVsYW5nZ2FuIGRhbiB0cmVuLCBkaSBwZWxheWFuYW4ga2VzZWhhdGFuIHVudHVrIG1lbmdhbmFsaXNpcyBkYXRhIHBhc2llbiBkYW4gZWZla3Rpdml0YXMgcGVuZ29iYXRhbiwgZGFsYW0ga29udHJvbCBrdWFsaXRhcyB1bnR1ayBtZW1hc3Rpa2FuIHN0YW5kYXIgcHJvZHVrLCBzZXJ0YSBkaSBzZWt0b3Iga2V1YW5nYW4gdW50dWsgbWVuaWxhaSByZXNpa28gZGFuIG1lbmRldGVrc2kgcGVuaXB1YW4uICANCg0KRGVuZ2FuIG1lbmVyYXBrYW4gdGVrbmlrIHBlbmdhbWJpbGFuIHNhbXBlbCB5YW5nIHRlcGF0LCBpbmR1c3RyaSBkYXBhdCBtZW1wZXJvbGVoIHdhd2FzYW4geWFuZyBha3VyYXQgZGFuIGFuZGFsIHNla2FsaWd1cyBtZW1pbmltYWxrYW4ga2VzYWxhaGFuIGRhbiBiaWFzLiBIYWwgaW5pIG1lbWFzdGlrYW4gcGVuZ2FtYmlsYW4ga2VwdXR1c2FuIHlhbmcgbGViaWggYmFpaywgcGVuZ2hlbWF0YW4gYmlheWEsIHNlcnRhIHBlbmluZ2thdGFuIGVmaXNpZW5zaSBvcGVyYXNpb25hbCwgeWFuZyBwYWRhIGFraGlybnlhIG1lbmR1a3VuZyBrZWJlcmxhbmp1dGFuIGRhbiBkYXlhIHNhaW5nIGJpc25pcyBkaSBiZXJiYWdhaSBzZWt0b3IuDQoNCiMgUmVmZXJlbnNpIA0KDQoxLiBbU2FtcGxpbmcgYW5kIFN1cnZleSBUZWNobmlxdWVzIC0gQm9va2Rvd25dKGh0dHBzOi8vYm9va2Rvd24ub3JnL2RzY2llbmNlbGFicy9zYW1wbGluZ19hbmRfc3VydmV5X3RlY2huaXF1ZXMvZG9jcy8pICANCjIuIFtWaWRlbzogU2FtcGxpbmcgVGVjaG5pcXVlcyAoWW91VHViZSldKGh0dHBzOi8veW91dHUuYmUvcWh6a0NlYmtTV0U/c2k9SUNqUkFVX3pDVnJNSkRmRCkgIA0KMy4gW1ZpZGVvOiBTdXJ2ZXkgTWV0aG9kcyAoWW91VHViZSldKGh0dHBzOi8veW91dHUuYmUvYkptMnB0LW1xMmM/c2k9LWtLcXFObm15VkJpWnJNYykgIA0KNC4gW1ZpZGVvOiBTYW1wbGluZyBCaWFzIChZb3VUdWJlKV0oaHR0cHM6Ly95b3V0dS5iZS9CTklDTXJZdFBKWT9zaT1lbDJQemNubVNaaDJ3dktKKSAgDQo1LiBbVmlkZW86IFN0YXRpc3RpY2FsIFNhbXBsaW5nIChZb3VUdWJlKV0oaHR0cHM6Ly95b3V0dS5iZS9VMjcyRkZ4RzhMRT9zaT12bjVZNXRVTUpHeWZsTEgwKSAgDQoNCg0KIA0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo=