Data Science Programming ~ Week 2


Profile Picture

Muhammad Nabil Khairil Anam
Data Science Student
Institut Teknologi Sains Bandung (ITSB)


1 Data Science (Ilmu Data)

Data Science adalah kombinasi (gabungan) dari beberapa disiplin ilmu yang mencakup Statistik, Matematika, Ilmu Komputer (Computer Science), dan pengetahuan domain (Domain Knowledge) untuk mengekstrak wawasan dan pola yang bermakna dari data terstruktur dan tidak terstruktur. Bidang ini melibatkan teknik-teknik seperti analisis data, pembelajaran mesin (Machine Learning), kecerdasan buatan (AI), dan pemrosesan big data untuk mendukung pengambilan keputusan dan otomatisasi.

2 Data Science Programming

Data Science Programming adalah praktik menulis kode komputer untuk melakukan analisis data dan menerapkan algoritma machine learning. Ini adalah “jembatan” antara ilmu komputer dan statistik yang memungkinkan kita mengekstrak wawasan dari data.

Secara sederhana, ini adalah proses menggunakan bahasa pemrograman untuk “berbicara” dengan data, membersihkannya, menganalisanya, dan membuat model prediktif.

2.1 Tujuan Utama

Tujuan utama mempelajari Data Science Programming bukan sekadar bisa mengetik kode, melainkan untuk memberdayakan Anda dengan kemampuan memecahkan masalah kompleks berbasis data secara efisien dan terukur.

Jika diibaratkan, tujuannya adalah untuk berubah dari seseorang yang hanya bisa membaca data (melihat angka di Excel) menjadi seseorang yang bisa berdialog dengan data dan menyuruh data bekerja untuk Anda.

Kesimpulannya, Tujuan utama mempelajari Data Science Programming adalah untuk menjawab pertanyaan dan memecahkan masalah dunia nyata menggunakan data sebagai bahan bakunya, dengan kecepatan dan skala yang tidak mungkin dilakukan secara manual.

2.2 Kenapa kita harus mempelajarinya?

Alasan utamanya adalah mempelajari data science programming merupakan hal yang sangat penting di era digital karena membuka peluang karir yang luas dengan permintaan tinggi dan prospek cerah di berbagai industri, yang umumnya menawarkan kompensasi kompetitif. Lebih dari sekadar peluang kerja, keahlian ini membekali kita dengan kemampuan mengambil keputusan berbasis data, sehingga kita dapat menjawab tantangan bisnis dengan bukti kuantitatif dan bahkan memprediksi skenario masa depan, bukan hanya mengandalkan intuisi.

Di sisi lain, programming memungkinkan otomatisasi tugas-tugas repetitif dan penanganan data dalam skala besar yang tidak mungkin dilakukan perangkat lunak konvensional, sehingga menciptakan efisiensi kerja yang signifikan. Kemampuan ini juga merupakan kunci untuk memahami dunia yang semakin digital, di mana hampir setiap interaksi meninggalkan jejak data yang dapat dianalisis, sekaligus melatih cara berpikir yang lebih terstruktur dan kemampuan problem solving yang tajam dalam memecahkan masalah kompleks.

2.3 Tools yang dibutuhkan

Untuk mempermudah kita dalam mempelajari data science programming, ada beberapa kategori tools yang bisa kita manfaatkan sesuai dengan tahapan belajar. Pertama, untuk memulai coding, kita perlu lingkungan pemrograman yang ramah pemula. Distribusi Anaconda sangat direkomendasikan karena sudah mengemas Python dan R beserta library-library penting di dalamnya, serta menyertakan Jupyter Notebook yang memungkinkan kita menulis dan menjalankan kode secara interaktif per sel, sehingga proses eksplorasi data menjadi lebih intuitif .

Setelah lingkungan siap, kita bisa berkenalan dengan library inti Python. Pandas adalah fondasi utama untuk memanipulasi dan membersihkan data berbentuk tabel, NumPy untuk komputasi numerik yang efisien, Matplotlib dan Seaborn untuk membuat visualisasi data yang indah dan informatif, serta Scikit-learn yang menyediakan berbagai algoritma machine learning siap pakai untuk kita pelajari dan gunakan . Selain Python, menguasai SQL juga sangat penting karena ini adalah bahasa yang kita gunakan untuk mengambil dan mengelola data dari database, yang merupakan sumber data utama di industri .

2.4 Domain apa yang akan saya ambil?

