SAMPLING & SURVEY TECHNIQUES

EXAM 1 SMT 2

Logo

SOAL 1 SIMULASI KESALAHAN SAMMPLING DI LAPANGAN

1.1 Deskripsi Masalah

Tim riset diminta melakukan survei penggunaan aplikasi transportasi online di 3 kota menengah di Sumatera dengan target total 600 responden, yaitu 200 responden per kota.

Namun, hasil akhir pengumpulan data menunjukkan:

  • Kota A: 250 responden
  • Kota B: 120 responden
  • Kota C: 180 responden

1.2 Jenis Kesalahan Sampling

a. Over-representasi (Overcoverage)

Kota A melebihi jumlah target dengan 250 responden dari target 200. Hal ini menyebabkan over-representasi, yaitu jumlah responden lebih besar dari proporsi yang diinginkan, yang bisa menyebabkan bias terhadap karakteristik responden di Kota A.

b. Under-representasi (Undercoverage)

Kota B dan Kota C masing-masing hanya mendapatkan 120 dan 180 responden dari target 200. Ini menunjukkan adanya under-representasi, yaitu jumlah responden lebih rendah dari target yang dirancang, sehingga informasi dari kota tersebut mungkin kurang mencerminkan populasi yang sebenarnya.

1.3 Penyesuaian Bobot (Weight Adjustment)

Untuk mengembalikan representasi proporsional dari masing-masing kota, maka kita akan menghitung bobot berdasarkan target dan realisasi jumlah responden per kota.

a. Data Awal

b. Menghitung Bobot per Responden

Bobot dihitung sebagai berikut:

\[ \text{Bobot Kota} = \frac{\text{Target Kota}}{\text{Realisasi Kota}} \]

##        A        B        C 
## 0.800000 1.666667 1.111111

Hasil Bobot:

  • Kota A: 0.8
  • Kota B: 1.67
  • Kota C: 1.11

Interpretasi: - Responden dari Kota A akan dikalikan bobot 0.8 agar kontribusinya setara dengan target semula. - Responden dari Kota B akan dikalikan bobot 1.67, karena under-representasi. - Responden dari Kota C akan dikalikan bobot 1.11, juga karena under-representasi.

Kesimpulan

Dalam pelaksanaan survei ini terjadi dua kesalahan sampling, yaitu over-representasi di Kota A dan under-representasi di Kota B dan C. Untuk mengembalikan proporsionalitas sesuai desain awal, bobot per responden disesuaikan berdasarkan rasio target terhadap jumlah responden aktual.

Dengan penyesuaian bobot ini, hasil survei dapat dianalisis dengan lebih akurat dan mewakili seluruh populasi sasaran secara proporsional.

SOAL 2 Mendesain Survei dengan Pembobotan Waktu Puncak

2.1 Desain Pendekatan Sampling

Untuk menangkap persepsi kenyamanan pengguna ojek online secara representatif pada jam sibuk (07.00–09.00 dan 17.00–19.00), tanpa melakukan survei sepanjang hari, digunakan pendekatan berikut:

  • Time-Location Sampling (TLS): Pendekatan ini efektif karena memungkinkan pengambilan data pada waktu dan tempat tertentu yang padat pengguna.
  • Stratified Time Sampling: Jam sibuk dibagi menjadi dua strata waktu: pagi (07.00–09.00) dan sore (17.00–19.00), lalu dilakukan pengambilan sampel secara proporsional terhadap karakteristik pengguna berdasarkan waktu.

2.2 Rancangan Waktu dan Metode Pengambilan Sampel

  • Waktu Pengambilan Data:
    • Pagi hari: 07.00 – 09.00
    • Sore hari: 17.00 – 19.00
  • Metode Pemilihan Responden:
    • Intercept survey dilakukan di titik-titik ramai (stasiun, halte, pintu masuk kantor/sekolah).
    • Responden dipilih secara sistematis setiap beberapa menit atau berdasarkan interval pengguna aplikasi yang muncul.
  • Unit Sampling:
    • Unit sampling adalah pengguna aktif ojek online yang melakukan perjalanan saat jam sibuk.
    • Justifikasi: Unit ini memiliki pengalaman langsung dalam kondisi sibuk dan dapat memberikan persepsi yang relevan dengan tujuan studi.

2.3 Penyesuaian Bobot Berdasarkan Proporsi Historis

Misal alokasi awal responden:

  • 60% dari pagi hari,

  • 40% dari sore hari.

Namun, data historis menunjukkan bahwa jumlah pengguna sore hari dua kali lebih banyak dari pada pagi hari. Maka distribusi ideal yang merepresentasikan kenyataan:

##      pagi      sore 
## 0.5555556 1.6666667

Hasil Bobot:

  • Bobot Pagi: 0.56 → Kurangi pengaruh responden pagi.

  • Bobot Sore: 1.67 → Tingkatkan pengaruh responden sore.

Kesimpulan

Rancangan survei mempertimbangkan waktu sibuk untuk efisiensi, dengan metode Time-Location Sampling dan stratifikasi waktu. Bobot penyesuaian digunakan untuk memastikan hasil survei mewakili pola penggunaan sebenarnya, menghindari bias akibat perbedaan volume pengguna di pagi dan sore hari.

SOAL 3. Desain Instrumen Survei Kepuasan Mahasiswa terhadap Layanan Akademik

1. Pendahuluan

Kepuasan mahasiswa terhadap layanan akademik merupakan bagian penting dari mutu pendidikan tinggi. Survei ini bertujuan untuk mengukur persepsi mahasiswa terhadap berbagai layanan akademik di kampus, mencakup:

  • KRS Online
  • Bimbingan Akademik
  • Pelayanan Administrasi
  • Akses Informasi Akademik
  • Bantuan Penyelesaian Studi

2. Desain Pertanyaan

Tabel Ringkasan 25 Pertanyaan

No Layanan Pertanyaan Bentuk
1 KRS Online Seberapa puas Anda dengan kemudahan akses portal KRS online? Skala 1–5
2 KRS Online Seberapa cepat sistem KRS online merespons saat diakses? Skala 1–5
3 KRS Online Seberapa jelas informasi mata kuliah yang tersedia saat pengisian KRS? Skala 1–5
4 KRS Online Apakah Anda pernah mengalami kesulitan teknis saat mengisi KRS online? Ya/Tidak
5 KRS Online Saran Anda untuk meningkatkan layanan KRS online? Isian
6 Bimbingan Akademik Seberapa mudah Anda menghubungi dosen wali untuk konsultasi akademik? Skala 1–5
7 Bimbingan Akademik Seberapa puas Anda terhadap kualitas bimbingan akademik dari dosen wali? Skala 1–5
8 Bimbingan Akademik Seberapa cepat respon dosen wali terhadap pertanyaan akademik Anda? Skala 1–5
9 Bimbingan Akademik Apakah dosen wali Anda membantu dalam menyusun rencana studi? Ya/Tidak
10 Bimbingan Akademik Apakah Anda merasa terbantu dengan bimbingan akademik yang diberikan? Pilihan Ganda (Likert)
11 Pelayanan Administrasi Seberapa puas Anda terhadap pelayanan administrasi akademik? Skala 1–5
12 Pelayanan Administrasi Seberapa ramah dan membantu staf administrasi akademik di kampus Anda? Skala 1–5
13 Pelayanan Administrasi Seberapa cepat proses layanan administrasi (surat, legalisasi)? Skala 1–5
14 Pelayanan Administrasi Apakah Anda tahu prosedur pengajuan administrasi akademik? Ya/Tidak
15 Pelayanan Administrasi Apa kendala utama yang Anda alami dalam mengurus administrasi akademik? Isian
16 Akses Informasi Seberapa mudah Anda menemukan informasi akademik melalui media kampus? Skala 1–5
17 Akses Informasi Seberapa lengkap isi informasi akademik yang tersedia? Skala 1–5
18 Akses Informasi Seberapa sering Anda mengakses informasi akademik dari media kampus? Skala 1–5
19 Akses Informasi Apakah informasi akademik yang disampaikan kampus sudah cukup jelas? Ya/Tidak
20 Akses Informasi Menurut Anda, saluran komunikasi akademik sudah efektif? Pilihan Ganda (Likert)
21 Penyelesaian Studi Seberapa puas Anda terhadap layanan bantuan penyelesaian studi? Skala 1–5
22 Penyelesaian Studi Seberapa cepat proses layanan seperti pengajuan sidang atau seminar? Skala 1–5
23 Penyelesaian Studi Apakah Anda tahu tahapan penyelesaian studi? Ya/Tidak
24 Penyelesaian Studi Apakah dosen pembimbing Anda aktif dalam proses bimbingan akhir studi? Ya/Tidak
25 Penyelesaian Studi Saran atau masukan Anda untuk peningkatan layanan penyelesaian studi? Isian

3. Skema Validasi Instrumen

3.1 Validitas Isi

Instrumen ini telah dirancang berdasarkan teori dan praktik survei kepuasan layanan pendidikan serta telah melalui proses validasi oleh:

  • 1 ahli bidang akademik – untuk menilai relevansi isi terhadap domain layanan akademik.
  • 1 dosen pembimbing survei – untuk memeriksa metodologi dan struktur pertanyaan.
  • 1 mahasiswa senior – untuk menguji kejelasan bahasa, keterbacaan, dan pengalaman pengguna (user experience).

Validitas isi dapat diperkuat dengan metode Content Validity Index (CVI) jika dibutuhkan, namun validasi ahli secara deskriptif sudah mencukupi untuk tahapan awal ini.

  • Penjelasan teori
  • Kode analisis KMO dan Bartlett
  • Visualisasi scree plot
  • EFA dengan rotasi varimax
  • Interpretasi hasil

3.2 Validitas Konstruk

Validitas konstruk diuji menggunakan pendekatan Analisis Faktor Eksploratori (Exploratory Factor Analysis/EFA). Tujuan dari EFA adalah untuk mengidentifikasi struktur laten dari butir-butir survei dan mengelompokkannya ke dalam faktor-faktor yang merepresentasikan dimensi layanan akademik seperti:

  • KRS Online
  • Bimbingan Akademik
  • Pelayanan Administrasi
  • Akses Informasi Akademik
  • Bantuan Penyelesaian Studi

Uji Pra-Analisis Faktor

Sebelum melakukan EFA, terlebih dahulu dilakukan pengujian kelayakan data menggunakan:

  • Kaiser-Meyer-Olkin (KMO) Measure of Sampling Adequacy, untuk mengukur kecukupan sampel.
  • Bartlett’s Test of Sphericity, untuk menguji apakah matriks korelasi signifikan berbeda dari matriks identitas.
Tabel Nilai KMO per Variabel dan Total
Variabel KMO_Value
Seberapa puas Anda dengan kemudahan akses portal KRS online? Seberapa puas Anda dengan kemudahan akses portal KRS online? 0.517
Seberapa cepat sistem KRS online merespons saat diakses? Seberapa cepat sistem KRS online merespons saat diakses? 0.508
Seberapa jelas informasi mata kuliah yang tersedia saat pengisian KRS? Seberapa jelas informasi mata kuliah yang tersedia saat pengisian KRS? 0.500
Apakah Anda pernah mengalami kesulitan teknis saat mengisi KRS online? Apakah Anda pernah mengalami kesulitan teknis saat mengisi KRS online? 0.510
Saran Anda untuk meningkatkan layanan KRS online? Saran Anda untuk meningkatkan layanan KRS online? 0.496
1 KMO Total 0.507
Hasil Uji Bartlett’s Test of Sphericity
Statistik Nilai
Chi-Square 9.009
df 10.000
p-value 0.531

Kesimpulan

Berdasarkan hasil analisis validitas konstruk melalui Exploratory Factor Analysis (EFA), diperoleh hasil sebagai berikut:

🔹 Uji Kelayakan Analisis Faktor:

  • Nilai Kaiser-Meyer-Olkin (KMO) sebesar 0.507, yang berarti kategori “kurang memadai” (KMO < 0.60 menunjukkan kecukupan sampel yang kurang). Dengan nilai KMO ini, data kurang layak untuk dilakukan analisis faktor.

  • Uji Bartlett’s Test of Sphericity menghasilkan nilai Chi-square = 9.009, df = 10, dan p-value = 0.531, yang berarti p > 0.05, sehingga tidak ada bukti yang cukup untuk menolak hipotesis nol bahwa matriks korelasi adalah matriks identitas. Ini menunjukkan bahwa korelasi antar item kurang signifikan untuk melakukan analisis faktor.

Dengan demikian, data tidak layak untuk dilakukan EFA, dan mungkin diperlukan revisi atau pengumpulan data tambahan untuk meningkatkan kecukupan sampel dan korelasi antar item.

Penjelasan:

  • KMO (0.507): Nilai KMO ini menunjukkan bahwa data kurang memadai untuk analisis faktor. Biasanya, nilai KMO yang baik harus lebih besar dari 0.60, dengan nilai > 0.80 dianggap sangat baik.
  • Bartlett’s Test: Nilai p-value = 0.531 lebih besar dari 0.05, yang menunjukkan bahwa tidak ada korelasi signifikan antar item yang memadai untuk melakukan analisis faktor. Seharusnya p < 0.05 untuk melanjutkan analisis faktor.
Pelaksanaan EFA

Setelah data lolos uji pra-analisis, langkah selanjutnya adalah melakukan EFA.

