Contract Manufacturing Organization (CMO)

Contract Manufacturing Organization

It’s a key activity at MENADIONA. We produce Intermediates of very different features for third parties, under exclusivity and NDA, with long term partnership.
BUSINESS DEVELOPMENT, R&D PILOT PLANT, PRODUCTION, KEY TECHNOLOGIES

Business Development

BUSINESS DEVELOPMENT

MENADIONA offers contract development and full contract manufacturing services for APIs, advanced intermediates, starting materials, and industrial products.

MENADIONA delivers cost-efficient synthesis, process development, and life-cycle management solutions to customers within the pharmaceutical value chain.

Collaborating with MENADIONA is an experience beyond the traditional “Customer – CMO” relationship. In us, you will find a committed company clearly focused on building long-term relationships.

With its roots in a non-Pharma business, MENADIONA offers extensive experience and the capability to work with hazardous raw materials and controlled substances, which is an important differentiator from other CMOs.

We are committed, encouraged, and equipped to continue developing our strengths and delivering the benefits of a trusted CMO today and tomorrow.

Hazardous chemistry CMO
Small molecules synthesis CMO
Complex Synthesis CMO

R&D / PILOT PLANT

R&D Laboratory

Our R&D laboratory team works 24 hours a day, 5 days a week, not only developing new processes but also continuously optimizing existing processes.

MENADIONA’s R&D team is organized into several working groups, each having at least one PhD in Organic Chemistry, an Organic Chemist, and a Technician.

The Pilot Plant, utilizing the same services as the industrial plant like steam and vacuum, is very flexible and allows many combinations of reactors, centrifuges, and dryers to be used to perform any type of reaction that will later be conducted at an industrial scale.

MENADIONA’s aim when developing new processes is to address and fix “scaling problems” at the pilot plant stage. The pilot plant includes 7 reactors with capacities from 20L to 1,500L made from Hastelloy, Stainless Steel, and Glass-lined materials, 2 centrifuges with capacities of 60L and 400L, and dryers.

OUR PACKAGE

Pilot Plant
Production Facilities

Production

MENADIONA’s facilities are multipurpose and flexible, allowing a rapid response to changing customer requirements. After numerous validation runs have been completed, large commercial scale batches are produced at MENADIONA’s manufacturing plant.

Key Technologies

Main Chemistry & Process:

  • Experts in AZIRIDINE and derivatives.
  • Handling hazardous materials: PCl3, PBr3, Br2, POCl3, Cl2, Me2SO4, NH2NH2
  • Electrochemical cells
  • Reaction temperatures from -80ºC to 250ºC
  • Vacuum < 1mbar
  • Fractionated Distillations up to 15 theoretical plates

Main Reactions:

  • Amidation
  • Bromination
  • Chlorination
  • Cyclization
  • Grignard
  • Hydrogenation
  • Methylation
  • Nitration
  • Diazotization
  • Friedel Craft
  • Oxidation
  • Reduction

Equipment & Capacities

Reactors
60L to 13,000L
Stainless Steel, Glass Lined, Hastelloy
Centrifuges
Stainless Steel, PTFE Coated, Hastelloy, Nutche Filter
Dryers
Vacuum Dryers, Fluid Bed, Static Trays

M3
Reaction capacity



