Soal 2
Sebagai mahasiswa buatlah algoritma dan flowchart yang anda lakukan untuk mencapai kelulusan sarjana dengan IPK minimal 3.5 dari Universitas Matana.!
jawaban
Lulus dari perguruan tinggi atau universitas merupakan hal yang sangat diinginkan oleh para mahasiswa. Untuk mencapai hal tersebut di Matana University ada beberapa syarat yang harus dipenuhi, salah satunya memperoleh IPK minimal 3.5. Berikut bentuk algoritma dan flowchart mencapai kelulusan dengan IPK 3.5
• Mahasiswa memulai perkuliahan di matana university
• Mahasiswa mengikuti perkuliahan semester 1
• Memastikan apakah IP semester 1 ≥ 3.5
• Jika ya (IP ≥ 3.5), maka mahasiswa dapat melanjutkan ke semester selanjutnya
• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 1
• Jika IP ≥ 3.5 mahasiswa mengikuti perkuliahan semester 2
• Memastikan apakah IP semester 2 ≥ 3.5
• Jika ya (IP ≥ 3.5), maka mahasiswa dapat melanjutkan ke semester selanjutnya
• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 2
• Jika IP ≥ 3.5 mahasiswa mengikuti perkuliahan semester 3
• Memastikan apakah IP semester 3 ≥ 3.5
• Jika ya (IP ≥ 3.5), maka mahasiswa dapat melanjutkan ke semester selanjutnya
• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 3
• Jika IP ≥ 3.5 mahasiswa mengikuti perkuliahan semester 4
• Memastikan apakah IP semester 4 ≥ 3.5
• Jika ya (IP ≥ 3.5), maka mahasiswa dapat melanjutkan ke semester selanjutnya
• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 4
• Jika IP ≥ 3.5 mahasiswa mengikuti perkuliahan semester 5
• Memastikan apakah IP semester 5 ≥ 3.5
• Jika ya (IP ≥ 3.5), maka mahasiswa dapat melanjutkan ke semester selanjutnya
• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 5
• Jika IP ≥ 3.5 mahasiswa mengikuti perkuliahan semester 6
• Memastikan apakah IP semester 6 ≥ 3.5
• Jika ya (IP ≥ 3.5), maka mahasiswa dapat melanjutkan ke semester selanjutnya
• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 6
• Jika IP ≥ 3.5 mahasiswa mengikuti perkuliahan semester 7
• Memastikan apakah IP semester 7 ≥ 3.5
• Jika ya (IP ≥ 3.5), maka mahasiswa dapat melanjutkan ke semester selanjutnya
• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 7
• Jika IP ≥ 3.5 mahasiswa mengikuti perkuliahan semester 8
• Memastikan apakah IP semester 8 ≥ 3.5
• Jika ya (IP ≥ 3.5), maka mahasiswa dapat lulus dari Matana University
• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 8