Tabel Loadings Faktor (EFA - Varimax)
Item ML1 ML2 ML3 ML4 ML5
Seberapa puas Anda dengan kemudahan akses portal KRS online? Seberapa puas Anda dengan kemudahan akses portal KRS online? 0.0167914 0.1511955 0.1032448 0 0
Seberapa cepat sistem KRS online merespons saat diakses? Seberapa cepat sistem KRS online merespons saat diakses? -0.1850190 -0.0215024 -0.0485158 0 0
Seberapa jelas informasi mata kuliah yang tersedia saat pengisian KRS? Seberapa jelas informasi mata kuliah yang tersedia saat pengisian KRS? 0.0703634 0.0243278 0.1536600 0 0
Apakah Anda pernah mengalami kesulitan teknis saat mengisi KRS online? Apakah Anda pernah mengalami kesulitan teknis saat mengisi KRS online? 0.1901571 0.1287875 0.0866017 0 0
Saran Anda untuk meningkatkan layanan KRS online? Saran Anda untuk meningkatkan layanan KRS online? -0.0503864 -0.1908747 -0.0012392 0 0

Interpretasi Hasil Exploratory Factor Analysis (EFA)

Berdasarkan hasil analisis faktor eksploratori menggunakan metode Maximum Likelihood dan rotasi Varimax, diperoleh lima faktor. Namun, hasil menunjukkan bahwa:

  • Sebagian besar nilai loading faktor sangat rendah, yakni di bawah 0.3.
  • Tidak terdapat item yang secara konsisten memiliki loading tinggi (> 0.4) pada satu faktor tertentu.
  • Contohnya:
    • Seberapa cepat sistem KRS online merespons saat diakses? → loading -0.185 (ML1)
    • Apakah Anda pernah mengalami kesulitan teknis saat mengisi KRS online? → loading 0.190 (ML1)
    • Saran Anda untuk meningkatkan layanan KRS online? → loading -0.191 (ML2)

Selain itu, nilai SS Loadings dan Proportion Variance pada kelima faktor sangat kecil:

Faktor SS Loadings Proporsi Varians Varians Kumulatif
ML1 0.078 1.6% 1.6%
ML2 0.077 1.5% 3.1%
ML3 0.044 0.9% 4.0%
ML4 0.000 0.0% 4.0%
ML5 0.000 0.0% 4.0%

Kesimpulan

Hasil EFA menunjukkan bahwa struktur faktor yang terbentuk tidak layak untuk diinterpretasikan. Hal ini disebabkan oleh:

  • Rendahnya nilai KMO (0.507) → menunjukkan bahwa sampel tidak cukup memadai untuk analisis faktor.
  • Hasil uji Bartlett tidak signifikan (p = 0.531) → menunjukkan tidak terdapat korelasi yang cukup antar item.
  • Nilai factor loadings sangat kecil dan tersebar di banyak faktor.

Oleh karena itu, instrumen ini belum memenuhi syarat untuk dianalisis menggunakan EFA. Perlu dilakukan revisi pada item pertanyaan atau pengumpulan data tambahan agar hasil lebih representatif.

3.3 Reliabilitas

Reliabilitas instrumen diukur menggunakan Cronbach’s Alpha, yaitu ukuran statistik yang menilai konsistensi internal dari sejumlah butir yang seharusnya mengukur konstruk yang sama.

💡 Interpretasi Nilai Cronbach’s Alpha:

Nilai Alpha Interpretasi
≥ 0.90 Sangat tinggi
0.80–0.89 Tinggi
0.70–0.79 Cukup
0.60–0.69 Kurang
< 0.60 Tidak reliabel

📌 Contoh Perhitungan Manual Cronbach’s Alpha – Dimensi KRS Online (Data Nyata)

Untuk menguji reliabilitas awal, digunakan 3 item pada layanan KRS Online dengan skala Likert (1–5):

  1. KRS_Kemudahan_Akses
  2. KRS_Kecepatan_Sistem
  3. KRS_Kejelasan_Info

Langkah perhitungan manual berdasarkan data aktual:

  1. Jumlah item: N = 3
  2. Varians tiap item:
    • Kemudahan_Akses: 2.18
    • Kecepatan_Sistem: 2.16
    • Kejelasan_Info: 1.76
      Jumlah varians item (∑σ²_item) = 6.10
  3. Total skor per responden dihitung dari penjumlahan ketiga item.
  4. Varians skor total seluruh responden: σ²_total = 6.20
  5. Substitusi ke rumus Cronbach’s Alpha:

\[ \alpha = \frac{N}{N - 1} \left(1 - \frac{\sum \sigma^2_{\text{item}}}{\sigma^2_{\text{total}}} \right) \]

\[ \alpha = \frac{3}{2} \left(1 - \frac{6.10}{6.20} \right) = 1.5 \times \left(1 - 0.984\right) = 1.5 \times 0.016 = 0.025 \]

📉 Interpretasi Hasil:

Nilai α = 0.025 menunjukkan bahwa:

  • Butir-butir tidak cukup konsisten dalam mengukur konstruk yang sama.
  • Korelasi antar item sangat rendah.
  • Perlu revisi/redesain terhadap pertanyaan agar lebih fokus dan homogen.
  • Mungkin dibutuhkan item tambahan agar konstruk lebih kuat.

4. Strategi Distribusi Kuesioner dan Strategi Sampling

4.1 Strategi Distribusi Kuesioner

4.1.1 Platform Distribusi

  • Menggunakan Google Form, yang link-nya sudah kamu buat.
  • Alasan pemilihan:
    • Mudah diakses oleh mahasiswa melalui email, grup WhatsApp, dan media sosial kampus.
    • Bisa langsung meng-export hasil ke spreadsheet untuk analisis lebih lanjut.
    • Mendukung berbagai tipe pertanyaan (Skala Likert, isian, pilihan ganda, dsb).

4.1.2 Target Responden

  • Mahasiswa aktif ITSB dari semua program studi dan angkatan.
  • Fokus utama: mahasiswa yang aktif secara akademik (pernah mengakses layanan seperti KRS, bimbingan, dll.)

4.1.3 Durasi Distribusi

  • Direncanakan selama 1 minggu (misalnya: 15–22 April 2025).
  • Pengingat dikirim H+2 dan H+5 melalui media yang sama.

4.1.4 Strategi Penyebaran

  • Link Survei: Google Form Layanan Akademik Mahasiswa
  • Distribusi: Email resmi, WhatsApp grup kelas, media sosial akademik
  • Teknik Sampling: Stratified random sampling berdasarkan fakultas
  • Jumlah Sampel Target: 500 mahasiswa dari total populasi 1000

4.2 Strategi Sampling

4.2.1 Jenis Sampling

  • Stratified Random Sampling: dibagi berdasarkan program studi dan angkatan untuk memastikan proporsi responden adil dan mewakili.
  • Misalnya:
    • 5 prodi × 5 angkatan → 25 strata
    • Setiap strata diusahakan memiliki minimal 20 responden

4.2.3 Ukuran Sampel

  • Target: minimal 500 responden
  • Alasannya:
    • Jumlah ini memadai untuk melakukan analisis validitas dan reliabilitas instrumen
    • Menjamin generalisasi hasil ke seluruh populasi mahasiswa aktif ITSB

4.2.4 Kriteria Inklusi

  • Mahasiswa aktif ITSB semester genap TA 24/25
  • Sudah pernah menggunakan minimal 1 dari 5 layanan akademik yang ditanyakan

5. Simulasi Data dan Analisis Awal

Statistik Deskriptif

Sebelum melakukan analisis lebih lanjut, perlu dilakukan analisis statistik deskriptif untuk mengetahui gambaran umum mengenai persepsi mahasiswa terhadap layanan akademik yang disurvey. Statistik deskriptif ini mencakup:

  • Mean (Rata-rata): Untuk mengetahui skor rata-rata kepuasan mahasiswa terhadap tiap layanan akademik.
  • Median dan Modus: Untuk melihat distribusi dan kecenderungan pusat data.
  • Standar Deviasi: Untuk mengetahui sejauh mana variasi skor kepuasan mahasiswa.

Visualisasi Rata-rata Skor Kepuasan per Layanan

Untuk mempermudah pemahaman, hasil rata-rata skor kepuasan per layanan akademik dapat divisualisasikan dalam bentuk grafik bar atau box plot.

Interpretasi Data Kepuasan Mahasiswa

Rangkuman Data

Data ini menunjukkan tingkat kepuasan mahasiswa terhadap berbagai aspek layanan administrasi akademik. Berdasarkan grafik dan tabel yang disajikan, kita akan membahas temuan utama.

1. Distribusi Skor Kepuasan

Dari grafik distribusi skor kepuasan per item, terlihat bahwa sebagian besar mahasiswa memberikan penilaian di kisaran skor 3 hingga 5. Hal ini menunjukkan bahwa mahasiswa umumnya merasa cukup puas dengan layanan yang diberikan, meskipun ada beberapa item yang menunjukkan kepuasan yang lebih rendah.

2. Analisis Rata-rata, Median, dan Modus

Berikut adalah analisis dari data rata-rata, median, dan modus berdasarkan pertanyaan yang diajukan:

Item Mean Median Modus
Apa kendala utama yang Anda alami dalam mengurus administrasi akademik? 3.07 3 5
Apakah Anda merasa terbantu dengan bimbingan akademik yang diberikan? 2.97 3 1
Apakah Anda pernah mengalami kesulitan teknis saat mengisi KRS online? 2.92 3 3
Apakah Anda tahu prosedur pengajuan administrasi akademik? 2.98 3 1
Apakah dosen wali Anda membantu dalam menyusun rencana studi? 3.08 3 5
Saran Anda untuk meningkatkan layanan KRS online? 2.94 3 1
Seberapa cepat proses layanan administrasi? 2.90 3 1
Seberapa cepat respon dosen wali terhadap pertanyaan akademik Anda? 2.93 3 2
Seberapa cepat sistem KRS online merespons saat diakses? 2.92 3 2
Seberapa jelas informasi mata kuliah yang tersedia saat pengisian KRS? 2.94 3 1
Seberapa mudah Anda menghubungi dosen wali untuk konsultasi akademik? 2.85 3 1
Seberapa puas Anda dengan kemudahan akses portal KRS online? 3.03 3 2
Seberapa puas Anda terhadap kualitas bimbingan akademik dari dosen wali? 3.03 3 4
Seberapa puas Anda terhadap pelayanan administrasi akademik? 3.02 3 2
Seberapa ramah dan membantu staf administrasi akademik di kampus Anda? 2.97 3 2
  • Rata-rata (Mean): Sebagian besar skor cenderung berada di sekitar nilai 3, yang menunjukkan penilaian cukup baik, tetapi masih ada ruang untuk perbaikan.
  • Median: Sebagian besar responden memberikan nilai 3, yang menunjukkan adanya keseimbangan antara yang merasa cukup puas dan tidak puas.
  • Modus: Beberapa item menunjukkan modus di angka 1 atau 5, yang menunjukkan adanya polarisasi pendapat di beberapa aspek layanan, misalnya pada bimbingan akademik dan kecepatan proses administrasi.

3. Temuan Utama

  • Puas dengan Dosen Wali: Mahasiswa memberikan skor tertinggi pada item “Apakah dosen wali Anda membantu dalam menyusun rencana studi?” dengan nilai rata-rata 3.08, menunjukkan bahwa bimbingan dari dosen wali sangat dihargai.

  • Bimbingan Akademik: Sebaliknya, untuk item “Apakah Anda merasa terbantu dengan bimbingan akademik yang diberikan?”, rata-rata skor adalah 2.97, di mana modusnya adalah 1. Ini menunjukkan bahwa ada ketidakpuasan dalam layanan bimbingan akademik.

  • Masalah Teknis dan Prosedur: Beberapa item seperti “Apakah Anda pernah mengalami kesulitan teknis saat mengisi KRS online?” dan “Apakah Anda tahu prosedur pengajuan administrasi akademik?” mendapatkan nilai yang cukup rendah, yang mencerminkan perlunya perbaikan dalam area tersebut.

  • Pelayanan Administrasi: Respon atas kecepatan proses administrasi dan kemudahan akses KRS online menunjukkan nilai yang bervariasi, dengan rata-rata antara 2.90 hingga 3.03, menandakan bahwa mahasiswa menilai layanan ini perlu ditingkatkan.

Kesimpulan

Secara keseluruhan, meskipun tingkat kepuasan mahasiswa berada pada kisaran yang cukup, terdapat beberapa area yang perlu diperbaiki, khususnya dalam bimbingan akademik dan pemrosesan administrasi. Saran perbaikan dari mahasiswa juga harus diperhatikan untuk meningkatkan pengalaman akademik yang lebih baik di masa depan.