Others
Milling Capacity
Sieving Machines
Dispersion Technology
Filling Capabilities
Hydrogenation
Thermal Fluid
Waste Water Treatment Plant
CgkJPGRpdiBjbGFzcz0iY29va2llcyIgZGF0YS1ub3NuaXBwZXQ+CgkJCTxkaXYgY2xhc3M9ImNjb29raWUiPgoJCQkJPGRpdiBjbGFzcz0iY2NvbnRlbnQgcHJlZmVyZW5jZXMgY2hpZGUiPgoJCQkJCTxkaXYgY2xhc3M9IiI+CgkJCQkJCTxoND5HZXN0aW9uYXIgbGFzIHByZWZlcmVuY2lhcyBkZSBjb25zZW50aW1pZW50bzwvaDQ+CgkJCQkJCTxkaXYgY2xhc3M9InByZWZjb24iPgoJCQkJCQkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2hrMSIgY2hlY2tlZD0iY2hlY2tlZCIgZGlzYWJsZWQ+PGxhYmVsIGZvcj0iY2hrMSI+Q29va2llcyB0w6ljbmljYXMgbmVjZXNhcmlhczwvbGFiZWw+PHNwYW4gaHJlZj0iI05vbmUiIGNsYXNzPSJjcGx1c2ljb24iIGRhdGEtdGFiPSJjaGsxIj4rPC9zcGFuPgoJCQkJCQkJPGRpdiBjbGFzcz0iIiBkYXRhLXRhYmM9ImNoazEiPgoJCQkJCQkJCUxhcyBjb29raWVzIHTDqWNuaWNhcyBzb24gZXN0cmljdGFtZW50ZSBuZWNlc2FyaWFzIHBhcmEgcXVlIG51ZXN0cmEgcMOhZ2luYSB3ZWIgZnVuY2lvbmUgeSBwdWVkYXMgbmF2ZWdhciBwb3IgbGEgbWlzbWEuIEVzdGUgdGlwbyBkZSBjb29raWVzIHNvbiBsYXMgcXVlLCBwb3IgZWplbXBsbywgbm9zIHBlcm1pdGVuIGlkZW50aWZpY2FydGUsIGRhcnRlIGFjY2VzbyBhIGRldGVybWluYWRhcyBwYXJ0ZXMgcmVzdHJpbmdpZGFzIGRlIGxhIHDDoWdpbmEgc2kgZnVlc2UgbmVjZXNhcmlvLCBvIHJlY29yZGFyIGRpZmVyZW50ZXMgb3BjaW9uZXMgbyBzZXJ2aWNpb3MgeWEgc2VsZWNjaW9uYWRvcyBwb3IgdGksIGNvbW8gdHVzIHByZWZlcmVuY2lhcyBkZSBwcml2YWNpZGFkLiBQb3IgZWxsbywgZXN0w6FuIGFjdGl2YWRhcyBwb3IgZGVmZWN0bywgbm8gc2llbmRvIG5lY2VzYXJpYSB0dSBhdXRvcml6YWNpw7NuIGFsIHJlc3BlY3RvLgoJCQkJCQkJCUEgdHJhdsOpcyBkZSBsYSBjb25maWd1cmFjacOzbiBkZSB0dSBuYXZlZ2Fkb3IsIHB1ZWRlcyBibG9xdWVhciBvIGFsZXJ0YXIgZGUgbGEgcHJlc2VuY2lhIGRlIGVzdGUgdGlwbyBkZSBjb29raWVzLCBzaSBiaWVuIGRpY2hvIGJsb3F1ZW8gYWZlY3RhcsOhIGFsIGNvcnJlY3RvIGZ1bmNpb25hbWllbnRvIGRlIGxhcyBkaXN0aW50YXMgZnVuY2lvbmFsaWRhZGVzIGRlIG51ZXN0cmEgcMOhZ2luYSB3ZWIuCgkJCQkJCQkJPGJyLz48YnIvPgoJCQkJCQkJPC9kaXY+CgkJCQkJCQkKCQkJCQkJCTxkaXYgY2xhc3M9ImNjbGVhciI+PC9kaXY+CgkJCQkJCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNoZWNrZWQ9ImNoZWNrZWQiIGlkPSJjaGsyIj48bGFiZWwgZm9yPSJjaGsyIj5Db29raWVzIGRlIGFuw6FsaXNpczwvbGFiZWw+PHNwYW4gaHJlZj0iI05vbmUiIGNsYXNzPSJjcGx1c2ljb24iIGRhdGEtdGFiPSJjaGsyIj4rPC9zcGFuPgoJCQkJCQkJPGRpdiBjbGFzcz0iIiBkYXRhLXRhYmM9ImNoazIiPgoJCQkJCQkJCUxhcyBjb29raWVzIGRlIGFuw6FsaXNpcyBub3MgcGVybWl0ZW4gZXN0dWRpYXIgbGEgbmF2ZWdhY2nDs24gZGUgbG9zIHVzdWFyaW9zIGRlIG51ZXN0cmEgcMOhZ2luYSB3ZWIgZW4gZ2VuZXJhbCAocG9yIGVqZW1wbG8sIHF1w6kgc2VjY2lvbmVzIGRlIGxhIHDDoWdpbmEgc29uIGxhcyBtw6FzIHZpc2l0YWRhcywgcXXDqSBzZXJ2aWNpb3Mgc2UgdXNhbiBtw6FzIHkgc2kgZnVuY2lvbmFuIGNvcnJlY3RhbWVudGUsIGV0Yy4pLiAKCQkJCQkJCQlBIHBhcnRpciBkZSBsYSBpbmZvcm1hY2nDs24gZXN0YWTDrXN0aWNhIHNvYnJlIGxhIG5hdmVnYWNpw7NuIGVuIG51ZXN0cmEgcMOhZ2luYSB3ZWIsIHBvZGVtb3MgbWVqb3JhciB0YW50byBlbCBwcm9waW8gZnVuY2lvbmFtaWVudG8gZGUgbGEgcMOhZ2luYSBjb21vIGxvcyBkaXN0aW50b3Mgc2VydmljaW9zIHF1ZSBvZnJlY2UuIFBvciB0YW50bywgZXN0YXMgY29va2llcyBubyB0aWVuZW4gdW5hIGZpbmFsaWRhZCBwdWJsaWNpdGFyaWEsIHNpbm8gcXVlIMO6bmljYW1lbnRlIHNpcnZlbiBwYXJhIHF1ZSBudWVzdHJhIHDDoWdpbmEgd2ViIGZ1bmNpb25lIG1lam9yLCBhZGFwdMOhbmRvc2UgYSBudWVzdHJvcyB1c3VhcmlvcyBlbiBnZW5lcmFsLiBBY3RpdsOhbmRvbGFzIGNvbnRyaWJ1aXLDoXMgYSBkaWNoYSBtZWpvcmEgY29udGludWEuCgkJCQkJCQkJUHVlZGVzIGFjdGl2YXIgbyBkZXNhY3RpdmFyIGVzdGFzIGNvb2tpZXMgbWFyY2FuZG8gbGEgY2FzaWxsYSBjb3JyZXNwb25kaWVudGUsIGVzdGFuZG8gZGVzYWN0aXZhZGFzIHBvciBkZWZlY3RvLgoJCQkJCQkJCTxici8+PGJyLz4KCQkJCQkJCTwvZGl2PgoJCQkJCQkJCgkJCQkJCQk8ZGl2IGNsYXNzPSJjY2xlYXIiPjwvZGl2PgoJCQkJCQkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiBjaGVja2VkPSJjaGVja2VkIiBpZD0iY2hrMyI+PGxhYmVsIGZvcj0iY2hrMyI+Q29va2llcyBkZSBmdW5jaW9uYWxpZGFkIHkgcGVyc29uYWxpemFjacOzbjwvbGFiZWw+PHNwYW4gaHJlZj0iI05vbmUiIGNsYXNzPSJjcGx1c2ljb24iIGRhdGEtdGFiPSJjaGszIj4rPC9zcGFuPgoJCQkJCQkJPGRpdiBjbGFzcz0iIiBkYXRhLXRhYmM9ImNoazMiPgoJCQkJCQkJCUxhcyBjb29raWVzIGRlIGZ1bmNpb25hbGlkYWQgbm9zIHBlcm1pdGVuIHJlY29yZGFyIHR1cyBwcmVmZXJlbmNpYXMsIHBhcmEgcGVyc29uYWxpemFyIGEgdHUgbWVkaWRhIGRldGVybWluYWRhcyBjYXJhY3RlcsOtc3RpY2FzIHkgb3BjaW9uZXMgZ2VuZXJhbGVzIGRlIG51ZXN0cmEgcMOhZ2luYSB3ZWIsIGNhZGEgdmV6IHF1ZSBhY2NlZGFzIGEgbGEgbWlzbWEgKHBvciBlamVtcGxvLCBlbCBpZGlvbWEgZW4gcXVlIHNlIHRlIHByZXNlbnRhIGxhIGluZm9ybWFjacOzbiwgbGFzIHNlY2Npb25lcyBtYXJjYWRhcyBjb21vIGZhdm9yaXRhcywgdHUgdGlwbyBkZSBuYXZlZ2Fkb3IsIGV0Yy4pLgoJCQkJCQkJCVBvciB0YW50bywgZXN0ZSB0aXBvIGRlIGNvb2tpZXMgbm8gdGllbmVuIHVuYSBmaW5hbGlkYWQgcHVibGljaXRhcmlhLCBzaW5vIHF1ZSBhY3RpdsOhbmRvbGFzIG1lam9yYXLDoXMgbGEgZnVuY2lvbmFsaWRhZCBkZSBsYSBww6FnaW5hIHdlYiAocG9yIGVqZW1wbG8sIGFkYXB0w6FuZG9zZSBhIHR1IHRpcG8gZGUgbmF2ZWdhZG9yKSB5IGxhIHBlcnNvbmFsaXphY2nDs24gZGUgbGEgbWlzbWEgZW4gYmFzZSBhIHR1cyBwcmVmZXJlbmNpYXMgKHBvciBlamVtcGxvLCBwcmVzZW50YW5kbyBsYSBpbmZvcm1hY2nDs24gZW4gZWwgaWRpb21hIHF1ZSBoYXlhcyBlc2NvZ2lkbyBlbiBhbnRlcmlvcmVzIG9jYXNpb25lcyksIGxvIGN1YWwgY29udHJpYnVpcsOhIGEgbGEgZmFjaWxpZGFkLCB1c2FiaWxpZGFkIHkgY29tb2RpZGFkIGRlIG51ZXN0cmEgcMOhZ2luYSBkdXJhbnRlIHR1IG5hdmVnYWNpw7NuLgoJCQkJCQkJCVB1ZWRlcyBhY3RpdmFyIG8gZGVzYWN0aXZhciBlc3RhcyBjb29raWVzIG1hcmNhbmRvIGxhIGNhc2lsbGEgY29ycmVzcG9uZGllbnRlLCBlc3RhbmRvIGRlc2FjdGl2YWRhcyBwb3IgZGVmZWN0by4KCQkJCQkJCQk8YnIvPjxici8+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJCQoJCQkJCQkJPGRpdiBjbGFzcz0iY2NsZWFyIj48L2Rpdj4KCQkJCQkJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2hlY2tlZD0iY2hlY2tlZCIgaWQ9ImNoazQiPjxsYWJlbCBmb3I9ImNoazQiPkNvb2tpZXMgZGUgcHVibGljaWRhZDwvbGFiZWw+PHNwYW4gaHJlZj0iI05vbmUiIGNsYXNzPSJjcGx1c2ljb24iIGRhdGEtdGFiPSJjaGs0Ij4rPC9zcGFuPgoJCQkJCQkJPGRpdiBjbGFzcz0iIiBkYXRhLXRhYmM9ImNoazQiPgoJCQkJCQkJCUxhcyBjb29raWVzIGRlIHB1YmxpY2lkYWQgbm9zIHBlcm1pdGVuIGxhIGdlc3Rpw7NuIGRlIGxvcyBlc3BhY2lvcyBwdWJsaWNpdGFyaW9zIGluY2x1aWRvcyBlbiBudWVzdHJhIHDDoWdpbmEgd2ViIGVuIGJhc2UgYSBjcml0ZXJpb3MgY29tbyBlbCBjb250ZW5pZG8gbW9zdHJhZG8gbyBsYSBmcmVjdWVuY2lhIGVuIGxhIHF1ZSBzZSBtdWVzdHJhbiBsb3MgYW51bmNpb3MuCgkJCQkJCQkJQXPDrSBwb3IgZWplbXBsbywgc2kgc2UgdGUgaGEgbW9zdHJhZG8gdmFyaWFzIHZlY2VzIHVuIG1pc21vIGFudW5jaW8gZW4gbnVlc3RyYSBww6FnaW5hIHdlYiwgeSBubyBoYXMgbW9zdHJhZG8gdW4gaW50ZXLDqXMgcGVyc29uYWwgaGFjaWVuZG8gY2xpYyBzb2JyZSDDqWwsIGVzdGUgbm8gdm9sdmVyw6EgYSBhcGFyZWNlci4gRW4gcmVzdW1lbiwgYWN0aXZhbmRvIGVzdGUgdGlwbyBkZSBjb29raWVzLCBsYSBwdWJsaWNpZGFkIG1vc3RyYWRhIGVuIG51ZXN0cmEgcMOhZ2luYSB3ZWIgc2Vyw6EgbcOhcyDDunRpbCB5IGRpdmVyc2EsIHkgbWVub3MgcmVwZXRpdGl2YS4gCgkJCQkJCQkJUHVlZGVzIGFjdGl2YXIgbyBkZXNhY3RpdmFyIGVzdGFzIGNvb2tpZXMgbWFyY2FuZG8gbGEgY2FzaWxsYSBjb3JyZXNwb25kaWVudGUsIGVzdGFuZG8gZGVzYWN0aXZhZGFzIHBvciBkZWZlY3RvLgoJCQkJCQkJCTxici8+PGJyLz4KCQkJCQkJCTwvZGl2PgoJCQkJCQkJCgkJCQkJCQk8ZGl2IGNsYXNzPSJjY2xlYXIiPjwvZGl2PgoJCQkJCQkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiBjaGVja2VkPSJjaGVja2VkIiBpZD0iY2hrNSI+PGxhYmVsIGZvcj0iY2hrNSI+Q29va2llcyBkZSBwdWJsaWNpZGFkIGNvbXBvcnRhbWVudGFsPC9sYWJlbD48c3BhbiBocmVmPSIjTm9uZSIgY2xhc3M9ImNwbHVzaWNvbiIgZGF0YS10YWI9ImNoazUiPis8L3NwYW4+CgkJCQkJCQk8ZGl2IGNsYXNzPSIiIGRhdGEtdGFiYz0iY2hrNSI+CgkJCQkJCQkJTGFzIGNvb2tpZXMgZGUgcHVibGljaWRhZCBjb21wb3J0YW1lbnRhbCBub3MgcGVybWl0ZW4gb2J0ZW5lciBpbmZvcm1hY2nDs24gYmFzYWRhIGVuIGxhIG9ic2VydmFjacOzbiBkZSB0dXMgaMOhYml0b3MgeSBjb21wb3J0YW1pZW50b3MgZGUgbmF2ZWdhY2nDs24gZW4gbGEgd2ViLCBhIGZpbiBkZSBwb2RlciBtb3N0cmFydGUgY29udGVuaWRvcyBwdWJsaWNpdGFyaW9zIHF1ZSBzZSBhanVzdGVuIG1lam9yIGEgdHVzIGd1c3RvcyBlIGludGVyZXNlcyBwZXJzb25hbGVzLgoJCQkJCQkJCVBhcmEgcXVlIGxvIGVudGllbmRhcyBkZSBtYW5lcmEgbXV5IHNlbmNpbGxhLCB0ZSBwb25kcmVtb3MgdW4gZWplbXBsbyBmaWN0aWNpbzogc2kgdHVzIMO6bHRpbWFzIGLDunNxdWVkYXMgZW4gbGEgd2ViIGVzdHV2aWVzZW4gcmVsYWNpb25hZGFzIGNvbiBsaXRlcmF0dXJhIGRlIHN1c3BlbnNlLCB0ZSBtb3N0cmFyw61hbW9zIHB1YmxpY2lkYWQgc29icmUgbGlicm9zIGRlIHN1c3BlbnNlLiAKCQkJCQkJCQlQb3IgdGFudG8sIGFjdGl2YW5kbyBlc3RlIHRpcG8gZGUgY29va2llcywgbGEgcHVibGljaWRhZCBxdWUgdGUgbW9zdHJlbW9zIGVuIG51ZXN0cmEgcMOhZ2luYSB3ZWIgbm8gc2Vyw6EgZ2Vuw6lyaWNhLCBzaW5vIHF1ZSBlc3RhcsOhIG9yaWVudGFkYSBhIHR1cyBiw7pzcXVlZGFzLCBndXN0b3MgZSBpbnRlcmVzZXMsIGFqdXN0w6FuZG9zZSBwb3IgdGFudG8gZXhjbHVzaXZhbWVudGUgYSB0aS4KCQkJCQkJCQlQdWVkZXMgYWN0aXZhciBvIGRlc2FjdGl2YXIgZXN0YXMgY29va2llcyBtYXJjYW5kbyBsYSBjYXNpbGxhIGNvcnJlc3BvbmRpZW50ZSwgZXN0YW5kbyBkZXNhY3RpdmFkYXMgcG9yIGRlZmVjdG8uCgkJCQkJCQkJPGJyLz4KCQkJCQkJCQlQYXJhIHF1ZSBsbyBlbnRpZW5kYXMgZGUgbWFuZXJhIG11eSBzZW5jaWxsYSwgdGUgcG9uZHJlbW9zIHVuIGVqZW1wbG8gZmljdGljaW86IHNpIHR1cyDDumx0aW1hcyBiw7pzcXVlZGFzIGVuIGxhIHdlYiBlc3R1dmllc2VuIHJlbGFjaW9uYWRhcyBjb24gbGl0ZXJhdHVyYSBkZSBzdXNwZW5zZSwgdGUgbW9zdHJhcsOtYW1vcyBwdWJsaWNpZGFkIHNvYnJlIGxpYnJvcyBkZSBzdXNwZW5zZS4gCgkJCQkJCQkJUG9yIHRhbnRvLCBhY3RpdmFuZG8gZXN0ZSB0aXBvIGRlIGNvb2tpZXMsIGxhIHB1YmxpY2lkYWQgcXVlIHRlIG1vc3RyZW1vcyBlbiBudWVzdHJhIHDDoWdpbmEgd2ViIG5vIHNlcsOhIGdlbsOpcmljYSwgc2lubyBxdWUgZXN0YXLDoSBvcmllbnRhZGEgYSB0dXMgYsO6c3F1ZWRhcywgZ3VzdG9zIGUgaW50ZXJlc2VzLCBhanVzdMOhbmRvc2UgcG9yIHRhbnRvIGV4Y2x1c2l2YW1lbnRlIGEgdGkuCgkJCQkJCQkJUHVlZGVzIGFjdGl2YXIgbyBkZXNhY3RpdmFyIGVzdGFzIGNvb2tpZXMgbWFyY2FuZG8gbGEgY2FzaWxsYSBjb3JyZXNwb25kaWVudGUsIGVzdGFuZG8gZGVzYWN0aXZhZGFzIHBvciBkZWZlY3RvLgoJCQkJCQkJCTxici8+PGJyLz4KCQkJCQkJCTwvZGl2PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJjbXQiPgoJCQkJCQk8YSBocmVmPSIjTm9uZSIgaWQ9IiIgY2xhc3M9ImNidXR0b24gY29va2llcy1hY2NlcHQiPkFDRVBUQVIgVE9EQVM8L2E+CgkJCQkJCTxhIGhyZWY9IiNOb25lIiBpZD0iIiBjbGFzcz0iY2J1dHRvbiBjb29raWVzLXNhdmUiPkdVQVJEQVIgQ09ORklHVVJBQ0nDk048L2E+CgkJCQkJCTxhIGhyZWY9IiNOb25lIiBpZD0iIiBjbGFzcz0iY2J1dHRvbi0yIGNvb2tpZXMtbmVlZGVkIGNvb2tpZXMtcmVqZWN0Ij5SRUNIQVpBUiBUT0RBUzwvYT4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJjY2xlYXIiPjwvZGl2PgoJCQkJPC9kaXY+CgkJCQk8ZGl2IGNsYXNzPSJjY29udGVudCBmaXJzdHBhZ2UiPgoJCQkJCTxkaXYgY2xhc3M9IiI+CgkJCQkJCTxoND5Db25maWd1cmFjacOzbiBkZSBDb29raWVzPC9oND4KCQkJCQkJVXRpbGl6YW1vcyBjb29raWVzIHByb3BpYXMgeSBkZSB0ZXJjZXJvcyBwYXJhIGFuYWxpemFyIG51ZXN0cm9zIHNlcnZpY2lvcyB5IG1vc3RyYXJ0ZSBwdWJsaWNpZGFkIHJlbGFjaW9uYWRhIGNvbiB0dXMgcHJlZmVyZW5jaWFzIGVuIGJhc2UgYSB1biBwZXJmaWwgZWxhYm9yYWRvIGEgcGFydGlyIGRlIHR1cyBow6FiaXRvcyBkZSBuYXZlZ2FjacOzbiAocG9yIGVqZW1wbG8sIHDDoWdpbmFzIHZpc2l0YWRhcykuIFB1ZWRlcyBhY2VwdGFyIHRvZGFzIGVzdGFzIGNvb2tpZXMgcHVsc2FuZG8gZWwgYm90w7NuIEFDRVBUQVIgbyBjb25maWd1cmFybGFzIG8gcmVjaGF6YXIgc3UgdXNvIGNsaWNhbmRvIGVuIGVsIGFwYXJ0YWRvIDxhIGhyZWY9IiNOb25lIiBjbGFzcz0iY29va2llLXByZWYiPkNPTkZJR1VSQUNJw5NOIERFIENPT0tJRVM8L2E+LgoJCQkJCQk8YnIgLz48YnIgLz4KCQkJCQkJU2kgcXVpZXJlcyBtw6FzIGluZm9ybWFjacOzbiwgY29uc3VsdGEgbGEgPGEgaHJlZj0iL3BvbGl0aWNhLWRlLWNvb2tpZXMvIj5Qb2zDrXRpY2EgZGUgQ29va2llczwvYT4geSA8YSBocmVmPSIjTm9uZSIgY2xhc3M9ImNvb2tpZS1wcmVmIj5MaXN0YSBkZSBDb29raWVzPC9hPiBkZQoJCQkJCQludWVzdHJhIHDDoWdpbmEgd2ViLgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImNtdCI+CgkJCQkJCTxhIGhyZWY9IiNOb25lIiBpZD0iIiBjbGFzcz0iY2J1dHRvbiBjb29raWVzLWFjY2VwdCI+QUNFUFRBUiBUT0RBUzwvYT4KCQkJCQkJPGEgaHJlZj0iI05vbmUiIGlkPSIiIGNsYXNzPSJjb29raWUtcHJlZiBjYnV0dG9uIj5DT05GSUdVUkFSIENPT0tJRVM8L2E+CgkJCQkJCTxhIGhyZWY9IiNOb25lIiBpZD0iIiBjbGFzcz0iY2J1dHRvbi0yIGNvb2tpZXMtbmVlZGVkIGNvb2tpZXMtcmVqZWN0Ij5SRUNIQVpBUiBUT0RBUzwvYT4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJjY2xlYXIiPjwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2Pgo8c2NyaXB0Pgp2YXIgaGV4Y29va2llQmFzZSA9ICIvaENvb2tpZXMiOyAvKmpRdWVyeSBsb2FkZWQgb24gRE9NIGNoZWNrKi8KaWYgKHR5cGVvZiBqUXVlcnkgPT0gJ3VuZGVmaW5lZCcpIHsKICAgIHZhciBUQUcgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdOwogICAgdmFyIGpxVGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICBqcVRhZy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICBqcVRhZy5zcmMgPSBoZXhjb29raWVCYXNlICsgJy9saWJzLmpxdWVyeS5jb29raWVzLmpzJzsKICAgIFRBRy5hcHBlbmRDaGlsZChqcVRhZyk7CiAgICBpZiAobmF2aWdhdG9yLmFwcE5hbWUuaW5kZXhPZigiSW50ZXJuZXQgRXhwbG9yZXIiKSAhPSAtMSkgewogICAgICAgIC8qSWYgSUUqLwogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIEhleEluaXQoKTsKICAgICAgICB9LCAxMDAwKTsKICAgIH0gZWxzZSB7CiAgICAgICAganFUYWcub25sb2FkID0gSGV4SW5pdDsKICAgIH0KfSBlbHNlIHsKICAgIHZhciBUQUcgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdOwogICAgdmFyIGpxVGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICBqcVRhZy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICBqcVRhZy5zcmMgPSBoZXhjb29raWVCYXNlICsgJy9saWJzLmNvb2tpZS5qcyc7CiAgICBUQUcuYXBwZW5kQ2hpbGQoanFUYWcpOwogICAganFUYWcub25sb2FkID0gSGV4SW5pdDsKICAgIGlmIChuYXZpZ2F0b3IuYXBwTmFtZS5pbmRleE9mKCJJbnRlcm5ldCBFeHBsb3JlciIpICE9IC0xKSB7CiAgICAgICAgLypJZiBJRSovCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgSGV4SW5pdCgpOwogICAgICAgIH0sIDEwMDApOwogICAgfSBlbHNlIHsKICAgICAgICBqcVRhZy5vbmxvYWQgPSBIZXhJbml0OwogICAgfQp9CgpmdW5jdGlvbiBIZXhJbml0KCkgeyAKCWpRdWVyeS5leHRlbmQoewoJCWVtcHR5OiBmdW5jdGlvbiAobykgewoJCQlpZiAoIWpRdWVyeS5pc0Z1bmN0aW9uKG8pICYmIChvID09IG51bGwgfHwgbyA9PSB1bmRlZmluZWQgfHwgbyA9PSAiIiB8fCBvLmxlbmd0aCA9PSAwKSkgewoJCQkJcmV0dXJuIHRydWU7CgkJCX0KCQkJcmV0dXJuIGZhbHNlCgkJfQoJfSk7CgkKCWlmIChqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkIikgIT0gIjEiKSB7CgkJalF1ZXJ5KCJib2R5IC5jb29raWVzIikuY3NzKHsKCQkJImRpc3BsYXkiOiAiZmxleCIKCQl9KTsKCX0KCQoJalF1ZXJ5KCIjY29va2llcy1jb25maWciKS5jbGljayhmdW5jdGlvbigpewoJCWpRdWVyeSgiYm9keSAuY29va2llcyIpLmNzcyh7CgkJCSJkaXNwbGF5IjogImZsZXgiCgkJfSk7Cgl9KTsJCgkKCS8qU2F2ZWQgb3B0aW9ucyovCglpZihqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkLTEiKSA9PSAiMSIpIHsKCQlqUXVlcnkoIiNjaGsxIikuYXR0cigiY2hlY2tlZCIsImNoZWNrZWQiKTsKCX0KCWlmKGpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMiIpID09ICIxIikgewoJCWpRdWVyeSgiI2NoazIiKS5hdHRyKCJjaGVja2VkIiwiY2hlY2tlZCIpOwoJfQoJaWYoalF1ZXJ5LmNvb2tpZSgiSGV4Q29va2llU2VlZC0zIikgPT0gIjEiKSB7CgkJalF1ZXJ5KCIjY2hrMyIpLmF0dHIoImNoZWNrZWQiLCJjaGVja2VkIik7Cgl9CglpZihqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkLTQiKSA9PSAiMSIpIHsKCQlqUXVlcnkoIiNjaGs0IikuYXR0cigiY2hlY2tlZCIsImNoZWNrZWQiKTsKCX0KCWlmKGpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtNSIpID09ICIxIikgewoJCWpRdWVyeSgiI2NoazUiKS5hdHRyKCJjaGVja2VkIiwiY2hlY2tlZCIpOwoJfQoJCgkvKkdvb2dsZSBBbmFseXRpY3MqLwoJaWYoalF1ZXJ5LmNvb2tpZSgiSGV4Q29va2llU2VlZC0yIikgIT0gIjEiKSB7CgkJLypSZW1vdmUgdGFnKi8KCQlqUXVlcnkoInNjcmlwdDpjb250YWlucyhnb29nbGV0YWdtYW5hZ2VyKSIpLnJlbW92ZSgpOwoJfQoJCQoJalF1ZXJ5KCIuY29va2llLXByZWYsIGE6Y29udGFpbnMoJ0NvbmZpZ3VyYWRvciBkZSBDb29raWVzJykiKS5jbGljayhmdW5jdGlvbiAoKSB7CgkJalF1ZXJ5KCJib2R5IC5jb29raWVzIikuc2hvdygpOwoJCWpRdWVyeSgiLnByZWZlcmVuY2VzIikucmVtb3ZlQ2xhc3MoImNoaWRlIik7CgkJalF1ZXJ5KCIuY29va2llcyIpLmFkZENsYXNzKCJwcmVmZXJlbmNlIik7CgkJalF1ZXJ5KCIuZmlyc3RwYWdlIikuYWRkQ2xhc3MoImNoaWRlIik7Cgl9KTsKCQoJLypDbG9zZSBidXR0b24qLwoJalF1ZXJ5KCIuY29va2llcy1zYXZlIikuY2xpY2soZnVuY3Rpb24oKXsKCQoJCS8qQ3VzdG9tIGNoZWNrcyovCgkJaWYoalF1ZXJ5KCIjY2hrMSIpLmlzKCI6Y2hlY2tlZCIpICl7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMSIsIjEiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJfWVsc2V7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMSIsIiIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQl9CgkJaWYoalF1ZXJ5KCIjY2hrMiIpLmlzKCI6Y2hlY2tlZCIpICl7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMiIsIjEiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJfWVsc2V7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMiIsIiIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQl9CgkJaWYoalF1ZXJ5KCIjY2hrMyIpLmlzKCI6Y2hlY2tlZCIpICl7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMyIsIjEiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJfWVsc2V7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMyIsIiIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQl9CgkJaWYoalF1ZXJ5KCIjY2hrNCIpLmlzKCI6Y2hlY2tlZCIpICl7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtNCIsIjEiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJfWVsc2V7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtNCIsIiIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQl9CgkJaWYoalF1ZXJ5KCIjY2hrNSIpLmlzKCI6Y2hlY2tlZCIpICl7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtNSIsIjEiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJfWVsc2V7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtNSIsIiIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQl9CgkJCgkJLypDb29raWVzIGFjY2VwdCBhbmQgc2F2ZWQqLwoJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQiLCIxIix7IGV4cGlyZXM6IDM2NSwgcGF0aDogJy8nIH0pOwoJCQoJCS8qSGlkZSBkaXNjbGFpbWVyKi8KCQlqUXVlcnkoImJvZHkgLmNvb2tpZXMiKS5oaWRlKCk7Cgl9KTsKCQoJalF1ZXJ5KCIuY29va2llcy1uZWVkZWQiKS5jbGljayhmdW5jdGlvbigpewoJCgkJLypORUVERUQgQ09PS0lFUyovCgkJalF1ZXJ5LmNvb2tpZSgiSGV4Q29va2llU2VlZC0xIiwiMSIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQlqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkLTIiLCIwIix7IGV4cGlyZXM6IDM2NSwgcGF0aDogJy8nIH0pOwoJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMyIsIjAiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJalF1ZXJ5LmNvb2tpZSgiSGV4Q29va2llU2VlZC00IiwiMCIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQlqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkLTUiLCIwIix7IGV4cGlyZXM6IDM2NSwgcGF0aDogJy8nIH0pOwoJCQoJCWpRdWVyeSgiI2NoazEiKS5wcm9wKCAiY2hlY2tlZCIsIHRydWUgKTsKCQlqUXVlcnkoIiNjaGsyIikucHJvcCggImNoZWNrZWQiLCBmYWxzZSApOwoJCWpRdWVyeSgiI2NoazMiKS5wcm9wKCAiY2hlY2tlZCIsIGZhbHNlICk7CgkJalF1ZXJ5KCIjY2hrNCIpLnByb3AoICJjaGVja2VkIiwgZmFsc2UgKTsKCQlqUXVlcnkoIiNjaGs1IikucHJvcCggImNoZWNrZWQiLCBmYWxzZSApOwoJCQoJCS8qQ29va2llcyBhY2NlcHQgYW5kIHNhdmVkKi8KCQlqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkIiwiMSIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQkKCQkvKkhpZGUgZGlzY2xhaW1lciovCgkJalF1ZXJ5KCJib2R5IC5jb29raWVzIikuaGlkZSgpOwoJfSk7CgkKCWpRdWVyeSgiLmNvb2tpZXMtYWNjZXB0IikuY2xpY2soZnVuY3Rpb24oKXsKCQoJCS8qQUxMIENPT0tJRVMqLwoJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMSIsIjEiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJalF1ZXJ5LmNvb2tpZSgiSGV4Q29va2llU2VlZC0yIiwiMSIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQlqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkLTMiLCIxIix7IGV4cGlyZXM6IDM2NSwgcGF0aDogJy8nIH0pOwoJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtNCIsIjEiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJalF1ZXJ5LmNvb2tpZSgiSGV4Q29va2llU2VlZC01IiwiMSIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQkKCQlqUXVlcnkoIiNjaGsxIikucHJvcCggImNoZWNrZWQiLCB0cnVlICk7CgkJalF1ZXJ5KCIjY2hrMiIpLnByb3AoICJjaGVja2VkIiwgdHJ1ZSApOwoJCWpRdWVyeSgiI2NoazMiKS5wcm9wKCAiY2hlY2tlZCIsIHRydWUgKTsKCQlqUXVlcnkoIiNjaGs0IikucHJvcCggImNoZWNrZWQiLCB0cnVlICk7CgkJalF1ZXJ5KCIjY2hrNSIpLnByb3AoICJjaGVja2VkIiwgdHJ1ZSApOwoJCQoJCS8qQ29va2llcyBhY2NlcHQgYW5kIHNhdmVkKi8KCQlqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkIiwiMSIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQkKCQkvKkhpZGUgZGlzY2xhaW1lciovCgkJalF1ZXJ5KCJib2R5IC5jb29raWVzIikuaGlkZSgpOwoJfSk7CgkKCWpRdWVyeSgiLmNvb2tpZXMtcmVqZWN0IikuY2xpY2soZnVuY3Rpb24gKCkgeyAKCQlqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkIiwgIjEiLCB7CgkJCWV4cGlyZXM6IDM2NSwKCQkJcGF0aDogJy8nCgkJfSk7IAoJCWpRdWVyeSgiYm9keSAuY29va2llcyIpLmhpZGUoKTsKCX0pOwoJCglqUXVlcnkoIi5jb29raWVwcmVmIikuY2xpY2soZnVuY3Rpb24oKXsKCQlqUXVlcnkoIiNjb29raWUtcHJlZiIpLnRyaWdnZXIoImNsaWNrIik7Cgl9KTsKCQoJLy/ilr0g4pazCglqUXVlcnkoIi5jb29raWVzIFtkYXRhLXRhYmNdIikuYWRkQ2xhc3MoImNoaWRlIik7CglqUXVlcnkoIi5jb29raWVzIC5jcGx1c2ljb24iKS5jbGljayhmdW5jdGlvbigpewoJCXZhciBvcmdTdGF0ZSA9IGpRdWVyeSh0aGlzKS5odG1sKCkrIiI7CgkJCgkJalF1ZXJ5KCIuY29va2llcyBbZGF0YS10YWJjXSIpLmFkZENsYXNzKCJjaGlkZSIpOwoJCWpRdWVyeSgiLmNvb2tpZXMgW2RhdGEtdGFiXSIpLmh0bWwoIisiKTsKCQlqUXVlcnkoIi5jb29raWVzIFtkYXRhLXRhYl0iKS5hdHRyKCJzdHlsZSIsIiIpOwoJCQoJCWlmKCBvcmdTdGF0ZS5pbmRleE9mKCIrIikgPj0gMCl7CgkJCXZhciB0YWJTZWwgPSBqUXVlcnkodGhpcykuYXR0cigiZGF0YS10YWIiKTsKCQkJalF1ZXJ5KHRoaXMpLmh0bWwoIi0iKTsKCQkJalF1ZXJ5KHRoaXMpLmF0dHIoInN0eWxlIiwicGFkZGluZy1sZWZ0OjdweDsiKTsKCQkJalF1ZXJ5KCIuY29va2llcyBbZGF0YS10YWJjPSciK3RhYlNlbCsiJ10iKS5yZW1vdmVDbGFzcygiY2hpZGUiKTsKCQl9Cgl9KTsKfQo8L3NjcmlwdD4KPHN0eWxlPgovKkNvbG9ycyBDU1MqLwouY29va2llcyAucHJlZmNvbnsKCW1heC1oZWlnaHQ6NTB2aDsKICAgIHBhZGRpbmc6IDAgMjBweCAwIDA7CglvdmVyZmxvdy15OnNjcm9sbDsKfQouY29va2llcyAuY2NsZWFyewoJY2xlYXI6Ym90aDsKfQoKCi5jb29raWVzIC5jcGx1c2ljb257CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMTJweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogIzAwMDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICBwYWRkaW5nOiAwcHggMCAwIDBweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHdpZHRoOiAxOHB4OwogICAgaGVpZ2h0OiAxOHB4OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgbWFyZ2luOiAycHggMCAwIDA7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwp9Ci5jb29raWVzIC5jcGx1c2ljb246aG92ZXJ7CiAgICBjb2xvcjogIzY2NjsKfQogLmNvb2tpZXMgYXsKICAgICBjb2xvcjojMDAwOwp9CiAuY29va2llcyAuY210ewoJIG1hcmdpbi10b3A6MjBweDsKfQogLmNvb2tpZXMgLmNjb250ZW50IGEud2hpdGV7CiAgICAgY29sb3I6IzAwMDsKfQogLmNvb2tpZXMgLmNjb250ZW50IC5jYnV0dG9uewogICAgIGJhY2tncm91bmQ6I2ZmZjsKCWJvcmRlci1jb2xvcjogIzAwMDsKCWNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7Cglib3JkZXI6IDJweCBzb2xpZDsKfQouY29va2llcyAuY2NvbnRlbnQgLmNidXR0b24tMnsKICAgIGJhY2tncm91bmQ6I2ZmZjsKCWJvcmRlci1jb2xvcjogIzAwMDsKCWNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7Cglib3JkZXI6IDJweCBzb2xpZDsKfQovKkdlbmVyYWwgQ1NTKi8KCSNjb29raWVzLWNvbmZpZyB7CgkJY3Vyc29yOnBvaW50ZXI7Cgl9CiAuY29va2llcyAqewogICAgIGZvbnQtc2l6ZToxMnB4OwogICAgIGxpbmUtaGVpZ2h0OjIwcHg7CiAgICAgY29sb3I6IzAwMDsKfQouY29va2llcyBoNCB7Cglmb250LXNpemU6IDI0cHggIWltcG9ydGFudDsKCWxpbmUtaGVpZ2h0OiAyOHB4OwoJZm9udC13ZWlnaHQ6IDcwMDsKfQogLmNvb2tpZXMgYXsKICAgICBmb250LXNpemU6MTBweDsKfQogLmNvb2tpZXMgYTpob3ZlcnsKICAgICBmb250LXNpemU6MTBweCAhaW1wb3J0YW50Owp9CiAuY29va2llcyAud3JpZ2h0IGF7CiAgICAgZm9udC1zaXplOjE2cHggIWltcG9ydGFudDsKfQouY29va2llc3sgICAgIAogICAgIHBvc2l0aW9uOmZpeGVkOwkKCSBkaXNwbGF5Om5vbmU7CiAgICAgYm90dG9tOiA0MHB4OwogICAgIGxlZnQ6IDUwJTsKCSB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgei1pbmRleDo5OTk5OwoJIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgIGJvcmRlcjogMXB4IHNvbGlkICNGRjAwMDA7CgkgdmVydGljYWwtYWxpZ246Ym90dG9tOwoJIGJveC1zaGFkb3c6IDEwcHggMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC41KTsKfQogLmNvb2tpZXMgLmNjb29raWV7CgkgYWxpZ24tc2VsZjogY2VudGVyOwogICAgIHdpZHRoOjY1MHB4OwogICAgIGhlaWdodDphdXRvOwoJIG1hcmdpbjogYXV0bzsKfQogLmNvb2tpZXMgLmNjb250ZW50ewogICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgIGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSk7CiAgICAgY29sb3I6IzMzMzsKICAgICBwYWRkaW5nOjQwcHg7CiAgICAgZm9udC1zaXplOjEwcHg7Cn0KIC5jb29raWVzIC5jY29udGVudC5wcmVmZXJlbmNlcyBpbnB1dHsKICAgICB3aWR0aDphdXRvOwogICAgIG1hcmdpbjogMCAxMHB4IDAgMDsKfQogLmNvb2tpZXMgLmNjb250ZW50LnByZWZlcmVuY2VzIGxhYmVsewogICAgIGZvbnQtd2VpZ2h0OmJvbGQ7CiAgICAgY3Vyc29yOnBvaW50ZXI7Cn0KIC5jb29raWVzIC5jY29udGVudCBhewogICAgIG1hcmdpbjowcHg7CiAgICAgZm9udC13ZWlnaHQ6NDAwOwp9CiAuY29va2llcyAuY2NvbnRlbnQgYTpob3ZlcnsKICAgICBjb2xvcjojMDAwOwogICAgIGZvbnQtc2l6ZToxMnB4Owp9CiAuY29va2llcyAuY2NvbnRlbnQgLmNidXR0b24sIC5jb29raWVzIC5jY29udGVudCAuY2J1dHRvbi0yewogICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOwogICAgIGNvbG9yOiMzMzM7CiAgICAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7CgkgdGV4dC1hbGlnbjpjZW50ZXI7CiAgICAgZm9udC13ZWlnaHQ6NjAwOwogICAgIGZvbnQtc2l6ZToxMXB4ICFpbXBvcnRhbnQ7CiAgICBwYWRkaW5nOiAxMHB4IDJweDsKICAgIG1hcmdpbjogMHB4IDAgMTBweCAwOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgd2lkdGg6IDMyJTsKfQogLmNvb2tpZXMgLmNjb250ZW50IC5jYnV0dG9uOmhvdmVyLCAgLmNvb2tpZXMgLmNjb250ZW50IC5jYnV0dG9uLTI6aG92ZXJ7CiAgICAgYmFja2dyb3VuZDojMzMzOwogICAgIGNvbG9yOiNmZmYhaW1wb3J0YW50Owp9CiAuY29va2llcyAuY2NsZWFyewogICAgIGNsZWFyOmJvdGg7Cn0KIC5jb29raWVzIGxhYmVsIHsKCXZlcnRpY2FsLWFsaWduOiB0b3A7CiAgICBtYXJnaW4tbGVmdDogNXB4OwogICAgbWFyZ2luLXJpZ2h0OiA1cHg7CiAgICBtYXJnaW4tdG9wOiAtMnB4Owp9CkBtZWRpYSAobWF4LXdpZHRoOiA5NzZweCkgewoJLmNvb2tpZXMgLnByZWZjb24gewoJCW1heC1oZWlnaHQ6IDQwdmg7Cgl9CgkuY29va2llcyBoNCB7CgkJZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7CgkJbGluZS1oZWlnaHQ6IDI0cHg7Cgl9CiAuY29va2llc3sgICAgIAogICAgIHBvc2l0aW9uOmZpeGVkOwkKCSBkaXNwbGF5Om5vbmU7CiAgICAgYm90dG9tOiAwOwogICAgIGxlZnQ6IDA7CiAgICAgd2lkdGg6MTAwJTsKICAgICBtYXgtaGVpZ2h0OjEwMCU7CgkgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTsKCSBvdmVyZmxvdy15OnNjcm9sbDsKfQogLmNvb2tpZXMgLmNjb29raWV7CiAgICAgd2lkdGg6MTAwJTsKICAgICBoZWlnaHQ6MTAwJTsKfQoJLmNvb2tpZXMgbGFiZWwgewoJCW1hcmdpbi1sZWZ0OiAzcHg7CgkJbWFyZ2luLXJpZ2h0OiA1cHg7Cgl9CgkuY29va2llcyAuY2NvbnRlbnQgewoJCXBhZGRpbmc6IDE1cHg7Cgl9CgkuY29va2llcyAuY2NvbnRlbnQgLmNidXR0b24sIC5jb29raWVzIC5jY29udGVudCAuY2J1dHRvbi0yewoJCXdpZHRoOiAxMDAlOwoJfQp9CiAuY2hpZGV7CiAgICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7Cn0KPC9zdHlsZT4=