Jika saya diminta memilih satu domain dalam data science, saya akan memilih sektor kesehatan. Alasannya, sektor ini menawarkan kesempatan untuk memberikan dampak langsung dan nyata terhadap kualitas hidup manusia. Dengan latar belakang data science, saya bisa berkontribusi dalam berbagai area seperti pencitraan medis untuk mendeteksi penyakit lebih dini, membantu proses penemuan obat baru yang lebih cepat dan efisien, atau bahkan berperan dalam pengembangan pengobatan yang dipersonalisasi berdasarkan profil genetik seseorang.

Saya tertarik karena di sektor ini, data tidak hanya digunakan untuk efisiensi bisnis, tetapi benar-benar bisa menjadi alat untuk menyelamatkan nyawa dan meningkatkan derajat kesehatan masyarakat secara luas. Selain itu, tantangan di bidang kesehatan sangat kompleks dan beragam, sehingga menawarkan ruang belajar yang tidak ada habisnya bagi seorang praktisi data.

LS0tDQp0aXRsZTogIkRhdGEgU2NpZW5jZSBQcm9ncmFtbWluZyB+IFdlZWsgMiINCmF1dGhvcjogIk11aGFtbWFkIE5hYmlsIEtoYWlyaWwgQW5hbSINCmRhdGU6ICJgciBmb3JtYXQoU3lzLkRhdGUoKSwgJyVCICVkLCAlWScpYCIgICMgQXV0byBkaXNwbGF5cyBjdXJyZW50IGRhdGUNCm91dHB1dDoNCiAgcm1kZm9ybWF0czo6cmVhZHRoZWRvd246ICAgICAgICAgICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20vanViYS9ybWRmb3JtYXRzDQogICAgY3NzOiAiY3VzdG9tLmNzcyIgICAgICAgICAgICAgICAgICAgICAjIDwtLS0gUEFOR0dJTCBGSUxFIENTUyBESSBTSU5JDQogICAgc2VsZl9jb250YWluZWQ6IHRydWUgICAgICAgICAgICAgICAgICMgRW1iZWQgYWxsIHJlc291cmNlcw0KICAgIHRodW1ibmFpbHM6IHRydWUgICAgICAgICAgICAgICAgICAgICAjIFNob3cgaW1hZ2UgdGh1bWJuYWlscw0KICAgIGxpZ2h0Ym94OiB0cnVlICAgICAgICAgICAgICAgICAgICAgICAjIEVuYWJsZSBjbGljay10by16b29tIGltYWdlcw0KICAgIGdhbGxlcnk6IHRydWUgICAgICAgICAgICAgICAgICAgICAgICAjIEdyb3VwIGltYWdlcyBpbnRvIGdhbGxlcnkNCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUgICAgICAgICAgICAgICAgIyBOdW1iZXIgYWxsIHNlY3Rpb25zDQogICAgbGliX2RpcjogbGlicyAgICAgICAgICAgICAgICAgICAgICAgICMgU2F2ZSBKUy9DU1MgbGlicmFyaWVzDQogICAgZGZfcHJpbnQ6ICJwYWdlZCIgICAgICAgICAgICAgICAgICAgICMgUGFnZWQgZGF0YSBmcmFtZXMNCiAgICBjb2RlX2ZvbGRpbmc6ICJzaG93IiAgICAgICAgICAgICAgICAgIyBFeHBhbmRhYmxlIGNvZGUgYmxvY2tzDQogICAgY29kZV9kb3dubG9hZDogeWVzICAgICAgICAgICAgICAgICAgICMgQWRkIGJ1dHRvbiB0byBkb3dubG9hZCBSIGNvZGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwgbWVzc2FnZSA9IEZBTFNFLCB3YXJuaW5nID0gRkFMU0UpICMgVGFtYmFoa2FuIG1lc3NhZ2Uvd2FybmluZz1GQUxTRQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShrbml0cikNCmxpYnJhcnkoa2FibGVFeHRyYSkNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHJtZGZvcm1hdHMpICMgT3B0aW9uYWwsIGppa2EgaW5naW4gbWVtYXN0aWthbiBwYWNrYWdlIHRlcmxvYWQNCg0KYGBgDQoNCi0tLQ0KDQo8ZGl2IGNsYXNzPSJwcm9maWxlLWNvbnRhaW5lciI+DQogIA0KICA8aW1nIA0KICAgIHNyYz0iQzovVXNlcnMvSXlhbi9Eb3dubG9hZHMvU3RhcnRpc3RpayBXZWVrIDE0L015Rm90by5qcGciIA0KICAgIGFsdD0iUHJvZmlsZSBQaWN0dXJlIiANCiAgICBjbGFzcz0icHJvZmlsZS1waWMtbmV3IiANCiAgICBzdHlsZT0iDQogICAgICB3aWR0aDogMTgwcHggIWltcG9ydGFudDsgDQogICAgICBoZWlnaHQ6IDE4MHB4ICFpbXBvcnRhbnQ7IA0KICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7IA0KICAgICAgYm9yZGVyOiA0cHggc29saWQgIzM0OThkYiAhaW1wb3J0YW50OyANCiAgICAgIGJveC1zaGFkb3c6IDAgMCAxNXB4IHJnYmEoNTIsIDE1MiwgMjE5LCAwLjcpICFpbXBvcnRhbnQ7DQogICAgICBvYmplY3QtZml0OiBjb3ZlcjsNCiAgICAgIG1hcmdpbi1ib3R0b206IDVweDsNCiAgICAiDQogIC8+DQoNCiAgPGRpdiBjbGFzcz0icHJvZmlsZS1uYW1lIj5NdWhhbW1hZCBOYWJpbCBLaGFpcmlsIEFuYW08L2Rpdj4NCiAgPGRpdiBjbGFzcz0icHJvZmlsZS1wcm9kaSI+RGF0YSBTY2llbmNlIFN0dWRlbnQ8L2Rpdj4NCiAgPGRpdiBjbGFzcz0icHJvZmlsZS1pbnN0YW5zaSI+SW5zdGl0dXQgVGVrbm9sb2dpIFNhaW5zIEJhbmR1bmcgKElUU0IpPC9kaXY+DQogIA0KICA8YnI+IDwvZGl2Pg0KDQotLS0NCg0KPGRpdiBjbGFzcz0iZXhwbGFuYXRpb24tYm94Ij4NCg0KIyBEYXRhIFNjaWVuY2UgKElsbXUgRGF0YSkNCg0KRGF0YSBTY2llbmNlIGFkYWxhaCBrb21iaW5hc2kgKGdhYnVuZ2FuKSBkYXJpIGJlYmVyYXBhIGRpc2lwbGluIGlsbXUgeWFuZyBtZW5jYWt1cCBTdGF0aXN0aWssIE1hdGVtYXRpa2EsIElsbXUgS29tcHV0ZXIgKENvbXB1dGVyIFNjaWVuY2UpLCBkYW4gcGVuZ2V0YWh1YW4gZG9tYWluIChEb21haW4gS25vd2xlZGdlKSB1bnR1ayBtZW5nZWtzdHJhayB3YXdhc2FuIGRhbiBwb2xhIHlhbmcgYmVybWFrbmEgZGFyaSBkYXRhIHRlcnN0cnVrdHVyIGRhbiB0aWRhayB0ZXJzdHJ1a3R1ci4gQmlkYW5nIGluaSBtZWxpYmF0a2FuIHRla25pay10ZWtuaWsgc2VwZXJ0aSBhbmFsaXNpcyBkYXRhLCBwZW1iZWxhamFyYW4gbWVzaW4gKE1hY2hpbmUgTGVhcm5pbmcpLCBrZWNlcmRhc2FuIGJ1YXRhbiAoQUkpLCBkYW4gcGVtcm9zZXNhbiBiaWcgZGF0YSB1bnR1ayBtZW5kdWt1bmcgcGVuZ2FtYmlsYW4ga2VwdXR1c2FuIGRhbiBvdG9tYXRpc2FzaS4NCg0KPC9kaXY+IA0KDQo8ZGl2IGNsYXNzPSJleHBsYW5hdGlvbi1ib3giPg0KDQojIERhdGEgU2NpZW5jZSBQcm9ncmFtbWluZw0KDQpEYXRhIFNjaWVuY2UgUHJvZ3JhbW1pbmcgYWRhbGFoIHByYWt0aWsgbWVudWxpcyBrb2RlIGtvbXB1dGVyIHVudHVrIG1lbGFrdWthbiBhbmFsaXNpcyBkYXRhIGRhbiBtZW5lcmFwa2FuIGFsZ29yaXRtYSBtYWNoaW5lIGxlYXJuaW5nLiBJbmkgYWRhbGFoICJqZW1iYXRhbiIgYW50YXJhIGlsbXUga29tcHV0ZXIgZGFuIHN0YXRpc3RpayB5YW5nIG1lbXVuZ2tpbmthbiBraXRhIG1lbmdla3N0cmFrIHdhd2FzYW4gZGFyaSBkYXRhLg0KDQpTZWNhcmEgc2VkZXJoYW5hLCBpbmkgYWRhbGFoIHByb3NlcyBtZW5nZ3VuYWthbiBiYWhhc2EgcGVtcm9ncmFtYW4gdW50dWsgImJlcmJpY2FyYSIgZGVuZ2FuIGRhdGEsIG1lbWJlcnNpaGthbm55YSwgbWVuZ2FuYWxpc2FueWEsIGRhbiBtZW1idWF0IG1vZGVsIHByZWRpa3RpZi4NCg0KIyMgVHVqdWFuIFV0YW1hIA0KDQpUdWp1YW4gdXRhbWEgbWVtcGVsYWphcmkgRGF0YSBTY2llbmNlIFByb2dyYW1taW5nIGJ1a2FuIHNla2FkYXIgYmlzYSBtZW5nZXRpayBrb2RlLCBtZWxhaW5rYW4gdW50dWsgbWVtYmVyZGF5YWthbiBBbmRhIGRlbmdhbiBrZW1hbXB1YW4gbWVtZWNhaGthbiBtYXNhbGFoIGtvbXBsZWtzIGJlcmJhc2lzIGRhdGEgc2VjYXJhIGVmaXNpZW4gZGFuIHRlcnVrdXIuDQoNCkppa2EgZGlpYmFyYXRrYW4sIHR1anVhbm55YSBhZGFsYWggdW50dWsgYmVydWJhaCBkYXJpIHNlc2VvcmFuZyB5YW5nIGhhbnlhIGJpc2EgbWVtYmFjYSBkYXRhIChtZWxpaGF0IGFuZ2thIGRpIEV4Y2VsKSBtZW5qYWRpIHNlc2VvcmFuZyB5YW5nIGJpc2EgYmVyZGlhbG9nIGRlbmdhbiBkYXRhIGRhbiBtZW55dXJ1aCBkYXRhIGJla2VyamEgdW50dWsgQW5kYS4NCg0KS2VzaW1wdWxhbm55YSwgVHVqdWFuIHV0YW1hIG1lbXBlbGFqYXJpIERhdGEgU2NpZW5jZSBQcm9ncmFtbWluZyBhZGFsYWggdW50dWsgbWVuamF3YWIgcGVydGFueWFhbiBkYW4gbWVtZWNhaGthbiBtYXNhbGFoIGR1bmlhIG55YXRhIG1lbmdndW5ha2FuIGRhdGEgc2ViYWdhaSBiYWhhbiBiYWt1bnlhLCBkZW5nYW4ga2VjZXBhdGFuIGRhbiBza2FsYSB5YW5nIHRpZGFrIG11bmdraW4gZGlsYWt1a2FuIHNlY2FyYSBtYW51YWwuDQoNCiMjIEtlbmFwYSBraXRhIGhhcnVzIG1lbXBlbGFqYXJpbnlhPw0KDQpBbGFzYW4gdXRhbWFueWEgYWRhbGFoIG1lbXBlbGFqYXJpIGRhdGEgc2NpZW5jZSBwcm9ncmFtbWluZyBtZXJ1cGFrYW4gaGFsIHlhbmcgc2FuZ2F0IHBlbnRpbmcgZGkgZXJhIGRpZ2l0YWwga2FyZW5hIG1lbWJ1a2EgcGVsdWFuZyBrYXJpciB5YW5nIGx1YXMgZGVuZ2FuIHBlcm1pbnRhYW4gdGluZ2dpIGRhbiBwcm9zcGVrIGNlcmFoIGRpIGJlcmJhZ2FpIGluZHVzdHJpLCB5YW5nIHVtdW1ueWEgbWVuYXdhcmthbiBrb21wZW5zYXNpIGtvbXBldGl0aWYuIExlYmloIGRhcmkgc2VrYWRhciBwZWx1YW5nIGtlcmphLCBrZWFobGlhbiBpbmkgbWVtYmVrYWxpIGtpdGEgZGVuZ2FuIGtlbWFtcHVhbiBtZW5nYW1iaWwga2VwdXR1c2FuIGJlcmJhc2lzIGRhdGEsIHNlaGluZ2dhIGtpdGEgZGFwYXQgbWVuamF3YWIgdGFudGFuZ2FuIGJpc25pcyBkZW5nYW4gYnVrdGkga3VhbnRpdGF0aWYgZGFuIGJhaGthbiBtZW1wcmVkaWtzaSBza2VuYXJpbyBtYXNhIGRlcGFuLCBidWthbiBoYW55YSBtZW5nYW5kYWxrYW4gaW50dWlzaS4NCg0KRGkgc2lzaSBsYWluLCBwcm9ncmFtbWluZyBtZW11bmdraW5rYW4gb3RvbWF0aXNhc2kgdHVnYXMtdHVnYXMgcmVwZXRpdGlmIGRhbiBwZW5hbmdhbmFuIGRhdGEgZGFsYW0gc2thbGEgYmVzYXIgeWFuZyB0aWRhayBtdW5na2luIGRpbGFrdWthbiBwZXJhbmdrYXQgbHVuYWsga29udmVuc2lvbmFsLCBzZWhpbmdnYSBtZW5jaXB0YWthbiBlZmlzaWVuc2kga2VyamEgeWFuZyBzaWduaWZpa2FuLiBLZW1hbXB1YW4gaW5pIGp1Z2EgbWVydXBha2FuIGt1bmNpIHVudHVrIG1lbWFoYW1pIGR1bmlhIHlhbmcgc2VtYWtpbiBkaWdpdGFsLCBkaSBtYW5hIGhhbXBpciBzZXRpYXAgaW50ZXJha3NpIG1lbmluZ2dhbGthbiBqZWphayBkYXRhIHlhbmcgZGFwYXQgZGlhbmFsaXNpcywgc2VrYWxpZ3VzIG1lbGF0aWggY2FyYSBiZXJwaWtpciB5YW5nIGxlYmloIHRlcnN0cnVrdHVyIGRhbiBrZW1hbXB1YW4gcHJvYmxlbSBzb2x2aW5nIHlhbmcgdGFqYW0gZGFsYW0gbWVtZWNhaGthbiBtYXNhbGFoIGtvbXBsZWtzLg0KDQojIyBUb29scyB5YW5nIGRpYnV0dWhrYW4NCg0KVW50dWsgbWVtcGVybXVkYWgga2l0YSBkYWxhbSBtZW1wZWxhamFyaSBkYXRhIHNjaWVuY2UgcHJvZ3JhbW1pbmcsIGFkYSBiZWJlcmFwYSBrYXRlZ29yaSB0b29scyB5YW5nIGJpc2Ega2l0YSBtYW5mYWF0a2FuIHNlc3VhaSBkZW5nYW4gdGFoYXBhbiBiZWxhamFyLiBQZXJ0YW1hLCB1bnR1ayBtZW11bGFpIGNvZGluZywga2l0YSBwZXJsdSBsaW5na3VuZ2FuIHBlbXJvZ3JhbWFuIHlhbmcgcmFtYWggcGVtdWxhLiBEaXN0cmlidXNpICoqQW5hY29uZGEqKiBzYW5nYXQgZGlyZWtvbWVuZGFzaWthbiBrYXJlbmEgc3VkYWggbWVuZ2VtYXMgKipQeXRob24qKiBkYW4gKipSKiogYmVzZXJ0YSBsaWJyYXJ5LWxpYnJhcnkgcGVudGluZyBkaSBkYWxhbW55YSwgc2VydGEgbWVueWVydGFrYW4gKipKdXB5dGVyIE5vdGVib29rKiogeWFuZyBtZW11bmdraW5rYW4ga2l0YSBtZW51bGlzIGRhbiBtZW5qYWxhbmthbiBrb2RlIHNlY2FyYSBpbnRlcmFrdGlmIHBlciBzZWwsIHNlaGluZ2dhIHByb3NlcyBla3NwbG9yYXNpIGRhdGEgbWVuamFkaSBsZWJpaCBpbnR1aXRpZiAuDQoNClNldGVsYWggbGluZ2t1bmdhbiBzaWFwLCBraXRhIGJpc2EgYmVya2VuYWxhbiBkZW5nYW4gbGlicmFyeSBpbnRpIFB5dGhvbi4gKipQYW5kYXMqKiBhZGFsYWggZm9uZGFzaSB1dGFtYSB1bnR1ayBtZW1hbmlwdWxhc2kgZGFuIG1lbWJlcnNpaGthbiBkYXRhIGJlcmJlbnR1ayB0YWJlbCwgKipOdW1QeSoqIHVudHVrIGtvbXB1dGFzaSBudW1lcmlrIHlhbmcgZWZpc2llbiwgKipNYXRwbG90bGliKiogZGFuICoqU2VhYm9ybioqIHVudHVrIG1lbWJ1YXQgdmlzdWFsaXNhc2kgZGF0YSB5YW5nIGluZGFoIGRhbiBpbmZvcm1hdGlmLCBzZXJ0YSAqKlNjaWtpdC1sZWFybioqIHlhbmcgbWVueWVkaWFrYW4gYmVyYmFnYWkgYWxnb3JpdG1hIG1hY2hpbmUgbGVhcm5pbmcgc2lhcCBwYWthaSB1bnR1ayBraXRhIHBlbGFqYXJpIGRhbiBndW5ha2FuIC4gU2VsYWluIFB5dGhvbiwgbWVuZ3Vhc2FpICoqU1FMKioganVnYSBzYW5nYXQgcGVudGluZyBrYXJlbmEgaW5pIGFkYWxhaCBiYWhhc2EgeWFuZyBraXRhIGd1bmFrYW4gdW50dWsgbWVuZ2FtYmlsIGRhbiBtZW5nZWxvbGEgZGF0YSBkYXJpIGRhdGFiYXNlLCB5YW5nIG1lcnVwYWthbiBzdW1iZXIgZGF0YSB1dGFtYSBkaSBpbmR1c3RyaSAuDQoNCiMjIERvbWFpbiBhcGEgeWFuZyBha2FuIHNheWEgYW1iaWw/DQoNCkppa2Egc2F5YSBkaW1pbnRhIG1lbWlsaWggc2F0dSBkb21haW4gZGFsYW0gZGF0YSBzY2llbmNlLCBzYXlhIGFrYW4gbWVtaWxpaCBzZWt0b3Iga2VzZWhhdGFuLiBBbGFzYW5ueWEsIHNla3RvciBpbmkgbWVuYXdhcmthbiBrZXNlbXBhdGFuIHVudHVrIG1lbWJlcmlrYW4gZGFtcGFrIGxhbmdzdW5nIGRhbiBueWF0YSB0ZXJoYWRhcCBrdWFsaXRhcyBoaWR1cCBtYW51c2lhLiBEZW5nYW4gbGF0YXIgYmVsYWthbmcgZGF0YSBzY2llbmNlLCBzYXlhIGJpc2EgYmVya29udHJpYnVzaSBkYWxhbSBiZXJiYWdhaSBhcmVhIHNlcGVydGkgcGVuY2l0cmFhbiBtZWRpcyB1bnR1ayBtZW5kZXRla3NpIHBlbnlha2l0IGxlYmloIGRpbmksIG1lbWJhbnR1IHByb3NlcyBwZW5lbXVhbiBvYmF0IGJhcnUgeWFuZyBsZWJpaCBjZXBhdCBkYW4gZWZpc2llbiwgYXRhdSBiYWhrYW4gYmVycGVyYW4gZGFsYW0gcGVuZ2VtYmFuZ2FuIHBlbmdvYmF0YW4geWFuZyBkaXBlcnNvbmFsaXNhc2kgYmVyZGFzYXJrYW4gcHJvZmlsIGdlbmV0aWsgc2VzZW9yYW5nLg0KDQpTYXlhIHRlcnRhcmlrIGthcmVuYSBkaSBzZWt0b3IgaW5pLCBkYXRhIHRpZGFrIGhhbnlhIGRpZ3VuYWthbiB1bnR1ayBlZmlzaWVuc2kgYmlzbmlzLCB0ZXRhcGkgYmVuYXItYmVuYXIgYmlzYSBtZW5qYWRpIGFsYXQgdW50dWsgbWVueWVsYW1hdGthbiBueWF3YSBkYW4gbWVuaW5na2F0a2FuIGRlcmFqYXQga2VzZWhhdGFuIG1hc3lhcmFrYXQgc2VjYXJhIGx1YXMuIFNlbGFpbiBpdHUsIHRhbnRhbmdhbiBkaSBiaWRhbmcga2VzZWhhdGFuIHNhbmdhdCBrb21wbGVrcyBkYW4gYmVyYWdhbSwgc2VoaW5nZ2EgbWVuYXdhcmthbiBydWFuZyBiZWxhamFyIHlhbmcgdGlkYWsgYWRhIGhhYmlzbnlhIGJhZ2kgc2VvcmFuZyBwcmFrdGlzaSBkYXRhLg0KDQoNCg0KDQoNCg==