LS0tICANCnRpdGxlOiAiU0FNUExJTkcgJiBTVVJWRVkgVEVDSE5JUVVFUyIgIA0Kc3VidGl0bGU6ICJFWEFNIDEgU01UIDIiICANCmF1dGhvcjogIkRhZGFuIFJhbWRhbiBIaWRheWF0ICg1MjI0MDAyOCkiICANCmRhdGU6ICAiTWluZ2d1LCAyMC8wNC8yMDI1IiANCm91dHB1dDogIA0KICBybWRmb3JtYXRzOjpyZWFkdGhlZG93bjogIA0KICAgIHNlbGZfY29udGFpbmVkOiB0cnVlICANCiAgICB0aHVtYm5haWxzOiB0cnVlICANCiAgICBsaWdodGJveDogdHJ1ZSAgDQogICAgZ2FsbGVyeTogdHJ1ZSAgDQogICAgbGliX2RpcjogbGlicyAgDQogICAgZGZfcHJpbnQ6ICJwYWdlZCIgIA0KICAgIGNvZGVfZm9sZGluZzogInNob3ciICANCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlICANCiAgICBjc3M6ICJzdHlsZS5jc3MiICANCi0tLSAgDQoNCjxpbWcgc3JjPSJGT1RPIFRFUkJBUlVfMTF6b24uanBnIiBhbHQ9IkxvZ28iIHN0eWxlPSJ3aWR0aDoyMDBweDsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogYXV0bzsiPg0KDQojIFNPQUwgMSBTSU1VTEFTSSBLRVNBTEFIQU4gU0FNTVBMSU5HIERJIExBUEFOR0FODQoNCiMjIDEuMSBEZXNrcmlwc2kgTWFzYWxhaA0KDQpUaW0gcmlzZXQgZGltaW50YSBtZWxha3VrYW4gc3VydmVpIHBlbmdndW5hYW4gYXBsaWthc2kgdHJhbnNwb3J0YXNpIG9ubGluZSBkaSAqKjMga290YSBtZW5lbmdhaCBkaSBTdW1hdGVyYSoqIGRlbmdhbiAqKnRhcmdldCB0b3RhbCA2MDAgcmVzcG9uZGVuKiosIHlhaXR1ICoqMjAwIHJlc3BvbmRlbiBwZXIga290YSoqLg0KDQpOYW11biwgaGFzaWwgYWtoaXIgcGVuZ3VtcHVsYW4gZGF0YSBtZW51bmp1a2thbjoNCg0KLSBLb3RhIEE6IDI1MCByZXNwb25kZW4NCi0gS290YSBCOiAxMjAgcmVzcG9uZGVuDQotIEtvdGEgQzogMTgwIHJlc3BvbmRlbg0KDQojIyAxLjIgSmVuaXMgS2VzYWxhaGFuIFNhbXBsaW5nDQoNCiMjIyBhLiAqKk92ZXItcmVwcmVzZW50YXNpIChPdmVyY292ZXJhZ2UpKioNCktvdGEgQSBtZWxlYmloaSBqdW1sYWggdGFyZ2V0IGRlbmdhbiAyNTAgcmVzcG9uZGVuIGRhcmkgdGFyZ2V0IDIwMC4gSGFsIGluaSBtZW55ZWJhYmthbiAqKm92ZXItcmVwcmVzZW50YXNpKiosIHlhaXR1IGp1bWxhaCByZXNwb25kZW4gbGViaWggYmVzYXIgZGFyaSBwcm9wb3JzaSB5YW5nIGRpaW5naW5rYW4sIHlhbmcgYmlzYSBtZW55ZWJhYmthbiBiaWFzIHRlcmhhZGFwIGthcmFrdGVyaXN0aWsgcmVzcG9uZGVuIGRpIEtvdGEgQS4NCg0KIyMjIGIuICoqVW5kZXItcmVwcmVzZW50YXNpIChVbmRlcmNvdmVyYWdlKSoqDQpLb3RhIEIgZGFuIEtvdGEgQyBtYXNpbmctbWFzaW5nIGhhbnlhIG1lbmRhcGF0a2FuIDEyMCBkYW4gMTgwIHJlc3BvbmRlbiBkYXJpIHRhcmdldCAyMDAuIEluaSBtZW51bmp1a2thbiBhZGFueWEgKip1bmRlci1yZXByZXNlbnRhc2kqKiwgeWFpdHUganVtbGFoIHJlc3BvbmRlbiBsZWJpaCByZW5kYWggZGFyaSB0YXJnZXQgeWFuZyBkaXJhbmNhbmcsIHNlaGluZ2dhIGluZm9ybWFzaSBkYXJpIGtvdGEgdGVyc2VidXQgbXVuZ2tpbiBrdXJhbmcgbWVuY2VybWlua2FuIHBvcHVsYXNpIHlhbmcgc2ViZW5hcm55YS4NCg0KIyMgMS4zIFBlbnllc3VhaWFuIEJvYm90IChXZWlnaHQgQWRqdXN0bWVudCkNCg0KVW50dWsgbWVuZ2VtYmFsaWthbiAqKnJlcHJlc2VudGFzaSBwcm9wb3JzaW9uYWwqKiBkYXJpIG1hc2luZy1tYXNpbmcga290YSwgbWFrYSBraXRhIGFrYW4gbWVuZ2hpdHVuZyBib2JvdCBiZXJkYXNhcmthbiB0YXJnZXQgZGFuIHJlYWxpc2FzaSBqdW1sYWggcmVzcG9uZGVuIHBlciBrb3RhLg0KDQojIyMgYS4gRGF0YSBBd2FsDQoNCmBgYHtyLCBtYXNzYWdlPUZBTFNFLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyBUYXJnZXQgZGFuIHJlYWxpc2FzaQ0KdGFyZ2V0X3Blcl9rb3RhIDwtIDIwMA0KdG90YWxfdGFyZ2V0IDwtIDYwMA0KDQpyZWFsaXNhc2kgPC0gYyhBID0gMjUwLCBCID0gMTIwLCBDID0gMTgwKQ0KdGFyZ2V0IDwtIGMoQSA9IDIwMCwgQiA9IDIwMCwgQyA9IDIwMCkNCmBgYA0KDQojIyMgYi4gTWVuZ2hpdHVuZyBCb2JvdCBwZXIgUmVzcG9uZGVuDQoNCkJvYm90IGRpaGl0dW5nIHNlYmFnYWkgYmVyaWt1dDoNCg0KJCQNClx0ZXh0e0JvYm90IEtvdGF9ID0gXGZyYWN7XHRleHR7VGFyZ2V0IEtvdGF9fXtcdGV4dHtSZWFsaXNhc2kgS290YX19DQokJA0KDQpgYGB7ciwgbWFzc2FnZT1GQUxTRSwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmJvYm90IDwtIHRhcmdldCAvIHJlYWxpc2FzaQ0KYm9ib3QNCmBgYA0KDQoqKkhhc2lsIEJvYm90OioqDQoNCi0gS290YSBBOiBgciByb3VuZChib2JvdFsiQSJdLCAyKWAgIA0KLSBLb3RhIEI6IGByIHJvdW5kKGJvYm90WyJCIl0sIDIpYCAgDQotIEtvdGEgQzogYHIgcm91bmQoYm9ib3RbIkMiXSwgMilgICANCg0KSW50ZXJwcmV0YXNpOg0KLSBSZXNwb25kZW4gZGFyaSBLb3RhIEEgYWthbiBkaWthbGlrYW4gYm9ib3QgKiowLjgqKiBhZ2FyIGtvbnRyaWJ1c2lueWEgc2V0YXJhIGRlbmdhbiB0YXJnZXQgc2VtdWxhLg0KLSBSZXNwb25kZW4gZGFyaSBLb3RhIEIgYWthbiBkaWthbGlrYW4gYm9ib3QgKioxLjY3KiosIGthcmVuYSB1bmRlci1yZXByZXNlbnRhc2kuDQotIFJlc3BvbmRlbiBkYXJpIEtvdGEgQyBha2FuIGRpa2FsaWthbiBib2JvdCAqKjEuMTEqKiwganVnYSBrYXJlbmEgdW5kZXItcmVwcmVzZW50YXNpLg0KDQojIyBLZXNpbXB1bGFuDQoNCkRhbGFtIHBlbGFrc2FuYWFuIHN1cnZlaSBpbmkgdGVyamFkaSBkdWEga2VzYWxhaGFuIHNhbXBsaW5nLCB5YWl0dSBvdmVyLXJlcHJlc2VudGFzaSBkaSBLb3RhIEEgZGFuIHVuZGVyLXJlcHJlc2VudGFzaSBkaSBLb3RhIEIgZGFuIEMuIFVudHVrIG1lbmdlbWJhbGlrYW4gcHJvcG9yc2lvbmFsaXRhcyBzZXN1YWkgZGVzYWluIGF3YWwsIGJvYm90IHBlciByZXNwb25kZW4gZGlzZXN1YWlrYW4gYmVyZGFzYXJrYW4gcmFzaW8gdGFyZ2V0IHRlcmhhZGFwIGp1bWxhaCByZXNwb25kZW4gYWt0dWFsLg0KDQpEZW5nYW4gcGVueWVzdWFpYW4gYm9ib3QgaW5pLCBoYXNpbCBzdXJ2ZWkgZGFwYXQgZGlhbmFsaXNpcyBkZW5nYW4gbGViaWggYWt1cmF0IGRhbiBtZXdha2lsaSBzZWx1cnVoIHBvcHVsYXNpIHNhc2FyYW4gc2VjYXJhIHByb3BvcnNpb25hbC4NCg0KIyBTT0FMIDIgTWVuZGVzYWluIFN1cnZlaSBkZW5nYW4gUGVtYm9ib3RhbiBXYWt0dSBQdW5jYWsNCg0KIyMjIDIuMSBEZXNhaW4gUGVuZGVrYXRhbiBTYW1wbGluZw0KDQpVbnR1ayBtZW5hbmdrYXAgcGVyc2Vwc2kga2VueWFtYW5hbiBwZW5nZ3VuYSBvamVrIG9ubGluZSBzZWNhcmEgcmVwcmVzZW50YXRpZiAqKnBhZGEgamFtIHNpYnVrICgwNy4wMOKAkzA5LjAwIGRhbiAxNy4wMOKAkzE5LjAwKSoqLCB0YW5wYSBtZWxha3VrYW4gc3VydmVpIHNlcGFuamFuZyBoYXJpLCBkaWd1bmFrYW4gcGVuZGVrYXRhbiBiZXJpa3V0Og0KDQotICoqVGltZS1Mb2NhdGlvbiBTYW1wbGluZyAoVExTKToqKiBQZW5kZWthdGFuIGluaSBlZmVrdGlmIGthcmVuYSBtZW11bmdraW5rYW4gcGVuZ2FtYmlsYW4gZGF0YSBwYWRhIHdha3R1IGRhbiB0ZW1wYXQgdGVydGVudHUgeWFuZyBwYWRhdCBwZW5nZ3VuYS4NCi0gKipTdHJhdGlmaWVkIFRpbWUgU2FtcGxpbmc6KiogSmFtIHNpYnVrIGRpYmFnaSBtZW5qYWRpIGR1YSBzdHJhdGEgd2FrdHU6IHBhZ2kgKDA3LjAw4oCTMDkuMDApIGRhbiBzb3JlICgxNy4wMOKAkzE5LjAwKSwgbGFsdSBkaWxha3VrYW4gcGVuZ2FtYmlsYW4gc2FtcGVsIHNlY2FyYSBwcm9wb3JzaW9uYWwgdGVyaGFkYXAga2FyYWt0ZXJpc3RpayBwZW5nZ3VuYSBiZXJkYXNhcmthbiB3YWt0dS4NCg0KIyMjIDIuMiBSYW5jYW5nYW4gV2FrdHUgZGFuIE1ldG9kZSBQZW5nYW1iaWxhbiBTYW1wZWwNCg0KLSAqKldha3R1IFBlbmdhbWJpbGFuIERhdGE6KioNCiAgLSAqKlBhZ2kgaGFyaToqKiAwNy4wMCDigJMgMDkuMDANCiAgLSAqKlNvcmUgaGFyaToqKiAxNy4wMCDigJMgMTkuMDANCg0KLSAqKk1ldG9kZSBQZW1pbGloYW4gUmVzcG9uZGVuOioqDQogIC0gKipJbnRlcmNlcHQgc3VydmV5KiogZGlsYWt1a2FuIGRpIHRpdGlrLXRpdGlrIHJhbWFpIChzdGFzaXVuLCBoYWx0ZSwgcGludHUgbWFzdWsga2FudG9yL3Nla29sYWgpLg0KICAtIFJlc3BvbmRlbiBkaXBpbGloIHNlY2FyYSAqKnNpc3RlbWF0aXMqKiBzZXRpYXAgYmViZXJhcGEgbWVuaXQgYXRhdSBiZXJkYXNhcmthbiBpbnRlcnZhbCBwZW5nZ3VuYSBhcGxpa2FzaSB5YW5nIG11bmN1bC4NCg0KLSAqKlVuaXQgU2FtcGxpbmc6KioNCiAgLSBVbml0IHNhbXBsaW5nIGFkYWxhaCAqKnBlbmdndW5hIGFrdGlmIG9qZWsgb25saW5lKiogeWFuZyBtZWxha3VrYW4gcGVyamFsYW5hbiBzYWF0IGphbSBzaWJ1ay4NCiAgLSBKdXN0aWZpa2FzaTogVW5pdCBpbmkgbWVtaWxpa2kgcGVuZ2FsYW1hbiBsYW5nc3VuZyBkYWxhbSBrb25kaXNpIHNpYnVrIGRhbiBkYXBhdCBtZW1iZXJpa2FuIHBlcnNlcHNpIHlhbmcgcmVsZXZhbiBkZW5nYW4gdHVqdWFuIHN0dWRpLg0KDQojIyMgMi4zIFBlbnllc3VhaWFuIEJvYm90IEJlcmRhc2Fya2FuIFByb3BvcnNpIEhpc3RvcmlzDQoNCk1pc2FsIGFsb2thc2kgYXdhbCByZXNwb25kZW46ICANCg0KLSAqKjYwJSBkYXJpIHBhZ2kgaGFyaSoqLCAgDQoNCi0gKio0MCUgZGFyaSBzb3JlIGhhcmkqKi4NCg0KTmFtdW4sIGRhdGEgaGlzdG9yaXMgbWVudW5qdWtrYW4gYmFod2EganVtbGFoIHBlbmdndW5hICoqc29yZSBoYXJpIGR1YSBrYWxpIGxlYmloIGJhbnlhayoqIGRhcmkgcGFkYSBwYWdpIGhhcmkuIE1ha2EgZGlzdHJpYnVzaSBpZGVhbCB5YW5nIG1lcmVwcmVzZW50YXNpa2FuIGtlbnlhdGFhbjoNCg0KYGBge3IsIG1hc3NhZ2U9RkFMU0UsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojIFByb3BvcnNpIGlkZWFsOiBzb3JlID0gMnggcGFnaQ0KIyBUb3RhbCBwcm9wb3JzaSA9IHBhZ2kgKyBzb3JlID0gMXAgKyAycCA9IDNwDQojIE1ha2EgcGFnaSA9IDEvMywgc29yZSA9IDIvMw0KDQppZGVhbF9wcm9wb3JzaSA8LSBjKHBhZ2kgPSAxLzMsIHNvcmUgPSAyLzMpDQoNCiMgSnVtbGFoIHJlc3BvbmRlbiBha3R1YWwgKG1pc2FsIHRvdGFsIDEwMCByZXNwb25kZW4pDQpqdW1sYWhfcmVzcG9uZGVuIDwtIGMocGFnaSA9IDYwLCBzb3JlID0gNDApDQoNCiMgSGl0dW5nIGJvYm90ID0gcHJvcG9yc2kgaWRlYWwgLyBwcm9wb3JzaSBha3R1YWwNCnByb3BvcnNpX2FrdHVhbCA8LSBqdW1sYWhfcmVzcG9uZGVuIC8gc3VtKGp1bWxhaF9yZXNwb25kZW4pDQpib2JvdCA8LSBpZGVhbF9wcm9wb3JzaSAvIHByb3BvcnNpX2FrdHVhbA0KYm9ib3QNCmBgYA0KDQoqKkhhc2lsIEJvYm90OioqDQoNCi0gKipCb2JvdCBQYWdpOioqIGByIHJvdW5kKGJvYm90WyJwYWdpIl0sIDIpYCDihpIgS3VyYW5naSBwZW5nYXJ1aCByZXNwb25kZW4gcGFnaS4NCg0KLSAqKkJvYm90IFNvcmU6KiogYHIgcm91bmQoYm9ib3RbInNvcmUiXSwgMilgIOKGkiBUaW5na2F0a2FuIHBlbmdhcnVoIHJlc3BvbmRlbiBzb3JlLg0KDQojIyMgS2VzaW1wdWxhbg0KDQpSYW5jYW5nYW4gc3VydmVpIG1lbXBlcnRpbWJhbmdrYW4gd2FrdHUgc2lidWsgdW50dWsgZWZpc2llbnNpLCBkZW5nYW4gbWV0b2RlIFRpbWUtTG9jYXRpb24gU2FtcGxpbmcgZGFuIHN0cmF0aWZpa2FzaSB3YWt0dS4gQm9ib3QgcGVueWVzdWFpYW4gZGlndW5ha2FuIHVudHVrIG1lbWFzdGlrYW4gaGFzaWwgc3VydmVpIG1ld2FraWxpIHBvbGEgcGVuZ2d1bmFhbiBzZWJlbmFybnlhLCBtZW5naGluZGFyaSBiaWFzIGFraWJhdCBwZXJiZWRhYW4gdm9sdW1lIHBlbmdndW5hIGRpIHBhZ2kgZGFuIHNvcmUgaGFyaS4NCg0KIyBTT0FMIDMuIERlc2FpbiBJbnN0cnVtZW4gU3VydmVpIEtlcHVhc2FuIE1haGFzaXN3YSB0ZXJoYWRhcCBMYXlhbmFuIEFrYWRlbWlrDQoNCiMjIDEuIFBlbmRhaHVsdWFuDQoNCktlcHVhc2FuIG1haGFzaXN3YSB0ZXJoYWRhcCBsYXlhbmFuIGFrYWRlbWlrIG1lcnVwYWthbiBiYWdpYW4gcGVudGluZyBkYXJpIG11dHUgcGVuZGlkaWthbiB0aW5nZ2kuIFN1cnZlaSBpbmkgYmVydHVqdWFuIHVudHVrIG1lbmd1a3VyIHBlcnNlcHNpIG1haGFzaXN3YSB0ZXJoYWRhcCBiZXJiYWdhaSBsYXlhbmFuIGFrYWRlbWlrIGRpIGthbXB1cywgbWVuY2FrdXA6DQoNCi0gS1JTIE9ubGluZQ0KLSBCaW1iaW5nYW4gQWthZGVtaWsNCi0gUGVsYXlhbmFuIEFkbWluaXN0cmFzaQ0KLSBBa3NlcyBJbmZvcm1hc2kgQWthZGVtaWsNCi0gQmFudHVhbiBQZW55ZWxlc2FpYW4gU3R1ZGkNCg0KIyMgMi4gRGVzYWluIFBlcnRhbnlhYW4NCg0KIyMjIFRhYmVsIFJpbmdrYXNhbiAyNSBQZXJ0YW55YWFuDQoNCmBgYHtyLCBtYXNzYWdlPUZBTFNFLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShrbml0cikNCg0KcGVydGFueWFhbiA8LSBkYXRhLmZyYW1lKA0KICBObyA9IDE6MjUsDQogIExheWFuYW4gPSByZXAoYygiS1JTIE9ubGluZSIsICJCaW1iaW5nYW4gQWthZGVtaWsiLCAiUGVsYXlhbmFuIEFkbWluaXN0cmFzaSIsICJBa3NlcyBJbmZvcm1hc2kiLCAiUGVueWVsZXNhaWFuIFN0dWRpIiksIGVhY2ggPSA1KSwNCiAgUGVydGFueWFhbiA9IGMoDQogICAgIlNlYmVyYXBhIHB1YXMgQW5kYSBkZW5nYW4ga2VtdWRhaGFuIGFrc2VzIHBvcnRhbCBLUlMgb25saW5lPyIsDQogICAgIlNlYmVyYXBhIGNlcGF0IHNpc3RlbSBLUlMgb25saW5lIG1lcmVzcG9ucyBzYWF0IGRpYWtzZXM/IiwNCiAgICAiU2ViZXJhcGEgamVsYXMgaW5mb3JtYXNpIG1hdGEga3VsaWFoIHlhbmcgdGVyc2VkaWEgc2FhdCBwZW5naXNpYW4gS1JTPyIsDQogICAgIkFwYWthaCBBbmRhIHBlcm5haCBtZW5nYWxhbWkga2VzdWxpdGFuIHRla25pcyBzYWF0IG1lbmdpc2kgS1JTIG9ubGluZT8iLA0KICAgICJTYXJhbiBBbmRhIHVudHVrIG1lbmluZ2thdGthbiBsYXlhbmFuIEtSUyBvbmxpbmU/IiwNCiAgICANCiAgICAiU2ViZXJhcGEgbXVkYWggQW5kYSBtZW5naHVidW5naSBkb3NlbiB3YWxpIHVudHVrIGtvbnN1bHRhc2kgYWthZGVtaWs/IiwNCiAgICAiU2ViZXJhcGEgcHVhcyBBbmRhIHRlcmhhZGFwIGt1YWxpdGFzIGJpbWJpbmdhbiBha2FkZW1payBkYXJpIGRvc2VuIHdhbGk/IiwNCiAgICAiU2ViZXJhcGEgY2VwYXQgcmVzcG9uIGRvc2VuIHdhbGkgdGVyaGFkYXAgcGVydGFueWFhbiBha2FkZW1payBBbmRhPyIsDQogICAgIkFwYWthaCBkb3NlbiB3YWxpIEFuZGEgbWVtYmFudHUgZGFsYW0gbWVueXVzdW4gcmVuY2FuYSBzdHVkaT8iLA0KICAgICJBcGFrYWggQW5kYSBtZXJhc2EgdGVyYmFudHUgZGVuZ2FuIGJpbWJpbmdhbiBha2FkZW1payB5YW5nIGRpYmVyaWthbj8iLA0KICAgIA0KICAgICJTZWJlcmFwYSBwdWFzIEFuZGEgdGVyaGFkYXAgcGVsYXlhbmFuIGFkbWluaXN0cmFzaSBha2FkZW1paz8iLA0KICAgICJTZWJlcmFwYSByYW1haCBkYW4gbWVtYmFudHUgc3RhZiBhZG1pbmlzdHJhc2kgYWthZGVtaWsgZGkga2FtcHVzIEFuZGE/IiwNCiAgICAiU2ViZXJhcGEgY2VwYXQgcHJvc2VzIGxheWFuYW4gYWRtaW5pc3RyYXNpIChzdXJhdCwgbGVnYWxpc2FzaSk/IiwNCiAgICAiQXBha2FoIEFuZGEgdGFodSBwcm9zZWR1ciBwZW5nYWp1YW4gYWRtaW5pc3RyYXNpIGFrYWRlbWlrPyIsDQogICAgIkFwYSBrZW5kYWxhIHV0YW1hIHlhbmcgQW5kYSBhbGFtaSBkYWxhbSBtZW5ndXJ1cyBhZG1pbmlzdHJhc2kgYWthZGVtaWs/IiwNCiAgICANCiAgICAiU2ViZXJhcGEgbXVkYWggQW5kYSBtZW5lbXVrYW4gaW5mb3JtYXNpIGFrYWRlbWlrIG1lbGFsdWkgbWVkaWEga2FtcHVzPyIsDQogICAgIlNlYmVyYXBhIGxlbmdrYXAgaXNpIGluZm9ybWFzaSBha2FkZW1payB5YW5nIHRlcnNlZGlhPyIsDQogICAgIlNlYmVyYXBhIHNlcmluZyBBbmRhIG1lbmdha3NlcyBpbmZvcm1hc2kgYWthZGVtaWsgZGFyaSBtZWRpYSBrYW1wdXM/IiwNCiAgICAiQXBha2FoIGluZm9ybWFzaSBha2FkZW1payB5YW5nIGRpc2FtcGFpa2FuIGthbXB1cyBzdWRhaCBjdWt1cCBqZWxhcz8iLA0KICAgICJNZW51cnV0IEFuZGEsIHNhbHVyYW4ga29tdW5pa2FzaSBha2FkZW1payBzdWRhaCBlZmVrdGlmPyIsDQogICAgDQogICAgIlNlYmVyYXBhIHB1YXMgQW5kYSB0ZXJoYWRhcCBsYXlhbmFuIGJhbnR1YW4gcGVueWVsZXNhaWFuIHN0dWRpPyIsDQogICAgIlNlYmVyYXBhIGNlcGF0IHByb3NlcyBsYXlhbmFuIHNlcGVydGkgcGVuZ2FqdWFuIHNpZGFuZyBhdGF1IHNlbWluYXI/IiwNCiAgICAiQXBha2FoIEFuZGEgdGFodSB0YWhhcGFuIHBlbnllbGVzYWlhbiBzdHVkaT8iLA0KICAgICJBcGFrYWggZG9zZW4gcGVtYmltYmluZyBBbmRhIGFrdGlmIGRhbGFtIHByb3NlcyBiaW1iaW5nYW4gYWtoaXIgc3R1ZGk/IiwNCiAgICAiU2FyYW4gYXRhdSBtYXN1a2FuIEFuZGEgdW50dWsgcGVuaW5na2F0YW4gbGF5YW5hbiBwZW55ZWxlc2FpYW4gc3R1ZGk/Ig0KICApLA0KICBCZW50dWsgPSBjKA0KICAgIHJlcCgiU2thbGEgMeKAkzUiLCAzKSwgIllhL1RpZGFrIiwgIklzaWFuIiwNCiAgICByZXAoIlNrYWxhIDHigJM1IiwgMyksICJZYS9UaWRhayIsICJQaWxpaGFuIEdhbmRhIChMaWtlcnQpIiwNCiAgICByZXAoIlNrYWxhIDHigJM1IiwgMyksICJZYS9UaWRhayIsICJJc2lhbiIsDQogICAgcmVwKCJTa2FsYSAx4oCTNSIsIDMpLCAiWWEvVGlkYWsiLCAiUGlsaWhhbiBHYW5kYSAoTGlrZXJ0KSIsDQogICAgcmVwKCJTa2FsYSAx4oCTNSIsIDIpLCByZXAoIllhL1RpZGFrIiwgMiksICJJc2lhbiINCiAgKQ0KKQ0KDQprYWJsZShwZXJ0YW55YWFuKQ0KYGBgDQoNCiMjIDMuIFNrZW1hIFZhbGlkYXNpIEluc3RydW1lbg0KDQojIyMgMy4xIFZhbGlkaXRhcyBJc2kNCg0KSW5zdHJ1bWVuIGluaSB0ZWxhaCBkaXJhbmNhbmcgYmVyZGFzYXJrYW4gdGVvcmkgZGFuIHByYWt0aWsgc3VydmVpIGtlcHVhc2FuIGxheWFuYW4gcGVuZGlkaWthbiBzZXJ0YSB0ZWxhaCBtZWxhbHVpIHByb3NlcyB2YWxpZGFzaSBvbGVoOg0KDQotICoqMSBhaGxpIGJpZGFuZyBha2FkZW1payoqIOKAkyB1bnR1ayBtZW5pbGFpIHJlbGV2YW5zaSBpc2kgdGVyaGFkYXAgZG9tYWluIGxheWFuYW4gYWthZGVtaWsuDQotICoqMSBkb3NlbiBwZW1iaW1iaW5nIHN1cnZlaSoqIOKAkyB1bnR1ayBtZW1lcmlrc2EgbWV0b2RvbG9naSBkYW4gc3RydWt0dXIgcGVydGFueWFhbi4NCi0gKioxIG1haGFzaXN3YSBzZW5pb3IqKiDigJMgdW50dWsgbWVuZ3VqaSBrZWplbGFzYW4gYmFoYXNhLCBrZXRlcmJhY2FhbiwgZGFuIHBlbmdhbGFtYW4gcGVuZ2d1bmEgKHVzZXIgZXhwZXJpZW5jZSkuDQoNClZhbGlkaXRhcyBpc2kgZGFwYXQgZGlwZXJrdWF0IGRlbmdhbiBtZXRvZGUgKipDb250ZW50IFZhbGlkaXR5IEluZGV4IChDVkkpKiogamlrYSBkaWJ1dHVoa2FuLCBuYW11biB2YWxpZGFzaSBhaGxpIHNlY2FyYSBkZXNrcmlwdGlmIHN1ZGFoIG1lbmN1a3VwaSB1bnR1ayB0YWhhcGFuIGF3YWwgaW5pLg0KDQotIFBlbmplbGFzYW4gdGVvcmkNCi0gS29kZSBhbmFsaXNpcyBLTU8gZGFuIEJhcnRsZXR0DQotIFZpc3VhbGlzYXNpIHNjcmVlIHBsb3QNCi0gRUZBIGRlbmdhbiByb3Rhc2kgdmFyaW1heA0KLSBJbnRlcnByZXRhc2kgaGFzaWwNCg0KIyMjIDMuMiBWYWxpZGl0YXMgS29uc3RydWsNCg0KVmFsaWRpdGFzIGtvbnN0cnVrIGRpdWppIG1lbmdndW5ha2FuIHBlbmRla2F0YW4gKipBbmFsaXNpcyBGYWt0b3IgRWtzcGxvcmF0b3JpIChFeHBsb3JhdG9yeSBGYWN0b3IgQW5hbHlzaXMvRUZBKSoqLiBUdWp1YW4gZGFyaSBFRkEgYWRhbGFoIHVudHVrIG1lbmdpZGVudGlmaWthc2kgc3RydWt0dXIgbGF0ZW4gZGFyaSBidXRpci1idXRpciBzdXJ2ZWkgZGFuIG1lbmdlbG9tcG9ra2FubnlhIGtlIGRhbGFtIGZha3Rvci1mYWt0b3IgeWFuZyBtZXJlcHJlc2VudGFzaWthbiBkaW1lbnNpIGxheWFuYW4gYWthZGVtaWsgc2VwZXJ0aToNCg0KLSBLUlMgT25saW5lICANCi0gQmltYmluZ2FuIEFrYWRlbWlrICANCi0gUGVsYXlhbmFuIEFkbWluaXN0cmFzaSAgDQotIEFrc2VzIEluZm9ybWFzaSBBa2FkZW1payAgDQotIEJhbnR1YW4gUGVueWVsZXNhaWFuIFN0dWRpDQoNCiMjIyMgVWppIFByYS1BbmFsaXNpcyBGYWt0b3INCg0KU2ViZWx1bSBtZWxha3VrYW4gRUZBLCB0ZXJsZWJpaCBkYWh1bHUgZGlsYWt1a2FuIHBlbmd1amlhbiBrZWxheWFrYW4gZGF0YSBtZW5nZ3VuYWthbjoNCg0KLSAqKkthaXNlci1NZXllci1PbGtpbiAoS01PKSBNZWFzdXJlIG9mIFNhbXBsaW5nIEFkZXF1YWN5KiosIHVudHVrIG1lbmd1a3VyIGtlY3VrdXBhbiBzYW1wZWwuDQotICoqQmFydGxldHTigJlzIFRlc3Qgb2YgU3BoZXJpY2l0eSoqLCB1bnR1ayBtZW5ndWppIGFwYWthaCBtYXRyaWtzIGtvcmVsYXNpIHNpZ25pZmlrYW4gYmVyYmVkYSBkYXJpIG1hdHJpa3MgaWRlbnRpdGFzLg0KDQpgYGB7ciBrbW8tYmFydGxldHQtdGFiZWwsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpsaWJyYXJ5KHBzeWNoKQ0KbGlicmFyeShyZWFkcikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGtuaXRyKQ0KDQojIE1lbWJhY2EgZGF0YQ0KZGF0YSA8LSByZWFkX2Nzdigic3VydmV5X3Jlc3BvbnNlcy5jc3YiKQ0KDQojIE1lbWlsaWggc3Vic2V0IGRhdGEgYmVyZGFzYXJrYW4ga2F0YSBrdW5jaSB2YXJpYWJlbA0Kc3ViZGF0YSA8LSBkYXRhWywgZ3JlcCgiS1JTfEJpbWJpbmdhbnxBZG1pbmlzdHJhc2l8SW5mb3JtYXNpfEJhbnR1YW4iLCBuYW1lcyhkYXRhKSldDQpzdWJkYXRhIDwtIG5hLm9taXQoc3ViZGF0YSkNCg0KIyBIaXR1bmcgS01PDQprbW9fcmVzdWx0IDwtIEtNTyhzdWJkYXRhKQ0KDQojIEhpdHVuZyBCYXJ0bGV0dCdzIFRlc3QNCmJhcnRsZXR0X3Jlc3VsdCA8LSBjb3J0ZXN0LmJhcnRsZXR0KGNvcihzdWJkYXRhKSwgbiA9IG5yb3coc3ViZGF0YSkpDQoNCiMgQnVhdCB0YWJlbCBLTU86IHBlciB2YXJpYWJlbA0Ka21vX2RldGFpbCA8LSBkYXRhLmZyYW1lKA0KICBWYXJpYWJlbCA9IGNvbG5hbWVzKHN1YmRhdGEpLA0KICBLTU9fVmFsdWUgPSByb3VuZChrbW9fcmVzdWx0JE1TQWksIDMpDQopDQoNCiMgVGFtYmFoa2FuIGJhcmlzIHRvdGFsIChvdmVyYWxsIEtNTykNCmttb19kZXRhaWwgPC0gcmJpbmQoDQogIGttb19kZXRhaWwsDQogIGRhdGEuZnJhbWUoVmFyaWFiZWwgPSAiS01PIFRvdGFsIiwgS01PX1ZhbHVlID0gcm91bmQoa21vX3Jlc3VsdCRNU0EsIDMpKQ0KKQ0KDQojIEJ1YXQgdGFiZWwgQmFydGxldHQncyBUZXN0DQpiYXJ0bGV0dF90YWJsZSA8LSBkYXRhLmZyYW1lKA0KICBTdGF0aXN0aWsgPSBjKCJDaGktU3F1YXJlIiwgImRmIiwgInAtdmFsdWUiKSwNCiAgTmlsYWkgPSBjKHJvdW5kKGJhcnRsZXR0X3Jlc3VsdCRjaGlzcSwgMyksDQogICAgICAgICAgICBiYXJ0bGV0dF9yZXN1bHQkZGYsDQogICAgICAgICAgICByb3VuZChiYXJ0bGV0dF9yZXN1bHQkcC52YWx1ZSwgMykpDQopDQoNCiMgVGFtcGlsa2FuIHRhYmVsLXRhYmVsDQprYWJsZShrbW9fZGV0YWlsLCBjYXB0aW9uID0gIlRhYmVsIE5pbGFpIEtNTyBwZXIgVmFyaWFiZWwgZGFuIFRvdGFsIikNCmthYmxlKGJhcnRsZXR0X3RhYmxlLCBjYXB0aW9uID0gIkhhc2lsIFVqaSBCYXJ0bGV0dCdzIFRlc3Qgb2YgU3BoZXJpY2l0eSIpDQoNCmBgYA0KDQoNCiMjIyBLZXNpbXB1bGFuDQoNCkJlcmRhc2Fya2FuIGhhc2lsIGFuYWxpc2lzIHZhbGlkaXRhcyBrb25zdHJ1ayBtZWxhbHVpICoqRXhwbG9yYXRvcnkgRmFjdG9yIEFuYWx5c2lzIChFRkEpKiosIGRpcGVyb2xlaCBoYXNpbCBzZWJhZ2FpIGJlcmlrdXQ6DQoNCiMjIyMg8J+UuSBVamkgS2VsYXlha2FuIEFuYWxpc2lzIEZha3RvcjoNCg0KLSAqKk5pbGFpIEthaXNlci1NZXllci1PbGtpbiAoS01PKSoqIHNlYmVzYXIgKiowLjUwNyoqLCB5YW5nIGJlcmFydGkgKiprYXRlZ29yaSAia3VyYW5nIG1lbWFkYWkiKiogKEtNTyA8IDAuNjAgbWVudW5qdWtrYW4ga2VjdWt1cGFuIHNhbXBlbCB5YW5nIGt1cmFuZykuIERlbmdhbiBuaWxhaSBLTU8gaW5pLCBkYXRhIGt1cmFuZyBsYXlhayB1bnR1ayBkaWxha3VrYW4gYW5hbGlzaXMgZmFrdG9yLg0KICANCi0gKipVamkgQmFydGxldHTigJlzIFRlc3Qgb2YgU3BoZXJpY2l0eSoqIG1lbmdoYXNpbGthbiAqKm5pbGFpIENoaS1zcXVhcmUgPSA5LjAwOSoqLCAqKmRmID0gMTAqKiwgZGFuICoqcC12YWx1ZSA9IDAuNTMxKiosIHlhbmcgYmVyYXJ0aSAqKnAgPiAwLjA1KiosIHNlaGluZ2dhIHRpZGFrIGFkYSBidWt0aSB5YW5nIGN1a3VwIHVudHVrIG1lbm9sYWsgaGlwb3Rlc2lzIG5vbCBiYWh3YSBtYXRyaWtzIGtvcmVsYXNpIGFkYWxhaCBtYXRyaWtzIGlkZW50aXRhcy4gSW5pIG1lbnVuanVra2FuIGJhaHdhICoqa29yZWxhc2kgYW50YXIgaXRlbSBrdXJhbmcgc2lnbmlmaWthbioqIHVudHVrIG1lbGFrdWthbiBhbmFsaXNpcyBmYWt0b3IuDQoNCkRlbmdhbiBkZW1pa2lhbiwgKipkYXRhIHRpZGFrIGxheWFrKiogdW50dWsgZGlsYWt1a2FuIEVGQSwgZGFuIG11bmdraW4gZGlwZXJsdWthbiByZXZpc2kgYXRhdSBwZW5ndW1wdWxhbiBkYXRhIHRhbWJhaGFuIHVudHVrIG1lbmluZ2thdGthbiBrZWN1a3VwYW4gc2FtcGVsIGRhbiBrb3JlbGFzaSBhbnRhciBpdGVtLg0KDQojIyMjIFBlbmplbGFzYW46DQotICoqS01PICgwLjUwNykqKjogTmlsYWkgS01PIGluaSBtZW51bmp1a2thbiBiYWh3YSBkYXRhIGt1cmFuZyBtZW1hZGFpIHVudHVrIGFuYWxpc2lzIGZha3Rvci4gQmlhc2FueWEsIG5pbGFpIEtNTyB5YW5nIGJhaWsgaGFydXMgbGViaWggYmVzYXIgZGFyaSAwLjYwLCBkZW5nYW4gbmlsYWkgPiAwLjgwIGRpYW5nZ2FwIHNhbmdhdCBiYWlrLg0KLSAqKkJhcnRsZXR0J3MgVGVzdCoqOiBOaWxhaSAqKnAtdmFsdWUgPSAwLjUzMSoqIGxlYmloIGJlc2FyIGRhcmkgMC4wNSwgeWFuZyBtZW51bmp1a2thbiBiYWh3YSB0aWRhayBhZGEga29yZWxhc2kgc2lnbmlmaWthbiBhbnRhciBpdGVtIHlhbmcgbWVtYWRhaSB1bnR1ayBtZWxha3VrYW4gYW5hbGlzaXMgZmFrdG9yLiBTZWhhcnVzbnlhICoqcCA8IDAuMDUqKiB1bnR1ayBtZWxhbmp1dGthbiBhbmFsaXNpcyBmYWt0b3IuDQoNCiMjIyMjIFBlbGFrc2FuYWFuIEVGQQ0KDQpTZXRlbGFoIGRhdGEgbG9sb3MgdWppIHByYS1hbmFsaXNpcywgbGFuZ2thaCBzZWxhbmp1dG55YSBhZGFsYWggbWVsYWt1a2FuIEVGQS4NCg0KYGBge3IgZWZhLWFuYWx5c2lzLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShwc3ljaCkNCmxpYnJhcnkocmVhZHIpDQpsaWJyYXJ5KEdQQXJvdGF0aW9uKQ0KbGlicmFyeShrbml0cikgICAjIFVudHVrIGthYmxlDQpsaWJyYXJ5KGRwbHlyKSAgICMgVW50dWsgbWFuaXB1bGFzaSBkYXRhDQoNCiMgTWVtYmFjYSBkYXRhDQpkYXRhIDwtIHJlYWRfY3N2KCJzdXJ2ZXlfcmVzcG9uc2VzLmNzdiIpDQoNCiMgTWVtaWxpaCBrb2xvbSB5YW5nIHJlbGV2YW4NCnN1YmRhdGEgPC0gZGF0YVssIGdyZXAoIktSU3xCaW1iaW5nYW58QWRtaW5pc3RyYXNpfEluZm9ybWFzaXxCYW50dWFuIiwgbmFtZXMoZGF0YSkpXQ0KDQojIE1lbmdoYXB1cyBkYXRhIHlhbmcgaGlsYW5nDQpzdWJkYXRhIDwtIG5hLm9taXQoc3ViZGF0YSkNCg0KIyBNZW1hc3Rpa2FuIGhhbnlhIGtvbG9tIG51bWVyaWsNCnN1YmRhdGEgPC0gc3ViZGF0YVtzYXBwbHkoc3ViZGF0YSwgaXMubnVtZXJpYyldDQoNCiMgTWVsYWt1a2FuIEVGQSBkZW5nYW4gNSBmYWt0b3INCmVmYV9yZXN1bHQgPC0gZmEoc3ViZGF0YSwgbmZhY3RvcnMgPSA1LCByb3RhdGUgPSAidmFyaW1heCIsIGZtID0gIm1sIikNCg0KIyBNZW5ndWJhaCBoYXNpbCBsb2FkaW5ncyBrZSBkYXRhLmZyYW1lDQpsb2FkaW5nc19kZiA8LSBhcy5kYXRhLmZyYW1lKHVuY2xhc3MoZWZhX3Jlc3VsdCRsb2FkaW5ncykpDQoNCiMgTWVuYW1iYWhrYW4gbmFtYSB2YXJpYWJlbCBzZWJhZ2FpIGtvbG9tDQpsb2FkaW5nc19kZiA8LSBsb2FkaW5nc19kZiAlPiUNCiAgbXV0YXRlKEl0ZW0gPSByb3duYW1lcyhsb2FkaW5nc19kZikpICU+JQ0KICBzZWxlY3QoSXRlbSwgZXZlcnl0aGluZygpKQ0KDQojIE1lbmFtcGlsa2FuIHNlYmFnYWkgdGFiZWwNCmthYmxlKGxvYWRpbmdzX2RmLCBjYXB0aW9uID0gIlRhYmVsIExvYWRpbmdzIEZha3RvciAoRUZBIC0gVmFyaW1heCkiKQ0KDQpgYGANCg0KIyMjIyBJbnRlcnByZXRhc2kgSGFzaWwgRXhwbG9yYXRvcnkgRmFjdG9yIEFuYWx5c2lzIChFRkEpDQoNCkJlcmRhc2Fya2FuIGhhc2lsIGFuYWxpc2lzIGZha3RvciBla3NwbG9yYXRvcmkgbWVuZ2d1bmFrYW4gbWV0b2RlICpNYXhpbXVtIExpa2VsaWhvb2QqIGRhbiByb3Rhc2kgKipWYXJpbWF4KiosIGRpcGVyb2xlaCBsaW1hIGZha3Rvci4gTmFtdW4sIGhhc2lsIG1lbnVuanVra2FuIGJhaHdhOg0KDQotICoqU2ViYWdpYW4gYmVzYXIgbmlsYWkgbG9hZGluZyBmYWt0b3Igc2FuZ2F0IHJlbmRhaCoqLCB5YWtuaSBkaSBiYXdhaCAwLjMuDQotICoqVGlkYWsgdGVyZGFwYXQgaXRlbSB5YW5nIHNlY2FyYSBrb25zaXN0ZW4gbWVtaWxpa2kgbG9hZGluZyB0aW5nZ2kgKD4gMC40KSBwYWRhIHNhdHUgZmFrdG9yIHRlcnRlbnR1LioqDQotIENvbnRvaG55YToNCiAgLSAqU2ViZXJhcGEgY2VwYXQgc2lzdGVtIEtSUyBvbmxpbmUgbWVyZXNwb25zIHNhYXQgZGlha3Nlcz8qIOKGkiBsb2FkaW5nIC0wLjE4NSAoTUwxKQ0KICAtICpBcGFrYWggQW5kYSBwZXJuYWggbWVuZ2FsYW1pIGtlc3VsaXRhbiB0ZWtuaXMgc2FhdCBtZW5naXNpIEtSUyBvbmxpbmU/KiDihpIgbG9hZGluZyAwLjE5MCAoTUwxKQ0KICAtICpTYXJhbiBBbmRhIHVudHVrIG1lbmluZ2thdGthbiBsYXlhbmFuIEtSUyBvbmxpbmU/KiDihpIgbG9hZGluZyAtMC4xOTEgKE1MMikNCg0KU2VsYWluIGl0dSwgbmlsYWkgKipTUyBMb2FkaW5ncyoqIGRhbiAqKlByb3BvcnRpb24gVmFyaWFuY2UqKiBwYWRhIGtlbGltYSBmYWt0b3Igc2FuZ2F0IGtlY2lsOg0KDQp8IEZha3RvciB8IFNTIExvYWRpbmdzIHwgUHJvcG9yc2kgVmFyaWFucyB8IFZhcmlhbnMgS3VtdWxhdGlmIHwNCnwtLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tfA0KfCBNTDEgICAgfCAwLjA3OCAgICAgICB8IDEuNiUgICAgICAgICAgICAgfCAxLjYlICAgICAgICAgICAgICB8DQp8IE1MMiAgICB8IDAuMDc3ICAgICAgIHwgMS41JSAgICAgICAgICAgICB8IDMuMSUgICAgICAgICAgICAgIHwNCnwgTUwzICAgIHwgMC4wNDQgICAgICAgfCAwLjklICAgICAgICAgICAgIHwgNC4wJSAgICAgICAgICAgICAgfA0KfCBNTDQgICAgfCAwLjAwMCAgICAgICB8IDAuMCUgICAgICAgICAgICAgfCA0LjAlICAgICAgICAgICAgICB8DQp8IE1MNSAgICB8IDAuMDAwICAgICAgIHwgMC4wJSAgICAgICAgICAgICB8IDQuMCUgICAgICAgICAgICAgIHwNCg0KLS0tDQoNCiMjIyMgS2VzaW1wdWxhbg0KDQpIYXNpbCBFRkEgbWVudW5qdWtrYW4gYmFod2EgKipzdHJ1a3R1ciBmYWt0b3IgeWFuZyB0ZXJiZW50dWsgdGlkYWsgbGF5YWsgdW50dWsgZGlpbnRlcnByZXRhc2lrYW4qKi4gSGFsIGluaSBkaXNlYmFia2FuIG9sZWg6DQoNCi0gKipSZW5kYWhueWEgbmlsYWkgS01PICgwLjUwNykqKiDihpIgbWVudW5qdWtrYW4gYmFod2Egc2FtcGVsIHRpZGFrIGN1a3VwIG1lbWFkYWkgdW50dWsgYW5hbGlzaXMgZmFrdG9yLg0KLSAqKkhhc2lsIHVqaSBCYXJ0bGV0dCB0aWRhayBzaWduaWZpa2FuIChwID0gMC41MzEpKiog4oaSIG1lbnVuanVra2FuIHRpZGFrIHRlcmRhcGF0IGtvcmVsYXNpIHlhbmcgY3VrdXAgYW50YXIgaXRlbS4NCi0gKipOaWxhaSBmYWN0b3IgbG9hZGluZ3Mgc2FuZ2F0IGtlY2lsIGRhbiB0ZXJzZWJhciBkaSBiYW55YWsgZmFrdG9yLioqDQoNCj4gT2xlaCBrYXJlbmEgaXR1LCAqKmluc3RydW1lbiBpbmkgYmVsdW0gbWVtZW51aGkgc3lhcmF0IHVudHVrIGRpYW5hbGlzaXMgbWVuZ2d1bmFrYW4gRUZBKiouIFBlcmx1IGRpbGFrdWthbiByZXZpc2kgcGFkYSBpdGVtIHBlcnRhbnlhYW4gYXRhdSBwZW5ndW1wdWxhbiBkYXRhIHRhbWJhaGFuIGFnYXIgaGFzaWwgbGViaWggcmVwcmVzZW50YXRpZi4NCg0KIyMjIDMuMyBSZWxpYWJpbGl0YXMNCg0KUmVsaWFiaWxpdGFzIGluc3RydW1lbiBkaXVrdXIgbWVuZ2d1bmFrYW4gKipDcm9uYmFjaOKAmXMgQWxwaGEqKiwgeWFpdHUgdWt1cmFuIHN0YXRpc3RpayB5YW5nIG1lbmlsYWkgKiprb25zaXN0ZW5zaSBpbnRlcm5hbCoqIGRhcmkgc2VqdW1sYWggYnV0aXIgeWFuZyBzZWhhcnVzbnlhIG1lbmd1a3VyIGtvbnN0cnVrIHlhbmcgc2FtYS4NCg0KIyMjIyDwn5KhIEludGVycHJldGFzaSBOaWxhaSBDcm9uYmFjaOKAmXMgQWxwaGE6DQoNCnwgTmlsYWkgQWxwaGEgfCBJbnRlcnByZXRhc2kgICAgICAgICB8DQp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tfA0KfCDiiaUgMC45MCAgICAgIHwgU2FuZ2F0IHRpbmdnaSAgICAgICAgIHwNCnwgMC44MOKAkzAuODkgICB8IFRpbmdnaSAgICAgICAgICAgICAgICB8DQp8IDAuNzDigJMwLjc5ICAgfCBDdWt1cCAgICAgICAgICAgICAgICAgfA0KfCAwLjYw4oCTMC42OSAgIHwgS3VyYW5nICAgICAgICAgICAgICAgIHwNCnwgPCAwLjYwICAgICAgfCBUaWRhayByZWxpYWJlbCAgICAgICAgfA0KDQoNCiMjIyMg8J+TjCAqKkNvbnRvaCBQZXJoaXR1bmdhbiBNYW51YWwgQ3JvbmJhY2jigJlzIEFscGhhIOKAkyBEaW1lbnNpIEtSUyBPbmxpbmUgKERhdGEgTnlhdGEpKioNCg0KVW50dWsgbWVuZ3VqaSByZWxpYWJpbGl0YXMgYXdhbCwgZGlndW5ha2FuIDMgaXRlbSBwYWRhIGxheWFuYW4gKipLUlMgT25saW5lKiogZGVuZ2FuIHNrYWxhIExpa2VydCAoMeKAkzUpOg0KDQoxLiAqKktSU19LZW11ZGFoYW5fQWtzZXMqKiAgDQoyLiAqKktSU19LZWNlcGF0YW5fU2lzdGVtKiogIA0KMy4gKipLUlNfS2VqZWxhc2FuX0luZm8qKg0KDQoNCkxhbmdrYWggcGVyaGl0dW5nYW4gbWFudWFsIGJlcmRhc2Fya2FuIGRhdGEgYWt0dWFsOg0KDQoxLiBKdW1sYWggaXRlbTogKipOID0gMyoqDQoyLiBWYXJpYW5zIHRpYXAgaXRlbToNCiAgIC0gS2VtdWRhaGFuX0Frc2VzOiAqKjIuMTgqKg0KICAgLSBLZWNlcGF0YW5fU2lzdGVtOiAqKjIuMTYqKg0KICAgLSBLZWplbGFzYW5fSW5mbzogKioxLjc2KiogIA0KICAg4oaSICoqSnVtbGFoIHZhcmlhbnMgaXRlbSAo4oiRz4PCsl9pdGVtKSA9IDYuMTAqKg0KMy4gVG90YWwgc2tvciBwZXIgcmVzcG9uZGVuIGRpaGl0dW5nIGRhcmkgcGVuanVtbGFoYW4ga2V0aWdhIGl0ZW0uDQo0LiBWYXJpYW5zIHNrb3IgdG90YWwgc2VsdXJ1aCByZXNwb25kZW46ICoqz4PCsl90b3RhbCA9IDYuMjAqKg0KNS4gU3Vic3RpdHVzaSBrZSBydW11cyBDcm9uYmFjaOKAmXMgQWxwaGE6DQoNCiQkDQpcYWxwaGEgPSBcZnJhY3tOfXtOIC0gMX0gXGxlZnQoMSAtIFxmcmFje1xzdW0gXHNpZ21hXjJfe1x0ZXh0e2l0ZW19fX17XHNpZ21hXjJfe1x0ZXh0e3RvdGFsfX19IFxyaWdodCkNCiQkDQoNCiQkDQpcYWxwaGEgPSBcZnJhY3szfXsyfSBcbGVmdCgxIC0gXGZyYWN7Ni4xMH17Ni4yMH0gXHJpZ2h0KQ0KPSAxLjUgXHRpbWVzIFxsZWZ0KDEgLSAwLjk4NFxyaWdodCkNCj0gMS41IFx0aW1lcyAwLjAxNg0KPSAwLjAyNQ0KJCQNCg0KDQojIyMjIPCfk4kgKipJbnRlcnByZXRhc2kgSGFzaWw6KioNCg0KTmlsYWkgKirOsSA9IDAuMDI1KiogbWVudW5qdWtrYW4gYmFod2E6DQoNCi0gQnV0aXItYnV0aXIgKip0aWRhayBjdWt1cCBrb25zaXN0ZW4qKiBkYWxhbSBtZW5ndWt1ciBrb25zdHJ1ayB5YW5nIHNhbWEuDQotIEtvcmVsYXNpIGFudGFyIGl0ZW0gc2FuZ2F0IHJlbmRhaC4NCi0gUGVybHUgKipyZXZpc2kvcmVkZXNhaW4qKiB0ZXJoYWRhcCBwZXJ0YW55YWFuIGFnYXIgbGViaWggZm9rdXMgZGFuIGhvbW9nZW4uDQotIE11bmdraW4gZGlidXR1aGthbiAqKml0ZW0gdGFtYmFoYW4qKiBhZ2FyIGtvbnN0cnVrIGxlYmloIGt1YXQuDQoNCiMjIDQuICoqU3RyYXRlZ2kgRGlzdHJpYnVzaSBLdWVzaW9uZXIqKiBkYW4gKipTdHJhdGVnaSBTYW1wbGluZyoqDQoNCiMjIyA0LjEgKipTdHJhdGVnaSBEaXN0cmlidXNpIEt1ZXNpb25lcioqIA0KDQojIyMjICA0LjEuMSAqKlBsYXRmb3JtIERpc3RyaWJ1c2kqKg0KDQotIE1lbmdndW5ha2FuICoqR29vZ2xlIEZvcm0qKiwgeWFuZyBsaW5rLW55YSBzdWRhaCBrYW11IGJ1YXQuDQotIEFsYXNhbiBwZW1pbGloYW46DQogIC0gTXVkYWggZGlha3NlcyBvbGVoIG1haGFzaXN3YSBtZWxhbHVpIGVtYWlsLCBncnVwIFdoYXRzQXBwLCBkYW4gbWVkaWEgc29zaWFsIGthbXB1cy4NCiAgLSBCaXNhIGxhbmdzdW5nIG1lbmctZXhwb3J0IGhhc2lsIGtlIHNwcmVhZHNoZWV0IHVudHVrIGFuYWxpc2lzIGxlYmloIGxhbmp1dC4NCiAgLSBNZW5kdWt1bmcgYmVyYmFnYWkgdGlwZSBwZXJ0YW55YWFuIChTa2FsYSBMaWtlcnQsIGlzaWFuLCBwaWxpaGFuIGdhbmRhLCBkc2IpLg0KDQojIyMjIDQuMS4yICoqVGFyZ2V0IFJlc3BvbmRlbioqDQotIE1haGFzaXN3YSBha3RpZiBJVFNCIGRhcmkgc2VtdWEgcHJvZ3JhbSBzdHVkaSBkYW4gYW5na2F0YW4uDQotIEZva3VzIHV0YW1hOiBtYWhhc2lzd2EgeWFuZyAqKmFrdGlmIHNlY2FyYSBha2FkZW1payoqIChwZXJuYWggbWVuZ2Frc2VzIGxheWFuYW4gc2VwZXJ0aSBLUlMsIGJpbWJpbmdhbiwgZGxsLikNCg0KIyMjIyA0LjEuMyAqKkR1cmFzaSBEaXN0cmlidXNpKioNCi0gRGlyZW5jYW5ha2FuIHNlbGFtYSAqKjEgbWluZ2d1KiogKG1pc2FsbnlhOiAxNeKAkzIyIEFwcmlsIDIwMjUpLg0KLSBQZW5naW5nYXQgZGlraXJpbSBIKzIgZGFuIEgrNSBtZWxhbHVpIG1lZGlhIHlhbmcgc2FtYS4NCg0KIyMjIyA0LjEuNCAqKlN0cmF0ZWdpIFBlbnllYmFyYW4qKg0KDQotICoqTGluayBTdXJ2ZWkqKjogW0dvb2dsZSBGb3JtIExheWFuYW4gQWthZGVtaWsgTWFoYXNpc3dhXShodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9mb3Jtcy9kL2UvMUZBSXBRTFNlWmt5Yko4R0Z3blljSndSa011TS1QOEZXVl9DRWhIb203dXB6V1JwcEtTY0czdXcvdmlld2Zvcm0pDQotICoqRGlzdHJpYnVzaSoqOiBFbWFpbCByZXNtaSwgV2hhdHNBcHAgZ3J1cCBrZWxhcywgbWVkaWEgc29zaWFsIGFrYWRlbWlrDQotICoqVGVrbmlrIFNhbXBsaW5nKio6IFN0cmF0aWZpZWQgcmFuZG9tIHNhbXBsaW5nIGJlcmRhc2Fya2FuIGZha3VsdGFzDQotICoqSnVtbGFoIFNhbXBlbCBUYXJnZXQqKjogNTAwIG1haGFzaXN3YSBkYXJpIHRvdGFsIHBvcHVsYXNpIDEwMDANCg0KIyMjIDQuMiAqKlN0cmF0ZWdpIFNhbXBsaW5nKioNCg0KIyMjIyA0LjIuMSAqKkplbmlzIFNhbXBsaW5nKioNCi0gKipTdHJhdGlmaWVkIFJhbmRvbSBTYW1wbGluZyoqOiBkaWJhZ2kgYmVyZGFzYXJrYW4gKipwcm9ncmFtIHN0dWRpIGRhbiBhbmdrYXRhbioqIHVudHVrIG1lbWFzdGlrYW4gcHJvcG9yc2kgcmVzcG9uZGVuIGFkaWwgZGFuIG1ld2FraWxpLg0KLSBNaXNhbG55YToNCiAgLSA1IHByb2RpIMOXIDUgYW5na2F0YW4g4oaSIDI1IHN0cmF0YQ0KICAtIFNldGlhcCBzdHJhdGEgZGl1c2FoYWthbiBtZW1pbGlraSAqKm1pbmltYWwgMjAgcmVzcG9uZGVuKioNCg0KIyMjIyA0LjIuMyAqKlVrdXJhbiBTYW1wZWwqKg0KLSBUYXJnZXQ6ICoqbWluaW1hbCA1MDAgcmVzcG9uZGVuKioNCi0gQWxhc2FubnlhOg0KICAtIEp1bWxhaCBpbmkgbWVtYWRhaSB1bnR1ayBtZWxha3VrYW4gKiphbmFsaXNpcyB2YWxpZGl0YXMgZGFuIHJlbGlhYmlsaXRhcyoqIGluc3RydW1lbg0KICAtIE1lbmphbWluIGdlbmVyYWxpc2FzaSBoYXNpbCBrZSBzZWx1cnVoIHBvcHVsYXNpIG1haGFzaXN3YSBha3RpZiBJVFNCDQoNCiMjIyMgNC4yLjQgKipLcml0ZXJpYSBJbmtsdXNpKioNCi0gTWFoYXNpc3dhIGFrdGlmIElUU0Igc2VtZXN0ZXIgZ2VuYXAgVEEgMjQvMjUNCi0gU3VkYWggcGVybmFoIG1lbmdndW5ha2FuIG1pbmltYWwgMSBkYXJpIDUgbGF5YW5hbiBha2FkZW1payB5YW5nIGRpdGFueWFrYW4NCg0KDQojIyA1LiBTaW11bGFzaSBEYXRhIGRhbiBBbmFsaXNpcyBBd2FsDQoNCiMjIyBTdGF0aXN0aWsgRGVza3JpcHRpZg0KDQpTZWJlbHVtIG1lbGFrdWthbiBhbmFsaXNpcyBsZWJpaCBsYW5qdXQsIHBlcmx1IGRpbGFrdWthbiBhbmFsaXNpcyBzdGF0aXN0aWsgZGVza3JpcHRpZiB1bnR1ayBtZW5nZXRhaHVpIGdhbWJhcmFuIHVtdW0gbWVuZ2VuYWkgcGVyc2Vwc2kgbWFoYXNpc3dhIHRlcmhhZGFwIGxheWFuYW4gYWthZGVtaWsgeWFuZyBkaXN1cnZleS4gU3RhdGlzdGlrIGRlc2tyaXB0aWYgaW5pIG1lbmNha3VwOg0KDQotICoqTWVhbiAoUmF0YS1yYXRhKSoqOiBVbnR1ayBtZW5nZXRhaHVpIHNrb3IgcmF0YS1yYXRhIGtlcHVhc2FuIG1haGFzaXN3YSB0ZXJoYWRhcCB0aWFwIGxheWFuYW4gYWthZGVtaWsuDQotICoqTWVkaWFuIGRhbiBNb2R1cyoqOiBVbnR1ayBtZWxpaGF0IGRpc3RyaWJ1c2kgZGFuIGtlY2VuZGVydW5nYW4gcHVzYXQgZGF0YS4NCi0gKipTdGFuZGFyIERldmlhc2kqKjogVW50dWsgbWVuZ2V0YWh1aSBzZWphdWggbWFuYSB2YXJpYXNpIHNrb3Iga2VwdWFzYW4gbWFoYXNpc3dhLg0KDQojIyMgVmlzdWFsaXNhc2kgUmF0YS1yYXRhIFNrb3IgS2VwdWFzYW4gcGVyIExheWFuYW4NCg0KVW50dWsgbWVtcGVybXVkYWggcGVtYWhhbWFuLCBoYXNpbCByYXRhLXJhdGEgc2tvciBrZXB1YXNhbiBwZXIgbGF5YW5hbiBha2FkZW1payBkYXBhdCBkaXZpc3VhbGlzYXNpa2FuIGRhbGFtIGJlbnR1ayBncmFmaWsgYmFyIGF0YXUgYm94IHBsb3QuDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShyZWFkcikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHRpZHlyKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShtb2RlZXN0KSAgIyB1bnR1ayBtZW5naGl0dW5nIG1vZHVzDQpsaWJyYXJ5KERUKQ0KDQojIEJhY2EgZGF0YQ0KZGF0YSA8LSByZWFkX2Nzdigic3VydmV5X3Jlc3BvbnNlcy5jc3YiKQ0KDQojIFBpbGloIGhhbnlhIGtvbG9tIG51bWVyaWsNCmRhdGFfbnVtZXJpYyA8LSBkYXRhWywgc2FwcGx5KGRhdGEsIGlzLm51bWVyaWMpXQ0KZGF0YV9udW1lcmljIDwtIG5hLm9taXQoZGF0YV9udW1lcmljKQ0KDQojIFViYWgga2UgZm9ybWF0IGxvbmcgdW50dWsgdmlzdWFsaXNhc2kgZGFuIGFuYWxpc2lzDQpkYXRhX2xvbmcgPC0gcGl2b3RfbG9uZ2VyKGRhdGFfbnVtZXJpYywgY29scyA9IGV2ZXJ5dGhpbmcoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNfdG8gPSAiSXRlbSIsIHZhbHVlc190byA9ICJTa29yIikNCg0KIyBIaXR1bmcgZGlzdHJpYnVzaSBza29yIHBlciBpdGVtDQpkaXN0cmlidXNpIDwtIGRhdGFfbG9uZyAlPiUNCiAgZ3JvdXBfYnkoSXRlbSwgU2tvcikgJT4lDQogIHN1bW1hcmlzZShKdW1sYWggPSBuKCksIC5ncm91cHMgPSAiZHJvcCIpICU+JQ0KICBjb21wbGV0ZShJdGVtLCBTa29yID0gMTo1LCBmaWxsID0gbGlzdChKdW1sYWggPSAwKSkNCg0KIyBIaXR1bmcgbmlsYWkgbWVhbiwgbWVkaWFuLCBtb2R1cyBwZXIgaXRlbQ0Kc3RhdF9zdW1tYXJ5IDwtIGRhdGFfbG9uZyAlPiUNCiAgZ3JvdXBfYnkoSXRlbSkgJT4lDQogIHN1bW1hcmlzZSgNCiAgICBNZWFuID0gcm91bmQobWVhbihTa29yKSwgMiksDQogICAgTWVkaWFuID0gbWVkaWFuKFNrb3IpLA0KICAgIE1vZHVzID0gbWZ2KFNrb3IpICU+JSBwYXN0ZShjb2xsYXBzZSA9ICIsICIpICAjIGJpc2EgbGViaWggZGFyaSBzYXR1IG1vZHVzDQogICkNCg0KIyBUYW1waWxrYW4gdGFiZWwgZGlzdHJpYnVzaSBkZW5nYW4gRFQNCmRhdGF0YWJsZShkaXN0cmlidXNpLCANCiAgICAgICAgICBjYXB0aW9uID0gIkRpc3RyaWJ1c2kgU2tvciBLZXB1YXNhbiBwZXIgSXRlbSBMYXlhbmFuIiwNCiAgICAgICAgICBvcHRpb25zID0gbGlzdChwYWdlTGVuZ3RoID0gMTApKQ0KDQojIFRhbXBpbGthbiB0YWJlbCBzdGF0aXN0aWsgcmluZ2thc2FuIGRlbmdhbiBEVA0KZGF0YXRhYmxlKHN0YXRfc3VtbWFyeSwgDQogICAgICAgICAgY2FwdGlvbiA9ICJTdGF0aXN0aWsgUmF0YS1yYXRhLCBNZWRpYW4sIGRhbiBNb2R1cyBwZXIgSXRlbSIsDQogICAgICAgICAgb3B0aW9ucyA9IGxpc3QocGFnZUxlbmd0aCA9IDEwKSkNCiMgVmlzdWFsaXNhc2kgYmFyIGNoYXJ0IGRpc3RyaWJ1c2kgc2tvciBwZXIgaXRlbQ0KZ2dwbG90KGRpc3RyaWJ1c2ksIGFlcyh4ID0gZmFjdG9yKFNrb3IpLCB5ID0gSnVtbGFoLCBmaWxsID0gZmFjdG9yKFNrb3IpKSkgKw0KICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKw0KICBmYWNldF93cmFwKH5JdGVtLCBzY2FsZXMgPSAiZnJlZV95IikgKw0KICB0aGVtZV9taW5pbWFsKCkgKw0KICBsYWJzKHRpdGxlID0gIkRpc3RyaWJ1c2kgU2tvciBLZXB1YXNhbiBNYWhhc2lzd2EgcGVyIEl0ZW0iLA0KICAgICAgIHggPSAiU2tvciBLZXB1YXNhbiIsIHkgPSAiSnVtbGFoIFJlc3BvbmRlbiIpICsNCiAgc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZSA9ICJCbHVlcyIsIG5hbWUgPSAiU2tvciIpDQoNCmBgYA0KDQojIyMgSW50ZXJwcmV0YXNpIERhdGEgS2VwdWFzYW4gTWFoYXNpc3dhDQoNCiMjIyMgUmFuZ2t1bWFuIERhdGENCg0KRGF0YSBpbmkgbWVudW5qdWtrYW4gdGluZ2thdCBrZXB1YXNhbiBtYWhhc2lzd2EgdGVyaGFkYXAgYmVyYmFnYWkgYXNwZWsgbGF5YW5hbiBhZG1pbmlzdHJhc2kgYWthZGVtaWsuIEJlcmRhc2Fya2FuIGdyYWZpayBkYW4gdGFiZWwgeWFuZyBkaXNhamlrYW4sIGtpdGEgYWthbiBtZW1iYWhhcyB0ZW11YW4gdXRhbWEuDQoNCiMjIyMgMS4gRGlzdHJpYnVzaSBTa29yIEtlcHVhc2FuDQoNCkRhcmkgZ3JhZmlrIGRpc3RyaWJ1c2kgc2tvciBrZXB1YXNhbiBwZXIgaXRlbSwgdGVybGloYXQgYmFod2Egc2ViYWdpYW4gYmVzYXIgbWFoYXNpc3dhIG1lbWJlcmlrYW4gcGVuaWxhaWFuIGRpIGtpc2FyYW4gc2tvciAzIGhpbmdnYSA1LiBIYWwgaW5pIG1lbnVuanVra2FuIGJhaHdhIG1haGFzaXN3YSB1bXVtbnlhIG1lcmFzYSBjdWt1cCBwdWFzIGRlbmdhbiBsYXlhbmFuIHlhbmcgZGliZXJpa2FuLCBtZXNraXB1biBhZGEgYmViZXJhcGEgaXRlbSB5YW5nIG1lbnVuanVra2FuIGtlcHVhc2FuIHlhbmcgbGViaWggcmVuZGFoLg0KDQojIyMjIDIuIEFuYWxpc2lzIFJhdGEtcmF0YSwgTWVkaWFuLCBkYW4gTW9kdXMNCg0KQmVyaWt1dCBhZGFsYWggYW5hbGlzaXMgZGFyaSBkYXRhIHJhdGEtcmF0YSwgbWVkaWFuLCBkYW4gbW9kdXMgYmVyZGFzYXJrYW4gcGVydGFueWFhbiB5YW5nIGRpYWp1a2FuOg0KDQp8IEl0ZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1lYW4gfCBNZWRpYW4gfCBNb2R1cyB8DQp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tfC0tLS0tLS0tfC0tLS0tLS18DQp8IEFwYSBrZW5kYWxhIHV0YW1hIHlhbmcgQW5kYSBhbGFtaSBkYWxhbSBtZW5ndXJ1cyBhZG1pbmlzdHJhc2kgYWthZGVtaWs/ICAgICAgfCAzLjA3IHwgMyAgICAgIHwgNSAgICAgfA0KfCBBcGFrYWggQW5kYSBtZXJhc2EgdGVyYmFudHUgZGVuZ2FuIGJpbWJpbmdhbiBha2FkZW1payB5YW5nIGRpYmVyaWthbj8gICAgICAgICB8IDIuOTcgfCAzICAgICAgfCAxICAgICB8DQp8IEFwYWthaCBBbmRhIHBlcm5haCBtZW5nYWxhbWkga2VzdWxpdGFuIHRla25pcyBzYWF0IG1lbmdpc2kgS1JTIG9ubGluZT8gICAgICAgfCAyLjkyIHwgMyAgICAgIHwgMyAgICAgfA0KfCBBcGFrYWggQW5kYSB0YWh1IHByb3NlZHVyIHBlbmdhanVhbiBhZG1pbmlzdHJhc2kgYWthZGVtaWs/ICAgICAgICAgICAgICAgICAgIHwgMi45OCB8IDMgICAgICB8IDEgICAgIHwNCnwgQXBha2FoIGRvc2VuIHdhbGkgQW5kYSBtZW1iYW50dSBkYWxhbSBtZW55dXN1biByZW5jYW5hIHN0dWRpPyAgICAgICAgICAgICAgICAgfCAzLjA4IHwgMyAgICAgIHwgNSAgICAgfA0KfCBTYXJhbiBBbmRhIHVudHVrIG1lbmluZ2thdGthbiBsYXlhbmFuIEtSUyBvbmxpbmU/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIuOTQgfCAzICAgICAgfCAxICAgICB8DQp8IFNlYmVyYXBhIGNlcGF0IHByb3NlcyBsYXlhbmFuIGFkbWluaXN0cmFzaT8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMi45MCB8IDMgICAgICB8IDEgICAgIHwNCnwgU2ViZXJhcGEgY2VwYXQgcmVzcG9uIGRvc2VuIHdhbGkgdGVyaGFkYXAgcGVydGFueWFhbiBha2FkZW1payBBbmRhPyAgICAgICAgICB8IDIuOTMgfCAzICAgICAgfCAyICAgICB8DQp8IFNlYmVyYXBhIGNlcGF0IHNpc3RlbSBLUlMgb25saW5lIG1lcmVzcG9ucyBzYWF0IGRpYWtzZXM/ICAgICAgICAgICAgICAgICAgICAgfCAyLjkyIHwgMyAgICAgIHwgMiAgICAgfA0KfCBTZWJlcmFwYSBqZWxhcyBpbmZvcm1hc2kgbWF0YSBrdWxpYWggeWFuZyB0ZXJzZWRpYSBzYWF0IHBlbmdpc2lhbiBLUlM/ICAgICAgfCAyLjk0IHwgMyAgICAgIHwgMSAgICAgfA0KfCBTZWJlcmFwYSBtdWRhaCBBbmRhIG1lbmdodWJ1bmdpIGRvc2VuIHdhbGkgdW50dWsga29uc3VsdGFzaSBha2FkZW1paz8gICAgICAgIHwgMi44NSB8IDMgICAgICB8IDEgICAgIHwNCnwgU2ViZXJhcGEgcHVhcyBBbmRhIGRlbmdhbiBrZW11ZGFoYW4gYWtzZXMgcG9ydGFsIEtSUyBvbmxpbmU/ICAgICAgICAgICAgICAgICB8IDMuMDMgfCAzICAgICAgfCAyICAgICB8DQp8IFNlYmVyYXBhIHB1YXMgQW5kYSB0ZXJoYWRhcCBrdWFsaXRhcyBiaW1iaW5nYW4gYWthZGVtaWsgZGFyaSBkb3NlbiB3YWxpPyAgICAgfCAzLjAzIHwgMyAgICAgIHwgNCAgICAgfA0KfCBTZWJlcmFwYSBwdWFzIEFuZGEgdGVyaGFkYXAgcGVsYXlhbmFuIGFkbWluaXN0cmFzaSBha2FkZW1paz8gICAgICAgICAgICAgICAgIHwgMy4wMiB8IDMgICAgICB8IDIgICAgIHwNCnwgU2ViZXJhcGEgcmFtYWggZGFuIG1lbWJhbnR1IHN0YWYgYWRtaW5pc3RyYXNpIGFrYWRlbWlrIGRpIGthbXB1cyBBbmRhPyAgICAgIHwgMi45NyB8IDMgICAgICB8IDIgICAgIHwNCg0KLSAqKlJhdGEtcmF0YSAoTWVhbikqKjogU2ViYWdpYW4gYmVzYXIgc2tvciBjZW5kZXJ1bmcgYmVyYWRhIGRpIHNla2l0YXIgbmlsYWkgMywgeWFuZyBtZW51bmp1a2thbiBwZW5pbGFpYW4gY3VrdXAgYmFpaywgdGV0YXBpIG1hc2loIGFkYSBydWFuZyB1bnR1ayBwZXJiYWlrYW4uDQotICoqTWVkaWFuKio6IFNlYmFnaWFuIGJlc2FyIHJlc3BvbmRlbiBtZW1iZXJpa2FuIG5pbGFpIDMsIHlhbmcgbWVudW5qdWtrYW4gYWRhbnlhIGtlc2VpbWJhbmdhbiBhbnRhcmEgeWFuZyBtZXJhc2EgY3VrdXAgcHVhcyBkYW4gdGlkYWsgcHVhcy4NCi0gKipNb2R1cyoqOiBCZWJlcmFwYSBpdGVtIG1lbnVuanVra2FuIG1vZHVzIGRpIGFuZ2thIDEgYXRhdSA1LCB5YW5nIG1lbnVuanVra2FuIGFkYW55YSBwb2xhcmlzYXNpIHBlbmRhcGF0IGRpIGJlYmVyYXBhIGFzcGVrIGxheWFuYW4sIG1pc2FsbnlhIHBhZGEgYmltYmluZ2FuIGFrYWRlbWlrIGRhbiBrZWNlcGF0YW4gcHJvc2VzIGFkbWluaXN0cmFzaS4NCg0KIyMjIyAzLiBUZW11YW4gVXRhbWENCg0KLSAqKlB1YXMgZGVuZ2FuIERvc2VuIFdhbGkqKjogTWFoYXNpc3dhIG1lbWJlcmlrYW4gc2tvciB0ZXJ0aW5nZ2kgcGFkYSBpdGVtICJBcGFrYWggZG9zZW4gd2FsaSBBbmRhIG1lbWJhbnR1IGRhbGFtIG1lbnl1c3VuIHJlbmNhbmEgc3R1ZGk/IiBkZW5nYW4gbmlsYWkgcmF0YS1yYXRhIDMuMDgsIG1lbnVuanVra2FuIGJhaHdhIGJpbWJpbmdhbiBkYXJpIGRvc2VuIHdhbGkgc2FuZ2F0IGRpaGFyZ2FpLg0KICANCi0gKipCaW1iaW5nYW4gQWthZGVtaWsqKjogU2ViYWxpa255YSwgdW50dWsgaXRlbSAiQXBha2FoIEFuZGEgbWVyYXNhIHRlcmJhbnR1IGRlbmdhbiBiaW1iaW5nYW4gYWthZGVtaWsgeWFuZyBkaWJlcmlrYW4/IiwgcmF0YS1yYXRhIHNrb3IgYWRhbGFoIDIuOTcsIGRpIG1hbmEgbW9kdXNueWEgYWRhbGFoIDEuIEluaSBtZW51bmp1a2thbiBiYWh3YSBhZGEga2V0aWRha3B1YXNhbiBkYWxhbSBsYXlhbmFuIGJpbWJpbmdhbiBha2FkZW1pay4NCg0KLSAqKk1hc2FsYWggVGVrbmlzIGRhbiBQcm9zZWR1cioqOiBCZWJlcmFwYSBpdGVtIHNlcGVydGkgIkFwYWthaCBBbmRhIHBlcm5haCBtZW5nYWxhbWkga2VzdWxpdGFuIHRla25pcyBzYWF0IG1lbmdpc2kgS1JTIG9ubGluZT8iIGRhbiAiQXBha2FoIEFuZGEgdGFodSBwcm9zZWR1ciBwZW5nYWp1YW4gYWRtaW5pc3RyYXNpIGFrYWRlbWlrPyIgbWVuZGFwYXRrYW4gbmlsYWkgeWFuZyBjdWt1cCByZW5kYWgsIHlhbmcgbWVuY2VybWlua2FuIHBlcmx1bnlhIHBlcmJhaWthbiBkYWxhbSBhcmVhIHRlcnNlYnV0Lg0KDQotICoqUGVsYXlhbmFuIEFkbWluaXN0cmFzaSoqOiBSZXNwb24gYXRhcyBrZWNlcGF0YW4gcHJvc2VzIGFkbWluaXN0cmFzaSBkYW4ga2VtdWRhaGFuIGFrc2VzIEtSUyBvbmxpbmUgbWVudW5qdWtrYW4gbmlsYWkgeWFuZyBiZXJ2YXJpYXNpLCBkZW5nYW4gcmF0YS1yYXRhIGFudGFyYSAyLjkwIGhpbmdnYSAzLjAzLCBtZW5hbmRha2FuIGJhaHdhIG1haGFzaXN3YSBtZW5pbGFpIGxheWFuYW4gaW5pIHBlcmx1IGRpdGluZ2thdGthbi4NCg0KIyMjIEtlc2ltcHVsYW4NCg0KU2VjYXJhIGtlc2VsdXJ1aGFuLCBtZXNraXB1biB0aW5na2F0IGtlcHVhc2FuIG1haGFzaXN3YSBiZXJhZGEgcGFkYSBraXNhcmFuIHlhbmcgY3VrdXAsIHRlcmRhcGF0IGJlYmVyYXBhIGFyZWEgeWFuZyBwZXJsdSBkaXBlcmJhaWtpLCBraHVzdXNueWEgZGFsYW0gYmltYmluZ2FuIGFrYWRlbWlrIGRhbiBwZW1yb3Nlc2FuIGFkbWluaXN0cmFzaS4gU2FyYW4gcGVyYmFpa2FuIGRhcmkgbWFoYXNpc3dhIGp1Z2EgaGFydXMgZGlwZXJoYXRpa2FuIHVudHVrIG1lbmluZ2thdGthbiBwZW5nYWxhbWFuIGFrYWRlbWlrIHlhbmcgbGViaWggYmFpayBkaSBtYXNhIGRlcGFuLg0KDQoNCg0K