Soal 4
Sebutkan 3 bahasa pemrograman yang yang paling banyak digunakan dalam Sains Data, Berikan penjelasan kelebihan, kekurangan, dan hubungan bahasa pemrogaman yang satu dengan yang lainnya.
jawaban
R
R adalah Bahasa pemrograman yang digunakan dalam komputasi statistik untuk keperluan analisa dan dapat dioperasikan pada berbagai system operasi computer.
Kelebihan
R mempunyai paket yang lengkap mulai dari persiapan data, berbagai macam analisis, juga proses diseminasi informasi yang digunakan oleh data scientist untuk menjalankan analisis pemodelan dan machine learnig. Selain itu, R dapat menghanandle/mrmbaca bermacam data mulai dari .cvs dan data.txt, excel, gambar, dll. R juga dapat membuat produk yang sama dengan cara menyimpan skrip/RMD, sehingga dapat dengan mudah membuat produk yang sama.
Kekurangan
Kekurangan atau kelemahan bahsa R adalah sulit dipelajari karena tampilan command yang terlalu banyak sehingga sedikit membingungkan. Tidak hanya itu, Pengendalian variabel terkadang tidak rapih dan penamaan variabel sangat rumit.
Python
Python adalah bahasa pemrograman interpretatif yang bisa dipasang pada berbagai platform, khususnya platform yang berfokus pada keterbacaan kode. Phyton merupakan Bahasa yang berkaitan dengan data science, machine learning, dan Internet Of Thigs (IoT) yang banyak digunakan untuk prototyping, scripting pengelolaan infrastruktur, bahkan pembuatan website berskala besar.
Kelebihan
Python mempunyai kamus yang banyak dan luas dan berisikan berbagai modul yang di dalamnya terdapat bermacam kode untuk digunakan seperti unit testing, CGI, email,dll sehingga tidak perlu menulis secara manual. Phyton juga dapat dijalankan di hamper semua system operasi misal, Windows, Mac, maupun Linux, juga beberapa perangkat seluler. Tidak hanya itu, pemrograman Python juga mendukung ekosistem Internet Of Things (IoT) dengan sangat baik, dimana IoT adalah suatu konsep atau program komputasi tentang objek sehari-hari yang terhubung ke internet dan mampu mengidentifikasi diri ke perangkat lain.
Kekurangan
Python adalah Bahasa pemrograman yang tidak cocok untuk aplikasi mobile, dibandingkan dengan Bahasa lain, python berkerja lebih lambat sehingga kurang relevan jika diperuntukan dalam program besar. Selain itu, python diketik secara dinamis sehingga memiliki banyak batasan desain.
Java
Java adalah Bahasa pemrograman yang banyak dan umum digunakan oleh para developer untuk mengembangkan aplikasi. Java merupakan Object Oriented Programming (OOP) Yang multiplatform dan multi device.
Kelebihan
Java memiliki sifat dinamis karena pengalokasian dan penghapusan memori dilakukan secara otomatis, Java dapat menjalankan beberapa task sekaligus dalam bersamaan waktu. Tidak hanya itu, Perpustakaan kelas yang lengkap mencakup segala kebutuhan dan keperluan dalam membuat aplikasi sehingga memudahkan programmer/developer.
Kekurangan
Bahasa pemrograman Java menggunakan memori lebih banyak dibandingkan beberapa Bahasa pemrograman yang lain dan membutuhkan komputer yang memiliki kapasitas ram yang besar agar berjalan optimal. Selain itu, Java juga mudah mengalami dekompilasi. Dekompilasi adalah pengambilan source code, sehingga dapat dengan mudah diambil atau dibajak oleh orang lain.
LS0tDQp0aXRsZTogIlBlbmRhaHVsdWFuIg0Kc3VidGl0bGU6ICJUdWdhcyAxIg0KYXV0aG9yOiAiRXZlbGluIFRyaWVuYSBTICgyMDIxNDUyMDAxMCkiDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy5EYXRlKCksICclQiAlZCwgJVknKWAiDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50OiANCiAgICBodG1sX2RvY3VtZW50OiBudWxsDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZmxvYXQ6DQogICAgICBjb2xsYXBzZWQ6IHllcw0KICAgIG51bWJlcl9zZWN0aW9uczogeWVzDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgdGhlbWU6IHNhbmRzdG9uZQ0KICAgIGNzczogc3R5bGUxLmNzcw0KICAgIGhpZ2hsaWdodDogbW9ub2Nocm9tZQ0KLS0tDQoNCg0KPGltZyBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyBtYXJnaW46IDBweCAxMDBweCAwcHggMHB4OyB3aWR0aDoyNSUiIHNyYz0idmVuYS5qcGciLz4gDQoNCmBgYHtyIGxvZ28sIGVjaG89RkFMU0UsZmlnLmFsaWduPSdjZW50ZXInLCBvdXQud2lkdGggPSAnMzAlJ30NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJsb2dvLnBuZyIpDQpgYGANCg0KRW1haWwgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7OiAgdHJpdmVuYXNhbWFsaXd1QGdtYWlsLmNvbSA8YnI+DQpSUHVicyAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBodHRwczovL3JwdWJzLmNvbS9ldmVsaW50cml2ZW5hIDxicj4NCkp1cnVzYW4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogW2Zpc2lrYSBtZWRpc10oaHR0cHM6Ly9tYXRhbmF1bml2ZXJzaXR5LmFjLmlkLz9seT1hY2FkZW1pYyZjPXNiKSA8YnI+DQpBZGRyZXNzICAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiBBUkEgQ2VudGVyLCBNYXRhbmEgVW5pdmVyc2l0eSBUb3dlciA8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyBKbC4gQ0JEIEJhcmF0IEthdiwgUlQuMSwgQ3VydWcgU2FuZ2VyZW5nLCBLZWxhcGEgRHVhLCBUYW5nZXJhbmcsIEJhbnRlbiAxNTgxMC4NCg0KKioqKg0KDQojIFNvYWwgMQ0KDQpDYXJpbGFoIERlZmluaXNpIEFsZ29yaXRtYSBkYW4gU3RydWt0dXIgRGF0YSBkYWxhbSBiZXJiYWdhaSBiaWRhbmcgaWxtdSAoQ29udG9oOiBTYWlucyBEYXRhLCBGaXNpa2EsIFRla25payBJbmZvcm1hdGlrYSwgZGFuIFNpc3RlbSBJbmZvcm1hc2kpIQ0KDQoqKmphd2FiYW4qKg0KDQojIyBTQUlOUyBEQVRBDQoNCkFsZ29yaXRtYSBtZXJ1cGFrYW4gc2FsYWggc2F0dSBiZW50dWsgcGVuZ2FwbGlrYXNpYW4gZGFyaSBzYWlucyBkYXRhIHlhbmcgbWVuZ2dhYnVuZ2thbiBtYXRlbWF0aWthIGRhbiBzdGF0aXN0aWthIGRlbmdhbiB0dWp1YW4gdW50dWsgbWVuZ2dhbGkgZGF0YSAoZGF0YSBtYWluaW5nKSwgbWVuZGFwYXRrYW4gcG9sYSBkYXRhLCBzZXJ0YSBtZWxha3VrYW4gcHJlZGlrc2kgeWFuZyBha3VyYXQuDQoNCiMjIEZJU0lLQQ0KDQpBbGdvcml0bWEgZGFuIHN0cnVrdHVyIGRhdGEgZGFsYW0gYmlkYW5nIGlsbXUgZmlzaWthIG1lcnVwYWthbiBwcm9zZXMgcGVuZ29sYWhhbiBkYXRhIHlhbmcgbWVsaWJhdGthbiBhbGdvcml0bWEgdW50dWsgbWVtZWNhaGthbiBzZWJ1YWggbWFzYWxhaCBkaSBiaWRhbmcgZmlzaWthLCBtaXNhbCBydW11cyBwZXJoaXR1bmdhbi4NCg0KIyMgVEVLTklLIElORk9STUFUSUtBDQoNCkRhbGFtIGJpZGFuZyB0ZWtuaWsgaW5mb3JtYXRpa2EsIGFsZ29yaXRtYSBkYW4gc3RydWt0dXIgZGF0YSBtZXJ1cGFrYW4gcHJvc2VzIGF0YXUgdGFoYXBhbiB1bnR1ayBtZXllbGVzYWlrYW4gcGVybWFzYWxhaGFuIHlhbmcgYmVya2FpdGFuIGRlbmdhbiBpbG11IGNvbXB1dGVyLg0KDQojIyBTSVNURU0gSU5GT1JNQVNJDQoNCkFsZ29yaXRtYSBhZGFsYWggbGFuZ2thaC1sYW5na2FoIGxvZ2lzIHlhbmcgZGlzdXN1biBzZWNhcmEgYmVydXJ1dGFuIHVudHVrIG1lbnllbGVzYWlrYW4gc2VidWFoIG1hc2FsYWggYXRhdSBkaWd1bmFrYW4gdW50dWsgbWVueWFtcGFpa2FuIHNlYnVhaCBpbmZvcm1hc2kuDQoNCiMgU29hbCAyDQoNClNlYmFnYWkgbWFoYXNpc3dhIGJ1YXRsYWggYWxnb3JpdG1hIGRhbiBmbG93Y2hhcnQgeWFuZyBhbmRhIGxha3VrYW4gdW50dWsgbWVuY2FwYWkga2VsdWx1c2FuIHNhcmphbmEgZGVuZ2FuIElQSyBtaW5pbWFsIDMuNSBkYXJpIFVuaXZlcnNpdGFzIE1hdGFuYS4hDQoNCioqamF3YWJhbioqDQoNCkx1bHVzIGRhcmkgcGVyZ3VydWFuIHRpbmdnaSBhdGF1IHVuaXZlcnNpdGFzIG1lcnVwYWthbiBoYWwgeWFuZyBzYW5nYXQgZGlpbmdpbmthbiBvbGVoIHBhcmEgbWFoYXNpc3dhLiBVbnR1ayBtZW5jYXBhaSBoYWwgdGVyc2VidXQgZGkgTWF0YW5hIFVuaXZlcnNpdHkgYWRhIGJlYmVyYXBhIHN5YXJhdCB5YW5nIGhhcnVzIGRpcGVudWhpLCBzYWxhaCBzYXR1bnlhIG1lbXBlcm9sZWggSVBLIG1pbmltYWwgMy41LiBCZXJpa3V0IGJlbnR1ayBhbGdvcml0bWEgZGFuIGZsb3djaGFydCBtZW5jYXBhaSBrZWx1bHVzYW4gZGVuZ2FuIElQSyAzLjUNCg0K4oCiCU1haGFzaXN3YSBtZW11bGFpIHBlcmt1bGlhaGFuIGRpIG1hdGFuYSB1bml2ZXJzaXR5DQoNCuKAoglNYWhhc2lzd2EgbWVuZ2lrdXRpIHBlcmt1bGlhaGFuIHNlbWVzdGVyIDENCg0K4oCiCU1lbWFzdGlrYW4gYXBha2FoIElQIHNlbWVzdGVyIDEg4omlIDMuNQ0KDQrigKIJSmlrYSB5YSAoSVAg4omlIDMuNSksIG1ha2EgbWFoYXNpc3dhIGRhcGF0ICBtZWxhbmp1dGthbiBrZSBzZW1lc3RlciBzZWxhbmp1dG55YSANCg0K4oCiCUppa2EgdGlkYWsgKElQIDwgMy41KSwgbWFoYXNpc3dhIGhhcnVzIG1lbmd1bGFuZyBkaSBzZW1lc3RlciAxDQoNCuKAoglKaWthIElQIOKJpSAzLjUgbWFoYXNpc3dhIG1lbmdpa3V0aSBwZXJrdWxpYWhhbiBzZW1lc3RlciAyDQoNCuKAoglNZW1hc3Rpa2FuIGFwYWthaCBJUCBzZW1lc3RlciAyIOKJpSAzLjUNCg0K4oCiCUppa2EgeWEgKElQIOKJpSAzLjUpLCBtYWthIG1haGFzaXN3YSBkYXBhdCAgbWVsYW5qdXRrYW4ga2Ugc2VtZXN0ZXIgc2VsYW5qdXRueWEgDQoNCuKAoglKaWthIHRpZGFrIChJUCA8IDMuNSksIG1haGFzaXN3YSBoYXJ1cyBtZW5ndWxhbmcgZGkgc2VtZXN0ZXIgMg0KDQrigKIJSmlrYSBJUCDiiaUgMy41IG1haGFzaXN3YSBtZW5naWt1dGkgcGVya3VsaWFoYW4gc2VtZXN0ZXIgMw0KDQrigKIJTWVtYXN0aWthbiBhcGFrYWggSVAgc2VtZXN0ZXIgMyDiiaUgMy41DQoNCuKAoglKaWthIHlhIChJUCDiiaUgMy41KSwgbWFrYSBtYWhhc2lzd2EgZGFwYXQgIG1lbGFuanV0a2FuIGtlIHNlbWVzdGVyIHNlbGFuanV0bnlhIA0KDQrigKIJSmlrYSB0aWRhayAoSVAgPCAzLjUpLCBtYWhhc2lzd2EgaGFydXMgbWVuZ3VsYW5nIGRpIHNlbWVzdGVyIDMNCg0K4oCiCUppa2EgSVAg4omlIDMuNSBtYWhhc2lzd2EgbWVuZ2lrdXRpIHBlcmt1bGlhaGFuIHNlbWVzdGVyIDQNCg0K4oCiCU1lbWFzdGlrYW4gYXBha2FoIElQIHNlbWVzdGVyIDQg4omlIDMuNQ0KDQrigKIJSmlrYSB5YSAoSVAg4omlIDMuNSksIG1ha2EgbWFoYXNpc3dhIGRhcGF0ICBtZWxhbmp1dGthbiBrZSBzZW1lc3RlciBzZWxhbmp1dG55YSANCg0K4oCiCUppa2EgdGlkYWsgKElQIDwgMy41KSwgbWFoYXNpc3dhIGhhcnVzIG1lbmd1bGFuZyBkaSBzZW1lc3RlciA0DQoNCuKAoglKaWthIElQIOKJpSAzLjUgbWFoYXNpc3dhIG1lbmdpa3V0aSBwZXJrdWxpYWhhbiBzZW1lc3RlciA1DQoNCuKAoglNZW1hc3Rpa2FuIGFwYWthaCBJUCBzZW1lc3RlciA1IOKJpSAzLjUNCg0K4oCiCUppa2EgeWEgKElQIOKJpSAzLjUpLCBtYWthIG1haGFzaXN3YSBkYXBhdCAgbWVsYW5qdXRrYW4ga2Ugc2VtZXN0ZXIgc2VsYW5qdXRueWEgDQoNCuKAoglKaWthIHRpZGFrIChJUCA8IDMuNSksIG1haGFzaXN3YSBoYXJ1cyBtZW5ndWxhbmcgZGkgc2VtZXN0ZXIgNQ0KDQrigKIJSmlrYSBJUCDiiaUgMy41IG1haGFzaXN3YSBtZW5naWt1dGkgcGVya3VsaWFoYW4gc2VtZXN0ZXIgNg0KDQrigKIJTWVtYXN0aWthbiBhcGFrYWggSVAgc2VtZXN0ZXIgNiDiiaUgMy41DQoNCuKAoglKaWthIHlhIChJUCDiiaUgMy41KSwgbWFrYSBtYWhhc2lzd2EgZGFwYXQgIG1lbGFuanV0a2FuIGtlIHNlbWVzdGVyIHNlbGFuanV0bnlhIA0KDQrigKIJSmlrYSB0aWRhayAoSVAgPCAzLjUpLCBtYWhhc2lzd2EgaGFydXMgbWVuZ3VsYW5nIGRpIHNlbWVzdGVyIDYNCg0K4oCiCUppa2EgSVAg4omlIDMuNSBtYWhhc2lzd2EgbWVuZ2lrdXRpIHBlcmt1bGlhaGFuIHNlbWVzdGVyIDcNCg0K4oCiCU1lbWFzdGlrYW4gYXBha2FoIElQIHNlbWVzdGVyIDcg4omlIDMuNQ0KDQrigKIJSmlrYSB5YSAoSVAg4omlIDMuNSksIG1ha2EgbWFoYXNpc3dhIGRhcGF0ICBtZWxhbmp1dGthbiBrZSBzZW1lc3RlciBzZWxhbmp1dG55YSANCg0K4oCiCUppa2EgdGlkYWsgKElQIDwgMy41KSwgbWFoYXNpc3dhIGhhcnVzIG1lbmd1bGFuZyBkaSBzZW1lc3RlciA3DQoNCuKAoglKaWthIElQIOKJpSAzLjUgbWFoYXNpc3dhIG1lbmdpa3V0aSBwZXJrdWxpYWhhbiBzZW1lc3RlciA4DQoNCg0K4oCiCU1lbWFzdGlrYW4gYXBha2FoIElQIHNlbWVzdGVyIDgg4omlIDMuNQ0KDQrigKIJSmlrYSB5YSAoSVAg4omlIDMuNSksIG1ha2EgbWFoYXNpc3dhIGRhcGF0ICBsdWx1cyBkYXJpIE1hdGFuYSBVbml2ZXJzaXR5DQoNCuKAoglKaWthIHRpZGFrIChJUCA8IDMuNSksIG1haGFzaXN3YSBoYXJ1cyBtZW5ndWxhbmcgZGkgc2VtZXN0ZXIgOA0KDQoNCmBgYHtyIGZsb3djaGFydCwgZWNobz1GQUxTRSxmaWcuYWxpZ249J2NlbnRlcicsIG91dC53aWR0aCA9ICcxMDAlJ30NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJmbG93Y2hhcnRmaXgucG5nIikNCmBgYA0KDQojIFNvYWwgMw0KDQpNZW5nYXBhIGFuZGEgaGFydXMgYmVsYWphciBBbGdvcml0bWEgZGFuIFN0cnVrdHVyIERhdGE/DQoNCioqamF3YWJhbioqDQoNCkFkYSBiYW55YWsgYWxhc2FuIG1lbmdhcGEgaGFydXMgbWVtcGVsYWphcmkgYWxnb3JpdG1hIGRhbiBzdHJ1a3R1ciBkYXRhLiBNaXNhbCwgc2FhdCBpbmkga2VoaWR1cGFuIG1hbnVzaWEgc2ViYWdpYW4gYmVzYXIgYmVya2FpdGFuIGRlbmdhbiB0ZWtub2xvZ2ksIHNhbGFoIHNhdHVueWEga29tcHV0ZXIuIERlbmdhbiBtZW5nYXBsaWthc2lrYW4gYWxnb3JpdG1hIGRhbiBzdHJ1a3R1ciBkYXRhLCBraXRhIG1hbXB1L2RhcGF0IG1lbnllbGVzYWlrYW4gc2VidWFoIHBlcm1hc2FsYWhhbiBzZWNhcmEgbGViaWggbXVkYWggZGFuIGVmaXNpZW4gZGVuZ2FuIG1lbmdpa3V0aSB1cnV0YW4gbGFuZ2thaC1sYW5na2FoIHlhbmcgbG9naXMgZGFuIGp1Z2EgamVsYXMuIA0KDQojIFNvYWwgNA0KDQpTZWJ1dGthbiAzIGJhaGFzYSBwZW1yb2dyYW1hbiB5YW5nIHlhbmcgcGFsaW5nIGJhbnlhayBkaWd1bmFrYW4gZGFsYW0gU2FpbnMgRGF0YSwgQmVyaWthbiBwZW5qZWxhc2FuIGtlbGViaWhhbiwga2VrdXJhbmdhbiwgZGFuIGh1YnVuZ2FuIGJhaGFzYSBwZW1yb2dhbWFuIHlhbmcgc2F0dSBkZW5nYW4geWFuZyBsYWlubnlhLg0KDQoqKmphd2FiYW4qKg0KDQojIyBSDQoNClIgYWRhbGFoIEJhaGFzYSBwZW1yb2dyYW1hbiB5YW5nIGRpZ3VuYWthbiBkYWxhbSBrb21wdXRhc2kgc3RhdGlzdGlrIHVudHVrIGtlcGVybHVhbiBhbmFsaXNhIGRhbiBkYXBhdCBkaW9wZXJhc2lrYW4gcGFkYSBiZXJiYWdhaSBzeXN0ZW0gb3BlcmFzaSBjb21wdXRlci4gDQoNCioqS2VsZWJpaGFuKioNCg0KUiBtZW1wdW55YWkgcGFrZXQgeWFuZyBsZW5na2FwIG11bGFpIGRhcmkgcGVyc2lhcGFuIGRhdGEsIGJlcmJhZ2FpIG1hY2FtIGFuYWxpc2lzLCBqdWdhIHByb3NlcyBkaXNlbWluYXNpIGluZm9ybWFzaSB5YW5nIGRpZ3VuYWthbiBvbGVoIGRhdGEgc2NpZW50aXN0IHVudHVrIG1lbmphbGFua2FuIGFuYWxpc2lzIHBlbW9kZWxhbiBkYW4gbWFjaGluZSBsZWFybmlnLiBTZWxhaW4gaXR1LCBSIGRhcGF0IG1lbmdoYW5hbmRsZS9tcm1iYWNhIGJlcm1hY2FtIGRhdGEgbXVsYWkgZGFyaSAuY3ZzIGRhbiBkYXRhLnR4dCwgZXhjZWwsIGdhbWJhciwgZGxsLiBSIGp1Z2EgZGFwYXQgbWVtYnVhdCBwcm9kdWsgeWFuZyBzYW1hIGRlbmdhbiBjYXJhIG1lbnlpbXBhbiBza3JpcC9STUQsIHNlaGluZ2dhIGRhcGF0IGRlbmdhbiBtdWRhaCBtZW1idWF0IHByb2R1ayB5YW5nIHNhbWEuIA0KDQoqKktla3VyYW5nYW4qKg0KDQpLZWt1cmFuZ2FuIGF0YXUga2VsZW1haGFuIGJhaHNhIFIgYWRhbGFoIHN1bGl0IGRpcGVsYWphcmkga2FyZW5hIHRhbXBpbGFuIGNvbW1hbmQgeWFuZyB0ZXJsYWx1IGJhbnlhayBzZWhpbmdnYSBzZWRpa2l0IG1lbWJpbmd1bmdrYW4uICBUaWRhayBoYW55YSBpdHUsIFBlbmdlbmRhbGlhbiB2YXJpYWJlbCB0ZXJrYWRhbmcgdGlkYWsgcmFwaWggZGFuIHBlbmFtYWFuIHZhcmlhYmVsIHNhbmdhdCBydW1pdC4gDQoNCiMjIFB5dGhvbg0KDQpQeXRob24gYWRhbGFoIGJhaGFzYSBwZW1yb2dyYW1hbiBpbnRlcnByZXRhdGlmIHlhbmcgYmlzYSBkaXBhc2FuZyBwYWRhIGJlcmJhZ2FpIHBsYXRmb3JtLCBraHVzdXNueWEgcGxhdGZvcm0geWFuZyBiZXJmb2t1cyBwYWRhIGtldGVyYmFjYWFuIGtvZGUuIFBoeXRvbiBtZXJ1cGFrYW4gQmFoYXNhIHlhbmcgYmVya2FpdGFuIGRlbmdhbiBkYXRhIHNjaWVuY2UsIG1hY2hpbmUgbGVhcm5pbmcsIGRhbiBJbnRlcm5ldCBPZiBUaGlncyAoSW9UKSB5YW5nIGJhbnlhayBkaWd1bmFrYW4gdW50dWsgcHJvdG90eXBpbmcsIHNjcmlwdGluZyBwZW5nZWxvbGFhbiBpbmZyYXN0cnVrdHVyLCBiYWhrYW4gcGVtYnVhdGFuIHdlYnNpdGUgYmVyc2thbGEgYmVzYXIuIA0KDQoqKktlbGViaWhhbioqDQoNClB5dGhvbiBtZW1wdW55YWkga2FtdXMgeWFuZyBiYW55YWsgZGFuIGx1YXMgZGFuIGJlcmlzaWthbiBiZXJiYWdhaSBtb2R1bCB5YW5nIGRpIGRhbGFtbnlhIHRlcmRhcGF0IGJlcm1hY2FtIGtvZGUgdW50dWsgZGlndW5ha2FuIHNlcGVydGkgdW5pdCB0ZXN0aW5nLCBDR0ksIGVtYWlsLGRsbCBzZWhpbmdnYSB0aWRhayBwZXJsdSBtZW51bGlzIHNlY2FyYSBtYW51YWwuIFBoeXRvbiBqdWdhIGRhcGF0IGRpamFsYW5rYW4gZGkgaGFtcGVyIHNlbXVhIHN5c3RlbSBvcGVyYXNpIG1pc2FsLCBXaW5kb3dzLCBNYWMsIG1hdXB1biBMaW51eCwganVnYSBiZWJlcmFwYSBwZXJhbmdrYXQgc2VsdWxlci4gVGlkYWsgaGFueWEgaXR1LCBwZW1yb2dyYW1hbiBQeXRob24ganVnYSBtZW5kdWt1bmcgZWtvc2lzdGVtIEludGVybmV0IE9mIFRoaW5ncyAoSW9UKSBkZW5nYW4gc2FuZ2F0IGJhaWssIGRpbWFuYSBJb1QgYWRhbGFoIHN1YXR1IGtvbnNlcCBhdGF1IHByb2dyYW0ga29tcHV0YXNpIHRlbnRhbmcgb2JqZWsgc2VoYXJpLWhhcmkgeWFuZyB0ZXJodWJ1bmcga2UgaW50ZXJuZXQgZGFuIG1hbXB1IG1lbmdpZGVudGlmaWthc2kgZGlyaSBrZSBwZXJhbmdrYXQgbGFpbi4gDQoNCioqS2VrdXJhbmdhbioqDQoNClB5dGhvbiBhZGFsYWggQmFoYXNhIHBlbXJvZ3JhbWFuIHlhbmcgdGlkYWsgY29jb2sgdW50dWsgYXBsaWthc2kgbW9iaWxlLCBkaWJhbmRpbmdrYW4gZGVuZ2FuIEJhaGFzYSBsYWluLCBweXRob24gYmVya2VyamEgbGViaWggbGFtYmF0IHNlaGluZ2dhIGt1cmFuZyByZWxldmFuIGppa2EgZGlwZXJ1bnR1a2FuIGRhbGFtIHByb2dyYW0gYmVzYXIuIFNlbGFpbiBpdHUsIHB5dGhvbiBkaWtldGlrIHNlY2FyYSBkaW5hbWlzIHNlaGluZ2dhIG1lbWlsaWtpIGJhbnlhayBiYXRhc2FuIGRlc2Fpbi4NCg0KIyMgSmF2YQ0KDQpKYXZhIGFkYWxhaCBCYWhhc2EgcGVtcm9ncmFtYW4geWFuZyBiYW55YWsgZGFuIHVtdW0gZGlndW5ha2FuIG9sZWggcGFyYSBkZXZlbG9wZXIgdW50dWsgbWVuZ2VtYmFuZ2thbiBhcGxpa2FzaS4gSmF2YSBtZXJ1cGFrYW4gT2JqZWN0IE9yaWVudGVkIFByb2dyYW1taW5nIChPT1ApIFlhbmcgbXVsdGlwbGF0Zm9ybSBkYW4gbXVsdGkgZGV2aWNlLiANCg0KKipLZWxlYmloYW4qKg0KDQpKYXZhIG1lbWlsaWtpIHNpZmF0IGRpbmFtaXMga2FyZW5hIHBlbmdhbG9rYXNpYW4gZGFuIHBlbmdoYXB1c2FuIG1lbW9yaSBkaWxha3VrYW4gc2VjYXJhIG90b21hdGlzLCBKYXZhIGRhcGF0IG1lbmphbGFua2FuIGJlYmVyYXBhIHRhc2sgc2VrYWxpZ3VzIGRhbGFtIGJlcnNhbWFhbiB3YWt0dS4gVGlkYWsgaGFueWEgaXR1LCBQZXJwdXN0YWthYW4ga2VsYXMgeWFuZyBsZW5na2FwIG1lbmNha3VwIHNlZ2FsYSBrZWJ1dHVoYW4gZGFuIGtlcGVybHVhbiBkYWxhbSBtZW1idWF0IGFwbGlrYXNpIHNlaGluZ2dhIG1lbXVkYWhrYW4gcHJvZ3JhbW1lci9kZXZlbG9wZXIuDQoNCioqS2VrdXJhbmdhbioqDQoNCkJhaGFzYSBwZW1yb2dyYW1hbiBKYXZhIG1lbmdndW5ha2FuIG1lbW9yaSBsZWJpaCBiYW55YWsgZGliYW5kaW5na2FuIGJlYmVyYXBhIEJhaGFzYSBwZW1yb2dyYW1hbiB5YW5nIGxhaW4gZGFuIG1lbWJ1dHVoa2FuIGtvbXB1dGVyIHlhbmcgbWVtaWxpa2kga2FwYXNpdGFzIHJhbSB5YW5nIGJlc2FyIGFnYXIgYmVyamFsYW4gb3B0aW1hbC4gU2VsYWluIGl0dSwgSmF2YSBqdWdhIG11ZGFoIG1lbmdhbGFtaSBkZWtvbXBpbGFzaS4gRGVrb21waWxhc2kgYWRhbGFoIHBlbmdhbWJpbGFuIHNvdXJjZSBjb2RlLCBzZWhpbmdnYSBkYXBhdCBkZW5nYW4gbXVkYWggZGlhbWJpbCBhdGF1IGRpYmFqYWsgb2xlaCBvcmFuZyBsYWluLg0K